Merge "Handle exceptions when testing row validity"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Tue, 25 Mar 2014 19:03:17 +0000 (19:03 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Tue, 25 Mar 2014 19:03:17 +0000 (19:03 +0000)
1080 files changed:
.jscsrc [new file with mode: 0644]
.jshintignore
.jshintrc
.travis.yml
README
RELEASE-NOTES-1.23
api.php
docs/hooks.txt
docs/magicword.txt
img_auth.php
includes/AjaxResponse.php
includes/AuthPlugin.php
includes/AutoLoader.php
includes/Block.php
includes/CacheHelper.php
includes/Category.php
includes/ChangesFeed.php
includes/DefaultSettings.php
includes/EditPage.php
includes/Export.php
includes/Feed.php
includes/FormOptions.php
includes/GitInfo.php
includes/GlobalFunctions.php
includes/HistoryBlob.php
includes/Html.php
includes/Import.php
includes/MediaWikiVersionFetcher.php
includes/Message.php
includes/MimeMagic.php
includes/OutputPage.php
includes/PHPVersionError.php
includes/Pager.php
includes/PathRouter.php
includes/PoolCounter.php
includes/Preferences.php
includes/ProtectionForm.php
includes/QueryPage.php
includes/Sanitizer.php
includes/Setup.php
includes/Skin.php
includes/SkinTemplate.php
includes/Status.php
includes/TimestampException.php
includes/Title.php
includes/TitleArrayFromResult.php
includes/User.php
includes/UserArray.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/api/ApiBlock.php
includes/api/ApiComparePages.php
includes/api/ApiDelete.php
includes/api/ApiDisabled.php
includes/api/ApiExpandTemplates.php
includes/api/ApiFeedContributions.php
includes/api/ApiFeedRecentChanges.php [new file with mode: 0644]
includes/api/ApiFeedWatchlist.php
includes/api/ApiFileRevert.php
includes/api/ApiFormatBase.php
includes/api/ApiHelp.php
includes/api/ApiImageRotate.php
includes/api/ApiLogin.php
includes/api/ApiLogout.php
includes/api/ApiMain.php
includes/api/ApiMove.php
includes/api/ApiOpenSearch.php
includes/api/ApiOptions.php
includes/api/ApiParamInfo.php
includes/api/ApiParse.php
includes/api/ApiPatrol.php
includes/api/ApiProtect.php
includes/api/ApiQuery.php
includes/api/ApiQueryAllCategories.php
includes/api/ApiQueryAllImages.php
includes/api/ApiQueryAllMessages.php
includes/api/ApiQueryAllPages.php
includes/api/ApiQueryAllUsers.php
includes/api/ApiQueryBacklinks.php
includes/api/ApiQueryBlocks.php
includes/api/ApiQueryCategories.php
includes/api/ApiQueryCategoryInfo.php
includes/api/ApiQueryCategoryMembers.php
includes/api/ApiQueryContributors.php
includes/api/ApiQueryDeletedrevs.php
includes/api/ApiQueryDuplicateFiles.php
includes/api/ApiQueryExtLinksUsage.php
includes/api/ApiQueryExternalLinks.php
includes/api/ApiQueryFilearchive.php
includes/api/ApiQueryIWBacklinks.php
includes/api/ApiQueryIWLinks.php
includes/api/ApiQueryImageInfo.php
includes/api/ApiQueryImages.php
includes/api/ApiQueryLangLinks.php
includes/api/ApiQueryLinks.php
includes/api/ApiQueryLogEvents.php
includes/api/ApiQueryPagePropNames.php
includes/api/ApiQueryPageProps.php
includes/api/ApiQueryPagesWithProp.php
includes/api/ApiQueryProtectedTitles.php
includes/api/ApiQueryQueryPage.php
includes/api/ApiQueryRandom.php
includes/api/ApiQueryRecentChanges.php
includes/api/ApiQueryRedirects.php
includes/api/ApiQueryRevisions.php
includes/api/ApiQuerySearch.php
includes/api/ApiQuerySiteinfo.php
includes/api/ApiQueryStashImageInfo.php
includes/api/ApiQueryTags.php
includes/api/ApiQueryUserContributions.php
includes/api/ApiQueryUserInfo.php
includes/api/ApiQueryUsers.php
includes/api/ApiQueryWatchlist.php
includes/api/ApiQueryWatchlistRaw.php
includes/api/ApiRevisionDelete.php
includes/api/ApiRollback.php
includes/api/ApiRsd.php
includes/api/ApiRunJobs.php [deleted file]
includes/api/ApiTokens.php
includes/api/ApiUnblock.php
includes/api/ApiUndelete.php
includes/api/ApiUpload.php
includes/api/ApiUserrights.php
includes/api/ApiWatch.php
includes/cache/LocalisationCache.php
includes/cache/ProcessCacheLRU.php [deleted file]
includes/changes/ChangesList.php
includes/changes/EnhancedChangesList.php
includes/changes/OldChangesList.php
includes/changes/RCCacheEntryFactory.php [new file with mode: 0644]
includes/changes/RecentChange.php
includes/composer/ComposerHookHandler.php
includes/composer/ComposerVersionNormalizer.php
includes/content/AbstractContent.php
includes/content/Content.php
includes/content/ContentHandler.php
includes/content/CssContent.php
includes/content/CssContentHandler.php
includes/content/JavaScriptContent.php
includes/content/JavaScriptContentHandler.php
includes/content/MessageContent.php
includes/content/TextContent.php
includes/content/TextContentHandler.php
includes/content/WikitextContent.php
includes/content/WikitextContentHandler.php
includes/db/CloneDatabase.php
includes/db/Database.php
includes/db/DatabaseError.php
includes/db/DatabaseMssql.php
includes/db/DatabaseMysqlBase.php
includes/db/DatabaseMysqli.php
includes/db/DatabaseOracle.php
includes/db/DatabasePostgres.php
includes/db/DatabaseSqlite.php
includes/db/LoadBalancer.php
includes/diff/ArrayDiffFormatter.php
includes/diff/DairikiDiff.php
includes/diff/DiffFormatter.php
includes/diff/DifferenceEngine.php
includes/diff/TableDiffFormatter.php
includes/diff/UnifiedDiffFormatter.php
includes/diff/WikiDiff3.php
includes/exception/MWException.php
includes/filebackend/FileBackendStore.php
includes/filebackend/SwiftFileBackend.php
includes/filerepo/FileRepo.php
includes/filerepo/file/LocalFile.php
includes/htmlform/HTMLForm.php
includes/htmlform/HTMLMultiSelectField.php
includes/htmlform/HTMLRadioField.php
includes/htmlform/HTMLSelectAndOtherField.php
includes/htmlform/HTMLSelectField.php
includes/htmlform/HTMLSelectOrOtherField.php
includes/htmlform/HTMLTextField.php
includes/installer/InstallDocFormatter.php
includes/installer/Installer.i18n.php [deleted file]
includes/installer/Installer.php
includes/installer/LocalSettingsGenerator.php
includes/installer/MssqlInstaller.php
includes/installer/OracleUpdater.php
includes/installer/WebInstallerOutput.php
includes/installer/WebInstallerPage.php
includes/installer/i18n/af.json [new file with mode: 0644]
includes/installer/i18n/aln.json [new file with mode: 0644]
includes/installer/i18n/am.json [new file with mode: 0644]
includes/installer/i18n/an.json [new file with mode: 0644]
includes/installer/i18n/ang.json [new file with mode: 0644]
includes/installer/i18n/ar.json [new file with mode: 0644]
includes/installer/i18n/arc.json [new file with mode: 0644]
includes/installer/i18n/ary.json [new file with mode: 0644]
includes/installer/i18n/arz.json [new file with mode: 0644]
includes/installer/i18n/as.json [new file with mode: 0644]
includes/installer/i18n/ast.json [new file with mode: 0644]
includes/installer/i18n/avk.json [new file with mode: 0644]
includes/installer/i18n/az.json [new file with mode: 0644]
includes/installer/i18n/ba.json [new file with mode: 0644]
includes/installer/i18n/bar.json [new file with mode: 0644]
includes/installer/i18n/bcc.json [new file with mode: 0644]
includes/installer/i18n/bcl.json [new file with mode: 0644]
includes/installer/i18n/be-tarask.json [new file with mode: 0644]
includes/installer/i18n/be.json [new file with mode: 0644]
includes/installer/i18n/bg.json [new file with mode: 0644]
includes/installer/i18n/bjn.json [new file with mode: 0644]
includes/installer/i18n/bn.json [new file with mode: 0644]
includes/installer/i18n/bpy.json [new file with mode: 0644]
includes/installer/i18n/br.json [new file with mode: 0644]
includes/installer/i18n/bs.json [new file with mode: 0644]
includes/installer/i18n/ca.json [new file with mode: 0644]
includes/installer/i18n/ce.json [new file with mode: 0644]
includes/installer/i18n/ceb.json [new file with mode: 0644]
includes/installer/i18n/ckb.json [new file with mode: 0644]
includes/installer/i18n/cps.json [new file with mode: 0644]
includes/installer/i18n/crh-cyrl.json [new file with mode: 0644]
includes/installer/i18n/crh-latn.json [new file with mode: 0644]
includes/installer/i18n/cs.json [new file with mode: 0644]
includes/installer/i18n/csb.json [new file with mode: 0644]
includes/installer/i18n/cu.json [new file with mode: 0644]
includes/installer/i18n/cv.json [new file with mode: 0644]
includes/installer/i18n/cy.json [new file with mode: 0644]
includes/installer/i18n/da.json [new file with mode: 0644]
includes/installer/i18n/de-formal.json [new file with mode: 0644]
includes/installer/i18n/de.json [new file with mode: 0644]
includes/installer/i18n/diq.json [new file with mode: 0644]
includes/installer/i18n/dsb.json [new file with mode: 0644]
includes/installer/i18n/dtp.json [new file with mode: 0644]
includes/installer/i18n/el.json [new file with mode: 0644]
includes/installer/i18n/en-gb.json [new file with mode: 0644]
includes/installer/i18n/en.json [new file with mode: 0644]
includes/installer/i18n/eo.json [new file with mode: 0644]
includes/installer/i18n/es-formal.json [new file with mode: 0644]
includes/installer/i18n/es.json [new file with mode: 0644]
includes/installer/i18n/et.json [new file with mode: 0644]
includes/installer/i18n/eu.json [new file with mode: 0644]
includes/installer/i18n/ext.json [new file with mode: 0644]
includes/installer/i18n/fa.json [new file with mode: 0644]
includes/installer/i18n/fi.json [new file with mode: 0644]
includes/installer/i18n/fo.json [new file with mode: 0644]
includes/installer/i18n/fr.json [new file with mode: 0644]
includes/installer/i18n/frc.json [new file with mode: 0644]
includes/installer/i18n/frp.json [new file with mode: 0644]
includes/installer/i18n/frr.json [new file with mode: 0644]
includes/installer/i18n/fur.json [new file with mode: 0644]
includes/installer/i18n/fy.json [new file with mode: 0644]
includes/installer/i18n/ga.json [new file with mode: 0644]
includes/installer/i18n/gag.json [new file with mode: 0644]
includes/installer/i18n/gan-hans.json [new file with mode: 0644]
includes/installer/i18n/gan-hant.json [new file with mode: 0644]
includes/installer/i18n/gd.json [new file with mode: 0644]
includes/installer/i18n/gl.json [new file with mode: 0644]
includes/installer/i18n/gom-latn.json [new file with mode: 0644]
includes/installer/i18n/grc.json [new file with mode: 0644]
includes/installer/i18n/gsw.json [new file with mode: 0644]
includes/installer/i18n/gu.json [new file with mode: 0644]
includes/installer/i18n/gv.json [new file with mode: 0644]
includes/installer/i18n/hak.json [new file with mode: 0644]
includes/installer/i18n/haw.json [new file with mode: 0644]
includes/installer/i18n/he.json [new file with mode: 0644]
includes/installer/i18n/hi.json [new file with mode: 0644]
includes/installer/i18n/hif-latn.json [new file with mode: 0644]
includes/installer/i18n/hil.json [new file with mode: 0644]
includes/installer/i18n/hr.json [new file with mode: 0644]
includes/installer/i18n/hsb.json [new file with mode: 0644]
includes/installer/i18n/ht.json [new file with mode: 0644]
includes/installer/i18n/hu-formal.json [new file with mode: 0644]
includes/installer/i18n/hu.json [new file with mode: 0644]
includes/installer/i18n/hy.json [new file with mode: 0644]
includes/installer/i18n/ia.json [new file with mode: 0644]
includes/installer/i18n/id.json [new file with mode: 0644]
includes/installer/i18n/ie.json [new file with mode: 0644]
includes/installer/i18n/ig.json [new file with mode: 0644]
includes/installer/i18n/ilo.json [new file with mode: 0644]
includes/installer/i18n/io.json [new file with mode: 0644]
includes/installer/i18n/is.json [new file with mode: 0644]
includes/installer/i18n/it.json [new file with mode: 0644]
includes/installer/i18n/ja.json [new file with mode: 0644]
includes/installer/i18n/jam.json [new file with mode: 0644]
includes/installer/i18n/jut.json [new file with mode: 0644]
includes/installer/i18n/jv.json [new file with mode: 0644]
includes/installer/i18n/ka.json [new file with mode: 0644]
includes/installer/i18n/kaa.json [new file with mode: 0644]
includes/installer/i18n/kbd-cyrl.json [new file with mode: 0644]
includes/installer/i18n/khw.json [new file with mode: 0644]
includes/installer/i18n/kiu.json [new file with mode: 0644]
includes/installer/i18n/kk-arab.json [new file with mode: 0644]
includes/installer/i18n/kk-cyrl.json [new file with mode: 0644]
includes/installer/i18n/kk-latn.json [new file with mode: 0644]
includes/installer/i18n/km.json [new file with mode: 0644]
includes/installer/i18n/kn.json [new file with mode: 0644]
includes/installer/i18n/ko.json [new file with mode: 0644]
includes/installer/i18n/krc.json [new file with mode: 0644]
includes/installer/i18n/ksh.json [new file with mode: 0644]
includes/installer/i18n/ku-latn.json [new file with mode: 0644]
includes/installer/i18n/lad.json [new file with mode: 0644]
includes/installer/i18n/lb.json [new file with mode: 0644]
includes/installer/i18n/lfn.json [new file with mode: 0644]
includes/installer/i18n/lg.json [new file with mode: 0644]
includes/installer/i18n/li.json [new file with mode: 0644]
includes/installer/i18n/lo.json [new file with mode: 0644]
includes/installer/i18n/lt.json [new file with mode: 0644]
includes/installer/i18n/lv.json [new file with mode: 0644]
includes/installer/i18n/lzh.json [new file with mode: 0644]
includes/installer/i18n/lzz.json [new file with mode: 0644]
includes/installer/i18n/mai.json [new file with mode: 0644]
includes/installer/i18n/mdf.json [new file with mode: 0644]
includes/installer/i18n/mg.json [new file with mode: 0644]
includes/installer/i18n/mhr.json [new file with mode: 0644]
includes/installer/i18n/min.json [new file with mode: 0644]
includes/installer/i18n/mk.json [new file with mode: 0644]
includes/installer/i18n/ml.json [new file with mode: 0644]
includes/installer/i18n/mn.json [new file with mode: 0644]
includes/installer/i18n/mr.json [new file with mode: 0644]
includes/installer/i18n/ms.json [new file with mode: 0644]
includes/installer/i18n/mt.json [new file with mode: 0644]
includes/installer/i18n/my.json [new file with mode: 0644]
includes/installer/i18n/myv.json [new file with mode: 0644]
includes/installer/i18n/mzn.json [new file with mode: 0644]
includes/installer/i18n/nah.json [new file with mode: 0644]
includes/installer/i18n/nan.json [new file with mode: 0644]
includes/installer/i18n/nb.json [new file with mode: 0644]
includes/installer/i18n/nds-nl.json [new file with mode: 0644]
includes/installer/i18n/nds.json [new file with mode: 0644]
includes/installer/i18n/ne.json [new file with mode: 0644]
includes/installer/i18n/nl-informal.json [new file with mode: 0644]
includes/installer/i18n/nl.json [new file with mode: 0644]
includes/installer/i18n/nn.json [new file with mode: 0644]
includes/installer/i18n/no.json [new file with mode: 0644]
includes/installer/i18n/oc.json [new file with mode: 0644]
includes/installer/i18n/or.json [new file with mode: 0644]
includes/installer/i18n/os.json [new file with mode: 0644]
includes/installer/i18n/pa.json [new file with mode: 0644]
includes/installer/i18n/pam.json [new file with mode: 0644]
includes/installer/i18n/pcd.json [new file with mode: 0644]
includes/installer/i18n/pdc.json [new file with mode: 0644]
includes/installer/i18n/pl.json [new file with mode: 0644]
includes/installer/i18n/pms.json [new file with mode: 0644]
includes/installer/i18n/pnt.json [new file with mode: 0644]
includes/installer/i18n/prg.json [new file with mode: 0644]
includes/installer/i18n/ps.json [new file with mode: 0644]
includes/installer/i18n/pt-br.json [new file with mode: 0644]
includes/installer/i18n/pt.json [new file with mode: 0644]
includes/installer/i18n/qqq.json [new file with mode: 0644]
includes/installer/i18n/qu.json [new file with mode: 0644]
includes/installer/i18n/rgn.json [new file with mode: 0644]
includes/installer/i18n/rm.json [new file with mode: 0644]
includes/installer/i18n/ro.json [new file with mode: 0644]
includes/installer/i18n/roa-tara.json [new file with mode: 0644]
includes/installer/i18n/ru.json [new file with mode: 0644]
includes/installer/i18n/rue.json [new file with mode: 0644]
includes/installer/i18n/sa.json [new file with mode: 0644]
includes/installer/i18n/sah.json [new file with mode: 0644]
includes/installer/i18n/sc.json [new file with mode: 0644]
includes/installer/i18n/scn.json [new file with mode: 0644]
includes/installer/i18n/sco.json [new file with mode: 0644]
includes/installer/i18n/sdc.json [new file with mode: 0644]
includes/installer/i18n/sei.json [new file with mode: 0644]
includes/installer/i18n/sh.json [new file with mode: 0644]
includes/installer/i18n/shi.json [new file with mode: 0644]
includes/installer/i18n/si.json [new file with mode: 0644]
includes/installer/i18n/sk.json [new file with mode: 0644]
includes/installer/i18n/sl.json [new file with mode: 0644]
includes/installer/i18n/sli.json [new file with mode: 0644]
includes/installer/i18n/so.json [new file with mode: 0644]
includes/installer/i18n/sq.json [new file with mode: 0644]
includes/installer/i18n/sr-ec.json [new file with mode: 0644]
includes/installer/i18n/sr-el.json [new file with mode: 0644]
includes/installer/i18n/srn.json [new file with mode: 0644]
includes/installer/i18n/ss.json [new file with mode: 0644]
includes/installer/i18n/stq.json [new file with mode: 0644]
includes/installer/i18n/su.json [new file with mode: 0644]
includes/installer/i18n/sv.json [new file with mode: 0644]
includes/installer/i18n/sw.json [new file with mode: 0644]
includes/installer/i18n/szl.json [new file with mode: 0644]
includes/installer/i18n/ta.json [new file with mode: 0644]
includes/installer/i18n/tcy.json [new file with mode: 0644]
includes/installer/i18n/te.json [new file with mode: 0644]
includes/installer/i18n/tet.json [new file with mode: 0644]
includes/installer/i18n/tg-cyrl.json [new file with mode: 0644]
includes/installer/i18n/tg-latn.json [new file with mode: 0644]
includes/installer/i18n/th.json [new file with mode: 0644]
includes/installer/i18n/tk.json [new file with mode: 0644]
includes/installer/i18n/tl.json [new file with mode: 0644]
includes/installer/i18n/tly.json [new file with mode: 0644]
includes/installer/i18n/tr.json [new file with mode: 0644]
includes/installer/i18n/tt-cyrl.json [new file with mode: 0644]
includes/installer/i18n/tt-latn.json [new file with mode: 0644]
includes/installer/i18n/udm.json [new file with mode: 0644]
includes/installer/i18n/ug-arab.json [new file with mode: 0644]
includes/installer/i18n/uk.json [new file with mode: 0644]
includes/installer/i18n/ur.json [new file with mode: 0644]
includes/installer/i18n/uz.json [new file with mode: 0644]
includes/installer/i18n/vec.json [new file with mode: 0644]
includes/installer/i18n/vep.json [new file with mode: 0644]
includes/installer/i18n/vi.json [new file with mode: 0644]
includes/installer/i18n/vo.json [new file with mode: 0644]
includes/installer/i18n/vro.json [new file with mode: 0644]
includes/installer/i18n/wa.json [new file with mode: 0644]
includes/installer/i18n/war.json [new file with mode: 0644]
includes/installer/i18n/wo.json [new file with mode: 0644]
includes/installer/i18n/wuu.json [new file with mode: 0644]
includes/installer/i18n/xal.json [new file with mode: 0644]
includes/installer/i18n/yi.json [new file with mode: 0644]
includes/installer/i18n/yo.json [new file with mode: 0644]
includes/installer/i18n/yue.json [new file with mode: 0644]
includes/installer/i18n/zea.json [new file with mode: 0644]
includes/installer/i18n/zh-hans.json [new file with mode: 0644]
includes/installer/i18n/zh-hant.json [new file with mode: 0644]
includes/installer/i18n/zh-hk.json [new file with mode: 0644]
includes/installer/i18n/zh-tw.json [new file with mode: 0644]
includes/job/Job.php [deleted file]
includes/job/JobQueue.php [deleted file]
includes/job/JobQueueDB.php [deleted file]
includes/job/JobQueueFederated.php [deleted file]
includes/job/JobQueueGroup.php [deleted file]
includes/job/JobQueueRedis.php [deleted file]
includes/job/JobSpecification.php [deleted file]
includes/job/README [deleted file]
includes/job/aggregator/JobQueueAggregator.php [deleted file]
includes/job/aggregator/JobQueueAggregatorMemc.php [deleted file]
includes/job/aggregator/JobQueueAggregatorRedis.php [deleted file]
includes/job/jobs/AssembleUploadChunksJob.php [deleted file]
includes/job/jobs/DoubleRedirectJob.php [deleted file]
includes/job/jobs/DuplicateJob.php [deleted file]
includes/job/jobs/EmaillingJob.php [deleted file]
includes/job/jobs/EnotifNotifyJob.php [deleted file]
includes/job/jobs/HTMLCacheUpdateJob.php [deleted file]
includes/job/jobs/NullJob.php [deleted file]
includes/job/jobs/PublishStashedFileJob.php [deleted file]
includes/job/jobs/RefreshLinksJob.php [deleted file]
includes/job/jobs/RefreshLinksJob2.php [deleted file]
includes/job/jobs/UploadFromUrlJob.php [deleted file]
includes/job/utils/BacklinkJobUtils.php [deleted file]
includes/jobqueue/Job.php [new file with mode: 0644]
includes/jobqueue/JobQueue.php [new file with mode: 0644]
includes/jobqueue/JobQueueDB.php [new file with mode: 0644]
includes/jobqueue/JobQueueFederated.php [new file with mode: 0644]
includes/jobqueue/JobQueueGroup.php [new file with mode: 0644]
includes/jobqueue/JobQueueRedis.php [new file with mode: 0644]
includes/jobqueue/JobSpecification.php [new file with mode: 0644]
includes/jobqueue/README [new file with mode: 0644]
includes/jobqueue/aggregator/JobQueueAggregator.php [new file with mode: 0644]
includes/jobqueue/aggregator/JobQueueAggregatorMemc.php [new file with mode: 0644]
includes/jobqueue/aggregator/JobQueueAggregatorRedis.php [new file with mode: 0644]
includes/jobqueue/jobs/AssembleUploadChunksJob.php [new file with mode: 0644]
includes/jobqueue/jobs/DoubleRedirectJob.php [new file with mode: 0644]
includes/jobqueue/jobs/DuplicateJob.php [new file with mode: 0644]
includes/jobqueue/jobs/EmaillingJob.php [new file with mode: 0644]
includes/jobqueue/jobs/EnotifNotifyJob.php [new file with mode: 0644]
includes/jobqueue/jobs/HTMLCacheUpdateJob.php [new file with mode: 0644]
includes/jobqueue/jobs/NullJob.php [new file with mode: 0644]
includes/jobqueue/jobs/PublishStashedFileJob.php [new file with mode: 0644]
includes/jobqueue/jobs/RefreshLinksJob.php [new file with mode: 0644]
includes/jobqueue/jobs/RefreshLinksJob2.php [new file with mode: 0644]
includes/jobqueue/jobs/UploadFromUrlJob.php [new file with mode: 0644]
includes/jobqueue/utils/BacklinkJobUtils.php [new file with mode: 0644]
includes/libs/CSSMin.php
includes/libs/ProcessCacheLRU.php [new file with mode: 0644]
includes/libs/lessc.inc.php
includes/logging/LogEventsList.php
includes/logging/LogPage.php
includes/logging/LogPager.php
includes/media/DjVuImage.php
includes/media/Jpeg.php
includes/media/MediaHandler.php
includes/normal/RandomTest.php
includes/normal/Utf8Test.php
includes/normal/UtfNormal.php
includes/normal/UtfNormalBench.php
includes/normal/UtfNormalGenerate.php
includes/normal/UtfNormalMemStress.php
includes/normal/UtfNormalTest.php
includes/normal/UtfNormalUtil.php
includes/objectcache/BagOStuff.php
includes/objectcache/MemcachedBagOStuff.php
includes/objectcache/MemcachedClient.php
includes/objectcache/MemcachedPeclBagOStuff.php
includes/objectcache/RedisBagOStuff.php
includes/parser/CoreParserFunctions.php
includes/parser/CoreTagHooks.php
includes/parser/Parser.php
includes/parser/ParserOutput.php
includes/parser/Preprocessor_DOM.php
includes/parser/Preprocessor_Hash.php
includes/profiler/Profiler.php
includes/profiler/ProfilerMwprof.php
includes/profiler/ProfilerSimple.php
includes/rcfeed/IRCColourfulRCFeedFormatter.php
includes/resourceloader/ResourceLoader.php
includes/resourceloader/ResourceLoaderStartUpModule.php
includes/revisiondelete/RevisionDelete.php
includes/search/SearchEngine.php
includes/search/SearchHighlighter.php [new file with mode: 0644]
includes/search/SearchMySQL.php
includes/search/SearchOracle.php
includes/search/SearchPostgres.php
includes/search/SearchResult.php [new file with mode: 0644]
includes/search/SearchResultSet.php [new file with mode: 0644]
includes/site/SiteList.php
includes/specialpage/ChangesListSpecialPage.php
includes/specialpage/SpecialPage.php
includes/specialpage/SpecialPageFactory.php
includes/specials/SpecialActiveusers.php
includes/specials/SpecialAllmessages.php
includes/specials/SpecialAllpages.php
includes/specials/SpecialBooksources.php
includes/specials/SpecialChangePassword.php
includes/specials/SpecialContributions.php
includes/specials/SpecialCreateAccount.php
includes/specials/SpecialDeletedContributions.php
includes/specials/SpecialEditWatchlist.php
includes/specials/SpecialEmailuser.php
includes/specials/SpecialExpandTemplates.php
includes/specials/SpecialFilepath.php
includes/specials/SpecialImport.php
includes/specials/SpecialListDuplicatedFiles.php [new file with mode: 0644]
includes/specials/SpecialListfiles.php
includes/specials/SpecialMIMEsearch.php
includes/specials/SpecialMostrevisions.php
includes/specials/SpecialMovepage.php
includes/specials/SpecialMyRedirectPages.php
includes/specials/SpecialNewimages.php
includes/specials/SpecialPermanentLink.php
includes/specials/SpecialPrefixindex.php
includes/specials/SpecialRandomInCategory.php
includes/specials/SpecialRecentchanges.php
includes/specials/SpecialRecentchangeslinked.php
includes/specials/SpecialRedirect.php
includes/specials/SpecialResetTokens.php
includes/specials/SpecialRevisiondelete.php
includes/specials/SpecialRunJobs.php [new file with mode: 0644]
includes/specials/SpecialSearch.php
includes/specials/SpecialShortpages.php
includes/specials/SpecialStatistics.php
includes/specials/SpecialTags.php
includes/specials/SpecialUnblock.php
includes/specials/SpecialUncategorizedimages.php
includes/specials/SpecialUncategorizedpages.php
includes/specials/SpecialUndelete.php
includes/specials/SpecialUnusedcategories.php
includes/specials/SpecialUnusedimages.php
includes/specials/SpecialUnusedtemplates.php
includes/specials/SpecialUnwatchedpages.php
includes/specials/SpecialUpload.php
includes/specials/SpecialUploadStash.php
includes/specials/SpecialUserlogin.php
includes/specials/SpecialUserrights.php
includes/specials/SpecialVersion.php
includes/specials/SpecialWantedcategories.php
includes/specials/SpecialWantedfiles.php
includes/specials/SpecialWantedpages.php
includes/specials/SpecialWantedtemplates.php
includes/specials/SpecialWatchlist.php
includes/specials/SpecialWhatlinkshere.php
includes/specials/SpecialWithoutinterwiki.php
includes/templates/NoLocalSettings.php
includes/templates/Usercreate.php
includes/templates/Userlogin.php
includes/upload/UploadBase.php
languages/LanguageConverter.php
languages/classes/LanguageUz.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/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/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/MessagesEgl.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/MessagesJv.php
languages/messages/MessagesKa.php
languages/messages/MessagesKaa.php
languages/messages/MessagesKab.php
languages/messages/MessagesKbd_cyrl.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/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/MessagesLmo.php
languages/messages/MessagesLo.php
languages/messages/MessagesLoz.php
languages/messages/MessagesLrc.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/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/MessagesSdc.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/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/MessagesTr.php
languages/messages/MessagesTru.php
languages/messages/MessagesTs.php
languages/messages/MessagesTt.php
languages/messages/MessagesTt_cyrl.php
languages/messages/MessagesTt_latn.php
languages/messages/MessagesTyv.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.php
languages/messages/MessagesZh_cn.php
languages/messages/MessagesZh_hans.php
languages/messages/MessagesZh_hant.php
languages/messages/MessagesZh_hk.php
languages/messages/MessagesZh_mo.php
languages/messages/MessagesZh_sg.php
languages/messages/MessagesZh_tw.php
languages/utils/CLDRPluralRuleEvaluator.php
maintenance/7zip.inc
maintenance/attachLatest.php
maintenance/backup.inc
maintenance/backupPrefetch.inc
maintenance/backupTextPass.inc
maintenance/benchmarks/bench_strtr_str_replace.php
maintenance/cleanupCaps.php
maintenance/cleanupImages.php
maintenance/cleanupTitles.php
maintenance/cleanupWatchlist.php
maintenance/compareParsers.php
maintenance/doMaintenance.php
maintenance/dumpBackup.php
maintenance/dumpIterator.php
maintenance/dumpLinks.php
maintenance/dumpSisterSites.php
maintenance/dumpTextPass.php
maintenance/fixDoubleRedirects.php
maintenance/generateJsonI18n.php
maintenance/importDump.php
maintenance/importTextFile.php
maintenance/install.php
maintenance/interwiki.list
maintenance/interwiki.sql
maintenance/jsduck/categories.json
maintenance/jsduck/config.json
maintenance/language/generateUtf8Case.php
maintenance/language/messageTypes.inc
maintenance/language/messages.inc
maintenance/language/transstat.php
maintenance/namespaceDupes.php
maintenance/oracle/archives/patch-user_password_expire.sql [new file with mode: 0644]
maintenance/orphans.php
maintenance/postgres/tables.sql
maintenance/preprocessDump.php
maintenance/purgeList.php
maintenance/rebuildFileCache.php
maintenance/rebuildImages.php
maintenance/rebuildtextindex.php
maintenance/refreshImageMetadata.php
maintenance/renderDump.php
maintenance/runJobs.php
maintenance/showCacheStats.php
maintenance/syncFileBackend.php
maintenance/update.php
maintenance/updateSpecialPages.php
maintenance/userDupes.inc
resources/Resources.php
resources/jquery/jquery.autoEllipsis.js
resources/jquery/jquery.byteLimit.js
resources/jquery/jquery.client.js
resources/jquery/jquery.color.js
resources/jquery/jquery.colorUtil.js
resources/jquery/jquery.hidpi.js
resources/jquery/jquery.highlightText.js
resources/jquery/jquery.localize.js
resources/jquery/jquery.makeCollapsible.js
resources/jquery/jquery.mwExtension.js
resources/jquery/jquery.placeholder.js
resources/jquery/jquery.qunit.completenessTest.js
resources/jquery/jquery.suggestions.js
resources/jquery/jquery.tablesorter.js
resources/jquery/jquery.textSelection.js
resources/mediawiki.action/mediawiki.action.edit.editWarning.js
resources/mediawiki.action/mediawiki.action.edit.js
resources/mediawiki.action/mediawiki.action.history.js
resources/mediawiki.action/mediawiki.action.view.metadata.js
resources/mediawiki.api/mediawiki.api.category.js
resources/mediawiki.api/mediawiki.api.edit.js
resources/mediawiki.api/mediawiki.api.js
resources/mediawiki.api/mediawiki.api.parse.js
resources/mediawiki.api/mediawiki.api.watch.js
resources/mediawiki.language/languages/fi.js
resources/mediawiki.language/languages/hy.js
resources/mediawiki.language/languages/la.js
resources/mediawiki.language/languages/os.js
resources/mediawiki.language/languages/uk.js
resources/mediawiki.language/mediawiki.language.js
resources/mediawiki.page/mediawiki.page.gallery.js
resources/mediawiki.page/mediawiki.page.image.pagination.js
resources/mediawiki.page/mediawiki.page.watch.ajax.js
resources/mediawiki.special/mediawiki.special.block.js
resources/mediawiki.special/mediawiki.special.css
resources/mediawiki.special/mediawiki.special.javaScriptTest.js
resources/mediawiki.special/mediawiki.special.preferences.js
resources/mediawiki.special/mediawiki.special.upload.js
resources/mediawiki.special/mediawiki.special.userlogin.signup.js
resources/mediawiki.ui/components/default/buttons.less
resources/mediawiki.ui/mixins/effects.less
resources/mediawiki/mediawiki.Title.js
resources/mediawiki/mediawiki.debug.css [deleted file]
resources/mediawiki/mediawiki.debug.js
resources/mediawiki/mediawiki.debug.less [new file with mode: 0644]
resources/mediawiki/mediawiki.feedback.js
resources/mediawiki/mediawiki.hlist.css
resources/mediawiki/mediawiki.hlist.js
resources/mediawiki/mediawiki.inspect.js
resources/mediawiki/mediawiki.jqueryMsg.js
resources/mediawiki/mediawiki.js
resources/mediawiki/mediawiki.notification.css
resources/mediawiki/mediawiki.searchSuggest.js
resources/mediawiki/mediawiki.toc.js
resources/oojs-ui/i18n/ast.json
resources/oojs-ui/i18n/az.json
resources/oojs-ui/i18n/bg.json
resources/oojs-ui/i18n/bs.json
resources/oojs-ui/i18n/ce.json
resources/oojs-ui/i18n/cs.json
resources/oojs-ui/i18n/cu.json
resources/oojs-ui/i18n/de.json
resources/oojs-ui/i18n/fa.json
resources/oojs-ui/i18n/fi.json
resources/oojs-ui/i18n/fr.json
resources/oojs-ui/i18n/frr.json
resources/oojs-ui/i18n/gl.json
resources/oojs-ui/i18n/gu.json
resources/oojs-ui/i18n/he.json
resources/oojs-ui/i18n/hsb.json
resources/oojs-ui/i18n/hu.json
resources/oojs-ui/i18n/hy.json
resources/oojs-ui/i18n/ilo.json
resources/oojs-ui/i18n/is.json
resources/oojs-ui/i18n/it.json
resources/oojs-ui/i18n/ja.json
resources/oojs-ui/i18n/kn.json [new file with mode: 0644]
resources/oojs-ui/i18n/ko.json
resources/oojs-ui/i18n/lb.json
resources/oojs-ui/i18n/lt.json
resources/oojs-ui/i18n/mk.json
resources/oojs-ui/i18n/nl.json
resources/oojs-ui/i18n/om.json
resources/oojs-ui/i18n/pfl.json [new file with mode: 0644]
resources/oojs-ui/i18n/pl.json
resources/oojs-ui/i18n/pt.json
resources/oojs-ui/i18n/qqq.json
resources/oojs-ui/i18n/ro.json
resources/oojs-ui/i18n/ru.json
resources/oojs-ui/i18n/sco.json [new file with mode: 0644]
resources/oojs-ui/i18n/sl.json
resources/oojs-ui/i18n/sq.json
resources/oojs-ui/i18n/sr-ec.json
resources/oojs-ui/i18n/sv.json
resources/oojs-ui/i18n/uk.json
resources/oojs-ui/i18n/vi.json
resources/oojs-ui/i18n/zh-hans.json
resources/oojs-ui/i18n/zh-hant.json
resources/oojs-ui/images/icons/add-item.png
resources/oojs-ui/images/icons/add-item.svg
resources/oojs-ui/oojs-ui-apex.css [new file with mode: 0644]
resources/oojs-ui/oojs-ui.js
resources/oojs-ui/oojs-ui.svg.css
resources/oojs-ui/update-oojs-ui.sh
resources/oojs/oojs.js
resources/oojs/update-oojs.sh
resources/sinonjs/sinon-1.8.1.js [deleted file]
resources/sinonjs/sinon-1.9.0.js [new file with mode: 0644]
resources/sinonjs/sinon-ie-1.8.1.js [deleted file]
resources/sinonjs/sinon-ie-1.9.0.js [new file with mode: 0644]
skins/CologneBlue.php
skins/MonoBook.php
skins/Vector.php
skins/cologneblue/screen.css
skins/common/IEFixes.js
skins/common/ajax.js
skins/common/commonContent.css
skins/common/config.js
skins/common/shared.css
skins/common/upload.js
skins/common/wikibits.js
skins/monobook/IE60Fixes.css
skins/monobook/main.css
skins/vector/components/animations.less [new file with mode: 0644]
skins/vector/components/common.less
skins/vector/components/search.less
skins/vector/styles.less
skins/vector/vector.js
tests/TestsAutoLoader.php
tests/frontend/Gruntfile.js [new file with mode: 0644]
tests/frontend/package.json [new file with mode: 0644]
tests/parser/ParserTestResult.php
tests/parser/parserTest.inc
tests/parser/parserTests.txt
tests/parserTests.php
tests/phpunit/MediaWikiTestCase.php
tests/phpunit/ResourceLoaderTestCase.php [new file with mode: 0644]
tests/phpunit/data/media/README
tests/phpunit/docs/ExportDemoTest.php
tests/phpunit/includes/ArticleTablesTest.php
tests/phpunit/includes/ExtraParserTest.php
tests/phpunit/includes/MWTimestampTest.php
tests/phpunit/includes/MediaWikiVersionFetcherTest.php
tests/phpunit/includes/MessageTest.php
tests/phpunit/includes/ResourceLoaderModuleTest.php [deleted file]
tests/phpunit/includes/ResourceLoaderTest.php [deleted file]
tests/phpunit/includes/RevisionStorageTest.php
tests/phpunit/includes/SampleTest.php
tests/phpunit/includes/SkinTemplateTest.php [new file with mode: 0644]
tests/phpunit/includes/StatusTest.php
tests/phpunit/includes/TitleArrayFromResultTest.php
tests/phpunit/includes/TitleTest.php
tests/phpunit/includes/UserArrayFromResultTest.php
tests/phpunit/includes/UserTest.php
tests/phpunit/includes/WikiPageTest.php
tests/phpunit/includes/XmlTest.php
tests/phpunit/includes/api/ApiEditPageTest.php
tests/phpunit/includes/api/ApiQueryAllPagesTest.php
tests/phpunit/includes/cache/ProcessCacheLRUTest.php [deleted file]
tests/phpunit/includes/changes/RCCacheEntryFactoryTest.php [new file with mode: 0644]
tests/phpunit/includes/changes/RecentChangeTest.php
tests/phpunit/includes/composer/ComposerVersionNormalizerTest.php
tests/phpunit/includes/diff/ArrayDiffFormatterTest.php
tests/phpunit/includes/diff/DiffOpTest.php
tests/phpunit/includes/exception/BadTitleErrorTest.php
tests/phpunit/includes/exception/ErrorPageErrorTest.php [new file with mode: 0644]
tests/phpunit/includes/exception/MWExceptionTest.php
tests/phpunit/includes/exception/ReadOnlyErrorTest.php [new file with mode: 0644]
tests/phpunit/includes/exception/ThrottledErrorTest.php
tests/phpunit/includes/exception/UserNotLoggedInTest.php [new file with mode: 0644]
tests/phpunit/includes/installer/InstallDocFormatterTest.php
tests/phpunit/includes/libs/JavaScriptMinifierTest.php
tests/phpunit/includes/libs/ProcessCacheLRUTest.php [new file with mode: 0644]
tests/phpunit/includes/libs/RunningStatTest.php
tests/phpunit/includes/normal/CleanUpTest.php
tests/phpunit/includes/objectcache/BagOStuffTest.php
tests/phpunit/includes/parser/NewParserTest.php
tests/phpunit/includes/parser/PreprocessorTest.php
tests/phpunit/includes/resourceloader/ResourceLoaderModuleTest.php [new file with mode: 0644]
tests/phpunit/includes/resourceloader/ResourceLoaderStartupModuleTest.php [new file with mode: 0644]
tests/phpunit/includes/resourceloader/ResourceLoaderTest.php [new file with mode: 0644]
tests/phpunit/includes/search/SearchUpdateTest.php
tests/phpunit/includes/site/SiteListTest.php
tests/phpunit/includes/specials/QueryAllSpecialPagesTest.php
tests/phpunit/includes/specials/SpecialPreferencesTest.php
tests/phpunit/includes/upload/UploadFromUrlTest.php
tests/phpunit/includes/upload/UploadStashTest.php
tests/phpunit/includes/utils/UIDGeneratorTest.php
tests/phpunit/languages/LanguageRuTest.php
tests/phpunit/languages/LanguageTest.php
tests/phpunit/languages/SpecialPageAliasTest.php [new file with mode: 0644]
tests/phpunit/phpunit.php
tests/phpunit/skins/SideBarTest.php
tests/phpunit/structure/StructureTest.php
tests/phpunit/suites/ExtensionsTestSuite.php
tests/phpunit/tests/MediaWikiTestCaseTest.php [new file with mode: 0644]
tests/qunit/QUnitTestResources.php
tests/qunit/data/generateJqueryMsgData.php
tests/qunit/data/mediawiki.jqueryMsg.data.js
tests/qunit/data/testrunner.js
tests/qunit/suites/resources/jquery/jquery.color.test.js [new file with mode: 0644]
tests/qunit/suites/resources/jquery/jquery.delayedBind.test.js [deleted file]
tests/qunit/suites/resources/jquery/jquery.makeCollapsible.test.js
tests/qunit/suites/resources/jquery/jquery.placeholder.test.js
tests/qunit/suites/resources/jquery/jquery.textSelection.test.js
tests/qunit/suites/resources/mediawiki.api/mediawiki.api.parse.test.js
tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js
tests/qunit/suites/resources/mediawiki.api/mediawiki.api.watch.test.js [new file with mode: 0644]
tests/qunit/suites/resources/mediawiki/mediawiki.Title.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.jqueryMsg.test.js
tests/qunit/suites/resources/mediawiki/mediawiki.test.js
tests/testHelpers.inc

diff --git a/.jscsrc b/.jscsrc
new file mode 100644 (file)
index 0000000..b5481ea
--- /dev/null
+++ b/.jscsrc
@@ -0,0 +1,30 @@
+{
+       "requireCurlyBraces": ["if", "else", "for", "while", "do"],
+       "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "function"],
+       "requireParenthesesAroundIIFE": true,
+       "requireSpacesInFunctionExpression": {
+               "beforeOpeningCurlyBrace": true
+       },
+       "requireMultipleVarDecl": true,
+       "disallowEmptyBlocks": true,
+       "requireSpacesInsideObjectBrackets": "all",
+       "disallowSpaceAfterObjectKeys": true,
+       "requireCommaBeforeLineBreak": true,
+       "disallowLeftStickedOperators": ["?", ">", ">=", "<", "<="],
+       "disallowRightStickedOperators": ["?", "/", "*", ":", "=", "==", "===", "!=", "!==", ">", ">=", "<", "<="],
+       "requireRightStickedOperators": ["!"],
+       "requireLeftStickedOperators": [","],
+       "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~"],
+       "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"],
+       "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
+       "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="],
+       "disallowKeywords": [ "with" ],
+       "disallowMultipleLineBreaks": true,
+       "validateLineBreaks": "LF",
+       "validateQuoteMarks": "'",
+       "disallowMixedSpacesAndTabs": "smart",
+       "disallowTrailingWhitespace": true,
+       "requireLineFeedAtFileEnd": true,
+       "requireCapitalizedConstructors": true,
+       "requireDotNotation": true
+}
index a44a4d4..627f7ab 100644 (file)
@@ -1,14 +1,14 @@
 # Generated documentation
-docs/html/
-docs/js/
-resources/mediawiki.ui/docs
+docs/html/**
+docs/js/**
+resources/mediawiki.ui/docs/**
 
 # kss template for mediawiki ui documentation
-resources/styleguide-template
+resources/styleguide-template/**
 
 # third-party libs
-extensions/
-node_modules/
+extensions/**
+node_modules/**
 resources/jquery/jquery.appear.js
 resources/jquery/jquery.async.js
 resources/jquery/jquery.ba-throttle-debounce.js
@@ -26,14 +26,15 @@ resources/jquery/jquery.qunit.js
 resources/jquery/jquery.validate.js
 resources/jquery/jquery.xmldom.js
 resources/jquery.chosen/chosen.jquery.js
-resources/jquery.effects/
-resources/jquery.tipsy/
-resources/jquery.ui/
-resources/mediawiki.libs/
-resources/oojs/
-resources/oojs-ui/
-resources/sinonjs/
-resources/moment/
+resources/jquery.effects/**
+resources/jquery.tipsy/**
+resources/jquery.ui/**
+resources/mediawiki.libs/**
+resources/moment/**
+resources/oojs-ui/**
+resources/oojs/**
+resources/sinonjs/**
+tests/frontend/node_modules/**
 
 # github.com/jshint/jshint/issues/729
 tests/qunit/suites/resources/mediawiki/mediawiki.jscompat.test.js
index c4e265a..9d6c4d2 100644 (file)
--- a/.jshintrc
+++ b/.jshintrc
@@ -2,24 +2,20 @@
        /* Common */
 
        // Enforcing
-       "camelcase": true,
-       "curly": true,
        "eqeqeq": true,
-       "immed": true,
        "latedef": true,
-       "newcap": true,
        "noarg": true,
-       "noempty": true,
        "nonew": true,
-       "quotmark": "single",
-       "trailing": true,
        "undef": true,
        "unused": true,
-       // Legacy
-       "onevar": true,
 
        /* Local */
 
+       // FIXME: Deprecated, handle these with node-jscs instead.
+       // Handled here because we still have inline overrides in some places.
+       "camelcase": true,
+       "nomen": true,
+
        // Enforcing
        "bitwise": true,
        "forin": false,
@@ -31,8 +27,6 @@
        "multistr": true,
        // Environment
        "browser": true,
-       // Legacy
-       "nomen": true,
 
        "predef": [
                "mediaWiki",
index eb05fe2..e0a45a1 100644 (file)
@@ -13,12 +13,14 @@ php:
   - 5.3
   - 5.4
   - 5.5
+  - 5.6
 
 matrix:
   allow_failures:
     - php: 5.3
     - php: 5.4
     - php: 5.5
+    - php: 5.6
 
 services:
   - mysql
diff --git a/README b/README
index a4185ba..282ee6c 100644 (file)
--- a/README
+++ b/README
@@ -23,7 +23,7 @@ RELEASE-NOTES, INSTALL, and UPGRADE.
 * Seeking help from a person?
 ** https://www.mediawiki.org/wiki/Communication
 * Looking to file a bug report or a feature request?
-** https://bugs.mediawiki.org/
+** https://bugzilla.wikimedia.org/
 * Interested in helping out?
 ** https://www.mediawiki.org/wiki/How_to_contribute
 
index 382b54f..9633edd 100644 (file)
@@ -41,6 +41,16 @@ production.
 * $wgSkipSkin, which has been replaceable by $wgSkipSkins since 2005 (r9249), is
   now formally deprecated.
 * Removed deprecated $wgDisabledActions as it is hardly used anywhere.
+* $wgRateLimitLog has been deprecated and replaced by
+  $wgDebugLogGroup['ratelimit'].
+* $wgLocalInterwikis is an array containing multiple local interwiki prefixes
+  (interwiki prefixes that point back to the current wiki). This effectively
+  allows more than one value of $wgLocalInterwiki to be specified and
+  understood by the parser. The value of $wgLocalInterwiki is automatically
+  prepended to the start of this array.
+* $wgQueryPages has been removed. Query Pages should be added to by using the
+  wgQueryPages hook.
+* $wgHttpOnlyBlacklist has been removed.
 
 === New features in 1.23 ===
 * ResourceLoader can utilize the Web Storage API to cache modules client-side.
@@ -114,6 +124,13 @@ production.
   whether to send a watchlist email notification.
 * (bug 42026) Special:Contributions now includes an option to filter page
   creations, similar to the topOnly option.
+* Add mediawiki.ui.button styling to all pages so wiki content can use styled
+  buttons.
+* Special:UserLogin/signup now does AJAX checks for invalid and taken usernames,
+  displaying the error live.
+* Added BaseTemplateAfterPortlet hook to allow injecting html after portlets in skins.
+* Support has been added for a JSON based localisation file format. The
+  installer has been updated to use it.
 
 === Bug fixes in 1.23 ===
 * (bug 41759) The "updated since last visit" markers (on history pages, recent
@@ -151,6 +168,11 @@ production.
   message instead of leading the user to make a null edit.
 * (bug 52659) mediawiki.notification: Notification area remained visible when
   empty and thus was stealing pointer events from links on the page.
+* (bug 26811) When a DBUnexpectedError occurs, DB server hostnames are now
+  hidden unless $wgShowExceptionDetails is true, and $wgShowDBErrorBacktrace
+  no longer applies in such cases.
+* (bug 60960) Avoid doing file_exist() checks on data: URIs, as they cause
+  warnings to be printed on Windows due to large path length.
 
 === Web API changes in 1.23 ===
 * (bug 54884) action=parse&prop=categories now indicates hidden and missing
@@ -265,6 +287,23 @@ changes to languages because of Bugzilla reports.
 * The jquery.delayedBind ResourceLoader module was deprecated in favor of the
   jquery.throttle-debounce module. It will be removed in MediaWiki 1.24.
 * mw.user.bucket has been deprecated.
+* On Special:PrefixIndex, a table#mw-prefixindex-list-table was changed to
+  table.mw-prefixindex-list-table to avoid duplicate ids when the special page
+  is transcluded.
+* (bug 62198) window.$j has been deprecated.
+* Preference "Disable link title conversion" was removed.
+* SpecialRecentChanges no longer includes any functionality for generating feeds
+  - it has been factored out to ApiFeedRecentChanges. Old URLs redirect to new
+  ones.
+* RecentChange::mExtra['lang'] is no longer set and should no longer be used.
+  Extensions should read from other configuration variables, including
+  $wgLocalInterwikis, to identify the current wiki.
+* Sections in the parser test framework have been renamed and the old
+  section names are deprecated.  Please use "!!wikitext" and "!!html"
+  (or "!!html/php") instead of "!!input" and "!!result".  This allows
+  us to extend parser tests to accommodate additional input/output
+  pairs, such as "!!html/parsoid" (for the output of the Parsoid
+  parser, where it differs from the PHP parser).
 
 ==== Removed classes ====
 * FakeMemCachedClient (deprecated in 1.18)
diff --git a/api.php b/api.php
index 0d2312a..554c272 100644 (file)
--- a/api.php
+++ b/api.php
@@ -70,10 +70,21 @@ $wgTitle = Title::makeTitle( NS_MAIN, 'API' );
 $processor = new ApiMain( RequestContext::getMain(), $wgEnableWriteAPI );
 
 // Last chance hook before executing the API
-wfRunHooks( 'ApiBeforeMain', array( &$processor ) );
+try {
+       wfRunHooks( 'ApiBeforeMain', array( &$processor ) );
+       if ( !$processor instanceof ApiMain ) {
+               throw new MWException( 'ApiBeforMain hook set $processor to a non-ApiMain class' );
+       }
+} catch ( Exception $e ) {
+       // Crap. Try to report the exception in API format to be friendly to clients.
+       ApiMain::handleApiBeforeMainException( $e );
+       $processor = false;
+}
 
 // Process data & print results
-$processor->execute();
+if ( $processor ) {
+       $processor->execute();
+}
 
 if ( function_exists( 'fastcgi_finish_request' ) ) {
        fastcgi_finish_request();
@@ -97,11 +108,15 @@ if ( $wgAPIRequestLog ) {
                $_SERVER['HTTP_USER_AGENT']
        );
        $items[] = $wgRequest->wasPosted() ? 'POST' : 'GET';
-       $module = $processor->getModule();
-       if ( $module->mustBePosted() ) {
-               $items[] = "action=" . $wgRequest->getVal( 'action' );
+       if ( $processor ) {
+               $module = $processor->getModule();
+               if ( $module->mustBePosted() ) {
+                       $items[] = "action=" . $wgRequest->getVal( 'action' );
+               } else {
+                       $items[] = wfArrayToCgi( $wgRequest->getValues() );
+               }
        } else {
-               $items[] = wfArrayToCgi( $wgRequest->getValues() );
+               $items[] = "failed in ApiBeforeMain";
        }
        wfErrorLog( implode( ',', $items ) . "\n", $wgAPIRequestLog );
        wfDebug( "Logged API request to $wgAPIRequestLog\n" );
index e7fa89b..e4037e6 100644 (file)
@@ -709,6 +709,12 @@ pages or galleries in category pages.
 $name: Image name being checked
 &$bad: Whether or not the image is "bad"
 
+'BaseTemplateAfterPortlet': After output of portlets, allow injecting
+custom HTML after the section. Any uses of the hook need to handle escaping.
+$template BaseTemplate
+$portlet: string portlet name
+&$html: string
+
 'BeforeDisplayNoArticleText': Before displaying message key "noarticletext" or
 "noarticletext-nopermission" at Article::showMissingArticle().
 $article: article object
@@ -1818,7 +1824,7 @@ $isMinor: Whether or not the edit was marked as minor
 $isWatch: (No longer used)
 $section: (No longer used)
 $flags: Flags passed to WikiPage::doEditContent()
-$revision: New Revision of the article
+$revision: New Revision of the article (can be null for edits that change nothing)
 $status: Status object about to be returned by doEditContent()
 $baseRevId: the rev ID (or false) this edit was based on
 
@@ -2910,9 +2916,9 @@ run a MediaWiki cli script.
 &$options: Associative array of options, may contain the 'php' and 'wrapper'
   keys
 
-'wgQueryPages': Called when initialising $wgQueryPages, use this to add new
-query pages to be updated with maintenance/updateSpecialPages.php.
-$query: $wgQueryPages itself
+'wgQueryPages': Called when initialising list of QueryPage subclasses, use this
+to add new query pages to be updated with maintenance/updateSpecialPages.php.
+$qp: The list of QueryPages
 
 'XmlDumpWriterOpenPage': Called at the end of XmlDumpWriter::openPage, to allow
 extra metadata to be added.
index 46fcecc..6b4d37e 100644 (file)
@@ -86,10 +86,10 @@ function wfGetCustomMagicWordValue( &$parser, $var1, $var2 ){
        return "custom: var1 is $var1, var2 is $var2";
 }
 
-Note: the 'ParserFirstCallInit' hook is only aviable since 1.12. To work with
+Note: the 'ParserFirstCallInit' hook is only available since 1.12. To work with
 an older version, you'll need to use an extension function.
 
 Online documentation (contains more informations):
 Magic words: https://www.mediawiki.org/wiki/Manual:Magic_words
 Variables: https://www.mediawiki.org/wiki/Manual:Variable
-Parser functions: https://www.mediawiki.org/wiki/Manual:Parser_functions
\ No newline at end of file
+Parser functions: https://www.mediawiki.org/wiki/Manual:Parser_functions
index 72a7dab..391fb29 100644 (file)
@@ -2,7 +2,7 @@
 /**
  * Image authorisation script
  *
- * To use this, see http://www.mediawiki.org/wiki/Manual:Image_Authorization
+ * To use this, see https://www.mediawiki.org/wiki/Manual:Image_Authorization
  *
  * - Set $wgUploadDirectory to a non-public directory (not web accessible)
  * - Set $wgUploadPath to point to this file
@@ -92,11 +92,11 @@ function wfImageAuthMain() {
                if ( strpos( $path, $prefix ) === 0 ) {
                        $be = FileBackendGroup::singleton()->backendFromPath( $storageDir );
                        $filename = $storageDir . substr( $path, strlen( $prefix ) ); // strip prefix
-                       // Check basic user authorization
-                       if ( !RequestContext::getMain()->getUser()->isAllowed( 'read' ) ) {
-                               wfForbidden( 'img-auth-accessdenied', 'img-auth-noread', $path );
-                               return;
-                       }
+                       // Check basic user authorization
+                       if ( !RequestContext::getMain()->getUser()->isAllowed( 'read' ) ) {
+                               wfForbidden( 'img-auth-accessdenied', 'img-auth-noread', $path );
+                               return;
+                       }
                        if ( $be->fileExists( array( 'src' => $filename ) ) ) {
                                wfDebugLog( 'img_auth', "Streaming `" . $filename . "`." );
                                $be->streamFile( array( 'src' => $filename ),
index ac8a9f0..334cee3 100644 (file)
@@ -215,7 +215,7 @@ class AjaxResponse {
                $fname = 'AjaxResponse::checkLastModified';
 
                if ( !$timestamp || $timestamp == '19700101000000' ) {
-                       wfDebug( "$fname: CACHE DISABLED, NO TIMESTAMP\n" );
+                       wfDebug( "$fname: CACHE DISABLED, NO TIMESTAMP\n", 'log' );
                        return false;
                }
 
index c7b0c97..217744e 100644 (file)
@@ -3,7 +3,7 @@
  * Authentication plugin interface
  *
  * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 3e3805b..0873d87 100644 (file)
@@ -96,7 +96,8 @@ $wgAutoloadLocalClasses = array(
        'HTMLFloatField' => 'includes/htmlform/HTMLFloatField.php',
        'HTMLForm' => 'includes/htmlform/HTMLForm.php',
        'HTMLFormField' => 'includes/htmlform/HTMLFormField.php',
-       'HTMLFormFieldRequiredOptionsException' => 'includes/htmlform/HTMLFormFieldRequiredOptionsException.php',
+       'HTMLFormFieldRequiredOptionsException' =>
+               'includes/htmlform/HTMLFormFieldRequiredOptionsException.php',
        'HTMLHiddenField' => 'includes/htmlform/HTMLHiddenField.php',
        'HTMLInfoField' => 'includes/htmlform/HTMLInfoField.php',
        'HTMLIntField' => 'includes/htmlform/HTMLIntField.php',
@@ -273,6 +274,7 @@ $wgAutoloadLocalClasses = array(
        'ApiEmailUser' => 'includes/api/ApiEmailUser.php',
        'ApiExpandTemplates' => 'includes/api/ApiExpandTemplates.php',
        'ApiFeedContributions' => 'includes/api/ApiFeedContributions.php',
+       'ApiFeedRecentChanges' => 'includes/api/ApiFeedRecentChanges.php',
        'ApiFeedWatchlist' => 'includes/api/ApiFeedWatchlist.php',
        'ApiFileRevert' => 'includes/api/ApiFileRevert.php',
        'ApiFormatBase' => 'includes/api/ApiFormatBase.php',
@@ -359,7 +361,6 @@ $wgAutoloadLocalClasses = array(
        'ApiRevisionDelete' => 'includes/api/ApiRevisionDelete.php',
        'ApiRollback' => 'includes/api/ApiRollback.php',
        'ApiRsd' => 'includes/api/ApiRsd.php',
-       'ApiRunJobs' => 'includes/api/ApiRunJobs.php',
        'ApiSetNotificationTimestamp' => 'includes/api/ApiSetNotificationTimestamp.php',
        'ApiTokens' => 'includes/api/ApiTokens.php',
        'ApiUnblock' => 'includes/api/ApiUnblock.php',
@@ -384,7 +385,6 @@ $wgAutoloadLocalClasses = array(
        'MapCacheLRU' => 'includes/cache/MapCacheLRU.php',
        'MessageCache' => 'includes/cache/MessageCache.php',
        'ObjectFileCache' => 'includes/cache/ObjectFileCache.php',
-       'ProcessCacheLRU' => 'includes/cache/ProcessCacheLRU.php',
        'ResourceFileCache' => 'includes/cache/ResourceFileCache.php',
 
        # includes/changes
@@ -392,6 +392,7 @@ $wgAutoloadLocalClasses = array(
        'EnhancedChangesList' => 'includes/changes/EnhancedChangesList.php',
        'OldChangesList' => 'includes/changes/OldChangesList.php',
        'RCCacheEntry' => 'includes/changes/RCCacheEntry.php',
+       'RCCacheEntryFactory' => 'includes/changes/RCCacheEntryFactory.php',
        'RecentChange' => 'includes/changes/RecentChange.php',
 
        # includes/clientpool
@@ -449,6 +450,7 @@ $wgAutoloadLocalClasses = array(
        'DBConnectionError' => 'includes/db/DatabaseError.php',
        'DBConnRef' => 'includes/db/LoadBalancer.php',
        'DBError' => 'includes/db/DatabaseError.php',
+       'DBExpectedError' => 'includes/db/DatabaseError.php',
        'DBObject' => 'includes/db/DatabaseUtility.php',
        'IDatabase'  => 'includes/db/Database.php',
        'IORMRow' => 'includes/db/IORMRow.php',
@@ -653,35 +655,35 @@ $wgAutoloadLocalClasses = array(
        'WebInstallerPage' => 'includes/installer/WebInstallerPage.php',
 
        # includes/job
-       'IJobSpecification' => 'includes/job/JobSpecification.php',
-       'Job' => 'includes/job/Job.php',
-       'JobQueue' => 'includes/job/JobQueue.php',
-       'JobQueueAggregator' => 'includes/job/aggregator/JobQueueAggregator.php',
-       'JobQueueAggregatorMemc' => 'includes/job/aggregator/JobQueueAggregatorMemc.php',
-       'JobQueueAggregatorRedis' => 'includes/job/aggregator/JobQueueAggregatorRedis.php',
-       'JobQueueDB' => 'includes/job/JobQueueDB.php',
-       'JobQueueConnectionError' => 'includes/job/JobQueue.php',
-       'JobQueueError' => 'includes/job/JobQueue.php',
-       'JobQueueGroup' => 'includes/job/JobQueueGroup.php',
-       'JobQueueFederated' => 'includes/job/JobQueueFederated.php',
-       'JobQueueRedis' => 'includes/job/JobQueueRedis.php',
-       'JobSpecification' => 'includes/job/JobSpecification.php',
-
-       # includes/job/jobs
-       'DoubleRedirectJob' => 'includes/job/jobs/DoubleRedirectJob.php',
-       'DuplicateJob' => 'includes/job/jobs/DuplicateJob.php',
-       'EmaillingJob' => 'includes/job/jobs/EmaillingJob.php',
-       'EnotifNotifyJob' => 'includes/job/jobs/EnotifNotifyJob.php',
-       'HTMLCacheUpdateJob' => 'includes/job/jobs/HTMLCacheUpdateJob.php',
-       'NullJob' => 'includes/job/jobs/NullJob.php',
-       'RefreshLinksJob' => 'includes/job/jobs/RefreshLinksJob.php',
-       'RefreshLinksJob2' => 'includes/job/jobs/RefreshLinksJob2.php',
-       'UploadFromUrlJob' => 'includes/job/jobs/UploadFromUrlJob.php',
-       'AssembleUploadChunksJob' => 'includes/job/jobs/AssembleUploadChunksJob.php',
-       'PublishStashedFileJob' => 'includes/job/jobs/PublishStashedFileJob.php',
-
-       # includes/job/utils
-       'BacklinkJobUtils' => 'includes/job/utils/BacklinkJobUtils.php',
+       'IJobSpecification' => 'includes/jobqueue/JobSpecification.php',
+       'Job' => 'includes/jobqueue/Job.php',
+       'JobQueue' => 'includes/jobqueue/JobQueue.php',
+       'JobQueueAggregator' => 'includes/jobqueue/aggregator/JobQueueAggregator.php',
+       'JobQueueAggregatorMemc' => 'includes/jobqueue/aggregator/JobQueueAggregatorMemc.php',
+       'JobQueueAggregatorRedis' => 'includes/jobqueue/aggregator/JobQueueAggregatorRedis.php',
+       'JobQueueDB' => 'includes/jobqueue/JobQueueDB.php',
+       'JobQueueConnectionError' => 'includes/jobqueue/JobQueue.php',
+       'JobQueueError' => 'includes/jobqueue/JobQueue.php',
+       'JobQueueGroup' => 'includes/jobqueue/JobQueueGroup.php',
+       'JobQueueFederated' => 'includes/jobqueue/JobQueueFederated.php',
+       'JobQueueRedis' => 'includes/jobqueue/JobQueueRedis.php',
+       'JobSpecification' => 'includes/jobqueue/JobSpecification.php',
+
+       # includes/jobqueue/jobs
+       'DoubleRedirectJob' => 'includes/jobqueue/jobs/DoubleRedirectJob.php',
+       'DuplicateJob' => 'includes/jobqueue/jobs/DuplicateJob.php',
+       'EmaillingJob' => 'includes/jobqueue/jobs/EmaillingJob.php',
+       'EnotifNotifyJob' => 'includes/jobqueue/jobs/EnotifNotifyJob.php',
+       'HTMLCacheUpdateJob' => 'includes/jobqueue/jobs/HTMLCacheUpdateJob.php',
+       'NullJob' => 'includes/jobqueue/jobs/NullJob.php',
+       'RefreshLinksJob' => 'includes/jobqueue/jobs/RefreshLinksJob.php',
+       'RefreshLinksJob2' => 'includes/jobqueue/jobs/RefreshLinksJob2.php',
+       'UploadFromUrlJob' => 'includes/jobqueue/jobs/UploadFromUrlJob.php',
+       'AssembleUploadChunksJob' => 'includes/jobqueue/jobs/AssembleUploadChunksJob.php',
+       'PublishStashedFileJob' => 'includes/jobqueue/jobs/PublishStashedFileJob.php',
+
+       # includes/jobqueue/utils
+       'BacklinkJobUtils' => 'includes/jobqueue/utils/BacklinkJobUtils.php',
 
        # includes/json
        'FormatJson' => 'includes/json/FormatJson.php',
@@ -705,6 +707,7 @@ $wgAutoloadLocalClasses = array(
        'JSTokenizer' => 'includes/libs/jsminplus.php',
        'MultiHttpClient' => 'includes/libs/MultiHttpClient.php',
        'MWMessagePack' => 'includes/libs/MWMessagePack.php',
+       'ProcessCacheLRU' => 'includes/libs/ProcessCacheLRU.php',
        'RunningStat' => 'includes/libs/RunningStat.php',
        'ScopedCallback' => 'includes/libs/ScopedCallback.php',
        'ScopedPHPTimeout' => 'includes/libs/ScopedPHPTimeout.php',
@@ -903,18 +906,18 @@ $wgAutoloadLocalClasses = array(
        'SearchDatabase' => 'includes/search/SearchDatabase.php',
        'SearchEngine' => 'includes/search/SearchEngine.php',
        'SearchEngineDummy' => 'includes/search/SearchEngine.php',
-       'SearchHighlighter' => 'includes/search/SearchEngine.php',
+       'SearchHighlighter' => 'includes/search/SearchHighlighter.php',
        'SearchMssql' => 'includes/search/SearchMssql.php',
        'SearchMySQL' => 'includes/search/SearchMySQL.php',
-       'SearchNearMatchResultSet' => 'includes/search/SearchEngine.php',
+       'SearchNearMatchResultSet' => 'includes/search/SearchResultSet.php',
        'SearchOracle' => 'includes/search/SearchOracle.php',
        'SearchPostgres' => 'includes/search/SearchPostgres.php',
-       'SearchResult' => 'includes/search/SearchEngine.php',
-       'SearchResultSet' => 'includes/search/SearchEngine.php',
+       'SearchResult' => 'includes/search/SearchResult.php',
+       'SearchResultSet' => 'includes/search/SearchResultSet.php',
        'SearchResultTooMany' => 'includes/search/SearchEngine.php',
        'SearchSqlite' => 'includes/search/SearchSqlite.php',
        'SqliteSearchResultSet' => 'includes/search/SearchSqlite.php',
-       'SqlSearchResultSet' => 'includes/search/SearchEngine.php',
+       'SqlSearchResultSet' => 'includes/search/SearchResultSet.php',
 
        # includes/site
        'MediaWikiSite' => 'includes/site/MediaWikiSite.php',
@@ -950,6 +953,7 @@ $wgAutoloadLocalClasses = array(
        'IPBlockForm' => 'includes/specials/SpecialBlock.php',
        'LinkSearchPage' => 'includes/specials/SpecialLinkSearch.php',
        'ListredirectsPage' => 'includes/specials/SpecialListredirects.php',
+       'ListDuplicatedFilesPage' => 'includes/specials/SpecialListDuplicatedFiles.php',
        'LoginForm' => 'includes/specials/SpecialUserlogin.php',
        'LonelyPagesPage' => 'includes/specials/SpecialLonelypages.php',
        'LongPagesPage' => 'includes/specials/SpecialLongpages.php',
@@ -1014,6 +1018,7 @@ $wgAutoloadLocalClasses = array(
        'SpecialRedirect' => 'includes/specials/SpecialRedirect.php',
        'SpecialResetTokens' => 'includes/specials/SpecialResetTokens.php',
        'SpecialRevisionDelete' => 'includes/specials/SpecialRevisiondelete.php',
+       'SpecialRunJobs' => 'includes/specials/SpecialRunJobs.php',
        'SpecialSearch' => 'includes/specials/SpecialSearch.php',
        'SpecialSpecialpages' => 'includes/specials/SpecialSpecialpages.php',
        'SpecialStatistics' => 'includes/specials/SpecialStatistics.php',
@@ -1209,24 +1214,19 @@ class AutoLoader {
                        }
 
                        if ( isset( self::$autoloadLocalClassesLower[$lowerClass] ) ) {
-                               if ( function_exists( 'wfDebug' ) ) {
-                                       wfDebug( "Class {$className} was loaded using incorrect case.\n" );
+                               if ( function_exists( 'wfDebugLog' ) ) {
+                                       wfDebugLog( 'autoloader', "Class {$className} was loaded using incorrect case" );
                                }
                                $filename = self::$autoloadLocalClassesLower[$lowerClass];
                        }
                }
 
                if ( !$filename ) {
-                       if ( function_exists( 'wfDebug' ) ) {
-                               # FIXME: This is not very polite.  Assume we do not manage the class.
-                               wfDebug( "Class {$className} not found; skipped loading\n" );
-                       }
-
-                       # Give up
+                       // Class not found; let the next autoloader try to find it
                        return;
                }
 
-               # Make an absolute path, this improves performance by avoiding some stat calls
+               // Make an absolute path, this improves performance by avoiding some stat calls
                if ( substr( $filename, 0, 1 ) != '/' && substr( $filename, 1, 1 ) != ':' ) {
                        global $IP;
                        $filename = "$IP/$filename";
index 3575b9d..08428b4 100644 (file)
@@ -452,12 +452,22 @@ class Block {
 
                $affected = $dbw->affectedRows();
 
-               $dbw->update(
-                       'ipblocks',
-                       $this->getAutoblockUpdateArray(),
-                       array( 'ipb_parent_block_id' => $this->getId() ),
-                       __METHOD__
-               );
+               if ( $this->isAutoblocking() ) {
+                       // update corresponding autoblock(s) (bug 48813)
+                       $dbw->update(
+                               'ipblocks',
+                               $this->getAutoblockUpdateArray(),
+                               array( 'ipb_parent_block_id' => $this->getId() ),
+                               __METHOD__
+                       );
+               } else {
+                       // autoblock no longer required, delete corresponding autoblock(s)
+                       $dbw->delete(
+                               'ipblocks',
+                               array( 'ipb_parent_block_id' => $this->getId() ),
+                               __METHOD__
+                       );
+               }
 
                $dbw->endAtomic( __METHOD__ );
 
index f0ae5a3..f6cd3a6 100644 (file)
@@ -205,8 +205,7 @@ class CacheHelper implements ICacheHelper {
                                'cachedspecial-viewing-cached-ttl',
                                $context->getLanguage()->formatDuration( $this->cacheExpiry )
                        )->escaped();
-               }
-               else {
+               } else {
                        $message = $context->msg(
                                'cachedspecial-viewing-cached-ts'
                        )->escaped();
@@ -277,25 +276,20 @@ class CacheHelper implements ICacheHelper {
 
                                if ( !is_integer( $itemKey ) ) {
                                        wfWarn( "Attempted to get item with non-numeric key while the next item in the queue has a key ($itemKey) in " . __METHOD__ );
-                               }
-                               elseif ( is_null( $itemKey ) ) {
+                               } elseif ( is_null( $itemKey ) ) {
                                        wfWarn( "Attempted to get an item while the queue is empty in " . __METHOD__ );
-                               }
-                               else {
+                               } else {
                                        $value = array_shift( $this->cachedChunks );
                                }
-                       }
-                       else {
+                       } else {
                                if ( array_key_exists( $key, $this->cachedChunks ) ) {
                                        $value = $this->cachedChunks[$key];
                                        unset( $this->cachedChunks[$key] );
-                               }
-                               else {
+                               } else {
                                        wfWarn( "There is no item with key '$key' in this->cachedChunks in " . __METHOD__ );
                                }
                        }
-               }
-               else {
+               } else {
                        if ( !is_array( $args ) ) {
                                $args = array( $args );
                        }
@@ -305,8 +299,7 @@ class CacheHelper implements ICacheHelper {
                        if ( $this->cacheEnabled ) {
                                if ( is_null( $key ) ) {
                                        $this->cachedChunks[] = $value;
-                               }
-                               else {
+                               } else {
                                        $this->cachedChunks[$key] = $value;
                                }
                        }
index 126b8fe..df5ad7d 100644 (file)
@@ -195,27 +195,37 @@ class Category {
                return $cat;
        }
 
-       /** @return mixed DB key name, or false on failure */
+       /**
+        * @return mixed DB key name, or false on failure
+        */
        public function getName() {
                return $this->getX( 'mName' );
        }
 
-       /** @return mixed Category ID, or false on failure */
+       /**
+        * @return mixed Category ID, or false on failure
+        */
        public function getID() {
                return $this->getX( 'mID' );
        }
 
-       /** @return mixed Total number of member pages, or false on failure */
+       /**
+        * @return mixed Total number of member pages, or false on failure
+        */
        public function getPageCount() {
                return $this->getX( 'mPages' );
        }
 
-       /** @return mixed Number of subcategories, or false on failure */
+       /**
+        * @return mixed Number of subcategories, or false on failure
+        */
        public function getSubcatCount() {
                return $this->getX( 'mSubcats' );
        }
 
-       /** @return mixed Number of member files, or false on failure */
+       /**
+        * @return mixed Number of member files, or false on failure
+        */
        public function getFileCount() {
                return $this->getX( 'mFiles' );
        }
index 0736c50..a5e5364 100644 (file)
@@ -67,10 +67,12 @@ class ChangesFeed {
        /**
         * Generates feed's content
         *
-        * @param $feed ChannelFeed subclass object (generally the one returned by getFeedObject())
-        * @param $rows ResultWrapper object with rows in recentchanges table
-        * @param $lastmod Integer: timestamp of the last item in the recentchanges table (only used for the cache key)
-        * @param $opts FormOptions as in SpecialRecentChanges::getDefaultOptions()
+        * @param ChannelFeed $feed ChannelFeed subclass object (generally the one returned
+        *   by getFeedObject())
+        * @param ResultWrapper $rows ResultWrapper object with rows in recentchanges table
+        * @param int $lastmod Timestamp of the last item in the recentchanges table (only
+        *   used for the cache key)
+        * @param FormOptions $opts As in SpecialRecentChanges::getDefaultOptions()
         * @return null|bool True or null
         */
        public function execute( $feed, $rows, $lastmod, $opts ) {
@@ -160,14 +162,28 @@ class ChangesFeed {
        }
 
        /**
-        * Generate the feed items given a row from the database.
+        * Generate the feed items given a row from the database, printing the feed.
         * @param $rows DatabaseBase resource with recentchanges rows
         * @param $feed Feed object
         */
        public static function generateFeed( $rows, &$feed ) {
                wfProfileIn( __METHOD__ );
-
+               $items = self::buildItems( $rows );
                $feed->outHeader();
+               foreach ( $items as $item ) {
+                       $feed->outItem( $item );
+               }
+               $feed->outFooter();
+               wfProfileOut( __METHOD__ );
+       }
+
+       /**
+        * Generate the feed items given a row from the database.
+        * @param $rows DatabaseBase resource with recentchanges rows
+        */
+       public static function buildItems( $rows ) {
+               wfProfileIn( __METHOD__ );
+               $items = array();
 
                # Merge adjacent edits by one user
                $sorted = array();
@@ -187,7 +203,10 @@ class ChangesFeed {
 
                foreach ( $sorted as $obj ) {
                        $title = Title::makeTitle( $obj->rc_namespace, $obj->rc_title );
-                       $talkpage = MWNamespace::canTalk( $obj->rc_namespace ) ? $title->getTalkPage()->getFullURL() : '';
+                       $talkpage = MWNamespace::canTalk( $obj->rc_namespace )
+                               ? $title->getTalkPage()->getFullURL()
+                               : '';
+
                        // Skip items with deleted content (avoids partially complete/inconsistent output)
                        if ( $obj->rc_deleted ) {
                                continue;
@@ -203,7 +222,7 @@ class ChangesFeed {
                                $url = $title->getFullURL();
                        }
 
-                       $item = new FeedItem(
+                       $items[] = new FeedItem(
                                $title->getPrefixedText(),
                                FeedUtils::formatDiff( $obj ),
                                $url,
@@ -212,10 +231,9 @@ class ChangesFeed {
                                        ? wfMessage( 'rev-deleted-user' )->escaped() : $obj->rc_user_text,
                                $talkpage
                        );
-                       $feed->outItem( $item );
                }
-               $feed->outFooter();
+
                wfProfileOut( __METHOD__ );
+               return $items;
        }
-
 }
index 1dae5e7..612acb9 100644 (file)
@@ -15,7 +15,7 @@
  * performed in LocalSettings.php.
  *
  * Documentation is in the source and on:
- * http://www.mediawiki.org/wiki/Manual:Configuration_settings
+ * https://www.mediawiki.org/wiki/Manual:Configuration_settings
  *
  * @warning  Note: this (and other things) will break if the autoloader is not
  * enabled. Please include includes/AutoLoader.php before including this file.
@@ -2256,7 +2256,7 @@ $wgInvalidateCacheOnLocalSettingsChange = true;
  * although they are referred to as Squid settings for historical reasons.
  *
  * Achieving a high hit ratio with an HTTP proxy requires special
- * configuration. See http://www.mediawiki.org/wiki/Manual:Squid_caching for
+ * configuration. See https://www.mediawiki.org/wiki/Manual:Squid_caching for
  * more details.
  *
  * @{
@@ -2264,7 +2264,7 @@ $wgInvalidateCacheOnLocalSettingsChange = true;
 
 /**
  * Enable/disable Squid.
- * See http://www.mediawiki.org/wiki/Manual:Squid_caching
+ * See https://www.mediawiki.org/wiki/Manual:Squid_caching
  */
 $wgUseSquid = false;
 
@@ -3491,9 +3491,21 @@ $wgLegalTitleChars = " %!\"$&'()*,\\-.\\/0-9:;=?@A-Z\\\\^_`a-z~\\x80-\\xFF+";
 
 /**
  * The interwiki prefix of the current wiki, or false if it doesn't have one.
+ *
+ * @deprecated since 1.23; use $wgLocalInterwikis instead
  */
 $wgLocalInterwiki = false;
 
+/**
+ * Array for multiple $wgLocalInterwiki values, in case there are several
+ * interwiki prefixes that point to the current wiki. If $wgLocalInterwiki is
+ * set, its value is prepended to this array, for backwards compatibility.
+ *
+ * Note, recent changes feeds use only the first entry in this array (or
+ * $wgLocalInterwiki, if it is set). See $wgRCFeeds
+ */
+$wgLocalInterwikis = array();
+
 /**
  * Expiry time for cache of interwiki table
  */
@@ -3915,7 +3927,7 @@ $wgTranscludeCacheExpiry = 3600;
  *         if $wgUseCommaCount is false, it will be 'link', if it is true
  *         it will be 'comma'
  *
- * See also See http://www.mediawiki.org/wiki/Manual:Article_count
+ * See also See https://www.mediawiki.org/wiki/Manual:Article_count
  *
  * Retroactively changing this variable will not affect the existing count,
  * to update it, you will need to run the maintenance/updateArticleCount.php
@@ -3965,6 +3977,13 @@ $wgPasswordSalt = true;
  */
 $wgMinimalPasswordLength = 1;
 
+/**
+ * Specifies if users should be sent to a password-reset form on login, if their
+ * password doesn't meet the requirements of User::isValidPassword().
+ * @since 1.23
+ */
+$wgInvalidPasswordReset = true;
+
 /**
  * Whether to allow password resets ("enter some identifying data, and we'll send an email
  * with a temporary password you can use to get back into the account") identified by
@@ -4032,7 +4051,6 @@ $wgDefaultUserOptions = array(
        'minordefault' => 0,
        'newpageshidepatrolled' => 0,
        'nickname' => '',
-       'noconvertlink' => 0,
        'norollbackdiff' => 0,
        'numberheadings' => 0,
        'previewonfirst' => 0,
@@ -4162,7 +4180,7 @@ $wgBlockDisablesLogin = false;
  *
  * @note Also that this will only protect _pages in the wiki_. Uploaded files
  * will remain readable. You can use img_auth.php to protect uploaded files,
- * see http://www.mediawiki.org/wiki/Manual:Image_Authorization
+ * see https://www.mediawiki.org/wiki/Manual:Image_Authorization
  */
 $wgWhitelistRead = false;
 
@@ -4739,6 +4757,8 @@ $wgRateLimits = array(
 
 /**
  * Set to a filename to log rate limiter hits.
+ *
+ * @deprecated since 1.23, use $wgDebugLogGroups['ratelimit'] instead
  */
 $wgRateLimitLog = null;
 
@@ -4850,17 +4870,6 @@ $wgCookiePrefix = false;
  */
 $wgCookieHttpOnly = true;
 
-/**
- * If the requesting browser matches a regex in this blacklist, we won't
- * send it cookies with HttpOnly mode, even if $wgCookieHttpOnly is on.
- */
-$wgHttpOnlyBlacklist = array(
-       // Internet Explorer for Mac; sometimes the cookies work, sometimes
-       // they don't. It's difficult to predict, as combinations of path
-       // and expiration options affect its parsing.
-       '/^Mozilla\/4\.0 \(compatible; MSIE \d+\.\d+; Mac_PowerPC\)/',
-);
-
 /**
  * A list of cookies that vary the cache (for use by extensions)
  */
@@ -4897,7 +4906,7 @@ $wgUseTeX = false;
  */
 
 /**
- * Filename for debug logging. See http://www.mediawiki.org/wiki/How_to_debug
+ * Filename for debug logging. See https://www.mediawiki.org/wiki/How_to_debug
  * The debug log file should be not be publicly accessible if it is used, as it
  * may contain private data.
  */
@@ -5013,6 +5022,11 @@ $wgShowExceptionDetails = false;
 
 /**
  * If true, show a backtrace for database errors
+ *
+ * @note This setting only applies when connection errors and query errors are
+ * reported in the normal manner. $wgShowExceptionDetails applies in other cases,
+ * including those in which an uncaught exception is thrown from within the
+ * exception handler.
  */
 $wgShowDBErrorBacktrace = false;
 
@@ -5179,7 +5193,7 @@ $wgParserTestFiles = array(
  *
  * Something like this:
  * $wgParserTestRemote = array(
- *     'api-url' => 'http://www.mediawiki.org/w/api.php',
+ *     'api-url' => 'https://www.mediawiki.org/w/api.php',
  *     'repo'    => 'MediaWiki',
  *     'suite'   => 'ParserTests',
  *     'path'    => '/trunk/phase3', // not used client-side; for reference
@@ -5572,8 +5586,9 @@ $wgRC2UDPPort = false;
 $wgRC2UDPPrefix = '';
 
 /**
- * If this is set to true, $wgLocalInterwiki will be prepended to links in the
- * IRC feed. If this is set to a string, that string will be used as the prefix.
+ * If this is set to true, the first entry in the $wgLocalInterwikis array (or
+ * the value of $wgLocalInterwiki, if set) will be prepended to links in the IRC
+ * feed. If this is set to a string, that string will be used as the prefix.
  *
  * @deprecated since 1.22, use $wgRCFeeds
  */
@@ -5601,11 +5616,12 @@ $wgRC2UDPOmitBots = false;
  *   * 'omit_bots' -- whether the bot edits should be in the feed
  *  The IRC-specific options are:
  *   * 'add_interwiki_prefix' -- whether the titles should be prefixed with
- *     $wgLocalInterwiki.
+ *     the first entry in the $wgLocalInterwikis array (or the value of
+ *     $wgLocalInterwiki, if set)
  *  The JSON-specific options are:
  *   * 'channel' -- if set, the 'channel' parameter is also set in JSON values.
  *
- *  To ensure backwards-compatability, whenever $wgRC2UDPAddress is set, a
+ *  To ensure backwards-compatibility, whenever $wgRC2UDPAddress is set, a
  *  'default' feed will be created reusing the deprecated $wgRC2UDP* variables.
  *
  * @example $wgRCFeeds['example'] = array(
@@ -5993,7 +6009,7 @@ $wgExtensionMessagesFiles = array();
  * @since 1.23
  */
 $wgMessagesDirs = array(
-       "$IP/resources/oojs-ui/i18n",
+       'oojs-ui' => "$IP/resources/oojs-ui/i18n",
 );
 
 /**
@@ -6054,30 +6070,44 @@ $wgAutoloadClasses = array();
 $wgAutoloadAttemptLowercase = true;
 
 /**
- * An array of extension types and inside that their names, versions, authors,
- * urls, descriptions and pointers to localized description msgs. Note that
- * the version, url, description and descriptionmsg key can be omitted.
+ * An array of information about installed extensions keyed by their type.
+ *
+ * All but 'name', 'path' and 'author' can be omitted.
  *
  * @code
  * $wgExtensionCredits[$type][] = array(
- *     'name' => 'Example extension',
- *     'version' => 1.9,
  *     'path' => __FILE__,
- *     'author' => 'Foo Barstein',
- *     'url' => 'http://www.example.com/Example%20Extension/',
- *     'description' => 'An example extension',
+ *     'name' => 'Example extension',
+ *     'author' => array(
+ *         'Foo Barstein',
+ *     ),
+ *     'version' => '1.9.0',
+ *     'url' => 'http://example.org/example-extension/',
  *     'descriptionmsg' => 'exampleextension-desc',
+ *     'license-name' => 'GPL-2.0',
  * );
  * @endcode
  *
- * Where $type is 'specialpage', 'parserhook', 'variable', 'media' or 'other'.
- * Where 'descriptionmsg' can be an array with message key and parameters:
- * 'descriptionmsg' => array( 'exampleextension-desc', param1, param2, ... ),
+ * The extensions are listed on Special:Version. This page also looks for a file
+ * named COPYING or LICENSE (optional .txt extension) and provides a link to
+ * view said file. When the 'license-name' key is specified, this file is
+ * interpreted as wikitext.
+ *
+ * - $type: One of 'specialpage', 'parserhook', 'variable', 'media' or 'other'.
+ *
+ * - author: A string or an array of strings. Authors can be linked using
+ *    the regular wikitext link syntax. To have an internationalized version of
+ *    "and others" show, add an element "...". This element can also be linked,
+ *    for instance "[http://example ...]".
+ *
+ * - descriptionmsg: A message key or an an array with message key and parameters:
+ *    `'descriptionmsg' => array( 'exampleextension-desc', param1, param2, ... ),`
+ *
+ * - description: Description of extension as inline string instead of
+ *    localizable message (omit in favour of 'descriptionmsg').
  *
- * author can be a string or an array of strings. Authors can be linked using
- * the regular wikitext link syntax. To have an internationalized version of
- * "and others" show, add an element "...". This element can also be linked,
- * for instance "[http://example ...]".
+ * - license-name: Short name of the license (used as label for the link), such
+ *   as "GPL-2.0" or "MIT" (https://spdx.org/licenses/ for a list of identifiers).
  */
 $wgExtensionCredits = array();
 
@@ -6585,7 +6615,7 @@ $wgExemptFromUserRobotsControl = null;
  * Enable the MediaWiki API for convenient access to
  * machine-readable data via api.php
  *
- * See http://www.mediawiki.org/wiki/API
+ * See https://www.mediawiki.org/wiki/API
  */
 $wgEnableAPI = true;
 
index 9a27d23..d4b06fe 100644 (file)
@@ -772,8 +772,7 @@ class EditPage {
                                $this->sectiontitle = $request->getVal( 'preloadtitle' );
                                // Once wpSummary isn't being use for setting section titles, we should delete this.
                                $this->summary = $request->getVal( 'preloadtitle' );
-                       }
-                       elseif ( $this->section != 'new' && $request->getVal( 'summary' ) ) {
+                       } elseif ( $this->section != 'new' && $request->getVal( 'summary' ) ) {
                                $this->summary = $request->getText( 'summary' );
                                if ( $this->summary !== '' ) {
                                        $this->hasPresetSummary = true;
@@ -2083,10 +2082,27 @@ class EditPage {
                }
                # Try to add a custom edit intro, or use the standard one if this is not possible.
                if ( !$this->showCustomIntro() && !$this->mTitle->exists() ) {
+                       $helpLink = Skin::makeInternalOrExternalUrl(
+                               wfMessage( 'helppage' )->inContentLanguage()->text()
+                       );
                        if ( $wgUser->isLoggedIn() ) {
-                               $wgOut->wrapWikiMsg( "<div class=\"mw-newarticletext\">\n$1\n</div>", 'newarticletext' );
+                               $wgOut->wrapWikiMsg(
+                                       // Suppress the external link icon, consider the help url an internal one
+                                       "<div class=\"mw-newarticletext plainlinks\">\n$1\n</div>",
+                                       array(
+                                               'newarticletext',
+                                               $helpLink
+                                       )
+                               );
                        } else {
-                               $wgOut->wrapWikiMsg( "<div class=\"mw-newarticletextanon\">\n$1\n</div>", 'newarticletextanon' );
+                               $wgOut->wrapWikiMsg(
+                                       // Suppress the external link icon, consider the help url an internal one
+                                       "<div class=\"mw-newarticletextanon plainlinks\">\n$1\n</div>",
+                                       array(
+                                               'newarticletextanon',
+                                               $helpLink
+                                       )
+                               );
                        }
                }
                # Give a notice if the user is editing a deleted/moved page...
@@ -3447,16 +3463,16 @@ HTML
                        }
 
                        $params = array(
-                               $image = $wgStylePath . '/common/images/' . $tool['image'],
+                               $wgStylePath . '/common/images/' . $tool['image'],
                                // Note that we use the tip both for the ALT tag and the TITLE tag of the image.
                                // Older browsers show a "speedtip" type message only for ALT.
                                // Ideally these should be different, realistically they
                                // probably don't need to be.
-                               $tip = $tool['tip'],
-                               $open = $tool['open'],
-                               $close = $tool['close'],
-                               $sample = $tool['sample'],
-                               $cssId = $tool['id'],
+                               $tool['tip'],
+                               $tool['open'],
+                               $tool['close'],
+                               $tool['sample'],
+                               $tool['id'],
                        );
 
                        $script .= Xml::encodeJsCall( 'mw.toolbar.addButton', $params );
index 639ba28..56fe452 100644 (file)
@@ -3,7 +3,7 @@
  * Base classes for dumps and export
  *
  * Copyright © 2003, 2005, 2006 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 635b04e..d5a9553 100644 (file)
@@ -6,7 +6,7 @@
  * Available feeds are defined in Defines.php
  *
  * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index cd6e207..a8da67e 100644 (file)
@@ -373,22 +373,32 @@ class FormOptions implements ArrayAccess {
         * @see http://php.net/manual/en/class.arrayaccess.php
         */
        /* @{ */
-       /** Whether the option exists. */
+       /**
+        * Whether the option exists.
+        * @return bool
+        */
        public function offsetExists( $name ) {
                return isset( $this->options[$name] );
        }
 
-       /** Retrieve an option value. */
+       /**
+        * Retrieve an option value.
+        * @return mixed
+        */
        public function offsetGet( $name ) {
                return $this->getValue( $name );
        }
 
-       /** Set an option to given value. */
+       /**
+        * Set an option to given value.
+        */
        public function offsetSet( $name, $value ) {
                $this->setValue( $name, $value );
        }
 
-       /** Delete the option. */
+       /**
+        * Delete the option.
+        */
        public function offsetUnset( $name ) {
                $this->delete( $name );
        }
index 877c2d2..6b092d9 100644 (file)
@@ -82,18 +82,18 @@ class GitInfo {
         * @return string The HEAD
         */
        public function getHead() {
-               $HEADfile = "{$this->basedir}/HEAD";
+               $headFile = "{$this->basedir}/HEAD";
 
-               if ( !is_readable( $HEADfile ) ) {
+               if ( !is_readable( $headFile ) ) {
                        return false;
                }
 
-               $HEAD = file_get_contents( $HEADfile );
+               $head = file_get_contents( $headFile );
 
-               if ( preg_match( "/ref: (.*)/", $HEAD, $m ) ) {
+               if ( preg_match( "/ref: (.*)/", $head, $m ) ) {
                        return rtrim( $m[1] );
                } else {
-                       return rtrim( $HEAD );
+                       return rtrim( $head );
                }
        }
 
@@ -102,20 +102,20 @@ class GitInfo {
         * @return string A SHA1 or false
         */
        public function getHeadSHA1() {
-               $HEAD = $this->getHead();
+               $head = $this->getHead();
 
                // If detached HEAD may be a SHA1
-               if ( self::isSHA1( $HEAD ) ) {
-                       return $HEAD;
+               if ( self::isSHA1( $head ) ) {
+                       return $head;
                }
 
                // If not a SHA1 it may be a ref:
-               $REFfile = "{$this->basedir}/{$HEAD}";
-               if ( !is_readable( $REFfile ) ) {
+               $refFile = "{$this->basedir}/{$head}";
+               if ( !is_readable( $refFile ) ) {
                        return false;
                }
 
-               $sha1 = rtrim( file_get_contents( $REFfile ) );
+               $sha1 = rtrim( file_get_contents( $refFile ) );
 
                return $sha1;
        }
@@ -150,11 +150,11 @@ class GitInfo {
         * @return string The branch name, HEAD, or false
         */
        public function getCurrentBranch() {
-               $HEAD = $this->getHead();
-               if ( $HEAD && preg_match( "#^refs/heads/(.*)$#", $HEAD, $m ) ) {
+               $head = $this->getHead();
+               if ( $head && preg_match( "#^refs/heads/(.*)$#", $head, $m ) ) {
                        return $m[1];
                } else {
-                       return $HEAD;
+                       return $head;
                }
        }
 
index a6f936f..f0b0a8d 100644 (file)
@@ -1027,10 +1027,8 @@ function wfDebugMem( $exact = false ) {
  *
  * @since 1.23 support for sampling log messages via $wgDebugLogGroups.
  *
- * @param $logGroup String
- * @param $text String
- * @param bool $public whether to log the event in the public log if no private
- *                     log file is specified, (default true)
+ * @param string $logGroup
+ * @param string $text
  * @param string|bool $dest Destination of the message:
  *     - 'all': both to the log and HTML (debug toolbar or HTML comments)
  *     - 'log': only to the log and not in HTML
@@ -1109,7 +1107,7 @@ function wfLogDBError( $text ) {
 
                $date = $d->format( 'D M j G:i:s T Y' );
 
-               $text = "$date\t$host\t$wiki\t$text";
+               $text = "$date\t$host\t$wiki\t" . trim( $text ) . "\n";
                wfErrorLog( $text, $wgDBerrorLog );
        }
 }
@@ -3443,23 +3441,6 @@ function wfBaseConvert( $input, $sourceBase, $destBase, $pad = 1,
        return str_pad( $result, $pad, '0', STR_PAD_LEFT );
 }
 
-/**
- * @return bool
- */
-function wfHttpOnlySafe() {
-       global $wgHttpOnlyBlacklist;
-
-       if ( isset( $_SERVER['HTTP_USER_AGENT'] ) ) {
-               foreach ( $wgHttpOnlyBlacklist as $regex ) {
-                       if ( preg_match( $regex, $_SERVER['HTTP_USER_AGENT'] ) ) {
-                               return false;
-                       }
-               }
-       }
-
-       return true;
-}
-
 /**
  * Check if there is sufficient entropy in php's built-in session generation
  * @return bool true = there is sufficient entropy
@@ -3532,7 +3513,6 @@ function wfSetupSession( $sessionId = false ) {
                # hasn't already been set to the desired value (that causes errors)
                ini_set( 'session.save_handler', $wgSessionHandler );
        }
-       $httpOnlySafe = wfHttpOnlySafe() && $wgCookieHttpOnly;
        wfDebugLog( 'cookie',
                'session_set_cookie_params: "' . implode( '", "',
                        array(
@@ -3540,8 +3520,9 @@ function wfSetupSession( $sessionId = false ) {
                                $wgCookiePath,
                                $wgCookieDomain,
                                $wgCookieSecure,
-                               $httpOnlySafe ) ) . '"' );
-       session_set_cookie_params( 0, $wgCookiePath, $wgCookieDomain, $wgCookieSecure, $httpOnlySafe );
+                               $wgCookieHttpOnly ) ) . '"' );
+       session_set_cookie_params(
+               0, $wgCookiePath, $wgCookieDomain, $wgCookieSecure, $wgCookieHttpOnly );
        session_cache_limiter( 'private, must-revalidate' );
        if ( $sessionId ) {
                session_id( $sessionId );
index 9c50895..a3ed700 100644 (file)
@@ -78,7 +78,9 @@ class ConcatenatedGzipHistoryBlob implements HistoryBlob
        public $mMaxSize = 10000000;
        public $mMaxCount = 100;
 
-       /** Constructor */
+       /**
+        * Constructor
+        */
        public function __construct() {
                if ( !function_exists( 'gzdeflate' ) ) {
                        throw new MWException( "Need zlib support to read or write this kind of history object (ConcatenatedGzipHistoryBlob)\n" );
index 0eb6474..c4fc29a 100644 (file)
@@ -689,6 +689,7 @@ class Html {
                }
                return self::element( 'textarea', $attribs, $spacedValue );
        }
+
        /**
         * Build a drop-down box for selecting a namespace
         *
index e447e47..b18e257 100644 (file)
@@ -3,7 +3,7 @@
  * MediaWiki page data importer.
  *
  * Copyright © 2003,2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 1d59ec3..17cb8aa 100644 (file)
@@ -28,4 +28,4 @@ class MediaWikiVersionFetcher {
                return $matches[1];
        }
 
-}
\ No newline at end of file
+}
index dd22844..7c9b095 100644 (file)
  * @since 1.17
  */
 class Message {
+
        /**
         * In which language to get this message. True, which is the default,
         * means the current interface language, false content language.
+        *
+        * @var bool
         */
        protected $interface = true;
 
@@ -172,12 +175,12 @@ class Message {
        protected $language = null;
 
        /**
-        * The message key.
+        * @var string|string[] The message key or array of keys.
         */
        protected $key;
 
        /**
-        * List of parameters which will be substituted into the message.
+        * @var array List of parameters which will be substituted into the message.
         */
        protected $parameters = array();
 
@@ -189,21 +192,23 @@ class Message {
         * * block-parse
         * * parse (default)
         * * plain
+        *
+        * @var string
         */
        protected $format = 'parse';
 
        /**
-        * Whether database can be used.
+        * @var bool Whether database can be used.
         */
        protected $useDatabase = true;
 
        /**
-        * Title object to use as context
+        * @var Title Title object to use as context.
         */
        protected $title = null;
 
        /**
-        * Content object representing the message
+        * @var Content Content object representing the message.
         */
        protected $content = null;
 
@@ -213,11 +218,11 @@ class Message {
        protected $message;
 
        /**
-        * Constructor.
         * @since 1.17
-        * @param $key: message key, or array of message keys to try and use the first non-empty message for
-        * @param array $params message parameters
-        * @return Message: $this
+        *
+        * @param string|string[] $key Message key or array of message keys to try and use the first
+        * non-empty message for.
+        * @param array $params Message parameters.
         */
        public function __construct( $key, $params = array() ) {
                global $wgLang;
@@ -227,7 +232,7 @@ class Message {
        }
 
        /**
-        * Returns the message key
+        * Returns the message key or the first from an array of message keys.
         *
         * @since 1.21
         *
@@ -244,18 +249,18 @@ class Message {
        }
 
        /**
-        * Returns the message parameters
+        * Returns the message parameters.
         *
         * @since 1.21
         *
-        * @return string[]
+        * @return array
         */
        public function getParams() {
                return $this->parameters;
        }
 
        /**
-        * Returns the message format
+        * Returns the message format.
         *
         * @since 1.21
         *
@@ -269,10 +274,13 @@ class Message {
         * Factory function that is just wrapper for the real constructor. It is
         * intended to be used instead of the real constructor, because it allows
         * chaining method calls, while new objects don't.
+        *
         * @since 1.17
-        * @param string $key message key
-        * @param Varargs: parameters as Strings
-        * @return Message: $this
+        *
+        * @param string|string[] $key Message key or array of keys.
+        * @param mixed [$param,...] Parameters as strings.
+        *
+        * @return Message
         */
        public static function newFromKey( $key /*...*/ ) {
                $params = func_get_args();
@@ -284,9 +292,13 @@ class Message {
         * Factory function accepting multiple message keys and returning a message instance
         * for the first message which is non-empty. If all messages are empty then an
         * instance of the first message key is returned.
+        *
         * @since 1.18
-        * @param Varargs: message keys (or first arg as an array of all the message keys)
-        * @return Message: $this
+        *
+        * @param string|string[] [$keys,...] Message keys, or first argument as an array of all the
+        * message keys.
+        *
+        * @return Message
         */
        public static function newFallbackSequence( /*...*/ ) {
                $keys = func_get_args();
@@ -304,9 +316,13 @@ class Message {
 
        /**
         * Adds parameters to the parameter list of this message.
+        *
         * @since 1.17
-        * @param Varargs: parameters as Strings, or a single argument that is an array of Strings
-        * @return Message: $this
+        *
+        * @param mixed [$params,...] Parameters as strings, or a single argument that is
+        * an array of strings.
+        *
+        * @return Message $this
         */
        public function params( /*...*/ ) {
                $args = func_get_args();
@@ -323,9 +339,13 @@ class Message {
         * In other words the parsing process cannot access the contents
         * of this type of parameter, and you need to make sure it is
         * sanitized beforehand.  The parser will see "$n", instead.
+        *
         * @since 1.17
-        * @param Varargs: raw parameters as Strings (or single argument that is an array of raw parameters)
-        * @return Message: $this
+        *
+        * @param mixed [$params,...] Raw parameters as strings, or a single argument that is
+        * an array of raw parameters.
+        *
+        * @return Message $this
         */
        public function rawParams( /*...*/ ) {
                $params = func_get_args();
@@ -341,9 +361,13 @@ class Message {
        /**
         * Add parameters that are numeric and will be passed through
         * Language::formatNum before substitution
+        *
         * @since 1.18
-        * @param Varargs: numeric parameters (or single argument that is array of numeric parameters)
-        * @return Message: $this
+        *
+        * @param mixed [$param,...] Numeric parameters, or a single argument that is
+        * an array of numeric parameters.
+        *
+        * @return Message $this
         */
        public function numParams( /*...*/ ) {
                $params = func_get_args();
@@ -359,9 +383,13 @@ class Message {
        /**
         * Add parameters that are durations of time and will be passed through
         * Language::formatDuration before substitution
+        *
         * @since 1.22
-        * @param Varargs: numeric parameters (or single argument that is array of numeric parameters)
-        * @return Message: $this
+        *
+        * @param int|int[] [$param,...] Duration parameters, or a single argument that is
+        * an array of duration parameters.
+        *
+        * @return Message $this
         */
        public function durationParams( /*...*/ ) {
                $params = func_get_args();
@@ -377,9 +405,13 @@ class Message {
        /**
         * Add parameters that are expiration times and will be passed through
         * Language::formatExpiry before substitution
+        *
         * @since 1.22
-        * @param Varargs: numeric parameters (or single argument that is array of numeric parameters)
-        * @return Message: $this
+        *
+        * @param string|string[] [$param,...] Expiry parameters, or a single argument that is
+        * an array of expiry parameters.
+        *
+        * @return Message $this
         */
        public function expiryParams( /*...*/ ) {
                $params = func_get_args();
@@ -395,9 +427,13 @@ class Message {
        /**
         * Add parameters that are time periods and will be passed through
         * Language::formatTimePeriod before substitution
+        *
         * @since 1.22
-        * @param Varargs: numeric parameters (or single argument that is array of numeric parameters)
-        * @return Message: $this
+        *
+        * @param number|number[] [$param,...] Time period parameters, or a single argument that is
+        * an array of time period parameters.
+        *
+        * @return Message $this
         */
        public function timeperiodParams( /*...*/ ) {
                $params = func_get_args();
@@ -413,9 +449,13 @@ class Message {
        /**
         * Add parameters that are file sizes and will be passed through
         * Language::formatSize before substitution
+        *
         * @since 1.22
-        * @param Varargs: numeric parameters (or single argument that is array of numeric parameters)
-        * @return Message: $this
+        *
+        * @param int|int[] [$param,...] Size parameters, or a single argument that is
+        * an array of size parameters.
+        *
+        * @return Message $this
         */
        public function sizeParams( /*...*/ ) {
                $params = func_get_args();
@@ -431,9 +471,13 @@ class Message {
        /**
         * Add parameters that are bitrates and will be passed through
         * Language::formatBitrate before substitution
+        *
         * @since 1.22
-        * @param Varargs: numeric parameters (or single argument that is array of numeric parameters)
-        * @return Message: $this
+        *
+        * @param int|int[] [$param,...] Bit rate parameters, or a single argument that is
+        * an array of bit rate parameters.
+        *
+        * @return Message $this
         */
        public function bitrateParams( /*...*/ ) {
                $params = func_get_args();
@@ -448,9 +492,12 @@ class Message {
 
        /**
         * Set the language and the title from a context object
+        *
         * @since 1.19
+        *
         * @param $context IContextSource
-        * @return Message: $this
+        *
+        * @return Message $this
         */
        public function setContext( IContextSource $context ) {
                $this->inLanguage( $context->getLanguage() );
@@ -464,10 +511,13 @@ class Message {
         * Request the message in any language that is supported.
         * As a side effect interface message status is unconditionally
         * turned off.
+        *
         * @since 1.17
-        * @param $lang Mixed: language code or Language object.
+        *
+        * @param Language|string $lang Language code or Language object.
+        *
+        * @return Message $this
         * @throws MWException
-        * @return Message: $this
         */
        public function inLanguage( $lang ) {
                if ( $lang instanceof Language || $lang instanceof StubUserLang ) {
@@ -489,9 +539,11 @@ class Message {
        /**
         * Request the message in the wiki's content language,
         * unless it is disabled for this message.
+        *
         * @since 1.17
         * @see $wgForceUIMsgAsContentMsg
-        * @return Message: $this
+        *
+        * @return Message $this
         */
        public function inContentLanguage() {
                global $wgForceUIMsgAsContentMsg;
@@ -508,31 +560,40 @@ class Message {
        /**
         * Allows manipulating the interface message flag directly.
         * Can be used to restore the flag after setting a language.
-        * @param $value bool
-        * @return Message: $this
+        *
         * @since 1.20
+        *
+        * @param bool $interface
+        *
+        * @return Message $this
         */
-       public function setInterfaceMessageFlag( $value ) {
-               $this->interface = (bool)$value;
+       public function setInterfaceMessageFlag( $interface ) {
+               $this->interface = (bool)$interface;
                return $this;
        }
 
        /**
         * Enable or disable database use.
+        *
         * @since 1.17
-        * @param $value Boolean
-        * @return Message: $this
+        *
+        * @param bool $useDatabase
+        *
+        * @return Message $this
         */
-       public function useDatabase( $value ) {
-               $this->useDatabase = (bool)$value;
+       public function useDatabase( $useDatabase ) {
+               $this->useDatabase = (bool)$useDatabase;
                return $this;
        }
 
        /**
         * Set the Title object to use as context when transforming the message
+        *
         * @since 1.18
+        *
         * @param $title Title object
-        * @return Message: $this
+        *
+        * @return Message $this
         */
        public function title( $title ) {
                $this->title = $title;
@@ -541,6 +602,7 @@ class Message {
 
        /**
         * Returns the message as a Content object.
+        *
         * @return Content
         */
        public function content() {
@@ -553,8 +615,10 @@ class Message {
 
        /**
         * Returns the message parsed from wikitext to HTML.
+        *
         * @since 1.17
-        * @return String: HTML
+        *
+        * @return string HTML
         */
        public function toString() {
                $string = $this->fetchMessage();
@@ -605,8 +669,10 @@ class Message {
         * Magic method implementation of the above (for PHP >= 5.2.0), so we can do, eg:
         *     $foo = Message::get( $key );
         *     $string = "<abbr>$foo</abbr>";
+        *
         * @since 1.18
-        * @return String
+        *
+        * @return string
         */
        public function __toString() {
                // PHP doesn't allow __toString to throw exceptions and will
@@ -630,9 +696,11 @@ class Message {
        }
 
        /**
-        * Fully parse the text from wikitext to HTML
+        * Fully parse the text from wikitext to HTML.
+        *
         * @since 1.17
-        * @return String parsed HTML
+        *
+        * @return string Parsed HTML.
         */
        public function parse() {
                $this->format = 'parse';
@@ -641,8 +709,10 @@ class Message {
 
        /**
         * Returns the message text. {{-transformation is done.
+        *
         * @since 1.17
-        * @return String: Unescaped message text.
+        *
+        * @return string Unescaped message text.
         */
        public function text() {
                $this->format = 'text';
@@ -651,8 +721,10 @@ class Message {
 
        /**
         * Returns the message text as-is, only parameters are substituted.
+        *
         * @since 1.17
-        * @return String: Unescaped untransformed message text.
+        *
+        * @return string Unescaped untransformed message text.
         */
        public function plain() {
                $this->format = 'plain';
@@ -661,8 +733,10 @@ class Message {
 
        /**
         * Returns the parsed message text which is always surrounded by a block element.
+        *
         * @since 1.17
-        * @return String: HTML
+        *
+        * @return string HTML
         */
        public function parseAsBlock() {
                $this->format = 'block-parse';
@@ -672,8 +746,10 @@ class Message {
        /**
         * Returns the message text. {{-transformation is done and the result
         * is escaped excluding any raw parameters.
+        *
         * @since 1.17
-        * @return String: Escaped message text.
+        *
+        * @return string Escaped message text.
         */
        public function escaped() {
                $this->format = 'escaped';
@@ -682,8 +758,10 @@ class Message {
 
        /**
         * Check whether a message key has been defined currently.
+        *
         * @since 1.17
-        * @return Bool: true if it is and false if not.
+        *
+        * @return bool
         */
        public function exists() {
                return $this->fetchMessage() !== false;
@@ -691,9 +769,11 @@ class Message {
 
        /**
         * Check whether a message does not exist, or is an empty string
+        *
         * @since 1.18
-        * @return Bool: true if is is and false if not
         * @todo FIXME: Merge with isDisabled()?
+        *
+        * @return bool
         */
        public function isBlank() {
                $message = $this->fetchMessage();
@@ -701,9 +781,11 @@ class Message {
        }
 
        /**
-        * Check whether a message does not exist, is an empty string, or is "-"
+        * Check whether a message does not exist, is an empty string, or is "-".
+        *
         * @since 1.18
-        * @return Bool: true if it is and false if not
+        *
+        * @return bool
         */
        public function isDisabled() {
                $message = $this->fetchMessage();
@@ -712,72 +794,89 @@ class Message {
 
        /**
         * @since 1.17
-        * @param $value
-        * @return array
+        *
+        * @param mixed $raw
+        *
+        * @return array Array with a single "raw" key.
         */
-       public static function rawParam( $value ) {
-               return array( 'raw' => $value );
+       public static function rawParam( $raw ) {
+               return array( 'raw' => $raw );
        }
 
        /**
         * @since 1.18
-        * @param $value
-        * @return array
+        *
+        * @param mixed $num
+        *
+        * @return array Array with a single "num" key.
         */
-       public static function numParam( $value ) {
-               return array( 'num' => $value );
+       public static function numParam( $num ) {
+               return array( 'num' => $num );
        }
 
        /**
         * @since 1.22
-        * @param $value
-        * @return array
+        *
+        * @param int $duration
+        *
+        * @return int[] Array with a single "duration" key.
         */
-       public static function durationParam( $value ) {
-               return array( 'duration' => $value );
+       public static function durationParam( $duration ) {
+               return array( 'duration' => $duration );
        }
 
        /**
         * @since 1.22
-        * @param $value
-        * @return array
+        *
+        * @param string $expiry
+        *
+        * @return string[] Array with a single "expiry" key.
         */
-       public static function expiryParam( $value ) {
-               return array( 'expiry' => $value );
+       public static function expiryParam( $expiry ) {
+               return array( 'expiry' => $expiry );
        }
 
        /**
         * @since 1.22
-        * @param $value
-        * @return array
+        *
+        * @param number $period
+        *
+        * @return number[] Array with a single "period" key.
         */
-       public static function timeperiodParam( $value ) {
-               return array( 'period' => $value );
+       public static function timeperiodParam( $period ) {
+               return array( 'period' => $period );
        }
 
        /**
         * @since 1.22
-        * @param $value
-        * @return array
+        *
+        * @param int $size
+        *
+        * @return int[] Array with a single "size" key.
         */
-       public static function sizeParam( $value ) {
-               return array( 'size' => $value );
+       public static function sizeParam( $size ) {
+               return array( 'size' => $size );
        }
 
        /**
         * @since 1.22
-        * @param $value
-        * @return array
+        *
+        * @param int $bitrate
+        *
+        * @return int[] Array with a single "bitrate" key.
         */
-       public static function bitrateParam( $value ) {
-               return array( 'bitrate' => $value );
+       public static function bitrateParam( $bitrate ) {
+               return array( 'bitrate' => $bitrate );
        }
 
        /**
         * Substitutes any parameters into the message text.
+        *
         * @since 1.17
-        * @param string $message the message text
-        * @param string $type either before or after
+        *
+        * @param string $message The message text.
+        * @param string $type Either "before" or "after".
+        *
         * @return String
         */
        protected function replaceParameters( $message, $type = 'before' ) {
@@ -794,9 +893,12 @@ class Message {
 
        /**
         * Extracts the parameter type and preprocessed the value if needed.
+        *
         * @since 1.18
-        * @param string|array $param Parameter as defined in this class.
-        * @return Tuple(type, value)
+        *
+        * @param mixed $param Parameter as defined in this class.
+        *
+        * @return array Array with the parameter type (either "before" or "after") and the value.
         */
        protected function extractParam( $param ) {
                if ( is_array( $param ) ) {
@@ -837,9 +939,12 @@ class Message {
 
        /**
         * Wrapper for what ever method we use to parse wikitext.
+        *
         * @since 1.17
-        * @param string $string Wikitext message contents
-        * @return string Wikitext parsed into HTML
+        *
+        * @param string $string Wikitext message contents.
+        *
+        * @return string Wikitext parsed into HTML.
         */
        protected function parseText( $string ) {
                $out = MessageCache::singleton()->parse( $string, $this->title, /*linestart*/true, $this->interface, $this->language );
@@ -848,8 +953,11 @@ class Message {
 
        /**
         * Wrapper for what ever method we use to {{-transform wikitext.
+        *
         * @since 1.17
-        * @param string $string Wikitext message contents
+        *
+        * @param string $string Wikitext message contents.
+        *
         * @return string Wikitext with {{-constructs replaced with their values.
         */
        protected function transformText( $string ) {
@@ -857,10 +965,12 @@ class Message {
        }
 
        /**
-        * Wrapper for what ever method we use to get message contents
+        * Wrapper for what ever method we use to get message contents.
+        *
         * @since 1.17
-        * @throws MWException
+        *
         * @return string
+        * @throws MWException If message key array is empty.
         */
        protected function fetchMessage() {
                if ( !isset( $this->message ) ) {
@@ -899,13 +1009,15 @@ class Message {
  * @since 1.21
  */
 class RawMessage extends Message {
+
        /**
         * Call the parent constructor, then store the key as
         * the message.
         *
-        * @param string $key Message to use
-        * @param array $params Parameters for the message
         * @see Message::__construct
+        *
+        * @param string|string[] $key Message to use.
+        * @param array $params Parameters for the message.
         */
        public function __construct( $key, $params = array() ) {
                parent::__construct( $key, $params );
@@ -925,4 +1037,5 @@ class RawMessage extends Message {
                }
                return $this->message;
        }
+
 }
index f5c28ab..e3b8577 100644 (file)
@@ -508,8 +508,7 @@ class MimeMagic {
                                // trust the file extension
                                $mime = $this->guessTypesForExtension( $ext );
                        }
-               }
-               elseif ( $mime === 'application/x-opc+zip' ) {
+               } elseif ( $mime === 'application/x-opc+zip' ) {
                        if ( $this->isMatchingExtension( $ext, $mime ) ) {
                                // A known file extension for an OPC file,
                                // find the proper mime type for that file extension
index efcd838..9cba0cc 100644 (file)
@@ -685,7 +685,7 @@ class OutputPage extends ContextSource {
                        return false;
                }
                if ( !$wgCachePages ) {
-                       wfDebug( __METHOD__ . ": CACHE DISABLED\n", 'log' );
+                       wfDebug( __METHOD__ . ": CACHE DISABLED\n" );
                        return false;
                }
 
index e6d6ebf..60aa33c 100644 (file)
@@ -97,9 +97,9 @@ function wfPHPVersionError( $type ) {
                </p>
                <p>
                        If for some reason you are unable to upgrade your PHP version, you will need to
-                       <a href="http://www.mediawiki.org/wiki/Download">download</a> an older version
+                       <a href="https://www.mediawiki.org/wiki/Download">download</a> an older version
                        of MediaWiki from our website.  See our
-                       <a href="http://www.mediawiki.org/wiki/Compatibility#PHP">compatibility page</a>
+                       <a href="https://www.mediawiki.org/wiki/Compatibility#PHP">compatibility page</a>
                        for details of which versions are compatible with prior versions of PHP.
                </p>
                </div>
index 6a10e88..747d2c1 100644 (file)
@@ -249,6 +249,7 @@ abstract class IndexPager extends ContextSource implements Pager {
        function setOffset( $offset ) {
                $this->mOffset = $offset;
        }
+
        /**
         * Set the limit from an other source than the request
         *
index 435e09e..d367e4d 100644 (file)
@@ -27,7 +27,7 @@
  *
  * $router->add( "/wiki/$1" );
  *   - Matches /wiki/Foo style urls and extracts the title
- * $router->add( array( 'edit' => "/edit/$1" ), array( 'action' => '$key' ) );
+ * $router->add( array( 'edit' => "/edit/$key" ), array( 'action' => '$key' ) );
  *   - Matches /edit/Foo style urls and sets action=edit
  * $router->add( '/$2/$1',
  *   array( 'variant' => '$2' ),
index b4f14c2..85c4c79 100644 (file)
@@ -91,6 +91,13 @@ abstract class PoolCounter {
                return new $class( $conf, $type, $key );
        }
 
+       /**
+        * @return string
+        */
+       public function getKey() {
+               return $this->key;
+       }
+
        /**
         * I want to do this task and I need to do it myself.
         *
@@ -175,7 +182,7 @@ abstract class PoolCounterWork {
         * Do something with the error, like showing it to the user.
         * @return bool
         */
-       function error( $status ) {
+       public function error( $status ) {
                return false;
        }
 
@@ -185,8 +192,10 @@ abstract class PoolCounterWork {
         * @param $status Status
         * @return void
         */
-       function logError( $status ) {
-               wfDebugLog( 'poolcounter', "Pool key '{$this->key}':"
+       public function logError( $status ) {
+               $key = $this->poolCounter->getKey();
+
+               wfDebugLog( 'poolcounter', "Pool key '$key': "
                        . $status->getMessage()->inLanguage( 'en' )->useDatabase( false )->text() );
        }
 
@@ -314,14 +323,14 @@ class PoolCounterWorkViaCallback extends PoolCounterWork {
                return false;
        }
 
-       function fallback() {
+       public function fallback() {
                if ( $this->fallback ) {
                        return call_user_func_array( $this->fallback, array() );
                }
                return false;
        }
 
-       function error( $status ) {
+       public function error( $status ) {
                if ( $this->error ) {
                        return call_user_func_array( $this->error, array( $status ) );
                }
index 9a16383..2d1529d 100644 (file)
@@ -193,7 +193,7 @@ class Preferences {
         */
        static function profilePreferences( $user, IContextSource $context, &$defaultPreferences ) {
                global $wgAuth, $wgContLang, $wgParser, $wgCookieExpiration, $wgLanguageCode,
-                       $wgDisableTitleConversion, $wgDisableLangConversion, $wgMaxSigChars,
+                       $wgDisableLangConversion, $wgMaxSigChars,
                        $wgEnableEmail, $wgEmailConfirmToEdit, $wgEnableUserEmail, $wgEmailAuthentication,
                        $wgEnotifWatchlist, $wgEnotifUserTalk, $wgEnotifRevealEditorAddress,
                        $wgSecureLogin;
@@ -381,14 +381,6 @@ class Preferences {
                                                'section' => 'personal/i18n',
                                                'help-message' => 'prefs-help-variant',
                                        );
-
-                                       if ( !$wgDisableTitleConversion ) {
-                                               $defaultPreferences['noconvertlink'] = array(
-                                                       'type' => 'toggle',
-                                                       'section' => 'personal/i18n',
-                                                       'label-message' => 'tog-noconvertlink',
-                                               );
-                                       }
                                } else {
                                        $defaultPreferences["variant-$langCode"] = array(
                                                'type' => 'api',
@@ -1418,7 +1410,7 @@ class Preferences {
 
                // Fortunately, the realname field is MUCH simpler
                // (not really "private", but still shouldn't be edited without permission)
-               if ( !in_array( 'realname', $wgHiddenPrefs ) && $user->isAllowed( 'editmyprivateinfo' ) ) {
+               if ( !in_array( 'realname', $wgHiddenPrefs ) && $user->isAllowed( 'editmyprivateinfo' ) && array_key_exists( 'realname', $formData ) ) {
                        $realName = $formData['realname'];
                        $user->setRealName( $realName );
                }
index d6cc8a3..bcb88e9 100644 (file)
@@ -3,7 +3,7 @@
  * Page protection
  *
  * Copyright © 2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index bb6a0c3..29bbd52 100644 (file)
  * @ingroup SpecialPage
  */
 
-/**
- * List of query page classes and their associated special pages,
- * for periodic updates.
- *
- * DO NOT CHANGE THIS LIST without testing that
- * maintenance/updateSpecialPages.php still works.
- */
-global $wgQueryPages; // not redundant
-$wgQueryPages = array(
-//         QueryPage subclass, Special page name, Limit (false for none, none for the default)
-// ----------------------------------------------------------------------------
-       array( 'AncientPagesPage', 'Ancientpages' ),
-       array( 'BrokenRedirectsPage', 'BrokenRedirects' ),
-       array( 'DeadendPagesPage', 'Deadendpages' ),
-       array( 'DoubleRedirectsPage', 'DoubleRedirects' ),
-       array( 'FileDuplicateSearchPage', 'FileDuplicateSearch' ),
-       array( 'LinkSearchPage', 'LinkSearch' ),
-       array( 'ListredirectsPage', 'Listredirects' ),
-       array( 'LonelyPagesPage', 'Lonelypages' ),
-       array( 'LongPagesPage', 'Longpages' ),
-       array( 'MIMEsearchPage', 'MIMEsearch' ),
-       array( 'MostcategoriesPage', 'Mostcategories' ),
-       array( 'MostimagesPage', 'Mostimages' ),
-       array( 'MostinterwikisPage', 'Mostinterwikis' ),
-       array( 'MostlinkedCategoriesPage', 'Mostlinkedcategories' ),
-       array( 'MostlinkedtemplatesPage', 'Mostlinkedtemplates' ),
-       array( 'MostlinkedPage', 'Mostlinked' ),
-       array( 'MostrevisionsPage', 'Mostrevisions' ),
-       array( 'FewestrevisionsPage', 'Fewestrevisions' ),
-       array( 'ShortPagesPage', 'Shortpages' ),
-       array( 'UncategorizedCategoriesPage', 'Uncategorizedcategories' ),
-       array( 'UncategorizedPagesPage', 'Uncategorizedpages' ),
-       array( 'UncategorizedImagesPage', 'Uncategorizedimages' ),
-       array( 'UncategorizedTemplatesPage', 'Uncategorizedtemplates' ),
-       array( 'UnusedCategoriesPage', 'Unusedcategories' ),
-       array( 'UnusedimagesPage', 'Unusedimages' ),
-       array( 'WantedCategoriesPage', 'Wantedcategories' ),
-       array( 'WantedFilesPage', 'Wantedfiles' ),
-       array( 'WantedPagesPage', 'Wantedpages' ),
-       array( 'WantedTemplatesPage', 'Wantedtemplates' ),
-       array( 'UnwatchedPagesPage', 'Unwatchedpages' ),
-       array( 'UnusedtemplatesPage', 'Unusedtemplates' ),
-       array( 'WithoutInterwikiPage', 'Withoutinterwiki' ),
-);
-wfRunHooks( 'wgQueryPages', array( &$wgQueryPages ) );
-
-global $wgDisableCounters;
-if ( !$wgDisableCounters ) {
-       $wgQueryPages[] = array( 'PopularPagesPage', 'Popularpages' );
-}
-
 /**
  * This is a class for doing query pages; since they're almost all the same,
  * we factor out some of the functionality into a superclass, and let
@@ -108,6 +57,65 @@ abstract class QueryPage extends SpecialPage {
         */
        protected $shownavigation = true;
 
+       /**
+        * Get a list of query page classes and their associated special pages,
+        * for periodic updates.
+        *
+        * DO NOT CHANGE THIS LIST without testing that
+        * maintenance/updateSpecialPages.php still works.
+        * @return array
+        */
+       public static function getPages() {
+               global $wgDisableCounters;
+               static $qp = null;
+
+               if ( $qp === null ) {
+                       // QueryPage subclass, Special page name
+                       $qp = array(
+                               array( 'AncientPagesPage', 'Ancientpages' ),
+                               array( 'BrokenRedirectsPage', 'BrokenRedirects' ),
+                               array( 'DeadendPagesPage', 'Deadendpages' ),
+                               array( 'DoubleRedirectsPage', 'DoubleRedirects' ),
+                               array( 'FileDuplicateSearchPage', 'FileDuplicateSearch' ),
+                               array( 'ListDuplicatedFilesPage', 'ListDuplicatedFiles'),
+                               array( 'LinkSearchPage', 'LinkSearch' ),
+                               array( 'ListredirectsPage', 'Listredirects' ),
+                               array( 'LonelyPagesPage', 'Lonelypages' ),
+                               array( 'LongPagesPage', 'Longpages' ),
+                               array( 'MIMEsearchPage', 'MIMEsearch' ),
+                               array( 'MostcategoriesPage', 'Mostcategories' ),
+                               array( 'MostimagesPage', 'Mostimages' ),
+                               array( 'MostinterwikisPage', 'Mostinterwikis' ),
+                               array( 'MostlinkedCategoriesPage', 'Mostlinkedcategories' ),
+                               array( 'MostlinkedtemplatesPage', 'Mostlinkedtemplates' ),
+                               array( 'MostlinkedPage', 'Mostlinked' ),
+                               array( 'MostrevisionsPage', 'Mostrevisions' ),
+                               array( 'FewestrevisionsPage', 'Fewestrevisions' ),
+                               array( 'ShortPagesPage', 'Shortpages' ),
+                               array( 'UncategorizedCategoriesPage', 'Uncategorizedcategories' ),
+                               array( 'UncategorizedPagesPage', 'Uncategorizedpages' ),
+                               array( 'UncategorizedImagesPage', 'Uncategorizedimages' ),
+                               array( 'UncategorizedTemplatesPage', 'Uncategorizedtemplates' ),
+                               array( 'UnusedCategoriesPage', 'Unusedcategories' ),
+                               array( 'UnusedimagesPage', 'Unusedimages' ),
+                               array( 'WantedCategoriesPage', 'Wantedcategories' ),
+                               array( 'WantedFilesPage', 'Wantedfiles' ),
+                               array( 'WantedPagesPage', 'Wantedpages' ),
+                               array( 'WantedTemplatesPage', 'Wantedtemplates' ),
+                               array( 'UnwatchedPagesPage', 'Unwatchedpages' ),
+                               array( 'UnusedtemplatesPage', 'Unusedtemplates' ),
+                               array( 'WithoutInterwikiPage', 'Withoutinterwiki' ),
+                       );
+                       wfRunHooks( 'wgQueryPages', array( &$qp ) );
+
+                       if ( !$wgDisableCounters ) {
+                               $qp[] = array( 'PopularPagesPage', 'Popularpages' );
+                       }
+               }
+
+               return $qp;
+       }
+
        /**
         * A mutator for $this->listoutput;
         *
@@ -545,7 +553,7 @@ abstract class QueryPage extends SpecialPage {
                        if ( $this->numRows > 0 ) {
                                $out->addHTML( $this->msg( 'showingresultsinrange' )->numParams(
                                        min( $this->numRows, $this->limit ), # do not show the one extra row, if exist
-                                       $this->offset + 1, (min( $this->numRows, $this->limit ) + $this->offset) )->parseAsBlock() );
+                                       $this->offset + 1, ( min( $this->numRows, $this->limit ) + $this->offset ) )->parseAsBlock() );
                                # Disable the "next" link when we reach the end
                                $paging = $this->getLanguage()->viewPrevNext( $this->getPageTitle( $par ), $this->offset,
                                        $this->limit, $this->linkParameters(), ( $this->numRows <= $this->limit ) );
index 0de8cda..245714d 100644 (file)
@@ -3,7 +3,7 @@
  * HTML sanitizer for %MediaWiki.
  *
  * Copyright © 2002-2005 Brion Vibber <brion@pobox.com> et al
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
@@ -631,8 +631,7 @@ class Sanitizer {
                                # Remove the comment, leading and trailing
                                # spaces, and leave only one newline.
                                $text = substr_replace( $text, "\n", $spaceStart, $spaceLen + 1 );
-                       }
-                       else {
+                       } else {
                                # Remove just the comment.
                                $text = substr_replace( $text, '', $start, $end - $start );
                        }
@@ -1303,6 +1302,7 @@ class Sanitizer {
                        array( 'Sanitizer', 'normalizeCharReferencesCallback' ),
                        $text );
        }
+
        /**
         * @param string $matches
         * @return string
@@ -1839,7 +1839,7 @@ class Sanitizer {
                $rfc5322_atext = "a-z0-9!#$%&'*+\\-\/=?^_`{|}~";
                $rfc1034_ldh_str = "a-z0-9\\-";
 
-               $HTML5_email_regexp = "/
+               $html5_email_regexp = "/
                ^                      # start of string
                [$rfc5322_atext\\.]+    # user part which is liberal :p
                @                      # 'apostrophe'
@@ -1848,6 +1848,6 @@ class Sanitizer {
                $                      # End of string
                /ix"; // case Insensitive, eXtended
 
-               return (bool)preg_match( $HTML5_email_regexp, $addr );
+               return (bool)preg_match( $html5_email_regexp, $addr );
        }
 }
index 0ae6e9b..1a7f21e 100644 (file)
@@ -36,7 +36,7 @@ if ( !defined( 'MEDIAWIKI' ) ) {
 
 $fname = 'Setup.php';
 wfProfileIn( $fname );
-wfProfileIn( $fname  . '-defaults' );
+wfProfileIn( $fname . '-defaults' );
 
 // Check to see if we are at the file scope
 if ( !isset( $wgVersion ) ) {
@@ -265,6 +265,10 @@ if ( $wgSkipSkin ) {
        $wgSkipSkins[] = $wgSkipSkin;
 }
 
+if ( $wgLocalInterwiki ) {
+       array_unshift( $wgLocalInterwikis, $wgLocalInterwiki );
+}
+
 # Set default shared prefix
 if ( $wgSharedPrefix === false ) {
        $wgSharedPrefix = $wgDBprefix;
@@ -392,7 +396,7 @@ if ( $wgRC2UDPAddress ) {
        );
 }
 
-wfProfileOut( $fname  . '-defaults' );
+wfProfileOut( $fname . '-defaults' );
 
 // Disable MWDebug for command line mode, this prevents MWDebug from eating up
 // all the memory from logging SQL queries on maintenance scripts
@@ -452,6 +456,11 @@ if ( !$wgHTCPRouting && $wgHTCPMulticastAddress ) {
        );
 }
 
+// Back compatibility for $wgRateLimitLog deprecated with 1.23
+if ( $wgRateLimitLog && ! array_key_exists( 'ratelimit', $wgDebugLogGroups ) ) {
+       $wgDebugLogGroups['ratelimit'] = $wgRateLimitLog;
+}
+
 wfProfileOut( $fname . '-defaults2' );
 wfProfileIn( $fname . '-misc1' );
 
@@ -503,9 +512,9 @@ $messageMemc = wfGetMessageCacheStorage();
 $parserMemc = wfGetParserCacheStorage();
 $wgLangConvMemc = wfGetLangConverterCacheStorage();
 
-wfDebug( 'CACHES: ' . get_class( $wgMemc ) . '[main] ' .
+wfDebugLog( 'caches', get_class( $wgMemc ) . '[main] ' .
        get_class( $messageMemc ) . '[message] ' .
-       get_class( $parserMemc ) . "[parser]\n" );
+       get_class( $parserMemc ) . '[parser]' );
 
 wfProfileOut( $fname . '-memcached' );
 
index 6722cca..38c3623 100644 (file)
@@ -182,7 +182,9 @@ abstract class Skin extends ContextSource {
                return $skin;
        }
 
-       /** @return string skin name */
+       /**
+        * @return string skin name
+        */
        public function getSkinName() {
                return $this->skinname;
        }
@@ -958,9 +960,10 @@ abstract class Skin extends ContextSource {
        }
 
        /**
-        * @param $desc
-        * @param $page
-        * @return string
+        * Returns an HTML link for use in the footer
+        * @param string $desc i18n message key for the link text
+        * @param string $page i18n message key for the page to link to
+        * @return string HTML anchor
         */
        public function footerLink( $desc, $page ) {
                // if the link description has been set to "-" in the default language,
@@ -1247,6 +1250,7 @@ abstract class Skin extends ContextSource {
                wfProfileOut( __METHOD__ );
                return $bar;
        }
+
        /**
         * Add content from a sidebar system message
         * Currently only used for MediaWiki:Sidebar (but may be used by Extensions)
index b13d285..32f0ed3 100644 (file)
@@ -104,7 +104,11 @@ class SkinTemplate extends Skin {
         * @param $out OutputPage
         */
        function setupSkinUserCss( OutputPage $out ) {
-               $out->addModuleStyles( array( 'mediawiki.legacy.shared', 'mediawiki.legacy.commonPrint' ) );
+               $out->addModuleStyles( array(
+                       'mediawiki.legacy.shared',
+                       'mediawiki.legacy.commonPrint',
+                       'mediawiki.ui.button'
+               ) );
        }
 
        /**
@@ -398,6 +402,8 @@ class SkinTemplate extends Skin {
                // that interface elements are in a different language.
                $tpl->set( 'userlangattributes', '' );
                $tpl->set( 'specialpageattributes', '' ); # obsolete
+               // Used by VectorBeta to insert HTML before content but after the heading for the page title. Defaults to empty string.
+               $tpl->set( 'prebodyhtml', '' );
 
                if ( $userLangCode !== $wgContLang->getHtmlCode() || $userLangDir !== $wgContLang->getDir() ) {
                        $escUserlang = htmlspecialchars( $userLangCode );
@@ -1734,6 +1740,19 @@ abstract class BaseTemplate extends QuickTemplate {
                return $boxes;
        }
 
+       /**
+        * @param string $name
+        */
+       protected function renderAfterPortlet( $name ) {
+               $content = '';
+               wfRunHooks( 'BaseTemplateAfterPortlet', array( $this, $name, &$content ) );
+
+               if ( $content !== '' ) {
+                       echo "<div class='after-portlet after-portlet-$name'>$content</div>";
+               }
+
+       }
+
        /**
         * Makes a link, usually used by makeListItem to generate a link for an item
         * in a list used in navigation lists, portlets, portals, sidebars, etc...
@@ -1840,7 +1859,7 @@ abstract class BaseTemplate extends QuickTemplate {
         *
         * @param $key string, usually a key from the list you are generating this link from.
         * @param $item array, of list item data containing some of a specific set of keys.
-        * The "id" and "class" keys will be used as attributes for the list item,
+        * The "id", "class" and "itemtitle" keys will be used as attributes for the list item,
         * if "active" contains a value of true a "active" class will also be appended to class.
         *
         * @param $options array
@@ -1857,7 +1876,8 @@ abstract class BaseTemplate extends QuickTemplate {
         * list item directly so they will not be passed to makeLink
         * (however the link will still support a tooltip and accesskey from it)
         * If you need an id or class on a single link you should include a "links"
-        * array with just one link item inside of it.
+        * array with just one link item inside of it. If you want to add a title
+        * to the list item itself, you can set "itemtitle" to the value.
         * $options is also passed on to makeLink calls
         *
         * @return string
@@ -1871,7 +1891,7 @@ abstract class BaseTemplate extends QuickTemplate {
                } else {
                        $link = $item;
                        // These keys are used by makeListItem and shouldn't be passed on to the link
-                       foreach ( array( 'id', 'class', 'active', 'tag' ) as $k ) {
+                       foreach ( array( 'id', 'class', 'active', 'tag', 'itemtitle' ) as $k ) {
                                unset( $link[$k] );
                        }
                        if ( isset( $item['id'] ) && !isset( $item['single-id'] ) ) {
@@ -1896,6 +1916,9 @@ abstract class BaseTemplate extends QuickTemplate {
                        $attrs['class'] .= ' active';
                        $attrs['class'] = trim( $attrs['class'] );
                }
+               if ( isset( $item['itemtitle'] ) ) {
+                       $attrs['title'] = $item['itemtitle'];
+               }
                return Html::rawElement( isset( $options['tag'] ) ? $options['tag'] : 'li', $attrs, $html );
        }
 
index e11ba03..795fd45 100644 (file)
@@ -224,9 +224,11 @@ class Status {
        /**
         * Get the error list as a Message object
         *
-        * @param string $shortContext a short enclosing context message name, to
-        *        be used when there is a single error
-        * @param string $longContext a long enclosing context message name, for a list
+        * @param string|string[] $shortContext A short enclosing context message name (or an array of
+        * message names), to be used when there is a single error.
+        * @param string|string[] $longContext A long enclosing context message name (or an array of
+        * message names), for a list.
+        *
         * @return Message
         */
        public function getMessage( $shortContext = false, $longContext = false ) {
@@ -256,13 +258,13 @@ class Status {
                                $msgCount++;
                        }
 
-                       $wrapper = new RawMessage( '* $' . implode( "\n* \$", range( 1, $msgCount ) ) );
-                       $s = $wrapper->params( $msgs )->parse();
+                       $s = new RawMessage( '* $' . implode( "\n* \$", range( 1, $msgCount ) ) );
+                       $s->params( $msgs )->parse();
 
                        if ( $longContext ) {
-                               $s = wfMessage( $longContext, $wrapper );
+                               $s = wfMessage( $longContext, $s );
                        } elseif ( $shortContext ) {
-                               $wrapper = new RawMessage( "\n\$1\n", $wrapper );
+                               $wrapper = new RawMessage( "\n\$1\n", $s );
                                $wrapper->parse();
                                $s = wfMessage( $shortContext, $wrapper );
                        }
index 18f58fd..4345a73 100644 (file)
@@ -3,4 +3,4 @@
 /**
  * @since 1.20
  */
-class TimestampException extends MWException {}
\ No newline at end of file
+class TimestampException extends MWException {}
index a705aaa..c85a006 100644 (file)
@@ -3200,7 +3200,7 @@ class Title {
         * @return Bool true on success
         */
        private function secureAndSplit() {
-               global $wgContLang, $wgLocalInterwiki;
+               global $wgContLang, $wgLocalInterwikis;
 
                # Initialisation
                $this->mInterwiki = '';
@@ -3273,17 +3273,17 @@ class Title {
                                        $this->mInterwiki = $wgContLang->lc( $p );
 
                                        # Redundant interwiki prefix to the local wiki
-                                       if ( $wgLocalInterwiki !== false
-                                               && 0 == strcasecmp( $this->mInterwiki, $wgLocalInterwiki )
-                                       ) {
-                                               if ( $dbkey == '' ) {
-                                                       # Can't have an empty self-link
-                                                       return false;
+                                       foreach ( $wgLocalInterwikis as $localIW ) {
+                                               if ( 0 == strcasecmp( $this->mInterwiki, $localIW ) ) {
+                                                       if ( $dbkey == '' ) {
+                                                               # Can't have an empty self-link
+                                                               return false;
+                                                       }
+                                                       $this->mInterwiki = '';
+                                                       $firstPass = false;
+                                                       # Do another namespace split...
+                                                       continue 2;
                                                }
-                                               $this->mInterwiki = '';
-                                               $firstPass = false;
-                                               # Do another namespace split...
-                                               continue;
                                        }
 
                                        # If there's an initial colon after the interwiki, that also
index f900538..b4a553f 100644 (file)
@@ -83,4 +83,4 @@ class TitleArrayFromResult extends TitleArray implements Countable {
        function valid() {
                return $this->current !== false;
        }
-}
\ No newline at end of file
+}
index 0b28f66..1ccb732 100644 (file)
@@ -697,6 +697,7 @@ class User {
                return $this->getPasswordValidity( $password ) === true;
        }
 
+
        /**
         * Given unvalidated password input, return error message on failure.
         *
@@ -704,6 +705,33 @@ class User {
         * @return mixed: true on success, string or array of error message on failure
         */
        public function getPasswordValidity( $password ) {
+               $result = $this->checkPasswordValidity( $password );
+               if ( $result->isGood() ) {
+                       return true;
+               } else {
+                       $messages = array();
+                       foreach ( $result->getErrorsByType( 'error' ) as $error ) {
+                               $messages[] = $error['message'];
+                       }
+                       foreach ( $result->getErrorsByType( 'warning' ) as $warning ) {
+                               $messages[] = $warning['message'];
+                       }
+                       if ( count( $messages ) === 1 ) {
+                               return $messages[0];
+                       }
+                       return $messages;
+               }
+       }
+
+       /**
+        * Check if this is a valid password for this user. Status will be good if
+        * the password is valid, or have an array of error messages if not.
+        *
+        * @param string $password Desired password
+        * @return Status
+        * @since 1.23
+        */
+       public function checkPasswordValidity( $password ) {
                global $wgMinimalPasswordLength, $wgContLang;
 
                static $blockedLogins = array(
@@ -711,30 +739,37 @@ class User {
                        'Apitestsysop' => 'testpass', 'Apitestuser' => 'testpass' # r75605
                );
 
+               $status = Status::newGood();
+
                $result = false; //init $result to false for the internal checks
 
                if ( !wfRunHooks( 'isValidPassword', array( $password, &$result, $this ) ) ) {
-                       return $result;
+                       $status->error( $result );
+                       return $status;
                }
 
                if ( $result === false ) {
                        if ( strlen( $password ) < $wgMinimalPasswordLength ) {
-                               return 'passwordtooshort';
+                               $status->error( 'passwordtooshort', $wgMinimalPasswordLength );
+                               return $status;
                        } elseif ( $wgContLang->lc( $password ) == $wgContLang->lc( $this->mName ) ) {
-                               return 'password-name-match';
+                               $status->error( 'password-name-match' );
+                               return $status;
                        } elseif ( isset( $blockedLogins[$this->getName()] ) && $password == $blockedLogins[$this->getName()] ) {
-                               return 'password-login-forbidden';
+                               $status->error( 'password-login-forbidden' );
+                               return $status;
                        } else {
-                               //it seems weird returning true here, but this is because of the
+                               //it seems weird returning a Good status here, but this is because of the
                                //initialization of $result to false above. If the hook is never run or it
                                //doesn't modify $result, then we will likely get down into this if with
                                //a valid password.
-                               return true;
+                               return $status;
                        }
                } elseif ( $result === true ) {
-                       return true;
+                       return $status;
                } else {
-                       return $result; //the isValidPassword hook set a string $result and returned true
+                       $status->error( $result );
+                       return $status; //the isValidPassword hook set a string $result and returned true
                }
        }
 
@@ -1088,7 +1123,7 @@ class User {
                } else {
                        $result = 0;
                        for ( $i = 0; $i < strlen( $answer ); $i++ ) {
-                               $result |= ord( $answer{$i} ) ^ ord( $test{$i} );
+                               $result |= ord( $answer[$i] ) ^ ord( $test[$i] );
                        }
                        $passwordCorrect = ( $result == 0 );
                }
@@ -1602,7 +1637,7 @@ class User {
                        return false;
                }
 
-               global $wgMemc, $wgRateLimitLog;
+               global $wgMemc;
                wfProfileIn( __METHOD__ );
 
                $limits = $wgRateLimits[$action];
@@ -1665,12 +1700,7 @@ class User {
                        // Already pinged?
                        if ( $count ) {
                                if ( $count >= $max ) {
-                                       wfDebug( __METHOD__ . ": tripped! $key at $count $summary\n" );
-                                       if ( $wgRateLimitLog ) {
-                                               wfSuppressWarnings();
-                                               file_put_contents( $wgRateLimitLog, wfTimestamp( TS_MW ) . ' ' . wfWikiID() . ': ' . $this->getName() . " tripped $key at $count $summary\n", FILE_APPEND );
-                                               wfRestoreWarnings();
-                                       }
+                                       wfDebugLog( 'ratelimit', $this->getName() . " tripped! $key at $count $summary" );
                                        $triggered = true;
                                } else {
                                        wfDebug( __METHOD__ . ": ok. $key at $count $summary\n" );
@@ -3692,14 +3722,9 @@ class User {
                global $wgAuth, $wgLegacyEncoding;
                $this->load();
 
-               // Even though we stop people from creating passwords that
-               // are shorter than this, doesn't mean people wont be able
-               // to. Certain authentication plugins do NOT want to save
+               // Certain authentication plugins do NOT want to save
                // domain passwords in a mysql database, so we should
                // check this (in case $wgAuth->strict() is false).
-               if ( !$this->isValidPassword( $password ) ) {
-                       return false;
-               }
 
                if ( $wgAuth->authenticate( $this->getName(), $password ) ) {
                        return true;
@@ -4741,28 +4766,35 @@ class User {
                        // Don't bother storing default values
                        $defaultOption = self::getDefaultOption( $key );
                        if ( ( is_null( $defaultOption ) &&
-                                       !( $value === false || is_null( $value ) ) ) ||
-                                       $value != $defaultOption ) {
+                               !( $value === false || is_null( $value ) ) ) ||
+                               $value != $defaultOption
+                       ) {
                                $insert_rows[] = array(
-                                               'up_user' => $userId,
-                                               'up_property' => $key,
-                                               'up_value' => $value,
-                                       );
+                                       'up_user' => $userId,
+                                       'up_property' => $key,
+                                       'up_value' => $value,
+                               );
                        }
                }
 
                $dbw = wfGetDB( DB_MASTER );
-               $hasRows = $dbw->selectField( 'user_properties', '1',
-                       array( 'up_user' => $userId ), __METHOD__ );
-
-               if ( $hasRows ) {
-                       // Only do this delete if there is something there. A very large portion of
+               // Find and delete any prior preference rows...
+               $res = $dbw->select( 'user_properties',
+                       array( 'up_property' ), array( 'up_user' => $userId ), __METHOD__ );
+               $priorKeys = array();
+               foreach ( $res as $row ) {
+                       $priorKeys[] = $row->up_property;
+               }
+               if ( count( $priorKeys ) ) {
+                       // Do the DELETE by PRIMARY KEY for prior rows. A very large portion of
                        // calls to this function are for setting 'rememberpassword' for new accounts.
-                       // Doing this delete for new accounts with no rows in the table rougly causes
-                       // gap locks on [max user ID,+infinity) which causes high contention since many
-                       // updates will pile up on each other since they are for higher (newer) user IDs.
-                       $dbw->delete( 'user_properties', array( 'up_user' => $userId ), __METHOD__ );
+                       // Doing a blanket per-user DELETE for new accounts with no rows in the table
+                       // causes gap locks on [max user ID,+infinity) which causes high contention since
+                       // updates will pile up on each other as they are for higher (newer) user IDs.
+                       $dbw->delete( 'user_properties',
+                               array( 'up_user' => $userId, 'up_property' => $priorKeys ), __METHOD__ );
                }
+               // Insert the new preference rows
                $dbw->insert( 'user_properties', $insert_rows, __METHOD__, array( 'IGNORE' ) );
        }
 
index 38f0d9d..51fb154 100644 (file)
@@ -63,4 +63,4 @@ abstract class UserArray implements Iterator {
        protected static function newFromResult_internal( $res ) {
                return new UserArrayFromResult( $res );
        }
-}
\ No newline at end of file
+}
index fe80929..de4457d 100644 (file)
@@ -262,8 +262,7 @@ class UserMailer {
                                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 {
+                       } else {
                                require_once 'Mail/mime.php';
                                if ( wfIsWindows() ) {
                                        $body['text'] = str_replace( "\n", "\r\n", $body['text'] );
@@ -276,7 +275,7 @@ class UserMailer {
                                $headers = $mime->headers( $headers );
                        }
                }
-               if ( !isset( $mime ) ) {
+               if ( $mime === null ) {
                        // sending text only, either deliberately or as a fallback
                        if ( wfIsWindows() ) {
                                $body = str_replace( "\n", "\r\n", $body );
index fe97843..a6e7516 100644 (file)
@@ -70,16 +70,26 @@ class WatchedItem {
                return $this->mTitle;
        }
 
-       /** Helper to retrieve the title namespace */
+       /**
+        * Helper to retrieve the title namespace
+        * @return int
+        */
        protected function getTitleNs() {
                return $this->getTitle()->getNamespace();
        }
 
-       /** Helper to retrieve the title DBkey */
+       /**
+        * Helper to retrieve the title DBkey
+        * @return string
+        */
        protected function getTitleDBkey() {
                return $this->getTitle()->getDBkey();
        }
-       /** Helper to retrieve the user id */
+
+       /**
+        * Helper to retrieve the user id
+        * @return int
+        */
        protected function getUserId() {
                return $this->mUser->getId();
        }
index 399facf..01366f4 100644 (file)
@@ -3,7 +3,7 @@
  * Deal with importing all those nasty globals and things
  *
  * Copyright © 2003 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index ab7524c..a3dadd0 100644 (file)
@@ -88,12 +88,6 @@ class WebResponse {
                        $expire = time() + $wgCookieExpiration;
                }
 
-               // Don't mark the cookie as httpOnly if the requesting user-agent is
-               // known to have trouble with httpOnly cookies.
-               if ( !wfHttpOnlySafe() ) {
-                       $options['httpOnly'] = false;
-               }
-
                $func = $options['raw'] ? 'setrawcookie' : 'setcookie';
 
                if ( wfRunHooks( 'WebResponseSetCookie', array( &$name, &$value, &$expire, $options ) ) ) {
index 58c953a..eb79134 100644 (file)
@@ -126,8 +126,8 @@ if ( defined( 'MW_CONFIG_CALLBACK' ) ) {
 
        # LocalSettings.php is the per site customization file. If it does not exist
        # the wiki installer needs to be launched or the generated file uploaded to
-       # the root wiki directory
-       if ( !file_exists( MW_CONFIG_FILE ) ) {
+       # the root wiki directory. Give a hint, if it is not readable by the server.
+       if ( !is_readable( MW_CONFIG_FILE ) ) {
                require_once "$IP/includes/templates/NoLocalSettings.php";
                die();
        }
index 5c67e5f..4bf8fd3 100644 (file)
@@ -587,6 +587,9 @@ class MediaWiki {
                // Actually do the work of the request and build up any output
                $this->performRequest();
 
+               // Either all DB and deferred updates should happen or none.
+               // The later should not be cancelled due to client disconnect.
+               ignore_user_abort( true );
                // Now commit any transactions, so that unreported errors after
                // output() don't roll back the whole DB transaction
                wfGetLBFactory()->commitMasterChanges();
@@ -621,10 +624,12 @@ class MediaWiki {
         * the socket once it's done.
         */
        protected function triggerJobs() {
-               global $wgJobRunRate, $wgServer, $wgScriptPath, $wgScriptExtension, $wgEnableAPI;
+               global $wgJobRunRate, $wgServer;
 
                if ( $wgJobRunRate <= 0 || wfReadOnly() ) {
                        return;
+               } elseif ( $this->getTitle()->isSpecial( 'RunJobs' ) ) {
+                       return; // recursion guard
                }
 
                $section = new ProfileSection( __METHOD__ );
@@ -639,14 +644,9 @@ class MediaWiki {
                        $n = intval( $wgJobRunRate );
                }
 
-               $query = array( 'action' => 'runjobs',
+               $query = array( 'title' => 'Special:RunJobs',
                        'tasks' => 'jobs', 'maxjobs' => $n, 'sigexpiry' => time() + 5 );
-               $query['signature'] = ApiRunJobs::getQuerySignature( $query );
-
-               if ( !$wgEnableAPI ) {
-                       ApiRunJobs::executeJobs( $n ); // slow fallback
-                       return;
-               }
+               $query['signature'] = SpecialRunJobs::getQuerySignature( $query );
 
                $errno = $errstr = null;
                $info = wfParseUrl( $wgServer );
@@ -660,11 +660,12 @@ class MediaWiki {
                wfRestoreWarnings();
                if ( !$sock ) {
                        wfDebugLog( 'runJobs', "Failed to start cron API (socket error $errno): $errstr\n" );
-                       ApiRunJobs::executeJobs( $n ); // slow fallback
+                       // Fall back to running the job here while the user waits
+                       SpecialRunJobs::executeJobs( $n );
                        return;
                }
 
-               $url = wfAppendQuery( "{$wgScriptPath}/api{$wgScriptExtension}", $query );
+               $url = wfAppendQuery( wfScript( 'index' ), $query );
                $req = "POST $url HTTP/1.1\r\nHost: {$info['host']}\r\nConnection: Close\r\n\r\n";
 
                wfDebugLog( 'runJobs', "Running $n job(s) via '$url'\n" );
index da4416d..4739753 100644 (file)
@@ -127,7 +127,7 @@ class WikiMap {
 class WikiReference {
        private $mMinor; ///< 'en', 'meta', 'mediawiki', etc
        private $mMajor; ///< 'wiki', 'wiktionary', etc
-       private $mCanonicalServer; ///< canonical server URL, e.g. 'http://www.mediawiki.org'
+       private $mCanonicalServer; ///< canonical server URL, e.g. 'https://www.mediawiki.org'
        private $mServer; ///< server URL, may be protocol-relative, e.g. '//www.mediawiki.org'
        private $mPath;   ///< path, '/wiki/$1'
 
index 3de0475..b4aa303 100644 (file)
@@ -1568,7 +1568,7 @@ class WikiPage implements Page, IDBAccessObject {
         * @param $flags Int
         * @return Int updated $flags
         */
-       function checkFlags( $flags ) {
+       public function checkFlags( $flags ) {
                if ( !( $flags & EDIT_NEW ) && !( $flags & EDIT_UPDATE ) ) {
                        if ( $this->exists() ) {
                                $flags |= EDIT_UPDATE;
@@ -2945,6 +2945,29 @@ class WikiPage implements Page, IDBAccessObject {
                        return array( array( 'notvisiblerev' ) );
                }
 
+               // Set patrolling and bot flag on the edits, which gets rollbacked.
+               // This is done before the rollback edit to have patrolling also on failure (bug 62157).
+               $set = array();
+               if ( $bot && $guser->isAllowed( 'markbotedits' ) ) {
+                       // Mark all reverted edits as bot
+                       $set['rc_bot'] = 1;
+               }
+
+               if ( $wgUseRCPatrol ) {
+                       // Mark all reverted edits as patrolled
+                       $set['rc_patrolled'] = 1;
+               }
+
+               if ( count( $set ) ) {
+                       $dbw->update( 'recentchanges', $set,
+                               array( /* WHERE */
+                                       'rc_cur_id' => $current->getPage(),
+                                       'rc_user_text' => $current->getUserText(),
+                                       'rc_timestamp > ' . $dbw->addQuotes( $s->rev_timestamp ),
+                               ), __METHOD__
+                       );
+               }
+
                // Generate the edit summary if necessary
                $target = Revision::newFromId( $s->rev_id );
                if ( empty( $summary ) ) {
@@ -3001,27 +3024,6 @@ class WikiPage implements Page, IDBAccessObject {
                        ) );
                }
 
-               $set = array();
-               if ( $bot && $guser->isAllowed( 'markbotedits' ) ) {
-                       // Mark all reverted edits as bot
-                       $set['rc_bot'] = 1;
-               }
-
-               if ( $wgUseRCPatrol ) {
-                       // Mark all reverted edits as patrolled
-                       $set['rc_patrolled'] = 1;
-               }
-
-               if ( count( $set ) ) {
-                       $dbw->update( 'recentchanges', $set,
-                               array( /* WHERE */
-                                       'rc_cur_id' => $current->getPage(),
-                                       'rc_user_text' => $current->getUserText(),
-                                       'rc_timestamp > ' . $dbw->addQuotes( $s->rev_timestamp ),
-                               ), __METHOD__
-                       );
-               }
-
                $revId = $status->value['revision']->getId();
 
                wfRunHooks( 'ArticleRollbackComplete', array( $this, $guser, $target, $current ) );
@@ -3508,7 +3510,7 @@ class PoolWorkArticleView extends PoolCounterWork {
         * @param $parserOptions parserOptions to use for the parse operation
         * @param $content Content|String: content to parse or null to load it; may also be given as a wikitext string, for BC
         */
-       function __construct( Page $page, ParserOptions $parserOptions, $revid, $useParserCache, $content = null ) {
+       public function __construct( Page $page, ParserOptions $parserOptions, $revid, $useParserCache, $content = null ) {
                if ( is_string( $content ) ) { // BC: old style call
                        $modelId = $page->getRevision()->getContentModel();
                        $format = $page->getRevision()->getContentFormat();
@@ -3554,7 +3556,7 @@ class PoolWorkArticleView extends PoolCounterWork {
        /**
         * @return bool
         */
-       function doWork() {
+       public function doWork() {
                global $wgUseFileCache;
 
                // @todo several of the methods called on $this->page are not declared in Page, but present
@@ -3617,7 +3619,7 @@ class PoolWorkArticleView extends PoolCounterWork {
        /**
         * @return bool
         */
-       function getCachedWork() {
+       public function getCachedWork() {
                $this->parserOutput = ParserCache::singleton()->get( $this->page, $this->parserOptions );
 
                if ( $this->parserOutput === false ) {
@@ -3632,7 +3634,7 @@ class PoolWorkArticleView extends PoolCounterWork {
        /**
         * @return bool
         */
-       function fallback() {
+       public function fallback() {
                $this->parserOutput = ParserCache::singleton()->getDirty( $this->page, $this->parserOptions );
 
                if ( $this->parserOutput === false ) {
@@ -3651,7 +3653,7 @@ class PoolWorkArticleView extends PoolCounterWork {
         * @param $status Status
         * @return bool
         */
-       function error( $status ) {
+       public function error( $status ) {
                $this->error = $status;
                return false;
        }
index 332fa9e..364300e 100644 (file)
@@ -222,7 +222,7 @@ class ApiBlock extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Block a user';
+               return 'Block a user.';
        }
 
        public function getPossibleErrors() {
index 237e8c8..c1bbea7 100644 (file)
@@ -157,8 +157,8 @@ class ApiComparePages extends ApiBase {
 
        public function getDescription() {
                return array(
-                       'Get the difference between 2 pages',
-                       'You must pass a revision number or a page title or a page ID id for each part (1 and 2)'
+                       'Get the difference between 2 pages.',
+                       'You must pass a revision number or a page title or a page ID id for each part (1 and 2).'
                );
        }
 
index c09cad3..acc2eb8 100644 (file)
@@ -240,7 +240,7 @@ class ApiDelete extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Delete a page';
+               return 'Delete a page.';
        }
 
        public function getPossibleErrors() {
index e5ef3b7..6ea5d20 100644 (file)
@@ -53,7 +53,7 @@ class ApiDisabled extends ApiBase {
        }
 
        public function getDescription() {
-               return 'This module has been disabled';
+               return 'This module has been disabled.';
        }
 
        public function getExamples() {
index d5c789c..28ed5e4 100644 (file)
@@ -108,7 +108,7 @@ class ApiExpandTemplates extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Expands all templates in wikitext';
+               return 'Expands all templates in wikitext.';
        }
 
        public function getPossibleErrors() {
index 2cdc875..4173402 100644 (file)
@@ -208,7 +208,7 @@ class ApiFeedContributions extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Returns a user contributions feed';
+               return 'Returns a user contributions feed.';
        }
 
        public function getPossibleErrors() {
diff --git a/includes/api/ApiFeedRecentChanges.php b/includes/api/ApiFeedRecentChanges.php
new file mode 100644 (file)
index 0000000..f1c1bf3
--- /dev/null
@@ -0,0 +1,203 @@
+<?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
+ * @since 1.23
+ */
+
+/**
+ * Recent changes feed.
+ *
+ * @ingroup API
+ */
+class ApiFeedRecentChanges extends ApiBase {
+
+       /**
+        * This module uses a custom feed wrapper printer.
+        *
+        * @return ApiFormatFeedWrapper
+        */
+       public function getCustomPrinter() {
+               return new ApiFormatFeedWrapper( $this->getMain() );
+       }
+
+       /**
+        * Format the rows (generated by SpecialRecentchanges or SpecialRecentchangeslinked)
+        * as an RSS/Atom feed.
+        */
+       public function execute() {
+               global $wgFeed, $wgFeedClasses;
+
+               $this->params = $this->extractRequestParams();
+
+               if ( !$wgFeed ) {
+                       $this->dieUsage( 'Syndication feeds are not available', 'feed-unavailable' );
+               }
+
+               if ( !isset( $wgFeedClasses[$this->params['feedformat']] ) ) {
+                       $this->dieUsage( 'Invalid subscription feed type', 'feed-invalid' );
+               }
+
+               $feedFormat = $this->params['feedformat'];
+               $specialClass = $this->params['target'] !== null
+                       ? 'SpecialRecentchangeslinked'
+                       : 'SpecialRecentchanges';
+
+               $formatter = $this->getFeedObject( $feedFormat, $specialClass );
+
+               // Everything is passed implicitly via $wgRequest… :(
+               // The row-getting functionality should maybe be factored out of ChangesListSpecialPage too…
+               $rc = new $specialClass();
+               $rows = $rc->getRows();
+
+               $feedItems = $rows ? ChangesFeed::buildItems( $rows ) : array();
+
+               ApiFormatFeedWrapper::setResult( $this->getResult(), $formatter, $feedItems );
+       }
+
+       /**
+        * Return a ChannelFeed object.
+        *
+        * @param string $feedFormat Feed's format (either 'rss' or 'atom')
+        * @param string $specialClass Relevant special page name (either 'SpecialRecentchanges' or
+        *     'SpecialRecentchangeslinked')
+        * @return ChannelFeed
+        */
+       public function getFeedObject( $feedFormat, $specialClass ) {
+               if ( $specialClass === 'SpecialRecentchangeslinked' ) {
+                       $title = Title::newFromText( $this->params['target'] );
+                       $feed = new ChangesFeed( $feedFormat, false );
+                       $feedObj = $feed->getFeedObject(
+                               $this->msg( 'recentchangeslinked-title', $title->getPrefixedText() )
+                                       ->inContentLanguage()->text(),
+                               $this->msg( 'recentchangeslinked-feed' )->inContentLanguage()->text(),
+                               SpecialPage::getTitleFor( 'Recentchangeslinked' )->getFullURL()
+                       );
+               } else {
+                       $feed = new ChangesFeed( $feedFormat, 'rcfeed' );
+                       $feedObj = $feed->getFeedObject(
+                               $this->msg( 'recentchanges' )->inContentLanguage()->text(),
+                               $this->msg( 'recentchanges-feed-description' )->inContentLanguage()->text(),
+                               SpecialPage::getTitleFor( 'Recentchanges' )->getFullURL()
+                       );
+               }
+
+               return $feedObj;
+       }
+
+       public function getAllowedParams() {
+               global $wgFeedClasses, $wgAllowCategorizedRecentChanges, $wgFeedLimit;
+               $feedFormatNames = array_keys( $wgFeedClasses );
+
+               $ret = array(
+                       'feedformat' => array(
+                               ApiBase::PARAM_DFLT => 'rss',
+                               ApiBase::PARAM_TYPE => $feedFormatNames,
+                       ),
+
+                       'namespace' => array(
+                               ApiBase::PARAM_TYPE => 'namespace',
+                       ),
+                       'invert' => false,
+                       'associated' => false,
+
+                       'days' => array(
+                               ApiBase::PARAM_DFLT => 7,
+                               ApiBase::PARAM_MIN => 1,
+                               ApiBase::PARAM_TYPE => 'integer',
+                       ),
+                       'limit' => array(
+                               ApiBase::PARAM_DFLT => 50,
+                               ApiBase::PARAM_MIN => 1,
+                               ApiBase::PARAM_MAX => $wgFeedLimit,
+                               ApiBase::PARAM_TYPE => 'integer',
+                       ),
+                       'from' => array(
+                               ApiBase::PARAM_TYPE => 'timestamp',
+                       ),
+
+                       'hideminor' => false,
+                       'hidebots' => false,
+                       'hideanons' => false,
+                       'hideliu' => false,
+                       'hidepatrolled' => false,
+                       'hidemyself' => false,
+
+                       'tagfilter' => array(
+                               ApiBase::PARAM_TYPE => 'string',
+                       ),
+
+                       'target' => array(
+                               ApiBase::PARAM_TYPE => 'string',
+                       ),
+                       'showlinkedto' => false,
+               );
+
+               if ( $wgAllowCategorizedRecentChanges ) {
+                       $ret += array(
+                               'categories' => array(
+                                       ApiBase::PARAM_TYPE => 'string',
+                                       ApiBase::PARAM_ISMULTI => true,
+                               ),
+                               'categories_any' => false,
+                       );
+               }
+
+               return $ret;
+       }
+
+       public function getParamDescription() {
+               return array(
+                       'feedformat' => 'The format of the feed',
+                       'namespace' => 'Namespace to limit the results to',
+                       'invert' => 'All namespaces but the selected one',
+                       'associated' => 'Include associated (talk or main) namespace',
+                       'days' => 'Days to limit the results to',
+                       'limit' => 'Maximum number of results to return',
+                       'from' => 'Show changes since then',
+                       'hideminor' => 'Hide minor changes',
+                       'hidebots' => 'Hide changes made by bots',
+                       'hideanons' => 'Hide changes made by anonymous users',
+                       'hideliu' => 'Hide changes made by registered users',
+                       'hidepatrolled' => 'Hide patrolled changes',
+                       'hidemyself' => 'Hide changes made by yourself',
+                       'tagfilter' => 'Filter by tag',
+                       'target' => 'Show only changes on pages linked from this page',
+                       'showlinkedto' => 'Show changes on pages linked to the selected page instead',
+                       'categories' => 'Show only changes on pages in all of these categories',
+                       'categories_any' => 'Show only changes on pages in any of the categories instead',
+               );
+       }
+
+       public function getDescription() {
+               return 'Returns a recent changes feed';
+       }
+
+       public function getPossibleErrors() {
+               return array_merge( parent::getPossibleErrors(), array(
+                       array( 'code' => 'feed-unavailable', 'info' => 'Syndication feeds are not available' ),
+                       array( 'code' => 'feed-invalid', 'info' => 'Invalid subscription feed type' ),
+               ) );
+       }
+
+       public function getExamples() {
+               return array(
+                       'api.php?action=feedrecentchanges',
+                       'api.php?action=feedrecentchanges&days=30'
+               );
+       }
+}
index 84c1fae..4770365 100644 (file)
@@ -266,7 +266,7 @@ class ApiFeedWatchlist extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Returns a watchlist feed';
+               return 'Returns a watchlist feed.';
        }
 
        public function getPossibleErrors() {
index a3fa5f9..1941fbd 100644 (file)
@@ -167,7 +167,7 @@ class ApiFileRevert extends ApiBase {
 
        public function getDescription() {
                return array(
-                       'Revert a file to an old version'
+                       'Revert a file to an old version.'
                );
        }
 
index 49a02fe..3c924bc 100644 (file)
@@ -275,8 +275,8 @@ See the <a href='https://www.mediawiki.org/wiki/API'>complete documentation</a>,
                // identify requests to api.php
                $text = preg_replace( '#^(\s*)(api\.php\?[^ <\n\t]+)$#m', '\1<a href="\2">\2</a>', $text );
                if ( $this->mHelp ) {
-                       // make strings inside * bold
-                       $text = preg_replace( "#\\*[^<>\n]+\\*#", '<b>\\0</b>', $text );
+                       // make lines inside * bold
+                       $text = preg_replace( '#^(\s*)(\*[^<>\n]+\*)(\s*)$#m', '$1<b>$2</b>$3', $text );
                }
 
                // Armor links (bug 61362)
index 5b1f29c..e584d0d 100644 (file)
@@ -152,7 +152,7 @@ class ApiHelp extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Display this help screen. Or the help screen for the specified module';
+               return 'Display this help screen. Or the help screen for the specified module.';
        }
 
        public function getExamples() {
index 5d2ee6f..b8e16ab 100644 (file)
@@ -203,7 +203,7 @@ class ApiImageRotate extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Rotate one or more images';
+               return 'Rotate one or more images.';
        }
 
        public function needsToken() {
index fe3143e..cba2134 100644 (file)
@@ -261,7 +261,7 @@ class ApiLogin extends ApiBase {
                        'In the event of a successful log-in, a cookie will be attached to your session.',
                        'In the event of a failed log-in, you will not be able to attempt another log-in',
                        'through this method for 5 seconds. This is to prevent password guessing by',
-                       'automated password crackers'
+                       'automated password crackers.'
                );
        }
 
index 2ba92a6..c8b3882 100644 (file)
@@ -59,7 +59,7 @@ class ApiLogout extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Log out and clear session data';
+               return 'Log out and clear session data.';
        }
 
        public function getExamples() {
index 0939dea..e1c0874 100644 (file)
@@ -56,6 +56,7 @@ class ApiMain extends ApiBase {
                'parse' => 'ApiParse',
                'opensearch' => 'ApiOpenSearch',
                'feedcontributions' => 'ApiFeedContributions',
+               'feedrecentchanges' => 'ApiFeedRecentChanges',
                'feedwatchlist' => 'ApiFeedWatchlist',
                'help' => 'ApiHelp',
                'paraminfo' => 'ApiParamInfo',
@@ -67,7 +68,6 @@ class ApiMain extends ApiBase {
                'purge' => 'ApiPurge',
                'setnotificationtimestamp' => 'ApiSetNotificationTimestamp',
                'rollback' => 'ApiRollback',
-               'runjobs' => 'ApiRunJobs',
                'delete' => 'ApiDelete',
                'undelete' => 'ApiUndelete',
                'protect' => 'ApiProtect',
@@ -362,37 +362,7 @@ class ApiMain extends ApiBase {
                try {
                        $this->executeAction();
                } catch ( Exception $e ) {
-                       // Allow extra cleanup and logging
-                       wfRunHooks( 'ApiMain::onException', array( $this, $e ) );
-
-                       // Log it
-                       if ( !( $e instanceof UsageException ) ) {
-                               MWExceptionHandler::logException( $e );
-                       }
-
-                       // Handle any kind of exception by outputting properly formatted error message.
-                       // If this fails, an unhandled exception should be thrown so that global error
-                       // handler will process and log it.
-
-                       $errCode = $this->substituteResultWithError( $e );
-
-                       // Error results should not be cached
-                       $this->setCacheMode( 'private' );
-
-                       $response = $this->getRequest()->response();
-                       $headerStr = 'MediaWiki-API-Error: ' . $errCode;
-                       if ( $e->getCode() === 0 ) {
-                               $response->header( $headerStr );
-                       } else {
-                               $response->header( $headerStr, true, $e->getCode() );
-                       }
-
-                       // Reset and print just the error message
-                       ob_clean();
-
-                       // If the error occurred during printing, do a printer->profileOut()
-                       $this->mPrinter->safeProfileOut();
-                       $this->printResult( true );
+                       $this->handleException( $e );
                }
 
                // Log the request whether or not there was an error
@@ -409,6 +379,73 @@ class ApiMain extends ApiBase {
                ob_end_flush();
        }
 
+       /**
+        * Handle an exception as an API response
+        *
+        * @since 1.23
+        * @param Exception $e
+        */
+       protected function handleException( Exception $e ) {
+               // Allow extra cleanup and logging
+               wfRunHooks( 'ApiMain::onException', array( $this, $e ) );
+
+               // Log it
+               if ( !( $e instanceof UsageException ) ) {
+                       MWExceptionHandler::logException( $e );
+               }
+
+               // Handle any kind of exception by outputting properly formatted error message.
+               // If this fails, an unhandled exception should be thrown so that global error
+               // handler will process and log it.
+
+               $errCode = $this->substituteResultWithError( $e );
+
+               // Error results should not be cached
+               $this->setCacheMode( 'private' );
+
+               $response = $this->getRequest()->response();
+               $headerStr = 'MediaWiki-API-Error: ' . $errCode;
+               if ( $e->getCode() === 0 ) {
+                       $response->header( $headerStr );
+               } else {
+                       $response->header( $headerStr, true, $e->getCode() );
+               }
+
+               // Reset and print just the error message
+               ob_clean();
+
+               // If the error occurred during printing, do a printer->profileOut()
+               $this->mPrinter->safeProfileOut();
+               $this->printResult( true );
+       }
+
+       /**
+        * Handle an exception from the ApiBeforeMain hook.
+        *
+        * This tries to print the exception as an API response, to be more
+        * friendly to clients. If it fails, it will rethrow the exception.
+        *
+        * @since 1.23
+        * @param Exception $e
+        */
+       public static function handleApiBeforeMainException( Exception $e ) {
+               ob_start();
+
+               try {
+                       $main = new self( RequestContext::getMain(), false );
+                       $main->handleException( $e );
+               } catch ( Exception $e2 ) {
+                       // Nope, even that didn't work. Punt.
+                       throw $e;
+               }
+
+               // Log the request and reset cache headers
+               $main->logRequest( 0 );
+               $main->sendCacheHeaders();
+
+               ob_end_flush();
+       }
+
        /**
         * Check the &origin= query parameter against the Origin: HTTP header and respond appropriately.
         *
@@ -1111,14 +1148,14 @@ class ApiMain extends ApiBase {
                        '',
                        'Status:                All features shown on this page should be working, but the API',
                        '                       is still in active development, and may change at any time.',
-                       '                       Make sure to monitor our mailing list for any updates',
+                       '                       Make sure to monitor our mailing list for any updates.',
                        '',
                        'Erroneous requests:    When erroneous requests are sent to the API, a HTTP header will be sent',
                        '                       with the key "MediaWiki-API-Error" and then both the value of the',
-                       '                       header and the error code sent back will be set to the same value',
+                       '                       header and the error code sent back will be set to the same value.',
                        '',
                        '                       In the case of an invalid action being passed, these will have a value',
-                       '                       of "unknown_action"',
+                       '                       of "unknown_action".',
                        '',
                        '                       For more information see https://www.mediawiki.org' .
                                '/wiki/API:Errors_and_warnings',
@@ -1162,12 +1199,11 @@ class ApiMain extends ApiBase {
        protected function getCredits() {
                return array(
                        'API developers:',
-                       '    Roan Kattouw - roan . kattouw @ gmail . com (lead developer Sep 2007-2009)',
-                       '    Victor Vasiliev - vasilvv @ gmail . com',
-                       '    Bryan Tong Minh - bryan . tongminh @ gmail . com',
-                       '    Sam Reed - sam @ reedyboy . net',
-                       '    Yuri Astrakhan - yuri . astrakhan @ gmail . com (creator, lead ' .
-                               'developer Sep 2006-Sep 2007, 2012-present)',
+                       '    Roan Kattouw (lead developer Sep 2007-2009)',
+                       '    Victor Vasiliev',
+                       '    Bryan Tong Minh',
+                       '    Sam Reed',
+                       '    Yuri Astrakhan (creator, lead developer Sep 2006-Sep 2007, 2012-present)',
                        '',
                        'Please send your comments, suggestions and questions to mediawiki-api@lists.wikimedia.org',
                        'or file a bug report at https://bugzilla.wikimedia.org/'
index 20ac48a..10b655f 100644 (file)
@@ -272,7 +272,7 @@ class ApiMove extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Move a page';
+               return 'Move a page.';
        }
 
        public function getPossibleErrors() {
index 4b8578b..f2bf754 100644 (file)
@@ -125,7 +125,7 @@ class ApiOpenSearch extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Search the wiki using the OpenSearch protocol';
+               return 'Search the wiki using the OpenSearch protocol.';
        }
 
        public function getExamples() {
index fb441a3..86d051a 100644 (file)
@@ -174,10 +174,11 @@ class ApiOptions extends ApiBase {
                        'token' => 'An options token previously obtained through the action=tokens',
                        'reset' => 'Resets preferences to the site defaults',
                        'resetkinds' => 'List of types of options to reset when the "reset" option is set',
-                       'change' => 'List of changes, formatted name=value (e.g. skin=vector), ' .
-                               'value cannot contain pipe characters. If no value is given (not ' .
+                       'change' => array( 'List of changes, formatted name=value (e.g. skin=vector), ' .
+                               'value cannot contain pipe characters. If no value is given (not ',
                                'even an equals sign), e.g., optionname|otheroption|..., the ' .
-                               'option will be reset to its default value',
+                               'option will be reset to its default value'
+                       ),
                        'optionname' => 'A name of a option which should have an optionvalue set',
                        'optionvalue' => 'A value of the option specified by the optionname, ' .
                                'can contain pipe characters',
@@ -186,7 +187,7 @@ class ApiOptions extends ApiBase {
 
        public function getDescription() {
                return array(
-                       'Change preferences of the current user',
+                       'Change preferences of the current user.',
                        'Only options which are registered in core or in one of installed extensions,',
                        'or as options with keys prefixed with \'userjs-\' (intended to be used by user',
                        'scripts), can be set.'
index 2b4710a..5092af0 100644 (file)
@@ -349,7 +349,7 @@ class ApiParamInfo extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Obtain information about certain API parameters and errors';
+               return 'Obtain information about certain API parameters and errors.';
        }
 
        public function getExamples() {
index 47ad80f..ce52565 100644 (file)
@@ -818,9 +818,9 @@ class ApiParse extends ApiBase {
                $p = $this->getModulePrefix();
 
                return array(
-                       'Parses content 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',
+                               '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.",
index 46bd94e..00297ec 100644 (file)
@@ -109,7 +109,7 @@ class ApiPatrol extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Patrol a page or revision';
+               return 'Patrol a page or revision.';
        }
 
        public function getPossibleErrors() {
index 644e97e..27f0f1e 100644 (file)
@@ -212,7 +212,7 @@ class ApiProtect extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Change the protection level of a page';
+               return 'Change the protection level of a page.';
        }
 
        public function getPossibleErrors() {
index 49ab591..c6ae611 100644 (file)
@@ -736,7 +736,7 @@ class ApiQuery extends ApiBase {
                                'from the MediaWiki databases,',
                        'and is loosely based on the old query.php interface.',
                        'All data modifications will first have to use query to acquire a ' .
-                               'token to prevent abuse from malicious sites'
+                               'token to prevent abuse from malicious sites.'
                );
        }
 
index 44bf0cb..8a1810b 100644 (file)
@@ -225,7 +225,7 @@ class ApiQueryAllCategories extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return 'Enumerate all categories';
+               return 'Enumerate all categories.';
        }
 
        public function getExamples() {
index 4095bd8..6e2c31f 100644 (file)
@@ -378,7 +378,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase {
                );
        }
 
-       private $propertyFilter = array( 'archivename', 'thumbmime' );
+       private $propertyFilter = array( 'archivename', 'thumbmime', 'uploadwarning' );
 
        public function getResultProperties() {
                return array_merge(
@@ -394,7 +394,7 @@ class ApiQueryAllImages extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return 'Enumerate all images sequentially';
+               return 'Enumerate all images sequentially.';
        }
 
        public function getPossibleErrors() {
index 6b1d5a2..09f40fd 100644 (file)
@@ -285,7 +285,7 @@ class ApiQueryAllMessages extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'Return messages from this site';
+               return 'Return messages from this site.';
        }
 
        public function getExamples() {
index 501154a..8ae8f3e 100644 (file)
@@ -341,7 +341,7 @@ class ApiQueryAllPages extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return 'Enumerate all pages sequentially in a given namespace';
+               return 'Enumerate all pages sequentially in a given namespace.';
        }
 
        public function getPossibleErrors() {
index 748dbaf..7915118 100644 (file)
@@ -438,7 +438,7 @@ class ApiQueryAllUsers extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'Enumerate all registered users';
+               return 'Enumerate all registered users.';
        }
 
        public function getPossibleErrors() {
index bda1e03..9502d11 100644 (file)
@@ -534,13 +534,13 @@ class ApiQueryBacklinks extends ApiQueryGeneratorBase {
        public function getDescription() {
                switch ( $this->getModuleName() ) {
                        case 'backlinks':
-                               return 'Find all pages that link to the given page';
+                               return 'Find all pages that link to the given page.';
                        case 'embeddedin':
-                               return 'Find all pages that embed (transclude) the given title';
+                               return 'Find all pages that embed (transclude) the given title.';
                        case 'imageusage':
                                return 'Find all pages that use the given image title.';
                        default:
-                               ApiBase::dieDebug( __METHOD__, 'Unknown module name' );
+                               ApiBase::dieDebug( __METHOD__, 'Unknown module name.' );
                }
        }
 
index 47768cb..6cc0183 100644 (file)
@@ -408,7 +408,7 @@ class ApiQueryBlocks extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'List all blocked users and IP addresses';
+               return 'List all blocked users and IP addresses.';
        }
 
        public function getPossibleErrors() {
index c5b12b3..30d7449 100644 (file)
@@ -254,7 +254,7 @@ class ApiQueryCategories extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return 'List all categories the page(s) belong to';
+               return 'List all categories the page(s) belong to.';
        }
 
        public function getPossibleErrors() {
index 574ef6e..d0e3a36 100644 (file)
@@ -143,7 +143,7 @@ class ApiQueryCategoryInfo extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'Returns information about the given categories';
+               return 'Returns information about the given categories.';
        }
 
        public function getExamples() {
index f7bd59a..4e942d6 100644 (file)
@@ -401,7 +401,7 @@ class ApiQueryCategoryMembers extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return 'List all pages in a given category';
+               return 'List all pages in a given category.';
        }
 
        public function getPossibleErrors() {
index 37fb489..912ac02 100644 (file)
@@ -275,7 +275,7 @@ class ApiQueryContributors extends ApiQueryBase {
 
        public function getDescription() {
                return 'Get the list of logged-in contributors and ' .
-                       'the count of anonymous contributors to a page';
+                       'the count of anonymous contributors to a page.';
        }
 
        public function getExamples() {
index 365fe3f..f738c50 100644 (file)
@@ -492,12 +492,12 @@ class ApiQueryDeletedrevs extends ApiQueryBase {
                return array(
                        'List deleted revisions.',
                        'Operates in three modes:',
-                       ' 1) List deleted revisions for the given title(s), sorted by timestamp',
-                       ' 2) List deleted contributions for the given user, sorted by timestamp (no titles specified)',
+                       ' 1) List deleted revisions for the given title(s), sorted by timestamp.',
+                       ' 2) List deleted contributions for the given user, sorted by timestamp (no titles specified).',
                        " 3) List all deleted revisions in the given namespace, sorted by title and timestamp',
-                       '    (no titles specified, {$p}user not set)",
+                       '    (no titles specified, {$p}user not set).",
                        'Certain parameters only apply to some modes and are ignored in others.',
-                       'For instance, a parameter marked (1) only applies to mode 1 and is ignored in modes 2 and 3',
+                       'For instance, a parameter marked (1) only applies to mode 1 and is ignored in modes 2 and 3.',
                );
        }
 
index 1854694..3105f91 100644 (file)
@@ -200,7 +200,7 @@ class ApiQueryDuplicateFiles extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return 'List all files that are duplicates of the given file(s) based on hash values';
+               return 'List all files that are duplicates of the given file(s) based on hash values.';
        }
 
        public function getExamples() {
index d220817..f09fbd5 100644 (file)
@@ -257,7 +257,7 @@ class ApiQueryExtLinksUsage extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return 'Enumerate pages that contain a given URL';
+               return 'Enumerate pages that contain a given URL.';
        }
 
        public function getPossibleErrors() {
index 5803ea7..f7a0958 100644 (file)
@@ -150,7 +150,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 bcbc642..e12d927 100644 (file)
@@ -367,7 +367,7 @@ class ApiQueryFilearchive extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'Enumerate all deleted files sequentially';
+               return 'Enumerate all deleted files sequentially.';
        }
 
        public function getPossibleErrors() {
index 03a72a6..e4cecd5 100644 (file)
@@ -231,7 +231,7 @@ class ApiQueryIWBacklinks extends ApiQueryGeneratorBase {
                return array( 'Find all pages that link to the given interwiki link.',
                        'Can be used to find all links with a prefix, or',
                        'all links to a title (with a given prefix).',
-                       'Using neither parameter is effectively "All IW Links"',
+                       'Using neither parameter is effectively "All IW Links".',
                );
        }
 
index be64d36..a7b69a0 100644 (file)
@@ -185,7 +185,7 @@ class ApiQueryIWLinks extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'Returns all interwiki links from the given page(s)';
+               return 'Returns all interwiki links from the given page(s).';
        }
 
        public function getPossibleErrors() {
index 95c1420..369d4c9 100644 (file)
@@ -873,7 +873,7 @@ class ApiQueryImageInfo extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'Returns image information and upload history';
+               return 'Returns image information and upload history.';
        }
 
        public function getPossibleErrors() {
index a32fb9e..a66ad40 100644 (file)
@@ -180,7 +180,7 @@ class ApiQueryImages extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return 'Returns all images contained on the given page(s)';
+               return 'Returns all images contained on the given page(s).';
        }
 
        public function getExamples() {
index 5a45a28..8e155f2 100644 (file)
@@ -213,7 +213,7 @@ class ApiQueryLangLinks extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'Returns all interlanguage links from the given page(s)';
+               return 'Returns all interlanguage links from the given page(s).';
        }
 
        public function getPossibleErrors() {
index 1eecbe2..dd816cf 100644 (file)
@@ -233,7 +233,7 @@ class ApiQueryLinks extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return "Returns all {$this->description}s from the given page(s)";
+               return "Returns all {$this->description}s from the given page(s).";
        }
 
        public function getExamples() {
index 848c6ce..b607ca5 100644 (file)
@@ -103,7 +103,26 @@ class ApiQueryLogEvents extends ApiQueryBase {
                }
 
                if ( !is_null( $params['action'] ) ) {
-                       list( $type, $action ) = explode( '/', $params['action'] );
+                       // Do validation of action param, list of allowed actions can contains wildcards
+                       // Allow the param, when the actions is in the list or a wildcard version is listed.
+                       $logAction = $params['action'];
+                       if ( strpos( $logAction, '/' ) === false ) {
+                               // all items in the list have a slash
+                               $valid = false;
+                       } else {
+                               $logActions = array_flip( $this->getAllowedLogActions() );
+                               list( $type, $action ) = explode( '/', $logAction, 2 );
+                               $valid = isset( $logActions[$logAction] ) || isset( $logActions[$type . '/*'] );
+                       }
+
+                       if ( !$valid ) {
+                               $valueName = $this->encodeParamName( 'action' );
+                               $this->dieUsage(
+                                       "Unrecognized value for parameter '$valueName': {$logAction}",
+                                       "unknown_$valueName"
+                               );
+                       }
+
                        $this->addWhereFld( 'log_type', $type );
                        $this->addWhereFld( 'log_action', $action );
                } elseif ( !is_null( $params['type'] ) ) {
@@ -404,6 +423,12 @@ class ApiQueryLogEvents extends ApiQueryBase {
                return $vals;
        }
 
+       private function getAllowedLogActions() {
+               global $wgLogActions, $wgLogActionsHandlers;
+
+               return array_keys( array_merge( $wgLogActions, $wgLogActionsHandlers ) );
+       }
+
        public function getCacheMode( $params ) {
                if ( $this->userCanSeeRevDel() ) {
                        return 'private';
@@ -420,8 +445,8 @@ class ApiQueryLogEvents extends ApiQueryBase {
                }
        }
 
-       public function getAllowedParams() {
-               global $wgLogTypes, $wgLogActions, $wgLogActionsHandlers;
+       public function getAllowedParams( $flags = 0 ) {
+               global $wgLogTypes;
 
                return array(
                        'prop' => array(
@@ -444,7 +469,10 @@ class ApiQueryLogEvents extends ApiQueryBase {
                                ApiBase::PARAM_TYPE => $wgLogTypes
                        ),
                        'action' => array(
-                               ApiBase::PARAM_TYPE => array_keys( array_merge( $wgLogActions, $wgLogActionsHandlers ) )
+                               // validation on request is done in execute()
+                               ApiBase::PARAM_TYPE => ( $flags & ApiBase::GET_VALUES_FOR_HELP )
+                                       ? $this->getAllowedLogActions()
+                                       : null
                        ),
                        'start' => array(
                                ApiBase::PARAM_TYPE => 'timestamp'
@@ -491,7 +519,10 @@ class ApiQueryLogEvents extends ApiQueryBase {
                                ' tags           - Lists tags for the event',
                        ),
                        'type' => 'Filter log entries to only this type',
-                       'action' => "Filter log actions to only this type. Overrides {$p}type",
+                       'action' => array(
+                               "Filter log actions to only this action. Overrides {$p}type",
+                               "Wildcard actions like 'action/*' allows to specify any string for the asterisk"
+                       ),
                        'start' => 'The timestamp to start enumerating from',
                        'end' => 'The timestamp to end enumerating',
                        'dir' => $this->getDirectionDescription( $p ),
@@ -561,7 +592,7 @@ class ApiQueryLogEvents extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'Get events from logs';
+               return 'Get events from logs.';
        }
 
        public function getPossibleErrors() {
index 5438175..c387475 100644 (file)
@@ -102,7 +102,7 @@ class ApiQueryPagePropNames extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'List all page prop names in use on the wiki';
+               return 'List all page prop names in use on the wiki.';
        }
 
        public function getExamples() {
index e51c7ab..52be5ca 100644 (file)
@@ -141,7 +141,7 @@ class ApiQueryPageProps extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'Get various properties defined in the page content';
+               return 'Get various properties defined in the page content.';
        }
 
        public function getExamples() {
index e68eb56..df07249 100644 (file)
@@ -174,7 +174,7 @@ class ApiQueryPagesWithProp extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return 'List all pages using a given page prop';
+               return 'List all pages using a given page prop.';
        }
 
        public function getExamples() {
index ea350ad..9cdd6b9 100644 (file)
@@ -258,7 +258,7 @@ class ApiQueryProtectedTitles extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return 'List all titles protected from creation';
+               return 'List all titles protected from creation.';
        }
 
        public function getExamples() {
index 88af62b..b13f797 100644 (file)
@@ -34,15 +34,10 @@ class ApiQueryQueryPage extends ApiQueryGeneratorBase {
 
        public function __construct( $query, $moduleName ) {
                parent::__construct( $query, $moduleName, 'qp' );
-               // We need to do this to make sure $wgQueryPages is set up
-               // This SUCKS
-               global $IP;
-               require_once "$IP/includes/QueryPage.php";
-
                // Build mapping from special page names to QueryPage classes
-               global $wgQueryPages, $wgAPIUselessQueryPages;
+               global $wgAPIUselessQueryPages;
                $this->qpMap = array();
-               foreach ( $wgQueryPages as $page ) {
+               foreach ( QueryPage::getPages() as $page ) {
                        if ( !in_array( $page[1], $wgAPIUselessQueryPages ) ) {
                                $this->qpMap[$page[1]] = $page[0];
                        }
@@ -203,7 +198,7 @@ class ApiQueryQueryPage extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return 'Get a list provided by a QueryPage-based special page';
+               return 'Get a list provided by a QueryPage-based special page.';
        }
 
        public function getPossibleErrors() {
index 0d54ffe..5f85e0e 100644 (file)
@@ -185,13 +185,13 @@ class ApiQueryRandom extends ApiQueryGeneratorBase {
 
        public function getDescription() {
                return array(
-                       'Get a set of random pages',
+                       'Get a set of random pages.',
                        'NOTE: Pages are listed in a fixed sequence, only the starting point is random.',
                        '      This means that if, for example, "Main Page" is the first random page on',
                        '      your list, "List of fictional monkeys" will *always* be second, "List of',
-                       '      people on stamps of Vanuatu" third, etc',
+                       '      people on stamps of Vanuatu" third, etc.',
                        'NOTE: If the number of pages in the namespace is lower than rnlimit, you will',
-                       '      get fewer pages. You will not get the same page twice'
+                       '      get fewer pages. You will not get the same page twice.'
                );
        }
 
index 6ccc288..0284916 100644 (file)
@@ -281,8 +281,8 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
                        /* Add fields to our query if they are specified as a needed parameter. */
                        $this->addFieldsIf( array( 'rc_this_oldid', 'rc_last_oldid' ), $this->fld_ids );
                        $this->addFieldsIf( 'rc_comment', $this->fld_comment || $this->fld_parsedcomment );
-                       $this->addFieldsIf( 'rc_user', $this->fld_user );
-                       $this->addFieldsIf( 'rc_user_text', $this->fld_user || $this->fld_userid );
+                       $this->addFieldsIf( 'rc_user', $this->fld_user || $this->fld_userid );
+                       $this->addFieldsIf( 'rc_user_text', $this->fld_user );
                        $this->addFieldsIf( array( 'rc_minor', 'rc_type', 'rc_bot' ), $this->fld_flags );
                        $this->addFieldsIf( array( 'rc_old_len', 'rc_new_len' ), $this->fld_sizes );
                        $this->addFieldsIf( 'rc_patrolled', $this->fld_patrolled );
@@ -892,7 +892,7 @@ class ApiQueryRecentChanges extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return 'Enumerate recent changes';
+               return 'Enumerate recent changes.';
        }
 
        public function getPossibleErrors() {
index c046109..1deb1f8 100644 (file)
@@ -249,7 +249,7 @@ class ApiQueryRedirects extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return 'Returns all redirects to the given page(s)';
+               return 'Returns all redirects to the given page(s).';
        }
 
        public function getExamples() {
index 65cb16d..033976f 100644 (file)
@@ -874,12 +874,12 @@ class ApiQueryRevisions extends ApiQueryBase {
 
        public function getDescription() {
                return array(
-                       'Get revision information',
+                       'Get revision information.',
                        'May be used in several ways:',
-                       ' 1) Get data about a set of pages (last revision), by setting titles or pageids parameter',
-                       ' 2) Get revisions for one given page, by using titles/pageids with start/end/limit params',
-                       ' 3) Get data about a set of revisions by setting their IDs with revids parameter',
-                       'All parameters marked as (enum) may only be used with a single page (#2)'
+                       ' 1) Get data about a set of pages (last revision), by setting titles or pageids parameter.',
+                       ' 2) Get revisions for one given page, by using titles/pageids with start/end/limit params.',
+                       ' 3) Get data about a set of revisions by setting their IDs with revids parameter.',
+                       'All parameters marked as (enum) may only be used with a single page (#2).'
                );
        }
 
index 1132a60..fcaaf10 100644 (file)
@@ -416,7 +416,7 @@ class ApiQuerySearch extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return 'Perform a full text search';
+               return 'Perform a full text search.';
        }
 
        public function getPossibleErrors() {
index a078013..1cd8d98 100644 (file)
@@ -821,7 +821,7 @@ class ApiQuerySiteinfo extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'Return general information about the site';
+               return 'Return general information about the site.';
        }
 
        public function getPossibleErrors() {
index 248b3d8..6a49e60 100644 (file)
@@ -72,7 +72,7 @@ class ApiQueryStashImageInfo extends ApiQueryImageInfo {
 
        private $propertyFilter = array(
                'user', 'userid', 'comment', 'parsedcomment',
-               'mediatype', 'archivename',
+               'mediatype', 'archivename', 'uploadwarning',
        );
 
        public function getAllowedParams() {
@@ -129,7 +129,7 @@ class ApiQueryStashImageInfo extends ApiQueryImageInfo {
        }
 
        public function getDescription() {
-               return 'Returns image information for stashed images';
+               return 'Returns image information for stashed images.';
        }
 
        public function getExamples() {
index 33116ce..9e2559f 100644 (file)
@@ -188,7 +188,7 @@ class ApiQueryTags extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'List change tags';
+               return 'List change tags.';
        }
 
        public function getExamples() {
index 9ad77d4..b58a951 100644 (file)
@@ -56,6 +56,11 @@ class ApiQueryContributions extends ApiQueryBase {
                $this->fld_patrolled = isset( $prop['patrolled'] );
                $this->fld_tags = isset( $prop['tags'] );
 
+               // Most of this code will use the 'contributions' group DB, which can map to slaves
+               // with extra user based indexes or partioning by user. The additional metadata
+               // queries should use a regular slave since the lookup pattern is not all by user.
+               $dbSecondary = $this->getDB(); // any random slave
+
                // TODO: if the query is going only against the revision table, should this be done?
                $this->selectNamedDB( 'contributions', DB_SLAVE, 'contributions' );
 
@@ -90,7 +95,7 @@ class ApiQueryContributions extends ApiQueryBase {
                                        $revIds[] = $row->rev_parent_id;
                                }
                        }
-                       $this->parentLens = Revision::getParentLengths( $this->getDB(), $revIds );
+                       $this->parentLens = Revision::getParentLengths( $dbSecondary, $revIds );
                        $res->rewind(); // reset
                }
 
@@ -596,7 +601,7 @@ class ApiQueryContributions extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'Get all edits by a user';
+               return 'Get all edits by a user.';
        }
 
        public function getPossibleErrors() {
index 37cf483..200b03b 100644 (file)
@@ -299,7 +299,7 @@ class ApiQueryUserInfo extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'Get information about the current user';
+               return 'Get information about the current user.';
        }
 
        public function getExamples() {
index cd4a8fc..d98cc39 100644 (file)
@@ -387,7 +387,7 @@ class ApiQueryUsers extends ApiQueryBase {
        }
 
        public function getDescription() {
-               return 'Get information about a list of users';
+               return 'Get information about a list of users.';
        }
 
        public function getExamples() {
index b7dc865..6baa87d 100644 (file)
@@ -674,7 +674,7 @@ class ApiQueryWatchlist extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return "Get all recent changes to pages in the logged in user's watchlist";
+               return "Get all recent changes to pages in the logged in user's watchlist.";
        }
 
        public function getPossibleErrors() {
index b53bea1..f45d0e4 100644 (file)
@@ -205,7 +205,7 @@ class ApiQueryWatchlistRaw extends ApiQueryGeneratorBase {
        }
 
        public function getDescription() {
-               return "Get all pages on the logged in user's watchlist";
+               return "Get all pages on the logged in user's watchlist.";
        }
 
        public function getPossibleErrors() {
index 05457b3..2c76f37 100644 (file)
@@ -217,14 +217,15 @@ class ApiRevisionDelete extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Delete/undelete revisions';
+               return 'Delete/undelete revisions.';
        }
 
        public function getPossibleErrors() {
                return array_merge( parent::getPossibleErrors(),
                        array(
-                               'needtarget' => 'A target title is required for this RevDel type',
-                               'badparams' => 'Bad value for some parameter',
+                               array( 'code' => 'needtarget',
+                                       'info' => 'A target title is required for this RevDel type' ),
+                               array( 'code' => 'badparams', 'info' => 'Bad value for some parameter' ),
                        )
                );
        }
index 2a372e4..70a2fec 100644 (file)
@@ -141,7 +141,7 @@ class ApiRollback extends ApiBase {
        public function getDescription() {
                return array(
                        'Undo the last edit to the page. If the last user who edited the page made',
-                       'multiple edits in a row, they will all be rolled back'
+                       'multiple edits in a row, they will all be rolled back.'
                );
        }
 
index e01f0fa..285177c 100644 (file)
@@ -60,7 +60,7 @@ class ApiRsd extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Export an RSD (Really Simple Discovery) schema';
+               return 'Export an RSD (Really Simple Discovery) schema.';
        }
 
        public function getExamples() {
diff --git a/includes/api/ApiRunJobs.php b/includes/api/ApiRunJobs.php
deleted file mode 100644 (file)
index e16dc5d..0000000
+++ /dev/null
@@ -1,168 +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
- * @author Aaron Schulz
- */
-
-/**
- * This is a simple class to handle action=runjobs and is only used internally
- *
- * @note: this does not requre "write mode" nor tokens due to the signature check
- *
- * @ingroup API
- */
-class ApiRunJobs extends ApiBase {
-       public function execute() {
-               if ( wfReadOnly() ) {
-                       $this->dieUsage( 'Wiki is in read-only mode', 'read_only', 400 );
-               }
-
-               $params = $this->extractRequestParams();
-               $squery = $this->getRequest()->getValues();
-               unset( $squery['signature'] );
-               $cSig = self::getQuerySignature( $squery );
-               $rSig = $params['signature'];
-
-               // Time-insensitive signature verification
-               if ( strlen( $rSig ) !== strlen( $cSig ) ) {
-                       $verified = false;
-               } else {
-                       $result = 0;
-                       for ( $i = 0; $i < strlen( $cSig ); $i++ ) {
-                               $result |= ord( $cSig{$i} ) ^ ord( $rSig{$i} );
-                       }
-                       $verified = ( $result == 0 );
-               }
-
-               if ( !$verified || $params['sigexpiry'] < time() ) {
-                       $this->dieUsage( 'Invalid or stale signature provided', 'bad_signature', 400 );
-               }
-
-               // Client will usually disconnect before checking the response,
-               // but it needs to know when it is safe to disconnect. Until this
-               // reaches ignore_user_abort(), it is not safe as the jobs won't run.
-               ignore_user_abort( true ); // jobs may take a bit of time
-               header( "HTTP/1.0 202 Accepted" );
-               ob_flush();
-        flush();
-               // Once the client receives this response, it can disconnect
-
-               // Do all of the specified tasks...
-               if ( in_array( 'jobs', $params['tasks'] ) ) {
-                       self::executeJobs( $params['maxjobs'] );
-               }
-       }
-
-       /**
-        * @param array $query
-        * @return string
-        */
-       public static function getQuerySignature( array $query ) {
-               global $wgSecretKey;
-
-               ksort( $query ); // stable order
-               return hash_hmac( 'sha1', wfArrayToCgi( $query ), $wgSecretKey );
-       }
-
-       /**
-        * Run jobs from the job queue
-        *
-        * @note: also called from Wiki.php
-        *
-        * @param integer $maxJobs Maximum number of jobs to run
-        * @return void
-        */
-       public static function executeJobs( $maxJobs ) {
-               $n = $maxJobs; // number of jobs to run
-               if ( $n < 1 ) {
-                       return;
-               }
-               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 );
-                               }
-                       } 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.
-                       MWExceptionHandler::logException( $e );
-               }
-       }
-
-       public function mustBePosted() {
-               return true;
-       }
-
-       public function getAllowedParams() {
-               return array(
-                       'tasks' => array(
-                               ApiBase::PARAM_ISMULTI => true,
-                               ApiBase::PARAM_TYPE => array( 'jobs' )
-                       ),
-                       'maxjobs' => array(
-                               ApiBase::PARAM_TYPE => 'integer',
-                               ApiBase::PARAM_DFLT => 0
-                       ),
-                       'signature' =>  array(
-                               ApiBase::PROP_TYPE => 'string',
-                       ),
-                       'sigexpiry' => array(
-                               ApiBase::PARAM_TYPE => 'integer',
-                               ApiBase::PARAM_DFLT => 0 // ~epoch
-                       ),
-               );
-       }
-
-       public function getParamDescription() {
-               return array(
-                       'tasks' => 'List of task types to perform',
-                       'maxjobs' => 'Maximum number of jobs to run',
-                       'signature' => 'HMAC Signature that signs the request',
-                       'sigexpiry' => 'HMAC signature expiry as a UNIX timestamp'
-               );
-       }
-
-       public function getDescription() {
-               return 'Perform periodic tasks or run jobs from the queue';
-       }
-
-       public function getExamples() {
-               return array(
-                       'api.php?action=runjobs&tasks=jobs&maxjobs=3' => 'Run up to 3 jobs from the queue',
-               );
-       }
-}
index 6862668..5e197db 100644 (file)
@@ -98,7 +98,7 @@ class ApiTokens extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Gets tokens for data-modifying actions';
+               return 'Gets tokens for data-modifying actions.';
        }
 
        protected function getExamples() {
index 46e2f6e..f34d4df 100644 (file)
@@ -131,7 +131,7 @@ class ApiUnblock extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Unblock a user';
+               return 'Unblock a user.';
        }
 
        public function getPossibleErrors() {
index 93cefef..332ed51 100644 (file)
@@ -143,7 +143,7 @@ class ApiUndelete extends ApiBase {
        public function getDescription() {
                return array(
                        'Restore certain revisions of a deleted page. A list of deleted revisions ',
-                       '(including timestamps) can be retrieved through list=deletedrevs'
+                       '(including timestamps) can be retrieved through list=deletedrevs.'
                );
        }
 
index 7d0d78e..c54e8ba 100644 (file)
@@ -819,7 +819,7 @@ class ApiUpload extends ApiBase {
                        ' * Have the MediaWiki server fetch a file from a URL, using the "url" parameter',
                        ' * Complete an earlier upload that failed due to warnings, using the "filekey" parameter',
                        'Note that the HTTP POST must be done as a file upload (i.e. using multipart/form-data) when',
-                       'sending the "file". Also you must get and send an edit token before doing any upload stuff'
+                       'sending the "file". Also you must get and send an edit token before doing any upload stuff.'
                );
        }
 
index 2bd7321..0bed859 100644 (file)
@@ -123,7 +123,7 @@ class ApiUserrights extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Add/remove a user to/from groups';
+               return 'Add/remove a user to/from groups.';
        }
 
        public function needsToken() {
index 100ee96..6dfb1b4 100644 (file)
@@ -211,7 +211,7 @@ class ApiWatch extends ApiBase {
        }
 
        public function getDescription() {
-               return 'Add or remove pages from/to the current user\'s watchlist';
+               return 'Add or remove pages from/to the current user\'s watchlist.';
        }
 
        public function getPossibleErrors() {
index 409160c..c56111f 100644 (file)
@@ -541,18 +541,27 @@ class LocalisationCache {
         */
        protected function readJSONFile( $fileName ) {
                wfProfileIn( __METHOD__ );
+
                if ( !is_readable( $fileName ) ) {
+                       wfProfileOut( __METHOD__ );
+
                        return array();
                }
 
                $json = file_get_contents( $fileName );
                if ( $json === false ) {
+                       wfProfileOut( __METHOD__ );
+
                        return array();
                }
+
                $data = FormatJson::decode( $json, true );
                if ( $data === null ) {
+                       wfProfileOut( __METHOD__ );
+
                        throw new MWException( __METHOD__ . ": Invalid JSON file: $fileName" );
                }
+
                // Remove keys starting with '@', they're reserved for metadata and non-message data
                foreach ( $data as $key => $unused ) {
                        if ( $key === '' || $key[0] === '@' ) {
@@ -560,6 +569,8 @@ class LocalisationCache {
                        }
                }
 
+               wfProfileOut( __METHOD__ );
+
                // The JSON format only supports messages, none of the other variables, so wrap the data
                return array( 'messages' => $data );
        }
diff --git a/includes/cache/ProcessCacheLRU.php b/includes/cache/ProcessCacheLRU.php
deleted file mode 100644 (file)
index 786d74a..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-<?php
-/**
- * Per-process memory cache for storing items.
- *
- * 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 Cache
- */
-
-/**
- * Handles per process caching of items
- * @ingroup Cache
- */
-class ProcessCacheLRU {
-       /** @var Array */
-       protected $cache = array(); // (key => prop => value)
-       /** @var Array */
-       protected $cacheTimes = array(); // (key => prop => UNIX timestamp)
-
-       protected $maxCacheKeys; // integer; max entries
-
-       /**
-        * @param $maxKeys integer Maximum number of entries allowed (min 1).
-        * @throws MWException When $maxCacheKeys is not an int or =< 0.
-        */
-       public function __construct( $maxKeys ) {
-               if ( !is_int( $maxKeys ) || $maxKeys < 1 ) {
-                       throw new MWException( __METHOD__ . " must be given an integer and >= 1" );
-               }
-               $this->maxCacheKeys = $maxKeys;
-       }
-
-       /**
-        * Set a property field for a cache entry.
-        * This will prune the cache if it gets too large based on LRU.
-        * If the item is already set, it will be pushed to the top of the cache.
-        *
-        * @param $key string
-        * @param $prop string
-        * @param $value mixed
-        * @return void
-        */
-       public function set( $key, $prop, $value ) {
-               if ( isset( $this->cache[$key] ) ) {
-                       $this->ping( $key ); // push to top
-               } elseif ( count( $this->cache ) >= $this->maxCacheKeys ) {
-                       reset( $this->cache );
-                       $evictKey = key( $this->cache );
-                       unset( $this->cache[$evictKey] );
-                       unset( $this->cacheTimes[$evictKey] );
-               }
-               $this->cache[$key][$prop] = $value;
-               $this->cacheTimes[$key][$prop] = time();
-       }
-
-       /**
-        * Check if a property field exists for a cache entry.
-        *
-        * @param $key string
-        * @param $prop string
-        * @param $maxAge integer Ignore items older than this many seconds (since 1.21)
-        * @return bool
-        */
-       public function has( $key, $prop, $maxAge = 0 ) {
-               if ( isset( $this->cache[$key][$prop] ) ) {
-                       return ( $maxAge <= 0 || ( time() - $this->cacheTimes[$key][$prop] ) <= $maxAge );
-               }
-
-               return false;
-       }
-
-       /**
-        * Get a property field for a cache entry.
-        * This returns null if the property is not set.
-        * If the item is already set, it will be pushed to the top of the cache.
-        *
-        * @param $key string
-        * @param $prop string
-        * @return mixed
-        */
-       public function get( $key, $prop ) {
-               if ( isset( $this->cache[$key][$prop] ) ) {
-                       $this->ping( $key ); // push to top
-                       return $this->cache[$key][$prop];
-               } else {
-                       return null;
-               }
-       }
-
-       /**
-        * Clear one or several cache entries, or all cache entries
-        *
-        * @param $keys string|Array
-        * @return void
-        */
-       public function clear( $keys = null ) {
-               if ( $keys === null ) {
-                       $this->cache = array();
-                       $this->cacheTimes = array();
-               } else {
-                       foreach ( (array)$keys as $key ) {
-                               unset( $this->cache[$key] );
-                               unset( $this->cacheTimes[$key] );
-                       }
-               }
-       }
-
-       /**
-        * Push an entry to the top of the cache
-        *
-        * @param $key string
-        */
-       protected function ping( $key ) {
-               $item = $this->cache[$key];
-               unset( $this->cache[$key] );
-               $this->cache[$key] = $item;
-       }
-}
index b996894..ca9efc3 100644 (file)
@@ -80,6 +80,14 @@ class ChangesList extends ContextSource {
                $this->watchlist = $value;
        }
 
+       /**
+        * @return bool true when setWatchlistDivs has been called
+        * @since 1.23
+        */
+       public function isWatchlist() {
+               return (bool)$this->watchlist;
+       }
+
        /**
         * As we use the same small set of messages in various methods and that
         * they are called often, we call them once and save them in $this->message
index df60f02..feb6d7b 100644 (file)
  */
 
 class EnhancedChangesList extends ChangesList {
-       /** @var array Array of array of RCCacheEntry */
+
+       /**
+        * @var RCCacheEntryFactory
+        */
+       protected $cacheEntryFactory;
+
+       /**
+        * @var array Array of array of RCCacheEntry
+        */
        protected $rc_cache;
 
+       /**
+        * @param IContextSource|Skin $obj
+        */
+       public function __construct( $obj ) {
+               if ( $obj instanceof Skin ) {
+                       // @todo: deprecate constructing with Skin
+                       $context = $obj->getContext();
+               } else {
+                       if ( ! $obj instanceof IContextSource ) {
+                               throw new MWException( 'EnhancedChangesList must be constructed with a '
+                                       . 'context source or skin.' );
+                       }
+
+                       $context = $obj;
+               }
+
+               parent::__construct( $context );
+
+               // message is set by the parent ChangesList class
+               $this->cacheEntryFactory = new RCCacheEntryFactory(
+                       $context,
+                       $this->message
+               );
+       }
+
        /**
         * Add the JavaScript file for enhanced changeslist
         * @return string
@@ -73,127 +106,25 @@ class EnhancedChangesList extends ChangesList {
                        $this->lastdate = $date;
                }
 
-               # Create a specialised object
-               $cacheEntry = RCCacheEntry::newFromParent( $baseRC );
-
-               $curIdEq = array( 'curid' => $cacheEntry->mAttribs['rc_cur_id'] );
-
-               # Should patrol-related stuff be shown?
-               $cacheEntry->unpatrolled = $this->showAsUnpatrolled( $cacheEntry );
-
-               $showdifflinks = true;
-
-               # Make article link
-               $type = $cacheEntry->mAttribs['rc_type'];
-               $logType = $cacheEntry->mAttribs['rc_log_type'];
-
-               // Page moves, very old style, not supported anymore
-               if ( $type == RC_MOVE || $type == RC_MOVE_OVER_REDIRECT ) {
-                       $clink = '';
-               // New unpatrolled pages
-               } elseif ( $cacheEntry->unpatrolled && $type == RC_NEW ) {
-                       $clink = Linker::linkKnown( $cacheEntry->getTitle() );
-               // Log entries
-               } elseif ( $type == RC_LOG ) {
-                       if ( $logType ) {
-                               $logtitle = SpecialPage::getTitleFor( 'Log', $logType );
-                               $logpage = new LogPage( $logType );
-                               $logname = $logpage->getName()->escaped();
-                               $clink = $this->msg( 'parentheses' )
-                                       ->rawParams( Linker::linkKnown( $logtitle, $logname ) )->escaped();
-                       } else {
-                               $clink = Linker::link( $cacheEntry->getTitle() );
-                       }
-                       $watched = false;
-               // Log entries (old format) and special pages
-               } elseif ( $cacheEntry->mAttribs['rc_namespace'] == NS_SPECIAL ) {
-                       wfDebug( "Unexpected special page in recentchanges\n" );
-                       $clink = '';
-               // Edits
-               } else {
-                       $clink = Linker::linkKnown( $cacheEntry->getTitle() );
-               }
-
-               # Don't show unusable diff links
-               if ( !ChangesList::userCan( $cacheEntry, Revision::DELETED_TEXT, $this->getUser() ) ) {
-                       $showdifflinks = false;
-               }
-
-               $time = $this->getLanguage()->userTime( $cacheEntry->mAttribs['rc_timestamp'], $this->getUser() );
-
-               $cacheEntry->watched = $watched;
-               $cacheEntry->link = $clink;
-               $cacheEntry->timestamp = $time;
-               $cacheEntry->numberofWatchingusers = $baseRC->numberofWatchingusers;
-
-               # Make "cur" and "diff" links.  Do not use link(), it is too slow if
-               # called too many times (50% of CPU time on RecentChanges!).
-               $thisOldid = $cacheEntry->mAttribs['rc_this_oldid'];
-               $lastOldid = $cacheEntry->mAttribs['rc_last_oldid'];
-
-               $querycur = $curIdEq + array( 'diff' => '0', 'oldid' => $thisOldid );
-               $querydiff = $curIdEq + array( 'diff' => $thisOldid, 'oldid' => $lastOldid );
-
-               if ( !$showdifflinks ) {
-                       $curLink = $this->message['cur'];
-                       $diffLink = $this->message['diff'];
-               } elseif ( in_array( $type, array( RC_NEW, RC_LOG, RC_MOVE, RC_MOVE_OVER_REDIRECT ) ) ) {
-                       if ( $type != RC_NEW ) {
-                               $curLink = $this->message['cur'];
-                       } else {
-                               $curUrl = htmlspecialchars( $cacheEntry->getTitle()->getLinkURL( $querycur ) );
-                               $curLink = "<a href=\"$curUrl\" tabindex=\"{$baseRC->counter}\">{$this->message['cur']}</a>";
-                       }
-                       $diffLink = $this->message['diff'];
-               } else {
-                       $diffUrl = htmlspecialchars( $cacheEntry->getTitle()->getLinkURL( $querydiff ) );
-                       $curUrl = htmlspecialchars( $cacheEntry->getTitle()->getLinkURL( $querycur ) );
-                       $diffLink = "<a href=\"$diffUrl\" tabindex=\"{$baseRC->counter}\">{$this->message['diff']}</a>";
-                       $curLink = "<a href=\"$curUrl\" tabindex=\"{$baseRC->counter}\">{$this->message['cur']}</a>";
-               }
-
-               # Make "last" link
-               if ( !$showdifflinks || !$lastOldid ) {
-                       $lastLink = $this->message['last'];
-               } elseif ( in_array( $type, array( RC_LOG, RC_MOVE, RC_MOVE_OVER_REDIRECT ) ) ) {
-                       $lastLink = $this->message['last'];
-               } else {
-                       $lastLink = Linker::linkKnown( $cacheEntry->getTitle(), $this->message['last'],
-                               array(), $curIdEq + array( 'diff' => $thisOldid, 'oldid' => $lastOldid ) );
-               }
-
-               # Make user links
-               if ( $this->isDeleted( $cacheEntry, Revision::DELETED_USER ) ) {
-                       $cacheEntry->userlink = ' <span class="history-deleted">' .
-                               $this->msg( 'rev-deleted-user' )->escaped() . '</span>';
-               } else {
-                       $cacheEntry->userlink = Linker::userLink(
-                               $cacheEntry->mAttribs['rc_user'],
-                               $cacheEntry->mAttribs['rc_user_text']
-                       );
-
-                       $cacheEntry->usertalklink = Linker::userToolLinks(
-                               $cacheEntry->mAttribs['rc_user'],
-                               $cacheEntry->mAttribs['rc_user_text']
-                       );
-               }
-
-               $cacheEntry->lastlink = $lastLink;
-               $cacheEntry->curlink = $curLink;
-               $cacheEntry->difflink = $diffLink;
+               $cacheEntry = $this->cacheEntryFactory->newFromRecentChange( $baseRC, $watched );
 
                # Put accumulated information into the cache, for later display
                # Page moves go on their own line
                $title = $cacheEntry->getTitle();
                $secureName = $title->getPrefixedDBkey();
 
+               $type = $cacheEntry->mAttribs['rc_type'];
+
                if ( $type == RC_MOVE || $type == RC_MOVE_OVER_REDIRECT ) {
                        # Use an @ character to prevent collision with page names
                        $this->rc_cache['@@' . ( $this->rcMoveIndex++ )] = array( $cacheEntry );
                } else {
                        # Logs are grouped by type
                        if ( $type == RC_LOG ) {
-                               $secureName = SpecialPage::getTitleFor( 'Log', $logType )->getPrefixedDBkey();
+                               $secureName = SpecialPage::getTitleFor(
+                                       'Log',
+                                       $cacheEntry->mAttribs['rc_log_type']
+                               )->getPrefixedDBkey();
                        }
                        if ( !isset( $this->rc_cache[$secureName] ) ) {
                                $this->rc_cache[$secureName] = array();
index 9cb1146..458f21a 100644 (file)
@@ -37,9 +37,6 @@ class OldChangesList extends ChangesList {
                # Should patrol-related stuff be shown?
                $unpatrolled = $this->showAsUnpatrolled( $rc );
 
-               $dateheader = ''; // $s now contains only <li>...</li>, for hooks' convenience.
-               $this->insertDateHeader( $dateheader, $rc->mAttribs['rc_timestamp'] );
-
                $s = '';
                $classes = array();
                // use mw-line-even/mw-line-odd class only if linenumber is given (feature from bug 14468)
@@ -128,6 +125,9 @@ class OldChangesList extends ChangesList {
 
                wfProfileOut( __METHOD__ );
 
+               $dateheader = ''; // $s now contains only <li>...</li>, for hooks' convenience.
+               $this->insertDateHeader( $dateheader, $rc->mAttribs['rc_timestamp'] );
+
                return "$dateheader<li class=\"" . implode( ' ', $classes ) . "\">" . $s . "</li>\n";
        }
 }
diff --git a/includes/changes/RCCacheEntryFactory.php b/includes/changes/RCCacheEntryFactory.php
new file mode 100644 (file)
index 0000000..3e289cf
--- /dev/null
@@ -0,0 +1,278 @@
+<?php
+/**
+ * Creates a RCCacheEntry from a RecentChange to use in EnhancedChangesList
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ */
+
+class RCCacheEntryFactory {
+
+       /* @var IContextSource */
+       private $context;
+
+       /* @var string[] */
+       private $messages;
+
+       /**
+        * @param IContextSource $context
+        * @param string[] $messages
+        */
+       public function __construct( IContextSource $context, $messages ) {
+               $this->context = $context;
+               $this->messages = $messages;
+       }
+
+       /**
+        * @param RecentChange $baseRC
+        * @param boolean $watched
+        *
+        * @return RCCacheEntry
+        */
+       public function newFromRecentChange( RecentChange $baseRC, $watched ) {
+               $user = $this->context->getUser();
+               $counter = $baseRC->counter;
+
+               $cacheEntry = RCCacheEntry::newFromParent( $baseRC );
+
+               // Should patrol-related stuff be shown?
+               $cacheEntry->unpatrolled = ChangesList::isUnpatrolled( $baseRC, $user );
+
+               $cacheEntry->watched = $cacheEntry->mAttribs['rc_type'] == RC_LOG ? false : $watched;
+               $cacheEntry->numberofWatchingusers = $baseRC->numberofWatchingusers;
+
+               $cacheEntry->link = $this->buildCLink( $cacheEntry );
+               $cacheEntry->timestamp = $this->buildTimestamp( $cacheEntry );
+
+               // Make "cur" and "diff" links.  Do not use link(), it is too slow if
+               // called too many times (50% of CPU time on RecentChanges!).
+               $showDiffLinks = $this->showDiffLinks( $cacheEntry, $user );
+
+               $cacheEntry->difflink = $this->buildDiffLink( $cacheEntry, $showDiffLinks, $counter );
+               $cacheEntry->curlink = $this->buildCurLink( $cacheEntry, $showDiffLinks, $counter );
+               $cacheEntry->lastlink = $this->buildLastLink( $cacheEntry, $showDiffLinks );
+
+               // Make user links
+               $cacheEntry->userlink = $this->getUserLink( $cacheEntry );
+
+               if ( !ChangesList::isDeleted( $cacheEntry, Revision::DELETED_USER ) ) {
+                       $cacheEntry->usertalklink = Linker::userToolLinks(
+                               $cacheEntry->mAttribs['rc_user'],
+                               $cacheEntry->mAttribs['rc_user_text']
+                       );
+               }
+
+               return $cacheEntry;
+       }
+
+       /**
+        * @param RecentChange $cacheEntry
+        * @param User $user
+        *
+        * @return boolean
+        */
+       private function showDiffLinks( RecentChange $cacheEntry, User $user ) {
+               return ChangesList::userCan( $cacheEntry, Revision::DELETED_TEXT, $user );
+       }
+
+       /**
+        * @param RecentChange $cacheEntry
+        *
+        * @return string
+        */
+       private function buildCLink( RecentChange $cacheEntry ) {
+               $type = $cacheEntry->mAttribs['rc_type'];
+
+               // Page moves, very old style, not supported anymore
+               if ( $type == RC_MOVE || $type == RC_MOVE_OVER_REDIRECT ) {
+                       $clink = '';
+               // New unpatrolled pages
+               } elseif ( $cacheEntry->unpatrolled && $type == RC_NEW ) {
+                       $clink = Linker::linkKnown( $cacheEntry->getTitle() );
+               // Log entries
+               } elseif ( $type == RC_LOG ) {
+                       $logType = $cacheEntry->mAttribs['rc_log_type'];
+
+                       if ( $logType ) {
+                               $clink = $this->getLogLink( $logType );
+                       } else {
+                               wfDebugLog( 'recentchanges', 'Unexpected log entry with no log type in recent changes' );
+                               $clink = Linker::link( $cacheEntry->getTitle() );
+                       }
+               // Log entries (old format) and special pages
+               } elseif ( $cacheEntry->mAttribs['rc_namespace'] == NS_SPECIAL ) {
+                       wfDebugLog( 'recentchanges', 'Unexpected special page in recentchanges' );
+                       $clink = '';
+               // Edits
+               } else {
+                       $clink = Linker::linkKnown( $cacheEntry->getTitle() );
+               }
+
+               return $clink;
+       }
+
+       private function getLogLink( $logType ) {
+               $logtitle = SpecialPage::getTitleFor( 'Log', $logType );
+               $logpage = new LogPage( $logType );
+               $logname = $logpage->getName()->escaped();
+
+               $logLink = $this->context->msg( 'parentheses' )
+                       ->rawParams( Linker::linkKnown( $logtitle, $logname ) )->escaped();
+
+               return $logLink;
+       }
+
+       /**
+        * @param RecentChange $cacheEntry
+        *
+        * @return string
+        */
+       private function buildTimestamp( RecentChange $cacheEntry ) {
+               return $this->context->getLanguage()->userTime(
+                       $cacheEntry->mAttribs['rc_timestamp'],
+                       $this->context->getUser()
+               );
+       }
+
+       /**
+        * @param RecentChange $recentChange
+        *
+        * @return array
+        */
+       private function buildCurQueryParams( RecentChange $recentChange ) {
+               return array(
+                       'curid' => $recentChange->mAttribs['rc_cur_id'],
+                       'diff' => 0,
+                       'oldid' => $recentChange->mAttribs['rc_this_oldid']
+               );
+       }
+
+       /**
+        * @param RecentChange $cacheEntry
+        * @param boolean $showDiffLinks
+        * @param int $counter
+        *
+        * @return string
+        */
+       private function buildCurLink( RecentChange $cacheEntry, $showDiffLinks, $counter ) {
+               $queryParams = $this->buildCurQueryParams( $cacheEntry );
+               $curMessage = $this->getMessage( 'cur' );
+               $logTypes = array( RC_LOG, RC_MOVE, RC_MOVE_OVER_REDIRECT );
+
+               if ( !$showDiffLinks || in_array( $cacheEntry->mAttribs['rc_type'], $logTypes ) ) {
+                       $curLink = $curMessage;
+               } else {
+                       $curUrl = htmlspecialchars( $cacheEntry->getTitle()->getLinkURL( $queryParams ) );
+                       $curLink = "<a href=\"$curUrl\" tabindex=\"$counter\">$curMessage</a>";
+               }
+
+               return $curLink;
+       }
+
+       /**
+        * @param RecentChange $recentChange
+        *
+        * @return array
+        */
+       private function buildDiffQueryParams( RecentChange $recentChange ) {
+               return array(
+                       'curid' => $recentChange->mAttribs['rc_cur_id'],
+                       'diff' => $recentChange->mAttribs['rc_this_oldid'],
+                       'oldid' => $recentChange->mAttribs['rc_last_oldid']
+               );
+       }
+
+       /**
+        * @param RecentChange $cacheEntry
+        * @param boolean $showDiffLinks
+        * @param int $counter
+        *
+        * @return string
+        */
+       private function buildDiffLink( RecentChange $cacheEntry, $showDiffLinks, $counter ) {
+               $queryParams = $this->buildDiffQueryParams( $cacheEntry );
+               $diffMessage = $this->getMessage( 'diff' );
+               $logTypes = array( RC_NEW, RC_LOG, RC_MOVE, RC_MOVE_OVER_REDIRECT );
+
+               if ( !$showDiffLinks ) {
+                       $diffLink = $diffMessage;
+               } elseif ( in_array( $cacheEntry->mAttribs['rc_type'], $logTypes ) ) {
+                       $diffLink = $diffMessage;
+               } else {
+                       $diffUrl = htmlspecialchars( $cacheEntry->getTitle()->getLinkURL( $queryParams ) );
+                       $diffLink = "<a href=\"$diffUrl\" tabindex=\"$counter\">$diffMessage</a>";
+               }
+
+               return $diffLink;
+       }
+
+       /**
+        * @param RecentChange $cacheEntry
+        * @param boolean $showDiffLinks
+        *
+        * @return string
+        */
+       private function buildLastLink( RecentChange $cacheEntry, $showDiffLinks ) {
+               $lastOldid = $cacheEntry->mAttribs['rc_last_oldid'];
+               $lastMessage = $this->getMessage( 'last' );
+               $type = $cacheEntry->mAttribs['rc_type'];
+               $logTypes = array( RC_LOG, RC_MOVE, RC_MOVE_OVER_REDIRECT );
+
+               // Make "last" link
+               if ( !$showDiffLinks || !$lastOldid || in_array( $type, $logTypes ) ) {
+                       $lastLink = $lastMessage;
+               } else {
+                       $lastLink = Linker::linkKnown(
+                               $cacheEntry->getTitle(),
+                               $lastMessage,
+                               array(),
+                               $this->buildDiffQueryParams( $cacheEntry )
+                       );
+               }
+
+               return $lastLink;
+       }
+
+       /**
+        * @param RecentChange $cacheEntry
+        *
+        * @return string
+        */
+       private function getUserLink( RecentChange $cacheEntry ) {
+               if ( ChangesList::isDeleted( $cacheEntry, Revision::DELETED_USER ) ) {
+                       $userLink = ' <span class="history-deleted">' .
+                               $this->context->msg( 'rev-deleted-user' )->escaped() . '</span>';
+               } else {
+                       $userLink = Linker::userLink(
+                               $cacheEntry->mAttribs['rc_user'],
+                               $cacheEntry->mAttribs['rc_user_text']
+                       );
+               }
+
+               return $userLink;
+       }
+
+       /**
+        * @param string $key
+        *
+        * @return string
+        */
+       private function getMessage( $key ) {
+               return $this->messages[$key];
+       }
+
+}
index 01ad724..072aa12 100644 (file)
@@ -52,7 +52,6 @@
  * mExtra:
  *  prefixedDBkey   prefixed db key, used by external app via msg queue
  *  lastTimestamp   timestamp of previous entry, used in WHERE clause during update
- *  lang            the interwiki prefix, automatically set in save()
  *  oldSize         text size before the change
  *  newSize         text size after the change
  *  pageStatus      status of the page: created, deleted, moved, restored, changed
@@ -231,13 +230,12 @@ class RecentChange {
         * @param $noudp bool
         */
        public function save( $noudp = false ) {
-               global $wgLocalInterwiki, $wgPutIPinRC, $wgUseEnotif, $wgShowUpdatedMarker, $wgContLang;
+               global $wgPutIPinRC, $wgUseEnotif, $wgShowUpdatedMarker, $wgContLang;
 
                $dbw = wfGetDB( DB_MASTER );
                if ( !is_array( $this->mExtra ) ) {
                        $this->mExtra = array();
                }
-               $this->mExtra['lang'] = $wgLocalInterwiki;
 
                if ( !$wgPutIPinRC ) {
                        $this->mAttribs['rc_ip'] = '';
index 5cf8a9b..6c310fd 100644 (file)
@@ -4,7 +4,7 @@ use Composer\Package\Package;
 use Composer\Script\Event;
 
 $GLOBALS['IP'] = __DIR__ . '/../';
-require_once 'AutoLoader.php';
+require_once '../AutoLoader.php';
 
 /**
  * @licence GNU GPL v2+
index 727e142..a0d31cf 100644 (file)
@@ -63,5 +63,4 @@ class ComposerVersionNormalizer {
 
                return $version;
        }
-
-}
\ No newline at end of file
+}
index e1b1f01..f2f0c9d 100644 (file)
@@ -43,7 +43,7 @@ abstract class AbstractContent implements Content {
        protected $model_id;
 
        /**
-        * @param string|null $modelId
+        * @param string $modelId
         *
         * @since 1.21
         */
@@ -52,23 +52,21 @@ abstract class AbstractContent implements Content {
        }
 
        /**
-        * @see Content::getModel
-        *
         * @since 1.21
+        *
+        * @see Content::getModel
         */
        public function getModel() {
                return $this->model_id;
        }
 
        /**
-        * Throws an MWException if $model_id is not the id of the content model
-        * supported by this Content object.
-        *
         * @since 1.21
         *
         * @param string $modelId The model to check
         *
-        * @throws MWException
+        * @throws MWException If the provided ID is not the ID of the content model supported by this
+        * Content object.
         */
        protected function checkModelID( $modelId ) {
                if ( $modelId !== $this->model_id ) {
@@ -81,40 +79,40 @@ abstract class AbstractContent implements Content {
        }
 
        /**
-        * @see Content::getContentHandler
-        *
         * @since 1.21
+        *
+        * @see Content::getContentHandler
         */
        public function getContentHandler() {
                return ContentHandler::getForContent( $this );
        }
 
        /**
-        * @see Content::getDefaultFormat
-        *
         * @since 1.21
+        *
+        * @see Content::getDefaultFormat
         */
        public function getDefaultFormat() {
                return $this->getContentHandler()->getDefaultFormat();
        }
 
        /**
-        * @see Content::getSupportedFormats
-        *
         * @since 1.21
+        *
+        * @see Content::getSupportedFormats
         */
        public function getSupportedFormats() {
                return $this->getContentHandler()->getSupportedFormats();
        }
 
        /**
-        * @see Content::isSupportedFormat
+        * @since 1.21
         *
         * @param string $format
         *
-        * @since 1.21
+        * @return bool
         *
-        * @return boolean
+        * @see Content::isSupportedFormat
         */
        public function isSupportedFormat( $format ) {
                if ( !$format ) {
@@ -125,13 +123,11 @@ abstract class AbstractContent implements Content {
        }
 
        /**
-        * Throws an MWException if $this->isSupportedFormat( $format ) does not
-        * return true.
-        *
         * @since 1.21
         *
-        * @param string $format
-        * @throws MWException
+        * @param string $format The serialization format to check.
+        *
+        * @throws MWException If the format is not supported by this content handler.
         */
        protected function checkFormat( $format ) {
                if ( !$this->isSupportedFormat( $format ) ) {
@@ -143,48 +139,50 @@ abstract class AbstractContent implements Content {
        }
 
        /**
-        * @see Content::serialize
-        *
-        * @param string|null $format
-        *
         * @since 1.21
         *
+        * @param string $format
+        *
         * @return string
+        *
+        * @see Content::serialize
         */
        public function serialize( $format = null ) {
                return $this->getContentHandler()->serializeContent( $this, $format );
        }
 
        /**
-        * @see Content::isEmpty
-        *
         * @since 1.21
         *
-        * @return boolean
+        * @return bool
+        *
+        * @see Content::isEmpty
         */
        public function isEmpty() {
                return $this->getSize() === 0;
        }
 
        /**
-        * @see Content::isValid
+        * Subclasses may override this to implement (light weight) validation.
         *
         * @since 1.21
         *
-        * @return boolean
+        * @return bool Always true.
+        *
+        * @see Content::isValid
         */
        public function isValid() {
                return true;
        }
 
        /**
-        * @see Content::equals
-        *
         * @since 1.21
         *
-        * @param Content|null $that
+        * @param Content $that
         *
-        * @return boolean
+        * @return bool
+        *
+        * @see Content::equals
         */
        public function equals( Content $that = null ) {
                if ( is_null( $that ) ) {
@@ -214,26 +212,19 @@ abstract class AbstractContent implements Content {
         * Subclasses may override this to determine the secondary data updates more
         * efficiently, preferably without the need to generate a parser output object.
         *
-        * @see Content::getSecondaryDataUpdates()
+        * @since 1.21
         *
-        * @param $title Title The context for determining the necessary updates
-        * @param $old Content|null An optional Content object representing the
-        *    previous content, i.e. the content being replaced by this Content
-        *    object.
-        * @param $recursive boolean Whether to include recursive updates (default:
-        *    false).
-        * @param $parserOutput ParserOutput|null Optional ParserOutput object.
-        *    Provide if you have one handy, to avoid re-parsing of the content.
+        * @param Title $title
+        * @param Content $old
+        * @param bool $recursive
+        * @param ParserOutput $parserOutput
         *
-        * @return Array. A list of DataUpdate objects for putting information
-        *    about this content object somewhere.
+        * @return DataUpdate[]
         *
-        * @since 1.21
+        * @see Content::getSecondaryDataUpdates()
         */
-       public function getSecondaryDataUpdates( Title $title,
-               Content $old = null,
-               $recursive = true, ParserOutput $parserOutput = null
-       ) {
+       public function getSecondaryDataUpdates( Title $title, Content $old = null,
+               $recursive = true, ParserOutput $parserOutput = null ) {
                if ( $parserOutput === null ) {
                        $parserOutput = $this->getParserOutput( $title, null, null, false );
                }
@@ -242,9 +233,11 @@ abstract class AbstractContent implements Content {
        }
 
        /**
-        * @see Content::getRedirectChain
-        *
         * @since 1.21
+        *
+        * @return Title[]|null
+        *
+        * @see Content::getRedirectChain
         */
        public function getRedirectChain() {
                global $wgMaxRedirects;
@@ -277,19 +270,26 @@ abstract class AbstractContent implements Content {
        }
 
        /**
-        * @see Content::getRedirectTarget
+        * Subclasses that implement redirects should override this.
         *
         * @since 1.21
+        *
+        * @return null
+        *
+        * @see Content::getRedirectTarget
         */
        public function getRedirectTarget() {
                return null;
        }
 
        /**
-        * @see Content::getUltimateRedirectTarget
-        * @note: migrated here from Title::newFromRedirectRecurse
+        * @note Migrated here from Title::newFromRedirectRecurse.
         *
         * @since 1.21
+        *
+        * @return Title|null
+        *
+        * @see Content::getUltimateRedirectTarget
         */
        public function getUltimateRedirectTarget() {
                $titles = $this->getRedirectChain();
@@ -298,80 +298,93 @@ abstract class AbstractContent implements Content {
        }
 
        /**
-        * @see Content::isRedirect
-        *
         * @since 1.21
         *
         * @return bool
+        *
+        * @see Content::isRedirect
         */
        public function isRedirect() {
                return $this->getRedirectTarget() !== null;
        }
 
        /**
-        * @see Content::updateRedirect
-        *
         * This default implementation always returns $this.
-        *
-        * @param Title $target
+        * Subclasses that implement redirects should override this.
         *
         * @since 1.21
         *
+        * @param Title $target
+        *
         * @return Content $this
+        *
+        * @see Content::updateRedirect
         */
        public function updateRedirect( Title $target ) {
                return $this;
        }
 
        /**
-        * @see Content::getSection
-        *
         * @since 1.21
+        *
+        * @return null
+        *
+        * @see Content::getSection
         */
        public function getSection( $sectionId ) {
                return null;
        }
 
        /**
-        * @see Content::replaceSection
-        *
         * @since 1.21
+        *
+        * @return null
+        *
+        * @see Content::replaceSection
         */
        public function replaceSection( $section, Content $with, $sectionTitle = '' ) {
                return null;
        }
 
        /**
-        * @see Content::preSaveTransform
-        *
         * @since 1.21
+        *
+        * @return Content $this
+        *
+        * @see Content::preSaveTransform
         */
        public function preSaveTransform( Title $title, User $user, ParserOptions $popts ) {
                return $this;
        }
 
        /**
-        * @see Content::addSectionHeader
-        *
         * @since 1.21
+        *
+        * @return Content $this
+        *
+        * @see Content::addSectionHeader
         */
        public function addSectionHeader( $header ) {
                return $this;
        }
 
        /**
-        * @see Content::preloadTransform
-        *
         * @since 1.21
+        *
+        * @return Content $this
+        *
+        * @see Content::preloadTransform
         */
        public function preloadTransform( Title $title, ParserOptions $popts ) {
                return $this;
        }
 
        /**
-        * @see Content::prepareSave
-        *
         * @since 1.21
+        *
+        * @return Status
+        *
+        * @see Content::prepareSave
         */
        public function prepareSave( WikiPage $page, $flags, $baseRevId, User $user ) {
                if ( $this->isValid() ) {
@@ -382,21 +395,16 @@ abstract class AbstractContent implements Content {
        }
 
        /**
-        * @see Content::getDeletionUpdates
-        *
         * @since 1.21
         *
-        * @param $page WikiPage the deleted page
-        * @param $parserOutput null|ParserOutput optional parser output object
-        *    for efficient access to meta-information about the content object.
-        *    Provide if you have one handy.
+        * @param WikiPage $page
+        * @param ParserOutput $parserOutput
         *
-        * @return array A list of DataUpdate instances that will clean up the
-        *    database after deletion.
+        * @return LinksDeletionUpdate[]
+        *
+        * @see Content::getDeletionUpdates
         */
-       public function getDeletionUpdates( WikiPage $page,
-               ParserOutput $parserOutput = null
-       ) {
+       public function getDeletionUpdates( WikiPage $page, ParserOutput $parserOutput = null ) {
                return array(
                        new LinksDeletionUpdate( $page ),
                );
@@ -406,30 +414,28 @@ abstract class AbstractContent implements Content {
         * This default implementation always returns false. Subclasses may override
         * this to supply matching logic.
         *
-        * @see Content::matchMagicWord
-        *
         * @since 1.21
         *
         * @param MagicWord $word
         *
-        * @return bool
+        * @return bool Always false.
+        *
+        * @see Content::matchMagicWord
         */
        public function matchMagicWord( MagicWord $word ) {
                return false;
        }
 
        /**
-        * @see Content::convert()
-        *
         * This base implementation calls the hook ConvertContent to enable custom conversions.
         * Subclasses may override this to implement conversion for "their" content model.
         *
-        * @param string $toModel the desired content model, use the CONTENT_MODEL_XXX flags.
-        * @param string $lossy flag, set to "lossy" to allow lossy conversion. If lossy conversion is
-        * not allowed, full round-trip conversion is expected to work without losing information.
+        * @param string $toModel
+        * @param string $lossy
+        *
+        * @return Content|bool
         *
-        * @return Content|bool A content object with the content model $toModel, or false if
-        * that conversion is not supported.
+        * @see Content::convert()
         */
        public function convert( $toModel, $lossy = '' ) {
                if ( $this->getModel() === $toModel ) {
index 947e348..075635d 100644 (file)
@@ -32,6 +32,7 @@
  * @ingroup Content
  */
 interface Content {
+
        /**
         * @since 1.21
         *
@@ -64,8 +65,9 @@ interface Content {
         *
         * @since 1.21
         *
-        * @param int $maxLength Maximum length of the summary text
-        * @return string The summary text
+        * @param int $maxLength Maximum length of the summary text.
+        *
+        * @return string The summary text.
         */
        public function getTextForSummary( $maxLength = 250 );
 
@@ -132,7 +134,7 @@ interface Content {
         *
         * @since 1.21
         *
-        * @return Array of supported serialization formats
+        * @return string[] List of supported serialization formats
         */
        public function getSupportedFormats();
 
@@ -147,7 +149,8 @@ interface Content {
         *
         * @since 1.21
         *
-        * @param string $format The format to check
+        * @param string $format The serialization format to check.
+        *
         * @return bool Whether the format is supported
         */
        public function isSupportedFormat( $format );
@@ -159,9 +162,9 @@ interface Content {
         *
         * @since 1.21
         *
-        * @param $format null|string The desired serialization format (or null for
-        *    the default format).
-        * @return string Serialized form of this Content object
+        * @param string $format The desired serialization format, or null for the default format.
+        *
+        * @return string Serialized form of this Content object.
         */
        public function serialize( $format = null );
 
@@ -184,7 +187,7 @@ interface Content {
         *
         * @since 1.21
         *
-        * @return boolean
+        * @return bool
         */
        public function isValid();
 
@@ -207,7 +210,8 @@ interface Content {
         *
         * @since 1.21
         *
-        * @param $that Content The Content object to compare to
+        * @param Content $that The Content object to compare to.
+        *
         * @return bool True if this Content object is equal to $that, false otherwise.
         */
        public function equals( Content $that = null );
@@ -242,7 +246,8 @@ interface Content {
         * @param bool $hasLinks If it is known whether this content contains
         *    links, provide this information here, to avoid redundant parsing to
         *    find out.
-        * @return boolean
+        *
+        * @return bool
         */
        public function isCountable( $hasLinks = null );
 
@@ -256,10 +261,10 @@ interface Content {
         *       generated parser output, implementations of this method
         *       may call ParserOutput::recordOption() on the output object.
         *
-        * @param $title Title The page title to use as a context for rendering
-        * @param $revId null|int The revision being rendered (optional)
-        * @param $options null|ParserOptions Any parser options
-        * @param $generateHtml Boolean Whether to generate HTML (default: true). If false,
+        * @param Title $title The page title to use as a context for rendering.
+        * @param int $revId Optional revision ID being rendered.
+        * @param ParserOptions $options Any parser options.
+        * @param bool $generateHtml Whether to generate HTML (default: true). If false,
         *        the result of calling getText() on the ParserOutput object returned by
         *        this method is undefined.
         *
@@ -267,8 +272,7 @@ interface Content {
         *
         * @return ParserOutput
         */
-       public function getParserOutput( Title $title,
-               $revId = null,
+       public function getParserOutput( Title $title, $revId = null,
                ParserOptions $options = null, $generateHtml = true );
 
        // TODO: make RenderOutput and RenderOptions base classes
@@ -288,24 +292,22 @@ interface Content {
         * Subclasses may implement this to determine the necessary updates more
         * efficiently, or make use of information about the old content.
         *
-        * @param $title Title The context for determining the necessary updates
-        * @param $old Content|null An optional Content object representing the
+        * @param Title $title The context for determining the necessary updates
+        * @param Content $old An optional Content object representing the
         *    previous content, i.e. the content being replaced by this Content
         *    object.
-        * @param $recursive boolean Whether to include recursive updates (default:
+        * @param bool $recursive Whether to include recursive updates (default:
         *    false).
-        * @param $parserOutput ParserOutput|null Optional ParserOutput object.
+        * @param ParserOutput $parserOutput Optional ParserOutput object.
         *    Provide if you have one handy, to avoid re-parsing of the content.
         *
-        * @return Array. A list of DataUpdate objects for putting information
+        * @return DataUpdate[] A list of DataUpdate objects for putting information
         *    about this content object somewhere.
         *
         * @since 1.21
         */
-       public function getSecondaryDataUpdates( Title $title,
-               Content $old = null,
-               $recursive = true, ParserOutput $parserOutput = null
-       );
+       public function getSecondaryDataUpdates( Title $title, Content $old = null,
+               $recursive = true, ParserOutput $parserOutput = null );
 
        /**
         * Construct the redirect destination from this content and return an
@@ -315,7 +317,7 @@ interface Content {
         *
         * @since 1.21
         *
-        * @return Array of Titles, with the destination last
+        * @return Title[]|null List of Titles, with the destination last.
         */
        public function getRedirectChain();
 
@@ -327,7 +329,7 @@ interface Content {
         *
         * @since 1.21
         *
-        * @return Title: The corresponding Title
+        * @return Title|null The corresponding Title.
         */
        public function getRedirectTarget();
 
@@ -344,7 +346,7 @@ interface Content {
         *
         * @since 1.21
         *
-        * @return Title
+        * @return Title|null
         */
        public function getUltimateRedirectTarget();
 
@@ -364,9 +366,9 @@ interface Content {
         *
         * @since 1.21
         *
-        * @param Title $target the new redirect target
+        * @param Title $target The new redirect target
         *
-        * @return Content a new Content object with the updated redirect (or $this
+        * @return Content A new Content object with the updated redirect (or $this
         *   if this Content object isn't a redirect)
         */
        public function updateRedirect( Title $target );
@@ -380,7 +382,8 @@ interface Content {
         *    The ID "0" retrieves the section before the first heading, "1" the
         *    text between the first heading (included) and the second heading
         *    (excluded), etc.
-        * @return Content|Boolean|null The section, or false if no such section
+        *
+        * @return Content|bool|null The section, or false if no such section
         *    exist, or null if sections are not supported.
         */
        public function getSection( $sectionId );
@@ -391,10 +394,11 @@ interface Content {
         *
         * @since 1.21
         *
-        * @param $section null/false or a section number (0, 1, 2, T1, T2...), or "new"
-        * @param $with Content: new content of the section
-        * @param string $sectionTitle new section's subject, only if $section is 'new'
-        * @return string Complete article text, or null if error
+        * @param mixed $section Null/false or a section number (0, 1, 2, T1, T2...), or "new"
+        * @param Content $with New content of the section
+        * @param string $sectionTitle New section's subject, only if $section is 'new'
+        *
+        * @return string|null Complete article text, or null if error
         */
        public function replaceSection( $section, Content $with, $sectionTitle = '' );
 
@@ -404,9 +408,10 @@ interface Content {
         *
         * @since 1.21
         *
-        * @param $title Title
-        * @param $user User
-        * @param $parserOptions null|ParserOptions
+        * @param Title $title
+        * @param User $user
+        * @param ParserOptions $parserOptions
+        *
         * @return Content
         */
        public function preSaveTransform( Title $title, User $user, ParserOptions $parserOptions );
@@ -418,7 +423,8 @@ interface Content {
         *
         * @since 1.21
         *
-        * @param $header string
+        * @param string $header
+        *
         * @return Content
         */
        public function addSectionHeader( $header );
@@ -429,8 +435,9 @@ interface Content {
         *
         * @since 1.21
         *
-        * @param $title Title
-        * @param $parserOptions null|ParserOptions
+        * @param Title $title
+        * @param ParserOptions $parserOptions
+        *
         * @return Content
         */
        public function preloadTransform( Title $title, ParserOptions $parserOptions );
@@ -451,15 +458,15 @@ interface Content {
         * @since 1.21
         *
         * @param WikiPage $page The page to be saved.
-        * @param int $flags bitfield for use with EDIT_XXX constants, see WikiPage::doEditContent()
-        * @param int $baseRevId the ID of the current revision
+        * @param int $flags Bitfield for use with EDIT_XXX constants, see WikiPage::doEditContent()
+        * @param int $baseRevId The ID of the current revision
         * @param User $user
         *
         * @return Status A status object indicating whether the content was
         *   successfully prepared for saving. If the returned status indicates
         *   an error, a rollback will be performed and the transaction aborted.
         *
-        * @see see WikiPage::doEditContent()
+        * @see WikiPage::doEditContent()
         */
        public function prepareSave( WikiPage $page, $flags, $baseRevId, User $user );
 
@@ -470,12 +477,12 @@ interface Content {
         *
         * @since 1.21
         *
-        * @param $page WikiPage the deleted page
-        * @param $parserOutput null|ParserOutput optional parser output object
+        * @param WikiPage $page The deleted page
+        * @param ParserOutput $parserOutput Optional parser output object
         *    for efficient access to meta-information about the content object.
         *    Provide if you have one handy.
         *
-        * @return array A list of DataUpdate instances that will clean up the
+        * @return DataUpdate[] A list of DataUpdate instances that will clean up the
         *    database after deletion.
         */
        public function getDeletionUpdates( WikiPage $page,
@@ -486,9 +493,9 @@ interface Content {
         *
         * @since 1.21
         *
-        * @param MagicWord $word the magic word to match
+        * @param MagicWord $word The magic word to match
         *
-        * @return bool whether this Content object matches the given magic word.
+        * @return bool Whether this Content object matches the given magic word.
         */
        public function matchMagicWord( MagicWord $word );
 
@@ -496,9 +503,10 @@ interface Content {
         * Converts this content object into another content object with the given content model,
         * if that is possible.
         *
-        * @param string $toModel the desired content model, use the CONTENT_MODEL_XXX flags.
-        * @param string $lossy flag, set to "lossy" to allow lossy conversion. If lossy conversion is
-        * not allowed, full round-trip conversion is expected to work without losing information.
+        * @param string $toModel The desired content model, use the CONTENT_MODEL_XXX flags.
+        * @param string $lossy Optional flag, set to "lossy" to allow lossy conversion. If lossy
+        * conversion is not allowed, full round-trip conversion is expected to work without losing
+        * information.
         *
         * @return Content|bool A content object with the content model $toModel, or false if
         * that conversion is not supported.
@@ -509,4 +517,5 @@ interface Content {
        //   [11:59] <vvv> Hooks are ugly; make CodeHighlighter interface and a
        //   config to set the class which handles syntax highlighting
        //   [12:00] <vvv> And default it to a DummyHighlighter
+
 }
index 7c51345..defa7da 100644 (file)
@@ -85,10 +85,11 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @param $content Content|null
-        * @return null|string the textual form of $content, if available
-        * @throws MWException if $content is not an instance of TextContent and
-        *   $wgContentHandlerTextFallback was set to 'fail'.
+        * @param Content $content
+        *
+        * @throws MWException If the content is not an instance of TextContent and
+        * wgContentHandlerTextFallback was set to 'fail'.
+        * @return string|null Textual form of the content, if available.
         */
        public static function getContentText( Content $content = null ) {
                global $wgContentHandlerTextFallback;
@@ -127,24 +128,21 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @param string $text the textual representation, will be
+        * @param string $text The textual representation, will be
         *    unserialized to create the Content object
-        * @param $title null|Title the title of the page this text belongs to.
+        * @param Title $title The title of the page this text belongs to.
         *    Required if $modelId is not provided.
-        * @param $modelId null|string the model to deserialize to. If not provided,
+        * @param string $modelId The model to deserialize to. If not provided,
         *    $title->getContentModel() is used.
-        * @param $format null|string the format to use for deserialization. If not
+        * @param string $format The format to use for deserialization. If not
         *    given, the model's default format is used.
         *
-        * @throws MWException
-        * @return Content a Content object representing $text
-        *
-        * @throws MWException if $model or $format is not supported or if $text can
-        *    not be unserialized using $format.
+        * @throws MWException If model ID or format is not supported or if the text can not be
+        * unserialized using the format.
+        * @return Content A Content object representing the text.
         */
        public static function makeContent( $text, Title $title = null,
-               $modelId = null, $format = null
-       ) {
+               $modelId = null, $format = null ) {
                if ( is_null( $modelId ) ) {
                        if ( is_null( $title ) ) {
                                throw new MWException( "Must provide a Title object or a content model ID." );
@@ -188,8 +186,9 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @param $title Title
-        * @return null|string default model name for the page given by $title
+        * @param Title $title
+        *
+        * @return string Default model name for the page given by $title
         */
        public static function getDefaultModelFor( Title $title ) {
                // NOTE: this method must not rely on $title->getContentModel() directly or indirectly,
@@ -253,7 +252,8 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @param $title Title
+        * @param Title $title
+        *
         * @return ContentHandler
         */
        public static function getForTitle( Title $title ) {
@@ -268,7 +268,8 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @param $content Content
+        * @param Content $content
+        *
         * @return ContentHandler
         */
        public static function getForContent( Content $content ) {
@@ -303,9 +304,9 @@ abstract class ContentHandler {
         *
         * @param string $modelId The ID of the content model for which to get a
         *    handler. Use CONTENT_MODEL_XXX constants.
-        * @return ContentHandler The ContentHandler singleton for handling the
-        *    model given by $modelId
-        * @throws MWException if no handler is known for $modelId.
+        *
+        * @throws MWException If no handler is known for the model ID.
+        * @return ContentHandler The ContentHandler singleton for handling the model given by the ID.
         */
        public static function getForModelID( $modelId ) {
                global $wgContentHandlers;
@@ -353,8 +354,8 @@ abstract class ContentHandler {
         * @param string $name The content model ID, as given by a CONTENT_MODEL_XXX
         *    constant or returned by Revision::getContentModel().
         *
+        * @throws MWException If the model ID isn't known.
         * @return string The content model's localized name.
-        * @throws MWException if the model id isn't known.
         */
        public static function getLocalizedName( $name ) {
                // Messages: content-model-wikitext, content-model-text,
@@ -389,7 +390,14 @@ abstract class ContentHandler {
 
        // ------------------------------------------------------------------------
 
+       /**
+        * @var string
+        */
        protected $mModelID;
+
+       /**
+        * @var string[]
+        */
        protected $mSupportedFormats;
 
        /**
@@ -398,7 +406,7 @@ abstract class ContentHandler {
         * provided as literals by subclass's constructors.
         *
         * @param string $modelId (use CONTENT_MODEL_XXX constants).
-        * @param array $formats List for supported serialization formats
+        * @param string[] $formats List for supported serialization formats
         *    (typically as MIME types)
         */
        public function __construct( $modelId, $formats ) {
@@ -415,8 +423,9 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @param $content Content The Content object to serialize
-        * @param $format null|String The desired serialization format
+        * @param Content $content The Content object to serialize
+        * @param string $format The desired serialization format
+        *
         * @return string Serialized form of the content
         */
        abstract public function serializeContent( Content $content, $format = null );
@@ -426,9 +435,10 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @param string $blob serialized form of the content
-        * @param $format null|String the format used for serialization
-        * @return Content the Content object created by deserializing $blob
+        * @param string $blob Serialized form of the content
+        * @param string $format The format used for serialization
+        *
+        * @return Content The Content object created by deserializing $blob
         */
        abstract public function unserializeContent( $blob, $format = null );
 
@@ -454,10 +464,10 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @param Title $destination the page to redirect to.
-        * @param string $text text to include in the redirect, if possible.
+        * @param Title $destination The page to redirect to.
+        * @param string $text Text to include in the redirect, if possible.
         *
-        * @return Content
+        * @return Content Always null.
         */
        public function makeRedirectContent( Title $destination, $text = '' ) {
                return null;
@@ -469,21 +479,19 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @return String The model ID
+        * @return string The model ID
         */
        public function getModelID() {
                return $this->mModelID;
        }
 
        /**
-        * Throws an MWException if $model_id is not the ID of the content model
-        * supported by this ContentHandler.
-        *
         * @since 1.21
         *
         * @param string $model_id The model to check
         *
-        * @throws MWException
+        * @throws MWException If the model ID is not the ID of the content model supported by this
+        * ContentHandler.
         */
        protected function checkModelID( $model_id ) {
                if ( $model_id !== $this->mModelID ) {
@@ -500,7 +508,7 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @return array of serialization formats as MIME type like strings
+        * @return string[] List of serialization formats as MIME type like strings
         */
        public function getSupportedFormats() {
                return $this->mSupportedFormats;
@@ -515,7 +523,7 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @return string the name of the default serialization format as a MIME type
+        * @return string The name of the default serialization format as a MIME type
         */
        public function getDefaultFormat() {
                return $this->mSupportedFormats[0];
@@ -530,11 +538,11 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @param string $format the serialization format to check
+        * @param string $format The serialization format to check
+        *
         * @return bool
         */
        public function isSupportedFormat( $format ) {
-
                if ( !$format ) {
                        return true; // this means "use the default"
                }
@@ -543,13 +551,11 @@ abstract class ContentHandler {
        }
 
        /**
-        * Throws an MWException if isSupportedFormat( $format ) is not true.
-        * Convenient for checking whether a format provided as a parameter is
-        * actually supported.
+        * Convenient for checking whether a format provided as a parameter is actually supported.
         *
-        * @param string $format the serialization format to check
+        * @param string $format The serialization format to check
         *
-        * @throws MWException
+        * @throws MWException If the format is not supported by this content handler.
         */
        protected function checkFormat( $format ) {
                if ( !$this->isSupportedFormat( $format ) ) {
@@ -568,7 +574,7 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @return Array
+        * @return array Always an empty array.
         */
        public function getActionOverrides() {
                return array();
@@ -579,21 +585,18 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @param $context IContextSource context to use, anything else will be
-        *    ignored
-        * @param $old Integer Old ID we want to show and diff with.
-        * @param int|string $new String either 'prev' or 'next'.
-        * @param $rcid Integer ??? FIXME (default 0)
-        * @param $refreshCache boolean If set, refreshes the diff cache
-        * @param $unhide boolean If set, allow viewing deleted revs
+        * @param IContextSource $context Context to use, anything else will be ignored.
+        * @param int $old Revision ID we want to show and diff with.
+        * @param int|string $new Either a revision ID or one of the strings 'cur', 'prev' or 'next'.
+        * @param int $rcid FIXME: Deprecated, no longer used. Defaults to 0.
+        * @param bool $refreshCache If set, refreshes the diff cache. Defaults to false.
+        * @param bool $unhide If set, allow viewing deleted revs. Defaults to false.
         *
         * @return DifferenceEngine
         */
-       public function createDifferenceEngine( IContextSource $context,
-               $old = 0, $new = 0,
-               $rcid = 0, # FIXME: use everywhere!
-               $refreshCache = false, $unhide = false
-       ) {
+       public function createDifferenceEngine( IContextSource $context, $old = 0, $new = 0,
+               $rcid = 0, //FIXME: Deprecated, no longer used
+               $refreshCache = false, $unhide = false ) {
                $diffEngineClass = $this->getDiffEngineClass();
 
                return new $diffEngineClass( $context, $old, $new, $rcid, $refreshCache, $unhide );
@@ -613,10 +616,10 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @param Title $title the page to determine the language for.
-        * @param Content|null $content the page's content, if you have it handy, to avoid reloading it.
+        * @param Title $title The page to determine the language for.
+        * @param Content $content The page's content, if you have it handy, to avoid reloading it.
         *
-        * @return Language the page's language
+        * @return Language The page's language
         */
        public function getPageLanguage( Title $title, Content $content = null ) {
                global $wgContLang, $wgLang;
@@ -648,10 +651,10 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @param Title $title the page to determine the language for.
-        * @param Content|null $content the page's content, if you have it handy, to avoid reloading it.
+        * @param Title $title The page to determine the language for.
+        * @param Content $content The page's content, if you have it handy, to avoid reloading it.
         *
-        * @return Language the page's language for viewing
+        * @return Language The page's language for viewing
         */
        public function getPageViewLanguage( Title $title, Content $content = null ) {
                $pageLang = $this->getPageLanguage( $title, $content );
@@ -680,9 +683,9 @@ abstract class ContentHandler {
         * @note: this calls the ContentHandlerCanBeUsedOn hook which may be used to override which
         * content model can be used where.
         *
-        * @param Title $title the page's title.
+        * @param Title $title The page's title.
         *
-        * @return bool true if content of this kind can be used on the given page, false otherwise.
+        * @return bool True if content of this kind can be used on the given page, false otherwise.
         */
        public function canBeUsedOn( Title $title ) {
                $ok = true;
@@ -704,19 +707,18 @@ abstract class ContentHandler {
        }
 
        /**
-        * Attempts to merge differences between three versions.
-        * Returns a new Content object for a clean merge and false for failure or
-        * a conflict.
+        * Attempts to merge differences between three versions. Returns a new
+        * Content object for a clean merge and false for failure or a conflict.
         *
         * This default implementation always returns false.
         *
         * @since 1.21
         *
-        * @param $oldContent Content|string  String
-        * @param $myContent Content|string   String
-        * @param $yourContent Content|string String
+        * @param Content|string $oldContent The page's previous content.
+        * @param Content|string $myContent One of the page's conflicting contents.
+        * @param Content|string $yourContent One of the page's conflicting contents.
         *
-        * @return Content|Bool
+        * @return Content|bool Always false.
         */
        public function merge3( Content $oldContent, Content $myContent, Content $yourContent ) {
                return false;
@@ -727,13 +729,14 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @param $oldContent Content|null: the previous text of the page.
-        * @param $newContent Content|null: The submitted text of the page.
+        * @param Content $oldContent The previous text of the page.
+        * @param Content $newContent The submitted text of the page.
         * @param int $flags Bit mask: a bit mask of flags submitted for the edit.
         *
         * @return string An appropriate auto-summary, or an empty string.
         */
-       public function getAutosummary( Content $oldContent = null, Content $newContent = null, $flags ) {
+       public function getAutosummary( Content $oldContent = null, Content $newContent = null,
+               $flags ) {
                // Decide what kind of auto-summary is needed.
 
                // Redirect auto-summaries
@@ -799,8 +802,9 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @param $title Title: the page's title
-        * @param &$hasHistory Boolean: whether the page has a history
+        * @param Title $title The page's title
+        * @param bool &$hasHistory Whether the page has a history
+        *
         * @return mixed String containing deletion reason or empty string, or
         *    boolean false if no revision occurred
         *
@@ -907,9 +911,9 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @param $current Revision The current text
-        * @param $undo Revision The revision to undo
-        * @param $undoafter Revision Must be an earlier revision than $undo
+        * @param Revision $current The current text
+        * @param Revision $undo The revision to undo
+        * @param Revision $undoafter Must be an earlier revision than $undo
         *
         * @return mixed String on success, false on failure
         */
@@ -980,7 +984,7 @@ abstract class ContentHandler {
         *
         * @since 1.21
         *
-        * @return bool
+        * @return bool Always false.
         */
        public function isParserCacheSupported() {
                return false;
@@ -993,7 +997,7 @@ abstract class ContentHandler {
         * Content models that return true here should also implement
         * Content::getSection, Content::replaceSection, etc. to handle sections..
         *
-        * @return boolean whether sections are supported.
+        * @return bool Always false.
         */
        public function supportsSections() {
                return false;
@@ -1006,7 +1010,7 @@ abstract class ContentHandler {
         * Content models that return true here should also implement
         * ContentHandler::makeRedirectContent to return a Content object.
         *
-        * @return boolean whether redirects are supported.
+        * @return bool Always false.
         */
        public function supportsRedirects() {
                return false;
@@ -1038,13 +1042,13 @@ abstract class ContentHandler {
         * hook function, a new Content object is constructed from the new
         * text.
         *
-        * @param string $event event name
-        * @param array $args parameters passed to hook functions
-        * @param bool $warn whether to log a warning.
+        * @param string $event Event name
+        * @param array $args Parameters passed to hook functions
+        * @param bool $warn Whether to log a warning.
         *                    Default to self::$enableDeprecationWarnings.
         *                    May be set to false for testing.
         *
-        * @return Boolean True if no handler aborted the hook
+        * @return bool True if no handler aborted the hook
         *
         * @see ContentHandler::$enableDeprecationWarnings
         */
index 03cc2d0..5fc2c9f 100644 (file)
  * @ingroup Content
  */
 class CssContent extends TextContent {
+
+       /**
+        * @param string $text CSS code.
+        */
        public function __construct( $text ) {
                parent::__construct( $text, CONTENT_MODEL_CSS );
        }
@@ -39,10 +43,13 @@ class CssContent extends TextContent {
         * Returns a Content object with pre-save transformations applied using
         * Parser::preSaveTransform().
         *
-        * @param $title Title
-        * @param $user User
-        * @param $popts ParserOptions
-        * @return Content
+        * @param Title $title
+        * @param User $user
+        * @param ParserOptions $popts
+        *
+        * @return CssContent
+        *
+        * @see TextContent::preSaveTransform
         */
        public function preSaveTransform( Title $title, User $user, ParserOptions $popts ) {
                global $wgParser;
@@ -54,6 +61,9 @@ class CssContent extends TextContent {
                return new CssContent( $pst );
        }
 
+       /**
+        * @return string CSS wrapped in a <pre> tag.
+        */
        protected function getHtml() {
                $html = "";
                $html .= "<pre class=\"mw-code mw-css\" dir=\"ltr\">\n";
@@ -62,4 +72,5 @@ class CssContent extends TextContent {
 
                return $html;
        }
+
 }
index 7becabb..85059a8 100644 (file)
  * @ingroup Content
  */
 class CssContentHandler extends TextContentHandler {
+
+       /**
+        * @param string $modelId
+        */
        public function __construct( $modelId = CONTENT_MODEL_CSS ) {
                parent::__construct( $modelId, array( CONTENT_FORMAT_CSS ) );
        }
 
+       /**
+        * @param string $text
+        * @param string $format
+        *
+        * @return CssContent
+        *
+        * @see ContentHandler::unserializeContent()
+        */
        public function unserializeContent( $text, $format = null ) {
                $this->checkFormat( $format );
 
                return new CssContent( $text );
        }
 
+       /**
+        * @return CssContent A new CssContent object with empty text.
+        *
+        * @see ContentHandler::makeEmptyContent()
+        */
        public function makeEmptyContent() {
                return new CssContent( '' );
        }
@@ -47,6 +64,7 @@ class CssContentHandler extends TextContentHandler {
         *
         * @param Title $title
         * @param Content $content
+        *
         * @return Language wfGetLangObj( 'en' )
         *
         * @see ContentHandler::getPageLanguage()
@@ -60,6 +78,7 @@ class CssContentHandler extends TextContentHandler {
         *
         * @param Title $title
         * @param Content $content
+        *
         * @return Language wfGetLangObj( 'en' )
         *
         * @see ContentHandler::getPageViewLanguage()
@@ -67,4 +86,5 @@ class CssContentHandler extends TextContentHandler {
        public function getPageViewLanguage( Title $title, Content $content = null ) {
                return wfGetLangObj( 'en' );
        }
+
 }
index 2ae572b..11a470e 100644 (file)
  * @ingroup Content
  */
 class JavaScriptContent extends TextContent {
+
+       /**
+        * @param string $text JavaScript code.
+        */
        public function __construct( $text ) {
                parent::__construct( $text, CONTENT_MODEL_JAVASCRIPT );
        }
@@ -42,7 +46,8 @@ class JavaScriptContent extends TextContent {
         * @param Title $title
         * @param User $user
         * @param ParserOptions $popts
-        * @return Content
+        *
+        * @return JavaScriptContent
         */
        public function preSaveTransform( Title $title, User $user, ParserOptions $popts ) {
                global $wgParser;
@@ -55,6 +60,9 @@ class JavaScriptContent extends TextContent {
                return new JavaScriptContent( $pst );
        }
 
+       /**
+        * @return string JavaScript wrapped in a <pre> tag.
+        */
        protected function getHtml() {
                $html = "";
                $html .= "<pre class=\"mw-code mw-js\" dir=\"ltr\">\n";
@@ -63,4 +71,5 @@ class JavaScriptContent extends TextContent {
 
                return $html;
        }
+
 }
index 064c422..2e98976 100644 (file)
  * @todo make ScriptContentHandler base class, do highlighting stuff there?
  */
 class JavaScriptContentHandler extends TextContentHandler {
+
+       /**
+        * @param string $modelId
+        */
        public function __construct( $modelId = CONTENT_MODEL_JAVASCRIPT ) {
                parent::__construct( $modelId, array( CONTENT_FORMAT_JAVASCRIPT ) );
        }
 
+       /**
+        * @param string $text
+        * @param string $format
+        *
+        * @return JavaScriptContent
+        *
+        * @see ContentHandler::unserializeContent()
+        */
        public function unserializeContent( $text, $format = null ) {
                $this->checkFormat( $format );
 
                return new JavaScriptContent( $text );
        }
 
+       /**
+        * @return JavaScriptContent A new JavaScriptContent object with empty text.
+        *
+        * @see ContentHandler::makeEmptyContent()
+        */
        public function makeEmptyContent() {
                return new JavaScriptContent( '' );
        }
@@ -47,6 +64,7 @@ class JavaScriptContentHandler extends TextContentHandler {
         *
         * @param Title $title
         * @param Content $content
+        *
         * @return Language wfGetLangObj( 'en' )
         *
         * @see ContentHandler::getPageLanguage()
@@ -60,6 +78,7 @@ class JavaScriptContentHandler extends TextContentHandler {
         *
         * @param Title $title
         * @param Content $content
+        *
         * @return Language wfGetLangObj( 'en' )
         *
         * @see ContentHandler::getPageViewLanguage()
@@ -67,4 +86,5 @@ class JavaScriptContentHandler extends TextContentHandler {
        public function getPageViewLanguage( Title $title, Content $content = null ) {
                return wfGetLangObj( 'en' );
        }
+
 }
index e780846..b601344 100644 (file)
  * @ingroup Content
  */
 class MessageContent extends AbstractContent {
+
        /**
         * @var Message
         */
        protected $mMessage;
 
        /**
-        * @param Message|String $msg A Message object, or a message key
-        * @param array|null $params An optional array of message parameters
+        * @param Message|string $msg A Message object, or a message key.
+        * @param string[] $params An optional array of message parameters.
         */
        public function __construct( $msg, $params = null ) {
                # XXX: messages may be wikitext, html or plain text! and maybe even something else entirely.
@@ -59,18 +60,18 @@ class MessageContent extends AbstractContent {
        }
 
        /**
-        * Returns the message as rendered HTML
+        * Fully parse the text from wikitext to HTML.
         *
-        * @return string The message text, parsed into html
+        * @return string Parsed HTML.
         */
        public function getHtml() {
                return $this->mMessage->parse();
        }
 
        /**
-        * Returns the message as rendered HTML
+        * Returns the message text. {{-transformation is done.
         *
-        * @return string The message text, parsed into html
+        * @return string Unescaped message text.
         */
        public function getWikitext() {
                return $this->mMessage->text();
@@ -87,6 +88,8 @@ class MessageContent extends AbstractContent {
        }
 
        /**
+        * @return string
+        *
         * @see Content::getTextForSearchIndex
         */
        public function getTextForSearchIndex() {
@@ -94,6 +97,8 @@ class MessageContent extends AbstractContent {
        }
 
        /**
+        * @return string
+        *
         * @see Content::getWikitextForTransclusion
         */
        public function getWikitextForTransclusion() {
@@ -101,6 +106,10 @@ class MessageContent extends AbstractContent {
        }
 
        /**
+        * @param int $maxLength Maximum length of the summary text, defaults to 250.
+        *
+        * @return string The summary text.
+        *
         * @see Content::getTextForSummary
         */
        public function getTextForSummary( $maxlength = 250 ) {
@@ -108,18 +117,18 @@ class MessageContent extends AbstractContent {
        }
 
        /**
-        * @see Content::getSize
-        *
         * @return int
+        *
+        * @see Content::getSize
         */
        public function getSize() {
                return strlen( $this->mMessage->plain() );
        }
 
        /**
-        * @see Content::copy
-        *
         * @return Content. A copy of this object
+        *
+        * @see Content::copy
         */
        public function copy() {
                // MessageContent is immutable (because getNativeData() returns a clone of the Message object)
@@ -127,29 +136,28 @@ class MessageContent extends AbstractContent {
        }
 
        /**
-        * @see Content::isCountable
-        *
         * @param bool $hasLinks
-        * @return bool false
+        *
+        * @return bool Always false.
+        *
+        * @see Content::isCountable
         */
        public function isCountable( $hasLinks = null ) {
                return false;
        }
 
        /**
-        * @see Content::getParserOutput
+        * @param Title $title Unused.
+        * @param int $revId Unused.
+        * @param ParserOptions $options Unused.
+        * @param bool $generateHtml Whether to generate HTML (default: true).
         *
-        * @param Title $title
-        * @param int $revId Optional revision ID
-        * @param ParserOptions $options
-        * @param bool $generateHtml Wether to generate HTML
         * @return ParserOutput
+        *
+        * @see Content::getParserOutput
         */
-       public function getParserOutput(
-               Title $title, $revId = null,
-               ParserOptions $options = null, $generateHtml = true
-       ) {
-
+       public function getParserOutput( Title $title, $revId = null,
+               ParserOptions $options = null, $generateHtml = true ) {
                if ( $generateHtml ) {
                        $html = $this->getHtml();
                } else {
@@ -160,4 +168,5 @@ class MessageContent extends AbstractContent {
 
                return $po;
        }
+
 }
index 068b150..b0da62d 100644 (file)
  * @ingroup Content
  */
 class TextContent extends AbstractContent {
+
+       /**
+        * @param string $text
+        * @param string $model_id
+        */
        public function __construct( $text, $model_id = CONTENT_MODEL_TEXT ) {
                parent::__construct( $model_id );
 
@@ -50,6 +55,11 @@ class TextContent extends AbstractContent {
                $this->mText = $text;
        }
 
+       /**
+        * @note Mutable subclasses MUST override this to return a copy!
+        *
+        * @return Content $this
+        */
        public function copy() {
                return $this; # NOTE: this is ok since TextContent are immutable.
        }
@@ -81,10 +91,10 @@ class TextContent extends AbstractContent {
         * Returns true if this content is not a redirect, and $wgArticleCountMethod
         * is "any".
         *
-        * @param bool $hasLinks if it is known whether this content contains links,
+        * @param bool $hasLinks If it is known whether this content contains links,
         * provide this information here, to avoid redundant parsing to find out.
         *
-        * @return bool True if the content is countable
+        * @return bool
         */
        public function isCountable( $hasLinks = null ) {
                global $wgArticleCountMethod;
@@ -103,7 +113,7 @@ class TextContent extends AbstractContent {
        /**
         * Returns the text represented by this Content object, as a string.
         *
-        * @return string: the raw text
+        * @return string The raw text.
         */
        public function getNativeData() {
                $text = $this->mText;
@@ -114,7 +124,7 @@ class TextContent extends AbstractContent {
        /**
         * Returns the text represented by this Content object, as a string.
         *
-        * @return string: the raw text
+        * @return string The raw text.
         */
        public function getTextForSearchIndex() {
                return $this->getNativeData();
@@ -126,7 +136,7 @@ class TextContent extends AbstractContent {
         *
         * @note: this allows any text-based content to be transcluded as if it was wikitext.
         *
-        * @return string|false: the raw text, or null if the conversion failed
+        * @return string|false The raw text, or false if the conversion failed.
         */
        public function getWikitextForTransclusion() {
                $wikitext = $this->convert( CONTENT_MODEL_WIKITEXT, 'lossy' );
@@ -142,9 +152,10 @@ class TextContent extends AbstractContent {
         * Returns a Content object with pre-save transformations applied.
         * This implementation just trims trailing whitespace.
         *
-        * @param $title Title
-        * @param $user User
-        * @param $popts ParserOptions
+        * @param Title $title
+        * @param User $user
+        * @param ParserOptions $popts
+        *
         * @return Content
         */
        public function preSaveTransform( Title $title, User $user, ParserOptions $popts ) {
@@ -159,9 +170,9 @@ class TextContent extends AbstractContent {
         *
         * @since 1.21
         *
-        * @param $that Content: The other content object to compare this content
+        * @param Content $that The other content object to compare this content
         * object to.
-        * @param $lang Language: The language object to use for text segmentation.
+        * @param Language $lang The language object to use for text segmentation.
         *    If not given, $wgContentLang is used.
         *
         * @return Diff A diff representing the changes that would have to be
@@ -194,17 +205,15 @@ class TextContent extends AbstractContent {
         * Returns a generic ParserOutput object, wrapping the HTML returned by
         * getHtml().
         *
-        * @param $title Title Context title for parsing
-        * @param int|null $revId Revision ID (for {{REVISIONID}})
-        * @param $options ParserOptions|null Parser options
+        * @param Title $title Context title for parsing
+        * @param int $revId Revision ID (for {{REVISIONID}})
+        * @param ParserOptions $options Parser options
         * @param bool $generateHtml Whether or not to generate HTML
         *
-        * @return ParserOutput representing the HTML form of the text
+        * @return ParserOutput Representing the HTML form of the text.
         */
-       public function getParserOutput( Title $title,
-               $revId = null,
-               ParserOptions $options = null, $generateHtml = true
-       ) {
+       public function getParserOutput( Title $title, $revId = null,
+               ParserOptions $options = null, $generateHtml = true ) {
                global $wgParser, $wgTextModelsToParse;
 
                if ( !$options ) {
@@ -249,7 +258,7 @@ class TextContent extends AbstractContent {
         * Generates a syntax-highlighted version of the content, as HTML.
         * Used by the default implementation of getHtml().
         *
-        * @return string an HTML representation of the content's markup
+        * @return string A HTML representation of the content's markup
         */
        protected function getHighlightHtml() {
                # TODO: make Highlighter interface, use highlighter here, if available
@@ -257,17 +266,15 @@ class TextContent extends AbstractContent {
        }
 
        /**
-        * @see Content::convert()
-        *
         * This implementation provides lossless conversion between content models based
         * on TextContent.
         *
-        * @param string $toModel the desired content model, use the CONTENT_MODEL_XXX flags.
-        * @param string $lossy flag, set to "lossy" to allow lossy conversion. If lossy conversion is
-        * not allowed, full round-trip conversion is expected to work without losing information.
+        * @param string $toModel
+        * @param string $lossy
         *
-        * @return Content|bool A content object with the content model $toModel, or false if
-        * that conversion is not supported.
+        * @return Content|bool
+        *
+        * @see Content::convert()
         */
        public function convert( $toModel, $lossy = '' ) {
                $converted = parent::convert( $toModel, $lossy );
@@ -286,4 +293,5 @@ class TextContent extends AbstractContent {
 
                return $converted;
        }
+
 }
index 94b5c57..b728d31 100644 (file)
  * @ingroup Content
  */
 class TextContentHandler extends ContentHandler {
+
        // @codingStandardsIgnoreStart bug 57585
        public function __construct( $modelId = CONTENT_MODEL_TEXT,
-               $formats = array( CONTENT_FORMAT_TEXT )
-       ) {
+               $formats = array( CONTENT_FORMAT_TEXT ) ) {
                parent::__construct( $modelId, $formats );
        }
        // @codingStandardsIgnoreEnd
@@ -40,8 +40,9 @@ class TextContentHandler extends ContentHandler {
        /**
         * Returns the content's text as-is.
         *
-        * @param $content Content
-        * @param $format string|null
+        * @param Content $content
+        * @param string $format The serialization format to check
+        *
         * @return mixed
         */
        public function serializeContent( Content $content, $format = null ) {
@@ -59,11 +60,11 @@ class TextContentHandler extends ContentHandler {
         *
         * This text-based implementation uses wfMerge().
         *
-        * @param $oldContent Content|string  String
-        * @param $myContent Content|string   String
-        * @param $yourContent Content|string String
+        * @param Content|string $oldContent The page's previous content.
+        * @param Content|string $myContent One of the page's conflicting contents.
+        * @param Content|string $yourContent One of the page's conflicting contents.
         *
-        * @return Content|Bool
+        * @return Content|bool
         */
        public function merge3( Content $oldContent, Content $myContent, Content $yourContent ) {
                $this->checkModelID( $oldContent->getModel() );
@@ -96,10 +97,10 @@ class TextContentHandler extends ContentHandler {
         *
         * @since 1.21
         *
-        * @param $text   string serialized form of the content
-        * @param $format null|String the format used for serialization
+        * @param string $text Serialized form of the content
+        * @param string $format The format used for serialization
         *
-        * @return Content the TextContent object wrapping $text
+        * @return Content The TextContent object wrapping $text
         */
        public function unserializeContent( $text, $format = null ) {
                $this->checkFormat( $format );
@@ -112,9 +113,10 @@ class TextContentHandler extends ContentHandler {
         *
         * @since 1.21
         *
-        * @return Content
+        * @return Content A new TextContent object with empty text.
         */
        public function makeEmptyContent() {
                return new TextContent( '' );
        }
+
 }
index f495c56..605222e 100644 (file)
  * @ingroup Content
  */
 class WikitextContent extends TextContent {
+
        public function __construct( $text ) {
                parent::__construct( $text, CONTENT_MODEL_WIKITEXT );
        }
 
        /**
+        * @param string $section
+        *
+        * @return Content|bool|null
+        *
         * @see Content::getSection()
         */
        public function getSection( $section ) {
@@ -52,6 +57,13 @@ class WikitextContent extends TextContent {
        }
 
        /**
+        * @param string $section
+        * @param Content $with
+        * @param string $sectionTitle
+        *
+        * @throws MWException
+        * @return Content
+        *
         * @see Content::replaceSection()
         */
        public function replaceSection( $section, Content $with, $sectionTitle = '' ) {
@@ -103,7 +115,8 @@ class WikitextContent extends TextContent {
         * Returns a new WikitextContent object with the given section heading
         * prepended.
         *
-        * @param $header string
+        * @param string $header
+        *
         * @return Content
         */
        public function addSectionHeader( $header ) {
@@ -119,9 +132,10 @@ class WikitextContent extends TextContent {
         * Returns a Content object with pre-save transformations applied using
         * Parser::preSaveTransform().
         *
-        * @param $title Title
-        * @param $user User
-        * @param $popts ParserOptions
+        * @param Title $title
+        * @param User $user
+        * @param ParserOptions $popts
+        *
         * @return Content
         */
        public function preSaveTransform( Title $title, User $user, ParserOptions $popts ) {
@@ -138,8 +152,9 @@ class WikitextContent extends TextContent {
         * Returns a Content object with preload transformations applied (or this
         * object if no transformations apply).
         *
-        * @param $title Title
-        * @param $popts ParserOptions
+        * @param Title $title
+        * @param ParserOptions $popts
+        *
         * @return Content
         */
        public function preloadTransform( Title $title, ParserOptions $popts ) {
@@ -157,7 +172,8 @@ class WikitextContent extends TextContent {
         * @note: migrated here from Title::newFromRedirectInternal()
         *
         * @since 1.23
-        * @return array 2 elements: Title|null and string
+        *
+        * @return array List of two elements: Title|null and string.
         */
        protected function getRedirectTargetAndText() {
                global $wgMaxRedirects;
@@ -195,10 +211,9 @@ class WikitextContent extends TextContent {
        /**
         * Implement redirect extraction for wikitext.
         *
-        * @return null|Title
+        * @return Title|null
         *
         * @see Content::getRedirectTarget
-        * @see AbstractContent::getRedirectTarget
         */
        public function getRedirectTarget() {
                list( $title, ) = $this->getRedirectTargetAndText();
@@ -207,8 +222,6 @@ class WikitextContent extends TextContent {
        }
 
        /**
-        * @see Content::updateRedirect()
-        *
         * This implementation replaces the first link on the page with the given new target
         * if this Content object is a redirect. Otherwise, this method returns $this.
         *
@@ -216,8 +229,9 @@ class WikitextContent extends TextContent {
         *
         * @param Title $target
         *
-        * @return Content a new Content object with the updated redirect (or $this
-        *   if this Content object isn't a redirect)
+        * @return Content
+        *
+        * @see Content::updateRedirect()
         */
        public function updateRedirect( Title $target ) {
                if ( !$this->isRedirect() ) {
@@ -238,14 +252,14 @@ class WikitextContent extends TextContent {
         * Returns true if this content is not a redirect, and this content's text
         * is countable according to the criteria defined by $wgArticleCountMethod.
         *
-        * @param bool $hasLinks if it is known whether this content contains
+        * @param bool $hasLinks If it is known whether this content contains
         *    links, provide this information here, to avoid redundant parsing to
         *    find out (default: null).
-        * @param $title Title: (default: null)
+        * @param Title $title Optional title, defaults to the title from the current main request.
         *
         * @internal param \IContextSource $context context for parsing if necessary
         *
-        * @return bool True if the content is countable
+        * @return bool
         */
        public function isCountable( $hasLinks = null, Title $title = null ) {
                global $wgArticleCountMethod;
@@ -279,6 +293,10 @@ class WikitextContent extends TextContent {
                return false;
        }
 
+       /**
+        * @param int $maxlength
+        * @return string
+        */
        public function getTextForSummary( $maxlength = 250 ) {
                $truncatedtext = parent::getTextForSummary( $maxlength );
 
@@ -294,20 +312,17 @@ class WikitextContent extends TextContent {
         * Returns a ParserOutput object resulting from parsing the content's text
         * using $wgParser.
         *
-        * @since    1.21
+        * @since 1.21
         *
-        * @param $title Title
-        * @param int $revId Revision to pass to the parser (default: null)
-        * @param $options ParserOptions (default: null)
+        * @param Title $title * @param int $revId Revision to pass to the parser (default: null)
+        * @param ParserOptions $options (default: null)
         * @param bool $generateHtml (default: false)
-        *
         * @internal param \IContextSource|null $context
-        * @return ParserOutput representing the HTML form of the text
+        *
+        * @return ParserOutput Representing the HTML form of the text
         */
-       public function getParserOutput( Title $title,
-               $revId = null,
-               ParserOptions $options = null, $generateHtml = true
-       ) {
+       public function getParserOutput( Title $title, $revId = null,
+               ParserOptions $options = null, $generateHtml = true ) {
                global $wgParser;
 
                if ( !$options ) {
@@ -334,6 +349,9 @@ class WikitextContent extends TextContent {
                return $po;
        }
 
+       /**
+        * @throws MWException
+        */
        protected function getHtml() {
                throw new MWException(
                        "getHtml() not implemented for wikitext. "
@@ -342,15 +360,16 @@ class WikitextContent extends TextContent {
        }
 
        /**
-        * @see  Content::matchMagicWord()
-        *
         * This implementation calls $word->match() on the this TextContent object's text.
         *
         * @param MagicWord $word
         *
-        * @return bool whether this Content object matches the given magic word.
+        * @return bool
+        *
+        * @see Content::matchMagicWord()
         */
        public function matchMagicWord( MagicWord $word ) {
                return $word->match( $this->getNativeData() );
        }
+
 }
index 1e8fd05..5ae3e25 100644 (file)
@@ -29,6 +29,7 @@
  * @ingroup Content
  */
 class WikitextContentHandler extends TextContentHandler {
+
        public function __construct( $modelId = CONTENT_MODEL_WIKITEXT ) {
                parent::__construct( $modelId, array( CONTENT_FORMAT_WIKITEXT ) );
        }
@@ -40,9 +41,9 @@ class WikitextContentHandler extends TextContentHandler {
        }
 
        /**
-        * @see ContentHandler::makeEmptyContent
+        * @return Content A new WikitextContent object with empty text.
         *
-        * @return Content
+        * @see ContentHandler::makeEmptyContent
         */
        public function makeEmptyContent() {
                return new WikitextContent( '' );
@@ -51,12 +52,12 @@ class WikitextContentHandler extends TextContentHandler {
        /**
         * Returns a WikitextContent object representing a redirect to the given destination page.
         *
-        * @see ContentHandler::makeRedirectContent
-        *
-        * @param Title $destination the page to redirect to.
-        * @param string $text text to include in the redirect, if possible.
+        * @param Title $destination The page to redirect to.
+        * @param string $text Text to include in the redirect, if possible.
         *
         * @return Content
+        *
+        * @see ContentHandler::makeRedirectContent
         */
        public function makeRedirectContent( Title $destination, $text = '' ) {
                $optionalColon = '';
@@ -84,9 +85,9 @@ class WikitextContentHandler extends TextContentHandler {
        /**
         * Returns true because wikitext supports redirects.
         *
-        * @see ContentHandler::supportsRedirects
+        * @return bool Always true.
         *
-        * @return boolean whether redirects are supported.
+        * @see ContentHandler::supportsRedirects
         */
        public function supportsRedirects() {
                return true;
@@ -95,7 +96,9 @@ class WikitextContentHandler extends TextContentHandler {
        /**
         * Returns true because wikitext supports sections.
         *
-        * @return boolean whether sections are supported.
+        * @return bool Always true.
+        *
+        * @see ContentHandler::supportsSections
         */
        public function supportsSections() {
                return true;
@@ -106,9 +109,13 @@ class WikitextContentHandler extends TextContentHandler {
         * ParserCache mechanism.
         *
         * @since 1.21
-        * @return bool
+        *
+        * @return bool Always true.
+        *
+        * @see ContentHandler::isParserCacheSupported
         */
        public function isParserCacheSupported() {
                return true;
        }
+
 }
index c5dc882..08e1885 100644 (file)
@@ -3,7 +3,7 @@
  * Helper class for making a copy of the database, mostly for unit testing.
  *
  * Copyright © 2010 Chad Horohoe <chad@anyonecanedit.org>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 21c868e..b0794fb 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+
 /**
  * @defgroup Database Database
  *
@@ -1096,7 +1097,6 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
                if ( false === $ret && $this->wasErrorReissuable() ) {
                        # Transaction is gone, like it or not
                        $hadTrx = $this->mTrxLevel; // possible lost transaction
-                       wfDebug( "Connection lost, reconnecting...\n" );
                        $this->mTrxLevel = 0;
                        wfDebug( "Connection lost, reconnecting...\n" );
 
@@ -1108,7 +1108,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
                                $elapsed = round( microtime( true ) - $wgRequestTime, 3 );
                                if ( $elapsed < 300 ) {
                                        # Not a database error to lose a transaction after a minute or two
-                                       wfLogDBError( "Connection lost and reconnected after {$elapsed}s, query: $sqlx\n" );
+                                       wfLogDBError( "Connection lost and reconnected after {$elapsed}s, query: $sqlx" );
                                }
                                if ( !$hadTrx ) {
                                        # Should be safe to silently retry
@@ -1152,7 +1152,7 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
                        $this->ignoreErrors( $ignore );
                } else {
                        $sql1line = mb_substr( str_replace( "\n", "\\n", $sql ), 0, 5 * 1024 );
-                       wfLogDBError( "$fname\t{$this->mServer}\t$errno\t$error\t$sql1line\n" );
+                       wfLogDBError( "$fname\t{$this->mServer}\t$errno\t$error\t$sql1line" );
                        wfDebug( "SQL ERROR: " . $error . "\n" );
                        throw new DBQueryError( $this, $error, $errno, $sql, $fname );
                }
@@ -1921,12 +1921,12 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
        }
 
        /**
-        * Make UPDATE options for the DatabaseBase::update function
+        * Make UPDATE options array for DatabaseBase::makeUpdateOptions
         *
-        * @param array $options The options passed to DatabaseBase::update
-        * @return string
+        * @param array $options
+        * @return array
         */
-       protected function makeUpdateOptions( $options ) {
+       protected function makeUpdateOptionsArray( $options ) {
                if ( !is_array( $options ) ) {
                        $options = array( $options );
                }
@@ -1941,6 +1941,18 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
                        $opts[] = 'IGNORE';
                }
 
+               return $opts;
+       }
+
+       /**
+        * Make UPDATE options for the DatabaseBase::update function
+        *
+        * @param array $options The options passed to DatabaseBase::update
+        * @return string
+        */
+       protected function makeUpdateOptions( $options ) {
+               $opts = $this->makeUpdateOptionsArray( $options );
+
                return implode( ' ', $opts );
        }
 
@@ -2423,11 +2435,12 @@ abstract class DatabaseBase implements IDatabase, DatabaseType {
                                }
 
                                $retJOIN[] = $tableClause;
-                       // Is there an INDEX clause for this table?
                        } elseif ( isset( $use_index[$alias] ) ) {
+                               // Is there an INDEX clause for this table?
                                $tableClause = $this->tableNameWithAlias( $table, $alias );
                                $tableClause .= ' ' . $this->useIndexClause(
-                                       implode( ',', (array)$use_index[$alias] ) );
+                                       implode( ',', (array)$use_index[$alias] )
+                               );
 
                                $ret[] = $tableClause;
                        } else {
index b4c7365..377aca1 100644 (file)
@@ -38,7 +38,16 @@ class DBError extends MWException {
                $this->db = $db;
                parent::__construct( $error );
        }
+}
 
+/**
+ * Base class for the more common types of database errors. These are known to occur
+ * frequently, so we try to give friendly error messages for them.
+ *
+ * @ingroup Database
+ * @since 1.23
+ */
+class DBExpectedError extends DBError {
        /**
         * @return string
         */
@@ -80,14 +89,14 @@ class DBError extends MWException {
         * @return string
         */
        protected function getHTMLContent() {
-               return '<p>' . nl2br( htmlspecialchars( $this->getMessage() ) ) . '</p>';
+               return '<p>' . nl2br( htmlspecialchars( $this->getTextContent() ) ) . '</p>';
        }
 }
 
 /**
  * @ingroup Database
  */
-class DBConnectionError extends DBError {
+class DBConnectionError extends DBExpectedError {
        /** @var string Error text */
        public $error;
 
@@ -313,7 +322,7 @@ EOT;
 /**
  * @ingroup Database
  */
-class DBQueryError extends DBError {
+class DBQueryError extends DBExpectedError {
        public $error, $errno, $sql, $fname;
 
        /**
index 163554b..50b7158 100644 (file)
@@ -471,7 +471,7 @@ class DatabaseMssql extends DatabaseBase {
                $this->mScrollableCursor = false;
                try {
                        parent::deleteJoin( $delTable, $joinTable, $delVar, $joinVar, $conds, $fname );
-               } catch( Exception $e ) {
+               } catch ( Exception $e ) {
                        $this->mScrollableCursor = true;
                        throw $e;
                }
@@ -482,7 +482,7 @@ class DatabaseMssql extends DatabaseBase {
                $this->mScrollableCursor = false;
                try {
                        parent::delete( $table, $conds, $fname );
-               } catch( Exception $e ) {
+               } catch ( Exception $e ) {
                        $this->mScrollableCursor = true;
                        throw $e;
                }
@@ -730,7 +730,7 @@ class DatabaseMssql extends DatabaseBase {
                                $insertOptions,
                                $selectOptions
                        );
-               } catch( Exception $e ) {
+               } catch ( Exception $e ) {
                        $this->mScrollableCursor = true;
                        throw $e;
                }
@@ -911,7 +911,7 @@ class DatabaseMssql extends DatabaseBase {
                        $first = $offset + 1;
                        $last = $offset + $limit;
                        $sub1 = 'sub_' . $this->mSubqueryId;
-                       $sub2 = 'sub_' . ($this->mSubqueryId + 1);
+                       $sub2 = 'sub_' . ( $this->mSubqueryId + 1 );
                        $this->mSubqueryId += 2;
                        if ( !$s1 ) {
                                // wat
@@ -1418,7 +1418,8 @@ class MssqlBlob extends Blob {
                }
 
                $ret = '0x';
-               for ( $i = 0; $i < strlen( $this->mData ); $i++ ) {
+               $dataLength = strlen( $this->mData );
+               for ( $i = 0; $i < $dataLength; $i++ ) {
                        $ret .= bin2hex( pack( 'C', ord( $this->mData[$i] ) ) );
                }
 
index 85be31c..3b70ae1 100644 (file)
@@ -93,7 +93,7 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
                        if ( !$error ) {
                                $error = $this->lastError();
                        }
-                       wfLogDBError( "Error connecting to {$this->mServer}: $error\n" );
+                       wfLogDBError( "Error connecting to {$this->mServer}: $error" );
                        wfDebug( "DB connection error\n" .
                                "Server: $server, User: $user, Password: " .
                                substr( $password, 0, 3 ) . "..., error: " . $error . "\n" );
@@ -108,7 +108,7 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
                        $success = $this->selectDB( $dbName );
                        wfRestoreWarnings();
                        if ( !$success ) {
-                               wfLogDBError( "Error selecting database $dbName on server {$this->mServer}\n" );
+                               wfLogDBError( "Error selecting database $dbName on server {$this->mServer}" );
                                wfDebug( "Error selecting database $dbName on server {$this->mServer} " .
                                        "from client host " . wfHostname() . "\n" );
 
@@ -804,14 +804,18 @@ abstract class DatabaseMysqlBase extends DatabaseBase {
         * @return string
         */
        public function getSoftwareLink() {
+               // MariaDB includes its name in its version string (sent when the connection is opened),
+               // and this is how MariaDB's version of the mysql command-line client identifies MariaDB
+               // servers (see the mariadb_connection() function in libmysql/libmysql.c).
                $version = $this->getServerVersion();
-               if ( strpos( $version, 'MariaDB' ) !== false ) {
+               if ( strpos( $version, 'MariaDB' ) !== false || strpos( $version, '-maria-' ) !== false ) {
                        return '[{{int:version-db-mariadb-url}} MariaDB]';
-               } elseif ( strpos( $version, 'percona' ) !== false ) {
-                       return '[{{int:version-db-percona-url}} Percona Server]';
-               } else {
-                       return '[{{int:version-db-mysql-url}} MySQL]';
                }
+
+               // Percona Server's version suffix is not very distinctive, and @@version_comment
+               // doesn't give the necessary info for source builds, so assume the server is MySQL.
+               // (Even Percona's version of mysql doesn't try to make the distinction.)
+               return '[{{int:version-db-mysql-url}} MySQL]';
        }
 
        /**
index 635909c..8c9b06c 100644 (file)
@@ -57,6 +57,17 @@ class DatabaseMysqli extends DatabaseMysqlBase {
                                . " have you compiled PHP with the --with-mysqli option?\n" );
                }
 
+               // Other than mysql_connect, mysqli_real_connect expects an explicit port
+               // parameter. So we need to parse the port out of $realServer
+               $port = null;
+               $hostAndPort = IP::splitHostAndPort( $realServer );
+               if ( $hostAndPort ) {
+                       $realServer = $hostAndPort[0];
+                       if ( $hostAndPort[1] ) {
+                               $port = $hostAndPort[1];
+                       }
+               }
+
                $connFlags = 0;
                if ( $this->mFlags & DBO_SSL ) {
                        $connFlags |= MYSQLI_CLIENT_SSL;
@@ -83,7 +94,7 @@ class DatabaseMysqli extends DatabaseMysqlBase {
                                usleep( 1000 );
                        }
                        if ( $mysqli->real_connect( $realServer, $this->mUser,
-                               $this->mPassword, $this->mDBname, null, null, $connFlags )
+                               $this->mPassword, $this->mDBname, $port, null, $connFlags )
                        ) {
                                return $mysqli;
                        }
index cad7caf..6e0490d 100644 (file)
@@ -794,7 +794,9 @@ class DatabaseOracle extends DatabaseBase {
                        // add sequence column to each list of columns, when not set
                        foreach ( $rows as &$row ) {
                                if ( !isset( $row[$sequenceData['column']] ) ) {
-                                       $row[$sequenceData['column']] = $this->addIdentifierQuotes('GET_SEQUENCE_VALUE(\'' . $sequenceData['sequence'] . '\')');
+                                       $row[$sequenceData['column']] =
+                                               $this->addIdentifierQuotes( 'GET_SEQUENCE_VALUE(\'' .
+                                                       $sequenceData['sequence'] . '\')' );
                                }
                        }
                }
@@ -1032,8 +1034,8 @@ class DatabaseOracle extends DatabaseBase {
                $table = strtoupper( $this->removeIdentifierQuotes( $table ) );
                $index = strtoupper( $index );
                $owner = strtoupper( $this->mDBname );
-               $SQL = "SELECT 1 FROM all_indexes WHERE owner='$owner' AND index_name='{$table}_{$index}'";
-               $res = $this->doQuery( $SQL );
+               $sql = "SELECT 1 FROM all_indexes WHERE owner='$owner' AND index_name='{$table}_{$index}'";
+               $res = $this->doQuery( $sql );
                if ( $res ) {
                        $count = $res->numRows();
                        $res->free();
@@ -1054,8 +1056,8 @@ class DatabaseOracle extends DatabaseBase {
                $table = $this->tableName( $table );
                $table = $this->addQuotes( strtoupper( $this->removeIdentifierQuotes( $table ) ) );
                $owner = $this->addQuotes( strtoupper( $this->mDBname ) );
-               $SQL = "SELECT 1 FROM all_tables WHERE owner=$owner AND table_name=$table";
-               $res = $this->doQuery( $SQL );
+               $sql = "SELECT 1 FROM all_tables WHERE owner=$owner AND table_name=$table";
+               $res = $this->doQuery( $sql );
                if ( $res && $res->numRows() > 0 ) {
                        $exists = true;
                } else {
index c8830d3..6aee528 100644 (file)
@@ -349,11 +349,11 @@ class DatabasePostgres extends DatabaseBase {
        }
 
        function hasConstraint( $name ) {
-               $SQL = "SELECT 1 FROM pg_catalog.pg_constraint c, pg_catalog.pg_namespace n " .
+               $sql = "SELECT 1 FROM pg_catalog.pg_constraint c, pg_catalog.pg_namespace n " .
                        "WHERE c.connamespace = n.oid AND conname = '" .
                        pg_escape_string( $this->mConn, $name ) . "' AND n.nspname = '" .
                        pg_escape_string( $this->mConn, $this->getCoreSchema() ) . "'";
-               $res = $this->doQuery( $SQL );
+               $res = $this->doQuery( $sql );
 
                return $this->numRows( $res );
        }
@@ -1360,10 +1360,10 @@ __INDEXATTR__;
                $table = $this->realTableName( $table, 'raw' );
                $etable = $this->addQuotes( $table );
                $eschema = $this->addQuotes( $schema );
-               $SQL = "SELECT 1 FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n "
+               $sql = "SELECT 1 FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n "
                        . "WHERE c.relnamespace = n.oid AND c.relname = $etable AND n.nspname = $eschema "
                        . "AND c.relkind IN ('" . implode( "','", $types ) . "')";
-               $res = $this->query( $SQL );
+               $res = $this->query( $sql );
                $count = $res ? $res->numRows() : 0;
 
                return (bool)$count;
@@ -1421,13 +1421,13 @@ SQL;
        }
 
        function constraintExists( $table, $constraint ) {
-               $SQL = sprintf( "SELECT 1 FROM information_schema.table_constraints " .
+               $sql = sprintf( "SELECT 1 FROM information_schema.table_constraints " .
                        "WHERE constraint_schema = %s AND table_name = %s AND constraint_name = %s",
                        $this->addQuotes( $this->getCoreSchema() ),
                        $this->addQuotes( $table ),
                        $this->addQuotes( $constraint )
                );
-               $res = $this->query( $SQL );
+               $res = $this->query( $sql );
                if ( !$res ) {
                        return null;
                }
index 0fa29a1..3313d25 100644 (file)
@@ -522,10 +522,11 @@ class DatabaseSqlite extends DatabaseBase {
         * @param array $options
         * @return string
         */
-       protected function makeUpdateOptions( $options ) {
+       protected function makeUpdateOptionsArray( $options ) {
+               $options = parent::makeUpdateOptionsArray( $options );
                $options = self::fixIgnore( $options );
 
-               return parent::makeUpdateOptions( $options );
+               return $options;
        }
 
        /**
index 5f880d6..a1703f0 100644 (file)
@@ -493,13 +493,6 @@ class LoadBalancer {
        public function reuseConnection( $conn ) {
                $serverIndex = $conn->getLBInfo( 'serverIndex' );
                $refCount = $conn->getLBInfo( 'foreignPoolRefCount' );
-               $dbName = $conn->getDBname();
-               $prefix = $conn->tablePrefix();
-               if ( strval( $prefix ) !== '' ) {
-                       $wiki = "$dbName-$prefix";
-               } else {
-                       $wiki = $dbName;
-               }
                if ( $serverIndex === null || $refCount === null ) {
                        wfDebug( __METHOD__ . ": this connection was not opened as a foreign connection\n" );
 
@@ -516,6 +509,14 @@ class LoadBalancer {
 
                        return;
                }
+
+               $dbName = $conn->getDBname();
+               $prefix = $conn->tablePrefix();
+               if ( strval( $prefix ) !== '' ) {
+                       $wiki = "$dbName-$prefix";
+               } else {
+                       $wiki = $dbName;
+               }
                if ( $this->mConns['foreignUsed'][$serverIndex][$wiki] !== $conn ) {
                        throw new MWException( __METHOD__ . ": connection not found, has " .
                                "the connection been freed already?" );
@@ -743,13 +744,13 @@ class LoadBalancer {
 
                if ( !is_object( $conn ) ) {
                        // No last connection, probably due to all servers being too busy
-                       wfLogDBError( "LB failure with no last connection. Connection error: {$this->mLastError}\n" );
+                       wfLogDBError( "LB failure with no last connection. Connection error: {$this->mLastError}" );
 
                        // If all servers were busy, mLastError will contain something sensible
                        throw new DBConnectionError( null, $this->mLastError );
                } else {
                        $server = $conn->getProperty( 'mServer' );
-                       wfLogDBError( "Connection error: {$this->mLastError} ({$server})\n" );
+                       wfLogDBError( "Connection error: {$this->mLastError} ({$server})" );
                        $conn->reportConnectionError( "{$this->mLastError} ({$server})" ); // throws DBConnectionError
                }
 
index 543ee18..c12b76a 100644 (file)
@@ -32,7 +32,8 @@ class ArrayDiffFormatter extends DiffFormatter {
 
        /**
         * @param Diff $diff A Diff object.
-        * @return array
+        *
+        * @return array[] List of associative arrays, each describing a difference.
         */
        public function format( $diff ) {
                $oldline = 1;
@@ -77,4 +78,5 @@ class ArrayDiffFormatter extends DiffFormatter {
 
                return $retval;
        }
+
 }
index 351a9dd..0e38d68 100644 (file)
  */
 abstract class DiffOp {
 
+       /**
+        * @var string
+        */
        public $type;
+
+       /**
+        * @var string[]
+        */
        public $orig;
+
+       /**
+        * @var string[]
+        */
        public $closing;
 
+       /**
+        * @return string
+        */
        public function getType() {
                return $this->type;
        }
 
+       /**
+        * @return string[]
+        */
        public function getOrig() {
                return $this->orig;
        }
 
+       /**
+        * @param int $i
+        * @return string|null
+        */
        public function getClosing( $i = null ) {
-               if( $i === null ) {
+               if ( $i === null ) {
                        return $this->closing;
                }
-               if( array_key_exists( $i, $this->closing ) ) {
+               if ( array_key_exists( $i, $this->closing ) ) {
                        return $this->closing[$i];
                }
                return null;
@@ -195,9 +216,10 @@ class DiffEngine {
        protected $lcs = 0;
 
        /**
-        * @param $from_lines
-        * @param $to_lines
-        * @return array
+        * @param string[] $from_lines
+        * @param string[] $to_lines
+        *
+        * @return DiffOp[]
         */
        public function diff( $from_lines, $to_lines ) {
                wfProfileIn( __METHOD__ );
@@ -256,8 +278,8 @@ class DiffEngine {
        }
 
        /**
-        * @param $from_lines
-        * @param $to_lines
+        * @param string[] $from_lines
+        * @param string[] $to_lines
         */
        private function diffLocal( $from_lines, $to_lines ) {
                global $wgExternalDiffEngine;
@@ -329,7 +351,9 @@ class DiffEngine {
 
        /**
         * Returns the whole line if it's small enough, or the MD5 hash otherwise
-        * @param $line string
+        *
+        * @param string $line
+        *
         * @return string
         */
        private function lineHash( $line ) {
@@ -356,12 +380,14 @@ class DiffEngine {
         * of the two files do not match, and likewise that the last lines do not
         * match.  The caller must trim matching lines from the beginning and end
         * of the portions it is going to specify.
-        * @param $xoff
-        * @param $xlim
-        * @param $yoff
-        * @param $ylim
-        * @param $nchunks
-        * @return array
+        *
+        * @param int $xoff
+        * @param int $xlim
+        * @param int $yoff
+        * @param int $ylim
+        * @param int $nchunks
+        *
+        * @return array List of two elements, integer and array[].
         */
        private function diag( $xoff, $xlim, $yoff, $ylim, $nchunks ) {
                $flip = false;
@@ -446,7 +472,8 @@ class DiffEngine {
        }
 
        /**
-        * @param $ypos
+        * @param int $ypos
+        *
         * @return int
         */
        private function lcsPos( $ypos ) {
@@ -488,10 +515,11 @@ class DiffEngine {
         *
         * Note that XLIM, YLIM are exclusive bounds.
         * All line numbers are origin-0 and discarded lines are not counted.
-        * @param $xoff
-        * @param $xlim
-        * @param $yoff
-        * @param $ylim
+        *
+        * @param int $xoff
+        * @param int $xlim
+        * @param int $yoff
+        * @param int $ylim
         */
        private function compareSeq( $xoff, $xlim, $yoff, $ylim ) {
                // Slide down the bottom initial diagonal.
@@ -688,9 +716,9 @@ class Diff {
         * Constructor.
         * Computes diff between sequences of strings.
         *
-        * @param $from_lines array An array of strings.
+        * @param string[] $from_lines An array of strings.
         *   Typically these are lines from a file.
-        * @param $to_lines array An array of strings.
+        * @param string[] $to_lines An array of strings.
         */
        public function __construct( $from_lines, $to_lines ) {
                $eng = new DiffEngine;
@@ -698,7 +726,7 @@ class Diff {
        }
 
        /**
-        * @return array|DiffOp[]
+        * @return DiffOp[]
         */
        public function getEdits() {
                return $this->edits;
@@ -711,6 +739,7 @@ class Diff {
         *
         *    $diff = new Diff($lines1, $lines2);
         *    $rev = $diff->reverse();
+        *
         * @return Object A Diff object representing the inverse of the
         *   original diff.
         */
@@ -764,7 +793,7 @@ class Diff {
         * This reconstructs the $from_lines parameter passed to the
         * constructor.
         *
-        * @return array The original sequence of strings.
+        * @return string[] The original sequence of strings.
         */
        public function orig() {
                $lines = array();
@@ -784,7 +813,7 @@ class Diff {
         * This reconstructs the $to_lines parameter passed to the
         * constructor.
         *
-        * @return array The sequence of strings.
+        * @return string[] The sequence of strings.
         */
        public function closing() {
                $lines = array();
@@ -814,18 +843,15 @@ class MappedDiff extends Diff {
         * case-insensitve diffs, or diffs which ignore
         * changes in white-space.
         *
-        * @param $from_lines array An array of strings.
+        * @param string[] $from_lines An array of strings.
         *   Typically these are lines from a file.
-        *
-        * @param $to_lines array An array of strings.
-        *
-        * @param $mapped_from_lines array This array should
+        * @param string[] $to_lines An array of strings.
+        * @param string[] $mapped_from_lines This array should
         *   have the same size number of elements as $from_lines.
         *   The elements in $mapped_from_lines and
         *   $mapped_to_lines are what is actually compared
         *   when computing the diff.
-        *
-        * @param $mapped_to_lines array This array should
+        * @param string[] $mapped_to_lines This array should
         *   have the same number of elements as $to_lines.
         */
        public function __construct( $from_lines, $to_lines,
@@ -875,7 +901,7 @@ class HWLDFWordAccumulator {
        private $tag = '';
 
        /**
-        * @param $new_tag
+        * @param string $new_tag
         */
        private function flushGroup( $new_tag ) {
                if ( $this->group !== '' ) {
@@ -894,7 +920,7 @@ class HWLDFWordAccumulator {
        }
 
        /**
-        * @param $new_tag
+        * @param string $new_tag
         */
        private function flushLine( $new_tag ) {
                $this->flushGroup( $new_tag );
@@ -908,8 +934,8 @@ class HWLDFWordAccumulator {
        }
 
        /**
-        * @param $words
-        * @param $tag string
+        * @param string[] $words
+        * @param string $tag
         */
        public function addWords( $words, $tag = '' ) {
                if ( $tag != $this->tag ) {
@@ -931,7 +957,7 @@ class HWLDFWordAccumulator {
        }
 
        /**
-        * @return array
+        * @return string[]
         */
        public function getLines() {
                $this->flushLine( '~done' );
@@ -949,8 +975,8 @@ class WordLevelDiff extends MappedDiff {
        const MAX_LINE_LENGTH = 10000;
 
        /**
-        * @param $orig_lines
-        * @param $closing_lines
+        * @param string[] $orig_lines
+        * @param string[] $closing_lines
         */
        public function __construct( $orig_lines, $closing_lines ) {
                wfProfileIn( __METHOD__ );
@@ -964,8 +990,9 @@ class WordLevelDiff extends MappedDiff {
        }
 
        /**
-        * @param $lines
-        * @return array
+        * @param string[] $lines
+        *
+        * @return array[]
         */
        private function split( $lines ) {
                wfProfileIn( __METHOD__ );
@@ -1005,7 +1032,7 @@ class WordLevelDiff extends MappedDiff {
        }
 
        /**
-        * @return array
+        * @return string[]
         */
        public function orig() {
                wfProfileIn( __METHOD__ );
@@ -1025,7 +1052,7 @@ class WordLevelDiff extends MappedDiff {
        }
 
        /**
-        * @return array
+        * @return string[]
         */
        public function closing() {
                wfProfileIn( __METHOD__ );
@@ -1043,4 +1070,5 @@ class WordLevelDiff extends MappedDiff {
 
                return $lines;
        }
+
 }
index d9e1c95..d8a9ba3 100644 (file)
@@ -34,6 +34,7 @@
  * @ingroup DifferenceEngine
  */
 abstract class DiffFormatter {
+
        /** @var int Number of leading context "lines" to preserve.
         *
         * This should be left at zero for this class, but subclasses
@@ -51,7 +52,8 @@ abstract class DiffFormatter {
        /**
         * Format a diff.
         *
-        * @param $diff Diff A Diff object.
+        * @param Diff $diff A Diff object.
+        *
         * @return string The formatted output.
         */
        public function format( $diff ) {
@@ -124,7 +126,8 @@ abstract class DiffFormatter {
         * @param int $ybeg
         * @param int $ylen
         * @param $edits
-        * @throws MWException
+        *
+        * @throws MWException If the edit type is not known.
         */
        protected function block( $xbeg, $xlen, $ybeg, $ylen, &$edits ) {
                wfProfileIn( __METHOD__ );
@@ -161,10 +164,11 @@ abstract class DiffFormatter {
        }
 
        /**
-        * @param $xbeg
-        * @param $xlen
-        * @param $ybeg
-        * @param $ylen
+        * @param int $xbeg
+        * @param int $xlen
+        * @param int $ybeg
+        * @param int $ylen
+        *
         * @return string
         */
        protected function blockHeader( $xbeg, $xlen, $ybeg, $ylen ) {
@@ -178,16 +182,28 @@ abstract class DiffFormatter {
                return $xbeg . ( $xlen ? ( $ylen ? 'c' : 'd' ) : 'a' ) . $ybeg;
        }
 
+       /**
+        * Called at the start of a block of connected edits.
+        * This default implementation writes the header and a newline to the output buffer.
+        *
+        * @param string $header
+        */
        protected function startBlock( $header ) {
                echo $header . "\n";
        }
 
+       /**
+        * Called at the end of a block of connected edits.
+        * This default implementation does nothing.
+        */
        protected function endBlock() {
        }
 
        /**
-        * @param $lines
-        * @param $prefix string
+        * Writes all (optionally prefixed) lines to the output buffer, separated by newlines.
+        *
+        * @param string[] $lines
+        * @param string $prefix
         */
        protected function lines( $lines, $prefix = ' ' ) {
                foreach ( $lines as $line ) {
@@ -196,33 +212,36 @@ abstract class DiffFormatter {
        }
 
        /**
-        * @param $lines
+        * @param string[] $lines
         */
        protected function context( $lines ) {
                $this->lines( $lines );
        }
 
        /**
-        * @param $lines
+        * @param string[] $lines
         */
        protected function added( $lines ) {
                $this->lines( $lines, '>' );
        }
 
        /**
-        * @param $lines
+        * @param string[] $lines
         */
        protected function deleted( $lines ) {
                $this->lines( $lines, '<' );
        }
 
        /**
-        * @param $orig
-        * @param $closing
+        * Writes the two sets of lines to the output buffer, separated by "---" and a newline.
+        *
+        * @param string[] $orig
+        * @param string[] $closing
         */
        protected function changed( $orig, $closing ) {
                $this->deleted( $orig );
                echo "---\n";
                $this->added( $closing );
        }
+
 }
index d6cf694..414b9f8 100644 (file)
@@ -34,6 +34,7 @@ define( 'MW_DIFF_VERSION', '1.11a' );
  * @ingroup DifferenceEngine
  */
 class DifferenceEngine extends ContextSource {
+
        /** @var int */
        public $mOldid;
 
@@ -97,14 +98,14 @@ class DifferenceEngine extends ContextSource {
 
        /**
         * Constructor
-        * @param $context IContextSource context to use, anything else will be ignored
-        * @param $old Integer old ID we want to show and diff with.
-        * @param $new String|int either revision ID or 'prev' or 'next'. Default: 0.
-        * @param $rcid Integer Deprecated, no longer used!
-        * @param $refreshCache boolean If set, refreshes the diff cache
-        * @param $unhide boolean If set, allow viewing deleted revs
+        * @param IContextSource $context context to use, anything else will be ignored
+        * @param int $old old ID we want to show and diff with.
+        * @param string|int $new either revision ID or 'prev' or 'next'. Default: 0.
+        * @param int $rcid Deprecated, no longer used!
+        * @param bool $refreshCache If set, refreshes the diff cache
+        * @param bool $unhide If set, allow viewing deleted revs
         */
-       function __construct( $context = null, $old = 0, $new = 0, $rcid = 0,
+       public function __construct( $context = null, $old = 0, $new = 0, $rcid = 0,
                $refreshCache = false, $unhide = false
        ) {
                if ( $context instanceof IContextSource ) {
@@ -120,16 +121,16 @@ class DifferenceEngine extends ContextSource {
        }
 
        /**
-        * @param $value bool
+        * @param bool $value
         */
-       function setReducedLineNumbers( $value = true ) {
+       public function setReducedLineNumbers( $value = true ) {
                $this->mReducedLineNumbers = $value;
        }
 
        /**
         * @return Language
         */
-       function getDiffLang() {
+       public function getDiffLang() {
                if ( $this->mDiffLang === null ) {
                        # Default language in which the diff text is written.
                        $this->mDiffLang = $this->getTitle()->getPageLanguage();
@@ -141,23 +142,23 @@ class DifferenceEngine extends ContextSource {
        /**
         * @return bool
         */
-       function wasCacheHit() {
+       public function wasCacheHit() {
                return $this->mCacheHit;
        }
 
        /**
         * @return int
         */
-       function getOldid() {
+       public function getOldid() {
                $this->loadRevisionIds();
 
                return $this->mOldid;
        }
 
        /**
-        * @return Bool|int
+        * @return bool|int
         */
-       function getNewid() {
+       public function getNewid() {
                $this->loadRevisionIds();
 
                return $this->mNewid;
@@ -167,10 +168,11 @@ class DifferenceEngine extends ContextSource {
         * Look up a special:Undelete link to the given deleted revision id,
         * as a workaround for being unable to load deleted diffs in currently.
         *
-        * @param int $id revision ID
+        * @param int $id Revision ID
+        *
         * @return mixed URL or false
         */
-       function deletedLink( $id ) {
+       public function deletedLink( $id ) {
                if ( $this->getUser()->isAllowed( 'deletedhistory' ) ) {
                        $dbr = wfGetDB( DB_SLAVE );
                        $row = $dbr->selectRow( 'archive', '*',
@@ -193,10 +195,11 @@ class DifferenceEngine extends ContextSource {
        /**
         * Build a wikitext link toward a deleted revision, if viewable.
         *
-        * @param int $id revision ID
-        * @return string wikitext fragment
+        * @param int $id Revision ID
+        *
+        * @return string Wikitext fragment
         */
-       function deletedIdMarker( $id ) {
+       public function deletedIdMarker( $id ) {
                $link = $this->deletedLink( $id );
                if ( $link ) {
                        return "[$link $id]";
@@ -225,7 +228,7 @@ class DifferenceEngine extends ContextSource {
                        $this->getLanguage()->listToText( $missing ), count( $missing ) );
        }
 
-       function showDiffPage( $diffOnly = false ) {
+       public function showDiffPage( $diffOnly = false ) {
                wfProfileIn( __METHOD__ );
 
                # Allow frames except in certain special cases
@@ -451,7 +454,7 @@ class DifferenceEngine extends ContextSource {
         * Side effect: When the patrol link is build, this method will call
         * OutputPage::preventClickjacking() and load mediawiki.page.patrol.ajax.
         *
-        * @return String
+        * @return string
         */
        protected function markPatrolledLink() {
                global $wgUseRCPatrol, $wgEnableAPI, $wgEnableWriteAPI;
@@ -518,8 +521,9 @@ class DifferenceEngine extends ContextSource {
        }
 
        /**
-        * @param $rev Revision
-        * @return String
+        * @param Revision $rev
+        *
+        * @return string
         */
        protected function revisionDeleteLink( $rev ) {
                $link = Linker::getRevDeleteLink( $this->getUser(), $rev, $rev->getTitle() );
@@ -533,7 +537,7 @@ class DifferenceEngine extends ContextSource {
        /**
         * Show the new revision of the page.
         */
-       function renderNewRevision() {
+       public function renderNewRevision() {
                wfProfileIn( __METHOD__ );
                $out = $this->getOutput();
                $revHeader = $this->getRevisionHeader( $this->mNewRev );
@@ -616,7 +620,7 @@ class DifferenceEngine extends ContextSource {
         *
         * @return bool
         */
-       function showDiff( $otitle, $ntitle, $notice = '' ) {
+       public function showDiff( $otitle, $ntitle, $notice = '' ) {
                $diff = $this->getDiff( $otitle, $ntitle, $notice );
                if ( $diff === false ) {
                        $this->showMissingRevision();
@@ -633,7 +637,7 @@ class DifferenceEngine extends ContextSource {
        /**
         * Add style sheets and supporting JS for diff display.
         */
-       function showDiffStyle() {
+       public function showDiffStyle() {
                $this->getOutput()->addModuleStyles( 'mediawiki.action.history.diff' );
        }
 
@@ -643,9 +647,10 @@ class DifferenceEngine extends ContextSource {
         * @param string|bool $otitle Header for old text or false
         * @param string|bool $ntitle Header for new text or false
         * @param string $notice HTML between diff header and body
+        *
         * @return mixed
         */
-       function getDiff( $otitle, $ntitle, $notice = '' ) {
+       public function getDiff( $otitle, $ntitle, $notice = '' ) {
                $body = $this->getDiffBody();
                if ( $body === false ) {
                        return false;
@@ -747,9 +752,10 @@ class DifferenceEngine extends ContextSource {
        /**
         * Returns the cache key for diff body text or content.
         *
-        * @return string
         * @since 1.23
+        *
         * @throws MWException
+        * @return string
         */
        protected function getDiffBodyCacheKey() {
                if ( !$this->mOldid || !$this->mNewid ) {
@@ -771,14 +777,15 @@ class DifferenceEngine extends ContextSource {
         * perhaps taking advantage of the content's native form. This is required for all content
         * models that are not text based.
         *
-        * @param $old Content: old content
-        * @param $new Content: new content
+        * @since 1.21
+        *
+        * @param Content $old Old content
+        * @param Content $new New content
         *
+        * @throws MWException If old or new content is not an instance of TextContent.
         * @return bool|string
-        * @since 1.21
-        * @throws MWException if $old or $new are not instances of TextContent.
         */
-       function generateContentDiffBody( Content $old, Content $new ) {
+       public function generateContentDiffBody( Content $old, Content $new ) {
                if ( !( $old instanceof TextContent ) ) {
                        throw new MWException( "Diff not implemented for " . get_class( $old ) . "; " .
                                "override generateContentDiffBody to fix this." );
@@ -798,12 +805,13 @@ class DifferenceEngine extends ContextSource {
        /**
         * Generate a diff, no caching
         *
-        * @param string $otext old text, must be already segmented
-        * @param string $ntext new text, must be already segmented
+        * @param string $otext Old text, must be already segmented
+        * @param string $ntext New text, must be already segmented
+        *
         * @return bool|string
         * @deprecated since 1.21, use generateContentDiffBody() instead!
         */
-       function generateDiffBody( $otext, $ntext ) {
+       public function generateDiffBody( $otext, $ntext ) {
                ContentHandler::deprecated( __METHOD__, "1.21" );
 
                return $this->generateTextDiffBody( $otext, $ntext );
@@ -816,9 +824,10 @@ class DifferenceEngine extends ContextSource {
         *
         * @param string $otext old text, must be already segmented
         * @param string $ntext new text, must be already segmented
+        *
         * @return bool|string
         */
-       function generateTextDiffBody( $otext, $ntext ) {
+       public function generateTextDiffBody( $otext, $ntext ) {
                global $wgExternalDiffEngine, $wgContLang;
 
                wfProfileIn( __METHOD__ );
@@ -897,7 +906,7 @@ class DifferenceEngine extends ContextSource {
         * Generate a debug comment indicating diff generating time,
         * server node, and generator backend.
         *
-        * @param String $generator : What diff engine was used
+        * @param string $generator : What diff engine was used
         *
         * @return string
         */
@@ -920,11 +929,11 @@ class DifferenceEngine extends ContextSource {
        /**
         * Replace line numbers with the text in the user's language
         *
-        * @param String $text
+        * @param string $text
         *
         * @return mixed
         */
-       function localiseLineNumbers( $text ) {
+       public function localiseLineNumbers( $text ) {
                return preg_replace_callback(
                        '/<!--LINE (\d+)-->/',
                        array( &$this, 'localiseLineNumbersCb' ),
@@ -932,7 +941,7 @@ class DifferenceEngine extends ContextSource {
                );
        }
 
-       function localiseLineNumbersCb( $matches ) {
+       public function localiseLineNumbersCb( $matches ) {
                if ( $matches[1] === '1' && $this->mReducedLineNumbers ) {
                        return '';
                }
@@ -942,9 +951,10 @@ class DifferenceEngine extends ContextSource {
 
        /**
         * If there are revisions between the ones being compared, return a note saying so.
+        *
         * @return string
         */
-       function getMultiNotice() {
+       public function getMultiNotice() {
                if ( !is_object( $this->mOldRev ) || !is_object( $this->mNewRev ) ) {
                        return '';
                } elseif ( !$this->mOldPage->equals( $this->mNewPage ) ) {
@@ -978,9 +988,11 @@ class DifferenceEngine extends ContextSource {
 
        /**
         * Get a notice about how many intermediate edits and users there are
-        * @param $numEdits int
-        * @param $numUsers int
-        * @param $limit int
+        *
+        * @param int $numEdits
+        * @param int $numUsers
+        * @param int $limit
+        *
         * @return string
         */
        public static function intermediateEditsMsg( $numEdits, $numUsers, $limit ) {
@@ -999,10 +1011,11 @@ class DifferenceEngine extends ContextSource {
        /**
         * Get a header for a specified revision.
         *
-        * @param $rev Revision
+        * @param Revision $rev
         * @param string $complete 'complete' to get the header wrapped depending
         *        the visibility of the revision and a link to edit the page.
-        * @return String HTML fragment
+        *
+        * @return string HTML fragment
         */
        protected function getRevisionHeader( Revision $rev, $complete = '' ) {
                $lang = $this->getLanguage();
@@ -1064,7 +1077,7 @@ class DifferenceEngine extends ContextSource {
         *
         * @return string
         */
-       function addHeader( $diff, $otitle, $ntitle, $multi = '', $notice = '' ) {
+       public function addHeader( $diff, $otitle, $ntitle, $multi = '', $notice = '' ) {
                // shared.css sets diff in interface language/dir, but the actual content
                // is often in a different language, mostly the page content language/dir
                $tableClass = 'diff diff-contentalign-' . htmlspecialchars( $this->getDiffLang()->alignStart() );
@@ -1113,7 +1126,7 @@ class DifferenceEngine extends ContextSource {
         * Use specified text instead of loading from the database
         * @deprecated since 1.21, use setContent() instead.
         */
-       function setText( $oldText, $newText ) {
+       public function setText( $oldText, $newText ) {
                ContentHandler::deprecated( __METHOD__, "1.21" );
 
                $oldContent = ContentHandler::makeContent( $oldText, $this->getTitle() );
@@ -1126,7 +1139,7 @@ class DifferenceEngine extends ContextSource {
         * Use specified text instead of loading from the database
         * @since 1.21
         */
-       function setContent( Content $oldContent, Content $newContent ) {
+       public function setContent( Content $oldContent, Content $newContent ) {
                $this->mOldContent = $oldContent;
                $this->mNewContent = $newContent;
 
@@ -1139,7 +1152,7 @@ class DifferenceEngine extends ContextSource {
         * (Defaults to page content language).
         * @since 1.19
         */
-       function setTextLanguage( $lang ) {
+       public function setTextLanguage( $lang ) {
                $this->mDiffLang = wfGetLangObj( $lang );
        }
 
@@ -1149,7 +1162,8 @@ class DifferenceEngine extends ContextSource {
         *
         * @param int $old Revision id, e.g. from URL parameter 'oldid'
         * @param int|string $new Revision id or strings 'next' or 'prev', e.g. from URL parameter 'diff'
-        * @return array Array of two revision ids, older first, later second.
+        *
+        * @return int[] List of two revision ids, older first, later second.
         *     Zero signifies invalid argument passed.
         *     false signifies that there is no previous/next revision ($old is the oldest/newest one).
         */
@@ -1208,7 +1222,7 @@ class DifferenceEngine extends ContextSource {
         *
         * @return bool
         */
-       function loadRevisionData() {
+       public function loadRevisionData() {
                if ( $this->mRevisionsLoaded ) {
                        return true;
                }
@@ -1288,7 +1302,7 @@ class DifferenceEngine extends ContextSource {
         *
         * @return bool
         */
-       function loadText() {
+       public function loadText() {
                if ( $this->mTextLoaded == 2 ) {
                        return true;
                }
@@ -1322,7 +1336,7 @@ class DifferenceEngine extends ContextSource {
         *
         * @return bool
         */
-       function loadNewText() {
+       public function loadNewText() {
                if ( $this->mTextLoaded >= 1 ) {
                        return true;
                }
@@ -1337,4 +1351,5 @@ class DifferenceEngine extends ContextSource {
 
                return true;
        }
+
 }
index 5f28627..ac8f758 100644 (file)
@@ -31,6 +31,7 @@
  * @ingroup DifferenceEngine
  */
 class TableDiffFormatter extends DiffFormatter {
+
        function __construct() {
                $this->leadingContextLines = 2;
                $this->trailingContextLines = 2;
@@ -38,7 +39,8 @@ class TableDiffFormatter extends DiffFormatter {
 
        /**
         * @static
-        * @param $msg
+        * @param string $msg
+        *
         * @return mixed
         */
        public static function escapeWhiteSpace( $msg ) {
@@ -50,10 +52,11 @@ class TableDiffFormatter extends DiffFormatter {
        }
 
        /**
-        * @param $xbeg
-        * @param $xlen
-        * @param $ybeg
-        * @param $ylen
+        * @param int $xbeg
+        * @param int $xlen
+        * @param int $ybeg
+        * @param int $ylen
+        *
         * @return string
         */
        protected function blockHeader( $xbeg, $xlen, $ybeg, $ylen ) {
@@ -64,7 +67,9 @@ class TableDiffFormatter extends DiffFormatter {
        }
 
        /**
-        * @param $header
+        * Writes the header to the output buffer.
+        *
+        * @param string $header
         */
        protected function startBlock( $header ) {
                echo $header;
@@ -73,12 +78,19 @@ class TableDiffFormatter extends DiffFormatter {
        protected function endBlock() {
        }
 
+       /**
+        * @param string[] $lines
+        * @param string $prefix
+        * @param string $color
+        */
        protected function lines( $lines, $prefix = ' ', $color = 'white' ) {
        }
 
        /**
         * HTML-escape parameter before calling this
-        * @param $line
+        *
+        * @param string $line
+        *
         * @return string
         */
        protected function addedLine( $line ) {
@@ -87,7 +99,9 @@ class TableDiffFormatter extends DiffFormatter {
 
        /**
         * HTML-escape parameter before calling this
-        * @param $line
+        *
+        * @param string $line
+        *
         * @return string
         */
        protected function deletedLine( $line ) {
@@ -96,7 +110,9 @@ class TableDiffFormatter extends DiffFormatter {
 
        /**
         * HTML-escape parameter before calling this
-        * @param $line
+        *
+        * @param string $line
+        *
         * @return string
         */
        protected function contextLine( $line ) {
@@ -104,9 +120,10 @@ class TableDiffFormatter extends DiffFormatter {
        }
 
        /**
-        * @param $marker
-        * @param $class
-        * @param $line
+        * @param string $marker
+        * @param string $class Unused
+        * @param string $line
+        *
         * @return string
         */
        protected function wrapLine( $marker, $class, $line ) {
@@ -126,7 +143,9 @@ class TableDiffFormatter extends DiffFormatter {
        }
 
        /**
-        * @param $lines array
+        * Writes all lines to the output buffer, each enclosed in <tr>.
+        *
+        * @param string[] $lines
         */
        protected function added( $lines ) {
                foreach ( $lines as $line ) {
@@ -137,7 +156,9 @@ class TableDiffFormatter extends DiffFormatter {
        }
 
        /**
-        * @param $lines
+        * Writes all lines to the output buffer, each enclosed in <tr>.
+        *
+        * @param string[] $lines
         */
        protected function deleted( $lines ) {
                foreach ( $lines as $line ) {
@@ -148,7 +169,9 @@ class TableDiffFormatter extends DiffFormatter {
        }
 
        /**
-        * @param $lines
+        * Writes all lines to the output buffer, each enclosed in <tr>.
+        *
+        * @param string[] $lines
         */
        protected function context( $lines ) {
                foreach ( $lines as $line ) {
@@ -159,8 +182,10 @@ class TableDiffFormatter extends DiffFormatter {
        }
 
        /**
-        * @param $orig
-        * @param $closing
+        * Writes the two sets of lines to the output buffer, each enclosed in <tr>.
+        *
+        * @param string[] $orig
+        * @param string[] $closing
         */
        protected function changed( $orig, $closing ) {
                wfProfileIn( __METHOD__ );
@@ -183,4 +208,5 @@ class TableDiffFormatter extends DiffFormatter {
                }
                wfProfileOut( __METHOD__ );
        }
+
 }
index 0a86ccc..32a7605 100644 (file)
@@ -29,6 +29,7 @@
  * @ingroup DifferenceEngine
  */
 class UnifiedDiffFormatter extends DiffFormatter {
+
        /** @var int */
        protected $leadingContextLines = 2;
 
@@ -36,22 +37,22 @@ class UnifiedDiffFormatter extends DiffFormatter {
        protected $trailingContextLines = 2;
 
        /**
-        * @param $lines
+        * @param string[] $lines
         */
        protected function added( $lines ) {
                $this->lines( $lines, '+' );
        }
 
        /**
-        * @param $lines
+        * @param string[] $lines
         */
        protected function deleted( $lines ) {
                $this->lines( $lines, '-' );
        }
 
        /**
-        * @param $orig
-        * @param $closing
+        * @param string[] $orig
+        * @param string[] $closing
         */
        protected function changed( $orig, $closing ) {
                $this->deleted( $orig );
@@ -59,13 +60,15 @@ class UnifiedDiffFormatter extends DiffFormatter {
        }
 
        /**
-        * @param $xbeg
-        * @param $xlen
-        * @param $ybeg
-        * @param $ylen
+        * @param int $xbeg
+        * @param int $xlen
+        * @param int $ybeg
+        * @param int $ylen
+        *
         * @return string
         */
        protected function blockHeader( $xbeg, $xlen, $ybeg, $ylen ) {
                return "@@ -$xbeg,$xlen +$ybeg,$ylen @@";
        }
+
 }
index 7c019b0..7a0f740 100644 (file)
@@ -580,6 +580,7 @@ class WikiDiff3 {
 
                return $this->length;
        }
+
 }
 
 /**
@@ -589,6 +590,7 @@ class WikiDiff3 {
  * @ingroup DifferenceEngine
  */
 class RangeDifference {
+
        /** @var int */
        public $leftstart;
 
@@ -615,4 +617,5 @@ class RangeDifference {
                $this->rightend = $rightend;
                $this->rightlength = $rightend - $rightstart;
        }
+
 }
index f344938..797d406 100644 (file)
@@ -117,7 +117,7 @@ class MWException extends Exception {
                $args = array_slice( func_get_args(), 2 );
 
                if ( $this->useMessageCache() ) {
-                       return wfMessage( $key, $args )->plain();
+                       return wfMessage( $key, $args )->text();
                } else {
                        return wfMsgReplaceArgs( $fallback, $args );
                }
index 16300af..2fd1bf6 100644 (file)
@@ -648,7 +648,8 @@ abstract class FileBackendStore extends FileBackend {
                $stat = $this->doGetFileStat( $params );
                wfProfileOut( __METHOD__ . '-miss-' . $this->name );
                if ( is_array( $stat ) ) { // file exists
-                       $stat['latest'] = $latest;
+                       // Strongly consistent backends can automatically set "latest"
+                       $stat['latest'] = isset( $stat['latest'] ) ? $stat['latest'] : $latest;
                        $this->cheapCache->set( $path, 'stat', $stat );
                        $this->setFileCache( $path, $stat ); // update persistent cache
                        if ( isset( $stat['sha1'] ) ) { // some backends store SHA-1 as metadata
@@ -1295,7 +1296,8 @@ abstract class FileBackendStore extends FileBackend {
                                continue; // this shouldn't happen
                        }
                        if ( is_array( $stat ) ) { // file exists
-                               $stat['latest'] = $latest;
+                               // Strongly consistent backends can automatically set "latest"
+                               $stat['latest'] = isset( $stat['latest'] ) ? $stat['latest'] : $latest;
                                $this->cheapCache->set( $path, 'stat', $stat );
                                $this->setFileCache( $path, $stat ); // update persistent cache
                                if ( isset( $stat['sha1'] ) ) { // some backends store SHA-1 as metadata
@@ -1664,7 +1666,22 @@ abstract class FileBackendStore extends FileBackend {
                }
                $age = time() - wfTimestamp( TS_UNIX, $val['mtime'] );
                $ttl = min( 7 * 86400, max( 300, floor( .1 * $age ) ) );
-               $this->memCache->add( $this->fileCacheKey( $path ), $val, $ttl );
+               $key = $this->fileCacheKey( $path );
+               // Set the cache unless it is currently salted with the value "PURGED".
+               // Using add() handles this except it also is a no-op in that case where
+               // the current value is not "latest" but $val is, so use CAS in that case.
+               if ( !$this->memCache->add( $key, $val, $ttl ) && !empty( $val['latest'] ) ) {
+                       $this->memCache->merge(
+                               $key,
+                               function( BagOStuff $cache, $key, $cValue ) use ( $val ) {
+                                       return ( is_array( $cValue ) && empty( $cValue['latest'] ) )
+                                               ? $val // update the stat cache with the lastest info
+                                               : false; // do nothing (cache is salted or some error happened)
+                               },
+                               $ttl,
+                               1
+                       );
+               }
        }
 
        /**
index a5c835e..174f9f3 100644 (file)
@@ -72,6 +72,9 @@ class SwiftFileBackend extends FileBackendStore {
        /** @var int UNIX timestamp */
        protected $authErrorTimestamp = null;
 
+       /** @var bool Whether the server is an Ceph RGW */
+       protected $isRGW = false;
+
        /**
         * @see FileBackendStore::__construct()
         * Additional $config params include:
@@ -617,8 +620,9 @@ class SwiftFileBackend extends FileBackendStore {
        }
 
        protected function doGetFileStat( array $params ) {
-               $params['concurrency'] = 1;
-               $stats = $this->doGetFileStatMulti( array( 'srcs' => array( $params['src'] ) ) + $params );
+               $params = array( 'srcs' => array( $params['src'] ), 'concurrency' => 1 ) + $params;
+               unset( $params['src'] );
+               $stats = $this->doGetFileStatMulti( $params );
 
                return reset( $stats );
        }
@@ -1271,7 +1275,7 @@ class SwiftFileBackend extends FileBackendStore {
                                return null;
                        }
 
-                       wfProfileIn( __METHOD__. "-{$this->name}-miss" );
+                       wfProfileIn( __METHOD__ . "-{$this->name}-miss" );
                        list( $rcode, $rdesc, $rhdrs, $rbody, $rerr ) = $this->http->run( array(
                                'method' => 'HEAD',
                                'url' => $this->storageUrl( $auth, $container ),
@@ -1517,6 +1521,9 @@ class SwiftFileBackend extends FileBackendStore {
                                        'md5'   => ctype_xdigit( $rhdrs['etag'] ) ? $rhdrs['etag'] : null,
                                        'xattr' => array( 'metadata' => $metadata, 'headers' => $headers )
                                );
+                               if ( $this->isRGW ) {
+                                       $stat['latest'] = true; // strong consistency
+                               }
                        } elseif ( $rcode === 404 ) {
                                $stat = false;
                        } else {
@@ -1581,6 +1588,10 @@ class SwiftFileBackend extends FileBackendStore {
                                        return null;
                                }
                        }
+                       // Ceph RGW does not use <account> in URLs (OpenStack Swift uses "/v1/<account>")
+                       if ( substr( $this->authCreds['storage_url'], -3 ) === '/v1' ) {
+                               $this->isRGW = true; // take advantage of strong consistency
+                       }
                }
 
                return $this->authCreds;
index 534d7f2..888af37 100644 (file)
@@ -966,11 +966,13 @@ class FileRepo {
         *
         * @param string $src Source file system path, storage path, or virtual URL
         * @param string $dst Virtual URL or storage path
-        * @param string|null $disposition Content-Disposition if given and supported
+        * @param Array|string|null $options An array consisting of a key named headers
+        *   listing extra headers. If a string, taken as content-disposition header.
+        *   (Support for array of options new in 1.23)
         * @return FileRepoStatus
         */
-       final public function quickImport( $src, $dst, $disposition = null ) {
-               return $this->quickImportBatch( array( array( $src, $dst, $disposition ) ) );
+       final public function quickImport( $src, $dst, $options = null ) {
+               return $this->quickImportBatch( array( array( $src, $dst, $options ) ) );
        }
 
        /**
@@ -1007,7 +1009,7 @@ class FileRepo {
         * This is intended for copying generated thumbnails into the repo.
         *
         * All path parameters may be a file system path, storage path, or virtual URL.
-        * When "dispositions" are given they are used as Content-Disposition if supported.
+        * When "headers" are given they are used as HTTP headers if supported.
         *
         * @param array $triples List of (source path, destination path, disposition)
         * @return FileRepoStatus
@@ -1019,11 +1021,20 @@ class FileRepo {
                        list( $src, $dst ) = $triple;
                        $src = $this->resolveToStoragePath( $src );
                        $dst = $this->resolveToStoragePath( $dst );
+
+                       if ( !isset( $triple[2] ) ) {
+                               $headers = array();
+                       } elseif ( is_string( $triple[2] ) ) {
+                               // back-compat
+                               $headers = array( 'Content-Disposition' => $triple[2] );
+                       } elseif ( is_array( $triple[2] ) && isset( $triple[2]['headers'] ) ) {
+                               $headers = $triple[2]['headers'];
+                       }
                        $operations[] = array(
                                'op' => FileBackend::isStoragePath( $src ) ? 'copy' : 'store',
                                'src' => $src,
                                'dst' => $dst,
-                               'disposition' => isset( $triple[2] ) ? $triple[2] : null
+                               'headers' => $headers
                        );
                        $status->merge( $this->initDirectory( dirname( $dst ) ) );
                }
index c7b257a..cfa26b0 100644 (file)
@@ -903,12 +903,13 @@ class LocalFile extends File {
 
                // Get a list of old thumbnails and URLs
                $files = $this->getThumbnails( $archiveName );
-               $dir = array_shift( $files );
-               $this->purgeThumbList( $dir, $files );
 
                // Purge any custom thumbnail caches
                wfRunHooks( 'LocalFilePurgeThumbnails', array( $this, $archiveName ) );
 
+               $dir = array_shift( $files );
+               $this->purgeThumbList( $dir, $files );
+
                // Purge the squid
                if ( $wgUseSquid ) {
                        $urls = array();
@@ -947,12 +948,12 @@ class LocalFile extends File {
                        }
                }
 
-               $dir = array_shift( $files );
-               $this->purgeThumbList( $dir, $files );
-
                // Purge any custom thumbnail caches
                wfRunHooks( 'LocalFilePurgeThumbnails', array( $this, false ) );
 
+               $dir = array_shift( $files );
+               $this->purgeThumbList( $dir, $files );
+
                // Purge the squid
                if ( $wgUseSquid ) {
                        SquidUpdate::purge( $urls );
index 3e2a09e..21505a8 100644 (file)
@@ -36,8 +36,8 @@
  * the HTML for the input field to be placed in the table.
  *
  * You can find extensive documentation on the www.mediawiki.org wiki:
- *  - http://www.mediawiki.org/wiki/HTMLForm
- *  - http://www.mediawiki.org/wiki/HTMLForm/tutorial
+ *  - https://www.mediawiki.org/wiki/HTMLForm
+ *  - https://www.mediawiki.org/wiki/HTMLForm/tutorial
  *
  * The constructor input is an associative array of $fieldname => $info,
  * where $info is an Associative Array with any of the following:
@@ -118,10 +118,11 @@ class HTMLForm extends ContextSource {
                'edittools' => 'HTMLEditTools',
                'checkmatrix' => 'HTMLCheckMatrix',
                // HTMLTextField will output the correct type="" attribute automagically.
-               // There are about four zillion other HTML5 input types, like url, but
+               // There are about four zillion other HTML5 input types, like range, but
                // we don't use those at the moment, so no point in adding all of them.
                'email' => 'HTMLTextField',
                'password' => 'HTMLTextField',
+               'url' => 'HTMLTextField',
        );
 
        public $mFieldData;
index 2944c24..3cf3188 100644 (file)
@@ -28,6 +28,7 @@ class HTMLMultiSelectField extends HTMLFormField implements HTMLNestedFilterable
        }
 
        function getInputHTML( $value ) {
+               $value = HTMLFormField::forceToStringRecursive( $value );
                $html = $this->formatOptions( $this->getOptions(), $value );
 
                return $html;
@@ -103,11 +104,12 @@ class HTMLMultiSelectField extends HTMLFormField implements HTMLNestedFilterable
        }
 
        function filterDataForSubmit( $data ) {
+               $data = HTMLFormField::forceToStringRecursive( $data );
                $options = HTMLFormField::flattenOptions( $this->getOptions() );
 
                $res = array();
                foreach ( $options as $opt ) {
-                       $res["$opt"] = in_array( $opt, $data );
+                       $res["$opt"] = in_array( $opt, $data, true );
                }
 
                return $res;
index aa0ea5d..c52f0a8 100644 (file)
@@ -17,7 +17,7 @@ class HTMLRadioField extends HTMLFormField {
 
                $validOptions = HTMLFormField::flattenOptions( $this->getOptions() );
 
-               if ( in_array( $value, $validOptions ) ) {
+               if ( in_array( strval( $value ), $validOptions, true ) ) {
                        return true;
                } else {
                        return $this->msg( 'htmlform-select-badoption' )->parse();
@@ -33,7 +33,7 @@ class HTMLRadioField extends HTMLFormField {
         * @return String
         */
        function getInputHTML( $value ) {
-               $html = $this->formatOptions( $this->getOptions(), $value );
+               $html = $this->formatOptions( $this->getOptions(), strval( $value ) );
 
                return $html;
        }
@@ -51,7 +51,7 @@ class HTMLRadioField extends HTMLFormField {
                                $html .= $this->formatOptions( $info, $value );
                        } else {
                                $id = Sanitizer::escapeId( $this->mID . "-$info" );
-                               $radio = Xml::radio( $this->mName, $info, $info == $value, $attribs + array( 'id' => $id ) );
+                               $radio = Xml::radio( $this->mName, $info, $info === $value, $attribs + array( 'id' => $id ) );
                                $radio .= '&#160;' . call_user_func( $elementFunc, 'label', array( 'for' => $id ), $label );
 
                                $html .= ' ' . Html::rawElement(
index 2e91a23..564927f 100644 (file)
@@ -72,7 +72,7 @@ class HTMLSelectAndOtherField extends HTMLSelectField {
 
                        if ( $list == 'other' ) {
                                $final = $text;
-                       } elseif ( !in_array( $list, $this->mFlatOptions ) ) {
+                       } elseif ( !in_array( $list, $this->mFlatOptions, true ) ) {
                                # User has spoofed the select form to give an option which wasn't
                                # in the original offer.  Sulk...
                                $final = $text;
index 0437480..c32b445 100644 (file)
@@ -13,7 +13,7 @@ class HTMLSelectField extends HTMLFormField {
 
                $validOptions = HTMLFormField::flattenOptions( $this->getOptions() );
 
-               if ( in_array( $value, $validOptions ) ) {
+               if ( in_array( strval( $value ), $validOptions, true ) ) {
                        return true;
                } else {
                        return $this->msg( 'htmlform-select-badoption' )->parse();
index 045b8df..e8bcb5b 100644 (file)
@@ -21,7 +21,10 @@ class HTMLSelectOrOtherField extends HTMLTextField {
                $valInSelect = false;
 
                if ( $value !== false ) {
-                       $valInSelect = in_array( $value, HTMLFormField::flattenOptions( $this->getOptions() ) );
+                       $value = strval( $value );
+                       $valInSelect = in_array(
+                               $value, HTMLFormField::flattenOptions( $this->getOptions() ), true
+                       );
                }
 
                $selected = $valInSelect ? $value : 'other';
@@ -67,7 +70,7 @@ class HTMLSelectOrOtherField extends HTMLTextField {
                if ( $request->getCheck( $this->mName ) ) {
                        $val = $request->getText( $this->mName );
 
-                       if ( $val == 'other' ) {
+                       if ( $val === 'other' ) {
                                $val = $request->getText( $this->mName . '-other' );
                        }
 
index 57f0a72..e584d88 100644 (file)
@@ -43,9 +43,6 @@ class HTMLTextField extends HTMLFormField {
                # is essentially just a clone of this one.
                if ( isset( $this->mParams['type'] ) ) {
                        switch ( $this->mParams['type'] ) {
-                               case 'email':
-                                       $attribs['type'] = 'email';
-                                       break;
                                case 'int':
                                        $attribs['type'] = 'number';
                                        break;
@@ -54,8 +51,10 @@ class HTMLTextField extends HTMLFormField {
                                        $attribs['step'] = 'any';
                                        break;
                                # Pass through
+                               case 'email':
                                case 'password':
                                case 'file':
+                               case 'url':
                                        $attribs['type'] = $this->mParams['type'];
                                        break;
                        }
index 6d3819c..3250ff8 100644 (file)
@@ -62,7 +62,7 @@ class InstallDocFormatter {
        }
 
        protected function replaceConfigLinks( $matches ) {
-               return '<span class="config-plainlink">[http://www.mediawiki.org/wiki/Manual:' .
+               return '<span class="config-plainlink">[https://www.mediawiki.org/wiki/Manual:' .
                        $matches[1] . ' ' . $matches[1] . ']</span>';
        }
 }
diff --git a/includes/installer/Installer.i18n.php b/includes/installer/Installer.i18n.php
deleted file mode 100644 (file)
index 24bc456..0000000
+++ /dev/null
@@ -1,21570 +0,0 @@
-<?php
-/**
- * Internationalization file for the install/upgrade process. None of the
- * messages used here are loaded during normal operations, only during
- * install and upgrade. So you should not put normal messages here.
- *
- * @file
- * @ingroup Deployment
- */
-
-$messages = array();
-
-/** English */
-$messages['en'] = array(
-       'config-desc'                     => 'The installer for MediaWiki',
-       'config-title'                    => 'MediaWiki $1 installation',
-       'config-information'              => 'Information',
-       'config-localsettings-upgrade'    => "A <code>LocalSettings.php</code> file has been detected.
-To upgrade this installation, please enter the value of <code>\$wgUpgradeKey</code> in the box below.
-You will find it in <code>LocalSettings.php</code>.",
-       'config-localsettings-cli-upgrade'    => 'A <code>LocalSettings.php</code> file has been detected.
-To upgrade this installation, please run <code>update.php</code> instead',
-       'config-localsettings-key'        => 'Upgrade key:',
-       'config-localsettings-badkey'     => 'The key you provided is incorrect.',
-       'config-upgrade-key-missing'      => 'An existing installation of MediaWiki has been detected.
-To upgrade this installation, please put the following line at the bottom of your <code>LocalSettings.php</code>:
-
-$1',
-       'config-localsettings-incomplete' => 'The existing <code>LocalSettings.php</code> appears to be incomplete.
-The $1 variable is not set.
-Please change <code>LocalSettings.php</code> so that this variable is set, and click "{{int:Config-continue}}".',
-       'config-localsettings-connection-error' => 'An error was encountered when connecting to the database using the settings specified in <code>LocalSettings.php</code>. Please fix these settings and try again.
-
-$1',
-       'config-session-error'            => 'Error starting session: $1',
-       'config-session-expired'          => 'Your session data seems to have expired.
-Sessions are configured for a lifetime of $1.
-You can increase this by setting <code>session.gc_maxlifetime</code> in php.ini.
-Restart the installation process.',
-       'config-no-session'               => 'Your session data was lost!
-Check your php.ini and make sure <code>session.save_path</code> is set to an appropriate directory.',
-       'config-your-language'            => 'Your language:',
-       'config-your-language-help'       => 'Select a language to use during the installation process.',
-       'config-wiki-language'            => 'Wiki language:',
-       'config-wiki-language-help'       => 'Select the language that the wiki will predominantly be written in.',
-       'config-back'                     => '← Back',
-       'config-continue'                 => 'Continue →',
-       'config-page-language'            => 'Language',
-       'config-page-welcome'             => 'Welcome to MediaWiki!',
-       'config-page-dbconnect'           => 'Connect to database',
-       'config-page-upgrade'             => 'Upgrade existing installation',
-       'config-page-dbsettings'          => 'Database settings',
-       'config-page-name'                => 'Name',
-       'config-page-options'             => 'Options',
-       'config-page-install'             => 'Install',
-       'config-page-complete'            => 'Complete!',
-       'config-page-restart'             => 'Restart installation',
-       'config-page-readme'              => 'Read me',
-       'config-page-releasenotes'        => 'Release notes',
-       'config-page-copying'             => 'Copying',
-       'config-page-upgradedoc'          => 'Upgrading',
-       'config-page-existingwiki'        => 'Existing wiki',
-       'config-help-restart'             => 'Do you want to clear all saved data that you have entered and restart the installation process?',
-       'config-restart'                  => 'Yes, restart it',
-       'config-welcome'                  => "=== Environmental checks ===
-Basic checks will now be performed to see if this environment is suitable for MediaWiki installation.
-Remember to include this information if you seek support on how to complete the installation.",
-       'config-copyright'                => "=== Copyright and Terms ===
-
-$1
-
-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 <strong>without any warranty</strong>; without even the implied warranty of <strong>merchantability</strong> or <strong>fitness for a particular purpose</strong>.
-See the GNU General Public License for more details.
-
-You should have received <doclink href=Copying>a copy of the GNU General Public License</doclink> along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, or [http://www.gnu.org/copyleft/gpl.html read it online].",
-       'config-sidebar'                  => "* [//www.mediawiki.org MediaWiki home]
-* [//www.mediawiki.org/wiki/Help:Contents User's Guide]
-* [//www.mediawiki.org/wiki/Manual:Contents Administrator's Guide]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]
-----
-* <doclink href=Readme>Read me</doclink>
-* <doclink href=ReleaseNotes>Release notes</doclink>
-* <doclink href=Copying>Copying</doclink>
-* <doclink href=UpgradeDoc>Upgrading</doclink>",
-       'config-env-good'                 => 'The environment has been checked.
-You can install MediaWiki.',
-       'config-env-bad'                  => 'The environment has been checked.
-You cannot install MediaWiki.',
-       'config-env-php'                  => 'PHP $1 is installed.',
-       'config-env-php-toolow'           => 'PHP $1 is installed.
-However, MediaWiki requires PHP $2 or higher.',
-       'config-unicode-using-utf8'       => 'Using Brion Vibber\'s utf8_normalize.so for Unicode normalization.',
-       'config-unicode-using-intl'       => 'Using the [http://pecl.php.net/intl intl PECL extension] for Unicode normalization.',
-       'config-unicode-pure-php-warning' => "<strong>Warning:</strong> The [http://pecl.php.net/intl intl PECL extension] is not available to handle Unicode normalization, falling back to slow pure-PHP implementation.
-If you run a high-traffic site, you should read a little on [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode normalization].",
-       'config-unicode-update-warning'   => "<strong>Warning:</strong> The installed version of the Unicode normalization wrapper uses an older version of [http://site.icu-project.org/ the ICU project's] library.
-You should [//www.mediawiki.org/wiki/Unicode_normalization_considerations upgrade] if you are at all concerned about using Unicode.",
-       'config-no-db'                    => 'Could not find a suitable database driver! You need to install a database driver for PHP.
-The following database types are supported: $1.
-
-If you compiled PHP yourself, reconfigure it with a database client enabled, for example, using <code>./configure --with-mysqli</code>.
-If you installed PHP from a Debian or Ubuntu package, then you also need to install, for example, the <code>php5-mysql</code> package.',
-       'config-outdated-sqlite'          => "<strong>Warning:</strong> you have SQLite $1, which is lower than minimum required version $2. SQLite will be unavailable.",
-       'config-no-fts3'                  => "<strong>Warning:</strong> SQLite is compiled without the [//sqlite.org/fts3.html FTS3 module], search features will be unavailable on this backend.",
-       'config-register-globals'         => "<strong>Warning: PHP's <code>[http://php.net/register_globals register_globals]</code> option is enabled.
-Disable it if you can.</strong>
-MediaWiki will work, but your server is exposed to potential security vulnerabilities.",
-       'config-magic-quotes-runtime'     => "<strong>Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] is active!'</strong>
-This option corrupts data input unpredictably.
-You cannot install or use MediaWiki unless this option is disabled.",
-       'config-magic-quotes-sybase'      => "<strong>Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] is active!</strong>
-This option corrupts data input unpredictably.
-You cannot install or use MediaWiki unless this option is disabled.",
-       'config-mbstring'                 => "<strong>Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] is active!</strong>
-This option causes errors and may corrupt data unpredictably.
-You cannot install or use MediaWiki unless this option is disabled.",
-       'config-safe-mode'                => "<strong>Warning:</strong> PHP's [http://www.php.net/features.safe-mode safe mode] is active.
-It may cause problems, particularly if using file uploads and <code>math</code> support.",
-       'config-xml-bad'                  => "PHP's XML module is missing.
-MediaWiki requires functions in this module and will not work in this configuration.
-If you're running Mandrake, install the php-xml package.",
-       'config-pcre-old'                 => "<strong>Fatal:</strong> PCRE $1 or later is required.
-Your PHP binary is linked with PCRE $2.
-[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE More information].",
-       'config-pcre-no-utf8'             => "<strong>Fatal:</strong> PHP's PCRE module seems to be compiled without PCRE_UTF8 support.
-MediaWiki requires UTF-8 support to function correctly.",
-       'config-memory-raised'            => "PHP's <code>memory_limit</code> is $1, raised to $2.",
-       'config-memory-bad'               => "<strong>Warning:</strong> PHP's <code>memory_limit</code> is $1.
-This is probably too low.
-The installation may fail!",
-       'config-ctype'                    => "<strong>Fatal:</strong> PHP must be compiled with support for the [http://www.php.net/manual/en/ctype.installation.php Ctype extension].",
-       'config-json'                     => "<strong>Fatal:</strong> PHP was compiled without JSON support.
-You must install either the PHP JSON extension or the [http://pecl.php.net/package/jsonc PECL jsonc] extension before installing MediaWiki.
-* The PHP extension is included in Red Hat Enterprise Linux (CentOS) 5 and 6, though must be enabled in <code>/etc/php.ini</code> or <code>/etc/php.d/json.ini</code>.
-* Some Linux distributions released after May 2013 omit the PHP extension, instead packaging the PECL extension as <code>php5-json</code> or <code>php-pecl-jsonc</code>.",
-       'config-xcache'                   => '[http://xcache.lighttpd.net/ XCache] is installed',
-       'config-apc'                      => '[http://www.php.net/apc APC] is installed',
-       'config-wincache'                 => '[http://www.iis.net/download/WinCacheForPhp WinCache] is installed',
-       'config-no-cache'                 => "<strong>Warning:</strong> Could not find [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] or [http://www.iis.net/download/WinCacheForPhp WinCache].
-Object caching is not enabled.",
-       'config-mod-security'             => "<strong>Warning:</strong> Your web server has [http://modsecurity.org/ mod_security] enabled. If misconfigured, it can cause problems for MediaWiki or other software that allows users to post arbitrary content.
-Refer to [http://modsecurity.org/documentation/ mod_security documentation] or contact your host's support if you encounter random errors.",
-       'config-diff3-bad'                => 'GNU diff3 not found.',
-       'config-git'                      => 'Found the Git version control software: <code>$1</code>.',
-       'config-git-bad'                  => 'Git version control software not found.',
-       'config-imagemagick'              => 'Found ImageMagick: <code>$1</code>.
-Image thumbnailing will be enabled if you enable uploads.',
-       'config-gd'                       => 'Found GD graphics library built-in.
-Image thumbnailing will be enabled if you enable uploads.',
-       'config-no-scaling'               => 'Could not find GD library or ImageMagick.
-Image thumbnailing will be disabled.',
-       'config-no-uri'                   => "<strong>Error:</strong> Could not determine the current URI.
-Installation aborted.",
-       'config-no-cli-uri'               => "<strong>Warning:</strong> No --scriptpath specified, using default: <code>$1</code>.",
-       'config-using-server'             => 'Using server name "<nowiki>$1</nowiki>".',
-       'config-using-uri'                => 'Using server URL "<nowiki>$1$2</nowiki>".',
-       'config-uploads-not-safe'         => "<strong>Warning:</strong> Your default directory for uploads <code>$1</code> is vulnerable to arbitrary scripts execution.
-Although MediaWiki checks all uploaded files for security threats, it is highly recommended to [//www.mediawiki.org/wiki/Manual:Security#Upload_security close this security vulnerability] before enabling uploads.",
-       'config-no-cli-uploads-check'     => "<strong>Warning:</strong> Your default directory for uploads (<code>$1</code>) is not checked for vulnerability
-to arbitrary script execution during the CLI install.",
-       'config-brokenlibxml'             => 'Your system has a combination of PHP and libxml2 versions that is buggy and can cause hidden data corruption in MediaWiki and other web applications.
-Upgrade to libxml2 2.7.3 or later ([https://bugs.php.net/bug.php?id=45996 bug filed with PHP]).
-Installation aborted.',
-       'config-suhosin-max-value-length' => "Suhosin is installed and limits the GET parameter <code>length</code> to $1 bytes.
-MediaWiki's ResourceLoader component will work around this limit, but that will degrade performance.
-If at all possible, you should set <code>suhosin.get.max_value_length</code> to 1024 or higher in <code>php.ini</code>, and set <code>\$wgResourceLoaderMaxQueryLength</code> to the same value in <code>LocalSettings.php</code>.",
-       'config-db-type'                  => 'Database type:',
-       'config-db-host'                  => 'Database host:',
-       'config-db-host-help'             => 'If your database server is on different server, enter the host name or IP address here.
-
-If you are using shared web hosting, your hosting provider should give you the correct host name in their documentation.
-
-If 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.
-
-If you are using PostgreSQL, leave this field blank to connect via a Unix socket.',
-       'config-db-host-oracle'           => 'Database TNS:',
-       'config-db-host-oracle-help'      => 'Enter a valid [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name]; a tnsnames.ora file must be visible to this installation.<br />If you are using client libraries 10g or newer you can also use the [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect] naming method.',
-       'config-db-wiki-settings'         => 'Identify this wiki',
-       'config-db-name'                  => 'Database name:',
-       'config-db-name-help'             => 'Choose a name that identifies your wiki.
-It should not contain spaces.
-
-If 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.',
-       'config-db-name-oracle'           => 'Database schema:',
-       'config-db-account-oracle-warn' => "There are three supported scenarios for installing Oracle as database backend:
-
-If you wish to create database account as part of the installation process, please supply an account with SYSDBA role as database account for installation and specify the desired credentials for the web-access account, otherwise you can either create the web-access account manually and supply only that account (if it has required permissions to create the schema objects) or supply two different accounts, one with create privileges and a restricted one for web access.
-
-Script for creating an account with required privileges can be found in \"maintenance/oracle/\" directory of this installation. Keep in mind that using a restricted account will disable all maintenance capabilities with the default account.",
-       'config-db-install-account'       => 'User account for installation',
-       'config-db-username'              => 'Database username:',
-       'config-db-password'              => 'Database password:',
-       'config-db-password-empty'        => 'Please enter a password for the new database user: $1.
-While it may be possible to create users with no passwords, it is not secure.',
-       'config-db-install-username'      => '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.',
-       'config-db-install-password'      => '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.',
-       'config-db-install-help'          => 'Enter the username and password that will be used to connect to the database during the installation process.',
-       'config-db-account-lock'          => 'Use the same username and password during normal operation',
-       'config-db-wiki-account'          => 'User account for normal operation',
-       'config-db-wiki-help'             => 'Enter the username and password that will be used to connect to the database during normal wiki operation.
-If the account does not exist, and the installation account has sufficient privileges, this user account will be created with the minimum privileges required to operate the wiki.',
-       'config-db-prefix'                => 'Database table prefix:',
-       'config-db-prefix-help'           => 'If you need to share one database between multiple wikis, or between MediaWiki and another web application, you may choose to add a prefix to all the table names to avoid conflicts.
-Do not use spaces.
-
-This field is usually left empty.',
-       'config-db-charset'               => 'Database character set',
-       'config-charset-mysql5-binary'    => 'MySQL 4.1/5.0 binary',
-       'config-charset-mysql5'           => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4'           => 'MySQL 4.0 backwards-compatible UTF-8',
-       'config-charset-help'             => "<strong>Warning:</strong> If you use <strong>backwards-compatible UTF-8</strong> on MySQL 4.1+, and subsequently back up the database with <code>mysqldump</code>, it may destroy all non-ASCII characters, irreversibly corrupting your backups!
-
-In <strong>binary mode</strong>, 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.
-In <strong>UTF-8 mode</strong>, 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 [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
-       'config-mysql-old'                => 'MySQL $1 or later is required. You have $2.',
-       'config-db-port'                  => 'Database port:',
-       'config-db-schema'                => 'Schema for MediaWiki:',
-       'config-db-schema-help'           => 'This schema will usually be fine.
-Only change it if you know you need to.',
-       'config-pg-test-error'            => "Cannot connect to database <strong>$1</strong>: $2",
-       'config-sqlite-dir'               => 'SQLite data directory:',
-       'config-sqlite-dir-help'          => "SQLite stores all data in a single file.
-
-The directory you provide must be writable by the webserver during installation.
-
-It should <strong>not</strong> be accessible via the web, this is why we're not putting it where your PHP files are.
-
-The installer will write a <code>.htaccess</code> file along with it, but if that fails someone can gain access to your raw database.
-That includes raw user data (email addresses, hashed passwords) as well as deleted revisions and other restricted data on the wiki.
-
-Consider putting the database somewhere else altogether, for example in <code>/var/lib/mediawiki/yourwiki</code>.",
-       'config-oracle-def-ts'            => 'Default tablespace:',
-       'config-oracle-temp-ts'           => 'Temporary tablespace:',
-       'config-type-mysql'               => 'MySQL (or compatible)',
-       'config-type-postgres'            => 'PostgreSQL',
-       'config-type-sqlite'              => 'SQLite',
-       'config-type-oracle'              => 'Oracle',
-       'config-type-mssql'               => 'Microsoft SQL Server',
-       'config-support-info'             => 'MediaWiki supports the following database systems:
-
-$1
-
-If you do not see the database system you are trying to use listed below, then follow the instructions linked above to enable support.',
-       'config-dbsupport-mysql'          => '* [{{int:version-db-mysql-url}} MySQL] is the primary target for MediaWiki and is best supported. MediaWiki also works with [{{int:version-db-mariadb-url}} MariaDB] and [{{int:version-db-percona-url}} Percona Server], which are MySQL compatible. ([http://www.php.net/manual/en/mysqli.installation.php How to compile PHP with MySQL support])',
-       'config-dbsupport-postgres'       => '* [{{int:version-db-postgres-url}} PostgreSQL] is a popular open source database system as an alternative to MySQL. There may be some minor outstanding bugs, and it is not recommended for use in a production environment. ([http://www.php.net/manual/en/pgsql.installation.php How to compile PHP with PostgreSQL support])',
-       'config-dbsupport-sqlite'         => '* [{{int:version-db-sqlite-url}} SQLite] is a lightweight database system that is very well supported. ([http://www.php.net/manual/en/pdo.installation.php How to compile PHP with SQLite support], uses PDO)',
-       'config-dbsupport-oracle'         => '* [{{int:version-db-oracle-url}} Oracle] is a commercial enterprise database. ([http://www.php.net/manual/en/oci8.installation.php How to compile PHP with OCI8 support])',
-       'config-dbsupport-mssql'          => '* [{{int:version-db-mssql-url}} Microsoft SQL Server] is a commercial enterprise database for Windows. ([http://www.php.net/manual/en/sqlsrv.installation.php How to compile PHP with SQLSRV support])',
-       'config-header-mysql'             => 'MySQL settings',
-       'config-header-postgres'          => 'PostgreSQL settings',
-       'config-header-sqlite'            => 'SQLite settings',
-       'config-header-oracle'            => 'Oracle settings',
-       'config-header-mssql'             => 'Microsoft SQL Server settings',
-       'config-invalid-db-type'          => 'Invalid database type',
-       'config-missing-db-name'          => 'You must enter a value for "Database name"',
-       '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 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".
-Use only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_) and hyphens (-).',
-       'config-connection-error'         => '$1.
-
-Check the host, username and password and try again.',
-       'config-invalid-schema'           => 'Invalid schema for MediaWiki "$1".
-Use only ASCII letters (a-z, A-Z), numbers (0-9) and underscores (_).',
-       'config-db-sys-create-oracle' => 'Installer only supports using a SYSDBA account for creating a new account.',
-       'config-db-sys-user-exists-oracle' => 'User account "$1" already exists. SYSDBA can only be used for creating of a new account!',
-       'config-postgres-old'             => 'PostgreSQL $1 or later is required. You have $2.',
-       'config-mssql-old'                => 'Microsoft SQL Server $1 or later is required. You have $2.',
-       'config-sqlite-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.',
-       'config-sqlite-parent-unwritable-group' => 'Cannot create the data directory <code><nowiki>$1</nowiki></code>, because the parent directory <code><nowiki>$2</nowiki></code> is not writable by the webserver.
-
-The installer has determined the user your webserver is running as.
-Make the <code><nowiki>$3</nowiki></code> directory writable by it to continue.
-On a Unix/Linux system do:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Cannot create the data directory <code><nowiki>$1</nowiki></code>, because the parent directory <code><nowiki>$2</nowiki></code> is not writable by the webserver.
-
-The installer could not determine the user your webserver is running as.
-Make the <code><nowiki>$3</nowiki></code> directory globally writable by it (and others!) to continue.
-On a Unix/Linux system do:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error'       => 'Error creating the data directory "$1".
-Check the location and try again.',
-       'config-sqlite-dir-unwritable'    => 'Unable to write to the directory "$1".
-Change its permissions so that the webserver can write to it, and try again.',
-       'config-sqlite-connection-error'  => '$1.
-
-Check the data directory and database name below and try again.',
-       'config-sqlite-readonly'          => 'The file <code>$1</code> is not writeable.',
-       'config-sqlite-cant-create-db'    => 'Could not create database file <code>$1</code>.',
-       'config-sqlite-fts3-downgrade'    => 'PHP is missing FTS3 support, downgrading tables',
-       'config-can-upgrade'              => "There are MediaWiki tables in this database.
-To upgrade them to MediaWiki $1, click <strong>Continue</strong>.",
-       'config-upgrade-done'             => "Upgrade complete.
-
-You can now [$1 start using your wiki].
-
-If you want to regenerate your <code>LocalSettings.php</code> file, click the button below.
-This is <strong>not recommended</strong> unless you are having problems with your wiki.",
-       'config-upgrade-done-no-regenerate' => "Upgrade complete.
-
-You can now [$1 start using your wiki].",
-       'config-regenerate'               => 'Regenerate LocalSettings.php →',
-       'config-show-table-status'        => '<code>SHOW TABLE STATUS</code> query failed!',
-       'config-unknown-collation'        => "<strong>Warning:</strong> Database is using unrecognized collation.",
-       'config-db-web-account'           => 'Database account for web access',
-       'config-db-web-help'              => 'Select the username and password that the web server will use to connect to the database server, during ordinary operation of the wiki.',
-       'config-db-web-account-same'      => 'Use the same account as for installation',
-       'config-db-web-create'            => 'Create the account if it does not already exist',
-       'config-db-web-no-create-privs'   => 'The account you specified for installation does not have enough privileges to create an account.
-The account you specify here must already exist.',
-       'config-mysql-engine'             => 'Storage engine:',
-       'config-mysql-innodb'             => 'InnoDB',
-       'config-mysql-myisam'             => 'MyISAM',
-       'config-mysql-myisam-dep'         => "<strong>Warning:</strong> You have selected MyISAM as storage engine for MySQL, which is not recommended for use with MediaWiki, because:
-* it barely supports concurrency due to table locking
-* it is more prone to corruption than other engines
-* the MediaWiki codebase does not always handle MyISAM as it should
-
-If your MySQL installation supports InnoDB, it is highly recommended that you choose that instead.
-If your MySQL installation does not support InnoDB, maybe it's time for an upgrade.",
-       'config-mysql-only-myisam-dep'    => "<strong>Warning:</strong> MyISAM is the only available storage engine for MySQL on this machine, and this is not recommended for use with MediaWiki, because:
-* it barely supports concurrency due to table locking
-* it is more prone to corruption than other engines
-* the MediaWiki codebase does not always handle MyISAM as it should
-
-Your MySQL installation does not support InnoDB, maybe it's time for an upgrade.",
-       'config-mysql-engine-help'        => "<strong>InnoDB</strong> is almost always the best option, since it has good concurrency support.
-
-<strong>MyISAM</strong> may be faster in single-user or read-only installations.
-MyISAM databases tend to get corrupted more often than InnoDB databases.",
-       'config-mysql-charset'            => 'Database character set:',
-       'config-mysql-binary'             => 'Binary',
-       'config-mysql-utf8'               => 'UTF-8',
-       'config-mysql-charset-help'       => "In <strong>binary mode</strong>, 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.
-
-In <strong>UTF-8 mode</strong>, 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 [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
-
-       'config-mssql-auth'               => 'Authentication type:',
-       'config-mssql-install-auth'       => 'Select the authentication type that will be used to connect to the database during the installation process.
-If you select "Windows Authentication", the credentials of whatever user the webserver is running as will be used.',
-       'config-mssql-web-auth'           => 'Select the authentication type that the web server will use to connect to the database server, during ordinary operation of the wiki.
-If you select "Windows Authentication", the credentials of whatever user the webserver is running as will be used.',
-       'config-mssql-sqlauth'            => 'SQL Server Authentication',
-       'config-mssql-windowsauth'        => 'Windows Authentication',
-       'config-site-name'                => 'Name of wiki:',
-       'config-site-name-help'           => "This will appear in the title bar of the browser and in various other places.",
-       'config-site-name-blank'          => 'Enter a site name.',
-       'config-project-namespace'        => 'Project namespace:',
-       'config-ns-generic'               => 'Project',
-       'config-ns-site-name'             => 'Same as the wiki name: $1',
-       'config-ns-other'                 => 'Other (specify)',
-       'config-ns-other-default'         => 'MyWiki',
-       'config-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.
-Usually, this prefix is derived from the name of the wiki, but it cannot contain punctuation characters such as "#" or ":".',
-       'config-ns-invalid'               => 'The specified namespace "<nowiki>$1</nowiki>" is invalid.
-Specify a different project namespace.',
-       'config-ns-conflict'               => 'The specified namespace "<nowiki>$1</nowiki>" conflicts with a default MediaWiki namespace.
-Specify a different project namespace.',
-       'config-admin-box'                => 'Administrator account',
-       'config-admin-name'               => 'Your username:',
-       'config-admin-password'           => 'Password:',
-       'config-admin-password-confirm'   => 'Password again:',
-       'config-admin-help'               => 'Enter your preferred username here, for example "Joe Bloggs".
-This is the name you will use to log in to the wiki.',
-       'config-admin-name-blank'         => 'Enter an administrator username.',
-       'config-admin-name-invalid'       => 'The specified username "<nowiki>$1</nowiki>" is invalid.
-Specify a different username.',
-       'config-admin-password-blank'     => 'Enter a password for the administrator account.',
-       'config-admin-password-mismatch'  => 'The two passwords you entered do not match.',
-       'config-admin-email'              => 'Email address:',
-       'config-admin-email-help'         => 'Enter an email address here to allow you to receive email from other users on the wiki, reset your password, and be notified of changes to pages on your watchlist. You can leave this field empty.',
-       'config-admin-error-user'         => 'Internal error when creating an admin with the name "<nowiki>$1</nowiki>".',
-       'config-admin-error-password'     => 'Internal error when setting a password for the admin "<nowiki>$1</nowiki>": <pre>$2</pre>',
-       'config-admin-error-bademail'     => 'You have entered an invalid email address.',
-       'config-subscribe'                => 'Subscribe to the [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce release announcements mailing list].',
-       'config-subscribe-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.',
-       'config-subscribe-noemail'        => 'You tried to subscribe to the release announcements mailing list without providing an email address.
-Please provide an email address if you wish to subscribe to the mailing list.',
-       'config-almost-done'              => 'You are almost done!
-You can now skip the remaining configuration and install the wiki right now.',
-       'config-optional-continue'        => 'Ask me more questions.',
-       'config-optional-skip'            => "I'm bored already, just install the wiki.",
-       'config-profile'                  => 'User rights profile:',
-       'config-profile-wiki'             => 'Open wiki',
-       'config-profile-no-anon'          => 'Account creation required',
-       'config-profile-fishbowl'         => 'Authorized editors only',
-       'config-profile-private'          => 'Private wiki',
-       'config-profile-help'             => "Wikis work best when you let as many people edit them as possible.
-In MediaWiki, it is easy to review the recent changes, and to revert any damage that is done by naive or malicious users.
-
-However, many have found MediaWiki to be useful in a wide variety of roles, and sometimes it is not easy to convince everyone of the benefits of the wiki way.
-So you have the choice.
-
-The <strong>{{int:config-profile-wiki}}</strong> model allows anyone to edit, without even logging in.
-A wiki with <strong>{{int:config-profile-no-anon}}</strong> provides extra accountability, but may deter casual contributors.
-
-The <strong>{{int:config-profile-fishbowl}}</strong> scenario allows approved users to edit, but the public can view the pages, including history.
-A <strong>{{int:config-profile-private}}</strong> only allows approved users to view pages, with the same group allowed to edit.
-
-More complex user rights configurations are available after installation, see the [//www.mediawiki.org/wiki/Manual:User_rights relevant manual entry].",
-       'config-license'                  => 'Copyright and license:',
-       'config-license-none'             => 'No license footer',
-       'config-license-cc-by-sa'         => 'Creative Commons Attribution Share Alike',
-       'config-license-cc-by'            => 'Creative Commons Attribution',
-       'config-license-cc-by-nc-sa'      => 'Creative Commons Attribution Non-Commercial Share Alike',
-       'config-license-cc-0'             => 'Creative Commons Zero (Public Domain)',
-       'config-license-gfdl'             => 'GNU Free Documentation License 1.3 or later',
-       'config-license-pd'               => 'Public Domain',
-       'config-license-cc-choose'        => 'Select a custom Creative Commons license',
-       'config-license-help'             => "Many public wikis put all contributions under a [http://freedomdefined.org/Definition free license].
-This helps to create a sense of community ownership and encourages long-term contribution.
-It is not generally necessary for a private or corporate wiki.
-
-If you want to be able to use text from Wikipedia, and you want Wikipedia to be able to accept text copied from your wiki, you should choose <strong>Creative Commons Attribution Share Alike</strong>.
-
-Wikipedia previously used the GNU Free Documentation License.
-The GFDL is a valid license, but it is difficult to understand.
-It is also difficult to reuse content licensed under the GFDL.",
-       'config-email-settings'           => 'Email settings',
-       'config-enable-email'             => 'Enable outbound email',
-       'config-enable-email-help'        => "If you want email to work, [http://www.php.net/manual/en/mail.configuration.php PHP's mail settings] need to be configured correctly.
-If you do not want any email features, you can disable them here.",
-       'config-email-user'               => 'Enable user-to-user email',
-       'config-email-user-help'          => 'Allow all users to send each other email if they have enabled it in their preferences.',
-       'config-email-usertalk'           => 'Enable user talk page notification',
-       'config-email-usertalk-help'      => 'Allow users to receive notifications on user talk page changes, if they have enabled it in their preferences.',
-       'config-email-watchlist'          => 'Enable watchlist notification',
-       'config-email-watchlist-help'     => 'Allow users to receive notifications about their watched pages if they have enabled it in their preferences.',
-       'config-email-auth'               => 'Enable email authentication',
-       'config-email-auth-help'          => "If this option is enabled, users have to confirm their email address using a link sent to them whenever they set or change it.
-Only authenticated email addresses can receive emails from other users or change notification emails.
-Setting this option is <strong>recommended</strong> for public wikis because of potential abuse of the email features.",
-       'config-email-sender'             => 'Return email address:',
-       'config-email-sender-help'        => 'Enter the email address to use as the return address on outbound email.
-This is where bounces will be sent.
-Many mail servers require at least the domain name part to be valid.',
-       'config-upload-settings'          => 'Images and file uploads',
-       'config-upload-enable'            => 'Enable file uploads',
-       'config-upload-help'              => "File uploads potentially expose your server to security risks.
-For more information, read the [//www.mediawiki.org/wiki/Manual:Security security section] in the manual.
-
-To enable file uploads, change the mode on the <code>images</code> subdirectory under MediaWiki's root directory so that the web server can write to it.
-Then enable this option.",
-       'config-upload-deleted'           => 'Directory for deleted files:',
-       'config-upload-deleted-help'      => 'Choose a directory in which to archive deleted files.
-Ideally, this should not be accessible from the web.',
-       'config-logo'                     => 'Logo URL:',
-       'config-logo-help'                => "MediaWiki's default skin includes space for a 135x160 pixel logo above the sidebar menu.
-Upload an image of the appropriate size, and enter the URL here.
-
-You can use <code>\$wgStylePath</code> or <code>\$wgScriptPath</code> if your logo is relative to those paths.
-
-If you do not want a logo, leave this box blank.",
-       'config-instantcommons'           => 'Enable Instant Commons',
-       'config-instantcommons-help'      => '[//www.mediawiki.org/wiki/InstantCommons Instant Commons] is a feature that allows wikis to use images, sounds and other media found on the [//commons.wikimedia.org/ Wikimedia Commons] site.
-In order to do this, MediaWiki requires access to the Internet.
-
-For more information on this feature, including instructions on how to set it up for wikis other than the Wikimedia Commons, consult [//mediawiki.org/wiki/Manual:$wgForeignFileRepos the manual].',
-       'config-cc-error'                 => 'The Creative Commons license chooser gave no result.
-Enter the license name manually.',
-       'config-cc-again'                 => 'Pick again...',
-       'config-cc-not-chosen'            => 'Choose which Creative Commons license you want and click "proceed".',
-       'config-advanced-settings'        => 'Advanced configuration',
-       'config-cache-options'            => 'Settings for object caching:',
-       'config-cache-help'               => 'Object caching is used to improve the speed of MediaWiki by caching frequently used data.
-Medium to large sites are highly encouraged to enable this, and small sites will see benefits as well.',
-       'config-cache-none'               => 'No caching (no functionality is removed, but speed may be impacted on larger wiki sites)',
-       'config-cache-accel'              => 'PHP object caching (APC, XCache or WinCache)',
-       'config-cache-memcached'          => 'Use Memcached (requires additional setup and configuration)',
-       'config-memcached-servers'        => 'Memcached servers:',
-       'config-memcached-help'           => 'List of IP addresses to use for Memcached.
-Should specify one per line and specify the port to be used. For example:
- 127.0.0.1:11211
- 192.168.1.25:1234',
-       'config-memcache-needservers'     => 'You selected Memcached as your cache type but did not specify any servers.',
-       'config-memcache-badip'           => 'You have entered an invalid IP address for Memcached: $1.',
-       'config-memcache-noport'          => 'You did not specify a port to use for Memcached server: $1.
-If you do not know the port, the default is 11211.',
-       'config-memcache-badport'         => 'Memcached port numbers should be between $1 and $2.',
-       'config-extensions'               => 'Extensions',
-       'config-extensions-help'          => 'The extensions listed above were detected in your <code>./extensions</code> directory.
-
-They may require additional configuration, but you can enable them now.',
-       'config-install-alreadydone'      => "<strong>Warning:</strong> You seem to have already installed MediaWiki and are trying to install it again.
-Please proceed to the next page.",
-       'config-install-begin'            => 'By pressing "{{int:config-continue}}", you will begin the installation of MediaWiki.
-If you still want to make changes, press "{{int:config-back}}".',
-       'config-install-step-done'        => 'done',
-       'config-install-step-failed'      => 'failed',
-       'config-install-extensions'       => 'Including extensions',
-       'config-install-database'         => 'Setting up database',
-       'config-install-schema'           => 'Creating schema',
-       'config-install-pg-schema-not-exist' => 'PostgreSQL schema does not exist.',
-       'config-install-pg-schema-failed' => 'Tables creation failed.
-Make sure that the user "$1" can write to the schema "$2".',
-       'config-install-pg-commit'        => 'Committing changes',
-       'config-install-pg-plpgsql'       => 'Checking for language PL/pgSQL',
-       'config-pg-no-plpgsql'            => 'You need to install the language PL/pgSQL in the database $1',
-       'config-pg-no-create-privs'       => 'The account you specified for installation does not have enough privileges to create an account.',
-       'config-pg-not-in-role'           => 'The account you specified for the web user already exists.
-The account you specified for installation is not a superuser and is not a member of the web user\'s role, so it is unable to create objects owned by the web user.
-
-MediaWiki currently requires that the tables be owned by the web user. Please specify another web account name, or click "back" and specify a suitably privileged install user.',
-       'config-install-user'             => 'Creating database user',
-       'config-install-user-alreadyexists' => 'User "$1" already exists',
-       'config-install-user-create-failed' => 'Creating user "$1" failed: $2',
-       'config-install-user-grant-failed'  => 'Granting permission to user "$1" failed: $2',
-       'config-install-user-missing'     => 'The specified user "$1" does not exist.',
-       'config-install-user-missing-create' => 'The specified user "$1" does not exist.
-Please click the "create account" checkbox below if you want to create it.',
-       'config-install-tables'           => 'Creating tables',
-       'config-install-tables-exist'     => "<strong>Warning:</strong> MediaWiki tables seem to already exist.
-Skipping creation.",
-       'config-install-tables-failed'    => "<strong>Error:</strong> Table creation failed with the following error: $1",
-       'config-install-interwiki'        => 'Populating default interwiki table',
-       'config-install-interwiki-list'   => 'Could not read file <code>interwiki.list</code>.',
-       'config-install-interwiki-exists' => "<strong>Warning:</strong> The interwiki table seems to already have entries.
-Skipping default list.",
-       'config-install-stats'            => 'Initializing statistics',
-       'config-install-keys'             => 'Generating secret keys',
-       'config-insecure-keys'            => "<strong>Warning:</strong> {{PLURAL:$2|A secure key|Secure keys}} ($1) generated during installation {{PLURAL:$2|is|are}} not completely safe. Consider changing {{PLURAL:$2|it|them}} manually.",
-       'config-install-sysop'            => 'Creating administrator user account',
-       'config-install-subscribe-fail'   => 'Unable to subscribe to mediawiki-announce: $1',
-       'config-install-subscribe-notpossible' => 'cURL is not installed and allow_url_fopen is not available.',
-       'config-install-mainpage'         => 'Creating main page with default content',
-       'config-install-extension-tables' => 'Creating tables for enabled extensions',
-       'config-install-mainpage-failed'  => 'Could not insert main page: $1',
-       'config-install-done'             => "<strong>Congratulations!</strong>
-You have successfully installed MediaWiki.
-
-The installer has generated a <code>LocalSettings.php</code> file.
-It contains all your configuration.
-
-You will need to download it and put it in the base of your wiki installation (the same directory as index.php). The download should have started automatically.
-
-If the download was not offered, or if you cancelled it, you can restart the download by clicking the link below:
-
-$3
-
-<strong>Note:</strong> If you do not do this now, this generated configuration file will not be available to you later if you exit the installation without downloading it.
-
-When that has been done, you can <strong>[$2 enter your wiki]</strong>.",
-       'config-download-localsettings' => 'Download <code>LocalSettings.php</code>',
-       'config-help' => 'help',
-       'config-nofile'     => 'File "$1" could not be found. Has it been deleted?',
-       'config-extension-link' => 'Did you know that your wiki supports [//www.mediawiki.org/wiki/Manual:Extensions extensions]?
-
-You can browse [//www.mediawiki.org/wiki/Category:Extensions_by_category extensions by category] or the [//www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] to see the full list of extensions.',
-       'mainpagetext'      => "<strong>MediaWiki has been successfully installed.</strong>",
-       'mainpagedocfooter' => "Consult the [//meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.
-
-== Getting started ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Localise MediaWiki for your language]",
-);
-
-/** Message documentation (Message documentation)
- * @author Amire80
- * @author Dani
- * @author EugeneZelenko
- * @author Kghbln
- * @author McDutchie
- * @author Mormegil
- * @author Nemo bis
- * @author Nike
- * @author Platonides
- * @author Purodha
- * @author Raymond
- * @author SPQRobin
- * @author Shirayuki
- * @author Siebrand
- * @author Umherirrender
- * @author Waldir
- */
-$messages['qqq'] = array(
-       'config-desc' => 'Short description of the installer.',
-       'config-title' => 'Parameters:
-* $1 is the version of MediaWiki that is being installed.',
-       'config-information' => '{{Identical|Information}}',
-       'config-localsettings-upgrade' => '{{doc-important|Do not translate <code>LocalSettings.php</code> and <code>$wgUpgradeKey</code>.}}',
-       'config-localsettings-cli-upgrade' => '{{doc-important|Do not translate the <code>LocalSettings.php</code> and the <code>update.php</code> parts.}}',
-       'config-upgrade-key-missing' => 'Used in info box. Parameters:
-* $1 - the upgrade key, enclosed in <code><nowiki><pre></nowikI></code> tag.',
-       'config-localsettings-incomplete' => '{{doc-important|Do not translate <code>LocalSettings.php</code> and <code><nowiki>{{int:Config-continue}}</nowiki><code>.}}
-Parameters:
-* $1 - name of variable (any one of required variables or installer-specific global variables)',
-       'config-localsettings-connection-error' => '{{doc-important|Do not translate <code>LocalSettings.php</code>.}}
-Used as error message. Parameters:
-* $1 - (probably empty string)',
-       'config-session-error' => 'Parameters:
-* $1 is the error that was encountered with the session.',
-       'config-session-expired' => 'Parameters:
-* $1 is the configured session lifetime.',
-       'config-no-session' => '{{doc-important|Do not translate <code>php.ini</code> and <code>session.save_path</code>.}}
-Used as error message.',
-       'config-back' => '{{Identical|Back}}',
-       'config-continue' => '{{Identical|Continue}}',
-       'config-page-language' => '{{Identical|Language}}',
-       '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.',
-       'config-copyright' => 'This message follows {{msg-mw|config-env-good}}.
-
-Parameters:
-* $1 - copyright and author list',
-       'config-sidebar' => 'Maximum width for words is 24 characters. Only visible part of the translation counts to this limit.',
-       'config-env-php' => 'Parameters:
-* $1 - the version of PHP that has been installed
-See also:
-* {{msg-mw|config-env-php-toolow}}',
-       'config-env-php-toolow' => 'Parameters:
-* $1 - the version of PHP that has been installed
-* $2 - minimum PHP version number
-See also:
-* {{msg-mw|config-env-php}}',
-       'config-unicode-pure-php-warning' => 'PECL is the name of a group producing standard pieces of software for PHP, and intl is the name of their library handling some aspects of internationalization.',
-       'config-unicode-update-warning' => "ICU is a body producing standard software tools for support of Unicode and other internationalization aspects. This message warns the system administrator installing MediaWiki that the server's software is not up-to-date and MediaWiki will have problems handling some characters.",
-       'config-no-db' => '{{doc-important|Do not translate "<code>./configure --with-mysqli</code>" and "<code>php5-mysql</code>".}}
-Parameters:
-* $1 is comma separated list of database types supported by MediaWiki.',
-       'config-outdated-sqlite' => 'Used as warning. Parameters:
-* $1 - the version of SQLite that has been installed
-* $2 - minimum version',
-       'config-no-fts3' => 'A "[[:wikipedia:Front and back ends|backend]]" is a system or component that ordinary users don\'t interact with directly and don\'t need to know about, and that is responsible for a distinct task or service - for example, a storage back-end is a generic system for storing data which other applications can use. Possible alternatives for back-end are "system" or "service", or (depending on context and language) even leave it untranslated.',
-       'config-magic-quotes-runtime' => '{{Related|Config-fatal}}',
-       'config-magic-quotes-sybase' => '{{Related|Config-fatal}}',
-       'config-mbstring' => '{{Related|Config-fatal}}',
-       'config-ze1' => '{{Related|Config-fatal}}',
-       'config-pcre' => 'PCRE is an initialism for "Perl-compatible regular expression". Perl is programming language whose [[:w:regular expression|regular expression]] syntax is popular and used in other languages using a library called PCRE.',
-       'config-pcre-old' => 'Parameters:
-* $1 - minimum PCRE version number
-* $2 - the installed version of [[wikipedia:PCRE|PCRE]]
-{{Related|Config-fatal}}',
-       'config-pcre-no-utf8' => "PCRE is a name of a programmers' library for supporting regular expressions. It can probably be translated without change.
-{{Related|Config-fatal}}",
-       'config-memory-raised' => 'Parameters:
-* $1 is the configured <code>memory_limit</code>.
-* $2 is the value to which <code>memory_limit</code> was raised.',
-       'config-memory-bad' => 'Parameters:
-* $1 is the configured <code>memory_limit</code>.',
-       'config-ctype' => 'Message if support for [http://www.php.net/manual/en/ctype.installation.php Ctype] is missing from PHP',
-       'config-json' => 'Message if support for [[wikipedia:JSON|JSON]] is missing from PHP.
-* "[[wikipedia:Red Hat Enterprise Linux|Red Hat Enterprise Linux]]" (RHEL) and "[[wikipedia:CentOS|CentOS]]" refer to two almost-identical Linux distributions. "5 and 6" refers to version 5 or 6 of either distribution. Because RHEL 7 likely will not include the PHP extension, do not translate as "5 or newer".
-* "The [http://www.php.net/json PHP extension]" is the JSON extension included with PHP 5.2 and newer.
-* "The [http://pecl.php.net/package/jsonc PECL extension]" is based on the PHP extension, though excludes code some distributions have found unacceptable (see [[bugzilla:47431]]).',
-       'config-xcache' => 'Message indicates if this program is available',
-       'config-apc' => 'Message indicates if this program is available',
-       'config-wincache' => 'Message indicates if this program is available',
-       'config-git' => 'Message if Git version control software is available.
-Parameter:
-* $1 is the <code>Git</code> executable file name.',
-       'config-git-bad' => 'Message if Git version control software is not found.',
-       'config-imagemagick' => '$1 is ImageMagick\'s <code>convert</code> executable file name.
-
-Add dir="ltr" to the <nowiki><code></nowiki> for right-to-left languages.',
-       'config-no-cli-uri' => 'Parameters:
-* $1 is the default value for scriptpath.',
-       'config-using-server' => 'Used as a part of environment check result. Parameters:
-* $1 - default server name',
-       'config-using-uri' => 'Used as a part of environment check result. Parameters:
-* $1 - server name
-* $2 - script path',
-       'config-uploads-not-safe' => 'Used as a part of environment check result. Parameters:
-* $1 - name of directory for images: <code>$IP/images/</code>',
-       'config-no-cli-uploads-check' => 'CLI = [[w:Command-line interface|command-line interface]] (i.e. the installer runs as a command-line script, not using HTML interface via an internet browser)',
-       'config-using531' => 'Used as error message. Parameters:
-* $1 - the version of PHP that has been installed',
-       'config-suhosin-max-value-length' => '{{doc-important|Do not translate "length", "suhosin.get.max_value_length", "php.ini", "$wgResourceLoaderMaxQueryLength" and "LocalSettings.php".}}
-Message shown when PHP parameter <code>suhosin.get.max_value_length</code> is between 0 and 1023 (that max value is hard set in MediaWiki software).',
-       'config-db-host-help' => '{{doc-singularthey}}',
-       'config-db-host-oracle' => 'TNS = [[:wikipedia:Transparent Network Substrate|Transparent Network Substrate]] (<== wikipedia link)',
-       'config-db-host-oracle-help' => 'See also:
-* {{msg-mw|Config-invalid-db-server-oracle}}',
-       'config-db-wiki-settings' => 'This is more acurate: "Enter identifying or distinguishing data for this wiki" since a MySQL database can host tables of several wikis.',
-       'config-db-account-oracle-warn' => 'A "[[:wikipedia:Front and back ends|backend]]" is a system or component that ordinary users don\'t interact with directly and don\'t need to know about, and that is responsible for a distinct task or service - for example, a storage back-end is a generic system for storing data which other applications can use. Possible alternatives for back-end are "system" or "service", or (depending on context and language) even leave it untranslated.',
-       'config-db-password-empty' => 'Used as error message. Parameters:
-* $1 - database username',
-       'config-db-account-lock' => "It might be easier to translate ''normal operation'' as \"also after the installation process\"",
-       'config-mysql-old' => 'Used as error message. Parameters:
-* $1 - minimum version
-* $2 - the version of MySQL that has been installed',
-       'config-pg-test-error' => '* $1 - database name
-* $2 - error message',
-       'config-sqlite-dir-help' => '{{doc-important|Do not translate <code>.htaccess</code> and <code>/var/lib/mediawiki/yourwiki</code>.}}
-Used in help box.',
-       'config-type-mysql' => '"Or compatible" refers to several database systems that are compatible with MySQL, as explained in {{msg-mw|config-dbsupport-mysql}}, and thus also work with this choice of database type.',
-       'config-type-postgres' => '{{optional}}',
-       'config-type-sqlite' => '{{optional}}',
-       'config-type-oracle' => '{{optional}}',
-       'config-type-mssql' => '{{optional}}',
-       'config-header-mssql' => 'Used as a section heading on the installer form, inside of a fieldset',
-       'config-support-info' => 'Parameters:
-* $1 - a list of DBMSs that MediaWiki supports, composed with config-dbsupport-* messages.',
-       'config-support-mysql' => 'Parameters:
-* $1 - a link to the MySQL home page having the anchor text "MySQL".',
-       'config-support-postgres' => 'Parameters:
-* $1 - a link to the PostgreSQL home page having the anchor text "PostgreSQL".',
-       'config-support-sqlite' => 'Parameters:
-* $1 - a link to the SQLite home page having the anchor text "SQLite".',
-       'config-support-oracle' => 'Parameters:
-* $1 - a link to the Oracle home page, the anchor text of which is "Oracle".',
-       'config-dbsupport-mysql' => 'Used in {{msg-mw|config-support-info}}.',
-       'config-dbsupport-postgres' => 'Used in {{msg-mw|config-support-info}}.',
-       'config-dbsupport-sqlite' => 'Used in {{msg-mw|config-support-info}}.',
-       'config-dbsupport-oracle' => 'Used in {{msg-mw|config-support-info}}.',
-       'config-invalid-db-server-oracle' => 'Used as error message. Parameters:
-* $1 - database server name
-See also:
-* {{msg-mw|Config-db-host-oracle-help}}',
-       'config-support-mssql' => 'Parameters:
-* $1 - a link to the Microsoft SQL Server home page, the anchor text of which is "Microsoft SQL Server".',
-       'config-invalid-db-name' => 'Used as error message. Parameters:
-* $1 - database name
-See also:
-* {{msg-mw|Config-invalid-db-prefix}}',
-       'config-invalid-db-prefix' => 'Used as error message. Parameters:
-* $1 - database prefix
-See also:
-* {{msg-mw|Config-invalid-db-name}}',
-       'config-connection-error' => '$1 is the external error from the database, such as "DB connection error: Access denied for user \'dba\'@\'localhost\' (using password: YES) (localhost)."
-
-If you\'re translating this message to a right-to-left language, consider writing <nowiki><div dir="ltr">$1.</div></nowiki>. (When the bidi features for HTML5 will be implemented in the browsers, it will probably be a good idea to write it as <nowiki><div dir="auto">$1.</div></nowiki>.)',
-       'config-invalid-schema' => '*$1 - schema name',
-       'config-db-sys-user-exists-oracle' => 'Used as error message. Parameters:
-* $1 - database username',
-       'config-postgres-old' => 'Used as error message. Used as warning. Parameters:
-* $1 - minimum version
-* $2 - the version of PostgreSQL that has been installed',
-       'config-mssql-old' => 'Used as an error message. Parameters:
-* $1 - minimum version
-* $2 - the version of Microsoft SQL Server that has been installed',
-       'config-sqlite-parent-unwritable-group' => 'Used as SQLite error message. Parameters:
-* $1 - data directory
-* $2 - "dirname" part of $1
-* $3 - "basename" part of $1
-* $4 - web server\'s primary group name
-See also:
-* {{msg-mw|Config-sqlite-parent-unwritable-nogroup}}',
-       'config-sqlite-parent-unwritable-nogroup' => 'Used as SQLite error message. Parameters:
-* $1 - data directory
-* $2 - "dirname" part of $1
-* $3 - "basename" part of $1
-See also:
-* {{msg-mw|Config-sqlite-parent-unwritable-group}}',
-       'config-sqlite-mkdir-error' => 'Used as SQLite error message. Parameters:
-* $1 - data directory name',
-       'config-sqlite-dir-unwritable' => 'webserver refers to a software like Apache or Lighttpd.',
-       'config-sqlite-connection-error' => 'Used as SQLite error message. Parameters:
-* $1 - error message which SQLite server returned',
-       'config-sqlite-readonly' => 'Used as SQLite error message. Parameters:
-* $1 - filename',
-       'config-sqlite-cant-create-db' => 'Used as SQLite error message. Parameters:
-* $1 - filename',
-       'config-mssql-auth' => 'radio button label',
-       'config-mssql-install-auth' => 'Used as the help text for the "Authentication type" radio button when typing in database settings for installation',
-       'config-mssql-web-auth' => 'Used as the help text for the "Authentication type" radio button when typing in database settings for normal wiki usage',
-       'config-mssql-sqlauth' => 'Radio button',
-       'config-mssql-windowsauth' => 'Radio button. The official term is "Integrated Windows Authentication" but Microsoft itself uses "Windows Authentication" elsewhere in Microsoft SQL Server as a synonym.',
-       'config-can-upgrade' => 'Parameters:
-* $1 - Version or Revision indicator.',
-       'config-upgrade-done' => 'Used as success message. Parameters:
-* $1 - full URL of index.php
-See also:
-* {{msg-mw|config-upgrade-done-no-regenerate}}',
-       'config-upgrade-done-no-regenerate' => 'Used as success message. Parameters:
-* $1 - full URL of index.php
-See also:
-* {{msg-mw|config-upgrade-done}}',
-       'config-regenerate' => 'This message appears in a button after LocalSettings.php is generated and downloaded at the end of the MediaWiki installation process.',
-       'config-show-table-status' => '{{doc-important|"<code>SHOW TABLE STATUS</code>" is a MySQL command. Do not translate this.}}',
-       '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:
-* {{msg-mw|Config-ns-site-name}}
-* {{msg-mw|Config-ns-other}}
-{{Identical|Project}}',
-       'config-ns-site-name' => 'Used as label for "namespace type" radio button. Parameters:
-* $1 - wiki name
-See also:
-* {{msg-mw|Config-ns-generic}}
-* {{msg-mw|Config-ns-other}}',
-       'config-ns-other' => "Used as label for \"namespace type\" radio button.
-
-This message is followed by the input box which enables to '''specify''' a namespace name.
-
-See also:
-* {{msg-mw|Config-ns-site-name}}
-* {{msg-mw|Config-ns-generic}}",
-       'config-ns-invalid' => 'Used as error message. Parameters:
-* $1 - namespace name
-See also:
-* {{msg-mw|Config-ns-conflict}}',
-       'config-ns-conflict' => 'Used as error message. Parameters:
-* $1 - namespace name
-See also:
-* {{msg-mw|Config-ns-invalid}}',
-       'config-admin-name' => '{{Identical|Your name}}',
-       'config-admin-password' => '{{Identical|Password}}',
-       'config-admin-name-invalid' => 'Used as error message. Parameters:
-* $1 - username of administrator',
-       'config-admin-email' => '{{Identical|E-mail address}}',
-       'config-admin-error-user' => 'Used as error message. Parameters:
-* $1 - username of administrator
-See also:
-* {{msg-mw|Config-admin-error-password}}',
-       'config-admin-error-password' => 'Used as error message. Parameters:
-* $1 - username of administrator
-* $2 - error message
-See also:
-* {{msg-mw|Config-admin-error-user}}',
-       'config-subscribe' => 'Used as label for the installer checkbox',
-       'config-subscribe-help' => '"Low-volume" in this context means that there will be few e-mails to that mailing list per time period.',
-       'config-profile-help' => 'Messages referenced:
-* {{msg-mw|config-profile-wiki}}
-* {{msg-mw|config-profile-no-anon}}
-* {{msg-mw|config-profile-fishbowl}}
-* {{msg-mw|config-profile-private}}',
-       'config-email-settings' => '{{Identical|E-mail setting}}',
-       'config-email-user' => '{{Identical|Enable user-to-user e-mail}}',
-       'config-upload-help' => 'The word "mode" here refers to the access rights given to various user groups when attempting to create and store files and/or subdiretories in the said directory on the server. It also refers to the <code>mode</code> command used to maipulate said right mask under Unix, Linux, and similar operating systems. A less operating-system-centric translation is fine.',
-       'config-logo-help' => '',
-       'config-instantcommons' => 'Used as label for the checkbox.
-
-The help message for this checkbox is:
-* {{msg-mw|Config-instantcommons-help}}',
-       'config-instantcommons-help' => 'Used as help message for the checkbox which is labeled {{msg-mw|config-instantcommons}}.',
-       'config-cc-not-chosen' => '{{doc-important|Do not translate the "<code>proceed</code>" part.}}
-This message refers to a block of HTML being embedded into the installer page. It comes from the Creative Commons Web site. The block is in the English language. It is a scripted license chooser. When an individual license has been selected, it asks you to click "proceed" so as to return to the MediaWiki installer page.',
-       'config-memcached-servers' => '{{doc-important|Do not translate "memcached".}}
-{{Identical|Memcached server}}',
-       'config-memcache-badip' => 'Used as error message. Parameters:
-* $1 - IP address for Memcached
-See also:
-* {{msg-mw|Config-memcache-noport}}
-* {{msg-mw|Config-memcache-badport}}',
-       'config-memcache-noport' => 'Used as error message. Parameters:
-* $1 - Memcached server name
-See also:
-* {{msg-mw|Config-memcache-badip}}
-* {{msg-mw|Config-memcache-badport}}',
-       'config-memcache-badport' => 'Used as error message. Parameters:
-* $1 - 1 (hard-coded)
-* $2 - 65535 (hard-coded)
-See also:
-* {{msg-mw|Config-memcache-badip}}
-* {{msg-mw|Config-memcache-noport}}',
-       'config-extensions' => '{{Identical|Extension}}',
-       'config-extensions-help' => '{{doc-important|Do not translate <code>./extensions</code>.}}
-Used in help box.',
-       'config-install-step-done' => '{{Identical|Done}}',
-       'config-install-step-failed' => '{{Identical|Failed}}',
-       'config-install-database' => '*{{msg-mw|Config-install-database}}
-*{{msg-mw|Config-install-tables}}
-*{{msg-mw|Config-install-schema}}
-*{{msg-mw|Config-install-user}}
-*{{msg-mw|Config-install-interwiki}}
-*{{msg-mw|Config-install-stats}}
-*{{msg-mw|Config-install-keys}}
-*{{msg-mw|Config-install-sysop}}
-*{{msg-mw|Config-install-mainpage}}',
-       'config-install-schema' => '*{{msg-mw|Config-install-database}}
-*{{msg-mw|Config-install-tables}}
-*{{msg-mw|Config-install-schema}}
-*{{msg-mw|Config-install-user}}
-*{{msg-mw|Config-install-interwiki}}
-*{{msg-mw|Config-install-stats}}
-*{{msg-mw|Config-install-keys}}
-*{{msg-mw|Config-install-sysop}}
-*{{msg-mw|Config-install-mainpage}}',
-       'config-install-pg-schema-failed' => 'Parameters:
-* $1 = database user name (usernames in the database are unrelated to wiki user names)
-* $2 =',
-       'config-pg-no-plpgsql' => 'Used as error message. Parameters:
-* $1 - database name',
-       'config-install-user' => 'Message indicates that the user is being created
-
-See also:
-*{{msg-mw|Config-install-database}}
-*{{msg-mw|Config-install-tables}}
-*{{msg-mw|Config-install-schema}}
-*{{msg-mw|Config-install-user}}
-*{{msg-mw|Config-install-interwiki}}
-*{{msg-mw|Config-install-stats}}
-*{{msg-mw|Config-install-keys}}
-*{{msg-mw|Config-install-sysop}}
-*{{msg-mw|Config-install-mainpage}}',
-       'config-install-user-alreadyexists' => 'Used as warning. Parameters:
-* $1 - database username',
-       'config-install-user-create-failed' => 'Used as MySQL warning and as PostgreSQL error. Parameters:
-* $1 - database username
-* $2 - detailed warning/error message',
-       'config-install-user-grant-failed' => 'Parameters:
-* $1 is the database username for which granting rights failed
-* $2 is the error message',
-       'config-install-user-missing' => 'Used as PostgreSQL error message. Parameters:
-* $1 - database username
-See also:
-* {{msg-mw|Config-install-user-missing-create}}',
-       'config-install-user-missing-create' => 'Used as PostgreSQL error message. Parameters:
-* $1 - database username
-See also:
-* {{msg-mw|Config-install-user-missing}}',
-       'config-install-tables' => 'Message indicates that the tables are being created
-
-See also:
-*{{msg-mw|Config-install-database}}
-*{{msg-mw|Config-install-tables}}
-*{{msg-mw|Config-install-schema}}
-*{{msg-mw|Config-install-user}}
-*{{msg-mw|Config-install-interwiki}}
-*{{msg-mw|Config-install-stats}}
-*{{msg-mw|Config-install-keys}}
-*{{msg-mw|Config-install-sysop}}
-*{{msg-mw|Config-install-mainpage}}',
-       'config-install-tables-failed' => 'Used as PostgreSQL error message. Parameters:
-* $1 - detailed error message',
-       'config-install-interwiki' => 'Message indicates that the interwikitables are being populated
-
-See also:
-*{{msg-mw|Config-install-database}}
-*{{msg-mw|Config-install-tables}}
-*{{msg-mw|Config-install-schema}}
-*{{msg-mw|Config-install-user}}
-*{{msg-mw|Config-install-interwiki}}
-*{{msg-mw|Config-install-stats}}
-*{{msg-mw|Config-install-keys}}
-*{{msg-mw|Config-install-sysop}}
-*{{msg-mw|Config-install-mainpage}}',
-       'config-install-interwiki-list' => '{{doc-important|Do not translate <code>interwiki.list</code>.}}
-Used as error message.',
-       'config-install-stats' => '*{{msg-mw|Config-install-database}}
-*{{msg-mw|Config-install-tables}}
-*{{msg-mw|Config-install-schema}}
-*{{msg-mw|Config-install-user}}
-*{{msg-mw|Config-install-interwiki}}
-*{{msg-mw|Config-install-stats}}
-*{{msg-mw|Config-install-keys}}
-*{{msg-mw|Config-install-sysop}}
-*{{msg-mw|Config-install-mainpage}}',
-       'config-install-keys' => '*{{msg-mw|Config-install-database}}
-*{{msg-mw|Config-install-tables}}
-*{{msg-mw|Config-install-schema}}
-*{{msg-mw|Config-install-user}}
-*{{msg-mw|Config-install-interwiki}}
-*{{msg-mw|Config-install-stats}}
-*{{msg-mw|Config-install-keys}}
-*{{msg-mw|Config-install-sysop}}
-*{{msg-mw|Config-install-mainpage}}',
-       'config-insecure-keys' => 'Parameters:
-* $1 - A list of names of the secret keys that were generated.
-* $2 - the number of items in the list $1, to be used with PLURAL.',
-       'config-install-sysop' => 'Message indicates that the administrator user account is being created
-
-See also:
-*{{msg-mw|Config-install-database}}
-*{{msg-mw|Config-install-tables}}
-*{{msg-mw|Config-install-schema}}
-*{{msg-mw|Config-install-user}}
-*{{msg-mw|Config-install-interwiki}}
-*{{msg-mw|Config-install-stats}}
-*{{msg-mw|Config-install-keys}}
-*{{msg-mw|Config-install-sysop}}
-*{{msg-mw|Config-install-mainpage}}',
-       'config-install-subscribe-fail' => '{{doc-important|"mediawiki-announce" is the name of a mailing list and should not be translated.}}',
-       'config-install-mainpage' => '*{{msg-mw|Config-install-database}}
-*{{msg-mw|Config-install-tables}}
-*{{msg-mw|Config-install-schema}}
-*{{msg-mw|Config-install-user}}
-*{{msg-mw|Config-install-interwiki}}
-*{{msg-mw|Config-install-stats}}
-*{{msg-mw|Config-install-keys}}
-*{{msg-mw|Config-install-sysop}}
-*{{msg-mw|Config-install-mainpage}}',
-       'config-install-mainpage-failed' => 'Used as error message. Parameters:
-* $1 - detailed error message',
-       'config-install-done' => 'Parameters:
-* $1 is the URL to LocalSettings download
-* $2 is a link to the wiki.
-* $3 is a download link with attached download icon. The config-download-localsettings message will be used as the link text.',
-       'config-download-localsettings' => 'The link text used in the download link in config-install-done.',
-       'config-help' => 'This is used in help boxes.
-{{Identical|Help}}',
-       'config-nofile' => 'Used as failure message. Parameters:
-* $1 - filename',
-       'config-extension-link' => 'Shown on last page of installation to inform about possible extensions.',
-       'mainpagetext' => 'Along with {{msg-mw|mainpagedocfooter}}, the text you will see on the Main Page when your wiki is installed.',
-       'mainpagedocfooter' => 'Along with {{msg-mw|mainpagetext}}, the text you will see on the Main Page when your wiki is installed.
-This might be a good place to put information about <nowiki>{{GRAMMAR:}}</nowiki>. See [[{{NAMESPACE}}:{{BASEPAGENAME}}/fi]] for an example. For languages having grammatical distinctions and not having an appropriate <nowiki>{{GRAMMAR:}}</nowiki> software available, a suggestion to check and possibly amend the messages having <nowiki>{{SITENAME}}</nowiki> may be valuable. See [[{{NAMESPACE}}:{{BASEPAGENAME}}/ksh]] for an example.',
-);
-
-/** Afrikaans (Afrikaans)
- * @author Naudefj
- */
-$messages['af'] = array(
-       'config-desc' => 'Die Installasieprogram vir MediaWiki',
-       'config-title' => 'Installasie MediaWiki $1',
-       'config-information' => 'Inligting',
-       'config-localsettings-key' => 'Opgradeer-sleutel:',
-       'config-localsettings-badkey' => 'Die sleutel wat u verskaf het is verkeerd.',
-       'config-session-error' => 'Fout met begin van sessie: $1',
-       'config-no-session' => "U sessiedata is verlore!
-Kontroleer u php.ini en maak seker dat <code>session.save_path</code> na 'n geldige gids wys.",
-       'config-your-language' => 'U taal:',
-       'config-your-language-help' => "Kies 'n taal om tydens die installasieproses te gebruik.",
-       'config-wiki-language' => 'Wiki se taal:',
-       'config-wiki-language-help' => 'Kies die taal waarin die wiki hoofsaaklik geskryf sal word.',
-       'config-back' => '← Terug',
-       'config-continue' => 'Gaan voort →',
-       'config-page-language' => 'Taal',
-       'config-page-welcome' => 'Welkom by MediaWiki!',
-       'config-page-dbconnect' => 'Konnekteer na die databasis',
-       'config-page-upgrade' => "Opgradeer 'n bestaande installasie",
-       'config-page-dbsettings' => 'Databasis-instellings',
-       'config-page-name' => 'Naam',
-       'config-page-options' => 'Opsies',
-       'config-page-install' => 'Installeer',
-       'config-page-complete' => 'Voltooi!',
-       'config-page-restart' => 'Herbegin installasie',
-       'config-page-readme' => 'Lees my',
-       'config-page-releasenotes' => 'Vrystellingsnotas',
-       'config-page-copying' => 'Besig met kopiëring',
-       'config-page-upgradedoc' => 'Besig met opgradering',
-       'config-page-existingwiki' => 'Bestaande wiki',
-       'config-restart' => 'Ja, herbegin dit',
-       'config-sidebar' => '* [//www.mediawiki.org MediaWiki tuisblad]
-* [//www.mediawiki.org/wiki/Help:Contents Gebruikershandleiding] (Engelstalig)
-* [//www.mediawiki.org/wiki/Manual:Contents Administrateurshandleiding] (Engelstalig)
-* [//www.mediawiki.org/wiki/Manual:FAQ Algemene vrae] (Engelstalig)
-----
-* <doclink href=Readme>Lees my</doclink>
-* <doclink href=ReleaseNotes>Vrystellingsnotas</doclink>
-* <doclink href=Copying>Kopiëring</doclink>
-* <doclink href=UpgradeDoc>Opgradering</doclink>',
-       'config-env-good' => 'Die omgewing is gekontroleer.
-U kan MediaWiki installeer.',
-       'config-env-bad' => 'Die omgewing is gekontroleer.
-U kan nie MediaWiki installeer nie.</span>',
-       'config-env-php' => 'PHP $1 is tans geïnstalleer.',
-       'config-no-db' => "Kon nie 'n geskikte databasisdrywer vind nie!", # Fuzzy
-       'config-memory-raised' => 'PHP se <code>memory_limit</code> is $1, en is verhoog tot $2.',
-       'config-memory-bad' => "'''Waarskuwing:''' PHP se <code>memory_limit</code> is $1.
-Dit is waarskynlik te laag.
-Die installasie mag moontlik faal!",
-       'config-xcache' => '[Http://trac.lighttpd.net/xcache/ XCache] is geïnstalleer',
-       'config-apc' => '[Http://www.php.net/apc APC] is geïnstalleer',
-       'config-wincache' => '[Http://www.iis.net/download/WinCacheForPhp WinCache] is geïnstalleer',
-       'config-diff3-bad' => 'GNU diff3 nie gevind nie.',
-       'config-db-type' => 'Databasistipe:',
-       'config-db-host' => 'Databasisbediener:',
-       'config-db-host-oracle' => 'Databasis-TNS:',
-       'config-db-wiki-settings' => 'Identifiseer hierdie wiki',
-       'config-db-name' => 'Databasisnaam:',
-       'config-db-name-oracle' => 'Databasis-skema:',
-       'config-db-install-account' => 'Gebruiker vir die installasie',
-       'config-db-username' => 'Databasis gebruikersnaam:',
-       'config-db-password' => 'Databasis wagwoord:',
-       'config-db-prefix' => 'Voorvoegsel vir databasistabelle:',
-       'config-db-charset' => 'Karakterstelsel vir databasis',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binêr',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-mysql-old' => 'U moet MySQL $1 of later gebruik.
-U gebruik tans $2.',
-       'config-db-port' => 'Databasispoort:',
-       'config-db-schema' => 'Skema vir MediaWiki',
-       'config-sqlite-dir' => 'Gids vir SQLite se data:',
-       'config-oracle-def-ts' => 'Standaard tabelruimte:',
-       'config-oracle-temp-ts' => 'Tydelike tabelruimte:',
-       'config-header-mysql' => 'MySQL-instellings',
-       'config-header-postgres' => 'PostgreSQL-instellings',
-       'config-header-sqlite' => 'SQLite-instellings',
-       'config-header-oracle' => 'Oracle-instellings',
-       'config-invalid-db-type' => 'Ongeldige databasistipe',
-       'config-missing-db-name' => 'U moet \'n waarde vir "Databasnaam" verskaf',
-       'config-sqlite-readonly' => 'Die lêer <code>$1</code> kan nie geskryf word nie.',
-       'config-sqlite-cant-create-db' => 'Kon nie databasislêer <code>$1</code> skep nie.',
-       'config-upgrade-done-no-regenerate' => 'Opgradering is voltooi.
-
-U kan nou [$1 u wiki gebruik].',
-       'config-regenerate' => 'Herskep LocalSettings.php →',
-       'config-show-table-status' => 'Die uitvoer van <code>SHOW TABLE STATUS</code> het gefaal!',
-       'config-db-web-account' => 'Databasisgebruiker vir toegang tot die web',
-       'config-mysql-engine' => 'Stoor-enjin:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-charset' => 'Karakterstelsel vir databasis:',
-       'config-mysql-binary' => 'Binêr',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'Naam van die wiki:',
-       'config-site-name-blank' => "Verskaf 'n naam vir u webwerf.",
-       'config-project-namespace' => 'Projeknaamruimte:',
-       'config-ns-generic' => 'Projek',
-       'config-ns-site-name' => 'Dieselfde as die wiki: $1',
-       'config-ns-other' => 'Ander (spesifiseer)',
-       'config-ns-other-default' => 'MyWiki',
-       'config-admin-box' => 'Administrateur se gebruiker',
-       'config-admin-name' => 'U naam:',
-       'config-admin-password' => 'Wagwoord:',
-       'config-admin-password-confirm' => 'Wagwoord weer:',
-       'config-admin-password-blank' => "Verskaf 'n wagwoord vir die administrateur in.",
-       'config-admin-password-same' => 'Die wagwoord mag nie dieselfde as die gebruikersnaam wees nie.',
-       'config-admin-password-mismatch' => 'Die twee wagwoorde wat u ingetik het stem nie ooreen nie.',
-       'config-admin-email' => 'E-posadres:',
-       'config-optional-continue' => 'Vra my meer vrae.',
-       'config-optional-skip' => 'Ek is reeds verveeld, installeer maar net die wiki.',
-       'config-profile-wiki' => 'Tradisionele wiki', # Fuzzy
-       'config-profile-no-anon' => 'Skep van gebruiker is verpligtend',
-       'config-profile-fishbowl' => 'Slegs vir gemagtigde redaksie',
-       'config-profile-private' => 'Privaat wiki',
-       'config-license' => 'Kopiereg en lisensie:',
-       'config-license-none' => 'Geen lisensie in die onderskrif',
-       'config-license-pd' => 'Publieke Domein',
-       'config-license-cc-choose' => "Kies 'n Creative Commons-lisensie",
-       'config-email-settings' => 'E-posinstellings',
-       'config-email-sender' => 'E-posadres vir antwoorde:',
-       'config-upload-settings' => 'Oplaai van beelde en lêer',
-       'config-upload-enable' => 'Aktiveer die oplaai van lêers',
-       'config-upload-deleted' => 'Gids vir verwyderde lêers:',
-       'config-logo' => 'URL vir logo:',
-       'config-cc-again' => 'Kies weer...',
-       'config-advanced-settings' => 'Gevorderde konfigurasie',
-       'config-memcached-servers' => 'Memcached-bedieners:',
-       'config-extensions' => 'Uitbreidings',
-       'config-install-step-done' => 'gedoen',
-       'config-install-step-failed' => 'het misluk',
-       'config-install-extensions' => 'Insluitende uitbreidings',
-       'config-install-database' => 'Stel die databasis op',
-       'config-install-pg-schema-not-exist' => 'Die skema vir PostgreSQL bestaan ​​nie.',
-       'config-install-pg-schema-failed' => 'Die skep van tabelle het gefaal.
-Maak seker dat die gebruiker "$1" na skema "$2" mag skryf.',
-       'config-install-pg-commit' => 'Wysigings word gestoor',
-       'config-install-pg-plpgsql' => 'Kontroleer vir taal PL/pgSQL',
-       'config-pg-no-plpgsql' => 'U moet die taal PL/pgSQL in die database $1 installeer',
-       'config-install-user' => 'Besig om die databasisgebruiker te skep',
-       'config-install-user-alreadyexists' => 'Gebruiker "$1" bestaan al reeds',
-       'config-install-user-create-failed' => 'Skep van gebruiker "$1" het gefaal: $2',
-       'config-install-user-grant-failed' => 'Die toekenning van regte aan gebruiker "$1" het gefaal: $2',
-       'config-install-tables' => 'Skep tabelle',
-       'config-install-tables-exist' => "'''Waarskuwing''': Dit lyk of MediaWiki se tabelle reeds bestaan.
-Die skep van tabelle word oorgeslaan.",
-       'config-install-tables-failed' => "'''Fout''': die skep van 'n tabel het gefaal met die volgende fout: $1",
-       'config-install-interwiki' => 'Besig om data in die interwiki-tabel in te laai',
-       'config-install-interwiki-list' => 'Kon nie die lêer <code>interwiki.list</code> vind nie.',
-       'config-install-interwiki-exists' => "'''Waarskuwing''': Die interwiki-tabel bevat reeds inskrywings.
-Die standaardlys word oorgeslaan.",
-       'config-install-stats' => 'Inisialiseer statistieke',
-       'config-install-keys' => 'Genereer geheime sleutel', # Fuzzy
-       'config-install-sysop' => "Skep 'n gebruiker vir die administrateur",
-       'config-install-subscribe-fail' => 'Kon nie vir MediaWiki-announce inskryf nie: $1',
-       'config-install-mainpage' => 'Skep die hoofblad met standaard inhoud',
-       'config-install-extension-tables' => 'Skep tabelle vir aangeskakel uitbreidings',
-       'config-install-mainpage-failed' => 'Kon nie die hoofblad laai nie: $1',
-       'config-install-done' => "'''Veels geluk!'''
-U het MediaWiki suksesvol geïnstalleer.
-
-Die installeerder het 'n <code>LocalSettings.php</code> lêer opgestel.
-Dit bevat al u instellings.
-
-U sal dit moet [$1 aflaai] en dit in die hoofgids van u wiki-installasie plaas; in dieselfde gids as index.php.
-'''Let wel''': As u dit nie nou doen nie, sal die gegenereerde konfigurasielêer nie later meer beskikbaar wees nadat u die installasie afgesluit het nie.
-
-As dit gedoen is, kan u '''[u $2 wiki besoek]'''.", # Fuzzy
-       'config-download-localsettings' => 'Laai <code>LocalSettings.php</code> af',
-       'config-help' => 'hulp',
-       'mainpagetext' => "'''MediaWiki is suksesvol geïnstalleer.'''",
-       'mainpagedocfooter' => "Konsulteer '''[//meta.wikimedia.org/wiki/Help:Contents User's Guide]''' vir inligting oor hoe om die wikisagteware te gebruik.
-
-== Hoe om te Begin ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
-);
-
-/** Gheg Albanian (Gegë)
- * @author Bresta
- */
-$messages['aln'] = array(
-       'mainpagetext' => "'''MediaWiki software u instalue me sukses.'''",
-       'mainpagedocfooter' => 'Për mâ shumë informata rreth përdorimit të softwareit wiki, ju lutem shikoni [//meta.wikimedia.org/wiki/Help:Contents dokumentacionin].
-
-
-== Për fillim ==
-
-* [//www.mediawiki.org/wiki/Help:Configuration_settings Konfigurimi i MediaWikit]
-* [//www.mediawiki.org/wiki/Help:FAQ Pyetjet e shpeshta rreth MediaWikit]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Njoftime rreth MediaWikit]', # Fuzzy
-);
-
-/** Amharic (አማርኛ)
- */
-$messages['am'] = array(
-       'mainpagetext' => "'''MediaWiki በትክክል ማስገባቱ ተከናወነ።'''",
-       'mainpagedocfooter' => "ስለ ዊኪ ሶፍትዌር ጥቅም ለመረዳት፣ [//meta.wikimedia.org/wiki/Help:Contents User's Guide] ያንብቡ።
-
-== ለመጀመር ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
-);
-
-/** Aragonese (aragonés)
- * @author Juanpabl
- */
-$messages['an'] = array(
-       'mainpagetext' => "'''O programa MediaWiki s'ha instalato correctament.'''",
-       'mainpagedocfooter' => "Consulta a [//meta.wikimedia.org/wiki/Help:Contents Guía d'usuario] ta mirar información sobre cómo usar o software wiki.
-
-== Ta prencipiar ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de caracteristicas confegurables]
-* [//www.mediawiki.org/wiki/Manual:FAQ Preguntas cutianas sobre MediaWiki (FAQ)]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correu sobre ta anuncios de MediaWiki]", # Fuzzy
-);
-
-/** Old English (Ænglisc)
- * @author Gott wisst
- */
-$messages['ang'] = array(
-       '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ȝ ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Onfæstnunȝa ȝesetednessa ȝetæl]
-* [//www.mediawiki.org/wiki/Manual:FAQ Ȝetæl oft ascodra ascunȝa ymb MediaǷiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Ǣrendunȝȝetæl nīƿra MediaǷiki forþsendnessa]', # Fuzzy
-);
-
-/** Arabic (العربية)
- * @author Meno25
- * @author Mido
- * @author OsamaK
- * @author روخو
- */
-$messages['ar'] = array(
-       'config-desc' => 'مثبت لميدياويكي',
-       'config-title' => 'تثبيت ميدياويكي $1',
-       'config-information' => 'معلومات',
-       'config-back' => '→ ارجع',
-       'config-continue' => 'استمر ←',
-       'config-page-language' => 'اللغة',
-       'config-page-name' => 'الاسم',
-       'config-db-username' => 'اسم مستخدم قاعدة البيانات:',
-       'config-db-password' => 'كلمة سر قاعدة البيانات:',
-       'config-db-port' => 'منفذ قاعدة البيانات:',
-       'config-type-mysql' => 'ماي إس كيو إل',
-       'config-type-postgres' => 'بوستجر إس كيو إل',
-       'config-type-sqlite' => 'إس كيو لايت',
-       'config-type-oracle' => 'أوراكل',
-       'config-admin-email' => 'عنوان البريد الإلكتروني:',
-       'mainpagetext' => "'''تم تثبيت ميدياويكي بنجاح.'''",
-       'mainpagedocfooter' => 'استشر [//meta.wikimedia.org/wiki/Help:Contents دليل المستخدم] لمعلومات حول استخدام برنامج الويكي.
-
-== البداية ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings قائمة إعدادات الضبط]
-* [//www.mediawiki.org/wiki/Manual:FAQ أسئلة متكررة حول ميدياويكي]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce القائمة البريدية الخاصة بإصدار ميدياويكي]', # Fuzzy
-);
-
-/** Aramaic (ܐܪܡܝܐ)
- * @author Basharh
- */
-$messages['arc'] = array(
-       'config-information' => 'ܝܕ̈ܥܬܐ',
-       'config-your-language' => 'ܠܫܢܐ ܕܝܠܟ:',
-       'config-wiki-language' => 'ܠܫܢܐ ܕܘܝܩܝ:',
-       'config-page-language' => 'ܠܫܢܐ',
-       'config-page-name' => 'ܫܡܐ',
-       'config-page-options' => 'ܓܒܝܬ̈ܐ',
-       'config-page-install' => 'ܢܨܘܒ',
-       'config-ns-other-default' => 'ܘܝܩܝ ܕܝܠܝ',
-       'config-admin-box' => 'ܚܘܫܒܢܐ ܕܡܕܒܪܢܐ',
-       'config-admin-name' => 'ܫܡܐ ܕܝܠܟ:',
-       'config-admin-password' => 'ܡܠܬܐ ܕܥܠܠܐ:',
-       'config-admin-password-confirm' => 'ܡܠܬܐ ܕܥܠܠܐ ܙܒܢܬܐ ܐܚܪܬܐ:',
-       'config-admin-email' => 'ܡܘܢܥܐ ܕܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ:',
-       'config-profile-private' => 'ܘܝܩܝ ܦܪܨܘܦܝܐ',
-       'config-email-settings' => 'ܛܘܝܒ̈ܐ ܕܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ',
-);
-
-/** Moroccan Spoken Arabic (Maġribi)
- * @author Enzoreg
- */
-$messages['ary'] = array(
-       'mainpagetext' => "'''MediaWiki ṫ'instala be najaḫ.'''",
-       'mainpagedocfooter' => 'Ila bġiṫiw meĝlomaṫ ĥrin baċ ṫesṫeĝmlo had l-lojisyél siro ċofo [//meta.wikimedia.org/wiki/Aide:Contenu Gid dyal l-mosṫeĥdim]
-
-== L-bdaya mĝa MediaWiki ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista dyal l-paramétraṫ dyal l-konfigurasyon]
-* [//www.mediawiki.org/wiki/Manual:FAQ/fr FAQ fe MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista dyal l-modakaraṫ ĝla versyonaṫ jdad dyal MediaWiki]', # Fuzzy
-);
-
-/** Egyptian Spoken Arabic (مصرى)
- */
-$messages['arz'] = array(
-       'mainpagetext' => "''' ميدياويكى اتنزلت بنجاح.'''",
-       'mainpagedocfooter' => 'اسال [//meta.wikimedia.org/wiki/Help:Contents دليل اليوزر] للمعلومات حوالين استخدام برنامج الويكى.
-
-== البداية ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings لستة اعدادات الضبط]
-* [//www.mediawiki.org/wiki/Manual:FAQ أسئلة بتكرر حوالين الميدياويكى]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce لستة الايميلات بتاعة اعلانات الميدياويكى]', # Fuzzy
-);
-
-/** Assamese (অসমীয়া)
- * @author Chaipau
- * @author Gitartha.bordoloi
- */
-$messages['as'] = array(
-       'mainpagetext' => "'''মিডিয়াৱিকি সফলভাবে ইন্সটল কৰা হ'ল ।'''",
-       'mainpagedocfooter' => "ৱিকি চ'ফটৱেৰ কেনেকৈ ব্যৱহাৰ কৰিব [//meta.wikimedia.org/wiki/Help:Contents সদস্যৰ সহায়িকা] চাওঁক ।
-
-== আৰম্ভণি কৰিবলৈ ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
-);
-
-/** Asturian (asturianu)
- * @author Xuacu
- */
-$messages['ast'] = array(
-       'config-desc' => "L'instalador pa MediaWiki",
-       'config-title' => 'Instalación de MediaWiki $1',
-       'config-information' => 'Información',
-       'config-localsettings-upgrade' => "Detectose un ficheru <code>LocalSettings.php</code>.
-P'anovar esta instalación, escriba'l valor de
-<code>\$wgUpgradeKey</code> nel cuadru d'abaxo.
-Alcontraralu en <code>LocalSettings.php</code>.",
-       'config-localsettings-cli-upgrade' => "Deteutose un ficheru <code>LocalSettings.php</code>.
-P'anovar esta instalación, execute <code>update.php</code>",
-       'config-localsettings-key' => "Clave d'anovamientu:",
-       'config-localsettings-badkey' => 'La clave que dio ye incorreuta.',
-       'config-upgrade-key-missing' => "Deteutose una instalación esistente de MediaWiki.
-P'anovar esta instalación, ponga la llinia siguiente al final del ficheru <code>LocalSettings.php</code>:
-
-$1",
-       'config-localsettings-incomplete' => 'Paez que\'l ficheru <code>LocalSettings.php</code> esistente ta incompletu.
-La variable $1 nun ta definida.
-Camude\'l ficheru <code>LocalSettings.php</code> pa qu\'esta variable quede definida y calque "{{int:Config-continue}}".',
-       'config-localsettings-connection-error' => 'Alcontrose un error al conectar cola base de datos usando la configuración especificada en <code>LocalSettings.php</code> o <code>AdminSettings.php</code>. Corrixa esta configuración y vuelva a intentalo.
-
-$1',
-       'config-your-language' => 'La so llingua:',
-       'config-your-language-help' => "Seleicione la llingua a emplegar nel procesu d'instalación.",
-       'config-wiki-language' => 'Llingua de la wiki:',
-       'config-wiki-language-help' => "Seleicione la llingua que s'usará preferentemente na wiki.",
-       'config-back' => '← Atrás',
-       'config-continue' => 'Siguir →',
-       'config-page-language' => 'Llingua',
-       'config-page-welcome' => '¡Bienveníu a MediaWiki!',
-       'config-page-dbconnect' => 'Conectar cola base de datos',
-       'config-page-upgrade' => 'Anovar instalación esistente',
-       'config-page-dbsettings' => 'Configuración de la base de datos',
-       'config-page-name' => 'Nome',
-       'config-page-options' => 'Opciones',
-       'config-page-install' => 'Instalar',
-       'config-page-complete' => '¡Completo!',
-       'config-page-restart' => 'Reaniciar la instalación',
-       'config-page-readme' => 'Llei-me',
-       'config-page-releasenotes' => 'Notes de la versión',
-       'config-page-copying' => 'Copiar',
-       'config-page-upgradedoc' => 'Anovando',
-       'config-page-existingwiki' => 'Wiki esistente',
-       'config-download-localsettings' => 'Descargar <code>LocalSettings.php</code>',
-       'config-help' => 'Ayuda',
-       'config-nofile' => 'Nun pudo atopase\'l ficheru "$1". ¿Desaniciose?',
-       'mainpagetext' => "'''MediaWiki instalóse correchamente.'''",
-       'mainpagedocfooter' => 'Visita la [//meta.wikimedia.org/wiki/Help:Contents Guía del usuariu] pa saber cómo usar esti software wiki.
-
-== Empecipiando ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Llista de les opciones de configuración]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ de MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de corréu de les ediciones de MediaWiki]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Llocaliza MediaWiki na to llingua]',
-);
-
-/** Kotava (Kotava)
- */
-$messages['avk'] = array(
-       'mainpagetext' => "'''MediaWiki inkeyen talpeyot.'''",
-);
-
-/** Azerbaijani (azərbaycanca)
- * @author Cekli829
- * @author Vago
- * @author Wertuose
- */
-$messages['az'] = array(
-       'config-back' => '← Geri',
-       'config-continue' => 'Davam et →',
-       'config-page-language' => 'Dil',
-       'config-page-welcome' => 'MediaWiki-yə xoş gəlmişsiniz!',
-       'config-page-dbconnect' => 'Verilənlər bazasına birləşdir',
-       'config-page-dbsettings' => 'Verilənlər bazasının nizamlanması',
-       'config-page-name' => 'Ad',
-       'config-page-options' => 'Nizamlamalar:',
-       'config-page-install' => 'Nizamlama',
-       'config-page-complete' => 'Komplektləşdir!',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-ns-generic' => 'Layihə',
-       'config-admin-name' => 'Sizin adınız:',
-       'config-admin-password' => 'Parol:',
-       'config-admin-email' => 'E-poçt ünvanı',
-       'config-help' => 'kömək',
-       'mainpagetext' => "'''MediaWiki müvəffəqiyyətlə quraşdırıldı.'''",
-       'mainpagedocfooter' => 'Bu vikinin istifadəsi ilə bağlı məlumat almaq üçün [//meta.wikimedia.org/wiki/Help:Contents İstifadəçi məlumat səhifəsinə] baxın.
-
-== Faydalı keçidlər ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Tənzimləmələrin siyahısı]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki haqqında tez-tez soruşulan suallar]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-poçt siyahısı]', # Fuzzy
-);
-
-/** Bashkir (башҡортса)
- * @author Haqmar
- */
-$messages['ba'] = array(
-       'mainpagetext' => '«MediaWiki» уңышлы рәүештә ҡоролдо.',
-       'mainpagedocfooter' => 'Был вики менән эшләү тураһында мәғлүмәтте [//meta.wikimedia.org/wiki/Ярҙам:Белешмә ошонда] табып була.
-
-== Файҙалы сығанаҡтар ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Көйләүҙәр исемлеге (инг.)];
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki тураһында йыш бирелгән һорауҙар һәм яуаптар (инг.)];
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-ның яңы версиялары тураһында хәбәрҙәр алып тороу].', # Fuzzy
-);
-
-/** Bavarian (Boarisch)
- * @author Mucalexx
- */
-$messages['bar'] = array(
-       'mainpagetext' => "'''MediaWiki is erfoigreich installird worn.'''",
-       'mainpagedocfooter' => 'A Hüf zur da Benützung und Konfigurazion voh da Wiki-Software findst auf [//meta.wikimedia.org/wiki/Help:Contents Benützerhåndbuach].
-
-== Starthüfe ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Listen voh de Konfigurazionsvariaablen]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglisten voh de neichen MediaWiki-Versionen]', # Fuzzy
-);
-
-/** Southern Balochi (بلوچی مکرانی)
- */
-$messages['bcc'] = array(
-       'mainpagetext' => "'''مدیا وی کی گون موفقیت نصب بوت.'''",
-       'mainpagedocfooter' => "مشورت کنیت گون  [//meta.wikimedia.org/wiki/Help:Contents User's Guide] په گشیترین اطلاعات په استفاده چه برنامه ویکی.
-
-== شروع بیت ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
-);
-
-/** Bikol Central (Bikol Central)
- */
-$messages['bcl'] = array(
-       'mainpagetext' => "'''Instalado na an MediaWiki.'''",
-       'mainpagedocfooter' => "Konsultarón tabì an [//meta.wikimedia.org/wiki/Help:Contents User's Guide] para sa impormasyon sa paggamit nin progama kaining wiki.
-
-== Pagpopoon ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
-);
-
-/** Belarusian (беларуская)
- */
-$messages['be'] = array(
-       'mainpagetext' => "'''MediaWiki паспяхова ўсталяваная.'''",
-       'mainpagedocfooter' => 'Гл. [//meta.wikimedia.org/wiki/Help:Contents Дапаможнік карыстальніка (англ.)] па далейшыя звесткі аб карыстанні вікі-праграмамі.
-
-== З чаго пачаць ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Пералік параметраў канфігурацыі (англ.)]
-* [//www.mediawiki.org/wiki/Manual:FAQ ЧАПЫ MediaWiki (англ.)]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Ліставанне аб выпусках MediaWiki (англ.)]', # Fuzzy
-);
-
-/** Belarusian (Taraškievica orthography) (беларуская (тарашкевіца)‎)
- * @author EugeneZelenko
- * @author Jim-by
- * @author Wizardist
- * @author Zedlik
- * @author 아라
- */
-$messages['be-tarask'] = array(
-       'config-desc' => 'Праграма ўсталяваньня MediaWiki',
-       'config-title' => 'Усталяваньне MediaWiki $1',
-       'config-information' => 'Інфармацыя',
-       'config-localsettings-upgrade' => 'Выяўлены файл <code>LocalSettings.php</code>.
-Каб абнавіць гэтае усталяваньне, калі ласка, увядзіце значэньне <code>$wgUpgradeKey</code> у полі ніжэй.
-Яго можна знайсьці ў <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'Быў знойдзены файл <code>LocalSettings.php</code>.
-Каб зьмяніць гэтае ўсталяваньне, калі ласка, запусьціце <code>update.php</code>',
-       'config-localsettings-key' => 'Ключ паляпшэньня:',
-       'config-localsettings-badkey' => 'Пададзены Вамі ключ зьяўляецца няслушным',
-       'config-upgrade-key-missing' => 'Выяўленае існуючае ўсталяваньне MediaWiki.
-Каб абнавіць гэтае ўсталяваньне, калі ласка, устаўце наступны радок у канец Вашага <code>LocalSettings.php</code>:
-
-$1',
-       'config-localsettings-incomplete' => 'Выглядае, што існуючы <code>LocalSettings.php</code> зьяўляецца няпоўным.
-Не ўстаноўленая пераменная $1.
-Калі ласка, зьмяніце <code>LocalSettings.php</code> так, каб была ўстаноўленая гэтая пераменная, і націсьніце «{{int:Config-continue}}».',
-       'config-localsettings-connection-error' => 'Адбылася памылка падчас злучэньня з базай зьвестак з выкарыстаньнем наладаў, пазначаных у <code>LocalSettings.php</code> ці <code>AdminSettings.php</code>. Калі ласка, выпраўце гэтыя налады і паспрабуйце зноў.
-
-$1',
-       'config-session-error' => 'Памылка стварэньня сэсіі: $1',
-       'config-session-expired' => 'Скончыўся тэрмін дзеяньня зьвестак сэсіі.
-Сэсія мае абмежаваны тэрмін у $1.
-Вы можаце павялічыць яго, зьмяніўшы парамэтар <code>session.gc_maxlifetime</code> у php.ini.
-Перазапусьціце праграму ўсталяваньня.',
-       'config-no-session' => 'Зьвесткі сэсіі згубленыя!
-Праверце php.ini і ўпэўніцеся, што ўстаноўлены слушны шлях у <code>session.save_path</code>.',
-       'config-your-language' => 'Вашая мова:',
-       'config-your-language-help' => 'Выберыце мову для выкарыстаньня падчас усталяваньня.',
-       'config-wiki-language' => 'Мова вікі:',
-       'config-wiki-language-help' => 'Выберыце мову, на якой пераважна будзе пісацца зьмест у вікі.',
-       'config-back' => '← Назад',
-       'config-continue' => 'Далей →',
-       'config-page-language' => 'Мова',
-       'config-page-welcome' => 'Вітаем у MediaWiki!',
-       'config-page-dbconnect' => 'Падключэньне да базы зьвестак',
-       'config-page-upgrade' => 'Абнавіць існуючую ўстаноўку',
-       'config-page-dbsettings' => 'Налады базы зьвестак',
-       'config-page-name' => 'Назва',
-       'config-page-options' => 'Налады',
-       'config-page-install' => 'Усталяваць',
-       'config-page-complete' => 'Зроблена!',
-       'config-page-restart' => 'Пачаць усталяваньне зноў',
-       'config-page-readme' => 'Дадатковыя зьвесткі',
-       'config-page-releasenotes' => 'Заўвагі да выпуску',
-       'config-page-copying' => 'Капіяваньне',
-       'config-page-upgradedoc' => 'Абнаўленьне',
-       'config-page-existingwiki' => 'Існуючая вікі',
-       'config-help-restart' => 'Ці жадаеце выдаліць усе ўведзеныя зьвесткі і пачаць працэс усталяваньня зноў?',
-       'config-restart' => 'Так, пачаць зноў',
-       'config-welcome' => '== Праверка асяродзьдзя ==
-Праверка патрэбная для запэўніваньня, што гэтае асяродзьдзе слушнае для ўсталяваньня MediaWiki.
-Вам патрэбна будзе падаць усе вынікі праверкі, калі спатрэбіцца дапамога падчас усталяваньня.',
-       'config-copyright' => "== Аўтарскае права і ўмовы ==
-
-$1
-
-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 <doclink href=Copying>a copy of the GNU General Public License</doclink> along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. or [http://www.gnu.org/copyleft/gpl.html read it online].",
-       'config-sidebar' => '* [//www.mediawiki.org Хатняя старонка MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents Даведка для ўдзельнікаў]
-* [//www.mediawiki.org/wiki/Manual:Contents Даведка для адміністратараў]
-* [//www.mediawiki.org/wiki/Manual:FAQ Адказы на частыя пытаньні]
-----
-* <doclink href=Readme>Прачытайце</doclink>
-* <doclink href=ReleaseNotes>Паляпшэньні ў вэрсіі</doclink>
-* <doclink href=Copying>Капіяваньне</doclink>
-* <doclink href=UpgradeDoc>Абнаўленьне</doclink>',
-       'config-env-good' => 'Асяродзьдзе было праверанае.
-Вы можаце ўсталёўваць MediaWiki.',
-       'config-env-bad' => 'Асяродзьдзе было праверанае.
-Усталяваньне MediaWiki немагчымае.',
-       'config-env-php' => 'Усталяваны PHP $1.',
-       'config-env-php-toolow' => 'Усталяваны PHP $1.
-Але MediaWiki патрабуе PHP вэрсіі $2 ці навейшай.',
-       'config-unicode-using-utf8' => 'Выкарыстоўваецца бібліятэка Unicode-нармалізацыі Браяна Вібэра',
-       'config-unicode-using-intl' => 'Выкарыстоўваецца [http://pecl.php.net/intl intl пашырэньне з PECL] для Unicode-нармалізацыі',
-       'config-unicode-pure-php-warning' => "'''Папярэджаньне''': [http://pecl.php.net/intl Пашырэньне intl з PECL] — ня слушнае для Unicode-нармалізацыі, цяпер выкарыстоўваецца марудная PHP-рэалізацыя.
-Калі ў Вас сайт з высокай наведваемасьцю, раім пачытаць пра [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode-нармалізацыю].",
-       'config-unicode-update-warning' => "'''Папярэджаньне''': усталяваная вэрсія бібліятэкі для Unicode-нармалізацыі выкарыстоўвае састарэлую вэрсію бібліятэкі з [http://site.icu-project.org/ праекту ICU].
-Раім [//www.mediawiki.org/wiki/Unicode_normalization_considerations абнавіць], калі ваш сайт будзе працаваць зь Unicode.",
-       'config-no-db' => 'Немагчыма знайсьці адпаведны драйвэр базы зьвестак. Вам неабходна ўсталяваць драйвэр базы зьвестак для PHP.
-Падтрымліваюцца наступныя тыпы базаў зьвестак: $1.
-
-Калі вы выкарыстоўваеце агульны хостынг, запытайцеся ў свайго хостынг-правайдэра наконт усталяваньня патрабуемага драйвэру базы зьвестак.
-Калі Вы кампілявалі PHP самастойна, пераканфігуруйце і сабярыце яго з дазволеным кліентам базаў зьвестак, напрыклад, <code>./configure --with-mysql</code>.
-Калі Вы ўсталёўвалі PHP з пакетаў Debian ці Ubuntu, то Вам трэба ўсталяваць дадаткова модуль <code>php5-mysql</code>.',
-       '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>.'''
-'''Адключыце яе, калі можаце.'''
-MediaWiki будзе працаваць, але гэта панізіць узровень бясьпекі сэрвэра.",
-       'config-magic-quotes-runtime' => "'''Фатальная памылка: уключаная опцыя PHP [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]!'''
-Гэтая опцыя псуе ўводны паток зьвестак непрадказальным чынам.
-Працяг усталяваньня альбо выкарыстаньне MediaWiki без адключэньня гэтай опцыі немагчымыя.",
-       'config-magic-quotes-sybase' => "'''Фатальная памылка: рэжым [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] уключаны!'''
-Гэты рэжым шкодзіць уваходныя зьвесткі непрадказальным чынам.
-Працяг усталяваньня альбо выкарыстаньне MediaWiki немагчымыя, пакуль рэжым ня будзе выключаны.",
-       'config-mbstring' => "'''Фатальная памылка: рэжым [http://www.php.net/manual/en/ref.info.php#mbstring.overload mbstring.func_overload] уключаны!'''
-Гэты рэжым выклікае памылкі і можа шкодзіць зьвесткі непрадказальным чынам.
-Працяг усталяваньня альбо выкарыстаньне MediaWiki немагчымыя, пакуль рэжым ня будзе выключаны.",
-       'config-ze1' => "'''Фатальная памылка: рэжым [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] уключаны!'''
-Гэтая рэжым стварае вялікія праблемы ў працы MediaWiki.
-Працяг усталяваньня альбо выкарыстаньне MediaWiki немагчымыя, пакуль рэжым ня будзе выключаны.",
-       'config-safe-mode' => "'''Папярэджаньне:''' [http://www.php.net/features.safe-mode бясьпечны рэжым] PHP уключаны.
-Гэта можа выклікаць праблемы, галоўным чынам падчас загрузак файлаў і ў падтрымцы <code>math</code>.",
-       'config-xml-bad' => 'Ня знойдзены модуль XML для PHP.
-MediaWiki патрэбныя функцыі з гэтага модулю, таму MediaWiki ня будзе працаваць у гэтай канфігурацыі.
-Калі Вы выкарыстоўваеце Mandrake, усталюйце пакет php-xml.',
-       'config-pcre' => 'Ня знойдзены модуль падтрымкі PCRE.
-MediaWiki для працы патрабуюцца функцыі рэгулярных выразаў у стылі Perl.',
-       'config-pcre-no-utf8' => "'''Фатальная памылка''': модуль PCRE для PHP скампіляваны без падтрымкі PCRE_UTF8.
-MediaWiki патрабуе падтрымкі UTF-8 для слушнай працы.",
-       'config-memory-raised' => 'Абмежаваньне на даступную для PHP памяць <code>memory_limit</code> было падвышанае з $1 да $2.',
-       'config-memory-bad' => "'''Папярэджаньне:''' памер PHP <code>memory_limit</code> складае $1.
-Верагодна, гэта вельмі мала.
-Усталяваньне можа быць няўдалым!",
-       'config-ctype' => "'''Фатальная памылка''': PHP мусіць быць скампіляваны з падтрымкай [http://www.php.net/manual/en/ctype.installation.php пашырэньня Ctype].",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] усталяваны',
-       'config-apc' => '[http://www.php.net/apc APC] усталяваны',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] усталяваны',
-       'config-no-cache' => "'''Папярэджаньне:''' немагчыма знайсьці [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] ці [http://www.iis.net/download/WinCacheForPhp WinCache].
-Аб’ектнае кэшаваньне ня ўключанае.",
-       '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 ня знойдзеныя.
-Маштабаваньне выяваў будзе адключанае.',
-       'config-no-uri' => "'''Памылка:''' Не магчыма вызначыць цяперашні URI.
-Усталяваньне спыненае.",
-       'config-no-cli-uri' => "'''Папярэджаньне''': Не пазначаны --scriptpath, па змоўчваньні выкарыстоўваецца: <code>$1</code>.",
-       'config-using-server' => 'Выкарыстоўваецца назва сэрвэра «<nowiki>$1</nowiki>».',
-       'config-using-uri' => 'Выкарыстоўваецца URL-спасылка сэрвэра «<nowiki>$1$2</nowiki>».',
-       'config-uploads-not-safe' => "'''Папярэджаньне:''' дырэкторыя для загрузак па змоўчваньні <code>$1</code> уразьлівая да выкананьня адвольнага коду.
-Хоць MediaWiki і правярае ўсе файлы перад захаваньнем, вельмі рэкамэндуецца [//www.mediawiki.org/wiki/Manual:Security#Upload_security закрыць гэтую ўразьлівасьць] перад уключэньнем магчымасьці загрузкі файлаў.",
-       'config-no-cli-uploads-check' => "'''Папярэджаньне:''' Вашая дырэкторыя для загрузак па змоўчваньні (<code>$1</code>), не правераная на ўразьлівасьць да выкананьня адвольных скрыптоў падчас усталяваньня CLI.
-.",
-       'config-brokenlibxml' => 'У Вашай сыстэме ўсталяваныя PHP і libxml2 зь несумяшчальнымі вэрсіямі, што можа прывесьці да пашкоджаньня зьвестак MediaWiki і іншых ўэб-дастасаваньняў.
-Абнавіце PHP да вэрсіі 5.2.9 ці болей позьняй, а libxml2 да 2.7.3 ці болей позьняй ([//bugs.php.net/bug.php?id=45996 паведамленьне пра памылку на сайце PHP]).
-Усталяваньне перарванае.',
-       'config-using531' => 'PHP $1 не сумяшчальнае з MediaWiki з-за памылкі ў перадачы парамэтраў па ўказальніку да <code>__call()</code>.
-Абнавіце PHP да вэрсіі 5.3.2 ці болей позьняй, ці адкаціце да вэрсіі 5.3.0 каб гэта выправіць.
-Усталяваньне перарванае.',
-       'config-suhosin-max-value-length' => 'Suhosin усталяваны і абмяжоўвае <code>даўжыню</code> парамэтра GET да $1 {{PLURAL:$1|байта|байтаў}}.
-ResourceLoader, складнік MediaWiki, будзе абходзіць гэтае абмежаваньне, што, адаб’ецца на прадукцыйнасьці.
-Калі магчыма, варта ўсталяваць у <code>php.ini</code> <code>suhosin.get.max_value_length</code> роўным 1024 ці больш, а таксама вызначыць тое ж значэньне для <code>$wgResourceLoaderMaxQueryLength</code> у LocalSettings.php.',
-       'config-db-type' => 'Тып базы зьвестак:',
-       'config-db-host' => 'Хост базы зьвестак:',
-       'config-db-host-help' => 'Калі сэрвэр Вашай базы зьвестак знаходзіцца на іншым сэрвэры, увядзіце тут імя хоста ці IP-адрас.
-
-Калі Вы карыстаецеся shared-хостынгам, Ваш хостынг-правайдэр мусіць даць Вам слушнае імя хоста базы зьвестак у сваёй дакумэнтацыі.
-
-Калі Вы усталёўваеце сэрвэр Windows з выкарыстаньнем MySQL, выкарыстаньне «localhost» можа не працаваць для назвы сэрвэра. У гэтым выпадку паспрабуйце пазначыць «127.0.0.1»  для лякальнага IP-адраса.
-
-Калі Вы выкарыстоўваеце PostgreSQL, пакіньце поле пустым, каб далучыцца праз Unix-сокет.',
-       'config-db-host-oracle' => 'TNS базы зьвестак:',
-       'config-db-host-oracle-help' => 'Увядзіце слушнае [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm лякальнае імя злучэньня]; файл tnsnames.ora павінен быць бачным для гэтага ўсталяваньня.<br />Калі Вы выкарыстоўваеце кліенцкія бібліятэкі 10g ці больш новыя, Вы можаце таксама выкарыстоўваць мэтад наданьня назваў [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm лёгкае злучэньне].',
-       'config-db-wiki-settings' => 'Ідэнтыфікацыя гэтай вікі',
-       'config-db-name' => 'Назва базы зьвестак:',
-       'config-db-name-help' => 'Выберыце імя для вызначэньня Вашай вікі.
-Яно ня мусіць зьмяшчаць прагалаў.
-
-Калі Вы набываеце shared-хостынг, Ваш хостынг-правайдэр мусіць надаць Вам ці пэўнае імя базы зьвестак для выкарыстаньня, ці магчымасьць ствараць базы зьвестак праз кантрольную панэль.',
-       'config-db-name-oracle' => 'Схема базы зьвестак:',
-       'config-db-account-oracle-warn' => 'Існуюць тры сцэнары ўсталяваньня Oracle як базы зьвестак для MediaWiki:
-
-Калі Вы жадаеце стварыць рахунак базы зьвестак як частку працэсу ўсталяваньня, калі ласка, падайце рахунак з роляй SYSDBA як рахунак базы зьвестак для ўсталяваньня і пазначце пажаданыя правы рахунку з доступам да Інтэрнэту, у адваротным выпадку Вы можаце таксама стварыць рахунак з доступам да Інтэрнэту ўручную і падаць толькі гэты рахунак (калі патрабуюцца правы для стварэньня схемы аб’ектаў) ці падайце два розных рахункі, адзін з правамі на стварэньне і адзін з абмежаваньнямі для доступу да Інтэрнэту.
-
-Скрыпт для стварэньня рахунку з патрабуемымі правамі можна знайсьці ў дырэкторыі гэтага ўсталяваньня «maintenance/oracle/». Памятайце, што выкарыстаньне рахунку з абмежаваньнямі адключыць усе падтрымліваемыя магчымасьці даступныя па змоўчваньні.',
-       'config-db-install-account' => 'Імя карыстальніка для ўсталяваньня',
-       'config-db-username' => 'Імя карыстальніка базы зьвестак:',
-       'config-db-password' => 'Пароль базы зьвестак:',
-       'config-db-password-empty' => 'Калі ласка, увядзіце пароль для новага карыстальніка базы зьвестак: $1.
-Магчыма стварыць карыстальніка без паролю, але гэта небясьпечна.',
-       'config-db-install-username' => 'Увядзіце імя карыстальніка, якое будзе выкарыстоўвацца для злучэньня з базай зьвестак падчас усталяваньня. Гэта не назва рахунку MediaWiki; гэта імя карыстальніка Вашай базы зьвестак.',
-       'config-db-install-password' => 'Увядзіце пароль, які будзе выкарыстоўвацца для злучэньня з базай зьвестак падчас усталяваньня. Гэта не пароль рахунку MediaWiki; гэта пароль Вашай базы зьвестак.',
-       'config-db-install-help' => 'Увядзіце імя карыстальніка і пароль, якія будуць выкарыстаныя для далучэньня да базы зьвестак падчас працэсу ўсталяваньня.',
-       'config-db-account-lock' => 'Выкарыстоўваць тыя ж імя карыстальніка і пароль пасьля ўсталяваньня',
-       'config-db-wiki-account' => 'Імя карыстальніка для працы',
-       'config-db-wiki-help' => 'Увядзіце імя карыстальніка і пароль, якія будуць выкарыстаныя для далучэньня да базы зьвестак падчас працы (пасьля ўсталяваньня).
-Калі рахунак ня створаны, а рахунак для ўсталяваньня мае значныя правы, гэты рахунак будзе створаны зь мінімальна патрэбнымі для працы вікі правамі.',
-       'config-db-prefix' => 'Прэфікс табліцаў базы зьвестак:',
-       'config-db-prefix-help' => 'Калі Вы разьдзяляеце адну базу зьвестак паміж некалькімі вікі, ці паміж MediaWiki і іншым вэб-дастасаваньнем, можаце вызначыць прэфікс назваў табліцаў для пазьбяганьня канфліктаў.
-Пазьбягайце прагалаў.
-
-Гэтае поле звычайна пакідаецца пустым.',
-       'config-db-charset' => 'Кадаваньне базы зьвестак',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binary',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 UTF-8 з адваротнай сумяшчальнасьцю',
-       'config-charset-help' => "'''Папярэджаньне:''' калі Вы выкарыстоўваеце '''UTF-8 з адваротнай сумяшчальнасьцю''' на MySQL 4.1+ і зробіце рэзэрвовую копію праз <code>mysqldump</code>, ён можа зьнішчыць усе не-ASCII-сымбалі беспаваротна!
-
-У '''бінарным (binary)''' рэжыме MediaWiki захоўвае тэксты ў UTF-8 у палёх тыпу binary.
-Гэты рэжым болей эфэктыўны за рэжым MySQL UTF-8 і дазваляе выкарыстоўваць увесь абсяг сымбаляў Unicode.
-У рэжыме '''UTF-8''' MySQL будзе ведаць, у якім кадаваньне Вы зьмяшчаеце зьвесткі, і будзе вяртаць іх у адпаведным кадаваньні,
-але MySQL ня можа ўтрымліваць сымбалі па-за [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Стандартным шматмоўным пластом] сымбаляў Unicode.",
-       'config-mysql-old' => 'Патрабуецца MySQL $1 ці навейшая, усталяваная вэрсія $2.',
-       'config-db-port' => 'Порт базы зьвестак:',
-       'config-db-schema' => 'Схема для MediaWiki',
-       'config-db-schema-help' => 'Гэтая схема слушная ў большасьці выпадкаў.
-Зьмяняйце яе толькі тады, калі Вы ведаеце, што гэта неабходна.',
-       'config-pg-test-error' => "Немагчыма далучыцца да базы зьвестак '''$1''': $2",
-       'config-sqlite-dir' => 'Дырэкторыя зьвестак SQLite:',
-       'config-sqlite-dir-help' => "SQLite захоўвае ўсе зьвесткі ў адзіным файле.
-
-Пададзеная Вамі дырэкторыя павінна быць даступнай да запісу вэб-сэрвэрам падчас усталяваньня.
-
-Яна '''ня''' мусіць быць даступнай праз Сеціва, вось чаму мы не захоўваем яе ў адным месцы з файламі PHP.
-
-Праграма ўсталяваньня дадаткова створыць файл <code>.htaccess</code>, але калі ён не выкарыстоўваецца, хто заўгодна зможа атрымаць зьвесткі з базы зьвестак.
-Гэта ўключае як прыватныя зьвесткі ўдзельнікаў (адрасы электроннай пошты, хэшы пароляў), гэтак і выдаленыя вэрсіі старонак і іншыя зьвесткі, доступ да якіх маецца абмежаваны.
-
-Падумайце над тым, каб зьмяшчаць базу зьвестак у іншым месцы, напрыклад у <code>/var/lib/mediawiki/yourwiki</code>.",
-       'config-oracle-def-ts' => 'Прастора табліцаў па змоўчваньні:',
-       'config-oracle-temp-ts' => 'Часовая прастора табліцаў:',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-support-info' => 'MediaWiki падтрымлівае наступныя сыстэмы базаў зьвестак:
-
-$1
-
-Калі Вы ня бачыце сыстэму базаў зьвестак, якую Вы спрабуеце выкарыстоўваць ў сьпісе ніжэй, перайдзіце па спасылцы інструкцыі, якая знаходзіцца ніжэй, каб уключыць падтрымку.',
-       'config-support-mysql' => '* $1 зьяўляецца галоўнай мэтай MediaWiki і падтрымліваецца лепей за ўсё ([http://www.php.net/manual/en/mysql.installation.php як кампіляваць PHP з падтрымкай MySQL])',
-       'config-support-postgres' => '* $1 — вядомая сыстэма базы зьвестак з адкрытым кодам, якая зьяўляецца альтэрнатывай MySQL ([http://www.php.net/manual/en/pgsql.installation.php як кампіляваць PHP з падтрымкай PostgreSQL]). Яна можа ўтрымліваць дробныя памылкі, і не рэкамэндуецца выкарыстоўваць яе для працуючых праектаў.',
-       'config-support-sqlite' => '* $1 — невялікая сыстэма базы зьвестак, якая мае вельмі добрую падтрымку. ([http://www.php.net/manual/en/pdo.installation.php як кампіляваць PHP з падтрымкай SQLite], выкарыстоўвае PDO)',
-       'config-support-oracle' => '* $1 зьяўляецца камэрцыйнай прафэсійнай базай зьвестак. ([http://www.php.net/manual/en/oci8.installation.php Як скампіляваць PHP з падтрымкай OCI8])',
-       'config-header-mysql' => 'Налады MySQL',
-       'config-header-postgres' => 'Налады PostgreSQL',
-       'config-header-sqlite' => 'Налады SQLite',
-       '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' => 'Няслушнае TNS базы зьвестак «$1».
-Назва можа ўтрымліваць толькі 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».
-Ён можа зьмяшчаць толькі ASCII-літары (a-z, A-Z), лічбы (0-9), сымбалі падкрэсьліваньня (_) і працяжнікі (-).',
-       'config-connection-error' => '$1.
-
-Праверце хост, імя карыстальніка і пароль ніжэй і паспрабуйце зноў.',
-       'config-invalid-schema' => 'Няслушная схема для MediaWiki «$1».
-Выкарыстоўвайце толькі ASCII-літары (a-z, A-Z), лічбы (0-9) і сымбалі падкрэсьліваньня (_).',
-       'config-db-sys-create-oracle' => 'Праграма ўсталяваньня падтрымлівае толькі выкарыстаньне рахунку SYSDBA для стварэньня новага рахунку.',
-       'config-db-sys-user-exists-oracle' => 'Рахунак карыстальніка «$1» ужо існуе. SYSDBA можа выкарыстоўвацца толькі для стварэньня новых рахункаў!',
-       'config-postgres-old' => 'Патрабуецца PostgreSQL $1 ці навейшая, усталяваная вэрсія $2.',
-       'config-sqlite-name-help' => 'Выберыце назву, якая будзе ідэнтыфікаваць Вашую вікі.
-Не выкарыстоўвайце прагалы ці злучкі.
-Назва будзе выкарыстоўвацца ў назьве файла зьвестак SQLite.',
-       'config-sqlite-parent-unwritable-group' => 'Немагчыма стварыць дырэкторыю зьвестак <code><nowiki>$1</nowiki></code>, таму што бацькоўская дырэкторыя <code><nowiki>$2</nowiki></code> абароненая ад запісаў вэб-сэрвэра.
-
-Праграма ўсталяваньня вызначыла карыстальніка, які запусьціў вэб-сэрвэр.
-Дазвольце запісы ў дырэкторыю <code><nowiki>$3</nowiki></code> для працягу.
-У сыстэме Unix/Linux зрабіце:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Немагчыма стварыць дырэкторыю зьвестак <code><nowiki>$1</nowiki></code>, таму што бацькоўская дырэкторыя <code><nowiki>$2</nowiki></code> абароненая ад запісаў вэб-сэрвэра.
-
-Праграма ўсталяваньня вызначыла карыстальніка, які запусьціў вэб-сэрвэр.
-Дазвольце яму (і іншым) запісы ў дырэкторыю <code><nowiki>$3</nowiki></code> для працягу.
-У сыстэме Unix/Linux зрабіце:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Памылка падчас стварэньня дырэкторыі «$1».
-Праверце шлях і паспрабуйце зноў.',
-       'config-sqlite-dir-unwritable' => 'Запіс у дырэкторыю «$1» немагчымы.
-Зьмяніце налады доступу, каб вэб-сэрвэр меў правы на запіс, і паспрабуйце зноў.',
-       'config-sqlite-connection-error' => '$1.
-
-Праверце дырэкторыю для зьвестак, назву базы зьвестак і паспрабуйце зноў.',
-       'config-sqlite-readonly' => 'Файл <code>$1</code> недаступны для запісу.',
-       'config-sqlite-cant-create-db' => 'Немагчыма стварыць файл базы зьвестак <code>$1</code>.',
-       'config-sqlite-fts3-downgrade' => 'PHP бракуе падтрымкі FTS3 — табліцы пагаршаюцца',
-       'config-can-upgrade' => "У гэтай базе зьвестак ёсьць табліцы MediaWiki.
-Каб абнавіць іх да MediaWiki $1, націсьніце '''Працягнуць'''.",
-       'config-upgrade-done' => "Абнаўленьне завершанае.
-
-Цяпер Вы можаце [$1 пачаць выкарыстаньне вікі].
-
-Калі Вы жадаеце рэгенэраваць <code>LocalSettings.php</code>, націсьніце кнопку ніжэй.
-Гэтае дзеяньне '''не рэкамэндуецца''', калі Вы ня маеце праблемаў у працы вікі.",
-       'config-upgrade-done-no-regenerate' => 'Абнаўленьне скончанае.
-
-Цяпер Вы можаце [$1 пачаць працу з вікі].',
-       'config-regenerate' => 'Рэгенэраваць LocalSettings.php →',
-       'config-show-table-status' => "Запыт '<code>SHOW TABLE STATUS</code>' не атрымаўся!",
-       'config-unknown-collation' => "'''Папярэджаньне:''' база зьвестак выкарыстоўвае нераспазнанае супастаўленьне.",
-       'config-db-web-account' => 'Рахунак базы зьвестак для вэб-доступу',
-       'config-db-web-help' => 'Выберыце імя карыстальніка і пароль, які выкарыстоўваецца вэб-сэрвэрам для злучэньня з сэрвэрам базы зьвестак, падчас звычайных апэрацыяў вікі.',
-       'config-db-web-account-same' => 'Выкарыстоўваць той жа рахунак, што для ўсталяваньня',
-       'config-db-web-create' => 'Стварыць рахунак, калі ён яшчэ не існуе',
-       'config-db-web-no-create-privs' => 'Рахунак, які Вы пазначылі для ўсталяваньня ня мае правоў для стварэньня рахунку.
-Рахунак, які Вы пазначылі тут, мусіць ужо існаваць.',
-       'config-mysql-engine' => 'Рухавік сховішча:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''Папярэджаньне''': Вы выбралі MyISAM у якасьці рухавіка для захоўваньня зьвестак у MySQL, які не рэкамэндуецца да выкарыстаньня з MediaWiki па прычынах:
-* кепская падтрымка паралельнай апрацоўкі з-за таблічных блякаваньняў;
-* большая імавернасьць пашкоджаньня зьвестак у параўнаньні зь іншымі рухавікамі;
-* код MediaWiki не ва ўсіх выпадках улічвае асаблівасьці MyISAM.
-
-Калі Ваш MySQL-сэрвэр падтрымлівае InnoDB, вельмі рэкамэндуецца выкарыстаньне менавіта гэтага рухавіка.
-Калі MySQL-сэрвэр не падтрымлівае InnoDB, пэўна, настаў час абнавіць яго.",
-       'config-mysql-engine-help' => "'''InnoDB''' — звычайна найбольш слушны варыянт, таму што добра падтрымлівае паралелізм.
-
-'''MyISAM''' можа быць хутчэйшай у вікі з адным удзельнікам, ці толькі для чытаньня.
-Базы зьвестак на MyISAM вядомыя тым, што ў іх зьвесткі шкодзяцца нашмат часьцей за InnoDB.",
-       'config-mysql-charset' => 'Кадаваньне базы зьвестак:',
-       'config-mysql-binary' => 'Двайковае',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "У '''двайковым рэжыме''', MediaWiki захоўвае тэкст у кадаваньні UTF-8 у базе зьвестак у двайковых палях.
-Гэта болей эфэктыўна за рэжым MySQL UTF-8, і дазваляе Вам выкарыстоўваць увесь дыяпазон сымбаляў Unicode.
-
-У '''рэжыме UTF-8''', MySQL ведае, якая табліцы сымбаляў выкарыстоўваецца ў Вашых зьвестках, і можа адпаведна прадстаўляць і канвэртаваць іх, але гэта не дазволіць Вам захоўваць сымбалі па-за межамі [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Базавага шматмоўнага дыяпазону].",
-       'config-site-name' => 'Назва вікі:',
-       'config-site-name-help' => 'Назва будзе паказвацца ў загалоўку браўзэра і ў некаторых іншых месцах.',
-       'config-site-name-blank' => 'Увядзіце назву сайта.',
-       'config-project-namespace' => 'Прастора назваў праекту:',
-       'config-ns-generic' => 'Праект',
-       'config-ns-site-name' => 'Такая ж, як і назва вікі: $1',
-       'config-ns-other' => 'Іншая (вызначце)',
-       'config-ns-other-default' => 'MyWiki',
-       'config-project-namespace-help' => "Па прыкладу Вікіпэдыі, шматлікія вікі трымаюць уласныя старонкі з правіламі асобна ад старонак са зьместам, у «'''прасторы назваў праекту'''».
-Усе назвы старонак у гэтай прасторы назваў пачынаюцца з прыстаўкі, якую Вы можаце пазначыць тут.
-Традыцыйна, гэтая прыстаўка вытворная ад назвы вікі, яле яна ня можа ўтрымліваць некаторыя сымбалі, такія як «#» ці «:».",
-       'config-ns-invalid' => 'Пададзеная няслушная прастора назваў «<nowiki>$1</nowiki>».
-Падайце іншую прастору назваў праекту.',
-       'config-ns-conflict' => 'Пазначаная прастора назваў «<nowiki>$1</nowiki>» канфліктуе з прасторай назваў MediaWiki па змоўчваньні.
-Пазначце іншую прастору назваў праекту.',
-       'config-admin-box' => 'Рахунак адміністратара',
-       'config-admin-name' => 'Вашае імя:',
-       'config-admin-password' => 'Пароль:',
-       'config-admin-password-confirm' => 'Пароль яшчэ раз:',
-       'config-admin-help' => 'Увядзіце тут Вашае імя ўдзельніка, напрыклад «Янка Кавалевіч».
-Гэтае імя будзе выкарыстоўвацца для ўваходу ў вікі.',
-       'config-admin-name-blank' => 'Увядзіце імя адміністратара.',
-       'config-admin-name-invalid' => 'Пададзенае няслушнае імя ўдзельніка «<nowiki>$1</nowiki>».
-Падайце іншае імя ўдзельніка.',
-       'config-admin-password-blank' => 'Увядзіце пароль рахунку адміністратара.',
-       'config-admin-password-same' => 'Пароль ня можа быць аднолькавым зь іменем удзельніка.',
-       'config-admin-password-mismatch' => 'Уведзеныя Вамі паролі не супадаюць.',
-       'config-admin-email' => 'Адрас электроннай пошты:',
-       'config-admin-email-help' => 'Увядзіце тут адрас электроннай пошты, каб атрымліваць электронныя лісты ад іншых удзельнікаў вікі, скідваць Ваш пароль і атрымліваць абвешчаньні пра зьмены старонак, якія знаходзяцца ў Вашым сьпісе назіраньня. Вы можаце пакінуць гэтае поле пустым.',
-       'config-admin-error-user' => 'Унутраная памылка падчас стварэньня рахунку адміністратара зь іменем «<nowiki>$1</nowiki>».',
-       'config-admin-error-password' => 'Унутраная памылка падчас устаноўкі паролю для адміністратара «<nowiki>$1</nowiki>»: <pre>$2</pre>',
-       'config-admin-error-bademail' => 'Вы ўвялі няслушны адрас электроннай пошты',
-       'config-subscribe' => 'Падпісацца на [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce сьпіс распаўсюджаньня навінаў пра зьяўленьне новых вэрсіяў].',
-       'config-subscribe-help' => 'Гэта ня вельмі актыўны сьпіс распаўсюджаньня навінаў пра зьяўленьне новых вэрсіяў, які ўключаючы важныя навіны пра бясьпеку.
-Вам неабходна падпісацца на яго і абнавіць Вашае ўсталяваньне MediaWiki, калі зьявяцца новыя вэрсіі.',
-       'config-subscribe-noemail' => 'Вы спрабавалі падпісацца на рассылку паведамленьняў пра выхад новых вэрсіяў, не пазначыўшы адрас электроннай пошты.
-Калі ласка, падайце слушны адрас, калі Вы жадаеце падпісацца на рассылку.',
-       'config-almost-done' => 'Вы амаль што скончылі!
-Астатнія налады можна прапусьціць і пачаць усталяваньне вікі.',
-       'config-optional-continue' => 'Задаць болей пытаньняў.',
-       'config-optional-skip' => 'Хопіць, проста ўсталяваць вікі.',
-       'config-profile' => 'Профіль правоў удзельніка:',
-       'config-profile-wiki' => 'Адкрытая вікі',
-       'config-profile-no-anon' => 'Патрэбнае стварэньне рахунку',
-       'config-profile-fishbowl' => 'Толькі для аўтарызаваных рэдактараў',
-       'config-profile-private' => 'Прыватная вікі',
-       'config-profile-help' => "Вікі працуюць лепей, калі Вы дазваляеце як мага большай колькасьці людзей рэдагаваць яе.
-У MediaWiki вельмі лёгка праглядаць апошнія зьмены і выпраўляць любыя пашкоджаньні зробленыя недасьведчанымі ўдзельнікамі альбо вандаламі.
-
-Тым ня менш, многія лічаць, што MediaWiki можа быць карыснай ў шматлікіх іншых ролях, і часта вельмі нялёгка растлумачыць усім перавагі выкарыстаньня тэхналёгіяў вікі.
-Таму Вы маеце выбар.
-
-'''{{int:config-profile-wiki}}''' дазваляе рэдагаваць усім, нават без уваходу ў сыстэму.
-Вікі з '''{{int:config-profile-no-anon}}''' дазваляе дадатковую адказнасьць, але можа адштурхнуць некаторых патэнцыйных удзельнікаў.
-
-Сцэнар '''{{int:config-profile-fishbowl}}''' дазваляе рэдагаваць зацьверджаным удзельнікам, але ўсе могуць праглядаць старонкі іх гісторыю.
-'''{{int:config-profile-private}}''' дазваляе праглядаць і рэдагаваць старонкі толькі зацьверджаным удзельнікам.
-
-Больш складаныя правы ўдзельнікаў даступныя пасьля ўсталяваньня, глядзіце [//www.mediawiki.org/wiki/Manual:User_rights адпаведную старонку дакумэнтацыі].", # Fuzzy
-       'config-license' => 'Аўтарскія правы і ліцэнзія:',
-       'config-license-none' => 'Без інфармацыі пра ліцэнзію',
-       'config-license-cc-by-sa' => 'Creative Commons Attribution Share Alike',
-       'config-license-cc-by' => 'Creative Commons Attribution',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Attribution Non-Commercial Share Alike',
-       'config-license-cc-0' => 'Creative Commons Zero (грамадзкі набытак)',
-       'config-license-gfdl' => 'GNU Free Documentation License 1.3 ці болей позьняя',
-       'config-license-pd' => 'Грамадзкі набытак',
-       'config-license-cc-choose' => 'Выберыце іншую ліцэнзію Creative Commons',
-       'config-license-help' => "Шматлікія адкрытыя вікі публікуюць увесь унёсак у праект на ўмовах [http://freedomdefined.org/Definition вольнай ліцэнзіі].
-Гэта дазваляе ствараць эфэкт супольнай уласнасьці і садзейнічае доўгатэрміноваму ўнёску.
-Для прыватных і карпаратыўных вікі гэта не зьяўляецца неабходнасьцю.
-
-Калі Вы жадаеце выкарыстоўваць тэкст зь Вікіпэдыі, і жадаеце, каб Вікіпэдыя магла прымаць тэксты, скапіяваныя з Вашай вікі, Вам неабходна выбраць ліцэнзію '''Creative Commons Attribution Share Alike'''.
-
-Раней Вікіпэдыя выкарыстоўвала ліцэнзію GNU Free Documentation.
-Яна ўсё яшчэ дзейнічае, але яна ўтрымлівае некаторыя моманты,
-якія ўскладняюць паўторнае выкарыстоўваньне і інтэрпрэтацыю матэрыялаў.",
-       'config-email-settings' => 'Налады электроннай пошты',
-       'config-enable-email' => 'Дазволіць выходзячыя электронныя лісты',
-       'config-enable-email-help' => 'Калі Вы жадаеце, каб працавала электронная пошта, неабходна сканфігураваць PHP [http://www.php.net/manual/en/mail.configuration.php адпаведным чынам].
-Калі Вы не жадаеце выкарыстоўваць магчымасьці электроннай пошты, Вы можаце яе адключыць.',
-       'config-email-user' => 'Дазволіць электронную пошту для сувязі паміж удзельнікамі',
-       'config-email-user-help' => 'Дазволіць усім удзельнікам дасылаць адзін аднаму электронныя лісты, калі ўключаная адпаведная магчымасьць ў іх наладах.',
-       'config-email-usertalk' => 'Уключыць абвяшчэньні пра паведамленьні на старонцы абмеркаваньня',
-       'config-email-usertalk-help' => 'Дазваляе ўдзельнікам атрымліваць абвяшчэньні пра зьмены на старонцы абмеркаваньня, калі гэтая магчымасьць уключаная ў іх наладах.',
-       'config-email-watchlist' => 'Уключыць абвяшчэньні пра зьмены ў сьпісе назіраньня',
-       'config-email-watchlist-help' => 'Дазваляе ўдзельнікам атрымліваць абвяшчэньні пра зьмены ў іх сьпісе назіраньня, калі гэтая магчымасьць уключаная ў іх наладах.',
-       'config-email-auth' => 'Уключыць аўтэнтыфікацыю праз электронную пошту',
-       'config-email-auth-help' => "Калі гэтая магчымасьць уключаная, удзельнікі павінны пацьвердзіць іх адрас электроннай пошты праз спасылку, якая дасылаецца ім праз электронную пошту. Яна дасылаецца і падчас зьмены адрасу электроннай пошты.
-Толькі аўтэнтыфікаваныя адрасы электроннай пошты могуць атрымліваць электронныя лісты ад іншых удзельнікаў, ці зьмяняць абвяшчэньні дасылаемыя праз электронную пошту.
-Уключэньне гэтай магчымасьці '''рэкамэндуецца'''  для адкрытых вікі, з-за магчымых злоўжываньняў магчымасьцямі электроннай пошты.",
-       'config-email-sender' => 'Адрас электроннай пошты для вяртаньня:',
-       'config-email-sender-help' => 'Увядзіце адрас электроннай пошты для вяртаньня ў якасьці адрасу дасылаемых электронных лістоў.
-Сюды будуць дасылацца неатрыманыя электронныя лісты.
-Шматлікія паштовыя сэрвэры патрабуюць, каб хаця б назва дамэну была слушнай.',
-       'config-upload-settings' => 'Загрузкі выяваў і файлаў',
-       'config-upload-enable' => 'Дазволіць загрузку файлаў',
-       'config-upload-help' => 'Дазвол загрузкі файлаў можа патэнцыйна пагражаць бясьпекі сэрвэра.
-Дадатковую інфармацыю можна атрымаць ў [//www.mediawiki.org/wiki/Manual:Security разьдзеле бясьпекі].
-
-Каб дазволіць загрузку файлаў, зьмяніце рэжым падкаталёга <code>images</code> у карэннай дырэкторыі MediaWiki так, каб ўэб-сэрвэр меў доступ на запіс.
-Потым дазвольце гэтую магчымасьць.',
-       'config-upload-deleted' => 'Дырэкторыя для выдаленых файлаў:',
-       'config-upload-deleted-help' => 'Выберыце дырэкторыю, у якой будуць захоўвацца выдаленыя файлы.
-У ідэальным выпадку, яна не павінна мець доступу з Інтэрнэту.',
-       'config-logo' => 'URL-адрас лягатыпу:',
-       'config-logo-help' => 'Афармленьне MediaWiki па змоўчваньні уключае прастору для лягатыпу памерам 135×160 піксэляў у верхнім левым куце.
-Загрузіце выяву адпаведнага памеру і увядзіце тут URL-адрас.
-
-Калі Вы не жадаеце мець ніякага лягатыпу, пакіньце поле пустым.', # Fuzzy
-       'config-instantcommons' => 'Дазволіць Instant Commons',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons Instant Commons] — магчымасьць, якая дазваляе вікі выкарыстоўваць выявы, гукі і іншыя мэдыя, якія знаходзяцца на сайце [//commons.wikimedia.org/ Wikimedia Commons].
-Каб гэта зрабіць, MediaWiki патрабуе доступу да Інтэрнэту.
-
-Каб даведацца болей пра гэтую магчымасьць, уключаючы інструкцыю пра тое, як яе ўстанавіць ў любой вікі, акрамя Wikimedia Commons, глядзіце [//mediawiki.org/wiki/Manual:$wgForeignFileRepos дакумэнтацыю].',
-       'config-cc-error' => 'Выбар ліцэнзіі Creative Commons ня даў вынікаў.
-Увядзіце назву ліцэнзіі ўручную.',
-       'config-cc-again' => 'Выберыце яшчэ раз…',
-       'config-cc-not-chosen' => 'Выберыце, якую ліцэнзію Creative Commons Вы жадаеце выкарыстоўваць і націсьніце «працягваць».',
-       'config-advanced-settings' => 'Дадатковыя налады',
-       'config-cache-options' => 'Налады кэшаваньня аб’ектаў:',
-       'config-cache-help' => 'Кэшаваньне аб’ектаў павялічвае хуткасьць працы MediaWiki праз кэшаваньне зьвестак, якія часта выкарыстоўваюцца.
-Вельмі рэкамэндуем уключыць гэта для сярэдніх і буйных сайтаў, таксама будзе карысна для дробных сайтаў.',
-       'config-cache-none' => 'Без кэшаваньня (ніякія магчымасьці не страчваюцца, але хуткасьць працы буйных сайтаў можа зьнізіцца)',
-       'config-cache-accel' => 'Кэшаваньне аб’ектаў PHP (APC, XCache ці WinCache)',
-       'config-cache-memcached' => 'Выкарыстоўваць Memcached (патрабуе дадатковай канфігурацыі)',
-       'config-memcached-servers' => 'Сэрвэры memcached:',
-       'config-memcached-help' => 'Сьпіс IP-адрасоў, якія будуць выкарыстоўвацца Memcached.
-Адрасы павінны быць у асобным радку з пазначэньнем порту, які будзе выкарыстоўвацца. Напрыклад:
- 127.0.0.1:11211
- 192.168.1.25:1234',
-       'config-memcache-needservers' => 'Вы выбралі Memcached у якасьці тыпу Вашага кэша, але не пазначылі ніякага сэрвэра',
-       'config-memcache-badip' => 'Вы ўвялі няслушны IP-адрас для Memcached: $1',
-       'config-memcache-noport' => 'Вы не пазначылі порт для выкарыстаньня сэрвэрам Memcached: $1.
-Калі Вы ня ведаеце порт, то па змоўчваньні выкарыстоўваецца 11211',
-       'config-memcache-badport' => 'Нумар порту Memcached павінен быць паміж $1 і $2',
-       'config-extensions' => 'Пашырэньні',
-       'config-extensions-help' => 'Пашырэньні пададзеныя вышэй, былі знойдзеныя ў Вашай дырэкторыі <code>./extensions</code>.
-
-Яны могуць патрабаваць дадатковых наладаў, але іх можна ўключыць зараз',
-       'config-install-alreadydone' => "'''Папярэджаньне:''' здаецца, што Вы ўжо ўсталёўвалі MediaWiki і спрабуеце зрабіць гэтай зноў.
-Калі ласка, перайдзіце на наступную старонку.",
-       'config-install-begin' => 'Пасьля націску кнопкі «{{int:config-continue}}» пачнецца ўсталяваньне MediaWiki.
-Калі Вы жадаеце што-небудзь зьмяніць, націсьніце кнопку «Вярнуцца».', # Fuzzy
-       'config-install-step-done' => 'зроблена',
-       'config-install-step-failed' => 'не атрымалася',
-       'config-install-extensions' => 'Уключаючы пашырэньні',
-       'config-install-database' => 'Налада базы зьвестак',
-       'config-install-schema' => 'Стварэньне схемы',
-       'config-install-pg-schema-not-exist' => 'Схема PostgreSQL не існуе',
-       'config-install-pg-schema-failed' => 'Немагчыма стварыць табліцу.
-Упэўніцеся, што карыстальнік «$1» можа пісаць у схему «$2».',
-       'config-install-pg-commit' => 'Захаваньне зьменаў',
-       'config-install-pg-plpgsql' => 'Праверка падтрымкі мовы PL/pgSQL',
-       'config-pg-no-plpgsql' => 'Вам неабходна ўсталяваць падтрымку мовы PL/pgSQL у базе зьвестак $1',
-       'config-pg-no-create-privs' => 'Рахунак, які Вы пазначылі для ўсталяваньня ня мае дастаткова правоў для стварэньня рахунку.',
-       'config-pg-not-in-role' => 'Пазначаны Вамі рахунак для ўэб-карыстальніка ўжо існуе.
-Пазначаны Вамі рахунак для ўсталяваньня ня мае правоў і не зьяўляецца сябрам ролі ўэб-карыстальніка, таму немагчыма стварыць аб’екты, якія належаць ўэб-карыстальніку.
-
-Цяпер MediaWiki патрабуе, каб табліцы належалі да ўэб-карыстальніку. Калі ласка, пазначце іншы рахунак, ці націсьніце кнопку «Вярнуцца» і пазначце карыстальніка з неабходнымі для ўсталяваньня правамі.',
-       'config-install-user' => 'Стварэньне карыстальніка базы зьвестак',
-       'config-install-user-alreadyexists' => 'Удзельнік «$1» ужо існуе',
-       'config-install-user-create-failed' => 'Немагчыма стварыць ўдзельніка «$1»: $2',
-       'config-install-user-grant-failed' => 'Немагчыма даць правы удзельніку «$1»: $2',
-       'config-install-user-missing' => 'Пазначаны карыстальнік «$1» не існуе.',
-       'config-install-user-missing-create' => 'Пазначаны карыстальнік «$1» не існуе.
-Калі ласка, пазначце «стварыць рахунак», калі Вы жадаеце яго стварыць.',
-       'config-install-tables' => 'Стварэньне табліцаў',
-       'config-install-tables-exist' => "'''Папярэджаньне''': Выглядае, што табліцы MediaWiki ужо існуюць.
-Стварэньне прапушчанае.",
-       'config-install-tables-failed' => "'''Памылка''': немагчыма стварыць табліцы з-за наступнай памылкі: $1",
-       'config-install-interwiki' => 'Запаўненьне табліцы інтэрвікі па змоўчваньні',
-       'config-install-interwiki-list' => 'Немагчыма знайсьці файл <code>interwiki.list</code>.',
-       'config-install-interwiki-exists' => "'''Папярэджаньне''': выглядае, што табліца інтэрвікі ўжо запоўненая.
-Сьпіс па змоўчваньні прапушчаны.",
-       'config-install-stats' => 'Ініцыялізацыі статыстыкі',
-       'config-install-keys' => 'Стварэньне сакрэтных ключоў',
-       'config-insecure-keys' => "'''Папярэджаньне:''' {{PLURAL:$2|Ключ бясьпекі $1 створаны|Ключы бясьпекі $1 створаныя}} падчас усталяваньня, не зьяўляюцца поўнасьцю бясьпечнымі. Рэкамэндуецца зьмяніць {{PLURAL:$2|яго ўручную|іх уручную}}.",
-       'config-install-sysop' => 'Стварэньне рахунку адміністратара',
-       'config-install-subscribe-fail' => 'Немагчыма падпісацца на «mediawiki-announce»: $1',
-       'config-install-subscribe-notpossible' => 'cURL не ўсталяваны, allow_url_fopen недаступны.',
-       'config-install-mainpage' => 'Стварэньне галоўнай старонкі са зьместам па змоўчваньні',
-       'config-install-extension-tables' => 'Стварэньне табліцаў для ўключаных пашырэньняў',
-       'config-install-mainpage-failed' => 'Немагчыма ўставіць галоўную старонку: $1',
-       'config-install-done' => "'''Віншуем!'''
-Вы пасьпяхова ўсталявалі MediaWiki.
-
-Праграма ўсталяваньня стварыла файл <code>LocalSettings.php</code>.
-Ён утрымлівае ўсе Вашыя налады.
-
-Вам неабходна загрузіць яго і захаваць у карэнную дырэкторыю Вашай вікі (у тую ж самую дырэкторыю, дзе знаходзіцца index.php). Загрузка павінна пачацца аўтаматычна.
-
-Калі загрузка не пачалася, ці Вы яе адмянілі, Вы можаце перазапусьціць яе націснуўшы на спасылку ніжэй:
-
-$3
-
-'''Заўвага''': калі Вы гэтага ня зробіце зараз, то створаны файл ня будзе даступны Вам потым, калі Вы выйдзеце з праграмы ўсталяваньня  без яго загрузкі.
-
-Калі Вы гэта зробіце, Вы можаце '''[$2 ўвайсьці ў Вашую вікі]'''.",
-       'config-download-localsettings' => 'Загрузіць <code>LocalSettings.php</code>',
-       'config-help' => 'дапамога',
-       'config-nofile' => 'Файл «$1» ня знойдзены. Ці быў ён выдалены?',
-       'mainpagetext' => "'''MediaWiki пасьпяхова ўсталяваная.'''",
-       'mainpagedocfooter' => 'Глядзіце [//meta.wikimedia.org/wiki/Help:Contents дапаможнік карыстальніка] для атрыманьня інфармацыі па карыстаньні вікі-праграмамі.
-
-== З чаго пачаць ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Сьпіс парамэтраў канфігурацыі]
-* [//www.mediawiki.org/wiki/Manual:FAQ Частыя пытаньні MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Рассылка паведамленьняў пра зьяўленьне новых вэрсіяў MediaWiki]', # Fuzzy
-);
-
-/** Bulgarian (български)
- * @author DCLXVI
- * @author 아라
- */
-$messages['bg'] = array(
-       'config-desc' => 'Инсталатор на МедияУики',
-       'config-title' => 'Инсталиране на МедияУики $1',
-       'config-information' => 'Информация',
-       'config-localsettings-upgrade' => 'Беше открит файл <code>LocalSettings.php</code>.
-За надграждане на съществуващата инсталация, необходимо е в кутията по-долу да се въведе стойността на <code>$wgUpgradeKey</code>.
-Тази информация е налична в <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'Беше открит файл <code>LocalSettings.php</code>.
-За надграждане на наличната инсталация, необходимо е да се стартира <code>update.php</code>',
-       'config-localsettings-key' => 'Ключ за надграждане:',
-       'config-localsettings-badkey' => 'Предоставеният ключ е неправилен.',
-       'config-upgrade-key-missing' => 'Беше открита съществуваща инсталация на МедияУики.
-За надграждане на съществуващата инсталация, необходимо е да се постави следният ред в края на файла <code>LocalSettings.php</code>:
-
-$1',
-       'config-localsettings-incomplete' => 'Съществуващият файл <code>LocalSettings.php</code> изглежда непълен.
-Променливата $1 не е зададена.
-Необходимо е да се редактира файлът <code>LocalSettings.php</code> и да се зададе променливата, след което да се натисне „{{int:Config-continue}}“.',
-       'config-localsettings-connection-error' => 'Възникна грешка при свързване с базата от данни чрез данните, посочени в <code>LocalSettings.php</code> или <code>AdminSettings.php</code>. Необходимо е да се коригират тези настройки преди повторен опит за свързване.
-
-$1',
-       'config-session-error' => 'Грешка при създаване на сесия: $1',
-       'config-session-expired' => 'Срокът на валидност на данните от сесията са изтекли.
-Продължителността на сесиите е настроена на $1.
-Това може да бъде увеличено чрез настройване на <code>session.gc_maxlifetime</code> в php.ini.
-Необходимо е рестартиране на инсталационния процес.',
-       'config-no-session' => 'Данните за сесията бяха загубени!
-Проверете вашия php.ini и се уверете, че на <code>session.save_path</code> е настроена подходящата директория.',
-       'config-your-language' => 'Вашият език:',
-       'config-your-language-help' => 'Избиране на език за използване по време на инсталацията.',
-       'config-wiki-language' => 'Език на уикито:',
-       'config-wiki-language-help' => 'Избиране на език, на който ще е основното съдържание на уикито.',
-       'config-back' => '← Връщане',
-       'config-continue' => 'Продължаване →',
-       'config-page-language' => 'Език',
-       'config-page-welcome' => 'Добре дошли в МедияУики!',
-       'config-page-dbconnect' => 'Свързване с базата от данни',
-       'config-page-upgrade' => 'Надграждане на съществуваща инсталация',
-       'config-page-dbsettings' => 'Настройки на базата от данни',
-       'config-page-name' => 'Име',
-       'config-page-options' => 'Настройки',
-       'config-page-install' => 'Инсталиране',
-       'config-page-complete' => 'Готово!',
-       'config-page-restart' => 'Рестартиране на инсталацията',
-       'config-page-readme' => 'Информация за софтуера',
-       'config-page-releasenotes' => 'Бележки за версията',
-       'config-page-copying' => 'Лицензно споразумение',
-       'config-page-upgradedoc' => 'Надграждане',
-       'config-page-existingwiki' => 'Съществуващо уики',
-       'config-help-restart' => 'Необходимо е потвърждение за изтриване на всички въведени и съхранени данни и започване отначало на процеса по инсталация.',
-       'config-restart' => 'Да, започване отначало',
-       'config-welcome' => '=== Проверка на средата ===
-Извършени бяха основни проверки, за да се провери дали средата е подходяща за инсталиране на МедияУики.
-Ако е необходима помощ по време на инсталацията, резултатите от направените проверки трябва също да бъдат предоставени.',
-       'config-copyright' => "=== Авторски права и Условия ===
-
-$1
-
-Тази програма е свободен софтуер, който може да се променя и/или разпространява според Общия публичен лиценз на GNU, както е публикуван от Free Software Foundation във версия на Лиценза 2 или по-късна версия.
-
-Тази програма се разпространява с надеждата, че ще е полезна, но '''без каквито и да е гаранции'''; без дори косвена гаранция за '''продаваемост''' или '''прогодност за конкретна употреба'''.
-За повече подробности се препоръчва преглеждането на Общия публичен лиценз на GNU.
-
-Към програмата трябва да е приложено <doclink href=Copying>копие на Общия публичен лиценз на GNU</doclink>; ако не, можете да пишете на Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. или да [http://www.gnu.org/copyleft/gpl.html го прочетете онлайн].",
-       'config-sidebar' => '* [//www.mediawiki.org Сайт на МедияУики]
-* [//www.mediawiki.org/wiki/Help:Contents Наръчник на потребителя]
-* [//www.mediawiki.org/wiki/Manual:Contents Наръчник на администратора]
-* [//www.mediawiki.org/wiki/Manual:FAQ ЧЗВ]
-----
-* <doclink href=Readme>Документация</doclink>
-* <doclink href=ReleaseNotes>Бележки за версията</doclink>
-* <doclink href=Copying>Авторски права</doclink>
-* <doclink href=UpgradeDoc>Обновяване</doclink>',
-       'config-env-good' => 'Средата беше проверена.
-Инсталирането на МедияУики е възможно.',
-       'config-env-bad' => 'Средата беше проверена.
-Не е възможна инсталация на МедияУики.',
-       'config-env-php' => 'Инсталирана е версия на PHP $1.',
-       'config-env-php-toolow' => 'Инсталирана е версия на PHP $1.
-МедияУики изисква версия PHP $2 или по-нова.',
-       'config-unicode-using-utf8' => 'Използване на utf8_normalize.so от Brion Vibber за нормализация на Уникод.',
-       'config-unicode-using-intl' => 'Използване на разширението [http://pecl.php.net/intl intl PECL] за нормализация на Уникод.',
-       'config-unicode-pure-php-warning' => "'''Предупреждение''': [http://pecl.php.net/intl Разширението intl PECL] не е налично за справяне с нормализацията на Уникод, превключване към по-бавното изпълнение на чист PHP.
-Ако сайтът е с голям трафик, препоръчително е запознаването с [//www.mediawiki.org/wiki/Unicode_normalization_considerations нормализацията на Уникод].",
-       'config-unicode-update-warning' => "'''Предупреждение''': Инсталираната версия на Обвивката за нормализация на Unicode използва по-старата версия на библиотеката на [http://site.icu-project.org/ проекта ICU].
-Необходимо е да [//www.mediawiki.org/wiki/Unicode_normalization_considerations инсталирате по-нова верия], в случай че сте загрижени за използването на Unicode.",
-       'config-no-db' => 'Не може да бъде открит подходящ драйвер за база от данни! Необходимо е да се инсталира драйвер за база от данни за PHP.
-Поддържат се следните типове базни от данни: $1.
-
-Ако използвате споделен хостинг, помолете доставчика на услугата да инсталира подходящ драйвер за база от данни.
-Ако сами сте компилирали PHP, преконфигурирайте го с включен клиент за база от данни, например чрез използване на <code>./configure --with-mysql</code>.
-Ако сте инсталирали PHP от пакет за Debian или Убунту, необходимо е, също така, да инсталирате и модула php5-mysql.',
-       'config-no-fts3' => "'''Предупреждение''': SQLite е компилирана без [//sqlite.org/fts3.html модула FTS3], затова възможностите за търсене няма да са достъпни.",
-       'config-register-globals' => "'''Предупреждение: Настройката на PHP <code>[http://php.net/register_globals register_globals]</code> е включена.'''
-'''При възможност е препоръчително тя да бъде изключена.'''
-МедияУики ще работи, но сървърът е изложен на евентуални пропуски в сигурността.",
-       'config-magic-quotes-runtime' => "'''Фатално: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] е активирана!'''
-Това може да повреди непредвидимо въвеждането на данните.
-Инсталацията на МедияУики е невъзможна докато тази настройка не бъде изключена.",
-       'config-magic-quotes-sybase' => "'''Фатално: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] е активирана!'''
-Това може да повреди непредвидимо въвеждането на данните.
-Инсталацията на МедияУики е невъзможна докато тази настройка не бъде изключена.",
-       'config-mbstring' => "'''Фатално: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] е активирана!'''
-Това може да повреди непредвидимо въвеждането на данните.
-Инсталацията на МедияУики е невъзможна докато тази настройка не бъде изключена.",
-       'config-ze1' => "'''Фатално: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] е активирана!'''
-Тази настройка причинява ужасни грешки в МедияУики.
-Невъзможно е инсталирането и използването на МедияУики докато тази настройка не бъде изключена.",
-       'config-safe-mode' => "'''Предупреждение:''' PHP работи в [http://www.php.net/features.safe-mode безопасен режим].
-Това може да създаде проблеми, особено ако качването на файлове е разрешено, както и при поддръжката на <code>math</code>.",
-       'config-xml-bad' => 'Липсва XML модулът на PHP.
-МедияУики се нуждае от някои функции от този модул и няма да работи при наличната конфигурация.
-При Mandrake, необходимо е да се инсталира пакетът php-xml.',
-       'config-pcre' => 'Липсва модулът PCRE.
-За да работи, МедияУики изисква съвместими с Perl функии за регилярни изрази.',
-       'config-pcre-no-utf8' => "'''Фатално''': Модулът PCRE на PHP изглежда е компилиран без поддръжка на PCRE_UTF8.
-За да функционира правилно, МедияУики изисква поддръжка на UTF-8.",
-       'config-memory-raised' => '<code>memory_limit</code> на PHP е $1, увеличаване до $2.',
-       'config-memory-bad' => "'''Предупреждение:''' <code>memory_limit</code> на PHP е $1.
-Стойността вероятно е твърде ниска.
-Възможно е инсталацията да се провали!",
-       'config-ctype' => "'''Фатално''': Необходимо е PHP да бъде компилиран с поддръжка на [http://www.php.net/manual/en/ctype.installation.php разширението Ctype].",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] е инсталиран',
-       'config-apc' => '[http://www.php.net/apc APC] е инсталиран',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] е инсталиран',
-       'config-no-cache' => "'''Предупреждение:''' Не бяха открити [http://www.php.net/apc APC] [http://xcache.lighttpd.net/ XCache] или [http://www.iis.net/download/WinCacheForPhp WinCache].
-Обектното кеширане не е включено.",
-       'config-diff3-bad' => 'GNU diff3 не беше намерен.',
-       'config-imagemagick' => 'Открит е ImageMagick: <code>$1</code>.
-Преоразмеряването на картинки ще бъде включено ако качването на файлове бъде разрешено.',
-       'config-gd' => 'Открита е вградена графичната библиотека GD.
-Ако качването на файлове бъде включено, ще бъде включена възможността за преоразмеряване на картинки.',
-       'config-no-scaling' => 'Не са открити библиотеките GD или ImageMagick.
-Преоразмеряването на картинки ще бъде изключено.',
-       'config-no-uri' => "'''Грешка:''' Не може да се определи текущия адрес.
-Инсталация беше прекратена.",
-       'config-using-server' => 'Използване на сървърното име "<nowiki>$1</nowiki>".',
-       'config-using-uri' => 'Използване на сървърния адрес (URL) "<nowiki>$1$2</nowiki>".',
-       'config-uploads-not-safe' => "'''Предупреждение:''' Папката по подразбиране за качване <code>$1</code> е уязвима от изпълнение на зловредни скриптове.
-Въпреки че МедияУики извършва проверка за заплахи в сигурността на всички качени файлове, силно препоръчително е да се [//www.mediawiki.org/wiki/Manual:Security#Upload_security затвори тази уязвимост в сигурността] преди разрешаване за качване на файлове.",
-       'config-brokenlibxml' => 'Вашата система използа комбинация от версии на PHP и libxml2, които са с много грешки и могат да причинят скрити повреди на данните в МедияУики или други уеб приложения.
-Необходимо е обновяване до PHP 5.2.9 или по-нова версия и libxml2 2.7.3 или по-нова версия ([//bugs.php.net/bug.php?id=45996 докладвана грешка при PHP]).
-Инсталацията беше прекратена.',
-       'config-using531' => 'МедияУики не може да се използва с PHP $1 заради проблем с референтните параметри за <code>__call()</code>.
-За разрешаване на този проблем е необходимо да се обнови до PHP 5.3.2 или по-нова версия или да се инсталира по-стара версия, напр. PHP 5.3.0.
-Инсталацията беше прекратена.',
-       'config-suhosin-max-value-length' => 'Suhosin е инсталиран и ограничава дължината на параметъра GET на $1 байта. Компонентът на МедияУики ResourceLoader ще може да пренебрегне частично това ограничение, но това ще намали производителността. По възможност е препоръчително да се настрои <code>suhosin.get.max_value_length</code> на 1024 или по-голяма стойност в <code>php.ini</code> и в LocalSettings.php да се настрои <code>$wgResourceLoaderMaxQueryLength</code> със същата стойност.', # Fuzzy
-       'config-db-type' => 'Тип на базата от данни:',
-       'config-db-host' => 'Хост на базата от данни:',
-       'config-db-host-help' => 'Ако базата от данни е на друг сървър, в кутията се въвежда името на хоста или IP адреса.
-
-Ако се използва споделен уеб хостинг, доставчикът на услугата би трябвало да е предоставил в документацията си коректния хост.
-
-Ако инсталацията протича на Windows-сървър и се използва MySQL, използването на "localhost" може да е неприемливо. В такива случаи се използва "127.0.0.1" за локален IP адрес.
-
-При използване на PostgreSQL, това поле се оставя празно, за свързване чрез Unix socket.',
-       'config-db-host-oracle' => 'TNS на базата данни:',
-       'config-db-wiki-settings' => 'Идентифициране на това уики',
-       'config-db-name' => 'Име на базата от данни:',
-       'config-db-name-help' => 'Избира се име, което да идентифицира уикито.
-То не трябва да съдържа интервали.
-
-Ако се използва споделен хостинг, доставчикът на услугата би трябвало да е предоставил или име на базата от данни, която да бъде използвана, или да позволява създаването на бази от данни чрез контролния панел.',
-       'config-db-name-oracle' => 'Схема на базата от данни:',
-       'config-db-install-account' => 'Потребителска сметка за инсталацията',
-       'config-db-username' => 'Потребителско име за базата от данни:',
-       'config-db-password' => 'Парола за базата от данни:',
-       'config-db-password-empty' => 'Въведете парола за новия потребител на базата от данни: $1.
-Въпреки че е допустимо да се създават потребители без пароли, това е незащитено действие.',
-       'config-db-install-username' => 'Въвежда се потребителско име, което ще се използва за свързване с базата от данни по време на процеса по инсталация.
-Това не е потребителско име за сметка в МедияУики; това е потребителско име за базата от данни.',
-       'config-db-install-password' => 'Въвежда се парола, която ще бъде използвана за свързване с базата от данни по време на инсталационния процес.
-Това не е парола за сметка в МедияУики; това е парола за базата от данни.',
-       'config-db-install-help' => 'Въвеждат се потребителско име и парола, които ще бъдат използвани за свързване с базата от данни по време на инсталационния процес.',
-       'config-db-account-lock' => 'Използване на същото потребителско име и парола по време на нормална работа',
-       'config-db-wiki-account' => 'Потребителска сметка за нормална работа',
-       'config-db-wiki-help' => 'Въвежда се потребителско име и парола, които ще се използват при нормалното функциониране на уикито.
-Ако сметката не съществува и използваната при инсталацията сметка има необходимите права, тази потребителска сметка ще бъде създадена с минималните необходими права за работа с уикито.',
-       'config-db-prefix' => 'Представка за таблиците в базата от данни:',
-       'config-db-prefix-help' => 'Ако е необходимо да се сподели базата от данни между няколко уикита или между МедияУики и друго уеб приложение, може да се добави представка пред имената на таблиците, за да се избегнат конфликти.
-Не се използват интервали.
-
-Това поле обикновено се оставя празно.',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 бинарно',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 с обратна съвестимост с UTF-8',
-       'config-mysql-old' => 'Изисква се MySQL $1 или по-нова версия, наличната версия е $2.',
-       'config-db-port' => 'Порт на базата от данни:',
-       'config-db-schema' => 'Схема за МедияУики',
-       'config-db-schema-help' => 'Схемата по-горе обикновено е коректна.
-Промени се извършват ако наистина е необходимо.',
-       'config-pg-test-error' => "Невъзможно свързване с базата данни '''$1''': $2",
-       'config-sqlite-dir' => 'Директория за данни на SQLite:',
-       'config-sqlite-dir-help' => "SQLite съхранява всички данни в един файл.
-
-По време на инсталацията уеб сървърът трябва да има права за писане в посочената директория.
-
-Тя '''не трябва''' да е достъпна през уеб, затова не е там, където са PHP файловете.
-
-Инсталаторът ще съхрани заедно с нея файл <code>.htaccess</code>, но ако този метод пропадне, някой може да придобие даостъп до суровите данни от базата от данни.
-Това включва сурови данни за потребителите (адреси за е-поща, хеширани пароли), както и изтрити версии на страници и друга чувствителна и с ограничен достъп информация от и за уикито.
-
-Базата от данни е препоръчително да се разположи на друго място, например в <code>/var/lib/mediawiki/yourwiki</code>.",
-       'config-support-info' => 'МедияУики поддържа следните системи за бази от данни:
-
-$1
-
-Ако не виждате желаната за използване система в списъка по-долу, следвайте инструкциите за активиране на поддръжка по-горе.',
-       'config-support-mysql' => '* $1 е най-добре поддържаната система за база от данни, с най-добра поддръжка от МедияУики ([http://www.php.net/manual/en/mysql.installation.php Как се компилира PHP с поддръжка на MySQL])',
-       'config-support-postgres' => '* $1 е популярна система за бази от данни с отворен изходен код, която е алтернатива на MySQL ([http://www.php.net/manual/en/pgsql.installation.php как се компилира PHP с поддръжка на PostgreSQL]). Възможно е все още да има грешки, затова не се препоръчва да се използва в общодостъпна среда.',
-       'config-support-sqlite' => '* $1 е лека система за база от данни, която е много добре поддържана. ([http://www.php.net/manual/en/pdo.installation.php Как се компилира PHP с поддръжка на SQLite], използва PDO)',
-       'config-support-oracle' => '* $1 е комерсиална корпоративна база от данни. ([http://www.php.net/manual/en/oci8.installation.php Как се компилира PHP с поддръжка на OCI8])',
-       'config-header-mysql' => 'Настройки за MySQL',
-       'config-header-postgres' => 'Настройки за PostgreSQL',
-       'config-header-sqlite' => 'Настройки за SQLite',
-       'config-header-oracle' => 'Настройки за Oracle',
-       'config-invalid-db-type' => 'Невалиден тип база от данни',
-       'config-missing-db-name' => 'Необходимо е да се въведе стойност за "Име на базата от данни"',
-       'config-missing-db-host' => 'Необходимо е да се въведе стойност за "Хост на базата от данни"',
-       'config-missing-db-server-oracle' => 'Необходимо е да се въведе стойност за "Database TNS"',
-       'config-invalid-db-server-oracle' => 'Невалиден TNS на базата от данни "$1".
-Допустими са само ASCII букви (a-z, A-Z), цифри (0-9), символите за долна черта (_) и точка (.).',
-       '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.
-
-Необходимо е да се проверят хостът, потребителското име и паролата, след което да се опита отново.',
-       'config-invalid-schema' => 'Невалидна схема за МедияУики "$1".
-Допустими са само ASCII букви (a-z, A-Z), цифри (0-9) и долни черти (_).',
-       'config-db-sys-create-oracle' => 'Инсталаторът поддържа само сметка SYSDBA за създаване на нова сметка.',
-       'config-db-sys-user-exists-oracle' => 'Потребителската сметка "$1" вече съществува. SYSDBA може да се използва само за създаване на нова сметка!',
-       'config-postgres-old' => 'Изисква се PostgreSQL $1 или по-нова версия, наличната версия е $2.',
-       'config-sqlite-name-help' => 'Избира се име, което да идентифицира уикито.
-Не се използват интервали или тирета.
-Това име ще се използва за име на файла за данни на SQLite.',
-       'config-sqlite-parent-unwritable-group' => 'Дикректорията за данни <code><nowiki>$1</nowiki></code> не може да бъде създадена, тъй като уеб сървърът няма права за писане в родителската директория <code><nowiki>$2</nowiki></code>.
-
-Инсталаторът разпознава потребителското име, с което работи уеб сървърът.
-Уверете се, че той притежава права за писане в директорията <code><nowiki>$3</nowiki></code> преди да продължите.
-В Unix/Линукс системи можете да използвате:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Дикректорията за данни <code><nowiki>$1</nowiki></code> не може да бъде създадена, тъй като уеб сървърът няма права за писане в родителската директория <code><nowiki>$2</nowiki></code>.
-
-Инсталаторът не може да определи потребителското име, с което работи уеб сървърът.
-Уверете се, че в директория <code><nowiki>$3</nowiki></code> може да бъде писано от уебсървъра (или от други потребители!) преди да продължите.
-На Unix/Линукс системи можете да използвате:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Грешка при създаване на директорията за данни "$1".
-Проверете местоположението ѝ и опитайте отново.',
-       'config-sqlite-dir-unwritable' => 'Уебсървърът няма права за писане в директория "$1".
-Променете правата му така, че да може да пише в нея, и опитайте отново.',
-       'config-sqlite-connection-error' => '$1.
-
-Проверете директорията за данни и името на базата от данни по-долу и опитайте отново.',
-       'config-sqlite-readonly' => 'Файлът <code>$1</code> няма права за писане.',
-       'config-sqlite-cant-create-db' => 'Файлът за базата от данни <code>$1</code> не може да бъде създаден.',
-       'config-sqlite-fts3-downgrade' => 'Липсва поддръжката на FTS3 за PHP, извършен беше downgradе на таблиците',
-       'config-can-upgrade' => "В базата от данни има таблици за МедияУики.
-За надграждането им за MediaWiki $1, натиска се '''Продължаване'''.",
-       'config-upgrade-done' => "Обновяването приключи.
-
-Вече е възможно [$1 да използвате уикито].
-
-Ако е необходимо, възможно е файлът <code>LocalSettings.php</code> да бъде създаден отново чрез натискане на бутона по-долу.
-Това '''не е препоръчително действие''', освен ако не срещате затруднения с уикито.",
-       'config-upgrade-done-no-regenerate' => 'Обновяването приключи.
-
-Вече е възможно [$1 да използвате уикито].',
-       'config-regenerate' => 'Създаване на LocalSettings.php →',
-       'config-show-table-status' => 'Заявката <code>SHOW TABLE STATUS</code> не сполучи!',
-       'config-unknown-collation' => "'''Предупреждение:''' Базата от данни използва неразпозната колация.",
-       'config-db-web-account' => 'Сметка за уеб достъп до базата от данни',
-       'config-db-web-help' => 'Избиране на потребителско име и парола, които уеб сървърът ще използва да се свързва с базата от данни при обичайната работа на уикито.',
-       'config-db-web-account-same' => 'Използване на същата сметка като при инсталацията.',
-       'config-db-web-create' => 'Създаване на сметката ако все още не съществува',
-       'config-db-web-no-create-privs' => 'Посочената сметка за инсталацията не разполага с достатъчно права за създаване на нова сметка.
-Необходимо е посочената сметка вече да съществува.',
-       'config-mysql-engine' => 'Хранилище на данни:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''Предупреждение''': Избрана е MyISAM като система за складиране в MySQL, която не се препоръчва за използване с МедияУики, защото:
-* почти не поддържа паралелност заради заключване на таблиците
-* е по-податлива на повреди в сравнение с други системи
-* кодът на МедияУики не винаги поддържа MyISAM коректно
-
-Ако инсталацията на MySQL поддържа InnoDB, силно е препоръчително да се използва тя.
-Ако инсталацията на MySQL не поддържа InnoDB, вероятно е време за обновяване.",
-       'config-mysql-engine-help' => "'''InnoDB''' почти винаги е най-добрата възможност заради навременната си поддръжка.
-
-'''MyISAM''' може да е по-бърза при инсталации с един потребител или само за четене.
-Базите от данни MyISAM се повреждат по-често от InnoDB.",
-       'config-mysql-charset' => 'Набор от символи в базата от данни:',
-       'config-mysql-binary' => 'Бинарен',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "В '''бинарен режим''' МедияУики съхранява текстовете в UTF-8 в бинарни полета в базата от данни.
-Това е по-ефективно от UTF-8 режима на MySQL и позволява използването на пълния набор от символи в Уникод.
-
-В '''UTF-8 режим''' MySQL ще знае в кой набор от символи са данните от уикито и ще може да ги показва и променя по подходящ начин, но няма да позволява складиране на символи извън [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Основния многоезичен набор].",
-       'config-site-name' => 'Име на уикито:',
-       'config-site-name-help' => 'Това име ще се показва в заглавната лента на браузъра и на различни други места.',
-       'config-site-name-blank' => 'Необходимо е да се въведе име на уикито.',
-       'config-project-namespace' => 'Именно пространство на проекта:',
-       'config-ns-generic' => 'Проект',
-       'config-ns-site-name' => 'Същото като името на уикито: $1',
-       'config-ns-other' => 'Друго (уточняване)',
-       'config-ns-other-default' => 'МоетоУики',
-       'config-project-namespace-help' => 'Следвайки примера на Уикипедия, много уикита съхраняват страниците си с правила в "\'\'\'именно пространство на проекта\'\'\'", отделно от основното съдържание.
-Всички заглавия на страниците в това именно пространство започват с определена представка, която може да бъде зададена тук.
-Обикновено представката произлиза от името на уикито, но не може да съдържа символи като "#" или ":".',
-       'config-ns-invalid' => 'Посоченото именно пространство "<nowiki>$1</nowiki>" е невалидно.
-Необходимо е да бъде посочено друго.',
-       'config-ns-conflict' => 'Посоченото именно пространство "<nowiki>$1</nowiki>" е в конфликт с използваното по подразбиране именно пространство MediaWiki.
-Необходимо е да се посочи друго именно пространство.',
-       'config-admin-box' => 'Администраторска сметка',
-       'config-admin-name' => 'Потребителско име:',
-       'config-admin-password' => 'Парола:',
-       'config-admin-password-confirm' => 'Парола (повторно):',
-       'config-admin-help' => 'Въвежда се предпочитаното потребителско име, например "Иванчо Иванчев".
-Това ще е потребителското име, което администраторът ще използва за влизане в уикито.',
-       'config-admin-name-blank' => 'Необходимо е да бъде въведено потребителско име на администратора.',
-       'config-admin-name-invalid' => 'Посоченото потребителско име "<nowiki>$1</nowiki>" е невалидно.
-Необходимо е да се посочи друго.',
-       'config-admin-password-blank' => 'Неовходимо е да се въведе парола за администраторската сметка.',
-       'config-admin-password-same' => 'Паролата не трябва да е същата като потребителското име.',
-       'config-admin-password-mismatch' => 'Двете въведени пароли не съвпадат.',
-       'config-admin-email' => 'Адрес за електронна поща:',
-       'config-admin-email-help' => 'Въвеждането на адрес за е-поща позволява получаване на е-писма от другите потребители на уикито, възстановяване на изгубена или забравена парола, оповестяване при промени в страниците от списъка за наблюдение. Това поле може да бъде оставено празно.',
-       'config-admin-error-user' => 'Възникна вътрешна грешка при създаване на администратор с името "<nowiki>$1</nowiki>".',
-       'config-admin-error-password' => 'Възникна вътрешна грешка при задаване на парола за администратора "<nowiki>$1</nowiki>": <pre>$2</pre>',
-       'config-admin-error-bademail' => 'Въведен е невалиден адрес за електронна поща',
-       'config-subscribe' => 'Абониране за [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce пощенския списък за нови версии].',
-       'config-subscribe-help' => 'Това е пощенски списък с малко трафик, който се използва за съобщения при излизане на нови версии, както и за важни проблеми със сигурността.
-Абонирането е препоръчително, както и надграждането на инсталацията на МедияУики при излизането на нова версия.',
-       'config-subscribe-noemail' => 'Опитахте да се абонирате за пощенския списък за нови версии без да посочите адрес за електронна поща.
-Необходимо е да се предостави адрес за електронна поща, в случай че желаете да се абонирате за пощенския списък.',
-       'config-almost-done' => 'Инсталацията е почти готова!
-Възможно е пропускане на оставащата конфигурация и моментално инсталиране на уикито.',
-       'config-optional-continue' => 'Задаване на допълнителни въпроси.',
-       'config-optional-skip' => 'Достатъчно, инсталиране на уикито.',
-       'config-profile' => 'Профил на потребителските права:',
-       'config-profile-wiki' => 'Отворено уики',
-       'config-profile-no-anon' => 'Необходимо е създаване на сметка',
-       'config-profile-fishbowl' => 'Само одобрени редактори',
-       'config-profile-private' => 'Затворено уики',
-       'config-profile-help' => "Уикитата функционират най-добре, когато позволяват на възможно най-много хора да ги редактират.
-В МедияУики лесно се преглеждат последните промени и се възстановяват пораженип от недобронамерени потребители.
-
-Въпреки това мнозина смятат МедияУики за полезен софтуер по различни начини и често е трудно да се убедят всички от предимствата на уики модела.
-Затова се предоставя възможност за избор.
-
-Уикитата от типа '''{{int:config-profile-wiki}}''' позволяват на всички потребители да редактират, дори и без регистрация.
-Уикитата от типа '''{{int:config-profile-no-anon}}''' позволяват достъп до страниците и редактирането им само след създаване на потребителска сметка.
-
-Уики, което е '''{{int:config-profile-fishbowl}}''' позволява на всички да преглеждат страниците, но само предварително одобрени редактори могат да редактират съдържанието.
-В '''{{int:config-profile-private}}''' само предварително одобрени потребители могат да четат и редактират съдържанието.
-
-Детайлно обяснение на конфигурациите на потребителските права е достъпно след инсталацията в [//www.mediawiki.org/wiki/Manual:User_rights Наръчника за потребителски права].", # Fuzzy
-       'config-license' => 'Авторски права и лиценз:',
-       'config-license-none' => 'Без лиценз',
-       'config-license-cc-by-sa' => 'Криейтив Комънс Признание-Споделяне на споделеното',
-       'config-license-cc-by' => 'Криейтив Комънс Признание',
-       'config-license-cc-by-nc-sa' => 'Криейтив Комънс Признание-Некомерсиално-Споделяне на споделеното',
-       'config-license-cc-0' => 'Криейтив Комънс Нула (обществено достояние)',
-       'config-license-gfdl' => 'Лиценз за свободна документация на GNU 1.3 или по-нов',
-       'config-license-pd' => 'Обществено достояние',
-       'config-license-cc-choose' => 'Избиране на друг лиценз от Криейтив Комънс',
-       'config-license-help' => "Много публични уикита поставят всички приноси под [http://freedomdefined.org/Definition/Bg свободен лиценз].
-Това помага създаване на усещане за общност и насърчава дългосрочните приноси.
-Това не е необходимо за частни или корпоративни уикита.
-
-Ако е необходимо да се използват текстове от Уикипедия, както и Уикипедия да може да използва текстове от уикито, необходимо е да се избере лиценз '''Криейтив Комънс Признание-Споделяне на споделеното'''.
-
-Лицензът за свободна документация на GNU е старият лиценз на съдържанието на Уикипедия.
-Той все още е валиден лиценз, но някои негови условия са трудни за разбиране и правят по-сложни повторното използване и интерпретацията.",
-       'config-email-settings' => 'Настройки за е-поща',
-       'config-enable-email' => 'Разрешаване на изходящи е-писма',
-       'config-enable-email-help' => 'За да работят възможностите за използване на е-поща, необходимо е [http://www.php.net/manual/en/mail.configuration.php настройките за поща на PHP] да бъдат конфигурирани правилно.
-Ако няма да се използват услугите за е-поща в уикито, те могат да бъдат изключени тук.',
-       'config-email-user' => 'Позволяване на потребителите да си изпращат е-писма през уикито',
-       'config-email-user-help' => 'Позволяване на потребителите да си изпращат е-писма ако са разрешили това в настройките си.',
-       'config-email-usertalk' => 'Оповестяване при промяна на потребителската беседа',
-       'config-email-usertalk-help' => 'Позволява на потребителите да получават оповестяване при промяна на беседата им, ако това е разрешено в настройките им.',
-       'config-email-watchlist' => 'Оповестяване за списъка за наблюдение',
-       'config-email-watchlist-help' => 'Позволява на потребителите да получават оповестяване за техните наблюдавани страници, ако това е разрешено в настройките им.',
-       'config-email-auth' => 'Потвърждаване на адреса за електронна поща',
-       'config-email-auth-help' => "Ако тази настройка е включена, потребителите трябва да потвърдят адреса си за е-поща чрез препратка, която им се изпраща при настройване или промяна.
-Само валидните адреси могат да получават е-писма от други потребители или да променят писмата за оповестяване.
-Настройването на това е '''препоръчително''' за публични уикита заради потенциални злоупотреби с възможностите за електронна поща.",
-       'config-email-sender' => 'Адрес за обратна връзка:',
-       'config-email-sender-help' => 'Въвежда се адрес за електронна поща, който ще се използва за обратен адрес при изходящи е-писма.
-Това е адресът, на който ще се получават върнатите и неполучени писма.
-Много е-пощенски сървъри изискват поне домейн името да е валидно.',
-       'config-upload-settings' => 'Картинки и качване на файлове',
-       'config-upload-enable' => 'Позволяне качването на файлове',
-       'config-upload-help' => 'Качването на файлове е възможно да доведе до пробели със сигурността на сървъра.
-Повече информация по темата има в [//www.mediawiki.org/wiki/Manual:Security раздела за сигурност] в Наръчника.
-
-За позволяване качването на файлове, необходимо е уебсървърът да може да записва в поддиректорията на МедияУики <code>images</code>.
-След като това условие е изпълнено, функционалността може да бъде активирана.',
-       'config-upload-deleted' => 'Директория за изтритите файлове:',
-       'config-upload-deleted-help' => 'Избиране на директория, в която ще се складират изтритите файлове.
-В най-добрия случай тя не трябва да е достъпна през уеб.',
-       'config-logo' => 'Адрес на логото:',
-       'config-logo-help' => 'Обликът по подразбиране на МедияУики вклчва място с размери 135х160 пиксела за лого над страничното меню.
-Ако има наличен файл с подходящ размер, неговият адрес може да бъде посочен тук.
-
-Ако не е необходимо лого, полето може да се остави празно.', # Fuzzy
-       'config-instantcommons' => 'Включване на Instant Commons',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons Instant Commons] е функционалност, която позволява на уикитата да използват картинки, звуци и друга медиа от сайта на Уикимедия [//commons.wikimedia.org/ Общомедия].
-За да е възможно това, МедияУики изисква достъп до Интернет.
-
-Повече информация за тази функционалност, както и инструкции за настройване за други уикита, различни от Общомедия, е налична в [//mediawiki.org/wiki/Manual:$wgForeignFileRepos наръчника].',
-       'config-cc-error' => 'Избирането на лиценз на Криейтив Комънс не даде резултат.
-Необходимо е името на лиценза да бъде въведено ръчно.',
-       'config-cc-again' => 'Повторно избиране...',
-       'config-cc-not-chosen' => 'Изберете кой лиценз на Криейтив Комънс желаете и щракнете "proceed".',
-       'config-advanced-settings' => 'Разширена конфигурация',
-       'config-cache-options' => 'Настройки за обектното кеширане:',
-       'config-cache-help' => 'Обектното кеширане се използва за подобряване на скоростта на МедияУики чрез кеширане на често използваните данни.
-Силно препоръчително е на средните и големите сайтове да включат тази настройка, но малките също могат да се възползват от нея.',
-       'config-cache-none' => 'Без кеширане (не се премахва от функционалността, но това влияе на скоростта на по-големи уикита)',
-       'config-cache-accel' => 'PHP обектно кеширане (APC, XCache или WinCache)',
-       'config-cache-memcached' => 'Използване на Memcached (изисква допълнителни настройки и конфигуриране)',
-       'config-memcached-servers' => 'Memcached сървъри:',
-       'config-memcached-help' => 'Списък с IP адреси за използване за Memcached.
-Необходимо е да бъдат разделени по един на ред, както и да е посочен порта. Пример:
-127.0.0.1:11211
-192.168.1.25:1234',
-       'config-memcache-needservers' => 'Избран е Memcached като складиращ тип, но не са посочени сървъри.',
-       'config-memcache-badip' => 'Беше въведен невалиден IP адрес за Memcached: $1.',
-       'config-memcache-noport' => 'Не е посочен порт за използване за Memcached сървъра: $1.
-В случай, че не знаете порта, този по подразбиране е 11211.',
-       'config-memcache-badport' => 'Портовете за Memcached трябва да бъдат между $1 и $2.',
-       'config-extensions' => 'Разширения',
-       'config-extensions-help' => 'Разширенията от списъка по-горе бяха открити в директорията <code>./extensions</code>.
-
-Възможно е те да изискват допълнително конфигуриране, но сега могат да бъдат включени.',
-       'config-install-alreadydone' => "'''Предупреждение:''' Изглежда вече сте инсталирали МедияУики и се опитвате да го инсталирате отново.
-Продължете към следващата страница.",
-       'config-install-begin' => 'Инсталацията на МедияУики ще започне след натискане на бутона „{{int:config-continue}}“.
-В случай, че е необходимо да се направят промени, използва се бутона „{{int:config-back}}“.',
-       'config-install-step-done' => 'готово',
-       'config-install-step-failed' => 'неуспешно',
-       'config-install-extensions' => 'Добавяне на разширенията',
-       'config-install-database' => 'Създаване на базата от данни',
-       'config-install-schema' => 'Създаване на схема',
-       'config-install-pg-schema-not-exist' => 'PostgreSQL схемата не съществува',
-       'config-install-pg-schema-failed' => 'Създаването на таблиците пропадна.
-Необходимо е потребител "$1" да има права за писане в схемата "$2".',
-       'config-install-pg-plpgsql' => 'Проверяване за езика PL/pgSQL',
-       'config-pg-no-plpgsql' => 'Необходимо е да се инсталира езикът PL/pgSQL в базата от данни $1',
-       'config-pg-no-create-privs' => 'Посочената сметка за инсталацията не притежава достатъчно права за създаване на сметка.',
-       'config-pg-not-in-role' => 'Посочената сметка за уеб потребител вече съществува.
-Посочената сметка за инсталация не с права на суперпотребител и не е член на ролите на уеб потребителя и не може да създава обекти, собственост на уеб потребителя.
-
-Текущо МедияУики изисква таблиците да са собственост на уеб потребителя. Необходимо е да се посочи друго потребителско име за уеб или да се натисне "връщане" и да се избере друг потребител за инсталацията с подходящите права.',
-       'config-install-user' => 'Създаване на потребител за базата от данни',
-       'config-install-user-alreadyexists' => 'Потребител „$1“ вече съществува',
-       'config-install-user-create-failed' => 'Създаването на потребител „$1“ беше неуспешно: $2',
-       'config-install-user-grant-failed' => 'Предоставянето на права на потребител "$1" беше неуспешно: $2',
-       'config-install-user-missing' => 'Посоченият потребител " $1 "не съществува.',
-       'config-install-user-missing-create' => 'Посоченият потребител "$1" не съществува.
-Ако желаете да го създадете, поставете отметка на "създаване на сметка".',
-       'config-install-tables' => 'Създаване на таблиците',
-       'config-install-tables-exist' => "'''Предупреждение''': Таблиците за МедияУики изглежда вече съществуват.
-Пропускане на създаването им.",
-       'config-install-tables-failed' => "'''Грешка''': Създаването на таблиците пропадна и върна следната грешка: $1",
-       'config-install-interwiki' => 'Попълване на таблицата с междууикитата по подразбиране',
-       'config-install-interwiki-list' => 'Файлът <code>interwiki.list</code> не можа да бъде открит.',
-       'config-install-interwiki-exists' => "'''Предупреждение''': Таблицата с междууикита изглежда вече съдържа данни.
-Пропускане на списъка по подразбиране.",
-       'config-install-stats' => 'Инициализиране на статистиките',
-       'config-install-keys' => 'Генериране на тайни ключове',
-       'config-insecure-keys' => "'''Предупреждение:''' {{PLURAL:$2|Сигурният ключ, създаден по време на инсталацията, не е напълно надежден|Сигурните ключове, създадени по време на инсталацията, не са напълно надеждни}} $1 . Обмислете да {{PLURAL:$2|го|ги}} смените ръчно.",
-       'config-install-sysop' => 'Създаване на администраторска сметка',
-       'config-install-subscribe-fail' => 'Невъзможно беше абонирането за mediawiki-announce: $1',
-       'config-install-subscribe-notpossible' => 'не е инсталиран cURL и allow_url_fopen не е налична.',
-       'config-install-mainpage' => 'Създаване на Началната страница със съдържание по подразбиране',
-       'config-install-extension-tables' => 'Създаване на таблици за включените разширения',
-       'config-install-mainpage-failed' => 'Вмъкването на Началната страница беше невъзможно: $1',
-       'config-install-done' => "'''Поздравления!'''
-Инсталирането на МедияУики приключи успешно.
-
-Инсталаторът създаде файл <code>LocalSettings.php</code>.
-Той съдържа всичката необходима основна конфигурация на уикито.
-
-Необходимо е той да бъде изтеглен и поставен в основната директория на уикито (директорията, в която е и index.php). Изтеглянето би трябвало да започне автоматично.
-
-Ако изтеглянето не започне автоматично или е било прекратено, файлът може да бъде изтеглен чрез щракване на препратката по-долу:
-
-$3
-
-'''Забележка''': Ако това не бъде извършено сега, генерираният конфигурационен файл няма да е достъпен на по-късен етап ако не бъде изтеглен сега или инсталацията приключи без изтеглянето му.
-
-Когато файлът вече е в основната директория, '''[$2 уикито ще е достъпно на този адрес]'''.",
-       'config-download-localsettings' => 'Изтегляне на <code>LocalSettings.php</code>',
-       'config-help' => 'помощ',
-       'config-nofile' => 'Файлът „$1“ не може да бъде открит. Да не е бил изтрит?',
-       'mainpagetext' => "'''Уикито беше успешно инсталирано.'''",
-       'mainpagedocfooter' => 'Разгледайте [//meta.wikimedia.org/wiki/Help:Contents ръководството] за подробна информация относно използването на уики софтуера.
-
-== Първи стъпки ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Настройки за конфигуриране]
-* [//www.mediawiki.org/wiki/Manual:FAQ ЧЗВ за МедияУики]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Пощенски списък относно нови версии на МедияУики]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Локализиране на МедияУики]',
-);
-
-/** Banjar (Bahasa Banjar)
- * @author Ezagren
- * @author J Subhi
- */
-$messages['bjn'] = array(
-       'mainpagetext' => "'''MediaWiki sudah tapasang awan sukses'''.",
-       'mainpagedocfooter' => 'Carii panjalasan [//meta.wikimedia.org/wiki/Help:Contents Panduan Pamuruk] gasan mamuruk parangkat lunak wiki
-
-== Gasan bamula ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Daptar konpigurasi setélan]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki nang rancak ditakunakan]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki rilis milis]', # Fuzzy
-);
-
-/** Bengali (বাংলা)
- * @author Bellayet
- * @author Wikitanvir
- */
-$messages['bn'] = array(
-       'config-desc' => 'মিডিয়াউইকির জন্য ইন্সটলার',
-       'config-title' => 'মিডিয়াউইকি $1 ইন্সটলেশন',
-       'config-information' => 'তথ্য',
-       'config-localsettings-key' => 'হালনাগাদ কি',
-       'config-session-error' => 'সেশন শুরুতে ত্রুটি: $1',
-       'config-your-language' => 'আপনার ভাষা:',
-       'config-your-language-help' => 'ইন্সটল করা সময় ব্যবহারের জন্য ভাষা নির্বাচন করুন।',
-       'config-wiki-language' => 'উইকি ভাষা:',
-       'config-back' => '← পেছনে',
-       'config-continue' => 'অব্যাহত →',
-       'config-page-language' => 'ভাষা',
-       'config-page-welcome' => 'মিডিয়াউইকিতে স্বাগতম!',
-       'config-page-dbconnect' => 'ডেটাবেজে সংযোগ দিন',
-       'config-page-upgrade' => 'ইতিমধ্যেই থাকা ইন্সটলেশন হালনাগাদ করুন',
-       'config-page-dbsettings' => 'ডেটাবেজ সেটিংস',
-       'config-page-name' => 'নাম',
-       'config-page-options' => 'অপশন',
-       'config-page-install' => 'ইন্সটল',
-       'config-page-complete' => 'সম্পূর্ণ!',
-       'config-page-restart' => 'পুনরায় ইন্সটল প্রক্রিয়া চালু করুন',
-       'config-page-readme' => 'এটি পড়ুন',
-       'config-page-releasenotes' => 'রিলিজ নোট',
-       'config-page-copying' => 'অনুলেপন',
-       'config-page-upgradedoc' => 'হালনাগাদকরণ',
-       'config-page-existingwiki' => 'ইতিমধ্যেই থাকা উইকি',
-       'config-restart' => 'হ্যাঁ, পুনরায় চালু করুন',
-       'config-env-php' => 'পিএইচপি $1 ইন্সটল করা হয়েছে।',
-       'config-db-type' => 'ডেটাবেজের ধরন:',
-       'config-db-host' => 'ডেটাবেজের হোস্ট:',
-       'config-db-install-account' => 'ইন্সটলের জন্য ব্যবহারকারী অ্যাকাউন্ট',
-       'config-db-username' => 'ডেটাবেজের ব্যবহারকারী নাম:',
-       'config-db-password' => 'ডেটাবেজের শব্দচাবি:',
-       'config-db-charset' => 'ডেটাবেজের অক্ষর সেট',
-       'config-db-port' => 'ডেটাবেজ পোর্ট:',
-       'config-db-schema' => 'মিডিয়াউইকির স্কিমা',
-       'config-sqlite-dir' => 'এসকিউলাইট ডেটা ডিরেক্টরি:',
-       'config-oracle-def-ts' => 'পূর্বনির্ধারিত টেবিলস্পেস',
-       'config-oracle-temp-ts' => 'সাময়কি টেবিলস্পেস:',
-       'config-header-mysql' => 'মাইএসকিউএল সেটিংস',
-       'config-header-postgres' => 'পোস্টগ্রেএসকিউএল সেটিংস',
-       'config-header-sqlite' => 'এসকিউলাইট সেটিংস',
-       'config-header-oracle' => 'ওরাকল সেটিংস',
-       'config-invalid-db-type' => 'ডেটাবেজের ধরন অগ্রহযোগ্য',
-       'config-missing-db-name' => 'আপনাকে অবশ্যই "ডেটাবেজ নাম"-এর জন্য একটি মান প্রবেশ করাতে হবে',
-       'config-missing-db-host' => 'আপনাকে অবশ্যই "ডেটাবেজ হোস্ট"-এর জন্য একটি মান প্রবেশ করাতে হবে',
-       'config-missing-db-server-oracle' => 'আপনাকে অবশ্যই "ডেটাবেজ টিএনএস"-এর জন্য একটি মান প্রবেশ করাতে হবে',
-       'config-mysql-engine' => 'সংরক্ষণ ইঞ্জিন:',
-       'config-mysql-innodb' => 'ইনোডিবি',
-       'config-mysql-myisam' => 'মাইআইএসএএম',
-       'config-mysql-charset' => 'ডেটাবেজের অক্ষর সেট',
-       'config-mysql-binary' => 'বাইনারি',
-       'config-mysql-utf8' => 'ইউটিএফ-৮',
-       'config-site-name' => 'উইকির নাম:',
-       'config-site-name-blank' => 'একটি সাইটের নাম প্রবেশ করান।',
-       'config-project-namespace' => 'প্রকল্প নামস্থান:',
-       'config-ns-generic' => 'প্রকল্প',
-       'config-ns-site-name' => 'উইকি নামের অনুরুপ: $1',
-       'config-ns-other' => 'অন্যান্য (নির্দিষ্ট করুন)',
-       'config-ns-other-default' => 'মাইউইকি',
-       'config-admin-box' => 'প্রশাসক অ্যাকাউন্ট',
-       'config-admin-name' => 'আপনার নাম:',
-       'config-admin-password' => 'শব্দচাবি:',
-       'config-admin-password-confirm' => 'শব্দচাবি আবারও প্রবেশ করান:',
-       'config-admin-name-blank' => 'একটি প্রশাসক ব্যবহারকারী নাম প্রবেশ করান',
-       'config-admin-password-blank' => 'প্রশাসক অ্যাকাউন্টের জন্য পাসওয়ার্ড প্রবেশ করান।',
-       'config-admin-password-same' => 'পাসওয়ার্ড অবশ্যই ব্যবহারকারী নামের অনুরুপ হওয়া চলবে না।',
-       'config-admin-password-mismatch' => 'আপনি যে দুটি শব্দচাবি দিয়েছেন তারা পরস্পর মেলেনি।',
-       'config-admin-email' => 'ইমেইল ঠিকানা:',
-       'config-optional-continue' => 'আরও প্রশ্ন জিজ্ঞেস করুন।',
-       'config-optional-skip' => 'আমি ইতিমধ্যেই বিরক্ত হয়ে গেছি, উইকিটি ইন্সটল করো।',
-       'config-profile' => 'ব্যবহারকারী অধিকার প্রোফাইল:',
-       'config-profile-wiki' => 'গতানুগতিক উইকি', # Fuzzy
-       'config-profile-no-anon' => 'অ্যাকাউন্ট তৈরি করা বাধ্যতামূলক',
-       'config-profile-fishbowl' => 'শুধুমাত্র নির্ধারিত সম্পাদকদের  জন্যই',
-       'config-profile-private' => 'ব্যক্তিগত উইকি',
-       'config-license' => 'কপিরাইট ও লাইসেন্স:',
-       'config-license-none' => 'কোনো লাইসেন্স ফুটার নেই',
-       'config-license-cc-by-sa' => 'ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন শেয়ার অ্যালাইক',
-       'config-license-cc-by-nc-sa' => 'ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন নন-কমার্শিয়াল শেয়ার অ্যালাইক',
-       'config-license-cc-0' => 'ক্রিয়েটিভ কমন্স জিরো', # Fuzzy
-       'config-license-pd' => 'পাবলিক ডোমেইন',
-       'config-license-cc-choose' => 'একটি স্বনির্ধারিত ক্রিয়েটিভ কমন্স লাইসেন্ট নির্বাচন করুন',
-       'config-email-settings' => 'ই-মেইল সেটিংস',
-       'config-email-user' => 'ব্যবহারকারী-থেকে-ব্যবহারকারী ই-মেইল সুবিধা সক্রিয় করো',
-       'config-upload-settings' => 'চিত্র এবং ফাইল আপলোড',
-       'config-upload-enable' => 'ফাইল আপলোড সক্রিয় করো',
-       'config-upload-deleted' => 'অপসারণকৃত ফাইলের ডিরেক্টরি:',
-       'config-logo' => 'লোগো ইউআরএল:',
-       'config-memcached-servers' => 'মেমক্যাশেকৃত সার্ভারসমূহ:',
-       'config-extensions' => 'এক্সটেনশন',
-       'config-install-step-done' => 'সম্পন্ন',
-       'config-install-step-failed' => 'ব্যর্থ',
-       'config-install-extensions' => 'এক্সটেনশন সহকারে',
-       'config-install-database' => 'ডেটাবেজ সেটআপ',
-       'config-install-pg-schema-not-exist' => 'পোস্টগ্রেএসকিউএল স্কিমা খুঁজে পাওয়া যায়নি।',
-       'config-install-tables' => 'টেবিল তৈরি',
-       'config-install-keys' => 'গোপন কি তৈরি',
-       'config-help' => 'সাহায্য',
-       'mainpagetext' => "'''মিডিয়াউইকি সফলভাবে ইন্সটল করা হয়েছে।'''",
-       'mainpagedocfooter' => 'কী ভাবে উইকি সফটওয়্যারটি ব্যবহারকার করবেন, তা জানতে [//meta.wikimedia.org/wiki/Help:Contents ব্যবহারকারী সহায়িকা] দেখুন।
-
-== কোথা থেকে শুরু করবেন ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings কনফিগারেশন সেটিংস তালিকা]
-* [//www.mediawiki.org/wiki/Manual:FAQ প্রশ্নোত্তরে মিডিয়াউইকি]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce মিডিয়াউইকি রিলিজের মেইলিং লিস্ট]', # Fuzzy
-);
-
-/** Bishnupria Manipuri (বিষ্ণুপ্রিয়া মণিপুরী)
- */
-$messages['bpy'] = array(
-       'mainpagetext' => "'''মিডিয়াউইকি হবাবালা ইয়া ইন্সটল ইল.'''",
-       'mainpagedocfooter' => 'উইকি সফটৱ্যার এহান আতানির বারে দরকার ইলে [//meta.wikimedia.org/wiki/Help:Contents আতাকুরার গাইড]হানর পাঙলাক নেগা।
-
-== অকরানিহান ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings কনফিগারেশন সেটিংর তালিকাহান]
-* [//www.mediawiki.org/wiki/Manual:FAQ মিডিয়া উইকি আঙলাক]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce মিডিয়া উইকির ফঙপার বারে মেইলর তালিকাহান]', # Fuzzy
-);
-
-/** Breton (brezhoneg)
- * @author Fohanno
- * @author Fulup
- * @author Gwendal
- * @author Y-M D
- * @author 아라
- */
-$messages['br'] = array(
-       'config-desc' => 'Poellad staliañ MediaWIki',
-       'config-title' => 'Staliadur MediaWiki $1',
-       'config-information' => 'Titouroù',
-       'config-localsettings-upgrade' => 'Kavet ez eus bet ur restr <code>LocalSettings.php</code>.
-Evit hizivaat ar staliadur-se, merkit an talvoud <code>$wgUpgradeKey</code> er voest dindan.
-E gavout a rit e <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'Dinoet ez eus bet ur restr <code>LocalSettings.php</code>.
-Evit lakaat ar staliadur-mañ a-live, implijit <code>update.php</code> e plas',
-       'config-localsettings-key' => "Alc'hwez hizivaat :",
-       'config-localsettings-badkey' => "Direizh eo an alc'hwez merket ganeoc'h",
-       'config-upgrade-key-missing' => 'Kavet ez eus bet ur staliadur kent eus MediaWiki.
-Evit hizivaat ar staliadur-se, ouzhpennit al linenn da-heul e traoñ ho restr <code>LocalSettings.php</code>:
-
-$1',
-       'config-localsettings-incomplete' => "Diglok e seblant bezañ ar restr <code>LocalSettings.php</code> zo anezhi dija.
-An argemmenn $1 n'eo ket termenet.
-Kemmit <code>LocalSettings.php</code> evit ma vo termenet an argemmenn-se, ha klikit war « {{int:Config-continue}} ».",
-       'config-localsettings-connection-error' => "C'hoarvezet ez eus ur fazi en ur gevreañ ouzh an diaz roadennoù oc'h implijout an arventennoù diferet e <code>LocalSettings.php</code> pe <code>AdminSettings.php</code>. Reizhit an arventennoù-se hag esaeit en-dro.
-
-$1",
-       'config-session-error' => "Fazi e-ser loc'hañ an dalc'h : $1",
-       'config-session-expired' => "Kloz eo an dalc'h evit doare.
-Kefluniet eo an dalc'hoù evit padout $1.
-Kreskiñ ar pad-mañ a c'hallit dre e arventenniñ <code>session.gc_maxlifetime</code> e php.ini.
-Adgrogit gant ar staliadur.",
-       'config-no-session' => "Kolle teo bet roadennoù ho talc'h !
-Gwiriit ar restr php.ini ha bezit sur emañ staliet <code>session.save_path</code> en ur c'havlec'h a zere.",
-       'config-your-language' => 'Ho yezh :',
-       'config-your-language-help' => 'Dibabit ur yezh da implijout e-pad an argerzh staliañ.',
-       'config-wiki-language' => 'Yezh ar wiki :',
-       'config-wiki-language-help' => 'Diuzañ ar yezh a vo implijet ar muiañ er wiki.',
-       'config-back' => '← Distreiñ',
-       'config-continue' => "Kenderc'hel →",
-       'config-page-language' => 'Yezh',
-       'config-page-welcome' => 'Degemer mat e MediaWiki !',
-       'config-page-dbconnect' => "Kevreañ d'an diaz roadennoù",
-       'config-page-upgrade' => 'Hizivaat ar staliadur a zo dioutañ',
-       'config-page-dbsettings' => 'Arventennoù an diaz roadennoù',
-       'config-page-name' => 'Anv',
-       'config-page-options' => 'Dibarzhioù',
-       'config-page-install' => 'Staliañ',
-       'config-page-complete' => 'Graet !',
-       'config-page-restart' => 'Adlañsañ ar staliadur',
-       'config-page-readme' => 'Lennit-me',
-       'config-page-releasenotes' => 'Notennoù stumm',
-       'config-page-copying' => 'O eilañ',
-       'config-page-upgradedoc' => 'O hizivaat',
-       'config-page-existingwiki' => 'Wiki zo anezhañ dija',
-       'config-help-restart' => "Ha c'hoant hoc'h eus da ziverkañ an holl roadennoù hoc'h eus ebarzhet ha da adlañsañ an argerzh staliañ ?",
-       'config-restart' => "Ya, adloc'hañ anezhañ",
-       'config-welcome' => "=== Gwiriadennoù a denn d'an endro ===
-Rekis eo un nebeud gwiriadennoù diazez da welet hag azas eo an endro evit gallout staliañ MediaWiki.
-Dleout a rafec'h merkañ disoc'hoù ar gwiriadennoù-se m'hoc'h eus ezhomm skoazell e-pad ar staliadenn.",
-       'config-copyright' => "=== Gwiriañ aozer ha Termenoù implijout ===
-
-$1
-
-Ur meziant frank eo ar programm-mañ; gallout a rit skignañ anezhañ ha/pe kemmañ anezhañ dindan termenoù ar GNU Aotre-implijout Foran Hollek evel m'emañ embannet gant Diazezadur ar Meziantoù Frank; pe diouzh stumm 2 an aotre-implijout, pe (evel mar karit) diouzh ne vern pe stumm nevesoc'h.
-
-Ingalet eo ar programm gant ar spi e vo talvoudus met n'eus '''tamm gwarant ebet'''; hep zoken gwarant empleg ar '''varc'hadusted''' pe an '''azaster ouzh ur pal bennak'''. Gwelet ar GNU Aotre-Implijout Foran Hollek evit muioc'h a ditouroù.
-
-Sañset oc'h bezañ resevet <doclink href=Copying>un eilskrid eus ar GNU Aotre-implijout Foran Hollek</doclink> a-gevret gant ar programm-mañ; ma n'hoc'h eus ket, skrivit da Diazezadur ar Meziantoù Frank/Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, SUA pe [http://www.gnu.org/licenses/old-licenses/gpl-2.0.html lennit anezhañ enlinenn].",
-       'config-sidebar' => "* [//www.mediawiki.org MediaWiki degemer]
-* [//www.mediawiki.org/wiki/Help:Contents Sturlevr an implijerien]
-* [//www.mediawiki.org/wiki/Manual:Contents Sturlevr ar verourien]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAG]
-----
-* <doclink href=Readme>Lennit-me</doclink>
-* <doclink href=ReleaseNotes>Notennoù embann</doclink>
-* <doclink href=Copying>Oc'h eilañ</doclink>
-* <doclink href=UpgradeDoc>O hizivaat</doclink>",
-       'config-env-good' => 'Gwiriet eo bet an endro.
-Gallout a rit staliañ MediaWiki.',
-       'config-env-bad' => "Gwiriet eo bet an endro.
-Ne c'hallit ket staliañ MediaWiki.",
-       'config-env-php' => 'Staliet eo PHP $1.',
-       'config-env-php-toolow' => "Staliet eo PHP $1.
-Nemet eo rekis PHP $2 pe nevesoc'h evit MediaWiki.",
-       'config-unicode-using-utf8' => "Oc'h implijout utf8_normalize.so gant Brion Vibber evit ar reolata Unicode.",
-       'config-unicode-using-intl' => "Oc'h implijout [http://pecl.php.net/intl an astenn PECL intl] evit ar reolata Unicode.",
-       'config-unicode-pure-php-warning' => "'''Diwallit''' : N'haller ket kaout an [http://pecl.php.net/intl intl PECL astenn] evit merañ reoladur Unicode, a zistro d'ar stumm gorrek emplementet e-PHP.
-Ma lakait da dreiñ ul lec'hienn darempredet-stank e vo mat deoc'h lenn un tammig bihan diwar-benn se war [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode normalization]. (e saozneg)",
-       'config-unicode-update-warning' => "'''Diwallit''': ober a ra stumm staliet endalc'her skoueriekaat Unicode gant ur stumm kozh eus [http://site.icu-project.org/ levraoueg meziantoù ar raktres ICU].
-Dleout a rafec'h [//www.mediawiki.org/wiki/Unicode_normalization_considerations hizivaat] ma seblant deoc'h bezañ pouezus ober gant Unicode.",
-       'config-no-db' => "N'eus ket bet gallet kavout ur sturier diazoù roadennoù a zere ! Ret eo deoc'h staliañ ur sturier diazoù roadennoù evit PHP.
-Skoret eo an diazoù roadennoù da-heul : $1.
-
-Ma rit gant un herberc'hiañ kenrannet, goulennit digant ho herberc'hier staliañ ur sturier diaz roadennoù azas.
-Ma kempunit PHP c'hwi hoc'h-unan, adkeflugnit-eñ en ur weredekaat un arval diaz roadennoù, da skouer en ur ober gant <code>./configure --mysql</code>.
-M'hoc'h eus staliet PHP adalek ur pakad Debian pe Ubuntu, eo ret deoc'h staliañ ar vodulenn php5-mysql ivez.",
-       'config-no-fts3' => "'''Diwallit ''': Kempunet eo SQLite hep ar [//sqlite.org/fts3.html vodulenn FTS3]; ne vo ket posupl ober gant an arc'hwelioù klask er staliadur-mañ",
-       'config-register-globals' => "'''Diwallit : Gweredekaet eo dibarzh <code>[http://php.net/register_globals register_globals]</code> PHP.'''
-'''Diweredekait anezhañ ma c'hallit.'''
-Mont a raio MediaWiki en-dro met fazioù surentez a c'hallo c'hoari war ho servijer",
-       'config-magic-quotes-runtime' => "'''Fazi groñs : gweredekaet eo [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] !'''
-Breinañ a ra an dibarzh-mañ ar roadennoù en ur mod dic'hortoz.
-N'hallit ket staliañ pe ober gant MediaWiki e-keit ha m'eo gweredekaet an dibarzh-se.",
-       'config-magic-quotes-sybase' => "'''Fazi groñs : gweredekaet eo [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] !'''
-Breinañ a ra an dibarzh-mañ ar roadennoù en ur mod dic'hortoz.
-N'hallit ket staliañ pe ober gant MediaWiki e-keit ha m'eo gweredekaet an dibarzh-se.",
-       'config-mbstring' => "'''Fazi groñs : gweredekaet eo [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] !'''
-Degas a ra an dibarzh-mañ fazioù ha gallout a ra breinañ ar roadennoù en ur mod dic'hortoz.
-N'hallit ket staliañ pe ober gant MediaWiki e-keit ha m'eo gweredekaet an dibarzh-se.",
-       'config-ze1' => "'''Fazi diremed : [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mod] zo gweredekaet !'''
-An dibarzh-mañ zo kaoz da zrein euzhus gant MediaWiki.
-Ne c'hallit ket staliañ nag implijout MediaWiki keit ha m'eo gweredekaet an dibarzh-mañ.",
-       'config-safe-mode' => "'''Diwallit :''' Gweredekaet eo [http://www.php.net/features.safe-mode mod surentez] PHP.
-Kudennoù a c'hall sevel abalamour da gement-se, dreist-holl ma pellgargit restroù ha ma skorit <code>math</code>.",
-       'config-xml-bad' => "Mankout a ra modulenn XML PHP.
-Ezhomm en deus MediaWiki eus arc'hwelioù zo eus ar vodulenn-se ha ne'z aio ket en-dro gant ar c'hefluniadur zo.
-M'emaoc'h gant Mandrake, stailhit pakad php-xml.",
-       'config-pcre' => "Evit doare e vank ar vodulenn skorañ PCRE.
-Evit mont en-dro plaen en deus ezhomm MediaWiki eus an arc'hwelioù jediñ reoliek kenglotus gant Perl.",
-       'config-pcre-no-utf8' => "'''Fazi groñs ''': evit doare eo bet kempunet modulenn PCRE PHP hep ar skor PCRE_UTF8.
-Ezhomm en deus MediaWiki eus UTF-8 evit mont plaen en-dro.",
-       'config-memory-raised' => '<code>memory_limit</code> ar PHP zo $1, kemmet e $2.',
-       'config-memory-bad' => "'''Diwallit :''' Da $1 emañ arventenn <code>memory_limit</code> PHP.
-Re izel eo moarvat.
-Marteze e c'hwito ar staliadenn !",
-       'config-xcache' => 'Staliet eo [http://xcache.lighttpd.net/ XCache]',
-       'config-apc' => 'Staliet eo [http://www.php.net/apc APC]',
-       'config-wincache' => 'Staliet eo [http://www.iis.net/download/WinCacheForPhp WinCache]',
-       'config-no-cache' => "'''Diwallit:''' N'eus ket bet gallet kavout [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] pe [http://www.iis.net/download/WinCacheForPhp WinCache].
-N'eo ket gweredekaet ar c'hrubuilhañ traezoù.",
-       'config-diff3-bad' => "N'eo ket bet kavet GNU diff3.",
-       'config-imagemagick' => "ImageMagick kavet : <code>$1</code>.
-Gweredekaet e vo ar bihanaat skeudennoù ma vez gweredekaet ganeoc'h ar pellgargañ restroù.",
-       'config-gd' => "Kavet eo bet al levraoueg c'hrafek GD enframmet.
-Gweredekaet e vo ar bihanaat skeudennoù ma vez gweredekaet an enporzhiañ restroù.",
-       'config-no-scaling' => "N'eus ket bet gallet kavout al levraoueg GD pe ImageMagick.
-Diweredekaet e vo ar bihanaat skeudennoù.",
-       'config-no-uri' => "'''Fazi :''' N'eus ket tu da anavezout URI ar skript red.
-Staliadur nullet.",
-       'config-uploads-not-safe' => "'''Diwallit :'''Bresk eo ho kavlec'h pellgargañ dre ziouer <code>$1</code> rak gallout a ra erounit ne vern pe skript.
-ha pa vefe gwiriet gant MediaWiki an holl restroù pellgarget eo erbedet-groñs da [//www.mediawiki.org/wiki/Manual:Security#Upload_security serriñ ar breskter surentez-mañ] a-rao gweredekaat ar pellgargañ.",
-       'config-brokenlibxml' => "Ur meskad stummoù PHP ha libxml2 dreinek a vez implijet gant ho reizhiad. Gallout a ra breinañ ar roadennoù e MediaWiki hag en arloadoù web all.
-Hizivait da PHP 5.2.9 pe nevesoc'h ha libxml2 2.7.3 pe nevesoc'h ([//bugs.php.net/bug.php?id=45996 draet renablet gant PHP]).
-Staliadur paouezet.",
-       'config-using531' => "N'haller ket implijout MediaWiki gant PHP $1 abalamour d'un draen a zegas trubuilh en arventennoù kaset en ur ober dave da <code>__call()</code>.
-Hizivait ho reizhiad gant PHP 5.3.2 pe nevesoc'h, pe distroit da PHP 5.3.0 evit renkañ an dra-se.
-Staliadur paouezet.",
-       'config-db-type' => 'Doare an diaz roadennoù :',
-       'config-db-host' => 'Anv implijer an diaz roadennoù :',
-       'config-db-host-help' => "M'emañ ho servijer roadennoù war ur servijer disheñvel, merkit amañ an anv ostiz pe ar chomlec'h IP.
-
-Ma rit gant un herberc'hiañ kenrannet, e tlefe ho herberc'hier bezañ pourchaset deoc'h un anv ostiz reizh en teulioù titouriñ.
-
-M'emaoc'h o staliañ ur servijer Windows ha ma rit gant MySQL, marteze ne'z aio ket en-dro \"localhost\" evel anv servijer. Ma ne dro ket, klaskit ober gant \"127.0.0.1\" da chomlec'h IP lechel.", # Fuzzy
-       'config-db-host-oracle' => 'TNS an diaz roadennoù :',
-       'config-db-wiki-settings' => 'Anavezout ar wiki-mañ',
-       'config-db-name' => 'Anv an diaz roadennoù :',
-       'config-db-name-help' => "Dibabit un anv evit ho wiki.
-Na lakait ket a esaouennoù ennañ.
-
-Ma ri gant un herberc'hiañ kenrannet e vo pourchaset deoc'h un anv diaz roadennoù dibar da vezañ graet gantañ gant ho herberc'hier pe e lezo ac'hanoc'h da grouiñ diazoù roadennoù dre ur banell gontrolliñ.",
-       'config-db-name-oracle' => 'Brastres diaz roadennoù :',
-       'config-db-install-account' => 'Kont implijer evit ar staliadur',
-       'config-db-username' => 'Anv implijer an diaz roadennoù :',
-       'config-db-password' => 'Ger-tremen an diaz roadennoù :',
-       'config-db-password-empty' => "Lakait ur ger-tremen evit kont nevez an diaz roadennoù : $1.
-Ha pa vefe posupl da grouiñ kontoù hep ger-tremen, n'eo ket erbedet evit abegoù surentez.",
-       'config-db-install-username' => "Ebarzhit an anv implijer a vo implijet da gevreañ ouzh an diaz roadennoù e-pad an argerzh staliañ.
-N'eo ket anv implijer ar gont MediaWiki, an anv implijer evit ho tiaz roadennoù eo.",
-       'config-db-install-password' => "Ebarzhit ar ger-tremen a vo implijet da gevreañ ouzh an diaz roadennoù e-pad an argerzh staliañ.
-N'eo ket ar ger-tremen evit ar gont MediaWiki, ar ger-tremen evit ho tiaz roadennoù eo.",
-       'config-db-install-help' => 'Merkañ anv an implijer hag ar ger-tremen a vo implijet evit kevreañ ouzh an diaz roadennoù e-pad an argerzh staliañ.',
-       'config-db-account-lock' => 'Implijout ar memes anv implijer ha ger-tremen e-kerzh oberiadurioù boutin',
-       'config-db-wiki-account' => 'Kont implijer evit oberiadurioù boutin',
-       'config-db-prefix' => 'Rakrann taolennoù an diaz roadennoù :',
-       'config-db-charset' => 'Strobad arouezennoù an diaz roadennoù',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binarel',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 kilkenglotus UTF-8',
-       'config-mysql-old' => "Rekis eo MySQL $1 pe ur stumm nevesoc'h; ober a rit gant $2.",
-       'config-db-port' => 'Porzh an diaz roadennoù :',
-       'config-db-schema' => 'Brastres evit MediaWiki',
-       'config-db-schema-help' => "Peurliesañ e vo digudenn ar chema-mañ.
-Arabat cheñch anezho ma n'hoc'h eus ket ezhomm d'en ober.",
-       'config-pg-test-error' => "N'haller ket kevreañ ouzh an diaz-titouroù '''$1''' : $2",
-       'config-sqlite-dir' => "Kavlec'h roadennoù SQLite :",
-       'config-oracle-def-ts' => 'Esaouenn stokañ ("tablespace") dre ziouer :',
-       'config-oracle-temp-ts' => "Esaouenn stokañ (''tablespace'') da c'hortoz :",
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-support-info' => "Skoret eo ar reizhiadoù diaz titouroù da-heul gant MediaWiki :
-
-$1
-
-Ma ne welit ket amañ dindan ar reizhiad diaz titouroù a fell deoc'h ober ganti, heuilhit an titouroù a-us (s.o. al liammoù) evit gweredekaat ar skorañ.",
-       'config-support-mysql' => '* $1 eo an dibab kentañ evit MediaWiki hag an hini skoret ar gwellañ ([http://www.php.net/manual/en/mysql.installation.php penaos kempunañ PHP gant skor MySQL])',
-       'config-support-postgres' => "* Ur reizhiad diaz titouroù brudet ha digor eo $1. Gallout a ra ober evit MySQL ([http://www.php.net/manual/en/pgsql.installation.php Penaos kempunañ PHP gant skor PostgreSQL]). Gallout a ra bezañ un nebeud drein bihan enni ha n'eo ket erbedet he implijout en un endro produiñ.",
-       'config-support-sqlite' => "* $1 zo ur reizhiad diaz titouroù skañv skoret eus ar c'hentañ. ([http://www.php.net/manual/en/pdo.installation.php Penaos kempunañ PHP gant skor SQLite], implijout a ra PDO)",
-       'config-support-oracle' => '* $1 zo un diaz titouroù kenwerzhel. ([http://www.php.net/manual/en/oci8.installation.php Penaos kempunañ PHP gant skor OCI8])',
-       'config-header-mysql' => 'Arventennoù MySQL',
-       'config-header-postgres' => 'Arventennoù PostgreSQL',
-       'config-header-sqlite' => 'Arventennoù SQLite',
-       'config-header-oracle' => 'Arventennoù Oracle',
-       'config-invalid-db-type' => 'Direizh eo ar seurt diaz roadennoù',
-       'config-missing-db-name' => 'Ret eo deoc\'h merkañ un dalvoudenn evit "Anv an diaz titouroù"',
-       'config-missing-db-host' => 'Ret eo deoc\'h merkañ un dalvoudenn evit "Ostiz an diaz titouroù"',
-       'config-missing-db-server-oracle' => 'Ret eo deoc\'h merkañ un dalvoudenn evit "Anv TNS an diaz titouroù"',
-       'config-invalid-db-server-oracle' => 'Direizh eo anv TNS an diaz titouroù "$1".
-Ober hepken gant lizherennoù ASCII (a-z, A-Z), sifroù (0-9), arouezennoù islinennañ (_) ha pikoù (.).',
-       'config-invalid-db-name' => 'Direizh eo anv an diaz titouroù "$1".
-Ober hepken gant lizherennoù ASCII (a-z, A-Z), sifroù (0-9), arouezennoù islinennañ (_) ha tiredoù (-).',
-       'config-invalid-db-prefix' => 'Direizh eo rakger an diaz titouroù "$1".
-Ober hepken gant lizherennoù ASCII (a-z, A-Z), sifroù (0-9), arouezennoù islinennañ (_) ha tiredoù (-).',
-       'config-connection-error' => '$1.
-
-Gwiriit anv an ostiz, an anv implijer, ar ger-tremen ha klaskit en-dro.',
-       'config-invalid-schema' => 'Chema direizh evit MediaWiki "$1".
-Grit hepken gant lizherennoù ASCII (a-z, A-Z), sifroù (0-9) hag arouezennoù islinennañ (_).',
-       'config-db-sys-create-oracle' => "N'anavez ar stalier nemet ar c'hontoù SYSDBA evit krouiñ kontoù nevez.",
-       'config-db-sys-user-exists-oracle' => 'Bez\' ez eus eus ar gont "$1" c\'hoazh. N\'haller ober gant SYSDBA nemet evit krouiñ kontoù nevez !',
-       'config-postgres-old' => "Rekis eo PostgreSQL $1 pe ur stumm nevesoc'h; ober a rit gant $2.",
-       'config-sqlite-name-help' => "Dibabit un anv dibar d'ho wiki.
-Arabat ober gant esaouennoù pe barrennigoù-stagañ.
-Implijet e vo evit ar restr roadennoù SQLite.",
-       'config-sqlite-mkdir-error' => 'Ur fazi zo bet e-ser krouiñ ar c\'havlec\'h roadennoù "$1".
-Gwiriañ al lec\'hiadur ha klask en-dro.',
-       'config-sqlite-dir-unwritable' => 'Dibosupl skrivañ er c\'havlec\'h "$1".
-Cheñchit ar aotreoù evit ma c\'hallfe ar servijer web skrivañ ennañ ha klaskit en-dro.',
-       'config-sqlite-connection-error' => "$1.
-
-Gwiriañ ar c'havlec'h roadennoù hag anv an diaz roadennoù a-is ha klaskit en-dro.",
-       'config-sqlite-readonly' => "N'haller ket skrivañ er restr <code>$1</code>.",
-       'config-sqlite-cant-create-db' => "N'haller ket krouiñ restr an diaz roadennoù <code>$1</code>.",
-       'config-sqlite-fts3-downgrade' => "N'eo ket kenglotus ar PHP gant FTS3, o lakaat an taolennoù da glotañ gant ur stumm koshoc'h",
-       'config-can-upgrade' => "Taolennoù MediaWiki zo en diaz titouroù.
-Da hizivaat anezho da VediaWiki $1, klikañ war '''Kenderc'hel'''.",
-       'config-upgrade-done-no-regenerate' => 'Hizivadenn kaset da benn.
-
-Gallout a rit [$1 kregiñ da implijout ho wiki].',
-       'config-regenerate' => 'Adgenel LocalSettings.php →',
-       'config-show-table-status' => "C'hwitet ar reked <code>SHOW TABLE STATUS</code> !",
-       'config-unknown-collation' => "'''Diwallit :''' Emañ an diaz roadennoù o renkañ an traoù diouzh un urzh lizherennek dianav.",
-       'config-db-web-account' => 'Kont an diaz roadennoù evit ar voned Kenrouedad',
-       'config-db-web-help' => 'Diuzañ an anv implijer hag ar ger-tremen a vo implijet gant ar servijer web evit kevreañ ouzh ar servijer diaz roadennoù pa vez ar wiki o vont en-dro war ar pemdez.',
-       'config-db-web-account-same' => 'Ober gant an hevelep kont hag an hini implijet evit ar staliañ',
-       'config-db-web-create' => "Krouiñ ar gont ma n'eus ket anezhi c'hoazh",
-       'config-mysql-engine' => 'Lusker stokañ :',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-charset' => 'Strobad arouezennoù an diaz roadennoù :',
-       'config-mysql-binary' => 'Binarel',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'Anv ar wiki :',
-       'config-site-name-help' => "Dont a raio war wel e barrenn ditl ar merdeer hag e meur a lec'h all c'hoazh.",
-       'config-site-name-blank' => "Lakait anv ul lec'hienn .",
-       'config-project-namespace' => 'Esaouenn anv ar raktres :',
-       'config-ns-generic' => 'Raktres',
-       'config-ns-site-name' => 'Hevelep anv hag hini ar wiki : $1',
-       'config-ns-other' => 'All (spisaat)',
-       'config-ns-other-default' => 'MaWiki',
-       'config-ns-invalid' => 'Direizh eo an esaouenn anv "<nowiki>$1</nowiki>" spisaet.
-Merkit un esaouenn anv disheñvel evit ar raktres.',
-       'config-ns-conflict' => 'Tabut zo etre an esaouenn anv spisaet "<nowiki>$1</nowiki>" hag un esaouenn anv dre ziouer eus MediaWiki.
-Spisait un anv raktres esaouenn anv all.',
-       'config-admin-box' => 'Kont merour',
-       'config-admin-name' => "Hoc'h anv :",
-       'config-admin-password' => 'Ger-tremen :',
-       'config-admin-password-confirm' => 'Adskrivañ ar ger-tremen :',
-       'config-admin-help' => 'Merkit hoc\'h anv implijer amañ, da skouer "Yann Vlog".
-Hemañ eo an anv a implijot evit kevreañ d\'ar wiki-mañ.',
-       'config-admin-name-blank' => 'Lakait anv ur merour.',
-       'config-admin-name-invalid' => 'Direizh eo an anv implijer spisaet "<nowiki>$1</nowiki>".
-Merkit un anv implijer all.',
-       'config-admin-password-blank' => 'Reiñ ur ger-tremen evit kont ar merour.',
-       'config-admin-password-same' => "Ne c'hall ket ar ger-tremen bezañ heñvel ouzh anv ar gont.",
-       'config-admin-password-mismatch' => "Ne glot ket ar gerioù-tremen hoc'h eus merket an eil gant egile.",
-       'config-admin-email' => "Chomlec'h postel :",
-       'config-admin-email-help' => "Merkit ur chomlec'h postel amañ evit gallout resev posteloù a-berzh implijerien all eus ar wiki, adderaouekaat ho ker-tremen ha bezañ kelaouet eus ar c'hemmoù degaset d'ar pajennoù zo en ho roll evezhiañ. Gallout a rit lezel ar vaezienn-mañ goullo.",
-       'config-admin-error-user' => 'Fazi diabarzh en ur grouiñ ur merer gant an anv "<nowiki>$1</nowiki>".',
-       'config-admin-error-password' => 'Fazi diabarzh o lakaat ur ger-tremen evit ar merour « <nowiki>$1</nowiki> » : <pre>$2</pre>',
-       'config-admin-error-bademail' => "Ebarzhet hoc'h eus ur chomlec'h postel direizh.",
-       'config-subscribe' => 'Koumanantit da [https://lists.wikimedia.org/mailman/listinfo/mediawiki-listenn kemennadoù evit ar stummoù nevez].',
-       'config-almost-done' => "Kazi echu eo !
-Gellout a rit tremen ar c'hefluniadur nevez ha staliañ ar wiki war-eeun.",
-       'config-optional-continue' => "Sevel muioc'h a goulennoù ouzhin.",
-       'config-optional-skip' => 'Aet on skuizh, staliañ ar wiki hepken.',
-       'config-profile' => 'Profil ar gwirioù implijer :',
-       'config-profile-wiki' => 'Wiki digor',
-       'config-profile-no-anon' => 'Krouidigezh ur gont ret',
-       'config-profile-fishbowl' => 'Embanner aotreet hepken',
-       'config-profile-private' => 'Wiki prevez',
-       'config-license' => 'Copyright hag aotre-implijout:',
-       'config-license-none' => 'Aotre ebet en traoñ pajenn',
-       'config-license-cc-by-sa' => 'Creative Commons Deroadenn Kenrannañ heñvel',
-       'config-license-cc-by' => 'Creative Commons Deroadenn',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Deroadenn Angenwerzhel Kenrannañ heñvel',
-       'config-license-cc-0' => 'Creative Commons Zero (Domani foran)',
-       'config-license-pd' => 'Domani foran',
-       'config-license-cc-choose' => 'Dibabit un aotre-implijout Creative Commons personelaet',
-       'config-email-settings' => 'Arventennoù ar postel',
-       'config-enable-email' => 'Gweredekaat ar posteloù a ya kuit',
-       'config-enable-email-help' => "Mar fell deoc'h ober gant ar posteler eo ret deoc'h [http://www.php.net/manual/en/mail.configuration.php kefluniañ arventennoù postel PHP] ervat.
-Mar ne fell ket deoc'h ober gant ar servij posteloù e c'hall bezañ diweredekaet amañ.",
-       'config-email-user' => 'Gweredekaat ar posteloù a implijer da implijer',
-       'config-email-user-help' => "Aotren a ra an holl implijerien da gas posteloù an eil d'egile mard eo bet gweredekaet an arc'hwel ganto en ho penndibaboù.",
-       'config-email-usertalk' => 'Gweredekaat kemennadur pajennoù kaozeal an implijerien',
-       'config-email-usertalk-help' => "Talvezout a ra d'an implijerien da resev kemennadennoù ma vez kemmet o fajennoù kaozeal, ma vez gweredekaet en o fenndibaboù.",
-       'config-email-watchlist' => "Gweredekaat ar c'hemenn listenn evezhiañ",
-       'config-email-watchlist-help' => "Talvezout a ra d'an implijerien da resev kemennadennoù diwar-benn ar pajennoù evezhiet ganto, ma vez gweredekaet en o fenndibaboù.",
-       'config-email-auth' => 'Gweredekaat an dilesadur dre bostel',
-       'config-email-sender' => "Chomlec'h postel respont :",
-       'config-email-sender-help' => "Merkit ar chomlec'h postel da vezañ implijet da chomlec'h distreiñ ar posteloù a ya er-maez.
-Di e vo kaset ar posteloù distaolet.
-Niverus eo ar servijerioù postel a c'houlenn da nebeutañ un [http://fr.wikipedia.org/wiki/Nom_de_domaine anv domani] reizh.",
-       'config-upload-settings' => 'Pellgargañ skeudennoù ha restroù',
-       'config-upload-enable' => 'Gweredekaat ar pellgargañ restroù',
-       'config-upload-deleted' => "Kavlec'h evit ar restroù dilamet :",
-       'config-upload-deleted-help' => "Dibab ur c'havlec'h da ziellaouiñ ar restroù diverket.
-Ar pep gwellañ e vije ma ne vije ket tu d'e dizhout adalek ar Genrouedad.",
-       'config-logo' => 'URL al logo :',
-       'config-instantcommons' => "Gweredekaat ''InstantCommons''",
-       'config-cc-error' => "N'eus deuet disoc'h ebet gant dibaber aotreoù-implijout Creative Commons.
-Merkit anv an aotre-implijout gant an dorn.",
-       'config-cc-again' => 'Dibabit adarre...',
-       'config-cc-not-chosen' => 'Dibabit an aotre-implijout Creative Commons a fell deoc\'h ober gantañ ha klikit war "kenderc\'hel".',
-       'config-advanced-settings' => 'Kefluniadur araokaet',
-       'config-cache-options' => 'Arventennoù evit krubuilhañ traezoù :',
-       'config-cache-accel' => 'Krubuilhañ traezoù PHP (APC, XCache pe WinCache)',
-       'config-cache-memcached' => 'Implijout Memcached (en deus ezhomm bezañ staliet ha kefluniet)',
-       'config-memcached-servers' => 'Servijerioù Memcached :',
-       'config-memcached-help' => "Roll ar chomlec'hioù IP da implijout evit Memcached.
-Ret eo spisaat unan dre linenn ha spisaat ar porzh da vezañ implijet. Da skouer :
-127.0.0.1:11211
-192.168.1.25:1234",
-       'config-memcache-needservers' => "Diuzet hoc'h eus Memcached evel seurt krubuilh met n'hoc'h eus spisaet servijer ebet.",
-       'config-memcache-badip' => "Ur chomlec'h IP direizh hoc'h eus lakaet evit Memcached : $1.",
-       'config-memcache-badport' => 'Niverennoù porzh Memcached a zlefe bezañ etre $1 ha $2.',
-       'config-extensions' => 'Astennoù',
-       'config-extensions-help' => "N'eo ket bet detektet an astennoù rollet a-us en ho kavlec'h <code>./astennoù</code>.
-
-Marteze e vo ezhomm kefluniañ pelloc'h met gallout a rit o gweredekaat bremañ.",
-       'config-install-alreadydone' => "'''Diwallit''': Staliet hoc'h eus MediaWiki dija war a seblant hag emaoc'h o klask e staliañ c'hoazh.
-Kit d'ar bajenn war-lerc'h, mar plij.",
-       'config-install-begin' => 'Pa vo bet pouezet ganeoc\'h war "{{int:config-continue}}"  e krogo staliadur MediaWiki.
-Pouezit war "{{int:config-back}}" mar fell deoc\'h cheñch tra pe dra.',
-       'config-install-step-done' => 'graet',
-       'config-install-step-failed' => "c'hwitet",
-       'config-install-extensions' => 'En ur gontañ an astennoù',
-       'config-install-database' => 'Krouiñ an diaz roadennoù',
-       'config-install-schema' => 'O krouiñ ar chema',
-       'config-install-pg-schema-not-exist' => "N'eus ket eus chema PostgreSQL.",
-       'config-install-pg-schema-failed' => "C'hwitet eo krouidigezh an taolennoù.
-Gwiriit hag-eñ e c'hall an implijer « $1 » skrivañ er brastres « $2 ».",
-       'config-install-pg-commit' => "O wiriekaat ar c'hemmoù",
-       'config-install-pg-plpgsql' => 'O wiriañ ar yezh PL/pgSQL',
-       'config-pg-no-plpgsql' => "Ret eo deoc'h staliañ ar yezh PL/pgSQL en diaz roadennoù $1",
-       'config-pg-no-create-privs' => "N'eus ket gwirioù a-walc'h gant ar gont hoc'h eus merket evit ar staliadur evit gallout krouiñ ur gont.",
-       'config-install-user' => 'O krouiñ an diaz roadennoù implijer',
-       'config-install-user-alreadyexists' => 'An implijer "$1" zo anezhañ dija',
-       'config-install-user-create-failed' => 'Fazi e-ser krouiñ an implijer "$1" : $2',
-       'config-install-user-grant-failed' => 'N\'eus ket bet gallet reiñ an aotre d\'an implijer "$1" : $2',
-       'config-install-tables' => 'Krouiñ taolennoù',
-       'config-install-tables-failed' => "'''Fazi :''' c'hwitet eo krouidigezh an daolenn gant ar fazi-mañ : $1",
-       'config-install-interwiki' => 'O leuniañ dre ziouer an daolenn etrewiki',
-       'config-install-interwiki-list' => "Ne c'haller ket kavout ar restr <code>interwiki.list</code>.",
-       'config-install-stats' => 'O sevel ar stadegoù',
-       'config-install-keys' => "Genel an alc'hwezioù kuzh",
-       'config-install-sysop' => 'Krouidigezh kont ar merour',
-       'config-install-subscribe-fail' => "N'haller ket koumanantiñ da mediawiki-announce : $1",
-       'config-install-mainpage' => "O krouiñ ar bajenn bennañ gant un endalc'had dre ziouer",
-       'config-install-extension-tables' => 'O krouiñ taolennoù evit an astennoù gweredekaet',
-       'config-install-mainpage-failed' => "Ne c'haller ket ensoc'hañ ar bajenn bennañ: $1",
-       'config-download-localsettings' => 'Pellgargañ <code>LocalSettings.php</code>',
-       'config-help' => 'skoazell',
-       'config-nofile' => 'N\'eus ket bet gallet kavout ar restr "$1". Daoust ha dilamet eo bet ?',
-       'mainpagetext' => "'''Meziant MediaWiki staliet.'''",
-       'mainpagedocfooter' => "Sellit ouzh [//meta.wikimedia.org/wiki/Help:Contents Sturlevr an implijerien] evit gouzout hiroc'h war an doare da implijout ar meziant wiki.
-
-== Kregiñ ganti ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Roll an arventennoù kefluniañ]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAG MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Roll ar c'haozeadennoù diwar-benn dasparzhoù MediaWiki]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Lec'hiañ MediaWiki en ho yezh", # Fuzzy
-);
-
-/** Bosnian (bosanski)
- * @author CERminator
- */
-$messages['bs'] = array(
-       'config-desc' => 'Instalacija za MediaWiki',
-       'config-title' => 'MediaWiki $1 instalacija',
-       'config-information' => 'Informacija',
-       'config-localsettings-upgrade' => 'Otkrivena je datoteka <code>LocalSettings.php</code>.
-Da biste unaprijedili vaš softver, molimo vas upišite vrijednost od <code>$wgUpgradeKey</code> u okvir ispod.
-Naći ćete ga u <code>LocalSettings.php</code>.',
-       'config-localsettings-key' => 'Ključ za nadgradnju:',
-       'config-session-error' => 'Greška pri pokretanju sesije: $1',
-       'config-no-session' => 'Vaši podaci sesije su izgubljeni!
-Provjerite vaš php.ini i provjerite da li je <code>session.save_path</code> postavljen na pravilni direktorijum.',
-       'config-your-language' => 'Vaš jezik:',
-       'config-your-language-help' => 'Odaberite jezik koji ćete koristiti tokom procesa instalacije.',
-       'config-wiki-language' => 'Wiki jezik:',
-       'config-wiki-language-help' => 'Odaberite jezik na kojem će wiki biti najvećim dijelim pisana.',
-       'config-back' => '← Nazad',
-       'config-continue' => 'Nastavi →',
-       'config-page-language' => 'Jezik',
-       'config-page-welcome' => 'Dobrodošli u MediaWiki!',
-       'config-page-dbconnect' => 'Poveži sa bazom podataka',
-       'config-page-upgrade' => 'Unaprijedi postojeću instalaciju',
-       'config-page-dbsettings' => 'Postavke baze podataka',
-       'config-page-name' => 'Naziv',
-       'config-page-options' => 'Opcije',
-       'config-page-install' => 'Instaliraj',
-       'config-page-complete' => 'Završeno!',
-       'config-page-restart' => 'Ponovi instalaciju ispočetka',
-       'config-page-readme' => 'Pročitaj me',
-       'config-page-releasenotes' => 'Bilješke izdanja',
-       'config-page-copying' => 'Kopiram',
-       'config-page-upgradedoc' => 'Nadograđujem',
-       'config-help-restart' => 'Da li želite očistiti sve spremljene podatke koje ste unijeli i da započnete ponovo proces instalacije?',
-       'config-restart' => 'Da, pokreni ponovo',
-       'config-sidebar' => '* [//www.mediawiki.org MediaWiki Početna strana]
-* [//www.mediawiki.org/wiki/Help:Contents Vodič za korisnike]
-* [//www.mediawiki.org/wiki/Manual:Contents Vodič za administratore]
-* [//www.mediawiki.org/wiki/Manual:FAQ NPP]
-----
-* <doclink href=Readme>Pročitaj me</doclink>
-* <doclink href=ReleaseNotes>Napomene izdanja</doclink>
-* <doclink href=Copying>Kopiranje</doclink>
-* <doclink href=UpgradeDoc>Poboljšavanje</doclink>',
-       'config-env-good' => 'Okruženje je provjereno.
-Možete instalirati MediaWiki.',
-       'config-env-php' => 'PHP $1 je instaliran.',
-       'config-no-db' => 'Nije mogao biti pronađen pogodan driver za bazu podataka! Morate instalirati driver baze podataka za PHP.
-Slijedeće vrste baza podataka su podržane: $1.
-
-Ako se na dijeljenom serveru, tražite od vašeg pružaoca usluga da instalira pogodan driver za bazu podataka.
-Ako se sami kompajlirali PHP, podesite ga sa omogućenim klijentom baze podataka, koristeći naprimjer <code>./configure --with-mysql</code>.
-Ako ste instalirali PHP iz Debian ili Ubuntu paketa, možda morate instalirati i modul php5-mysql.',
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] je instaliran',
-       'config-apc' => '[http://www.php.net/apc APC] je instaliran',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] je instaliran',
-       'config-diff3-bad' => 'GNU diff3 nije pronađen.',
-       'config-db-type' => 'Vrsta baze podataka:',
-       'config-db-host' => 'Domaćin baze podataka:',
-       'config-db-wiki-settings' => 'Identificiraj ovu wiki',
-       'config-db-name' => 'Naziv baze podataka:',
-       'config-db-name-oracle' => 'Šema baze podataka:',
-       'config-header-mysql' => 'Postavke MySQL',
-       'config-header-postgres' => 'Postavke PostgreSQL',
-       'config-header-sqlite' => 'Postavke SQLite',
-       'config-header-oracle' => 'Postavke Oracle',
-       'config-invalid-db-type' => 'Nevaljana vrsta baze podataka',
-       'config-upgrade-done' => "Nadogradnja završena.
-
-Sada možete [$1 početi koristiti vašu wiki].
-
-Ako želite regenerisati vašu datoteku <code>LocalSettings.php</code>, kliknite na dugme ispod.
-Ovo '''nije preporučeno''' osim ako nemate problema s vašom wiki.",
-       'config-admin-name' => 'Vaše ime:',
-       'config-admin-password' => 'Šifra:',
-       'mainpagetext' => "'''MediaViki softver is uspješno instaliran.'''",
-       'mainpagedocfooter' => 'Kontaktirajte [//meta.wikimedia.org/wiki/Help:Contents uputstva za korisnike] za informacije o upotrebi wiki programa.
-
-== Početak ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista postavki]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki najčešće postavljana pitanja]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista E-Mail adresa MediaWiki]', # Fuzzy
-);
-
-/** Catalan (català)
- * @author Pitort
- * @author පසිඳු කාවින්ද
- */
-$messages['ca'] = array(
-       'config-page-language' => 'Llengua',
-       'config-page-name' => 'Nom',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-ns-generic' => 'Projecte',
-       'config-admin-password' => 'Contrasenya:',
-       'config-profile-wiki' => 'Wiki públic',
-       'config-profile-private' => 'Wiki privat',
-       'config-license-pd' => 'Domini públic',
-       'config-upload-deleted' => 'Directori pels arxius suprimits:',
-       'config-advanced-settings' => 'Configuració avançada',
-       'config-extensions' => 'Extensions',
-       'mainpagetext' => "'''El programari del MediaWiki s'ha instaŀlat correctament.'''",
-       'mainpagedocfooter' => "Consulteu la [//meta.wikimedia.org/wiki/Help:Contents Guia d'Usuari] per a més informació sobre com utilitzar-lo.
-
-== Per a començar ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Llista de característiques configurables]
-* [//www.mediawiki.org/wiki/Manual:FAQ PMF del MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de correu (''listserv'') per a anuncis del MediaWiki]", # Fuzzy
-);
-
-/** Chechen (нохчийн)
- * @author Sasan700
- * @author Умар
- */
-$messages['ce'] = array(
-       'config-your-language' => 'Хьан мотт:',
-       'config-continue' => 'Кхин дӀа →',
-       '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 нисвохааман куьйгаллица].
-
-== Цхьаболу пайде гlирсаш ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Гlирс нисбан тарлушболу могlам];
-* [//www.mediawiki.org/wiki/Manual:FAQ Сих сиха лушдолу хаттарш а жоьпаш оцу MediaWiki];
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Хаам бохьуьйту араяларца башхонца керла MediaWiki].', # Fuzzy
-);
-
-/** Cebuano (Cebuano)
- */
-$messages['ceb'] = array(
-       'mainpagetext' => "'''Malamposon ang pag-instalar sa MediaWiki.'''",
-       'mainpagedocfooter' => 'Konsultaha ang [//meta.wikimedia.org/wiki/Help:Contents Giya sa mga gumagamit] alang sa impormasyon unsaon paggamit niining wiki nga software.
-
-== Pagsugod ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Listahan sa mga setting sa kompigurasyon]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ sa MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce  Mailing list sa mga release sa MediaWiki]', # Fuzzy
-);
-
-/** Sorani Kurdish (کوردی)
- * @author Asoxor
- * @author Calak
- * @author Muhammed taha
- */
-$messages['ckb'] = array(
-       'config-wiki-language' => 'زمانی ویکی:',
-       'config-back' => '→ گەڕانەوە',
-       'config-continue' => 'بەردەوامبوون ←',
-       'config-page-language' => 'زمان',
-       'config-page-welcome' => 'بەخێربێیت بۆ میدیاویکی!',
-       'config-page-dbconnect' => 'پەیوەندی دەکات بەبنکەی زانیارییەکان',
-       'config-page-upgrade' => 'نويکردنەوەی دابەزاندنی پێشوو',
-       'config-page-dbsettings' => 'ڕێکخستنەکانی بنکەی زانیارییەکان',
-       'config-page-name' => 'ناو',
-       'config-page-options' => 'ھەڵبژاردەکان',
-       'config-page-install' => 'دابەزاندن',
-       'config-page-complete' => 'تەواو!',
-       'config-page-restart' => 'دەست پێکردنەوە بەدابەزاندن',
-       'config-page-readme' => 'بمخوێنەوە',
-       'config-page-copying' => 'لەبەردەگیرێتەوە',
-       'config-page-upgradedoc' => 'نوێدەکرێتەوە',
-       'config-page-existingwiki' => 'ویکی پێشوو',
-       'config-restart' => 'بەڵێ، دەستی پێ بکەرەوە',
-       'config-env-php' => 'PHP $1 دابەزێندرا.',
-       'config-env-php-toolow' => 'PHP $1 دابەزێندرا.
-ھەرچۆنێک بێت میدیاویکی پێویستی بە PHP $2 یان بەرزتر ھەیە.',
-       'mainpagetext' => "'''میدیاویکی بە سەرکەوتوویی دامەزرا.'''",
-       'mainpagedocfooter' => 'لە [//meta.wikimedia.org/wiki/Help:Contents ڕێنوێنیی بەکارھێنەران] بۆ زانیاری سەبارەت بە بەکارھێنانی نەرمامێری ویکی کەڵک وەربگرە.
-
-== دەستپێکردن ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings پێرستی ڕێکخستنەکانی شێوەپێدان]
-* [//www.mediawiki.org/wiki/Manual:FAQ پرسیارە دووپاتکراوەکانی میدیاویکی (MediaWiki FAQ)]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce پێرستی ئیمەیلی وەشانەکانی میدیاویکی]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources خۆماڵیکردنی ویکیمیدیا بۆ زمانەکەت]',
-);
-
-/** Capiznon (Capiceño)
- * @author Oxyzen
- */
-$messages['cps'] = array(
-       'mainpagetext' => "'''Madalag-on nga na-install ang MediaWiki.'''",
-       'mainpagedocfooter' => 'Kunsultahon ang [//meta.wikimedia.org/wiki/Help:Pagtuytoy sa Manug-usar] para sa impormasyon sa paggamit sang wiki nga "software".
-
-==Pag-umpisa==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista sang mga setting sang konpigurayon]
-* [//www.mediawiki.org/wiki/Manual:FAQ Mga perme napangkot sa MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista sang mga ginapadal-an sang sulat sang MediaWiki]', # Fuzzy
-);
-
-/** Crimean Turkish (Cyrillic script) (къырымтатарджа (Кирилл)‎)
- */
-$messages['crh-cyrl'] = array(
-       'mainpagetext' => "'''MediaWiki мувафакъиетнен къурулды.'''",
-       'mainpagedocfooter' => "Бу викининъ ёл-ёругъыны [//meta.wikimedia.org/wiki/Help:Contents User's Guide къулланыджы къылавузындан] огренип оласынъыз.
-
-== Базы файдалы сайтлар ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Олуджы сазламалар джедвели];
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki боюнджа сыкъ берильген суаллернен джеваплар];
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-нинъ янъы версияларынынъ чыкъувындан хабер йиберюв].", # Fuzzy
-);
-
-/** Crimean Turkish (Latin script) (qırımtatarca (Latin)‎)
- */
-$messages['crh-latn'] = array(
-       'mainpagetext' => "'''MediaWiki muvafaqiyetnen quruldı.'''",
-       'mainpagedocfooter' => "Bu vikiniñ yol-yoruğını [//meta.wikimedia.org/wiki/Help:Contents User's Guide qullanıcı qılavuzından] ögrenip olasıñız.
-
-== Bazı faydalı saytlar ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Olucı sazlamalar cedveli];
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki boyunca sıq berilgen suallernen cevaplar];
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-niñ yañı versiyalarınıñ çıquvından haber yiberüv].", # Fuzzy
-);
-
-/** Czech (česky)
- * @author Danny B.
- * @author Jezevec
- * @author Mormegil
- * @author 아라
- */
-$messages['cs'] = array(
-       'config-desc' => 'Instalační program pro MediaWiki',
-       'config-title' => 'Instalace MediaWiki $1',
-       'config-information' => 'Informace',
-       'config-localsettings-upgrade' => 'Byl nalezen soubor <code>LocalSettings.php</code>.
-Pokud chcete stávající instalaci aktualizovat, zadejte hodnotu <code>$wgUpgradeKey</code>, kterou naleznete v souboru <code>LocalSettings.php</code>, do následujícího rámečku.',
-       'config-localsettings-cli-upgrade' => 'Byl detekován soubor <code><code>LocalSettings.php</code></code>
-Pro aktualizaci spusťte místo instalace skript <code>update.php</code>.',
-       'config-localsettings-key' => 'Klíč pro aktualizaci:',
-       'config-localsettings-badkey' => 'Zadaný klíč je nesprávný.',
-       'config-upgrade-key-missing' => 'Byla detekována existující instalace MediaWiki.
-Pokud ji chcete aktualizovat, přidejte následující řádku na konec souboru <code>LocalSettings.php</code>:
-
-$1',
-       'config-localsettings-incomplete' => 'Existující soubor <code>LocalSettings.php</code> vypadá neúplný.
-Není nastavena proměnná $1.
-Upravte soubor <code>LocalSettings.php</code> tak, aby tuto proměnnou obsahoval, a klikněte na „{{int:Config-continue}}“.',
-       'config-localsettings-connection-error' => 'Při připojování k databázi s využitím nastavení uvedených v <code>LocalSettings.php</code> nebo <code>AdminSettings.php</code> došlo k chybě. Opravte tato nastavení a zkuste to znovu.
-
-$1',
-       'config-session-error' => 'Nepodařilo se inicializovat relaci: $1',
-       'config-session-expired' => 'Platnost dat vašeho sezení patrně vypršela.
-Sezení má nastavenu životnost $1.
-Prodloužit ji můžete nastavením <code>session.gc_maxlifetime</code> v php.ini.
-Spusťte instalační proces od začátku.',
-       'config-no-session' => 'Data vašeho sezení se ztratila!
-Zkontrolujte svůj soubor php.ini a ujistěte se, že <code>session.save_path</code> je nastaveno na odpovídající adresář.',
-       'config-your-language' => 'Váš jazyk:',
-       'config-your-language-help' => 'Zvolte jazyk, který se má použít v průběhu instalace.',
-       'config-wiki-language' => 'Jazyk wiki:',
-       'config-wiki-language-help' => 'Zvolte jazyk, ve kterém bude většina obsahu wiki.',
-       'config-back' => '← Zpět',
-       'config-continue' => 'Pokračovat →',
-       'config-page-language' => 'Jazyk',
-       'config-page-welcome' => 'Vítejte v MediaWiki!',
-       'config-page-dbconnect' => 'Připojení k databázi',
-       'config-page-upgrade' => 'Aktualizace existující instalace',
-       'config-page-dbsettings' => 'Nastavení databáze',
-       'config-page-name' => 'Název',
-       'config-page-options' => 'Nastavení',
-       'config-page-install' => 'Instalovat',
-       'config-page-complete' => 'Hotovo!',
-       'config-page-restart' => 'Restartovat instalaci',
-       'config-page-readme' => 'Soubor Čti mě',
-       'config-page-releasenotes' => 'Poznámky k vydání',
-       'config-page-copying' => 'Licence',
-       'config-page-upgradedoc' => 'Upgrade',
-       'config-page-existingwiki' => 'Existující wiki',
-       'config-help-restart' => 'Chcete smazat všechny údaje, které jste zadali, a spustit proces instalace znovu od začátku?',
-       'config-restart' => 'Ano, restartovat',
-       'config-welcome' => '=== Kontrola prostředí ===
-Nyní se provedou základní kontroly, aby se zjistilo, zda je toto prostředí použitelné k instalaci MediaWiki.
-Pokud budete potřebovat k dokončení instalace pomoc, nezapomeňte sdělit výsledky těchto testů.',
-       'config-copyright' => "=== Licence a podmínky ===
-$1
-
-Tento program je svobodný software; můžete jej šířit nebo modifikovat podle podmínek GNU General Public License, vydávané Free Software Foundation; buď verze 2 této licence anebo (podle vašeho uvážení) kterékoli pozdější verze.
-
-Tento program je distribuován v naději, že bude užitečný, avšak '''bez jakékoli záruky'''; neposkytují se ani odvozené záruky '''prodejnosti''' anebo '''vhodnosti pro určitý účel'''.
-Podrobnosti se dočtete v textu GNU General Public License.
-
-<doclink href=Copying>Kopii GNU General Public License</doclink> jste měli obdržet spolu s tímto programem; pokud ne, napište na Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA nebo [http://www.gnu.org/copyleft/gpl.html si ji přečtěte online].",
-       'config-sidebar' => '* [//www.mediawiki.org Oficiální web MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents Uživatelská příručka]
-* [//www.mediawiki.org/wiki/Manual:Contents Administrátorská příručka]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]
-----
-* <doclink href=Readme>Čti mě</doclink>
-* <doclink href=ReleaseNotes>Poznámky k vydání</doclink>
-* <doclink href=Copying>Licence</doclink>
-* <doclink href=UpgradeDoc>Upgrade</doclink>',
-       'config-env-good' => 'Prostředí bylo zkontrolováno.
-Můžete nainstalovat MediaWiki.',
-       'config-env-bad' => 'Prostředí bylo zkontrolováno.
-MediaWiki nelze nainstalovat.',
-       'config-env-php' => 'Je nainstalováno PHP $1.',
-       'config-env-php-toolow' => 'Je nainstalováno PHP $1.
-MediaWiki ale vyžaduje PHP $2 nebo vyšší.',
-       'config-unicode-using-utf8' => 'Pro normalizaci Unicode se používá utf8_normalize.so Briona Vibbera.',
-       'config-unicode-using-intl' => 'Pro normalizaci Unicode se používá [http://pecl.php.net/intl PECL rozšíření intl].',
-       'config-unicode-pure-php-warning' => "'''Upozornění''': Není dostupné [http://pecl.php.net/intl PECL rozšíření intl] pro normalizaci Unicode, bude se využívat pomalá implementace v čistém PHP.
-Pokud provozujete wiki s velkým provozem, měli byste si přečíst něco o [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalizaci Unicode].",
-       'config-unicode-update-warning' => "'''Upozornění''': Nainstalovaná verze vrstvy pro normalizaci Unicode používá starší verzi knihovny [http://site.icu-project.org/ projektu ICU].
-Pokud vám aspoň trochu záleží na používání Unicode, měli byste [//www.mediawiki.org/wiki/Unicode_normalization_considerations ji aktualizovat].",
-       'config-no-db' => 'Nepodařilo se nalézt vhodný databázový ovladač! Musíte do PHP nainstalovat databázový ovladač.
-Jsou podporovány následující typy databází: $1.
-
-Pokud jste na sdíleném hostingu, požádejte svého poskytovale o instalaci vhodného databázového ovladače.
-Pokud jste si PHP přeložili sami, překonfigurujte ho se zapnutým databázovým klientem, například pomocí <code>./configure --with-mysql</code>.
-Pokud jste PHP nainstalovali z balíčku Debian či Ubuntu, potřebujete nainstalovat také modul php5-mysql.',
-       'config-outdated-sqlite' => "'''Upozornění''': Máte SQLite $1, které je starší než minimálně vyžadovaná verze $2. SQLite nebude dostupné.",
-       'config-no-fts3' => "'''Upozornění''': SQLite bylo přeloženo bez [//sqlite.org/fts3.html modulu FTS3], funkce pro vyhledávání zde nebudou dostupné.",
-       'config-register-globals' => "'''Upozornění: Je zapnuta PHP volba <code>[http://php.net/register_globals register_globals]</code>.'''
-'''Pokud můžete, vypněte ji.'''
-MediaWiki bude fungovat, ale váš server je vystaven potenciálním bezpečnostním hrozbám.",
-       'config-magic-quotes-runtime' => "'''Kritická chyba: Je zapnuto [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]!'''
-Toto nastavení nepředvídatelně poškozuje vstupní data.
-MediaWiki nelze nainstalovat ani používat, dokud není toto nastavení vypnuto.",
-       'config-magic-quotes-sybase' => "'''Kritická chyba: Je zapnuto [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]!'''
-Toto nastavení nepředvídatelně poškozuje vstupní data.
-MediaWiki nelze nainstalovat ani používat, dokud není toto nastavení vypnuto.",
-       'config-mbstring' => "'''Kritická chyba: Je zapnuto [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]!'''
-Toto nastavení způsobuje chyby a může nepředvídatelně poškozovat vstupní data.
-MediaWiki nelze nainstalovat ani používat, dokud není toto nastavení vypnuto.",
-       'config-ze1' => "'''Kritická chyba: Je zapnut [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]!'''
-Toto nastavení způsobuje s MediaWiki příšerné chyby.
-MediaWiki nelze nainstalovat ani používat, dokud není toto nastavení vypnuto.",
-       'config-safe-mode' => "'''Upozornění:''' Je aktivní [http://www.php.net/features.safe-mode bezpečný režim] PHP.
-Může způsobovat potíže, zejména při použití načítání souborů a podpory <code>math</code>.",
-       'config-xml-bad' => 'Chybí XML modul pro PHP.
-MediaWiki potřebuje funkce v tomto modulu a v této konfiguraci nebude fungovat.
-Pokud běžíte na Mandrake, nainstalujte balíček php-xml.',
-       'config-pcre' => 'Zdá se, že modul s podporou PCRE chybí.
-MediaWiki ke své činnosti potřebuje funkce pro Perl-kompatibilní regulární výrazy.',
-       'config-pcre-no-utf8' => "'''Kritická chyba''': PHP modul PCRE byl zřejmě přeložen bez podpory PCRE_UTF8.
-MediaWiki vyžaduje ke správné funkci podporu UTF-8.",
-       'config-memory-raised' => '<code>memory_limit</code> v PHP byl nastaven na $1, zvýšen na $2.',
-       'config-memory-bad' => "'''Upozornění:''' <code>memory_limit</code> je v PHP nastaven na $1.
-To je pravděpodobně příliš málo.
-Instalace může selhat!",
-       'config-ctype' => "'''Kritická chyba''': PHP musí být přeloženo s podporou pro [http://www.php.net/manual/en/ctype.installation.php rozšíření Ctype].",
-       'config-json' => "'''Kritická chyba:''' PHP bylo přeloženo bez podpory JSON.
-Před instalací MediaWiki musíte buď nainstalovat rozšíření PHP JSON nebo rozšíření [http://pecl.php.net/package/jsonc PECL jsonc].
-* Rozšíření PHP je součástí Red Hat Enterprise Linux (CentOS) 5 a 6, avšak musí se povolit v <code>/etc/php.ini</code> nebo <code>/etc/php.d/json.ini</code>.
-* V některých linuxových distribucích vydaných po květnu 2013 může toto rozšíření PHP chybět a místo toho mohou používat rozšíření PECL jako <code>php5-json</code> nebo <code>php-pecl-jsonc</code>.",
-       'config-xcache' => 'Je nainstalována [http://xcache.lighttpd.net/ XCache]',
-       'config-apc' => 'Je nainstalováno [http://www.php.net/apc APC]',
-       'config-wincache' => 'Je nainstalována [http://www.iis.net/download/WinCacheForPhp WinCache]',
-       'config-no-cache' => "'''Upozornění:''' Nebylo nalezeno [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache], ani [http://www.iis.net/download/WinCacheForPhp WinCache].
-Kešování objektů bude vypnuto.",
-       'config-mod-security' => "'''Upozornění''': váš webový server má zapnuto [http://modsecurity.org/ mod_security]. Při chybné konfiguraci může způsobovat potíže MediaWiki či dalším programům, které umožňují ukládat libovolný obsah.
-Pokud narazíte na náhodné chyby, podívejte se do [http://modsecurity.org/documentation/ dokumentace mod_security] nebo kontaktujte technickou podporu vašeho poskytovatele.",
-       'config-diff3-bad' => 'Nebyl nalezen GNU diff3.',
-       'config-git' => 'Nalezen software pro správu verzí Git: <code>$1</code>.',
-       'config-git-bad' => 'Software pro správu verzí Git nebyl nalezen.',
-       'config-imagemagick' => 'Nalezen ImageMagick: <code>$1</code>.
-Pokud povolíte načítání souborů, bude zapnuto vytváření náhledů.',
-       'config-gd' => 'Nalezena vestavěná grafická knihovna GD.
-Pokud povolíte načítání souborů, bude zapnuto vytváření náhledů.',
-       'config-no-scaling' => 'Nebyla nalezena knihovna GD ani ImageMagick.
-Vytváření náhledů bude vypnuto.',
-       'config-no-uri' => "'''Chyba:''' Nepodařilo se určit aktuální URI.
-Instalace přerušena.",
-       'config-no-cli-uri' => "'''Upozornění''': Nebylo uvedeno --scriptpath, používá se implicitní hodnota: <code>$1</code>.",
-       'config-using-server' => 'Použito jméno serveru „<nowiki>$1</nowiki>“.',
-       'config-using-uri' => 'Použito URL serveru „<nowiki>$1$2</nowiki>“.',
-       'config-uploads-not-safe' => "'''Upozornění:''' Váš implicitní adresář pro načítání souborů <code>$1</code> umožňuje provádění libovolných skriptů.
-Přestože MediaWiki všechny načítané soubory kontroluje proti bezpečnostním hrozbám, je důrazně doporučeno [//www.mediawiki.org/wiki/Manual:Security#Upload_security tuto bezpečnostní díru zacelit] před povolením načítání souborů.",
-       'config-no-cli-uploads-check' => "'''Upozornění:''' Váš implicitní adresář pro načítané soubory (<code>$1</code>) se při instalaci z příkazového řádku nekontroluje na bezpečnostní hrozbu provádění libovolných skriptů.",
-       'config-brokenlibxml' => 'Váš systém obsahuje kombinaci verzí PHP a libxml2, která je chybná a může v MediaWiki a dalších webových aplikacích způsobovat skryté poškozování dat.
-Aktualizujte na PHP 5.2.9 nebo novější a libxml2 2.7.3 nebo novější ([//bugs.php.net/bug.php?id=45996 chyba evidovaná u PHP]).
-Instalace přerušena.',
-       'config-using531' => 'MediaWiki nelze používat na PHP $1 kvůli chybě při předávání parametrů odkazem do <code>__call()</code>.
-Pro vyřešení upgradujte na PHP 5.3.2 nebo vyšší nebo downgradujte na PHP 5.3.0.
-Instalace přerušena.',
-       'config-suhosin-max-value-length' => 'Je nainstalován Suhosin, který omezuje délku parametrů GET na $1 bajtů.
-Komponenta ResourceLoader z MediaWiki dokáže s tímto omezením pracovat, ale sníží to výkon.
-Pokud to je alespoň trochu možné, měli byste v <code>php.ini</code> nastavit <code>suhosin.get.max_value_length</code> na 1024 nebo vyšší a na stejnou hodnotu nastavit v <code>LocalSettings.php</code> proměnnou <code>$wgResourceLoaderMaxQueryLength</code>.',
-       'config-db-type' => 'Typ databáze:',
-       'config-db-host' => 'Databázový server:',
-       'config-db-host-help' => 'Pokud je váš databázový server na jiném počítači, zadejte zde jméno stroje nebo IP adresu.
-
-Pokud používáte sdílený webový hosting, váš poskytovatel by vám měl v dokumentaci sdělit správné jméno stroje.
-
-Pokud instalujete na server běžící na Windows a používáte MySQL, jméno „localhost“ nemusí fungovat. V takovém případě zkuste jako místní IP adresu zadat „127.0.0.1“.
-
-Pokud používáte PostgreSQL, můžete se připojit Unixovými sockety tak, že toto pole necháte prázdné.',
-       'config-db-host-oracle' => 'Databázové TNS:',
-       'config-db-host-oracle-help' => 'Zadejte platné [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name]; tato instalace musí vidět soubor tnsnames.ora.<br />Pokud používáte klientské knihovny verze 10g nebo novější, můžete také používat názvy [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].',
-       'config-db-wiki-settings' => 'Identifikace této wiki',
-       'config-db-name' => 'Jméno databáze:',
-       'config-db-name-help' => 'Zvolte jméno, které označuje vaši wiki.
-Nemělo by obsahovat mezery.
-
-Pokud používáte sdílený webový hosting, váš poskytovatel vám buď sdělí konkrétní jméno databáze, nebo vás nechá vytvářet databáze pomocí nějakého ovládacího panelu.',
-       'config-db-name-oracle' => 'Databázové schéma:',
-       'config-db-account-oracle-warn' => 'Existují tři podporované možnosti pro instalaci s použitím databáze Oracle.
-
-Pokud chcete v rámci instalace založit databázový účet, zadejte jako databázový účet pro instalaci účet s rolí SYSDBA a uveďte požadované údaje pro účet pro webový přístup, jinak můžete vytvořit účet pro webový přístup ručně a zadat pouze tento účet (pokud má dostatečná oprávnění k zakládání objektů schématu) nebo poskytnout dva různé účty, jeden s oprávněními k zakládání, druhý omezený pro webový přístup.
-
-Skript pro založení účtu s potřebnými privilegii můžete v této instalaci nalézt v adresáři „maintenance/oracle/“. Nezapomeňte, že použití omezeného účtu znepřístupní veškeré možnosti údržby přes implicitní účet.',
-       'config-db-install-account' => 'Uživatelský účet pro instalaci',
-       'config-db-username' => 'Databázové uživatelské jméno:',
-       'config-db-password' => 'Databázové heslo:',
-       'config-db-password-empty' => 'Zadejte heslo pro nového databázového uživatele: $1.
-Přestože může jít zakládat nové uživatele i bez hesel, není to bezpečné.',
-       'config-db-install-username' => 'Zadejte uživatelské jméno, které se použije pro připojení k databázi v průběhu instalace.
-Toto není jméno uživatelského účtu MediaWiki; toto je uživatelské jméno k vaší databázi.',
-       'config-db-install-password' => 'Zadejte heslo, které se použije pro připojení k databázi v průběhu instalace.
-Toto není heslo uživatelského účtu MediaWiki; toto je heslo k vaší databázi.',
-       'config-db-install-help' => 'Zadejte uživatelské jméno a heslo, které se použijí pro připojení k databázi v průběhu instalace.',
-       'config-db-account-lock' => 'Použít stejné uživatelské jméno a heslo pro běžnou činnost',
-       'config-db-wiki-account' => 'Uživatelský účet pro běžnou činnost',
-       'config-db-wiki-help' => 'Zadejte uživatelské jméno a heslo, které se bude používat pro připojení k databázi za běžného provozu wiki.
-Pokud účet neexistuje a instalační účet má dostatečná oprávnění, bude tento uživatelský účet založen s minimálními oprávněními potřebnými k provozu wiki.',
-       'config-db-prefix' => 'Prefix databázových tabulek:',
-       'config-db-prefix-help' => 'Pokud potřebujete sdílet jednu databázi mezi vícero wiki, případně mezi MediaWiki a další webovou aplikací, můžete přidat k názvu každé tabulky prefix, abyste se vyhnuli konfliktům.
-Nepoužívejte mezery.
-
-Toto pole se zpravidla ponechává prázdné.',
-       'config-db-charset' => 'Znaková sada databáze',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binární',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 zpětně kompatibilní UTF-8',
-       'config-charset-help' => "'''Upozornění:''' Pokud použijete '''zpětně kompatibilní UTF-8''' na MySQL 4.1+ a následně zazálohujete databázi pomocí <code>mysqldump</code>, může to zničit všechny ne-ASCII znaky, což nevratně poškodí vaše zálohy!
-
-V '''binárním režimu''' ukládá MediaWiki text v UTF-8 do databáze v binárních sloupcích.
-To je výkonnější než UTF-8 režim MySQL a umožňuje využít plný rozsah znaků Unicode.
-V '''režimu UTF-8''' bude MySQL znát znakovou sadu vašich dat a může je příslušně zobrazovat a převádět,
-ale neumožní vám uložit znaky mimo [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
-       'config-mysql-old' => 'Je vyžadováno MySQL $1 nebo novější, vy máte $2.',
-       'config-db-port' => 'Databázový port:',
-       'config-db-schema' => 'Schéma pro MediaWiki:',
-       'config-db-schema-help' => 'Toto schéma zpravidla stačí.
-Měňte ho, jen pokud víte, že je to potřeba.',
-       'config-pg-test-error' => "Nelze se připojit k databázi '''$1''': $2",
-       'config-sqlite-dir' => 'Adresář pro data SQLite:',
-       'config-sqlite-dir-help' => "SQLite ukládá veškerá data v jediném souboru.
-
-Zadaný adresář musí být v průběhu instalace být přístupný pro zápis.
-
-'''Neměl by''' být dostupný z webu, proto ho nedáváme tam, kde jsou vaše PHP soubory.
-
-Instalátor do adresáře přidá soubor <code>.htaccess</code>, ale pokud to selže, mohl by někdo získat přístup k vaší holé databázi.
-To zahrnuje syrová uživatelská data (e-mailové adresy, hašovaná hesla), jako i smazané revize a další data s omezeným přístupem z vaší wiki.
-
-Zvažte umístění databáze někam zcela jinam, například do <code>/var/lib/mediawiki/mojewiki</code>.",
-       'config-oracle-def-ts' => 'Implicitní tabulkový prostor:',
-       'config-oracle-temp-ts' => 'Dočasný tabulkový prostor:',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Věštba',
-       'config-support-info' => 'MediaWiki podporuje následující databázové systémy:
-
-$1
-
-Pokud v nabídce níže nevidíte databázový systém, který chcete použít, musíte pro zapnutí podpory následovat instrukce odkázané výše.',
-       'config-support-mysql' => '* $1 je pro MediaWiki hlavní platformou a je podporováno nejlépe ([http://www.php.net/manual/en/mysql.installation.php jak zkompilovat PHP s podporou MySQL])',
-       'config-support-postgres' => '* $1 je populární open-source databázový systém používaný jako alternativa k MySQL ([http://www.php.net/manual/en/pgsql.installation.php jak přeložit PHP s podporou PostgreSQL]). Mohou se vyskytnout ještě nějaké menší chyby, použití v produkčním prostředí se nedoporučuje.',
-       'config-support-sqlite' => '* $1 je velmi dobře podporovaný lehký databázový systém. ([http://www.php.net/manual/en/pdo.installation.php Jak přeložit PHP s podporou SQLite], používá PDO)',
-       'config-support-oracle' => '* $1 je komerční podniková databáze. ([http://www.php.net/manual/en/oci8.installation.php Jak přeložit PHP s podporou OCI8])',
-       'config-header-mysql' => 'Nastavení MySQL',
-       'config-header-postgres' => 'Nastavení PostgreSQL',
-       'config-header-sqlite' => 'Nastavení SQLite',
-       'config-header-oracle' => 'Nastavení Oracle',
-       'config-invalid-db-type' => 'Chybný typ databáze',
-       'config-missing-db-name' => 'Musíte zadat hodnotu pro „Jméno databáze“',
-       'config-missing-db-host' => 'Musíte zadat hodnotu pro „Databázový server“',
-       'config-missing-db-server-oracle' => 'Musíte zadat hodnotu pro „Databázové TNS“',
-       'config-invalid-db-server-oracle' => 'Chybné databázové TNS „$1“.
-Používejte buď „TNS Name“ nebo „Easy Connect“ (vizte [http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle Naming Methods]).',
-       'config-invalid-db-name' => 'Chybné jméno databáze „$1“.
-Používejte pouze ASCII písmena (a-z, A-Z), čísla (0-9), podtržítko (_) a spojovník (-).',
-       'config-invalid-db-prefix' => 'Chybný databázový prefix „$1“.
-Používejte pouze ASCII písmena (a-z, A-Z), čísla (0-9), podtržítko (_) a spojovník (-).',
-       'config-connection-error' => '$1.
-
-Zkontrolujte server, uživatelské jméno a heslo a zkuste to znovu.',
-       'config-invalid-schema' => 'Neplatné schéma pro MediaWiki „$1“.
-Používejte pouze ASCII písmena (a-z, A-Z), čísla (0-9) a podtržítko (_).',
-       'config-db-sys-create-oracle' => 'Instalátor podporuje zakládání nového účtu pouze prostřednictvím účtu SYSDBA.',
-       'config-db-sys-user-exists-oracle' => 'Uživatelský účet „$1“ již existuje. SYSDBA lze použít pouze pro založení nového účtu!',
-       'config-postgres-old' => 'Je vyžadován PostgreSQL $1 nebo novější, vy máte $2.',
-       'config-sqlite-name-help' => 'Zvolte jméno, které označuje vaši wiki.
-Nepoužívejte mezery a spojovníky.
-Použije se jako název souboru s daty SQLite.',
-       'config-sqlite-parent-unwritable-group' => 'Nelze vytvořit datový adresář <code><nowiki>$1</nowiki></code>, protože do nadřazeného adresáře <code><nowiki>$2</nowiki></code> nemá webový server právo zapisovat.
-
-Instalátor zjistil uživatele, pod kterým váš webový server běží.
-Abyste mohli pokračovat, umožněte mu zapisovat do adresáře <code><nowiki>$3</nowiki></code>.
-Na systémech Unix/Linux proveďte:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Nelze vytvořit datový adresář <code><nowiki>$1</nowiki></code>, protože do nadřazeného adresáře <code><nowiki>$2</nowiki></code> nemá webový server právo zapisovat.
-
-Instalátoru se nepodařilo zjistit uživatele, pod kterým váš webový server běží.
-Abyste mohli pokračovat, umožněte zápis do <code><nowiki>$3</nowiki></code> všem uživatelům.
-Na systémech Unix/Linux proveďte:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Chyba při vytváření datového adresáře „$1“.
-Zkontrolujte umístění a zkuste to znovu.',
-       'config-sqlite-dir-unwritable' => 'Nelze zapisovat do adresáře „$1“.
-Změňte na něm oprávnění, aby do něj mohl webový server zapisovat, a zkuste to znovu.',
-       'config-sqlite-connection-error' => '$1.
-
-Zkontrolujte datový adresář a jméno databáze níže a zkuste to znovu.',
-       'config-sqlite-readonly' => 'Do souboru <code>$1</code> nelze zapisovat.',
-       'config-sqlite-cant-create-db' => 'Nepodařilo se vytvořit databázový soubor <code>$1</code>.',
-       'config-sqlite-fts3-downgrade' => 'PHP neobsahuje podporu FTS3, downgradují se tabulky',
-       'config-can-upgrade' => "V této databázi jsou tabulky MediaWiki.
-Pokud je chcete aktualizovat na MediaWiki $1, klikněte na '''Pokračovat'''.",
-       'config-upgrade-done' => "Aktualizace byla dokončena.
-
-Svou wiki teď můžete [$1 začít používat].
-
-Pokud chcete přegenerovat soubor <code>LocalSettings.php</code>, klikněte na tlačítko níže.
-To se ale '''nedoporučuje''', pokud s wiki nemáte problémy.",
-       'config-upgrade-done-no-regenerate' => 'Aktualizace byla dokončena.
-
-Svou wiki teď můžete [$1 začít používat].',
-       'config-regenerate' => 'Přegenerovat LocalSettings.php →',
-       'config-show-table-status' => 'Dotaz <code>SHOW TABLE STATUS</code> se nezdařil!',
-       'config-unknown-collation' => "'''Upozornění:''' Databáze používá nerozpoznané řazení.",
-       'config-db-web-account' => 'Databázový účet pro webový přístup',
-       'config-db-web-help' => 'Zvolte uživatelské jméno a heslo, které bude webový server používat pro připojení k databázovému serveru při běžném provozu wiki.',
-       'config-db-web-account-same' => 'Použít stejný účet jako pro instalaci',
-       'config-db-web-create' => 'Založit účet, pokud zatím neexistuje',
-       'config-db-web-no-create-privs' => 'Účet uvedený pro instalaci nemá oprávnění dostatečná pro založení nového účtu.
-Účet, který zde uvedete, již musí existovat.',
-       'config-mysql-engine' => 'Typ úložiště:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''Upozornění''': Jako typ úložiště pro MySQL jste zvolili MyISAM, které není pro použití v MediaWiki doporučeno, neboť:
-* stěží podporuje současný přístup kvůli zamykání tabulek,
-* je náchylnější na poškození dat než jiná úložiště,
-* kód MediaWiki nepodporuje MyISAM vždy tak dobře, jak by měl.
-
-Pokud vaše instalace MySQL podporuje InnoDB, důrazně doporučujeme použít spíše to.
-Pokud vaše instalace MySQL InnoDB nepodporuje, možná je čas na aktualizaci.",
-       'config-mysql-only-myisam-dep' => "'''Upozornění:''' Jediným dostupným formátem dat pro MySQL je MyISAM, který se k užití pro MediaWiki nedoporučuje, protože:
-* téměř nepodporuje současný přístup kvůli zamykání tabulek,
-* oproti jiným formátům je náchylnější k poškození,
-* kód MediaWiki nepodporuje MyISAM tak dobře, jak by bylo potřeba.
-
-Vaše instalace MySQL nepodporuje InnoDB, možná je na čase upgradovat.",
-       'config-mysql-engine-help' => "'''InnoDB''' je téměř vždy nejlepší volba, neboť má dobrou podporu současného přístupu.
-
-'''MyISAM''' může být rychlejší u instalací pro jednoho uživatele nebo jen pro čtení.
-Databáze MyISAM bývají poškozeny častěji než databáze InnoDB.",
-       'config-mysql-charset' => 'Znaková sada databáze:',
-       'config-mysql-binary' => 'Binární',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "V '''binárním režimu''' ukládá MediaWiki text v UTF-8 do databáze v binárních sloupcích.
-To je výkonnější než UTF-8 režim MySQL a umožňuje využít plný rozsah znaků Unicode.
-
-V '''režimu UTF-8''' bude MySQL znát znakovou sadu vašich dat a může je příslušně zobrazovat a převádět, ale neumožní vám uložit znaky mimo [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
-       'config-site-name' => 'Název wiki:',
-       'config-site-name-help' => 'Bude se zobrazovat v titulku prohlížeče a na dalších místech.',
-       'config-site-name-blank' => 'Zadejte název serveru.',
-       'config-project-namespace' => 'Jmenný prostor projektu:',
-       'config-ns-generic' => 'Projekt',
-       'config-ns-site-name' => 'Stejný jako název wiki: $1',
-       'config-ns-other' => 'Jiný (uveďte)',
-       'config-ns-other-default' => 'MojeWiki',
-       'config-project-namespace-help' => "Po vzoru Wikipedie udržuje mnoho wiki stránky se svými pravidly odděleně od stránek s vlastním obsahem, v „'''jmenném prostoru projektu'''“.
-Názvy všech stránek v tomto jmenném prostoru začínají jistým prefixem, který zde můžete nastavit.
-Zvykem je odvozovat tento prefix z názvu wiki, ale nesmí obsahovat jisté interpunkční znaky jako „#“ nebo „:“.",
-       'config-ns-invalid' => 'Uvedený jmenný prostor „<nowiki>$1</nowiki>“ je neplatný.
-Zadejte jiný jmenný prostor projektu.',
-       'config-ns-conflict' => 'Uvedený jmenný prostor „<nowiki>$1</nowiki>“ koliduje se standardním jmenným prostorem MediaWiki.
-Zadejte jiný jmenný prostor projektu.',
-       'config-admin-box' => 'Správcovský účet',
-       'config-admin-name' => 'Vaše jméno:',
-       'config-admin-password' => 'Heslo:',
-       'config-admin-password-confirm' => 'Heslo ještě jednou:',
-       'config-admin-help' => 'Zde zadejte své požadované uživatelské jméno, například „Pepa Novák“.
-Tímto jménem se budete do wiki hlásit.',
-       'config-admin-name-blank' => 'Zadejte uživatelské jméno správce.',
-       'config-admin-name-invalid' => 'Uvedené uživatelské jméno „<nowiki>$1</nowiki>“ není platné.
-Zadejte jiné uživatelské jméno.',
-       'config-admin-password-blank' => 'Zadejte heslo ke správcovskému účtu.',
-       'config-admin-password-same' => 'Heslo nesmí být stejné jako uživatelské jméno.',
-       'config-admin-password-mismatch' => 'Uvedená hesla se neshodují.',
-       'config-admin-email' => 'E-mailová adresa:',
-       'config-admin-email-help' => 'Zde zadejte e-mailovou adresu, která vám umožní přijímat e-maily od ostatních uživatelů wiki, získat nové heslo a přijímat notifikace o změnách sledovaných stránek. Tohle pole můžete nechat prázdné.',
-       'config-admin-error-user' => 'Vnitřní chyba při vytváření správce se jménem „<nowiki>$1</nowiki>“.',
-       'config-admin-error-password' => 'Vnitřní chyba při nastavování hesla správci se jménem „<nowiki>$1</nowiki>“: <pre>$2</pre>',
-       'config-admin-error-bademail' => 'Zadali jste neplatnou e-mailovou adresu.',
-       'config-subscribe' => 'Přihlásit se k odběru [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce e-mailové konference pro oznamování nových verzí].',
-       'config-subscribe-help' => 'Tohle je e-mailová konference s nízkým provozem, na které se oznamují nové verze, včetně důležitých bezpečnostních oznámení.
-Měli byste se do ní přihlásit a při vydání nových verzí aktualizovat svou instalaci MediaWiki.',
-       'config-subscribe-noemail' => 'Pokusili jste se přihlásit k odběru e-mailové konference pro oznamování nových verzí, aniž byste poskytli e-mailovou adresu.
-Pokud se chcete přihlásit k odběru, zadejte e-mailovou adresu.',
-       'config-almost-done' => 'Už jsme skoro hotovi!
-Zbývající konfiguraci už můžete přeskočit a nainstalovat wiki hned teď.',
-       'config-optional-continue' => 'Ptejte se mě dál.',
-       'config-optional-skip' => 'Už mě to nudí, prostě nainstalujte wiki.',
-       'config-profile' => 'Profil uživatelských práv:',
-       'config-profile-wiki' => 'Otevřená wiki',
-       'config-profile-no-anon' => 'Vyžadována registrace uživatelů',
-       'config-profile-fishbowl' => 'Editace jen pro vybrané',
-       'config-profile-private' => 'Soukromá wiki',
-       'config-profile-help' => "Wiki fungují nejlépe, když je necháte editovat co největším možným počtem lidí.
-V MediaWiki můžete snadno kontrolovat poslední změny a vracet zpět libovolnou škodu způsobenou hloupými nebo zlými uživateli.
-
-Mnoho lidí však zjistilo, že je MediaWiki užitečné v širokém spektru rolí a někdy není snadné všechny přesvědčit o výhodách wikizvyklostí.
-Takže si můžete vybrat.
-
-Model '''{{int:config-profile-wiki}}''' dovoluje editovat všem, aniž by se museli přihlašovat.
-Na wiki, kde je '''{{int:config-profile-no-anon}}''', se lépe řídí zodpovědnost, ale může to odradit náhodné přispěvatele.
-
-Profil '''{{int:config-profile-fishbowl}}''' umožňuje schváleným uživatelům editovat, ale veřejnost si může stránky prohlížet včetně jejich historie.
-'''{{int:config-profile-private}}''' dovoluje stránky prohlížet jen schváleným uživatelům, kteří je i mohou editovat.
-
-Po instalaci je možná komplexní konfigurace uživatelských práv; vizte [//www.mediawiki.org/wiki/Manual:User_rights odpovídající stránku příručky].",
-       'config-license' => 'Autorská práva a licence:',
-       'config-license-none' => 'Bez patičky s licencí',
-       'config-license-cc-by-sa' => 'Creative Commons Uveďte autora-Zachovejte licenci',
-       'config-license-cc-by' => 'Creative Commons Uveďte autora',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci',
-       'config-license-cc-0' => 'Creative Commons Zero (volné dílo)',
-       'config-license-gfdl' => 'GNU Free Documentation License 1.3 nebo novější',
-       'config-license-pd' => 'Volné dílo',
-       'config-license-cc-choose' => 'Zvolit vlastní licenci Creative Commons',
-       'config-license-help' => "Mnoho veřejných wiki všechny příspěvky zveřejňuje pod některou [http://freedomdefined.org/Definition/Cs svobodnou licencí].
-To pomáhá vytvořit duch komunitního vlastnictví a povzbuzuje dlouhodobé přispívání.
-To obecně není potřeba u soukromé nebo firemní wiki.
-
-Pokud chcete být schopni používat text z Wikipedie a chcete, aby Wikipedie byla schopna přijímat text okopírovaný z vaší wiki, měli byste zvolit '''Creative Commons Uveďte autora-Zachovejte licenci'''.
-
-Dříve Wikipedie používala GNU Free Documentation License.
-GFDL je platná licence, ale složité jí porozumět.
-Také je komplikované používat obsah licencovaný pod GFDL.",
-       'config-email-settings' => 'Nastavení e-mailu',
-       'config-enable-email' => 'Zapnout odchozí e-mail',
-       'config-enable-email-help' => 'Pokud chcete, aby e-mail fungoval, je potřeba správně nakonfigurovat [http://www.php.net/manual/en/mail.configuration.php e-mailová nastavení PHP].
-Pokud nechcete žádné e-mailové funkce, můžete je zde vypnout.',
-       'config-email-user' => 'Umožnit vzájemné e-maily mezi uživateli',
-       'config-email-user-help' => 'Umožní všem uživatelům posílat si navzájem e-maily, pokud si to zapnout v uživatelském nastavení.',
-       'config-email-usertalk' => 'Umožnit notifikace k uživatelským diskusím',
-       'config-email-usertalk-help' => 'Umožní uživatelům přijímat notifikace o změnách uživatelských diskusí, pokud si to zapnou v nastavení.',
-       'config-email-watchlist' => 'Umožnit notifikace ke sledovaným stránkám',
-       'config-email-watchlist-help' => 'Umožní uživatelům přijímat notifikace o změnách sledovaných stránek, pokud si to zapnou v nastavení.',
-       'config-email-auth' => 'Zapnout ověřování e-mailů',
-       'config-email-auth-help' => "Pokud je tato volba vybrána, uživatelé musí potvrdit svou e-mailovou adresu pomocí odkazu, který je jim poslán, kdykoli si ji nastaví nebo změní.
-Jen potvrzené e-mailové adresy mohou přijímat e-maily od ostatních uživatelů a e-maily s notifikacemi o změnách.
-Nastavení této volby je '''doporučeno''' pro veřejné wiki kvůli možnosti zneužití e-mailových funkcí.",
-       'config-email-sender' => 'Návratová e-mailová adresa:',
-       'config-email-sender-help' => 'Zadejte e-mailovou adresu, která se má použít jako návratová na odchozích e-mailech.
-Sem budou zasílány nedoručitelné zprávy.
-Mnoho mailových serverů vyžaduje, aby byla přinejmenším část s doménovým jménem platná.',
-       'config-upload-settings' => 'Obrázky a načítání souborů',
-       'config-upload-enable' => 'Povolit načítání souborů',
-       'config-upload-help' => 'Načítání souborů potenciálně vystavuje váš server bezpečnostním rizikům.
-Více informací naleznete v [//www.mediawiki.org/wiki/Manual:Security části o bezpečnosti] v příručce.
-
-Pro umožnění načítání souborů změňte práva na podadresáři <code>images</code> pod kořenovým adresářem MediaWiki, aby do něj mohl webový server zapisovat.
-Poté zapněte tuto volbu.',
-       'config-upload-deleted' => 'Adresář pro smazané soubory:',
-       'config-upload-deleted-help' => 'Zvolte adresář, do kterého se mají archivovat smazané soubory.
-Tento adresář by ideálně neměl být dostupný z webu.',
-       'config-logo' => 'URL loga:',
-       'config-logo-help' => 'Základní vzhled MediaWiki zahrnuje místo pro logo o velikosti 135×160 pixelů nad bočním menu.
-Načtěte obrázek odpovídající velikosti a zadejte sem jeho URL.
-
-Pokud je vaše logo umístěno relativně vůči <code>$wgStylePath</code> nebo <code>$wgScriptPath</code>, můžete zde tyto proměnné použít.
-
-Pokud logo nechcete, ponechte toto pole prázdné.',
-       'config-instantcommons' => 'Zapnout Instant Commons',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons Instant Commons] je funkce, která umožňuje wiki používat obrázky, zvuky a další mediální soubory ze serveru [//commons.wikimedia.org/wiki/Hlavn%C3%AD_strana Wikimedia Commons].
-Aby to bylo možné, potřebuje mít MediaWiki přístup k internetu.
-
-Více informací o této funkci, včetně instrukcí, jak ji nastavit pro jiné wiki než Wikimedia Commons, najdete v [//mediawiki.org/wiki/Manual:$wgForeignFileRepos příručce].',
-       'config-cc-error' => 'Volič licence Creative Commons nevrátil žádný výsledek.
-Zadejte název licence ručně.',
-       'config-cc-again' => 'Zvolit znovu…',
-       'config-cc-not-chosen' => 'Zvolte si požadovanou licenci Creative Commons a klikněte na tlačítko.',
-       'config-advanced-settings' => 'Pokročilá konfigurace',
-       'config-cache-options' => 'Nastavení cachování objektů:',
-       'config-cache-help' => 'Cachování objektů se používá pro vylepšení rychlosti MediaWiki tím, že se cachují často používaná data.
-Středním až velkým serverům se jeho zapnutí důrazně doporučuje, i menší servery pocítí jeho výhody.',
-       'config-cache-none' => 'Bez cachování (o žádnou funkcionalitu nepřijdete, na větších wiki však může dojít ke zhoršení rychlosti)',
-       'config-cache-accel' => 'Cachování PHP objektů (APC, XCache nebo WinCache)',
-       'config-cache-memcached' => 'Použít Memcached (vyžaduje další nastavení a konfiguraci)',
-       'config-memcached-servers' => 'Servery Memcached:',
-       'config-memcached-help' => 'Seznam IP adres, které se mají používat pro Memcached.
-Uveďte jednu na řádek spolu s portem. Například:
- 127.0.0.1:11211
- 192.168.1.25:1234',
-       'config-memcache-needservers' => 'Jako typ cache jste zvolili Memcached, ale neuvedli jste žádné servery.',
-       'config-memcache-badip' => 'Zadali jste neplatnou IP adresu pro Memcached: $1.',
-       'config-memcache-noport' => 'Nezadali jste port serveru Memcached: $1.
-Pokud port neznáte, implicitní je 11211.',
-       'config-memcache-badport' => 'Čísla portů pro Memcached by měla být mezi $1 a $2.',
-       'config-extensions' => 'Rozšíření',
-       'config-extensions-help' => 'Výše uvedená rozšíření byla nalezena ve vašem adresáři <code>./extensions</code>.
-
-Mohou vyžadovat dodatečnou konfiguraci, ale teď je můžete povolit.',
-       'config-install-alreadydone' => "'''Upozornění:''' Vypadá to, že jste MediaWiki již nainstalovali a teď se o to pokoušíte znovu.
-Pokračujte na další stránku.",
-       'config-install-begin' => 'Stisknutím „{{int:config-continue}}“ spustíte instalaci MediaWiki.
-Pokud ještě chcete udělat nějaké změny, stiskněte „{{int:config-back}}“.',
-       'config-install-step-done' => 'hotovo',
-       'config-install-step-failed' => 'selhaly',
-       'config-install-extensions' => 'Vkládají se rozšíření',
-       'config-install-database' => 'Připravuje se databáze',
-       'config-install-schema' => 'Vytváří se schéma',
-       'config-install-pg-schema-not-exist' => 'Schéma PostgreSQL neexistuje.',
-       'config-install-pg-schema-failed' => 'Založení tabulek se nezdařilo.
-Ujistěte se, že uživatel „$1“ může zapisovat do schématu „$2“.',
-       'config-install-pg-commit' => 'Potvrzují se změny',
-       'config-install-pg-plpgsql' => 'Kontroluje se jazyk PL/pgSQL',
-       'config-pg-no-plpgsql' => 'Musíte do databáze $1 nainstalovat jazyk PL/pgSQL',
-       'config-pg-no-create-privs' => 'Účet zadaný pro instalaci nemá oprávnění k založení uživatelského účtu.',
-       'config-pg-not-in-role' => 'Účet zadaný pro webového uživatele již existuje
-Účet zadaný pro instalaci není superuživatelský a není členem role webového uživatele, takže nemůže zakládat objekty vlastněné webovým uživatelem.
-
-MediaWiki v současné době vyžaduje, aby byl vlastníkem tabulek webový uživatel. Uveďte jiný název účtu webového uživatele nebo klikněte na „zpět“ a zadejte instalačního uživatele s odpovídajícími oprávněními.',
-       'config-install-user' => 'Vytváří se databázový uživatel',
-       'config-install-user-alreadyexists' => 'Uživatel „$1“ už existuje',
-       'config-install-user-create-failed' => 'Vytváření uživatele „$1“ selhalo: $2',
-       'config-install-user-grant-failed' => 'Uživateli „$1“ se nepodařilo přidělit oprávnění: $2',
-       'config-install-user-missing' => 'Zadaný uživatel „$1“ neexistuje.',
-       'config-install-user-missing-create' => 'Zadaný uživatel „$1“ neexistuje.
-Pokud ho chcete založit, zaškrtněte možnost „založit účet“ níže.',
-       'config-install-tables' => 'Vytvářejí se tabulky',
-       'config-install-tables-exist' => "'''Upozornění''': Vypadá to, že tabulky MediaWiki již existují.
-Přeskakuje se jejich zakládání.",
-       'config-install-tables-failed' => "'''Chyba''': Vytvoření tabulek selhalo s následující chybou: $1",
-       'config-install-interwiki' => 'Tabulka interwiki se plní implicitními položkami',
-       'config-install-interwiki-list' => 'Nelze přečíst soubor <code>interwiki.list</code>.',
-       'config-install-interwiki-exists' => "'''Upozornění''': Vypadá to, že tabulka interwiki již obsahuje nějaké záznamy.
-Přeskakuje se implicitní seznam.",
-       'config-install-stats' => 'Inicializují se statistiky',
-       'config-install-keys' => 'Vytvářejí se tajné klíče',
-       'config-insecure-keys' => "'''Upozornění:''' {{PLURAL:$2|Tajný klíč|Tajné klíče}} ($1) vytvořené v průběhu instalace {{PLURAL:$2|není|nejsou}} zcela {{PLURAL:$2|bezpečný|bezpečné}}. Zvažte {{PLURAL:$2|jeho|jejich}} ruční změnu.",
-       'config-install-sysop' => 'Zakládá se uživatelský účet správce',
-       'config-install-subscribe-fail' => 'Nelze se přihlásit k odběru mediawiki-announce: $1',
-       'config-install-subscribe-notpossible' => 'Není nainstalován cURL a není dostupné allow_url_fopen.',
-       'config-install-mainpage' => 'Vytváří se počáteční obsah hlavní strany',
-       'config-install-extension-tables' => 'Vytvářejí se tabulky pro zapnutá rozšíření',
-       'config-install-mainpage-failed' => 'Nepodařilo se vložit hlavní stranu: $1',
-       'config-install-done' => "'''Gratulujeme!'''
-Úspěšně jste nainstalovali MediaWiki.
-
-Instalátor vytvořil soubor <code>LocalSettings.php</code>.
-Ten obsahuje veškerou vaši konfiguraci.
-
-Budete si ho muset stáhnout a uložit do základního adresáře vaší instalace wiki (do stejného adresáře jako soubor index.php). Stažení souboru se mělo spustit automaticky.
-
-Pokud se vám stažení nenabídlo nebo jste ho zrušili, můžete ho spustit znovu kliknutím na následující odkaz:
-
-$3
-
-'''Poznámka''': Pokud to neuděláte hned, tento vygenerovaný konfigurační soubor nebude později dostupný, pokud instalaci opustíte, aniž byste si ho stáhli.
-
-Až to dokončíte, můžete '''[$2 vstoupit do své wiki]'''.",
-       'config-download-localsettings' => 'Stáhnout <code>LocalSettings.php</code>',
-       'config-help' => 'nápověda',
-       'config-nofile' => 'Soubor „$1“ nelze nalézt. Byl smazán?',
-       'config-extension-link' => 'Věděli jste, že vaše wiki podporuje [//www.mediawiki.org/wiki/Manual:Extensions rozšíření]?
-
-Můžete procházet [//www.mediawiki.org/wiki/Category:Extensions_by_category rozšíření po kategoriích] nebo si prohlédnout [//www.mediawiki.org/wiki/Extension_Matrix Matici rozšíření] obsahující úplný seznam.',
-       'mainpagetext' => "'''MediaWiki byla úspěšně nainstalována.'''",
-       'mainpagedocfooter' => '[//meta.wikimedia.org/wiki/Help:Contents Uživatelská příručka] vám napoví, jak MediaWiki používat.
-
-== Začínáme ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Nastavení konfigurace]
-* [//www.mediawiki.org/wiki/Manual:FAQ Často kladené otázky o MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-mailová konference oznámení MediaWiki]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Překlad MediaWiki do vašeho jazyka]',
-);
-
-/** Kashubian (kaszëbsczi)
- */
-$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(
-       'mainpagetext' => "'''«MediaWiki» вики-движока лартасси ăнăçлă вĕçленчĕ.'''",
-       'mainpagedocfooter' => 'Ку википе ĕçлеме пулăшакан информацине [//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 усăç руководствинче] тупма пултаратăр.
-
-== Пулăшма пултарĕç ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Ĕнерлевсен списокĕ];
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki тăрăх час-часах ыйтакан ыйтусемпе хуравсем];
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki çĕнĕ верси тухнине пĕлтерекен рассылка].', # Fuzzy
-);
-
-/** 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.
-
-==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]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Cyfieithu MediaWici i'ch iaith chi]",
-);
-
-/** Danish (dansk)
- * @author Peter Alberti
- */
-$messages['da'] = array(
-       'mainpagetext' => "'''MediaWiki er nu installeret.'''",
-       'mainpagedocfooter' => 'Se [//meta.wikimedia.org/wiki/Help:Contents brugervejledningen] for oplysninger om brugen af wikiprogrammellet.
-
-== At komme i gang ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Listen over opsætningsmuligheder]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki ofte stillede spørgsmål]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Postliste angående udgivelser af MediaWiki]', # Fuzzy
-);
-
-/** German (Deutsch)
- * @author Geitost
- * @author Kghbln
- * @author LWChris
- * @author Metalhead64
- * @author Purodha
- * @author Rillke
- * @author The Evil IP address
- * @author Umherirrender
- * @author Wikinaut
- * @author 아라
- */
-$messages['de'] = array(
-       'config-desc' => 'Das MediaWiki-Installationsprogramm',
-       'config-title' => 'Installation von MediaWiki $1',
-       'config-information' => 'Informationen',
-       'config-localsettings-upgrade' => 'Eine Datei <code>LocalSettings.php</code> wurde gefunden.
-Um die vorhandene Installation aktualisieren zu können, muss der Wert des Parameters <code>$wgUpgradeKey</code> im folgenden Eingabefeld angegeben werden.
-Der Parameterwert befindet sich in der Datei <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'Eine Datei <code><code>LocalSettings.php</code></code> wurde gefunden.
-Um die vorhandene Installation zu aktualisieren, muss die Datei <code>update.php</code> ausgeführt werden.',
-       'config-localsettings-key' => 'Aktualisierungsschlüssel:',
-       'config-localsettings-badkey' => 'Der angegebene Aktualisierungsschlüssel ist falsch.',
-       'config-upgrade-key-missing' => 'Eine MediaWiki-Installation wurde gefunden.
-Um die vorhandene Installation aktualisieren zu können, muss die unten angegebene Codezeile in die Datei <code>LocalSettings.php</code> an deren Ende eingefügt werden:
-
-$1',
-       'config-localsettings-incomplete' => 'Die vorhandene Datei <code>LocalSettings.php</code> scheint unvollständig zu sein.
-Die Variable <code>$1</code> wurde nicht definiert.
-Die Datei <code>LocalSettings.php</code> muss entsprechend geändert werden, so dass sie definiert ist. Klicke danach auf „{{int:Config-continue}}“.',
-       'config-localsettings-connection-error' => 'Beim Verbindungsversuch zur Datenbank ist, unter Verwendung der in den Dateien <code>LocalSettings.php</code> oder <code>AdminSettings.php</code> hinterlegten Einstellungen, ein Fehler aufgetreten. Diese Einstellungen müssen korrigiert werden. Danach kann ein erneuter Versuch unternommen werden.
-
-$1',
-       'config-session-error' => 'Fehler beim Starten der Sitzung: $1',
-       'config-session-expired' => 'Die Sitzungsdaten scheinen abgelaufen zu sein.
-Sitzungen sind für einen Zeitraum von $1 konfiguriert.
-Dieser kann durch Anhebung des Parameters <code>session.gc_maxlifetime</code> in der Datei <code>php.ini</code> erhöht werden.
-Den Installationsvorgang erneut starten.',
-       'config-no-session' => 'Die Sitzungsdaten sind verloren gegangen!
-Die Datei <code>php.ini</code> muss geprüft und es muss dabei sichergestellt werden, dass der Parameter <code>session.save_path</code> auf das richtige Verzeichnis verweist.',
-       'config-your-language' => 'Sprache während des Installierens:',
-       'config-your-language-help' => 'Bitte die Sprache auswählen, die während des Installationsvorgangs verwendet werden soll.',
-       'config-wiki-language' => 'Sprache des Wikis:',
-       'config-wiki-language-help' => 'Bitte die Sprache auswählen, die überwiegend beim Erstellen der Inhalte verwendet werden soll.',
-       'config-back' => '← Zurück',
-       'config-continue' => 'Weiter →',
-       'config-page-language' => 'Sprache',
-       'config-page-welcome' => 'Willkommen bei MediaWiki!',
-       'config-page-dbconnect' => 'Mit der Datenbank verbinden',
-       'config-page-upgrade' => 'Eine vorhandene Installation aktualisieren',
-       'config-page-dbsettings' => 'Einstellungen zur Datenbank',
-       'config-page-name' => 'Name',
-       'config-page-options' => 'Optionen',
-       'config-page-install' => 'Installieren',
-       'config-page-complete' => 'Fertig!',
-       'config-page-restart' => 'Installationsvorgang erneut starten',
-       'config-page-readme' => 'Lies mich',
-       'config-page-releasenotes' => 'Versionsinfos (en)',
-       'config-page-copying' => 'Kopie der Lizenz',
-       'config-page-upgradedoc' => 'Aktualisiere',
-       'config-page-existingwiki' => 'Vorhandenes Wiki',
-       'config-help-restart' => 'Sollen alle bereits eingegebenen Daten gelöscht und der Installationsvorgang erneut gestartet werden?',
-       'config-restart' => 'Ja, erneut starten',
-       'config-welcome' => '=== Prüfung der Installationsumgebung ===
-Die Basisprüfungen werden jetzt durchgeführt, um festzustellen, ob die Installationsumgebung für die Installation von MediaWiki geeignet ist.
-Nimm diese Information auf, falls du Unterstützung bei der Vervollständigung der Installation benötigst.',
-       'config-copyright' => "=== Lizenz und Nutzungsbedingungen ===
-
-$1
-
-Dieses Programm ist freie Software, d. h. es kann, gemäß den Bedingungen der von der Free Software Foundation veröffentlichten ''GNU General Public License'', weiterverteilt und/oder modifiziert werden. Dabei kann die Version 2, oder nach eigenem Ermessen, jede neuere Version der Lizenz verwendet werden.
-
-Dieses Programm wird in der Hoffnung verteilt, dass es nützlich sein wird, allerdings '''ohne jegliche Garantie''' und sogar ohne die implizierte Garantie einer '''Marktgängigkeit''' oder '''Eignung für einen bestimmten Zweck'''. Hierzu sind weitere Hinweise in der ''GNU General Public License'' enthalten.
-
-Eine <doclink href=Copying>Kopie der GNU General Public License</doclink> sollte zusammen mit diesem Programm verteilt worden sein. Sofern dies nicht der Fall war, kann eine Kopie bei der Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, schriftlich angefordert oder auf deren Website [http://www.gnu.org/copyleft/gpl.html online gelesen] werden.",
-       'config-sidebar' => '* [//www.mediawiki.org/wiki/MediaWiki/de Website von MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents/de Benutzeranleitung]
-* [//www.mediawiki.org/wiki/Manual:Contents/de Administratorenanleitung]
-* [//www.mediawiki.org/wiki/Manual:FAQ/de Häufig gestellte Fragen]
-----
-* <doclink href=Readme>Lies mich</doclink>
-* <doclink href=ReleaseNotes>Versionsinformationen</doclink>
-* <doclink href=Copying>Lizenzbestimmungen</doclink>
-* <doclink href=UpgradeDoc>Aktualisierung</doclink>',
-       'config-env-good' => 'Die Installationsumgebung wurde geprüft.
-MediaWiki kann installiert werden.',
-       'config-env-bad' => 'Die Installationsumgebung wurde geprüft.
-MediaWiki kann nicht installiert werden.',
-       'config-env-php' => 'PHP $1 ist installiert.',
-       'config-env-php-toolow' => 'PHP $1 ist installiert.
-Allerdings benötigt MediaWiki PHP $2 oder höher.',
-       'config-unicode-using-utf8' => 'Zur Unicode-Normalisierung wird Brion Vibbers <code>utf8_normalize.so</code> eingesetzt.',
-       'config-unicode-using-intl' => 'Zur  Unicode-Normalisierung wird die [http://pecl.php.net/intl PECL-Erweiterung intl] eingesetzt.',
-       'config-unicode-pure-php-warning' => "'''Warnung:''' Die [http://pecl.php.net/intl PECL-Erweiterung intl] ist für die Unicode-Normalisierung nicht verfügbar, so dass stattdessen die langsame pure-PHP-Implementierung genutzt wird.
-Sofern eine Website mit großer Benutzeranzahl betrieben wird, sollten weitere Informationen auf der Webseite [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode-Normalisierung (en)] gelesen werden.",
-       'config-unicode-update-warning' => "'''Warnung:''' Die installierte Version des Unicode-Normalisierungswrappers nutzt einer ältere Version der Bibliothek des [http://site.icu-project.org/ ICU-Projekts].
-Diese sollte [//www.mediawiki.org/wiki/Unicode_normalization_considerations aktualisiert] werden, sofern auf die Verwendung von Unicode Wert gelegt wird.",
-       'config-no-db' => 'Es konnte kein adäquater Datenbanktreiber gefunden werden. Es muss daher ein Datenbanktreiber für PHP installiert werden.
-Die folgenden Datenbanksysteme werden unterstützt: $1
-
-Sofern ein gemeinschaftlich genutzter Server für das Hosting verwendet wird, muss der Hoster gefragt werden einen adäquaten Datenbanktreiber zu installieren.
-Sofern PHP selbst kompiliert wurde, muss es mit es neu konfiguriert werden, wobei der Datenbankclient zu aktivierten ist. Hierzu kann beispielsweise <code>./configure --with-mysql</code> ausgeführt werden.
-Sofern PHP über die Paketverwaltung einer Debian- oder Ubuntu-Installation installiert wurde, muss das „php5-mysql“-Paket nachinstalliert werden.',
-       'config-outdated-sqlite' => "'''Warnung:''' SQLite $1 ist installiert. Allerdings benötigt MediaWiki SQLite $2 oder höher. SQLite wird daher nicht verfügbar sein.",
-       'config-no-fts3' => "'''Warnung:''' SQLite wurde ohne das [//sqlite.org/fts3.html FTS3-Modul] kompiliert, so dass keine Suchfunktionen für dieses Datenbanksystem zur Verfügung stehen werden.",
-       'config-register-globals' => "'''Warnung: Der Parameter <code>[http://php.net/register_globals register_globals]</code> von PHP ist aktiviert.'''
-'''Sie sollte deaktiviert werden, sofern dies möglich ist.'''
-Die MediaWiki-Installation wird zwar laufen, wobei aber der Server für potentielle Sicherheitsprobleme anfällig ist.",
-       'config-magic-quotes-runtime' => "'''Fataler Fehler: Der Parameter <code>[http://www.php.net/manual/de/function.set-magic-quotes-runtime.php set_magic_quotes_runtime]</code> von PHP ist aktiviert!'''
-Diese Einstellung führt zu unvorhersehbaren Problemen bei der Dateneingabe.
-MediaWiki kann nicht installiert werden, solange dieser Parameter nicht deaktiviert wurde.",
-       'config-magic-quotes-sybase' => "'''Fataler Fehler: Der Parameter <code>[http://www.php.net/manual/de/sybase.configuration.php#ini.magic-quotes-sybase magic_quotes_sybase]</code> von PHP ist aktiviert!'''
-Diese Einstellung führt zu unvorhersehbaren Problemen bei der Dateneingabe.
-MediaWiki kann nicht installiert werden, solange dieser Parameter nicht deaktiviert wurde.",
-       'config-mbstring' => "'''Fataler Fehler: Der Parameter <code>[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]</code> von PHP ist aktiviert!'''
-Diese Einstellung verursacht Fehler und führt zu unvorhersehbaren Problemen bei der Dateneingabe.
-MediaWiki kann nicht installiert werden, solange dieser Parameter nicht deaktiviert wurde.",
-       'config-ze1' => "'''Fataler Fehler: Der Parameter <code>[http://www.php.net/manual/de/ini.core.php zend.ze1_compatibility_mode]</code> von PHP ist aktiviert!'''
-Diese Einstellung führt zu großen Fehlern bei MediaWiki.
-MediaWiki kann nicht installiert werden, solange dieser Parameter nicht deaktiviert wurde.",
-       'config-safe-mode' => "'''Warnung:''' Der Funktion <code>[http://www.php.net/features.safe-mode Safe Mode]</code> von PHP ist aktiviert.
-Dies kann zu Problemen führen, insbesondere wenn das Hochladen von Dateien möglich sein, bzw. der Auszeichner <code>math</code> genutzt werden soll.",
-       'config-xml-bad' => 'Das XML-Modul von PHP fehlt.
-MediaWiki benötigt Funktionen, die dieses Modul bereitstellt und wird in der bestehenden Konfiguration nicht funktionieren.
-Sofern Mandriva genutzt wird, muss noch das „php-xml“-Paket installiert werden.',
-       'config-pcre' => 'Das PHP-Modul für die PCRE-Unterstützung wurde nicht gefunden.
-MediaWiki benötigt allerdings perl-kompatible reguläre Ausdrücke, um lauffähig zu sein.',
-       'config-pcre-no-utf8' => "'''Fataler Fehler:''' Das PHP-Modul PCRE scheint ohne PCRE_UTF8-Unterstützung kompiliert worden zu sein.
-MediaWiki benötigt die UTF-8-Unterstützung, um fehlerfrei lauffähig zu sein.",
-       'config-memory-raised' => 'Der PHP-Parameter <code>memory_limit</code> betrug $1 und wurde auf $2 erhöht.',
-       'config-memory-bad' => "'''Warnung:''' Der PHP-Parameter <code>memory_limit</code> beträgt $1.
-Dieser Wert ist wahrscheinlich zu niedrig.
-Der Installationsvorgang könnte daher scheitern!",
-       'config-ctype' => "'''Fataler Fehler:''' PHP muss mit Unterstützung für das [http://www.php.net/manual/de/ctype.installation.php Modul ctype] kompiliert werden.",
-       'config-json' => "'''Fatal:''' PHP wurde ohne JSON-Support kompiliert.
-Du musst entweder die PHP-JSON- oder die [http://pecl.php.net/package/jsonc PECL-jsonc]-Erweiterung installieren, bevor du MediaWiki installierst.
-* Die PHP-Erweiterung ist in Red Hat Enterprise Linux (CentOS) 5 und 6 enthalten, muss jedoch in <code>/etc/php.ini</code> oder <code>/etc/php.d/json.ini</code> aktiviert werden.
-* Einige Linux-Distributionen, die nach Mai 2013 veröffentlicht wurden, lassen die PHP-Erweiterung weg, stattdessen wird die PECL-Erweiterung als <code>php5-json</code> oder <code>php-pecl-jsonc</code> mitgeliefert.",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] ist installiert',
-       'config-apc' => '[http://www.php.net/apc APC] ist installiert',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] ist installiert',
-       'config-no-cache' => "'''Warnung:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] oder [http://www.iis.net/download/WinCacheForPhp WinCache] wurden nicht gefunden.
-Das Objektcaching kann daher nicht aktiviert werden.",
-       'config-mod-security' => "'''Warnung:''' Auf dem Webserver wurde [http://modsecurity.org/ ModSecurity] aktiviert. Sofern falsch konfiguriert, kann dies zu Problemen mit MediaWiki sowie anderer Software auf dem Server führen und es Benutzern ermöglichen beliebige Inhalte im Wiki einzustellen.
-Für weitere Informationen empfehlen wir die [http://modsecurity.org/documentation/ Dokumentation zu ModSecurity] oder den Kontakt zum Hoster, sofern Fehler auftreten.",
-       'config-diff3-bad' => 'GNU diff3 wurde nicht gefunden.',
-       'config-git' => 'Die Git-Versionsverwaltungssoftware wurde gefunden: <code>$1</code>.',
-       'config-git-bad' => 'Die Git-Versionsverwaltungssoftware wurde nicht gefunden.',
-       'config-imagemagick' => 'ImageMagick wurde gefunden: <code>$1</code>.
-Miniaturansichten von Bildern werden möglich sein, sobald das Hochladen von Dateien aktiviert wurde.',
-       'config-gd' => 'Die im System integrierte GD-Grafikbibliothek wurde gefunden.
-Miniaturansichten von Bildern werden möglich sein, sobald das Hochladen von Dateien aktiviert wurde.',
-       'config-no-scaling' => 'Weder die GD-Grafikbibliothek noch ImageMagick wurden gefunden.
-Miniaturansichten von Bildern sind daher nicht möglich.',
-       'config-no-uri' => "'''Fehler:''' Die aktuelle URL konnte nicht ermittelt werden.
-Der Installationsvorgang wurde daher abgebrochen.",
-       'config-no-cli-uri' => "'''Warnung''': Es wurde kein Pfad zum Skipt (--scriptpath) angegeben. Daher wird der Standardpfad genutzt: <code>$1</code>.",
-       'config-using-server' => 'Der Servername „<nowiki>$1</nowiki>“ wird verwendet.',
-       'config-using-uri' => 'Die Server-URL „<nowiki>$1$2</nowiki>“ wird verwendet.',
-       'config-uploads-not-safe' => "'''Warnung:''' Das Standardverzeichnis für hochgeladene Dateien <code>$1</code> ist für die willkürliche Ausführung von Skripten anfällig.
-Obwohl MediaWiki die hochgeladenen Dateien auf Sicherheitsrisiken überprüft, wird dennoch dringend empfohlen diese [//www.mediawiki.org/wiki/Manual:Security#Upload_security Sicherheitslücke] zu schließen, bevor das Hochladen von Dateien aktiviert wird.",
-       'config-no-cli-uploads-check' => "'''Warnung''': Das Standardverzeichnis für hochgeladene Dateien (<code>$1</code>) wird, während der Installation über die Kommandozeile, nicht auf Sicherheitsanfälligkeiten hinsichtlich willkürlicher Skriptausführungen geprüft.",
-       'config-brokenlibxml' => 'Das System nutzt eine Kombination aus PHP- und libxml2-Versionen, die fehleranfällig ist und versteckte Datenfehler bei MediaWiki und anderen Webanwendungen verursachen kann.
-PHP muss auf Version 5.2.9 oder später sowie libxml2 auf die Version 2.7.3 oder später aktualisiert werden, um das Problem zu lösen. Installationsabbruch ([//bugs.php.net/bug.php?id=45996 siehe hierzu die Fehlermeldung bei PHP]).',
-       'config-using531' => 'MediaWiki kann nicht zusammen mit PHP $1 verwendet werden. Grund hierfür ist ein Fehler im Zusammenhang mit den Verweisparametern zu <code>__call()</code>.
-PHP muss auf Version 5.3.2 oder höher oder 5.3.0 oder niedriger aktualisiert werden, um das Problem zu beheben.
-Die Installation wurde abgebrochen.',
-       'config-suhosin-max-value-length' => 'Suhosin ist installiert und beschränkt die Länge des GET-Parameters auf $1 Bytes.
-Der ResouceLoader von MediaWiki wird zwar unter diesen Bedingungen funktionieren, allerdings nur mit verminderter Leistungsfähigkeit.
-Sofern möglich sollte der Parameter <code>suhosin.get.max_value_length</code> in der Datei <code>php.ini</code> auf 1024 oder höher festgelegt werden.
-Gleichzeitig muss der Parameter <code>$wgResourceLoaderMaxQueryLength</code> in der Datei <code>LocalSettings.php</code> auf den selben Wert eingestellt werden.',
-       'config-db-type' => 'Datenbanksystem:',
-       'config-db-host' => 'Datenbankserver:',
-       'config-db-host-help' => 'Sofern sich die Datenbank auf einem anderen Server befindet, ist hier der Servername oder die entsprechende IP-Adresse anzugeben.
-
-Sofern ein gemeinschaftlich genutzter Server verwendet wird, sollte der Hoster den zutreffenden Servernamen in seiner Dokumentation angegeben haben.
-
-Sofern auf einem Windows-Server installiert und MySQL genutzt wird, funktioniert der Servername „localhost“ voraussichtlich nicht. Wenn nicht, sollte  „127.0.0.1“ oder die lokale IP-Adresse angegeben werden.
-
-Sofern PostgresQL genutzt wird, muss dieses Feld leer gelassen werden, um über ein Unix-Socket zu verbinden.',
-       'config-db-host-oracle' => 'Datenbank-TNS:',
-       'config-db-host-oracle-help' => 'Einen gültigen [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm „Local Connect“-Namen] angeben. Die „tnsnames.ora“-Datei muss von dieser Installation erkannt werden können.<br />Sofern die Client-Bibliotheken für Version 10g oder neuer verwendet werden, kann auch [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm „Easy Connect“] zur Namensgebung genutzt werden.',
-       'config-db-wiki-settings' => 'Bitte Daten zur eindeutigen Identifikation dieses Wikis angeben',
-       'config-db-name' => 'Datenbankname:',
-       'config-db-name-help' => 'Bitte einen Namen angeben, mit dem das Wiki identifiziert werden kann.
-Dabei sollten keine Leerzeichen verwendet werden.
-
-Sofern ein gemeinschaftlich genutzter Server verwendet wird, sollte der Hoster den Datenbanknamen angegeben oder aber die Erstellung einer Datenbank über ein entsprechendes Interface gestattet haben.',
-       'config-db-name-oracle' => 'Datenbankschema:',
-       'config-db-account-oracle-warn' => 'Es gibt drei von MediaWiki unterstützte Möglichkeiten Oracle als Datenbank einzurichten:
-
-Sofern das Datenbankbenutzerkonto während des Installationsvorgangs erstellt werden soll, muss ein Datenbankbenutzerkonto mit der SYSDBA-Berechtigung zusammen mit den entsprechenden Anmeldeinformationen angegeben werden, mit dem dann über das Web auf die Datenbank zugegriffen werden kann. Alternativ kann man auch lediglich ein einzelnes manuell angelegtes Datenbankbenutzerkonto angeben, mit dem über das Web auf die Datenbank zugegriffen werden kann, sofern dieses über die Berechtigung zur Erstellung von Datenbankschemen verfügt. Zudem ist es möglich zwei Datenbankbenutzerkonten anzugeben von denen eines die Berechtigung zur Erstellung von Datenbankschemen hat und das andere, um mit ihm über das Web auf die Datenbank zuzugreifen.
-
-Ein Skript zum Anlegen eines Datenbankbenutzerkontos mit den notwendigen Berechtigungen findet man unter dem Pfad „…/maintenance/oracle/“ dieser MediaWiki-Installation. Es ist dabei zu bedenken, dass die Verwendung eines Datenbankbenutzerkontos mit beschränkten Berechtigungen die Nutzung der Wartungsfunktionen für das Standarddatenbankbenutzerkonto deaktiviert.',
-       'config-db-install-account' => 'Benutzerkonto für die Installation',
-       'config-db-username' => 'Name des Datenbankbenutzers:',
-       'config-db-password' => 'Passwort des Datenbankbenutzers:',
-       'config-db-password-empty' => 'Bitte ein Passwort für den neuen Datenbankbenutzer angeben: $1
-Obzwar es möglich ist Datenbankbenutzer ohne Passwort anzulegen, so ist dies aber nicht sicher.',
-       'config-db-install-username' => 'Den Benutzernamen angeben, der für die Verbindung mit der Datenbank während des Installationsvorgangs genutzt werden soll. Es handelt sich dabei nicht um den Benutzernamen für das MediaWiki-Konto, sondern um den Benutzernamen der vorgesehenen Datenbank.',
-       'config-db-install-password' => 'Das Passwort angeben, das für die Verbindung mit der Datenbank während des Installationsvorgangs genutzt werden soll. Es handelt sich dabei nicht um das Passwort für das MediaWiki-Konto, sondern um das Passwort der vorgesehenen Datenbank.',
-       'config-db-install-help' => 'Benutzername und Passwort, die während des Installationsvorgangs, für die Verbindung mit der Datenbank, genutzt werden sollen, sind nun anzugeben.',
-       'config-db-account-lock' => 'Derselbe Benutzername und das Passwort müssen während des Normalbetriebs des Wikis verwendet werden.',
-       'config-db-wiki-account' => 'Benutzerkonto für den normalen Betrieb',
-       'config-db-wiki-help' => 'Bitte Benutzernamen und Passwort angeben, die der Webserver während des Normalbetriebes dazu verwenden soll, eine Verbindung zum Datenbankserver herzustellen.
-Sofern ein entsprechendes Benutzerkonto nicht vorhanden ist und das Benutzerkonto für den Installationsvorgang über ausreichende Berechtigungen verfügt, wird dieses Benutzerkonto automatisch mit den Mindestberechtigungen zum Normalbetrieb des Wikis angelegt.',
-       'config-db-prefix' => 'Datenbanktabellenpräfix:',
-       'config-db-prefix-help' => 'Sofern eine Datenbank für mehrere Wikiinstallationen oder eine Wikiinstallation und eine andere Programminstallation genutzt werden soll, muss ein Datenbanktabellenpräfix angegeben werden, um Datenbankprobleme zu vermeiden.
-Es können keine Leerzeichen verwendet werden.
-
-Gewöhnlich bleibt dieses Datenfeld leer.',
-       'config-db-charset' => 'Datenbankzeichensatz',
-       '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 abwärtskompatibles UTF-8',
-       'config-charset-help' => "'''Warnung:''' Sofern '''abwärtskompatibles UTF-8''' bei MySQL 4.1+ verwendet und anschließend die Datenbank mit <code>mysqldump</code> gesichert wird, könnten alle nicht mit ASCII-codierten Zeichen beschädigt werden, was zu irreversiblen Schäden der Datensicherung führt!
-
-Im '''binären Modus''' speichert MediaWiki UTF-8 Texte in der Datenbank in binär kodierte Datenfelder.
-Dies ist effizienter als der UTF-8-Modus von MySQL und ermöglicht so die Verwendung jeglicher Unicode-Zeichen.
-Im '''UTF-8-Modus''' wird MySQL den Zeichensatz der Daten erkennen und sie richtig anzeigen und konvertieren.
-Es können allerdings keine Zeichen außerhalb des [//de.wikipedia.org/wiki/Basic_Multilingual_Plane#Gliederung_in_Ebenen_und_Bl.C3.B6cke ''Basic Multilingual Plane'' (BMP)] gespeichert werden.",
-       'config-mysql-old' => 'MySQL $1 oder höher wird benötigt. MySQL $2 ist momentan vorhanden.',
-       'config-db-port' => 'Datenbankport:',
-       'config-db-schema' => 'Datenschema für MediaWiki',
-       'config-db-schema-help' => 'Dieses Datenschema ist in der Regel allgemein verwendbar.
-Nur Änderungen daran vornehmen, sofern es gute Gründe dafür gibt.',
-       'config-pg-test-error' => "Es kann keine Verbindung zur Datenbank '''$1''' hergestellt werden: $2",
-       'config-sqlite-dir' => 'SQLite-Datenverzeichnis:',
-       'config-sqlite-dir-help' => "SQLite speichert alle Daten in einer einzigen Datei.
-
-Das für sie vorgesehene Verzeichnis muss während des Installationsvorgangs beschreibbar sein.
-
-Es sollte '''nicht''' über das Web zugänglich sein, was der Grund ist, warum die Datei nicht dort abgelegt wird, wo sich die PHP-Dateien befinden.
-
-Das Installationsprogramm wird mit der Datei zusammen eine zusätzliche <code>.htaccess</code>-Datei erstellen. Sofern dies scheitert, können Dritte auf die Datendatei zugreifen.
-Dies umfasst die Nutzerdaten (E-Mail-Adressen, Passwörter, etc.) wie auch gelöschte Seitenversionen und andere vertrauliche Daten, die im Wiki gespeichert sind.
-
-Es ist daher zu erwägen, die Datendatei an gänzlich anderer Stelle abzulegen, beispielsweise im Verzeichnis <code>./var/lib/mediawiki/yourwiki</code>.",
-       'config-oracle-def-ts' => 'Standardtabellenraum:',
-       'config-oracle-temp-ts' => 'Temporärer Tabellenraum:',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-support-info' => 'MediaWiki unterstützt die folgenden Datenbanksysteme:
-
-$1
-
-Sofern nicht das Datenbanksystem angezeigt wird, das verwendet werden soll, gibt es oben einen Link zur Anleitung mit Informationen, wie dieses aktiviert werden kann.',
-       'config-support-mysql' => '* $1 ist das von MediaWiki primär unterstützte Datenbanksystem ([http://www.php.net/manual/en/mysql.installation.php Anleitung zur Kompilierung von PHP mit MySQL-Unterstützung (en)])',
-       'config-support-postgres' => '* $1 ist ein beliebtes Open-Source-Datenbanksystem und eine Alternative zu MySQL ([http://www.php.net/manual/de/pgsql.installation.php Anleitung zur Kompilierung von PHP mit PostgreSQL-Unterstützung]). Es gibt allerdings einige kleinere Implementierungsfehler, so dass von der Nutzung in einer Produktivumgebung abgeraten wird.',
-       'config-support-sqlite' => '* $1 ist ein verschlanktes Datenbanksystem, das auch gut unterstützt wird ([http://www.php.net/manual/de/pdo.installation.php Anleitung zur Kompilierung von PHP mit SQLite-Unterstützung], verwendet PHP Data Objects (PDO))',
-       'config-support-oracle' => '* $1 ist eine kommerzielle Unternehmensdatenbank ([http://www.php.net/manual/en/oci8.installation.php Anleitung zur Kompilierung von PHP mit OCI8-Unterstützung (en)])',
-       'config-header-mysql' => 'MySQL-Einstellungen',
-       'config-header-postgres' => 'PostgreSQL-Einstellungen',
-       'config-header-sqlite' => 'SQLite-Einstellungen',
-       'config-header-oracle' => 'Oracle-Einstellungen',
-       'config-invalid-db-type' => 'Unzulässiges Datenbanksystem',
-       'config-missing-db-name' => 'Bei „Datenbankname“ muss ein Wert angegeben werden.',
-       '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“.
-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“.
-Es dürfen nur ASCII-codierte Buchstaben (a-z, A-Z), Zahlen (0-9), Unter- (_) sowie Bindestriche (-) verwendet werden.',
-       'config-connection-error' => '$1.
-
-Bitte unten angegebenen Servernamen, Benutzernamen sowie das Passwort überprüfen und es danach erneut versuchen.',
-       'config-invalid-schema' => 'Ungültiges Datenschema für MediaWiki „$1“.
-Es dürfen nur ASCII-codierte Buchstaben (a-z, A-Z), Zahlen (0-9) und Unterstriche (_) verwendet werden.',
-       'config-db-sys-create-oracle' => 'Das Installationsprogramm unterstützt nur die Verwendung eines Datenbankbenutzerkontos mit SYSDBA-Berechtigung zum Anlegen eines neuen Datenbankbenutzerkontos.',
-       'config-db-sys-user-exists-oracle' => 'Das Datenbankbenutzerkonto „$1“ ist bereits vorhanden. Ein Datenbankbenutzerkontos mit SYSDBA-Berechtigung kann nur zum Anlegen eines neuen Datenbankbenutzerkontos genutzt werden.',
-       'config-postgres-old' => 'PostgreSQL $1 oder höher wird benötigt. PostgreSQL $2 ist momentan vorhanden.',
-       'config-sqlite-name-help' => 'Bitten einen Namen angeben, mit dem das Wiki identifiziert werden kann.
-Dabei bitte keine Leerzeichen oder Bindestriche verwenden.
-Dieser Name wird für die SQLite-Datendateinamen genutzt.',
-       'config-sqlite-parent-unwritable-group' => 'Das Datenverzeichnis <code><nowiki>$1</nowiki></code> kann nicht erzeugt werden, da das übergeordnete Verzeichnis <code><nowiki>$2</nowiki></code> nicht für den Webserver beschreibbar ist.
-
-Das Installationsprogramm konnte den Benutzer bestimmen, mit dem Webserver ausgeführt wird.
-Schreibzugriff auf das <code><nowiki>$3</nowiki></code>-Verzeichnis muss für diesen ermöglicht werden, um den Installationsvorgang fortsetzen zu können.
-
-Auf einem Unix- oder Linux-System:
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Das Datenverzeichnis <code><nowiki>$1</nowiki></code> kann nicht erzeugt werden, da das übergeordnete Verzeichnis <code><nowiki>$2</nowiki></code> nicht für den Webserver beschreibbar ist.
-
-Das Installationsprogramm konnte den Benutzer bestimmen, mit dem Webserver ausgeführt wird.
-Schreibzugriff auf das <code><nowiki>$3</nowiki></code>-Verzeichnis muss global für diesen und andere Benutzer ermöglicht werden, um den Installationsvorgang fortsetzen zu können.
-
-Auf einem Unix- oder Linux-System:
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Fehler beim Erstellen des Datenverzeichnisses „$1“.
-
-Bitte den Speicherort überprüfen und es danach erneut versuchen.',
-       'config-sqlite-dir-unwritable' => 'Das Verzeichnis „$1“  ist nicht beschreibbar.
-Bitte die Zugriffsberechtigungen so ändern, dass dieses Verzeichnis für den Webserver beschreibbar ist und es danach erneut versuchen.',
-       'config-sqlite-connection-error' => '$1.
-
-Bitte unten angegebenes Datenverzeichnis sowie den Datenbanknamen überprüfen und es danach erneut versuchen.',
-       'config-sqlite-readonly' => 'Die Datei <code>$1</code> ist nicht beschreibbar.',
-       'config-sqlite-cant-create-db' => 'Die Datenbankdatei <code>$1</code> konnte nicht erzeugt werden.',
-       'config-sqlite-fts3-downgrade' => 'PHP verfügt nicht über FTS3-Unterstützung. Die Tabellen wurden zurückgestuft.',
-       'config-can-upgrade' => "Es wurden MediaWiki-Tabellen in dieser Datenbank gefunden.
-Um sie auf MediaWiki $1 zu aktualisieren, bitte auf '''Weiter''' klicken.",
-       'config-upgrade-done' => "Die Aktualisierung ist nun abgeschlossen.
-
-Das Wiki kann nun [$1 genutzt werden].
-
-Sofern die Datei <code>LocalSettings.php</code> neu erzeugt werden soll, bitte auf die Schaltfläche unten klicken.
-Dies wird '''nicht empfohlen''', es sei denn, es treten Probleme mit dem Wiki auf.",
-       'config-upgrade-done-no-regenerate' => 'Die Aktualisierung ist abgeschlossen.
-
-Das Wiki kann nun [$1 genutzt werden].',
-       'config-regenerate' => 'LocalSettings.php neu erstellen →',
-       'config-show-table-status' => 'Die Abfrage <code>SHOW TABLE STATUS</code> ist gescheitert!',
-       'config-unknown-collation' => "'''Warnung:''' Die Datenbank nutzt eine unbekannte Kollation.",
-       'config-db-web-account' => 'Datenbankkonto für den Webzugriff',
-       'config-db-web-help' => 'Bitte Benutzernamen und Passwort auswählen, die der Webserver während des Normalbetriebes dazu verwenden soll, eine Verbindung zum Datenbankserver herzustellen.',
-       'config-db-web-account-same' => 'Dasselbe Datenbankkonto wie während des Installationsvorgangs verwenden',
-       'config-db-web-create' => 'Sofern nicht bereits vorhanden, muss nun das Konto erstellt werden',
-       'config-db-web-no-create-privs' => 'Das angegebene und für den Installationsvorgang vorgesehene Datenbankkonto verfügt nicht über ausreichend Berechtigungen, um ein weiteres Datenbankkonto zu erstellen.
-Das hier angegebene Datenbankkonto muss daher bereits vorhanden sein.',
-       'config-mysql-engine' => 'Speicher-Engine:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''Warnung:''' Es wurde MyISAM als Speicher-Engine für MySQL ausgewählt, die aus folgenden Gründen nicht für den Einsatz mit MediaWiki empfohlen ist:
-* Sie unterstützt aufgrund von Tabellensperrungen kaum die nebenläufige Ausführung von Aktionen.
-* Sie ist anfälliger für Datenprobleme.
-* Sie wird von MediaWiki nicht immer adäquat unterstützt.
-
-Sofern die vorhandene MySQL-Installation die Speicher-Engine InnoDB unterstützt, wird deren Verwendung eindringlich empfohlen.
-Sofern sie sie nicht unterstützt, sollte eine entsprechende Aktualisierung nunmehr Erwägung gezogen werden.",
-       'config-mysql-only-myisam-dep' => "'''Warnung:''' MyISAM ist die einzige verfügbare Speicher-Engine für MySQL, die nicht für die Verwendung mit MediaWiki empfohlen wird, da sie
-* aufgrund von Tabellensperrungen kaum die nebenläufige Ausführung von Aktionen unterstützt,
-* anfälliger für Datenprobleme ist und
-* von MediaWiki nicht immer adäquat unterstützt wird.
-
-Deine MySQL-Installation unterstützt nicht InnoDB. Eventuell muss eine Aktualisierung durchgeführt werden.",
-       'config-mysql-engine-help' => "'''InnoDB''' ist fast immer die bessere Wahl, da es gleichzeitige Zugriffe gut unterstützt.
-
-'''MyISAM''' ist in Einzelnutzerumgebungen sowie bei schreibgeschützten Wikis schneller.
-Bei MyISAM-Datenbanken treten tendenziell häufiger Fehler auf als bei InnoDB-Datenbanken.",
-       'config-mysql-charset' => 'Datenbankzeichensatz:',
-       'config-mysql-binary' => 'binär',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "Im '''binären Modus''' speichert MediaWiki UTF-8 Texte in der Datenbank in binär kodierte Datenfelder.
-Dies ist effizienter als der UTF-8-Modus von MySQL und ermöglicht so die Verwendung jeglicher Unicode-Zeichen.
-
-Im '''UTF-8-Modus''' wird MySQL den Zeichensatz der Daten erkennen und sie richtig anzeigen und konvertieren,
-allerdings können keine Zeichen außerhalb des [//de.wikipedia.org/wiki/Basic_Multilingual_Plane#Gliederung_in_Ebenen_und_Bl.C3.B6cke ''Basic Multilingual Plane'' (BMP)] gespeichert werden.",
-       'config-site-name' => 'Name des Wikis:',
-       'config-site-name-help' => 'Er wird in der Titelleiste des Browsers, wie auch verschiedenen anderen Stellen, genutzt.',
-       'config-site-name-blank' => 'Den Namen des Wikis angeben.',
-       'config-project-namespace' => 'Name des Projektnamensraums:',
-       'config-ns-generic' => 'Projekt',
-       'config-ns-site-name' => 'Entspricht dem Namen des Wikis: $1',
-       'config-ns-other' => 'Anderer Name (bitte angeben)',
-       'config-ns-other-default' => 'MeinWiki',
-       'config-project-namespace-help' => "Dem Beispiel von Wikipedia folgend, unterscheiden viele Wikis zwischen den Seiten für Inhalte und denen für Richtlinien. Letztere werden im „'''Projektnamensraum'''“ hinterlegt.
-Alle Seiten dieses Namensraumes verfügen über einen Seitenpräfix, der nun an dieser Stelle angegeben werden kann.
-Traditionell steht dieser Seitenpräfix mit dem Namen des Wikis in einem engen Zusammenhang. Dabei können bestimmte Sonderzeichen wie „#“ oder „:“ nicht verwendet werden.",
-       'config-ns-invalid' => 'Der angegebene Namensraum „<nowiki>$1</nowiki>“ ist ungültig.
-Bitte einen abweichenden Projektnamensraum angeben.',
-       'config-ns-conflict' => 'Der angegebene Namensraum „<nowiki>$1</nowiki>“ verursacht Problem mit dem Standardnamensraum von MediaWiki.
-Bitte einen abweichenden Projektnamensraum angeben.',
-       'config-admin-box' => 'Administratorkonto',
-       'config-admin-name' => 'Name:',
-       'config-admin-password' => 'Passwort:',
-       'config-admin-password-confirm' => 'Passwort wiederholen:',
-       'config-admin-help' => 'Bitte den bevorzugten Benutzernamen angeben, beispielsweise „Knut Wuchtig“.
-Dies ist der Name, der benötigt wird, um sich im Wiki anzumelden.',
-       'config-admin-name-blank' => 'Bitte den Benutzernamen für den Administratoren angeben.',
-       'config-admin-name-invalid' => 'Der angegebene Benutzername „<nowiki>$1</nowiki>“ ist ungültig.
-Bitte einen abweichenden Benutzernamen angeben.',
-       'config-admin-password-blank' => 'Bitte das Passwort für das Administratorkonto angeben.',
-       'config-admin-password-same' => 'Das Passwort darf nicht mit dem Benutzernamen übereinstimmen.',
-       'config-admin-password-mismatch' => 'Die beiden Passwörter stimmen nicht überein.',
-       'config-admin-email' => 'E-Mail-Adresse:',
-       'config-admin-email-help' => 'Bitte hier eine E-Mail-Adresse angeben, die den E-Mail-Empfang von anderen Benutzern des Wikis, das Zurücksetzen des Passwortes sowie Benachrichtigungen zu Änderungen an beobachteten Seiten ermöglicht. Diese Feld kann leer gelassen werden.',
-       'config-admin-error-user' => 'Es ist beim Erstellen des Administrators mit dem Namen „<nowiki>$1</nowiki>“ ein interner Fehler aufgetreten.',
-       'config-admin-error-password' => 'Es ist beim Setzen des Passworts für den Administrator „<nowiki>$1</nowiki>“ ein interner Fehler aufgetreten: <pre>$2</pre>',
-       'config-admin-error-bademail' => 'Es wurde eine ungültige E-Mail-Adresse angegeben',
-       'config-subscribe' => 'Bitte die Mailingliste [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mitteilungen zu Versionsveröffentlichungen] abonnieren.',
-       'config-subscribe-help' => 'Es handelt sich hierbei um eine Mailingliste mit wenigen Aussendungen, die für Mitteilungen zu Versionsveröffentlichungen, einschließlich wichtiger Sicherheitsveröffentlichungen, genutzt wird.
-Diese Mailingliste sollte abonniert werden. Zudem sollte die MediaWiki-Installation stets aktualisiert werden, sobald eine neue Programmversion veröffentlicht wurde.',
-       'config-subscribe-noemail' => 'Beim Abonnieren der Mailingliste mit Mitteilungen zu Versionsveröffentlichungen wurde keine E-Mail-Adresse angegeben.
-Bitte eine E-Mail-Adresse angeben, sofern die Mailingliste abonniert werden soll.',
-       'config-almost-done' => 'Der Vorgang ist fast abgeschlossen!
-Die verbleibenden Konfigurationseinstellungen können übersprungen und das Wiki umgehend installiert werden.',
-       'config-optional-continue' => 'Ja, es sollen weitere Konfigurationseinstellungen vorgenommen werden.',
-       'config-optional-skip' => 'Nein, das Wiki soll nun installiert werden.',
-       'config-profile' => 'Profil der Benutzerberechtigungen:',
-       'config-profile-wiki' => 'offenes Wiki',
-       'config-profile-no-anon' => 'Erstellung eines Benutzerkontos erforderlich',
-       'config-profile-fishbowl' => 'ausschließlich berechtigte Bearbeiter',
-       'config-profile-private' => 'geschlossenes Wiki',
-       'config-profile-help' => "Wikis sind am nützlichsten, wenn so viele Menschen als möglich Bearbeitungen vornehmen können.
-Mit MediaWiki ist es einfach die letzten Änderungen nachzuvollziehen und unbrauchbare Bearbeitungen, beispielsweise von unbedarften oder böswilligen Benutzern, rückgängig zu machen.
-
-Allerdings finden etliche Menschen Wikis auch mit anderen Bearbeitungskonzepten sinnvoll. Manchmal ist es zudem nicht einfach alle Beteiligten von den Vorteilen des „Wiki-Prinzips” zu überzeugen. Darum ist diese Auswahl möglich.
-
-Das Modell „'''{{int:config-profile-wiki}}'''“ ermöglicht es jedermann, sogar ohne über ein Benutzerkonto zu verfügen, Bearbeitungen vorzunehmen.
-Ein Wiki bei dem die '''{{int:config-profile-no-anon}}''' ist, fordert von den Benutzern eine höhere Verantwortung für ihre Bearbeitungen ein, könnte allerdings Personen abschrecken, die nur gelegentlich Bearbeitungen vornehmen wollen. Ein Wiki für '''{{int:config-profile-fishbowl}}''' gestattet es nur bestimmten Benutzern, Bearbeitungen vorzunehmen. Allerdings kann dabei die Allgemeinheit die Seiten immer noch betrachten und Änderungen nachvollziehen. Ein '''{{int:config-profile-private}}''' gestattet es nur ausgewählten Benutzern, Seiten zu betrachten sowie zu bearbeiten.
-
-Komplexere Konzepte zur Zugriffssteuerung können erst nach abgeschlossenem Installationsvorgang eingerichtet werden. Hierzu gibt es weitere Informationen auf der Website mit der [//www.mediawiki.org/wiki/Manual:User_rights entsprechenden Anleitung].",
-       'config-license' => 'Lizenz:',
-       'config-license-none' => 'Keine Lizenzangabe in der Fußzeile',
-       'config-license-cc-by-sa' => 'Creative Commons „Namensnennung, Weitergabe unter gleichen Bedingungen“',
-       'config-license-cc-by' => 'Creative Commons „Namensnennung“',
-       'config-license-cc-by-nc-sa' => 'Creative Commons „Namensnennung, nicht kommerziell, Weitergabe unter gleichen Bedingungen“',
-       'config-license-cc-0' => 'Creative Commons „Zero“ (Gemeinfreiheit)',
-       'config-license-gfdl' => 'GNU-Lizenz für freie Dokumentation 1.3 oder höher',
-       'config-license-pd' => 'Gemeinfreiheit',
-       'config-license-cc-choose' => 'Eine benutzerdefinierte Creative-Commons-Lizenz auswählen',
-       'config-license-help' => 'Viele öffentliche Wikis publizieren alle Beiträge unter einer [http://freedomdefined.org/Definition/De freien Lizenz].
-Dies trägt dazu bei ein Gefühl von Gemeinschaft zu schaffen und ermutigt zu längerfristiger Mitarbeit.
-Dahingegen ist im Allgemeinen eine freie Lizenz auf geschlossenen Wikis nicht notwendig.
-
-Sofern man Texte aus der Wikipedia verwenden möchte und umgekehrt, sollte die Creative Commons-Lizenz „Namensnennung, Weitergabe unter gleichen Bedingungen“ gewählt werden.
-
-Die Wikipedia nutzte vormals die GNU-Lizenz für freie Dokumentation (GFDL).
-Die GFDL ist eine gültige Lizenz, die allerdings schwer zu verstehen ist.
-Es ist zudem schwierig gemäß dieser Lizenz lizenzierte Inhalten wiederzuverwenden.',
-       'config-email-settings' => 'E-Mail-Einstellungen',
-       'config-enable-email' => 'Ausgehende E-Mails ermöglichen',
-       'config-enable-email-help' => 'Sofern die E-Mail-Funktionen genutzt werden sollen, müssen die entsprechenden [http://www.php.net/manual/en/mail.configuration.php PHP-E-Mail-Einstellungen] richtig konfiguriert werden.
-Für den Fall, dass die E-Mail-Funktionen nicht benötigt werden, können sie hier deaktiviert werden.',
-       'config-email-user' => 'E-Mail-Versand von Benutzer zu Benutzer aktivieren',
-       'config-email-user-help' => 'Allen Benutzern ermöglichen, sich gegenseitig E-Mails zu schicken, sofern sie es in ihren Einstellungen aktiviert haben.',
-       'config-email-usertalk' => 'Benachrichtigungen zu Änderungen an Benutzerdiskussionsseiten ermöglichen',
-       'config-email-usertalk-help' => 'Ermöglicht es Benutzern, Benachrichtigungen zu Änderungen an ihren Benutzerdiskussionsseiten zu erhalten, sofern sie dies in ihren Einstellungen aktiviert haben.',
-       'config-email-watchlist' => 'Benachrichtigungen zu Änderungen an Seiten auf der Beobachtungsliste ermöglichen',
-       'config-email-watchlist-help' => 'Ermöglicht es Benutzern, Benachrichtigungen zu Änderungen an Seiten auf ihrer Beobachtungsliste zu erhalten, sofern sie dies in ihren Einstellungen aktiviert haben.',
-       'config-email-auth' => 'E-Mail-Authentifizierung ermöglichen',
-       'config-email-auth-help' => "Sofern diese Funktion aktiviert ist, müssen Benutzer ihre E-Mail-Adresse bestätigen, indem sie den Bestätigungslink nutzen, der ihnen immer dann zugesandt wird, wenn sie ihre E-Mail-Adresse angeben oder ändern.
-Nur bestätigte E-Mail-Adressen können Nachrichten von anderen Benutzer oder Benachrichtigungsmitteilungen erhalten.
-Die Aktivierung dieser Funktion wird bei offenen Wikis, mit Hinblick auf möglichen Missbrauch der E-Mail-Funktionen, '''empfohlen.'''",
-       'config-email-sender' => 'E-Mail-Adresse für Antworten:',
-       'config-email-sender-help' => 'Bitte hier die E-Mail-Adresse angeben, die als Absenderadresse bei ausgehenden E-Mails eingesetzt werden soll.
-Rücklaufende E-Mails werden an diese E-Mail-Adresse gesandt.
-Bei vielen E-Mail-Servern muss der Teil der E-Mail-Adresse mit der Domainangabe korrekt sein.',
-       'config-upload-settings' => 'Hochladen von Bildern und Dateien',
-       'config-upload-enable' => 'Das Hochladen von Dateien ermöglichen',
-       'config-upload-help' => 'Das Hochladen von Dateien macht den Server für potentielle Sicherheitsprobleme anfällig.
-Weitere Informationen hierzu können im [//www.mediawiki.org/wiki/Manual:Security Abschnitt Sicherheit] der Anleitung nachgelesen werden.
-
-Um das Hochladen von Dateien zu ermöglichen, muss der Zugriff auf das Unterverzeichnis <code>./images</code> so geändert werden, das dieses für den Webserver beschreibbar ist.
-Hernach kann diese Option aktiviert werden.',
-       'config-upload-deleted' => 'Verzeichnis für gelöschte Dateien:',
-       'config-upload-deleted-help' => 'Bitte ein Verzeichnis auswählen, in dem gelöschte Dateien archiviert werden sollen.
-Idealerweise sollte es nicht über das Internet zugänglich sein.',
-       'config-logo' => 'URL des Logos:',
-       'config-logo-help' => 'Die Standardoberfläche von MediaWiki verfügt links oberhalb der Seitenleiste über Platz für ein Logo mit den Maßen 135x160 Pixel.
-Bitte ein Logo in entsprechender Größe hochladen und die zugehörige URL an dieser Stelle angeben.
-
-Du kannst <code>$wgStylePath</code> oder <code>$wgScriptPath</code> verwenden, falls dein Logo relativ zu diesen Pfaden ist.
-
-Sofern kein Logo benötigt wird, kann dieses Datenfeld leer bleiben.',
-       'config-instantcommons' => '„InstantCommons“ aktivieren',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons InstantCommons] ist eine Funktion, die es Wikis ermöglicht, Bild-, Klang- und andere Mediendateien zu nutzen, die auf der Website [//commons.wikimedia.org/ Wikimedia Commons] verfügbar sind.
-Um diese Funktion nutzen zu können, muss das Wiki über eine Verbindung zum Internet verfügen.
-
-Weitere Informationen zu dieser Funktion, einschließlich der Anleitung, wie hierfür andere Wikis als Wikimedia Commons eingerichtet werden können, gibt es im [//mediawiki.org/wiki/Manual:$wgForeignFileRepos Handbuch].',
-       'config-cc-error' => 'Der Creativ-Commons-Lizenzassistent konnte keine Lizenz ermitteln.
-Die Lizenz ist daher jetzt manuell einzugeben.',
-       'config-cc-again' => 'Erneut auswählen …',
-       'config-cc-not-chosen' => 'Die gewünschte Creative-Commons-Lizenz auswählen und dann auf „weiter“ klicken.',
-       'config-advanced-settings' => 'Erweiterte Konfiguration',
-       'config-cache-options' => 'Einstellungen für die Zwischenspeicherung von Objekten:',
-       'config-cache-help' => 'Das Objektcaching wird dazu genutzt die Geschwindigkeit von MediaWiki zu verbessern, indem häufig genutzte Daten zwischengespeichert werden.
-Es wird sehr empfohlen es für mittelgroße bis große Wikis zu nutzen, aber auch für kleine Wikis ergeben sich erkennbare Geschwindigkeitsverbesserungen.',
-       'config-cache-none' => 'Kein Objektcaching (es wird keine Funktion entfernt, allerdings kann dies die Geschwindigkeit größerer Wikis negativ beeinflussen)',
-       'config-cache-accel' => 'Objektcaching von PHP (APC, XCache oder WinCache)',
-       'config-cache-memcached' => 'Memcached Cacheserver nutzen (erfordert einen zusätzlichen Installationsvorgang mitsamt Konfiguration)',
-       'config-memcached-servers' => 'Memcached Cacheserver',
-       'config-memcached-help' => 'Liste der für Memcached nutzbaren IP-Adressen.
-Es sollte eine je Zeile mitsamt des vorgesehenen Ports angegeben werden. Beispiele:
-127.0.0.1:11211 oder
-192.168.1.25:1234 usw.',
-       'config-memcache-needservers' => 'Memcached wurde als Cacheserver ausgewählt. Dabei wurde allerdings kein Server angegeben.',
-       'config-memcache-badip' => 'Es wurde für Memcached eine ungültige IP-Adresse angegeben: $1',
-       'config-memcache-noport' => 'Es wurde kein Port zur Nutzung durch den Memcached Cacheserver angegeben: $1
-Sofern der Port unbekannt ist, ist 11211 die Standardangabe.',
-       'config-memcache-badport' => 'Der Ports für den Memcached Cacheserver sollten zwischen $1 und $2 liegen',
-       'config-extensions' => 'Erweiterungen',
-       'config-extensions-help' => 'Die obig angegebenen Erweiterungen wurden im Verzeichnis <code>./extensions</code> gefunden.
-
-Es könnten zusätzliche Konfigurierungen zu einzelnen Erweiterungen erforderlich sein, dennoch können sie aber bereits jetzt aktiviert werden.',
-       'config-install-alreadydone' => "'''Warnung:''' Es wurde eine vorhandene MediaWiki-Installation gefunden.
-Es muss daher mit den nächsten Seite weitergemacht werden.",
-       'config-install-begin' => 'Durch Drücken von „{{int:config-continue}}“ wird die Installation von MediaWiki gestartet.
-Sofern Änderungen vorgenommen werden sollen, kann man auf „{{int:config-back}}“ klicken.',
-       'config-install-step-done' => 'erledigt',
-       'config-install-step-failed' => 'gescheitert',
-       'config-install-extensions' => 'Programmerweiterungen',
-       'config-install-database' => 'Datenbank wird eingerichtet',
-       'config-install-schema' => 'Datenschema wird erstellt',
-       'config-install-pg-schema-not-exist' => 'Das PostgesSQL-Datenschema ist nicht vorhanden',
-       'config-install-pg-schema-failed' => 'Das Erstellen der Datentabellen ist gescheitert.
-Es muss sichergestellt sein, dass der Benutzer „$1“ Schreibzugriff auf das Datenschema „$2“ hat.',
-       'config-install-pg-commit' => 'Änderungen anwenden',
-       'config-install-pg-plpgsql' => 'Suche nach der Datenbanksprache PL/pgSQL',
-       'config-pg-no-plpgsql' => 'Für Datenbank $1 muss die Datenbanksprache PL/pgSQL installiert werden',
-       'config-pg-no-create-privs' => 'Das für die Installation angegeben Konto verfügt nicht über ausreichende Berechtigungen, um ein Datenbanknutzerkonto zu erstellen.',
-       'config-pg-not-in-role' => 'Das für den Webbenutzer angegebene Benutzerkonto ist bereits vorhanden.
-Das für den Installationsvorgang angegebene Benutzerkonto ist kein Superbenutzer und nicht Mitglied der Benutzergruppe der Webbenutzer, so dass keine dem Webbenutzer zugeordneten Datenobjekte erstellt werden können.
-
-Für MediaWiki ist es momentan erforderlich, dass die Tabellen dem Webbenutzer rechtemäßig zugeordnet sind. Bitte einen anderen Namen für den Wikibenutzer angeben oder „← Zurück“ anklicken, um einen ausreichend berechtigten Benutzer für den Installationsvorgang anzugeben.',
-       'config-install-user' => 'Datenbankbenutzer wird erstellt',
-       'config-install-user-alreadyexists' => 'Datenbankbenutzer „$1“ ist bereits vorhanden',
-       'config-install-user-create-failed' => 'Das Anlegen des Datenbankbenutzers „$1“ ist gescheitert: $2',
-       'config-install-user-grant-failed' => 'Die Gewährung der Berechtigung für Datenbankbenutzer „$1“ ist gescheitert: $2',
-       'config-install-user-missing' => 'Der angegebene Benutzer „$1“ ist nicht vorhanden.',
-       'config-install-user-missing-create' => 'Der angegebene Benutzer „$1“ ist nicht vorhanden.
-Bitte das Auswahlkästchen „Benutzerkonto erstellen“ anklicken, sofern dieser erstellt werden soll.',
-       'config-install-tables' => 'Datentabellen werden erstellt',
-       'config-install-tables-exist' => "'''Warnung:''' Es wurden MediaWiki-Datentabellen gefunden.
-Die Erstellung wurde übersprungen.",
-       'config-install-tables-failed' => "'''Fehler:''' Die Erstellung der Datentabellen ist aufgrund des folgenden Fehlers gescheitert: $1",
-       'config-install-interwiki' => 'Interwikitabellen werden eingerichtet',
-       'config-install-interwiki-list' => 'Die Datei <code>interwiki.list</code> konnte nicht gelesen werden.',
-       'config-install-interwiki-exists' => "'''Warnung:'''  Es wurden Interwikitabellen mit Daten gefunden.
-Die Standardliste wird übersprungen.",
-       'config-install-stats' => 'Statistiken werden initialisiert',
-       'config-install-keys' => 'Geheimschlüssel werden erstellt',
-       'config-insecure-keys' => "'''Warnung:''' {{PLURAL:$2|Der Geheimschlüssel|Die Geheimschlüssel}} $1, {{PLURAL:$2|der|die}} während des Installationsvorgangs generiert {{PLURAL:$2|wurde, ist|wurden, sind}} nicht sehr sicher. {{PLURAL:$2|Er sollte|Sie sollten}} manuell geändert werden.",
-       'config-install-sysop' => 'Administratorkonto wird erstellt',
-       'config-install-subscribe-fail' => 'Abonnieren von „mediawiki-announce“ ist gescheitert: $1',
-       'config-install-subscribe-notpossible' => 'cURL ist nicht installiert und allow_url_fopen ist nicht verfügbar.',
-       'config-install-mainpage' => 'Erstellung der Hauptseite mit Standardinhalten',
-       'config-install-extension-tables' => 'Erstellung der Tabellen für die aktivierten Erweiterungen',
-       'config-install-mainpage-failed' => 'Die Hauptseite konnte nicht erstellt werden: $1',
-       'config-install-done' => "'''Herzlichen Glückwunsch!'''
-MediaWiki wurde erfolgreich installiert.
-
-Das Installationsprogramm hat die Datei <code>LocalSettings.php</code> erzeugt.
-Sie enthält alle vorgenommenen Konfigurationseinstellungen.
-
-Diese Datei muss nun heruntergeladen und anschließend in das Stammverzeichnis der MediaWiki-Installation hochgeladen werden. Dies ist dasselbe Verzeichnis, in dem sich auch die Datei <code>index.php</code> befindet. Das Herunterladen sollte inzwischen automatisch gestartet worden sein.
-
-Sofern dies nicht der Fall war, oder das Herunterladen unterbrochen wurde, kann der Vorgang durch einen Klick auf den folgenden Link erneut gestartet werden:
-
-$3
-
-'''Hinweis:''' Die Konfigurationsdatei sollte jetzt unbedingt heruntergeladen werden. Sie wird nach Beenden des Installationsprogramms, nicht mehr zur Verfügung stehen.
-
-Sobald alles erledigt wurde, kann auf das '''[$2 Wiki zugegriffen werden]'''. Wir wünschen viel Spaß und Erfolg mit dem Wiki.",
-       'config-download-localsettings' => '<code>LocalSettings.php</code> herunterladen',
-       'config-help' => 'Hilfe',
-       'config-nofile' => 'Die Datei „$1“ konnte nicht gefunden werden. Wurde sie gelöscht?',
-       'config-extension-link' => 'Wusstest du, dass dein Wiki [//www.mediawiki.org/wiki/Manual:Extensions Erweiterungen] unterstützt?
-
-Du kannst [//www.mediawiki.org/wiki/Category:Extensions_by_category Erweiterungen nach Kategorie] durchsuchen oder die [//www.mediawiki.org/wiki/Extension_Matrix Erweiterungstabelle] ansehen, um eine volle Erweiterungsliste zu erhalten.',
-       'mainpagetext' => "'''MediaWiki wurde erfolgreich installiert.'''",
-       'mainpagedocfooter' => 'Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch].
-
-== Starthilfen ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Lokalisiere MediaWiki für deine Sprache]',
-);
-
-/** German (formal address) (Deutsch (Sie-Form)‎)
- * @author MichaelFrey
- */
-$messages['de-formal'] = array(
-       'mainpagedocfooter' => 'Hilfe zur Benutzung und Konfiguration der Wiki-Software finden Sie im [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch].
-
-== Starthilfen ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]', # Fuzzy
-);
-
-/** Zazaki (Zazaki)
- * @author Erdemaslancan
- * @author Mirzali
- */
-$messages['diq'] = array(
-       'config-title' => 'MediaWiki $1 sazkerdış',
-       'config-information' => 'Melumat',
-       'config-your-language' => 'Zıwanê şıma:',
-       'config-wiki-language' => 'Wiki zıwan:',
-       'config-back' => '← Peyser',
-       'config-continue' => 'Dewam ke',
-       'config-page-language' => 'Zıwan',
-       'config-page-welcome' => 'Şıma xeyr ameyê MediaWiki!',
-       'config-page-dbconnect' => 'Database rê grêdey',
-       'config-page-name' => 'Name',
-       'config-page-options' => 'Weçinegi',
-       'config-page-install' => 'Barine',
-       'config-page-complete' => 'Temamyayo',
-       'config-page-readme' => 'Mı bıwane',
-       'config-page-copying' => 'Kopyayeno',
-       'config-page-upgradedoc' => 'Berzkerdış',
-       'config-restart' => 'E, fına dest pekê',
-       'config-sidebar' => "* [//www.mediawiki.org MediaWiki keye]
-* [//www.mediawiki.org/wiki/Help:Contents User's Şınasiye]
-* [//www.mediawiki.org/wiki/Manual:Contents Xizmetkara şınasiye]
-* [//www.mediawiki.org/wiki/Manual:FAQ Peşti]
-----
-* <doclink href=Readme>Mı buwanê</doclink>
-* <doclink href=ReleaseNotes>Notê elekeyıni</doclink>
-* <doclink href=Copying>Telifiye</doclink>
-* <doclink href=UpgradeDoc>Weşkerdış</doclink>",
-       'config-env-php' => 'PHP $1 i biyo saz.',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 dılet',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-db-port' => 'Portê database:',
-       'config-header-mysql' => 'Sazkardışê MySQL',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-binary' => 'Dılet',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'Namey wiki:',
-       'config-ns-generic' => 'Proce',
-       'config-ns-other' => 'Zewbi (keyfiyo)',
-       'config-ns-other-default' => 'MyWiki',
-       'config-admin-box' => 'Hesabê Administratori',
-       'config-admin-name' => 'Namey şıma:',
-       'config-admin-password' => 'Parola:',
-       'config-admin-password-confirm' => 'Fına parola:',
-       'config-admin-email' => 'Adresa e-postey:',
-       'config-profile-private' => 'Bexse wiki',
-       'config-license-cc-by-sa' => 'Creative Commons Attribution Share Alike',
-       'config-license-cc-by' => 'Creative Commons Attribution',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Attribution Non-Commercial Share Alike',
-       'config-license-pd' => 'Malê Şari',
-       'config-extensions' => 'Olekeni',
-       'config-help' => 'peşti',
-       'mainpagetext' => "'''MediaWiki vıst ra ser, vıraziya.'''",
-       'mainpagedocfooter' => 'Seba gurenayış u eyarkerdışê Wiki-Softwarey [//meta.wikimedia.org/wiki/Help:Contents İdarê karberi] de mıracaet ke.
-
-== Yardımê Sıftekerdışi ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista eyaranê vıraştışi]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki de ÇZP]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki ra lista serbest-dayışê postey]', # Fuzzy
-);
-
-/** Lower Sorbian (dolnoserbski)
- * @author Michawiki
- */
-$messages['dsb'] = array(
-       'mainpagetext' => "'''MediaWiki jo se wuspěšnje instalěrowało.'''",
-       'mainpagedocfooter' => "Pomoc pśi wužywanju softwary wiki namakajoš pód [//meta.wikimedia.org/wiki/Help:Contents User's Guide].
-
-Pomoc pśi wužywanju softwary wiki namakajoš pód [//meta.wikimedia.org/wiki/Help:Contents User's Guide].
-
-== Na zachopjenje ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Konfiguracija lisćiny połoženjow]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ (pšašanja a wótegrona)]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lisćina e-mailowych nakładow MediaWiki]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources MediaWiki za twóju rěc lokalizěrowaś]",
-);
-
-/** Central Dusun (Dusun Bundu-liwan)
- * @author FRANELYA
- */
-$messages['dtp'] = array(
-       'mainpagetext' => "'''Nopongo no do popodokot ot ModiaWiki.'''",
-       'mainpagedocfooter' => 'Rujuko hilo [//meta.wikimedia.org/wiki/Help:Contents Ponudukan Momomoguno] kokomoi koilaan do momoguno posusuang-suangon wiki.
-
-== Kopotimpuunan ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lis papatantu nuludan]
-* [//www.mediawiki.org/wiki/Manual:FAQ Ponguhatan Koinsoruan om Simbar ModiaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lis pininsuratan pinolabus do ModiaWiki]', # Fuzzy
-);
-
-/** Greek (Ελληνικά)
- * @author Glavkos
- * @author Protnet
- * @author ZaDiak
- */
-$messages['el'] = array(
-       'config-desc' => 'Το πρόγραμμα εγκατάστασης για το MediaWiki',
-       'config-title' => 'Εγκατάσταση MediaWiki $1',
-       'config-information' => 'Πληροφορίες',
-       'config-your-language' => 'Η γλώσσα σας:',
-       'config-wiki-language' => 'Γλώσσα του wiki:',
-       'config-back' => '← Πίσω',
-       'config-continue' => 'Συνέχεια →',
-       'config-page-language' => 'Γλώσσα',
-       'config-page-welcome' => 'Καλώς ήλθατε στο MediaWiki!',
-       'config-page-name' => 'Όνομα',
-       'config-page-options' => 'Επιλογές',
-       'config-page-install' => 'Εγκατάσταση',
-       'config-page-complete' => 'Ολοκληρώθηκε!',
-       'config-page-restart' => 'Επανεκκίνηση εγκατάστασης',
-       'config-page-copying' => 'Αντιγραφή',
-       'config-page-upgradedoc' => 'Αναβάθμιση',
-       'config-page-existingwiki' => 'Υπάρχον βίκι',
-       'config-restart' => 'Ναι, κάντε επανεκκίνηση',
-       'config-env-php' => 'H PHP $1 είναι εγκατεστημένη.',
-       'config-db-type' => 'Τύπος βάσης δεδομένων:',
-       'config-db-host' => 'Φιλοξενία βάσης δεδομένων:',
-       'config-db-wiki-settings' => 'Αναγνώριση αυτού του βίκι',
-       'config-db-name' => 'Όνομα βάσης δεδομένων:',
-       'config-db-install-account' => 'Λογαριασμός χρήστη για την εγκατάσταση',
-       'config-db-username' => 'Όνομα χρήστη βάσης δεδομένων:',
-       'config-db-password' => 'Κωδικός πρόσβασης βάσης δεδομένων:',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 δυαδικό',
-       'config-header-mysql' => 'Ρυθμίσεις MySQL',
-       'config-header-postgres' => 'Ρυθμίσεις PostgreSQL',
-       'config-header-sqlite' => 'Ρυθμίσεις SQLite',
-       'config-header-oracle' => 'Ρυθμίσεις Oracle',
-       'config-invalid-db-type' => 'Μη έγκυρος τύπος βάσης δεδομένων',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'Όνομα του βίκι:',
-       'config-site-name-blank' => 'Εισαγάγετε όνομα ιστοχώρου.',
-       'config-project-namespace' => 'Ονοματοχώρος εγχειρήματος:',
-       'config-ns-generic' => 'Εγχείρημα',
-       'config-ns-site-name' => 'Ίδιο με το όνομα του wiki: $1',
-       'config-ns-other' => 'Άλλο (προσδιορίστε)',
-       'config-admin-box' => 'Λογαριασμός διαχειριστή',
-       'config-admin-name' => 'Το όνομά σας:',
-       'config-admin-password' => 'Κωδικός πρόσβασης:',
-       'config-admin-password-confirm' => 'Επανάληψη κωδικού πρόσβασης:',
-       'config-admin-email' => 'Διεύθυνση ηλεκτρονικού ταχυδρομείου:',
-       'config-optional-continue' => 'Να ερωτηθώ περισσότερες ερωτήσεις.',
-       'config-profile-wiki' => 'Παραδοσιακό wiki', # Fuzzy
-       'config-profile-no-anon' => 'Απαιτείται η δημιουργία λογαριασμού',
-       'config-profile-private' => 'Ιδιωτικό wiki',
-       'config-email-settings' => 'Ρυθμίσεις ηλεκτρονικού ταχυδρομείου',
-       'config-upload-settings' => 'Ανέβασμα εικόνων και άλλων αρχείων',
-       'config-upload-enable' => 'Ενεργοποιήστε το ανέβασμα αρχείων',
-       'config-logo' => 'Διεύθυνση URL λογότυπου:',
-       'config-cc-again' => 'Επιλέξτε ξανά...',
-       'config-extensions' => 'Επεκτάσεις',
-       'config-install-step-done' => 'έγινε',
-       'config-install-step-failed' => 'απέτυχε',
-       'config-help' => 'βοήθεια',
-       'mainpagetext' => "'''To λογισμικό MediaWiki εγκαταστάθηκε με επιτυχία.'''",
-       'mainpagedocfooter' => 'Περισσότερες πληροφορίες σχετικά με τη χρήση και με τη ρύθμιση παραμέτρων θα βρείτε στους συνδέσμους: [//meta.wikimedia.org/wiki/MediaWiki_localisation Οδηγίες για τροποποίηση του περιβάλλοντος εργασίας] και [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Εγχειρίδιο χρήστη].', # Fuzzy
-);
-
-/** British English (British English)
- * @author Shirayuki
- */
-$messages['en-gb'] = array(
-       'config-unicode-using-utf8' => "Using Brion Vibber's utf8_normalize.so for Unicode normalisation.",
-       'config-unicode-using-intl' => 'Using the [http://pecl.php.net/intl intl PECL extension] for Unicode normalisation.',
-       'config-unicode-pure-php-warning' => "'''Warning:''' The [http://pecl.php.net/intl intl PECL extension] is not available to handle Unicode normalisation, falling back to slow pure-PHP implementation.
-If you run a high-traffic site, you should read a little on [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode normalisation].",
-       'config-unicode-update-warning' => "'''Warning:''' The installed version of the Unicode normalisation wrapper uses an older version of [http://site.icu-project.org/ the ICU project's] library.
-You should [//www.mediawiki.org/wiki/Unicode_normalization_considerations upgrade] if you are at all concerned about using Unicode.",
-       'config-unknown-collation' => "'''Warning:''' Database is using unrecognised collation.",
-       'config-profile-fishbowl' => 'Authorised editors only',
-       'config-install-stats' => 'Initialising statistics',
-);
-
-/** Esperanto (Esperanto)
- * @author Airon90
- * @author Yekrats
- */
-$messages['eo'] = array(
-       'config-your-language' => 'Via lingvo:',
-       'config-your-language-help' => 'Elekti lingvon uzi dum la instalada procezo.',
-       'config-wiki-language' => 'Lingvo de la vikio:',
-       'config-wiki-language-help' => 'Elekti la ĉefe skribotan lingvon de la vikio.',
-       'config-page-welcome' => 'Bonvenon al MediaWiki!',
-       'config-page-dbsettings' => 'Agordoj de la datumbazo',
-       'config-page-name' => 'Nomo',
-       'config-page-options' => 'Agordoj',
-       'config-page-install' => 'Instali',
-       'config-page-complete' => 'Farita!',
-       'mainpagetext' => "'''MediaWiki estis sukcese instalita.'''",
-       'mainpagedocfooter' => "Konsultu la [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] por informo pri uzado de vikia programaro.
-
-==Kiel komenci==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Listo de konfiguraĵoj] (angla)
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki Oftaj Demandoj] (angla)
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki dissendolisto pri anoncoj] (angla)", # Fuzzy
-);
-
-/** Spanish (español)
- * @author Armando-Martin
- * @author Ciencia Al Poder
- * @author Crazymadlover
- * @author Danke7
- * @author Fitoschido
- * @author Locos epraix
- * @author Od1n
- * @author Platonides
- * @author Sanbec
- * @author Translationista
- * @author Vivaelcelta
- * @author 아라
- */
-$messages['es'] = array(
-       'config-desc' => 'El instalador para MediaWiki',
-       'config-title' => 'MediaWiki $1 instalación',
-       'config-information' => 'Información',
-       'config-localsettings-upgrade' => 'Se ha encontrado un archivo <code>LocalSettings.php</code>.
-Para actualizar esta instalación, por favor ingresa el valor de <code>$wgUpgradeKey</code> en el cuadro de abajo.
-Lo encontrarás en <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'Se ha detectado un archivo <code>LocalSettings.php</code>.
-Para actualizar la instalación, vuelva a ejecutar <code>update.php</code>',
-       'config-localsettings-key' => 'Clave de actualización:',
-       'config-localsettings-badkey' => 'La clave proporcionada es incorrecta.',
-       'config-upgrade-key-missing' => 'Se ha detectado una instalación existente de MediaWiki.
-Para actualizar la instalación, por favor, ponga la siguiente línea al final de su archivo <code>LocalSettings.php</code>:
-
-$1',
-       'config-localsettings-incomplete' => 'El archivo <code>LocalSettings.php</code> existente parece estar incompleto.
-La variable $1 no está definida.
-Cambie el archivo <code>LocalSettings.php</code> para que esta variable quede establecida y haga clic en "{{int:Config-continue}}".',
-       'config-localsettings-connection-error' => 'Se detectó un error al conectarse a la base de datos utilizando la configuración especificada en los archivos <code>LocalSettings.php</code> o <code>AdminSettings.php</code>. Corrija estas opciones y vuelva a intentarlo.
-
-$1',
-       'config-session-error' => 'Error comenzando sesión: $1',
-       'config-session-expired' => 'Tus datos de sesión parecen haber expirado.
-Las sesiones están configuradas por una duración de $1.
-Puedes incrementar esto configurando <code>session.gc_maxlifetime</code> en php.ini.
-Reiniciar el proceso de instalación.',
-       'config-no-session' => 'Se han perdido los datos de sesión.
-Verifica tu php.ini y comprueba que <code>session.save_path</code> está establecido en un directorio apropiado.',
-       'config-your-language' => 'Tu idioma:',
-       'config-your-language-help' => 'Seleccionar un idioma a usar durante el proceso de instalación.',
-       'config-wiki-language' => 'Idioma del wiki:',
-       'config-wiki-language-help' => 'Seleccionar el idioma en el que el wiki será escrito predominantemente.',
-       'config-back' => '← Atrás',
-       'config-continue' => 'Continuar →',
-       'config-page-language' => 'Idioma',
-       'config-page-welcome' => 'Bienvenido a MediaWiki!',
-       'config-page-dbconnect' => 'Conectar a la base de datos',
-       'config-page-upgrade' => 'Actualizar instalación existente',
-       'config-page-dbsettings' => 'Configuración de la base de datos',
-       'config-page-name' => 'Nombre',
-       'config-page-options' => 'Opciones',
-       'config-page-install' => 'Instalar',
-       'config-page-complete' => 'Completo!',
-       'config-page-restart' => 'Reiniciar instalación',
-       'config-page-readme' => 'Léeme',
-       'config-page-releasenotes' => 'Notas de la versión',
-       'config-page-copying' => 'Copiando',
-       'config-page-upgradedoc' => 'Actualizando',
-       'config-page-existingwiki' => 'Wiki existente',
-       'config-help-restart' => '¿Deseas borrar todos los datos que has ingresado hasta ahora y reiniciar el proceso de instalación desde el principio?',
-       'config-restart' => 'Sí, reiniciarlo',
-       'config-welcome' => '=== Comprobación del entorno ===
-Se realiza comprobaciones básicas para ver si el entorno es adecuado para la instalación de MediaWiki.
-Deberás suministrar los resultados de tales comprobaciones si necesitas ayuda durante la instalación.', # Fuzzy
-       'config-copyright' => "=== Derechos de autor y Términos de uso ===
-
-$1
-
-Este programa es software libre; puedes redistribuirlo y/o modificarlo en los términos de la Licencia Pública General de GNU, tal como aparece publicada por la Fundación para el Software Libre, tanto la versión 2 de la Licencia, como cualquier versión posterior (según prefiera).
-
-Este programa es distribuido en la esperanza de que sea útil, pero '''sin cualquier garantía'''; inclusive, sin la garantía implícita de la '''posibilidad de ser comercializado''' o de '''idoneidad para cualquier finalidad específica'''.
-Consulte la licencia *GNU General *Public *License para más detalles.
-
-En conjunto con este programa debe haber recibido <doclink href=Copying>una copia de la Licencia Pública General de GNU</doclink>; si no la recibió, pídala por escrito a Fundación para el Software Libre, Inc., 51 Franklin Street, Fifth Floor, Boston, ME La 02110-1301, USA o [http://www.gnu.org/copyleft/gpl.html léala en internet].",
-       'config-sidebar' => '* [//www.mediawiki.org Página principal de MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents Guía del usuario]
-* [//www.mediawiki.org/wiki/Manual:Contents Guía del administrador]
-* [//www.mediawiki.org/wiki/Manual:FAQ Preguntas frecuentes]
-----
-* <doclink href=Readme>Léeme</doclink>
-* <doclink href=ReleaseNotes>Notas de la versión</doclink>
-* <doclink href=Copying>Copia</doclink>
-* <doclink href=UpgradeDoc>Actualización</doclink>',
-       'config-env-good' => 'El entorno ha sido comprobado.
-Puedes instalar MediaWiki.',
-       'config-env-bad' => 'El entorno ha sido comprobado.
-No puedes instalar MediaWiki.',
-       'config-env-php' => 'PHP $1 está instalado.',
-       'config-env-php-toolow' => 'PHP $1 está instalado.
-Sin embargo, MediaWiki requiere PHP $2 o superior.',
-       'config-unicode-using-utf8' => 'Usando utf8_normalize.so de Brion Vibber para la normalización Unicode.',
-       'config-unicode-using-intl' => 'Usando la [http://pecl.php.net/intl extensión intl PECL] para la normalización Unicode.',
-       'config-unicode-pure-php-warning' => "'''Advertencia''': La [http://pecl.php.net/intl extensión intl] no está disponible para efectuar la normalización Unicode. Utilizando la implementación más lenta en PHP.
-Si tu web tiene mucho tráfico, te recomendamos leer acerca de la [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalización Unicode].",
-       'config-unicode-update-warning' => "'''Warning''': La versión instalada del contenedor de normalización Unicode usa una versión anterior de la biblioteca del [http://site.icu-project.org/ proyecto ICU].
-Deberás [//www.mediawiki.org/wiki/Unicode_normalization_considerations actualizar] si realmente deseas usar Unicode.",
-       'config-no-db' => 'No fue posible encontrar un controlador adecuado para la base de datos! Necesitas instalar un controlador de base de datos para PHP.
-Las siguientes bases de datos son soportadas: $1.
-Si estás en alojamiento compartido, pregunta a tu proveedor el instalar un controlador de base de datos adecuado.
-Si estás compilando PHP por ti mismo, reconfigúralo con un cliente de base de datos disponible, por ejemplo usando <code>./configure --with-mysql</code>.
-Si instalaste PHP de un paquete Debian o Ubuntu, entonces también necesitas instalar el módulo php5-mysql.',
-       'config-outdated-sqlite' => "''' Advertencia ''': tiene la versión SQLite $1, que es inferior a la mínima versión requerida: $2 . SQLite no estará disponible.",
-       'config-no-fts3' => "'''Advertencia''': SQLite está compilado sin el [//sqlite.org/fts3.html módulo FTS3]. Las funcionalidades de búsqueda no estarán disponibles en esta instalación.",
-       'config-register-globals' => "'''Advertencia: La opción de <code>[http://php.net/register_globals register_globals]</code> de PHP está habilitada.'''
-'''Desactívela si puede.'''
-MediaWiki funcionará, pero tu servidor quedará expuesto a vulnerabilidades de seguridad potenciales.",
-       'config-magic-quotes-runtime' => "'''Fatal: ¡[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] está activada!'''
-Esta opción causa la imprevisible corrupción de la entrada de datos.
-No puedes instalar o utilizar MediaWiki a menos que esta opción esté inhabilitada.",
-       'config-magic-quotes-sybase' => "'''Fatal: ¡[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] está activada!'''
-Esta opción causa la imprevisible corrupción de la entrada de datos.
-No puedes instalar o utilizar MediaWiki a menos que esta opción esté inhabilitada.",
-       'config-mbstring' => "'''Fatal: La opción [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] está activada!'''
-Esta opción causa errores y puede corromper los datos de una forma imprevisible.
-No se puede instalar o usar MediaWiki a menos que esta opción sea desactivada.",
-       'config-ze1' => "'''Fatal: ¡La opción [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] está activada!'''
-Esta opción causa problemas significativos en MediaWiki.
-No se puede instalar o usar MediaWiki a menos que esta opción sea desactivada.",
-       'config-safe-mode' => "'''Advertencia:''' El [http://www.php.net/features.safe-mode modo seguro] de PHP está activado.
-Este modo puede causar problemas, especialmente en la carga de archivosy en compatibilidad con <code>math</code>.",
-       'config-xml-bad' => 'Falta el módulo XML de PHP.
-MediaWiki necesita funciones en este módulo y no funcionará con esta configuración.
-Si está ejecutando Mandrake, instale el paquete php-xml.',
-       'config-pcre' => 'Parece faltar el módulo de compatibilidad PCRE.
-MediaWiki necesita que las funciones de expresiones regulares compatibles con Perl estén funcionando.',
-       'config-pcre-no-utf8' => "'''Error fatal ''': Parece que el módulo PCRE de PHP fue compilado sin el soporte PCRE_UTF8.
-MediaWiki requiere compatibilidad con UTF-8 para funcionar correctamente.",
-       'config-memory-raised' => 'el parámetro <code>memory_limit</code> de PHP es $1, aumentada a $2.',
-       'config-memory-bad' => "'''Advertencia:''' El parámetro <code>memory_limit</code> de PHP es $1.
-Probablemente este valor es demasiado bajo.
-¡La instalación podrá fallar!",
-       'config-ctype' => "'''Fatal''': PHP debe ser compilado con soporte para la [http://www.php.net/manual/en/ctype.installation.php extensión Ctype].",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] está instalado',
-       'config-apc' => '[http://www.php.net/apc APC] está instalado',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] está instalado',
-       'config-no-cache' => "'''Advertencia:''' No pudo encontrarse [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] o [http://www.iis.net/download/WinCacheForPhp WinCache].
-El caché de objetos no está habilitado.",
-       'config-mod-security' => "''' Advertencia ''': Su servidor web tiene [http://modsecurity.org/ mod_security] habilitado. Si la configuración es incorrecta, puede causar problemas a MediaWiki u otro software que permita a los usuarios publicar contenido arbitrarios.
-Consulte la [http://modsecurity.org/documentation/ documentación de mod_security] o contacte con el soporte de su servidor (''host'') si encuentra errores aleatorios.",
-       'config-diff3-bad' => 'GNU diff3 no se encuentra.',
-       'config-git-bad' => 'No se encontró el software de control de versiones Git.',
-       'config-imagemagick' => 'ImageMagick encontrado: <code>$1</code>.
-La miniaturización de imágenes se habilitará si habilitas las cargas.',
-       'config-gd' => 'Se ha encontrado una biblioteca de gráficos GD integrada.
-La miniaturización de imágenes se habilitará si habilitas las subidas.',
-       'config-no-scaling' => 'No se ha encontrado ninguma biblioteca GD o ImageMagik.
-Se inhabilitará la miniaturización de imágenes.',
-       'config-no-uri' => "'''Error:''' No se pudo determinar el URI actual.
-Instalación abortada.",
-       'config-no-cli-uri' => "''' Advertencia ''': No se ha especificado ningún --scriptpath, por defecto, se usará: <code>$1</code> .",
-       'config-using-server' => 'Utilizando el nombre de servidor "<nowiki>$1</nowiki>".',
-       'config-using-uri' => 'Utilizando la dirección URL del servidor "<nowiki>$1$2</nowiki>".',
-       'config-uploads-not-safe' => "'''Atención:''' Su directorio por defecto para las cargas, <code>$1</code>, es vulnerable a la ejecución de scripts arbitrarios.
-Aunque MediaWiki comprueba todos los archivos cargados por si hubiese amenazas de seguridad, es altamente recomendable [//www.mediawiki.org/wiki/Manual:Security#Upload_security cerrar esta vulnerabilidad de seguridad] antes de activar las cargas.",
-       'config-no-cli-uploads-check' => "'''Atención:''' Su directorio predeterminado para cargas (<code>$1</code>) no está comprobado para la vulnerabilidad
- de ejecución arbitraria de comandos script durante la instalación de CLI.",
-       'config-brokenlibxml' => 'El sistema tiene una combinación de versiones de PHP y de libxml2 que puede ser problemática y puede causar daños en datos ocultos de MediaWiki y otras aplicaciones web
-Actualizar a PHP 5.2.9 o posterior y a libxml2 2.7.3 o posterior ([//bugs.php.net/bug.php?id=45996 bug presentado con PHP]).
-Instalación anulada.',
-       'config-using531' => 'MediaWiki no puede utilizarse con PHP $1 debido a un error con los parámetros de referencia para <code>__call()</code> .
-Actualice el sistema a PHP 5.3.2 o superior, o vuelva a la versión PHP 5.3.0 para resolver este problema.
-Instalación anulada.',
-       'config-suhosin-max-value-length' => 'Suhosin está instalado y limita el parámetro <code>length</code> GET a $1 bytes.
-El componente ResourceLoader (gestor de recursos) de MediaWiki trabajará en este límite, pero eso perjudicará el rendimiento.
-Si es posible, deberías establecer <code>suhosin.get.max_value_length</code> en el valor 1024 o superior en <code>php.ini</code> y establecer <code>$wgResourceLoaderMaxQueryLength</code> en el mismo valor en <code>php.ini</code>.',
-       'config-db-type' => 'Tipo de base de datos',
-       'config-db-host' => 'Servidor de la base de datos:',
-       'config-db-host-help' => 'Si su servidor de base de datos está en otro servidor, escriba el nombre del host o su dirección IP aquí.
-Si está utilizando alojamiento web compartido, su proveedor de alojamiento debería darle el nombre correcto del servidor de alojamiento (host) en su documentación.
-Si va a instalarlo en un servidor Windows y utiliza MySQL, el uso de "localhost" como nombre del servidor puede no funcionar. Si no es así, intente poner "127.0.0.1" como dirección IP local.
-Si utiliza PostgreSQL, deje este campo en blanco para conectarse a través de un socket de Unix.',
-       'config-db-host-oracle' => 'TNS de la base de datos:',
-       'config-db-host-oracle-help' => 'Introduzca un [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm nombre de conexión local] válido; un archivo tnsnames.ora debe ser visible para esta instalación.<br />Si está utilizando bibliotecas de cliente 10g o más recientes también puede utilizar el método de asignación de nombres [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].',
-       'config-db-wiki-settings' => 'Identifique este wiki',
-       'config-db-name' => 'Nombre de base de datos:',
-       'config-db-name-help' => 'Elija un nombre que identifique su wiki.
-No debe contener espacios.
-
-Si está utilizando alojamiento web compartido, su proveedor de alojamiento le dará un nombre específico de base de datos para que lo utilice, o bien le permitirá crear bases de datos a través de un panel de control.',
-       'config-db-name-oracle' => 'Esquema de base de datos:',
-       'config-db-account-oracle-warn' => 'Hay tres escenarios compatibles para la instalación de Oracle como base de datos back-end:
-
-Si desea crear una cuenta de base de datos como parte del proceso de instalación, por favor suministre una cuenta con función SYSDBA como cuenta de base de datos para la instalación y especifique las credenciales deseadas de la cuenta de acceso al web, de lo contrario puede crear manualmente la cuenta de acceso al web y suministrar sólo esa cuenta (si tiene los permisos necesarios para crear los objetos de esquema) o suministrar dos cuentas diferentes, una con privilegios de creación y otra con acceso restringido a la web
-
-La secuencia de comandos (script) para crear una cuenta con los privilegios necesarios puede encontrarse en el directorio "maintenance/oracle/" de esta instalación. Tenga en cuenta que utilizando una cuenta restringida desactivará todas las capacidades de mantenimiento con la cuenta predeterminada.',
-       'config-db-install-account' => 'Cuenta de usuario para instalación',
-       'config-db-username' => 'Nombre de usuario de base de datos:',
-       'config-db-password' => 'contraseña de base de datos:',
-       'config-db-password-empty' => 'Introduzca una contraseña para el nuevo usuario de base de datos:  $1.
-Aunque es posible crear usuarios sin contraseña, esto no es seguro.',
-       'config-db-install-username' => 'Introduzca el nombre de usuario que se utilizará para conectarse a la base de datos durante el proceso de instalación.
-Este no es el nombre de usuario de la cuenta de MediaWiki; Este es el nombre de usuario para la base de datos.',
-       'config-db-install-password' => 'Introduzca la contraseña que se utilizará para conectarse a la base de datos durante el proceso de instalación.
-Esta no es la contraseña para la cuenta de MediaWiki; esta es la contraseña para la base de datos.',
-       'config-db-install-help' => 'Ingresar el nombre de usuario y la contraseña que será usada para conectar a la base de datos durante el proceso de instalación.',
-       'config-db-account-lock' => 'Usar el mismo nombre de usuario y contraseña durante operación normal',
-       'config-db-wiki-account' => 'Usar cuenta para operación normal',
-       'config-db-wiki-help' => 'Introduce el nombre de usuario y la contraseña que serán usados para acceder a la base de datos durante la operación normal del wiki.
-Si esta cuenta no existe y la cuenta de instalación tiene suficientes privilegios, se creará esta cuenta de usuario con los privilegios mínimos necesarios para la operación normal del wiki.',
-       'config-db-prefix' => 'Prefijo para las tablas de la base de datos:',
-       'config-db-prefix-help' => 'Si necesita compartir una base de datos entre múltiples wikis, o entre MediaWiki y otra aplicación web, puede optar por agregar un prefijo a todos los nombres de tabla para evitar conflictos.
-No utilice espacios.
-
-Normalmente se deja este campo vacío.',
-       'config-db-charset' => 'Conjunto de caracteres de la base de datos',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binario',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 retrocompatible UTF-8',
-       'config-charset-help' => "'''Atención:''' Si emplea '''backwards-compatible UTF-8''' en MySQL 4.1+ y posteriormente hace copia de seguridad de la base de datos con <code>mysqldump</code> , puede destruir todos los caracteres no-ASCII, ¡dañando irreversiblemente sus copias de seguridad!
-
-En '''modo binario''', MediaWiki almacena texto UTF-8 en la base de datos en campos binarios.
-Esto es más eficiente que el modo UTF-8 de MySQL, y le permite utilizar la gama completa de caracteres Unicode.
-En ''' modo UTF-8'' ', MySQL sabrá el juego de caracteres de sus datos y puede presentarlos y convertirlos apropiadamente,
-pero no le permitirá almacenar caracteres por encima del [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plano multilingüe básico].",
-       'config-mysql-old' => 'Se necesita MySQL $1 o una versión más reciente. Tienes la versión $2.',
-       'config-db-port' => 'Puerto de la base de datos:',
-       'config-db-schema' => 'Esquema para MediaWiki',
-       'config-db-schema-help' => 'Estos esquemas usualmente estarán bien.
-Altéralos sólo si tienes la seguridad de que necesitas hacerlo.',
-       'config-pg-test-error' => "No se puede conectar a la base de datos '''$1''': $2",
-       'config-sqlite-dir' => 'Directorio de datos SQLite:',
-       'config-sqlite-dir-help' => "SQLite almacena todos los datos en un único archivo.
-
-El directorio que proporcione debe ser escribible por el servidor Web durante la instalación.
-
-'''No''' debería ser accesible a través de Internet, por eso no vamos a ponerlo en el sitio donde están los archivos PHP.
-
-El instalador escribirá un archivo <code>.htaccess</code> junto con él, pero si falla alguien podría tener acceso a la base de datos en bloque.
-Eso incluye los datos de usuario en bloque (direcciones de correo electrónico, las contraseñas con hash) así como revisiones eliminadas y otros datos restringidos del wiki.
-
-Considere la posibilidad de poner la base de datos en algún otro sitio, por ejemplo en <code>/var/lib/mediawiki/yourwiki</code> .",
-       'config-oracle-def-ts' => 'Espacio de tablas por defecto:',
-       'config-oracle-temp-ts' => 'Espacio de tablas temporal:',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-support-info' => 'MediaWiki es compatible con los siguientes sistemas de bases de datos:
-
-$1
-
-Si no encuentras en el listado el sistema de base de datos que estás intentando utilizar, sigue las instrucciones vinculadas arriba para habilitar la compatibilidad.',
-       'config-support-mysql' => '* $1 es la base de datos mayoritaria para MediaWiki y la que goza de mayor compatibilidad ([http://www.php.net/manual/es/mysql.installation.php cómo compilar PHP con compatibilidad MySQL])',
-       'config-support-postgres' => '$1 es un popular sistema de base de datos de código abierto, alternativa a MySQL. ([http://www.php.net/manual/es/pgsql.installation.php cómo compilar PHP con compatibilidad PostgreSQL]). Puede haber algunos defectos menores destacables, y no es recomendable para uso en un entorno de producción.',
-       'config-support-sqlite' => '* $1 es una base de datos ligera con gran compatibilidad con MediaWiki ([http://www.php.net/manual/es/pdo.installation.php cómo compilar PHP con compatibilidad SQLite usando PDO]).',
-       'config-support-oracle' => '* $1 es una base de datos comercial a nivel empresarial ([http://www.php.net/manual/es/oci8.installation.php cómo compilar PHP con compatibilidad con OCI8])',
-       'config-header-mysql' => 'Configuración de MySQL',
-       'config-header-postgres' => 'Configuración de PostgreSQL',
-       'config-header-sqlite' => 'Configuración de SQLite',
-       'config-header-oracle' => 'Configuración de Oracle',
-       'config-invalid-db-type' => 'Tipo de base de datos inválida',
-       'config-missing-db-name' => 'Debes introducir un valor para "Nombre de la base de datos"',
-       'config-missing-db-host' => 'Debe introducir un valor para "Servidor (host) de base de datos"',
-       'config-missing-db-server-oracle' => 'Debe introducir un valor para "TNS de la base de datos"',
-       'config-invalid-db-server-oracle' => 'El TNS de la base de datos, "$1", es inválido.Use sólo carateres ASCII: letras (a-z, A-Z), números (0-9), guiones bajos (_) y guiones (-).Usa sólo caracteres ASCII: letras (a-z, A-Z), dígitos (0-9), guiones bajos (_) y puntos (.).', # Fuzzy
-       'config-invalid-db-name' => 'El nombre de la base de datos "$1"  es inválido.
-Usa sólo caracteres ASCII: letras (a-z, A-Z), números (0-9), guiones bajos (_)y guiones (-).',
-       'config-invalid-db-prefix' => 'El prefijo de la base de datos "$1"  es inválido.
-Use sólo carateres ASCII: letras (a-z, A-Z), números (0-9), guiones bajos (_) y guiones (-).',
-       'config-connection-error' => '$1.
-
-Verifique el servidor, el nombre de usuario y la contraseña, e intente de nuevo.',
-       'config-invalid-schema' => 'El esquema de la base de datos "$1"  es inválido.
-Use sólo carateres ASCII: letras (a-z, A-Z), guarismos (0-9) y guiones bajos (_).',
-       'config-db-sys-create-oracle' => 'El instalador sólo admite el empleo de cuentas SYSDBA como método para crear una cuenta nueva.',
-       'config-db-sys-user-exists-oracle' => 'La cuenta de usuario "$1" ya existe. ¡SYSDBA sólo puede utilizarse para crear una nueva cuenta!',
-       'config-postgres-old' => 'Se necesita PostgreSQL $1 o una versión más reciente; tienes la versión $2.',
-       'config-sqlite-name-help' => 'Elige el nombre que identificará tu wiki.
-No uses espacios o guiones.
-Este nombre será usado como nombre del archivo de datos de SQLite.',
-       'config-sqlite-parent-unwritable-group' => 'No se puede crear el directorio de datos <code><nowiki>$1</nowiki></code> , porque el directorio padre <code><nowiki>$2</nowiki></code> no es accesible en escritura por el servidor Web.
-
-El instalador ha determinado el usuario cuyo servidor Web se está ejecutando.
-Conceda permisos de escritura en el directorio <code><nowiki>$3</nowiki></code> para continuar.
-En un sistema Unix/Linux haga:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'No se puede crear el directorio de datos <code><nowiki>$1</nowiki></code> , porque el directorio padre <code><nowiki>$2</nowiki></code> no es accesible en escritura por el servidor Web.
-
-El programa de instalación no pudo determinar el usuario que se ejecuta en el servidor Web
-Conceda permisos de escritura en el directorio <code><nowiki>$3</nowiki></code> para continuar.
-En un sistema Unix/Linux haga:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Error al crear el directorio de datos "$1".
-Comprueba la ubicación e inténtalo de nuevo.',
-       'config-sqlite-dir-unwritable' => 'No se puede escribir en el directorio "$1".
-Modifica los permisos para que el servidor web pueda escribir en él y vuelve a intentarlo.',
-       'config-sqlite-connection-error' => '$1.
-
-Verifique el directório de datos y el nombre de la base de datos mostrada a continuación e inténtalo nuevamente.',
-       'config-sqlite-readonly' => 'El archivo <code>$1</code> no se puede escribir.',
-       'config-sqlite-cant-create-db' => 'No fue posible crear el archivo de la base de datos <code>$1</code>.',
-       'config-sqlite-fts3-downgrade' => 'El PHP no tiene compatibilidad FTS3. actualizando tablas a una versión anterior',
-       'config-can-upgrade' => "Esta base de datos contiene tablas de MediaWiki.
-Para actualizarlas a MediaWiki $1, haz clic en '''Continuar'''.",
-       'config-upgrade-done' => "Actualización completa.
-
-Usted puede ahora [ $1  empezar a usar su wiki].
-
-Si desea regenerar su archivo <code>LocalSettings.php</code> de archivo, haga clic en el botón de abajo.
-Esto '''no se recomienda''' a menos que esté teniendo problemas con su wiki.",
-       'config-upgrade-done-no-regenerate' => 'Actualización completa.
-
-Usted puede ahora [$1  empezar a usar su wiki].',
-       'config-regenerate' => 'Regenerar LocalSettings.php →',
-       'config-show-table-status' => '<code>SHOW TABLE STATUS</code> ha fallado!',
-       'config-unknown-collation' => "'''Advertencia:''' La base de datos está utilizando una intercalación no reconocida.",
-       'config-db-web-account' => 'Cuenta de base de datos para acceso Web',
-       'config-db-web-help' => 'Elige el usuario y contraseña que el servidor Web usará para conectarse al servidor de la base de datos durante el fincionamiento normal del wiki.',
-       'config-db-web-account-same' => 'Utilizar la misma cuenta que en la instalación',
-       'config-db-web-create' => 'Crear la cuenta si no existe',
-       'config-db-web-no-create-privs' => 'La cuenta que has especificado para la instalación no tiene privilegios suficientes para crear una cuenta.
-La cuenta que especifiques aquí debe existir.',
-       'config-mysql-engine' => 'Motor de almacenamiento:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''Atención''': Ha seleccionado MyISAM como motor de almacenamiento de MySQL, el cual no está recomendado para su uso con MediaWiki, porque:
- * apenas soporta accesos simultáneos debido al bloqueo de tablas
- * es más propenso a la corrupción que otros motores
- * el código MediaWiki no siempre controla MyISAM como debiera
-
-Si su instalación de MySQL soporta InnoDB, es muy recomendable que lo elija en su lugar.
-Si la instalación de MySQL no admite InnoDB, quizás es el momento de una actualización.",
-       'config-mysql-engine-help' => "'''InnoDB''' es casi siempre la mejor opción, dado que soporta bien los accesos simultáneos.
-
-'''MyISAM''' es más rápido en instalaciones de usuario único o de sólo lectura.
-Las bases de datos MyISAM tienden a corromperse más a menudo que las bases de datos InnoDB.",
-       'config-mysql-charset' => 'Conjunto de caracteres de la base de datos:',
-       'config-mysql-binary' => 'Binario',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "En '''modo binario''', MediaWiki almacena texto UTF-8 para la base de datos en campos binarios.
-Esto es más eficiente que el modo UTF-8 de MySQL y le permite utilizar la gama completa de caracteres Unicode.
-
-En '''modo UTF-8''', MySQL sabrá qué conjunto de caracteres emplean sus datos y puede presentarlos y convertirlos adecuadamente, pero no le permitirá almacenar caracteres por encima del [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plano multilingüe básico].",
-       'config-site-name' => 'Nombre del wiki:',
-       'config-site-name-help' => 'Esto aparecerá en la barra de título del navegador y en varios otros lugares.',
-       'config-site-name-blank' => 'Ingresar un nombre de sitio.',
-       'config-project-namespace' => 'Espacio de nombre de proyecto:',
-       'config-ns-generic' => 'Proyecto',
-       'config-ns-site-name' => 'Igual como el nombre del wiki: $1',
-       'config-ns-other' => 'Otro (especificar)',
-       'config-ns-other-default' => 'MiWiki',
-       'config-project-namespace-help' => 'Siguiendo el ejemplo de  Wikipedia, muchos wikis mantienen sus páginas de políticas separadas de sus páginas de contenido, en un "\'\'\'espacio de nombres del proyecto\'\'\'".
-
-Todos los títulos de página en este espacio de nombres comienzan con un determinado prefijo, que usted puede especificar aquí.
-Tradicionalmente, este prefijo se deriva del nombre del wiki, pero no puede contener caracteres de puntuación como "#" o ":".',
-       'config-ns-invalid' => 'El espacio de nombre especificado "<nowiki>$1</nowiki>" no es válido.
-Especifica un espacio de nombre de proyecto diferente.',
-       'config-ns-conflict' => 'El espacio de nombres especificado "<nowiki>$1</nowiki>" entra en conflicto con un espacio de nombres predeterminado de MediaWiki.
-Especifique un espacio de nombres de proyecto diferente.',
-       'config-admin-box' => 'Cuenta de administrador',
-       'config-admin-name' => 'Su nombre:',
-       'config-admin-password' => 'Contraseña:',
-       'config-admin-password-confirm' => 'Repita la contraseña:',
-       'config-admin-help' => 'Escribe aquí el nombre de usuario que desees, como por ejemplo "Pedro Bloggs".
-Este es el nombre que usarás para entrar al wiki.',
-       'config-admin-name-blank' => 'Introduce un nombre de usuario de administrador.',
-       'config-admin-name-invalid' => 'El nombre de usuario especificado "<nowiki>$1</nowiki>" no es válido.
-Especifique un nombre de usuario diferente.',
-       'config-admin-password-blank' => 'Introduzca una contraseña para la cuenta de administrador.',
-       'config-admin-password-same' => 'La contraseña no debe ser la misma que el nombre de usuario.',
-       'config-admin-password-mismatch' => 'Las dos contraseñas que ingresaste no coinciden.',
-       'config-admin-email' => 'Dirección de correo electrónico:',
-       'config-admin-email-help' => 'Introduce aquí un correo electrónico que te permita recibir mensajes de otros usuarios del wiki, vuelve a configurar tu contraseña y recibe notificaciones de cambios realizados a tus páginas vigiladas. Puedes dejar este campo vacío.',
-       'config-admin-error-user' => 'Error interno al crear un administrador con el nombre "<nowiki>$1</nowiki>".',
-       'config-admin-error-password' => 'Error interno al establecer una contraseña para el administrador " <nowiki>$1</nowiki> ": <pre>$2</pre>',
-       'config-admin-error-bademail' => 'Ha introducido una dirección de correo electrónico inválida.',
-       'config-subscribe' => 'Suscribirse para recibir [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce avisos de nuevas versiones].',
-       'config-subscribe-help' => 'Esta es una lista de divulgación de bajo volumen para anuncios de lanzamiento de versiones nuevas, incluyendo anuncios de seguridad importantes.
-Te recomendamos suscribirte y actualizar tu instalación MediaWiki cada vez que se lance una nueva versión.',
-       'config-subscribe-noemail' => 'Ha intentado suscribirse a la lista de correo de anuncios de nuevos lanzamientos sin proporcionar una dirección de correo electrónico.
-Proporcione una dirección de correo electrónico si desea suscribirse a la lista de correo.',
-       'config-almost-done' => '¡Ya casi has terminado!
-Ahora puedes saltarte el resto de pasos e instalar el wiki con valores predeterminados.',
-       'config-optional-continue' => 'Hazme más preguntas.',
-       'config-optional-skip' => 'Ya estoy aburrido, sólo instala el wiki.',
-       'config-profile' => 'Perfil de derechos de usuario:',
-       'config-profile-wiki' => 'Wiki abierto',
-       'config-profile-no-anon' => 'Creación de cuenta requerida',
-       'config-profile-fishbowl' => 'Sólo editores autorizados',
-       'config-profile-private' => 'Wiki privado',
-       'config-profile-help' => "Los wikis funcionan mejor cuando dejas que los edite tanta gente como sea posible.
-En MediaWiki, es fácil revisar los cambios recientes y revertir los daños realizados por usuarios malintencionados o novatos.
-Sin embargo, muchos han encontrado que MediaWiki es útil para una amplia variedad de funciones, y a veces no es fácil convencer a todos de los beneficios de la forma wiki.
-Por lo tanto tienes la elección.
-
-Un '''{{int:config-profile-wiki}}''' permite que cualquiera pueda editar, sin siquiera iniciar sesión.
-Un wiki con '''{{int:config-profile-no-anon}}''' ofrece rendición de cuentas adicional, pero puede disuadir a colaboradores.
-
-El escenario '''{{int:config-profile-fishbowl}}''' permite editar a los usuarios autorizados, pero el público puede ver las páginas, incluyendo el historial.
-Un '''{{int:config-profile-private}}''' sólo permite ver páginas a los usuarios autorizados, el mismo grupo al que le está permitido editar.
-
-Configuraciones más complejas de derechos de usuario están disponibles después de la instalación, consulte [//www.mediawiki.org/wiki/Manual:User_rights esta entrada en el manual].", # Fuzzy
-       'config-license' => 'Copyright and licencia:',
-       'config-license-none' => 'Pie sin licencia',
-       'config-license-cc-by-sa' => 'Creative Commons Reconocimiento Compartir Igual',
-       'config-license-cc-by' => 'Creative Commons Reconocimiento',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Reconocimiento Compartir Igual no comercial',
-       'config-license-cc-0' => 'Creative Commons Zero (dominio público)',
-       'config-license-gfdl' => 'Licencia de documentación libre de GNU 1.3 o posterior',
-       'config-license-pd' => 'Dominio Público',
-       'config-license-cc-choose' => 'Selecciona una licencia personalizada de Creative Commons',
-       'config-license-help' => "Muchos wikis públicos ponen todas las contribuciones bajo una [http://freedomdefined.org/Definition licencia libre].
-Esto ayuda a crear un sentido de propiedad comunitaria y alienta la contribución a largo plazo.
-Esto no es generalmente necesario para un wiki privado o corporativo.
-
-Si desea poder utilizar texto de Wikipedia, y desea que Wikipedia pueda aceptar el texto copiado de tu wiki, debe elegir '''Creative Commons Reconocimiento Compartir Igual'''.
-
-Wikipedia utilizaba anteriormente la licencia de documentación libre de GNU (GFDL).
-La GFDL es una licencia válida, pero es difícil de entender.
-También es difícil reutilizar el contenido licenciado bajo la GFDL.",
-       'config-email-settings' => 'Configuración de correo electrónico',
-       'config-enable-email' => 'Activar el envío de correos electrónicos',
-       'config-enable-email-help' => 'Si quieres que el correo electrónico funcione, la [http://www.php.net/manual/en/mail.configuration.php configuración PHP de correo electrónico] debe ser la correcta.
-Si no quieres la funcionalidad de correo electrónico, puedes desactivarla aquí.',
-       'config-email-user' => 'Habilitar correo electrónico de usuario a usuario',
-       'config-email-user-help' => 'Permitir que todos los usuarios intercambien correos electrónicos si lo han activado en sus preferencias.',
-       'config-email-usertalk' => 'Activar notificaciones de páginas de discusión de usuarios',
-       'config-email-usertalk-help' => 'Permitir a los usuarios recibir notificaciones de cambios en la página de discusión de usuario, si lo han activado en sus preferencias.',
-       'config-email-watchlist' => 'Activar notificación de alteraciones a la páginas vigiladas',
-       'config-email-watchlist-help' => 'Permitir a los usuarios recibir notificaciones de cambios en la páginas que vigilan, si lo han activado en sus preferencias.',
-       'config-email-auth' => 'Activar autenticación del correo electrónico',
-       'config-email-auth-help' => "Si esta opción está habilitada, los usuarios tienen que confirmar su dirección de correo electrónico mediante un enlace que se les envía a ellos cuando éstos lo establecen o lo cambian.
-Solo las direcciones de correo electrónico autenticadas pueden recibir correos electrónicos de otros usuarios o correos electrónicos de notificación de cambios.
-Esta opción está '''recomendada''' para wikis públicos debido a posibles abusos de las características del correo electrónico.",
-       'config-email-sender' => 'Dirección de correo electrónico de retorno:',
-       'config-email-sender-help' => 'Introduce la dirección de correo electrónico que será usada como dirección de retorno en los mensajes electrónicos de salida.
-Aquí llegarán los correos electrónicos que no lleguen a su destino.
-Muchos servidores de correo electrónico exigen que por lo menos la parte del nombre del dominio sea válida.',
-       'config-upload-settings' => 'Cargas de imágenes y archivos',
-       'config-upload-enable' => 'Habilitar la subida de archivos',
-       'config-upload-help' => 'La carga de archivos expone potencialmente su servidor a riesgos de seguridad.
-Para obtener más información, lea la [//www.mediawiki.org/wiki/Manual:Security sección de seguridad] en el manual.
-
-Para habilitar la carga de archivos, cambie el modo en el subdirectorio <code>images</code> bajo el directorio raíz de MediaWiki para que el servidor web pueda escribir en él.
-A continuación, habilite esta opción.',
-       'config-upload-deleted' => '*Directorio para los archivos eliminados:',
-       'config-upload-deleted-help' => 'Elige un directorio en el que guardar los archivos eliminados.
-Lo ideal es una carpeta no accesible desde la red.',
-       'config-logo' => 'URL del logo :',
-       'config-logo-help' => 'La apariencia por defecto de MediaWiki incluye espacio para un logotipo de 135x160 píxeles encima del menú de la barra lateral.
-Cargue una imagen de tamaño adecuado e introduzca la dirección URL aquí.
-
-Si no desea un logotipo, deje esta casilla en blanco.', # Fuzzy
-       'config-instantcommons' => 'Habilitar Instant Commons',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons Instant Commons] es una característica que permite que los wikis puedan utilizar imágenes, sonidos y otros archivos multimedia que se encuentran en el sitio [//commons.wikimedia.org/ Wikimedia Commons].
-Para ello, MediaWiki requiere acceso a Internet.
-
-Para obtener más información sobre esta función, incluidas las instrucciones sobre cómo configurarlo para otras wikis distintas de Wikimedia Commons, consulte [//mediawiki.org/wiki/Manual:$wgForeignFileRepos el manual].',
-       'config-cc-error' => 'El selector de licencia de Creative Commons no dio resultado.
-Escribe el nombre de la licencia manualmente.',
-       'config-cc-again' => 'Elegir otra vez...',
-       'config-cc-not-chosen' => 'Elige la licencia Creative Commons que desees y haz clic en "continuar".',
-       'config-advanced-settings' => 'Configuración avanzada',
-       'config-cache-options' => 'Configuración de la caché de objetos:',
-       'config-cache-help' => 'El almacenamiento en caché de objetos se utiliza para mejorar la velocidad de MediaWiki mediante el almacenamiento en caché los datos usados más frecuentemente.
-A los sitios medianos y grandes se les recomienda que permitirlo. También es beneficioso para los sitios pequeños.',
-       'config-cache-none' => 'Sin almacenamiento en caché (no se pierde ninguna funcionalidad, pero la velocidad puede resentirse en sitios grandes)',
-       'config-cache-accel' => 'Almacenamiento en caché de objetos PHP (APC, XCache o WinCache)',
-       'config-cache-memcached' => 'Utilizar Memcached (necesita ser instalado y configurado aparte)',
-       'config-memcached-servers' => 'Servidores Memcached:',
-       'config-memcached-help' => 'Lista de direcciones IP que serán usadas por Memcached.
-Deben especificarse una por cada línea y especificar el puerto a utilizar. Por ejemplo:
-127.0.0.1:11211
-192.168.1.25:1234',
-       'config-memcache-needservers' => 'Ha seleccionado Memcached como su tipo de caché pero no especificó ninguno de los servidores.',
-       'config-memcache-badip' => 'Ha introducido una dirección IP no válida para Memcached:  $1 .',
-       'config-memcache-noport' => 'No ha especificado un puerto a usar en el servidor Memcached:  $1 .
-Si no conoce el puerto, el valor predeterminado es 11211.',
-       'config-memcache-badport' => 'Los números de puerto de Memcached deben estar entre  $1  y  $2.',
-       'config-extensions' => 'Extensiones',
-       'config-extensions-help' => 'Se ha detectado en tu directorio <code>./extensions</code>  las extensiones listadas arriba.
-
-Puede que necesiten configuraciones adicionales, pero puedes habilitarlas ahora.',
-       'config-install-alreadydone' => "'''Aviso:''' Parece que ya habías instalado MediaWiki y estás intentando instalarlo nuevamente.
-Pasa a la próxima página, por favor.",
-       'config-install-begin' => 'Pulsando "{{int:config-continue}}", se iniciará la instalación de MediaWiki.
-Si todavía desea realizar algún cambio, pulse atrás.', # Fuzzy
-       'config-install-step-done' => 'hecho',
-       'config-install-step-failed' => 'falló',
-       'config-install-extensions' => 'Extensiones inclusive',
-       'config-install-database' => 'Configurando la base de datos',
-       'config-install-schema' => 'Creando el esquema',
-       'config-install-pg-schema-not-exist' => 'El esquema PostgreSQL no existe.',
-       'config-install-pg-schema-failed' => 'La creación de las tablas ha fallado.
-Asegúrate de que el usuario "$1" puede escribir en el esquema "$2".',
-       'config-install-pg-commit' => 'Validando los cambios',
-       'config-install-pg-plpgsql' => 'Comprobación de lenguaje PL/pgSQL',
-       'config-pg-no-plpgsql' => 'Necesita instalar el lenguaje PL/pgSQL en la base de datos $1',
-       'config-pg-no-create-privs' => 'La cuenta especificada para la instalación no tiene suficientes privilegios para crear una cuenta.',
-       'config-pg-not-in-role' => 'La cuenta especificada para el usuario web ya existe.
-La cuenta especificada para la instalación no es de un superusuario y no es miembro del grupo de usuarios con acceso a la web, por lo que es incapaz de crear objetos pertenecientes al usuario web.
-
-MediaWiki requiere actualmente que las tablas sean propiedad del usuario web. Especifique otro nombre de cuenta web, o haga clic en "atrás" y especifique un usuario de instalación con los privilegios convenientes.',
-       'config-install-user' => 'Creando el usuario de la base de datos',
-       'config-install-user-alreadyexists' => 'El usuario "$1" ya existe',
-       'config-install-user-create-failed' => 'La creación del usuario "$1" falló:  $2',
-       'config-install-user-grant-failed' => 'La concesión de permisos para el usuario "$1" ha fallado: $2',
-       'config-install-user-missing' => 'El usuario especificado "$1" no existe.',
-       'config-install-user-missing-create' => 'El usuario especificado "$1" no existe.
-Por favor, haga clic en la casilla "Crear cuenta" que aparece a continuación si desea crearlo.',
-       'config-install-tables' => 'Creando tablas',
-       'config-install-tables-exist' => "'''Advertencia''': Al parecer, las tablas de MediaWiki ya existen. Saltándose su creación.",
-       'config-install-tables-failed' => "'''Error''': La creación de las tablas falló con el siguiente error: $1",
-       'config-install-interwiki' => 'Llenando la tabla interwiki predeterminada',
-       'config-install-interwiki-list' => 'No se pudo encontrar el archivo <code>interwiki.list</code>.',
-       'config-install-interwiki-exists' => "'''Advertencia''': La tabla de interwikis parece ya contener entradas.
-Se omitirá la lista predeterminada.",
-       'config-install-stats' => 'Iniciando las estadísticas',
-       'config-install-keys' => 'Generación de claves secretas',
-       'config-insecure-keys' => "''' Atención:'' '  {{PLURAL:$2|Una clave de seguridad generada|Las claves de seguridad generadas}} ($1) durante la instalación no  {{PLURAL:$2|es totalmente segura|son totalmente seguras}}. Considere {{PLURAL:$2| cambiarla|cambiarlas}} manualmente.",
-       'config-install-sysop' => 'Creando cuenta de usuario del administrador',
-       'config-install-subscribe-fail' => 'No se ha podido suscribir a mediawiki-announce: $1',
-       'config-install-subscribe-notpossible' => 'cURL no está instalado y allow_url_fopen no está disponible.',
-       'config-install-mainpage' => 'Creando página principal con contenido predeterminado',
-       'config-install-extension-tables' => 'Creando las tablas para las extensiones habilitadas',
-       'config-install-mainpage-failed' => 'No se pudo insertar la página principal: $1',
-       'config-install-done' => "''' Felicidades!'''
-Ha instalado MediaWiki correctamente.
-
-El instalador ha generado un  archivo<code>LocalSettings.php</code>.
-Contiene toda su configuración.
-
-Deberá descargarlo y ponerlo en la base de la instalación de wiki (el mismo directorio que index.php). Debería haber comenzado automáticamente la descarga.
-
-Si no comenzó la descarga, o si se ha cancelado, puede reiniciar la descarga haciendo clic en el enlace siguiente:
-$3
-
-'''Nota''': Si no haces esto ahora, este archivo de configuración generado no estará disponible para usted más tarde si sale de la instalación sin descargarlo.
-
-Cuando lo haya hecho, usted puede '''[$2  entrar en su wiki]'''.",
-       'config-download-localsettings' => 'Descargar archivo <code>LocalSettings.php</code>',
-       'config-help' => 'Ayuda',
-       'config-nofile' => 'El archivo "$1" no se pudo encontrar. ¿Se ha eliminado?',
-       'mainpagetext' => "'''MediaWiki ha sido instalado con éxito.'''",
-       'mainpagedocfooter' => 'Consulta la [//meta.wikimedia.org/wiki/Ayuda:Guía del usuario de contenidos] para obtener información sobre el uso del software wiki.
-
-== Empezando ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de ajustes de configuración]
-* [//www.mediawiki.org/wiki/Manual:FAQ/es FAQ de MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correo de anuncios de distribución de MediaWiki]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Regionalizar MediaWiki para tu idioma]',
-);
-
-/** español (formal) (español (formal))
- * @author Dferg
- */
-$messages['es-formal'] = array(
-       'mainpagedocfooter' => 'Consulte usted la [//meta.wikimedia.org/wiki/Ayuda:Contenido Guía de usuario] para obtener información sobre el uso del software wiki.
-
-== Empezando ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de ajustes de configuración]
-* [//www.mediawiki.org/wiki/Manual:FAQ/es FAQ de MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correo de anuncios de distribución de MediaWiki]', # Fuzzy
-);
-
-/** Estonian (eesti)
- * @author Avjoska
- * @author Pikne
- */
-$messages['et'] = array(
-       'config-information' => 'Teave',
-       'config-session-error' => 'Tõrge seansi alustamisel: $1',
-       'config-your-language' => 'Oma keel:',
-       'config-wiki-language' => 'Viki keel:',
-       'config-back' => '← Tagasi',
-       'config-continue' => 'Jätka →',
-       'config-page-language' => 'Keel',
-       'config-page-welcome' => 'Tere tulemast MediaWikisse!',
-       'config-page-dbconnect' => 'Andmebaasiga ühendamine',
-       'config-page-upgrade' => 'Olemasoleva installi uuendus',
-       'config-page-dbsettings' => 'Andmebaasi sätted',
-       'config-page-name' => 'Nimi',
-       'config-page-options' => 'Seaded',
-       'config-page-install' => 'Paigaldamine',
-       'config-page-complete' => 'Valmis!',
-       'config-page-restart' => 'Alusta installimist uuesti',
-       'config-page-readme' => 'Loe mind',
-       'config-page-copying' => 'Kopeerimine',
-       'config-page-upgradedoc' => 'Uuendamine',
-       'config-page-existingwiki' => 'Olemasolev viki',
-       'config-restart' => 'Jah, tee taaskäivitus',
-       'config-db-name' => 'Andmebaasi nimi:',
-       'config-db-username' => 'Andmebaasi kasutajanimi:',
-       'config-db-password' => 'Andmebaasi parool:',
-       'config-db-port' => 'Andmebaasi port:',
-       'config-invalid-db-type' => 'Vigane andmebaasi tüüp',
-       'config-site-name' => 'Viki nimi:',
-       'config-site-name-blank' => 'Sisestage lehekülje nimi.',
-       'config-project-namespace' => 'Projekti nimeruum:',
-       'config-ns-generic' => 'Projekt',
-       'config-admin-box' => 'Administraatorikonto',
-       'config-admin-name' => 'Sinu nimi:',
-       'config-admin-password' => 'Parool:',
-       'config-admin-password-confirm' => 'Parool uuesti:',
-       'config-admin-name-blank' => 'Sisesta administraatori kasutajanimi.',
-       'config-admin-password-blank' => 'Sisesta administraatorikonto parool.',
-       'config-admin-password-same' => 'Parool ei tohi kattuda kasutajanimega.',
-       'config-admin-password-mismatch' => 'Sisestatud kaks parooli ei lange kokku.',
-       'config-admin-email' => 'E-posti aadress:',
-       'config-admin-error-bademail' => 'Sisestasid vigase e-posti aadressi.',
-       'config-optional-continue' => 'Küsi minult veel küsimusi.',
-       'config-profile-private' => 'Eraviki',
-       'config-license' => 'Autoriõigus ja litsents:',
-       'config-license-none' => 'Litsentsijaluseta',
-       'config-license-cc-by-sa' => 'Creative Commonsi litsents "Autorile viitamine + jagamine samadel tingimustel"',
-       'config-license-cc-by' => 'Creative Commonsi litsents "Autorile viitamine"',
-       'config-license-cc-by-nc-sa' => 'Creative Commonsi litsents "Autorile viitamine + mitteäriline eesmärk + jagamine samadel tingimustel"',
-       'config-email-settings' => 'E-posti sätted',
-       'config-email-sender' => 'Saatja e-aadress:',
-       'config-logo' => 'Logo internetiaadress:',
-       'config-cc-again' => 'Vali uuesti...',
-       'config-extensions' => 'Lisad',
-       'config-install-step-done' => 'valmis',
-       'config-install-step-failed' => 'ebaõnnestus',
-       'config-install-user-alreadyexists' => 'Kasutaja "$1" on juba olemas',
-       'config-install-tables' => 'Tabelite loomine',
-       'config-help' => 'abi',
-       'mainpagetext' => "'''MediaWiki tarkvara on edukalt paigaldatud.'''",
-       'mainpagedocfooter' => 'Vikitarkvara kasutamise kohta leiad lisateavet [//meta.wikimedia.org/wiki/Help:Contents juhendist].
-
-== Alustamine ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Häälestussätete loend]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki KKK]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki versiooniuuenduste postiloend]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources MediaWiki lokaliseerimine]',
-);
-
-/** Basque (euskara)
- * @author An13sa
- * @author පසිඳු කාවින්ද
- */
-$messages['eu'] = array(
-       'config-desc' => 'MediaWiki instalatzailea',
-       'config-title' => 'MediaWiki $1 instalazioa',
-       'config-information' => 'Informazioa',
-       'config-session-error' => 'Saio hasierako errorea: $1',
-       'config-your-language' => 'Zure hizkuntza:',
-       'config-your-language-help' => 'Aukeratu instalazio prozesuan erabiliko den hizkuntza',
-       'config-wiki-language' => 'Wiki hizkuntza:',
-       'config-back' => '← Atzera',
-       'config-continue' => 'Jarraitu →',
-       'config-page-language' => 'Hizkuntza',
-       'config-page-welcome' => 'Ongi etorri MediaWikira!',
-       'config-page-dbconnect' => 'Datu-basera konektatu',
-       'config-page-dbsettings' => 'Datu-basearen ezarpenak',
-       'config-page-name' => 'Izena',
-       'config-page-options' => 'Aukerak',
-       'config-page-install' => 'Instalatu',
-       'config-page-complete' => 'Bukatua!',
-       'config-page-restart' => 'Instalazioa berriz hasi',
-       'config-page-readme' => 'Irakur nazazu',
-       'config-page-copying' => 'Kopiatzea',
-       'config-page-upgradedoc' => 'Eguneratu',
-       'config-restart' => 'Bai, berriz hasi',
-       'config-sidebar' => '* [//www.mediawiki.org MediaWiki nagusia]
-* [//www.mediawiki.org/wiki/Help:Contents Erabiltzaileentzako Gida]
-* [//www.mediawiki.org/wiki/Manual:Contents Administratzaileentzako Gida]
-* [//www.mediawiki.org/wiki/Manual:FAQ MEG]
-----
-* <doclink href=Readme>Irakur nazazu</doclink>
-* <doclink href=ReleaseNotes>Oharren argitalpena</doclink>
-* <doclink href=Copying>Kopiaketa</doclink>
-* <doclink href=UpgradeDoc>Eguneratzea</doclink>',
-       'config-env-php' => 'PHP $1 instalatuta dago.',
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] instalatuta dago',
-       'config-apc' => '[http://www.php.net/apc APC] instalatuta dago',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] instalatuta dago',
-       'config-diff3-bad' => 'GNU diff3 ez da aurkitu.',
-       'config-db-type' => 'Datu-base mota:',
-       'config-db-wiki-settings' => 'Wiki hau identifikatu',
-       'config-db-name' => 'Datu-base izena:',
-       'config-db-username' => 'Datu-base lankide izena:',
-       'config-db-password' => 'Datu-base pasahitza:',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 bitarra',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-header-mysql' => 'MySQL hobespenak',
-       'config-header-postgres' => 'PostgreSQL hobespenak',
-       'config-header-sqlite' => 'SQLite hobespenak',
-       'config-header-oracle' => 'Oracle hobespenak',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-binary' => 'Bitarra',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'Wikiaren izena:',
-       'config-project-namespace' => 'Proiektuaren izen-tartea:',
-       'config-ns-generic' => 'Proiektua',
-       'config-ns-other' => 'Bestelakoa (zehaztu)',
-       'config-ns-other-default' => 'MyWiki',
-       'config-admin-box' => 'Administratzaile kontua',
-       'config-admin-name' => 'Zure izena:',
-       'config-admin-password' => 'Pasahitza:',
-       'config-admin-password-confirm' => 'Pasahitza berriz:',
-       'config-admin-email' => 'E-posta helbidea:',
-       'config-profile-wiki' => 'Wiki tradizionala', # Fuzzy
-       'config-profile-private' => 'Wiki pribatua',
-       'config-license' => 'Copyright eta lizentzia:',
-       'config-license-pd' => 'Domeinu Askea',
-       'config-email-settings' => 'E-posta hobespenak',
-       'config-logo' => 'Logo URL:',
-       'config-extensions' => 'Luzapenak',
-       'config-install-step-done' => 'egina',
-       'config-help' => 'Laguntza',
-       'mainpagetext' => "'''MediaWiki arrakastaz instalatu da.'''",
-       'mainpagedocfooter' => 'Ikus [//meta.wikimedia.org/wiki/Help:Contents Erabiltzaile Gida] wiki softwarea erabiltzen hasteko informazio gehiagorako.
-
-== Nola hasi ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Konfigurazio balioen zerrenda]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ (Maiz egindako galderak)]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWikiren argitalpenen posta zerrenda]', # Fuzzy
-);
-
-/** Extremaduran (estremeñu)
- */
-$messages['ext'] = array(
-       'mainpagetext' => "'''MeyaGüiqui s'á istalau satihatoriamenti.'''",
-       'mainpagedocfooter' => "Consurta la [//meta.wikimedia.org/wiki/Help:Contents User's Guide] pa sabel mas al tentu el huncionamientu el software güiqui.
-
-== Esminciandu ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
-);
-
-/** Persian (فارسی)
- * @author Mjbmr
- */
-$messages['fa'] = array(
-       'config-desc' => 'نصب کنندهٔ ویکی‌مدیا',
-       'config-title' => 'نصب ویکی‌مدیا $1',
-       'config-information' => 'اطلاعات',
-       'config-localsettings-key' => 'کلید ارتقا:',
-       'config-your-language' => 'زبان شما:',
-       'config-wiki-language' => 'زبان ویکی:',
-       'config-back' => '→ بازگشت',
-       'config-continue' => 'ادامه ←',
-       'config-page-language' => 'زبان',
-       'config-page-welcome' => 'به مدیاویکی خوش آمدید!',
-       'config-page-dbconnect' => 'اتصال به پایگاه داده',
-       'config-page-name' => 'نام',
-       'config-page-options' => 'گزینه‌ها',
-       'config-page-install' => 'نصب',
-       'config-page-complete' => 'کامل!',
-       'config-page-readme' => 'مرا بخوان',
-       'config-page-releasenotes' => 'یادداشت‌های انتشار',
-       'config-page-copying' => 'تکثیر',
-       'config-page-upgradedoc' => 'ارتقا',
-       'config-page-existingwiki' => 'ویکی موجود',
-       'config-restart' => 'بله ، آن دوباره راه اندازی کن',
-       'config-sidebar' => '* [//www.mediawiki.org صفحهٔ اصلی مدیاویکی]
-* [//www.mediawiki.org/wiki/Help:Contents راهنمای کاربر]
-* [//www.mediawiki.org/wiki/Manual:Contents راهنمای مدیر]
-* [//www.mediawiki.org/wiki/Manual:FAQ پرسش‌های رایج]
-----
-* <doclink href=Readme>مرا بخوان</doclink>
-* <doclink href=ReleaseNotes>یادداشت‌های انتشار</doclink>
-* <doclink href=Copying>نسخه برداری</doclink>
-* <doclink href=UpgradeDoc>ارتقا</doclink>',
-       'config-env-php' => 'پی‌اچ‌پی $1 نصب شده است.',
-       'config-env-php-toolow' => 'پی‌اچ‌پی $1 نصب شده است.
-در هر صورت، مدیاویکی نیاز به پی‌اچ‌پی نسخهٔ $2 یا بالاتر دارد.',
-       'config-db-type' => 'نوع پایگاه اطلاعات:',
-       'config-db-host' => 'میزبان پایگاه اطلاعات:',
-       'config-db-username' => 'نام کاربری پایگاه اطلاعات:',
-       'config-db-password' => 'کلمه عبور پایگاه اطلاعات:',
-       'config-mysql-old' => 'مای‌اس‌کیو‌ال نسخهٔ $1 و یا بالاتر نیاز است، شما نسخهٔ $2 را دارید.',
-       'config-db-port' => 'درگاه پایگاه‌داده:',
-       'config-header-mysql' => 'تنظیمات مای‌اس‌کیو‌ال',
-       'config-connection-error' => '$1.
-
-میزبان، نام کاربری و گذرواژه را بررسی کنید و دوباره امتحان کنید.',
-       'config-mysql-binary' => 'دودویی',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'نام ویکی:',
-       'config-site-name-blank' => 'نام تارنما را وارد کنید.',
-       'config-project-namespace' => 'فضای نام پروژه:',
-       'config-ns-generic' => 'پروژه',
-       'config-ns-other-default' => 'ویکی‌من',
-       'config-admin-box' => 'حساب مدیر سیستم',
-       'config-admin-name' => 'نام شما:',
-       'config-admin-password' => 'کلمه عبور:',
-       'config-admin-password-confirm' => 'دوباره کلمه عبور:',
-       'config-admin-email' => 'پست الکترونیکی شما:',
-       'config-profile-private' => 'ویکی خصوصی',
-       'config-license' => 'حق تکثیر و مجوز:',
-       'config-license-none' => 'بدون پاورقی مجوز',
-       'config-license-pd' => 'دامنه عمومی',
-       'config-license-cc-choose' => 'انتخاب یک مجوز سفارشی عوام خلاق',
-       'config-email-settings' => 'تنظیمات پست الکترونیکی',
-       'config-upload-enable' => 'فعال سازی بارگذاری پرونده',
-       'config-logo' => 'نشانی نامواره:',
-       'config-extensions' => 'افزونه‌ها',
-       'config-install-step-done' => 'انجام شد',
-       'config-install-step-failed' => 'ناموفق بود',
-       'config-help' => 'راهنما',
-       'mainpagetext' => "'''نرم‌افزار ویکی با موفقیت نصب شد.'''",
-       'mainpagedocfooter' => 'از [//meta.wikimedia.org/wiki/Help:Contents راهنمای کاربران]
-برای استفاده از نرم‌افزار ویکی کمک بگیرید.
-
-== آغاز به کار ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings تنظیم پیکربندی]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki پرسش‌های متداول]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce فهرست پست الکترونیکی نسخه‌های مدیاویکی]', # Fuzzy
-);
-
-/** Finnish (suomi)
- * @author Beluga
- * @author Centerlink
- * @author Crt
- * @author Nike
- * @author Olli
- * @author Silvonen
- * @author Str4nd
- * @author VezonThunder
- * @author 아라
- */
-$messages['fi'] = array(
-       'config-desc' => 'MediaWiki-asennin',
-       'config-title' => 'MediaWikin version $1 asennus',
-       'config-information' => 'Tiedot',
-       'config-localsettings-upgrade' => '<code>LocalSettings.php</code>-tiedosto havaittiin.
-Kirjoita muuttujan <code>$wgUpgradeKey</code> arvo alla olevaan kenttään päivittääksesi asennuksen.
-Löydät sen <code>LocalSettings.php</code>-tiedostosta.',
-       'config-localsettings-cli-upgrade' => '<code>LocalSettings.php</code>-tiedosto havaittiin.
-Päivitä asennus suorittamalla <code>update.php</code>.',
-       'config-localsettings-key' => 'Päivitysavain',
-       'config-localsettings-badkey' => 'Antamasi avain on virheellinen.',
-       'config-upgrade-key-missing' => 'Havaittiin aiempi MediaWiki-asennus.
-Päivittääksesi tämän asennuksen lisää <code>LocalSettings.php</code>-tiedostosi loppuun seuraava rivi:
-
-$1',
-       'config-localsettings-incomplete' => 'Nykyinen <code>LocalSettings.php</code>-tiedosto näyttää olevan puutteellinen.
-Muuttujaa $1 ei ole asetettu.
-Muuta <code>LocalSettings.php</code>-tiedostoa siten, että muuttuja on asetettu ja napsauta »{{int:Config-continue}}».',
-       'config-localsettings-connection-error' => 'Virhe yhdistettäessä tietokantaan käyttäen tiedostossa <code>LocalSettings.php</code> tai <code>AdminSettings.php</code> määritettyjä asetuksia. Korjaa asetukset ja yritä uudelleen.
-
-$1',
-       'config-session-error' => 'Istunnon aloittaminen epäonnistui: $1',
-       'config-session-expired' => 'Istuntotietosi näyttävät olevan vanhentuneita.
-Istuntojen elinajaksi on määritelty $1.
-Voit muuttaa tätä asetusta vaihtamalla kohtaa <code>session.gc_maxlifetime</code> php.ini-tiedostossa.
-Käynnistä asennusprosessi uudelleen.',
-       'config-no-session' => 'Istuntosi tiedot menetettiin!
-Tarkista php.ini-tiedostosi ja varmista, että <code>session.save_path</code> on asetettu sopivaan kansioon.',
-       'config-your-language' => 'Asennuksen kieli',
-       'config-your-language-help' => 'Valitse kieli, jota haluat käyttää asennuksen ajan.',
-       'config-wiki-language' => 'Wikin kieli',
-       'config-wiki-language-help' => 'Valitse kieli, jota wikissä tullaan etupäässä käyttämään.',
-       'config-back' => '← Takaisin',
-       'config-continue' => 'Jatka →',
-       'config-page-language' => 'Kieli',
-       'config-page-welcome' => 'Tervetuloa MediaWikiin!',
-       'config-page-dbconnect' => 'Tietokantaan yhdistäminen',
-       'config-page-upgrade' => 'Olemassa olevan asennuksen päivitys',
-       'config-page-dbsettings' => 'Tietokannan asetukset',
-       'config-page-name' => 'Nimi',
-       'config-page-options' => 'Asetukset',
-       'config-page-install' => 'Asenna',
-       'config-page-complete' => 'Valmis!',
-       'config-page-restart' => 'Aloita asennus alusta',
-       'config-page-readme' => 'Lue minut',
-       'config-page-releasenotes' => 'Julkaisutiedot',
-       'config-page-copying' => 'Kopiointi',
-       'config-page-upgradedoc' => 'Päivittäminen',
-       'config-page-existingwiki' => 'Aikaisempi asennus',
-       'config-help-restart' => 'Haluatko poistaa kaikki annetut tiedot ja aloittaa asennuksen alusta?',
-       'config-restart' => 'Kyllä',
-       'config-welcome' => '=== Ympäristön tarkistukset ===
-Varmistetaan MediaWikin asennettavuus tähän ympäristöön.
-Sinun pitäisi antaa näiden tarkistusten tulokset, jos tarvitset apua asennuksen aikana.',
-       'config-sidebar' => '* [//www.mediawiki.org MediaWikin kotisivu]
-* [//www.mediawiki.org/wiki/Help:Contents Käyttöopas]
-* [//www.mediawiki.org/wiki/Manual:Contents Hallintaopas]
-* [//www.mediawiki.org/wiki/Manual:FAQ UKK]
-----
-* <doclink href=Readme>Lue minut</doclink>
-* <doclink href=ReleaseNotes>Julkaisutiedot</doclink>
-* <doclink href=Copying>Kopiointi</doclink>
-* <doclink href=UpgradeDoc>Päivittäminen</doclink>',
-       'config-env-good' => 'Asennusympäristö on tarkastettu.
-Voit asentaa MediaWikin.',
-       'config-env-bad' => 'Asennusympäristö on tarkastettu.
-Et voi asentaa MediaWikiä.',
-       'config-env-php' => 'PHP $1 on asennettu.',
-       'config-env-php-toolow' => 'PHP $1 on asennettu.
-MediaWiki vaatii PHP:n version $2 tai uudemman.',
-       'config-no-db' => 'Sopivaa tietokanta-ajuria ei löytynyt! Sinun täytyy asentaa tietokanta-ajurit PHP:lle.
-Seuraavat tietokantatyypit ovat tuettuja: $1.', # Fuzzy
-       'config-safe-mode' => "'''Varoitus:''' PHP:n [http://www.php.net/features.safe-mode safe mode] -tila on aktiivinen.
-Se voi aiheuttaa ongelmia erityisesti tiedostojen tallentamisen ja matemaattisten kaavojen kanssa.",
-       'config-pcre' => 'PCRE-tukimoduuli puuttuu.
-MediaWiki vaatii toimiakseen Perl-yhteensopivat säännölliset lausekkeet.',
-       'config-memory-bad' => "'''Varoitus:''' PHP:n <code>memory_limit</code> on $1.
-Tämä on luultavasti liian alhainen.
-Asennus saattaa epäonnistua!",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] on asennettu',
-       'config-apc' => '[http://www.php.net/apc APC] on asennettu.',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] on asennettu',
-       'config-diff3-bad' => 'GNU diff3:a ei löytynyt.',
-       'config-db-type' => 'Tietokannan tyyppi',
-       'config-db-host' => 'Tietokantapalvelin',
-       'config-db-name' => 'Tietokannan nimi',
-       'config-db-username' => 'Tietokannan käyttäjätunnus',
-       'config-db-password' => 'Tietokannan salasana',
-       'config-db-install-help' => 'Anna käyttäjätunnus ja salasana, joita käytetään asennuksen aikana.',
-       'config-db-account-lock' => 'Käytä samaa tunnusta ja salasanaa myös asennuksen jälkeen',
-       'config-db-prefix' => 'Tietokantataulujen etuliite',
-       'config-db-charset' => 'Tietokannan merkistö',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0, binääri',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0, UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0, taaksepäin yhteensopiva UTF-8',
-       'config-mysql-old' => 'MediaWiki tarvitsee MySQL:n version $1 tai uudemman. Nykyinen versio on $2.',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-header-mysql' => 'MySQL-asetukset',
-       'config-header-postgres' => 'PostgreSQL-asetukset',
-       'config-header-sqlite' => 'SQLite-asetukset',
-       'config-header-oracle' => 'Oracle-asetukset',
-       'config-invalid-db-type' => 'Virheellinen tietokantatyyppi',
-       'config-missing-db-name' => 'Kenttä »Tietokannan nimi» on pakollinen',
-       'config-invalid-db-name' => '”$1” ei kelpaa tietokannan nimeksi.
-Käytä ainoastaan kirjaimia (a-z, A-Z), numeroita (0-9), alaviivoja (_) ja tavuviivoja (-).',
-       'config-invalid-db-prefix' => '”$1” ei kelpaa tietokannan etuliitteeksi.
-Käytä ainoastaan kirjaimia (a-z, A-Z), numeroita (0-9), alaviivoja (_) ja tavuviivoja (-).',
-       'config-postgres-old' => 'MediaWiki tarvitsee PostgreSQL:n version $1 tai uudemman. Nykyinen versio on $2.',
-       'config-sqlite-name-help' => 'Valitse nimi, joka yksilöi tämän wikin.
-Älä käytä välilyöntejä tai viivoja.
-Nimeä käytetään SQLite-tietokannan tiedostonimessä.',
-       'config-sqlite-dir-unwritable' => 'Hakemistoon ”$1” kirjoittaminen epäonnistui.
-Muuta hakemiston käyttöoikeuksia siten, että palvelinohjelmisto voi kirjoittaa siihen ja yritä uudelleen.',
-       'config-sqlite-readonly' => 'Tiedostoon <code>$1</code> ei voi kirjoittaa.',
-       'config-sqlite-fts3-downgrade' => 'PHP:stä puuttuu FTS3-tuki. Poistetaan ominaisuus käytöstä tietokantatauluista.',
-       'config-upgrade-done' => "Päivitys valmis.
-
-Voit [$1 aloittaa wikin käytön].
-
-Napsauta alla olevaa painiketta, jos haluat luoda uudelleen <code>LocalSettings.php</code>-tiedoston.
-Tämä '''ei ole suositeltavaa''', jos wikissäsi ei ole ongelmia.",
-       'config-upgrade-done-no-regenerate' => 'Päivitys valmis.
-
-Voit [$1 aloittaa wikin käytön].',
-       'config-regenerate' => 'Luo LocalSettings.php uudelleen →',
-       'config-show-table-status' => 'Kysely <code>SHOW TABLE STATUS</code> epäonnistui!',
-       'config-mysql-engine' => 'Tallennusmoottori',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-binary' => 'Binääri',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'Wikin nimi',
-       'config-site-name-blank' => 'Kirjoita sivuston nimi.',
-       'config-project-namespace' => 'Projektinimiavaruus',
-       'config-ns-generic' => 'Projekti',
-       'config-ns-site-name' => 'Sama kuin wikin nimi: $1',
-       'config-ns-other' => 'Muu (määritä)',
-       'config-admin-name' => 'Nimesi',
-       'config-admin-password' => 'Salasana',
-       'config-admin-password-confirm' => 'Salasana uudelleen',
-       'config-admin-name-blank' => 'Anna ylläpitäjän käyttäjänimi.',
-       'config-admin-email' => 'Sähköpostiosoite',
-       'config-admin-error-bademail' => 'Annoit virheellisen sähköpostiosoitteen.',
-       'config-almost-done' => 'Olet jo lähes valmis!
-Voit ohittaa jäljellä olevat määritykset ja asentaa wikin juuri nyt.',
-       'config-profile-wiki' => 'Avoin wiki',
-       'config-profile-no-anon' => 'Tunnuksen luonti vaaditaan',
-       'config-profile-private' => 'Yksityinen wiki',
-       'config-license' => 'Tekijänoikeus ja lisenssi:',
-       'config-license-pd' => 'Public domain',
-       'config-email-settings' => 'Sähköpostiasetukset',
-       'config-logo' => 'Logon URL-osoite',
-       'config-cc-again' => 'Valitse uudelleen...',
-       'config-extensions' => 'Laajennukset',
-       'config-install-step-done' => 'valmis',
-       'config-install-step-failed' => 'epäonnistui',
-       'config-install-user-alreadyexists' => 'Käyttäjä $1 on jo olemassa',
-       'config-install-interwiki-list' => 'Tiedostoa <code>interwiki.list</code> ei voitu lukea.',
-       'config-download-localsettings' => 'Lataa <code>LocalSettings.php</code>',
-       'config-help' => 'ohje',
-       'mainpagetext' => "'''MediaWiki on onnistuneesti asennettu.'''",
-       'mainpagedocfooter' => "Lisätietoja käytöstä on sivulla [//meta.wikimedia.org/wiki/Help:Contents User's Guide].
-
-=== Lisäohjeita ===
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Asetusten teko-ohjeita]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWikin FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Sähköpostilista, jolla tiedotetaan MediaWikin uusista versioista]
-
-=== Asetukset ===
-
-Tarkista, että alla olevat taivutusmuodot ovat oikein. Jos eivät, tee tarvittavat muutokset tiedostoon LocalSettings.php seuraavasti:
- \$wgGrammarForms['fi']['genitive']['{{SITENAME}}'] = '...';
- \$wgGrammarForms['fi']['partitive']['{{SITENAME}}'] = '...';
- \$wgGrammarForms['fi']['elative']['{{SITENAME}}'] = '...';
- \$wgGrammarForms['fi']['inessive']['{{SITENAME}}'] = '...';
- \$wgGrammarForms['fi']['illative']['{{SITENAME}}'] = '...';
-Taivutusmuodot: {{GRAMMAR:genitive|{{SITENAME}}}} (yön) – {{GRAMMAR:partitive|{{SITENAME}}}} (yötä) – {{GRAMMAR:elative|{{SITENAME}}}} (yöstä) – {{GRAMMAR:inessive|{{SITENAME}}}} (yössä) – {{GRAMMAR:illative|{{SITENAME}}}} (yöhön).",
-);
-
-/** Faroese (føroyskt)
- */
-$messages['fo'] = array(
-       'mainpagetext' => "'''Innlegging av Wiki-ritbúnaði væleydnað.'''",
-);
-
-/** French (français)
- * @author Aadri
- * @author Crochet.david
- * @author Gomoko
- * @author Grondin
- * @author Guillom
- * @author Hashar
- * @author IAlex
- * @author Jean-Frédéric
- * @author McDutchie
- * @author Peter17
- * @author Reedy
- * @author Sherbrooke
- * @author Urhixidur
- * @author Verdy p
- * @author Wyz
- * @author Yumeki
- * @author 아라
- */
-$messages['fr'] = array(
-       'config-desc' => 'Le programme d’installation de MediaWiki',
-       'config-title' => 'Installation de MediaWiki $1',
-       'config-information' => 'Informations',
-       'config-localsettings-upgrade' => 'Un fichier <code>LocalSettings.php</code> a été détecté.
-Pour mettre à jour cette installation, veuillez saisir la valeur de <code>$wgUpgradeKey</code> dans le champ ci-dessous.
-Vous la trouverez dans <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'Un fichier <code>LocalSettings.php</code> a été détecté.
-Pour mettre à niveau cette installation, veuillez exécuter <code>update.php</code>',
-       'config-localsettings-key' => 'Clé de mise à jour :',
-       'config-localsettings-badkey' => 'La clé que vous avez fournie est incorrecte',
-       'config-upgrade-key-missing' => 'Une installation existante de MediaWiki a été détectée.
-
-Pour mettre à jour cette installation, veuillez ajouter la ligne suivante à la fin de votre fichier <code>LocalSettings.php</code>
-
-$1',
-       'config-localsettings-incomplete' => 'Le fichier <code>LocalSettings.php</code> existant semble être incomplet.
-La variable $1 n’est pas définie.
-Veuillez modifier <code>LocalSettings.php</code> de sorte que cette variable soit définie, puis cliquer sur « {{int:Config-continue}} ».',
-       'config-localsettings-connection-error' => 'Une erreur est survenue lors de la connexion à la base de données en utilisant la configuration spécifiée dans <code>LocalSettings.php</code> ou <code>AdminSettings.php</code>. Veuillez corriger cette configuration puis réessayer.
-
-$1',
-       'config-session-error' => 'Erreur lors du démarrage de la session : $1',
-       'config-session-expired' => "↓Les données de votre session semblent avoir expiré.
-Les sessions sont configurées pour une durée de $1.
-Vous pouvez l'augmenter en configurant <code>session.gc_maxlifetime</code> dans le fichier php.ini.
-Redémarrer le processus d'installation.",
-       'config-no-session' => 'Les données de votre session ont été perdues !
-Vérifiez votre fichier php.ini et assurez-vous que <code>session.save_path</code> contient le chemin d’un répertoire approprié.',
-       'config-your-language' => 'Votre langue :',
-       'config-your-language-help' => "Sélectionnez la langue à utiliser pendant le processus d'installation.",
-       'config-wiki-language' => 'Langue du wiki :',
-       'config-wiki-language-help' => 'Sélectionner la langue dans laquelle le wiki sera principalement écrit.',
-       'config-back' => '← Retour',
-       'config-continue' => 'Continuer →',
-       'config-page-language' => 'Langue',
-       'config-page-welcome' => 'Bienvenue sur MediaWiki !',
-       'config-page-dbconnect' => 'Se connecter à la base de données',
-       'config-page-upgrade' => 'Mettre à jour l’installation existante',
-       'config-page-dbsettings' => 'Paramètres de la base de données',
-       'config-page-name' => 'Nom',
-       'config-page-options' => 'Options',
-       'config-page-install' => 'Installer',
-       'config-page-complete' => 'Terminé !',
-       'config-page-restart' => 'Redémarrer l’installation',
-       'config-page-readme' => 'Lisez-moi',
-       'config-page-releasenotes' => 'Notes de version',
-       'config-page-copying' => 'Copie',
-       'config-page-upgradedoc' => 'Mise à jour',
-       'config-page-existingwiki' => 'Wiki existant',
-       'config-help-restart' => "Voulez-vous effacer toutes les données enregistrées que vous avez entrées et relancer le processus d'installation ?",
-       'config-restart' => 'Oui, le relancer',
-       'config-welcome' => '=== Vérifications liées à l’environnement ===
-Des vérifications de base vont maintenant être effectuées pour voir si cet environnement est adapté à l’installation de MediaWiki.
-Rappelez-vous d’inclure ces informations si vous recherchez de l’aide sur la manière de terminer l’installation.',
-       'config-copyright' => "=== Droit d'auteur et conditions ===
-
-$1
-
-Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la Licence Publique Générale GNU telle que publiée par la Free Software Foundation (version 2 de la Licence, ou, à votre choix, toute version ultérieure).
-
-Ce programme est distribué dans l’espoir qu’il sera utile, mais '''sans aucune garantie''' : sans même les garanties implicites de '''commerciabilité''' ou d’'''adéquation à un usage particulier'''.
-Voir la Licence Publique Générale GNU pour plus de détails.
-
-Vous devriez avoir reçu <doclink href=Copying>une copie de la Licence Publique Générale GNU</doclink> avec ce programme ; dans le cas contraire, écrivez à la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ou [http://www.gnu.org/copyleft/gpl.html lisez-le en ligne].",
-       'config-sidebar' => '* [//www.mediawiki.org Accueil MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents Guide de l’utilisateur]
-* [//www.mediawiki.org/wiki/Manual:Contents Guide de l’administrateur]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]
-----
-* <doclink href=Readme>Lisez-moi</doclink>
-* <doclink href=ReleaseNotes>Notes de publication</doclink>
-* <doclink href=Copying>Copie</doclink>
-* <doclink href=UpgradeDoc>Mise à jour</doclink>',
-       'config-env-good' => 'L’environnement a été vérifié.
-Vous pouvez installer MediaWiki.',
-       'config-env-bad' => 'L’environnement a été vérifié.
-Vous ne pouvez pas installer MediaWiki.',
-       'config-env-php' => 'PHP $1 est installé.',
-       'config-env-php-toolow' => 'PHP $1 est installé.
-Cependant, MediaWiki requiert PHP $2 ou plus haut.',
-       'config-unicode-using-utf8' => 'Utilisation de utf8_normalize.so par Brion Vibber pour la normalisation Unicode.',
-       'config-unicode-using-intl' => "Utilisation de [http://pecl.php.net/intl l'extension PECL intl] pour la normalisation Unicode.",
-       'config-unicode-pure-php-warning' => "'''Attention''': L'[http://pecl.php.net/intl extension PECL intl] n'est pas disponible pour la normalisation d’Unicode, retour à la version lente implémentée en PHP.
-Si votre site web sera très fréquenté, vous devriez lire ceci : [//www.mediawiki.org/wiki/Unicode_normalization_considerations ''Unicode normalization''] (en anglais).",
-       'config-unicode-update-warning' => "'''Attention''': La version installée du ''wrapper'' de normalisation Unicode utilise une vieille version de la [http://site.icu-project.org/ bibliothèque logicielle ''ICU Project''].
-Vous devriez faire une [//www.mediawiki.org/wiki/Unicode_normalization_considerations mise à jour] (texte en anglais) si l'usage d'Unicode vous semble important.",
-       'config-no-db' => "Impossible de trouver un pilote de base de données approprié ! Vous devez installer un pilote pour PHP. Ces types de bases de données sont reconnus : $1.
-
-Si vous êtes sur un site partagé, demandez à votre hébergeur d'installer un pilote de base de données approprié. Si vous avez compilé PHP, le configurer avec client de base de données activé, par exemple en insérant la directive <code>./configure --with-mysql</code>.
-
-Si vous avez installé PHP d'une distribution Debian ou Ubuntu, vous devez aussi installer le module <code>php5-mysql</code>.",
-       'config-outdated-sqlite' => "'''Attention''': vous avez SQLite $1, qui est inférieur à la version minimale requise $2. SQLite sera indisponible.",
-       'config-no-fts3' => "'''Attention :''' SQLite est compilé sans le module [//sqlite.org/fts3.html FTS3] ; les fonctions de recherche ne seront pas disponibles sur ce moteur.",
-       'config-register-globals' => "'''Attention : l'option <code>[http://php.net/register_globals register_globals]</code> de PHP est activée.'''
-'''Désactivez-la si vous le pouvez.'''
-MediaWiki fonctionnera, mais votre serveur sera exposé à de potentielles failles de sécurité.",
-       'config-magic-quotes-runtime' => "'''Erreur fatale : [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] est activé !'''
-Cette option corrompt les données de manière imprévisible.
-Vous ne pouvez pas installer ou utiliser MediaWiki tant que cette option est activée.",
-       'config-magic-quotes-sybase' => "'''Erreur fatale : [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybasee] est activé !'''
-Cette option corrompt les données de manière imprévisible.
-Vous ne pouvez pas installer ou utiliser MediaWiki tant que cette option est activée.",
-       'config-mbstring' => "'''Erreur fatale : [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] est activé !'''
-Cette option provoque des erreurs et peut corrompre les données de manière imprévisible.
-Vous ne pouvez pas installer ou utiliser MediaWiki tant que cette option est activée.",
-       'config-ze1' => "'''Erreur fatale : [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mod] est activé !'''
-Cette option provoque des bugs horribles avec MediaWiki.
-Vous ne pouvez pas installer ou utiliser MediaWiki tant que cette option est activée.",
-       'config-safe-mode' => "'''Attention : le « [http://www.php.net/features.safe-mode safe mode] » est activé !'''
-Ceci peut causer des problèmes, en particulier si vous utilisez le téléversement de fichiers et le support de <code>math</code>.",
-       'config-xml-bad' => 'Le module XML de PHP est manquant.
-MediaWiki requiert des fonctions de ce module et ne fonctionnera pas avec cette configuration.
-Si vous êtes sous Mandrake, installez le paquet php-xml.',
-       'config-pcre' => 'Le module de support PCRE semble manquer.
-MediaWiki requiert les fonctions d’expressions rationnelles compatibles avec Perl.',
-       'config-pcre-no-utf8' => "'''Erreur fatale''': Le module PCRE de PHP semble être compilé sans le support PCRE_UTF8.
-MédiaWiki nécessite la gestion d’UTF-8 pour fonctionner correctement.",
-       'config-memory-raised' => 'Le paramètre <code>memory_limit</code> de PHP était à $1, porté à $2.',
-       'config-memory-bad' => "'''Attention :''' Le paramètre <code>memory_limit</code> de PHP est à $1.
-Cette valeur est probablement trop faible.
-Il est possible que l’installation échoue !",
-       'config-ctype' => "'''Fatal ''': PHP doit être compilé avec le support pour l'[http://www.php.net/manual/en/ctype.installation.php extension Ctype].",
-       'config-json' => "'''Erreur fatale :''' PHP a été compilé sans le support de JSON.
-Vous devez soit installez l’extension JSON de PHP ou l’extension [http://pecl.php.net/package/jsonc PECL jsonc] avant d’installer MediaWiki.
-* L’extension PHP est comprise dans Red Hat Enterprise Linux (CentOS) 5 et 6, mais doit être activée dans <code>/etc/php.ini</code> ou <code>/etc/php.d/json.ini</code>.
-* Certaines distributions Linux après mai 2013 ne comprennent pas l’extension PHP, mais oint mis à la place l’extension PECL sous al forme <code>php5-json</code> ou <code>php-pecl-jsonc</code>.",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] est installé',
-       'config-apc' => '[http://www.php.net/apc APC] est installé',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] est installé',
-       'config-no-cache' => "'''Attention :''' Impossible de trouver [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] ou [http://www.iis.net/download/WinCacheForPhp WinCache].
-La mise en cache d'objets n'est pas activée.",
-       'config-mod-security' => "'''Attention''': Votre serveur web a [http://modsecurity.org/ mod_security] activé. S&il est mal configuré, cela peut poser des problèmes à MediaWiki ou à d'autres applications qui permettent aux utilisateurs de publier un contenu quelconque.
-Reportez-vous à [http://modsecurity.org/documentation/ la documentation de mod_security] ou contactez le support de votre hébergeur si vous rencontrez des erreurs aléatoires.",
-       'config-diff3-bad' => 'GNU diff3 introuvable.',
-       'config-git' => 'Logiciel de contrôle de version Git trouvé : <code>$1</code>.',
-       'config-git-bad' => 'Logiciel de contrôle de version Git non trouvé.',
-       'config-imagemagick' => "ImageMagick trouvé : <code>$1</code>.
-La miniaturisation d'images sera activée si vous activez le téléversement de fichiers.",
-       'config-gd' => "La bibliothèque graphique GD intégrée a été trouvée.
-La miniaturisation d'images sera activée si vous activez le téléversement de fichiers.",
-       'config-no-scaling' => "Impossible de trouver la bibliothèque GD ou ImageMagick.
-La miniaturisation d'images sera désactivé.",
-       'config-no-uri' => "'''Erreur :''' Impossible de déterminer l'URI du script actuel.
-Installation avortée.",
-       'config-no-cli-uri' => "'''Attention''': Aucun --scriptpath n'a été spécifié; <code>$1</code> sera utilisé par défaut",
-       'config-using-server' => 'Utilisation du nom de serveur "<nowiki>$1</nowiki>".',
-       'config-using-uri' => 'Utilisation de l\'URL de serveur "<nowiki>$1$2</nowiki>".',
-       'config-uploads-not-safe' => "'''Attention:''' Votre répertoire par défaut pour les téléchargements, <code>$1</code>, est vulnérable, car il peut exécuter n'importe quel script.
-Bien que MediaWiki vérifie tous les fichiers téléchargés, il est fortement recommandé de [//www.mediawiki.org/wiki/Manual:Security#Upload_security fermer cette vulnérabilité de sécurité] (texte en anglais) avant d'activer les téléchargements.",
-       'config-no-cli-uploads-check' => "'''Attention:''' Votre répertoire par défaut pour les imports(<code>$1</code>) n'est pas contrôlé concernant la vulnérabilité d'exécution de scripts arbitraires lors de l'installation CLI.",
-       'config-brokenlibxml' => 'Votre système utilise une combinaison de versions de PHP et libxml2 qui est boguée et peut engendrer des corruptions cachées de données dans MediaWiki et d’autres applications web.
-Veuillez mettre à jour votre système vers PHP 5.2.9 ou plus récent et libxml2 2.7.3 ou plus récent ([//bugs.php.net/bug.php?id=45996 bogue déposé auprès de PHP]).
-Installation interrompue.',
-       'config-using531' => 'MediaWiki ne peut pas être utilisé avec PHP $1 à cause d’un bogue affectant les paramètres passés par référence à <code>__call()</code>.
-Veuillez mettre à jour votre système vers PHP 5.3.2 ou plus récent ou revenir à PHP 5.3.0 pour résoudre ce problème.
-Installation interrompue.',
-       'config-suhosin-max-value-length' => 'Suhosin est installé et limite la <code>longueur</code> du paramètre GET à $1 octets.
-Le composant ResourceLoader de MediaWiki va répondre en respectant cette limite, mais ses performances seront dégradées. Si possible, vous devriez définir <code>suhosin.get.max_value_length</code> à 1024 ou plus dans le fichier <code>php.ini</code>, et fixer <code>$wgResourceLoaderMaxQueryLength</code> à la même valeur dans <code>LocalSettings.php</code>.',
-       'config-db-type' => 'Type de base de données :',
-       'config-db-host' => 'Nom d’hôte de la base de données :',
-       'config-db-host-help' => 'Si votre serveur de base de données est sur un serveur différent, saisissez ici son nom d’hôte ou son adresse IP.
-
-Si vous utilisez un hébergement mutualisé, votre hébergeur doit vous avoir fourni le nom d’hôte correct dans sa documentation.
-
-Si vous installez sur un serveur Windows et utilisez MySQL, « localhost » peut ne pas fonctionner comme nom de serveur. S’il ne fonctionne pas, essayez « 127.0.0.1 » comme adresse IP locale.
-
-Si vous utilisez PostgreSQL, laissez ce champ vide pour vous connecter via un socket Unix.',
-       'config-db-host-oracle' => 'Nom TNS de la base de données :',
-       'config-db-host-oracle-help' => 'Entrez un [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm nom de connexion locale] valide ; un fichier tnsnames.ora doit être visible par cette installation.<br /> Si vous utilisez les bibliothèques clientes version 10g ou plus récentes, vous pouvez également utiliser la méthode de nommage [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].',
-       'config-db-wiki-settings' => 'Identifier ce wiki',
-       'config-db-name' => 'Nom de la base de données :',
-       'config-db-name-help' => "Choisissez un nom qui identifie votre wiki.
-Il ne doit pas contenir d'espaces.
-
-Si vous utilisez un hébergement web partagé, votre hébergeur vous fournira un nom spécifique de base de données à utiliser, ou bien vous permet de créer des bases de données via un panneau de contrôle.",
-       'config-db-name-oracle' => 'Schéma de base de données :',
-       'config-db-account-oracle-warn' => "Il existe trois scénarios pris en charge pour l’installation d'Oracle comme backend de base :
-
-Si vous souhaitez créer un compte de base de données dans le cadre de la procédure d’installation, veuillez fournir un compte avec le rôle de SYSDBA comme compte de base de données pour l’installation et spécifiez les informations d’identification souhaitées pour le compte d'accès au web, sinon vous pouvez créer le compte d’accès web manuellement et fournir uniquement ce compte (si elle a exigé des autorisations nécessaires pour créer les objets de schéma) ou fournir deux comptes différents, l’un avec les privilèges de créer et une restreinte pour l’accès web.
-
-Un script pour créer un compte avec des privilèges requis peut être trouvé dans le répertoire « entretien/oracle/ » de cette installation. N’oubliez pas que le fait de l’utilisation d’un compte limité désactive toutes les fonctionnalités d’entretien avec le compte par défaut.",
-       'config-db-install-account' => "Compte d'utilisateur pour l'installation",
-       'config-db-username' => 'Nom d’utilisateur de la base de données :',
-       'config-db-password' => 'Mot de passe de la base de données :',
-       'config-db-password-empty' => "Veuillez entrer un mot de passe pour le nouvel compte de la base de données : $1.
-Bien qu'il soit possible de créer un compte sans mot de passe, ce n'est pas recommandé pour des questions de sécurité.",
-       'config-db-install-username' => "Entrez le nom d’utilisateur qui sera utilisé pour se connecter à la base de données pendant le processus d'installation. Il ne s’agit pas du nom d’utilisateur du compte MediaWiki, mais du nom d’utilisateur pour votre base de données.",
-       'config-db-install-password' => "Entrez le mot de passe qui sera utilisé pour se connecter à la base de données pendant le processus d'installation. Il ne s’agit pas du mot de passe du compte MediaWiki, mais du mot de passe pour votre base de données.",
-       'config-db-install-help' => "Entrez le nom d'utilisateur et le mot de passe qui seront utilisés pour se connecter à la base de données pendant le processus d'installation.",
-       'config-db-account-lock' => "Utiliser le même nom d'utilisateur et le même mot de passe pendant le fonctionnement habituel",
-       'config-db-wiki-account' => "Compte d'utilisateur pour le fonctionnement habituel",
-       'config-db-wiki-help' => "Entrez le nom d'utilisateur et le mot de passe qui seront utilisés pour se connecter à la base de données pendant le fonctionnement habituel du wiki.
-Si le compte n'existe pas, et le compte d'installation dispose de privilèges suffisants, ce compte d'utilisateur sera créé avec les privilèges minimum requis pour faire fonctionner le wiki.",
-       'config-db-prefix' => 'Préfixe des tables de la base de données :',
-       'config-db-prefix-help' => "Si vous avez besoin de partager une base de données entre plusieurs wikis, ou entre MediaWiki et une autre application Web, vous pouvez choisir d'ajouter un préfixe à tous les noms de table pour éviter les conflits.
-Ne pas utiliser des espaces.
-
-Ce champ est généralement laissé vide.",
-       'config-db-charset' => 'Jeu de caractères de la base de données',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binaire',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 rétrocompatible UTF-8',
-       'config-charset-help' => "'''Attention:''' Si vous utilisez ''backwards-compatible UTF-8'' sur MySQL 4.1+, et ensuite sauvegardez la base de données avec <code>mysqldump</code>, cela peut détruire tous les caractères non-ASCII, ce qui rend inutilisable vos copies de sauvegarde de façon irréversible !
-
-En ''mode binaire'', MediaWiki stocke le texte UTF-8 dans des champs binaires de la base de données. C'est plus efficace que le ''mode UTF-8'' de MySQL, et vous permet d'utiliser toute la gamme des caractères Unicode.
-En ''mode UTF-8'', MySQL connaîtra le jeu de caractères de vos données et pourra présenter et convertir les données de manière appropriée, mais il ne vous laissera pas stocker les caractères au-dessus du [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingue de base] (en anglais).",
-       'config-mysql-old' => 'MySQL $1 ou version ultérieure est requis, vous avez $2.',
-       'config-db-port' => 'Port de la base de données :',
-       'config-db-schema' => 'Schéma pour MediaWiki',
-       'config-db-schema-help' => "Les schémas ci-dessus sont généralement corrects.
-Ne les changez que si vous êtes sûr que c'est nécessaire.",
-       'config-pg-test-error' => "Impossible de se connecter à la base de données '''$1''' : $2",
-       'config-sqlite-dir' => 'Dossier des données SQLite :',
-       'config-sqlite-dir-help' => "SQLite stocke toutes les données dans un fichier unique.
-
-Le répertoire que vous inscrivez doit être accessible en écriture par le serveur lors de l'installation.
-
-Il '''ne faut pas''' qu'il soit accessible via le web, c'est pourquoi il n'est pas à l'endroit où vos fichiers PHP sont.
-
-L'installateur écrira un fichier <code>.htaccess</code> en même temps, mais s'il y a échec, quelqu'un peut accéder à votre base de données.
-Cela comprend les données des utilisateurs (adresses de courriel, mots de passe hachés) ainsi que des révisions supprimées et d'autres données confidentielles du wiki.
-
-Envisagez de placer la base de données ailleurs, par exemple dans <code>/var/lib/mediawiki/yourwiki</code>.",
-       'config-oracle-def-ts' => "Espace de stockage (''tablespace'') par défaut :",
-       'config-oracle-temp-ts' => "Espace de stockage (''tablespace'') temporaire :",
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-support-info' => "MediaWiki supporte ces systèmes de bases de données :
-
-$1
-
-Si vous ne voyez pas le système de base de données que vous essayez d'utiliser ci-dessous, alors suivez les instructions ci-dessus (voir liens) pour activer le support.",
-       'config-support-mysql' => '* $1 est le premier choix pour MediaWiki et est mieux pris en charge ([http://www.php.net/manual/en/mysql.installation.php how to compile PHP with MySQL support])',
-       'config-support-postgres' => "* $1 est un système de base de données populaire et ''open source'' qui peut être une alternative à MySQL ([http://www.php.net/manual/en/pgsql.installation.php how to compile PHP with PostgreSQL support]). Il peut contenir quelques bogues mineurs et n'est pas recommandé dans un environnement de production.",
-       'config-support-sqlite' => '* $1 est un système de base de données léger qui est bien supporté. ([http://www.php.net/manual/en/pdo.installation.php How to compile PHP with SQLite support], utilise PDO)',
-       'config-support-oracle' => '* $1 est un système commercial de gestion de base de données d’entreprise. ([http://www.php.net/manual/en/oci8.installation.php Comment compiler PHP avec le support OCI8])',
-       'config-header-mysql' => 'Paramètres de MySQL',
-       'config-header-postgres' => 'Paramètres de PostgreSQL',
-       'config-header-sqlite' => 'Paramètres de SQLite',
-       'config-header-oracle' => 'Paramètres d’Oracle',
-       'config-invalid-db-type' => 'Type de base de données non valide',
-       'config-missing-db-name' => 'Vous devez saisir une valeur pour « Nom de la base de données »',
-       '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.
-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 ».
-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-connection-error' => '$1.
-
-Vérifier le nom d’hôte, le nom d’utilisateur et le mot de passe ci-dessous puis réessayer.',
-       'config-invalid-schema' => 'Schéma invalide pour MediaWiki « $1 ».
-Utilisez seulement des lettres latines (a-z, A-Z), des chiffres (0-9) et des caractères de soulignement (_).',
-       'config-db-sys-create-oracle' => "L'installateur ne reconnaît que les compte SYSDBA lors de la création d'un nouveau compte.",
-       'config-db-sys-user-exists-oracle' => 'Le compte « $1 » existe déjà. Un SYSDBA peut seulement servir à créer un nouveau compte.',
-       'config-postgres-old' => 'PostgreSQL $1 ou version ultérieure est requis, vous avez $2.',
-       'config-sqlite-name-help' => "Choisir un nom qui identifie votre wiki.
-Ne pas utiliser des espaces ou des traits d'union.
-Il sera utilisé pour le fichier de données SQLite.",
-       'config-sqlite-parent-unwritable-group' => "Impossible de créer le répertoire de données <nowiki><code>$1</code></nowiki>, parce que le répertoire parent <nowiki><code>$2</code></nowiki> n'est pas accessible en écriture par le serveur Web.
-
-L'utilisateur du serveur web est connu.
-Rendre le répertoire <nowiki><code>$3</code></nowiki> accessible en écriture pour continuer.
-Sur un système UNIX/Linux, saisir :
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>",
-       'config-sqlite-parent-unwritable-nogroup' => "Impossible de créer le répertoire de données <nowiki><code>$1</code></nowiki>, parce que le répertoire parent <nowiki><code>$2</code></nowiki> n'est pas accessible en écriture par le serveur Web.
-
-L'utilisateur du serveur web est inconnu.
-Rendre le répertoire <nowiki><code>$3</code></nowiki> globalement accessible en écriture pour continuer.
-Sur un système UNIX/Linux, saisir :
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>",
-       'config-sqlite-mkdir-error' => "Erreur de création du répertoire de données « $1 ».
-Vérifiez l'emplacement et essayez à nouveau.",
-       'config-sqlite-dir-unwritable' => "Impossible d'écrire dans le répertoire « $1 ».
-Changer les permissions de sorte que le serveur peut y écrire et essayez à nouveau.",
-       'config-sqlite-connection-error' => '$1.
-
-Vérifier le répertoire des données et le nom de la base de données ci-dessous et réessayer.',
-       'config-sqlite-readonly' => "Le fichier <code>$1</code> n'est pas accessible en écriture.",
-       'config-sqlite-cant-create-db' => 'Impossible de créer le fichier de base de données <code>$1</code>.',
-       'config-sqlite-fts3-downgrade' => 'PHP ne vient pas avec FTS3, les tables sont diminuées.',
-       'config-can-upgrade' => "Il y a des tables MediaWiki dans cette base de données.
-Pour les mettre au niveau de MediaWiki $1, cliquez sur '''Continuer'''.",
-       'config-upgrade-done' => "Mise à jour complétée.
-
-Vous pouvez maintenant [$1 commencer à utiliser votre wiki].
-
-Si vous souhaitez régénérer votre fichier <code>LocalSettings.php</code>, cliquez sur le bouton ci-dessous.
-Ce '''n'est pas recommandé''' sauf si vous rencontrez des problèmes avec votre wiki.",
-       'config-upgrade-done-no-regenerate' => 'Mise à jour terminée.
-
-Vous pouvez maintenant [$1 commencer à utiliser votre wiki].',
-       'config-regenerate' => 'Regénérer LocalSettings.php →',
-       'config-show-table-status' => 'Échec de la requête <code>SHOW TABLE STATUS</code> !',
-       'config-unknown-collation' => "'''Attention:''' La base de données effectue un classement alphabétique (''collation'') inconnu.",
-       'config-db-web-account' => "Compte de la base de données pour l'accès Web",
-       'config-db-web-help' => "Sélectionnez le nom d'utilisateur et le mot de passe que le serveur web utilisera pour se connecter au serveur de base de données pendant le fonctionnement habituel du wiki.",
-       'config-db-web-account-same' => "Utilisez le même compte que pour l'installation",
-       'config-db-web-create' => "Créez le compte s'il n'existe pas déjà",
-       'config-db-web-no-create-privs' => "Le compte que vous avez spécifié pour l'installation n'a pas de privilèges suffisants pour créer un compte.
-Le compte que vous spécifiez ici doit déjà exister.",
-       'config-mysql-engine' => 'Moteur de stockage :',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "''' Avertissement ''': vous avez sélectionné MyISAM comme moteur de stockage pour MySQL, ce qui n'est pas recommandé pour une utilisation avec MediaWiki, parce que:
- * il supporte à peine la simultanéité en raison de verrouillage de table
- * il est plus sujet à la corruption que les autres moteurs
- * le codebase MediaWiki ne gère pas toujours MyISAM comme il se doit
-Si votre installation MySQL supporte InnoDB, il est fortement recommandé que vous le choisissez plutôt. Si votre installation MySQL ne supporte pas les tables InnoDB, il est peut-être temps de faire une mise à niveau.",
-       'config-mysql-only-myisam-dep' => "'''Attention :''' MyISAM est le seul moteur de stockage disponible pour MySQL qui ne soit pas recommandé pour une utilsiation avec MédiaWiki, car :
-* il supporte très peu les accès concurrents à cause du verrouillage des tables
-* il est plus sujet à corruption que les autres moteurs
-* le code de base de MédiaWiki ne gère pas toujours MyISAM comme il faudrait
-
-Votre installation MySQL ne supporte pas InnoDB ; il est peut-être temps de la mettre à jour.",
-       'config-mysql-engine-help' => "'''InnoDB''' est presque toujours la meilleure option, car il supporte bien l'[http://fr.wikipedia.org/wiki/Ordonnancement_dans_les_syst%C3%A8mes_d%27exploitation ordonnancement].
-
-'''MyISAM''' peut être plus rapide dans les installations monoposte ou en lecture seule. Les bases de données MyISAM ont tendance à se corrompre plus souvent que celles d'InnoDB.",
-       'config-mysql-charset' => 'Jeu de caractères de la base de données :',
-       'config-mysql-binary' => 'Binaire',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "En ''mode binaire'', MediaWiki stocke le texte au format UTF-8 dans la base de données. C'est plus efficace que le ''UTF-8 mode'' de MySQL, et vous permet d'utiliser toute la gamme des caractères Unicode.
-
-En ''mode binaire'', MediaWiki stocke le texte UTF-8 dans des champs binaires de la base de données. C'est plus efficace que le ''mode UTF-8'' de MySQL, et vous permet d'utiliser toute la gamme des caractères Unicode.
-En ''mode UTF-8'', MySQL connaîtra le jeu de caractères de vos données et pourra présenter et convertir les données de manière appropriée, mais il ne vous laissera pas stocker les caractères au-dessus du [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingue de base] (en anglais).",
-       'config-site-name' => 'Nom du wiki :',
-       'config-site-name-help' => 'Il apparaîtra dans la barre de titre du navigateur et en divers autres endroits.',
-       'config-site-name-blank' => 'Entrez un nom de site.',
-       'config-project-namespace' => 'Espace de noms du projet :',
-       'config-ns-generic' => 'Projet',
-       'config-ns-site-name' => 'Même nom que le wiki : $1',
-       'config-ns-other' => 'Autre (préciser)',
-       'config-ns-other-default' => 'MonWiki',
-       'config-project-namespace-help' => "Suivant l'exemple de Wikipédia, plusieurs wikis gardent leurs pages de politique séparées de leurs pages de contenu, dans un ''espace de noms'' propre.
-Tous les titres de page de cet espace de noms commence par un préfixe défini, que vous pouvez spécifier ici.
-Traditionnellement, ce préfixe est dérivé du nom du wiki, mais il ne peut contenir des caractères de ponctuation tels que « # » ou « : ».",
-       'config-ns-invalid' => "L'espace de noms spécifié « <nowiki>$1</nowiki> » n'est pas valide.
-Spécifiez un espace de noms pour le projet.",
-       'config-ns-conflict' => "L'espace de noms spécifié « <nowiki>$1</nowiki> » est en conflit avec un espace de noms par défaut de MediaWiki.
-Choisir un autre espace de noms.",
-       'config-admin-box' => 'Compte administrateur',
-       'config-admin-name' => 'Votre nom :',
-       'config-admin-password' => 'Mot de passe :',
-       'config-admin-password-confirm' => 'Saisir à nouveau le mot de passe :',
-       'config-admin-help' => "Entrez votre nom d'utilisateur préféré ici, par exemple « Jean Blogue ».
-C'est le nom que vous utiliserez pour vous connecter au wiki.",
-       'config-admin-name-blank' => "Entrez un nom d'administrateur.",
-       'config-admin-name-invalid' => "Le nom d'utilisateur spécifié « <nowiki>$1</nowiki> » n'est pas valide.
-Indiquez un nom d'utilisateur différent.",
-       'config-admin-password-blank' => 'Entrez un mot de passe pour le compte administrateur.',
-       'config-admin-password-same' => "Le mot de passe doit être différent du nom d'utilisateur.",
-       'config-admin-password-mismatch' => 'Les deux mots de passe que vous avez saisis ne correspondent pas.',
-       'config-admin-email' => 'Adresse de courriel :',
-       'config-admin-email-help' => "Entrez une adresse de courriel ici pour vous permettre de recevoir des courriels d'autres utilisateurs du wiki, réinitialiser votre mot de passe, et être informé des modifications apportées aux pages de votre liste de suivi. Vous pouvez laisser ce champ vide.",
-       'config-admin-error-user' => "Erreur interne lors de la création d'un administrateur avec le nom « <nowiki>$1</nowiki> ».",
-       'config-admin-error-password' => "Erreur interne lors de l'inscription d'un mot de passe pour l'administrateur « <nowiki>$1</nowiki> » : <pre>$2</pre>",
-       'config-admin-error-bademail' => 'Vous avez entré une adresse de courriel invalide',
-       'config-subscribe' => "Abonnez-vous à la [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce liste d'annonce des nouvelles versions] (la page peut afficher le texte en français).",
-       'config-subscribe-help' => "Il s'agit d'une liste de diffusion à faible volume utilisée servant à annoncer les nouvelles versions, y compris les versions améliorant la sécurité du logiciel.
-Vous devriez y souscrire et mettre à jour votre version de MediaWiki lorsque de nouvelles versions sont publiées.",
-       'config-subscribe-noemail' => "Vous avez essayé de vous abonner à la liste de diffusion des communiqués, sans fournir une adresse courriel ! S'il vous plaît, fournir une adresse électronique si vous souhaitez vous abonner à la liste de diffusion.",
-       'config-almost-done' => 'Vous avez presque fini !
-Vous pouvez passer la configuration restante et installer immédiatement le wiki.',
-       'config-optional-continue' => 'Me poser davantage de questions.',
-       'config-optional-skip' => 'J’en ai assez, installer simplement le wiki.',
-       'config-profile' => 'Profil des droits d’utilisateurs :',
-       'config-profile-wiki' => 'Wiki ouvert',
-       'config-profile-no-anon' => 'Création de compte requise',
-       'config-profile-fishbowl' => 'Éditeurs autorisés seulement',
-       'config-profile-private' => 'Wiki privé',
-       'config-profile-help' => "Les wikis fonctionnent mieux lorsque vous laissez le plus de personnes possible le modifier.
-Avec MediaWiki, il est facile de vérifier les modifications récentes et de révoquer tout dommage créé par des utilisateurs débutants ou mal intentionnés.
-
-Cependant, de nombreuses autres utilisations ont été trouvées au logiciel et il n’est pas toujours facile de convaincre tout le monde des bénéfices de l’esprit wiki.
-Vous avez donc le choix.
-
-Le modèle '''{{int:config-profile-wiki}}''' autorise toute personne à modifier, y compris sans s’identifier.
-'''{{int:config-profile-no-anon}}''' fournit plus de contrôle, par l’identification, mais peut rebuter les contributeurs occasionnels.
-
-'''{{int:config-profile-fishbowl}}''' autorise la modification par les utilisateurs approuvés, mais le public peut toujours lire les pages et leur historique.
-'''{{int:config-profile-private}}''' n’autorise que les utilisateurs approuvés à voir et modifier les pages.
-
-Des configurations de droits d’utilisateurs plus complexes sont disponibles après l'installation, voir la [//www.mediawiki.org/wiki/Manual:User_rights page correspondante du manuel].",
-       'config-license' => "Droits d'auteur et licence :",
-       'config-license-none' => 'Aucune licence en bas de page',
-       'config-license-cc-by-sa' => "Creative Commons attribution partage à l'identique",
-       'config-license-cc-by' => 'Creative Commons Attribution',
-       'config-license-cc-by-nc-sa' => 'Creative Commons paternité – non commercial – partage à l’identique',
-       'config-license-cc-0' => 'Creative Commons Zero (domaine public)',
-       'config-license-gfdl' => 'GNU Free Documentation License 1.3 ou ultérieure',
-       'config-license-pd' => 'Domaine public',
-       'config-license-cc-choose' => 'Sélectionner une licence Creative Commons personnalisée',
-       'config-license-help' => "Beaucoup de wikis publics mettent l'ensemble des contributions sous [http://freedomdefined.org/Definition/Fr licence libre].
-Cela contribue à créer un sentiment d'appartenance dans leur communauté et encourage les contributions sur le long terme.
-Ce n'est généralement pas nécessaire pour un wiki privé ou d'entreprise.
-
-Si vous souhaitez utiliser des textes de Wikipédia, et souhaitez que Wikipédia réutilise des textes de votre wiki, vous devriez choisir la [http://creativecommons.org/licenses/by-sa/3.0/deed.fr licence ''Creative Commons Attribution Share Alike''] (CC-by-sa).
-
-Wikipédia a déjà été publié selon les termes de la [http://fr.wikipedia.org/wiki/Licence_de_documentation_libre_GNU ''GNU Free Documentation License''] (GFDL).
-C'est une licence valide, mais elle est difficile à comprendre. De plus, elle possède des caractéristiques qui rendent difficiles la réutilisation.",
-       'config-email-settings' => 'Paramètres de courriel',
-       'config-enable-email' => 'Activer les courriels sortants',
-       'config-enable-email-help' => 'Si vous souhaitez utiliser le courriel, vous devez [http://www.php.net/manual/en/mail.configuration.php configurer des paramètres PHP] (texte en anglais).
-Si vous ne voulez pas du service de courriel, vous pouvez le désactiver ici.',
-       'config-email-user' => "Activer les courriers électroniques d'utilisateur à utilisateur",
-       'config-email-user-help' => "Permet à tous les utilisateurs d'envoyer des courriels à d'autres utilisateurs si cela est activé dans leurs préférences.",
-       'config-email-usertalk' => 'Activer la notification des pages de discussion des utilisateurs',
-       'config-email-usertalk-help' => 'Permet aux utilisateurs de recevoir une notification en cas de modification de leurs pages de discussion, si cela est activé dans leurs préférences.',
-       'config-email-watchlist' => 'Activer la notification de la liste de suivi',
-       'config-email-watchlist-help' => "Permet aux utilisateurs de recevoir des notifications à propos des pages qu'ils ont en suivi (si cette préférence est activée).",
-       'config-email-auth' => "Activer l'authentification par courriel",
-       'config-email-auth-help' => "Si cette option est activée, les utilisateurs doivent confirmer leur adresse de courriel en utilisant l'hyperlien envoyé à chaque fois qu'ils la définissent ou la modifient.
-Seules les adresses authentifiées peuvent recevoir des courriels des autres utilisateurs ou lorsqu'il y a des notifications de modification.
-L'activation de cette option est '''recommandée''' pour les wikis publics en raison d'abus potentiels des fonctionnalités de courriels.",
-       'config-email-sender' => 'Adresse de courriel de retour :',
-       'config-email-sender-help' => "Entrez l'adresse de courriel à utiliser comme adresse de retour des courriels sortant.
-Les courriels rejetés y seront envoyés.
-De nombreux serveurs de courriels exigent au moins un [http://fr.wikipedia.org/wiki/Nom_de_domaine nom de domaine] valide.",
-       'config-upload-settings' => 'Téléchargement des images et des fichiers',
-       'config-upload-enable' => 'Activer le téléchargement des fichiers',
-       'config-upload-help' => "Le téléchargement des fichiers expose votre serveur à des risques de sécurité.
-Pour plus d'informations, lire la section [//www.mediawiki.org/wiki/Manual:Security ''Security''] du manuel d'installation (en anglais).
-
-Pour autoriser le téléchargement des fichiers, modifier le mode du sous-répertoire <code>images</code> qui se situe sous le répertoire racine de MediaWiki.
-Ensuite, activez cette option.",
-       'config-upload-deleted' => 'Répertoire pour les fichiers supprimés :',
-       'config-upload-deleted-help' => 'Choisissez un répertoire qui servira à archiver les fichiers supprimés.
-Idéalement, il ne devrait pas être accessible depuis le web.',
-       'config-logo' => 'URL du logo :',
-       'config-logo-help' => 'L’habillage par défaut de MediaWiki comprend l’espace pour un logo de 135x160 pixels au-dessus de la barre de menu latérale.
-Téléchargez une image de la taille appropriée, et entrez son URL ici.
-
-Vous pouvez utiliser <code>$wgStylePath</code> ou <code>$wgScriptPath</code> si votre logo est relatif à ces chemins.
-
-Si vous ne voulez pas de logo, laissez cette case vide.',
-       'config-instantcommons' => "Activer ''InstantCommons''",
-       'config-instantcommons-help' => "[//www.mediawiki.org/wiki/InstantCommons InstantCommons] est un service qui permet d'utiliser les images, les sons et les autres médias disponibles sur le site [//commons.wikimedia.org/ Wikimedia Commons].
-Pour se faire, il faut que MediaWiki accède à Internet.
-
-Pour plus d'informations sur ce service, y compris les instructions sur la façon de le configurer pour d'autres wikis que Wikimedia Commons, consultez le [//mediawiki.org/wiki/Manual:\$wgForeignFileRepos manuel] (en anglais).",
-       'config-cc-error' => "Le sélection d'une licence ''Creative Commons'' n'a donné aucun résultat.
-Entrez le nom de la licence manuellement.",
-       'config-cc-again' => 'Choisissez à nouveau...',
-       'config-cc-not-chosen' => "Choisissez une licence ''Creative Commons'' et cliquez sur « Continuer ».",
-       'config-advanced-settings' => 'Configuration avancée',
-       'config-cache-options' => 'Paramètres pour la mise en cache des objets:',
-       'config-cache-help' => "La mise en cache des objets améliore la vitesse de MediaWiki en mettant en cache les données fréquemment utilisées.
-Les sites de taille moyenne à grande sont fortement encouragés à l'activer. Les petits sites y verront également des avantages.",
-       'config-cache-none' => 'Aucune mise en cache (aucune fonctionnalité supprimée, mais la vitesse peut changer sur les wikis importants)',
-       'config-cache-accel' => 'Mise en cache des objets PHP (APC, XCache ou WinCache)',
-       'config-cache-memcached' => 'Utiliser Memcached (nécessite une installation et une configuration supplémentaires)',
-       'config-memcached-servers' => 'serveurs pour Memcached :',
-       'config-memcached-help' => 'Liste des adresses IP à utiliser pour Memcached.
-Elles doivent être séparés par des virgules et vous devez spécifier le port à utiliser. Par exemple :
-  127.0.0.1:11211
-  192.168.1.25:1234',
-       'config-memcache-needservers' => 'Vous avez sélectionné Memcached comme type de cache, mais ne précisez pas de serveur.',
-       'config-memcache-badip' => 'Vous avez entré une adresse IP invalide pour Memcached: $1.',
-       'config-memcache-noport' => "Vous n'avez pas entré un port pour le serveur Memcached : $1.
-Si vous ne le connaissez pas, la valeur par défaut est 11211.",
-       'config-memcache-badport' => 'Les numéros de port de Memcached sont situés entre $1 et $2.',
-       'config-extensions' => 'Extensions',
-       'config-extensions-help' => 'Les extensions énumérées ci-dessus ont été détectées dans votre répertoire <code>./extensions</code>.
-
-Elles peuvent nécessiter une configuration supplémentaire, mais vous pouvez les activer maintenant',
-       'config-install-alreadydone' => "'''Attention''': Vous semblez avoir déjà installé MediaWiki et tentez de l'installer à nouveau.
-S'il vous plaît, allez à la page suivante.",
-       'config-install-begin' => 'En appuyant sur {{int:config-continue}}, vous commencerez l\'installation de MediaWiki.
-Si vous voulez apporter des modifications, appuyez sur "{{int:config-back}}".',
-       'config-install-step-done' => 'fait',
-       'config-install-step-failed' => 'échec',
-       'config-install-extensions' => 'Inclusion des extensions',
-       'config-install-database' => 'Création de la base de données',
-       'config-install-schema' => 'Création de schéma',
-       'config-install-pg-schema-not-exist' => "Le schéma PostgreSQL n'existe pas",
-       'config-install-pg-schema-failed' => "Échec lors de la création des tables.
-Assurez-vous que l'utilisateur « $1 » peut écrire selon le schéma « $2 ».",
-       'config-install-pg-commit' => 'Validation des modifications',
-       'config-install-pg-plpgsql' => 'Vérification du langage PL/pgSQL',
-       'config-pg-no-plpgsql' => 'Vous devez installer le langage PL/pgSQL dans la base de données $1',
-       'config-pg-no-create-privs' => "Le compte que vous avez spécifié pour l'installation n'a pas suffisamment de privilèges pour créer un compte.",
-       'config-pg-not-in-role' => "Le compte que vous avez spécifié pour l'utilisateur web existe déjà !
-Le compte que vous avez spécifié pour l'installation n'est pas un super-utilisateur et n'est pas membre du rôle de l'internaute, il est donc incapable de créer des objets appartenant à l'utilisateur web.!
-
-MediaWiki exige actuellement que les tableaux soient possédés par un utilisateur web. S'il vous plaît, spécifier un autre nom de compte web, ou cliquez sur \"retour\" et spécifier un utilisateur avec les privilèges suffisants.",
-       'config-install-user' => "Création d'un utilisateur de la base de données",
-       'config-install-user-alreadyexists' => "L'utilisateur « $1 » existe déjà.",
-       'config-install-user-create-failed' => "Échec lors de la création de l'utilisateur « $1 » : $2",
-       'config-install-user-grant-failed' => "Échec lors de l'ajout de permissions à l'utilisateur « $1 » : $2",
-       'config-install-user-missing' => 'L\'utilisateur "$1" n\'existe pas.',
-       'config-install-user-missing-create' => 'L\'utilisateur "$1" n\'existe pas !
-S\'il vous plaît, cocher "Compte de créer" dans la case ci-dessous si vous voulez le créer.',
-       'config-install-tables' => 'Création des tables',
-       'config-install-tables-exist' => "'''Avertissement:''' Les tables MediaWiki semblent déjà exister.
-Création omise.",
-       'config-install-tables-failed' => "'''Erreur:''' échec lors de la création de la table avec l'erreur suivante: $1",
-       'config-install-interwiki' => 'Remplissage par défaut de la table des interwikis',
-       'config-install-interwiki-list' => 'Impossible de trouver le fichier <code>interwiki.list</code>.',
-       'config-install-interwiki-exists' => "'''Attention:''' La table des interwikis semble déjà contenir des entrées.
-La liste par défaut ne sera pas inscrite.",
-       'config-install-stats' => 'Initialisation des statistiques',
-       'config-install-keys' => 'Génération de la clé secrète',
-       'config-insecure-keys' => "'''Avertissement''' : {{PLURAL:$2|Une clé de sécurité générée ($1) pendant l'installation n'est pas complètement sécuritaire. Envisagez de la modifier manuellement.|Des clés de sécurité générées ($1) pendant l'installation ne sont pas complètement sécuritaires. Envisagez de les modifier manuellement.}}",
-       'config-install-sysop' => 'Création du compte administrateur',
-       'config-install-subscribe-fail' => "Impossible de s'abonner à mediawiki-announce : $1",
-       'config-install-subscribe-notpossible' => 'cURL n’est pas installé et allow_url_fopen n’est pas disponible.',
-       'config-install-mainpage' => 'Création de la page principale avec un contenu par défaut',
-       'config-install-extension-tables' => 'Création de tables pour les extensions activées',
-       'config-install-mainpage-failed' => 'Impossible d’insérer la page principale: $1',
-       'config-install-done' => "'''Félicitations!'''
-Vous avez réussi à installer MediaWiki.
-
-Le programme d'installation a généré <code>LocalSettings.php</code>, un fichier qui contient tous les paramètres de configuration.
-
-Si le téléchargement n'a pas été offert, ou que vous l'avez annulé, vous pouvez démarrer à nouveau le téléchargement en cliquant ce lien :
-
-$3
-
-'''Note''': Si vous ne le faites pas maintenant, ce fichier de configuration généré ne sera pas disponible plus tard si vous quittez l'installation sans le télécharger.
-
-Lorsque c'est fait, vous pouvez '''[$2 accéder à votre wiki]'''.",
-       'config-download-localsettings' => 'Télécharger <code>LocalSettings.php</code>',
-       'config-help' => 'aide',
-       'config-nofile' => 'Le fichier « $1 » est introuvable. A-t-il été supprimé ?',
-       'config-extension-link' => 'Saviez-vous que votre wiki supporte [//www.mediawiki.org/wiki/Manual:Extensions des extensions] ?
-
-Vous pouvez consulter les [//www.mediawiki.org/wiki/Category:Extensions_by_category extensions par catégorie] ou la [//www.mediawiki.org/wiki/Extension_Matrix Matrice des extensions] pourvoir la liste complète des extensions.',
-       'mainpagetext' => "'''MediaWiki a été installé avec succès.'''",
-       'mainpagedocfooter' => 'Consultez le [//meta.wikimedia.org/wiki/Aide:Contenu Guide de l’utilisateur] pour plus d’informations sur l’utilisation de ce logiciel de wiki.
-
-== Pour démarrer ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Liste des paramètres de configuration]
-* [//www.mediawiki.org/wiki/Manual:FAQ/fr FAQ sur MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Liste de discussion sur les distributions de MediaWiki]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Adaptez MediaWiki dans votre langue]',
-);
-
-/** Cajun French (français cadien)
- */
-$messages['frc'] = array(
-       'mainpagetext' => "'''Vous avez bien installé MediaWiki.'''",
-       'mainpagedocfooter' => 'Lisez la [//meta.wikimedia.org/wiki/Help:Contents Guide des Useurs] pour apprendre à user le wiki software.
-
-== Pour Commencer ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Réglage]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki: Questions Souvent Posées]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki Liste à Malle]', # Fuzzy
-);
-
-/** Franco-Provençal (arpetan)
- * @author ChrisPtDe
- */
-$messages['frp'] = array(
-       'config-desc' => 'La programeria d’enstalacion de MediaWiki',
-       'config-title' => 'Enstalacion de MediaWiki $1',
-       'config-information' => 'Enformacions',
-       'config-localsettings-key' => 'Cllâf de misa a jorn :',
-       'config-session-error' => 'Èrror pendent l’emmodâ de la sèance : $1',
-       'config-your-language' => 'Voutra lengoua :',
-       'config-wiki-language' => 'Lengoua du vouiqui :',
-       'config-back' => '← Retôrn',
-       'config-continue' => 'Continuar →',
-       'config-page-language' => 'Lengoua',
-       'config-page-welcome' => 'Benvegnua dessus MediaWiki !',
-       'config-page-dbconnect' => 'Sè branchiér a la bâsa de balyês',
-       'config-page-upgrade' => 'Betar a jorn l’enstalacion ègzistenta',
-       'config-page-dbsettings' => 'Paramètres de la bâsa de balyês',
-       'config-page-name' => 'Nom',
-       'config-page-options' => 'Chouèx',
-       'config-page-install' => 'Enstalar',
-       'config-page-complete' => 'Chavonâ !',
-       'config-page-restart' => 'Tornar emmodar l’enstalacion',
-       'config-page-readme' => 'Liéséd-mè',
-       'config-page-releasenotes' => 'Notes de publecacion',
-       'config-page-copying' => 'Copia',
-       'config-page-upgradedoc' => 'Misa a jorn',
-       'config-page-existingwiki' => 'Vouiqui ègzistent',
-       'config-env-php' => 'PHP $1 est enstalâ.',
-       'config-env-php-toolow' => 'PHP $1 est enstalâ.
-Portant, MediaWiki at fôta de PHP $2 ou ben ples hôt.',
-       'config-memory-raised' => 'Lo paramètre <code>memory_limit</code> de PHP ére a $1, portâ a $2.',
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] est enstalâ',
-       'config-apc' => '[http://www.php.net/apc APC] est enstalâ',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] est enstalâ',
-       'config-diff3-bad' => 'GNU diff3 entrovâblo.',
-       'config-db-type' => 'Tipo de bâsa de balyês :',
-       'config-db-host' => 'Hôto de la bâsa de balyês :',
-       'config-db-host-oracle' => 'TNS de la bâsa de balyês :',
-       'config-db-wiki-settings' => 'Identifiar cél vouiqui',
-       'config-db-name' => 'Nom de la bâsa de balyês :',
-       'config-db-name-oracle' => 'Plan de bâsa de balyês :',
-       'config-db-install-account' => 'Compto usanciér por l’enstalacion',
-       'config-db-username' => 'Nom d’usanciér de la bâsa de balyês :',
-       'config-db-password' => 'Contresegno de la bâsa de balyês :',
-       'config-db-wiki-account' => 'Compto usanciér por l’opèracion normala',
-       'config-db-prefix' => 'Prèfixo de les trâbles de la bâsa de balyês :',
-       'config-db-charset' => 'Juè de caractèros de la bâsa de balyês',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binèro',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 rètrocompatiblo UTF-8',
-       'config-mysql-old' => 'MySQL $1 ou ben ples novél est nècèssèro, vos avéd $2.',
-       'config-db-port' => 'Pôrt de la bâsa de balyês :',
-       'config-db-schema' => 'Plan por MediaWiki',
-       'config-pg-test-error' => "Empossiblo de sè branchiér a la bâsa de donâs '''$1''' : $2",
-       'config-sqlite-dir' => 'Dossiér de les balyês SQLite :',
-       'config-oracle-def-ts' => "Èspâço de stocâjo (''tablespace'') per dèfôt :",
-       'config-oracle-temp-ts' => "Èspâço de stocâjo (''tablespace'') temporèro :",
-       'config-header-mysql' => 'Paramètres de MySQL',
-       'config-header-postgres' => 'Paramètres de PostgreSQL',
-       'config-header-sqlite' => 'Paramètres de SQLite',
-       'config-header-oracle' => 'Paramètres d’Oracle',
-       'config-invalid-db-type' => 'Tipo de bâsa de balyês envalido',
-       'config-missing-db-name' => 'Vos dête buchiér una valor por « Nom de la bâsa de balyês »',
-       'config-missing-db-host' => 'Vos dête buchiér una valor por « Hôto de la bâsa de balyês »',
-       'config-missing-db-server-oracle' => 'Vos dête buchiér una valor por « TNS de la bâsa de balyês »',
-       'config-sqlite-readonly' => 'Lo fichiér <code>$1</code> est pas accèssiblo en ècritura.',
-       'config-regenerate' => 'Refâre LocalSettings.php →',
-       'config-show-table-status' => 'Falyita de la requéta <code>SHOW TABLE STATUS</code> !',
-       'config-db-web-account' => 'Compto de la bâsa de balyês por l’accès vouèbe',
-       'config-db-web-account-same' => 'Utilisâd lo mémo compto que por l’enstalacion',
-       'config-db-web-create' => 'Féte lo compto s’ègziste p’oncor',
-       'config-mysql-engine' => 'Motor de stocâjo :',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-charset' => 'Juè de caractèros de la bâsa de balyês :',
-       'config-mysql-binary' => 'Binèro',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'Nom du vouiqui :',
-       'config-site-name-blank' => 'Buchiéd un nom de seto.',
-       'config-project-namespace' => 'Èspâço de noms du projèt :',
-       'config-ns-generic' => 'Projèt',
-       'config-ns-site-name' => 'Mémo nom que lo vouiqui : $1',
-       'config-ns-other' => 'Ôtro (spècefiar)',
-       'config-ns-other-default' => 'MonVouiqui',
-       'config-admin-box' => 'Compto administrator',
-       'config-admin-name' => 'Voutron nom :',
-       'config-admin-password' => 'Contresegno :',
-       'config-admin-password-confirm' => 'Tornar buchiér lo contresegno :',
-       'config-admin-name-blank' => 'Buchiéd un nom d’administrator.',
-       'config-admin-password-blank' => 'Buchiéd un contresegno por lo compto administrator.',
-       'config-admin-email' => 'Adrèce èlèctronica :',
-       'config-optional-continue' => 'Mè posar més de quèstions.',
-       'config-profile' => 'Profil des drêts d’usanciér :',
-       'config-profile-wiki' => 'Vouiqui tradicionâl', # Fuzzy
-       'config-profile-no-anon' => 'Crèacion de compto nècèssèra',
-       'config-profile-fishbowl' => 'Solament los èditors ôtorisâs',
-       'config-profile-private' => 'Vouiqui privâ',
-       'config-license' => 'Drêts d’ôtor et licence :',
-       'config-license-none' => 'Gins de licence d’avâl la pâge',
-       'config-license-cc-by-sa' => 'Creative Commons patèrnitât - partâjo a l’identico',
-       'config-license-cc-by' => 'Creative Commons patèrnitât',
-       'config-license-cc-by-nc-sa' => 'Creative Commons patèrnitât pas comèrciâla - partâjo a l’identico',
-       'config-license-cc-0' => 'Creative Commons Zero (domêno publico)',
-       'config-license-gfdl' => 'Licence de documentacion libra GNU 1.3 ou ben ples novèla',
-       'config-license-pd' => 'Domêno publico',
-       'config-license-cc-choose' => 'Chouèsir una licence Creative Commons pèrsonalisâ',
-       'config-email-settings' => 'Paramètres de mèssageria èlèctronica',
-       'config-enable-email' => 'Activar los mèssâjos que sôrtont',
-       'config-email-user' => 'Activar los mèssâjos d’usanciér a usanciér',
-       'config-email-usertalk' => 'Activar la notificacion de les pâges de discussion ux usanciérs',
-       'config-email-watchlist' => 'Activar la notificacion de la lista de survelyence',
-       'config-email-auth' => 'Activar l’ôtenticacion per mèssageria èlèctronica',
-       'config-email-sender' => 'Adrèce èlèctronica de retôrn :',
-       'config-upload-settings' => 'Tèlèchargement de les émâges et des fichiérs',
-       'config-upload-enable' => 'Activar lo tèlèchargement des fichiérs',
-       'config-upload-deleted' => 'Dossiér por los fichiérs suprimâs :',
-       'config-logo' => 'URL du logô :',
-       'config-instantcommons' => 'Activar Instant Commons',
-       'config-cc-again' => 'Tornâd chouèsir...',
-       'config-advanced-settings' => 'Configuracion avanciê',
-       'config-cache-options' => 'Paramètres por la misa en cache de les chouses :',
-       'config-cache-accel' => 'Misa en cache de les chouses PHP (APC, XCache ou ben WinCache)',
-       'config-memcached-servers' => 'Sèrvors por memcached :',
-       'config-extensions' => 'Èxtensions',
-       'config-install-step-done' => 'fêt',
-       'config-install-step-failed' => 'falyita',
-       'config-install-extensions' => 'Encllusion de les èxtensions',
-       'config-install-database' => 'Crèacion de la bâsa de balyês',
-       'config-install-schema' => 'Crèacion de plan',
-       'config-install-pg-schema-not-exist' => 'Lo plan PostgreSQL ègziste pas',
-       'config-install-pg-commit' => 'Validacion des changements',
-       'config-install-pg-plpgsql' => 'Contrôlo du lengâjo PL/pgSQL',
-       'config-install-user' => 'Crèacion d’un usanciér de la bâsa de balyês',
-       'config-install-user-alreadyexists' => 'L’usanciér « $1 » ègziste ja',
-       'config-install-user-create-failed' => 'Falyita pendent la crèacion de l’usanciér « $1 » : $2',
-       'config-install-user-grant-failed' => 'Falyita pendent l’aponsa de pèrmissions a l’usanciér « $1 » : $2',
-       'config-install-tables' => 'Crèacion de les trâbles',
-       'config-install-interwiki' => 'Remplissâjo per dèfôt de la trâbla des entèrvouiquis',
-       'config-install-interwiki-list' => 'Empossiblo de trovar lo fichiér <code>interwiki.list</code>.',
-       'config-install-stats' => 'Inicialisacion de les statistiques',
-       'config-install-keys' => 'G·ènèracion de les cllâfs secrètes',
-       'config-install-sysop' => 'Crèacion du compto administrator',
-       'config-install-subscribe-fail' => 'Empossiblo de s’abonar a mediawiki-announce : $1',
-       'config-install-mainpage' => 'Crèacion de la pâge principâla avouéc un contegnu per dèfôt',
-       'config-install-extension-tables' => 'Crèacion de trâbles por les èxtensions activâs',
-       'config-install-mainpage-failed' => 'Empossiblo d’entrebetar la pâge principâla : $1',
-       'config-download-localsettings' => 'Tèlèchargiér <code>LocalSettings.php</code>',
-       'config-help' => 'éde',
-       'mainpagetext' => "'''MediaWiki at étâ enstalâ avouéc reusséta.'''",
-       'mainpagedocfooter' => 'Vêde lo [//meta.wikimedia.org/wiki/Aide:Contenu guido d’usanciér] por més d’enformacions sur l’usâjo de la programeria vouiqui.
-
-== Emmodar avouéc MediaWiki ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista des paramètres de configuracion]
-* [//www.mediawiki.org/wiki/Manual:FAQ/fr FDQ sur MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussion sur les distribucions de MediaWiki]', # Fuzzy
-);
-
-/** Northern Frisian (Nordfriisk)
- * @author Murma174
- * @author Pyt
- */
-$messages['frr'] = array(
-       'mainpagetext' => "'''MediaWiki wörd ma erfolch instaliird.'''",
-       'mainpagedocfooter' => "Consult the [//meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.
-
-== Getting started ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Localise MediaWiki for your language]",
-);
-
-/** Friulian (furlan)
- */
-$messages['fur'] = array(
-       'mainpagetext' => "'''MediaWiki e je stade instalade cun sucès.'''",
-);
-
-/** Western Frisian (Frysk)
- */
-$messages['fy'] = array(
-       'mainpagetext' => "'''MediaWiki-program goed ynstallearre.'''",
-       'mainpagedocfooter' => "Rieplachtsje de [//meta.wikimedia.org/wiki/Help:Ynhâldsopjefte hantlieding] foar ynformaasje oer it gebrûk fan 'e wikisoftware.
-
-== Mear help oer Mediawiki ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings List mei ynstellings]
-* [//www.mediawiki.org/wiki/Manual:FAQ Faak stelde fragen (FAQ)]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglist foar oankundigings fan nije ferzjes]", # Fuzzy
-);
-
-/** Irish (Gaeilge)
- * @author පසිඳු කාවින්ද
- */
-$messages['ga'] = array(
-       'config-page-language' => 'Teanga',
-       'config-page-name' => 'Ainm',
-       'config-admin-password' => "D'fhocal faire:",
-       'config-help' => 'Cuidiú',
-       'mainpagetext' => "'''D'éirigh le suiteáil MediaWiki.'''",
-       'mainpagedocfooter' => 'Féach ar [//meta.wikimedia.org/wiki/MediaWiki_localisation doiciméid um conas an chomhéadán a athrú]
-agus an [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Lámhleabhar úsáideora] chun cabhair úsáide agus fíoraíochta a fháil.', # Fuzzy
-);
-
-/** Gagauz (Gagauz)
- */
-$messages['gag'] = array(
-       'mainpagetext' => "'''MediaWiki başarılan kuruldu.'''",
-       'mainpagedocfooter' => "Vikilän iş uurunda bilgi almaa için [//meta.wikimedia.org/wiki/Help:Contents User's Guide] sayfasına bakınız
-
-== Eni başlayanlar için ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
-);
-
-/** Simplified Gan script (赣语(简体)‎)
- */
-$messages['gan-hans'] = array(
-       'mainpagetext' => "'''安装正MediaWiki喽。'''",
-       'mainpagedocfooter' => '参看[//meta.wikimedia.org/wiki/Help:Contents 用户指南]里头会话到啷用wiki软件
-
-== 开始使用 ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置设定列表]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki 平常问题解答]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 发布email清单]', # Fuzzy
-);
-
-/** Traditional Gan script (贛語(繁體)‎)
- * @author Symane
- */
-$messages['gan-hant'] = array(
-       'mainpagetext' => "'''安裝正MediaWiki哩。'''",
-       'mainpagedocfooter' => '參看[//meta.wikimedia.org/wiki/Help:Contents 用戶指南]裡頭會話到啷用wiki軟件
-
-== 開始使用 ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置設定列表]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki 平常問題解答]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈email清單]', # Fuzzy
-);
-
-/** Scottish Gaelic (Gàidhlig)
- * @author Akerbeltz
- */
-$messages['gd'] = array(
-       'mainpagetext' => "'''Chaidh MediaWiki a stàladh gu soirbheachail.'''",
-       'mainpagedocfooter' => "Cuir sùil air [//meta.wikimedia.org/wiki/Help:Contents treòir nan cleachdaichean] airson fiosrachadh mu chleachdadh a' bhathar-bhog wiki.
-
-== Toiseach tòiseachaidh ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Liosta suidheachadh nan roghainnean]
-* [//www.mediawiki.org/wiki/Manual:FAQ CÀBHA MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Liosta puist nan sgaoilidhean MediaWiki]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Cuir do chànan air MediaWiki]",
-);
-
-/** Galician (galego)
- * @author Elisardojm
- * @author Toliño
- * @author 아라
- */
-$messages['gl'] = array(
-       'config-desc' => 'O programa de instalación de MediaWiki',
-       'config-title' => 'Instalación de MediaWiki $1',
-       'config-information' => 'Información',
-       'config-localsettings-upgrade' => 'Detectouse un ficheiro <code>LocalSettings.php</code>.
-Para actualizar esta instalación, introduza o valor de <code>$wgUpgradeKey</code> na caixa.
-Pode atopalo en <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'Detectouse un ficheiro <code>LocalSettings.php</code>.
-Para actualizar esta instalación, execute <code>update.php</code>',
-       'config-localsettings-key' => 'Clave de actualización:',
-       'config-localsettings-badkey' => 'A clave dada é incorrecta',
-       'config-upgrade-key-missing' => 'Detectouse unha instalación existente de MediaWiki.
-Para actualizar esta instalación, inclúa esta liña ao final do ficheiro <code>LocalSettings.php</code>:
-
-$1',
-       'config-localsettings-incomplete' => 'Semella que o ficheiro <code>LocalSettings.php</code> existente está incompleto.
-A variable $1 non está establecida.
-Modifique o ficheiro <code>LocalSettings.php</code> de xeito que a variable quede establecida e prema en "{{int:Config-continue}}".',
-       'config-localsettings-connection-error' => 'Atopouse un erro ao conectar coa base de datos empregando a configuración especificada no ficheiro <code>LocalSettings.php</code> ou no ficheiro <code>AdminSettings.php</code>. Corrixa esta configuración e inténteo de novo.
-
-$1',
-       'config-session-error' => 'Erro ao iniciar a sesión: $1',
-       'config-session-expired' => 'Semella que os seus datos da sesión caducaron.
-As sesións están configuradas para unha duración de $1.
-Pode incrementar isto fixando <code>session.gc_maxlifetime</code> en php.ini.
-Reinicie o proceso de instalación.',
-       'config-no-session' => 'Perdéronse os datos da súa sesión!
-Comprobe o seu php.ini e asegúrese de que en <code>session.save_path</code> está definido un directorio correcto.',
-       'config-your-language' => 'A súa lingua:',
-       'config-your-language-help' => 'Seleccione a lingua que se empregará durante o proceso de instalación.',
-       'config-wiki-language' => 'Lingua do wiki:',
-       'config-wiki-language-help' => 'Seleccione a lingua que predominará no wiki.',
-       'config-back' => '← Volver',
-       'config-continue' => 'Continuar →',
-       'config-page-language' => 'Lingua',
-       'config-page-welcome' => 'Benvido a MediaWiki!',
-       'config-page-dbconnect' => 'Conectarse á base de datos',
-       'config-page-upgrade' => 'Actualizar a instalación actual',
-       'config-page-dbsettings' => 'Configuración da base de datos',
-       'config-page-name' => 'Nome',
-       'config-page-options' => 'Opcións',
-       'config-page-install' => 'Instalar',
-       'config-page-complete' => 'Completo!',
-       'config-page-restart' => 'Reiniciar a instalación',
-       'config-page-readme' => 'Léame',
-       'config-page-releasenotes' => 'Notas de lanzamento',
-       'config-page-copying' => 'Copiar',
-       'config-page-upgradedoc' => 'Actualizar',
-       'config-page-existingwiki' => 'Wiki existente',
-       'config-help-restart' => 'Quere eliminar todos os datos gardados e reiniciar o proceso de instalación?',
-       'config-restart' => 'Si, reiniciala',
-       'config-welcome' => '=== Comprobación da contorna ===
-Cómpre realizar agora unhas comprobacións básicas para ver se a contorna é axeitada para a instalación de MediaWiki.
-Lembre incluír esta información se necesita axuda para completar a instalación.',
-       'config-copyright' => "=== Dereitos de autor e termos de uso ===
-
-$1
-
-Este programa é software libre; pode redistribuílo e/ou modificalo segundo os termos da licenza pública xeral GNU publicada pola Free Software Foundation; versión 2 ou (na súa escolla) calquera outra posterior.
-
-Este programa distribúese coa esperanza de que poida ser útil, pero '''sen garantía ningunha'''; nin sequera a garantía implícita de '''comercialización''' ou '''adecuación a unha finalidade específica'''.
-Olle a licenza pública xeral GNU para obter máis detalles.
-
-Debería recibir <doclink href=Copying>unha copia da licenza pública xeral GNU</doclink> xunto ao programa; se non é así, escriba á Free Software Foundation, Inc., rúa Franklin, número 51, quinto andar, Boston, Massachusetts, 02110-1301, Estados Unidos de América ou [http://www.gnu.org/copyleft/gpl.html lea a licenza en liña].",
-       'config-sidebar' => '* [//www.mediawiki.org/wiki/MediaWiki/gl Páxina principal de MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents Guía de usuario]
-* [//www.mediawiki.org/wiki/Manual:Contents Guía de administrador]
-* [//www.mediawiki.org/wiki/Manual:FAQ Preguntas máis frecuentes]
-----
-* <doclink href=Readme>Léame</doclink>
-* <doclink href=ReleaseNotes>Notas de lanzamento</doclink>
-* <doclink href=Copying>Copia</doclink>
-* <doclink href=UpgradeDoc>Actualizacións</doclink>',
-       'config-env-good' => 'Rematou a comprobación da contorna.
-Pode instalar MediaWiki.',
-       'config-env-bad' => 'Rematou a comprobación da contorna.
-Non pode instalar MediaWiki.',
-       'config-env-php' => 'Está instalado o PHP $1.',
-       'config-env-php-toolow' => 'Está instalado o PHP $1.
-Porén, MediaWiki necesita o PHP $2 ou superior.',
-       'config-unicode-using-utf8' => 'Usando utf8_normalize.so de Brion Vibber para a normalización Unicode.',
-       'config-unicode-using-intl' => 'Usando a [http://pecl.php.net/intl extensión intl PECL] para a normalización Unicode.',
-       'config-unicode-pure-php-warning' => "'''Atención:''' A [http://pecl.php.net/intl extensión intl PECL] non está dispoñible para manexar a normalización Unicode; volvendo á implementación lenta de PHP puro.
-Se o seu sitio posúe un alto tráfico de visitantes, debería ler un chisco sobre a [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalización Unicode].",
-       'config-unicode-update-warning' => "'''Atención:''' A versión instalada da envoltura de normalización Unicode emprega unha versión vella da biblioteca [http://site.icu-project.org/ do proxecto ICU].
-Debería [//www.mediawiki.org/wiki/Unicode_normalization_considerations actualizar] se o uso de Unicode é importante para vostede.",
-       'config-no-db' => 'Non se puido atopar un controlador axeitado para a base de datos! Necesita instalar un controlador de base de datos para PHP.
-Os tipos de base de datos admitidos son os seguintes: $1.
-
-Se está nun aloxamento compartido, pregunte ao seu provedor de hospedaxe para instalar un controlador de base de datos axeitado.
-Se compilou o PHP vostede mesmo, reconfigúreo activando un cliente de base de datos, por exemplo, usando <code>./configure --with-mysql</code>.
-Se instalou o PHP desde un paquete Debian ou Ubuntu, entón tamén necesita instalar o módulo php5-mysql.',
-       'config-outdated-sqlite' => "'''Atención:''' Ten o SQLite $1, que é inferior á versión mínima necesaria: $2. O SQLite non estará dispoñible.",
-       'config-no-fts3' => "'''Atención:''' O SQLite está compilado sen o [//sqlite.org/fts3.html módulo FTS3]; as características de procura non estarán dispoñibles nesta instalación.",
-       'config-register-globals' => "'''Atención: A opción PHP <code>[http://php.net/register_globals register_globals]</code> está activada.'''
-'''Desactívea se pode.'''
-MediaWiki funcionará, pero o seu servidor está exposto a potenciais vulnerabilidades de seguridade.",
-       'config-magic-quotes-runtime' => "'''Erro fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] está activado!'''
-Esta opción corrompe os datos de entrada de xeito imprevisible.
-Non pode instalar ou empregar MediaWiki a menos que esta opción estea desactivada.",
-       'config-magic-quotes-sybase' => "'''Erro fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] está activado!'''
-Esta opción corrompe os datos de entrada de xeito imprevisible.
-Non pode instalar ou empregar MediaWiki a menos que esta opción estea desactivada.",
-       'config-mbstring' => "'''Erro fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] está activado!'''
-Esta opción causa erros e pode corromper os datos de xeito imprevisible.
-Non pode instalar ou empregar MediaWiki a menos que esta opción estea desactivada.",
-       'config-ze1' => "'''Erro fatal: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] está activado!'''
-Esta opción causa erros horribles en MediaWiki.
-Non pode instalar ou empregar MediaWiki a menos que esta opción estea desactivada.",
-       'config-safe-mode' => "'''Atención:''' O [http://www.php.net/features.safe-mode safe mode] do PHP está activado.
-Isto pode causar problemas, particularmente se emprega cargas de ficheiros e soporte de <code>math</code>.",
-       'config-xml-bad' => 'Falta o módulo XML do PHP.
-MediaWiki necesita funcións neste módulo e non funcionará con esta configuración.
-Se está executando o Mandrake, instale o paquete php-xml.',
-       'config-pcre' => 'Semella que falta o módulo de soporte PCRE.
-MediaWiki necesita que funcionen as expresións regulares compatibles co Perl.',
-       'config-pcre-no-utf8' => "'''Erro fatal:''' Semella que o módulo PCRE do PHP foi compilado sen o soporte PCRE_UTF8.
-MediaWiki necesita soporte UTF-8 para funcionar correctamente.",
-       'config-memory-raised' => 'O parámetro <code>memory_limit</code> do PHP é $1. Aumentado a $2.',
-       'config-memory-bad' => "'''Atención:''' O parámetro <code>memory_limit</code> do PHP é $1.
-Probablemente é un valor baixo de máis.
-A instalación pode fallar!",
-       'config-ctype' => "'''Erro fatal:''' O PHP debe compilarse co soporte para a [http://www.php.net/manual/en/ctype.installation.php extensión Ctype].",
-       'config-json' => "'''Erro fatal:''' O PHP compilouse sen o soporte de JSON.
-Debe instalar ben a extensión JSON do PHP ou a extensión [http://pecl.php.net/package/jsonc PECL jsonc] antes de instalar MediaWiki.
-* A extensión do PHP está incluída en Red Hat Enterprise Linux (CentOS) 5 e 6, mais debe activarse <code>/etc/php.ini</code> ou <code>/etc/php.d/json.ini</code>.
-* Algunhas distribucións do Linux lanzadas despois de maio de 2013 omiten a extensión do PHP, pero inclúen a extensión PECL como <code>php5-json</code> ou <code>php-pecl-jsonc</code>.",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] está instalado',
-       'config-apc' => '[http://www.php.net/apc APC] está instalado',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] está instalado',
-       'config-no-cache' => "'''Atención:''' Non se puido atopar [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] ou [http://www.iis.net/download/WinCacheForPhp WinCache].
-A caché de obxectos está desactivada.",
-       'config-mod-security' => "'''Atención:''' O seu servidor web ten o [http://modsecurity.org/ mod_security] activado. Se estivese mal configurado, pode causar problemas a MediaWiki ou calquera outro software que permita aos usuarios publicar contidos arbitrarios.
-Olle a [http://modsecurity.org/documentation/ documentación do mod_security] ou póñase en contacto co soporte do seu servidor se atopa erros aleatorios.",
-       'config-diff3-bad' => 'GNU diff3 non se atopou.',
-       'config-git' => 'Atopouse o software de control da versión de Git: <code>$1</code>.',
-       'config-git-bad' => 'Non se atopou o software de control da versión de Git.',
-       'config-imagemagick' => 'ImageMagick atopado: <code>$1</code>.
-As miniaturas de imaxes estarán dispoñibles se activa as cargas.',
-       'config-gd' => 'Atopouse a biblioteca gráfica GD integrada.
-As miniaturas de imaxes estarán dispoñibles se activa as cargas.',
-       'config-no-scaling' => 'Non se puido atopar a biblioteca GD ou ImageMagick.
-As miniaturas de imaxes estarán desactivadas.',
-       'config-no-uri' => "'''Erro:''' Non se puido determinar o URI actual.
-Instalación abortada.",
-       'config-no-cli-uri' => "'''Aviso:''' Non se especificou ningún --scriptpath; por defecto, usarase: <code>$1</code>.",
-       'config-using-server' => 'Usando o nome do servidor "<nowiki>$1</nowiki>".',
-       'config-using-uri' => 'Usando o URL do servidor "<nowiki>$1$2</nowiki>".',
-       'config-uploads-not-safe' => "'''Atención:''' O seu directorio por defecto para as cargas, <code>$1</code>, é vulnerable a execucións arbitrarias de escrituras.
-Aínda que MediaWiki comproba todos os ficheiros cargados por se houbese ameazas de seguridade, é amplamente recomendable [//www.mediawiki.org/wiki/Manual:Security#Upload_security pechar esta vulnerabilidade de seguridade] antes de activar as cargas.",
-       'config-no-cli-uploads-check' => "'''Atención:''' Durante a instalación CLI, o seu directorio por defecto para as cargas, <code>$1</code>, non se comproba fronte a posibles vulnerabilidades de execucións arbitrarias de escrituras.",
-       'config-brokenlibxml' => 'O seu sistema ten unha combinación de versións de PHP e libxml2 que pode ser problemático e causar corrupción de datos en MediaWiki e outras aplicacións web.
-Actualice o sistema á versión 5.2.9 ou posterior do PHP e á 2.7.3 ou posterior de libxml2 ([//bugs.php.net/bug.php?id=45996 erro presentado co PHP]).
-Instalación abortada.',
-       'config-using531' => 'O PHP $1 non é compatible con MediaWiki debido a un erro que afecta aos parámetros de referencia de <code>__call()</code>.
-Actualice o sistema á versión 5.3.2 ou posterior do PHP ou volva á versión 5.3.0 do PHP para arranxar o problema.
-Instalación abortada.',
-       'config-suhosin-max-value-length' => 'Suhosin está instalado e limita o parámetro GET <code>length</code> a $1 bytes.
-O compoñente ResourceLoader (xestor de recursos) de MediaWiki traballa neste límite, pero este prexudica o rendemento.
-Se é posible, debería establecer <code>suhosin.get.max_value_length</code> no valor 1024 ou superior en <code>php.ini</code> e establecer <code>$wgResourceLoaderMaxQueryLength</code> no mesmo valor en <code>LocalSettings.php</code>.',
-       'config-db-type' => 'Tipo de base de datos:',
-       'config-db-host' => 'Servidor da base de datos:',
-       'config-db-host-help' => 'Se o servidor da súa base de datos está nun servidor diferente, escriba o nome do servidor ou o enderezo IP aquí.
-
-Se está usando un aloxamento web compartido, o seu provedor de hospedaxe debe darlle o nome de servidor correcto na súa documentación.
-
-Se está a realizar a instalación nun servidor de Windows con MySQL, o nome "localhost" pode non valer como servidor. Se non funcionase, inténteo con "127.0.0.1" como enderezo IP local.
-
-Se está usando PostgreSQL, deixe este campo en branco para facer a conexión a través do conectador Unix.',
-       'config-db-host-oracle' => 'TNS da base de datos:',
-       'config-db-host-oracle-help' => 'Insira un [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm nome de conexión local] válido; cómpre que haxa visible un ficheiro tnsnames.ora para esta instalación.<br />Se está a empregar bibliotecas cliente versión 10g ou máis recentes, tamén pode usar o método de atribución de nomes [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].',
-       'config-db-wiki-settings' => 'Identificar o wiki',
-       'config-db-name' => 'Nome da base de datos:',
-       'config-db-name-help' => 'Escolla un nome que identifique o seu wiki.
-Non debe conter espazos.
-
-Se está usando un aloxamento web compartido, o seu provedor de hospedaxe daralle un nome específico para a base de datos ou deixaralle crear unha a través do panel de control.',
-       'config-db-name-oracle' => 'Esquema da base de datos:',
-       'config-db-account-oracle-warn' => 'Existen tres escenarios soportados para a instalación de Oracle como fin da base de datos:
-
-Se quere crear unha conta para a base de datos como parte do proceso de instalación, proporcione unha conta co papel SYSDBA e especifique as credenciais desexadas para a conta; senón pode crear a conta manualmente e dar só esa conta (se ten os permisos necesarios para crear os obxectos do esquema) ou fornecer dous contas diferentes, unha con privilexios de creación e outra restrinxida para o acceso á web.
-
-A escritura para crear unha conta cos privilexios necesarios atópase no directorio "maintenance/oracle/" desta instalación. Teña en conta que o emprego de contas restrinxidas desactivará todas as operacións de mantemento da conta predeterminada.',
-       'config-db-install-account' => 'Conta de usuario para a instalación',
-       'config-db-username' => 'Nome de usuario da base de datos:',
-       'config-db-password' => 'Contrasinal da base de datos:',
-       'config-db-password-empty' => 'Introduza un contrasinal para o novo usuario da base de datos: $1.
-Malia que é posible crear usuarios sen contrasinal, esta práctica non é segura.',
-       'config-db-install-username' => 'Escriba o nome de usuario que empregará para conectarse á base de datos durante o proceso de instalación. Este non é o nome de usuario da conta de MediaWiki, trátase do nome de usuario para a súa base de datos.',
-       'config-db-install-password' => 'Escriba o contrasinal que empregará para conectarse á base de datos durante o proceso de instalación. Este non é o contrasinal da conta de MediaWiki, trátase do contrasinal para a súa base de datos.',
-       'config-db-install-help' => 'Introduza o nome de usuario e contrasinal que se usará para conectar á base de datos durante o proceso de instalación.',
-       'config-db-account-lock' => 'Use o mesmo nome de usuario e contrasinal despois do proceso de instalación',
-       'config-db-wiki-account' => 'Conta de usuario para despois do proceso de instalación',
-       'config-db-wiki-help' => 'Introduza o nome de usuario e mais o contrasinal que se usarán para conectar á base de datos durante o funcionamento habitual do wiki.
-Se a conta non existe e a conta de instalación ten privilexios suficientes, esa conta de usuario será creada cos privilexios mínimos necesarios para o funcionamento do wiki.',
-       'config-db-prefix' => 'Prefixo das táboas da base de datos:',
-       'config-db-prefix-help' => 'Se necesita compartir unha base de datos entre varios wikis ou entre MediaWiki e outra aplicación web, pode optar por engadir un prefixo a todos os nomes da táboa para evitar conflitos.
-Non utilice espazos.
-
-O normal é que este campo quede baleiro.',
-       'config-db-charset' => 'Conxunto de caracteres da base de datos',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binario',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 retrocompatible UTF-8',
-       'config-charset-help' => "'''Atención:''' Se emprega '''backwards-compatible UTF-8''' no MySQL 4.1+ e posteriormente realiza unha copia de seguridade da base de datos con <code>mysqldump</code>, pode destruír todos os caracteres que non sexan ASCII, corrompendo de xeito irreversible as súas copias!
-
-No '''modo binario''', MediaWiki almacena texto UTF-8 na base de datos en campos binarios.
-Isto é máis eficaz ca o modo UTF-8 de MySQL e permítelle usar o rango completo de caracteres Unicode.
-No '''modo UTF-8''', MySQL saberá o xogo de caracteres dos seus datos e pode presentar e converter os datos de maneira axeitada,
-pero non lle deixará gardar caracteres por riba do [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingüe básico].",
-       'config-mysql-old' => 'Necesítase MySQL $1 ou posterior; ten a versión $2.',
-       'config-db-port' => 'Porto da base de datos:',
-       'config-db-schema' => 'Esquema para MediaWiki',
-       'config-db-schema-help' => 'O normal é que este esquema sexa correcto.
-Cámbieo soamente se sabe que é necesario.',
-       'config-pg-test-error' => "Non se pode conectar coa base de datos '''$1''': $2",
-       'config-sqlite-dir' => 'Directorio de datos SQLite:',
-       'config-sqlite-dir-help' => "SQLite recolle todos os datos nun ficheiro único.
-
-O servidor web debe ter permisos sobre o directorio para que poida escribir nel durante a instalación.
-
-Ademais, o servidor '''non''' debe ser accesible a través da web, motivo polo que non está no mesmo lugar ca os ficheiros PHP.
-
-Asemade, o programa de instalación escribirá un ficheiro <code>.htaccess</code>, pero se erra alguén pode obter acceso á súa base de datos.
-Isto inclúe datos de usuario (enderezos de correo electrónico, contrasinais codificados), así como revisións borradas e outros datos restrinxidos no wiki.
-
-Considere poñer a base de datos nun só lugar, por exemplo en <code>/var/lib/mediawiki/oseuwiki</code>.",
-       'config-oracle-def-ts' => 'Espazo de táboas por defecto:',
-       'config-oracle-temp-ts' => 'Espazo de táboas temporal:',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-support-info' => 'MediaWiki soporta os seguintes sistemas de bases de datos:
-
-$1
-
-Se non ve listado a continuación o sistema de base de datos que intenta usar, siga as instrucións ligadas enriba para activar o soporte.',
-       'config-support-mysql' => '* $1 é o obxectivo principal para MediaWiki e está mellor soportado ([http://www.php.net/manual/en/mysql.installation.php como compilar o PHP con soporte MySQL])',
-       'config-support-postgres' => '* $1 é un sistema de base de datos popular e de código aberto como alternativa a MySQL ([http://www.php.net/manual/en/pgsql.installation.php como compilar o PHP con soporte PostgreSQL]). É posible que haxa algúns pequenos erros e non se recomenda o seu uso nunha contorna de produción.',
-       'config-support-sqlite' => '* $1 é un sistema de base de datos lixeiro moi ben soportado. ([http://www.php.net/manual/en/pdo.installation.php Como compilar o PHP con soporte SQLite], emprega PDO)',
-       'config-support-oracle' => '* $1 é un sistema comercial de xestión de base de datos de empresa. ([http://www.php.net/manual/en/oci8.installation.php Como compilar o PHP con soporte OCI8])',
-       'config-header-mysql' => 'Configuración do MySQL',
-       'config-header-postgres' => 'Configuración do PostgreSQL',
-       'config-header-sqlite' => 'Configuración do SQLite',
-       'config-header-oracle' => 'Configuración do Oracle',
-       'config-invalid-db-type' => 'Tipo de base de datos incorrecto',
-       'config-missing-db-name' => 'Debe escribir un valor "Nome da base de datos"',
-       '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.
-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.
-Só pode conter letras ASCII (a-z, A-Z), números (0-9), guións baixos (_) e guións (-).',
-       'config-connection-error' => '$1.
-
-Comprobe o servidor, nome de usuario e contrasinal que hai a continuación e inténteo de novo.',
-       'config-invalid-schema' => 'O esquema de MediaWiki, "$1", é incorrecto.
-Só pode conter letras ASCII (a-z, A-Z), números (0-9) e guións baixos (_).',
-       'config-db-sys-create-oracle' => 'O programa de instalación soamente soporta o emprego de contas SYSDBA como método para crear unha nova conta.',
-       'config-db-sys-user-exists-oracle' => 'A conta de usuario "$1" xa existe. SYSDBA soamente se pode empregar para a creación dunha nova conta!',
-       'config-postgres-old' => 'Necesítase PostgreSQL $1 ou posterior; ten a versión $2.',
-       'config-sqlite-name-help' => 'Escolla un nome que identifique o seu wiki.
-Non utilice espazos ou guións.
-Este nome será utilizado para o ficheiro de datos SQLite.',
-       'config-sqlite-parent-unwritable-group' => 'Non se puido crear o directorio de datos <code><nowiki>$1</nowiki></code>, porque o servidor web non pode escribir no directorio pai <code><nowiki>$2</nowiki></code>.
-
-O programa de instalación determinou o usuario que executa o seu servidor web.
-Para continuar, faga que se poida escribir no directorio <code><nowiki>$3</nowiki></code>.
-Nun sistema Unix/Linux cómpre realizar:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Non se puido crear o directorio de datos <code><nowiki>$1</nowiki></code>, porque o servidor web non pode escribir no directorio pai <code><nowiki>$2</nowiki></code>.
-
-O programa de instalación non puido determinar o usuario que executa o seu servidor web.
-Para continuar, faga que se poida escribir globalmente no directorio <code><nowiki>$3</nowiki></code>.
-Nun sistema Unix/Linux cómpre realizar:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Erro ao crear o directorio de datos "$1".
-Comprobe a localización e inténteo de novo.',
-       'config-sqlite-dir-unwritable' => 'Non se puido escribir o directorio "$1".
-Cambie os permisos para que o servidor poida escribir nel e inténteo de novo.',
-       'config-sqlite-connection-error' => '$1.
-
-Comprobe o directorio de datos e o nome da base de datos que hai a continuación e inténteo de novo.',
-       'config-sqlite-readonly' => 'Non se pode escribir no ficheiro <code>$1</code>.',
-       'config-sqlite-cant-create-db' => 'Non se puido crear o ficheiro da base de datos <code>$1</code>.',
-       'config-sqlite-fts3-downgrade' => 'Falta o soporte FTS3 para o PHP; diminuíndo as táboas',
-       'config-can-upgrade' => "Existen táboas MediaWiki nesta base de datos.
-Para actualizalas a MediaWiki \$1, prema sobre \"'''Continuar'''\".",
-       'config-upgrade-done' => "Actualización completada.
-
-Agora pode [$1 comezar a utilizar o seu wiki].
-
-Se quere rexenerar o seu ficheiro <code>LocalSettings.php</code>, prema no botón que aparece a continuación.
-Isto '''non é recomendable''' a menos que estea a ter problemas co seu wiki.",
-       'config-upgrade-done-no-regenerate' => 'Actualización completada.
-
-Xa pode [$1 comezar a usar o seu wiki].',
-       'config-regenerate' => 'Rexenerar LocalSettings.php →',
-       'config-show-table-status' => 'A pescuda <code>SHOW TABLE STATUS</code> fallou!',
-       'config-unknown-collation' => "'''Atención:''' A base de datos está a empregar unha clasificación alfabética irrecoñecible.",
-       'config-db-web-account' => 'Conta na base de datos para o acceso á internet',
-       'config-db-web-help' => 'Seleccione o nome de usuario e contrasinal que o servidor web empregará para se conectar ao servidor da base de datos durante o funcionamento normal do wiki.',
-       'config-db-web-account-same' => 'Empregar a mesma conta que para a instalación',
-       'config-db-web-create' => 'Crear a conta se aínda non existe',
-       'config-db-web-no-create-privs' => 'A conta que especificou para a instalación non ten os privilexios suficientes para crear unha conta.
-A conta que se especifique aquí xa debe existir.',
-       'config-mysql-engine' => 'Motor de almacenamento:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''Atención:''' Seleccionou MyISAM como o motor de almacenamento para MySQL, unha combinación non recomendada para MediaWiki, porque:
-* practicamente non soporta os accesos simultáneos debido ao bloqueo de táboas
-* é máis propenso a corromperse ca outros motores
-* o código base de MediaWiki non sempre manexa o MyISAM como debera
-
-Se a súa instalación MySQL soporta InnoDB, recoméndase elixilo no canto de MyISAM.
-Se a súa instalación MySQL non soporta InnoDB, quizais sexa boa idea realizar unha actualización.",
-       'config-mysql-only-myisam-dep' => "'''Atención:''' MyISAM é o único motor de almacenamento para MySQL, unha combinación non recomendada para MediaWiki, porque:
-* practicamente non soporta os accesos simultáneos debido ao bloqueo de táboas
-* é máis propenso a corromperse ca outros motores
-* o código base de MediaWiki non sempre manexa o MyISAM como debera
-
-A súa instalación MySQL non soporta InnoDB, quizais sexa boa idea realizar unha actualización.",
-       'config-mysql-engine-help' => "'''InnoDB''' é case sempre a mellor opción, dado que soporta ben os accesos simultáneos.
-
-'''MyISAM''' é máis rápido en instalacións de usuario único e de só lectura.
-As bases de datos MyISAM tenden a se corromper máis a miúdo ca as bases de datos InnoDB.",
-       'config-mysql-charset' => 'Conxunto de caracteres da base de datos:',
-       'config-mysql-binary' => 'Binario',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "No '''modo binario''', MediaWiki almacena texto UTF-8 na base de datos en campos binarios.
-Isto é máis eficaz ca o modo UTF-8 de MySQL e permítelle usar o rango completo de caracteres Unicode.
-
-No '''modo UTF-8''', MySQL saberá o xogo de caracteres dos seus datos e pode presentar e converter os datos de maneira axeitada,
-pero non lle deixará gardar caracteres por riba do [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingüe básico].",
-       'config-site-name' => 'Nome do wiki:',
-       'config-site-name-help' => 'Isto aparecerá na barra de títulos do navegador e noutros lugares.',
-       'config-site-name-blank' => 'Escriba o nome do sitio.',
-       'config-project-namespace' => 'Espazo de nomes do proxecto:',
-       'config-ns-generic' => 'Proxecto',
-       'config-ns-site-name' => 'O mesmo nome que o wiki: $1',
-       'config-ns-other' => 'Outro (especificar)',
-       'config-ns-other-default' => 'OMeuWiki',
-       'config-project-namespace-help' => 'Seguindo o exemplo da Wikipedia, moitos wikis manteñen as súas páxinas de políticas separadas das súas páxinas de contido, nun "\'\'\'espazo de nomes do proxecto\'\'\'".
-Todos os títulos presentes neste espazo de nomes comezan cun prefixo determinado, que pode especificar aquí.
-Tradicionalmente, este prefixo deriva do nome do wiki, pero non pode conter caracteres de puntuación como "#" ou ":".',
-       'config-ns-invalid' => 'O espazo de nomes especificado, "<nowiki>$1</nowiki>", é incorrecto.
-Especifique un espazo de nomes do proxecto diferente.',
-       'config-ns-conflict' => 'O espazo de nomes especificado, "<nowiki>$1</nowiki>", entra en conflito co espazo de nomes MediaWiki por defecto.
-Especifique un espazo de nomes do proxecto diferente.',
-       'config-admin-box' => 'Conta de administrador',
-       'config-admin-name' => 'O seu nome:',
-       'config-admin-password' => 'Contrasinal:',
-       'config-admin-password-confirm' => 'Repita o contrasinal:',
-       'config-admin-help' => 'Escriba o nome de usuario que queira aquí, por exemplo, "Joe Bloggs".
-Este é o nome que usará para acceder ao sistema do wiki.',
-       'config-admin-name-blank' => 'Escriba un nome de usuario para o administrador.',
-       'config-admin-name-invalid' => 'O nome de usuario especificado, "<nowiki>$1</nowiki>", é incorrecto.
-Especifique un nome de usuario diferente.',
-       'config-admin-password-blank' => 'Escriba un contrasinal para a conta de administrador.',
-       'config-admin-password-same' => 'O contrasinal debe diferir do nome de usuario.',
-       'config-admin-password-mismatch' => 'Os contrasinais non coinciden.',
-       'config-admin-email' => 'Enderezo de correo electrónico:',
-       'config-admin-email-help' => 'Escriba aquí un enderezo de correo electrónico para que poida recibir mensaxes doutros usuarios a través do wiki, restablecer o contrasinal e ser notificado das modificacións feitas nas páxinas presentes na súa lista de vixilancia. Pode deixar este campo en branco.',
-       'config-admin-error-user' => 'Erro interno ao crear un administrador co nome "<nowiki>$1</nowiki>".',
-       'config-admin-error-password' => 'Erro interno ao establecer un contrasinal para o administrador "<nowiki>$1</nowiki>": <pre>$2</pre>',
-       'config-admin-error-bademail' => 'Escribiu un enderezo de correo electrónico non válido.',
-       'config-subscribe' => 'Subscríbase á [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce lista de correo de anuncios sobre lanzamentos].',
-       'config-subscribe-help' => 'Esta é unha lista de correos de baixo volume usada para anuncios sobre lanzamentos de novas versións, incluíndo avisos de seguridade importantes.
-Debería subscribirse a ela e actualizar a súa instalación MediaWiki cando saian as novas versións.',
-       'config-subscribe-noemail' => 'Intentou subscribirse á lista de correo dos anuncios de novos lanzamentos sen proporcionar o enderezo de correo electrónico.
-Dea un enderezo de correo electrónico se quere efectuar a subscrición á lista de correo.',
-       'config-almost-done' => 'Xa case rematou!
-Neste paso pode saltar o resto da configuración e instalar o wiki agora mesmo.',
-       'config-optional-continue' => 'Facédeme máis preguntas.',
-       'config-optional-skip' => 'Xa estou canso. Instalade o wiki.',
-       'config-profile' => 'Perfil dos dereitos de usuario:',
-       'config-profile-wiki' => 'Wiki aberto',
-       'config-profile-no-anon' => 'Necesítase a creación dunha conta',
-       'config-profile-fishbowl' => 'Só os editores autorizados',
-       'config-profile-private' => 'Wiki privado',
-       'config-profile-help' => "Os wikis funcionan mellor canta máis xente os edite.
-En MediaWiki, é doado revisar os cambios recentes e reverter calquera dano feito por usuarios novatos ou con malas intencións.
-Porén, moita xente atopa MediaWiki útil nunha ampla variedade de papeis, e ás veces non é fácil convencer a todos dos beneficios que leva consigo o estilo wiki.
-Vostede decide.
-
-O modelo '''{{int:config-profile-wiki}}''' permite a edición por parte de calquera, mesmo sen rexistro.
-A opción '''{{int:config-profile-no-anon}}''' proporciona un control maior, pero pode desalentar os colaboradores casuais.
-
-O escenario '''{{int:config-profile-fishbowl}}''' restrinxe a edición aos usuarios aprobados, pero o público pode ollar as páxinas, incluíndo os historiais.
-O tipo '''{{int:config-profile-private}}''' só deixa que os usuarios aprobados vexan e editen as páxinas.
-
-Hai dispoñibles configuracións de dereitos de usuario máis complexas despois da instalación; bótelle un ollo a [//www.mediawiki.org/wiki/Manual:User_rights esta entrada no manual].",
-       'config-license' => 'Dereitos de autor e licenza:',
-       'config-license-none' => 'Sen licenza ao pé',
-       'config-license-cc-by-sa' => 'Creative Commons recoñecemento compartir igual',
-       'config-license-cc-by' => 'Creative Commons recoñecemento',
-       'config-license-cc-by-nc-sa' => 'Creative Commons recoñecemento non comercial compartir igual',
-       'config-license-cc-0' => 'Creative Commons Zero (dominio público)',
-       'config-license-gfdl' => 'Licenza de documentación libre de GNU 1.3 ou posterior',
-       'config-license-pd' => 'Dominio público',
-       'config-license-cc-choose' => 'Seleccione unha licenza Creative Commons personalizada',
-       'config-license-help' => "Moitos wikis públicos liberan todas as súas contribucións baixo unha [http://freedomdefined.org/Definition/Gl licenza libre].
-Isto axuda a crear un sentido de propiedade comunitaria e anima a seguir contribuíndo durante moito tempo.
-Xeralmente, non é necesario nos wikis privados ou de empresas.
-
-Se quere poder empregar textos da Wikipedia, así como que a Wikipedia poida aceptar textos copiados do seu wiki, escolla a licenza '''Creative Commons recoñecemento compartir igual'''.
-
-A licenza de documentación libre de GNU era a licenza anterior da Wikipedia.
-Malia aínda ser unha licenza válida, é difícil de entender.
-Tamén é difícil reusar contidos baixo esta licenza.",
-       'config-email-settings' => 'Configuración do correo electrónico',
-       'config-enable-email' => 'Activar os correos electrónicos de saída',
-       'config-enable-email-help' => 'Se quere que o correo electrónico funcione, cómpre configurar os [http://www.php.net/manual/en/mail.configuration.php parámetros PHP] correctamente.
-Se non quere ningunha característica no correo, pode desactivalas aquí.',
-       'config-email-user' => 'Activar o intercambio de correos electrónicos entre usuarios',
-       'config-email-user-help' => 'Permitir que todos os usuarios intercambien correos electrónicos, se o teñen activado nas súas preferencias.',
-       'config-email-usertalk' => 'Activar a notificación da páxina de conversa de usuario',
-       'config-email-usertalk-help' => 'Permitir que os usuarios reciban notificacións cando a súa páxina de conversa de usuario sufra modificacións, se o teñen activado nas súas preferencias.',
-       'config-email-watchlist' => 'Activar a notificación da lista de vixilancia',
-       'config-email-watchlist-help' => 'Permitir que os usuarios reciban notificacións sobre modificacións nas páxinas que vixían, se o teñen activado nas súas preferencias.',
-       'config-email-auth' => 'Activar a autenticación do correo electrónico',
-       'config-email-auth-help' => "Se esta opción está activada, os usuarios teñen que confirmar o seu correo electrónico mediante unha ligazón enviada ao enderezo cando o definan ou o cambien.
-Só os enderezos autenticados poden recibir correos doutros usuarios ou de notificación.
-É '''recomendable''' establecer esta opción nos wikis públicos para evitar abusos potenciais das características do correo.",
-       'config-email-sender' => 'Enderezo de correo electrónico de retorno:',
-       'config-email-sender-help' => 'Introduza o enderezo de correo electrónico a usar como enderezo de retorno dos correos de saída.
-Aquí é onde irán parar os correos rexeitados.
-Moitos servidores de correo electrónico esixen que polo menos a parte do nome de dominio sexa válido.',
-       'config-upload-settings' => 'Imaxes e carga de ficheiros',
-       'config-upload-enable' => 'Activar a carga de ficheiros',
-       'config-upload-help' => 'A subida de ficheiros expón potencialmente o servidor a riscos de seguridade.
-Para obter máis información, lea a [//www.mediawiki.org/wiki/Manual:Security sección de seguridade] no manual.
-
-Para activar a carga de ficheiros, cambie o modo no subdirectorio <code>images</code> que está baixo o directorio raíz de MediaWiki, de xeito que o servidor web poida escribir nel.
-A continuación, active esta opción.',
-       'config-upload-deleted' => 'Directorio para os ficheiros borrados:',
-       'config-upload-deleted-help' => 'Escolla un directorio no que arquivar os ficheiros borrados.
-O ideal é que non sexa accesible desde a web.',
-       'config-logo' => 'URL do logo:',
-       'config-logo-help' => 'A aparencia de MediaWiki por defecto inclúe espazo para un logo de 135x160 píxeles por riba do menú lateral.
-Cargue unha imaxe do tamaño axeitado e introduza o enderezo URL aquí.
-
-Pode utilizar <code>$wgStylePath</code> ou <code>$wgScriptPath</code> se o seu logo está relacionado con esas rutas.
-
-Se non quere un logo, deixe esta caixa en branco.',
-       'config-instantcommons' => 'Activar Instant Commons',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons InstantCommons] é unha característica que permite aos wikis usar imaxes, sons e outros ficheiros multimedia atopados no sitio da [//commons.wikimedia.org/wiki/Portada_galega Wikimedia Commons].
-Para facer isto, MediaWiki necesita acceso á internet.
-
-Para obter máis información sobre esta característica, incluíndo as instrucións sobre como configuralo para outros wikis que non sexan a Wikimedia Commons, consulte [//mediawiki.org/wiki/Manual:$wgForeignFileRepos o manual].',
-       'config-cc-error' => 'A escolla da licenza Creative Commons non deu resultados.
-Escriba o nome da licenza manualmente.',
-       'config-cc-again' => 'Escolla outra vez...',
-       'config-cc-not-chosen' => 'Escolla a licenza Creative Commons que desexe e prema en "continuar".',
-       'config-advanced-settings' => 'Configuración avanzada',
-       'config-cache-options' => 'Configuración da caché de obxectos:',
-       'config-cache-help' => 'A caché de obxectos emprégase para mellorar a velocidade de MediaWiki mediante a memorización de datos usados con frecuencia.
-É amplamente recomendable a súa activación nos sitios de tamaño medio e grande; os sitios pequenos obterán tamén beneficios.',
-       'config-cache-none' => 'Sen caché (non se elimina ningunha funcionalidade, pero pode afectar á velocidade en wikis grandes)',
-       'config-cache-accel' => 'Caché de obxectos do PHP (APC, XCache ou WinCache)',
-       'config-cache-memcached' => 'Empregar o Memcached (necesita unha instalación e configuración adicional)',
-       'config-memcached-servers' => 'Servidores da memoria caché:',
-       'config-memcached-help' => 'Lista de enderezos IP para Memcached.
-Debe especificarse un por liña, así como o porto a usar. Por exemplo:
- 127.0.0.1:11211
- 192.168.1.25:1234',
-       'config-memcache-needservers' => 'Seleccionou Memcached como o seu tipo de caché, pero non especificou ningún servidor.',
-       'config-memcache-badip' => 'Escribiu un enderezo IP inválido para Memcached: $1.',
-       'config-memcache-noport' => 'Non especificou o porto a usar no servidor Memcached: $1.
-Se non sabe o porto, o predeterminado é 11211.',
-       'config-memcache-badport' => 'Os números de porto Memcached deben estar entre $1 e $2.',
-       'config-extensions' => 'Extensións',
-       'config-extensions-help' => 'As extensións anteriores detectáronse no seu directorio <code>./extensions</code>.
-
-Quizais necesite algunha configuración adicional, pero pode activalas agora',
-       'config-install-alreadydone' => "'''Atención:''' Semella que xa instalou MediaWiki e que o está a instalar de novo.
-Vaia ata a seguinte páxina.",
-       'config-install-begin' => 'Ao premer en "{{int:config-continue}}", comezará a instalación de MediaWiki.
-Se aínda quere facer algún cambio, prema en "{{int:config-back}}".',
-       'config-install-step-done' => 'feito',
-       'config-install-step-failed' => 'erro',
-       'config-install-extensions' => 'Incluíndo as extensións',
-       'config-install-database' => 'Configurando a base de datos',
-       'config-install-schema' => 'Creando o esquema',
-       'config-install-pg-schema-not-exist' => 'O esquema PostgreSQL non existe.',
-       'config-install-pg-schema-failed' => 'Fallou a creación de táboas.
-Asegúrese de que o usuario "$1" pode escribir no esquema "$2".',
-       'config-install-pg-commit' => 'Validando os cambios',
-       'config-install-pg-plpgsql' => 'Comprobación da lingua PL/pgSQL',
-       'config-pg-no-plpgsql' => 'Cómpre instalar a lingua PL/pgSQL na base de datos $1',
-       'config-pg-no-create-privs' => 'A conta especificada para a instalación non ten os privilexios necesarios para crear unha conta.',
-       'config-pg-not-in-role' => 'A conta especificada para o usuario web xa existe.
-A conta que especificou para a instalación non é un superusuario e non pertence ao grupo de usuarios con acceso á web, polo que non pode crear obxectos pertencentes ao usuario da rede.
-
-Actualmente, MediaWiki necesita que as táboas sexan propiedade do usuario da rede. Especifique outro nome de conta web ou prema no botón "Atrás" e dea un usuario de instalación cos privilexios axeitados.',
-       'config-install-user' => 'Creando o usuario da base de datos',
-       'config-install-user-alreadyexists' => 'O usuario "$1" xa existe',
-       'config-install-user-create-failed' => 'A creación do usuario "$1" fallou: $2',
-       'config-install-user-grant-failed' => 'Fallou a concesión de permisos ao usuario "$1": $2',
-       'config-install-user-missing' => 'O usuario especificado, "$1", non existe.',
-       'config-install-user-missing-create' => 'O usuario especificado, "$1", non existe.
-Prema na caixa de verificación "crear unha conta" que hai a continuación se quere crear unha.',
-       'config-install-tables' => 'Creando as táboas',
-       'config-install-tables-exist' => "'''Atención:''' Semella que as táboas de MediaWiki xa existen.
-Saltando a creación.",
-       'config-install-tables-failed' => "'''Erro:''' Fallou a creación da táboa. Descrición do erro: $1",
-       'config-install-interwiki' => 'Enchendo a táboa de interwiki por defecto',
-       'config-install-interwiki-list' => 'Non se puido atopar o ficheiro <code>interwiki.list</code>.',
-       'config-install-interwiki-exists' => "'''Atención:''' Semella que a táboa de interwiki xa contén entradas.
-Saltando a lista por defecto.",
-       'config-install-stats' => 'Iniciando as estatísticas',
-       'config-install-keys' => 'Xerando as claves secretas',
-       'config-insecure-keys' => "'''Atención:''' {{PLURAL:$2|A clave de seguridade|As claves de seguridade}} ($1) {{PLURAL:$2|xerada|xeradas}} durante a instalación non {{PLURAL:$2|é|son}} completamente {{PLURAL:$2|segura|seguras}}. Considere a posibilidade de {{PLURAL:$2|cambiala|cambialas}} manualmente.",
-       'config-install-sysop' => 'Creando a conta de usuario de administrador',
-       'config-install-subscribe-fail' => 'Non se puido subscribir á lista mediawiki-announce: $1',
-       'config-install-subscribe-notpossible' => 'cURL non está instalado e allow_url_fopen non está dispoñible.',
-       'config-install-mainpage' => 'Creando a páxina principal co contido por defecto',
-       'config-install-extension-tables' => 'Creando as táboas para as extensións activadas',
-       'config-install-mainpage-failed' => 'Non se puido inserir a páxina principal: $1',
-       'config-install-done' => "'''Parabéns!'''
-Instalou correctamente MediaWiki.
-
-O programa de instalación xerou un ficheiro <code>LocalSettings.php</code>.
-Este ficheiro contén toda a súa configuración.
-
-Terá que descargalo e poñelo na base da instalación do seu wiki (no mesmo directorio ca index.php). A descarga debería comezar automaticamente.
-
-Se non comezou a descarga ou se a cancelou, pode facer que comece de novo premendo na ligazón que aparece a continuación:
-
-$3
-
-'''Nota:''' Se non fai iso agora, este ficheiro de configuración xerado non estará dispoñible máis adiante se sae da instalación sen descargalo.
-
-Cando faga todo isto, xa poderá '''[$2 entrar no seu wiki]'''.",
-       'config-download-localsettings' => 'Descargar o <code>LocalSettings.php</code>',
-       'config-help' => 'axuda',
-       'config-nofile' => 'Non se puido atopar o ficheiro "$1". Se cadra, foi borrado.',
-       'config-extension-link' => 'Sabía que o seu wiki soporta [//www.mediawiki.org/wiki/Manual:Extensions extensións]?
-
-Pode explorar as [//www.mediawiki.org/wiki/Category:Extensions_by_category extensións por categoría] ou a [//www.mediawiki.org/wiki/Extension_Matrix matriz de extensións] para ollar a lista completa de extensións.',
-       'mainpagetext' => "'''MediaWiki instalouse correctamente.'''",
-       'mainpagedocfooter' => 'Consulte a [//meta.wikimedia.org/wiki/Help:Contents guía de usuario] para obter máis información sobre como usar o software wiki.
-
-== Primeiros pasos ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista das opcións de configuración]
-* [//www.mediawiki.org/wiki/Manual:FAQ Preguntas máis frecuentes sobre MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correo dos lanzamentos de MediaWiki]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Localice MediaWiki á súa lingua]',
-);
-
-/** Goan Konkani (Latin script) (Konknni)
- * @author The Discoverer
- */
-$messages['gom-latn'] = array(
-       'config-page-language' => 'Bhas',
-);
-
-/** Ancient Greek (Ἀρχαία ἑλληνικὴ)
- * @author Crazymadlover
- * @author Omnipaedista
- */
-$messages['grc'] = array(
-       'config-page-language' => 'Γλῶττα',
-       'mainpagetext' => "'''Ἡ ἐγκατάστασις τῆς MediaWiki ἦν ἐπιτυχής'''",
-       'mainpagedocfooter' => 'Βουλευθήσεσθε τὰς [//meta.wikimedia.org/wiki/Help:Contents βουλὰς τοῖς Χρωμένοις] ἵνα πληροφορηθῇτε περὶ τοῦ βίκιλογισμικοῦ.
-
-== Ἄρξασθε ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Διαλογή παραμέτρων διαμορφώσεως]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki: τὰ πολλάκις αἰτηθέντα]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Διαλογή διαλέξεων ἐπὶ τῶν διανομῶν τῆς MediaWiki]', # Fuzzy
-);
-
-/** Swiss German (Alemannisch)
- * @author Als-Holder
- */
-$messages['gsw'] = array(
-       'config-desc' => 'S MediaWiki-Inschtallationsprogramm',
-       'config-title' => 'MediaWiki $1 inschtalliere',
-       'config-information' => 'Information',
-       'config-localsettings-upgrade' => "'''Warnig:''' E Datei <code>LocalSettings.php</code> isch gfunde wore.
-Fir d Aktualisierig vu dr däre Inschtallation, gib bitte dr Wärt vum Parameter <code>\$wgUpgradeKey</code> im Fäld unten yy.
-Du findsch dr Wärt in dr Datei <code>LocalSettings.php</code>.",
-       'config-localsettings-key' => 'Aktualisierigsschlissel:',
-       'config-localsettings-badkey' => 'Dr Aktualisierigsschlissel, wu du aagee hesch, isch falsch.',
-       'config-session-error' => 'Fähler bim Starte vu dr Sitzig: $1',
-       'config-session-expired' => 'D Sitzigsdate sin schyns abgloffe.
-Sitzige sin fir e Zytruum vu $1 konfiguriert.
-Dää cha dur Aalupfe vum Parameter <code>session.gc_maxlifetime</code> in dr Datei <code>php.ini</code> greßer gmacht wäre.
-Dr Inschtallationsvorgang nomol starte.',
-       'config-no-session' => 'Dyyni Sitzigsdate sin verlore gange!
-D Datei <code>php.ini</code> mueß prieft wäre un s mueß derby sichergstellt wäre, ass dr Parameter <code>session.save_path</code> uf s richtig Verzeichnis verwyyst.',
-       'config-your-language' => 'Dyy Sproch:',
-       'config-your-language-help' => 'Bitte d Sproch uuswehle, wu bim Inschtallationsvorgang soll brucht wäre.',
-       'config-wiki-language' => 'Wikisproch:',
-       'config-wiki-language-help' => 'Bitte d Sproch uuswehle, wu s Wiki in dr Hauptsach din gschribe wird.',
-       'config-back' => '← Zruck',
-       'config-continue' => 'Wyter →',
-       'config-page-language' => 'Sproch',
-       'config-page-welcome' => 'Willchuu bi MediaWiki!',
-       'config-page-dbconnect' => 'Mit dr Datebank verbinde',
-       'config-page-upgrade' => 'E Inschtallition, wu s scho het, aktualisiere',
-       'config-page-dbsettings' => 'Datebankyystellige',
-       'config-page-name' => 'Name',
-       'config-page-options' => 'Optione',
-       'config-page-install' => 'Inschtalliere',
-       'config-page-complete' => 'Fertig!',
-       'config-page-restart' => 'Inschtallation nomol aafange',
-       'config-page-readme' => 'Liis mi',
-       'config-page-releasenotes' => 'Hiiwys fir d Vereffentlichung',
-       'config-page-copying' => 'Am Kopiere',
-       'config-page-upgradedoc' => 'Am Aktualisiere',
-       'config-help-restart' => 'Witt alli Date, wu Du yygee hesch, lesche un d Inschtallation nomol aafange?',
-       'config-restart' => 'Jo, nomol aafange',
-       'config-welcome' => '=== Priefig vu dr Inschtallationsumgäbig ===
-Basispriefige wäre durgfiert zum Feschtstelle, eb d Inschtallationsumgäbig fir d Inschtallation vu MediaWiki geignet isch.
-Du sottsch d Ergebnis vu däre Priefig aagee, wänn Du bi dr Inschtallation Hilf bruchsch.',
-       'config-copyright' => "=== Copyright un Nutzigsbedingige ===
-
-$1
-
-Des Programm isch e freji Software, d. h. s cha, no dr Bedingige vu dr GNU General Public-Lizänz, wu vu dr Free Software Foundation vereffentligt woren isch, wyterverteilt un/oder modifiziert wäre. Doderbyy cha d Version 2, oder no eigenem Ermässe, jedi nejeri Version vu dr Lizänz brucht wäre.
-
-Des Programm wird in dr Hoffnig verteilt, ass es nitzli isch, aber '''ohni jedi Garanti''' un sogar ohni di impliziert Garanti vun ere '''Märtgängigkeit''' oder '''Eignig fir e bstimmte Zwäck'''. Doderzue git meh Hiiwys in dr GNU General Public-Lizänz.
-
-E <doclink href=Copying>Kopi vu dr GNU General Public-Lizänz</doclink> sott zämme mit däm Programm verteilt wore syy. Wänn des nit eso isch, cha ne Kopi bi dr Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, schriftli aagforderet oder [http://www.gnu.org/copyleft/gpl.html online gläse] wäre.",
-       'config-sidebar' => '* [//www.mediawiki.org MediaWiki Websyte vu MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents Nutzeraaleitig zue MediaWiki]
-* [//www.mediawiki.org/wiki/Manual:Contents Adminischtratoreaaleitig zue MediaWiki]
-* [//www.mediawiki.org/wiki/Manual:FAQ Vilmol gstellti Froge zue MediaWiki]', # Fuzzy
-       'config-env-good' => 'D Inschtallationsumgäbig isch prieft wore.
-Du chasch MediaWiki inschtalliere.',
-       'config-env-bad' => 'D Inschtallationsumgäbigisch prieft wore.
-Du chasch MediaWiki nit inschtalliere.',
-       'config-env-php' => 'PHP $1 isch inschtalliert.',
-       'config-unicode-using-utf8' => 'Fir d Unicode-Normalisierig wird em Brion Vibber syy utf8_normalize.so yygsetzt.',
-       'config-unicode-using-intl' => 'For d Unicode-Normalisierig wird d [http://pecl.php.net/intl PECL-Erwyterig intl] yygsetzt.',
-       'config-unicode-pure-php-warning' => "'''Warnig:''' D [http://pecl.php.net/intl PECL-Erwyterig intl] isch fir d Unicode-Normalisierig nit verfiegbar. Wäge däm wird di langsam pure-PHP-Implementierig brucht.
-Wänn Du ne Websyte mit ere große Bsuechrzahl bedrybsch, sottsch e weng ebis läse iber [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode-Normalisierig (en)].",
-       'config-unicode-update-warning' => "'''Warnig:''' Di inschtalliert Version vum Unicode-Normalisierigswrapper verwändet e elteri Version vu dr Bibliothek vum [http://site.icu-project.org/ ICU-Projäkt].
-Du sottsch si [//www.mediawiki.org/wiki/Unicode_normalization_considerations aktualisiere], wänn Dor d Verwändig vu Unicode wichtig isch.",
-       'config-no-db' => 'S isch kei adäquate Datebanktryyber gfunde wore!', # Fuzzy
-       'config-no-fts3' => "'''Warnig:''' SQLite isch ohni s [//sqlite.org/fts3.html FTS3-Modul] kumpiliert wore, s stehn kei Suechfunktione z Verfiegig.",
-       'config-register-globals' => "'''Warnig: Dr Parameter <code>[http://php.net/register_globals register_globals]</code> vu PHP isch aktiviert.'''
-'''Är sott deaktiviert wäre, wänn des megli isch.'''
-D MediaWiki-Inschtallation lauft einwäg, aber dr Server isch aafällig fi megligi Sicherheitsprobläm.",
-       'config-magic-quotes-runtime' => "'''Fatal: Dr Parameter <code>[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]</code> vu PHP isch aktiviert!'''
-Die Yystellig fiert zue nit vorhärsähbare Probläm bi dr Datenyygab.
-MediaWiki cha nit inschtalliert wäre, solang dää Parameter nit deaktiviert woren isch.",
-       'config-magic-quotes-sybase' => "'''Fatal: Dr Parameter <code>[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]</code> vu PHP isch aktiviert!'''
-Die Yystellig fiert zue nit vorhärsähbare Probläm bi dr Datenyygab.
-MediaWiki cha nit inschtalliert wäre, solang dää Parameter nit deaktiviert woren isch.",
-       'config-mbstring' => "'''Fatal: Dr Parameter <code>[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]</code> vu PHP isch aktiviert!'''
-Die Yystellig verursacht Fähler un fiert zue nit vorhärsähbare Probläm bi dr Datenyygab.
-MediaWiki cha nit inschtalliert wäre, solang dää Parameter nit deaktiviert woren isch.",
-       'config-ze1' => "'''Fatal: Dr Parameter <code>[http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]</code> vu PHP isch aktiviert!'''
-Die Yystellig fiert zue große Fähler bi MediaWiki.
-MediaWiki cha nit inschtalliert wäre, solang dää Parameter nit deaktiviert woren isch.",
-       'config-safe-mode' => "'''Warnig:''' D Funktion <code>[http://www.php.net/features.safe-mode Safe Mode]</code> vu PHP isch aktiviert.
-Des cha zue Probläm fiere, vor allem wänn s Uffelade vu Dateie soll megli syy bzw. dr Uuszeichner <code>math</code> soll brucht wäre.",
-       'config-xml-bad' => 'S XML-Modul vu PHP fählt.
-MediaWiki brucht Funktione, wu au des Modul z Verfiegig stellt, un funktioniert in däre Konfiguration nit.
-Wänn Mandriva brucht wird, mueß no s „php-xml“-Paket inschtalliert wäre.',
-       'config-pcre' => 'S PHP-Modul fir d PCRE-Unterstitzig isch nit gfunde wore.
-MediaWiki brucht aber perl-kompatibli reguläri Uusdruck zum lauffähig syy.',
-       'config-pcre-no-utf8' => "'''Fatale Fähler: S PHP-Modul PCRE isch schyns ohni PCRE_UTF8-Unterstitzig kompiliert wore.'''
-MediaWiki brucht d UTF-8-Unterstitzi zum fählerfrej lauffähig syy.",
-       'config-memory-raised' => 'Dr PHP-Parameter <code>memory_limit</code> lyt bi $1 un isch uf $2 uffegsetzt wore.',
-       'config-memory-bad' => "'''Warnig:''' Dr PHP-Parameter <code>memory_limit</code> lyt bi $1.
-Dää Wärt isch wahrschyns z nider.
-Dr Inschtallationsvorgang chennt wäge däm fählschlaa!",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] isch inschtalliert',
-       'config-apc' => '[http://www.php.net/apc APC] isch inschtalliert',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] isch inschtalliert',
-       'config-no-cache' => "'''Warnig:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] oder [http://www.iis.net/download/WinCacheForPhp WinCache] hän nit chenne gfunde wäre.
-S Objäktcaching isch wäge däm nit aktiviert.",
-       'config-diff3-bad' => 'GNU diff3 isch nit gfunde wore.',
-       'config-imagemagick' => 'ImageMagick isch gfunde wore: <code>$1</code>.
-Miniaturaasichte vu Bilder sin megli, sobald s Uffelade vu Dateie aktiviert isch.',
-       'config-help' => 'Hilf',
-       'mainpagetext' => "'''MediaWiki isch erfolgrich inschtalliert worre.'''",
-       'mainpagedocfooter' => 'Lueg uf d [//meta.wikimedia.org/wiki/MediaWiki_localisation Dokumentation fir d Aapassig vu dr Benutzeroberflächi] un s [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuech] fir d Hilf iber d Benutzig un s Yystelle.', # Fuzzy
-);
-
-/** Gujarati (ગુજરાતી)
- * @author Ashok modhvadia
- * @author Dineshjk
- */
-$messages['gu'] = array(
-       'mainpagetext' => "'''મિડીયાવિકિ સફળતાપૂર્વક ઇન્સટોલ થયું છે.'''",
-       'mainpagedocfooter' => 'વિકિ સોફ્ટવેર વાપરવાની માહીતિ માટે [//meta.wikimedia.org/wiki/Help:Contents સભ્ય માર્ગદર્શિકા] જુઓ.
-
-== શરૂઆતના તબક્કે ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings કોનફીગ્યુરેશન સેટીંગ્સની યાદી]
-* [//www.mediawiki.org/wiki/Manual:FAQ વારંવાર પુછાતા પ્રશ્નો]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce મિડીયાવિકિ રીલીઝ મેઇલીંગ લીસ્ટ]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Localise MediaWiki for your language]',
-);
-
-/** Manx (Gaelg)
- */
-$messages['gv'] = array(
-       'mainpagetext' => "'''Ta MediaWiki currit stiagh nish.'''",
-);
-
-/** Hakka (Hak-kâ-fa)
- */
-$messages['hak'] = array(
-       'mainpagetext' => "'''Yí-kîn sṳ̀n-kûng ôn-chông MediaWiki.'''",
-       'mainpagedocfooter' => 'chhiáng fóng-mun [//meta.wikimedia.org/wiki/Help:Contents Yung-fu sú-chhak] yî-khi̍p sṳ́-yung chhṳ́ wiki ngiôn-khien ke sin-sit!
-
-== Ngi̍p-mùn  ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki Phi-chṳ sat-thin chhîn-tân]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki Phìn-sòng mun-thì kié-tap]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki fat-phu email chhîn-tân]', # Fuzzy
-);
-
-/** Hawaiian (Hawai`i)
- */
-$messages['haw'] = array(
-       'mainpagetext' => "'''Ua pono ka ho‘ouka ‘ana o MediaWiki.'''",
-);
-
-/** Hebrew (עברית)
- * @author Amire80
- * @author YaronSh
- * @author ערן
- * @author 아라
- */
-$messages['he'] = array(
-       'config-desc' => 'תכנית ההתקנה של מדיה־ויקי',
-       'config-title' => 'התקנת מדיה־ויקי $1',
-       'config-information' => 'פרטים',
-       'config-localsettings-upgrade' => 'זוהה קובץ <code>LocalSettings.php</code>.
-כדי לשדרג את ההתקנה הזאת, נא להקליד את הערך של <code>$wgUpgradeKey</code> בתיבה להלן.
-אפשר למצוא אותו בקובץ <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'זוהה קובץ <code>LocalSettings.php</code>.
-כדי לשדרג את ההתקנה הזאת, הריצו את <code>update.php</code> ולא את הקובץ הזה.',
-       'config-localsettings-key' => 'מפתח השדרוג:',
-       'config-localsettings-badkey' => 'המפתח שהקלדתם שגוי',
-       'config-upgrade-key-missing' => 'זוהתה התקנה קיימת של מדיה־ויקי.
-כדי לשדרג את ההתקנה הזאת, אנא כתבו את השורה הבא בתחתית קובץ <code>LocalSettings.php</code> שלכם:
-
-$1',
-       'config-localsettings-incomplete' => 'נראה שקובץ <code>LocalSettings.php</code> הקיים אינו שלם.
-המשתנה $1 אינו מוגדר.
-נו לשנות את קובץ <code>LocalSettings.php</code> שלכם כך שהמשתנה הזה יהיה מוגדר וללחוץ "{{int:Config-continue}}".',
-       'config-localsettings-connection-error' => 'אירעה שגיאה בעת חיבור למסד נתונים עם הגדרות ב־<code>LocalSettings.php</code> או ב־<code>AdminSettings.php</code>. נא לתקן את ההגדרות האלו ולנסות שוב.
-
-$1',
-       'config-session-error' => 'שגיאה באתחול שיחה: $1',
-       'config-session-expired' => 'נראה שנתוני השיחה שלכם פגו.
-השיחות מוגדרות להיות תקפות לזמן של $1.
-אפשר להגדיל את זה ב־<code>session.gc_maxlifetime</code> בקובץ php.ini.
-יש להתחיל מחדש את תהליך ההתקנה.',
-       'config-no-session' => 'נתוני השיחה שלכם אבדו!
-יש לבדוק את קובץ php.ini שלכם ולוודא שתיקייה נכונה מוגדרת ב־<code>session.save_path</code>.',
-       'config-your-language' => 'השפה שלכם:',
-       'config-your-language-help' => 'נא לבחור את השפה שתשמש במהלך ההתקנה.',
-       'config-wiki-language' => 'שפת הוויקי:',
-       'config-wiki-language-help' => 'נא לבחור את השפה העיקרית שבה ייכתב ויקי זה.',
-       'config-back' => '→ חזרה',
-       'config-continue' => 'המשך ←',
-       'config-page-language' => 'שפה',
-       'config-page-welcome' => 'ברוכים הבאים למדיה־ויקי!',
-       'config-page-dbconnect' => 'התחברות למסד הנתונים',
-       'config-page-upgrade' => 'שדרוג התקנה קיימת',
-       'config-page-dbsettings' => 'הגדרות מסד הנתונים',
-       'config-page-name' => 'שם',
-       'config-page-options' => 'אפשרויות',
-       'config-page-install' => 'התקנה',
-       'config-page-complete' => 'הושלמה!',
-       'config-page-restart' => 'הפעלת ההתקנה מחדש',
-       'config-page-readme' => 'קרא־אותי',
-       'config-page-releasenotes' => 'הערות גרסה',
-       'config-page-copying' => 'העתקה',
-       'config-page-upgradedoc' => 'שדרוג',
-       'config-page-existingwiki' => 'ויקי קיים',
-       'config-help-restart' => 'האם ברצונך לנקות את כל הנתונים שהזנת ולהתחיל מחדש את תהליך ההתקנה?',
-       'config-restart' => 'כן, להפעיל מחדש',
-       'config-welcome' => '=== בדיקות סביבה ===
-בדיקות בסיסיות מתבצעות כדי לבדוק שהסביבה מתאימה להתקנת מדיה־ויקי.
-יש לתת את תוצאות הבדיקות האלו אם תזדקקו לעזרה בזמן ההתקנה.',
-       'config-copyright' => "=== זכויות יוצרים ותנאים ===
-
-$1
-
-תכנית זו היא תכנה חופשית; באפשרותך להפיצה מחדש ו/או לשנות אותה על פי תנאי הרישיון הציבורי הכללי של GNU כפי שפורסם על ידי קרן התכנה החופשית; בין אם גרסה 2 של הרישיון, ובין אם (לפי בחירתך) כל גרסה מאוחרת שלו.
-
-תכנית זו מופצת בתקווה שתהיה מועילה, אבל '''בלא אחריות כלשהי'''; ואפילו ללא האחריות המשתמעת בדבר '''מסחריותה''' או '''התאמתה למטרה '''מסוימת'''. לפרטים נוספים, ניתן לעיין ברישיון הציבורי הכללי של GNU.
-
-לתכנית זו אמור היה להיות מצורף <doclink href=Copying>עותק של הרישיון הציבורי הכללי של GNU</doclink>; אם לא, עליך לכתוב ל־Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, , MA 02111-1307, USA. או [http://www.gnu.org/copyleft/gpl.html לקרוא אותו דרך האינטרנט].",
-       'config-sidebar' => '* [//www.mediawiki.org אתר הבית של מדיה־ויקי]
-* [//www.mediawiki.org/wiki/Help:Contents המדריך למשתמשים]
-* [//www.mediawiki.org/wiki/Manual:Contents המדריך למנהלים]
-* [//www.mediawiki.org/wiki/Manual:FAQ שו״ת]
-----
-* <doclink href=Readme>קרא אותי</doclink>
-* <doclink href=ReleaseNotes>הערות גרסה</doclink>
-* <doclink href=Copying>העתקה</doclink>
-* <doclink href=UpgradeDoc>שדרוג</doclink>',
-       'config-env-good' => 'הסביבה שלכם נבדקה.
-אפשר להתקין מדיה־ויקי.',
-       'config-env-bad' => 'הסביבה שלכם נבדקה.
-אי־אפשר להתקין מדיה־ויקי.',
-       'config-env-php' => 'מותקנת <span dir="ltr">PHP $1</span>.',
-       'config-env-php-toolow' => 'מותקנת <span dir="ltr">PHP $1</span>.
-למדיה־ויקי נדרשת <span dir="ltr">PHP $2</span> או גרסה גבוהה יותר.',
-       'config-unicode-using-utf8' => 'משתמש ב־normalize.so של בריון ויבר לנרמול יוניקוד.',
-       'config-unicode-using-intl' => 'משתמש בהרחבת [http://pecl.php.net/intl הרחבת intl PECL] לנרמול יוניקוד',
-       'config-unicode-pure-php-warning' => "'''אזהרה''': [http://pecl.php.net/intl הרחבת intl PECL] אינה זמינה לטיפול בנרמול יוניקוד. משתמש ביישום PHP טהור ואטי יותר.
-אם זהו אתר בעל תעבורה גבוהה, כדאי לקרוא את המסמך הבא: [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode normalization].",
-       'config-unicode-update-warning' => "'''אזהרה''': הגרסה המותקנת של מעטפת נרמול יוניקוד משתמשת בגרסה ישנה של הספרייה של [http://site.icu-project.org/ פרויקט ICU].
-כדאי [//www.mediawiki.org/wiki/Unicode_normalization_considerations לעדכן] אם חשוב לכם הטיפול ביוניקוד.",
-       'config-no-db' => 'לא נמצא דרייבר מסד נתונים מתאים. יש להתקין דרייבר מסד נתונים ל־PHP.
-נתמכים הסוגים הבאים של מסדי נתונים: $1.
-
-אם אתם משתמשים באירוח משותף, בקשו מספק האירוח שלכם להתקין דרייבר מסד נתונים מתאים.
-אם קִמפלתם את PHP בעצמכם, הגדירו אותו מחדש והפעילו את לקוח מסד נתונים, למשל באמצעות <code dir="ltr">./configure --with-mysql</code>.
-אם התקנתם את PHP כחבילה של דביאן או של אובונטו, יש להתקין את המודול php5-mysql.',
-       'config-outdated-sqlite' => "'''אזהרה''': במערכת מתוקן SQLite $1. גרסה זו לא נתמכת ולשימוש ב SQLite נדרשת גרסה $2 ומעלה. מסיבה זו האפשרות SQLite לא מאופשרת.",
-       'config-no-fts3' => "'''אזהרה''': SQLite מקומפל ללא [//sqlite.org/fts3.html מודול FTS]. יכולות חיפוש לא יהיו זמינות בהתקנה הזאת.",
-       'config-register-globals' => "'''אזהרה: האפשרות <code>[http://php.net/register_globals register_globals]</code> של PHP מופעלת.'''
-'''כבו אותה אם אתם יכולים.'''
-מדיה־ויקי תעבוד, אבל השרת שלכם חשוף לפגיעות אבטחה.",
-       'config-magic-quotes-runtime' => "'''שגיאה סופנית: האפשרות [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] פעילה!'''
-האפשרות הזאת מעוותת את נתוני הקלט באופן בלתי־צפוי.
-לא ניתן להתקין את מדיה־ויקי אלא אם האפשרות הזאת תכובה.",
-       'config-magic-quotes-sybase' => "'''שגיאה סופנית''': האפשרות [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] פעילה!'''
-האפשרות הזאת מעוותת את נתוני הקלט באופן בלתי־צפוי.
-לא ניתן להתקין את מדיה־ויקי או להשתמש בה אלא אם האפשרות הזאת תכובה.",
-       'config-mbstring' => "'''שגיאה סופנית''': האפשרות [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] פעילה!'''
-האפשרות הזאת גורמת לשגיאות ומעוותת את נתוני הקלט באופן בלתי־צפוי.
-לא ניתן להתקין את מדיה־ויקי או להשתמש בה אלא אם האפשרות הזאת תכובה.",
-       'config-ze1' => "'''שגיאה סופנית''': האפשרות [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] פעילה!'''
-האפשרות הזאת גורמת לתקלות מזעזעות במדיה־ויקי.
-לא ניתן להתקין את מדיה־ויקי או להשתמש בה אלא אם האפשרות הזאת תכובה.",
-       'config-safe-mode' => "'''אזהרה:''' האפשרות [http://www.php.net/features.safe-mode safe mode] של PHP פעילה.
-היא יכולה לגרום לבעיות, במיוחד אם אתם משתמשים בהעלאת קבצים או ב־<code>math</code>.",
-       'config-xml-bad' => 'מודול XML של PHP חסר.
-מדיה־ויקי דורשת פונקציות של המודול ולא תעבוד עם הגדרות כאלו.
-אם מערכת ההפעלה שלהם היא Mandrake, התקינו את החבילה php-xml.',
-       'config-pcre' => 'נראה שחסרה תמיכה במודול PCRE.
-כדי שמדיה־ויקי תעבוד, נדרשת תמיכה בביטויים רגולריים תואמי Perl.',
-       'config-pcre-no-utf8' => "'''שגיאה סופנית''': נראה שמודול PCRE של PHP מקומפל ללא תמיכה ב־PCRE_UTF8.
-מדיה־ויקי דורשת תמיכה ב־UTF-8 לפעילות נכונה.",
-       'config-memory-raised' => 'ערך האפשרות <code>memory_limit</code> של PHP הוא $1, הועלה ל־$2.',
-       'config-memory-bad' => "'''אזהרה:''' ערך האפשרות <code>memory_limit</code> של PHP הוא $1.
-זה כנראה נמוך מדי.
-ההתקנה עשויה להיכשל!",
-       'config-ctype' => "'''שגיאה סופנית''': נדרשת גרסת PHP שתומכת בהרחבה [http://www.php.net/manual/en/ctype.installation.php Ctype].",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] מותקן',
-       'config-apc' => '[http://www.php.net/apc APC] מותקן',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] מותקן',
-       'config-no-cache' => "'''אזהרה:''' אחת מהתוכנות הבאות לא נמצאה: [http://www.php.net/apc APC]&rlm;, [http://xcache.lighttpd.net/ XCache] או [http://www.iis.net/download/WinCacheForPhp WinCache].
-מטמון עצמים לא מופעל.",
-       'config-mod-security' => "'''אזהרה''': בשרת הווב שלכם מופעל [http://modsecurity.org/ mod_security]. אם הוא לא מוגדר טוב, זה יכול לגרום לבעיות במדיה־ויקי ובתכנה אחרת שמאפשרת למשתמשים לשלוח תוכן שרירותי.
-קראו את [http://modsecurity.org/documentation/ התיעוד של mod_security] או צרו קשר עם אנשי התמיכה של שירותי האירוח שלכם אם אתם נתקלים בשגיאות אקראיות.",
-       'config-diff3-bad' => 'GNU diff3 לא נמצא.',
-       'config-imagemagick' => 'נמצא ImageMagick&rlm;: <code dir="ltr">$1</code>.
-מזעור תמונות יופעל, אם תפעילו את האפשרות להעלות קבצים.',
-       'config-gd' => 'נמצאה ספריית הגרפיקה GD המובנית.
-מזעור תמונות יופעל, אם תפעילו את האפשרות להעלות קבצים.',
-       'config-no-scaling' => 'ספריית GD או ImageMagick לא נמצאו.
-מזעור תמונות לא יופעל.',
-       'config-no-uri' => "'''שגיאה:''' אי־אפשר לזהות את הכתובת הנוכחית.
-ההתקנה בוטלה.",
-       'config-no-cli-uri' => 'אזהרה: לא הוגדר <span dir="ltr">--scriptpath</span>, משתמש בבררת המחדל: <code dir="ltr">$1</code>.',
-       'config-using-server' => 'שם השרת בשימוש: "<nowiki>$1</nowiki>".',
-       'config-using-uri' => 'נעשה שימוש בכתובת השרת "<nowiki>$1$2</nowiki>".',
-       'config-uploads-not-safe' => "'''אזהרה:''' תיקיית ההעלאות ההתחלתית <code>$1</code> חשופה להרצת סקריפטים שרירותיים.
-מדיה־ויקי בודקת את כל הקבצים המוּעלים לאיומי אבטחה, מומלץ מאוד למנוע את [//www.mediawiki.org/wiki/Manual:Security#Upload_security פרצת האבטחה] הזאת לפני שאתם מפעילים את ההעלאות.",
-       'config-no-cli-uploads-check' => "'''אזהרה:''' תיקיית בררת המחדל להעלאות (<code>$1</code>) לא נבדקת לפגיעוּת להרצת תסריטים אקראיים בזמן התקנה דרך CLI.",
-       'config-brokenlibxml' => 'במערכת שלכם יש שילוב של גרסאות של PHP ושל libxml2 שחשוף לבאגים ויכול לגרום לעיוות נתונים נסתר במדיה־ויקי וביישומי רשת אחרים.
-שדרגו ל־PHP 5.2.9 או לגרסה חדשה יותר ול־libxml2 2.7.3 או גרסה חדשה יותר ([//bugs.php.net/bug.php?id=45996 באג מתויק ב־PHP]).
-ההתקנה בוטלה.',
-       'config-using531' => 'אי־אפשר להשתמש במדיה־ויקי עם <span dir="ltr">PHP $1</span> בגלל באג בפרמטרים של הפניות (reference parameters) ל־<code dir="ltr">__call()</code>.
-שדרגו ל־PHP 5.3.2 או לגרסה גבוהה יותר כדי לתקן את זה ([//bugs.php.net/bug.php?id=50394 bug filed with PHP]) או שַנמכו ל־PHP 5.3.0 כדי לפתור את הבעיה הזאת.
-ההתקנה בוטלה.',
-       'config-suhosin-max-value-length' => 'מותקן פה Suhosin והוא מגביל את אורך פרמטר GET ל־$1 בתים. רכיב ResourceLoader של מדיה־ויקי יעקוף את המגלבה הזאת, אבל זה יפגע בביצועים. אם זה בכלל אפשרי, כדאי לתקן את הערך של <code>suhosin.get.max_value_length</code> ל־1024 או יותר בקובץ <code>php.ini</code> ולהגדיר את ‎<code>$wgResourceLoaderMaxQueryLength</code> לאותו הערך בקובץ LocalSettings.php.',
-       'config-db-type' => 'סוג מסד הנתונים:',
-       'config-db-host' => 'שרת מסד הנתונים:',
-       'config-db-host-help' => 'אם שרת מסד הנתונים שלכם נמצא על שרת אחר, הקלידו את שם המחשב או את כתובת ה־IP כאן.
-
-אם אתם משתמשים באירוח משותף, ספק האירוח שלכם אמור לתת לכם את שם השרת הנכון במסמכים.
-
-אם אתם מתקינים בשרת Windows ומשתמשים ב־MySQL, השימוש ב־localhost עשוי לא לעבוד. אם הוא לא עובד, נסו את "127.0.0.1" בתור כתובת ה־IP המקומית.
-
-אם אתם משתמשים ב־PostgreSQL, תשאירו את השדה הזה ריק כדי להתחבר דרך שקע יוניקס.',
-       'config-db-host-oracle' => 'TNS של מסד הנתונים:',
-       'config-db-host-oracle-help' => 'הקלידו [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm שם חיבור מקומי (Local Connect Name)] תקין; הקובץ tnsnames.ora צריך להיות זמין להתקנה הזאת.<br />
-אם אתם משתמשים ב־client libraries 10g או בגרסה חדשה יותר, אתם יכולים גם להשתמש בשיטת מתן השמות [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].',
-       'config-db-wiki-settings' => 'זיהוי ויקי זה',
-       'config-db-name' => 'שם מסד הנתונים:',
-       'config-db-name-help' => 'בחרו שם שמזהה את הוויקי שלכם.
-לא צריכים להיות בו רווחים.
-
-אם אתם משתמשים באירוח משותף, ספק האירוח שלכם ייתן לכם שם מסד נתונים מסוים שתוכלו להשתמש בו או יאפשר לכם ליצור מסד נתונים דרך לוח בקרה.',
-       'config-db-name-oracle' => 'סכמה של מסד נתונים:',
-       'config-db-account-oracle-warn' => 'קיימים שלושה תרחישים נתמכים עבור התקנת אורקל בתור מסד הנתונים:
-
-אם אתם רוצים ליצור חשבון מסד נתונים כחלק מתהליך ההתקנה, נא לספק חשבון בעל תפקיד SYSDBA בתור חשבון מסד הנתונים עבור ההתקנה ולציין את האישורים המבוקשים עבור חשבון הגישה לאינטרנט, אחרת ניתן ליצור באופן ידני את חשבון הגישה לאינטרנט, ולספק חשבון זה בלבד (אם יש לו ההרשאות הדרושות ליצירת עצמי סכמה) או לספק שני חשבונות שונים, אחד עם הרשאות יצירה ואחד מוגבלת עבור גישה לאינטרנט.
-
-סקריפט ליצירת חשבון עם ההרשאות הנדרשות ניתן למצוא בתיקייה "<span dir="ltr">maintenance/oracle/</span>" של ההתקנה זו. זכרו כי שימוש בחשבון מוגבל יגרום להשבתת כל יכולות תחזוקה עם חשבון בררת המחדל.',
-       'config-db-install-account' => 'חשבון משתמש להתקנה',
-       'config-db-username' => 'שם המשתמש במסד הנתונים:',
-       'config-db-password' => 'הססמה במסד הנתונים:',
-       'config-db-password-empty' => 'נא להזין ססמה למשתמש מסד הנתונים החדש: $1.
-אף־על־פי שאפשר ליצור חשבונות ללא ססמה, זה לא מאובטח.',
-       'config-db-install-username' => 'הכניסו שם משתמש שישמש אתכם לחיבור למסד נתונים במהלך ההתקנה.
-זהו לא שם משתמש לחשבון במדיה־ויקי; זהו שם משתמש בשרת מסד נתונים.',
-       'config-db-install-password' => 'הקלידו ססמה שתשמש אתכם לצורך חיבור למסד נתונים במהלך ההתקנה.
-זוהי לא ססמה של חשבון במדיה־ויקי; זוהי ססמה לשרת מסד נתונים.',
-       'config-db-install-help' => 'הקלידו את שם המשתמש ואת הססמה להתחברות למסד הנתונים במהלך ההתקנה.',
-       'config-db-account-lock' => 'להשתמש באותו שם המשתמש ובאותה ססמה בזמן הפעלה רגילה',
-       'config-db-wiki-account' => 'חשבון משתמש להפעלה רגילה',
-       'config-db-wiki-help' => 'הקלידו את שם המשתמש והססמה לחיבור למסד הנתונים במהלך פעילות רגילה של הוויקי.
-אם החשבון אינו קיים ולחשבון שבו מתבצעת ההתקנה יש הרשאות מספיקות, החשבון הזה ייווצר עם ההרשאות המזעריות הנחוצות להפעלת הוויקי.',
-       'config-db-prefix' => 'תחילית לטבלאות של מסד נתונים (database table prefix):',
-       'config-db-prefix-help' => 'אם אתם צריכים לשתף מסד נתונים אחד בין אתרי ויקי שונים או בין מדיה־ויקי ויישום וב אחר, תוכלו לבחור להוסיף תחילית וכל שמות הטבלאות כדי להימנע מהתנגשויות.
-אל תשתמשו ברווחים.
-
-השדה הזה בדרך כלל אמור להיות ריק.',
-       'config-db-charset' => 'קבוצת התווים (character set) של מסד הנתונים',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binary',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 backwards-compatible UTF-8',
-       'config-charset-help' => "'''אזהרה:''' אם אתם משתמשים ב־'''backwards-compatible UTF-8''' ב־<span dir=\"ltr\">MySQL 4.1+</span>, ומגבים את מסד הנתונים באמצעות <code>mysqldump</code>, זה יכול להרוס את כל תווי ה־ASCII ויהרוס באופן בלתי־הפיך את הגיבויים שלכם!
-
-ב'''מצב בינרי''' (binary mode) מדיה־ויקי שומרת טקסט UTF-8 במסד הנתונים בשדות בינריים.
-זה יעיל יותר ממצב UTF-8 של MySQL ומאפשר לכם להשתמש בכל הטווח של תווי יוניקוד.
-ב'''מצב UTF-8'''&rlm; (UTF-8 mode)&rlm; MySQL יֵדַע מה קבוצת התווים (character set) של הטקסט שלכם ויציג וימיר אותו בהתאם, אבל לא יאפשר לכם לשמור תווים שאינם נמצאים בטווח הרב־לשוני הבסיסי ([//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane]).",
-       'config-mysql-old' => 'נדרשת גרסה <span dir="ltr">$1</span> של MySQL או גרסה חדשה יותר. הגרסה הנוכחית שלכם היא $2.',
-       'config-db-port' => 'פִּתְחַת מסד הנתונים (database port):',
-       'config-db-schema' => 'סכמה למדיה־ויקי',
-       'config-db-schema-help' => 'הסְכֵמָה הבאה בדרך כלל מתאימה.
-שנו אותה רק אם אתם יודעים שאתם חייבים.',
-       'config-pg-test-error' => "ההתחברות למסד הנתונים '''$1''' לא מצליחה: $2",
-       'config-sqlite-dir' => 'תיקיית נתונים (data directory) של SQLite:',
-       'config-sqlite-dir-help' => 'SQLite שומר את כל הנתונים בקובץ אחד.
-
-לשרת הווב צריכה להיות הרשאה לכתוב לתיקייה שאתם מגדירים.
-
-היא לא צריכה נגישה לכולם דרך האינטרנט – בגלל זה איננו שמים אותה באותו מקום עם קובצי ה־PHP.
-
-תוכנת ההתקנה תכתוב קובץ <code dir="ltr">.htaccess</code> יחד אִתו, אבל אם זה ייכשל, מישהו יוכל להשיג גישה למסד הנתונים שלכם. שם נמצא מידע מפורש של משתמשים (כתובות דוא״ל, ססמאות מגובבות) וגם גרסאות מחוקות של דפים ומידע מוגבל אחר.
-
-כדאי לשקול לשים את מסד הנתונים במקום אחר לגמרי, למשל ב־<code dir="ltr">/var/lib/mediawiki/yourwik</code>.',
-       'config-oracle-def-ts' => 'מרחב טבלאות לפי בררת מחדל (default tablespace):',
-       'config-oracle-temp-ts' => 'מרחב טבלאות זמני (temporary tablespace):',
-       'config-support-info' => 'מדיה־ויקי תומכת במערכות מסדי הנתונים הבאות:
-
-$1
-
-אם אינכם רואים את מסד הנתונים שלכם ברשימה, עקבו אחר ההוראות המקושרות לעיל כדי להפעיל את התמיכה.',
-       'config-support-mysql' => '* $1 הוא היעד העיקרי עבור מדיה־ויקי ולו התמיכה הטובה ביותר (ר׳ [http://www.php.net/manual/en/mysql.installation.php how to compile PHP with MySQL support])',
-       'config-support-postgres' => '$1 הוא מסד נתונים נפוץ בקוד פתוח והוא נפוץ בתור חלופה ל־MySQL (ר׳ [http://www.php.net/manual/en/pgsql.installation.php how to compile PHP with PostgreSQL support]). ייתכן שיש בתצורה הזאת באגים מסוימים והיא לא מומלצת לסביבות מבצעיות.',
-       'config-support-sqlite' => '* $1 הוא מסד נתונים קליל עם תמיכה טובה מאוד. (ר׳ [http://www.php.net/manual/en/pdo.installation.php How to compile PHP with SQLite support], משתמש ב־PDO)',
-       'config-support-oracle' => '* $1 הוא מסד נתונים עסקי מסחרי. (ר׳ [http://www.php.net/manual/en/oci8.installation.php How to compile PHP with OCI8 support])',
-       'config-header-mysql' => 'הגדרות MySQL',
-       'config-header-postgres' => 'הגדרות PostgreSQL',
-       'config-header-sqlite' => 'הגדרות SQLite',
-       '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&rlm; (a עד z&rlm;, A עד Z), סְפָרוֹת (0 עד 9), קווים תחתיים (_) ונקודות (.).',
-       'config-invalid-db-name' => '"$1" הוא שם מסד נתונים בלתי תקין.
-יש להשתמש רק באותיות ASCII&rlm; (a עד z&rlm;, A עד Z), סְפָרוֹת (0 עד 9), קווים תחתיים (_) ומינוסים (-).',
-       'config-invalid-db-prefix' => '"$1" היא תחילית מסד נתונים בלתי תקינה.
-יש להשתמש רק באותיות ASCII&rlm; (a עד z&rlm;, A עד Z), סְפָרוֹת (0 עד 9), קווים תחתיים (_) ומינוסים (-).',
-       'config-connection-error' => '<div dir="ltr">$1.</div>
-
-בדקו את שם השרת, את שם המשתמש ואת הססמה בטופס להלן ונסו שוב.',
-       'config-invalid-schema' => '"$1" היא סכמה לא תקינה עבור מדיה־ויקי.
-יש להשתמש רק באותיות ASCII&rlm; (a עד z&rlm;, A עד Z), סְפָרוֹת (0 עד 9) וקווים תחתיים (_).',
-       'config-db-sys-create-oracle' => 'תוכנית ההתקנה תומכת רק בשימוש בחשבון SYSDBA ליצירת חשבון חדש.',
-       'config-db-sys-user-exists-oracle' => 'חשבון המשתמש "$1" כבר קיים. SYSDBA יכול לשמש רק ליצירת חשבון חדש!',
-       'config-postgres-old' => 'נדרש PostgreSQL $1 או גרסה חדשה יותר, הגרסה הנוכחית שלכם היא $2.',
-       'config-sqlite-name-help' => 'בחרו בשם שמזהה את הוויקי שלכם.
-אל תשתמשו ברווחים או במינוסים.
-זה יהיה שם קובץ הנתונים ל־SQLite.',
-       'config-sqlite-parent-unwritable-group' => 'לא ניתן ליצור את תיקיית הנתונים <code><nowiki>$1</nowiki></code>, כי לשָׁרַת הווב אין הרשאות לכתוב לתיקיית האם <code><nowiki>$2</nowiki></code> .
-
-תוכנת ההתקנה זיהתה את החשבון שתחתיו רץ שרת הווב שלכם.
-אפשרו לשָׁרַת הווב לכתוב לתיקייה <code><nowiki>$3</nowiki></code>.
-במערכת Unix/Linux כִתבו:
-
-<div dir="ltr"><pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre></div>',
-       'config-sqlite-parent-unwritable-nogroup' => 'לא ניתן ליצור את תיקיית הנתונים <code><nowiki>$1</nowiki></code>, כי לשָׁרַת הווב אין הרשאות לכתוב לתיקיית האם <code><nowiki>$2</nowiki></code> .
-
-תוכנת ההתקנה לא זיהתה את החשבון שתחתיו רץ שרת הווב שלכם.
-אפשרו לכל החשבונות לכתוב לתיקייה <code><nowiki>$3</nowiki></code> כדי להמשיך.
-במערכת Unix/Linux כִתבו:
-
-<div dir="ltr"><pre>cd $2
-mkdir $3
-chmod a+w $3</pre></div>',
-       'config-sqlite-mkdir-error' => 'אירעה שגיאה בעת יצירת תיקיית הנתונים "$1".
-נא לבדוק את המיקום ולנסות שוב.',
-       'config-sqlite-dir-unwritable' => 'אי־אפשר לכתוב לתיקייה "$1".
-שנו את ההרשאות שלה כך ששרת הווב יוכל לכתוב אליה ונסו שוב.',
-       'config-sqlite-connection-error' => '$1.
-
-בִדקו את תיקיית הנתונים את שם מסת הנתונים להלן ונסו שוב.',
-       'config-sqlite-readonly' => 'לא ניתן לכתוב אל הקובץ <code>$1</code>.',
-       'config-sqlite-cant-create-db' => 'לא ניתן ליצור את קובץ מסד הנתונים <code>$1</code>.',
-       'config-sqlite-fts3-downgrade' => 'ב־PHP חסרה תמיכה ב־FTS3, יבתצע שנמוך טבלאות',
-       'config-can-upgrade' => "יש טבלאות מדיה־ויקי במסד הנתונים.
-כדי לשדרג אותן למדיה־ויקי $1, לחצו '''המשך'''.",
-       'config-upgrade-done' => "השדרוג הושלם.
-
-עכשיו אפשר [$1 להשתמש בוויקי שלכם].
-
-אם תרצו ליצור מחדש את קובץ ה־<code>LocalSettings.php</code> שלכם, לחצו על הכפתור להלן.
-זה '''לא מומלץ''', אלא אם כן יש לכם בעיות עם הוויקי שלכם.",
-       'config-upgrade-done-no-regenerate' => 'השדרוג הושלם.
-
-עכשיו אפשר [$1 להתחיל להשתמש בוויקי שלכם].',
-       'config-regenerate' => 'לחולל מחדש את LocalSettings.php ←',
-       'config-show-table-status' => 'שאילתת <code>SHOW TABLE STATUS</code> נכשלה!',
-       'config-unknown-collation' => "'''אזהרה:''' מסד הנתונים משתמש בשיטת מיון שאינה מוּכּרת.",
-       'config-db-web-account' => 'חשבון במסד הנתונים לגישה מהרשת',
-       'config-db-web-help' => 'לבחור את שם המשתמש ואת הססמה ששרת הווב ישתמש בו להתחברות לשרת מסד הנתונים בזמן פעילות רגילה של הוויקי.',
-       'config-db-web-account-same' => 'להשתמש באותו חשבון כמו עבור ההתקנה',
-       'config-db-web-create' => 'ליצור חשבון אם הוא אינו קיים כבר.',
-       'config-db-web-no-create-privs' => 'לחשבון שהקלדתם להתקנה אין מספיק הרשאות ליצירת חשבות.
-החשבון שאתם מקלידים כאן צריך להיות קיים.',
-       'config-mysql-engine' => 'מנגנון האחסון:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''אזהרה''': בחרתם ב־MyISAM בתור מנוע אחסון של MySQL, וזה לא מומלץ מהסיבות הבאות:
-* המנוע הזה בקושי תומך בעיבוד מקבילי בגלל נעילת טבלאות
-* הוא פחות עמיד בפני אובדן מידע ממנועים אחרים
-* הקוד של מדיה־ויקי לא תמיד מטפל ב־MyISAM כפי שצריך
-
-אם התקנת MySQL שלכם תומכת ב־InnoDB, מומלץ מאוד שתבחרו באפשרות הזאת.
-אם התקנת MySQL שלכם אינה תומכת ב־InnoDB, אולי זה הזמן לשקול לשדרג אותה.",
-       'config-mysql-engine-help' => "'''InnoDB''' הוא כמעט תמיד האפשרות הטובה ביותר, כי במנוע הזה יש תמיכה טובה ביותר בעיבוד מקבילי.
-
-'''MyISAM''' עשוי להיות בהתקנות שמיועדות למשתמש אחד ולהתקנות לקריאה בלבד.
-מסדי נתונים עם MyISAM נוטים להיהרס לעתים קרובות יותר מאשר מסדי נתונים עם InnoDB.",
-       'config-mysql-charset' => 'ערכת הקידוד של מסד הנתונים:',
-       'config-mysql-binary' => 'בינרי',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "ב'''מצב בינרי''' (binary mode) מדיה־ויקי שומרת טקסט UTF-8 במסד הנתונים בשדות בינריים.
-זה יעיל יותר ממצב UTF-8 של MySQL ומאפשר לכם להשתמש בכל הטווח של תווי יוניקוד.
-
-ב'''מצב UTF-8'''&rlm; (UTF-8 mode)&rlm; MySQL יֵדַע מה קבוצת התווים (character set) של הטקסט שלכם ויציג וימיר אותו בהתאם, אבל לא יאפשר לכם לשמור תווים שאינם נמצאים בטווח הרב־לשוני הבסיסי ([//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane]).",
-       'config-site-name' => 'שם הוויקי:',
-       'config-site-name-help' => 'זה יופיע בשורת הכותרת של הדפדפן ובמקומות רבים אחרים.',
-       'config-site-name-blank' => 'נא להזין שם לאתר.',
-       'config-project-namespace' => 'מרחב שמות לדפי מיזם:',
-       'config-ns-generic' => 'מיזם',
-       'config-ns-site-name' => 'זהה לשם הוויקי: $1',
-       'config-ns-other' => 'אחר (לציין)',
-       'config-ns-other-default' => 'הוויקי שלי',
-       'config-project-namespace-help' => "בהתאם לדוגמה של ויקיפדיה, אתרי ויקי רבים שומרים על דפי המדיניות שלהם בנפרד מדפי התוכן שלהם ב\"'''מרחב השמות של המיזם'''\" (\"'''project namespace'''\").
-כל שמות הדפים במרחב השמות הזה מתחילים בתחילית מסוימת שאתם יכולים להגדיר כאן.
-באופן מסורתי התחילית הזאת מבוססת על שם הוויקי, והיא אינה יכולה להכיל תווי פיסוק כגון \"#\" או \":\".",
-       'config-ns-invalid' => 'מרחב השמות "<nowiki>$1</nowiki>" אינו תקין.
-הקלידו שם אחר למרחב השמות של המיזם.',
-       'config-ns-conflict' => 'מרחב השמות שהגדרתם "<nowiki>$1</nowiki>" מתנגש עם מרחב שמות מובנה של מדיה־ויקי.
-הגדירו מרחב שמות מיזם שונה.',
-       'config-admin-box' => 'חשבון מפעיל',
-       'config-admin-name' => 'שמכם:',
-       'config-admin-password' => 'ססמה:',
-       'config-admin-password-confirm' => 'הססמה שוב:',
-       'config-admin-help' => 'הקלידו כאן את שם המשתמש, למשל "שקד לוי" או "Joe Bloggs".
-זה השם שישמש אתכם כדי להיכנס לוויקי.',
-       'config-admin-name-blank' => 'נא להזין את שם המשתמש של המפעיל.',
-       'config-admin-name-invalid' => 'שם המשתמש שהוקלד "<nowiki>$1</nowiki>" אינו תקין.
-הקלידו שם משתמש אחר.',
-       'config-admin-password-blank' => 'הקלידו ססמה לחשבון המפעיל.',
-       'config-admin-password-same' => 'הססמה לא יכולה להיות זהה לשם המשתמש.',
-       'config-admin-password-mismatch' => 'שתי הססמאות שהוזנו אינן מתאימות.',
-       'config-admin-email' => 'כתובת הדוא״ל:',
-       'config-admin-email-help' => 'הקלידו כתובת דוא״ל שתאפשר לכם לקבל מכתבים ממשתמשים אחרים בוויקי, לאתחל את הססמה, ולקבל הודעות על שינויים בדפים ברשימת המעקב שלכם. אפשר להשאיר את השדה הזה ריק.',
-       'config-admin-error-user' => 'שגיאה פנימית ביצירת מפעיל בשם "<nowiki>$1</nowiki>".',
-       'config-admin-error-password' => 'שגיאה פנימית בהגדרת ססמה עבור המפעיל "<nowiki>$1</nowiki>"&rlm;: <pre>$2</pre>',
-       'config-admin-error-bademail' => 'הכנסתם כתובת דוא״ל לא תקינה.',
-       'config-subscribe' => 'להירשם ל[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce רשימת התפוצה עם הודעות על גרסאות חדשות].',
-       'config-subscribe-help' => 'זוהי רשימת תפוצה עם הודעות מעטות שמשמשת להודעות על הוצאת גרסאות, כולל עדכוני אבטחה חשובים.
-מומלץ להירשם אליה ולעדכן את מדיה־ויקי כאשר יוצאות גרסאות חדשות.',
-       'config-subscribe-noemail' => 'ניסיתם להירשם לרשימת תפוצה של הודעות בלי לתת כתובת דוא"ל.
-נא לתת כתובת דוא"ל אם אתם רוצים להירשם לרשימת התפוצה.',
-       'config-almost-done' => 'כמעט סיימתם!
-אפשר לדלג על שאר ההגדרות ולהתקין את הוויקי כבר עכשיו.',
-       'config-optional-continue' => 'הצגת שאלות נוספות.',
-       'config-optional-skip' => 'משעמם לי, תתקינו לי כבר את הוויקי הזה.',
-       'config-profile' => 'תסריט הרשאות משתמשים:',
-       'config-profile-wiki' => 'ויקי פיתוח',
-       'config-profile-no-anon' => 'נדרשת יצירת חשבון',
-       'config-profile-fishbowl' => 'עורכים מורשים בלבד',
-       'config-profile-private' => 'ויקי פרטי',
-       'config-profile-help' => "אתרי ויקי עובדים הכי טוב כאשר אתם מאפשרים לכמה שיותר אנשים לערוך אותם.
-במדיה־ויקי קל לסקור את השינויים האחרונים ולשחזר כל נזק שעושים משתמשים תמימים או משחיתים.
-
-עם זאת, אנשים שונים מצאו למדיה־ויקי שימושים מגוּונים ולעתים לא קל לשכנע את כולם ביתרונות של \"דרך הוויקי\" המסורתית. ולכן יש לכם בררה.
-
-באתר מסוג '''{{int:config-profile-wiki}}''' – לכולם יש הרשאה לערוך, אפילו בלי להיכנס לחשבון.
-באתר וויקי מסוג '''{{int:config-profile-no-anon}}''' יש ביטחון גדול יותר, אבל הגדרה כזאת יכולה להרתיע תורמים מזדמנים.
-
-בתסריט '''{{int:config-profile-fishbowl}}''' רק משתמשים שקיבלו אישור יכולים לערוך, אבל כל הגולשים יכולים לקרוא את הדפים ואת גרסאותיהם הקודמות.
-ב'''{{int:config-profile-private}}''' רק משתמשים שקיבלו אישור יכולים לקרוא ולערוך דפים.
-
-הגדרות מורכבות של הרשאות אפשריות אחרי ההתקנה, ר׳ את [//www.mediawiki.org/wiki/Manual:User_rights הפרק על הנושא הזה בספר ההדרכה].",
-       'config-license' => 'זכויות יוצרים ורישיון:',
-       'config-license-none' => 'ללא כותרת תחתית עם רישיון',
-       'config-license-cc-by-sa' => 'קריאייטיב קומונז–ייחוס–שיתוף זהה',
-       'config-license-cc-by' => 'קריאייטיב קומונז–ייחוס',
-       'config-license-cc-by-nc-sa' => 'קריאייטיב קומונז ייחוס–ללא שימוש מסחרי–שיתוף זהה',
-       'config-license-cc-0' => 'קריאייטיב קומונז אפס (נחלת הכלל)',
-       'config-license-gfdl' => 'רישיון חופשי למסמכים של גנו גרסה 1.3 או חדשה יותר',
-       'config-license-pd' => 'נחלת הכלל',
-       'config-license-cc-choose' => 'בחרו רישיון קריאייטיב קומונז מותאם אישית',
-       'config-license-help' => "אתרי ויקי ציבוריים רבים מפרסמים את כל התרומות תחת [http://freedomdefined.org/Definition רישיון חופשי].
-זה עוזר ליצור תחושה של בעלות קהילתית ומעודד תרומה לאורך זמן.
-זה בדרך כלל לא נחוץ לאתר ויקי פרטי או בחברה מסחרית.
-
-אם אתם רוצים אפשרות להשתמש בטקסט מוויקיפדיה ואתם רוצים שוויקיפדיה תוכל לקבל עותקים של טקסטים מהוויקי שלכם, כדאי לכם לבחור ב'''רישיון קריאייטיב קומונז ייחוס–שיתוף זהה''' (CC-BY-SA).
-
-ויקיפדיה השתמשה בעבר ברישיון החופשי למסמכים של גנו (GNU FDL או GFDL).
-הוא עדיין רישיון תקין, אבל קשה להבנה.
-כמו־כן, קשה לעשות שימוש חוזר ביצירות שפורסמו לפי GFDL.",
-       'config-email-settings' => 'הגדרות דוא״ל',
-       'config-enable-email' => 'להפעיל דוא״ל יוצא',
-       'config-enable-email-help' => 'אם אתם רוצים שדוא״ל יעבוד, [http://www.php.net/manual/en/mail.configuration.php אפשרויות הדוא״ל של PHP] צריכות להיות מוגדרות נכון.
-אם אינכם רוצים להפעיל שום אפשרויות דוא״ל, כבו אותן כאן ועכשיו.',
-       'config-email-user' => 'להפעיל שליחת דוא״ל ממשתמש למשתמש',
-       'config-email-user-help' => 'לאפשר לכל המשתמשים לשלוח אחד לשני דוא״ל אם הם הפעילו את זה בהעדפות שלהם.',
-       'config-email-usertalk' => 'להפעיל הודעות על דף שיחת משתמש',
-       'config-email-usertalk-help' => 'לאפשר למשתמשים לקבל הודעות על שינויים בדפי המשתמש שלהם, אם הם הפעילו את זה בהעדפות שלהם.',
-       'config-email-watchlist' => 'הפעלת התרעה על רשימת המעקב',
-       'config-email-watchlist-help' => 'לאפשר למשתמשים לקבל הודעות על הדפים ברשימת המעקב שלהם אם הם הפעילו את זה בהעדפות שלהם.',
-       'config-email-auth' => 'הפעלת התרעה בדוא״ל',
-       'config-email-auth-help' => "אם האפשרות הזאת מופעלת, משתמשים יצטרכו לאשר את כתובת הדוא״ל שלהם באמצעות קישור שיישלח אליהם בכל פעם שהם יגדירו או ישנו אותה.
-רק כתובות דוא״ל מאושרות יכולות לקבלת דוא״ל ממשתמשים אחרים או מכתבים עם הודעות על שינויים.
-'''מומלץ''' להגדיר את האפשרות הזאת לאתרי ויקי ציבוריים כי אפשר לעשות שימוש לרעה בתכונות הדוא״ל.",
-       'config-email-sender' => 'כתובת דוא״ל לתשובות:',
-       'config-email-sender-help' => 'הכניסו את כתובת הדוא״ל שתשמש ככתובת לתשובה לכל הדואר היוצא.
-לשם יישלחו תגובות שגיאה (bounce).
-שרתי דוא״ל רבים דורשים שלפחות החלק של המתחם יהיה תקין.',
-       'config-upload-settings' => 'העלאת קבצים ותמונות',
-       'config-upload-enable' => 'להפעיל העלאת קבצים',
-       'config-upload-help' => 'העלאות קבצים חושפות את השרת שלכם לסיכוני אבטחה.
-למידע נוסף, קִראו את [//www.mediawiki.org/wiki/Manual:Security חלק האבטחה] בספר ההדרכה.
-
-כדי להפעיל העלאת קבצים שנו את ההרשאות של התיקייה <code>images</code> תחת תיקיית השורש של מדיה־ויקי כך ששרת הווב יוכל לכתוב אליה.
-זה מפעיל את האפשרות הזאת.',
-       'config-upload-deleted' => 'תיקיית לקבצים שנמחקו:',
-       'config-upload-deleted-help' => 'בחרו את התיקייה לארכוב קבצים מחוקים.
-כדאי שזה לא יהיה נגיש לכל העולם דרך הרשת.',
-       'config-logo' => 'כתובת הסמל:',
-       'config-logo-help' => 'המראה ההתחלתי של מדיה־ויקי מכיל מקום לסמל של 135 על 160 פיקסלים בפינה העליונה מעל תפריט הצד.
-יש להעלות תמונה בגודל מתאים ולהכניס את הכתובת כאן.
-
-אם אינכם רוצים סמל, השאירו את התיבה הזאת ריקה.', # Fuzzy
-       'config-instantcommons' => 'להפעיל את Instant Commons',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons Instant Commons] היא תכונה שמאפשרת לאתרי ויקי להשתמש בתמונות, בצלילים ובמדיה אחרת שנמצאת באתר [//commons.wikimedia.org/ ויקישיתוף] (Wikimedia Commons).
-כדי לעשות את זה, מדיה־ויקי צריך לגשת לאינטרנט.
-
-למידע נוסף על התכונה הזאת, כולל הוראות איך להפעיל את זה לאתרי ויקי שאינם ויקישיתוף, ר׳ [//mediawiki.org/wiki/Manual:$wgForeignFileRepos את ספר ההדרכה].',
-       'config-cc-error' => 'בורר רישיונות קריאייטיב קומונז לא החזיר שום תוצאה.
-הקלידו את שם הרישיון ידנית.',
-       'config-cc-again' => 'נא לבחור שוב...',
-       'config-cc-not-chosen' => 'בחרו באיזה רישיון קריאייטיב קומונז להשתמש ולחצו "המשך".',
-       'config-advanced-settings' => 'הגדרות מתקדמות',
-       'config-cache-options' => 'הגדרות למטמון עצמים (object caching):',
-       'config-cache-help' => 'מטמון עצמים משמש לשיפור המהירות של מדיה־ויקי על־ידי שמירה של נתונים שהשימוש בהם נפוץ במטמון.
-לאתרים בינוניים וגדולים כדאי מאוד להפעיל את זה, וגם אתרים קטנים ייהנו מזה.',
-       'config-cache-none' => 'ללא מטמון (שום יכולת אינה מוּסרת, אבל הביצועים באתרים גדולים ייפגעו)',
-       'config-cache-accel' => 'מטמון עצמים (object caching) של PHP&rlm; (APC&rlm;, XCache או WinCache)',
-       'config-cache-memcached' => 'להשתמש ב־Memcached (דורש התקנות והגדרות נוספות)',
-       'config-memcached-servers' => 'שרתי Memcached:',
-       'config-memcached-help' => 'רשימת כתובות IP ש־Memcached ישתמש בהן.
-יש לרשום כתובת אחת בכל שורה ולציין את הפִּתְחָה (port), למשל:
- 127.0.0.1:11211
- 192.168.1.25:1234',
-       'config-memcache-needservers' => 'בחרת ב־Memcached בתתור סוג המטמון שלכם, אבל לא הגדרתם שום שרת.',
-       'config-memcache-badip' => 'הקלדתם כתובת IP בלתי תקינה ל־Memcached&lrm;: $1.',
-       'config-memcache-noport' => 'לא הגדרתם פתחה לשימוש שרת Memcached&rlm;: $1.
-אם אינכם יודעים את מספר הפתחה, בררת המחדל היא 11211.',
-       'config-memcache-badport' => 'מספרי פתחה של Memcached צריכים להיות בין $1 ל־$2',
-       'config-extensions' => 'הרחבות',
-       'config-extensions-help' => 'ההרחבות ברשימה לעיל התגלו בתיקיית <span dir="ltr"><code>./extensions</code></span> שלכם.
-
-ייתכן שזה ידרוש הגדרות נוספות, אבל תוכלו להפעיל אותן עכשיו.',
-       'config-install-alreadydone' => "'''אזהרה:''' נראה שכבר התקנתם את מדיה־ויקי ואתם מנסים להתקין אותה שוב.
-אנה התקדמו לדף הבא.",
-       'config-install-begin' => 'כשתלחצו על "{{int:config-continue}}", תתחילו את ההתקנה של מדיה־ויקי.
-אם אתם עדיין רוצים לשנות משהו, לחצו על "{{int:config-back}}"',
-       'config-install-step-done' => 'בוצע',
-       'config-install-step-failed' => 'נכשל',
-       'config-install-extensions' => 'כולל הרחבות',
-       'config-install-database' => 'הקמת מסד נתונים',
-       'config-install-schema' => 'יצירת סכמה',
-       'config-install-pg-schema-not-exist' => 'סכמה של PostgreSQL אינה קיימת',
-       'config-install-pg-schema-failed' => 'יצירת טבלאות נכשלה.
-ודאו כי המשתמש "$1" יכול לכתוב לסכמה "$2".',
-       'config-install-pg-commit' => 'שמירת שינויים',
-       'config-install-pg-plpgsql' => 'בדיקת שפת PL/pgSQL',
-       'config-pg-no-plpgsql' => 'צריך להתקין את שפת PL/pgSQL במסד הנתונים $1',
-       'config-pg-no-create-privs' => 'לחשבון שהגדרתם להתקנה אין מספיק הרשאות ליצירת חשבון.',
-       'config-pg-not-in-role' => 'החשבון שציינתם עבור משתמש שרת הווב כבר קיים.
-החשבון שסיפקתם להתקנה אינו חשבון בעל הרשאות (superuser) ואינו חבר בתפקיד (role) של משתמש שרת הווב, אז אין אפשרות ליצור עצמים בבעלות משתמש שרת הווב.
-
-כעת נדרש במדיה־ויקי שהטבלאות יהיו בבעלות של משתמש שרת הווב. נא לציין שם חשבון שרת וב אחר או ללחוץ על כפתור "אחורה" ולציין משתמש התקנה בעל הרשאות מתאימות.',
-       'config-install-user' => 'יצירת חשבון במסד נתונים',
-       'config-install-user-alreadyexists' => 'המשתמש "$1" כבר קיים',
-       'config-install-user-create-failed' => 'יצירת משתמש "$1" נכשלה: $2',
-       'config-install-user-grant-failed' => 'מתן הרשאות למשתמש "$1" נכשל: $2',
-       'config-install-user-missing' => 'המשתמש "$1" שצוין אינו קיים.',
-       'config-install-user-missing-create' => 'המשתמש "$1" שצוין אינו קיים.
-נא ללחוץ על תיבת בסימון "יצירת חשבון" להלן אם אתם רוצים ליצור אותו.',
-       'config-install-tables' => 'יצירת טבלאות',
-       'config-install-tables-exist' => "'''אזהרה:''' נראה שטבלאות מדיה־ויקי כבר קיימות.
-מדלג על יצירתן.",
-       'config-install-tables-failed' => "'''שגיאה:''' יצירת הטבלה נכשלה עם השגיאה הבאה: $1",
-       'config-install-interwiki' => 'אכלוס טבלת בינוויקי התחלתית',
-       'config-install-interwiki-list' => 'קריאת הקובץ <code>interwiki.list</code> לא הצליחה.',
-       'config-install-interwiki-exists' => "'''אזהרה:''': נראה שבטבלת הבינוויקי כבר יש רשומות.
-מדלג על הרשומה ההתחלתית.",
-       'config-install-stats' => 'אתחול סטטיסטיקות',
-       'config-install-keys' => 'יצירת מפתחות סודיים',
-       'config-insecure-keys' => "'''אזהרה''': {{PLURAL:$2|מפתח|מפתחות}} אבטחה ($1) {{PLURAL:$2|שנוצר|שנוצרו}} במהלך ההתקנה {{PLURAL:$2|אינו בטוח|אינם בטוחים}} מספיק. מומלץ לשקול לשנות {{PLURAL:$2|אותו|אותם}} ידנית.",
-       'config-install-sysop' => 'יצירת חשבון מפעיל',
-       'config-install-subscribe-fail' => 'הרישום ל־mediawiki-announce לא הצליח: $1',
-       'config-install-subscribe-notpossible' => 'cURL אינה מותקנת ו־allow_url_fopen אינה זמינה.',
-       'config-install-mainpage' => 'יצירת דף ראשי עם תוכן התחלתי.',
-       'config-install-extension-tables' => 'יצירת טבלאות להרחבות מופעלות',
-       'config-install-mainpage-failed' => 'לא הצליחה הכנסת דף ראשי: $1.',
-       'config-install-done' => "'''מזל טוב!'''
-התקנתם בהצלחה את מדיה־ויקי.
-
-תוכנת ההתקנה יצרה את הקובץ <code>LocalSettings.php</code>.
-הוא מכיל את כל ההגדרות שלכם.
-
-תצטרכו להוריד אותו ולשים אותו בבסיס ההתקנה של הוויקי שלכם (אותה התיקייה שבה נמצא הקובץ index.php). ההורדה הייתה אמורה להתחיל באופן אוטומטי.
-
-אם ההורדה לא התחילה, או אם ביטלתם אותה, אפשר להתחיל אותה מחדש בלחיצה על הקישור הבא:
-
-$3
-
-'''שימו לב''': אם לא תעשו זאת עכשיו, קובץ ההגדרות המחוּלל לא יהיה זמין לכם שוב.
-
-אחרי שתעשו את זה, תוכלו '''[$2 להיכנס לוויקי שלכם]'''.",
-       'config-download-localsettings' => 'הורדת <code>LocalSettings.php</code>',
-       'config-help' => 'עזרה',
-       'config-nofile' => 'הקובץ "$1" לא נמצא. האם הוא נמחק?',
-       'mainpagetext' => "'''תוכנת מדיה־ויקי הותקנה בהצלחה.'''",
-       'mainpagedocfooter' => 'היעזרו ב[//meta.wikimedia.org/wiki/Help:Contents מדריך למשתמש] למידע על שימוש בתוכנת הוויקי.
-
-== קישורים שימושיים ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings רשימת ההגדרות]
-* [//www.mediawiki.org/wiki/Manual:FAQ שאלות ותשובות על מדיה־ויקי]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce רשימת התפוצה על השקת גרסאות]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources תרגום מדיה־ויקי לשפה שלך]',
-);
-
-/** Hindi (हिन्दी)
- */
-$messages['hi'] = array(
-       'mainpagetext' => "'''मीडियाविकिका इन्स्टॉलेशन पूरा हो गया हैं ।'''",
-       'mainpagedocfooter' => 'विकि सॉफ्टवेयरके इस्तेमाल के लिये [//meta.wikimedia.org/wiki/Help:Contents उपयोगकर्ता गाईड] देखें ।
-
-== शुरुवात करें ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings कॉन्फिगरेशन सेटींगकी सूची]
-* [//www.mediawiki.org/wiki/Manual:FAQ मीडियाविकिके बारे में प्राय: पूछे जाने वाले सवाल]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce मीडियाविकि मेलिंग लिस्ट]', # Fuzzy
-);
-
-/** Fiji Hindi (Latin script) (Fiji Hindi)
- * @author Thakurji
- */
-$messages['hif-latn'] = array(
-       'mainpagetext' => "'''MediaWiki ke safalta se install kar dewa gais hai.'''",
-       'mainpagedocfooter' => "Wiki software ke use kare ke aur jaankari ke khatir [//meta.wikimedia.org/wiki/Help:Contents User's Guide] ke dekho.
-
-== Getting started ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
-);
-
-/** Hiligaynon (Ilonggo)
- * @author Anjoeli9806
- */
-$messages['hil'] = array(
-       'mainpagetext' => "'''Ang MediaWiki madinalag-on nga na-instala.'''",
-       'mainpagedocfooter' => " Magkonsulta sa [//meta.wikimedia.org/wiki/Help:Contents User's Guide] para sa mga impormasyon sa paggamit sang wiki nga software.
-
-== Pag-umpisa ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista sang mga konpigorasyon sang pagkay-o]
-* [//www.mediawiki.org/wiki/Manual:FAQ Mga Masami Pamangkoton sa MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista sang mga ginapadal-an sang sulat kon may paguha-on nga MediaWiki]", # Fuzzy
-);
-
-/** Croatian (hrvatski)
- */
-$messages['hr'] = array(
-       'mainpagetext' => "'''Softver MediaWiki je uspješno instaliran.'''",
-       'mainpagedocfooter' => 'Pogledajte [//meta.wikimedia.org/wiki/MediaWiki_localisation dokumentaciju o prilagodbi sučelja]
-i [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Vodič za suradnike] za pomoć pri uporabi i podešavanju.', # Fuzzy
-);
-
-/** Upper Sorbian (hornjoserbsce)
- * @author Michawiki
- * @author 아라
- */
-$messages['hsb'] = array(
-       'config-desc' => 'Instalaciski program za MediaWiki',
-       'config-title' => 'Instalacija MediaWiki $1',
-       'config-information' => 'Informacije',
-       'config-localsettings-upgrade' => 'Dataja <code>LocalSettings.php</code> je so wotkryła.
-Zo by tutu instalaciju aktualizował, zapodaj prošu hódnotu za parameter <code>$wgUpgradeKey</code> do slědowaceho pola.
-Namakaš tón parameter w dataji <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'Dataja <code>LocalSettings.php</code> bu wotkryta.
-Zo by tutu instalaciju aktualizował, wuwjedźće <code>update.php</code>',
-       'config-localsettings-key' => 'Aktualizaciski kluč:',
-       'config-localsettings-badkey' => 'Kluč, kotryž sy podał, je wopak',
-       'config-upgrade-key-missing' => 'Eksistowaca instalacija MediaWiki je so wotkryła.
-Zo by tutu instalaciju aktualizował, staj prošu slědowacu linku deleka w dataji <code>LocalSettings.php</code>:
-
-$1',
-       'config-localsettings-incomplete' => 'Zda so, zo eksistwoaca dataja <code>LocalSettings.php</code> je njedospołna.
-Wariabla $1 njeje nastajena.
-Prošu změń dataju <code>LocalSettings.php</code>, zo by so tuta wariabla nastajiła a klikń na "{{int:Config-continue}}".',
-       'config-localsettings-connection-error' => 'Při zwjazowanju z datowej banku z pomocu nastajenjow podatych w <code>LocalSettings.php</code> abo <code>AdminSettings.php</code> je zmylk wustupił. Prošu skoriguj tute nastajenja a spytaj hišće raz.
-
-$1',
-       'config-session-error' => 'Zmylk při startowanju posedźenja: $1',
-       'config-session-expired' => 'Zda so, zo twoje posedźenske daty su spadnjene.
-Posedźenja su za čas žiwjenja $1 skonfigurowane.
-Móžeš jón přez nastajenje <code>session.gc_maxlifetime</code> w php.ini powyšić.
-Startuj instalaciski proces znowa.',
-       'config-no-session' => 'Twoje posedźenske daty su so zhubili!
-Skontroluj swój php.ini a zawěsć, zo <code>session.save_path</code> je na prawy zapis nastajeny.',
-       'config-your-language' => 'Twoja rěč:',
-       'config-your-language-help' => 'Wubjer rěč, kotraž ma so za instalaciski proces wužiwać.',
-       'config-wiki-language' => 'Wikirěč:',
-       'config-wiki-language-help' => 'Wubjer rěč, w kotrejž wiki ma so zwjetša pisać.',
-       'config-back' => '← Wróćo',
-       'config-continue' => 'Dale →',
-       'config-page-language' => 'Rěč',
-       'config-page-welcome' => 'Witaj do MediaWiki!',
-       'config-page-dbconnect' => 'Z datowej banku zwjazać',
-       'config-page-upgrade' => 'Eksistowacu instalaciju aktualizować',
-       'config-page-dbsettings' => 'Nastajenja datoweje banki',
-       'config-page-name' => 'Mjeno',
-       'config-page-options' => 'Opcije',
-       'config-page-install' => 'Instalować',
-       'config-page-complete' => 'Dokónčeny!',
-       'config-page-restart' => 'Instalaciju znowa startować',
-       'config-page-readme' => 'Čitaj mje',
-       'config-page-releasenotes' => 'Wersijowe informacije',
-       'config-page-copying' => 'Kopěrowanje',
-       'config-page-upgradedoc' => 'Aktualizowanje',
-       'config-page-existingwiki' => 'Eksistowacy wiki',
-       'config-help-restart' => 'Chceš wšě składowane daty hašeć, kotrež sy zapodał a instalaciski proces znowa startować?',
-       'config-restart' => 'Haj, znowa startować',
-       'config-sidebar' => '* [//www.mediawiki.org MediaWiki Startowa strona MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents Nawod za wužiwarjow]
-* [//www.mediawiki.org/wiki/Manual:Contents Nawod za administratorow]
-* [//www.mediawiki.org/wiki/Manual:FAQ Huste prašenja]
-----
-* <doclink href=Readme>Čitaj mje</doclink>
-* <doclink href=ReleaseNotes>Wersijowe informacije</doclink>
-* <doclink href=Copying>Licencne postajenja</doclink>
-* <doclink href=UpgradeDoc>Aktualizacija</doclink>',
-       'config-env-good' => 'Wokolina je so skontrolowała.
-Móžeš MediaWiki instalować.',
-       'config-env-bad' => 'Wokolina je so skontrolowała.
-Njemóžeš MediaWiki instalować.',
-       'config-env-php' => 'PHP $1 je instalowany.',
-       'config-env-php-toolow' => 'PHP $1 je instalowany.
-Ale MediaWiki wužaduje sej PHP $2 abo wyši.',
-       'config-unicode-using-utf8' => 'Za normalizaciju Unicode so utf8_normalize.so Briona Vibbera wužiwa.',
-       'config-unicode-using-intl' => 'Za normalizaciju Unicode so [http://pecl.php.net/intl PECL-rozšěrjenje intl] wužiwa.',
-       'config-no-db' => 'Njeda so přihódny ćěrjak datoweje banki namakać! Dyrbiš ćěrjak datoweje banki za PHP instalować.
-Slědowace typy datoweje banki so podpěruja: $1.
-
-Jeli wužiwaš zhromadnje wužiwany serwer, proš swojeho poskićowarja, zo by přihódny ćěrjak datoweje banki instalował.
-Jeli sy PHP sam kompilował, konfiguruj jón znowa z aktiwizowanym programom datoweje banki, na přikład z pomocu <code>./configure --with-mysql</code>.
-Jeli sy PHP z Debianoweho abo Ubuntuoweho paketa instalował, dyrbiš tež modul php5-mysql instalować.',
-       'config-outdated-sqlite' => "'''Warnowanje''': maš SQLite $1, kotryž je starši hač minimalna trěbna wersija $2. SQLite njebudźe k dispoziciji stać.",
-       'config-no-fts3' => "'''Warnowanje''': SQLite je so bjez [//sqlite.org/fts3.html FTS3-modula] kompilował, pytanske funkcije njebudu k dispoziciji stać.",
-       'config-register-globals' => "'''Warnowanje: Funkcija <code>[http://php.net/register_globals register_globals]</code> PHP je zmóžnjena.'''
-'''Znjemóžń ju, jeli móžeš.'''
-MediaWiki budźe fungować, ale twój serwer je potencielnym wěstotnym njedostatkam wustajeny.",
-       'config-ze1' => "'''Chutny zmylk: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] je aktiwny!'''
-Tuta opcija zawinuje grawěrowace zmylki při MediaWiki.
-Njemóžeš MediaWiki instalować abo wužiwać, chibazo tuta opcija je znjemóžnjena.",
-       'config-safe-mode' => "'''Warnowanje:''' [http://www.php.net/features.safe-mode wěsty modus] PHP je aktiwny.
-To móže problemy zawinować, předewšěm, jeli so datajowe nahraća a podpěra <code>math</code> wužiwaja.",
-       'config-xml-bad' => 'XML-modul za PHP faluje.
-MediaWiki trjeba funkcije w tutym modulu a njebudźe w tutej konfiguraciji fungować.
-Jeli wužiwaš Mandrake, instaluj paket php-xml.',
-       'config-pcre' => 'Zda so, zo modul za PCRE-podpěru faluje.
-MediaWiki trjeba z Perl kompatibelne funkcije za regularne wurazy, zo by fungował.',
-       'config-pcre-no-utf8' => "'''Ćežki zmylk''': Zda so, zo PCRE-modul za PHP ma so bjez PCRE_UTF8-podpěry kompilować.
-MediaWiki trjeba UTF-8-podpěru, zo by korektnje fungował.",
-       'config-memory-raised' => 'PHP-parameter <code>memory_limit</code> je $1, je so na hódnotu $2 zwyšił.',
-       'config-memory-bad' => "'''Warnowanje:''' PHP-parameter <code>memory_limit</code> ma hódnotu $1,
-To je najskerje přeniske.
-Instalacija móhła so njeporadźić!",
-       'config-ctype' => "'''Ćežki zmylk''': PHP dyrbi so z podpěru za [http://www.php.net/manual/en/ctype.installation.php rozšěrjenje Ctype] kompilować.",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] je instalowany',
-       'config-apc' => '[http://www.php.net/apc APC] je instalowany',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] je instalowany',
-       'config-diff3-bad' => 'GNU diff3 njenamakany.',
-       'config-no-uri' => "'''Zmylk:''' Aktualny URI njeda so postajić.
-Instalacija bu přetorhnjena.",
-       'config-no-cli-uri' => "'''Warnowanje''': Žana skriptowa šćežka (--scriptpath) podata, standard so wužiwa: <code>$1</code>.",
-       'config-using-server' => 'Serwerowe mjeno "<nowiki>$1</nowiki>" so wužiwa.',
-       'config-using-uri' => 'Serwerowy URL "<nowiki>$1$2</nowiki>" so wužiwa.',
-       'config-db-type' => 'Typ datoweje banki:',
-       'config-db-host' => 'Serwer datoweje banki:',
-       'config-db-host-oracle' => 'Datowa banka TNS:',
-       'config-db-wiki-settings' => 'Tutón wiki identifikować',
-       'config-db-name' => 'Mjeno datoweje banki:',
-       'config-db-name-oracle' => 'Šema datoweje banki:',
-       'config-db-install-account' => 'Wužiwarske konto za instalaciju',
-       'config-db-username' => 'Wužiwarske mjeno datoweje banki:',
-       'config-db-password' => 'Hesło datoweje banki:',
-       'config-db-password-empty' => 'Prošu zapodaj hesło za noweho wužiwarja datoweje banki: $1.
-Byrnjež było móžno wužiwarjow bjez hesłow wutworić, njeje to wěste.',
-       'config-db-install-username' => 'Zapodaj wužiwarske mjeno, kotrež budźe so za zwisk z datowej banku za instalaciski proces wužiwać.
-To njeje wužiwarske mjeno konta MediaWiki; to je wužiwarske mjeno za twoju datowu banku.',
-       'config-db-install-password' => 'Zapodaj hesło, kotrež budźe so za zwisk z datowej banku za instalaciski proces wužiwać.
-To njeje hesło konta MediaWiki; to je hesło za twoju datowu banku.',
-       'config-db-install-help' => 'Zapodaj wužiwarske mjeno a hesło, kotrejž měłoj so za zwisk z datowej banku za instalaciski proces wužiwać.',
-       'config-db-account-lock' => 'Samsne wužiwarske mjeno a hesło za normalnu operaciju wužiwać',
-       'config-db-wiki-account' => 'Wužiwarske konto za normalnu operaciju',
-       'config-db-prefix' => 'Tabelowy prefiks datoweje banki:',
-       'config-db-charset' => 'Znamješkowa sadźba datoweje banki',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binarny',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 wróćokompatibelny UTF-8',
-       'config-mysql-old' => 'MySQL $1 abo nowši trěbny, maš $2.',
-       'config-db-port' => 'Port datoweje banki:',
-       'config-db-schema' => 'Šema za MediaWiki',
-       'config-db-schema-help' => 'Tuta šema da so zwjetša derje wužiwać.
-Změń ju jenož, jeli su přeswědčiwe přičiny za to.',
-       'config-pg-test-error' => "Zwisk z datowej banku '''$1''' móžno njeje: $2",
-       'config-sqlite-dir' => 'Zapis SQLite-datow:',
-       'config-oracle-def-ts' => 'Standardny tabelowy rum:',
-       'config-oracle-temp-ts' => 'Nachwilny tabelowy rum:',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-support-mysql' => '* $1 je primarny cil za MediaWiki a podpěruje so najlěpje ([http://www.php.net/manual/en/mysql.installation.php Nawod ke kompilowanju  PHP z  MySQL-podpěru])',
-       'config-support-postgres' => '* $1 je popularny system datoweje banki zjawneho žórła jako alternatiwa k MySQL ([http://www.php.net/manual/en/pgsql.installation.php nawod za kompilowanje PHP z podpěru PostgreSQL]). Móhło hišće někotre zmylki eksistować, a njeporuča so jón w produktiwnej wokolinje wužiwać.',
-       'config-support-oracle' => '* $1 je komercielna předewzaćelska datowa banka. ([http://www.php.net/manual/en/oci8.installation.php Nawod za kompilowanje PHP z OCI8-podpěru])',
-       'config-header-mysql' => 'Nastajenja MySQL',
-       'config-header-postgres' => 'Nastajenja PostgreSQL',
-       'config-header-sqlite' => 'Nastajenja SQLite',
-       'config-header-oracle' => 'Nastajenja Oracle',
-       'config-invalid-db-type' => 'Njepłaćiwy typ datoweje banki',
-       'config-missing-db-name' => 'Dyrbiš hódnotu za "Mjeno datoweje banki" zapodać',
-       'config-missing-db-host' => 'Dyrbiš hódnotu za "Database host" zapodać',
-       'config-missing-db-server-oracle' => 'Dyrbiš hódnotu za "Database TNS" zapodać',
-       'config-invalid-db-server-oracle' => 'Njepłaćiwa datowa banka TNS "$1".
-Wužij jenož pismiki ASCII (a-z, A-Z), ličby (0-9), podsmužki (_) a dypki (.).',
-       'config-invalid-db-name' => 'Njepłaćiwe mjeno "$1" datoweje banki.
-Wužij jenož pismiki ASCII (a-z, A-Z), ličby (0-9),a podsmužki (_) a wjazawki (-).',
-       'config-invalid-db-prefix' => 'Njepłaćiwy prefiks "$1" datoweje banki.
-Wužij jenož pismiki ASCII (a-z, A-Z), ličby (0-9), podsmužki (_) a wjazawki (-).',
-       'config-connection-error' => '$1.
-
-Skontroluj serwer, wužiwarske a hesło a spytaj hišće raz.',
-       'config-invalid-schema' => 'Njepłaćiwe šema za MediaWiki "$1".
-Wužij jenož pismiki ASCII (a-z, A-Z), ličby (0-9) a podsmužki (_).',
-       'config-db-sys-create-oracle' => 'Instalaciski program podpěruje jenož wužiwanje SYSDBA-konta za zakoženje noweho konta.',
-       'config-db-sys-user-exists-oracle' => 'Wužiwarske konto "$1" hižo eksistuje. SYSDBA hodźi so jenož za załoženje noweho konta wužiwać!',
-       'config-postgres-old' => 'PostgreSQL $1 abo nowši trěbny, maš $2.',
-       'config-sqlite-name-help' => 'Wubjer mjeno, kotrež twój wiki identifikuje.
-Njewužij mjezery abo wjazawki.
-To budźe so za mjeno dataje SQLite-datow wužiwać.',
-       'config-sqlite-mkdir-error' => 'Zmylk při wutworjenju datoweho zapisa "$1".
-Skontroluj městno a spytaj hišće raz.',
-       'config-sqlite-dir-unwritable' => 'Njeje móžno do zapisa "$1" pisać.
-Změń jeho prawa, tak zo webserwer móže do njeho pisać a spytaj hišće raz.',
-       'config-sqlite-connection-error' => '$1.
-
-Skontroluj datowy zapis a mjeno datoweje banki kaj spytaj hišće raz.',
-       'config-sqlite-readonly' => 'Do dataje <code>$1</code> njeda so pisać.',
-       'config-sqlite-cant-create-db' => 'Dataja <code>$1</code> datoweje banki njeda so wutworić.',
-       'config-sqlite-fts3-downgrade' => 'PHP wo podpěrje FTS3 k dispoziciji njesteji, table so znižuja',
-       'config-can-upgrade' => "Su tabele MediaWiki w tutej datowej bance.
-Zo by je na MediaWiki $1 aktualizował, klikń na '''Dale'''.",
-       'config-upgrade-done-no-regenerate' => 'Aktualizacija dokónčena.
-
-Móžeš nětko [$1 swój wiki wužiwać].',
-       'config-regenerate' => 'LocalSettings.php znowa wutworić →',
-       'config-show-table-status' => 'Naprašowanje <code>SHOW TABLE STATUS</code> je so njeporadźiło!',
-       'config-unknown-collation' => "'''Warnowanje:''' Datowa banka njeznatu kolaciju wužiwa.",
-       'config-db-web-account' => 'Konto datoweje banki za webpřistup',
-       'config-db-web-help' => 'wubjer wužiwarske mjeno a hesło, kotrejž webserwer budźe wužiwać, zo by z serwerom datoweje banki za wšědnu operaciju zwjazać',
-       'config-db-web-account-same' => 'Samsne konto kaž za instalaciju wužiwać',
-       'config-db-web-create' => 'Załož konto, jeli hišće njeeksistuje.',
-       'config-db-web-no-create-privs' => 'Konto, kotrež sy za instalaciju podał, nima dosć woprawnjenjow, zo by konto wutworiło.
-Konto, kotrež tu podawaće, dyrbi hižo eksistować.',
-       'config-mysql-engine' => 'Składowanska mašina:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-charset' => 'Znamješkowa sadźba datoweje banki:',
-       'config-mysql-binary' => 'Binarny',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'Mjeno wikija:',
-       'config-site-name-help' => 'To zjewi so w titulowej lejstwje wobhladaka kaž tež na wšelakich druhich městnach.',
-       'config-site-name-blank' => 'Zapodaj sydłowe mjeno.',
-       'config-project-namespace' => 'Mjenowy rum projekta:',
-       'config-ns-generic' => 'Projekt',
-       'config-ns-site-name' => 'Samsne kaž wikimjeno: $1',
-       'config-ns-other' => 'Druhe (podać)',
-       'config-ns-other-default' => 'MyWiki',
-       'config-ns-invalid' => 'Podaty mjenowy rum "<nowiki>$1</nowiki>" je njepłaćiwy.
-Podaj druhi projektowy mjenowy rum.',
-       'config-ns-conflict' => 'Podaty mjenowy rum "<nowiki>$1</nowiki>" je w konflikće ze standardnym mjenjowym rumom MediaWiki.
-Podaj druhi projektowy mjenowy rum.',
-       'config-admin-box' => 'Administratorowe konto',
-       'config-admin-name' => 'Twoje mjeno:',
-       'config-admin-password' => 'Hesło:',
-       'config-admin-password-confirm' => 'Hesło wospjetować:',
-       'config-admin-help' => 'Zapodaj swoje preferowane wužiwarske mjeno, na přikład "Jurij Serb".
-To je mjeno, kotrež budźeš wužiwać, zo by so do wikija přizjewił.',
-       'config-admin-name-blank' => 'Zapodaj administratorowe wužiwarske mjeno.',
-       'config-admin-name-invalid' => 'Podate wužiwarske mjeno "<nowiki>$1</nowiki>" je njepłaćiwe.
-Podaj druhe wužiwarske mjeno.',
-       'config-admin-password-blank' => 'Zapodaj hesło za administratorowe konto.',
-       'config-admin-password-same' => 'Hesło dyrbi so wot wužiwarskeho mjena rozeznać.',
-       'config-admin-password-mismatch' => 'Wobě hesle, kotrejž sy zapodał, njejstej jenakej.',
-       'config-admin-email' => 'E-mejlowa adresa:',
-       'config-admin-email-help' => 'Zapodaj tu e-mejlowu adresu, zo by přijimanje e-mejlow wot druhich wužiwarjow w tutym wikiju zmóžnił, swoje hesło wróćo stajił a zdźělenki wo změnach na swojich wobkedźbowanych stronach  dostał. Móžeš polo prózdne wostajić.',
-       'config-admin-error-user' => 'Interny zmylk při wutworjenju administratora z mjenom "<nowiki>$1</nowiki>".',
-       'config-admin-error-password' => 'Interny zmylk při nastajenju hesła za administratora "<nowiki>$1</nowiki>": <pre>$2</pre>',
-       'config-admin-error-bademail' => 'Sy njepłaćiwu e-mejlowu adresu zapodał.',
-       'config-subscribe' => '[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Rozesyłansku lisćinu wo připowědźenjach nowych wersijow ].abonować',
-       'config-almost-done' => 'Sy skoro hotowy!
-Móžeš nětko zbytnu konfiguraciju přeskočić a wiki hnydom instalować.',
-       'config-optional-continue' => 'Dalše prašenja?',
-       'config-optional-skip' => 'Instaluj nětko wiki.',
-       'config-profile' => 'Profil wužiwarskich prawow:',
-       'config-profile-wiki' => 'Zjawny wiki',
-       'config-profile-no-anon' => 'Załoženje konto je trěbne',
-       'config-profile-fishbowl' => 'Jenož awtorizowani wobdźěłarjo',
-       'config-profile-private' => 'Priwatny wiki',
-       'config-license' => 'Awtorske prawo a licenca:',
-       'config-license-none' => 'Žane licencne podaća w nohowej lince',
-       'config-license-cc-by-sa' => 'Creative Commons Attribution Share Alike',
-       'config-license-cc-by' => 'Creative Commons Attribution',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Attribution Non-Commercial Share Alike',
-       'config-license-cc-0' => 'Creative Commons Zero (zjawnosći přistupny)',
-       'config-license-gfdl' => 'GNU-licenca za swobodnu dokumentaciju 1.3 abo nowša',
-       'config-license-pd' => 'Powšitkownosći přistupny',
-       'config-license-cc-choose' => 'Swójsku licencu Creative Commons wubrać',
-       'config-email-settings' => 'E-mejlowe nastajenja',
-       'config-enable-email' => 'Wuchadźace e-mejlki zmóžnić',
-       'config-enable-email-help' => 'Jeli chceš e-mejl wužiwać, dyrbja so [http://www.php.net/manual/en/mail.configuration.php e-mejlowe nastajenja PHP] prawje konfigurować.
-Jeli nochceš e-mejlowe funkcije wužiwać, móžeš je tu znjemóžnić.',
-       'config-email-user' => 'E-mejl mjez wužiwarjemi zmóžnić',
-       'config-email-user-help' => 'Wšěm wužiwarjam dowolić, jednomu druhemu e-mejlki pósłać, jeli su tutu funkciju w swojich nastajenjach zmóžnili.',
-       'config-email-usertalk' => 'Zdźělenja za wužiwarske diskusijne strony zmóžnić',
-       'config-email-usertalk-help' => 'Wužiwarjam dowolić zdźělenki wo změnach na wužiwarskich diskusijnych stronach dóstać, jeli woni su to w swojich nastajenjach zmóžnili.',
-       'config-email-watchlist' => 'Zdźělenja za wobkedźbowanki zmóžnić',
-       'config-email-watchlist-help' => 'Wužiwarjam dowolić zdźělenki wo jich wobked´bowanych stronach dóstać, jeli woni su to w swojich nastajenjach zmóžnili.',
-       'config-email-auth' => 'E-mejlowu awtentifikaciju zmóžnić',
-       'config-email-sender' => 'E-mejlowa adresa za wotmołwy:',
-       'config-upload-settings' => 'Wobrazy a nahraća datajow',
-       'config-upload-enable' => 'Nahraće datajow zmóžnić',
-       'config-upload-deleted' => 'Zapis za zhašane dataje:',
-       'config-upload-deleted-help' => 'Wubjer zapis, w kotrymž zhašene dataje maja so archiwować.
-Idealnje tón njeměł z weba přistupny być.',
-       'config-logo' => 'URL loga:',
-       'config-instantcommons' => 'Instant commons zmóžnić',
-       'config-cc-error' => 'Pytanje za licencu Creative Commons njeje žadyn wuslědk přinjesło.
-Zapodaj licencne mjeno manuelnje.',
-       'config-cc-again' => 'Zaso wubrać...',
-       'config-cc-not-chosen' => 'Wubjer licencu Creative Commons a klikń na "dale".',
-       'config-advanced-settings' => 'Rozšěrjena konfiguraćija',
-       'config-cache-options' => 'Nastajenja za objektowe pufrowanje:',
-       'config-cache-none' => 'Žane pufrowanje (žana funkcionalnosć so njewotstronja, ale spěšnosć móže so na wjetšich wikijowych sydłach wobwliwować)',
-       'config-cache-accel' => 'Objektowe pufrowanje PHP (APC, XCache abo WinCache)',
-       'config-cache-memcached' => 'Memcached wužiwać (wužaduje sej přidatnu instalaciju a konfiguraciju)',
-       'config-memcached-servers' => 'Serwery memcached:',
-       'config-memcached-help' => 'Lisćina IP-adresow, kotrež maja so za Memcached wužiwać.
-Kóžda linka měła jenož jednu IP-adresu a port, kotryž ma so wužiwać, wobsahować. Na přikład:
-127.0.0.1:11211
-192.168.1.25:1234',
-       'config-memcache-needservers' => 'Sy Memcached jako swój pufrowakowy typ wubrał, ale njejsy žane serwery podał',
-       'config-memcache-badip' => 'Sy njepłaćiwu IP-adresu za Memcached zapodał: $1',
-       'config-memcache-noport' => 'Njejsy žadyn port za wužiwanje serwera Memcached podał: $1.
-Jeli port njewěš, standard je 11211.',
-       'config-memcache-badport' => 'Portowe čisła za Memcached měli mjez $1 a $2 być',
-       'config-extensions' => 'Rozšěrjenja',
-       'config-extensions-help' => 'Rozšěrjenja podate horjeka buchu w twojim zapisu <code>./extensions</code> namakane.
-
-To móže sej přidatnu konfiguraciju wužadać, ale móžeš je nětko zmóžnić.',
-       'config-install-alreadydone' => "'''Warnowanje:''' Zda so, zo sy hižo MediaWiki instalował a pospytuješ jón znowa instalować.
-Prošu pokročuj z přichodnej stronu.",
-       'config-install-begin' => 'Přez kliknjenje na "{{int:config-continue}}" budźe so instalacija MediaWiki startować.
-Jeli hišće chceš něšto změnić, klikń na "{{int:config-back}}".',
-       'config-install-step-done' => 'dokónčene',
-       'config-install-step-failed' => 'njeporadźiło',
-       'config-install-extensions' => 'Inkluziwnje rozšěrjenja',
-       'config-install-database' => 'Datowa banka so připrawja',
-       'config-install-schema' => 'Datowa šema so twori',
-       'config-install-pg-schema-not-exist' => 'Šema PostgreSQL njeeksistuje',
-       'config-install-pg-schema-failed' => 'Wutworjenje tabelow je so njeporadźiło.
-Zawěsć, zo wužiwar "$1" móže do šemy "$2" pisać.',
-       'config-install-pg-commit' => 'Změny so wotesyłaja',
-       'config-install-pg-plpgsql' => 'Pruwowanje za rěču PL/pgSQL',
-       'config-pg-no-plpgsql' => 'Dyrbiš rěč PL/pgSQL w datowej bance $1 instalować',
-       'config-pg-no-create-privs' => 'Konto, kotrež sy za instalaciju podał, nima dosahace prawa za wutworjenje konta.',
-       'config-install-user' => 'Tworjenje wužiwarja datoweje banki',
-       'config-install-user-alreadyexists' => 'Wužiwar "$1" hižo eksistuje',
-       'config-install-user-create-failed' => 'Wutworjenje wužiwarja "$1" je so njeporadźiło: $2',
-       'config-install-user-grant-failed' => 'Prawo njeda so wužiwarjej "$1" dać: $2',
-       'config-install-user-missing' => 'Podaty wužiwar "$1" njeeksistuje.',
-       'config-install-user-missing-create' => 'Podaty wužiwar "$1" njeeksistuje.
-Prošu klikń na slědowacy kontrolny kašćik "konto załožić", jeli chceš jo wutworić.',
-       'config-install-tables' => 'Tworjenje tabelow',
-       'config-install-tables-exist' => "'''Warnowanje''': Zda so, zo tabele MediaWiki hižo eksistuja.
-Wutworjenje so přeskakuje.",
-       'config-install-tables-failed' => "'''Zmylk''': Wutworjenje tabele je so slědowaceho zmylka dla njeporadźiło: $1",
-       'config-install-interwiki' => 'Standardna tabela interwikijow so pjelni',
-       'config-install-interwiki-list' => '<code>interwiki.list</code> njeda so namakać.',
-       'config-install-interwiki-exists' => "'''Warnowanje''': Zda so, zo tabela interwikjow hižo zapiski wobsahuje.
-Standardna lisćina sp přeskakuje.",
-       'config-install-stats' => 'Statistika so inicializuje',
-       'config-install-keys' => 'Tajne kluče so tworja',
-       'config-install-sysop' => 'Tworjenje administratoroweho wužiwarskeho konta',
-       'config-install-subscribe-fail' => 'Abonowanje "mediawiki-announce" njemóžno: $1',
-       'config-install-subscribe-notpossible' => 'cURL njeje instalowany a allow_url_fopen k dispoziciji njesteji.',
-       'config-install-mainpage' => 'Hłowna strona so ze standardnym wobsahom wutworja',
-       'config-install-extension-tables' => 'Tabele za zmóžnjene rozšěrjenja so tworja',
-       'config-install-mainpage-failed' => 'Powěsć njeda so zasunyć: $1',
-       'config-download-localsettings' => '<code>LocalSettings.php</code> sćahnyć',
-       'config-help' => 'pomoc',
-       'config-nofile' => 'Dataja "$1" njeje so namakała. Je so zhašała?',
-       'mainpagetext' => "'''MediaWiki bu wuspěšnje instalowany.'''",
-       'mainpagedocfooter' => 'Prošu hlej [//meta.wikimedia.org/wiki/Help:Contents dokumentaciju] za informacije wo wužiwanju softwary.
-
-== Za nowačkow ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Wo nastajenjach]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources MediaWiki za twoju rěč lokalizować]',
-);
-
-/** Haitian (Kreyòl ayisyen)
- * @author Boukman
- */
-$messages['ht'] = array(
-       'mainpagetext' => "'''MedyaWiki byen enstale l.'''",
-       'mainpagedocfooter' => 'Konsilte [//meta.wikimedia.org/wiki/Help:Konteni Gid Itilizatè] pou enfòmasyon sou kijan pou w itilize logisyèl wiki a.
-
-== Kijan pou kòmanse ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lis paramèt yo pou konfigirasyon]
-* [//www.mediawiki.org/wiki/Manyèl:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lis diskisyon ki parèt sou MediaWiki]', # Fuzzy
-);
-
-/** Hungarian (magyar)
- * @author Dani
- * @author Glanthor Reviol
- * @author 아라
- */
-$messages['hu'] = array(
-       'config-desc' => 'A MediaWiki telepítője',
-       'config-title' => 'A MediaWiki $1 telepítése',
-       'config-information' => 'Információ',
-       'config-localsettings-upgrade' => 'Már létezik a <code>LocalSettings.php</code> fájl.
-A telepített szoftver frissítéséhez írd be az alábbi mezőbe a <code>$wgUpgradeKey</code> beállítás értékét, melyet a <code>LocalSettings.php</code> nevű fájlban találhatsz meg.',
-       'config-localsettings-cli-upgrade' => 'A <code>LocalSettings.php</code> fájl megtalálható.
-A telepített rendszer frissítéséhez futtasd az <code>update.php</code>-t.',
-       'config-localsettings-key' => 'Frissítési kulcs:',
-       'config-localsettings-badkey' => 'A megadott kulcs érvénytelen.',
-       'config-upgrade-key-missing' => 'A telepítő a MediaWiki meglévő példányát észlelte.
-A telepített rendszer frissítéséhez helyezd el az alábbi sort a <code>LocalSettings.php</code> végére:
-
-$1',
-       'config-localsettings-incomplete' => 'A meglévő <code>LocalSettings.php</code> hiányosnak tűnik.
-A(z) $1 változó értéke nincs beállítva.
-Módosítsd a <code>LocalSettings.php</code> fájlt úgy, hogy ez a változó be legyen állítva, majd kattints a „{{int:Config-continue}}” gombra.',
-       'config-localsettings-connection-error' => 'Nem sikerült csatlakozni az adatbázishoz a <code>LocalSettings.php</code>-ben vagy az <code>AdminSettings.php</code>-ben megadott adatokkal. Ellenőrizd a beállításokat, majd próbáld újra.
-
-$1',
-       'config-session-error' => 'Nem sikerült elindítani a munkamenetet: $1',
-       'config-session-expired' => 'Úgy tűnik, hogy a munkamenetadatok lejártak.
-A munkamenetek élettartama a következőre van beállítva: $1.
-Az érték növelhető a php.ini <code>session.gc_maxlifetime</code> beállításának módosításával.
-Indítsd újra a telepítési folyamatot.',
-       'config-no-session' => 'Elvesztek a munkamenetadatok!
-Ellenőrizd, hogy a php.ini-ben a <code>session.save_path</code> a megfelelő könyvtárra mutat-e.',
-       'config-your-language' => 'Nyelv:',
-       'config-your-language-help' => 'A telepítési folyamat során használandó nyelv.',
-       'config-wiki-language' => 'A wiki nyelve:',
-       'config-wiki-language-help' => 'Az a nyelv, amin a wiki tartalmának legnagyobb része íródik.',
-       'config-back' => '← Vissza',
-       'config-continue' => 'Folytatás →',
-       'config-page-language' => 'Nyelv',
-       'config-page-welcome' => 'Üdvözöl a MediaWiki!',
-       'config-page-dbconnect' => 'Kapcsolódás az adatbázishoz',
-       'config-page-upgrade' => 'Telepített változat frissítése',
-       'config-page-dbsettings' => 'Adatbázis-beállítások',
-       'config-page-name' => 'Név',
-       'config-page-options' => 'Beállítások',
-       'config-page-install' => 'Telepítés',
-       'config-page-complete' => 'Kész!',
-       'config-page-restart' => 'Telepítés újraindítása',
-       'config-page-readme' => 'Tudnivalók',
-       'config-page-releasenotes' => 'Kiadási megjegyzések',
-       'config-page-copying' => 'Másolás',
-       'config-page-upgradedoc' => 'Frissítés',
-       'config-page-existingwiki' => 'Létező wiki',
-       'config-help-restart' => 'Szeretnéd törölni az eddig megadott összes adatot és újraindítani a telepítési folyamatot?',
-       'config-restart' => 'Igen, újraindítás',
-       'config-welcome' => '=== A környezet ellenőrzése ===
-Néhány alapvető ellenőrzés lett végrehajtva, ami meghatározza, hogy ez a környezet alkalmas-e a MediaWiki telepítésére.
-Ha telepítéssel kapcsolatos segítségre van szükséged, add meg ezen ellenőrzések eredményét.',
-       'config-copyright' => "=== Licenc és feltételek ===
-
-$1
-
-Ez a program szabad szoftver; terjeszthető illetve módosítható a Free Software Foundation által kiadott GNU General Public License dokumentumában leírtak; akár a licenc 2-es, akár (tetszőleges) későbbi változata szerint.
-
-Ez a program abban a reményben kerül közreadásra, hogy hasznos lesz, de minden egyéb '''garancia nélkül''', az '''eladhatóságra''' vagy '''valamely célra való alkalmazhatóságra''' való származtatott garanciát is beleértve. További részleteket a GNU General Public License tartalmaz.
-
-A felhasználónak a programmal együtt meg kell kapnia a <doclink href=Copying>GNU General Public License egy példányát</doclink>; ha mégsem kapta meg, akkor írjon a Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. címre, vagy [http://www.gnu.org/copyleft/gpl.html tekintse meg online].",
-       'config-sidebar' => '* [//www.mediawiki.org A MediaWiki honlapja]
-* [//www.mediawiki.org/wiki/Help:Contents Felhasználói kézikönyv]
-* [//www.mediawiki.org/wiki/Manual:Contents Útmutató adminisztrátoroknak]
-* [//www.mediawiki.org/wiki/Manual:FAQ GyIK]
-----
-* <doclink href=Readme>Ismertető</doclink>
-* <doclink href=ReleaseNotes>Kiadási megjegyzések</doclink>
-* <doclink href=Copying>Másolás</doclink>
-* <doclink href=UpgradeDoc>Frissítés</doclink>',
-       'config-env-good' => 'A környezet ellenőrzése befejeződött.
-A MediaWiki telepíthető.',
-       'config-env-bad' => 'A környezet ellenőrzése befejeződött.
-A MediaWiki nem telepíthető.',
-       'config-env-php' => 'A PHP verziója: $1',
-       'config-env-php-toolow' => 'PHP $1 van telepítve,
-azonban a MediaWikinek PHP $2, vagy újabb szükséges.',
-       'config-unicode-using-utf8' => 'A rendszer Unicode normalizálására Brion Vibber utf8_normalize.so könyvtárát használja.',
-       'config-unicode-using-intl' => 'A rendszer Unicode normalizálására az [http://pecl.php.net/intl intl PECL kiterjesztést] használja.',
-       'config-unicode-pure-php-warning' => "'''Figyelmeztetés''': Az Unicode normalizáláshoz szükséges [http://pecl.php.net/intl intl PECL kiterjesztés] nem érhető el, helyette a lassú, PHP alapú implementáció lesz használva.
-Ha nagy látogatottságú oldalt üzemeltetsz, itt találhatsz további információkat [//www.mediawiki.org/wiki/Unicode_normalization_considerations a témáról].",
-       'config-unicode-update-warning' => "'''Figyelmeztetés''': Az Unicode normalizáláshoz szükséges burkolókönyvtár [http://site.icu-project.org/ ICU projekt] függvénykönyvtárának régebbi változatát használja.
-Ha ügyelni kívánsz a Unicode használatára, fontold meg a [//www.mediawiki.org/wiki/Unicode_normalization_considerations frissítését].",
-       'config-no-db' => 'Nem sikerült egyetlen használható adatbázis-illesztőprogramot sem találni.  Telepítened kell egyet a PHP-hez.
-A következő adatbázistípusok támogatottak: $1.
-
-Ha megosztott tárhelyszolgáltatást használsz, kérd meg a szolgáltatódat, hogy telepítsen egy megfelelő illesztőprogramot.
-Ha a PHP-t magad fordítottad, konfiguráld újra úgy, hogy engedélyezve legyen egy adatbáziskliens, pl. a <code>./configure --with-mysql</code> parancs használatával.
-Ha a PHP-t Debian vagy Ubuntu csomaggal telepítetted, akkor szükséged lesz a php5-mysql modulra is.',
-       'config-no-fts3' => "'''Figyelmeztetés''': Az SQLite [//sqlite.org/fts3.html FTS3 modul] nélkül lett fordítva, a keresési funkciók nem fognak működni ezen a rendszeren.",
-       'config-register-globals' => "'''Figyelmeztetés: A PHP <code>[http://php.net/register_globals register_globals]</code> beállítása engedélyezve van.'''
-'''Tiltsd le, ha van rá lehetőséged.'''
-A MediaWiki működőképes a beállítás használata mellett, de a szerver biztonsági kockázatnak lesz kitéve.",
-       'config-magic-quotes-runtime' => "'''Kritikus hiba: a [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] aktív!'''
-Ez a beállítás kiszámíthatatlan károkat okoz a bevitt adatokban.
-A MediaWiki csak akkor telepíthető, ha ki van kapcsolva.",
-       'config-magic-quotes-sybase' => "'''Kritikus hiba: a [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_sybase] aktív!'''
-Ez a beállítás kiszámíthatatlan károkat okoz a bevitt adatokban.
-A MediaWiki csak akkor telepíthető, ha ki van kapcsolva.",
-       'config-mbstring' => "'''Kritikus hiba: az [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime mbstring.func_overload] aktív!'''
-Ez a beállítás hibákat okoz és kiszámíthatatlanul károsíthatja bevitt adatokat.
-A MediaWiki csak akkor telepíthető, ha ki van kapcsolva.",
-       'config-ze1' => "'''Kritikus hiba: a [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_sybase] aktív!'''
-Ez a beállítás borzalmas hibákat okoz a MediaWiki futása során.
-A MediaWiki csak akkor telepíthető, ha ki van kapcsolva.",
-       'config-safe-mode' => "'''Figyelmeztetés:''' A PHP [http://www.php.net/features.safe-mode safe mode]-ja be van kapcsolva.
-Problémákat okozhat, különösen a fájlfeltöltéseknél és a <code>math</code>-támogatás használatánál.",
-       'config-xml-bad' => 'A PHP XML-modulja hiányzik.
-Egyes MediaWiki-funkciók, melyek ezt a modult igénylik, nem fognak működni ilyen beállítások mellett.
-Ha Madrake-et futtatsz, telepítsd a php-xml csomagot.',
-       'config-pcre' => 'Úgy tűnik, hogy a PCRE támogató modul hiányzik.
-A MediaWikinek Perl-kompatibilis reguláriskifejezés-függvényekre van szüksége a működéshez.',
-       'config-pcre-no-utf8' => "'''Kritikus hiba''': Úgy tűnik, hogy a PHP PRCE modulja PRCE_UTF8 támogatás nélkül lett fordítva.
-A MediaWikinek UTF-8-támogatásra van szüksége a helyes működéshez.",
-       'config-memory-raised' => 'A PHP <code>memory_limit</code> beállításának értéke: $1. Meg lett növelve a következő értékre: $2.',
-       'config-memory-bad' => "'''Figyelmeztetés:''' A PHP <code>memory_limit</code> beállításának értéke $1.
-Ez az érték valószínűleg túl kevés, a telepítés sikertelen lehet.",
-       'config-xcache' => 'Az [http://xcache.lighttpd.net/ XCache] telepítve van',
-       'config-apc' => 'Az [http://www.php.net/apc APC] telepítve van',
-       'config-wincache' => 'A [http://www.iis.net/download/WinCacheForPhp WinCache] telepítve van',
-       'config-no-cache' => "'''Figyelmeztetés:''' Nem található [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] és [http://www.iis.net/download/WinCacheForPhp WinCache] sem.
-Objektum-gyorsítótárazás nem lesz engedélyezve.",
-       'config-diff3-bad' => 'GNU diff3 nem található.',
-       'config-imagemagick' => 'Az ImageMagick megtalálható a rendszeren: <code>$1</code>.
-A bélyegképek készítése engedélyezve lesz a feltöltések engedélyezése esetén.',
-       'config-gd' => 'A GD grafikai könyvtár elérhető.
-Bélyegképek készítése működni fog, miután engedélyezted a fájlfeltöltést.',
-       'config-no-scaling' => 'Nem található a GD könyvtár és az ImageMagick.
-A bélyegképek készítése le lesz tiltva.',
-       'config-no-uri' => "'''Hiba:''' Nem sikerült megállapítani a jelenlegi URI-t.
-Telepítés megszakítva.",
-       'config-using-server' => 'A következő szervernév használata: „<nowiki>$1</nowiki>”.',
-       'config-using-uri' => 'A következő szerver URL-cím használata: „<nowiki>$1$2</nowiki>”.',
-       'config-uploads-not-safe' => "'''Figyelmeztetés:''' a feltöltésekhez használt alapértelmezett könyvtárban (<code>$1</code>) tetszőleges külső szkript futtatható.
-Habár a MediaWiki ellenőrzi a feltöltött fájlokat az efféle biztonsági veszélyek megtalálása érdekében, a feltöltés engedélyezése előtt erősen ajánlott a [//www.mediawiki.org/wiki/Manual:Security#Upload_security a sérülékenység megszüntetése].",
-       'config-brokenlibxml' => 'A rendszereden a PHP és libxml2 verziók olyan kombinációja található meg, ami hibásan működik, és észrevehetetlen adatkárosodást okoz a MediaWikiben és más webalkalmazásokban.
-Frissíts a PHP 5.2.9-es vagy újabb, valamint a libxml2 2.7.3 vgy újabb verziójára ([//bugs.php.net/bug.php?id=45996 A hiba bejelentése a PHP-nél]).
-Telepítés megszakítva.',
-       'config-using531' => 'A MediaWiki nem használható a PHP $1-es verziójával, mert hiba van a <code>__call()</code> függvénynek átadott referenciaparaméterekkel.
-A probléma kiküszöböléséhez frissíts a PHP 5.3.2-es verziójára, vagy használd a korábbi, 5.3.0-ásat.
-Telepítés megszakítva.',
-       'config-suhosin-max-value-length' => 'A Suhosin telepítve van, és a GET paraméter hosszát $1 bájtra korlátozza. A MediaWiki erőforrásbetöltő összetevője megkerüli a problémát, de így csökkenni fog a teljesítmény. Ha lehetséges, állítsd be a <code>suhosin.get.max_value_length</code> értékét legalább 1024-re a <code>php.ini</code>ben, és állítsd be a <code>$wgResourceLoaderMaxQueryLength</code> változót ugyanerre az értékre a LocalSettings.php-ben.', # Fuzzy
-       'config-db-type' => 'Adatbázis típusa:',
-       'config-db-host' => 'Adatbázis hosztneve:',
-       'config-db-host-help' => 'Ha az adatbázisszerver másik szerveren található, add meg a hosztnevét vagy az IP-címét.
-
-Ha megosztott webtárhelyet használsz, a szolgáltató dokumentációjában megtalálható a helyes hosztnév.
-
-Ha Windows-alapú szerverre telepítesz, és MySQL-t használsz, a „localhost” nem biztos, hogy működni fog. Ha így van, próbáld meg a „127.0.0.1” helyi IP-cím használatát.', # Fuzzy
-       'config-db-host-oracle' => 'Adatbázis TNS:',
-       'config-db-wiki-settings' => 'A wiki azonosítása',
-       'config-db-name' => 'Adatbázisnév:',
-       'config-db-name-help' => 'Válassz egy nevet a wiki azonosítására.
-Ne tartalmazzon szóközt.
-
-Ha megosztott webtárhelyet használsz, a szolgáltatód vagy egy konkrét adatbázisnevet ad neked használatra, vagy te magad hozhatsz létre adatbázisokat a vezérlőpulton keresztül.',
-       'config-db-name-oracle' => 'Adatbázisséma:',
-       'config-db-account-oracle-warn' => 'Oracle adatbázisba való telepítésnek három támogatott módja van:
-
-Ha a telepítési folyamat során adatbázisfiókot szeretnél létrehozni, akkor egy olyan fiókot kell használnod, mely rendelkezik SYSDBA jogosultsággal, majd meg kell adnod a létrehozandó, webes hozzáféréshez használt fiók adatait. Emellett a fiók kézzel is létrehozható, ekkor ennek az adatait kell megadni (a fióknak rendelkeznie kell megfelelő jogosul adatbázis-objektumok létrehozásához), vagy megadhatsz két fiókot: egyet a létrehozáshoz szükséges jogosultságokkal, és egy korlátozottat a webes hozzáféréshez.
-
-A megfelelő jogosultságokkal rendelkező fiók létrehozásához használható szkript a szoftver „maintenance/oracle/” könyvtárában található. Ne feledd, hogy korlátozott fiók használatakor az alapértelmezett fiókkal nem végezhetőek el a karbantartási műveletek.',
-       'config-db-install-account' => 'A telepítéshez használt felhasználói fiók adatai',
-       'config-db-username' => 'Felhasználónév:',
-       'config-db-password' => 'Jelszó:',
-       'config-db-password-empty' => 'Írd be az új adatbázis-felhasználó jelszavát: $1
-Van lehetőség jelszó nélküli felhasználók létrehozására, azonban ez nem ajánlott.',
-       'config-db-install-username' => 'Írd be az adatbázisrendszerhez való csatlakozáshoz használt felhasználónevet.
-Ez nem a MediaWiki fiók felhasználóneve; ez az adatbázisrendszeren használt felhasználóneved.',
-       'config-db-install-password' => 'Írd be az adatbázisrendszerhez való csatlakozáshoz használt jelszót.
-Ez nem a MediaWiki-fiók jelszava; ez az adatbázisrendszeren használt jelszavad.',
-       'config-db-install-help' => 'Add meg a felhasználónevet és jelszót, amivel a telepítő csatlakozhat az adatbázishoz.',
-       'config-db-account-lock' => 'Általános működés során is ezen információk használata',
-       'config-db-wiki-account' => 'Általános működéshez használt felhasználói adatok',
-       'config-db-wiki-help' => 'Add meg azt a felhasználónevet és jelszót, amivel a wiki fog csatlakozni az adatbázishoz működés közben.
-Ha a fiók nem létezik és a telepítést végző fiók rendelkezik megfelelő jogosultsággal, egy új fiók készül a megadott a névvel, azon minimális jogosultságkörrel, ami a wiki működéséhez szükséges.',
-       'config-db-prefix' => 'Adatbázistáblák nevének előtagja:',
-       'config-db-prefix-help' => 'Ha egyetlen adatbázison osztozik több wiki, vagy a MediaWiki és más webalkalmazás, választhatsz egy előtagot a táblaneveknek, hogy megelőzd a konfliktusokat.
-Ne használj szóközöket.
-
-A mezőt általában üresen kell hagyni.',
-       'config-db-charset' => 'Az adatbázis karakterkészlete',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0, bináris',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0, visszafelé kompatibilis UTF-8',
-       'config-charset-help' => "'''Figyelmezetés:''' Ha a '''visszafelé kompatibilis UTF-8''' beállítást használod MySQL 4.1 vagy újabb verziók esetén, és utána a <code>mysqldump</code> programmal készítesz róla biztonsági másolatot, az tönkreteheti az összes nem ASCII-karaktert, visszafordíthatatlanul károsítva a másolatokban tárolt adatokat!
-
-'''Bináris''' módban a MediaWiki az UTF-8-ban kódolt szöveget bináris mezőkben tárolja az adatbázisban.
-Ez sokkal hatékonyabb a MySQL UTF-8-módjától, és lehetővé teszi, hogy a teljes Unicode-karakterkészletet használd.
-'''UTF-8-módban''' MySQL tudja, hogy milyen karakterkészlettel van kódolva az adat, és megfelelően tárolja és konvertálja, de
-nem használhatod a [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] feletti karaktereket.",
-       'config-mysql-old' => 'A MySQL $1 vagy újabb verziója szükséges, a rendszeren $2 van.',
-       'config-db-port' => 'Adatbázisport:',
-       'config-db-schema' => 'MediaWiki-séma',
-       'config-db-schema-help' => 'A fenti sémák általában megfelelőek.
-Csak akkor módosíts rajtuk, ha tudod, hogy szükséges.',
-       'config-pg-test-error' => "Nem sikerült csatlakozni a(z) '''$1''' adatbázishoz: $2",
-       'config-sqlite-dir' => 'SQLite-adatkönyvtár:',
-       'config-sqlite-dir-help' => "Az SQLite minden adatot egyetlen fájlban tárol.
-
-A megadott könyvtárban írási jogosultsággal kell rendelkeznie a webszervernek.
-
-'''Nem''' szabad elérhetőnek lennie weben keresztül, ezért nem rakjuk oda, ahol a PHP-fájljaid vannak.
-
-A telepítő készít egy <code>.htaccess</code> fájlt az adatbázis mellé, azonban ha valamilyen okból nem sikerül, akkor akárki hozzáférhet a teljes adatbázisodhoz. Ez a felhasználók adatai (e-mail címek, jelszók hashei) mellett a törölt változatokat és más, korlátozott hozzáférésű információkat is tartalmaz.
-
-Fontold meg az adatbázis más helyre történő elhelyezését, például a <code>/var/lib/mediawiki/tewikid</code> könyvtárba.",
-       'config-oracle-def-ts' => 'Alapértelmezett táblatér:',
-       'config-oracle-temp-ts' => 'Ideiglenes táblatér:',
-       'config-support-info' => 'A MediaWiki a következő adatbázisrendszereket támogatja:
-
-$1
-
-Ha az alábbi listán nem találod azt a rendszert, melyet használni szeretnél, a fenti linken található instrukciókat követve engedélyezheted a támogatását.',
-       'config-support-mysql' => '* A $1 a MediaWiki elsődleges célpontja, így a legjobban támogatott ([http://www.php.net/manual/en/mysql.installation.php Hogyan fordítható a PHP MySQL-támogatással])',
-       'config-support-postgres' => '* A $1 népszerű, nyílt forráskódú adatbázisrendszer, a MySQL alternatívája ([http://www.php.net/manual/en/pgsql.installation.php Hogyan fordítható a PHP PostgreSQL-támogatással]). Több apró, javítatlan hiba is előfordulhat, így nem ajánlott éles környezetben használni.',
-       'config-support-sqlite' => '* Az $1 egy könnyű, nagyon jól támogatott adatbázisrendszer. ([http://www.php.net/manual/en/pdo.installation.php Hogyan fordítható a PHP SQLite-támogatással], PDO-t használ)',
-       'config-support-oracle' => '* Az $1 kereskedelmi, vállalati adatbázisrendszer. ([http://www.php.net/manual/en/oci8.installation.php Hogyan fordítható a PHP OCI8-támogatással])',
-       'config-header-mysql' => 'MySQL-beállítások',
-       'config-header-postgres' => 'PostgreSQL-beállítások',
-       'config-header-sqlite' => 'SQLite-beállítások',
-       'config-header-oracle' => 'Oracle-beállítások',
-       'config-invalid-db-type' => 'Érvénytelen adatbázistípus',
-       'config-missing-db-name' => 'Meg kell adnod az „Adatbázisnév” értékét',
-       'config-missing-db-host' => 'Meg kell adnod az „Adatbázis hosztneve” értékét',
-       'config-missing-db-server-oracle' => 'Meg kell adnod az „Adatbázis TNS” értékét',
-       'config-invalid-db-server-oracle' => 'Érvénytelen adatbázis TNS: „$1”
-Csak ASCII betűk (a-z, A-Z), számok (0-9), alulvonás (_) és pont (.) használható.',
-       'config-invalid-db-name' => 'Érvénytelen adatbázisnév: „$1”.
-Csak ASCII-karakterek (a-z, A-Z), számok (0-9), alulvonás (_) és kötőjel (-) használható.',
-       'config-invalid-db-prefix' => 'Érvénytelen adatbázisnév-előtag: „$1”.
-Csak ASCII-karakterek (a-z, A-Z), számok (0-9), alulvonás (_) és kötőjel (-) használható.',
-       'config-connection-error' => '$1.
-
-Ellenőrizd a hosztot, felhasználónevet és jelszót, majd próbáld újra.',
-       'config-invalid-schema' => 'Érvénytelen MediaWiki-séma: „$1”.
-Csak ASCII-karakterek (a-z, A-Z), számok (0-9) és alulvonás (_) használható.',
-       'config-db-sys-create-oracle' => 'A telepítő csak a SYSDBA fiókkal tud új felhasználói fiókot létrehozni.',
-       'config-db-sys-user-exists-oracle' => 'Már létezik „$1” nevű felhasználói fiók. A SYSDBA csak új fiók létrehozására használható!',
-       'config-postgres-old' => 'A PostgreSQL $1 vagy újabb verziója szükséges, a rendszeren $2 van.',
-       'config-sqlite-name-help' => 'Válassz egy nevet a wiki azonosítására.
-Ne tartalmazzon szóközt vagy kötőjelet.
-Ez lesz az SQLite-adatfájl neve.',
-       'config-sqlite-parent-unwritable-group' => 'Nem hozható létre a(z) <code><nowiki>$1</nowiki></code> adatkönyvtár, mert a szülőkönyvtárba (<code><nowiki>$2</nowiki></code>) nem írhat a webszerver.
-
-A telepítő megállapította, hogy mely felhasználó futtatja a webszervert.
-A folytatáshoz tedd írhatóvá a(z) <code><nowiki>$3</nowiki></code> könyvtárat.
-Unix/Linux rendszeren tedd a következőt:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Nem lehet létrehozni az adatok tárolásához szükséges <code><nowiki>$1</nowiki></code> könyvtárat, mert a webszerver nem írhat a szülőkönyvtárba (<code><nowiki>$2</nowiki></code>).
-
-A telepítő nem tudta megállapíteni, hogy melyik felhasználói fiókon fut a webszerver.
-A folytatáshoz tedd írhatóvá ezen fiók (és más fiókok!) számára a következő könyvtárat: <code><nowiki>$3</nowiki></code>.
-Unix/Linux rendszereken tedd a következőt:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Nem sikerült létrehozni a következő adatkönyvtárat: „$1”.
-Ellenőrizd a helyet, majd próbáld újra.',
-       'config-sqlite-dir-unwritable' => 'Nem sikerült írni a következő könyvtárba: „$1”.
-Módosítsd a jogosultságokat úgy, hogy a webszerver tudjon oda írni, majd próbáld újra.',
-       'config-sqlite-connection-error' => '$1.
-
-Ellenőrizd az adatkönyvtárat és az adatbázisnevet, majd próbáld újra.',
-       'config-sqlite-readonly' => 'A következő fájl nem írható: <code>$1</code>.',
-       'config-sqlite-cant-create-db' => 'Nem sikerült létrehozni a következő adatbázisfájlt: <code>$1</code>.',
-       'config-sqlite-fts3-downgrade' => 'A PHP nem rendelkezik FTS3-támogatással, táblák visszaminősítése',
-       'config-can-upgrade' => "Ebben az adatábizban MediaWiki-táblák találhatóak.
-A MediaWiki $1 verzióra történő frissítéséhez kattints a '''Folytatás''' gombra.",
-       'config-upgrade-done' => "A frissítés befejeződött.
-
-Most már '''[$1 beléphetsz a wikibe]'''.
-
-Ha újra szeretnéd generálni a <code>LocalSettings.php</code> fájlt, kattints az alábbi gombra.
-Ez '''nem ajánlott''', csak akkor, ha problémák vannak a wikivel.",
-       'config-upgrade-done-no-regenerate' => "A frissítés befejeződött.
-
-Most már '''[$1 beléphetsz a wikibe]'''.",
-       'config-regenerate' => 'LocalSettings.php elkészítése újra →',
-       'config-show-table-status' => 'A <code>SHOW TABLE STATUS</code> lekérdezés nem sikerült!',
-       'config-unknown-collation' => "'''Figyelmeztetés:''' az adatbázis ismeretlen egybevetést használ.",
-       'config-db-web-account' => 'A webes hozzáférésnél használt adatbázisfiók',
-       'config-db-web-help' => 'Add meg azt a felhasználónevet és jelszót, amit a webszerver a wiki általános működése során használ a csatlakozáshoz.',
-       'config-db-web-account-same' => 'A telepítéshez használt fiók használata',
-       'config-db-web-create' => 'Fiók létrehozása, ha még nem létezik.',
-       'config-db-web-no-create-privs' => 'A telepítéshez megadott fiók nem rendelkezik megfelelő jogosultságokkal új felhasználó létrehozásához.
-Az itt megadott fióknak léteznie kell.',
-       'config-mysql-engine' => 'Tárolómotor:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''Figyelmeztetés''': A MyISAM tárolómotort választottad, ami nem ajánlott a MediaWiki használatánál, mert:
-* nagyon rosszul kezeli a párhuzamos lekéréseket a táblák zárolása miatt
-* sokkal nagyobb az esélye az adatkorrupció kialakulásának
-* a MediaWiki kódbázisa nem mindig úgy kezeli a MyISAM-ot, ahogyan kellene
-
-Ha a feltelepített MySQL támogatja az InnoDB-t, erősen ajánlott, hogy inkább azt válaszd.
-Ha nem, akkor lehet, hogy itt az ideje a frissítésnek.",
-       'config-mysql-engine-help' => "A legtöbb esetben az '''InnoDB''' a legjobb választás, mivel megfelelően támogatja a párhuzamosságot.
-
-A '''MyISAM''' gyorsabb megoldás lehet egyfelhasználós vagy csak olvasható környezetekben, azonban a MyISAM-adatbázisok sokkal gyakrabban sérülnek meg, mint az InnoDB-adatbázisok.",
-       'config-mysql-charset' => 'Adatbázis karakterkészlete:',
-       'config-mysql-binary' => 'Bináris',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "'''Bináris módban''' a MediaWiki az UTF-8-as szövegeket bináris mezőkben tárolja az adatbázisban.
-Ez sokkal hatékonyabb a MySQL UTF-8-as módjánál, és lehetővé teszi a teljes Unicode-karakterkészlet használatát.
-
-'''UTF-8-as módban''' a MySQL tudni fogja,hogy az adatok milyen karakterkészlettel rendelkeznek, és megfelelően átalakítja őket, azonban nem tárolhatóak olyan karakterek, melyek a [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] felett vannak.",
-       'config-site-name' => 'A wiki neve:',
-       'config-site-name-help' => 'A böngésző címsorában és még számos más helyen jelenik meg.',
-       'config-site-name-blank' => 'Add meg az oldal nevét.',
-       'config-project-namespace' => 'Projektnévtér:',
-       'config-ns-generic' => 'Projekt',
-       'config-ns-site-name' => 'Ugyanaz, mint a wiki neve: $1',
-       'config-ns-other' => 'Más (meg kell adni)',
-       'config-ns-other-default' => 'SajátWiki',
-       'config-project-namespace-help' => "A Wikipédia példáját követve számos wiki elkülöníti egy '''projekt névtérbe''' az irányelveit a tartalommal rendelkező lapoktól
-Az ebben a névtérben található lapok nevei egy előtaggal kezdődnek, amit itt adhatsz meg.
-Általában az előtag a wiki nevéből származik, de nem tartalmazhat írásjeleket, például „#”-t vagy „:”-t.",
-       'config-ns-invalid' => 'A megadott névtér („<nowiki>$1</nowiki>”) érvénytelen.
-Válassz másik projektnévteret!',
-       'config-ns-conflict' => 'A megadott névtér („<nowiki>$1</nowiki>”) ütközik az egyik alapértelmezett MediaWiki-névtérrel.
-Válassz másik projektnévteret!',
-       'config-admin-box' => 'Adminisztrátori fiók',
-       'config-admin-name' => 'Név:',
-       'config-admin-password' => 'Jelszó:',
-       'config-admin-password-confirm' => 'Jelszó újra:',
-       'config-admin-help' => 'Írd be a kívánt felhasználónevet, például „Kovács János”.
-Ezzel a névvel fogsz majd bejelentkezni a wikibe.',
-       'config-admin-name-blank' => 'Add meg az adminisztrátor felhasználónevét!',
-       'config-admin-name-invalid' => 'A megadott felhasználónév (<nowiki>$1</nowiki>) érvénytelen.
-Adj meg egy másik felhasználónevet.',
-       'config-admin-password-blank' => 'Add meg az adminisztrátori fiók jelszavát!',
-       'config-admin-password-same' => 'A jelszó nem lehet ugyanaz, mint a felhasználónév.',
-       'config-admin-password-mismatch' => 'A megadott jelszavak nem egyeznek.',
-       'config-admin-email' => 'E-mail cím:',
-       'config-admin-email-help' => 'Add meg az e-mail címedet, hogy más felhasználók küldhessenek e-maileket a wikin keresztül, új jelszót tudj kérni, és értesülhess a figyelőlistádon lévő lapokon történt változásokról. Üresen is hagyhatod ezt a mezőt.',
-       'config-admin-error-user' => 'Belső hiba történt a(z) „<nowiki>$1</nowiki>” nevű adminisztrátor létrehozásakor.',
-       'config-admin-error-password' => 'Belső hiba történt a(z) „<nowiki>$1</nowiki>” nevű adminisztrátor jelszavának beállításakor: <pre>$2</pre>',
-       'config-admin-error-bademail' => 'Érvénytelen e-mail címet adtál meg.',
-       'config-subscribe' => 'Feliratkozás a [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce kiadási bejelentések levelezőlistájára].',
-       'config-subscribe-help' => 'Ez egy alacsony forgalmú levelezőlista, ahol a kiadásokkal kapcsolatos bejelentések jelennek meg, a fontos biztonsági javításokkal együtt.
-Ajánlott feliratkozni rá, és frissíteni a MediaWikit, ha új verzió jön ki.',
-       'config-subscribe-noemail' => 'Anélkül próbáltál feliratkozni a kiadási bejelentések levelezőlistájára, hogy megadtál volna egy e-mail címet.
-Adj meg egyet, ha fel szeretnél iratkozni a levelezőlistára.',
-       'config-almost-done' => 'Már majdnem kész!
-A további konfigurációt kihagyhatod, és most azonnal elindíthatod a wiki telepítését.',
-       'config-optional-continue' => 'További információk megadása.',
-       'config-optional-skip' => 'Épp elég volt, települjön a wiki!',
-       'config-profile' => 'Felhasználói jogosultságok profilja:',
-       'config-profile-wiki' => 'Hagyományos wiki', # Fuzzy
-       'config-profile-no-anon' => 'Felhasználói fiók létrehozása szükséges',
-       'config-profile-fishbowl' => 'Csak engedélyezett szerkesztők',
-       'config-profile-private' => 'Privát wiki',
-       'config-profile-help' => "A wikik akkor működnek a legjobban, ha minél több felhasználó számára engedélyezett a szerkesztés.
-A MediaWikiben könnyű ellenőrizni a legutóbbi változtatásokat,és visszaállítani a naiv vagy káros felhasználók által okozott károkat.
-
-A MediaWiki azonban számos helyzetben hasznos lehet, és néha nem könnyű mindenkit meggyőzni a wiki előnyeiről.
-Választhatsz!
-
-'''{{int:config-profile-wiki}}kben''' bárki szerkeszthet, akár bejelentkezés nélkül is. A '''{{int:config-profile-no-anon}}''' beállítás további biztonságot nyújt, azonban elijesztheti az alkalmi szerkesztőket.
-
-Lehetőség van arra is, hogy '''{{lc:{{int:config-profile-fishbowl}}}}''' módosíthassák a lapokat, de a nyilvánosság ekkor megtekintheti a lapokat és azok laptörténetét is. '''{{int:config-profile-private}}''' esetén csak az engedélyezett szerkesztők tekinthetik meg a lapokat, és ugyanez a csoport szerkeszthet.
-
-Telepítés után jóval összetettebb jogosultságrendszer állítható össze, további információ a [//www.mediawiki.org/wiki/Manual:User_rights kézikönyv kapcsolódó bejegyzésében].", # Fuzzy
-       'config-license' => 'Szerzői jog és licenc:',
-       'config-license-none' => 'Nincs licencjelzés',
-       'config-license-cc-by-sa' => 'Creative Commons Nevezd meg! - Így add tovább!',
-       'config-license-cc-by' => 'Creative Commons Nevezd meg!',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Nevezd meg! - Ne add el! - Így add tovább!',
-       'config-license-cc-0' => 'Creative Commons Zero (közkincs)',
-       'config-license-gfdl' => 'GNU Szabad Dokumentációs Licenc 1.3 vagy újabb',
-       'config-license-pd' => 'Közkincs',
-       'config-license-cc-choose' => 'Creative Commons-licenc választása',
-       'config-license-help' => "A legtöbb wiki valamilyen [http://freedomdefined.org/Definition szabad licenc] alatt teszi közzé a szerkesztéseit.
-Ez erősíti a közösségi tulajdon érzését, és elősegíti a hosszú távú közreműködők megjelenését.
-Általában nem szükséges magán- vagy vállalati wiki esetén.
-
-Ha a Wikipédiáról szeretnél szövegeket másolni, és a Wikipédián felhasználhassák a wikidben található szöveget, akkor a '''Creative Commons Nevezd meg! - Így add tovább!''' lehetőséget válaszd.
-
-A Wikipédia korábban a GNU Szabad Dokumentációs Licencet használta.
-Ez a licenc még ma is használható, azonban nem könnyű megérteni,
-továbbá a GFDL alatt közzétett tartalom újrafelhasználása nehézkes.",
-       'config-email-settings' => 'E-mail beállítások',
-       'config-enable-email' => 'Kimenő e-mailek engedélyezése',
-       'config-enable-email-help' => 'E-mailek küldéséhez [http://www.php.net/manual/en/mail.configuration.php a PHP mail beállításait] megfelelően meg kell adni.
-Ha nem akarsz semmilyen e-mailes funkciót használni, itt tilthatod le őket.',
-       'config-email-user' => 'A felhasználók küldhetnek egymásnak e-maileket',
-       'config-email-user-help' => 'Bármelyik felhasználó küldhet másiknak e-mail üzenetet, amennyiben engedélyezték a lehetőséget a beállításaiknál.',
-       'config-email-usertalk' => 'Vitalapi értesítések engedélyezése',
-       'config-email-usertalk-help' => 'A felhasználók értesítéseket kapnak a vitalapjuk változásairól, amennyiben engedélyezték ezt a lehetőséget a beállításaiknál.',
-       'config-email-watchlist' => 'Figyelőlistai értesítések engedélyezése',
-       'config-email-watchlist-help' => 'A felhasználók értesítéseket kapnak a figyelt lapjaik változásairól, amennyiben engedélyezték ezt a lehetőséget a beállításaiknál.',
-       'config-email-auth' => 'E-mailes hitelesítés engedélyezése',
-       'config-email-auth-help' => "Ha a beállítás engedélyezve van, a felhasználóknak meg kell erősíteniük az e-mail címüket egy kiküldött link segítségével, amikor megadják vagy módosítják azt.
-Csak a megerősített e-mail címmel rendelkezők kaphatnak e-maileket más felhasználóktól vagy értesítéseket.
-A beállítás engedélyezése '''ajánlott''' publikus wikiknél, mivel így megakadályozható az e-mailes funkciókkal való visszaélés.",
-       'config-email-sender' => 'Válaszcím:',
-       'config-email-sender-help' => 'Add meg a kimenő e-mail-üzenetek válaszcímét.
-Ide lesznek küldve a visszapattant üzenetek is.
-Számos levelezőszerver számára a cím domainrészének érvényesnek kell lennie.',
-       'config-upload-settings' => 'Képek és fájlok feltöltése',
-       'config-upload-enable' => 'Fájlfeltöltés engedélyezése',
-       'config-upload-help' => 'A fájlfeltöltés lehetséges biztonsági kockázatoknak teszi ki a szerveredet.
-További információért olvasd el a [//www.mediawiki.org/wiki/Manual:Security biztonságról szóló szakaszt] a kézikönyvben.
-
-A fájlfeltöltés engedélyezéséhez változtasd meg a MediaWiki gyökérkönyvtárában található <code>images</code> alkönyvtár jogosultságát úgy, hogy a szerver írhasson oda, majd engedélyezd itt a beállítást.',
-       'config-upload-deleted' => 'Törölt fájlok könyvtára:',
-       'config-upload-deleted-help' => 'Válaszd ki azt a könyvtárat, ahol a törölt fájlok lesznek archiválva.
-Normális esetben ennek nem szabad elérhetőnek lennie az internetről.',
-       'config-logo' => 'A logó URL-címe:',
-       'config-logo-help' => 'A MediaWiki alapértelmezett felülete helyet ad egy 135×160 pixeles logónak a bal felső sarokban.
-Tölts fel egy megfelelő méretű képet, majd írd be ide az URL-címét!
-
-Ha nem szeretnél logót használni, egyszerűen hagyd üresen a mezőt.', # Fuzzy
-       'config-instantcommons' => 'Instant Commons engedélyezése',
-       'config-instantcommons-help' => 'Az [//www.mediawiki.org/wiki/InstantCommons Instant Commons] lehetővé teszi, hogy a wikin használhassák a [//commons.wikimedia.org/ Wikimedia Commons] oldalon található képeket, hangokat és más médiafájlokat.
-A használatához a MediaWikinek internethozzáférésre van szüksége.
-
-A funkcióról és hogy hogyan állítható be más wikik esetén [//mediawiki.org/wiki/Manual:$wgForeignFileRepos a kézikönyvben] találhatsz további információkat.',
-       'config-cc-error' => 'A Creative Commons-licencválasztó nem tért vissza eredménnyel.
-Add meg kézzel a licencet.',
-       'config-cc-again' => 'Válassz újra…',
-       'config-cc-not-chosen' => 'Válaszd ki a kívánt Creative Commons licencet, majd kattints a „Folytatás gombra”!',
-       'config-advanced-settings' => 'Haladó beállítások',
-       'config-cache-options' => 'Objektum-gyorsítótárazás beállításai:',
-       'config-cache-help' => 'Az objektumgyorsítótárazás célja, hogy felgyorsítsa a MediaWiki működését a gyakran használt adatok gyorsítótárazásával.
-Közepes vagy nagyobb oldalak esetén erősen ajánlott a használata, de kisebb oldalak esetén is hasznos lehet.',
-       'config-cache-none' => 'Nincs gyorsítótárazás (minden funkció működik, de nagyobb wiki esetében lassabb működést eredményezhet)',
-       'config-cache-accel' => 'PHP-objektumok gyorsítótárazása (APC, XCache or WinCache)',
-       'config-cache-memcached' => 'Memcached használata (további telepítés és konfigurálás szükséges)',
-       'config-memcached-servers' => 'Memcached-szerverek:',
-       'config-memcached-help' => 'Azon IP-címek listája, melyeket a Memcached használhat.
-Vesszővel kell elválasztani őket, és meg kell adni a portot is. Például:
- 127.0.0.1:11211
- 192.168.1.25:11211',
-       'config-memcache-needservers' => 'Memcachedet választottad gyorsítótárnak, de nem adtál meg egyetlen szervert sem.',
-       'config-memcache-badip' => 'Érvénytelen IP-címet adtál meg a Memcachednek: $1.',
-       'config-memcache-noport' => 'Nem adtál meg portot a Memcached-szervernek: $1.
-Ha nem ismered a portszámot, használd az alapértelmezettet: 11211.',
-       'config-memcache-badport' => 'A Memcached a(z) $1 és $2 közötti portokat szokta használni.',
-       'config-extensions' => 'Kiterjesztések',
-       'config-extensions-help' => 'A fent felsorolt kiterjesztések találhatóak meg az <code>./extensions</code> könyvtárban.
-
-Lehetséges, hogy további beállításra lesz szükség hozzájuk, de már most engedélyezheted őket.',
-       'config-install-alreadydone' => "'''Figyelmeztetés:''' Úgy tűnik, hogy a MediaWiki telepítve van, és te ismét megpróbálod telepíteni.
-Folytasd a következő oldalon.",
-       'config-install-begin' => 'A „{{int:config-continue}}” gomb megnyomása elindítja a MediaWiki telepítését.
-Ha szeretnél módosítani a beállításokon, kattints a vissza gombra.', # Fuzzy
-       'config-install-step-done' => 'kész',
-       'config-install-step-failed' => 'sikertelen',
-       'config-install-extensions' => 'Kiterjesztések beillesztése',
-       'config-install-database' => 'Adatbázis felállítása',
-       'config-install-schema' => 'Adatbázis-szerkezet létrehozása',
-       'config-install-pg-schema-not-exist' => 'A PostgreSQL-adatbázis nem létezik.',
-       'config-install-pg-schema-failed' => 'A táblák létrehozása nem sikerült.
-Ellenőrizd, hogy „$1” felhasználó írhat-e a következő adatbázisba: „$2”.',
-       'config-install-pg-commit' => 'Változtatások közzététele',
-       'config-install-pg-plpgsql' => 'PL/pgSQL nyelv meglétének ellenőrzése',
-       'config-pg-no-plpgsql' => 'Telepítened kell a PL/pgSQL nyelvet a következő adatbázishoz: $1',
-       'config-pg-no-create-privs' => 'A telepítéshez megadott felhasználói fiók nem rendelkezik új fiók létrehozásához szükséges jogosultságokkal.',
-       'config-install-user' => 'Adatbázis-felhasználó létrehozása',
-       'config-install-user-alreadyexists' => 'Már létezik „$1” nevű felhasználó',
-       'config-install-user-create-failed' => 'Nem sikerült a(z) „$1” nevű felhasználó létrehozása: $2',
-       'config-install-user-grant-failed' => 'Nem sikerült jogosultságokkal felruházni a(z) „$1” nevű felhasználót: $2',
-       'config-install-user-missing' => 'A megadott felhasználó („$1”) nem létezik.',
-       'config-install-user-missing-create' => 'A megadott felhasználó („$1”) nem létezik.
-Pipáld ki a „Fiók létrehozása” dobozt, ha létre szeretnéd hozni.',
-       'config-install-tables' => 'Táblák létrehozása',
-       'config-install-tables-exist' => "'''Figyelmeztetés''': úgy tűnik, hogy a MediaWiki táblái már léteznek.
-Létrehozás kihagyása.",
-       'config-install-tables-failed' => "'''Hiba''': a tábla létrehozása nem sikerült a következő miatt: $1",
-       'config-install-interwiki' => 'Alapértelmezett nyelvközihivatkozás-tábla feltöltése',
-       'config-install-interwiki-list' => 'Az <code>interwiki.list</code> fájl nem található.',
-       'config-install-interwiki-exists' => "'''Figyelmeztetés''': Úgy tűnik, hogy az interwiki táblában már vannak bejegyzések.
-Alapértelmezett lista kihagyása.",
-       'config-install-stats' => 'Statisztika inicializálása',
-       'config-install-keys' => 'Titkos kulcsok generálása',
-       'config-insecure-keys' => "'''Figyelmeztetés:''' A telepítés során generált $1 {{PLURAL:$2|biztonsági kulcs|biztonsági kulcsok}} nem teljesen $1 {{PLURAL:$2|biztonságos|biztonságosak}}. Érdemes {{PLURAL:$2||őket}} manuálisan megváltoztatni.",
-       'config-install-sysop' => 'Az adminisztrátor felhasználói fiókjának létrehozása',
-       'config-install-subscribe-fail' => 'Nem sikerült feliratkozni a mediawiki-announce levelezőlistára: $1',
-       'config-install-subscribe-notpossible' => 'A cURL nincs telepítve és az allow_url_fopen nem érhető el.',
-       'config-install-mainpage' => 'Kezdőlap létrehozása az alapértelmezett tartalommal',
-       'config-install-extension-tables' => 'Táblák létrehozása az engedélyezett kiterjesztésekhez',
-       'config-install-mainpage-failed' => 'Nemsikerült létrehozni a kezdőlapot: $1',
-       'config-install-done' => "'''Gratulálunk!'''
-A MediaWiki telepítése sikeresen befejeződött.
-
-A telepítő elkészítette a <code>LocalSettings.php</code> fájlt, amely tartalmazza az összes beállítást.
-
-Ezt le kell tölteni, majd elhelyezni a wiki telepítési könyvtárába (az a könyvtár, ahol az index.php is található).
-
-A letöltés automatikusan elindul. Ha mégsem indulna el, vagy megszakítottad, az alábbi linkre kattintva újra letöltheted:
-
-$3
-
-'''Megjegyzés''': Ha ezt most nem teszed meg, és kilépsz a telepítésből, az elkészített konfigurációs fájlt nem tudod elérni a későbbiekben.
-
-Ha végeztél a fájl elhelyezésével, '''[$2 beléphetsz a wikibe]'''.",
-       'config-download-localsettings' => '<code>LocalSettings.php</code> letöltése',
-       'config-help' => 'segítség',
-       'mainpagetext' => "'''A MediaWiki telepítése sikeresen befejeződött.'''",
-       'mainpagedocfooter' => "Ha segítségre van szükséged a wikiszoftver használatához, akkor keresd fel a [//meta.wikimedia.org/wiki/Help:Contents User's Guide] oldalt.
-
-== Alapok (angol nyelven) ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Beállítások listája]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki GyIK]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-kiadások levelezőlistája]", # Fuzzy
-);
-
-/** Magyar (magázó) (Magyar (magázó))
- * @author Dani
- * @author Glanthor Reviol
- */
-$messages['hu-formal'] = array(
-       'config-localsettings-upgrade' => "'''Figyelmeztetés''': már létezik a <code>LocalSettings.php</code> fájl.
-A szoftver frissíthető.
-Adja meg a <code>\$wgUpgradeKey</code>-ben található kulcsot a beviteli mezőben", # Fuzzy
-       'config-session-expired' => 'Úgy tűnik, hogy a munkamenetadatok lejártak.
-A munkamenetek élettartama a következőre van beállítva: $1.
-Az érték növelhető a php.ini <code>session.gc_maxlifetime</code> beállításának módosításával.
-Indítsa újra a telepítési folyamatot.',
-       'config-no-session' => 'Elvesztek a munkamenetadatok!
-Ellenőrizze, hogy a php.ini-ben a <code>session.save_path</code> beállítás a megfelelő könyvtárra mutat-e.',
-       'config-your-language-help' => 'Válassza ki a telepítési folyamat során használandó nyelvet.',
-       'config-wiki-language-help' => 'Az a nyelv, amin a wiki tartalmának legnagyobb része íródik.',
-       'config-page-welcome' => 'Üdvözli a MediaWiki!',
-       'config-help-restart' => 'Szeretné törölni az eddig megadott összes adatot és újraindítani a telepítési folyamatot?',
-       'config-welcome' => '=== Környezet ellenőrzése ===
-Alapvető ellenőrzés, ami megmondja, hogy a környezet alkalmas-e a MediaWiki számára.
-Ha probléma merülne fel a telepítés során, meg kell adnia mások számára az alább megjelenő információkat.',
-       'config-unicode-pure-php-warning' => "'''Figyelmeztetés''': Az [http://pecl.php.net/intl intl PECL kiterjesztés] nem érhető el Unicode normalizáláshoz.
-Ha nagy látogatottságú oldalt üzemeltet, itt találhat információkat [//www.mediawiki.org/wiki/Unicode_normalization_considerations a témáról].", # Fuzzy
-       'config-register-globals' => "'''Figyelmeztetés: A PHP <code>[http://php.net/register_globals register_globals]</code> beállítása engedélyezve van.'''
-'''Tiltsa le, ha van rá lehetősége.'''
-A MediaWiki működőképes a beállítás használata mellett, de a szerver biztonsági kockázatnak lesz kitéve.",
-       'config-imagemagick' => 'Az ImageMagick megtalálható a rendszeren: <code>$1</code>.
-A bélyegképek készítése engedélyezve lesz, ha engedélyezi a feltöltéseket.',
-       'config-db-name-help' => 'Válassza ki a wikije azonosítására használt nevet.
-Nem tartalmazhat szóközt vagy kötőjelet.
-
-Ha megosztott webtárhelyet használ, a szolgáltatója vagy egy konkrét adatbázisnevet ad önnek használatra, vagy létrehozhat egyet a vezérlőpulton keresztül.', # Fuzzy
-       'config-db-install-help' => 'Adja meg a felhasználónevet és jelszót, amivel a telepítő csatlakozhat az adatbázishoz.',
-       'config-db-wiki-help' => 'Adja meg azt a felhasználónevet és jelszót, amivel a wiki fog csatlakozni az adatbázishoz működés közben.
-Ha a fiók nem létezik és a telepítést végző fiók rendelkezik megfelelő jogosultsággal, egy új fiók készül a megadott a névvel, azon minimális jogosultságkörrel, ami a wiki működéséhez szükséges.',
-       'config-charset-help' => "'''Figyelmezetés:''' Ha a '''visszafelé kompatibilis UTF-8''' beállítást használja MySQL 4.1 vagy újabb verziók esetén, és utána a <code>mysqldump</code> programmal készít róla biztonsági másolatot, az tönkreteheti az összes nem ASCII-karaktert, visszafordíthatatlanul károsítva a másolatokban tárolt adatokat!
-
-'''Bináris''' módban a MediaWiki az UTF-8-ban kódolt szöveget bináris mezőkben tárolja az adatbázisban.
-Ez sokkal hatékonyabb a MySQL UTF-8-módjától, és lehetővé teszi, hogy a teljes Unicode-karakterkészletet használja.
-'''UTF-8-módban''' MySQL tudja, hogy milyen karakterkészlettel van kódolva az adat, megfelelően van megjelenítve és konvertálva, de
-nem használhatja a [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] feletti karaktereket.",
-       'config-db-schema-help' => 'A fenti sémák általában megfelelőek.
-Csak akkor módosítson rajta, ha szükség van rá.', # Fuzzy
-       'config-sqlite-parent-unwritable-nogroup' => 'Nem lehet létrehozni az adatok tárolásához szükséges <code><nowiki>$1</nowiki></code> könyvtárat, mert a webszerver nem írhat a szülőkönyvtárba (<code><nowiki>$2</nowiki></code>).
-
-A telepítő nem tudta megállapíteni, hogy melyik felhasználói fiókon fut a webszerver.
-A folytatáshoz tegye írhatóvá ezen fiók (és más fiókok!) számára a következő könyvtárat: <code><nowiki>$3</nowiki></code>.
-Unix/Linux rendszereken tedd a következőt:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-ns-other' => 'Más (adja meg)',
-       'config-admin-name-blank' => 'Adja meg az adminisztrátor felhasználónevét!',
-       'config-admin-name-invalid' => 'A megadott felhasználónév (<nowiki>$1</nowiki>) érvénytelen.
-Adjon meg egy másik felhasználónevet.',
-       'config-admin-password-blank' => 'Adja meg az adminisztrátori fiók jelszavát!',
-       'config-instantcommons-help' => 'Az [//www.mediawiki.org/wiki/InstantCommons Instant Commons] lehetővé teszi, hogy a wikin használhassák a [//commons.wikimedia.org/ Wikimedia Commons] oldalon található képeket, hangokat és más médiafájlokat.
-A használatához a MediaWikinek internethozzáférésre van szüksége.
-
-A funkcióról és hogy hogyan állítható be más wikik esetén [//mediawiki.org/wiki/Manual:$wgForeignFileRepos a kézikönyvben] találhat további információkat.',
-       'config-install-done' => "'''Gratulálunk!'''
-Sikeresen telepítette a MediaWikit.
-
-A telepítő készített egy <code>LocalSettings.php</code> fájlt.
-Ez tartalmazza az összes beállítást.
-
-[$1 Le kell töltenie], és el kell helyeznie a MediaWiki telepítési könyvtárába (az a könyvtár, ahol az index.php van).
-'''Megjegyzés''': Ha ezt most nem teszi meg, és kilép, a generált fájl nem lesz elérhető a későbbiekben.
-
-Ha ezzel készen van, '''[$2 beléphet a wikibe]'''.", # Fuzzy
-       'mainpagedocfooter' => "Ha segítségre van szüksége a wikiszoftver használatához, akkor keresse fel a [//meta.wikimedia.org/wiki/Help:Contents User's Guide] oldalt.
-
-== Alapok (angol nyelven) ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Beállítások listája]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki GyIK]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-kiadások levelezőlistája]", # Fuzzy
-);
-
-/** Armenian (Հայերեն)
- */
-$messages['hy'] = array(
-       'mainpagetext' => "'''«MediaWiki» ծրագիրը հաջողությամբ տեղադրվեց։'''",
-       'mainpagedocfooter' => "Այցելեք [//meta.wikimedia.org/wiki/Help:Contents User's Guide]՝ վիքի ծրագրային ապահովման օգտագործման մասին տեղեկությունների համար։
-
-== Որոշ օգտակար ռեսուրսներ ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
-);
-
-/** Interlingua (interlingua)
- * @author McDutchie
- * @author 아라
- */
-$messages['ia'] = array(
-       'config-desc' => 'Le installator de MediaWiki',
-       'config-title' => 'Installation de MediaWiki $1',
-       'config-information' => 'Information',
-       'config-localsettings-upgrade' => 'Un file <code>LocalSettings.php</code> ha essite detegite.
-Pro actualisar iste installation, per favor entra le valor de <code>$wgUpgradeKey</code> in le quadro hic infra.
-Iste se trova in <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'Un file <code>LocalSettings.php</code> file ha essite detegite.
-Pro actualisar iste installation, per favor executa <code>update.php</code>.',
-       'config-localsettings-key' => 'Clave de actualisation:',
-       'config-localsettings-badkey' => 'Le clave que tu forniva es incorrecte',
-       'config-upgrade-key-missing' => 'Un installation existente de MediaWiki ha essite detegite.
-Pro actualisar iste installation, es necessari adjunger le sequente linea al fin del file <code>LocalSettings.php</code>:
-
-$1',
-       'config-localsettings-incomplete' => 'Le file <code>LocalSettings.php</code> existente pare esser incomplete.
-Le variabile $1 non es definite.
-Per favor cambia <code>LocalSettings.php</code> de sorta que iste variabile es definite, e clicca "{{int:Config-continue}}".',
-       'config-localsettings-connection-error' => 'Un error esseva incontrate durante le connexion al base de datos usante le configurationes specificate in <code>LocalSettings.php</code> o <code>AdminSettings.php</code>. Per favor repara iste configurationes e tenta lo de novo.
-
-$1',
-       'config-session-error' => 'Error al comenciamento del session: $1',
-       'config-session-expired' => 'Le datos de tu session pare haber expirate.
-Le sessiones es configurate pro un duration de $1.
-Tu pote augmentar isto per definir <code>session.gc_maxlifetime</code> in php.ini.
-Reinitia le processo de installation.',
-       'config-no-session' => 'Le datos de tu session es perdite!
-Verifica tu php.ini e assecura te que un directorio appropriate es definite in <code>session.save_path</code>.',
-       'config-your-language' => 'Tu lingua:',
-       'config-your-language-help' => 'Selige un lingua a usar durante le processo de installation.',
-       'config-wiki-language' => 'Lingua del wiki:',
-       'config-wiki-language-help' => 'Selige le lingua in que le wiki essera predominantemente scribite.',
-       'config-back' => '← Retro',
-       'config-continue' => 'Continuar →',
-       'config-page-language' => 'Lingua',
-       'config-page-welcome' => 'Benvenite a MediaWiki!',
-       'config-page-dbconnect' => 'Connecter al base de datos',
-       'config-page-upgrade' => 'Actualisar le installation existente',
-       'config-page-dbsettings' => 'Configuration del base de datos',
-       'config-page-name' => 'Nomine',
-       'config-page-options' => 'Optiones',
-       'config-page-install' => 'Installar',
-       'config-page-complete' => 'Complete!',
-       'config-page-restart' => 'Reinitiar installation',
-       'config-page-readme' => 'Lege me',
-       'config-page-releasenotes' => 'Notas del version',
-       'config-page-copying' => 'Copiar',
-       'config-page-upgradedoc' => 'Actualisar',
-       'config-page-existingwiki' => 'Wiki existente',
-       'config-help-restart' => 'Vole tu rader tote le datos salveguardate que tu ha entrate e reinitiar le processo de installation?',
-       'config-restart' => 'Si, reinitia lo',
-       'config-welcome' => '=== Verificationes del ambiente ===
-Verificationes de base es exequite pro determinar si iste ambiente es apte pro le installation de MediaWiki.
-Tu deberea indicar le resultatos de iste verificationes si tu ha besonio de adjuta durante le installation.',
-       'config-copyright' => "=== Copyright and Terms ===
-
-$1
-
-Iste programma es software libere; vos pote redistribuer lo e/o modificar lo sub le conditiones del Licentia Public General de GNU publicate per le Free Software Foundation; version 2 del Licentia, o (a vostre option) qualcunque version posterior.
-
-Iste programma es distribuite in le sperantia que illo sia utile, ma '''sin garantia''', sin mesmo le implicite garantia de '''commercialisation''' o '''aptitude pro un proposito particular'''.
-Vide le Licentia Public General de GNU pro plus detalios.
-
-Vos deberea haber recipite <doclink href=Copying>un exemplar del Licentia Public General de GNU</doclink> con iste programma; si non, scribe al Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, o [http://www.gnu.org/copyleft/gpl.html lege lo in linea].",
-       'config-sidebar' => '* [//www.mediawiki.org Pagina principal de MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents Guida pro usatores]
-* [//www.mediawiki.org/wiki/Manual:Contents Guida pro administratores]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]
-----
-* <doclink href=Readme>Lege me</doclink>
-* <doclink href=ReleaseNotes>Notas de iste version</doclink>
-* <doclink href=Copying>Conditiones de copia</doclink>
-* <doclink href=UpgradeDoc>Actualisation</doclink>',
-       'config-env-good' => 'Le ambiente ha essite verificate.
-Tu pote installar MediaWiki.',
-       'config-env-bad' => 'Le ambiente ha essite verificate.
-Tu non pote installar MediaWiki.',
-       'config-env-php' => 'PHP $1 es installate.',
-       'config-env-php-toolow' => 'PHP $1 es installate.
-Nonobstante, MediaWiki require PHP $2 o plus recente.',
-       'config-unicode-using-utf8' => 'utf8_normalize.so per Brion Vibber es usate pro le normalisation Unicode.',
-       'config-unicode-using-intl' => 'Le [http://pecl.php.net/intl extension PECL intl] es usate pro le normalisation Unicode.',
-       'config-unicode-pure-php-warning' => "'''Aviso''': Le [http://pecl.php.net/intl extension PECL intl] non es disponibile pro exequer le normalisation Unicode; le systema recurre al implementation lente in PHP pur.
-Si tu sito ha un alte volumine de traffico, tu deberea informar te un poco super le [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalisation Unicode].",
-       'config-unicode-update-warning' => "'''Aviso''': Le version installate del bibliotheca inveloppante pro normalisation Unicode usa un version ancian del bibliotheca del [http://site.icu-project.org/ projecto ICU].
-Tu deberea [//www.mediawiki.org/wiki/Unicode_normalization_considerations actualisar lo] si le uso de Unicode importa a te.",
-       'config-no-db' => 'Non poteva trovar un driver appropriate pro le base de datos! Es necessari installar un driver de base de datos pro PHP.
-Le sequente typos de base de datos es supportate: $1.
-
-Si tu sito usa un servitor dividite (shared hosting), demanda a tu providitor de installar un driver de base de datos appropriate.
-Si tu compilava PHP tu mesme, reconfigura lo con un cliente de base de datos activate, per exemplo usante <code>./configure --with-mysql</code>.
-Si tu installava PHP ex un pacchetto Debian o Ubuntu, tu debe installar equalmente le modulo php5-mysql.',
-       'config-outdated-sqlite' => "'''Attention''': tu ha SQLite $1, que es inferior al version minimal requirite, $2. SQLite essera indisponibile.",
-       'config-no-fts3' => "'''Attention''': SQLite es compilate sin [//sqlite.org/fts3.html modulo FTS3]; functionalitate de recerca non essera disponibile in iste back-end.",
-       'config-register-globals' => "'''Attention: le option <code>[http://php.net/register_globals register_globals]</code> de PHP es activate.'''
-'''Disactiva lo si tu pote.'''
-MediaWiki functionara, ma tu servitor es exponite a potential vulnerabilitates de securitate.",
-       'config-magic-quotes-runtime' => "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] es active!'''
-Iste option corrumpe le entrata de datos imprevisibilemente.
-Tu non pote installar o usar MediaWiki si iste option non es disactivate.",
-       'config-magic-quotes-sybase' => "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] es active!'''
-Iste option corrumpe le entrata de datos imprevisibilemente.
-Tu non pote installar o usar MediaWiki si iste option non es disactivate.",
-       'config-mbstring' => "'''Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] es active!'''
-Iste option causa errores e pote corrumper datos imprevisibilemente.
-Tu non pote installar o usar MediaWiki si iste option non es disactivate.",
-       'config-ze1' => "'''Fatal: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] es active!'''
-Iste option causa horribile defectos con MediaWiki.
-Tu non pote installar o usar MediaWiki si iste option non es disactivate.",
-       'config-safe-mode' => "'''Aviso:''' Le [http://www.php.net/features.safe-mode modo secur] de PHP es active.
-Isto pote causar problemas, particularmente si es usate le incargamento de files e le supporto de <code>math</code>.",
-       'config-xml-bad' => 'Le modulo XML de PHP es mancante.
-MediaWiki require functiones de iste modulo e non functionara in iste configuration.
-Si tu usa Mandrake, installa le pacchetto php-xml.',
-       'config-pcre' => 'Le modulo de supporto PCRE pare esser mancante.
-MediaWiki require le functiones de expression regular compatibile con Perl pro poter functionar.',
-       'config-pcre-no-utf8' => "'''Fatal''': Le modulo PCRE de PHP pare haber essite compilate sin supporto de PCRE_UTF8.
-MediaWiki require supporto de UTF-8 pro functionar correctemente.",
-       'config-memory-raised' => 'Le <code>memory_limit</code> de PHP es $1, elevate a $2.',
-       'config-memory-bad' => "'''Aviso:''' Le <code>memory_limit</code> de PHP es $1.
-Isto es probabilemente troppo basse.
-Le installation pote faller!",
-       'config-ctype' => "'''Fatal''': PHP debe esser compilate con supporto pro le [http://www.php.net/manual/en/ctype.installation.php extension Ctype].",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] es installate',
-       'config-apc' => '[http://www.php.net/apc APC] es installate',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] es installate',
-       'config-no-cache' => "'''Aviso:''' Non poteva trovar [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] o [http://www.iis.net/download/WinCacheForPhp WinCache].
-Le cache de objectos non es activate.",
-       'config-mod-security' => "'''Attention''': [http://modsecurity.org/ mod_security] es active in tu servitor web. Si mal configurate, isto pote causar problemas pro MediaWiki o altere software que permitte al usatores de publicar contento arbitrari.
-Consulta le [http://modsecurity.org/documentation/ documentation de mod_security] o contacta le servicio de adjuta de tu host si tu incontra estranie errores.",
-       'config-diff3-bad' => 'GNU diff3 non trovate.',
-       'config-imagemagick' => 'ImageMagick trovate: <code>$1</code>.
-Le miniaturas de imagines essera activate si tu activa le incargamento de files.',
-       'config-gd' => 'Le bibliotheca graphic GD se trova integrate in le systema.
-Le miniaturas de imagines essera activate si tu activa le incargamento de files.',
-       'config-no-scaling' => 'Non poteva trovar le bibliotheca GD ni ImageMagick.
-Le miniaturas de imagines essera disactivate.',
-       'config-no-uri' => "'''Error:''' Non poteva determinar le URI actual.
-Installation abortate.",
-       'config-no-cli-uri' => "'''Attention''': Cammino al script (--scriptpath) non specificate. Le predefinition es usate: <code>$1</code>.",
-       'config-using-server' => 'Es usate le nomine de servitor "<nowiki>$1</nowiki>".',
-       'config-using-uri' => 'Le URL de servitor "<nowiki>$1$2</nowiki>" es usate.',
-       'config-uploads-not-safe' => "'''Aviso:''' Le directorio predefinite pro files incargate <code>$1</code> es vulnerabile al execution arbitrari de scripts.
-Ben que MediaWiki verifica tote le files incargate contra le menacias de securitate, il es altemente recommendate [//www.mediawiki.org/wiki/Manual:Security#Upload_security remediar iste vulnerabilitate de securitate] ante de activar le incargamento de files.",
-       'config-no-cli-uploads-check' => "'''Attention:''' Le directorio predefinite pro files incargate (<code>$1</code>) non es verificate contra le vulnerabilitate
-al execution arbitrari de scripts durante le installation de CLI.",
-       'config-brokenlibxml' => 'Vostre systema ha un combination de versiones de PHP e libxml2 que es defectuose e pote causar corruption celate de datos in MediaWiki e altere applicationes web.
-Actualisa a PHP 5.2.9 o plus recente e libxml2 2.7.3 o plus recente ([//bugs.php.net/bug.php?id=45996 problema reportate presso PHP]).
-Installation abortate.',
-       'config-using531' => 'MediaWiki non pote esser usate con PHP $1 a causa de un defecto concernente parametros de referentia a <code>__call()</code>.
-Actualisa a PHP 5.3.2 o plus recente, o retrograda a PHP 5.3.0 pro remediar isto.
-Installation abortate.',
-       'config-suhosin-max-value-length' => 'Suhosin es installate e limita parametro <code>length</code> de GET a $1 bytes.
-Le componente ResourceLoader de MediaWiki va contornar iste limite, ma isto prejudicara le rendimento.
-Si possibile, tu deberea mitter <code>suhosin.get.max_value_length</code> a 1024 o superior in <code>php.ini</code>, e mitter <code>$wgResourceLoaderMaxQueryLength</code> al mesme valor in <code>LocalSettings.php</code>.',
-       'config-db-type' => 'Typo de base de datos:',
-       'config-db-host' => 'Servitor de base de datos:',
-       'config-db-host-help' => 'Si tu servitor de base de datos es in un altere servitor, entra hic le nomine o adresse IP del servitor.
-
-Si tu usa un servitor web usate in commun, tu providitor deberea dar te le correcte nomine de servitor in su documentation.
-
-Si tu face le installation in un servitor Windows e usa MySQL, le nomine "localhost" possibilemente non functiona como nomine de servitor. In tal caso, essaya "127.0.0.1", i.e. le adresse IP local.
-
-Si tu usa PostgreSQL, lassa iste campo vacue pro connecter via un "socket" de Unix.',
-       'config-db-host-oracle' => 'TNS del base de datos:',
-       'config-db-host-oracle-help' => 'Entra un [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm nomine Local Connect] valide; un file tnsnames.ora debe esser visibile a iste installation.<br />Si tu usa bibliothecas de cliente 10g o plus recente, tu pote anque usar le methodo de nomination [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].',
-       'config-db-wiki-settings' => 'Identificar iste wiki',
-       'config-db-name' => 'Nomine del base de datos:',
-       'config-db-name-help' => 'Selige un nomine que identifica tu wiki.
-Illo non pote continer spatios.
-
-Si tu usa un servitor web usate in commun, tu providitor te fornira le nomine specific de un base de datos a usar, o te permitte crear un base de datos via un pannello de controlo.',
-       'config-db-name-oracle' => 'Schema del base de datos:',
-       'config-db-account-oracle-warn' => 'Il ha tres scenarios supportate pro le installation de Oracle como le base de datos de iste systema:
-
-Si tu vole crear un conto del base de datos como parte del processo de installation, per favor specifica un conto con le rolo SYSDBA como le conto del base de datos pro installation, e specifica le nomine e contrasigno desirate pro le conto de accesso per web. Alteremente tu pote crear le conto de accesso per web manualmente e specificar solmente iste conto (si illo ha le permissiones requisite pro crear le objectos de schema) o specifica duo contos differente, un con privilegios de creation e un conto restringite pro accesso per web.
-
-Un script pro crear un conto con le privilegios requisite se trova in le directorio "maintenance/oracle/" de iste installation. Non oblida que le uso de un conto restringite disactiva tote le capacitates de mantenentia in le conto predefinite.',
-       'config-db-install-account' => 'Conto de usator pro installation',
-       'config-db-username' => 'Nomine de usator del base de datos:',
-       'config-db-password' => 'Contrasigno del base de datos:',
-       'config-db-password-empty' => 'Per favor entra un contrasigno pro le nove usator del base de datos: $1.
-Ben que il es possibile crear usatores sin contrasigno, isto non es secur.',
-       'config-db-install-username' => 'Entra le nomine de usator que essera usate pro connecter al base de datos durante le processo de installation. Isto non es le nomine de usator del conto MediaWiki; isto es le nomine de usator pro tu base de datos.',
-       'config-db-install-password' => 'Entra le contrasigno que essera usate pro connecter al base de datos durante le processo de installation. Isto non es le contrasigno del conto MediaWiki; isto es le contrasigno pro tu base de datos.',
-       'config-db-install-help' => 'Entra le nomine de usator e contrasigno que essera usate pro connecter al base de datos durante le processo de installation.',
-       'config-db-account-lock' => 'Usar le mesme nomine de usator e contrasigno durante le operation normal',
-       'config-db-wiki-account' => 'Conto de usator pro operation normal',
-       'config-db-wiki-help' => 'Entra le nomine de usator e contrasigno que essera usate pro connecter al base de datos durante le operation normal del wiki.
-Si le conto non existe, e si le conto de installation possede sufficiente privilegios, iste conto de usator essera create con le minime privilegios necessari pro operar le wiki.',
-       'config-db-prefix' => 'Prefixo de tabella del base de datos:',
-       'config-db-prefix-help' => 'Si il es necessari usar un base de datos in commun inter multiple wikis, o inter MediaWiki e un altere application web, tu pote optar pro adder un prefixo a tote le nomines de tabella pro evitar conflictos.
-Non usa spatios.
-
-Iste campo usualmente resta vacue.',
-       'config-db-charset' => 'Codification de characteres in le base de datos',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binari',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 retrocompatibile UTF-8',
-       'config-charset-help' => "'''Aviso:''' Si tu usa '''UTF-8 retrocompatibile''' sur MySQL 4.1+, e postea face un copia de reserva del base de datos con <code>mysqldump</code>, tote le characteres non ASCII pote esser destruite, resultante in corruption irreversibile de tu copias de reserva!
-
-In '''modo binari''', MediaWiki immagazina texto in UTF-8 in le base de datos in campos binari.
-Isto es plus efficiente que le modo UTF-8 de MySQL, e permitte usar le rango complete de characteres de Unicode.
-In '''modo UTF-8''', MySQL sapera in qual codification de characteres tu datos es, e pote presentar e converter lo appropriatemente,
-ma non te permittera immagazinar characteres supra le [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Plano Multilingue Basic].",
-       'config-mysql-old' => 'MySQL $1 o plus recente es requirite, tu ha $2.',
-       'config-db-port' => 'Porto de base de datos:',
-       'config-db-schema' => 'Schema pro MediaWiki',
-       'config-db-schema-help' => 'Iste schema es generalmente correcte.
-Solmente cambia lo si tu es secur que es necessari.',
-       'config-pg-test-error' => "Impossibile connecter al base de datos '''$1''': $2",
-       'config-sqlite-dir' => 'Directorio pro le datos de SQLite:',
-       'config-sqlite-dir-help' => "SQLite immagazina tote le datos in un sol file.
-
-Le directorio que tu forni debe permitter le accesso de scriptura al servitor web durante le installation.
-
-Illo '''non''' debe esser accessibile via web. Pro isto, nos non lo pone ubi tu files PHP es.
-
-Le installator scribera un file <code>.htaccess</code> insimul a illo, ma si isto falli, alcuno pote ganiar accesso directe a tu base de datos.
-Isto include le crude datos de usator (adresses de e-mail, contrasignos codificate) assi como versiones delite e altere datos restringite super le wiki.
-
-Considera poner le base de datos in un loco completemente differente, per exemplo in <code>/var/lib/mediawiki/yourwiki</code>.",
-       'config-oracle-def-ts' => 'Spatio de tabellas predefinite:',
-       'config-oracle-temp-ts' => 'Spatio de tabellas temporari:',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-support-info' => 'MediaWiki supporta le sequente systemas de base de datos:
-
-$1
-
-Si tu non vide hic infra le systema de base de datos que tu tenta usar, alora seque le instructiones ligate hic supra pro activar le supporto.',
-       'config-support-mysql' => '* $1 es le systema primari pro MediaWiki e le melio supportate ([http://www.php.net/manual/en/mysql.installation.php como compilar PHP con supporto de MySQL])',
-       'config-support-postgres' => '* $1 es un systema de base de datos popular e open source, alternativa a MySQL ([http://www.php.net/manual/en/pgsql.installation.php como compilar PHP con supporto de PostgreSQL]). Es possibile que resta alcun minor defectos non resolvite, dunque illo non es recommendate pro uso in un ambiente de production.',
-       'config-support-sqlite' => '* $1 es un systema de base de datos legier que es multo ben supportate. ([http://www.php.net/manual/en/pdo.installation.php Como compilar PHP con supporto de SQLite], usa PDO)',
-       'config-support-oracle' => '* $1 es un banca de datos commercial pro interprisas. ([http://www.php.net/manual/en/oci8.installation.php Como compilar PHP con supporto de OCI8])',
-       'config-header-mysql' => 'Configuration de MySQL',
-       'config-header-postgres' => 'Configuration de PostgreSQL',
-       'config-header-sqlite' => 'Configuration de SQLite',
-       'config-header-oracle' => 'Configuration de Oracle',
-       'config-invalid-db-type' => 'Typo de base de datos invalide',
-       'config-missing-db-name' => 'Tu debe entrar un valor pro "Nomine de base de datos"',
-       'config-missing-db-host' => 'Tu debe entrar un valor pro "Host del base de datos"',
-       'config-missing-db-server-oracle' => 'You must enter a value for "TNS del base de datos"',
-       'config-invalid-db-server-oracle' => 'TNS de base de datos "$1" invalide.
-Usa o "TNS Name" o un catena "Easy Connect". ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Methodos de nomenclatura de Oracle])',
-       'config-invalid-db-name' => 'Nomine de base de datos "$1" invalide.
-Usa solmente litteras ASCII (a-z, A-Z), numeros (0-9), characteres de sublineamento (_) e tractos de union (-).',
-       'config-invalid-db-prefix' => 'Prefixo de base de datos "$1" invalide.
-Usa solmente litteras ASCII (a-z, A-Z), numeros (0-9), characteres de sublineamento (_) e tractos de union (-).',
-       'config-connection-error' => '$1.
-
-Verifica le servitor, nomine de usator e contrasigno hic infra e reproba.',
-       'config-invalid-schema' => 'Schema invalide pro MediaWiki "$1".
-Usa solmente litteras ASCII (a-z, A-Z), numeros (0-9) e characteres de sublineamento (_).',
-       'config-db-sys-create-oracle' => 'Le installator supporta solmente le uso de un conto SYSDBA pro le creation de un nove conto.',
-       'config-db-sys-user-exists-oracle' => 'Le conto de usator "$1" ja existe. SYSDBA pote solmente esser usate pro le creation de un nove conto!',
-       'config-postgres-old' => 'PostgreSQL $1 o plus recente es requirite, tu ha $2.',
-       'config-sqlite-name-help' => 'Selige un nomine que identifica tu wiki.
-Non usar spatios o tractos de union.
-Isto essera usate pro le nomine del file de datos de SQLite.',
-       'config-sqlite-parent-unwritable-group' => 'Impossibile crear le directorio de datos <code><nowiki>$1</nowiki></code>, proque le directorio superjacente <code><nowiki>$2</nowiki></code> non concede le accesso de scriptura al servitor web.
-
-Le installator ha determinate le usator sub que le servitor web es executate.
-Concede le accesso de scriptura in le directorio <code><nowiki>$3</nowiki></code> a iste usator pro continuar.
-In un systema Unix/Linux:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Impossibile crear le directorio de datos <code><nowiki>$1</nowiki></code>, proque le directorio superjacente <code><nowiki>$2</nowiki></code> non concede le accesso de scriptura al servitor web.
-
-Le installator non poteva determinar le usator sub que le servitor web es executate.
-Concede le accesso de scriptura in le directorio <code><nowiki>$3</nowiki></code> a iste usator (e alteres!) pro continuar.
-In un systema Unix/Linux:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Error al creation del directorio de datos "$1".
-Verifica le loco e reproba.',
-       'config-sqlite-dir-unwritable' => 'Impossibile scriber in le directorio "$1".
-Cambia su permissiones de sorta que le servitor web pote scriber in illo, e reproba.',
-       'config-sqlite-connection-error' => '$1.
-
-Verifica le directorio de datos e le nomine de base de datos hic infra e reproba.',
-       'config-sqlite-readonly' => 'Le file <code>$1</code> non es accessibile pro scriptura.',
-       'config-sqlite-cant-create-db' => 'Non poteva crear le file de base de datos <code>$1</code>.',
-       'config-sqlite-fts3-downgrade' => 'PHP non ha supporto pro FTS3. Le tabellas es retrogradate.',
-       'config-can-upgrade' => "Il ha tabellas MediaWiki in iste base de datos.
-Pro actualisar los a MediaWiki $1, clicca super '''Continuar'''.",
-       'config-upgrade-done' => "Actualisation complete.
-
-Tu pote ora [$1 comenciar a usar tu wiki].
-
-Si tu vole regenerar tu file <code>LocalSettings.php</code>, clicca super le button hic infra.
-Isto '''non es recommendate''' si tu non ha problemas con tu wiki.",
-       'config-upgrade-done-no-regenerate' => 'Actualisation complete.
-
-Tu pote ora [$1 comenciar a usar tu wiki].',
-       'config-regenerate' => 'Regenerar LocalSettings.php →',
-       'config-show-table-status' => 'Le consulta <code>SHOW TABLE STATUS</code> falleva!',
-       'config-unknown-collation' => "'''Aviso:''' Le base de datos usa un collation non recognoscite.",
-       'config-db-web-account' => 'Conto de base de datos pro accesso via web',
-       'config-db-web-help' => 'Selige le nomine de usator e contrasigno que le servitor web usara pro connecter al servitor de base de datos, durante le operation ordinari del wiki.',
-       'config-db-web-account-same' => 'Usar le mesme conto que pro le installation',
-       'config-db-web-create' => 'Crear le conto si illo non jam existe',
-       'config-db-web-no-create-privs' => 'Le conto que tu specificava pro installation non ha sufficiente privilegios pro crear un conto.
-Le conto que tu specifica hic debe jam exister.',
-       'config-mysql-engine' => 'Motor de immagazinage:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "* '''Attention:''' Tu ha seligite MyISAM como motor de immagazinage pro MySQL, lo que non es recommendate pro uso con MediaWiki, perque:
-* illo a pena supporta le processamento simultanee a causa del blocada le tabulas
-* illo es plus susceptibile al corruption que altere motores
-* le base de codice de MediaWiki non sempre manea MyISAM como illo deberea
-
-Si tu installation de MySQL supporta InnoDB, es multo recommendate que tu selige iste in su loco.
-Si tu installation de MySQL non supporta InnoDB, forsan isto es un bon occasion pro actualisar lo.",
-       'config-mysql-engine-help' => "'''InnoDB''' es quasi sempre le melior option, post que illo ha bon supporto pro simultaneitate.
-
-'''MyISAM''' pote esser plus rapide in installationes a usator singule o a lectura solmente.
-Le bases de datos MyISAM tende a esser corrumpite plus frequentemente que le base de datos InnoDB.",
-       'config-mysql-charset' => 'Codification de characteres in le base de datos:',
-       'config-mysql-binary' => 'Binari',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "In '''modo binari''', MediaWiki immagazina le texto UTF-8 in le base de datos in campos binari.
-Isto es plus efficiente que le modo UTF-8 de MySQL, e permitte usar le rango complete de characteres Unicode.
-
-In '''modo UTF-8''', MySQL cognoscera le codification de characteres usate pro tu dats, e pote presentar e converter lo appropriatemente, ma illo non permittera immagazinar characteres supra le [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Plano Multilingue Basic].",
-       'config-site-name' => 'Nomine del wiki:',
-       'config-site-name-help' => 'Isto apparera in le barra de titulo del navigator e in varie altere locos.',
-       'config-site-name-blank' => 'Entra un nomine de sito.',
-       'config-project-namespace' => 'Spatio de nomines del projecto:',
-       'config-ns-generic' => 'Projecto',
-       'config-ns-site-name' => 'Mesme nomine que le wiki: $1',
-       'config-ns-other' => 'Altere (specifica)',
-       'config-ns-other-default' => 'MiWiki',
-       'config-project-namespace-help' => 'Sequente le exemplo de Wikipedia, multe wikis tene lor paginas de politica separate de lor paginas de contento, in un "\'\'\'spatio de nomines de projecto\'\'\'".
-Tote le titulos de pagina in iste spatio de nomines comencia con un certe prefixo, le qual tu pote specificar hic.
-Traditionalmente, iste prefixo deriva del nomine del wiki, ma illo non pote continer characteres de punctuation como "#" o ":".',
-       'config-ns-invalid' => 'Le spatio de nomines specificate "<nowiki>$1</nowiki>" es invalide.
-Specifica un altere spatio de nomines de projecto.',
-       'config-ns-conflict' => 'Le spatio de nomines specificate "<nowiki>$1</nowiki>" conflige con un spatio de nomines predefinite de MediaWiki.
-Specifica un altere spatio de nomines pro le projecto.',
-       'config-admin-box' => 'Conto de administrator',
-       'config-admin-name' => 'Tu nomine:',
-       'config-admin-password' => 'Contrasigno:',
-       'config-admin-password-confirm' => 'Repete contrasigno:',
-       'config-admin-help' => 'Entra hic tu nomine de usator preferite, per exemplo "Julio Cesare".
-Isto es le nomine que tu usara pro aperir session in le wiki.',
-       'config-admin-name-blank' => 'Entra un nomine de usator pro administrator.',
-       'config-admin-name-invalid' => 'Le nomine de usator specificate "<nowiki>$1</nowiki>" es invalide.
-Specifica un altere nomine de usator.',
-       'config-admin-password-blank' => 'Entra un contrasigno pro le conto de administrator.',
-       'config-admin-password-same' => 'Le contrasigno non pote esser le mesme que le nomine de usator.',
-       'config-admin-password-mismatch' => 'Le duo contrasignos que tu scribeva non es identic.',
-       'config-admin-email' => 'Adresse de e-mail:',
-       'config-admin-email-help' => 'Entra un adresse de e-mail hic pro permitter le reception de e-mail ab altere usatores del wiki, pro poter reinitialisar tu contrasigno, e pro reciper notification de cambios a paginas in tu observatorio. Iste campo pote esser lassate vacue.',
-       'config-admin-error-user' => 'Error interne durante le creation de un administrator con le nomine "<nowiki>$1</nowiki>".',
-       'config-admin-error-password' => 'Error interne durante le definition de un contrasigno pro le administrator "<nowiki>$1</nowiki>": <pre>$2</pre>',
-       'config-admin-error-bademail' => 'Tu ha entrate un adresse de e-mail invalide',
-       'config-subscribe' => 'Subscribe al [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce lista de diffusion pro annuncios de nove versiones].',
-       'config-subscribe-help' => 'Isto es un lista de e-mail a basse volumine pro annuncios de nove versiones, includente importante annuncios de securitate.
-Tu deberea subscriber a illo e actualisar tu installation de MediaWiki quando nove versiones es editate.',
-       'config-subscribe-noemail' => 'Tu tentava abonar te al lista de diffusion pro annunciamento de nove versiones sin fornir un adresse de e-mail.
-Per favor specifica un adresse de e-mail si tu vole abonar te al lista de diffusion.',
-       'config-almost-done' => 'Tu ha quasi finite!
-Tu pote ora saltar le configuration remanente e installar le wiki immediatemente.',
-       'config-optional-continue' => 'Pone me plus questiones.',
-       'config-optional-skip' => 'Isto me es jam tediose. Simplemente installa le wiki.',
-       'config-profile' => 'Profilo de derectos de usator:',
-       'config-profile-wiki' => 'Wiki aperte',
-       'config-profile-no-anon' => 'Creation de conto obligatori',
-       'config-profile-fishbowl' => 'Modificatores autorisate solmente',
-       'config-profile-private' => 'Wiki private',
-       'config-profile-help' => "Le wikis functiona melio si tu permitte a tante personas como possibile de modificar los.
-In MediaWiki, il es facile revider le modificationes recente, e reverter omne damno facite per usatores naive o malitiose.
-
-Nonobstante, multes ha trovate MediaWiki utile in un grande varietate de rolos, e alcun vices il non es facile convincer omnes del beneficios del principio wiki.
-Dunque, a te le option.
-
-Le modello '''{{int:config-profile-wiki}}''' permitte a omnes de modificar, sin mesmo aperir un session.
-Un wiki con '''{{int:config-profile-no-anon}}''' attribue additional responsabilitate, ma pote dissuader contributores occasional.
-
-Le scenario '''{{int:config-profile-fishbowl}}''' permitte al usatores approbate de modificar, ma le publico pote vider le paginas, includente lor historia.
-Un '''{{int:config-profile-private}}''' permitte solmente al usatores approbate de vider le paginas e de modificar los.
-
-Configurationes de derectos de usator plus complexe es disponibile post installation, vide le [//www.mediawiki.org/wiki/Manual:User_rights pertinente section del manual].",
-       'config-license' => 'Copyright e licentia:',
-       'config-license-none' => 'Nulle licentia in pede de paginas',
-       'config-license-cc-by-sa' => 'Creative Commons Attribution Share Alike',
-       'config-license-cc-by' => 'Creative Commons Attribution',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Attribution Non-Commercial Share Alike',
-       'config-license-cc-0' => 'Creative Commons Zero (dominio public)',
-       'config-license-gfdl' => 'Licentia GNU pro Documentation Libere 1.3 o plus recente',
-       'config-license-pd' => 'Dominio public',
-       'config-license-cc-choose' => 'Seliger un licentia Creative Commons personalisate',
-       'config-license-help' => "Multe wikis public pone tote le contributiones sub un [http://freedomdefined.org/Definition/Ia?uselang=ia licentia libere].
-Isto adjuta a crear un senso de proprietate communitari e incoragia le contribution in longe termino.
-Isto non es generalmente necessari pro un wiki private o de interprisa.
-
-Si tu vole poter usar texto de Wikipedia, e si tu vole que Wikipedia pote acceptar texto copiate de tu wiki, tu debe seliger '''Creative Commons Attribution Share Alike'''.
-
-Wikipedia usava anteriormente le Licentia GNU pro Documentation Libere (GFDL).
-Iste es un licentia valide, ma es difficile a comprender.
-Il es anque difficile reusar le contento licentiate sub GFDL.",
-       'config-email-settings' => 'Configuration de e-mail',
-       'config-enable-email' => 'Activar le e-mail sortiente',
-       'config-enable-email-help' => 'Si tu vole que e-mail functiona, [http://www.php.net/manual/en/mail.configuration.php le optiones de e-mail de PHP] debe esser configurate correctemente.
-Si tu non vole functiones de e-mail, tu pote disactivar los hic.',
-       'config-email-user' => 'Activar le e-mail de usator a usator',
-       'config-email-user-help' => 'Permitter a tote le usatores de inviar e-mail inter se, si illes lo ha activate in lor preferentias.',
-       'config-email-usertalk' => 'Activar notification de cambios in paginas de discussion de usatores',
-       'config-email-usertalk-help' => 'Permitter al usatores de reciper notification de modificationes in lor paginas de discussion personal, si illes lo ha activate in lor preferentias.',
-       'config-email-watchlist' => 'Activar notification de observatorio',
-       'config-email-watchlist-help' => 'Permitter al usatores de reciper notification super lor paginas sub observation, si illes lo ha activate in lor preferentias.',
-       'config-email-auth' => 'Activar authentication de e-mail',
-       'config-email-auth-help' => "Si iste option es activate, le usatores debe confirmar lor adresse de e-mail usante un ligamine inviate a illes, quandocunque illes lo defini o cambia.
-Solmente le adresses de e-mail authenticate pote reciper e-mail de altere usatores o alterar le e-mails de notification.
-Es '''recommendate''' activar iste option pro wikis public a causa de abuso potential del functionalitate de e-mail.",
-       'config-email-sender' => 'Adresse de e-mail de retorno:',
-       'config-email-sender-help' => 'Entra le adresse de e-mail a usar como adresse de retorno in e-mail sortiente.
-Hic es recipite le notificationes de non-livration.
-Multe servitores de e-mail require que al minus le parte de nomine de dominio sia valide.',
-       'config-upload-settings' => 'Incargamento de imagines e files',
-       'config-upload-enable' => 'Activar le incargamento de files',
-       'config-upload-help' => 'Le incargamento de files potentialmente expone tu servitor a riscos de securitate.
-Pro plus information, lege le [//www.mediawiki.org/wiki/Manual:Security section de securitate] in le manual.
-
-Pro activar le incargamento de files, cambia le modo in le subdirectorio <code>images</code> sub le directorio-radice de MediaWiki de sorta que le servitor web pote scriber in illo.
-Postea activa iste option.',
-       'config-upload-deleted' => 'Directorio pro files delite:',
-       'config-upload-deleted-help' => 'Selige un directorio in le qual archivar le files delite.
-Idealmente, isto non debe esser accessibile ab le web.',
-       'config-logo' => 'URL del logotypo:',
-       'config-logo-help' => 'Le apparentia predefinite de MediaWiki include spatio pro un logotypo de 135×160 pixels supra le menu del barra lateral.
-Incarga un imagine con le dimensiones appropriate, e entra le URL hic.
-
-Tu pote usar <code>$wgStylePath</code> o <code>$wgScriptPath</code> si le loco de tu logotypo es relative a iste camminos.
-
-Si tu non vole un logotypo, lassa iste quadro vacue.',
-       'config-instantcommons' => 'Activar "Instant Commons"',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons Instant Commons] es un function que permitte a wikis de usar imagines, sonos e altere multimedia trovate in le sito [//commons.wikimedia.org/ Wikimedia Commons].
-Pro poter facer isto, MediaWiki require accesso a Internet.
-
-Pro plus information super iste function, includente instructiones super como configurar lo pro wikis altere que Wikimedia Commons, consulta [//mediawiki.org/wiki/Manual:$wgForeignFileRepos le manual].',
-       'config-cc-error' => 'Le selector de licentia Creative Commons non dava un resultato.
-Entra le nomine del licentia manualmente.',
-       'config-cc-again' => 'Selige de novo…',
-       'config-cc-not-chosen' => 'Selige le licentia Creative Commons que tu prefere e clicca "proceder".',
-       'config-advanced-settings' => 'Configuration avantiate',
-       'config-cache-options' => 'Configuration del cache de objectos:',
-       'config-cache-help' => 'Le cache de objectos es usate pro meliorar le rapiditate de MediaWiki per immagazinar le datos frequentemente usate.
-Le sitos medie o grande es multo incoragiate de activar isto, ma anque le sitos parve percipera le beneficios.',
-       'config-cache-none' => 'Nulle cache (nulle functionalitate es removite, ma le rapiditate pote diminuer in grande sitos wiki)',
-       'config-cache-accel' => 'Cache de objectos de PHP (APC, XCache o WinCache)',
-       'config-cache-memcached' => 'Usar Memcached (require additional installation e configuration)',
-       'config-memcached-servers' => 'Servitores Memcached:',
-       'config-memcached-help' => 'Lista de adresses IP a usar pro Memcached.
-Debe specificar un per linea e specificar le porto a usar. Per exemplo:
- 127.0.0.1:11211
- 192.168.1.25:1234',
-       'config-memcache-needservers' => 'Tu seligeva Memcached como typo de cache ma non specificava alcun servitores',
-       'config-memcache-badip' => 'Tu ha entrate un adresse IP invalide pro Memcached: $1',
-       'config-memcache-noport' => 'Tu non specificava un porto a usar pro le servitor Memcached: $1.
-Si tu non cognosce le porto, le standard es 11211',
-       'config-memcache-badport' => 'Le numeros de porto de Memcached debe esser inter $1 e $2',
-       'config-extensions' => 'Extensiones',
-       'config-extensions-help' => 'Le extensiones listate hic supra esseva detegite in tu directorio <code>./extensions</code>.
-
-Istes pote requirer additional configuration, ma tu pote activar los ora.',
-       'config-install-alreadydone' => "'''Aviso:''' Il pare que tu ha jam installate MediaWiki e tenta installar lo de novo.
-Per favor continua al proxime pagina.",
-       'config-install-begin' => 'Un clic sur "{{int:config-continue}}" comencia le installation de MediaWiki.
-Pro facer alterationes, clicca sur "{{int:config-back}}".',
-       'config-install-step-done' => 'finite',
-       'config-install-step-failed' => 'fallite',
-       'config-install-extensions' => 'Include le extensiones',
-       'config-install-database' => 'Configura le base de datos',
-       'config-install-schema' => 'Creation de schema',
-       'config-install-pg-schema-not-exist' => 'Iste schema de PostgreSQL non existe',
-       'config-install-pg-schema-failed' => 'Le creation del tabellas falleva.
-Assecura te que le usator "$1" pote scriber in le schema "$2".',
-       'config-install-pg-commit' => 'Committer cambiamentos',
-       'config-install-pg-plpgsql' => 'Verifica le presentia del linguage PL/pgSQL',
-       'config-pg-no-plpgsql' => 'Es necessari installar le linguage PL/pgSQL in le base de datos $1',
-       'config-pg-no-create-privs' => 'Le conto que tu specificava pro installation non ha sufficiente privilegios pro crear un conto.',
-       'config-pg-not-in-role' => 'Le conto que tu specificava pro le usator web ja existe.
-Le conto que tu specificava pro installation non es superusator e non es membro del rolo de usator web, dunque es incapace de crear objectos possedite per le usator web.
-
-MediaWiki require actualmente que le tabellas sia possedite per le usator web. Per favor specifica un altere nomine de conto web, o clicca super "retornar" e specifica un usator de installation con sufficiente privilegios.',
-       'config-install-user' => 'Crea usator pro base de datos',
-       'config-install-user-alreadyexists' => 'Le usator "$1" ja existe',
-       'config-install-user-create-failed' => 'Le creation del usator "$1" ha fallite: $2',
-       'config-install-user-grant-failed' => 'Le concession de permission al usator "$1" falleva: $2',
-       'config-install-user-missing' => 'Le usator specificate, "$1", non existe.',
-       'config-install-user-missing-create' => 'Le usator specificate, "$1", non existe.
-Per favor marca le quadrato "crear conto" hic infra si tu vole crear lo.',
-       'config-install-tables' => 'Crea tabellas',
-       'config-install-tables-exist' => "'''Aviso''': Il pare que le tabellas de MediaWiki jam existe.
-Le creation es saltate.",
-       'config-install-tables-failed' => "'''Error''': Le creation del tabellas falleva con le sequente error: $1",
-       'config-install-interwiki' => 'Plena le tabella interwiki predefinite',
-       'config-install-interwiki-list' => 'Non poteva trovar le file <code>interwiki.list</code>.',
-       'config-install-interwiki-exists' => "'''Aviso''': Le tabella interwiki pare jam haber entratas.
-Le lista predefinite es saltate.",
-       'config-install-stats' => 'Initialisation del statisticas',
-       'config-install-keys' => 'Generation de claves secrete',
-       'config-insecure-keys' => "'''Attention:''' {{PLURAL:$2|Un clave|Alcun claves}} secur ($1) generate durante le installation non es completemente secur. Considera cambiar {{PLURAL:$2|lo|los}} manualmente.",
-       'config-install-sysop' => 'Crea conto de usator pro administrator',
-       'config-install-subscribe-fail' => 'Impossibile subscriber a mediawiki-announce: $1',
-       'config-install-subscribe-notpossible' => 'cURL non es installate e allow_url_fopen non es disponibile.',
-       'config-install-mainpage' => 'Crea pagina principal con contento predefinite',
-       'config-install-extension-tables' => 'Creation de tabellas pro le extensiones activate',
-       'config-install-mainpage-failed' => 'Non poteva inserer le pagina principal: $1',
-       'config-install-done' => "'''Felicitationes!'''
-Tu ha installate MediaWiki con successo.
-
-Le installator ha generate un file <code>LocalSettings.php</code>.
-Iste contine tote le configuration.
-
-Es necessari discargar lo e poner lo in le base del installation wiki (le mesme directorio que index.php).
-Le discargamento debe haber comenciate automaticamente.
-
-Si le discargamento non ha comenciate, o si illo esseva cancellate, es possibile recomenciar le discargamento con un clic sur le ligamine sequente:
-
-$3
-
-'''Nota''': Si tu non discarga iste file de configuration ora, illo non essera disponibile plus tarde.
-
-Post facer isto, tu pote '''[$2 entrar in tu wiki]'''.",
-       'config-download-localsettings' => 'Discargar <code>LocalSettings.php</code>',
-       'config-help' => 'adjuta',
-       'config-nofile' => 'Le file "$1" non poteva esser trovate. Ha illo essite delite?',
-       'mainpagetext' => "'''MediaWiki ha essite installate con successo.'''",
-       'mainpagedocfooter' => 'Consulta le [//meta.wikimedia.org/wiki/Help:Contents Guida del usator] pro informationes super le uso del software wiki.
-
-== Pro initiar ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de configurationes]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ a proposito de MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de diffusion pro annuncios de nove versiones de MediaWiki]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Traducer MediaWiki in tu lingua]',
-);
-
-/** Indonesian (Bahasa Indonesia)
- * @author Farras
- * @author IvanLanin
- * @author Kenrick95
- * @author Reedy
- * @author 아라
- */
-$messages['id'] = array(
-       'config-desc' => 'Penginstal untuk MediaWiki',
-       'config-title' => 'Instalasi MediaWiki $1',
-       'config-information' => 'Informasi',
-       'config-localsettings-upgrade' => 'Berkas <code>LocalSettings.php</code> sudah ada.
-Untuk memutakhirkan instalasi ini, masukkan nilai <code>$wgUpgradeKey</code> dalam kotak yang tersedia di bawah ini.
-Anda dapat menemukan nilai tersebut dalam <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'Berkas <code>LocalSettings.php</code> terdeteksi.
-Untuk meningkatkan versi, harap jalankan <code>update.php</code>.',
-       'config-localsettings-key' => 'Kunci pemutakhiran:',
-       'config-localsettings-badkey' => 'Kunci yang Anda berikan tidak benar',
-       'config-upgrade-key-missing' => 'Suatu instalasi MediaWiki telah terdeteksi.
-Untuk memutakhirkan instalasi ini, silakan masukkan baris berikut di bagian bawah <code>LocalSettings.php</code> Anda:
-
-$1',
-       'config-localsettings-incomplete' => '<code>LocalSettings.php</code> yang ada tampaknya tidak lengkap.
-Variabel $1 tidak diatur.
-Silakan ubah <code>LocalSettings.php</code> untuk mengatur variabel ini dan klik "{{int:Config-continue}}".',
-       'config-localsettings-connection-error' => 'Timbul galat saat menghubungkan ke basis data dengan menggunakan setelan yang ditentukan di <code>LocalSettings.php</code> atau <code>AdminSettings.php</code>. Harap perbaiki setelan ini dan coba lagi.
-
-$1',
-       'config-session-error' => 'Kesalahan sesi mulai: $1',
-       'config-session-expired' => 'Data sesi tampaknya telah kedaluwarsa.
-Sesi dikonfigurasi untuk berlaku selama $1.
-Anda dapat menaikkannya dengan menetapkan <code>session.gc_maxlifetime</code> dalam php.ini.
-Ulangi proses instalasi.',
-       'config-no-session' => 'Data sesi Anda hilang!
-Cek php.ini Anda dan pastikan bahwa <code>session.save_path</code> diatur ke direktori yang sesuai.',
-       'config-your-language' => 'Bahasa Anda:',
-       'config-your-language-help' => 'Pilih bahasa yang akan digunakan selama proses instalasi.',
-       'config-wiki-language' => 'Bahasa wiki:',
-       'config-wiki-language-help' => 'Pilih bahasa yang akan digunakan tulisan-tulisan wiki.',
-       'config-back' => '← Kembali',
-       'config-continue' => 'Lanjut →',
-       'config-page-language' => 'Bahasa',
-       'config-page-welcome' => 'Selamat datang di MediaWiki',
-       'config-page-dbconnect' => 'Hubungkan ke basis data',
-       'config-page-upgrade' => 'Perbarui instalasi yang ada',
-       'config-page-dbsettings' => 'Pengaturan basis data',
-       'config-page-name' => 'Nama',
-       'config-page-options' => 'Pilihan',
-       'config-page-install' => 'Instal',
-       'config-page-complete' => 'Selesai!',
-       'config-page-restart' => 'Ulangi instalasi',
-       'config-page-readme' => 'Baca saya',
-       'config-page-releasenotes' => 'Catatan pelepasan',
-       'config-page-copying' => 'Menyalin',
-       'config-page-upgradedoc' => 'Memerbarui',
-       'config-page-existingwiki' => 'Wiki yang ada',
-       'config-help-restart' => 'Apakah Anda ingin menghapus semua data tersimpan yang telah Anda masukkan dan mengulang proses instalasi?',
-       'config-restart' => 'Ya, nyalakan ulang',
-       'config-welcome' => '=== Pengecekan lingkungan ===
-Pengecekan dasar dilakukan untuk melihat apakah lingkungan ini memadai untuk instalasi MediaWiki.
-Anda harus memberikan hasil pemeriksaan ini jika Anda memerlukan bantuan selama instalasi.',
-       'config-copyright' => "=== Hak cipta dan persyaratan ===
-
-\$1
-
-Program ini adalah perangkat lunak bebas; Anda dapat mendistribusikan dan/atau memodifikasi di bawah persyaratan GNU General Public License seperti yang diterbitkan oleh Free Software Foundation; baik versi 2 lisensi, atau (sesuai pilihan Anda) versi yang lebih baru.
-
-Program ini didistribusikan dengan harapan bahwa itu akan berguna, tetapi '''tanpa jaminan apa pun'''; bahkan tanpa jaminan tersirat untuk '''dapat diperjualbelikan ''' atau '''sesuai untuk tujuan tertentu'''.
-Lihat GNU General Public License untuk lebih jelasnya.
-
-Anda seharusnya telah menerima <doclink href=\"Copying\">salinan dari GNU General Public License</doclink> bersama dengan program ini; jika tidak, kirimkan surat untuk Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. atau [http://www.gnu.org/copyleft/gpl.html baca versi daring].",
-       'config-sidebar' => '* [//www.mediawiki.org/wiki/MediaWiki/id Situs MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents/id Pedoman Pengguna]
-* [//www.mediawiki.org/wiki/Manual:Contents/id Pedoman Administrator]
-* [//www.mediawiki.org/wiki/Manual:FAQ/id FAQ]
-----
-* <doclink href=Readme>Read me</doclink>
-* <doclink href=ReleaseNotes>Release notes</doclink>
-* <doclink href=Copying>Copying</doclink>
-* <doclink href=UpgradeDoc>Upgrading</doclink>',
-       'config-env-good' => 'Kondisi telah diperiksa.
-Anda dapat menginstal MediaWiki.',
-       'config-env-bad' => 'Kondisi telah diperiksa.
-Anda tidak dapat menginstal MediaWiki.',
-       'config-env-php' => 'PHP $1 diinstal.',
-       'config-env-php-toolow' => 'PHP $1 telah terinstal.
-Namun, MediaWiki memerlukan PHP $2 atau lebih tinggi.',
-       'config-unicode-using-utf8' => 'Menggunakan utf8_normalize.so Brion Vibber untuk normalisasi Unicode.',
-       'config-unicode-using-intl' => 'Menggunakan [http://pecl.php.net/intl ekstensi PECL intl] untuk normalisasi Unicode.',
-       'config-unicode-pure-php-warning' => "'''Peringatan''': [http://pecl.php.net/intl Ekstensi intl PECL] untuk menangani normalisasi Unicode tidak tersedia, kembali menggunakan implementasi murni PHP yang lambat.
-Jika Anda menjalankan situs berlalu lintas tinggi, Anda harus sedikit membaca [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalisasi Unicode].",
-       'config-unicode-update-warning' => "'''Peringatan''': Versi terinstal dari pembungkus normalisasi Unicode menggunakan versi lama pustaka [http://site.icu-project.org/ proyek ICU].
-Anda harus [//www.mediawiki.org/wiki/Unicode_normalization_considerations memutakhirkannya] jika Anda ingin menggunakan Unicode.",
-       'config-no-db' => 'Pengandar basis data yang sesuai tidak ditemukan! Anda perlu menginstal pengandar basis data untuk PHP.
-Jenis basis data yang didukung: $1.
-
-Jika Anda menggunakan inang bersama, mintalah penyedia inang Anda untuk menginstal pengandar basis data yang sesuai.
-Jika Anda mengompilasi sendiri PHP, ubahlah konfigurasinya dengan mengaktifkan klien basis data, misalnya menggunakan <code>./configure --with-mysql</code>.
-Jika Anda menginstal PHP dari paket Debian atau Ubuntu, maka Anda juga perlu menginstal modul php5-mysql.',
-       'config-no-fts3' => "'''Peringatan''': SQLite dikompilasi tanpa [//sqlite.org/fts3.html modul FTS3], fitur pencarian tidak akan tersedia pada konfigurasi ini.",
-       'config-register-globals' => "'''Peringatan: Opsi <code>[http://php.net/register_globals register_globals]</code> PHP diaktifkan.'''
-'''Nonaktifkan kalau bisa.'''
-MediaWiki akan bekerja, tetapi server Anda memiliki potensi kerentanan keamanan.",
-       'config-magic-quotes-runtime' => "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] aktif!'''
-Pilihan ini dapat merusak masukan data secara tidak terduga.
-Anda tidak dapat menginstal atau menggunakan MediaWiki kecuali pilihan ini dinonaktifkan.",
-       'config-magic-quotes-sybase' => "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic_quotes_sybase magic_quotes_sybase] aktif!'''
-Pilihan ini dapat merusak masukan data secara tidak terduga.
-Anda tidak dapat menginstal atau menggunakan MediaWiki kecuali pilihan ini dinonaktifkan.",
-       'config-mbstring' => "'''Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] aktif!'' '
-Pilihan ini dapat menyebabkan kesalahan dan kerusakan data yang tidak terduga.
-Anda tidak dapat menginstal atau menggunakan MediaWiki kecuali pilihan ini dinonaktifkan.",
-       'config-ze1' => "'''Fatal: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] aktif!'''
-Pilihan ini dapat menyebabkan bug yang mengerikan pada MediaWiki.
-Anda tidak dapat menginstal atau menggunakan MediaWiki kecuali pilihan ini dinonaktifkan.",
-       'config-safe-mode' => "''' Peringatan:''' [http://www.php.net/features.safe-mode Mode aman] PHP aktif.
-Hal ini akan menyebabkan masalah, terutama jika menggunakan pengunggahan berkas dan dukungan <code>math</code>.",
-       'config-xml-bad' => 'Modul XML PHP hilang.
-MediaWiki membutuhkan fungsi dalam modul ini dan tidak akan bekerja dalam konfigurasi ini.
-Jika Anda menggunakan Mandrake, instal paket php-xml.',
-       'config-pcre' => 'Modul pendukung PCRE tampaknya hilang.
-MediaWiki memerlukan fungsi persamaan reguler kompatibel Perl untuk bekerja.',
-       'config-pcre-no-utf8' => "'''Fatal''': Modul PCRE PHP tampaknya dikompilasi tanpa dukungan PCRE_UTF8.
-MediaWiki memerlukan dukungan UTF-8 untuk berfungsi dengan benar.",
-       'config-memory-raised' => '<code>memory_limit</code> PHP adalah $1, dinaikkan ke $2.',
-       'config-memory-bad' => "'''Peringatan:''' <code>memory_limit</code> PHP adalah $1.
-Ini terlalu rendah.
-Instalasi terancam gagal!",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] telah diinstal',
-       'config-apc' => '[http://www.php.net/apc APC] telah diinstal',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] telah diinstal',
-       'config-no-cache' => "'''Peringatan:''' Tidak dapat menemukan [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache], atau [http://www.iis.net/download/WinCacheForPhp WinCache]. Pinggahan obyek tidak dinonaktifkan.",
-       'config-diff3-bad' => 'GNU diff3 tidak ditemukan.',
-       'config-imagemagick' => 'ImageMagick ditemukan: <code>$1</code> .
-Pembuatan gambar mini akan diaktifkan jika Anda mengaktifkan pengunggahan.',
-       'config-gd' => 'Pustaka grafis GD terpasang ditemukan.
-Pembuatan gambar mini akan diaktifkan jika Anda mengaktifkan pengunggahan.',
-       'config-no-scaling' => 'Pustaka GD atau ImageMagick tidak ditemukan.
-Pembuatan gambar mini dinonaktifkan.',
-       'config-no-uri' => "'''Kesalahan:''' URI saat ini tidak dapat ditentukan.
-Instalasi dibatalkan.",
-       'config-uploads-not-safe' => "'''Peringatan:''' Direktori bawaan pengunggahan <code>$1</code> Anda rentan terhadap eksekusi skrip yang sewenang-wenang.
-Meskipun MediaWiki memeriksa semua berkas unggahan untuk ancaman keamanan, sangat dianjurkan untuk [//www.mediawiki.org/wiki/Manual:Security#Upload_security menutup kerentanan keamanan ini] sebelum mengaktifkan pengunggahan.",
-       'config-brokenlibxml' => 'Sistem Anda memiliki kombinasi versi PHP dan libxml2 yang memiliki bug dan dapat menyebabkan kerusakan data tersembunyi pada MediaWiki dan aplikasi web lain.
-Mutakhirkan ke PHP 5.2.9 atau yang lebih baru dan libxml2 2.7.3 atau yang lebih baru ([//bugs.php.net/bug.php?id=45996 arsip bug di PHP]).
-Instalasi dibatalkan.',
-       'config-using531' => 'MediaWiki tidak dapat dijalankan dengan PHP $1 karena bug yang melibatkan parameter referensi untuk <code>__call()</code> .
-Tingkatkan ke PHP 5.3.2 atau lebih baru, atau turunkan ke PHP versi 5.3.0 untuk menyelesaikan hal ini.
-Instalasi dibatalkan.',
-       'config-suhosin-max-value-length' => 'Suhosin terpasang dan membatasi panjang parameter GET sebesar $1 bita. Komponen ResourceLoader MediaWiki akan mengatasi batasan ini, tapi penanganannya akan menurunkan kinerja. Jika memungkinkan, Anda sebaiknya menetapkan nilai <code>suhosin.get.max_value_length</code> menjadi 1024 atau lebih tinggi dalam <code>php.ini</code> dan menyetel <code>$wgResourceLoaderMaxQueryLength</code> dengan nilai yang sama dalam LocalSettings.php.', # Fuzzy
-       'config-db-type' => 'Jenis basis data:',
-       'config-db-host' => 'Inang basis data:',
-       'config-db-host-help' => 'Jika server basis data Anda berada di server yang berbeda, masukkan nama inang atau alamat IP di sini.
-
-Jika Anda menggunakan inang web bersama, penyedia inang Anda harus memberikan nama inang yang benar di dokumentasi mereka.
-
-Jika Anda menginstal pada server Windows dan menggunakan MySQL, "localhost" mungkin tidak dapat digunakan sebagai nama server. Jika demikian, coba "127.0.0.1" untuk alamat IP lokal.', # Fuzzy
-       'config-db-host-oracle' => 'TNS basis data:',
-       'config-db-host-oracle-help' => 'Masukkan [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name] yang sah; berkas tnsnames.ora harus dapat diakses oleh instalasi ini.<br />Jika Anda menggunakan pustaka klien 10g atau lebih baru, Anda juga dapat menggunakan metode penamaan [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].',
-       'config-db-wiki-settings' => 'Identifikasi wiki ini',
-       'config-db-name' => 'Nama basis data:',
-       'config-db-name-help' => 'Pilih nama yang mengidentifikasikan wiki Anda.
-Nama tersebut tidak boleh mengandung spasi.
-
-Jika Anda menggunakan inang web bersama, penyedia inang Anda dapat memberikan Anda nama basis data khusus untuk digunakan atau mengizinkan Anda membuat basis data melalui panel kontrol.',
-       'config-db-name-oracle' => 'Skema basis data:',
-       'config-db-account-oracle-warn' => 'Ada tiga skenario yang didukung untuk instalasi Oracle sebagai basis data pendukung:
-
-Jika Anda ingin membuat akun basis data sebagai bagian dari proses instalasi, silakan masukkan akun dengan peran SYSDBA sebagai akun basis data untuk instalasi dan tentukan kredensial yang diinginkan untuk akun akses web. Jika tidak, Anda dapat membuat akun akses web secara manual dan hanya memberikan akun tersebut (jika memiliki izin yang diperlukan untuk membuat objek skema) atau memasukkan dua akun yang berbeda, satu dengan hak membuat objek dan satu dibatasi untuk akses web.
-
-Skrip untuk membuat akun dengan privilese yang diperlukan dapat ditemukan pada direktori "maintenance/oracle/" instalasi ini. Harap diingat bahwa penggunaan akun terbatas akan menonaktifkan semua kemampuan pemeliharaan dengan akun bawaan.',
-       'config-db-install-account' => 'Akun pengguna untuk instalasi',
-       'config-db-username' => 'Nama pengguna basis data:',
-       'config-db-password' => 'Kata sandi basis data:',
-       'config-db-password-empty' => 'Silakan masukkan sandi untuk pengguna basis data baru: $1.
-Meskipun dimungkinkan untuk membuat pengguna tanpa sandi, hal itu tidak aman.',
-       'config-db-install-username' => 'Masukkan nama pengguna yang akan digunakan untuk terhubung ke basis data selama proses instalasi.
-Ini bukan nama pengguna akun MediaWiki, melainkan nama pengguna untuk basis data Anda.',
-       'config-db-install-password' => 'Masukkan sandi yang akan digunakan untuk terhubung ke basis data selama proses instalasi.
-Ini bukan sandi untuk akun MediaWiki, melainkan sandi untuk basis data Anda.',
-       'config-db-install-help' => 'Masukkan nama pengguna dan sandi yang akan digunakan untuk terhubung ke basis data pada saat proses instalasi.',
-       'config-db-account-lock' => 'Gunakan nama pengguna dan kata sandi yang sama selama operasi normal',
-       'config-db-wiki-account' => 'Akun pengguna untuk operasi normal',
-       'config-db-wiki-help' => 'Masukkan nama pengguna dan sandi yang akan digunakan untuk terhubung ke basis data wiki selama operasi normal.
-Jika akun tidak ada, akun instalasi memiliki hak yang memadai, akun pengguna ini akan dibuat dengan hak akses minimum yang diperlukan untuk mengoperasikan wiki.',
-       'config-db-prefix' => 'Prefiks tabel basis data:',
-       'config-db-prefix-help' => 'Jika Anda perlu berbagi satu basis data di antara beberapa wiki, atau antara MediaWiki dan aplikasi web lain, Anda dapat memilih untuk menambahkan prefiks terhadap semua nama tabel demi menghindari konflik.
-Jangan gunakan spasi.
-
-Prefiks ini biasanya dibiarkan kosong.',
-       'config-db-charset' => 'Set karakter basis data',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 biner',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'UTF-8 yang kompatibel balik dengan MySQL 4.0',
-       'config-charset-help' => "'''Peringatan:''' Jika Anda menggunakan '''UTF-8 kompatibel balik''' pada MySQL 4.1+, dan kemudian mencadangkan basis data dengan <code>mysqldump</code>, proses itu mungkin menghancurkan semua karakter non-ASCII dan merusak cadangan Anda tanpa dapat dikembalikan!
-
-Dalam '''modus biner''', MediaWiki menyimpan teks UTF-8 ke basis data dalam bidang biner.
-Ini lebih efisien dibandingkan modus UTF-8 MySQL dan memungkinkan Anda untuk menggunakan berbagai karakter Unicode.
-Dalam '''modus UTF-8''', MySQL akan tahu apa set karakter data anda dan dapat menyajikan dan mengubahnya denga tepat, namun tidak akan mengizinkan Anda menyimpan karakter di atas [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
-       'config-mysql-old' => 'MySQL $1 atau versi terbaru diperlukan, Anda menggunakan $2.',
-       'config-db-port' => 'Porta basis data:',
-       'config-db-schema' => 'Skema untuk MediaWiki',
-       'config-db-schema-help' => 'Skema ini biasanya berjalan baik.
-Ubah hanya jika Anda tahu Anda perlu mengubahnya.',
-       'config-sqlite-dir' => 'Direktori data SQLite:',
-       'config-sqlite-dir-help' => "SQLite menyimpan semua data dalam satu berkas.
-
-Direktori yang Anda berikan harus dapat ditulisi oleh server web selama instalasi.
-
-Direktori itu '''tidak''' boleh dapat diakses melalui web, inilah sebabnya kami tidak menempatkannya bersama dengan berkas PHP lain.
-
-Penginstal akan membuat berkas <code>.htaccess</code> bersamaan dengan itu, tetapi jika gagal, orang dapat memperoleh akses ke basis data mentah Anda.
-Itu termasuk data mentah pengguna (alamat surel, hash sandi) serta revisi yang dihapus dan data lainnya yang dibatasi pada wiki.
-
-Pertimbangkan untuk menempatkan basis data di tempat lain, misalnya di <code>/var/lib/mediawiki/yourwiki</code>.",
-       'config-oracle-def-ts' => 'Tablespace bawaan:',
-       'config-oracle-temp-ts' => 'Tablespace sementara:',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-support-info' => 'MediaWiki mendukung sistem basis data berikut:
-
-$1
-
-Jika Anda tidak melihat sistem basis data yang Anda gunakan tercantum di bawah ini, ikuti petunjuk terkait di atas untuk mengaktifkan dukungan.',
-       'config-support-mysql' => '* $1 adalah target utama MediaWiki dan memiliki dukungan terbaik ([http://www.php.net/manual/en/mysql.installation.php cara mengompilasi PHP dengan dukungan MySQL])',
-       'config-support-postgres' => '* $1 adalah sistem basis data sumber terbuka populer sebagai alternatif untuk MySQL ([http://www.php.net/manual/en/pgsql.installation.php cara mengompilasi PHP dengan dukungan PostgreSQL]). Mungkin ada beberapa bug terbuka dan alternatif ini tidak direkomendasikan untuk dipakai dalam lingkungan produksi.',
-       'config-support-sqlite' => '* $1 adalah sistem basis data yang ringan yang sangat baik dukungannya. ([http://www.php.net/manual/en/pdo.installation.php cara mengompilasi PHP dengan dukungan SQLite], menggunakan PDO)',
-       'config-support-oracle' => '* $1 adalah basis data komersial untuka perusahaan. ([http://www.php.net/manual/en/oci8.installation.php cara mengompilasi PHP dengan dukungan OCI8])',
-       'config-header-mysql' => 'Pengaturan MySQL',
-       'config-header-postgres' => 'Pengaturan PostgreSQL',
-       'config-header-sqlite' => 'Pengaturan SQLite',
-       'config-header-oracle' => 'Pengaturan Oracle',
-       'config-invalid-db-type' => 'Jenis basis data tidak sah',
-       'config-missing-db-name' => 'Anda harus memasukkan nilai untuk "Nama basis data"',
-       'config-missing-db-host' => 'Anda harus memasukkan nilai untuk "Inang basis data"',
-       'config-missing-db-server-oracle' => 'Anda harus memasukkan nilai untuk "TNS basis data"',
-       'config-invalid-db-server-oracle' => 'TNS basis data "$1" tidak sah.
-Gunakan hanya huruf ASCII (a-z, A-Z), angka (0-9), garis bawah (_), dan titik (.).',
-       'config-invalid-db-name' => 'Nama basis data "$1" tidak sah.
-Gunakan hanya huruf ASCII (a-z, A-Z), angka (0-9), garis bawah (_), dan tanda hubung (-).',
-       'config-invalid-db-prefix' => 'Prefiks basis data "$1" tidak sah.
-Gunakan hanya huruf ASCII (a-z, A-Z), angka (0-9), garis bawah (_), dan tanda hubung (-).',
-       'config-connection-error' => '$1.
-
-Periksa nama inang, pengguna, dan sandi di bawah ini dan coba lagi.',
-       'config-invalid-schema' => 'Skema MediaWiki "$1" tidak sah.
-Gunakan hanya huruf ASCII (a-z, A-Z), angka (0-9), dan garis bawah (_).',
-       'config-db-sys-create-oracle' => 'Penginstal hanya mendukung penggunaan akun SYSDBA untuk membuat akun baru.',
-       'config-db-sys-user-exists-oracle' => 'Akun pengguna "$1"sudah ada. SYSDBA hanya dapat digunakan untuk membuat akun baru!',
-       'config-postgres-old' => 'PostgreSQL $1 atau versi terbaru diperlukan, Anda menggunakan $2.',
-       'config-sqlite-name-help' => 'Pilih nama yang mengidentifikasi wiki Anda.
-Jangan gunakan spasi atau tanda hubung.
-Nama ini akan digunakan untuk nama berkas data SQLite.',
-       'config-sqlite-parent-unwritable-group' => 'Tidak dapat membuat direktori data <code><nowiki>$1</nowiki></code>, karena direktori induk <code><nowiki>$2</nowiki></code> tidak bisa ditulisi oleh server web.
-
-Penginstal telah menentukan pengguna yang menjalankan server web Anda.
-Buat direktori <code><nowiki>$3</nowiki></code> menjadi dapat ditulisi olehnya.
-Pada sistem Unix/Linux lakukan hal berikut:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Tidak dapat membuat direktori data <code><nowiki>$1</nowiki></code>, karena direktori induk <code><nowiki>$2</nowiki></code> tidak bisa ditulisi oleh server web.
-
-Penginstal tidak dapat menentukan pengguna yang menjalankan server web Anda.
-Buat direktori <code><nowiki>$3</nowiki></code> menjadi dapat ditulisi oleh semua orang.
-Pada sistem Unix/Linux lakukan hal berikut:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Kesalahan saat membuat direktori data "$1".
-Periksa lokasi dan coba lagi.',
-       'config-sqlite-dir-unwritable' => 'Tidak dapat menulisi direktori "$1".
-Ubah hak akses direktori sehingga server web dapat menulis ke sana, dan coba lagi.',
-       'config-sqlite-connection-error' => '$1.
-
-Periksa direktori data dan nama basis data di bawah dan coba lagi.',
-       'config-sqlite-readonly' => 'Berkas <code>$1</code> tidak dapat ditulisi.',
-       'config-sqlite-cant-create-db' => 'Tidak dapat membuat berkas basis data <code>$1</code>.',
-       'config-sqlite-fts3-downgrade' => 'PHP tidak memiliki dukungan FTS3, tabel dituruntarafkan.',
-       'config-can-upgrade' => "Ada tabel MediaWiki di basis dataini.
-Untuk memperbaruinya ke MediaWiki $1, klik '''Lanjut'''.",
-       'config-upgrade-done' => "Pemutakhiran selesai.
-
-Anda sekarang dapat [$1 mulai menggunakan wiki Anda].
-
-Jika Anda ingin membuat ulang berkas <code>LocalSettings.php</code>, klik tombol di bawah ini.
-Tindakan ini '''tidak dianjurkan''' kecuali jika Anda mengalami masalah dengan wiki Anda.",
-       'config-upgrade-done-no-regenerate' => 'Pemutakhiran selesai.
-
-Anda sekarang dapat [$1 mulai menggunakan wiki Anda].',
-       'config-regenerate' => 'Regenerasi LocalSettings.php →',
-       'config-show-table-status' => 'Kueri <code>SHOW TABLE STATUS</code> gagal!',
-       'config-unknown-collation' => "'''Peringatan:''' basis data menggunakan kolasi yang tidak dikenal.",
-       'config-db-web-account' => 'Akun basis data untuk akses web',
-       'config-db-web-help' => 'Masukkan nama pengguna dan sandi yang akan digunakan server web untuk terhubung ke server basis data saat operasi normal wiki.',
-       'config-db-web-account-same' => 'Gunakan akun yang sama seperti untuk instalasi',
-       'config-db-web-create' => 'Buat akun jika belum ada',
-       'config-db-web-no-create-privs' => 'Akun Anda berikan untuk instalasi tidak memiliki hak yang cukup untuk membuat akun.
-Akun yang Anda berikan harus sudah ada.',
-       'config-mysql-engine' => 'Mesin penyimpanan:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-engine-help' => "'''InnoDB''' hampir selalu merupakan pilihan terbaik karena memiliki dukungan konkurensi yang baik.
-
-'''MyISAM''' mungkin lebih cepat dalam instalasi pengguna-tunggal atau hanya-baca.
-Basis data MyISAM cenderung lebih sering rusak daripada basis data InnoDB.",
-       'config-mysql-charset' => 'Set karakter basis data:',
-       'config-mysql-binary' => 'Biner',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "Dalam '''modus biner''', MediaWiki menyimpan teks UTF-8 untuk basis data dalam bidang biner.
-Ini lebih efisien daripada modus UTF-8 MySQL dan memungkinkan Anda untuk menggunakan ragam penuh karakter Unicode.
-
-Dalam '''modus UTF-8''', MySQL akan tahu apa set karakter data dan dapat menampilkan dan mengubahnya sesuai keperluan, tetapi tidak akan mengizinkan Anda menyimpan karakter di atas [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
-       'config-site-name' => 'Nama wiki:',
-       'config-site-name-help' => 'Ini akan muncul di bilah judul peramban dan di berbagai tempat lainnya.',
-       'config-site-name-blank' => 'Masukkan nama situs.',
-       'config-project-namespace' => 'Ruang nama proyek:',
-       'config-ns-generic' => 'Proyek',
-       'config-ns-site-name' => 'Sama seperti nama wiki: $1',
-       'config-ns-other' => 'Lainnya (sebutkan)',
-       'config-ns-other-default' => 'MyWiki',
-       'config-project-namespace-help' => 'Mengikuti contoh Wikipedia, banyak wiki menyimpan halaman kebijakan mereka terpisah dari halaman konten mereka, dalam "\'\'\'ruang nama proyek\'\'\'".
-Semua judul halaman dalam ruang nama ini diawali dengan prefiks tertentu yang dapat Anda tetapkan di sini.
-Biasanya, prefiks ini berasal dari nama wiki, tetapi tidak dapat berisi karakter tanda baca seperti "#" atau ":".',
-       'config-ns-invalid' => 'Ruang nama "<nowiki>$1</nowiki>" yang ditentukan tidak sah.
-Berikan ruang nama proyek lain.',
-       'config-ns-conflict' => 'Ruang nama "<nowiki>$1</nowiki>" yang diberikan berkonflik dengan ruang nama bawaan MediaWiki.
-Tentukan ruang nama proyek yang berbeda.',
-       'config-admin-box' => 'Akun pengurus',
-       'config-admin-name' => 'Nama Anda:',
-       'config-admin-password' => 'Kata sandi:',
-       'config-admin-password-confirm' => 'Kata sandi lagi:',
-       'config-admin-help' => 'Masukkan nama pengguna pilihan Anda di sini, misalnya "Udin Wiki".
-Ini adalah nama yang akan Anda gunakan untuk masuk ke wiki.',
-       'config-admin-name-blank' => 'Masukkan nama pengguna pengurus.',
-       'config-admin-name-invalid' => 'Nama pengguna "<nowiki>$1</nowiki>" yang diberikan tidak sah.
-Berikan nama pengguna lain.',
-       'config-admin-password-blank' => 'Masukkan kata sandi untuk akun pengurus.',
-       'config-admin-password-same' => 'Kata sandi harus tidak sama seperti nama pengguna.',
-       'config-admin-password-mismatch' => 'Dua kata sandi yang Anda masukkan tidak cocok.',
-       'config-admin-email' => 'Alamat surel:',
-       'config-admin-email-help' => 'Masukkan alamat surel untuk memungkinkan Anda menerima surel dari pengguna lain, menyetel ulang sandi, dan mendapat pemberitahuan tentang perubahan atas daftar pantauan Anda. Anda dapat mengosongkan bidang ini.',
-       'config-admin-error-user' => 'Kesalahan internal saat membuat admin dengan nama "<nowiki>$1</nowiki>".',
-       'config-admin-error-password' => 'Kesalahan internal saat membuat sandi untuk admin "<nowiki>$1</nowiki>":<pre>$2</pre>',
-       'config-admin-error-bademail' => 'Anda memasukkan alamat surel yang tidak sah',
-       'config-subscribe' => 'Berlangganan ke [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce milis pengumuman rilis].',
-       'config-subscribe-help' => 'Ini adalah milis bervolume rendah yang digunakan untuk pengumuman rilis, termasuk pengumuman keamanan penting.
-Anda sebaiknya berlangganan dan memperbarui instalasi MediaWiki saat versi baru keluar.',
-       'config-almost-done' => 'Anda hampir selesai!
-Anda sekarang dapat melewati sisa konfigurasi dan menginstal wiki sekarang.',
-       'config-optional-continue' => 'Berikan saya pertanyaan lagi.',
-       'config-optional-skip' => 'Saya sudah bosan, instal saja wikinya.',
-       'config-profile' => 'Profil hak pengguna:',
-       'config-profile-wiki' => 'Wiki tradisional', # Fuzzy
-       'config-profile-no-anon' => 'Pembuatan akun diperlukan',
-       'config-profile-fishbowl' => 'Khusus penyunting terdaftar',
-       'config-profile-private' => 'Wiki pribadi',
-       'config-profile-help' => "Wiki paling baik bekerja jika Anda membiarkan sebanyak mungkin orang untuk menyunting. Dengan MediaWiki, sangat mudah meninjau perubahan terbaru dan mengembalikan kerusakan yang dilakukan oleh pengguna naif atau berbahaya.
-
-Namun, berbagai kegunaan lain dari MediaWiki telah ditemukan, dan kadang tidak mudah untuk meyakinkan semua orang manfaat dari cara wiki. Jadi, Anda yang menentukan.
-
-'''{{int:config-profile-wiki}}''' memungkinkan setiap orang untuk menyunting, bahkan tanpa masuk.
-'''{{int:config-profile-no-anon}}''' menyediakan akuntabilitas tambahan, tetapi dapat mencegah kontributor biasa.
-
-'''{{int:config-profile-fishbowl}}''' memungkinkan pengguna yang disetujui untuk menyunting, tetapi publik dapat melihat halaman, termasuk riwayatnya.
-'''{{int:config-profile-private}}''' hanya memungkinkan pengguna yang disetujui untuk melihat dan menyunting halaman.
-
-Konfigurasi hak pengguna yang lebih kompleks tersedia setelah instalasi. Lihat [//www.mediawiki.org/wiki/Manual:User_rights/id entri manual terkait].", # Fuzzy
-       'config-license' => 'Hak cipta dan lisensi:',
-       'config-license-none' => 'Tidak ada lisensi',
-       'config-license-cc-by-sa' => 'Creative Commons Atribusi Berbagi Serupa',
-       'config-license-cc-by' => 'Creative Commons Atribusi',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Atribusi Nonkomersial Berbagi Serupa',
-       'config-license-cc-0' => 'Creative Commons Zero (Domain Publik)',
-       'config-license-gfdl' => 'Lisensi Dokumentasi Bebas GNU 1.3 atau versi terbaru',
-       'config-license-pd' => 'Domain Umum',
-       'config-license-cc-choose' => 'Pilih lisensi Creative Commons kustom',
-       'config-license-help' => "Banyak wiki publik melisensikan semua kontribusi di bawah [http://freedomdefined.org/Definition lisensi bebas].
-Hal ini membantu menciptakan rasa kepemilikan komunitas dan mendorong kontribusi jangka panjang.
-Hal ini umumnya tidak diperlukan untuk wiki pribadi atau perusahaan.
-
-Jika Anda ingin dapat menggunakan teks dari Wikipedia dan Anda ingin agar Wikipedia dapat menerima teks yang disalin dari wiki Anda, Anda harus memilih'''Creative Commons Attribution Share Alike'''.
-
-Wikipedia sebelumnya menggunakan GNU Free Documentation License.
-Lisensi ini masih sah, namun sulit dipahami.
-Selain itu, sulit untuk menggunakan ulang konten yang dilisensikan di bawah GFDL.",
-       'config-email-settings' => 'Pengaturan surel',
-       'config-enable-email' => 'Aktifkan surel keluar',
-       'config-enable-email-help' => 'Jika Anda ingin mengaktifkan surel, [http://www.php.net/manual/en/mail.configuration.php setelah surel PHP] perlu dikonfigurasi dengan benar.
-Jika Anda tidak perlu fitur surel, Anda dapat menonaktifkannya di sini.',
-       'config-email-user' => 'Aktifkan surel antarpengguna',
-       'config-email-user-help' => 'Memungkinkan semua pengguna untuk saling berkirim surel jika mereka mengaktifkan pilihan tersebut dalam preferensi mereka.',
-       'config-email-usertalk' => 'Aktifkan pemberitahuan perubahan halaman pembicaraan pengguna',
-       'config-email-usertalk-help' => 'Memungkinkan pengguna untuk menerima pemberitahuan tentang perubahan halaman pembicaraan pengguna, jika pilihan tersebut telah diaktifkan dalam preferensi mereka.',
-       'config-email-watchlist' => 'Aktifkan pemberitahuan daftar pantau',
-       'config-email-watchlist-help' => 'Memungkinkan pengguna untuk menerima pemberitahuan tentang perubahan halaman yang ada dalam daftar pantauan mereka, jika pilihan tersebut telah diaktifkan dalam preferensi mereka.',
-       'config-email-auth' => 'Aktifkan otentikasi surel',
-       'config-email-auth-help' => "Jika opsi ini diaktifkan, pengguna harus mengonfirmasi alamat surel dengan menggunakan pranala yang dikirim kepadanya setiap kali mereka mengatur atau mengubahnya.
-Hanya alamat surel yang dikonfirmasi yang dapat menerima surel dari pengguna lain atau surel pemberitahuan perubahan.
-Penetapan opsi ini '''direkomendasikan''' untuk wiki publik karena adanya potensi penyalahgunaan fitur surel.",
-       'config-email-sender' => 'Alamat surel balasan:',
-       'config-email-sender-help' => 'Masukkan alamat surel untuk digunakan sebagai alamat pengirim pada surel keluar.
-Alamat ini akan menerima pentalan.
-Banyak server surel mensyaratkan paling tidak bagian nama domain yang sah.',
-       'config-upload-settings' => 'Pengunggahan gambar dan berkas',
-       'config-upload-enable' => 'Aktifkan pengunggahan berkas',
-       'config-upload-help' => 'Pengunggahan berkas berpotensi memaparkan server Anda dengan risiko keamanan.
-Untuk informasi lebih lanjut, baca [//www.mediawiki.org/wiki/Manual:Security/id manual keamanan].
-
-Untuk mengaktifkan pengunggahan berkas, ubah modus subdirektori <code>images</code> di bawah direktori akar MediaWiki agar server web dapat menulis ke sana.
-Kemudian aktifkan opsi ini.',
-       'config-upload-deleted' => 'Direktori untuk berkas terhapus:',
-       'config-upload-deleted-help' => 'Pilih direktori tempat mengarsipkan berkas yang dihapus.
-Idealnya, direktori ini tidak boleh dapat diakses dari web.',
-       'config-logo' => 'URL logo:',
-       'config-logo-help' => 'Kulit bawaan MediaWiki memberikan ruang untuk logo berukuran 135x160 piksel di atas menu bilah samping.
-Unggah gambar dengan ukuran yang sesuai, lalu masukkan URL di sini.
-
-Jika Anda tidak ingin menyertakan logo, biarkan kotak ini kosong.', # Fuzzy
-       'config-instantcommons' => 'Aktifkan Instant Commons',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons Instant Commons] adalah fitur yang memungkinkan wiki untuk menggunakan gambar, suara, dan media lain dari [//commons.wikimedia.org/ Wikimedia Commons].
-Untuk melakukannya, MediaWiki memerlukan akses ke Internet.
-
-Untuk informasi lebih lanjut tentang fitur ini, termasuk petunjuk tentang cara untuk mengatur untuk wiki selain Wikimedia Commons, baca [//mediawiki.org/wiki/Manual:$wgForeignFileRepos manual].',
-       'config-cc-error' => 'Pemilih lisensi Creative Commons tidak memberikan hasil.
-Masukkan nama lisensi secara manual.',
-       'config-cc-again' => 'Pilih lagi...',
-       'config-cc-not-chosen' => 'Pilih lisensi Creative Commons yang Anda inginkan dan klik "lanjutkan".',
-       'config-advanced-settings' => 'Konfigurasi lebih lanjut',
-       'config-cache-options' => 'Pengaturan untuk penyinggahan objek:',
-       'config-cache-help' => 'Penyinggahan objek digunakan untuk meningkatkan kecepatan MediaWiki dengan menyinggahkan data yang sering digunakan.
-Situs berukuran sedang hingga besar sangat dianjurkan untuk mengaktifkan fitur ini, dan situs kecil juga akan merasakan manfaatnya.',
-       'config-cache-none' => 'Tidak ada penyinggahan (tidak ada fungsi yang dibuang, tetapi kecepatan dapat terpengaruh pada situs wiki yang besar)',
-       'config-cache-accel' => 'Penyinggahan objek PHP (APC, XCache atau WinCache)',
-       'config-cache-memcached' => 'Gunakan Memcached (memerlukan setup dan konfigurasi tambahan)',
-       'config-memcached-servers' => 'Server Memcached:',
-       'config-memcached-help' => 'Daftar alamat IP yang digunakan untuk Memcached.
-Harus dispesifikasikan per baris berikut porta yang akan digunakan. Contoh:
- 127.0.0.1:11211
- 192.168.1.25:1234',
-       'config-memcache-needservers' => 'Anda memilih Memcached sebagai jenis singgahan, tetapi tidak menentukan server apa pun.',
-       'config-memcache-badip' => 'Anda memasukkan alamat IP yang tidak sah untuk Memcached: $1 .',
-       'config-memcache-noport' => 'Anda tidak menentukan suatu porta untuk digunakan oleh server Memcached: $1.
-Jika Anda tidak tahu porta tersebut, porta bawaan adalah 11211.',
-       'config-memcache-badport' => 'Nomor porta Memcached harus antara $1 dan $2.',
-       'config-extensions' => 'Ekstensi',
-       'config-extensions-help' => 'Ekstensi yang tercantum di atas terdeteksi di direktori <code>./extensions</code>.
-
-Ekstensi tersebut mungkin memerlukan konfigurasi tambahan, tetapi Anda dapat mengaktifkannya sekarang.',
-       'config-install-alreadydone' => "'''Peringatan:''' Anda tampaknya telah menginstal MediaWiki dan mencoba untuk menginstalnya lagi.
-Lanjutkan ke halaman berikutnya.",
-       'config-install-begin' => 'Dengan menekan "{{int:config-continue}}", Anda akan memulai instalasi MediaWiki.
-Jika Anda masih ingin membuat perubahan, tekan "{{int:config-back}}".', # Fuzzy
-       'config-install-step-done' => 'selesai',
-       'config-install-step-failed' => 'gagal',
-       'config-install-extensions' => 'Termasuk ekstensi',
-       'config-install-database' => 'Menyiapkan basis data',
-       'config-install-pg-schema-not-exist' => 'Skema PostgreSQL tidak tersedia.',
-       'config-install-pg-schema-failed' => 'Pembuatan tabel gagal.
-Pastikan bahwa pengguna "$1" dapat menulis ke skema "$2".',
-       'config-install-pg-commit' => 'Melakukan perubahan',
-       'config-install-pg-plpgsql' => 'Memeriksa bahasa PL / pgSQL',
-       'config-pg-no-plpgsql' => 'Anda perlu menginstal bahasa PL/pgSQL pada basis data $1',
-       'config-pg-no-create-privs' => 'Akun yang Anda tetapkan untuk instalasi tidak memiliki hak yang cukup untuk membuat akun.',
-       'config-install-user' => 'Membuat pengguna basis data',
-       'config-install-user-alreadyexists' => 'Pengguna "$1" sudah ada',
-       'config-install-user-create-failed' => 'Pembuatan pengguna "$1" gagal: $2',
-       'config-install-user-grant-failed' => 'Memberikan izin untuk pengguna "$1" gagal: $2',
-       'config-install-tables' => 'Membuat tabel',
-       'config-install-tables-exist' => "'''Peringatan''': Tabel MediaWiki sepertinya sudah ada.
-Melompati pembuatan.",
-       'config-install-tables-failed' => "'''Kesalahan''': Pembuatan tabel gagal dengan kesalahan berikut: $1",
-       'config-install-interwiki' => 'Mengisi tabel bawaan antarwiki',
-       'config-install-interwiki-list' => 'Tidak dapat menemukan berkas <code>interwiki.list</code>.',
-       'config-install-interwiki-exists' => "'''Peringatan''': Tabel antarwiki tampaknya sudah memiliki entri.
-Mengabaikan daftar bawaan.",
-       'config-install-stats' => 'Inisialisasi statistik',
-       'config-install-keys' => 'Membuat kunci rahasia',
-       'config-insecure-keys' => "'''Peringatan:''' {{PLURAL:$2|Suatu|Beberapa}} kunci aman ($1) yang dibuat selama instalasi {{PLURAL:$2|tidak|tidak}} benar-benar aman. Pertimbangkan untuk mengubah {{PLURAL:$2|kunci|kunci-kunci}} tersebut secara manual.",
-       'config-install-sysop' => 'Membuat akun pengguna pengurus',
-       'config-install-subscribe-fail' => 'Tidak dapat berlangganan mediawiki-announce: $1',
-       'config-install-subscribe-notpossible' => 'cURL tidak diinstal dan allow_url_fopen tidak tersedia.',
-       'config-install-mainpage' => 'Membuat halaman utama dengan konten bawaan',
-       'config-install-extension-tables' => 'Pembuatan tabel untuk ekstensi yang diaktifkan',
-       'config-install-mainpage-failed' => 'Tidak dapat membuat halaman utama: $1',
-       'config-install-done' => "'''Selamat!'''
-Anda telah berhasil menginstal MediaWiki.
-
-Penginstal telah membuat berkas <code>LocalSettings.php</code>.
-Berkas itu berisi semua konfigurasi Anda.
-
-Anda perlu mengunduh berkas itu dan meletakkannya di direktori instalasi wiki (direktori yang sama dengan index.php). Pengunduhan akan dimulai secara otomatis.
-
-Jika pengunduhan tidak terjadi, atau jika Anda membatalkannya, Anda dapat mengulangi pengunduhan dengan mengeklik tautan berikut:
-
-$3
-
-'''Catatan''': Jika Anda tidak melakukannya sekarang, berkas konfigurasi yang dihasilkan ini tidak akan tersedia lagi setelah Anda keluar dari proses instalasi tanpa mengunduhnya.
-
-Setelah melakukannya, Anda dapat '''[$2 memasuki wiki Anda]'''.",
-       'config-download-localsettings' => 'Unduh <code>LocalSettings.php</code>',
-       'config-help' => 'bantuan',
-       'config-nofile' => 'Berkas "$1" tidak dapat ditemukan. Mungkin sudah dihapus?',
-       'mainpagetext' => "'''MediaWiki telah terpasang dengan sukses'''.",
-       'mainpagedocfooter' => 'Silakan baca [//www.mediawiki.org/wiki/Help:Contents/id Panduan Pengguna] untuk cara penggunaan perangkat lunak wiki ini.
-
-== Memulai penggunaan ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings/id Daftar pengaturan konfigurasi]
-* [//www.mediawiki.org/wiki/Manual:FAQ/id Daftar pertanyaan yang sering diajukan mengenai MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Milis rilis MediaWiki]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Terjemahkan MediaWiki ke bahasa Anda]',
-);
-
-/** Interlingue (Interlingue)
- */
-$messages['ie'] = array(
-       'mainpagetext' => "'''Software del wiki installat con successe.'''",
-);
-
-/** Igbo (Igbo)
- * @author Ukabia
- */
-$messages['ig'] = array(
-       'config-back' => '← Laàzú',
-       'config-continue' => 'Gawazie →',
-       'config-page-language' => 'Ásụ̀sụ̀',
-       'config-page-name' => 'Áhà',
-       'config-page-install' => 'Sụ̀ímé',
-       'config-restart' => 'Eeh, bìdówárí ya.',
-       'config-admin-password' => 'Okwúngáfè:',
-       'config-admin-password-confirm' => 'Okwúngáfè mgbe ozor:',
-       'mainpagetext' => "'''MediaWiki a banyélé nke oma.'''",
-       'mainpagedocfooter' => "Gbàkpó [//meta.wikimedia.org/wiki/Help:Contents Ǹdù Ọ'bànifé] màkà ụmá màkà Í jí ngwa nsónùsòrò bu wiki.
-
-== I bídó ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Ndétu ndósé ihe]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce wéfù ndétu nke ozi MediaWiki]", # Fuzzy
-);
-
-/** Iloko (Ilokano)
- */
-$messages['ilo'] = array(
-       'mainpagetext' => "'''Sibaballigi a nainstolar ti MediaWiki.'''",
-);
-
-/** Ido (Ido)
- * @author Wyvernoid
- */
-$messages['io'] = array(
-       'mainpagetext' => "'''MediaWiki instalesis sucese.'''",
-       'mainpagedocfooter' => "Videz la [//meta.wikimedia.org/wiki/Help:Contents Guidilo por Uzanti] por informo pri uzar la wiki programo.
-
-== Komencar ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Listo di ''Configuration setting'']
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki OQQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki nova versioni posto-listo]", # Fuzzy
-);
-
-/** Icelandic (íslenska)
- */
-$messages['is'] = array(
-       'mainpagetext' => "'''Uppsetning á MediaWiki heppnaðist.'''",
-       'mainpagedocfooter' => 'Ráðfærðu þig við [//meta.wikimedia.org/wiki/Help:Contents Notandahandbókina] fyrir frekari upplýsingar um notkun wiki-hugbúnaðarins.
-
-== Fyrir byrjendur ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Listi yfir uppsetningarstillingar]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki Algengar spurningar MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Póstlisti MediaWiki-útgáfa]', # Fuzzy
-);
-
-/** Italian (italiano)
- * @author Beta16
- * @author Darth Kule
- * @author F. Cosoleto
- * @author Gianfranco
- * @author Karika
- * @author 아라
- */
-$messages['it'] = array(
-       'config-desc' => 'Il programma di installazione per MediaWiki',
-       'config-title' => 'Installazione MediaWiki $1',
-       'config-information' => 'Informazioni',
-       'config-localsettings-upgrade' => 'È stato rilevato un file <code>LocalSettings.php</code>.
-Per aggiornare questa installazione, si prega di inserire il valore di <code>$wgUpgradeKey</code> nella casella qui sotto.
-Lo potete trovare in <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'È stato rilevato un file <code>LocalSettings.php</code>.
-Per aggiornare questa installazione, eseguire <code>update.php</code>',
-       'config-localsettings-key' => 'Chiave di aggiornamento:',
-       'config-localsettings-badkey' => 'La chiave che hai fornito non è corretta.',
-       'config-upgrade-key-missing' => "È stata rilevata un'installazione esistente di MediaWiki.
-Per aggiornare questa installazione, si prega di inserire la seguente riga nella parte inferiore del tuo <code>LocalSettings.php</code>:
-
-$1",
-       'config-localsettings-incomplete' => 'Il file <code>LocalSettings.php</code> esistente sembra essere incompleto.
-La variabile $1 non è impostata.
-Cambia <code>LocalSettings.php</code> in modo che questa variabile sia impostata e fai clic su "{{int:Config-continue}}".',
-       'config-localsettings-connection-error' => 'Si è verificato un errore durante la connessione al database utilizzando le impostazioni specificate in <code>LocalSettings.php</code> o <code>AdminSettings.php</code>. Si prega di correggere queste impostazioni e riprovare.
-
-$1',
-       'config-session-error' => "Errore nell'avvio della sessione: $1",
-       'config-session-expired' => 'I dati della sessione sembrano essere scaduti.
-Le sessioni sono configurate per una durata di $1.
-Puoi aumentarla impostando <code>session.gc_maxlifetime</code> nel file php.ini.
-Riavvia il processo di installazione.',
-       'config-no-session' => 'I dati della sessione sono andati persi!
-Controlla il tuo file php.ini ed assicurati che <code>session.save_path</code> è impostato su una directory appropriata.',
-       'config-your-language' => 'La tua lingua:',
-       'config-your-language-help' => 'Seleziona una lingua da utilizzare durante il processo di installazione.',
-       'config-wiki-language' => 'La lingua del wiki:',
-       'config-wiki-language-help' => 'Seleziona la lingua che verrà prevalentemente usata nel wiki.',
-       'config-back' => '← Indietro',
-       'config-continue' => 'Continua →',
-       'config-page-language' => 'Lingua',
-       'config-page-welcome' => 'Benvenuti in MediaWiki!',
-       'config-page-dbconnect' => 'Connessione al database',
-       'config-page-upgrade' => "Aggiornamento dell'installazione esistente",
-       'config-page-dbsettings' => 'Impostazioni del database',
-       'config-page-name' => 'Nome',
-       'config-page-options' => 'Opzioni',
-       'config-page-install' => 'Installa',
-       'config-page-complete' => 'Completa!',
-       'config-page-restart' => 'Riavvio installazione',
-       'config-page-readme' => 'Leggimi',
-       'config-page-releasenotes' => 'Note di versione',
-       'config-page-upgradedoc' => 'Aggiornamento',
-       'config-page-existingwiki' => 'Wiki esistenti',
-       'config-help-restart' => 'Vuoi cancellare tutti i dati salvati che hai inserito e riavviare il processo di installazione?',
-       'config-restart' => 'Sì, riavvia',
-       'config-welcome' => "=== Controllo dell'ambiente ===
-Saranno eseguiti controlli di base per vedere se questo ambiente è adatto per l'installazione di MediaWiki.
-Ricordati di includere queste informazioni se chiedi assistenza su come completare l'installazione.",
-       'config-sidebar' => '* [//www.mediawiki.org Pagina principale MediaWiki]
-* [//www.mediawiki.org/wiki/Aiuto:Guida ai contenuti per utenti]
-* [//www.mediawiki.org/wiki/Manuale:Guida ai contenuti per admin]
-* [//www.mediawiki.org/wiki/Manuale:FAQ FAQ]
-----
-* <doclink href=Readme>Leggimi</doclink>
-* <doclink href=ReleaseNotes>Note di versione</doclink>
-* <doclink href=Copying>Copie</doclink>
-* <doclink href=UpgradeDoc>Aggiornamenti</doclink>',
-       'config-env-good' => "L'ambiente è stato controllato.
-È possibile installare MediaWiki.",
-       'config-env-bad' => "L'ambiente è stato controllato.
-Non è possibile installare MediaWiki.",
-       'config-env-php' => 'PHP $1 è installato.',
-       'config-env-php-toolow' => 'PHP $1 è installato.
-Tuttavia, MediaWiki richiede PHP $2 o superiore.',
-       'config-outdated-sqlite' => "'''Attenzione''': è presente SQLite $1 mentre è richiesta la versione $2, SQLite non sarà disponibile.",
-       'config-no-fts3' => "'''Attenzione''': SQLite è compilato senza il [//sqlite.org/fts3.html modulo FTS3], le funzionalità di ricerca non saranno disponibili su questo backend.",
-       'config-xml-bad' => 'Il modulo XML di PHP è mancante.
-MediaWIki necessita di funzioni presenti in questo modulo e non funzionerà con la configurazione corrente.
-Se si sta eseguendo Mandrake, installare il paccketto php-xml.',
-       'config-pcre' => 'Il modulo per il supporto PCRE sembra essere mancante.
-MediaWiki necessita di questo modulo per funzinare, che fornisce funzioni per le espressioni regolari Perl-compatibili.',
-       'config-pcre-no-utf8' => "'''Errore''': Il modulo PCRE di PHP sembra essere stato compilato senza il supporto PCRE_UTF8, ma MediaWiki lo richiede per funzionare correttamente.",
-       'config-memory-raised' => 'Il valore <code>memory_limit</code> di PHP è $1, aumentato a $2.',
-       'config-memory-bad' => "''Attenzione:''' Il valore di <code>memory_limit</code> di PHP è $1.
-Probabilmente è troppo basso.
-L'installazione potrebbe non riuscire!",
-       'config-ctype' => "'''Errore''': PHP deve essere compilato con il supporto per l'[http://www.php.net/manual/it/ctype.installation.php estensione Ctype].",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] è installato',
-       'config-apc' => '[http://www.php.net/apc APC] è installato',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] è installato',
-       '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.
-Le miniature delle immagini saranno presenti se gli upload vengono abilitati.',
-       'config-no-scaling' => 'Impossibile trovare GD library o ImageMagick.
-Le miniature delle immagini saranno disabilitate.',
-       'config-no-uri' => "'''Errore:''' Impossibile determinare l'URI attuale.
-Installazione interrotta.",
-       'config-no-cli-uri' => "'''Attenzione''': --scriptpath non specificato, si utilizza il valore predefinito: <code>$1</code>.",
-       'config-using-server' => 'Nome server in uso "<nowiki>$1</nowiki>".',
-       'config-using-uri' => 'URL del server in uso "<nowiki>$1$2</nowiki>".',
-       'config-brokenlibxml' => 'Il tuo sistema ha una combinazione di versioni di PHP e libxml2 che è difettosa e che può provocare un danneggiamento non visibile di dati in MediaWiki ed in altre applicazioni per il web.
-Aggiorna a PHP 5.2.9 o successivo, ed a libxml2 2.7.3 o successivo ([//bugs.php.net/bug.php?id=45996 il bug è studiato dal lato PHP]).
-Installazione interrotta.',
-       'config-using531' => 'MediaWiki non può essere usato con il PHP $1 a causa di un bug che coinvolge i parametri di riferimento a <code>__call()</code>.
-Aggiorna a PHP 5.3.2 o superiore, o fai un downgrade tornando a PHP 5.3.0 per risolvere il problema.
-Installazione interrotta.',
-       'config-db-type' => 'Tipo di database:',
-       'config-db-host' => 'Host del database:',
-       'config-db-host-help' => 'Se il server del tuo database è su un server diverso, immetti qui il nome dell\'host o il suo indirizzo IP.
-
-Se stai utilizzando un web hosting condiviso, il tuo hosting provider dovrebbe fornirti il nome host corretto nella sua documentazione.
-
-Se stai installando su un server Windows con uso di MySQL, l\'uso di "localhost" potrebbe non funzionare correttamente come nome del server. In caso di problemi, prova a impostare "127.0.0.1" come indirizzo IP locale.
-
-Se usi PostgreSQL, lascia questo campo vuoto per consentire di connettersi tramite un socket Unix.',
-       'config-db-host-oracle' => 'TNS del database:',
-       'config-db-wiki-settings' => 'Identifica questo wiki',
-       'config-db-name' => 'Nome del database:',
-       'config-db-name-help' => 'Scegli un nome che identifica il tuo wiki.
-Non deve contenere spazi.
-
-Se utilizzi un web hosting condiviso, il tuo hosting provider o ti fornisce uno specifico nome di database da utilizzare, oppure ti consentirà di creare il database tramite un pannello di controllo.',
-       '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-prefix-help' => "Se hai bisogno di condividere un database tra più wiki, o tra MediaWiki e un'altra applicazione web, puoi scegliere di aggiungere un prefisso a tutti i nomi di tabella, per evitare conflitti.
-Non utilizzare spazi.
-
-Solitamente, questo campo viene lasciato vuoto.",
-       'config-db-charset' => 'Set di caratteri del database',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binario',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 con compatibilità UTF-8',
-       'config-mysql-old' => 'MySQL $1 o una versione successiva è necessaria, rilevata la $2.',
-       'config-db-port' => 'Porta del database:',
-       'config-db-schema' => 'Schema per MediaWiki:',
-       'config-db-schema-help' => 'Questo schema in genere andrà bene.
-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-support-info' => 'MediaWiki supporta i seguenti sistemi di database:
-
-$1
-
-Se fra quelli elencati qui sotto non vedi il sistema di database che vorresti utilizzare, seguire le istruzioni linkate sopra per abilitare il supporto.',
-       'config-support-mysql' => '* $1 è la configurazione preferibile per MediaWiki ed è quella meglio supportata ([http://www.php.net/manual/en/mysql.installation.php come compilare PHP con supporto MySQL])',
-       '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-invalid-db-name' => 'Nome di database "$1" non valido.
-Utilizza soltanto caratteri ASCII come lettere (a-z, A-Z), numeri (0-9), sottolineatura (_) e trattini (-).',
-       'config-invalid-db-prefix' => 'Prefisso database "$1" non valido.
-Utilizza soltanto caratteri ASCII come lettere (a-z, A-Z), numeri (0-9), sottolineatura (_) e trattini (-).',
-       'config-connection-error' => '$1.
-
-Controlla host, nome utente e password e prova ancora.',
-       'config-db-sys-create-oracle' => "Il programma di installazione supporta solo l'utilizzo di un account SYSDBA per la creazione di un nuovo account.",
-       'config-db-sys-user-exists-oracle' => 'L\'account utente "$1" esiste già. SYSDBA può essere usato solo per la creazione di un nuovo account!',
-       'config-postgres-old' => 'PostgreSQL $1 o una versione successiva è necessaria, rilevata la $2.',
-       'config-sqlite-name-help' => 'Scegli un nome che identifichi il tuo wiki.
-Non utilizzare spazi o trattini.
-Questo servirà per il nome del file di dati SQLite.',
-       'config-sqlite-mkdir-error' => 'Errore durante la creazione della directory dati "$1".
-Controlla la posizione e riprova.',
-       'config-sqlite-dir-unwritable' => 'Impossibile scrivere nella directory "$1".
-Modifica le autorizzazioni in modo che il webserver possa scrivere in essa e riprova.',
-       'config-sqlite-connection-error' => '$1.
-
-Controlla la directory dati e il nome del database qui sotto, poi riprova.',
-       'config-sqlite-readonly' => 'Il file <code>$1</code> non è scrivibile.',
-       'config-sqlite-cant-create-db' => 'Impossibile creare il file di database <code>$1</code> .',
-       'config-sqlite-fts3-downgrade' => 'Il PHP è mancante del supporto FTS3, declassamento tabelle in corso',
-       '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-show-table-status' => 'La query <code>SHOW TABLE STATUS</code> è fallita!',
-       'config-unknown-collation' => "'''Attenzione:''' il database utilizza regole di confronto non riconosciute.",
-       '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 del wiki: $1',
-       'config-ns-other' => 'Altro (specificare)',
-       'config-ns-other-default' => 'MyWiki',
-       'config-admin-box' => 'Account amministratore',
-       'config-admin-name' => 'Tuo nome:',
-       'config-admin-password' => 'Password:',
-       'config-admin-password-confirm' => 'Ripeti la password:',
-       'config-admin-help' => 'Inserisci il tuo nome utente scelto qui, ad esempio "Mario Rossi".
-Questo è il nome che userai per accedere al wiki.',
-       'config-admin-name-blank' => "Inserisci un nome utente per l'amministratore.",
-       'config-admin-name-invalid' => 'Il nome utente specificato "<nowiki>$1</nowiki>" non è valido.
-Specificare un nome utente diverso.',
-       'config-admin-password-blank' => "Inserisci una password per l'account di amministratore.",
-       'config-admin-password-same' => 'La password non deve essere uguale al nome utente.',
-       'config-admin-password-mismatch' => 'Le password inserite non coincidono tra loro.',
-       'config-admin-email' => 'Indirizzo e-mail:',
-       'config-admin-error-bademail' => 'È stato inserito un indirizzo email non valido.',
-       'config-subscribe-help' => 'Si tratta di una mailing list a basso traffico dedicata agli annunci di nuove versioni, compresi importanti segnalazioni riguardanti la sicurezza.
-È consigliato iscriversi e aggiornare la proprio installazione di MediaWiki quando una nuova versione viene resa pubblica.',
-       'config-subscribe-noemail' => "Hai provato ad iscriverti alla mailing list dedicata agli annunci delle nuove versioni senza fornire un indirizzo email.
-Inserire un indirizzo email se si desidera effettuare l'iscrizione alla mailing list.",
-       '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',
-       'config-profile-private' => 'Wiki privata',
-       'config-license' => 'Copyright e licenza:',
-       'config-license-none' => 'Nessun piè di pagina per la licenza',
-       'config-license-cc-by-sa' => 'Creative Commons Attribuzione-Condividi allo stesso modo',
-       'config-license-cc-by' => 'Creative Commons Attribuzione',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Attribuzione-Non commerciale-Condividi allo stesso modo',
-       'config-license-cc-0' => 'Creative Commons Zero (pubblico dominio)',
-       'config-license-gfdl' => 'GNU Free Documentation License 1.3 o versioni successive',
-       'config-license-pd' => 'Pubblico dominio',
-       'config-license-cc-choose' => 'Seleziona una delle licenze Creative Commons',
-       'config-license-help' => "Molti wiki pubblici rilasciano i loro contributi con una [http://freedomdefined.org/Definition licenza libera]. Questo aiuta a creare un senso di proprietà condivisa nella comunità e incoraggia a contribuire a lungo termine. Non è generalmente necessario per un wiki privato o aziendale.
-
-Se vuoi usare testi da Wikipedia, o desideri che Wikipedia possa essere in grado di accettare testi copiati dal tuo wiki, dovresti scegliere '''Creative Commons Attribution Share Alike'''.
-
-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:',
-       'config-instantcommons' => 'Abilita Instant Commons',
-       '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>.',
-       'config-install-stats' => 'Inizializzazione delle statistiche',
-       'config-install-keys' => 'Generazione delle chiavi segrete',
-       'config-install-sysop' => "Creazione dell'account utente per l'amministratore",
-       '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',
-       'config-nofile' => 'Il file "$1" non può essere trovato. È stato eliminato?',
-       'mainpagetext' => "'''Installazione di MediaWiki completata correttamente.'''",
-       'mainpagedocfooter' => "Consultare la [//meta.wikimedia.org/wiki/Aiuto:Sommario Guida utente] per maggiori informazioni sull'uso di questo software wiki.
-
-== Per iniziare ==
-I seguenti collegamenti sono in lingua inglese:
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Impostazioni di configurazione]
-* [//www.mediawiki.org/wiki/Manual:FAQ Domande frequenti su MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailing list annunci MediaWiki]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Localizza MediaWiki nella tua lingua]",
-);
-
-/** Japanese (日本語)
- * @author Aphaia
- * @author Fryed-peach
- * @author Iwai.masaharu
- * @author Mizusumashi
- * @author Ninomy
- * @author Ohgi
- * @author Shirayuki
- * @author Whym
- * @author Yanajin66
- * @author 青子守歌
- * @author 아라
- */
-$messages['ja'] = array(
-       'config-desc' => 'MediaWiki のインストーラー',
-       'config-title' => 'MediaWiki $1 のインストール',
-       'config-information' => '情報',
-       'config-localsettings-upgrade' => 'ファイル <code>LocalSettings.php</code> を検出しました。
-インストールされているものをアップグレードするには、<code>$wgUpgradeKey</code> の値を以下の欄に入力してください。
-この値は <code>LocalSettings.php</code> 内にあります。',
-       'config-localsettings-cli-upgrade' => 'ファイル <code>LocalSettings.php</code> を検出しました。
-インストールされているものをアップグレードするには、<code>update.php</code> を実行してください',
-       'config-localsettings-key' => 'アップグレード キー:',
-       'config-localsettings-badkey' => '与えられたキーが間違っています',
-       'config-upgrade-key-missing' => 'MediaWiki が既にインストールされていることを検出しました。
-インストールされているものをアップグレードするために、以下の行を <code>LocalSettings.php</code> の末尾に挿入してください:
-
-$1',
-       'config-localsettings-incomplete' => '既存の <code>LocalSettings.php</code> の内容は不完全のようです。
-変数 $1 が設定されていません。
-<code>LocalSettings.php</code> 内でこの変数を設定して、「{{int:Config-continue}}」をクリックしてください。',
-       'config-localsettings-connection-error' => '<code>LocalSettings.php</code> または <code>AdminSettings.php</code> で指定した設定を使用してデータベースに接続する際にエラーが発生しました。
-設定を修正してから再度試してください。
-
-$1',
-       'config-session-error' => 'セッションの開始エラー: $1',
-       'config-session-expired' => 'セッションの有効期限が切れたようです。
-セッションの有効期間は$1に設定されています。
-php.iniの<code>session.gc_maxlifetime</code>を設定することで、この問題を改善できます。
-インストール作業を再起動させてください。',
-       'config-no-session' => 'セッションのデータが消失しました!
-php.ini 内で <code>session.save_path</code> が適切なディレクトリに設定されていることを確認してください。',
-       'config-your-language' => 'あなたの言語:',
-       'config-your-language-help' => 'インストール作業に使用する言語を選択してください。',
-       'config-wiki-language' => 'ウィキの言語:',
-       'config-wiki-language-help' => 'ウィキで主に書き込まれる言語を選択してください。',
-       'config-back' => '← 戻る',
-       'config-continue' => '続行 →',
-       'config-page-language' => '言語',
-       'config-page-welcome' => 'MediaWiki へようこそ!',
-       'config-page-dbconnect' => 'データベースに接続',
-       'config-page-upgrade' => '既存のインストールを更新',
-       'config-page-dbsettings' => 'データベースの設定',
-       'config-page-name' => '名前',
-       'config-page-options' => 'オプション',
-       'config-page-install' => 'インストール',
-       'config-page-complete' => '完了!',
-       'config-page-restart' => 'インストールを再起動',
-       'config-page-readme' => 'お読みください',
-       'config-page-releasenotes' => 'リリースノート',
-       'config-page-copying' => 'コピー',
-       'config-page-upgradedoc' => 'アップグレード',
-       'config-page-existingwiki' => '既存のウィキ',
-       'config-help-restart' => '入力した保存データをすべて消去して、インストール作業を再起動しますか?',
-       'config-restart' => 'はい、再起動します',
-       'config-welcome' => '=== 環境の確認 ===
-基本的な確認では、現在の環境が MediaWiki のインストールに適しているかを確認します。
-インストール方法について助けが必要になった場合は、必ずこの確認結果を添えてください。',
-       'config-copyright' => '=== 著作権および規約 ===
-$1
-
-この作品はフリーソフトウェアです。あなたは、フリーソフトウェア財団の発行するGNU一般公衆利用許諾書 (GNU General Public License) (バージョン2、またはそれ以降のライセンス) の規約に基づき、このライブラリを再配布および改変できます。
-
-この作品は、有用であることを期待して配布されていますが、商用あるいは特定の目的に適するかどうかも含めて、暗黙的にも、一切保証されません。
-詳しくは、GNU一般公衆利用許諾書をご覧ください。
-
-あなたはこのプログラムと共に、<doclink href=Copying>GNU一般公衆利用許諾契約書の複製</doclink>を一部受け取ったはずです。受け取っていない場合は、フリーソフトウェア財団 (宛先は the Free Software Foundation, Inc., 59Temple Place, Suite 330, Boston, MA 02111-1307 USA) まで請求してください。',
-       'config-sidebar' => '* [//www.mediawiki.org MediaWikiのホーム]
-* [//www.mediawiki.org/wiki/Help:Contents 利用者向け案内]
-* [//www.mediawiki.org/wiki/Manual:Contents 管理者向け案内]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]
-----
-* <doclink href=Readme>お読みください</doclink>
-* <doclink href=ReleaseNotes>リリースノート</doclink>
-* <doclink href=Copying>コピー</doclink>
-* <doclink href=UpgradeDoc>アップグレード</doclink>',
-       'config-env-good' => '環境の確認が終わりました。
-MediaWikiをインストールできます。',
-       'config-env-bad' => '環境の確認が終わりました。
-MediaWikiのインストールはできません。',
-       'config-env-php' => 'PHP $1がインストールされています。',
-       'config-env-php-toolow' => 'PHP $1 がインストールされています。
-しかし、MediaWikiには PHP $2 以上が必要です。',
-       'config-unicode-using-utf8' => 'Unicode正規化に、Brion Vibberのutf8_normalize.soを使用。',
-       'config-unicode-using-intl' => 'Unicode正規化に[http://pecl.php.net/intl intl PECL 拡張機能]を使用。',
-       'config-unicode-pure-php-warning' => "'''警告:''' Unicode 正規化の処理に [http://pecl.php.net/intl intl PECL 拡張機能]を利用できないため、処理が遅いピュア PHP の実装を代わりに使用しています。
-高トラフィックのサイトを運営する場合は、[//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode 正規化]をお読みください。",
-       'config-unicode-update-warning' => "'''警告:''' インストールされているバージョンの Unicode 正規化ラッパーは、[http://site.icu-project.org/ ICU プロジェクト]のライブラリの古いバージョンを使用しています。
-Unicode を少しでも利用する可能性がある場合は、[//www.mediawiki.org/wiki/Unicode_normalization_considerations アップグレード]してください。",
-       'config-no-db' => '適切なデータベース ドライバーが見つかりませんでした! PHP にデータベース ドライバーをインストールする必要があります。
-以下の種類のデータベースに対応しています: $1
-
-共有サーバーを使用している場合は、適切なデータベース ドライバーのインストールを、サーバーの管理者に依頼してください。
-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> オプションが有効になっています。'''
-'''可能なら無効化してください。'''
-MediaWiki は動作しますが、サーバーの潜在的なセキュリティ脆弱性が露呈されます。",
-       'config-magic-quotes-runtime' => "'''致命的エラー: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] が動作しています!'''
-このオプションは、予期せずデータ入力を破壊します。
-このオプションを無効化しない限り、MediaWiki のインストールや使用はできません。",
-       'config-magic-quotes-sybase' => "'''致命的エラー: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] が動作しています!'''
-このオプションは、予期せずデータ入力を破壊します。
-このオプションを無効化しない限り、MediaWiki のインストールや使用はできません。",
-       'config-mbstring' => "'''致命的エラー: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] が動作しています!'''
-このオプションは、エラーを引き起こし、予期せずデータを破壊するおそれがあります。
-このオプションを無効化しない限り、MediaWiki のインストールや使用はできません。",
-       'config-ze1' => "'''致命的エラー: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] が動作しています!'''
-このオプションは、MediaWiki において深刻なバグを引き起こします。
-このオプションを無効化しない限り、MediaWiki のインストールや使用はできません。",
-       'config-safe-mode' => "'''警告:''' PHPの[http://www.php.net/features.safe-mode セーフモード]が有効になっています。
-特に、ファイルのアップロードや<code>math</code>機能で、問題が発生するおそれがあります。",
-       'config-xml-bad' => 'PHPのXMLモジュールが不足しています。
-MediaWikiは、このモジュールの関数を必要としているため、この構成では動作しません。
-Mandrakeを実行している場合、php-xmlパッケージをインストールしてください。',
-       'config-pcre' => 'PCREをサポートしているモジュールが不足しているようです。
-MediaWikiは、Perl互換の正規表現関数の動作が必要です。',
-       'config-pcre-no-utf8' => "'''致命的エラー:''' PHP の PCRE が PCRE_UTF8 対応なしでコンパイルされているようです。
-MediaWiki を正しく動作させるには、UTF-8 対応が必要です。",
-       'config-memory-raised' => 'PHPの<code>memory_limit</code>は$1で、$2に引き上げられました。',
-       'config-memory-bad' => "'''警告:''' PHPの<code>memory_limit</code>に$1に設定されています。
-この値はおそらく小さすぎます。
-インストールが失敗するおそれがあります!",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] がインストール済み',
-       'config-apc' => '[http://www.php.net/apc APC] がインストール済み',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] がインストール済み',
-       'config-no-cache' => "'''警告:''' [http://www.php.net/apc APC]、[http://xcache.lighttpd.net/ XCache]、[http://www.iis.net/download/WinCacheForPhp WinCache] のいずれも見つかりませんでした。
-オブジェクトのキャッシュは有効化されません。",
-       '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も見つかりませんでした。
-画像のサムネイル生成は無効になります。',
-       'config-no-uri' => "'''エラー:''' 現在のURIを決定できませんでした。
-インストールは中止されました。",
-       'config-no-cli-uri' => "'''警告:''' --scriptpath が指定されていないため、既定値 <code>$1</code> を使用します。",
-       'config-using-server' => 'サーバー名「<nowiki>$1</nowiki>」を使用しています。',
-       'config-using-uri' => 'サーバー URL「<nowiki>$1$2</nowiki>」を使用しています。',
-       'config-uploads-not-safe' => "'''警告:''' アップロードの既定ディレクトリ <code>$1</code> に、任意のスクリプト実行に関する脆弱性があります。
-MediaWiki はアップロードされたファイルのセキュリティ上の脅威を確認しますが、アップロードを有効化する前に、[//www.mediawiki.org/wiki/Manual:Security#Upload_security このセキュリティ上の脆弱性を解決する]ことを強く推奨します。",
-       'config-brokenlibxml' => 'このシステムで使われているPHPとlibxml2のバージョンのこの組み合わせにはバグがあります。具体的には、MediaWikiやその他のウェブアプリケーションでhiddenデータが破損する可能性があります。
-PHPを5.2.9かそれ以降のバージョンに、libxml2を2.7.3かそれ以降のバージョンにアップグレードしてください([//bugs.php.net/bug.php?id=45996 PHPでのバグ情報])。
-インストールを終了します。',
-       'config-using531' => 'PHP$1は<code>__call()</code>の引数参照に関するバグのため、MediaWikiと互換性がありません。
-PHP5.3.2以降に更新するか、この([//bugs.php.net/bug.php?id=50394 PHPに提出されたバグ])を修正するためにPHP5.3.0へ戻してください。
-インストールは中止されました。',
-       'config-suhosin-max-value-length' => 'Suhosin がインストールされており、GET パラメーターの <code>length</code> を $1 バイトに制限しています。
-MediaWiki の ResourceLoader コンポーネントはこの制限を回避しますが、パフォーマンスは低下します。
-可能な限り、<code>php.ini</code> で <code>suhosin.get.max_value_length</code> を 1024 以上に設定し、同じ値を <code>LocalSettings.php</code> 内で <code>$wgResourceLoaderMaxQueryLength</code> に設定してください。',
-       'config-db-type' => 'データベースの種類:',
-       'config-db-host' => 'データベースのホスト:',
-       'config-db-host-help' => '異なるサーバー上にデータベースサーバーがある場合、ホスト名またはIPアドレスをここに入力してください。
-
-もし、共有されたウェブホスティングを使用している場合、ホスティングプロバイダーは正確なホスト名を解説しているはずです。
-
-WindowsでMySQLを使用している場合に、「localhost」は、サーバー名としてはうまく働かないでしょう。もしそのような場合は、ローカルIPアドレスとして「127.0.0.1」を試してみてください。
-
-PostgreSQLを使用している場合、UNIXソケットで接続するにはこの欄を空欄のままにしてください。',
-       'config-db-host-oracle' => 'データベース TNS:',
-       'config-db-host-oracle-help' => '有効な[http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm ローカル接続名]を入力してください。tnsnames.ora ファイルは、このインストール先から参照できる場所に置いてください。<br />ご使用中のクライアント ライブラリが 10g 以降の場合、[http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect] ネーミング メソッドを使用できます。',
-       'config-db-wiki-settings' => 'このウィキの識別情報',
-       'config-db-name' => 'データベース名:',
-       'config-db-name-help' => 'このウィキを識別する名前を入力してください。
-空白を含めることはできません。
-
-共有ウェブホストを利用している場合、ホスティングプロバイダーが特定の使用可能なデータベース名を提供するか、あるいは管理パネルからデータベースを作成できるようにしているでしょう。',
-       'config-db-name-oracle' => 'データベースのスキーマ:',
-       'config-db-install-account' => 'インストールで使用する利用者アカウント',
-       'config-db-username' => 'データベースのユーザー名:',
-       'config-db-password' => 'データベースのパスワード:',
-       'config-db-password-empty' => '新しいデータベースの利用者名 $1 のパスワードを入力してください。
-パスワードを設定せずにユーザーを作成できる場合もありますが、安全ではありません。',
-       'config-db-install-username' => 'インストール中にデータベースへの接続で使用するユーザー名を入力してください。
-これは MediaWiki アカウントの利用者名のことではありません。あなたのデータベースでのユーザー名です。',
-       'config-db-install-password' => 'インストール中にデータベースへの接続で使用するパスワードを入力してください。
-これは MediaWiki アカウントのパスワードのことではありません。あなたのデータベースでのパスワードです。',
-       'config-db-install-help' => 'インストール作業中にデータベースに接続するための利用者名とパスワードを入力してください。',
-       'config-db-account-lock' => 'インストール作業終了後も同じ利用者名とパスワードを使用する',
-       'config-db-wiki-account' => 'インストール作業終了後の利用者アカウント',
-       'config-db-wiki-help' => '通常のウィキ操作中にデータベースへの接続する時に利用する利用者名とパスワードを入力してください。
-アカウントが存在せず、インストールのアカウントに十分な権限がある場合は、この利用者アカウントは、ウィキを操作する上で最小限の権限を持った状態で作成されます。',
-       'config-db-prefix' => 'データベース テーブルの接頭辞:',
-       'config-db-prefix-help' => 'データベースを複数のウィキ間、あるいはMediaWikiと他のウェブアプリケーションで共有する必要がある場合、衝突を避けるために、すべてのテーブル名に接頭辞を付ける必要があります。
-空白は使用できません。
-
-このフィールドは、通常は空のままです。',
-       'config-db-charset' => 'データベースの文字セット',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 バイナリ',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 後方互換 UTF-8',
-       'config-charset-help' => "'''警告:''' MySQL 4.1+ で'''後方互換 UTF-8''' を使用している状態で、<code>mysqldump</code> でデータベースをバックアップすると、すべての非 ASCII 文字が破壊されてしまい、バックアップが不可逆的に破損してしまいます!
-
-'''バイナリ モード'''では、MediaWiki は、UTF-8 テキストをデータベースのバイナリ フィールドに格納します。
-これは、MySQL の UTF-8 モードより効率的で、Unicode 文字の全範囲を利用できるようになります。
-'''UTF-8 モード'''では、MySQL は、データ内で使用している文字集合を知っているため、適切に表現や変換ができますが、
-[//ja.wikipedia.org/wiki/%E5%9F%BA%E6%9C%AC%E5%A4%9A%E8%A8%80%E8%AA%9E%E9%9D%A2 基本多言語面]の外にある文字を格納できません。",
-       'config-mysql-old' => 'MySQL $1 以降が必要です。ご使用中の MySQL は $2 です。',
-       'config-db-port' => 'データベースのポート:',
-       'config-db-schema' => 'MediaWiki のスキーマ:',
-       'config-db-schema-help' => '通常はこのスキーマで問題ありません。
-必要な場合のみ変更してください。',
-       'config-pg-test-error' => "データベース '''$1''' に接続できません: $2",
-       'config-sqlite-dir' => 'SQLite データ ディレクトリ:',
-       'config-sqlite-dir-help' => "SQLite は単一のファイル内にすべてのデータを格納しています。
-
-指定したディレクトリは、インストール時にウェブ サーバーが書き込めるようにしておく必要があります。
-
-このディレクトリはウェブからアクセス'''不可能'''である必要があります。PHP ファイルがある場所には配置できないのはこのためです。
-
-インストーラーは <code>.htaccess</code> ファイルにも書き込みます。しかし、これが失敗した場合は、誰かが生のデータベースにアクセスできてしまいます。
-データベースは、生のデータ (メールアドレス、パスワードのハッシュ値) の他、削除された版、その他ウィキ上の制限されているデータを含んでいます。
-
-例えば <code>/var/lib/mediawiki/yourwiki</code> のように、別の場所にデータベースを配置することを検討してください。",
-       'config-oracle-def-ts' => '既定のテーブル領域:',
-       'config-oracle-temp-ts' => '一時的なテーブル領域:',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-support-info' => 'MediaWiki は以下のデータベース システムに対応しています:
-
-$1
-
-使用しようとしているデータベース システムが下記の一覧にない場合は、上記リンク先の手順に従ってインストールしてください。',
-       'config-support-mysql' => '* $1はMediaWikiの主要な対象であり、最もサポートされています ([http://www.php.net/manual/en/mysql.installation.php MySQLに対応したPHPをコンパイルする方法])',
-       'config-support-postgres' => '* $1は、MySQLの代替として人気があるオープンソースのデータベースシステムです ([http://www.php.net/manual/en/pgsql.installation.php PostgreSQLに対応したPHPをコンパイルする方法])',
-       'config-support-sqlite' => '* $1は、良くサポートされている、軽量データベースシステムです。([http://www.php.net/manual/ja/pdo.installation.php SQLiteに対応したPHPをコンパイルする方法]、PDOを使用)',
-       'config-support-oracle' => '* $1は商業企業のデータベースです。([http://www.php.net/manual/en/oci8.installation.php OCI8サポートなPHPをコンパイルする方法])',
-       'config-header-mysql' => 'MySQL の設定',
-       'config-header-postgres' => 'PostgreSQL の設定',
-       'config-header-sqlite' => 'SQLite の設定',
-       '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 です。
-「TNS 名」「Easy Connect」文字列のいずれかを使用してください ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle ネーミング メソッド])',
-       'config-invalid-db-name' => '「$1」は無効なデータベース名です。
-半角の英数字 (a-z、A-Z、0-9)、アンダースコア (_)、ハイフン (-) のみを使用してください。',
-       'config-invalid-db-prefix' => '「$1」は無効なデータベース接頭辞です。
-半角の英数字 (a-z、A-Z、0-9)、アンダースコア (_)、ハイフン (-) のみを使用してください。',
-       'config-connection-error' => '$1。
-
-以下のホスト名、ユーザー名、パスワードを確認してから再度試してください。',
-       'config-invalid-schema' => '「$1」は MediaWiki のスキーマとして無効です。
-半角の英数字 (a-z、A-Z、0-9)、アンダースコア (_) のみを使用してください。',
-       'config-postgres-old' => 'PostgreSQL $1 以降が必要です。ご使用中の PostgreSQL は $2 です。',
-       'config-sqlite-name-help' => 'あなたのウェキと同一性のある名前を選んでください。
-空白およびハイフンは使用しないでください。
-SQLiteのデータファイル名として使用されます。',
-       'config-sqlite-parent-unwritable-group' => 'データ ディレクトリ <code><nowiki>$1</nowiki></code> を作成できません。ウェブ サーバーは親ディレクトリ <code><nowiki>$2</nowiki></code> に書き込めませんでした。
-
-インストーラーは、ウェブ サーバーの実行ユーザーを特定しました。
-続行するには、ディレクトリ <code><nowiki>$3</nowiki></code> に書き込めるようにしてください。
-Unix または Linux であれば、以下を実行してください:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'データ ディレクトリ <code><nowiki>$1</nowiki></code> を作成できません。ウェブ サーバーは、親ディレクトリ <code><nowiki>$2</nowiki></code> に書き込めませんでした。
-
-インストーラーは、ウェブ サーバーの実行ユーザーを特定できませんでした。
-続行するには、ディレクトリ <code><nowiki>$3</nowiki></code> に、ウェブ サーバー (と、あらゆる人々!) がグローバルに書き込めるようにしてください。
-Unix または Linux では、以下を実行してください:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'データ ディレクトリ「$1」を作成する際にエラーが発生しました。
-場所を確認してから、再度試してください。',
-       'config-sqlite-dir-unwritable' => 'ディレクトリ「$1」に書き込めません。
-ウェブ サーバーが書き込めるようにパーミッションを変更してから、再度試してください。',
-       'config-sqlite-connection-error' => '$1。
-
-データ ディレクトリおよびデータベース名を確認してから、再度試してください。',
-       'config-sqlite-readonly' => 'ファイル <code>$1</code> に書き込めません。',
-       'config-sqlite-cant-create-db' => 'データベース ファイル <code>$1</code> を作成できませんでした。',
-       'config-sqlite-fts3-downgrade' => 'PHP が FTS3 に対応していないため、テーブルをダウングレードしています',
-       'config-can-upgrade' => 'このデータベースには MediaWiki テーブルがあります。
-これらのテーブルを MediaWiki $1 にアップグレードするには、「続行」をクリックしてください。',
-       'config-upgrade-done' => "更新は完了しました。
-
-[$1 ウィキを使い始める]ことができます。
-
-<code>LocalSettings.php</code> ファイルを再生成したい場合は、下のボタンを押してください。
-ウィキに問題がある場合を除き、再生成は'''推奨されません'''。",
-       'config-upgrade-done-no-regenerate' => 'アップグレードが完了しました。
-
-[$1 ウィキの使用を開始]することができます。',
-       'config-regenerate' => 'LocalSettings.php を再生成→',
-       'config-show-table-status' => '<code>SHOW TABLE STATUS</code> クエリが失敗しました!',
-       'config-unknown-collation' => "'''警告:''' データベースは認識されない照合を使用しています。",
-       'config-db-web-account' => 'ウェブアクセスのためのデータベースアカウント',
-       'config-db-web-help' => 'ウィキの通常の操作の際に、ウェブ サーバーがデータベース サーバーに接続できるように、ユーザー名とパスワードを指定してください。',
-       'config-db-web-account-same' => 'インストール作業と同じアカウントを使用する',
-       'config-db-web-create' => 'アカウントが存在しない場合は作成する',
-       'config-db-web-no-create-privs' => 'あなたがインストールのために定義したアカウントは、アカウント作成のための特権としては不充分です。
-あなたがここで指定したアカウントは既に存在している必要があります。',
-       'config-mysql-engine' => 'ストレージ エンジン:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-engine-help' => "'''InnoDB'''は、並行処理のサポートに優れているので、ほとんどの場合において最良の選択肢です。
-
-'''MyISAM'''は、利用者が1人の場合、あるいは読み込み専用でインストールする場合に、より処理が早くなるでしょう。
-ただし、MyISAMのデータベースは、InnoDBより高頻度で破損する傾向があります。",
-       'config-mysql-charset' => 'データベースの文字セット:',
-       'config-mysql-binary' => 'バイナリ',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "'''バイナリ モード'''では、MediaWiki は、UTF-8 テキストをデータベースのバイナリ フィールドに格納します。
-これは、MySQL の UTF-8 モードより効率的で、Unicode 文字の全範囲を利用できるようになります。
-
-'''UTF-8 モード'''では、MySQL は、データ内で使用している文字集合を知っているため、適切に表現や変換ができますが、
-[//ja.wikipedia.org/wiki/%E5%9F%BA%E6%9C%AC%E5%A4%9A%E8%A8%80%E8%AA%9E%E9%9D%A2 基本多言語面]の外にある文字を格納できません。",
-       'config-site-name' => 'ウィキ名:',
-       'config-site-name-help' => 'この事象はブラウザーのタイトルバーと他のさまざまな場所に現れる。',
-       'config-site-name-blank' => 'サイト名を入力してください。',
-       'config-project-namespace' => 'プロジェクト名前空間:',
-       'config-ns-generic' => 'プロジェクト',
-       'config-ns-site-name' => 'ウィキ名と同じ: $1',
-       'config-ns-other' => 'その他 (指定してください)',
-       'config-ns-other-default' => 'マイウィキ',
-       'config-project-namespace-help' => "ウィキペディアの例に従い、多くのウィキは、コンテンツのページとは分離したポリシーページを「'''プロジェクトの名前空間'''」に持っています。
-この名前空間内のページのページ名はすべて特定の接頭辞で始まります。それをここで指定できます。
-通常、この接頭辞はウィキ名に基づきますが、「#」や「:」のような区切り文字を含めることはできません。",
-       'config-ns-invalid' => '指定した名前空間「<nowiki>$1</nowiki>」は無効です。
-別のプロジェクト名前空間を指定してください。',
-       'config-admin-box' => '管理アカウント',
-       'config-admin-name' => '名前:',
-       'config-admin-password' => 'パスワード:',
-       'config-admin-password-confirm' => 'パスワードの再入力:',
-       'config-admin-help' => '希望するユーザー名をここに入力してください (例:「Joe Bloggs」)。
-この名前でこのウィキにログインすることになります。',
-       'config-admin-name-blank' => '管理者のユーザー名を入力してください。',
-       'config-admin-name-invalid' => '指定したユーザー名「<nowiki>$1</nowiki>」は無効です。
-別のユーザー名を指定してください。',
-       'config-admin-password-blank' => '管理者アカウントのパスワードを入力してください。',
-       'config-admin-password-same' => 'ユーザー名と同じパスワードは使用できません。',
-       'config-admin-password-mismatch' => '入力された2つのパスワードが一致しません。',
-       'config-admin-email' => 'メールアドレス:',
-       'config-admin-email-help' => 'メールアドレスを入力してください。他の利用者からのメールの受け取り、パスワードのリセット、ウォッチリストに登録したページの更新通知に使用します。空欄のままにすることもできます。',
-       'config-admin-error-user' => '「<nowiki>$1</nowiki>」という名前の管理者を作成する際に内部エラーが発生しました。',
-       'config-admin-error-password' => '管理者「<nowiki>$1</nowiki>」のパスワードを設定する際に内部エラーが発生しました: <pre>$2</pre>',
-       'config-admin-error-bademail' => '無効なメールアドレスを入力しました。',
-       'config-subscribe' => '[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce リリース告知のメーリングリスト]を購読する。',
-       'config-subscribe-help' => 'これは、リリースの告知 (重要なセキュリティに関する案内を含む) に使用される、流量が少ないメーリングリストです。
-このメーリングリストを購読して、新しいバージョンが出た場合にMediaWikiを更新してください。',
-       'config-almost-done' => 'これでほぼ終わりました!
-残りの設定を飛ばして、ウィキを今すぐインストールできます。',
-       'config-optional-continue' => '私にもっと質問してください。',
-       'config-optional-skip' => 'もう飽きてしまったので、とにかくウィキをインストールしてください。',
-       'config-profile' => '利用者権限のプロファイル:',
-       'config-profile-wiki' => '公開ウィキ',
-       'config-profile-no-anon' => 'アカウントの作成が必要',
-       'config-profile-fishbowl' => '承認された編集者のみ',
-       'config-profile-private' => '非公開ウィキ',
-       'config-profile-help' => "ウィキは、できるだけ多くの人が編集できるようにすると最も優れた働きをします。
-MediaWikiでは、最近の更新を確認しやすく、神経質な、または悪意を持った利用者からの損害を簡単に差し戻せます。
-
-しかし一方で、MediaWikiは、さらにさまざまな形態での利用も優れていると言われています。また、時には、すべての人にウィキ手法の利点を説得させるのは容易ではないかもしれません。
-そこで、選択肢があります。
-
-「'''{{int:config-profile-wiki}}'''」モデルでは、ログインしなくても、誰でも編集できます。
-「'''{{int:config-profile-no-anon}}'''」なウィキでは、各編集に対してより強い説明責任を付与しますが、気軽な投稿を阻害するかもしれません。
-
-「'''{{int:config-profile-fishbowl}}'''」シナリオでは、承認された利用者のみが編集でき、一般の人はページ (とその履歴) を閲覧できます。
-「'''{{int:config-profile-private}}'''」では、承認された利用者のみがページを閲覧でき、そのグループが編集できます。
-
-より複雑な利用者権限の設定は、インストール後に設定できます。詳細は[//www.mediawiki.org/wiki/Manual:User_rights 関連するマニュアル]をご覧ください。",
-       'config-license' => '著作権とライセンス:',
-       'config-license-none' => 'ライセンスのフッターを付けない',
-       'config-license-cc-by-sa' => 'クリエイティブ・コモンズ 表示-継承',
-       'config-license-cc-by' => 'クリエイティブ・コモンズ 表示',
-       'config-license-cc-by-nc-sa' => 'クリエイティブ・コモンズ 表示-非営利-継承',
-       'config-license-gfdl' => 'GNU フリー文書利用許諾契約書 1.3 以降',
-       'config-license-pd' => 'パブリック・ドメイン',
-       'config-license-cc-choose' => 'その他のクリエイティブ・コモンズ・ライセンスを選択する',
-       'config-license-help' => "多くの公開ウィキでは、すべての寄稿物が[http://freedomdefined.org/Definition フリーライセンス]のもとに置かれています。
-こうすることにより、コミュニティによる共有の感覚が生まれ、長期的な寄稿が促されます。
-私的ウィキや企業のウィキでは、通常、フリーライセンスにする必要はありません。
-
-ウィキペディアにあるテキストをあなたのウィキで利用し、逆にあなたのウィキにあるテキストをウィキペディアに複製することを許可したい場合には、'''クリエイティブ・コモンズ 表示-継承'''を選択するべきです。
-
-ウィキペディアは以前、GNUフリー文書利用許諾契約書(GFDL)を使用していました。
-GFDLは有効なライセンスですが、内容を理解するのは困難です。
-また、GFDLのもとに置かれているコンテンツの再利用も困難です。",
-       'config-email-settings' => 'メールの設定',
-       'config-enable-email' => 'メール送信を有効にする',
-       'config-enable-email-help' => 'メールを使用したい場合は、[http://www.php.net/manual/en/mail.configuration.php PHP のメール設定]が正しく設定されている必要があります。
-メールの機能を使用しない場合は、ここで無効にすることができます。',
-       'config-email-user' => '利用者間のメールを有効にする',
-       'config-email-user-help' => '設定で有効になっている場合、すべてのユーザーがお互いにメールのやりとりを行うことを許可する。',
-       'config-email-usertalk' => 'ユーザーのトークページでの通知を有効にする',
-       'config-email-usertalk-help' => '設定で有効にしている場合は、ユーザーのトークページの変更の通知を受けることをユーザーに許可する。',
-       'config-email-watchlist' => 'ウォッチリストの通知を有効にする',
-       'config-email-watchlist-help' => '利用者が設定で有効にしている場合、閲覧されたページに関する通知を受け取ることを許可する。',
-       'config-email-auth' => 'メールの認証を有効にする',
-       'config-email-auth-help' => "この選択肢を有効にすると、利用者がメールアドレスを設定あるいは変更したときに送信されるリンクにより、そのアドレスを確認しなければならなくなります。
-認証済みのアドレスだけが、他の利用者からのメールや、変更通知のメールを受け取ることができます。
-公開ウィキでは、メール機能による潜在的な不正利用の防止のため、この選択肢を設定することが'''推奨'''されます。",
-       'config-email-sender' => '返信先メールアドレス:',
-       'config-email-sender-help' => '送信メールで返信先として使用するメールアドレスを入力してください。
-このアドレスは、宛先不明の場合の通知の宛先になります。
-多くのメールサーバーでは、少なくともドメイン名部分は有効である必要があります。',
-       'config-upload-settings' => '画像およびファイルのアップロード',
-       'config-upload-enable' => 'ファイルのアップロードを有効にする',
-       'config-upload-help' => 'ファイルのアップロードは、あなたのサーバーをセキュリティ上の潜在的な危険に晒します。
-この詳細は、マニュアルの [//www.mediawiki.org/wiki/Manual:Security security section] をお読みください。
-
-ファイルのアップロードを有効にするには、MediaWiki のルート ディレクトリ内の <code>images</code> サブ ディレクトリのモードを変更します。これにより、ウェブ サーバーがそこに書き込めるようになります。
-そして、このオプションを有効にしてください。',
-       'config-upload-deleted' => '削除されたファイルのためのディレクトリ:',
-       'config-upload-deleted-help' => '削除されるファイルを保存するためのディレクトリを選択してください。
-これがウェブからアクセスできないことが理想です。',
-       'config-logo' => 'ロゴ のURL:',
-       'config-logo-help' => 'MediaWiki の既定の外装では、サイドバー上部に135x160ピクセルのロゴ用の余白があります。
-適切なサイズの画像をアップロードして、その URL をここに入力してください。
-
-ロゴが相対パスの場合は、<code>$wgStylePath</code> や <code>$wgScriptPath</code> を使用できます。
-
-ロゴが不要の場合は、この欄を空白のままにしてください。',
-       'config-instantcommons' => 'Instant Commons 機能を有効にする',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons Instant Commons] は、[//commons.wikimedia.org/ ウィキメディア・コモンズ]のサイトにある画像、音声、その他のメディアをウィキ上で利用できるようにする機能です。
-これを使用するには、MediaWiki がインターネットに接続できる必要があります。
-
-ウィキメディア・コモンズ以外のウィキを同様に設定する手順など、この機能に関する詳細な情報は、[//mediawiki.org/wiki/Manual:$wgForeignFileRepos マニュアル]をご覧ください。',
-       'config-cc-error' => 'クリエイティブ・コモンズ・ライセンスの選択器から結果が得られませんでした。
-ライセンスの名前を手動で入力してください。',
-       'config-cc-again' => 'もう一度選択してください...',
-       'config-cc-not-chosen' => '希望するクリエイティブ・コモンズのライセンスを選択して、「続行」をクリックしてください。',
-       'config-advanced-settings' => '高度な設定',
-       'config-cache-options' => 'オブジェクトのキャッシュの設定:',
-       'config-cache-help' => 'オブジェクトのキャッシュを使用すると、頻繁に使用するデータをキャッシュするため MediaWiki の動作速度を改善できます。
-中〜大規模サイトではこれを有効にすることを強くお勧めします。小規模サイトでも同様に効果があります。',
-       'config-cache-none' => 'キャッシングしない(機能は取り払われます、しかもより大きなウィキサイト上でスピードの問題が発生します)',
-       'config-cache-accel' => 'PHP オブジェクト キャッシュ (APC、XCache、WinCache のいずれか)',
-       'config-cache-memcached' => 'memcached を使用 (追加の設定が必要)',
-       'config-memcached-servers' => 'memcached サーバー:',
-       'config-memcached-help' => 'Memcachedを使用するIPアドレスの一覧。
-カンマ区切りで、利用する特定のポートの指定が必要です。例:
-127.0.0.1:11211
-192.168.1.25:1234',
-       'config-memcache-noport' => 'Memcached サーバー $1 で使用するポート番号を指定していません。
-ポート番号が分からない場合、既定値は 11211 です。',
-       'config-memcache-badport' => 'Memcached のポート番号は $1 から $2 の範囲にしてください。',
-       'config-extensions' => '拡張機能',
-       'config-extensions-help' => '<code>./extensions</code>ディレクトリ内で、上記リストの拡張機能が発見されました。
-
-これらは更に多くの設定を要求するかもしれませんが、今これらを有効にすることができます。',
-       'config-install-alreadydone' => "'''警告:''' 既にMediaWikiがインストール済みで、再びインストールし直そうとしています。
-次のページへ進んでください。",
-       'config-install-begin' => '「{{int:config-continue}}」を押すと、MediaWiki のインストールを開始できます。
-変更したい設定がある場合は、「{{int:config-back}}」を押してください。',
-       'config-install-step-done' => '実行',
-       'config-install-step-failed' => '失敗した',
-       'config-install-extensions' => '拡張機能を含む',
-       'config-install-database' => 'データベースの構築',
-       'config-install-schema' => 'スキーマの作成',
-       'config-install-pg-schema-not-exist' => 'PostgreSQL スキーマがありません。',
-       'config-install-pg-schema-failed' => 'テーブルの作成に失敗しました。
-利用者「$1」がスキーマ「$2」に書き込めるようにしてください。',
-       'config-install-pg-commit' => '変更を送信',
-       'config-pg-no-plpgsql' => 'データベース $1 内に PL/pgSQL 言語をインストールする必要があります。',
-       'config-install-user' => 'データベースユーザーの作成',
-       'config-install-user-alreadyexists' => 'ユーザー「$1」は既に存在します',
-       'config-install-user-create-failed' => 'ユーザー「$1」の作成に失敗しました: $2',
-       'config-install-user-grant-failed' => 'ユーザー「$1」に許可を与えることに失敗しました: $2',
-       'config-install-user-missing' => '指定したユーザー「$1」は存在しません。',
-       'config-install-user-missing-create' => '指定したユーザー「$1」は存在しません。
-アカウントを作成する場合は、下の「アカウント作成」をクリックしてください。',
-       'config-install-tables' => 'テーブルの作成',
-       'config-install-tables-exist' => "'''警告:''' MediaWiki テーブルは既に存在するようです。
-作成を省略します。",
-       'config-install-tables-failed' => "'''エラー:''' テーブルの作成が、以下のエラーにより失敗しました: $1",
-       'config-install-interwiki' => '既定のウィキ間テーブルの導入',
-       'config-install-interwiki-list' => 'ファイル <code>interwiki.list</code> から読み取れませんでした。',
-       'config-install-interwiki-exists' => "'''警告:''' ウィキ間テーブルは既に登録されているようです。
-既定のテーブルを無視します。",
-       'config-install-stats' => '統計情報の初期化',
-       'config-install-keys' => '秘密鍵の生成',
-       'config-install-sysop' => '管理者のアカウントの作成',
-       'config-install-mainpage' => 'メインページを既定の内容で作成',
-       'config-install-mainpage-failed' => 'メインページを挿入できませんでした: $1',
-       'config-install-done' => "'''おめでとうございます!'''
-MediaWikiのインストールに成功しました。
-
-<code>LocalSettings.php</code>ファイルが生成されました。
-このファイルはすべての設定を含んでいます。
-
-これをダウンロードして、ウィキをインストールした基準ディレクトリ (index.phpと同じディレクトリ) に設置する必要があります。ダウンロードは自動的に開始されるはずです。
-
-ダウンロードが開始されていない場合、またはダウンロードをキャンセルした場合は、下記のリンクをクリックしてダウンロードを再開できます:
-
-$3
-
-'''注意:''' この生成された設定ファイルをダウンロードせずにインストールを終了すると、このファイルは利用できなくなります。
-
-上記の作業が完了すると、'''[$2 ウィキに入る]'''ことができます。",
-       'config-download-localsettings' => '<code>LocalSettings.php</code> をダウンロード',
-       'config-help' => 'ヘルプ',
-       'config-nofile' => 'ファイル「$1」が見つかりませんでした。削除された可能性があります。',
-       'mainpagetext' => "'''MediaWiki のインストールに成功しました。'''",
-       'mainpagedocfooter' => 'ウィキソフトウェアの使い方に関する情報は[//meta.wikimedia.org/wiki/Help:Contents 利用者案内]を参照してください。
-
-== はじめましょう ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings/ja 設定の一覧]
-* [//www.mediawiki.org/wiki/Manual:FAQ/ja MediaWiki よくある質問と回答]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki リリース情報メーリングリスト]
-* [//www.mediawiki.org/wiki/Localisation/ja MediaWiki のあなたの言語へのローカライズ]',
-);
-
-/** Jamaican Creole English (Patois)
- * @author Yocahuna
- */
-$messages['jam'] = array(
-       'mainpagetext' => "'''MediaWiki don instaal soksesful.'''",
-       'mainpagedocfooter' => "Kansolt di [//meta.wikimedia.org/wiki/Help:Contents User's Guide] fi infamieshan ou fi yuuz di wiki saafwier.
-
-== Taatop ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
-);
-
-/** Jutish (jysk)
- * @author Huslåke
- */
-$messages['jut'] = array(
-       'mainpagetext' => "'''MediaWiki er nu installeret.'''",
-       'mainpagedocfooter' => "Se vores engelskspråĝede [//meta.wikimedia.org/wiki/MediaWiki_localisation dokumentåsje tilpasnenge'm åf æ brugergrænseflade] og [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide æ brugervejlednenge] før åplysnenger åpsætnenge'm og anvendelse.", # Fuzzy
-);
-
-/** Javanese (Basa Jawa)
- */
-$messages['jv'] = array(
-       'mainpagetext' => "'''Prangkat empuk wiki wis suksès dipasang.'''",
-       'mainpagedocfooter' => "Mangga maca [//meta.wikimedia.org/wiki/Help:Contents User's Guide] kanggo katrangan luwih langkung prakara panggunan prangkat empuk wiki
-== Miwiti panggunan  ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Daftar pangaturan préférènsi]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Milis rilis MediaWiki]", # Fuzzy
-);
-
-/** Georgian (ქართული)
- * @author David1010
- */
-$messages['ka'] = array(
-       'config-information' => 'ინფორმაცია',
-       'config-your-language' => 'თქვენი ენა:',
-       'config-wiki-language' => 'ვიკის ენა:',
-       'config-back' => '← უკან',
-       'config-continue' => 'გაგრძელება →',
-       'config-page-language' => 'ენა',
-       'config-page-welcome' => 'კეთილი იყოს თქვენი მობრძანება მედიავიკიში!',
-       'config-page-dbconnect' => 'მონაცემთა ბაზასთან დაკავშირება',
-       'config-page-dbsettings' => 'მონაცემთა ბაზის კონფიგურაცია',
-       'config-page-name' => 'სახელი',
-       'config-page-options' => 'პარამეტრები',
-       'config-page-install' => 'ინსტალაცია',
-       'config-page-complete' => 'დასრულებულია!',
-       'config-page-restart' => 'ინსტალაციის თავიდან დაწყება',
-       'config-page-readme' => 'წამიკითხე',
-       'config-page-copying' => 'ლიცენზია',
-       'config-page-upgradedoc' => 'განახლება',
-       'config-restart' => 'დიახ, თავიდან დაიწყეთ',
-       'config-sidebar' => '* [//www.mediawiki.org მედიავიკის ვებ-გვერდი]
-* [//www.mediawiki.org/wiki/Help:Contents/ka მომხმარებლების დახმარება]
-* [//www.mediawiki.org/wiki/Manual:Contents/ka ადმინისტრატორების დახმარება]
-* [//www.mediawiki.org/wiki/Manual:FAQ/ka FAQ]
-----
-* <doclink href=Readme>წამიკითხე</doclink>
-* <doclink href=ReleaseNotes>ინფორმაცია გამოშვებაზე</doclink>
-* <doclink href=Copying>ლიცენზია</doclink>
-* <doclink href=UpgradeDoc>განახლება</doclink>',
-       'config-db-type' => 'მონაცემთა ბაზის ტიპი:',
-       'config-db-host-oracle' => 'მონაცემთა ბაზის TNS:',
-       'config-db-name' => 'მონაცემთა ბაზის სახელი:',
-       'config-db-name-oracle' => 'მონაცემთა ბაზის სქემა:',
-       'config-db-username' => 'მონაცემთა ბაზის მომხმარებლის სახელი:',
-       'config-db-password' => 'მონაცემთა ბაზის პაროლი:',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 ორობითი',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-db-port' => 'მონაცემთა ბაზის პორტი:',
-       'config-db-schema' => 'მედიავიკის სქემა:',
-       'config-header-mysql' => 'MySQL-ის პარამეტრები',
-       'config-header-postgres' => 'PostgreSQL-ის პარამეტრები',
-       'config-header-sqlite' => 'SQLite-ის პარამეტრები',
-       'config-header-oracle' => 'Oracle-ის პარამეტრები',
-       'config-invalid-db-type' => 'არასწორი მონაცემთა ბაზის ტიპი',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-binary' => 'ორობითი',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'ვიკის სახელი:',
-       'config-site-name-blank' => 'შეიყვანეთ ვებ-გვერდის სახელი.',
-       'config-project-namespace' => 'პროექტის სახელთა სივრცე:',
-       'config-ns-generic' => 'პროექტი',
-       'config-ns-other' => 'სხვა (მიუთითეთ)',
-       'config-ns-other-default' => 'ჩემი ვიკი',
-       'config-admin-box' => 'ადმინისტრატორის ანგარიში',
-       'config-admin-name' => 'თქვენი სახელი:',
-       'config-admin-password' => 'პაროლი:',
-       'config-admin-password-confirm' => 'პაროლი ხელმეორედ:',
-       'config-admin-name-blank' => 'შეიყვანეთ ადმინისტრატორის მომხმარებლის სახელი.',
-       'config-admin-email' => 'ელ. ფოსტის მისამართი:',
-       'config-profile' => 'მომხმარებელთა უფლებების პროფილი:',
-       'config-profile-wiki' => 'ღია ვიკი',
-       'config-profile-private' => 'დახურული ვიკი',
-       'config-license' => 'საავტორო უფლები და ლიცენზია:',
-       'config-license-cc-by-sa' => 'Creative Commons Attribution Share Alike',
-       'config-license-cc-by' => 'Creative Commons Attribution',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Attribution Non-Commercial Share Alike',
-       'config-license-cc-0' => 'Creative Commons Zero (საზოგადოებრივი საკუთრება)',
-       'config-license-gfdl' => 'GNU Free Documentation License 1.3 ან უფრო გვიანი',
-       'config-license-pd' => 'საზოგადოებრივი საკუთრება',
-       'config-license-cc-choose' => 'აირჩიეთ Creative Commons-ის ლიცენზიიდან ერთ-ერთი',
-       'config-email-settings' => 'ელ. ფოსტის პარამეტრები',
-       'config-upload-settings' => 'სურათებისა და ფაილების ატვირთვა',
-       'config-upload-enable' => 'ფაილების ატვირთვის ჩართვა',
-       'config-logo' => 'ლოგოს URL:',
-       'config-cc-again' => 'აირჩიეთ კიდევ ერთხელ...',
-       'config-extensions' => 'გაფართოებები',
-       'config-install-step-done' => 'შესრულდა',
-       'config-install-step-failed' => 'ვერ მოხერხდა',
-       'config-install-tables' => 'ცხრილების შექმნა',
-       'config-install-interwiki-list' => 'ვერ მოიძებნა ფაილი <code>interwiki.list</code>.',
-       'config-download-localsettings' => '<code>LocalSettings.php</code>-ის გადმოწერა',
-       'config-help' => 'დახმარება',
-       'mainpagetext' => "'''მედიავიკი წარმატებით ჩაიტვირთა.'''",
-       'mainpagedocfooter' => 'ვიკი პროგრამის გამოყენების ინფორმაციისთვის იხილეთ [//meta.wikimedia.org/wiki/Help:Contents მომხმარებლის მეგზური].
-
-== დაწყება ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings კონფიგურაციის მაჩვენებლების სია]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce მედიავიკის გამოცემის დაგზავნის სია]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources მედიავიკის ლოკალიზება თქვენ ენაზე]',
-);
-
-/** Kara-Kalpak (Qaraqalpaqsha)
- */
-$messages['kaa'] = array(
-       'mainpagetext' => "'''MediaWiki tabıslı ornatıldı.'''",
-       'mainpagedocfooter' => "Wiki bag'darlamasın qollanıw haqqındag'i mag'lıwmat usın [//meta.wikimedia.org/wiki/Help:Contents Paydalanıwshılar qollanbasınan] ken'es alın'.
-
-== Baslaw ushın ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Konfiguratsiya sazlaw dizimi]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWikidin' Ko'p Soralatug'ın Sorawları]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki haqqında xat tarqatıw dizimi]", # Fuzzy
-);
-
-/** Адыгэбзэ (Адыгэбзэ)
- * @author Bogups
- */
-$messages['kbd-cyrl'] = array(
-       'mainpagetext' => "'''«MediaWiki» узыншу хэгъува.'''",
-       'mainpagedocfooter' => 'Мы виким и лэжьыгъэ хъыбархэр здэбгъуэтыфынур [//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 дэӀэпыкъуэгъу тхылъым].
-
-
-== Къыщхьэпэгъуэ хъуфынухэр ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Зэгъэзэхуэгъуэ гуэрэхэм я тхылъ];
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-м упщӀэ нахъыбу ятхэмрэ я жэуапхэмрэ];
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-м и версиэ щӀэуэ къэжахэм я къэӀохугъуэ].', # Fuzzy
-);
-
-/** Khowar (کھوار)
- * @author Rachitrali
- */
-$messages['khw'] = array(
-       'mainpagetext' => "'''میڈیاوکیو کامیابیو سورا چالو کورونو بیتی شیر۔.'''",
-);
-
-/** Kirmanjki (Kırmancki)
- * @author Mirzali
- */
-$messages['kiu'] = array(
-       'mainpagetext' => "'''MediaWiki fist ra ser, vıraziya.'''",
-       'mainpagedocfooter' => "Serba melumatê gurenaena ''wiki software''i [//meta.wikimedia.org/wiki/Help:Contents İdarê karberi] de mıracaet ke.
-
-== Gamê verêni ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista ayarunê vırastene]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki de ÇZP]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki ra lista serbest-daena postey]", # Fuzzy
-);
-
-/** Kazakh (Arabic script) (قازاقشا (تٴوتە)‏)
- */
-$messages['kk-arab'] = array(
-       'mainpagetext' => "'''مەدىياۋىيكىي بۋماسى ٴساتتى ورناتىلدى.'''",
-       'mainpagedocfooter' => 'ۋىيكىي باعدارلامالىق جاساقتاماسىن قالاي قولداناتىن اقپاراتى ٴۇشىن [//meta.wikimedia.org/wiki/Help:Contents پايدالانۋشىلىق نۇسقاۋلارىنان] كەڭەس الىڭىز.
-
-== باستاۋ ٴۇشىن ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings باپتالىم قالاۋلارىنىڭ ٴتىزىمى]
-* [//www.mediawiki.org/wiki/Manual:FAQ مەدىياۋىيكىيدىڭ جىيى قويىلعان ساۋالدارى]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce مەدىياۋىيكىي شىعۋ تۋرالى حات تاراتۋ ٴتىزىمى]', # Fuzzy
-);
-
-/** Kazakh (Cyrillic script) (қазақша (кирил)‎)
- */
-$messages['kk-cyrl'] = array(
-       'mainpagetext' => "'''МедиаУики бумасы сәтті орнатылды.'''",
-       'mainpagedocfooter' => 'Уики бағдарламалық жасақтамасын қалай қолданатын ақпараты үшін [//meta.wikimedia.org/wiki/Help:Contents Пайдаланушылық нұсқауларынан] кеңес алыңыз.
-
-== Бастау үшін ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Бапталым қалауларының тізімі]
-* [//www.mediawiki.org/wiki/Manual:FAQ МедиаУикидің Жиы Қойылған Сауалдары]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce МедиаУики шығу туралы хат тарату тізімі]', # Fuzzy
-);
-
-/** Kazakh (Latin script) (qazaqşa (latın)‎)
- */
-$messages['kk-latn'] = array(
-       'mainpagetext' => "'''MedïaWïkï bwması sätti ornatıldı.'''",
-       'mainpagedocfooter' => 'Wïkï bağdarlamalıq jasaqtamasın qalaý qoldanatın aqparatı üşin [//meta.wikimedia.org/wiki/Help:Contents Paýdalanwşılıq nusqawlarınan] keñes alıñız.
-
-== Bastaw üşin ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Baptalım qalawlarınıñ tizimi]
-* [//www.mediawiki.org/wiki/Manual:FAQ MedïaWïkïdiñ Jïı Qoýılğan Sawaldarı]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MedïaWïkï şığw twralı xat taratw tizimi]', # Fuzzy
-);
-
-/** Khmer (ភាសាខ្មែរ)
- * @author Thearith
- * @author គីមស៊្រុន
- */
-$messages['km'] = array(
-       'config-your-language' => 'ភាសារបស់អ្នក៖',
-       'config-your-language-help' => 'ជ្រើសយកភាសាដើម្បីប្រើក្នុងពេលតំលើង។',
-       'config-wiki-language' => 'ភាសាវិគី៖',
-       'config-wiki-language-help' => 'ជ្រើសរើសភាសាដែលវិគីនេះប្រើជាចំបង។',
-       'config-back' => '← ត្រលប់ក្រោយ',
-       'config-continue' => 'បន្ត →',
-       'config-page-language' => 'ភាសា',
-       'config-page-welcome' => 'មេឌាវិគីសូមស្វាគមន៍!',
-       'config-page-dbconnect' => 'ភ្ជាប់ទៅមូលដ្ឋានទិន្នន័យ',
-       'config-page-name' => 'ឈ្មោះ',
-       'config-page-options' => 'ជំរើស',
-       'config-page-install' => 'តំលើង',
-       'config-page-complete' => 'បញ្ចប់!',
-       'config-page-restart' => 'តំលើងឡើងវិញ',
-       'config-help' => 'ជំនួយ',
-       'mainpagetext' => "'''មេឌាវិគីត្រូវបានដំឡើងសំរេចហើយ​។'''",
-       'mainpagedocfooter' => 'សូមពិនិត្យមើល [//meta.wikimedia.org/wiki/ជំនួយ​៖ ខ្លឹមសារ​ណែនាំ​ប្រើប្រាស់]សម្រាប់​ព័ត៌មាន​​បន្ថែមចំពោះ​ការប្រើប្រាស់ ផ្នែកទន់វិគី​។
-
-== ចាប់ផ្ដើមជាមួយមេឌាវិគី ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings បញ្ជីកំណត់ទម្រង់]
-* [//www.mediawiki.org/wiki/Manual:FAQ/km សំណួរញឹកញាប់​មេឌាវិគី]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce បញ្ជី​ពិភាក្សា​ការផ្សព្វផ្សាយ​របស់​មេឌាវិគី]', # Fuzzy
-);
-
-/** Kannada (ಕನ್ನಡ)
- */
-$messages['kn'] = array(
-       'mainpagetext' => "'''ವಿಕಿ ತಂತ್ರಾಂಶವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅನುಸ್ಥಾಪಿಸಲಾಯಿತು.'''",
-       'mainpagedocfooter' => 'ವಿಕಿ ತಂತ್ರಾಂಶವನ್ನು ಬಳಸುವ ಬಗ್ಗೆ ಮಾಹಿತಿಗೆ [//meta.wikimedia.org/wiki/Help:Contents ಬಳಕೆದಾರರಿಗೆ ನಿರ್ದೇಶನ ಪುಟ] ನೋಡಿ.
-
-== ಪ್ರಾರಂಭಿಸುವುದು ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ ಮೀಡಿಯವಿಕಿ FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]', # Fuzzy
-);
-
-/** Korean (한국어)
- * @author Kwj2772
- * @author 아라
- */
-$messages['ko'] = array(
-       'config-desc' => '미디어위키 설치 프로그램',
-       'config-title' => 'MediaWiki $1 설치',
-       'config-information' => '정보',
-       'config-localsettings-upgrade' => '<code>LocalSettings.php</code> 파일을 감지했습니다.
-이 설치를 업그레이드하려면 아래 상자에 <code>$wgUpgradeKey</code>의 값을 입력하세요.
-<code>LocalSettings.php</code>에 찾을 수 있습니다.',
-       'config-localsettings-cli-upgrade' => '<code>LocalSettings.php</code> 파일을 감지했습니다.
-이 설치를 업그레이드하려면 <code>update.php</code>를 대신 실행하세요',
-       'config-localsettings-key' => '업그레이드 키:',
-       'config-localsettings-badkey' => '제공한 키가 잘못되었습니다.',
-       'config-upgrade-key-missing' => '미디어위키의 기존 설치가 감지되었습니다.
-이 설치를 업그레이드하려면 <code>LocalSettings.php</code>의 아래에 다음 줄을 넣으세요:
-
-$1',
-       'config-localsettings-incomplete' => '기존 <code>LocalSettings.php</code>가 완전하지 않은 것 같습니다.
-$1 변수가 설정되어 있지 않습니다.
-이 변수가 설정되도록 <code>LocalSettings.php</code>를 바꾸고 "{{int:Config-continue}}"을 클릭하세요.',
-       'config-localsettings-connection-error' => '<code>LocalSettings.php</code> 또는 <code>AdminSettings.php</code>에 지정한 설정을 사용하여 데이터베이스에 연결할 때 오류가 발생했습니다. 이러한 설정을 수정하고 다시 시도하세요.
-
-$1',
-       'config-session-error' => '세션 시작 오류: $1',
-       'config-session-expired' => '세션 데이터가 만료된 것 같습니다.
-세션은 $1의 작동 시간 동안 구성됩니다.
-php.ini에 있는 <code>session.gc_maxlifetime</code>에서 설정해 이를 증가시킬 수 있습니다.
-설치 과정을 다시 시작합니다.',
-       'config-no-session' => '세션 데이터가 없어졌습니다!
-php.ini를 확인하고 <code>session.save_path</code>가 적절한 디렉토리로 설정되어 있는지 확인하세요.',
-       'config-your-language' => '설치 언어:',
-       'config-your-language-help' => '설치 과정에서 사용할 언어를 선택하세요.',
-       'config-wiki-language' => '위키 언어:',
-       'config-wiki-language-help' => '위키에 주로 작성될 언어를 선택하세요.',
-       'config-back' => '← 뒤로',
-       'config-continue' => '계속 →',
-       'config-page-language' => '언어',
-       'config-page-welcome' => '미디어위키에 오신 것을 환영합니다!',
-       'config-page-dbconnect' => '데이터베이스에 연결',
-       'config-page-upgrade' => '기존 설치 업그레이드',
-       'config-page-dbsettings' => '데이터베이스 설정',
-       'config-page-name' => '이름',
-       'config-page-options' => '설정',
-       'config-page-install' => '설치',
-       'config-page-complete' => '완료!',
-       'config-page-restart' => '설치 다시 시작',
-       'config-page-readme' => '읽어보기',
-       'config-page-releasenotes' => '배포 노트',
-       'config-page-copying' => '전문',
-       'config-page-upgradedoc' => '업그레이드하기',
-       'config-page-existingwiki' => '기존 위키',
-       'config-help-restart' => '입력한 모든 저장된 데이터를 지우고 설치 과정을 다시 시작하겠습니까?',
-       'config-restart' => '예, 다시 시작합니다',
-       'config-welcome' => '=== 사용 환경 검사 ===
-기본 검사는 지금 이 환경이 미디어위키 설치에 적합한지 수행합니다.
-설치를 완료하는 방법에 대한 지원을 찾는다면 이 정보를 포함해야 하는 것을 기억하세요.',
-       'config-copyright' => "=== 저작권 및 이용 약관 ===
-
-$1
-
-이 프로그램은 자유 소프트웨어입니다. 당신은 자유 소프트웨어 재단이 발표한 GNU 일반 공중 사용 허가서 버전 2나 그 이후 버전에 따라 이 프로그램을 재배포하거나 수정할 수 있습니다.
-
-이 프로그램이 유용하게 사용될 수 있기를 바라지만 '''상용으로 사용'''되거나 '''특정 목적에 맞을 것'''이라는 것을 '''보증하지 않습니다'''.
-자세한 내용은 GNU 일반 공중 사용 허가서를 참고하십시오.
-
-당신은 이 프로그램을 통해 <doclink href=Copying>GNU 일반 공중 사용 허가서 전문</doclink>을 받았습니다. 그렇지 않다면, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA로 편지를 보내주시거나 [http://www.gnu.org/copyleft/gpl.html 온라인으로 읽어보시기] 바랍니다.",
-       'config-sidebar' => '* [//www.mediawiki.org 미디어위키 홈]
-* [//www.mediawiki.org/wiki/Help:Contents 사용자 가이드]
-* [//www.mediawiki.org/wiki/Manual:Contents 관리자 가이드]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]
-----
-* <doclink href=Readme>읽어보기</doclink>
-* <doclink href=ReleaseNotes>배포 노트</doclink>
-* <doclink href=Copying>전문</doclink>
-* <doclink href=UpgradeDoc>업그레이드하기</doclink>',
-       'config-env-good' => '환경이 확인되었습니다.
-미디어위키를 설치할 수 있습니다.',
-       'config-env-bad' => '환경이 확인되었습니다.
-미디어위키를 설치할 수 없습니다.',
-       'config-env-php' => 'PHP $1(이)가 설치되었습니다.',
-       'config-env-php-toolow' => 'PHP $1(이)가 설치되었습니다.
-하지만 미디어위키는 PHP $2 이상이 필요합니다.',
-       'config-unicode-using-utf8' => '유니코드 정규화에 Brion Vibber의 utf8_normalize.so를 사용합니다.',
-       'config-unicode-using-intl' => '유니코드 정규화에 [http://pecl.php.net/intl intl PECL 확장 기능]을 사용합니다.',
-       'config-unicode-pure-php-warning' => "'''경고''': 유니코드 정규화를 처리할 [http://pecl.php.net/intl intl PECL 확장 기능]을 사용할 수 없기 때문에 느린 순수한 PHP 구현을 대신 사용합니다.
-높은 트래픽 사이트에서 실행하려면 [//www.mediawiki.org/wiki/Unicode_normalization_considerations 유니코드 정규화]를 읽어보시기 바랍니다.",
-       'config-unicode-update-warning' => "'''경고''': 유니코드 정규화 래퍼의 설치된 버전은 [http://site.icu-project.org/ ICU 프로젝트]의 라이브러리의 이전 버전을 사용합니다.
-만약 유니코드를 사용하는 것에 대해 우려가 된다면 [//www.mediawiki.org/wiki/Unicode_normalization_considerations 업그레이드]해야합니다.",
-       'config-no-db' => '적절한 데이터베이스 드라이버를 찾을 수 없습니다! PHP에 데이터베이스 드라이버를 설치해야 합니다.
-다음 데이터베이스 유형을 지원합니다 : $1.
-
-공유하는 호스팅을 사용하고 있다면 적절한 데이터베이스 드라이버를 설치하도록 호스팅 제공 업체에 문의하세요.
-PHP를 직접 컴파일했다면 예를 들어 <code>./configure --with-mysql</code>을 사용하여 데이터베이스 클라이언트를 활성화하도록 다시 설정하세요.
-데비안이나 우분트 패키지에서 PHP를 설치했다면 php-mysql 모듈도 설치해야 합니다.',
-       'config-outdated-sqlite' => "'''경고''': SQLite 필요한 최소 $2 버전보다 낮은 $1(이)가 있습니다. SQLite는 사용할 수 없습니다.",
-       'config-no-fts3' => "'''경고''': SQLite는 [//sqlite.org/fts3.html FTS3 모듈] 없이 컴파일되어, 검색 기능은 백엔드에 사용할 수 없습니다.",
-       'config-register-globals' => "'''경고: PHP의 <code>[http://php.net/register_globals register_globals]</code> 옵션이 활성화되어 있습니다.'''
-'''가능하면 이를 비활성화하십시오.'''
-미디어위키는 작동하지만 서버에 잠재적인 보안 취약점이 노출됩니다.",
-       'config-magic-quotes-runtime' => "'''치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]이 활성합니다!'''
-이 옵션은 데이터를 입력하는 데 예기치 않는 손상이 일어납니다.
-이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
-       'config-magic-quotes-sybase' => "'''치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]이 활성합니다!'''
-이 옵션은 데이터를 입력하는 데 예기치 않는 손상이 일어납니다.
-이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
-       'config-mbstring' => "'''치명: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]이 활성합니다!'''
-이 옵션은 오류가 발생하고 데이터를 입력하는 데 예기치 않는 손상이 일어날 수 있습니다.
-이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
-       'config-ze1' => "'''치명: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]이 활성합니다!'''
-이 옵션은 미디어위키에 심간한 버그를 일으킵니다.
-이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
-       'config-safe-mode' => "'''경고:''' [http://www.php.net/features.safe-mode 안전 모드]이 활성합니다!
-특히 파일을 올리거나 <code>math</code>를 지원하는 데 문제가 발생할 수 있습니다.",
-       'config-xml-bad' => 'PHP의 XML 모듈이 없습니다.
-미디어위키는 이 모듈의 기능이 필요하며 이 설정에서는 작동하지 않습니다.
-Mandrake를 실행하고 있다면 php-xml 패키지를 설치하세요.',
-       'config-pcre' => 'PCRE 지원 모듈이 없는 것 같습니다.
-미디어위키는 Perl 호환 정규 표현식을 작동시켜야 합니다.',
-       'config-pcre-no-utf8' => "'''치명''': PHP의 PCRE 모듈은 RCRE_UTF8 지원 없이 컴파일된 것 같습니다.
-미디어위키가 제대로 작동하려면 UTF-8 지원이 필요합니다.",
-       'config-memory-raised' => 'PHP의 <code>memory_limit</code>는 $1이며 $2(으)로 늘리세요.',
-       'config-memory-bad' => "'''경고:''' PHP의 <code>memory_limit</code>는 $1입니다.
-아마도 너무 낮은 것 같습니다.
-설치가 실패할 수 있습니다!",
-       'config-ctype' => "'''치명''': PHP는 [http://www.php.net/manual/en/ctype.installation.php Ctype 확장 기능]에 대해 지원하여 컴파일해야 합니다.",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache]가 설치되었습니다',
-       'config-apc' => '[http://www.php.net/apc APC]가 설치되었습니다',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache]가 설치되었습니다',
-       'config-no-cache' => "'''경고:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] 또는 [http://www.iis.net/download/WinCacheForPhp WinCache]를 찾을 수 없습니다.
-개체 캐싱을 활성화하지 않습니다.",
-       'config-mod-security' => "'''경고''': 웹 서버에 [http://modsecurity.org/ mod_security]가 허용되었습니다. 잘못 설정된 경우 미디어위키나 사용자가 임의의 콘텐츠를 게시할 수 있는 다른 소프트웨어에 대한 문제를 일으킬 수 있습니다.
-[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를 찾을 수 없습니다.
-그림 섬네일이 비활성화됩니다.',
-       'config-no-uri' => "'''오류:''' 현재 URI를 확인할 수 없습니다.
-설치가 중단되었습니다.",
-       'config-no-cli-uri' => "'''경고''': 기본값을 사용하여 --scriptpath를 지정하지 않았습니다: <code>$1</code>.",
-       'config-using-server' => '"<nowiki>$1</nowiki>"(을)를 서버 이름으로 사용합니다.',
-       'config-using-uri' => '"<nowiki>$1$2</nowiki>"(을)를 서버 URL로 사용합니다.',
-       'config-uploads-not-safe' => "'''경고:''' 올리기에 대한 기본 디렉터리(<code>$1</code>)는 임의의 스크립트 실행에 취약합니다.
-미디어위키는 보안 위협에 대한 모든 올린 파일을 검사하지만, 올리기를 활성화하기 전에 [//www.mediawiki.org/wiki/Manual:Security#Upload_security 이 보안 취약점을 해결할 것]을 매우 권장합니다.",
-       'config-no-cli-uploads-check' => "'''경고:''' 올리기에 대한 기본 디렉터리(<code>$1</code>)는 CLI를 설치하는 동안 임의의 스크립트 실행에 대한 취약점에 대해 검사되지 않습니다.",
-       'config-brokenlibxml' => '시스템에 버그가 있는 PHP와 libxml2의 조합이 있으며 미디어위키나 다른 웹 어플리케이션에 숨겨진 데이터 손상을 일으킬 수 있습니다.
-PHP 5.2.9 이후와 libxml2 2.7.3 이후로 업그레이드하세요. ([//bugs.php.net/bug.php?id=45996 PHP에 제기한 버그])
-설치가 중단되었습니다.',
-       'config-using531' => '미디어위키는 <code>__call()</code>을 참고로 매개 변수를 포함하는 버그로 인해 PHP $1(와)과 함께 사용할 수 없습니다.
-문제를 해결하려면 PHP 5.3.2 이상로 업그레이드하거나 PHP 5.3.0으로 다운그레이드를 하세요.
-설치가 중단되었습니다.',
-       'config-suhosin-max-value-length' => '수호신(Suhosin)이 설치되었고 $1 바이트로 GET 매개 변수인 <code>length</code>를 제한하고 있습니다.
-미디어위키의 ResourceLoader 구성 요소는 이 제한을 해결하지만 성능이 저하됩니다.
-가능하면 <code>php.ini</code>의 <code>suhosin.get.max_value_length</code>에 1024 이상으로 설정하고 <code>LocalSettings.php</code>의 <code>$wgResourceLoaderMaxQueryLength</code>에 같은 값을 설정해야 합니다.',
-       'config-db-type' => '데이터베이스 종류:',
-       'config-db-host' => '데이터베이스 호스트:',
-       'config-db-host-help' => '데이터베이스 서버가 다른 서버에 있으면 여기에 호스트 이름이나 IP 주소를 입력하세요.
-
-공유하는 웹 호스팅을 사용하고 있으면 호스팅 제공 업체는 호스트 이름을 설명하고 있을 것입니다.
-
-윈도 서버에 설치하고 MySQL을 사용하면 "localhost"는 서버 이름으로 작동하지 않을 수 있습니다. 그렇게 된다면 로컬 IP 주소로 "127.0.0.1"를 시도하세요.
-
-PostgreSQL을 사용하면 유닉스 소켓을 통해 연결되도록 입력란을 비워두세요.',
-       'config-db-host-oracle' => '데이터베이스 TNS:',
-       'config-db-host-oracle-help' => '올바른 [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm 로컬 연결 이름]을 입력하세요. tnsnames.ora 파일이 이 설치에 보여야 합니다.<br />10g 이후의 클라이언트 라이브러리를 사용하는 경우 [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm 쉬운 연결] 네이밍 메소드도 사용할 수 있습니다.',
-       'config-db-wiki-settings' => '이 위키 식별',
-       'config-db-name' => '데이터베이스 이름:',
-       'config-db-name-help' => '위키를 식별하기 위한 이름을 선택하세요.
-공백이 없어야 합니다.
-
-공유하는 웹 호스팅 사용하면 호스팅 제공 업체가 특정 데이터베이스 이름을 제공하거나 관리 패널에서 데이터베이스를 만들 수 있습니다.',
-       'config-db-name-oracle' => '데이터베이스 스키마:',
-       'config-db-account-oracle-warn' => '데이터베이스 백엔드로 오라클을 설치하기 위해 지원하는 세 가지 시나리오가 있습니다:
-
-설치 과정의 일부로 데이터베이스 계정을 만들려면 설치를 위해 데이터베이스 계정으로 SYSDBA 역할을 가진 계정을 제공하고 웹 접근 계정에 대해 원하는 자격 증명을 지정하세요, 그렇지 않으면 수동으로 웹 접근 계정을 만들 수 있으며 (필요한 경우 권한 스키마 개체를 만들어야 합니다) 또는 다른 계정 두 개를 만들고 권한을 가진 하나의 웹 접근을 위한 제한된 하나를 제공할 수 있습니다.
-
-필요한 권한을 가진 계정을 만드는 스크립트는 이 설치의 "maintenance/oracle/" 디렉토리에서 찾을 수 있습니다. 제한된 계정을 사용하면 기본 계정으로 모든 관리 기능을 비활성화할 것을 유의하십시오.',
-       'config-db-install-account' => '설치를 위한 사용자 계정',
-       'config-db-username' => '데이터베이스 사용자 이름:',
-       'config-db-password' => '데이터베이스 비밀번호:',
-       'config-db-password-empty' => '새 데이터베이스 사용자의 비밀번호를 입력하세요: $1.
-비밀번호 없이 사용자를 만들 수도 있지만 안전하지 않습니다.',
-       'config-db-install-username' => '설치 과정 중에 데이터베이스에 연결할 때 사용할 사용자 이름을 입력하세요.
-미디어위키 계정의 사용자 이름이 아닌 데이터베이스에 대한 사용자 이름입니다.',
-       'config-db-install-password' => '설치 과정 중에 데이터베이스에 연결할 때 사용할 비밀번호을 입력하세요.
-미디어위키 계정의 비밀번호가 아닌 데이터베이스에 대한 비밀번호입니다.',
-       'config-db-install-help' => '설치 과정 중에 데이터베이스에 연결할 때 사용할 사용자 이름과 비밀번호를 입력하세요.',
-       'config-db-account-lock' => '정상적으로 작동하는 동안 같은 사용자 이름과 비밀번호를 사용함',
-       'config-db-wiki-account' => '정상적인 작동을 위한 사용자 계정',
-       'config-db-wiki-help' => '정상적인 위키 작업 동안 데이터베이스에 연결하는 데 사용할 사용자 이름과 비밀 번호를 입력하세요.
-계정이 존재하지 않고 설치 계정에 충분한 권한이 있는 경우 이 사용자 계정은 위키를 작동하는 데 필요한 최소 권한으로 만들어집니다.',
-       'config-db-prefix' => '데이터베이스 테이블 접두어:',
-       'config-db-prefix-help' => '여러 위키 사이 또는 미디어위키와 다른 웹 응용 프로그램 사이에서 하나의 데이터베이스를 공유해야 하는 경우, 충돌을 피하기 위해 모든 테이블 이름에 접두어를 추가하도록 선택할 수 있습니다.
-공백을 사용하지 마세요.
-
-이 필드는 일반적으로 비어있습니다.',
-       'config-db-charset' => '데이터베이스 문자 집합',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 바이너리',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 UTF-8 하위 호환성',
-       'config-charset-help' => "'''경고:''' MySQL 4.1에서 '''UTF-8 하위 호환성'''을 사용하고 나서 <code>mysqldump</code>로 데이터베이스에 백업한다면 모든 ASCII가 아닌 문자를 파괴하고 손상한 백업을 되돌릴 수 없습니다!
-
-'''바이너리 모드'''에서는 미디어위키는 바이너리 필드의 데이터베이스에 UTF-8 텍스트를 저장합니다.
-MySQL의 UTF-8 모드를 보다 더 효율적이고 유니코드 문자의 전체 범위를 사용할 수 있습니다.
-'''UTF-8 모드'''에서는 MySQL은 데이터를 설정하는 문자 집합을 알고 있기 때문에 적절하게 표현하고 변환할 수 있지만
-[//ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_%ED%8F%89%EB%A9%B4#.EA.B8.B0.EB.B3.B8_.EB.8B.A4.EA.B5.AD.EC.96.B4_.ED.8F.89.EB.A9.B4 기본 다국어 평면] 밖의 문자를 저장할 수 없습니다.",
-       'config-mysql-old' => 'MySQL $1 이상이 필요하나 $2(이)가 있습니다.',
-       'config-db-port' => '데이터베이스 포트:',
-       'config-db-schema' => '미디어위키에 대한 스키마:',
-       'config-db-schema-help' => '보통 이 스키마는 문제가 없습니다.
-필요한 경우에만 바꾸세요.',
-       'config-pg-test-error' => "'''$1''' 데이터베이스에 연결할 수 없습니다: $2",
-       'config-sqlite-dir' => 'SQLite 데이터 디렉터리:',
-       'config-sqlite-dir-help' => "SQLite는 하나의 파일에 모든 데이터를 저장합니다.
-
-제공하는 디렉토리는 설치하는 동안 웹 서버가 쓸 수 있어야 합니다.
-
-이 디렉토리는 웹을 통해 접근할 수 '''없어야''' 하는데 PHP 파일이 있는 곳에 넣을 수 없는 것은 이 때문입니다.
-
-설치 프로그램은 <code>.htaccess</code> 파일을 작성하지만 이것이 실패하면 누군가가 원본 데이터베이스에 접근할 수 있습니다.
-데이터베이스는 원본 사용자 데이터(이메일 주소, 해시한 비밀번호) 뿐만 아니라 삭제된 판과 위키의 다른 제한된 데이터를 포함합니다.
-
-예를 들어 <code>/var/lib/mediawiki/yourwiki</code>와 같이 다른 곳에 데이터베이스를 넣는 것이 좋습니다.",
-       'config-oracle-def-ts' => '기본 테이블공간:',
-       'config-oracle-temp-ts' => '임시 테이블공간:',
-       'config-type-oracle' => 'Oracle',
-       'config-support-info' => '미디어위키는 다음의 데이터베이스 시스템을 지원합니다:
-
-$1
-
-데이터베이스 시스템이 표시되지 않을 때 아래에 나열된 다음 지원을 활성화하려면 위의 링크된 지시에 따라 설치해볼 수 있습니다.',
-       'config-support-mysql' => '* $1은 미디어위키의 기본 대상으로 가장 잘 지원합니다. ([http://www.php.net/manual/en/mysql.installation.php MySQL을 지원하여 PHP를 컴파일하는 방법])',
-       'config-support-postgres' => '* $1은 MySQL의 대안으로 인기 있는 오픈 소스 데이터베이스 시스템입니다. ([http://www.php.net/manual/en/pgsql.installation.php PostgreSQL을 지원하여 PHP를 컴파일하는 방법]) 몇가지 사소한 해결하지 못한 버그가 있을 수 있으며, 이를 제작 환경에서 사용하지 않는 것이 좋습니다.',
-       'config-support-sqlite' => '* $1는 매우 잘 지원하는 가벼운 데이터베이스 시스템입니다. ([http://www.php.net/manual/en/pdo.installation.php SQLite를 지원하여 PHP를 컴파일하는 방법], PDO 사용)',
-       'config-support-oracle' => '* $1은 상용 엔터프라이스 데이터베이스입니다. ([http://www.php.net/manual/en/oci8.installation.php OCI8을 지원하여 PHP를 컴파일하는 방법])',
-       'config-header-mysql' => 'MySQL 설정',
-       'config-header-postgres' => 'PostgreSQL 설정',
-       'config-header-sqlite' => 'SQLite 설정',
-       '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가 잘못됐습니다.
-"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.
-
-호스트, 계정 이름과 비밀번호를 확인하고 다시 시도하세요.',
-       'config-invalid-schema' => '미디어위키 "$1"에 대한 스키마가 잘못됐습니다.
-ASCII 글자 (a-z, A-Z), 숫자 (0-9), 밑줄 (_)과 하이픈 (-)만 사용하세요.',
-       'config-db-sys-create-oracle' => '설치 프로그램은 새 계정을 만들기 위한 SYSDBA 계정만을 지원합니다.',
-       'config-db-sys-user-exists-oracle' => '"$1" 사용자 계정이 이미 존재합니다. SYSDBA는 새 계정을 만드는 데에만 사용할 수 있습니다!',
-       'config-postgres-old' => 'PostgreSQL $1 이상이 필요하나 $2(이)가 있습니다.',
-       'config-sqlite-name-help' => '위키를 식별하기 위한 이름을 선택하세요.
-공백이나 하이픈을 사용하지 마십시오.
-SQLite 데이터 파일 이름에 사용됩니다.',
-       'config-sqlite-parent-unwritable-group' => '<code><nowiki>$1</nowiki></code> 데이터 디렉토리를 만들 수 없으며 웹 서버는 <code><nowiki>$2</nowiki></code> 상위 디렉토리에 쓸 수 없기 때문입니다.
-
-설치 프로그램은 웹 서버로 실행중인 사용자를 지정할 수 없습니다.
-계속하려면 웹 서버가 쓸 수 있는 <code><nowiki>$3</nowiki></code> 디렉토리를 만드세요.
-유닉스/리눅스 시스템에서의 수행:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => '<code><nowiki>$1</nowiki></code> 데이터 디렉토리를 만들 수 없으며 웹 서버는 <code><nowiki>$2</nowiki></code> 상위 디렉토리에 쓸 수 없기 때문입니다.
-
-설치 프로그램은 웹 서버로 실행중인 사용자를 지정할 수 없습니다.
-계속하려면 웹 서버(와 기타!)가 전역으로 쓸 수 있는 <code><nowiki>$3</nowiki></code> 디렉토리를 만드세요.
-유닉스/리눅스 시스템에서의 수행:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => '"$1" 데이터 디렉토리를 만드는 중 오류가 났습니다.
-경로를 확인하고 다시 시도하세요.',
-       'config-sqlite-dir-unwritable' => '"$1" 디렉토리에 쓸 수 없습니다.
-웹 서버를 쓸 수 있도록 권한을 바꾸고 다시 시도하세요.',
-       'config-sqlite-connection-error' => '$1.
-
-호스트, 계정 이름과 비밀번호를 확인하고 다시 시도하세요.',
-       'config-sqlite-readonly' => '<code>$1</code> 파일은 쓸 수 없습니다.',
-       'config-sqlite-cant-create-db' => '<code>$1</code> 데이터베이스 파일을 만들 수 없습니다.',
-       'config-sqlite-fts3-downgrade' => 'PHP가 FTS3 지원이 없어졌습니다. 테이블을 다운그레이드하세요.',
-       'config-can-upgrade' => "이 데이터베이스에 미디어위키 테이블이 있습니다.
-미디어위키 $1(으)로 업그레이드하려면 '''계속'''을 클릭하세요.",
-       'config-upgrade-done' => "업그레이드가 완료되었습니다.
-
-이제 [$1 위키를 시작]할 수 있습니다.
-
-만약 <code>LocalSettings.php</code> 파일을 다시 만들기를 원하면 아래의 버튼을 클릭하세요.
-위키에 문제가 있지 않는 한 '''권장하지 않습니다'''.",
-       'config-upgrade-done-no-regenerate' => '업그레이드가 완료되었습니다.
-
-이제 [$1 위키를 시작]할 수 있습니다.',
-       'config-regenerate' => 'LocalSettings.php 다시 만들기 →',
-       'config-show-table-status' => '<code>SHOW TABLE STATUS</code> 쿼리를 실패했습니다!',
-       'config-unknown-collation' => "'''경고:''' 데이터베이스가 인식하지 않는 정렬을 사용하고 있습니다.",
-       'config-db-web-account' => '웹 접근을 위한 데이터베이스 계정',
-       'config-db-web-help' => '위키의 일반적인 작업 중에 데이터베이스 서버에 연결하는 데 사용할 웹 서버에 대한 계정 이름과 비밀번호를 선택하세요.',
-       'config-db-web-account-same' => '설치를 위해 같은 계정 사용',
-       'config-db-web-create' => '이 계정이 아직 존재하지 않을 경우 계정 만들기',
-       'config-db-web-no-create-privs' => '설치를 위해 지정한 계정은 계정을 만들 수 있는 충분한 권한이 없습니다.
-여기서 지정한 계정은 이미 존재해야 합니다.',
-       'config-mysql-engine' => '스토리지 엔진:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''경고''': 미디어위키에 사용하지 않는 것이 좋은 MySQL에 대한 스토리지 엔진으로 MyISAM을 선택하였습니다. 이유는:
-* 테이블 잠금에 의해 간신히 동시성을 지원합니다
-* 다른 엔진보다 손상하는 경향이 있습니다
-* 미디어위키 코드베이스가 항상 정상적으로 MyISAM을 처리하지 않습니다
-
-MySQL 설치가 InnoDB를 지원한다면, 그 선택 대신에 InnoDB를 선택할 것을 매우 권장합니다.
-MySQL 설치가 InnoDB를 지원하지 않는다면, 아마도 업그레이드를 할 시간입니다.",
-       'config-mysql-only-myisam-dep' => "'''경고''': 미디어위키에 사용하지 않는 것이 좋은 MySQL에 대한 유일하게 사용할 수 있는 스토리지 엔진입니다. 이유는:
-* 테이블 잠금에 의해 간신히 동시성을 지원합니다
-* 다른 엔진보다 손상하는 경향이 있습니다
-* 미디어위키 코드베이스가 항상 정상적으로 MyISAM을 처리하지 않습니다
-
-MySQL 설치가 InnoDB를 지원하지 않으며, 아마도 업그레이드를 할 시간입니다.",
-       'config-mysql-engine-help' => "'''InnoDB'''는 동시적인 지원에 좋기 때문에 대부분 최고의 옵션입니다.
-
-'''MyISAM'''은 단일 사용자 또는 읽기 전용 설치에 빠를 수 있습니다.
-MyISAM 데이터베이스는 InnoDB 데이터베이스보다 더 자주 손실될 수 있습니다.",
-       'config-mysql-charset' => '데이터베이스 문자 집합:',
-       'config-mysql-binary' => '바이너리',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "'''바이너리 모드'''에서는 미디어위키는 바이너리 필드의 데이터베이스에 UTF-8 텍스트를 저장합니다.
-MySQL의 UTF-8 모드를 보다 더 효율적이고 유니코드 문자의 전체 범위를 사용할 수 있습니다.
-'''UTF-8 모드'''에서는 MySQL은 데이터를 설정하는 문자 집합을 알고 있기 때문에 적절하게 표현하고 변환할 수 있지만
-[//ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_%ED%8F%89%EB%A9%B4#.EA.B8.B0.EB.B3.B8_.EB.8B.A4.EA.B5.AD.EC.96.B4_.ED.8F.89.EB.A9.B4 기본 다국어 평면] 밖의 문자를 저장할 수 없습니다.",
-       'config-site-name' => '위키 이름:',
-       'config-site-name-help' => '브라우저 제목 표시줄과 다른 여러 곳에 나타납니다.',
-       'config-site-name-blank' => '사이트 이름을 입력하세요.',
-       'config-project-namespace' => '프로젝트 이름공간:',
-       'config-ns-generic' => '프로젝트',
-       'config-ns-site-name' => '위키 이름과 같은 이름: $1',
-       'config-ns-other' => '기타 (지정)',
-       'config-ns-other-default' => '내위키',
-       'config-project-namespace-help' => '위키백과의 예를 따라서, 많은 위키는 "\'\'\'프로젝트 이름공간\'\'\'"에 그들의 콘텐츠 페이지에서 그들의 정책 페이지는 별도로 보관합니다.
-이 이름공간에 있는 모든 페이지의 제목은 여기서 지정할 수 있는 특정 접두어로 시작합니다.
-보통 이 접두어는 위키의 이름에서 파생되지만, "#" 또는 ":"와 같은 특수 문자를 포함할 수 없습니다.',
-       'config-ns-invalid' => '특정 "<nowiki>$1</nowiki>" 이름공간이 잘못되었습니다.
-다른 프로젝트 이름공간을 지정하세요.',
-       'config-ns-conflict' => '특정 "<nowiki>$1</nowiki>" 이름공간이 기본 미디어위키 이름공간과 충돌합니다.
-다른 프로젝트 이름공간을 지정하세요.',
-       'config-admin-box' => '관리자 계정',
-       'config-admin-name' => '사용자 이름:',
-       'config-admin-password' => '비밀번호:',
-       'config-admin-password-confirm' => '비밀번호 확인:',
-       'config-admin-help' => '"홍길동"과 같이 여기에 원하는 사용자 이름을 입력하세요.
-위키에 로그인하는 데 사용되는 이름입니다.',
-       'config-admin-name-blank' => '관리자의 사용자 이름을 입력하세요.',
-       'config-admin-name-invalid' => '특정 "<nowiki>$1</nowiki>" 사용자 이름이 잘못되었습니다.
-다른 사용자 이름을 지정하세요.',
-       'config-admin-password-blank' => '관리자 계정의 비밀번호를 입력하세요.',
-       'config-admin-password-same' => '비밀번호는 사용자 이름과 같아서는 안 됩니다.',
-       'config-admin-password-mismatch' => '입력한 비밀번호 두 개가 일치하지 않습니다.',
-       'config-admin-email' => '이메일 주소:',
-       'config-admin-email-help' => '위키의 다른 사용자로부터 이메일을 전달받거나 비밀번호를 재설정하고 주시문서 목록에 대한 바뀜 알림을 받기 위해 여기에 이메일 주소를 입력하세요. 이 필드를 비워 둘 수 있습니다.',
-       'config-admin-error-user' => '"<nowiki>$1</nowiki>" 이름의 관리자를 만드는 중 내부 오류가 발생했습니다.',
-       'config-admin-error-password' => '"<nowiki>$1</nowiki>" 관리자의 비밀번호를 설정하는 중 내부 오류가 발생했습니다: <pre>$2</pre>',
-       'config-admin-error-bademail' => '이메일 주소를 잘못 입력하였습니다.',
-       'config-subscribe' => '[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce 배포 발표 메일링 리스트]에 가입합니다.',
-       'config-subscribe-help' => '중요한 보안 알림을 포함한 배포 알림에 대해 사용되는 로우 볼륨 메일링 리스트입니다.
-이 리스트를 구독하고 나서 새 버전이 나올 때 미디어위키 설치를 업데이트하십시오.',
-       'config-subscribe-noemail' => '이메일 주소를 제공하지 않고 배포 발표 메일링 리스트에 가입하려 합니다.
-메일링 리스트에 가입하고자 할 경우 이메일 주소를 제공하세요.',
-       'config-almost-done' => '거의 다 완료했습니다!
-이제 남은 설정을 생략하고 지금 바로 위키를 설치할 수 있습니다.',
-       'config-optional-continue' => '더 많은 질문을 물어보세요.',
-       'config-optional-skip' => '지겨워요, 그냥 위키를 설치할래요.',
-       'config-profile' => '사용자 권한 프로필:',
-       'config-profile-wiki' => '열린 위키',
-       'config-profile-no-anon' => '계정 만들기 필요',
-       'config-profile-fishbowl' => '승인된 편집자만',
-       'config-profile-private' => '비공개 위키',
-       'config-profile-help' => "위키는 많은 사람들이 가능한 한 편집할 수 있도록 하면 가장 뛰어난 역할을 합니다.
-미디어위키에서는 최근 바뀜을 검토하기 쉽고, 선하거나 악의적인 사용자의 어떠한 손실을 되돌리는 것이 쉽습니다.
-
-그러나 많은 사람이 미디어위키는 다양한 역할로 유용하지만, 때로는 모든 사람에게 위키 방식의 장점을 설득하기 쉽지 않을 지도 모릅니다.
-그래서 선택할 수 있습니다.
-
-'''{{int:config-profile-wiki}}''' 모델은 로그인하지 않고도 누구나 편집할 수 있습니다.
-'''{{int:config-profile-no-anon}}'''인 위키는 각 편집에 추가적으로 강한 책임을 제공하지만, 부담 없는 기여를 저해할 수도 있습니다.
-
-'''{{int:config-profile-fishbowl}}''' 시나리오는 승인된 사용자만 편집할 수 있지만, 대중은 역사를 포함하여 문서를 볼 수 있습니다.
-'''{{int:config-profile-private}}'''는 승인된 사용자만 문서를 볼 수 있으며 해당 그룹을 편집할 수 있습니다.
-
-더 복잡한 사용자 권한을 설정은 설치한 후 사용할 수 있으며 [//www.mediawiki.org/wiki/Manual:User_rights 관련 설명서 항목]을 참고하세요.",
-       'config-license' => '저작권 및 라이선스:',
-       'config-license-none' => '라이선스 바닥글 없음',
-       'config-license-cc-by-sa' => '크리에이티브 커먼즈 저작자표시-동일조건변경허락',
-       'config-license-cc-by' => '크리에이티브 커먼즈 저작자표시',
-       'config-license-cc-by-nc-sa' => '크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락',
-       'config-license-cc-0' => '크리에이티브 커먼즈 제로 (퍼블릭 도메인)',
-       'config-license-gfdl' => 'GNU 자유 문서 사용 허가서 1.3 이상',
-       'config-license-pd' => '퍼블릭 도메인',
-       'config-license-cc-choose' => '다른 크리에이티브 커먼즈 라이선스 선택',
-       'config-license-help' => "많은 공개 위키는 모든 기여를 [http://freedomdefined.org/Definition 자유 라이선스]에 따라 넣습니다.
-이렇게 하면 커뮤니티 소유권의 이해를 할 수 있도록 하고 장기적인 기여를 장려합니다.
-일반적으로 개인 또는 회사 위키에 대해서는 필요하지 않습니다.
-
-위키백과의 텍스트를 사용할 수 있도록 하고 위키백과가 위키에서 복사한 텍스트를 사용할 수 있도록 원한다면 '''크리에이티브 커먼즈 저작자표시-동일조건변경허락'''으로 선택해야 합니다.
-
-위키백과는 이전에 GNU 자유 문서 사용 허가서를 사용했습니다.
-GFDL은 유효한 라이선스이지만 내용을 이해하기 어렵습니다.
-GFDL에 따라 사용이 허가된 내용을 재사용하는 것도 어렵습니다.",
-       'config-email-settings' => '이메일 설정',
-       'config-enable-email' => '발신 이메일 활성화',
-       'config-enable-email-help' => '이메일을 작동하려면 [http://www.php.net/manual/en/mail.configuration.php PHP의 메일 설정]을 올바르게 설정해야 합니다.
-이메일 기능을 사용하지 않으려면 이를 비활성화할 수 있습니다.',
-       'config-email-user' => '사용자와 사용자 간 이메일 활성화',
-       'config-email-user-help' => '환경 설정에서 활성화한 경우 모든 사용자가 이메일을 서로 보내도록 활성화합니다.',
-       'config-email-usertalk' => '사용자 토론 문서 알림 활성화',
-       'config-email-usertalk-help' => '환경 설정에서 활성화한 경우 사용자는 사용자 토론 문서의 바뀜 알림을 받도록 활성화합니다.',
-       'config-email-watchlist' => '주시문서 목록 알림 활성화',
-       'config-email-watchlist-help' => '환경 설정에서 활성화한 경우 사용자가 주시한 문서에 대한 알림을 받도록 활성화합니다.',
-       'config-email-auth' => '이메일 인증 활성화',
-       'config-email-auth-help' => "이 설정이 활성화되어 있으면 사용자는 이메일 주소를 설정하거나 바꿀 때마다 링크를 사용하여 이메일 주소를 확인해야 합니다.
-인증된 이메일 주소만 다른 사용자로부터의 이메일이나 바뀜 알림 이메일을 받을 수 있습니다.
-이메일 기능의 남용 가능성이 있기 때문에 이 옵션을 설정하는 것은 공개 위키에서 '''권장'''합니다.",
-       'config-email-sender' => '반송 이메일 주소',
-       'config-email-sender-help' => '발신한 이메일에 대한 반송 주소로 사용할 이메일 주소를 입력하세요.
-반송할 때 보내는 주소입니다.
-대부분의 메일 서버는 적어도 도메인 이름 부분은 유효합니다.',
-       'config-upload-settings' => '그림과 파일 올리기',
-       'config-upload-enable' => '파일 올리기 활성화',
-       'config-upload-help' => '파일 올리기는 서버에 잠재적인 보안 위험에 쉽게 노출될 수 있습니다.
-자세한 내용은 매뉴얼의 [//www.mediawiki.org/wiki/Manual:Security 보안 문단]을 참고하세요.
-
-파일 올리기를 활성화하려면 미디어위키의 루트 디렉토리에 있는 <code>images</code> 하위 디렉토리에서 웹 서버가 기록할 수 있도록 모드를 바꿉니다.
-그 다음 이 옵션을 활성화합니다.',
-       'config-upload-deleted' => '삭제된 파일에 대한 디렉터리:',
-       'config-upload-deleted-help' => '삭제된 파일을 보관할 디렉토리를 선택하세요.
-이상적으로 웹에서 접근할 수 없게 해야 합니다.',
-       'config-logo' => '로고 URL:',
-       'config-logo-help' => '미디어위키의 기본 스킨은 사이드바 메뉴 위에 135×160 픽셀의 로고의 공간을 포함하고 있습니다.
-적당한 크기로 그림을 올리고 여기에 URL을 입력하세요.
-
-로고가 상대적인 경로에 있으면 <code>$wgStylePath</code>나 <code>$wgScriptPath</code>를 사용할 수 있습니다.
-
-로고 사용을 원하지 않으면 이 상자를 비우세요.',
-       'config-instantcommons' => '인스턴트 공용 활성화',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons 인스턴트 공용]은 [//commons.wikimedia.org/ 위키미디어 공용] 사이트에서 찾을 수 있는 그림, 소리 및 다른 미디어를 위키에서 사용할 수 있도록 하는 기능입니다.
-이렇게 하려면 미디어위키가 인터넷에 접근해야합니다.
-
-위키미디어 공용 외에 기타 위키를 설정하는 방법에 대한 지침을 포함한 기능에 대한 자세한 내용은 [//mediawiki.org/wiki/Manual:$wgForeignFileRepos 매뉴얼]을 참고하세요.',
-       'config-cc-error' => '크리에이티브 커먼즈 라이선스 선택기에 결과가 없습니다.
-수동으로 라이선스 이름을 입력하세요.',
-       'config-cc-again' => '다시 선택...',
-       'config-cc-not-chosen' => '원하는 크리에이티브 커먼즈 라이선스를 선택하고 "진행"을 클릭하세요.',
-       'config-advanced-settings' => '고급 설정',
-       'config-cache-options' => '개체 캐싱을 위한 설정:',
-       'config-cache-help' => '개체 캐싱은 자주 사용하는 데이터를 캐싱하여 미디어위키의 속도를 개선하는 데 사용합니다.
-큰 사이트의 규모에는 이를 많이 사용하도록 권장하고 있으며, 소규모 사이트들도 물론 이익을 볼 수 있습니다.',
-       'config-cache-none' => '캐시하지 않음 (기능적으로는 삭제되지 않지만 큰 위키 사이트에 속도에 영향을 받을 수 있습니다)',
-       'config-cache-accel' => 'PHP 개체 캐싱 (APC, XCache 또는 WinCache)',
-       'config-cache-memcached' => 'Memcached 사용 (추가적인 설치와 설정이 필요합니다)',
-       'config-memcached-servers' => 'Memcached 서버:',
-       'config-memcached-help' => 'Memcached의 사용하기 위한 IP 주소 목록입니다.
-한 줄에 하나씩 사용할 포트를 지정해야 합니다. 예를 들어 :
- 127.0.0.1:11211
- 192.168.1.25:1234',
-       'config-memcache-needservers' => '캐시 종류로 Memcached를 선택했지만 어떠한 서버도 지정하지 않았습니다.',
-       'config-memcache-badip' => 'Memcached에 대해 잘못된 IP 주소를 입력했습니다: $1.',
-       'config-memcache-noport' => 'Memcached 서버에 사용할 포트를 지정하지 않았습니다: $1.
-포트를 모를 경우 기본값은 11211입니다.',
-       'config-memcache-badport' => 'Memcached 포트 번호는 $1(와)과 $2 사이여야 합니다.',
-       'config-extensions' => '확장 기능',
-       'config-extensions-help' => '위에 나열된 확장 기능이 <code>./extensions</code>에서 발견되었습니다.
-
-추가적인 설정이 필요할 수 있습니다만 지금 활성화시킬 수 있습니다.',
-       'config-install-alreadydone' => "'''경고:''' 이미 미디어위키를 설치했고 다시 설치하려고 합니다.
-다음 페이지에서 진행하세요.",
-       'config-install-begin' => '"{{int:config-continue}}"을 누르면 미디어위키의 설치를 시작합니다.
-그래도 바꾸는 것을 원한다면 "{{int:config-back}}"를 누르세요.',
-       'config-install-step-done' => '완료',
-       'config-install-step-failed' => '실패',
-       'config-install-extensions' => '확장 기능을 포함하는 중',
-       'config-install-database' => '데이터베이스를 설정하는 중',
-       'config-install-schema' => '스키마를 만드는 중',
-       'config-install-pg-schema-not-exist' => 'PostgreSQL 스키마가 존재하지 않습니다.',
-       'config-install-pg-schema-failed' => '테이블을 만드는 데 실패했습니다.
-"$2" 스키마에 쓸 수 있는 "$1" 사용자가 있는지 확인하세요.',
-       'config-install-pg-commit' => '바뀐 사항을 적용하는 중',
-       'config-install-pg-plpgsql' => 'PL/pgSQL 언어에 대해 확인하는 중',
-       'config-pg-no-plpgsql' => '$1 데이터베이스에 PL/pgSQL 언어를 설치해야 합니다',
-       'config-pg-no-create-privs' => '설치를 위한 지정한 계정에 계정을 만드는 데 충분한 권한이 없습니다,',
-       'config-pg-not-in-role' => '웹 사용자에 대해 지정한 계정이 이미 존재합니다.
-설치에 대한 지정한 사용자는 슈퍼 사용자가 아니고, 그것은 웹 사용자의 역할의 구성원이 아니며, 그래서 웹 사용자가 소유한 개체를 만들 수 없습니다.
-
-현재 미디어위키는 테이블을 웹 사용자가 소유해야 합니다. 다른 웹 계정 이름을 지정하거나 "뒤로"를 클릭하고 적절한 권한의 설치할 사용자를 지정하세요.',
-       'config-install-user' => '데이터베이스 사용자를 만드는 중',
-       'config-install-user-alreadyexists' => '"$1" 사용자가 이미 존재합니다',
-       'config-install-user-create-failed' => '"$1" 사용자 만드는 중 실패: $2',
-       'config-install-user-grant-failed' => '"$1" 사용자에 대한 권한 부여 실패: $2',
-       'config-install-user-missing' => '지정한 "$1" 사용자가 존재하지 않습니다.',
-       'config-install-user-missing-create' => '지정된 "$1" 사용자가 존재하지 않습니다.
-이를 만드는 것을 원하면 아래의 "계정 만들기" 확인 상자를 클릭하세요.',
-       'config-install-tables' => '테이블을 만드는 중',
-       'config-install-tables-exist' => "'''경고''': 미디어위키 테이블이 이미 있는 것 같습니다.
-테이블 만들기를 생략합니다.",
-       'config-install-tables-failed' => "'''오류''': 다음 오류와 함께 테이블 만들기에 실패했습니다: $1",
-       'config-install-interwiki' => '기본 인터위키 테이블을 채우는 중',
-       'config-install-interwiki-list' => '<code>interwiki.list</code> 파일을 불러올 수 없습니다.',
-       'config-install-interwiki-exists' => "'''경고''': 인터위키 테이블이 이미 항목을 갖고 있는 것 같습니다.
-기본 목록으로 넘어갑니다.",
-       'config-install-stats' => '통계를 초기화하는 중',
-       'config-install-keys' => '보안 키를 만드는 중',
-       'config-insecure-keys' => "'''경고:''' 설치 중에 생성한 {{PLURAL:$2|보안 키}} ($1)를 설치하는 동안 완전히 안전하지 {{PLURAL:$2|않습니다}}. 직접 바꾸기를 고려하세요.",
-       'config-install-sysop' => '관리자 사용자 계정을 만드는 중',
-       'config-install-subscribe-fail' => '미디어위키 발표를 구독할 수 없습니다: $1',
-       'config-install-subscribe-notpossible' => 'cURL이 설치되지 않았고 allow_url_fopen를 사용할 수 없습니다.',
-       'config-install-mainpage' => '기본 콘텐츠로 대문을 만드는 중',
-       'config-install-extension-tables' => '활성화된 확장 기능을 위한 테이블을 만드는 중',
-       'config-install-mainpage-failed' => '대문을 삽입할 수 없습니다: $1',
-       'config-install-done' => "'''축하합니다!'''
-미디어위키가 성공적으로 설치되었습니다.
-
-설치 프로그램이 <code>LocalSettings.php</code> 파일을 만들었습니다.
-모든 설정이 포함되어 있습니다.
-
-파일을 다운로드하여 위키 설치의 거점에 넣어야 합니다. (index.php와 같은 디렉터리) 다운로드가 자동으로 시작됩니다.
-
-다운로드가 제공되지 않을 경우나 그것을 취소한 경우에는 아래의 링크를 클릭하여 다운로드를 다시 시작할 수 있습니다:
-
-$3
-
-'''참고:''' 이 생성한 설정 파일을 다운로드하지 않고 설치를 끝내면 이 파일은 나중에 사용할 수 없습니다.
-
-완료되었으면 '''[$2 위키에 들어갈 수 있습니다]'''.",
-       'config-download-localsettings' => '<code>LocalSettings.php</code> 다운로드',
-       'config-help' => '도움말',
-       'config-nofile' => '"$1" 파일을 찾을 수 없습니다. 이미 삭제되었나요?',
-       'config-extension-link' => '당신의 위키가 [//www.mediawiki.org/wiki/Manual:Extensions 확장 기능]을 지원한다는 것을 알고 계십니까?
-
-전체 확장 기능의 목록을 확인하려면 [//www.mediawiki.org/wiki/Category:Extensions_by_category 분류별 확장 기능]이나 [//www.mediawiki.org/wiki/Extension_Matrix 확장 기능 표]를 찾아보실 수 있습니다.',
-       'mainpagetext' => "'''미디어위키가 성공적으로 설치되었습니다.'''",
-       'mainpagedocfooter' => '[//meta.wikimedia.org/wiki/Help:Contents 이곳]에서 위키 소프트웨어에 대한 정보를 얻을 수 있습니다.
-
-== 시작하기 ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings 설정하기 목록]
-* [//www.mediawiki.org/wiki/Manual:FAQ 미디어위키 FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce 미디어위키 발표 메일링 리스트]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources 내 언어로 미디어위키 지역화]',
-);
-
-/** Karachay-Balkar (къарачай-малкъар)
- * @author Iltever
- */
-$messages['krc'] = array(
-       'mainpagetext' => "'''«MediaWiki» тыйыншлы салынды.'''",
-       'mainpagedocfooter' => "Бу вики бла къалай ишлерге ангылатхан информацияны [//meta.wikimedia.org/wiki/Help:Contents_User's_Guide къошулуучугъа юретиуде] табаргъа боллукъду.
-
-== Файдалы ресурсла ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings тюрлендириулени списогу (ингил.)];
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-ни юсюнден кёб берилген соруула];
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-ни джангы версиясыны чыкъгъанын билдириу письмола].", # Fuzzy
-);
-
-/** Colognian (Ripoarisch)
- * @author Mormegil
- * @author Purodha
- * @author Reedy
- */
-$messages['ksh'] = array(
-       'config-desc' => 'Et Projramm för Mediwiki opzesäze.',
-       'config-title' => 'MediaWiki $1 opsäze',
-       'config-information' => 'Enfomazjuhn',
-       'config-localsettings-upgrade' => 'De Dattei <code lang="en"><code>LocalSettings.php</code></code> es ald doh.
-De Projramme vum Wiki künne op der neußte Shtand jebraat wääde:
-Donn doför dä Wäät vum <code lang="en">$wgUpgradeKey</code> en dat heh Feld enjävve.
-Do fenggs_et en dä Dattei <code lang="en"><code>LocalSettings.php</code></code> om ẞööver.',
-       'config-localsettings-cli-upgrade' => 'En Dattei <code lang="en"><code>LocalSettings.php</code></code> es jefonge woode.
-Öm et Wiki_Projramm op ene neue Shtand ze bränge, donn <code lang="en">update.php</code> oproofe.',
-       'config-localsettings-key' => 'Der Schlößel för et Projramm op ene neue Schtand ze bränge:',
-       'config-localsettings-badkey' => 'Dinge Schlößel paß nit.',
-       'config-upgrade-key-missing' => 'Mer han jefonge, dat MediaWiki ald enschtalleed es.
-Üm de Projramme un Daate o der neue Schtand bränge ze künne, dunn aan et Engk vun dä Dattei <code lang="en"><code>LocalSettings.php</code></code> op dämm ẞööver:
-
-$1
-
-aanhange.',
-       'config-localsettings-incomplete' => 'Mer han en Dattei <code lang="en"><code>LocalSettings.php</code>:</code> jefonge, ävver di schingk nit kumplätt ze sin.
-De Varijable <code lang="en">$1</code> es nit jesatz.
-Bes esu joot, un donn di Dattei esu aanpaße, dat se jesaz ea, un dann donn op „{{int:config-continue}}“ klecke.',
-       'config-localsettings-connection-error' => 'Ene Fähler es opjetrodde wi mer en Verbendung noh de Datebangk opmaache wullte met dä Enshtellunge uß dä Dattei <code lang="en">LocalSettings</code> udder uß dä Dattei <code lang="en">LocalSettings</code> un et hät nit jeflupp. Bes esu joot un dat repareere un versöhg et dann norr_ens.
-
-$1',
-       'config-session-error' => 'Ene Fähler es opjetrodde beim Aanmelde för en Sezung: $1',
-       'config-session-expired' => 'De Daate för Ding Setzung sinn wall övverholld of afjeloufe.
-De Setzungunge sin esu enjeshtallt, nit mieh wi $1 ze doore.
-Dat kanns De verlängere, endämm dat De de <code lang="en">session.gc_maxlifetime</code> en dä Dattei <code>php.ini</code> jrüüßer määß.
-Don dat Projramm för et Opsäze norr_ens aanschmiiße.',
-       'config-no-session' => 'De Daate för Ding Setzung sinn verschött jejange.
-Donn en dä Dattei <code>php.ini</code> nohloore, ov dä <code lang="en">session.save_path</code> op e zopaß Verzeijschneß zeisch.',
-       'config-your-language' => 'Ding Schprooch:',
-       'config-your-language-help' => 'Donn heh di Shprooch ußsöhke, di dat Enshtallzjuhnsprojramm kalle sull.',
-       'config-wiki-language' => 'Dem Wiki sing Shprooch:',
-       'config-wiki-language-help' => 'Donn heh di Shprooch ußsöhke, di et Wiki shtandattmääßesch kalle sull.',
-       'config-back' => '← Retuur',
-       'config-continue' => 'Wigger →',
-       'config-page-language' => 'Schprooch',
-       'config-page-welcome' => 'Wellkumme beim MediaWiki!',
-       'config-page-dbconnect' => 'Met dä Daatebangk Verbenge',
-       'config-page-upgrade' => 'En Inshtallzjuhn op der neuste Shtand bränge',
-       'config-page-dbsettings' => 'Parrameeter för de Daatebangk',
-       'config-page-name' => 'Name',
-       'config-page-options' => 'Ennställunge',
-       'config-page-install' => 'Opsäzze',
-       'config-page-complete' => 'Fäädesch!',
-       'config-page-restart' => 'Et Opsäze norr_ens neu aanfange',
-       'config-page-readme' => 'Donn mesch lässe! (<i lang="en">read me</i>)',
-       'config-page-releasenotes' => 'Henwies för heh di Version vum Projramm (<i lang="en">Release notes</i>)',
-       'config-page-copying' => 'Ben aam Kopeere',
-       'config-page-upgradedoc' => 'Ben op der neuste Stand aam bränge',
-       'config-page-existingwiki' => 'Mer han ald e Wiki!',
-       'config-help-restart' => 'Wells De all Ding enjejovve Sachee fottjeschmesse han, un dä janze Vörjang vun fürre aan neu aanfange?',
-       'config-restart' => 'Joh, neu aanfange!',
-       'config-welcome' => '=== Ömjevong Prööfe ===
-Mer maache en Aanzal jrundlääje Prövunge, öm erus ze fenge, ov di Ömjevong heh paß, för Mediawiki opzesäze.
-Wann de Hölp bem Opsäze bruchs, donn wigger ssare, wat erus kohm, wat heh shteiht.',
-       'config-copyright' => "=== Urhävverrääsch un Lizänzbedengunge ===
-
-\$1
-
-Dat  Projramm heh es frei, mer kann et wiggerjävve un verdeijle un och verändere ungger dä Bedengunge vun de  GNU <i lang=\"en\">General Public License</i> (Alljemeine öffentlesche Lizänz) wi se vun de <i lang=\"en\">Free Software Foundation</i> (de Shteftung för frei Projramme) veröffentlesch woode es. Dobei kanns De Der de Version 2 vun dä Lizanz ußsöhke, udder jeede Version donoh, wi et Der jefällt.
-
-Dat Projramm weed wigger jejovve met dä Hoffnung, dat et jät nöz, ävver '''ohne Jarrantie''', sujaa ohne de onußjeshproche Jarantie, '''verkoufbaa''' ze sin, udder '''för öhnds_ene beshtemmpte Zweck ze bruche''' ze sin.
-Liß de GNU <i lang=\"en\">General Public License</i> sellver, öm mieh ze erfahre.
-
-Do sullts en <doclink href=Copying>Kopie vun dä alljemene öffentlesche Lizänz vun dä GNU</doclink> (<i lang=\"en\">GNU General Public License</i>) zosamme met heh däm Projramm krääje han. Wann dat nit esu es, schrief aan de <i lang=\"en\">Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA</i>. udder [http://www.gnu.org/copyleft/gpl.html liß se online övver et Internet].",
-       'config-sidebar' => '* [//www.mediawiki.org MediaWiki sing Hompäjdsch]
-* [//www.mediawiki.org/wiki/Help:Contents Handbooch för Aanwender]
-* [//www.mediawiki.org/wiki/Manual:Contents Handbooch för Administratore un Wiki_Köbesse]
-* [//www.mediawiki.org/wiki/Manual:FAQ Öff jeshtallte Froore met Antwoote]
-----
-* <doclink href=Readme>Liß Mesch! (<i lang="en">Read me</i>)</doclink>
-* <doclink href=ReleaseNotes><i lang="en">Release notes</i> Övver heh di Projrammversion</doclink>
-* <doclink href=Copying><i lang="en">Copying</i> — Lizänzbeshtemmunge</doclink>
-* <doclink href=UpgradeDoc><i lang="en">Upgrading</i> — Ob en neu Projrammversion jonn</doclink>',
-       'config-env-good' => 'De Ömjävung es jeprööf.
-Do kanns MediaWiki opsäze.',
-       'config-env-bad' => 'De Ömjävung es jeprööf.
-Do kanns MediaWiki nit opsäze.',
-       'config-env-php' => 'PHP $1 es doh.',
-       'config-env-php-toolow' => 'PHP $1 es enshtalleert.
-Ävver MediaWiki bruch PHP $2 udder hühter.',
-       'config-unicode-using-utf8' => 'För et <i lang="en">Unicode</i>-Nommaliseere dom_mer däm <i lang="en">Brion Vibber</i> sing Projramm <code lang="en">utf8_normalize.so</code> nämme.',
-       'config-unicode-using-intl' => 'För et <i lang="en">Unicode</i>-Nommaliseere dom_mer dä [http://pecl.php.net/intl Zohsaz <code lang="en">intl</code> uss em <code lang="en">PECL</code>] nämme.',
-       'config-unicode-pure-php-warning' => '\'\'\'Opjepaß:\'\'\' Mer kunnte dä [http://pecl.php.net/intl Zohsaz <code lang="en">intl</code> uss em <code lang="en">PECL</code>] för et <i lang="en">Unicode</i>-Nommaliseere nit fenge. Dröm nämme mer dat eijfache, ävver ärsh lahme, <i lang="en">PHP</i>-Projrammshtöck doför.
-För jruuße Wikis met vill Metmaachere doht Üsch die Sigg övver et [//www.mediawiki.org/wiki/Unicode_normalization_considerations <i lang="en">Unicode</i>-Nommaliseere] (es op Änglesch) aanloore.',
-       'config-unicode-update-warning' => "'''Opjepaß:''' Dat Projramm för der <i lang=\"en\">Unicode</i> zo normaliseere boud em Momang op en  ählter Version vun dä Bibliothek vum [http://site.icu-project.org/ ICU-Projäk] op.
-Doht di [//www.mediawiki.org/wiki/Unicode_normalization_considerations op der neuste Shtand bränge], wann auf dat Wiki em Äänz <i lang=\"en\">Unicode</i> bruche sull.",
-       'config-no-db' => 'Mer kunnte kei zopaß Daatebangk-Driiverprojamm fenge.
-Mer bruche e Daatebangk-Driiverprojamm för PHP. Dat moß enjeresht wääde.
-Mer künne met heh dä Daatebangke ömjonn: $1.
-
-Wann De nit om eijene Rääshner bes, moß De Dinge <i lang="en">provider</i> bedde, dat hä Der ene zopaß Driiver enresht.
-Wann de PHP sellver övversaz häs, donn e Zohjangsprjramm för en Daatebangk enbenge, för e Beishpell met: <code  lang="en">./configure --with-mysql</code> op ene <i lang="en">command shell</i>.
-Wann De PHP uss enem <i lang="en">Debian</i> udder <i lang="en">Ubuntu</i> Pakätt enjeresht häs, moß De dann och noch et <code lang="en">php5-mysql</code> op Dinge Räschner bränge.',
-       'config-outdated-sqlite' => '\'\'\'Opjepaß:\'\'\' <i lang="en">SQLite</i> $1 es enschtaleert. Avver MediaWiki bruch <i lang="en">SQLite</i> $2 udder hühter. <i lang="en">SQLite</i> kann dröm nit enjesaz wääde.',
-       'config-no-fts3' => "'''Opjepaß:''' De Projramme vum <i lang=\"en\">SQLite</i> sin der ohne et [//sqlite.org/fts3.html FTS3-Modul] övversaz, dröm wääde de Funxjohne för et Söhke fähle.",
-       'config-register-globals' => "'''Opjepaß:''' dem PHP singe Schallder <code lang=\"en\">[http://php.net/register_globals register_globals]</code> es enjeschalldt.
-'''Donn dä ußmaache, wann De kann.'''
-MediaWiki löp och esu, dä künnt ävver Sesherheitslöcke opmaache, di mer noch nit jefonge un eruß jemaat hät.",
-       'config-magic-quotes-runtime' => "'''Dä!''' Dem PHP singe Schallder <code lang=\"en\">[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]</code> es enjeschalldt.
-Dä määt enjejovve Daate kapott, un doh draan kam_mer dann nix mieh repareere.
-Domet kam_mer MediaWiki nit ennreeshte un och nit loufe lohße.
-Dat heiß, mer moß en affschallde, söns jeiht nix.",
-       'config-magic-quotes-sybase' => "'''Dä!''' Dem PHP singe Schallder <code lang=\"en\">[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]</code> es enjeschalldt.
-Dä määt enjejovve Daate kapott, un doh draan kam_mer dann nix mieh repareere.
-Domet kam_mer MediaWiki nit ennreeshte un och nit loufe lohße.
-Dat heiß, mer moß en affschallde, söns jeiht nix.",
-       'config-mbstring' => "'''Dä!''' Dem PHP singe Schallder <code lang=\"en\">[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]</code> es enjeschalldt.
-Dat sorresch för Fähler un kann enjejovve Daate esu kapott maach, dat doh draan nix mieh ze repareere es.
-Domet kam_mer MediaWiki nit ennreeshte un och nit loufe lohße.
-Dat heiß, mer moß en affschallde, söns jeiht nix.",
-       'config-ze1' => "'''Dä!''' Dem PHP singe Schallder <code lang=\"en\">[http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]</code> es enjeschalldt.
-Dat sorresch för schräcklejje Fähler em MediaWiki.
-Dat kam_mer domet nit ennreeshte un och nit loufe lohße.
-Dat heiß, mer moß en affschallde, söns jeiht nix.",
-       'config-safe-mode' => "'''Opjepaß:''' Dem PHP singe <code lang=\"en\">[http://www.php.net/features.safe-mode safe mode]</code> es aanjeschalldt. Dat kann Ärjer maache, besönders beim Datteie Huhlaade bei de Ongershtözung för <code lang=\"en\">math</code>-Befähle.",
-       'config-xml-bad' => 'Dem PHP sing XML-Modul es nit ze fenge.
-MediaWiki bruch Funxjohne en däm Modul un deiht et esu nit.
-Wann De <i lang="en">Mandrake</i> aam loufehäs, donn dat Pakätt <code lang="en">php-xml</code> enstalleere.',
-       'config-pcre' => 'Dem PHP sing Modul för <i lang="en">PCRE</i> schingk ze fähle.
-MediaWiki deiht et nit der ohne de Funxjohne för de rejolähre Ußdrök vun dä Zoot, wi <i lang="en">Perl</i> se kännt.',
-       'config-pcre-no-utf8' => "'''Dä:''' Et PHP-Modul <i lang=\"en\">PCRE</i> schingk ohne de <i lang=\"en\">PCRE_UTF8</i>-Aandeile övversaz ze sin.
-MediaWiki bruch dä UTF-8-Krohm ävver, öm ohne Fähler loufe ze künne.",
-       'config-memory-raised' => 'Der jrühzte zohjelasse Shpeisherbedarf vum PHP, et <code lang="en">memory_limit</code>, shtund op $1 un es op $2 erop jesaz woode.',
-       'config-memory-bad' => "'''Opjepaß:''' Dem PHP singe Parameeter <code lang=\"en\">memory_limit</code> es \$1.
-Dat es wall ze winnisch.
-Et Enreeschte kunnt doh draan kappott jon!",
-       'config-ctype' => "'''Fähler:''' <i lang=\"en\">PHP</i> moß met dä Ongerschtözong för der [http://www.php.net/manual/en/ctype.installation.php <code lang=\"en\">Ctype</code> Zohsaz] övversaz woode sin.",
-       'config-xcache' => 'Dä <code lang="en">[http://xcache.lighttpd.net/ XCache]</code> es ennjeresht.',
-       'config-apc' => 'Dä <code lang="en">[http://www.php.net/apc APC]</code> es ennjeresht.',
-       'config-wincache' => 'Dä <code lang="en">[http://www.iis.net/download/WinCacheForPhp WinCache]</code> es ennjeresht.',
-       'config-no-cache' => '\'\'\'Opjepaß:\'\'\' Mer kunnte dä <code lang="en">[http://www.php.net/apc APC]</code>, dä <code lang="en">[http://xcache.lighttpd.net/ XCache]</code> un dä <code lang="en">[http://www.iis.net/download/WinCacheForPhp WinCache]</code> nit fenge.
-Et <i lang="en">object caching</i> es nit müjjelesh un ußjeschalldt.',
-       'config-mod-security' => "'''Opjepaß''': Dinge Webßööver hät <code lang=\"en\">[http://modsecurity.org/ mod_security]</code> enjeschalldt. Wann doh derbei en Enschtällong nit janz akeraat paßß, dann kann et goot sin, dat mer Probleme met MeedijaWiki un oc met ander Projramme kritt, die zohlööt, dat vun ußerhallef öhndsene Krohm op dä Webßööver jebraat wääde künnt.Beloor Der di Sigg <code lang=\"en\">[http://modsecurity.org/documentation/ mod_security documentation]</code> udder donn met dä Fachlück för Dinge Webßööver kalle, wann zohfälleje un koomijje Fähler bemerke deihß.",
-       'config-diff3-bad' => 'Mer han <i lang="en">GNU</i> <code lang="en">diff3</code> nit jefonge.',
-       'config-git' => 'Mer han de Väsjohn <code>$1</code> vun däm Väsjohnsverwalldongsprojamm <i lang="en">Git</i> jefonge.',
-       'config-git-bad' => 'Dat Väsjohnsverwalldongsprojamm <i lang="en">Git</i> ham_mer nit jefonge.',
-       'config-imagemagick' => 'Mer han <i lang="en">ImageMagick</i> jefonge: <code>$1</code>.
-Et Ömrääschne en Minni-Beldsche weed müjjelesch sin, wann De et Belder Huhlaade zohlöhß.',
-       'config-gd' => 'Mer han de ennjeboute GD-Jrafik-Projramm-Biblijotheek jefonge.
-Et Ömrääschne en Minni-Beldsche weed müjjelesch sin, wann De et Belder Huhlaade zohlöhß.',
-       'config-no-scaling' => 'Mer han weeder de GD-Jrafik-Projramm-Biblijotheek, noch <i lang="en">ImageMagick</i> jefonge.
-Et Ömrääschne en Minni-Beldsche weed ußjeschalldt.',
-       'config-no-uri' => "'''Fähler:''' Mer kunnte der aktoälle <i lang=\"en\">URI</i> nit erusfenge.
-Et Enreeschte es domet heh aam Engk.",
-       'config-no-cli-uri' => "'''Opjepaß''': <code lang=\"en\">--scriptpath</code> es nit aanjejovve, mer nämme der Schtandatt: <code>\$1</code>.",
-       'config-using-server' => 'Mer nämmen dem ẞööver singe Name: „<nowiki>$1</nowiki>“.',
-       'config-using-uri' => 'Mer nämmen dem ẞööver singe <i lang="en">URL</i>: „<nowiki>$1$2</nowiki>“.',
-       'config-uploads-not-safe' => "'''Opjepaß:''' Uß däm jewöhnlijje Verzeichnes för de huhjelaade Datteie, dat es <code>$1</code>, künnte öhnzwällsche Skrepte un Projramme ußjeföhrt wääde. Och wann MediaWiki de huhjelaade Datteie prööf, dat kein bekannte Risike dren sin, sullt mer doch dat [//www.mediawiki.org/wiki/Manual:Security#Upload_security Sesherheitsloch] zoh maache, ih dat mer et Dattei Huhlaade zohlöht.",
-       'config-no-cli-uploads-check' => "'''Opjepaß''': <code>\$1</code> es dat Schtandatt-Verzeijschneß för et Datteije-Huhlaade. Beim Opsäze met <abbr lang=\"en\" title=\"Call Level Interface\">CLI</abbr> donn mer ävver nit övverpröhve, dat dat jeschöz es dojääje, dat Skrepte vun doh loufe künne, di mer nit loufe han well.",
-       'config-brokenlibxml' => 'Op Dingem Rääschner loufe Versione vun PHP un <code lang="en">libxml2</code> zosamme, di ävver nit zosamme paßße, un de Daate em MediaWiki un ander Web_Aanwändunge [//bugs.php.net/bug.php?id=45996 bug kapott maache].
-Jangk op PHP 5.2.9 udder dohnoh un op <code lang="en">libxml2</code> 2.7.3 udder dohnoh.
-Heh jeihd et nit wigger.',
-       'config-using531' => 'MediaWiki läuf nit met PHP $1 zosamme wääje enem [//bugs.php.net/bug.php?id=50394 Fähler em Zosammehang met Parrameetere för <code lang="en">__call()</code>].
-Jangk op de Version 5.3.2 vum <i lang="en">PHP</i> ov dohnoh, udder op de Version 5.3.0 udder dovöör, öm dat Problem ze ömjonn.
-Heh jeiht et nit wigger.',
-       'config-suhosin-max-value-length' => '<i lang="en">Suhosin</i> es enschtalleet. Dröm kann ene <code lang="en">GET</code>-Parrameeter nit övver {{PLURAL:$1|ei Byte|$1 Bytes|noll Byte}} lang wääde. Dem MediaWiki singe <i lang="en">ResourceLoader</i> kütt doh zwa drömeröm, ävver dat bräms. Wann müjelesch, doht <code lang="en">suhosin.get.max_value_length</code> en dä Dattei <code lang="en">php.ini</code> op 1024 Bytes udder drövver enschtälle, un dann moß <code lang="en">$wgResourceLoaderMaxQueryLength</code> en dä Dattei <code lang="en">LocalSettings.php</code> op däsälve Wäät jesaz wääde.',
-       'config-db-type' => 'De Zoot Daatebangk:',
-       'config-db-host' => 'Dä Name vun däm Rääschner met dä Daatebangk:',
-       'config-db-host-help' => 'Wann Dinge ẞööver för de Daatebangk ob enem andere Rääschner es, donn heh dämm singe Name udder dämm sing <i lang="en">IP</i>-Addräß enjävve.
-
-Wann De ob enem Meetẞööver beß, weet Der Dinge Provaider odder däm sing Dokemäntazjuhn saare, wat De endraare moß.
-
-Wann De ob enem ẞööver onger <i lang="en">Windows</i> am enshtalleere bes un en <i lang="en">MySQL</i>-Daatebangk häs, künnd_et sin, dat „<code lang="en">localhost</code>“ nit douch för der Name vum ẞööver. Wann dad-esu es, versöhg et ens met „<code lang="en">127.0.0.1</code>“ als <i lang="en">IP</i>-Addräß vum eije Rääschner.
-
-Wann De ene <i lang="en">PostgreSQL</i>-ẞööver häs, donn dat Fäld läddesch lohße, öm en Verbendung övver e <i lang="en">Unix socket</i> opzemaache.',
-       'config-db-host-oracle' => 'Dä Daatebangk ier <i lang="en" title="Transparent Network Substrate">TNS</i>:',
-       'config-db-host-oracle-help' => 'Donn ene jöltije [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm „<i lang="en">Local Connect</i>“-Name] aanjävve. De Dattei „<code lang="en">tnsnames.ora</code>“ moß för heh dat Projamm seschbaa un ze Lässe sin.<br />Wann heh de Projamm_Biblijoteeke für de Aanwänderprojramme för de Version 10g udder neuer enjesaz wääde, kam_mer och et [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm „<i lang="en">Easy Connect</i>“] jenumme wääde för der Name ze verjävve.',
-       'config-db-wiki-settings' => 'De Daate vum Wiki',
-       'config-db-name' => 'Dä Name vun dä Daatebangk:',
-       'config-db-name-help' => 'Jiff ene Name aan, dä för Ding Wiki passe deiht.
-Doh sullte kei Zweschrereum un kein Stresche dren sin.
-
-Wann De nit op Dingem eije Rääschner bes, künnt et sin, dat Dinge Provaider Der extra ene beshtemmpte Name för de Daatebangk jejovve hät, uffr dat de dä drom froore moß udder dat De de Daatebangke övver e Fommulaa selver enreeschte moß.',
-       'config-db-name-oracle' => 'Schema för de Daatebangk:',
-       'config-db-account-oracle-warn' => 'Mer han drei Aate, wi mer <i lang="en">Oracle</i> als Daatebangk aanbenge künne.
-
-Wann De ene neue Zohjang op de Daatenbangk met Naame un Paßwoot mem Projramm för et Opsäze aanlääje wells, dann jif ene Zohjang met däm Rääsch „<i lang="en">SYSDBA</i>“ aan, dä et alld jitt, un jif däm di Daate aan för dä neue Zohjang aanzelääje.
-Do kanns och dä neue Zohjang vun Hand aanlääje un heh beim Opsäze nur dää aanjävve — wann dä dat Rääsch hät, en de Daatebangk Schema_Objäkte aanzelääje.
-Udder De jiß zwei ongerscheidlijje Zohjäng op de Daatenbangk aan, woh eine vun dat Rääsch zom Aanlääje hät un dä andere moß dat nit un es för der nomaale Bedrief zohshtändesch.
-
-En Skrep, wat ene Zohjang op de Daatenbangk aanlääsch met all dä nüüdejje Rääschde, fengks De em Verzeishneß <code lang="en">maintenance/oracle/</code> vun Dingem MediaWiki. Donn draan dengke, dat ene Zohjang met beschrängkte Rääschde all di Müjjeleschkeite för et Waade un Repareere nit hät, di de jewöhnlejje Zoot Zohjang met sesh brängk.',
-       'config-db-install-account' => 'Der Zohjang för en Enreeschte',
-       'config-db-username' => 'Dä Name vun däm Aanwender för dä Zohjref op de Daatebangk:',
-       'config-db-password' => 'Et Paßwoot vun däm Aanwender för dä Zohjref op de Daatebangk:',
-       'config-db-password-empty' => 'Jiv e Paßwoot aan, för dä neue Aanwender för dä Zohjref op de Daatebangk, $1.
-Ed es zwa müjjelesch, Aanwender för dä Zohjref op de Daatebangk der ohne e Paßwoot aanzelääje,
-ävver dat wöhr en schwere Jevah för de Sescherheit vum Wiki.',
-       'config-db-install-username' => 'Jiv ene Name aan för dä Aanwender för dä Zohjref op de Daatebangk beim Enshtalleere.
-Dat es keine Metmaacher_Name em Wiki — heh dä Name es alleins en der Daatebangk bikannt.',
-       'config-db-install-password' => 'Jiv e Paßwoot aan för dä Aanwender för dä Zohjref op de Daatebangk beim Enshtalleere.
-Dat es kei Paßwoot för ene Metmaacher em Wiki — et es alleins en der Daatebangk bikannt.',
-       'config-db-install-help' => 'Donn dä Name un et Paßwoot vun däm Aanwänder för der Zohjreff op de Daatebangk jäz för et Enreeshte aanjävve.',
-       'config-db-account-lock' => 'Donn dersälve Name un et sälve Paßwoot för der nomaale Bedrief vum Wiki bruche',
-       'config-db-wiki-account' => 'Dä Name vun däm Aanwender för dä Zohjref op de Daatebangk em nomaale Bedrief:',
-       'config-db-wiki-help' => 'Jiv ene Name un e Paßwoot aan, för dä Aanwender för dä Zohjref op de Daatebangk, wann et wiki nommaal aam Loufe es.
-Wan et dä Name en der Daatebangk noch it jit, un dä Aanwender för dä Zohjref op de Daatebangk beim Enshtalleere
-jenooch Beräschtijunge hät, läät dä heh dä Aanwender en der Daatebangk aan un jidd_em di Rääschde, di dä nüüdesch hät, ävver nit mieh.',
-       'config-db-prefix' => 'Vörsaz för de Name vun de Tabälle en de Daatebangk:',
-       'config-db-prefix-help' => 'Wann ein Daatebangk för mieh wi ein Wiki udder e Wiki uns söns jät zosamme jebruch weed, dann kam_mer noch jet vör de Tabälle ier Name säze. Esu ene Vörsaz sull dubblte Tabällename vermeide hälfe.
-Donn kein Zwescheräum enjävve!
-
-Jewöhnlesch bliev dat Feld heh ävver läddesch.',
-       'config-db-charset' => 'Dä Daatebangk iere Zeishesaz',
-       'config-charset-mysql5-binary' => 'MySQL (4.1 udder 5.0) binär',
-       'config-charset-mysql5' => 'MySQL (4.1 udder 5.0) UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 röckwääts kompatibel UTF-8',
-       'config-charset-help' => "''' Opjepaß:'''
-Wann De et '''röckwääts kompatibel UTF-8 Fommaat''' nemmps, met dem <i lang=\"en\">MySQL</i> singe Version4.1 udder hüüter, dann künnt dat all di Zeishe kappott maache, die nit em <i lang=\"en\" title=\"American Standard Code for Information Interchange\">ASCII</i> sen, un domet all ding Sesherungskopieje kapott maache, wat mer nieh mieh retuur krijje kann.
-
-Beim Shpeishere em '''binäre Fomaat''' deiht MediaWiki de Täxte, di em UTF-8 Fommaat kumme, en dä Daatebangk en binär kodeerte Daatefälder faßhallde.
-Dat es flöcker un spaasaamer wi et UTF-8 Fommaat vum <i lang=\"en\">MySQL</i> un määd et müjjelesch, all un jeedes <i lang=\"en\">Unicode</i>-Zeishe met faßzehallde.
-
-Beim Shpeishere em '''UTF-8 Fomaat''' deiht et <i lang=\"en\">MySQL</i> der Zeishesaz un de Kodeerung vun dä Daate känne, un kann se akeraat aanzeije un ömwandelle,
-allerdengs künne kein Zeishe ußerhalv vum [//de.wikipedia.org/wiki/Basic_Multilingual_Plane#Gliederung_in_Ebenen_und_Bl.C3.B6cke jrundlääje Knubbel för vill Shprooche (<i lang=\"en\">Basic Multilingual Plane — BMP</i>)] afjeshpeishert wääde.",
-       'config-mysql-old' => 'Mer bruche <i lang="en">MySQL</i> $1 udder neuer. Em Momang es <i lang="en">MySQL</i> $2 aam Loufe.',
-       'config-db-port' => 'De Pooz-Nommer (<i lang="en">port</i>) för de Daatebangk:',
-       'config-db-schema' => 'Et Schema en de Datebangk för MediaWiki:',
-       'config-db-schema-help' => 'För jewöhnlesch es dat Schema en Odenong.
-Donn bloß jät draan ändere, wann De sescher weiß, dat dat nüüdesch es.',
-       'config-pg-test-error' => "Mer krijje kein Verbendung zor Daatebank '''$1''': $2",
-       'config-sqlite-dir' => 'Dem <i lang="en">SQLite</i> sing Daateverzeishnes:',
-       'config-sqlite-dir-help' => '<i lang="en">SQLite</i> hät all sing Daate zosamme en en einzel Dattei.
-
-En dat Verzeishneß, wat De aanjiß, moß dat Web_ẞööver_Projramm beim Opsäze eren schriive dörrve.
-
-Dat Verzeishneß sullt \'\'\'nit\'\'\' övver et Web zohjänglesch sin, dröm dom_mer et nit dohen, woh de <i lang="en">PHP</i>-Datteije sin.
-
-Mer donn beim Opsäze zwa uß Vöörssh en <code lang="en">.htaccess</code> Dattei dobei, ävver wann di nit werrek, künnte Lück vun ußerhallef aan Ding Daatebangk_Dattei eraan kumme.
-Doh shtonn Saache dren, wi de Addräße för de Metmaacher ier <i lang="en">e-mail</i> un de verschlößelte Paßwööter un de vershtoche un de fottjeschmeße Sigge un ander Saache ussem Wiki, di mer nit öffentlesch maache darref.
-
-Donn Ding Daatebangk et beß janz woh anders hen, noh <code lang="en">/var/lib/mediawiki/\'\'wikiname\'\'</code> för e Beishpell.',
-       'config-oracle-def-ts' => 'Tabälleroum för der Shtandattjebruch:',
-       'config-oracle-temp-ts' => 'Tabälleroum för der Jebruch zweschedorsh:',
-       'config-type-mysql' => '<i lang="en">MySQL</i>',
-       'config-type-postgres' => '<i lang="en">PostgreSQL</i>',
-       'config-type-sqlite' => '<i lang="en">SQLite</i>',
-       'config-type-oracle' => '<i lang="en">Oracle</i>',
-       'config-support-info' => 'MediaWiki kann met heh dä Daatebangk_Süßteeme zosamme jonn:
-
-$1
-
-Wann dat Daatebangk_Süßteem, wat De nämme wells, onge nit dobei es, dann donn desch aan di Aanleidonge hallde, di bovve verlengk sen, öm et op Dingem ẞööver singem Süßteem müjjelesh ze maache, se aan et Loufe ze krijje.',
-       'config-support-mysql' => '* <i lang="en">$1</i> es dat vum MediaWiki et eets ongershtöz Daatebangksüßteem ([http://www.php.net/manual/de/mysql.installation.php Aanleidung för et Övversäze un Enreeschte von PHP met <i lang="en">MySQL</i> dobei, op Deutsch])',
-       'config-support-postgres' => '* <i lang="en">$1</i> es e bikannt Daatebangksüßteem met offe Quälltäxde, un en och en Wahl nävve <i lang="en">MySQL</i> ([http://www.php.net/manual/de/pgsql.installation.php Aanleidung för et Övversäze un Enreeschte von PHP met <i lang="en">PostgreSQL</i> dobei, op Deutsch]) Et sinn_er ävver paa klein Fählershe bekannt, um kunne dat em Momang för et reschtijje Werke nit emfähle.',
-       'config-support-sqlite' => '* <i lang="en">$1</i> es e eijfach Daatebangksüßteem, wat joot ongershtöz weed. ([http://www.php.net/manual/de/pdo.installation.php Aanleidong för et Övversäze un Enreeschte von PHP met <i lang="en">SQLite</i> dobei, op Deutsch])',
-       'config-support-oracle' => '* <i lang="en">$1</i> es e jeschäfflesch Daatebangksüßteem för Ferme. ([http://www.php.net/manual/de/oci8.installation.php Aanleidong för et Övversäze un Enreeschte von PHP met <i lang="en">OCI8</i> dobei, op Deutsch])',
-       'config-header-mysql' => 'De Enshtällunge för de <i lang="en">MySQL</i> Daatebangk',
-       'config-header-postgres' => 'De Enshtällunge för de <i lang="en">PostgreSQL</i> Daatebangk',
-       'config-header-sqlite' => 'De Enshtällunge för de <i lang="en">SQLite</i> Daatebangk',
-       'config-header-oracle' => 'De Enshtällunge för de <i lang="en">Oracle</i> Daatebangk',
-       'config-invalid-db-type' => 'Dat es en onjöltijje Zoot Daatebangk.',
-       'config-missing-db-name' => 'Do moß jät enjävve för dä Name vun dä Daatebangk.',
-       'config-missing-db-host' => 'Do moß jät enjävve för dä Name vun däm Rääschner met dä Daatebangk.',
-       'config-missing-db-server-oracle' => 'Do moß jät enjävve för dä Daatebangk ier <i lang="en" title="Transparent Network Substrate">TNS</i>.',
-       'config-invalid-db-server-oracle' => 'Dä Daatebangk ier <i lang="en" title="Transparent Network Substrate">TNS</i> kann nit „$1“ sin, dat es esu nit jöltesch.
-Döh dörve bloß <i lang="en" title="American Standard Code for Information Interchange">ASCII</i> Boochshtaabe (a-z, A-Z), Zahle (0-9), Ongerstreshe (_), un Punkte (.) dren vörkumme.',
-       'config-invalid-db-name' => 'Dä Daatebangk iere Name kann nit „$1“ sin, dä es esu nit jöltesch.
-Döh dörve bloß <i lang="en" title="American Standard Code for Information Interchange">ASCII</i> Boochshtaabe (a-z, A-Z), Zahle (0-9), Ongerstresh (_), un Bendeshtresh (-) dren vörkumme.',
-       'config-invalid-db-prefix' => 'Dä Vörsaz för de Name vun de Tabälle en de Daatebangk kann nit „$1“ sin, dä es esu nit jöltesch.
-Döh dörve bloß <i lang="en" title="American Standard Code for Information Interchange">ASCII</i> Boochshtaabe (a-z, A-Z), Zahle (0-9), Ongerstreshe (_), un Bendeshtreshe (-) dren vörkumme.',
-       'config-connection-error' => '$1.
-
-Donn de Name för dä Rääschner, vun däm Aanwender för dä Zohjref op de Daatebangk, un et Paßwoot prööfe, repareere, un dann versöhg et norr_ens.',
-       'config-invalid-schema' => 'Dat Schema för MediaWiki kann nit „$1“ sin, dä Name wöhr esu nit jöltesch.
-Döh dörve bloß <i lang="en" title="American Standard Code for Information Interchange">ASCII</i> Boochshtaabe (a-z, A-Z), Zahle (0-9), un Ongerstreshe (_) dren vörkumme.',
-       'config-db-sys-create-oracle' => 'Dat Projramm för MediaWiki opzesäze kann bloß <i lang="en">SYSDBA</i> bruche för ene neue Zohjang zor Daatebangk enzereeschte!',
-       'config-db-sys-user-exists-oracle' => 'Dä Aanwender „$1“ för dä Zohjref op de Daatebangk jidd_et ald. <i lang="en">SYSDBA</i> kam_mer bloß bruche, för ene neue Zohjang enzereeschte!',
-       'config-postgres-old' => 'Mer bruche <i lang="en">PostgreSQL</i> $1 udder neuer. Em Momang es <i lang="en">PostgreSQL</i> $2 aam Loufe.',
-       'config-sqlite-name-help' => 'Söhk enen Name uß, dä Ding Wiki beschrief.
-Donn kein Bendeschresch un Zweschräum en däm Name bruche.
-Dä Name weed för der Dateiname för de <i lang="en">SQLite</i> Daatebangk jenumme.',
-       'config-sqlite-parent-unwritable-group' => 'Mer kunnte dat Verzeischneß för de Daate, <code lang="en"><nowiki>$1</nowiki></code>, nit enreeschte, weil dat Projramm fö dä Web_ẞööver en dat Verzeischneß doh drövver, <code><nowiki>$2</nowiki></code>, nix erin donn darref.
-
-Mer han dä Name vun däm Zohjang op et Süßteem eruß jefonge, onger dämm dat Web_ẞööver_Projramm läuf. Jez moß De bloß doför sorrje, dat dä en dat Verzeischneß  <code><nowiki>$3</nowiki></code> schrieve kann, öm heh wigger maache ze künne.
-Ob enem Süßteem met <i lang="en">Unix</i>- oder <i lang="en">Linux</i> jeiht dat esu:
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Mer kunnte dat Verzeischneß för de Daate, <code lang="en"><nowiki>$1</nowiki></code>, nit enreeschte, weil dat Projramm fö dä Web_ẞööver en dat Verzeischneß doh drövver, <code><nowiki>$2</nowiki></code>, nix erin donn darref.
-
-Mer han dä Name vun däm Zohjang op et Süßteem nit eruß fenge künne, onger dämm dat Web_ẞööver_Projramm läuf. Jez moß De bloß doför sorrje, dat dä en dat Verzeischneß  <code><nowiki>$3</nowiki></code> schrieve kann, öm heh wigger maache ze künne. Wann De dä Name och nit weiß, maach, dat jeeder_ein doh schrieve kann.
-Ob enem Süßteem met <i lang="en">Unix</i>- oder <i lang="en">Linux</i> jeiht dat esu:
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Ene Fähler es opjetrodde beim Aanlääje vum Daate_Verzeishneß „$1“.
-Don dä Plaz för et Shpeishere prööfe un Repareere, dann versöhg et norr_ens.',
-       'config-sqlite-dir-unwritable' => 'Mer künne nit en dat Verzeishneß „$1“ schrieeve
-Donn dohvun de Zohjreffs_Rääschde esu verändere, dat der Webßööver doh dren schrieeve kann, un dann versöhg et norr_ens.',
-       'config-sqlite-connection-error' => '$1.
-
-Donn onge dat Verzeishnes un der Name vun der Daatebangk prööfe un repareere, un dann versöhg_et norr-ens.',
-       'config-sqlite-readonly' => 'En di Dattei <code lang="en">$1</code> künne mer nit schrieve.',
-       'config-sqlite-cant-create-db' => 'Mer kunnte di Dattei <code lang="en">$1</code> för de Daatebangk nit aanlääje.',
-       'config-sqlite-fts3-downgrade' => 'Dat PHP heh hät kein Ongershtözong för FTS3, dröm donn mer de Daatebangktabälle eronger shtoofe.',
-       'config-can-upgrade' => 'Et sinn-er ald Daatebangktabelle vum MediaWiki en dä Daatebangk.
-Öm di op der Shtand vum MediaWiki $1 ze bränge, donn jäz op „{{int:config-continue}}“ klecke.',
-       'config-upgrade-done' => "Alles es jäz om neue Shtand.
-
-Mer kann dat Wiki jäz [\$1 bruche].
-
-Wann De Ding Dattei <code lang=\"en\">LocalSettings.php</code> neu schrieve wells, donn onge op dä Knopp klicke.
-Dat dom_mer ävver '''nit vörschlonn'''em Jääjedeil, ußer, wann et Probleme mem Wiki jitt.",
-       'config-upgrade-done-no-regenerate' => 'Alles es jäz om neue Shtand.
-
-Mer kann dat Wiki jäz [$1 bruche].',
-       'config-regenerate' => 'Donn de Dattei <code lang="en">LocalSettings.php</code> neu opsäze →',
-       'config-show-table-status' => 'Et Kommando <code lang="en"><code>SHOW TABLE STATUS</code></code> aan de Daatebangk es donävve jejange!',
-       'config-unknown-collation' => "'''Opjepaß:''' De Daatabangk deiht en onbikannte Reijefollsch bruche, för Booshtaabe un Zeishe ze verjliishe un ze zotteere.",
-       'config-db-web-account' => 'Dä Zohjang zor Daatebangk för et Wiki',
-       'config-db-web-help' => 'Donn ene Name un e Paßwoot för der Zohjang zor Daatebangk för et Wiki em nomaale Bedrief aanjävve.',
-       'config-db-web-account-same' => 'Donn dersällve Zohjang nämme, wi heh beim Opsäze.',
-       'config-db-web-create' => 'Donn dä Zohjang aanlääje, wann dä noch nit doh es.',
-       'config-db-web-no-create-privs' => 'Dä Zohjang för et Opsäze es nit berääschtesch, ene ander Zohjan enzereeschte.
-Dä aanjejovve Zohjang för der Nomaalbedrief moß dröm schunn enjersht sen!',
-       'config-mysql-engine' => 'De Zoot udder et Fommaat vun de Tabälle:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => '\'\'\'Opjepaß:\'\'\' <i lang="en">MyISAM</i> es als Speicher för <i lang="en">MySQL</i> nit besönders joot för et Zosammeschpell met MediaWiki zo bruche:
-* Dorj_et kumplätte Sperre vun Tabälle, künne koum ens Saache parrallel en dä Daatebangk jedonn wääde.
-* Dat Fomaat es anfällesch för Probleme met de Daate.
-* Et weed vun MediaWiki nit ėmmer zopaß ongerschtöz.
-
-Wann Ding <i lang="en">MySQL</i> et Schpeischere en <i lang="en">InnoDB</i>-Datteije ongerschtöze deiht, dom_mer dat nohdröcklesch ämfähle.
-Kann dä ẞööver dat nit, künnd et joode jelääjeheit sin, dä ens op der neuste Schtand ze bränge.',
-       'config-mysql-only-myisam-dep' => '\'\'\'Opjepaß:\'\'\' <i lang="en">MyISAM</i> es de einzeje Zoot Speischerprojramm för <i lang="en">MySQL</i>, di nit för MediaWiki ze ämfähle es, weil:
-* wääje dem Schpärre vun jannze Tabälle sin koum paralleele Axjuhne en dä Daatebangk möjjelesch,
-* et es aanfällesch för Probleeme met de Daate es, un
-* et weed vun MediaWiki nit emmer jood ongerschtöz.
-
-Ding Enschtallazjuhn vum <i lang="en">MySQL</i> kann nit met <i lang="en">InnoDB</i> ömjonn.
-Wi wöhr et met ener neuere väsjohn vum <i lang="en">MySQL</i>?',
-       'config-mysql-engine-help' => "'''InnoDB''' es fö jewöhnlesch et beß, weil vill Zohjreffe op eijmohl joot ongershtöz wääde.
-
-'''MyISAM''' es flöcker op Rääschnere met bloß einem Minsch draan, un bei Wikis, di mer bloß lässe un nit schrieeve kann.
-MyISAM-Daatebangke han em Schnett mieh Fähler un jon flöcker kappott, wi InnoDB-Daatebangke.",
-       'config-mysql-charset' => 'Dä Daatebangk iere Zeishesaz:',
-       'config-mysql-binary' => 'binär',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "Beim Shpeishere em '''binäre Fomaat''' deiht MediaWiki de Täxte, di em UTF-8 Fommaat kumme, en dä Daatebangk en binär kodeerte Daatefälder faßhallde.
-Dat es flöcker un spaasaamer wi et UTF-8 Fommaat vum <i lang=\"en\">MySQL</i> un määd et müjjelesch, all un jeedes <i lang=\"en\">Unicode</i>-Zeishe met faßzehallde.
-
-Beim Shpeishere em '''UTF-8 Fomaat''' deiht et <i lang=\"en\">MySQL</i> der Zeishesaz un de Kodeerung vun dä Daate känne, un kann se akeraat aanzeije un ömwandelle,
-allerdengs künne kein Zeishe ußerhalv vum [//de.wikipedia.org/wiki/Basic_Multilingual_Plane#Gliederung_in_Ebenen_und_Bl.C3.B6cke jrundlääje Knubbel för vill Shprooche (<i lang=\"en\">Basic Multilingual Plane — BMP</i>)] afjeshpeishert wääde.",
-       'config-site-name' => 'Däm Wiki singe Name:',
-       'config-site-name-help' => 'Dä douch em Tittel vun de Brauserfinstere un aan ätlije andere Shtälle op.',
-       'config-site-name-blank' => 'Donn ene Name för di Sait aanjävve.',
-       'config-project-namespace' => 'Dä Name för et Appachtemang övver et Projäk:',
-       'config-ns-generic' => 'Projäk',
-       'config-ns-site-name' => 'Et sällve wi däm Wiki singe Name: $1',
-       'config-ns-other' => 'Andere (jiff aan wälshe)',
-       'config-ns-other-default' => 'MingWiki',
-       'config-project-namespace-help' => "Noh dämm Vörbeld vun de Wikipeedija, donn vill Wikis dänne ier Sigge övver et Wiki un sing Rääjelle vun dä Sigge mem Enhald vum Wiki tränne, un en enem extra Appachtemang för et „'''Projäk'''“ afflääje.
-Sigge en däm Appachtemang fange all med enem beshtemmpte Vörsaz aan, däm Name vum Appachtemang, un dä moß De heh faßlääje.
-Dä Name kann beshtemmpte Zeiche nit enthallde, wi „#“ un „:“ un et es Tradizjuhn, dat hä vum Name vum Wiki her kütt.",
-       'config-ns-invalid' => 'Dat aanjejovve Appachtemang „<nowiki>$1</nowiki>“ es nit jöltesch.
-Nemm ene andere Name för däm Wiki sing eije Appachtemang.',
-       'config-ns-conflict' => 'Dat aanjejovve Appachtemang „<nowiki>$1</nowiki>“ kütt ald als Standatt-Appachtemang em MediaWiki vör.
-Nemm ene andere Name för däm Wiki sing eije Appachtemang.',
-       'config-admin-box' => 'Der Zohjang för der eezte Wiki_Köbes',
-       'config-admin-name' => 'Metmaacher_Name:',
-       'config-admin-password' => 'Et Paßwoot:',
-       'config-admin-password-confirm' => 'Norrens dat Paßwoot:',
-       'config-admin-help' => 'Jif Dinge leevste Name als Metmaacher för Desch aan, för e Beishpell „Schmitzens Pitter“
-— Dat weed dä Name wääde, met dämm De Desch enlogge deihs.',
-       'config-admin-name-blank' => 'Jiv ene Metmaacher_Name en för dä Wiki-Köbes.',
-       'config-admin-name-invalid' => '„<nowiki>$1</nowiki>“ es keine jöltijje Metmaacher_Name.
-Jiv ene joode Name en!',
-       'config-admin-password-blank' => 'Do mos_e Paßwoot för dä Wiki_Köbes aanjävve!',
-       'config-admin-password-same' => 'Dat Paßwoot un dä Name dörve nit ejaal sin!',
-       'config-admin-password-mismatch' => 'Di Paßwööter sin ongerscheidlesh!',
-       'config-admin-email' => 'Addräß för de <i lang="en">e-mail</i>:',
-       'config-admin-email-help' => 'Jiv heh di Adräß för de <i lang="en">e-mail</i> aan, woh De <i lang="en">e-mail</i> vun ander Metmaacher uss_em Wiki hen krijje wells, di et Der müjjelesh määt, Ding Paßwoot automatetsch truusche ze lohße, un woh Nohreeshte övver veränderte Sigge op Dinge Oppaßleß hen jescheck wääde sulle.
-De kanns dat Fäld ävver och läddesch lohße.',
-       'config-admin-error-user' => 'Beim Enreeshte vum Zohjang för dä Wiki_Köbes „<nowiki>$1</nowiki>“ es ene Fähler em Wiki opjetrodde.',
-       'config-admin-error-password' => 'Beim Paßwoot-Säze för dä Wiki_Köbes „<nowiki>$1</nowiki>“ es ene Fähler em Wiki opjetrodde.: <pre>$2</pre>',
-       'config-admin-error-bademail' => 'Do häs_en onjöltijje Addräß för de <i lang="en">e-mail</i> aanjejovve.',
-       'config-subscribe' => 'Donn de [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce <i lang="en">e-mail</i>-Leß met de Aanköndijunge vum MediaWiki] abonnere.',
-       'config-subscribe-help' => 'Do kumme bloß winnish Meddeilunge un di jonn övver neu Versiohne vom MediaWiki un weeshtejje Saache vun däm sing Sesherheit.
-Do sullts se abbonneere, un Ding MediWiki_Projramme op der neue Shtand bränge, wann neu Version eruß kumme.',
-       'config-subscribe-noemail' => 'Do has versöhk, der ohne en Addräß för Ding <i lang="en">e-mail<i> aanzejävve, de Aanköndijonge för Aanköndijunge för neue Versione ze abboneere. Jivv en Addräß aan, wann De di Aanköndijonge hann wells.',
-       'config-almost-done' => 'Do bes beinah dorsh!
-Do künnts jez der Räß vun de einzel Enshtellunge övverjonn, un et Wiki tiräktemang fäädesch opsäze.',
-       'config-optional-continue' => 'De wells noch mieh Frore jeshtallt krijje un noch mieh Enshtällunge maache?',
-       'config-optional-skip' => 'Nä, lohß dä Ömshtand, donn eifarr_et Wiki opsäze.',
-       'config-profile' => 'Enshtällunge för de Metmaacher ier Rääschte:',
-       'config-profile-wiki' => 'En offe Wiki',
-       'config-profile-no-anon' => 'Schriever möße enlogge',
-       'config-profile-fishbowl' => 'Bloß ußdröcklesch zohjelohße Schriever',
-       'config-profile-private' => 'E jeschloße Privat_Wiki',
-       'config-profile-help' => "Wikis loufe et bäß, wam_mer esu vill Lück wi möjjelesch draan metmaache un schrieve löht.
-Met MediaWiki es et ejfach, de neuste Änderonge ze beloore un wat ahnungslose udder fiese Lück kapott jemaat han wider retuur ze maache.
-
-Bloß, mänsch eine häd_eruß jefonge, dat mer MediaWiki jood en en jruuße Zahl ongerscheidlijje Rolle bruche kann, un nit emmer es et leisch, ene vum onverfälschte Wiki_Wääsch ze övverzeuje.
-Esu häß De de Wahl:
-
-'''{{int:config-profile-wiki}}''' löht jeder_ein metschrieve, och ohne sesch enzelogge.
-
-'''{{int:config-profile-no-anon}}''', dat sorsch för mieh seeschbaa Verantwootlischkeite, künnt ävver zohfällije Methellefer verschrecke.
-
-'''{{int:config-profile-fishbowl}}''' löht nor de ußjesöhk Metmaacher schrieve, ävver de janze Öffentleshkeit kann et lässe un süht och de ällder Versione, un wat wää wann draan jedonn hät.
-
-'''{{int:config-profile-private}}''' kann nur lässe, wäh en et Wiki zohjelohße es, un desellve Jropp kann uch schrieve.
-
-Noch ander un un opwändijere Enschtellunge för de Rääschte sin möjjelesch, wann et Wiki ens aam Loufe es. Loor Der doför de [//www.mediawiki.org/wiki/Manual:User_rights zopaß Hölp em Handbooch] aan.",
-       'config-license' => 'Urhävverrääsch un Lizänz:',
-       'config-license-none' => 'Kein Fooßreih övver de Lizänz',
-       'config-license-cc-by-sa' => '<i lang="en">Creative Commons</i> Der Name moß jenannt sin, et Wiggerjävve es zohjelohße onger dersellve Bedengunge',
-       'config-license-cc-by' => 'De <i lang="en">Creative Commons</i> ier Lizänz met Namensnännong',
-       'config-license-cc-by-nc-sa' => '<i lang="en">Creative Commons</i> Nit för e Jeschäff ze maache, et Wiggerjävve es zohjelohße unger dersellve Bedengunge',
-       'config-license-cc-0' => '<i lang="en">Creative Commons</i> „Noll“ (jemeinfrei udder Pablic Domain)',
-       'config-license-gfdl' => 'De <i lang="en">GNU</i>-Lizänz för frei Dokemäntazjuhne, Version 1.3 udder en späädere',
-       'config-license-pd' => 'Allmende (jemeinfrei, <i lang="en">public domain</i>)',
-       'config-license-cc-choose' => 'En <i lang="en">Creative Commons</i> Lizänz, sellver ußjesöhk:',
-       'config-license-help' => "Ättlijje öffentleje Wikis donn iehr Beidrääsh onger en [http://freedomdefined.org/Definition frei Lizänz] shtelle.
-Dat hellef, e Jeföhl vun Jemeinsamkeid opzeboue, un op lange Seesh emmer wider Beidrääsch ze krijje.
-Dat es nit onbedengk nüüdesh för e Jeschäffs- udder Privaat_Wiki.
-
-Wä Stöcke uß de Wikipedia bruche well, un han well, dat de Wikipedia uss_em eije Wiki jät övvernämme kann, sullt „'''<i lang=\"en\">Creative Commons</i>, dem Schriever singe Name moß jenannt wääde, un Wiggerjävve zoh dersellve Bedengunge es zohjelohße'''“ ußwähle.
-
-De su jenannte '''<i lang=\"en\">GNU Free Documentation License</i>''' (de freije Lizänz för Dokemäntazjuhne vun dä GNU) sen de ahle Lizänzbedenonge vun de Wikipedia. Se es emmer noch in Odenong un jöltesch, ävver se es schwer ze vershtonn un et Wiggerjävve un widder Verwände es manshmool schwieeresch domet.",
-       'config-email-settings' => 'Enschtellunge för de <i lang="en">e-mail</i>',
-       'config-enable-email' => 'De <i lang="en">e-mail</i> noh druße zohlohße',
-       'config-enable-email-help' => 'Sulle <i lang="en">e-mails</i> zohjelohße sin, moß mer, domet et noher flupp, de [http://www.php.net/manual/en/mail.configuration.php Enschtellunge em PHP för de <i lang="en">e-mails</i>] zopaß jemaat han.
-Wann kein <i lang="en">e-mails</i> nüüdesch sin, kam_mer se heh afschallde.',
-       'config-email-user' => '<i lang="en">e-mails</i> zwesche de Metmaacher zohlohße',
-       'config-email-user-help' => 'Määt et müjjelesch, dat sesch de Metmaacher jääjesiggesch <i lang="en">e-mails</i> schecke künne, wann se dat en iehre eije Enschtellunge och enjeschalldt han.',
-       'config-email-usertalk' => '<i lang="en">e-mails</i> mem Bescheid zohlohße, dat einem sing Klaafsigg verändert woodt',
-       'config-email-usertalk-help' => 'Maach et müjjelesch, dat Metmaaacher en iere Enstellunge <i lang="en">e-mails</i> mem Bescheid zohlohße, dat einem sing Klaafsigg verändert woodt.',
-       'config-email-watchlist' => 'Nohreeschte övver Änderonge aan Sigg op de Opaßleßte zohlohße',
-       'config-email-watchlist-help' => 'Lohß Metmaacher Nohreeshte övver de Sigge op dänne iehr Oppaßleß krijje, wann se et en iehre Enschtellonge ußjewählt han.',
-       'config-email-auth' => 'Donn de Övverprööfung för Zohjangsberääschtejunge övver de <i lang="en">e-mail</i> zohlohße',
-       'config-email-auth-help' => 'Wann dat aanjeschald es, möße Metmaacher, di iehr Adräß för de <i lang="en">e-mail</i> neu aanjävve udder ändere, di Addräß övver ene Lengk beschtäätejje, dä se met de <i lang="en">e-mail</i> jescheck krijje.
-Bloß aan esu beschtääteschte Adräße deiht et Wiki <i lang="en">e-mails</i> schecke, Di künne vun annder Metmaachere kumme, udder vum Wiki sellver, wann en Sigg en däm Metmaacher singe Oppaßleß verändert woode es.
-Mer \'\'\'schlonn vör, dat aanzeschallde\'\'\' för öffentlesch Wikis, weil sönß zoh leisch Driß mem Wiki singe <i lang="en">e-mail</i> jemaat wääde künnt.',
-       'config-email-sender' => 'De Adräß för de Antwoote op <i lang="en">e-mails</i>:',
-       'config-email-sender-help' => 'Jiff de Adräß för de <i lang="en">e-mail</i> en, woh Antwoote ob em Wiki singe <i lang="en">e-mails</i> hen jonn sulle.
-Dat es och de Adräß, woh de <i lang="en">e-mails</i> met Fählermäldonge hen jon.
-Vill ẞöövere för de <i lang="en">e-mail</i> welle winnischßdens ene jöltijje Domain en dä Adräß han.',
-       'config-upload-settings' => 'Belder un Datteie huh laade',
-       'config-upload-enable' => 'Belder un Datteie huh laade zohlohße',
-       'config-upload-help' => 'Datteije huh ze laade künnt e Risiko för dem ẞööver singe Sescherheit sin.
-Mieh doh drövver kam_mer em [//www.mediawiki.org/wiki/Manual:Security Kapitel övver de Sescherheit] em Handbooch lässe.
-
-Öm et Huhlaade zohzelohße donn de Rääschde för der Zohjreff op dat Ongerverzeischneß <code lang="en">images</code> em MediaWiki singem Houpverzeischneß esu enshtälle, dat et Webßööverprojramm doh Datteije un Verzeischneße eren schrieve kann.
-Donoh donn heh di Saach zohlohße.',
-       'config-upload-deleted' => 'Dat Verzeishneß för fottjeschmeße Datteije:',
-       'config-upload-deleted-help' => 'Söhk e Verzeijschneß uß för de fottjeschmeße Datteije vum Wiki dren afzelääje.
-Et bäß es, wam_mer vum <i lang="en">world wide web</i> doh nit drahn kumme kann.',
-       'config-logo' => 'Dem Wiki singem Logo sing <i lang="en">URL</i>:',
-       'config-logo-help' => 'De Schtandart_Bedeen_Bovverfläsch vum MediaWiki hät e Logo bovve en der Eck met 135x160 Pixele.
-Donn e zopaß Logo huh laade, un donn däm sing URL heh endraare.
-
-Do kanns <code lang="en">$wgStylePath</code> udder <code lang="en">$wgScriptPath</code> nämme, wann Ding Logo en einem vun dänne Pahde litt.
-
-Wells De kei Logo han, draach heh nix en.',
-       'config-instantcommons' => 'Donn <i lang="en">InstantCommons</i> zohlohße.',
-       'config-instantcommons-help' => '<i lang="en">[//www.mediawiki.org/wiki/InstantCommons InstantCommons]</i> es en Eijeschaff, di et för Wikis müjjelesch määt, Belder, Tondatteie un ander Meedijedatteie enzebenge, di op dä Webßait vun de <i lang="en">[//commons.wikimedia.org/ Wikimedia Commons]</i> ongerjebraat sin. Öm dat noze ze künne, moß dä ẞööver vum MediaWiki en Verbendung nohm Internet opnämme künne.
-
-Mieh Aanjaabe doh drövver un en Aanleidung, wi mer och ander Wikis ußer de <i lang="en">Wikimedia Commons</i> doför enreeschte kann, fengk mer em [//mediawiki.org/wiki/Manual:$wgForeignFileRepos Handbooch].',
-       'config-cc-error' => 'Et Ußsöhke övver de <i lang="en">Creative Commons</i> iehr Projramm zum Lizänzbeshtemme hät nix jebraat.
-Donn de Lizänz sellver beshtemme.',
-       'config-cc-again' => 'Noch ens neu ußsöhke&nbsp;…',
-       'config-cc-not-chosen' => 'Söhk uß, wat för en Lizänz vun de <i lang="en">Creative Commons</i> De han wells, un donn dann op „<i lang="en">proceed</i>“ klecke.',
-       'config-advanced-settings' => 'Fottjeschredde Enshtellunge',
-       'config-cache-options' => 'Enshtällunge för et Faßhallde vun Objäkte em Zweschsheisher:',
-       'config-cache-help' => 'Objäkte em Zwescheshpeisher faßhallde, dat heiß öff jebruchte Daate en der <i lang="en">cache</i> donn, bruche mer, öm MediaWiki flöcker ze maache,
-Meddlere un jruuße Wiki-ẞaits sullte dat onbedengk ußnoze, un och bei klein Wikis weed mer et jood merke.',
-       'config-cache-none' => 'Keine Zweschshpeijsher (Et jeid_em Wiki nix verloore, ußer velleish Schnälleshkeid wann vill loss es)',
-       'config-cache-accel' => 'Ene Objäk<i lang="en">cache</i> vum PHP (<i lang="en">APC</i>, <i lang="en">XCache</i>, udder <i lang="en">WinCache</i>)',
-       'config-cache-memcached' => 'Donn der <code lang="en">memcached</code> ẞööver nämme (Määt extra Enshtellunge un Opsäze nüüdesch)',
-       'config-memcached-servers' => 'De <code lang="en">memcached</code> ßöövere:',
-       'config-memcached-help' => 'Donn de Leß aanhjävve, met de <i lang="en">IP</i>-Addräße för der <code lang="en">memcached</code> ẞööver ze bruche.
-Se sullte ein pro Reih opjeschrevve sin, un en Pooz (<i lang="en">port</i>) ier Nommer han, För e Beishpell, esu:
- 127.0.0.1:11211
- 192.168.1.25:1234',
-       'config-memcache-needservers' => 'Do häss der <code lang="en">memcached</code> als Dinge Zoot vun Zwescheshpeijscher aanjejovve, ävver nit eine ẞööver doför.',
-       'config-memcache-badip' => 'Do häss en onjöltijje <i lang="en">IP</i>-Addräß för der <code lang="en">memcached</code> ẞööver aanjejovve: $1.',
-       'config-memcache-noport' => 'Do has kein Pooz (<code lang="en">port</code>) Nommer aanjejovve för mem <code lang="en">memcached</code> ẞööver ze bruche: $1.
-Wann De di Nommer nit weiß, der Shtandatt es 11211.',
-       'config-memcache-badport' => 'Dem <code lang="en">memcached</code> ẞööver singe Pooz (<code lang="en">port</code>) Nommere sullte zwesche $1 un $2 sin.',
-       'config-extensions' => 'Projramm-Zohsäz (<i lang="en">Extensions</i>)',
-       'config-extensions-help' => 'Di bovve opjeleß Zohsazprojramme för et MediaWiki sin em Verzeischneß <code lang="en">./extensions</code> ald ze fenge.
-
-Do kann se heh un jez aanschallde, ävver se künnte noch zohsäzlesch Enshtellunge bruche.',
-       'config-install-alreadydone' => "'''Opjepaß:'''
-Et sühd esu uß, wi wann De MediaWiki ald enshtalleet hätß, un wöhrs aam Versöhke, dat norr_ens ze donn.
-Jang wigger op de näähßte Sigg.",
-       'config-install-begin' => 'Wann De op „{{int:config-continue}}“ klecks, jeiht de Enshtallazjuhn vum MediaWiki loßß.
-Wann De noch Änderonge maache wells, dann kleck op „{{int:config-back}}“.',
-       'config-install-step-done' => 'jedonn',
-       'config-install-step-failed' => 'donävve jejange',
-       'config-install-extensions' => 'Zohsazprojramme enjeschloße',
-       'config-install-database' => 'Ben de Daatebangk aam ennreeschte.',
-       'config-install-schema' => 'Dat Schema en dä Daatebank weed aanjelaat.',
-       'config-install-pg-schema-not-exist' => 'Dat Scheema för <i lang="en">PostgreSQL</i> es nit doh.',
-       'config-install-pg-schema-failed' => 'Et Tabälle-Opsäze es donävve jejange.
-Donn doför sorrje, dat dä Daatebangk-Aanwänder „$1“ en dämm Daatebangkscheema „$2“ schrieve kann.',
-       'config-install-pg-commit' => 'Ben de Änderonge aam ennbränge.',
-       'config-install-pg-plpgsql' => 'Ben noh dä Daatebangkshprooch <code lang="en">PL/pgSQL</code> aam söhke.',
-       'config-pg-no-plpgsql' => 'Do moß de Daatebangkshprooch <code lang="en">PL/pgSQL</code> en dä Daatebangk $1 enreeschte.',
-       'config-pg-no-create-privs' => 'Dä Daatebangk-Aanwänder för et Enreeschte hät nit jenooch Rääschde, öm ene andere Daatebangk-Aanwänder en dä Daatebangk aanzelääje.',
-       'config-pg-not-in-role' => 'Dä aanjejovve Zohjang för et Web jiddet ald.
-Dä aanjejovve Zohjang för et Enschtalleere es keine <i lang="en">superuser<i> un es nit en de Web-Jropp, dröm kam_mer domet kein Dateije aanlääje, di däm Zohjang för et Web jehüüre.
-
-För MeedijaWiki mößße dämm ävver em Momang di Tabälle jehüüre.
-Dröm donn ene andere Name för dä Zohjang zom Wäb nämme, udder donn „retuur“ klicke, un jivv ene Zohjang för et Enschtalleere aan, dä jenooch Rääschte hät.',
-       'config-install-user' => 'Ben unse Daatebangk-Aanwänder en de Daatebangk am aanlääje.',
-       'config-install-user-alreadyexists' => 'Dä Aanwender „$1“ för dä Zohjref op de Daatebangk kann nit aanjelaat wääde, et jidd_en alld.',
-       'config-install-user-create-failed' => 'Dä Aanwender „$1“ för dä Zohjref op de Daatebangk kunnt nit aanjelaat wääde, wäje: <code lang="en">$2</code>',
-       'config-install-user-grant-failed' => 'Däm Daatebangk-Aanwänder sing Beräschtijunge ze säze däät nit fluppe wääje: $2',
-       'config-install-user-missing' => 'Dä aanjejovve Metmaacher „$1“ jidd_et nit.',
-       'config-install-user-missing-create' => '{{int:Config-install-user-missing}}<!-- $1 -->
-Donn e Höhksche en et Käßje „{{int:Createaccount}}“ onge, wann De dä aanlääje wells.',
-       'config-install-tables' => 'Ben de Daatebangk-Tabälle aam aanlääje.',
-       'config-install-tables-exist' => "'''Opjepaß''': Et schingk, dem MediaWiki sing Tabälle sin alt doh.
-Doh dom_mer nix aanlääje.",
-       'config-install-tables-failed' => "'''Fähler''': De Tabälle kunnte nit aanjelaat wääde, wääje: $1",
-       'config-install-interwiki' => 'Ben de Engerwiki-Tabäll met de shtandattmääßejje Daate aam fölle.',
-       'config-install-interwiki-list' => 'Mer kunnte de Dattei <code lang="en">interwiki.list</code> nit fenge.',
-       'config-install-interwiki-exists' => "'''Opjepaß''': En der Engewiki-Tabäll schingk alt jät dren ze shtonn.
-Doh dom_mer nix dobei.",
-       'config-install-stats' => 'De Shtatestek-Zahle wääde op Aanfang jeshtallt.',
-       'config-install-keys' => 'Jeheime Schlößel wääde opjebout.',
-       'config-insecure-keys' => "'''Opjepaß:''' {{PLURAL:$2|Ene jeheime Schlößel|Jeheim Schlößele|Keine jeheime Schlößel}} ($1) {{PLURAL:$2|es|sin|es}} automattesch aanjelaat woode. {{PLURAL:$2|Dä es|Di sin|Hä es}} ävver nit onbedengk janz sescher. Övverlääsch Der, {{PLURAL:$2|dä|di|en}} norr_ens vun Hand ze ändere.",
-       'config-install-sysop' => 'Dä Zohjang för der Wiki-Köbes weed aanjelaat.',
-       'config-install-subscribe-fail' => 'Mer künne de <i lang="en">e-mail</i>-Leß <code lang="en">mediawiki-announce</code> nit abonneere: $1',
-       'config-install-subscribe-notpossible' => '<code lang="en">cURL</code> es nit enstalleed un <code lang="en">allow_url_fopen</code>es nit doh.',
-       'config-install-mainpage' => 'Ben de Houpsigg med enem shtandatmääßeje Enhald aam aanlääje',
-       'config-install-extension-tables' => 'Ben Datebangk-Tabälle för de Zohsazprojramme aam ennreschte',
-       'config-install-mainpage-failed' => 'Kunnt de Houpsigg nit afshpeishere: $1',
-       'config-install-done' => "'''Jlöckwonsch!'''
-MediaWiki es jetz enstalleet.
-
-Et Projramm zom Enreeschte hät en Dattei <code lang=\"en\">LocalSettings.php</code> aanjelaat.
-Doh sin de Enstellunge vum Wiki dren.
-
-Do weeß se eronge laade möße un dann en dem Wiki sing Aanfangsverzeishnes donn möße, et sellve Verzeisneß, woh di Dattei <code lang=\"en\">index.php</code> dren litt. Dat Erongerlaade sullt automattesch aanjefange han.
-
-Wann domet jet nit jeflupp hät, udder De di Dattei norr_ens han wells, donn op dä Lengk heh dronger klecke:
-
-\$3
-
-'''Opjepaß''': Wann De dat jez nit deihß, es alles verschött, wat De bes jöz enjejovve häs, weil di Dattei fott es en däm Momang, woh heh dat Projamm aam Engk es.
-
-Wann De mem Ronger- un widder Huhlaade fäädesh bes, kanns De '''[\$2 en Ding Wiki jonn]'''.",
-       'config-download-localsettings' => 'Donn di Dattei <code lang="en">LocalSettings.php</code> eronger laade',
-       'config-help' => 'Hölp',
-       'config-nofile' => 'De Dattei „$1“ ham_mer nit jefonge. Es di fottjeschmeße?',
-       'config-extension-link' => 'Häs De jewoß, dat et Wiki [//www.mediawiki.org/wiki/Manual:Extensions Zohsazprojramme] hann kann?
-
-Do kanns [//www.mediawiki.org/wiki/Category:Extensions_by_category Zohsazprojramme noh Saachjroppe] söhke udder en de [//www.mediawiki.org/wiki/Extension_Matrix Tabäll met de Zohsazprojramme] kike, öm de kumplätte Leß met de Zohsazprojramme ze krijje.',
-       'mainpagetext' => "'''MediaWiki es jetz enstalleet.'''",
-       'mainpagedocfooter' => 'Luur en et (änglesche) [//meta.wikimedia.org/wiki/Help:Contents Handbooch] wann De wesse wells wie de Wiki-Soffwär jebruch un bedeent wääde moß.
-
-== För dä Aanfang ==
-Dat es och all op Änglesch:
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Donn MediaWiki op Ding Schprooch aanpaße]',
-);
-
-/** Kurdish (Latin script) (Kurdî (latînî)‎)
- * @author George Animal
- */
-$messages['ku-latn'] = array(
-       'config-information' => 'Agahî',
-       'config-your-language' => 'Zimanê te:',
-       'config-page-language' => 'Ziman',
-       'config-page-name' => 'Nav',
-       'config-page-options' => 'Vebijêrk',
-       'config-ns-generic' => 'Proje',
-       'config-install-step-done' => 'çêbû',
-       'config-help' => 'alîkarî',
-       'mainpagetext' => "'''MediaWiki serketî hate çêkirin.'''",
-       'mainpagedocfooter' => 'Alîkarî ji bo bikaranîn û guherandin yê datayê Wîkî tu di bin [//meta.wikimedia.org/wiki/Help:Contents pirtûka alîkarîyê ji bikarhêneran] da dikarê bibînê.
-
-== Alîkarî ji bo destpêkê ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lîsteya varîyablên konfîgûrasîyonê]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lîsteya e-nameyên versyonên nuh yê MediaWiki]', # Fuzzy
-);
-
-/** Ladino (Ladino)
- * @author Universal Life
- */
-$messages['lad'] = array(
-       'mainpagetext' => "'''MedyaViki ya se kureó con reuxitá.'''",
-       'mainpagedocfooter' => 'Konsulta la [//meta.wikimedia.org/wiki/Ayudo:Contenido Guía de usador] para tomar enformasyones encima de como usar el lojikal viki.
-
-== En Empeçando ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings La lista de los arreglamientos de la konfiggurasyón]
-* [//www.mediawiki.org/wiki/Manual:FAQ/lad DDS de MedyaViki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce La lista de las letrales (e-mail) de MedyaViki]', # Fuzzy
-);
-
-/** Luxembourgish (Lëtzebuergesch)
- * @author Robby
- * @author Soued031
- * @author 아라
- */
-$messages['lb'] = array(
-       'config-desc' => 'Den Installatiounsprogramm vu MediaWiki',
-       'config-title' => 'MediaWiki $1 Installatioun',
-       'config-information' => 'Informatioun',
-       '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.
-D\'Variabel $1 ass net definéiert.
-Ännert w.e.g. de Fichier <code>LocalSettings.php</code> esou datt déi Variabel definéiert ass a klickt op "{{int:Config-continue}}".',
-       'config-session-error' => 'Feeler beim Starte vun der Sessioun: $1',
-       'config-no-session' => "D'Donnéeë vun ärer Sessioun si verluergaangen!
-Kuckt Är php.ini no a vergewëssert Iech datt <code>session.save_path</code>  op adequate REpertoire agestallt ass.",
-       'config-your-language' => 'Är Sprooch',
-       'config-your-language-help' => 'Sicht déi Sprooch eraus déi Dir während der Installatioun benotze wëllt',
-       'config-wiki-language' => 'Sprooch vun der Wiki:',
-       'config-wiki-language-help' => "Sicht d'Sprooch eraus an där d'Wiki haaptsächlech geschriwwe gëtt.",
-       'config-back' => '← Zréck',
-       'config-continue' => 'Weider →',
-       'config-page-language' => 'Sprooch',
-       'config-page-welcome' => 'Wëllkomm bäi MediaWiki!',
-       'config-page-dbconnect' => 'Mat der Datebank verbannen',
-       'config-page-upgrade' => 'Eng Installatioun déi besteet aktualiséieren',
-       'config-page-dbsettings' => 'Astellunge vun der Datebank',
-       'config-page-name' => 'Numm',
-       'config-page-options' => 'Optiounen',
-       'config-page-install' => 'Installéieren',
-       'config-page-complete' => 'Fäerdeg!',
-       'config-page-restart' => 'Installatioun neistarten',
-       'config-page-readme' => 'Liest dëst',
-       'config-page-releasenotes' => 'Informatiounen zur Versioun',
-       'config-page-copying' => 'Kopéieren',
-       'config-page-upgradedoc' => 'Aktualiséieren',
-       'config-page-existingwiki' => 'Wiki déi et gëtt',
-       'config-help-restart' => 'Wëllt dir all gespäichert Donnéeë läschen déi dir bis elo aginn hutt an den Installatiounsprozess nei starten?',
-       'config-restart' => 'Jo, neistarten',
-       'config-welcome' => "=== Iwwerpréifung vum Installatiounsenvironnement ===
-Et gi grondsätzlech Iwwerpréifunge gemaach fir ze kucken ob den Environnment gëeegent ass fir MediaWiki z'installéieren.
-Dir sollt d'Resultater vun dëser Iwwerpréifung ugi wann Dir während der Installatioun Hëllef frot wéi Dir D'Installatioun ofschléisse kënnt.",
-       'config-sidebar' => '* [//www.mediawiki.org MediaWiki Haaptsäit]
-* [//www.mediawiki.org/wiki/Help:Contents Benotzerguide]
-* [//www.mediawiki.org/wiki/Manual:Contents Guide fir Administrateuren]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]
-----
-* <doclink href=Readme>Liest dëst</doclink>
-* <doclink href=ReleaseNotes>Informatioune vun der aktueller Versioun</doclink>
-* <doclink href=Copying>Lizenzbedingungen</doclink>
-* <doclink href=UpgradeDoc>Aktualisatioun</doclink>',
-       'config-env-good' => 'Den Environement gouf nogekuckt.
-Dir kënnt MediaWiki installéieren.',
-       'config-env-bad' => 'Den Environnement gouf iwwerpréift.
-Dir kënnt MediWiki net installéieren.',
-       'config-env-php' => 'PHP $1 ass installéiert.',
-       'config-env-php-toolow' => 'PHP $1 ass installéiert.
-Awer MediaWiki brauch PHP $2 oder méi héich.',
-       'config-unicode-using-utf8' => "Fir d'Unicode-Normalisatioun gëtt dem Brion Vibber säin <code>utf8_normalize.so</code> benotzt.",
-       'config-no-db' => "Et konnt kee passenden Datebank-Driver fonnt ginn! Dir musst een Datebank-Driver fir PHP installéieren.
-Dës Datebank-Type ginn ënnerstëtzt: $1.
-
-Wann Dir op engem gesharte Server sidd, da frot Ären Hosting-Provider fir de passenden Datebank-Driver z'installéieren.
-Wann Dir PHP selwer compiléiert hutt, da reconfiguréiert en mat dem ageschalten Datebank-Client, zum Beispill an deem Dir <code>./configure --with-mysql</code> benotzt.
-Wann Dir PHP vun engem Debian oder Ubuntu Package aus installéiert hutt, da musst Dir och den php5-mysql Modul installéieren.",
-       'config-outdated-sqlite' => "'''Warnung:''' SQLite $1 ass installéiert. Allerdengs brauch MediaWiki SQLite $2 oder méi nei. SQLite ass dofir net disponibel.",
-       'config-memory-bad' => "'''Opgepasst:''' De Parameter <code>memory_limit</code> vu PHP ass $1.
-Dat ass wahrscheinlech ze niddreg.
-D'Installatioun kéint net funktionéieren.",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] ass installéiert',
-       'config-apc' => '[http://www.php.net/apc APC] ass installéiert',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] ass installéiert',
-       'config-diff3-bad' => 'GNU diff3 gouf net fonnt.',
-       'config-no-uri' => "'''Feeler:''' Déi aktuell URI konnt net festgestallt ginn.
-Installatioun ofgebrach.",
-       'config-using-server' => 'De Servernumm "<nowiki>$1</nowiki>" gëtt benotzt.',
-       'config-using-uri' => 'D\'Server URL  "<nowiki>$1$2</nowiki>" gëtt benotzt.',
-       'config-db-type' => 'Datebanktyp:',
-       'config-db-host' => 'Host vun der Datebank:',
-       'config-db-host-oracle' => 'Datebank-TNS:',
-       'config-db-wiki-settings' => 'Dës Wiki identifizéieren',
-       'config-db-name' => 'Numm vun der Datebank:',
-       'config-db-name-oracle' => 'Datebankschema:',
-       'config-db-install-account' => "Benotzerkont fir d'Installatioun",
-       'config-db-username' => 'Datebank-Benotzernumm:',
-       'config-db-password' => 'Passwuert vun der Datebank:',
-       'config-db-install-help' => 'Gitt de Benotzernumm an Passwuert an dat wàhrend der Installatioun benotzt gëtt fir sech mat der Datebank ze verbannen.',
-       'config-db-account-lock' => 'De selwechte Benotzernumm a Passwuert fir déi normal Operatioune benotzen',
-       'config-db-wiki-account' => 'Benotzerkont fir normal Operatiounen',
-       'config-db-wiki-help' => "Gitt de Benotzernumm an d'Passwuert an dat benotzt wäert gi fir sech bei den normale Wiki-Operatiounen mat der Datebank ze connectéieren.
-Wann et de Kont net gëtt, a wann den Installatiouns-Kont genuch Rechter huet, gëtt dëse Benotzerkont opgemaach mat dem Minimum vu Rechter déi gebraucht gi fir dës Wiki bedreiwen ze kënnen.",
-       'config-db-charset' => 'Zeechesaz (character set) vun der Datebank',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binair',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-mysql-old' => 'MySQL $1 oder eng méi nei Versioun gëtt gebraucht, Dir hutt $2.',
-       'config-db-port' => 'Port vun der Datebank:',
-       'config-db-schema' => 'Schema fir MediaWiki',
-       'config-db-schema-help' => "D'Schemaen hei driwwer si gewéinlech korrekt.
-Ännert se nëmme wann Dir wësst datt et néideg ass.",
-       'config-pg-test-error' => "Et ass net méiglech d'Datebank '''$1''' ze kontaktéieren: $2",
-       'config-sqlite-dir' => 'Repertoire vun den SQLite-Donnéeën',
-       'config-oracle-def-ts' => "Standard 'tablespace':",
-       'config-oracle-temp-ts' => "Temporären 'tablespace':",
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-header-mysql' => 'MySQL-Astellungen',
-       'config-header-postgres' => 'PostgreSQL-Astellungen',
-       'config-header-sqlite' => 'SQLite-Astellungen',
-       'config-header-oracle' => 'Oracle-Astellungen',
-       'config-invalid-db-type' => 'Net valabelen Datebank-Typ',
-       'config-missing-db-name' => 'Dir musst en Numm fir de Wäert "Numm vun der Datebank" uginn',
-       'config-missing-db-host' => 'Dir musst e Wäert fir "Database host" uginn',
-       'config-missing-db-server-oracle' => 'Dir musst e Wäert fir "Datebank-TNS" uginn',
-       'config-db-sys-user-exists-oracle' => 'De Benotzerkont "$1" gëtt et schonn. SYSDBA kann nëmme benotzt gi fir en neie Benotzerkont opzemaachen.',
-       'config-postgres-old' => 'PostgreSQL $1 oder eng méi nei Versioun gëtt gebraucht, Dir hutt $2.',
-       'config-sqlite-name-help' => 'Sicht en Numm deen Är wiki identifizéiert.
-Benotzt keng Espacen a Bindestrécher.
-E gëtt fir den Numm vum SQLite Date-Fichier benotzt.',
-       'config-sqlite-readonly' => 'An de Fichier <code>$1</code> Kann net geschriwwe ginn.',
-       'config-sqlite-cant-create-db' => 'Den Datebank-Fichier <code>$1</code> konnt net ugeluecht ginn.',
-       'config-upgrade-done-no-regenerate' => "D'Aktualisatioun ass ofgeschloss.
-
-Dir kënnt elo [$1 ufänken Är Wiki ze benotzen]",
-       'config-regenerate' => 'LocalSettings.php regeneréieren →',
-       'config-db-web-account' => 'Datebankkont fir den Accès iwwer de Web',
-       'config-db-web-account-same' => 'Dee selwechte Kont wéi bei der Installatioun benotzen',
-       'config-db-web-create' => 'De Kont uleeë wann et e net scho gëtt',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-binary' => 'binär',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'Numm vun der Wiki:',
-       'config-site-name-help' => 'Dësen daucht an der Titelleescht vum Browser an op verschiddenen anere Plazen op.',
-       'config-site-name-blank' => 'Gitt den Numm vum Site un.',
-       'config-project-namespace' => 'Projet Nummraum:',
-       'config-ns-generic' => 'Projet',
-       'config-ns-site-name' => 'Deeselwechte wéi den Numm vun der Wiki: $1',
-       'config-ns-other' => 'Anerer (spezifizéieren)',
-       'config-ns-other-default' => 'MyWiki',
-       'config-admin-box' => 'Administrateurs-Kont',
-       'config-admin-name' => 'Ären Numm:',
-       'config-admin-password' => 'Passwuert:',
-       'config-admin-password-confirm' => 'Passwuert confirméieren:',
-       'config-admin-help' => 'Gitt w.e.g. Äre gewënschte Benotzernumm hei an, zum Beispill "Jang Muller".
-Dësen Numm gëtt da gebraucht fir sech an d\'Wiki anzeloggen.',
-       'config-admin-name-blank' => 'Gitt e Benotzernumm fir den Administrateur an.',
-       'config-admin-name-invalid' => 'De spezifizéierte Benotzernumm "<nowiki>$1</nowiki>" ass net valabel.
-Spezifizéiert en anere Benotzernumm.',
-       'config-admin-password-blank' => 'Gitt e Passwuert fir den Adminstateur-Kont an.',
-       'config-admin-password-same' => "D'Passwuert däerf net dat selwecht si wéi de Benotzernumm.",
-       'config-admin-password-mismatch' => 'Déi zwee Passwierder Déi Dir aginn hutt stëmmen net iwwereneen.',
-       'config-admin-email' => 'E-Mail-Adress:',
-       'config-admin-error-user' => 'Interne Feeler beim uleeë vun engem Administrateur mam Numm "<nowiki>$1</nowiki>".',
-       'config-admin-error-password' => 'Interne Feeler beim Setze vum Passwuert fir den Admin "<nowiki>$1</nowiki>": <pre>$2</pre>',
-       'config-admin-error-bademail' => 'Dir hutt eng E-Mail-Adress aginn déi net valabel ass',
-       'config-subscribe' => "Sech op d'[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Ukënnegunge vun neie Versiounen] abonnéieren.",
-       'config-almost-done' => "Dir sidd bal fäerdeg!
-Dir kënnt elo déi Astellungen déi nach iwwreg sinn iwwersprangen an d'Wiki elo direkt installéieren.",
-       'config-optional-continue' => 'Stellt mir méi Froen.',
-       'config-optional-skip' => "Ech hunn es genuch, installéier just d'Wiki.",
-       'config-profile' => 'Profil vun de Benotzerrechter:',
-       'config-profile-wiki' => 'Oppe Wiki',
-       'config-profile-no-anon' => 'Uleeë vun engem Benotzerkont verlaangt',
-       'config-profile-fishbowl' => 'Nëmmen autoriséiert Editeuren',
-       'config-profile-private' => 'Privat Wiki',
-       'config-license' => 'Copyright a Lizenz:',
-       'config-license-none' => 'Keng Lizenz ënnen op der Säit',
-       'config-license-pd' => 'Ëffentlechen Domaine',
-       'config-email-settings' => 'E-Mail-Astellungen',
-       'config-enable-email' => 'E-Mailen déi no bausse ginn aschalten',
-       'config-email-user' => 'Benotzer-op-Benotzer E-Mail aschalten',
-       'config-email-usertalk' => 'Benoriichtege bäi Ännerung vun der Benotzerdiskussiounssäit aschalten',
-       'config-email-watchlist' => 'Benoriichtigung vun der Iwwerwaachungslëscht aschalten',
-       'config-email-auth' => 'E-Mail-Authentifizéierung aschalten',
-       'config-email-sender' => 'E-Mailadress fir Äntwerten:',
-       'config-upload-settings' => 'Eropgeluede Biller a Fichieren',
-       'config-upload-enable' => 'Eropluede vu Fichieren aschalten',
-       'config-upload-deleted' => 'Repertoire fir geläscht Fichieren:',
-       'config-logo' => 'URL vum Logo:',
-       'config-instantcommons' => '"Instant Commons" aktivéieren',
-       'config-cc-again' => 'Nach eng kéier eraussichen...',
-       'config-advanced-settings' => 'Erweidert Astellungen',
-       'config-extensions' => 'Erweiderungen',
-       'config-install-step-done' => 'fäerdeg',
-       'config-install-step-failed' => 'huet net funktionéiert',
-       'config-install-extensions' => 'Mat den Ereiderungen',
-       'config-install-database' => 'Datebank gëtt installéiert',
-       'config-install-pg-plpgsql' => 'No der Sprooch PL/pgSQL sichen',
-       'config-pg-no-plpgsql' => "Fir d'Datebank $1 muss d'Datebanksprooch PL/pgSQL installéiert ginn",
-       'config-install-user' => 'Datebank Benotzer uleeën',
-       'config-install-user-alreadyexists' => 'De Benotzer "$1" gëtt et schonn!',
-       'config-install-user-create-failed' => 'D\'Opmaache vum Benotzer "$1" huet net funktionéiert: $2',
-       'config-install-user-grant-failed' => 'D\'Bäisetze vu Rechter fir de Benotzer "$1" huet net funktionéiert: $2',
-       'config-install-user-missing' => 'De Benotzer "$1" deen ugi gouf gëtt et net.',
-       'config-install-user-missing-create' => 'De spezifizéierte Benotzer "$1" gëtt et net.
-Klickt d\'Checkbox "Benotzerkont uleeën" wann Dir dee Benotzer uleeë wëllt.',
-       'config-install-tables' => 'Tabelle ginn ugeluecht',
-       'config-install-interwiki' => 'Standard Interwiki-Tabell gëtt ausgefëllt',
-       'config-install-interwiki-list' => 'De Fichier <code>interwiki.list</code> gouf net fonnt.',
-       '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',
-       'config-help' => 'Hëllef',
-       'config-nofile' => 'De Fichier "$1" gouf net fonnt. Gouf e geläscht?',
-       'mainpagetext' => "'''MediaWiki gouf installéiert.'''",
-       'mainpagedocfooter' => "Kuckt w.e.g. [//meta.wikimedia.org/wiki/Help:Contents d'Benotzerhandbuch] fir Informatiounen iwwer de Gebruach vun der Wiki Software.
-
-== Fir  unzefänken ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Hëllef bei der Konfiguratioun]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglëscht vun neie MediaWiki-Versiounen]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Lokaliséiert MediaWiki fir Är Sprooch]",
-);
-
-/** Lingua Franca Nova (Lingua Franca Nova)
- */
-$messages['lfn'] = array(
-       'mainpagetext' => "'''MediaWiki es aora instalada.'''",
-       'mainpagedocfooter' => 'Atenda la [//meta.wikimedia.org/wiki/Help:Contents Gida per Usores] per informa supra la usa de la programa de vici.
-
-== Comensa ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de ajustas de la desinia]
-* [//www.mediawiki.org/wiki/Manual:FAQ Demandas comun de MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista per receta anunsias de novas supra MediaWiki]', # Fuzzy
-);
-
-/** Ganda (Luganda)
- * @author Kizito
- */
-$messages['lg'] = array(
-       'mainpagetext' => 'MediaWiki kati ewangidwa ku sisitemu yo',
-       'mainpagedocfooter' => "Okuyiga ku nkozesa ya sofutiweya owa wiki, kebera [//meta.wikimedia.org/wiki/Help:Contents Okulagirira Abakozesa].
-
-== Amagezi agakuyamba okutandika ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lukalala lw'eby'enteekateeka yo]
-* [//www.mediawiki.org/wiki/Manual:FAQ Ebiter'okubuuzibwa ku MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Wewandise ofunenga amawulire aga email ag'ebifa ku MediaWiki]", # Fuzzy
-);
-
-/** Limburgish (Limburgs)
- */
-$messages['li'] = array(
-       'mainpagetext' => "'''MediaWiki software succesvol geïnsjtalleerd.'''",
-       'mainpagedocfooter' => "Raodpleeg de [//meta.wikimedia.org/wiki/NL_Help:Inhoudsopgave handjleiding] veur informatie euver 't gebroek van de wikisoftware.
-
-== Mieë hölp ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lies mit instellinge]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki VGV (FAQ)]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki mailinglies veur nuuj versies]", # Fuzzy
-);
-
-/** Lao (ລາວ)
- */
-$messages['lo'] = array(
-       'mainpagetext' => "'''ຕິດຕັ້ງມີເດຍວິກິນີ້ສຳເລັດແລ້ວ.'''",
-);
-
-/** Lithuanian (lietuvių)
- * @author Eitvys200
- * @author Mantak111
- */
-$messages['lt'] = array(
-       'config-desc' => 'MediaWiki diegimas',
-       'config-title' => 'MediaWiki $1 diegimas',
-       'config-information' => 'Informacija',
-       'config-your-language' => 'Jūsų kalba:',
-       'config-wiki-language' => 'Viki kalba:',
-       'config-back' => '← Atgal',
-       'config-continue' => 'Toliau →',
-       'config-page-language' => 'Kalba',
-       'config-page-welcome' => 'Sveiki atvykę į MediaWiki!',
-       'config-page-dbconnect' => 'Prisijungti prie duomenų bazės',
-       'config-page-dbsettings' => 'Duomenų bazės nustatymai',
-       'config-page-name' => 'Vardas',
-       'config-page-options' => 'Parinktys',
-       'config-page-install' => 'Įdiegti',
-       'config-page-complete' => 'Baigta!',
-       'config-page-restart' => 'Iš naujo paleiskite diegimą',
-       'config-page-readme' => 'Perskaityk manę',
-       'config-page-copying' => 'Kopijuojama',
-       'config-page-upgradedoc' => 'Atnaujinama',
-       'config-restart' => 'Taip, paleiskite jį iš naujo',
-       'config-env-php' => 'PHP $1 yra įdiegtas.',
-       'config-env-php-toolow' => 'PHP $1 įdiegta.
-Tačiau, MediaWiki reikia PHP $2 ar naujesnės.',
-       'config-db-type' => 'Duomenų bazės tipas:',
-       'config-db-host' => 'Duomenų bazės serveris:',
-       'config-db-name' => 'Duomenų bazės pavadinimas:',
-       'config-db-name-oracle' => 'Duomenų bazės schema:',
-       'config-db-username' => 'Duomenų bazės vartotojo vardas:',
-       'config-db-password' => 'Duomenų bazės slaptažodis:',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-db-port' => 'Duomenų bazės prievadas:',
-       'config-db-schema' => 'MediaWiki schema:',
-       'config-header-mysql' => 'MySQL nustatymai',
-       'config-header-postgres' => 'PostgreSQL nustatymai',
-       'config-header-sqlite' => 'SQLite nustatymai',
-       'config-header-oracle' => 'Oracle nustatymai',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'Viki pavadinimas:',
-       'config-site-name-blank' => 'Įveskite svetainės pavadinimą.',
-       'config-project-namespace' => 'Projekto pavadinimas:',
-       'config-ns-generic' => 'Projektas',
-       'config-ns-site-name' => 'Toks pat kaip viki pavadinimas: $1',
-       'config-ns-other-default' => 'ManoWiki',
-       'config-admin-box' => 'Administratoriaus paskyra',
-       'config-admin-name' => 'Jūsų vardas:',
-       'config-admin-password' => 'Slaptažodis:',
-       'config-admin-password-confirm' => 'Slaptažodis dar kartą:',
-       'config-admin-name-blank' => 'Įveskite administratoriaus vartotojo vardą.',
-       'config-admin-password-blank' => 'Įvesti administratoriaus paskyros slaptažodį.',
-       'config-admin-password-same' => 'Slaptažodis turi būti ne toks pat, kaip vartotojo vardas.',
-       'config-admin-password-mismatch' => 'Įvesti slaptažodžiai nesutampa.',
-       'config-admin-email' => 'El. pašto adresas:',
-       'config-optional-continue' => 'Paklausti daugiau klausimų.',
-       'config-optional-skip' => 'Man jau nuobodu, tiesiog įdiekite viki.',
-       'config-profile' => 'Vartotojo teisių paskyra:',
-       'config-profile-wiki' => 'Tradicinė viki', # Fuzzy
-       'config-profile-private' => 'Privati viki',
-       'config-license-pd' => 'Viešas Domenas',
-       'config-email-settings' => 'El. pašto nustatymai',
-       'config-upload-enable' => 'Įgalinti failų įkėlimus',
-       'config-logo' => 'Logotipo URL:',
-       'config-cc-again' => 'Pasirinkti dar kartą...',
-       'config-extensions' => 'Plėtiniai',
-       'config-install-step-done' => 'atlikta',
-       'config-install-step-failed' => 'nepavyko',
-       'config-install-schema' => 'Kuriama schema',
-       'config-install-tables' => 'Kuriamos lentelės',
-       'config-install-stats' => 'Inicijuojamos statistikos',
-       'config-install-keys' => 'Generuojami slapti raktai',
-       'config-install-done' => "'''Sveikiname!'''
-Jūs sėkmingai įdiegėte MediaWiki.
-
-Įdiegimo programa sukūrė <code>LocalSettings.php</code> failą.
-Jame yra visos jūsų konfigūracijos.
-
-Jums reikės atsisiųsti ir įdėti jį į savo wiki įdiegimo bazę (pačiame kataloge, kaip index.php). Atsisiuntimas turėtų prasidėti automatiškai.
-
-Jei atsisiuntimas nebuvo pasiūlytas, arba jį atšaukėte, galite iš naujo atsisiųsti paspaudę žemiau esančią nuorodą:
-
-$3
-
-'''Pastaba:''' Jei jūs to nepadarysite dabar, tada šis sukurtas konfigūracijos failas nebus galimas vėliau, jei išeisite iš įdiegimo be atsisiuntimo.
-
-Kai baigsite, jūs galėsite '''[$2 įeiti į savo wiki]'''.",
-       'config-download-localsettings' => 'Atsisiųsti <code>LocalSettings.php</code>',
-       'config-help' => 'pagalba',
-       'mainpagetext' => "'''MediaWiki sėkmingai įdiegta.'''",
-       'mainpagedocfooter' => 'Informacijos apie wiki programinės įrangos naudojimą, ieškokite [//meta.wikimedia.org/wiki/Help:Contents žinyne].
-
-== Pradžiai ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Konfigūracijos nustatymų sąrašas]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki DUK]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki pranešimai paštu apie naujas versijas]', # Fuzzy
-);
-
-/** Latvian (latviešu)
- * @author GreenZeb
- */
-$messages['lv'] = array(
-       'config-back' => '← Atpakaļ',
-       'config-continue' => 'Turpināt →',
-       'config-page-language' => 'Valoda',
-       'config-page-welcome' => 'Laipni lūdzam MediaWiki!',
-       'config-page-dbconnect' => 'Savienoties ar datubāzi',
-       'config-page-upgrade' => 'Atjaunināt pašreizējo instalāciju',
-       'config-page-dbsettings' => 'Datubāzes iestatījumi',
-       'config-page-name' => 'Vārds',
-       'config-page-options' => 'Iespējas',
-       'config-page-install' => 'Instalēt',
-       'config-page-complete' => 'Pabeigts!',
-       'config-page-restart' => 'Pārstartēt instalāciju',
-       'config-page-readme' => 'Lasīt mani',
-       'config-page-releasenotes' => 'Informācija par laidienu',
-       'mainpagetext' => "'''MediaWiki veiksmīgi ieinstalēts'''",
-       'mainpagedocfooter' => 'Izlasi [//meta.wikimedia.org/wiki/Help:Contents Lietotāja pamācību], lai iegūtu vairāk informācijas par Wiki programmatūras lietošanu.
-
-== Pirmie soļi ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Konfigurācijas iespēju saraksts]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki J&A]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Parakstīties uz paziņojumiem par jaunām MediaWiki versijām]', # Fuzzy
-);
-
-/** Literary Chinese (文言)
- */
-$messages['lzh'] = array(
-       'mainpagetext' => "'''共筆臺已立'''",
-       'mainpagedocfooter' => "欲識維基,見[//meta.wikimedia.org/wiki/Help:Contents User's Guide]
-
-== 始 ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
-);
-
-/** Lazuri (Lazuri)
- * @author Bombola
- */
-$messages['lzz'] = array(
-       'mainpagetext' => "'''Mediawiki dido k'ai ik'idu.'''",
-       'mainpagedocfooter' => "Vik'i şeni muç'o ixmarinen ya mutxanepe oguru şeni [//meta.wikimedia.org/wiki/Help:Contents oxmaruşi rexberis] o3'k'edit.
-
-== Ağani na gyoç’k’u maxmarepe ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Ok'iduşi ayarepeşi liste]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki P'anda Na-k'itxu K'itxalape]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-mailepeşiş liste]", # Fuzzy
-);
-
-/** Maithili (मैथिली)
- * @author Umeshberma
- */
-$messages['mai'] = array(
-       'mainpagetext' => "'''मीडियाविकी नीक जकाँ प्रस्थापित भेल।'''",
-       'mainpagedocfooter' => "सम्पर्क करू [//meta.wikimedia.org/wiki/Help:Contents User's Guide] विकी तंत्रांशक प्रयोगक जानकारी लेल।
-
-==प्रारम्भ कोना करी==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
-);
-
-/** Moksha (мокшень)
- */
-$messages['mdf'] = array(
-       'mainpagetext' => "'''МедиаВикить арафтозь лац.'''",
-       'mainpagedocfooter' => 'Ванк [//meta.wikimedia.org/wiki/Help:Contents Ветямовал Тиинди] тяса ули кода содамс Вики програпнень эрявикснень колга.
-
-== Эрявикс сюлмафксне ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Васьфневи арафнематнень кярькссь]
-* [//www.mediawiki.org/wiki/Manual:FAQ МедиаВикить Сидеста Кеподеви Кизефксне]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce МедиаВикить од верзиятнень колга кулянь пачфтема]', # Fuzzy
-);
-
-/** Malagasy (Malagasy)
- * @author Jagwar
- */
-$messages['mg'] = array(
-       'config-session-error' => 'Hadisoana teo am-panombohana ny fidirana : $1',
-       'config-your-language' => 'Ny fiteninao :',
-       'config-wiki-language' => "Fiteny ho ampiasain'ny wiki :",
-       'config-back' => '← Miverina',
-       'config-continue' => 'Manohy →',
-       'config-page-language' => 'Fiteny',
-       'config-page-welcome' => "Tonga soa eto amin'i MediaWiki !",
-       'config-page-dbconnect' => "Hiditra eo amin'i banky angona",
-       'config-page-name' => 'Anarana',
-       'config-page-readme' => 'Vakio aho',
-       'config-page-copying' => 'Hala-tahaka',
-       'config-page-upgradedoc' => 'Fanavaozina',
-       'config-page-existingwiki' => 'Wiki efa misy',
-       'config-help-restart' => "Tianao hofafana avokoa ve ny data voaangona natsofokao ary hamerina ny fizotran'ny fametrahana ?",
-       'config-restart' => 'Eny, avereno atao',
-       'config-db-username' => "Anaram-pikamban'ny banky angona :",
-       'config-db-password' => "Tenimiafin'ny banky angona :",
-       'config-header-mysql' => "Parametatr'i MySQL",
-       'config-header-sqlite' => "Parametatr'i SQLite",
-       'config-header-oracle' => "Parametatr'i Oracle",
-       'config-mysql-innodb' => 'innoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-ns-generic' => 'Tetikasa',
-       'config-ns-other' => 'Hafa (lazao)',
-       'config-admin-name' => 'Ny anaranao :',
-       'config-admin-password' => 'Tenimiafina :',
-       'config-admin-email' => 'Adiresy imailaka :',
-       'config-profile-wiki' => 'Wiki tsotra', # Fuzzy
-       'config-profile-no-anon' => 'Mila mamorona kaonty',
-       'config-profile-fishbowl' => 'Mpanova mahazo alalana ihany',
-       'config-profile-private' => 'Wiki tsy sarababem-bahoaka',
-       'config-license' => 'Zom-pamorona ary lisansa :',
-       'config-license-none' => 'Tsy misy lisansa any an-tongom-pejy',
-       'config-email-user' => 'Avela mifandefa imailaka ny mpikambana',
-       'config-email-user-help' => "Hahafahan'ny mpikambana mifandefa imailaka raha omen'ny mpikambana alalana ao amin'ny safidiny.",
-       'config-upload-deleted' => "Petra-drakitra ho an'ny rakitra voafafa :",
-       'config-extensions' => 'Fanitarana',
-       'config-install-step-done' => 'vita',
-       'config-install-step-failed' => 'hadisoana',
-       'config-install-user' => "Famoronana mpapiasan'ny banky angona",
-       'config-install-tables' => 'Famoronana tabilao',
-       'config-install-stats' => 'Fanombohana ny statistika',
-       'config-install-keys' => 'Fanamboarana lakile miafina',
-       'config-help' => 'fanoroana',
-       'mainpagetext' => "'''Tafajoro soa aman-tsara ny rindrankajy Wiki.'''",
-       'mainpagedocfooter' => "Vangio ny [//meta.wikimedia.org/wiki/Aide:Contenu Fanoroana ho an'ny mpampiasa] ra te hitady fanoroana momba ny fampiasan'ity rindrankajy ity.
-
-== Hanomboka amin'ny MediaWiki ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lisitra ny paramètre de configuration]
-* [//www.mediawiki.org/wiki/Manual:FAQ/fr FAQ momba ny MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Resaka momba ny fizaràn'ny MediaWiki]", # Fuzzy
-);
-
-/** Eastern Mari (олык марий)
- */
-$messages['mhr'] = array(
-       'mainpagetext' => "'''MediaWiki сай шындыме.'''",
-);
-
-/** Minangkabau (Baso Minangkabau)
- * @author Iwan Novirion
- * @author Luthfi94
- */
-$messages['min'] = array(
-       'mainpagetext' => "'''MediaWiki alah tapasang jo sukses'''.",
-       'mainpagedocfooter' => 'Konsultasian [//meta.wikimedia.org/wiki/Help:Contents/min Panduan Panggunoan] untuak informasi caro panggunoan parangkaik lunak wiki.
-
-== Mamulai panggunoan ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings/id Daftar pangaturan konfigurasi]
-* [//www.mediawiki.org/wiki/Manual:FAQ/id Daftar patanyoan nan acok diajukan manganai MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Milis rilis MediaWiki]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Palokalan MediaWiki untuak bahaso Sanak]',
-);
-
-/** Macedonian (македонски)
- * @author Bjankuloski06
- * @author 아라
- */
-$messages['mk'] = array(
-       'config-desc' => 'Инсталатор на МедијаВики',
-       'config-title' => 'Инсталатор на МедијаВики $1',
-       'config-information' => 'Информации',
-       'config-localsettings-upgrade' => 'Востановена е податотека <code>LocalSettings.php</code>.
-За да ја надградите инсталцијава, внесете ја вредноста на <code>$wgUpgradeKey</code> во полето подолу.
-Тоа е го најдете во <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'Утврдено е присуството на податотеката „<code>LocalSettings.php</code>“.
-За да ја надградите инсталацијата, пуштете ја „<code>update.php</code>“ наместо горенаведената.',
-       'config-localsettings-key' => 'Надградбен клуч:',
-       'config-localsettings-badkey' => 'Клучот што го наведовте е погрешен',
-       'config-upgrade-key-missing' => 'Востановена е постоечка инсталација на МедијаВики.
-За да ја надградите, вметнете го следниов ред на дното од вашата страница <code>LocalSettings.php</code>:
-
-$1',
-       'config-localsettings-incomplete' => 'Постоечката страница <code>LocalSettings.php</code> е нецелосна.
-Не е поставена променливата $1.
-Изменете ја страницата <code>LocalSettings.php</code> така што ќе ѝ зададете вредност на променливата, па стиснете на „{{int:Config-continue}}“.',
-       'config-localsettings-connection-error' => 'Се појави грешка при поврзувањето со базата користејќи ги поставките назначени во <code>LocalSettings.php</code> или <code>AdminSettings.php</code>. Исправете ги овие поставки и обидете се повторно.
-
-$1',
-       'config-session-error' => 'Грешка при започнување на сесијата: $1',
-       'config-session-expired' => 'Вашите сесиски податоци истекоа.
-Поставките на сесиите траат $1.
-Нивниот рок можете да го зголемите со задавање на <code>session.gc_maxlifetime</code> во php.ini.
-Почнете ја инсталацијата одново.',
-       'config-no-session' => 'Вашите сесиски податоци се изгубени!
-Погледајте во php.ini дали <code>session.save_path</code> е поставен во правилна папка.',
-       'config-your-language' => 'Вашиот јазик:',
-       'config-your-language-help' => 'Одберете на кој јазик да се одвива инсталацијата.',
-       'config-wiki-language' => 'Јазик на викито:',
-       'config-wiki-language-help' => 'Одберете на кој јазик ќе бидат содржините на викито.',
-       'config-back' => '← Назад',
-       'config-continue' => 'Продолжи →',
-       'config-page-language' => 'Јазик',
-       'config-page-welcome' => 'Добредојдовте на МедијаВики!',
-       'config-page-dbconnect' => 'Поврзување со базата',
-       'config-page-upgrade' => 'Надградба на постоечката инсталација',
-       'config-page-dbsettings' => 'Нагодувања на базата',
-       'config-page-name' => 'Назив',
-       'config-page-options' => 'Поставки',
-       'config-page-install' => 'Инсталирај',
-       'config-page-complete' => 'Готово!',
-       'config-page-restart' => 'Пушти ја инсталацијата одново',
-       'config-page-readme' => 'Прочитај ме',
-       'config-page-releasenotes' => 'Белешки за изданието',
-       'config-page-copying' => 'Копирање',
-       'config-page-upgradedoc' => 'Надградба',
-       'config-page-existingwiki' => 'Постоечко вики',
-       'config-help-restart' => 'Дали сакате да ги исчистите сите зачувани податоци што ги внесовте и да ја започнете инсталацијата одново?',
-       'config-restart' => 'Да, почни одново',
-       'config-welcome' => '=== Проверки на околината ===
-Сега ќе се извршиме основни проверки за да се востанови дали околината е погодна за инсталирање на МедијаВики. Не заборавајте да ги приложите овие информации ако барате помош со довршување на инсталацијата.',
-       'config-copyright' => "=== Авторски права и услови ===
-
-$1
-
-Ова е слободна програмска опрема (free software); можете да го редистрибуирате и/или менувате согласно условите на ГНУ-овата општа јавна лиценца (GNU General Public License) на Фондацијата за слободна програмска опрема (Free Software Foundation); верзија 2 или било која понова верзија на лиценцата (по ваш избор).
-
-Овој програм се нуди со надеж дека ќе биде корисен, но '''без никаква гаранција'''; дури ни подразбраната гаранција за '''продажна способност''' или '''погодност за определена цел'''.
-Повеќе информации ќе најдете во текстот на ГНУ-овата општа јавна лиценца.
-
-Би требало да имате добиено <doclink href=Copying>примерок од ГНУ-овата општа јавна лиценца</doclink> заедно со програмов; ако немате добиено, тогаш пишете ни на Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. или [http://www.gnu.org/copyleft/gpl.html прочитајте ја тука].",
-       'config-sidebar' => '* [//www.mediawiki.org Домашна страница на МедијаВики]
-* [//www.mediawiki.org/wiki/Help:Contents Водич за корисници]
-* [//www.mediawiki.org/wiki/Manual:Contents Водич за администратори]
-* [//www.mediawiki.org/wiki/Manual:FAQ ЧПП]
-----
-* <doclink href=Readme>Прочитај ме</doclink>
-* <doclink href=ReleaseNotes>Белешки за изданието</doclink>
-* <doclink href=Copying>Копирање</doclink>
-* <doclink href=UpgradeDoc>Надградување</doclink>',
-       'config-env-good' => 'Околината е проверена.
-Можете да го инсталирате МедијаВики.',
-       'config-env-bad' => 'Околината е проверена.
-Не можете да го инсталирате МедијаВики.',
-       'config-env-php' => 'PHP $1 е инсталиран.',
-       'config-env-php-toolow' => 'PHP $1 е инсталиран.
-Меѓутоа, МедијаВики бара PHP $2 или поново.',
-       'config-unicode-using-utf8' => 'Со utf8_normalize.so за уникодна нормализација од Брајон Вибер (Brion Vibber).',
-       'config-unicode-using-intl' => 'Со додатокот [http://pecl.php.net/intl intl PECL] за уникодна нормализација.',
-       'config-unicode-pure-php-warning' => "'''Предупредување''': Додатокот [http://pecl.php.net/intl intl PECL] не е достапен за врши уникодна нормализација, враќајќи се на бавна примена на чист PHP.
-
-Ако имате високопрометно мрежно место, тогаш ќе треба да прочитате повеќе за [//www.mediawiki.org/wiki/Unicode_normalization_considerations уникодната нормализација].",
-       'config-unicode-update-warning' => "'''Предупредување''': Инсталираната верзија на обвивката за уникодна нормализација користи постара верзија на библиотеката на [http://site.icu-project.org/ проектот ICU].
-За да користите Уникод, ќе треба да направите [//www.mediawiki.org/wiki/Unicode_normalization_considerations надградба].",
-       'config-no-db' => 'Не можев да пронајдам соодветен двигател за базата на податоци! Ќе треба да инсталирате двигател за базата на податоци за PHP.
-Поддржани се следниве типови на бази $1.
-
-Ако сте на заедничко (споделено) вдомување, побарајте му на вдомителот да инсталира соодветен двигател за базата.
-Ако вие самите го составивте ова PHP, сменете ги поставките така што ќе овозможите клиент на базата - на пр. со кодот <code>./configure --with-mysql</code>.
-Ако инсталиравте PHP од пакет на Debian или Ubuntu, тогаш ќе треба да го инсталирате и модулот php5-mysql.',
-       'config-outdated-sqlite' => "'''Предупредување''': имате SQLite $1. Најстарата допуштена верзија е $2. Затоа, SQLite ќе биде недостапен.",
-       'config-no-fts3' => "'''Предупредување''': SQLite iе составен без модулот [//sqlite.org/fts3.html FTS3] - за оваа база нема да има можност за пребарување.",
-       'config-register-globals' => "'''Предупредување: Можноста <code>[http://php.net/register_globals register_globals]</code> за PHP е овозможена.'''
-'''Оневозможете ја ако е можно.'''
-МедијаВики ќе работи, но опслужувачот ви е изложен на безбедносни ризици.",
-       'config-magic-quotes-runtime' => "'''Кобно: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] е активно!'''
-Оваа можност непредвидливо го расипува вносот на податоци.
-Оваа можност мора да е исклучена. Во спротивно нема да можете да го инсталирате и користите МедијаВики.",
-       'config-magic-quotes-sybase' => "'''Кобно: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] е активно!'''
-Оваа можност непредвидливо го расипува вносот на податоци.
-Оваа можност мора да е исклучена. Во спротивно нема да можете да го инсталирате и користите МедијаВики.",
-       'config-mbstring' => "'''Кобно: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] е активно!'''
-Оваа можност предизвикува грешки и може непредвидиво да го расипува вносот на податоци.
-Оваа можност мора да е исклучена. Во спротивно нема да можете да го инсталирате и користите МедијаВики.",
-       'config-ze1' => "'''Кобно: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] е активно!'''
-Оваа можност предизвикува ужасни грешки во МедијаВики.
-Оваа можност мора да е исклучена. Во спротивно нема да можете да го инсталирате и користите МедијаВики.",
-       'config-safe-mode' => "'''Предупредување:''' [http://www.php.net/features.safe-mode безбедниот режим] на PHP е активен.
-Ова може да предизвика проблеми, особено ако користите подигања и поддршка за <code>math</code>.",
-       'config-xml-bad' => 'XML-модулот за PHP недостасува.
-МедијаВики има потреба од функции во овој модул и нема да работи со овие поставки.
-Ако работите со Mandrake, инсталирајте го php-xml пакетот.',
-       'config-pcre' => 'Недостасува модулот за поддршка на PCRE.
-МедијаВики не може да работи без функции за регуларни изрази соодветни на Perl.',
-       'config-pcre-no-utf8' => "'''Фатално''': PCRE-модулот на PHP е составен без поддршка за PCRE_UTF8.
-МедијаВики бара поддршка за UTF-8 за да може да работи правилно.",
-       'config-memory-raised' => '<code>memory_limit</code> за PHP изнесува $1, зголемен на $2.',
-       'config-memory-bad' => "'''Предупредување:''' <code>memory_limit</code> за PHP изнесува $1.
-Ова е веројатно премалку.
-Инсталацијата може да не успее!",
-       'config-ctype' => "'''Фатална грешка''': PHP мора да се состави со поддршка за [http://www.php.net/manual/en/ctype.installation.php додатокот Ctype].",
-       'config-json' => "'''Кобно:''' PHP беше срочен без поддршка од JSON.
-Ќе мора да го инсталирате додатокот за JSON во PHP, или додатокот [http://pecl.php.net/package/jsonc PECL jsonc] пред да го инсталирате МедијаВики.
-* Додатокот за PHP е вклучен во верзиите 5 и 6 на Linux (од Red Hat Enterprise) (CentOS), но мора да се активира во <code>/etc/php.ini</code> или <code>/etc/php.d/json.ini</code>.
-* Некои варијанти на Linux излезени по мај 2013 г. не го содржат додатокот за PHP, туку го пакуваат додатокот PECL како <code>php5-json</code> или <code>php-pecl-jsonc</code>.",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] е инсталиран',
-       'config-apc' => '[http://www.php.net/apc APC] е инсталиран',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] е инсталиран',
-       'config-no-cache' => "'''Предупредување:''' Не можев да го најдам [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] или [http://www.iis.net/download/WinCacheForPhp WinCache].
-Кеширањето на објекти не е овозможено.",
-       'config-mod-security' => "'''Предупредување''': на вашиот опслужувач има овозможено [http://modsecurity.org/ mod_security]. Ако не е поставено како што треба, ова може да предизвика проблеми кај МедијаВики и други програми што им овозможуваат на корисниците да објавуваат произволни содржини.
-Погледнете ја [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.
-Минијатуризацијата на сликите ќе биде оневозможена.',
-       'config-no-uri' => "'''Грешка:''' Не можев да го утврдам тековниот URI.
-Инсталацијата е откажана.",
-       'config-no-cli-uri' => "'''Предупредување''': Нема наведено --scriptpath. Ќе се користи основниот: <code>$1</code>.",
-       'config-using-server' => 'Користите опслужувач под името „<nowiki>$1</nowiki>“.',
-       'config-using-uri' => 'Користите опслужувач со URL-адреса „<nowiki>$1$2</nowiki>“.',
-       'config-uploads-not-safe' => "'''Предупредување:''' Вашата матична папка за подигање <code>$1</code> е подложна на извршување (пуштање) на произволни скрипти.
-Иако МедијаВики врши безбедносни проверки на сите подигнати податотеки, ве советуваме [//www.mediawiki.org/wiki/Manual:Security#Upload_security да ја затворите оваа безбедносна дупка] пред да овозможите подигање.",
-       'config-no-cli-uploads-check' => "'''Предупредување:''' Вашата основна папка за подигања (<code>$1</code>) не е проверена дали е подложна
-произволно извршување на скрипти во текот на инсталацијата на посредникот на повикувачко ниво (CLI).",
-       'config-brokenlibxml' => 'Вашиот систем има комбинација од PHP и libxml2 верзии и затоа има грешки и може да предизвика скриено расипување на податоците кај МедијаВики и други мрежни програми.
-Надградете го на PHP 5.2.9 и libxml2 2.7.3 или нивни понови верзии! ПРЕКИНУВАМ ([//bugs.php.net/bug.php?id=45996 грешката е заведена во PHP]).',
-       'config-using531' => 'МедијаВики не може да се користи со PHP $1 поради грешка кај упатните параметри за <code>__call()</code>.
-За да го решите проблемот, надградете го на PHP 5.3.2 или понова верзија, или пак користете го постариот PHP 5.3.0.',
-       'config-suhosin-max-value-length' => 'Suhosin е инсталиран и ја ограничува должината на параметарот GET на $1 бајти. Делот ResourceLoader на МедијаВики ќе ја заобиколува ова граница, но со тоа ќе се влоши делотворноста. Ако е воопшто можно, на <code>suhosin.get.max_value_length</code> треба да го наместите на 1024 или повеќе во <code>php.ini</code>, и да му ја зададете истата вредност на <code>$wgResourceLoaderMaxQueryLength</code> во <code>LocalSettings.php</code>.',
-       'config-db-type' => 'Тип на база:',
-       'config-db-host' => 'Домаќин на базата:',
-       'config-db-host-help' => 'Ако вашата база е на друг опслужувач, тогаш тука внесете го името на домаќинот или IP-адресата.
-
-Ако користите заедничко (споделено) вдомување, тогаш вашиот вдомител треба да го наведе точното име на домаќинот во неговата документација.
-
-Ако инсталирате на опслужувач на Windows и користите MySQL, можноста „localhost“ може да не функционира за опслужувачкото име. Во тој случај, обидете се со внесување на „127.0.0.1“ како локална IP-адреса.
-
-Ако користите PostgreSQL, оставете го полево празно за да се поврзете преку Unix-приклучок.',
-       'config-db-host-oracle' => 'TNS на базата:',
-       'config-db-host-oracle-help' => 'Внесете важечко [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm локално име за поврзување]. На оваа инсталација мора да ѝ биде видлива податотеката tnsnames.ora.<br />Ако користите клиентски библиотеки 10g или понови, тогаш можете да го користите и методот на иметнување на [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].',
-       'config-db-wiki-settings' => 'Идентификувај го викиво',
-       'config-db-name' => 'Име на базата:',
-       'config-db-name-help' => 'Одберете име што ќе го претставува вашето вики.
-Името не смее да содржи празни места.
-
-Ако користите заедничко (споделено) вдомување, тогаш вашиот вдомител ќе ви даде конкретно име на база за користење, или пак ќе ви даде да создавате бази преку контролната табла.',
-       'config-db-name-oracle' => 'Шема на базата:',
-       'config-db-account-oracle-warn' => 'Постојат три поддржани сценарија за инсталирање на Oracle како базен услужник:
-
-Ако сакате да создадете сметка на базата како дел од постапката за инсталација, наведете сметка со SYSDBA-улога како сметка за базата што ќе се инсталира и наведете ги саканите податоци за сметката за мрежен пристап. Во друг случај, можете да создадете сметка за мрежен пристап рачно и да ја наведете само таа сметка (ако има дозволи за создавање на шематски објекти) или пак да наведете две различни сметки, една со привилегии за создавање, а друга (ограничена) за мрежен пристап.
-
-Скриптата за создавање сметка со задолжителни привилегии ќе ја најдете во папката „maintenance/oracle/“ од оваа инсталација. Имајте на ум дека ако користите ограничена сметка ќе ги оневозможите сите функции за одржување со основната сметка.',
-       'config-db-install-account' => 'Корисничка смета за инсталација',
-       'config-db-username' => 'Корисничко име за базата:',
-       'config-db-password' => 'Лозинка за базата:',
-       'config-db-password-empty' => 'Внесете лозинка за новиот корисник на базата: $1.
-Иако може да се создаваат корисници без лозинка, тоа не е безбедно.',
-       'config-db-install-username' => 'Внесете корисничко име што ќе се користи за поврзување со базата во текот на инсталацијата. Ова не е корисничкото име од сметката на МедијаВики, туку посебно корисничко име за вашата база на податоци.',
-       'config-db-install-password' => 'Внесете клозинка што ќе се користи за поврзување со базата во текот на инсталацијата. Ова не е лозинката од сметката на МедијаВики, туку посебна лозинка за вашата база на податоци.',
-       'config-db-install-help' => 'Внесете го корисничкото име и лозинката што ќе се користи за поврзување со базата на податоци во текот на инсталацијата.',
-       'config-db-account-lock' => 'Користи го истото корисничко име и лозинка за редовна работа',
-       'config-db-wiki-account' => 'Корисничко име за редовна работа',
-       'config-db-wiki-help' => 'Внесете корисничко име и лозинка што ќе се користат за поврзување со базата на податоци во текот на редовната работа со викито.
-Ако сметката не постои, а инсталационата сметка има доволно привилегии, тогаш оваа корисничка сметка ќе биде создадена со минималните привилегии потребни за работа со викито.',
-       'config-db-prefix' => 'Префикс на табелата на базата:',
-       'config-db-prefix-help' => 'Ако треба да делите една база на податоци со повеќе викија, или со МедијаВики и друг мрежен програм, тогаш можете да додадете префикс на сите називи на табелите за да спречите проблематични ситуации.
-Не користете празни простори.
-
-Ова поле обично се остава празно.',
-       'config-db-charset' => 'Збир знаци за базата',
-       'config-charset-mysql5-binary' => 'Бинарен за MySQL 4.1/5.0',
-       'config-charset-mysql5' => 'UTF-8 за MySQL 4.1/5.0',
-       'config-charset-mysql4' => 'Назадно-соодветен UTF-8 за MySQL 4.0',
-       'config-charset-help' => "'''ПРЕДУПРЕДУВАЊЕ:''' Ако користите '''назадно-соодветен UTF-8''' во MySQL 4.1+, а потоа направите резервен примерок на базата со <code>mysqldump</code>, ова може да ги опустоши сите не-ASCII знаци, и со тоа неповратно да ја расипе целата зачувана резерва!
-
-Во '''бинарен режим''', во базата МедијаВики го складира UTF-8 текстот во бинарни полиња.
-Ова е поефикансно отколку  UTF-8 режимот на MySQL бидејќи ви овозможува да го користите целиот спектар на уникодни знаци.
-Во '''UTF-8 режим''', MySQL ќе знае на кој збир знаци припаѓаат вашите податоци, и може соодветно да ги претстави и претвори,
-но нема да ви дозволи да складирате знаци над [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Основната повеќејазична рамнина].",
-       'config-mysql-old' => 'Се бара MySQL $1 или поново, а вие имате $2.',
-       'config-db-port' => 'Порта на базата:',
-       'config-db-schema' => 'Шема за МедијаВики',
-       'config-db-schema-help' => 'Оваа шема обично по правило ќе работи нормално.
-Сменете ја само ако знаете дека треба да се смени.',
-       'config-pg-test-error' => "Не можам да се поврзам со базата '''$1''': $2",
-       'config-sqlite-dir' => 'Папка на SQLite-податоци:',
-       'config-sqlite-dir-help' => "SQLite ги складира сите податоци во една податотека.
-
-Папката што ќе ја наведете мора да е запислива од мрежниот опслужувач во текот на инсталацијата.
-
-Таа '''не''' смее да биде достапна преку интернет, и затоа не ја ставаме кајшто ви се наоѓаат PHP-податотеките.
-
-Инсталаторот воедно ќе создаде податотека <code>.htaccess</code>, но ако таа не функционира како што треба, тогаш некој ќе може да ви влезе во вашата необработена (сирова) база на податоци.
-Тука спаѓаат необработени кориснички податоци (е-поштенски адреси, хеширани лозинки) како и избришани ревизии и други податоци за викито до кои се има ограничен пристап.
-
-Се препорачува целата база да ја сместите некаде, како на пр. <code>/var/lib/mediawiki/вашетовики</code>.",
-       'config-oracle-def-ts' => 'Стандарден таблеарен простор:',
-       'config-oracle-temp-ts' => 'Привремен табеларен простор:',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-support-info' => 'МедијаВики ги поддржува следниве системи на бази на податоци:
-
-$1
-
-Ако системот што сакате да го користите не е наведен подолу, тогаш проследете ја горенаведената врска со инструкции за да овозможите поддршка за тој систем.',
-       'config-support-mysql' => '* $1 е главната цел на МедијаВики и најдобро се поддржува ([http://www.php.net/manual/en/mysql.installation.php како се составува PHP со поддршка за MySQL])',
-       'config-support-postgres' => '* $1 е популарен систем на бази на податоци со отворен код кој претставува алтернатива на MySQL ([http://www.php.net/manual/en/pgsql.installation.php како да составите PHP со поддршка за PostgreSQL]). Може сè уште да има некои грешки. па затоа не се препорачува за употреба во производна средина.',
-       'config-support-sqlite' => '* $1 е лесен систем за бази на податоци кој е многу добро поддржан. ([http://www.php.net/manual/en/pdo.installation.php Како да составите PHP со поддршка за SQLite], користи PDO)',
-       'config-support-oracle' => '* $1 е база на податоци на комерцијално претпријатие. ([http://www.php.net/manual/en/oci8.installation.php Како да составите PHP со поддршка за OCI8])',
-       'config-header-mysql' => 'Нагодувања на MySQL',
-       'config-header-postgres' => 'Нагодувања на PostgreSQL',
-       'config-header-sqlite' => 'Нагодувања на SQLite',
-       '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' => 'Неважечки 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.
-
-Проверете го долунаведениот домаќин, корисничко име и лозинка и обидете се повторно.',
-       'config-invalid-schema' => 'Неважечка шема за МедијаВики „$1“.
-Користете само букви, бројки и долни црти.',
-       'config-db-sys-create-oracle' => 'Инсталаторот поддржува само употреба на SYSDBA-сметка за создавање на нова сметка.',
-       'config-db-sys-user-exists-oracle' => 'Корисничката сметка „$1“ веќе постои. SYSDBA служи само за создавање на нова сметка!',
-       'config-postgres-old' => 'Се бара PostgreSQL $1 или поново, а вие имате $2.',
-       'config-sqlite-name-help' => 'Одберете име кое ќе го претставува вашето вики.
-Не користете празни простори и црти.
-Ова ќе се користи за податотечното име на SQLite-податоците.',
-       'config-sqlite-parent-unwritable-group' => 'Не можам да ја создадам папката <code><nowiki>$1</nowiki></code> бидејќи мрежниот опслужувач не може да запише во матичната папка <code><nowiki>$2</nowiki></code>.
-
-Инсталаторот го утврди корисникот под кој работи вашиот мрежен опслужувач.
-За да продолжите, наместете да може да запишува во папката <code><nowiki>$3</nowiki></code>.
-На Unix/Linux систем направете го следново:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Не можам да ја создадам папката <code><nowiki>$1</nowiki></code> бидејќи мрежниот опслужувач не може да запише во матичната папка <code><nowiki>$2</nowiki></code>.
-
-Инсталаторот не можеше го утврди корисникот под кој работи вашиот мрежен опслужувач.
-За да продолжите, наместете тој (и други!) да може глобално да запишува во папката <code><nowiki>$3</nowiki></code>
-На Unix/Linux систем направете го следново:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Грешка при создавањето на податочната папка „$1“.
-Проверете каде се наоѓа и обидете се повторно.',
-       'config-sqlite-dir-unwritable' => 'Не можам да запишам во папката „$1“.
-Во дозволите за неа, овозможете му на мрежниот опслужувач да запишува во неа и обидете се повторно.',
-       'config-sqlite-connection-error' => '$1.
-
-Проверете ја податочната папка и името на базата, и обидете се повторно.',
-       'config-sqlite-readonly' => 'Податотеката <code>$1</code> е незапислива.',
-       'config-sqlite-cant-create-db' => 'Не можев да ја создадам податотеката <code>$1</code> за базата.',
-       'config-sqlite-fts3-downgrade' => 'PHP нема поддршка за FTS3 — ја поништувам надградбата за табелите',
-       'config-can-upgrade' => "Во оваа база има табели на МедијаВики.
-За да ги надградите на МедијаВики $1, кликнете на '''Продолжи'''.",
-       'config-upgrade-done' => "Надградбата заврши.
-
-Сега можете да [$1 почнете да го користите вашето вики].
-
-Ако сакате да ја пресоздадете вашата податотека <code>LocalSettings.php</code>, тогаш кликнете на копчето подолу.
-Ова '''не се препорачува''' освен во случај на проблеми со викито.",
-       'config-upgrade-done-no-regenerate' => 'Надградбата заврши.
-
-Сега можете да [$1 почнете да го користите викито].',
-       'config-regenerate' => 'Пресоздај LocalSettings.php →',
-       'config-show-table-status' => 'Барањето <code>SHOW TABLE STATUS</code> не успеа!',
-       'config-unknown-collation' => "'''Предупредување:''' Базата корисни непрепознаена упатна споредба.",
-       'config-db-web-account' => 'Сметка на базата за мрежен пристап',
-       'config-db-web-help' => 'Одберете корисничко име и лозинка што ќе ги користи мрежниот опслужувач за поврзување со опслужувачот на базта на податоци во текот на редовната работа со викито.',
-       'config-db-web-account-same' => 'Користи ја истата сметка од инсталацијата',
-       'config-db-web-create' => 'Создај ја сметката ако веќе не постои',
-       'config-db-web-no-create-privs' => 'Сметката што ја назначивте за инсталација нема доволно привилегии за да може да создаде сметка.
-Тука мора да назначите постоечка сметка.',
-       'config-mysql-engine' => 'Складишен погон:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''Предупредување''': Го одбравте MyISAM како складишен погон за MySQL. Но тој не се препорачува за МедијаВики бидејќи:
-* одвај поддржува едновременост поради заклучување на табелите
-* поподложен на расипување од другите погони
-* кодната база на МедијаВики не секогаш може да работи со MyISAM како што треба
-
-Ако вашата инсталација на MySQL поддржува InnoDB, тогаш сериозно препорачуваме да го користите него наместо MyISAM.
-Ако вашата инсталација на MySQL не поддржува InnoDB, веројатно дошло време за надградба.",
-       'config-mysql-only-myisam-dep' => "'''Предупредување:''' MyISAM е единствениот достапен складишен погон за MySQL, што не се препорачува за употреба со МедијаВики, бидејќи:
-* речиси не поддржува истовремено извршување на задачите поради заклучувањето на табелите
-* поподложен е на расипувања од другите погони
-* кодната база на МедијаВИки не секогаш работи исправно со MyISAM
-Вашата инсталација на MySQL не поддржува InnoDB. Можеби е време да ја надградите.",
-       'config-mysql-engine-help' => "'''InnoDB''' речиси секогаш е најдобар избор, бидејќи има добра поддршка за едновременост.
-
-'''MyISAM''' може да е побрз кај инсталациите наменети за само еден корисник или незаписни инсталации (само читање).
-Базите на податоци од MyISAM почесто се расипуваат од базите на InnoDB.",
-       'config-mysql-charset' => 'Збир знаци за базата:',
-       'config-mysql-binary' => 'Бинарен',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "Во '''бинарен режим''', во базата на податоци МедијаВики складира UTF-8 текст во бинарни полиња.
-Ова е поефикасно отколку  TF-8 режимот на MySQL, и ви овозможува да ја користите целата палета на уникодни знаци.
-
-Во '''UTF-8 режим''', MySQL ќе знае на кој збир знаци припаѓаат вашите податоци, и може соодветно да ги претстави и претвори, но нема да ви дозволи да складиратезнаци над [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Основната повеќејазична рамнина].",
-       'config-site-name' => 'Име на викито:',
-       'config-site-name-help' => 'Ова ќе се појавува во заглавната лента на прелистувачот и на разни други места.',
-       'config-site-name-blank' => 'Внесете име на мрежното место.',
-       'config-project-namespace' => 'Проектен именски простор:',
-       'config-ns-generic' => 'Проект',
-       'config-ns-site-name' => 'Исто име како викито: $1',
-       'config-ns-other' => 'Друго (наведете)',
-       'config-ns-other-default' => 'МоеВики',
-       'config-project-namespace-help' => "По примерот на Википедија, многу викија ги чуваат страниците со правила на посебно место од самите содржини, т.е. во „'''проектен именски простор'''“.
-Сите наслови на страниците во овој именски простор почнуваат со извесна претставка, којшто можете да го укажете тука.
-По традиција претставката произлегува од името на викито, но не смее да содржи интерпункциски знаци како „#“ или „:“.",
-       'config-ns-invalid' => 'Назначениот именски простор „<nowiki>$1</nowiki>“ е неважечки.
-Назначете друг проектен именски простор.',
-       'config-ns-conflict' => 'Наведениот именски простор „<nowiki>$1</nowiki>“ се коси со основниот именски простор на МедијаВики.
-Наведете друг именски простор за проектот.',
-       'config-admin-box' => 'Администратоска сметка',
-       'config-admin-name' => 'Вашето име:',
-       'config-admin-password' => 'Лозинка:',
-       'config-admin-password-confirm' => 'Пак лозинката:',
-       'config-admin-help' => 'Тука внесете го вашето корисничко име, на пр. „Петар Петровски“.
-Ова име ќесе користи за најава во викито.',
-       'config-admin-name-blank' => 'Внесете администраторско корисничко име.',
-       'config-admin-name-invalid' => 'Назначенотго корисничко име „<nowiki>$1</nowiki>“ е неважечко.
-Назначете друго.',
-       'config-admin-password-blank' => 'Внесете лозинка за администраторската сметка',
-       'config-admin-password-same' => 'Лозинката не може да биде иста со корисничкото име.',
-       'config-admin-password-mismatch' => 'Лозинките што ги внесовте не се совпаѓаат.',
-       'config-admin-email' => 'Е-поштенска адреса:',
-       'config-admin-email-help' => 'Тука внесете е-поштенска адреса за да можете да добивате е-пошта од други корисници на викито, да ја менувате лозинката, и да бидете известувани за промени во страниците на вашиот список на набљудувања. Можете и да го оставите празно.',
-       'config-admin-error-user' => 'Се појави внатрешна грешка при создавањето на администраторот со име „<nowiki>$1</nowiki>“.',
-       'config-admin-error-password' => 'Се појави внатрешна грешка при задавање на лозинката за администраторот „<nowiki>$1</nowiki>“: <pre>$2</pre>',
-       'config-admin-error-bademail' => 'Внесовте неважечка е-поштенска адреса',
-       'config-subscribe' => 'Претплатете се на [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce release поштенскиот список за известувања].',
-       'config-subscribe-help' => 'Ова е нископрометен поштенски список кој се користи за соопштувања во врска со изданија, вклучувајќи важни безбедносни соопштенија.
-Треба да се претплатите и да ја надградувате вашата инсталација на МедијаВики кога излегуваат нови верзии.',
-       'config-subscribe-noemail' => 'Се обидовте да се претплатите на поштенскиот список со известувања за нови изданија без да наведете е-пошта.
-Наведете е-поштенска адреса ако сакате да се претплатите на списокот.',
-       'config-almost-done' => 'Уште малку сте готови!
-Сега можете да ги прескокнете преостанатите поставувања и веднаш да го инсталирате викито.',
-       'config-optional-continue' => 'Постави ми повеќе прашања.',
-       'config-optional-skip' => 'Веќе ми здосади, дај само инсталирај го викито.',
-       'config-profile' => 'Профил на кориснички права:',
-       'config-profile-wiki' => 'Отворено вики',
-       'config-profile-no-anon' => 'Задолжително отворање сметка',
-       'config-profile-fishbowl' => 'Само овластени уредници',
-       'config-profile-private' => 'Приватно вики',
-       'config-profile-help' => "Викијата функционираат најдобро кога имаат што повеќе уредници.
-Во МедијаВики лесно се проверуваат скорешните промени, и лесно се исправа (технички: „враќа“) штетата направена од неупатени или злонамерни корисници.
-
-Многумина имаат најдено најразлични полезни примени за МедијаВики, но понекогаш не е лесно да убедите некого во предностите на вики-концептот.
-Значи имате избор.
-
-'''{{int:config-profile-wiki}}''' — модел според кој секој може да уредува, дури и без најавување.
-Ако имате вики со '''задолжително отворање на сметка''', тогаш добивате повеќе контрола, но ова може даги одврати спонтаните учесници.
-
-'''{{int:config-profile-fishbowl}}''' — може да уредуваат само уредници што имаат добиено дозвола за тоа, но јавноста може да ги гледа страниците, вклучувајќи ја нивната историја.
-'''{{int:config-profile-private}}''' — страниците се видливи и уредливи само за овластени корисници.
-
-По инсталацијата имате на избор и посложени кориснички права и поставки. Погледајте во [//www.mediawiki.org/wiki/Manual:User_rights прирачникот].",
-       'config-license' => 'Авторски права и лиценца:',
-       'config-license-none' => 'Без подножје за лиценца',
-       'config-license-cc-by-sa' => 'Криејтив комонс НаведиИзвор СподелиПодИстиУслови',
-       'config-license-cc-by' => 'Криејтив комонс НаведиИзвор',
-       'config-license-cc-by-nc-sa' => 'Криејтив комонс НаведиИзвор-Некомерцијално-СподелиПодИстиУслови',
-       'config-license-cc-0' => 'Криејтив комонс Нула (јавна сопственост)',
-       'config-license-gfdl' => 'ГНУ-ова лиценца за слободна документација 1.3 или понова',
-       'config-license-pd' => 'Јавна сопственост',
-       'config-license-cc-choose' => 'Одберете друга лиценца на Криејтив комонс по ваш избор',
-       'config-license-help' => "Многу јавни викија ги ставаат сите придонеси под [http://freedomdefined.org/Definition слободна лиценца].
-Со ова се создава атмосфера на општа сопственост и поттикнува долгорочно учество.
-Ова не е неопходно за викија на поединечни физички или правни лица.
-
-Ако сакате да користите текст од Википедија, и сакате Википедија да прифаќа текст прекопиран од вашето вики, тогаш треба да ја одберете лиценцата '''Криејтив комонс НаведиИзвор СподелиПодИстиУслови'''.
-
-ГНУ-овата лиценца за слободна документација (ГЛСД) е старата лиценца на Википедија.
-Оваа лиценца сè уште важи, но е тешка за разбирање.
-Исто така треба да се има на ум дека пренамената на содржините под ГЛСД не е лесна.",
-       'config-email-settings' => 'Нагодувања за е-пошта',
-       'config-enable-email' => 'Овозможи излезна е-пошта',
-       'config-enable-email-help' => 'Ако сакате да работи е-поштата, [http://www.php.net/manual/en/mail.configuration.php поштенските нагодувања на PHP] треба да се правилно наместени.
-Ако воопшто не сакате никакви функции за е-пошта, тогаш можете да ги оневозможите тука.',
-       'config-email-user' => 'Овозможи е-пошта од корисник до корисник',
-       'config-email-user-help' => 'Дозволи сите корисници да можат да си праќаат е-пошта ако ја имаат овозможено во нагодувањата.',
-       'config-email-usertalk' => 'Овозможи известувања за промени во кориснички страници за разговор',
-       'config-email-usertalk-help' => 'Овозможи корисниците да добиваат известувања за промени во нивните кориснички страници за разговор ако ги имаат овозможено во нагодувањата.',
-       'config-email-watchlist' => 'Овозможи известувања за список на набљудувања',
-       'config-email-watchlist-help' => 'Овозможи корисниците да добиваат известувања за нивните набљудувани страници ако ги имаат овозможено во нагодувањата.',
-       'config-email-auth' => 'Овозможи потврдување на е-пошта',
-       'config-email-auth-help' => "Ако оваа можност е вклучена, тогаш корисниците ќе мора да ја потврдат нивната е-поштенска адреса преку врска испратена до нив кога ја укажуваат или менуваат е-поштенската адреса.
-Само корисници со потврдена е-пошта можат да добиваат е-пошта од други корисници или да ги менуваат писмата за известување.
-Оваа можност е '''препорачана''' за јавни викија поради можни злоупотреби на е-поштенската функција.",
-       'config-email-sender' => 'Повратна е-поштенска адреса:',
-       'config-email-sender-help' => 'Внесете ја е-поштенската адреса што ќе се користи како повратна адреса за излезна е-пошта.
-Таму ќе се испраќаат вратените (непримени) писма.
-Многу поштенски опслужувачи бараат барем делот за доменско име да биде важечки.',
-       'config-upload-settings' => 'Подигање на слики и податотеки',
-       'config-upload-enable' => 'Овозможи подигање на податотеки',
-       'config-upload-help' => 'Подигањето на податотеки потенцијално го изложуваат вашиот опслужувач на безбедносни ризици.
-За повеќе информации, прочитајте го [//www.mediawiki.org/wiki/Manual:Security поглавието за безбедност] во прирачникот.
-
-За да овозможите подигање на податотеки, сменете го режимот на потпапката <code>images</code> во основната папка на МедијаВики, за да му овозможите на мрежниот опслужувач да запишува во неа.
-Потоа овозможете ја оваа функција.',
-       'config-upload-deleted' => 'Папка за избришаните податотеки:',
-       'config-upload-deleted-help' => 'Одберете во која папка да се архивираат избришаните податотеки.
-Најдобро би било ако таа не е достапна преку интернет.',
-       'config-logo' => 'URL за логото:',
-       'config-logo-help' => 'Матичното руво на МедијаВики има простор за лого од 135x160 пиксели над страничната лента.
-
-Можете да употребите <code>$wgStylePath</code> или <code>$wgScriptPath</code> ако вашето лого е релативно на тие патеки.
-
-Ако не сакате да имате лого, тогаш оставете го ова поле празно.',
-       'config-instantcommons' => 'Овозможи Instant Commons',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons Instant Commons] е функција која им овозможува на викијата да користат слики, звучни записи и други мултимедијални содржини од [//commons.wikimedia.org/ Заедничката Ризница].
-За да може ова да работи, МедијаВики бара пристап до интернет.
-
-За повеќе информации за оваа функција и напатствија за нејзино поставување на вики (сите други освен Ризницата), коносултирајте го [//mediawiki.org/wiki/Manual:$wgForeignFileRepos прирачникот].',
-       'config-cc-error' => 'Изборникот на лиценци од Криејтив комонс не даде резултати.
-Внесете го името на лиценцата рачно.',
-       'config-cc-again' => 'Одберете повторно...',
-       'config-cc-not-chosen' => 'Одберете ја саканата лиценца од Криејтив комонс и стиснете на „продолжи“.',
-       'config-advanced-settings' => 'Напредни нагодувања',
-       'config-cache-options' => 'Нагодувања за кеширање на објекти:',
-       'config-cache-help' => 'Кеширањето на објекти се користи за зголемување на брзината на МедијаВики со кеширање на често употребуваните податоци.
-Ова многу се препорачува на средни до големи викија, но од тоа ќе имаат полза и малите викија.',
-       'config-cache-none' => 'Без кеширање (не се остранува ниедна функција, но може да влијае на брзината кај поголеми викија)',
-       'config-cache-accel' => 'Кеширање на PHP-објекти (APC, XCache или WinCache)',
-       'config-cache-memcached' => 'Користи Memcached (бара дополнително поставување и нагодување)',
-       'config-memcached-servers' => 'Memcached-опслужувачи:',
-       'config-memcached-help' => 'Список на IP-адреси за употреба во Memcached.
-Треба да се наведе по една во секој ред, како и портата што ќе се користи. На пример:
- 127.0.0.1:11211
- 192.168.1.25:1234',
-       'config-memcache-needservers' => 'Го одбравте Memcached како ваш ваш тип на скришно памтење (кеш), но не наведовте опслужувач(и)',
-       'config-memcache-badip' => 'Внесовте неважечка IP-адреса за Memcached: $1',
-       'config-memcache-noport' => 'Не ја наведовте портата за опслужувачот на Memcached: $1.
-Ако не знаете која порта треба да се користи, основната е 11211',
-       'config-memcache-badport' => 'Бројките за портата на Memcached треба да бидат помеѓу $1 и $2',
-       'config-extensions' => 'Додатоци',
-       'config-extensions-help' => 'Во вашата папка <code>./extensions</code> беа востановени горенаведените додатоци.
-
-За ова може да треба дополнително нагодување, но можете да ги овозможите сега',
-       'config-install-alreadydone' => "'''Предупредување:''' Изгледа дека веќе го имате инсталирано МедијаВики и сега сакате да го инсталирате повторно.
-Продолжете на следната страница.",
-       'config-install-begin' => 'Стискајќи на „{{int:config-continue}}“ ќе ја започнете инсталацијата на МедијаВики.
-Ако сакате да направите измени во досегашното, стиснете на „{{int:config-back}}“.',
-       'config-install-step-done' => 'готово',
-       'config-install-step-failed' => 'не успеа',
-       'config-install-extensions' => 'Вклучувам додатоци',
-       'config-install-database' => 'Ја поставувам базата на податоци',
-       'config-install-schema' => 'Создавам шема',
-       'config-install-pg-schema-not-exist' => 'PostgreSQL-шемата не постои',
-       'config-install-pg-schema-failed' => 'Создавањето натабелите не успеа.
-Проверете дали корисникот „$1“ може да запишува во шемата „$2“.',
-       'config-install-pg-commit' => 'Спроведување на промени',
-       'config-install-pg-plpgsql' => 'Проверувам јазик PL/pgSQL',
-       'config-pg-no-plpgsql' => 'Ќе треба да го инсталирате јазикот PL/pgSQL во базата $1',
-       'config-pg-no-create-privs' => 'Сметката што ја наведовте за инсталацијата нема доволно привилегии за да создаде друга сметка.',
-       'config-pg-not-in-role' => 'Сметката што ја наведовте за мрежниот корисник веќе постои.
-Сметката што ја наведовте за инсталација не е суперкорисник и не ѝ припаѓа на улогата на мрежниот корисник, па затоа не може да создава објекти во негова  сопственост.
-
-МедијаВики налага дека табелите мора да се во сопственост на мрежниот корисник. Наведете друга мрежна сметка, или стиснете на „назад“ и наведете соодветно привилегиран корисник за инталацијата.',
-       'config-install-user' => 'Создавам корисник за базата',
-       'config-install-user-alreadyexists' => 'Корисникот „$1“ веќе постои',
-       'config-install-user-create-failed' => 'Создавањето на корисникот „$1“ не успеа: $2',
-       'config-install-user-grant-failed' => 'Доделувањето на дозвола на корисникот „$1“ не успеа: $2',
-       'config-install-user-missing' => 'Наведениот корисник „$1“ не постои.',
-       'config-install-user-missing-create' => 'Наведениот корисник „$1“ не постои.
-Ако сакате да го создадете, штиклирајте ја можноста „создај сметка“.',
-       'config-install-tables' => 'Создавам табели',
-       'config-install-tables-exist' => "'''Предупредување''': Изгледа дека табелите за МедијаВики веќе постојат.
-Го прескокнувам создавањето.",
-       'config-install-tables-failed' => "'''Грешка''': Создавањето на табелата не успеа поради следнава грешка: $1",
-       'config-install-interwiki' => 'Ги пополнувам основно зададените меѓувики-табели',
-       'config-install-interwiki-list' => 'Не можев да ја пронајдам податотеката <code>interwiki.list</code>.',
-       'config-install-interwiki-exists' => "'''Предупредување''': Табелата со интервикија веќе содржи ставки.
-Го прескокнувам основно-зададениот список.",
-       'config-install-stats' => 'Ги подготвувам статистиките',
-       'config-install-keys' => 'Создавање на тајни клучеви',
-       'config-insecure-keys' => "'''Предупредување:''' {{PLURAL:$2|Безбедносниот клуч $1 создаден во текот на инсталацијата не е сосем безбеден|Безбедносните клучеви $1 создадени во текот на инсталацијата не се сосем безбедни}}. Ви препорачуваме да {{PLURAL:$2|го|ги}} смените рачно.",
-       'config-install-sysop' => 'Создавање на администраторска корисничка сметка',
-       'config-install-subscribe-fail' => 'Не можам да ве претплатам на известувањето mediawiki-announce: $1',
-       'config-install-subscribe-notpossible' => 'cURL не е инсталиран, а allow_url_fopen не е достапно.',
-       'config-install-mainpage' => 'Создавам главна страница со стандардна содржина',
-       'config-install-extension-tables' => 'Изработка на табели за овозможени додатоци',
-       'config-install-mainpage-failed' => 'Не можев да вметнам главна страница: $1',
-       'config-install-done' => "'''Честитаме!'''
-Успешно го инсталиравте МедијаВики.
-
-Инсталаторот создаде податотека <code>LocalSettings.php</code>.
-Таму се содржат сите ваши нагодувања.
-
-Ќе треба да ја преземете и да ја ставите во основата на инсталацијата (истата папка во која се наоѓа index.php). Преземањето треба да е започнато автоматски.
-
-Ако не ви е понудено преземање, или пак ако сте го откажале, можете да го почнете одново стискајќи на следнава врска:
-
-$3
-
-'''Напомена''': Ако ова не го направите сега, податотеката со поставки повеќе нема да биде на достапна.
-
-Откога ќе завршите со тоа, можете да '''[$2 влезете на вашето вики]'''.",
-       'config-download-localsettings' => 'Преземи го <code>LocalSettings.php</code>',
-       'config-help' => 'помош',
-       'config-nofile' => 'Податотеката „$1“ не е пронајдена. Да не е избришана?',
-       'config-extension-link' => 'Дали сте знаеле дека вашето вики поддржува [//www.mediawiki.org/wiki/Manual:Extensions додатоци]?
-
-Можете да ги прелистате [//www.mediawiki.org/wiki/Category:Extensions_by_category по категории] или да ја посетите [//www.mediawiki.org/wiki/Extension_Matrix матрицата], каде ќе најдете полн список на додатоци.',
-       'mainpagetext' => "'''МедијаВики е успешно инсталиран.'''",
-       'mainpagedocfooter' => 'Погледнете го [//meta.wikimedia.org/wiki/Help:Contents Упатството за корисници] за подетални иформации како се користи вики-програмот.
-
-==Од каде да почнете==
-* [//meta.wikimedia.org/wiki/Manual:Configuration_settings Список на нагодувања]
-* [//meta.wikimedia.org/wiki/Manual:FAQ ЧПП (често поставувани прашања) за МедијаВики].
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Поштенски список на МедијаВики за нови верзии]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Локализирајте го МедијаВики на вашиот јазик]',
-);
-
-/** Malayalam (മലയാളം)
- * @author Praveenp
- * @author Sadik Khalid
- */
-$messages['ml'] = array(
-       'config-desc' => 'മീഡിയവിക്കി ഇൻസ്റ്റോളർ',
-       'config-title' => 'മീഡിയവിക്കി $1 ഇൻസ്റ്റലേഷൻ',
-       'config-information' => 'വിവരങ്ങൾ',
-       'config-localsettings-upgrade' => "'''അറിയിപ്പ്''': ഒരു <code>LocalSettings.php</code> ഫയൽ കാണുന്നു.
-സോഫ്റ്റ്‌വേർ അപ്‌ഗ്രേഡ് ചെയ്യുക സാദ്ധ്യമാണ്.
-ദയവായി പെട്ടിയിൽ <code>\$wgUpgradeKey</code> എന്നതിന്റെ വില നൽകുക.", # Fuzzy
-       'config-localsettings-key' => 'അപ്‌ഗ്രേഡ് ചാവി:',
-       'config-localsettings-badkey' => 'താങ്കൾ നൽകിയ ചാവി തെറ്റാണ്',
-       'config-session-error' => 'സെഷൻ തുടങ്ങുന്നതിൽ പിഴവ്: $1',
-       'config-your-language' => 'താങ്കളുടെ ഭാഷ:',
-       'config-your-language-help' => 'ഇൻസ്റ്റലേഷൻ പ്രക്രിയയിൽ ഉപയോഗിക്കേണ്ട ഭാഷ തിരഞ്ഞെടുക്കുക.',
-       'config-wiki-language' => 'വിക്കി ഭാഷ:',
-       'config-wiki-language-help' => 'വിക്കിയിൽ പ്രധാനമായി ഉപയോഗിക്കേണ്ട ഭാഷ തിരഞ്ഞെടുക്കുക.',
-       'config-back' => '← പിന്നിലേയ്ക്ക്',
-       'config-continue' => 'തുടരുക →',
-       'config-page-language' => 'ഭാഷ',
-       'config-page-welcome' => 'മീഡിയവിക്കിയിലേയ്ക്ക് സ്വാഗതം!',
-       'config-page-dbconnect' => 'ഡേറ്റാബേസുമായി ബന്ധപ്പെടുക',
-       'config-page-upgrade' => 'നിലവിലുള്ള ഇൻസ്റ്റലേഷൻ അപ്‌ഗ്രേഡ് ചെയ്യുക',
-       'config-page-dbsettings' => 'ഡേറ്റാബേസ് സജ്ജീകരണങ്ങൾ',
-       'config-page-name' => 'പേര്',
-       'config-page-options' => 'ഐച്ഛികങ്ങൾ',
-       'config-page-install' => 'ഇൻസ്റ്റോൾ',
-       'config-page-complete' => 'സമ്പൂർണ്ണം!',
-       'config-page-restart' => 'ഇൻസ്റ്റലേഷൻ അടച്ച ശേഷം പുനർപ്രവർത്തിപ്പിക്കുക',
-       'config-page-readme' => 'ഇത് വായിക്കൂ',
-       'config-page-releasenotes' => 'പ്രകാശന കുറിപ്പുകൾ',
-       'config-page-copying' => 'പകർത്തൽ',
-       'config-page-upgradedoc' => 'അപ്‌ഗ്രേഡിങ്',
-       'config-help-restart' => 'ഇതുവരെ ഉൾപ്പെടുത്തിയ എല്ലാവിവരങ്ങളും ഒഴിവാക്കാനും ഇൻസ്റ്റലേഷൻ പ്രക്രിയ നിർത്തി-വീണ്ടുമാരംഭിക്കാനും താങ്കളാഗ്രഹിക്കുന്നുണ്ടോ?',
-       'config-restart' => 'അതെ, പുനർപ്രവർത്തിപ്പിക്കുക',
-       'config-sidebar' => '* [//www.mediawiki.org മീഡിയവിക്കി പ്രധാനതാൾ]
-* [//www.mediawiki.org/wiki/Help:Contents ഉപയോക്തൃസഹായി]
-* [//www.mediawiki.org/wiki/Manual:Contents കാര്യനിർവഹണസഹായി]
-* [//www.mediawiki.org/wiki/Manual:FAQ പതിവുചോദ്യങ്ങൾ]', # Fuzzy
-       'config-env-php' => 'പി.എച്ച്.പി. $1 ഇൻസ്റ്റോൾ ചെയ്തിട്ടുണ്ട്.',
-       'config-no-db' => 'അനുയോജ്യമായ ഡേറ്റാബേസ് ഡ്രൈവർ കണ്ടെത്താനായില്ല!', # Fuzzy
-       'config-memory-raised' => 'പി.എച്ച്.പി.യുടെ <code>memory_limit</code> $1 ആണ്, $2 ആയി ഉയർത്തിയിരിക്കുന്നു.',
-       'config-memory-bad' => "'''മുന്നറിയിപ്പ്:''' പി.എച്ച്.പി.യുടെ <code>memory_limit</code> $1 ആണ്.
-ഇത് മിക്കവാറും വളരെ കുറവാണ്.
-ഇൻസ്റ്റലേഷൻ പരാജയപ്പെട്ടേക്കാം!",
-       'config-db-type' => 'ഡേറ്റാബേസ് തരം:',
-       'config-db-host' => 'ഡേറ്റാബേസ് ഹോസ്റ്റ്:',
-       'config-db-name' => 'ഡേറ്റാബേസിന്റെ പേര്:',
-       'config-db-name-oracle' => 'ഡേറ്റാബേസ് സ്കീമ:',
-       'config-db-install-account' => 'ഇൻസ്റ്റലേഷനുള്ള ഉപയോക്തൃ അംഗത്വം',
-       'config-db-username' => 'ഡേറ്റാബേസ് ഉപയോക്തൃനാമം:',
-       'config-db-password' => 'ഡേറ്റാബേസ് രഹസ്യവാക്ക്:',
-       'config-mysql-old' => 'മൈഎസ്‌ക്യൂഎൽ $1 അഥവാ അതിലും പുതിയത് ആവശ്യമാണ്, താങ്കളുടെ പക്കൽ ഉള്ളത് $2 ആണ്.',
-       'config-db-port' => 'ഡേറ്റാബേസ് പോർട്ട്:',
-       'config-db-schema' => 'മീഡിയവിക്കിയ്ക്കായുള്ള സ്കീമ',
-       'config-support-info' => 'മീഡിയവിക്കി താഴെ പറയുന്ന ഡേറ്റാബേസ് സിസ്റ്റംസ് പിന്തുണയ്ക്കുന്നു:
-
-$1
-
-താങ്കൾ ഉപയോഗിക്കാനാഗ്രഹിക്കുന്ന ഡേറ്റാബേസ് സിസ്റ്റം പട്ടികയിലില്ലെങ്കിൽ, ദയവായി പിന്തുണ സജ്ജമാക്കാനായി മുകളിൽ നൽകിയിട്ടുള്ള ലിങ്കിലെ നിർദ്ദേശങ്ങൾ ചെയ്യുക.',
-       'config-header-mysql' => 'മൈഎസ്‌ക്യൂഎൽ സജ്ജീകരണങ്ങൾ',
-       'config-invalid-db-type' => 'അസാധുവായ ഡേറ്റാബേസ് തരം',
-       'config-missing-db-name' => '"ഡേറ്റാബേസിന്റെ പേരി"ന് ഒരു വില നിർബന്ധമായും നൽകിയിരിക്കണം',
-       'config-connection-error' => '$1.
-
-താഴെ നൽകിയിരിക്കുന്ന ഹോസ്റ്റ്, ഉപയോക്തൃനാമം, രഹസ്യവാക്ക് എന്നിവ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.',
-       'config-regenerate' => 'LocalSettings.php പുനഃസൃഷ്ടിക്കുക →',
-       'config-mysql-engine' => 'സ്റ്റോറേജ് എൻജിൻ:',
-       'config-site-name' => 'വിക്കിയുടെ പേര്:',
-       'config-site-name-help' => 'ഇത് ബ്രൗസറിന്റെ ടൈറ്റിൽ ബാറിലും മറ്റനേകം ഇടങ്ങളിലും പ്രദർശിപ്പിക്കപ്പെടും.',
-       'config-site-name-blank' => 'സൈറ്റിന്റെ പേര് നൽകുക.',
-       'config-project-namespace' => 'പദ്ധതി നാമമേഖല:',
-       'config-ns-generic' => 'പദ്ധതി',
-       'config-ns-site-name' => 'വിക്കിയുടെ പേര് തന്നെ: $1',
-       'config-ns-other' => 'ഇതരം (വ്യക്തമാക്കുക)',
-       'config-ns-other-default' => 'എന്റെ‌വിക്കി',
-       'config-admin-box' => 'കാര്യനിർവാഹക അംഗത്വം',
-       'config-admin-name' => 'താങ്കളുടെ പേര്:',
-       'config-admin-password' => 'രഹസ്യവാക്ക്:',
-       'config-admin-password-confirm' => 'രഹസ്യവാക്ക് ഒരിക്കൽക്കൂടി:',
-       'config-admin-help' => 'ഇവിടെ താങ്കളുടെ ഇച്ഛാനുസരണമുള്ള ഉപയോക്തൃനാമം നൽകുക, ഉദാഹരണം "ശശി കൊട്ടാരത്തിൽ".
-ഈ പേരായിരിക്കണം വിക്കിയിൽ പ്രവേശിക്കാൻ താങ്കൾ ഉപയോഗിക്കേണ്ടത്.',
-       'config-admin-name-blank' => 'ഒരു കാര്യനിർവാഹക ഉപയോക്തൃനാമം നൽകുക.',
-       'config-admin-name-invalid' => 'നൽകിയിട്ടുള്ള ഉപയോക്തൃനാമം "<nowiki>$1</nowiki>" അസാധുവാണ്.
-മറ്റൊരു ഉപയോക്തൃനാമം നൽകുക.',
-       'config-admin-password-blank' => 'കാര്യനിർവാഹക അംഗത്വത്തിനുള്ള രഹസ്യവാക്ക് നൽകുക.',
-       'config-admin-password-same' => 'രഹസ്യവാക്കും ഉപയോക്തൃനാമവും ഒന്നാകരുത്.',
-       'config-admin-password-mismatch' => 'താങ്കൾ നൽകിയ രഹസ്യവാക്കുകൾ രണ്ടും തമ്മിൽ യോജിക്കുന്നില്ല.',
-       'config-admin-email' => 'ഇമെയിൽ വിലാസം:',
-       'config-admin-error-user' => '"<nowiki>$1</nowiki>" എന്ന പേരിലുള്ള കാര്യനിർവഹണ അംഗത്വ നിർമ്മിതിയ്ക്കിടെ ആന്തരികമായ പിഴവുണ്ടായി.',
-       'config-admin-error-password' => '"<nowiki>$1</nowiki>" എന്ന പേരിലുള്ള കാര്യനിർവാഹക അംഗത്വത്തിനു രഹസ്യവാക്ക് സജ്ജീകരിച്ചപ്പോൾ ആന്തരികമായ പിഴവുണ്ടായി: <pre>$2</pre>',
-       'config-subscribe' => '[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce പ്രകാശന അറിയിപ്പ് മെയിലിങ് ലിസ്റ്റിൽ] വരിക്കാരാകുക.',
-       'config-subscribe-help' => 'പുറത്തിറക്കൽ അറിയിപ്പുകളും, പ്രധാന സുരക്ഷാ അറിയിപ്പുകളും പ്രസിദ്ധീകരിക്കുന്ന വളരെ എഴുത്തുകളൊന്നും ഉണ്ടാകാറില്ലാത്ത മെയിലിങ് ലിസ്റ്റ് ആണിത്.
-പുതിയ പതിപ്പുകൾ പുറത്ത് വരുന്നതനുസരിച്ച് അവയെക്കുറിച്ചറിയാനും മീഡിയവിക്കി ഇൻസ്റ്റലേഷൻ പുതുക്കാനും ഇതിന്റെ വരിക്കാരൻ/വരിക്കാരി ആവുക.',
-       'config-almost-done' => 'മിക്കവാറും പൂർത്തിയായിരിക്കുന്നു!
-ബാക്കിയുള്ളവ അവഗണിച്ച് വിക്കി ഇൻസ്റ്റോൾ ചെയ്യാവുന്നതാണ്.',
-       'config-optional-continue' => 'കൂടുതൽ ചോദ്യങ്ങൾ ചോദിക്കൂ.',
-       'config-optional-skip' => 'എനിക്ക് മടുത്തു, ഒന്ന് ഇൻസ്റ്റോൾ ചെയ്ത് തീർക്ക്.',
-       'config-profile-wiki' => 'പരമ്പരാഗത വിക്കി', # Fuzzy
-       'config-profile-no-anon' => 'അംഗത്വ സൃഷ്ടി ചെയ്യേണ്ടതുണ്ട്',
-       'config-profile-fishbowl' => 'അനുവാദമുള്ളവർ മാത്രം തിരുത്തുക',
-       'config-profile-private' => 'സ്വകാര്യ വിക്കി',
-       'config-license' => 'പകർപ്പവകാശവും അനുമതിയും:',
-       'config-license-cc-by-sa' => 'ക്രിയേറ്റീവ് കോമൺസ് ആട്രിബ്യൂഷൻ ഷെയർ എലൈക്',
-       'config-license-cc-by-nc-sa' => 'ക്രിയേറ്റീവ് കോമൺസ് ആട്രിബ്യൂഷൻ നോൺ-കൊമേഴ്സ്യൽ ഷെയർ എലൈക്',
-       'config-license-pd' => 'പൊതുസഞ്ചയം',
-       'config-email-settings' => 'ഇമെയിൽ സജ്ജീകരണങ്ങൾ',
-       'config-enable-email-help' => "ഇമെയിൽ പ്രവർത്തിക്കണമെങ്കിൽ, [http://www.php.net/manual/en/mail.configuration.php PHP's മെയിൽ സജ്ജീകരണങ്ങൾ] ശരിയായി ക്രമീകരിക്കേണ്ടതുണ്ട്.
-ഇമെയിൽ സൗകര്യം ആവശ്യമില്ലെങ്കിൽ, ഇവിടെത്തന്നെ അത് നിർജ്ജീവമാക്കാം.",
-       'config-email-user' => 'ഉപയോക്താക്കൾ തമ്മിലുള്ള ഇമെയിൽ പ്രവർത്തനസജ്ജമാക്കുക',
-       'config-email-user-help' => 'സ്വന്തം ക്രമീകരണങ്ങളിൽ ഇമെയിൽ സജ്ജമാക്കിയിട്ടുണ്ടെങ്കിൽ ഉപയോക്താക്കളെ മറ്റുള്ളവർക്ക് ഇമെയിൽ അയയ്ക്കാൻ അനുവദിക്കുക.',
-       'config-email-usertalk' => 'ഉപയോക്തൃസംവാദം താളിൽ മാറ്റങ്ങളുണ്ടായാൽ അറിയിക്കുക',
-       'config-email-watchlist' => 'ശ്രദ്ധിക്കുന്നവയിൽ മാറ്റം വന്നാൽ അറിയിക്കുക',
-       'config-email-auth' => 'ഇമെയിലിന്റെ സാധുതാപരിശോധന സജ്ജമാക്കുക',
-       'config-email-sender' => 'മറുപടിയ്ക്കുള്ള ഇമെയിൽ വിലാസം:',
-       'config-upload-settings' => 'ചിത്രങ്ങളും പ്രമാണങ്ങളും അപ്‌ലോഡ് ചെയ്യൽ',
-       'config-upload-enable' => 'പ്രമാണ അപ്‌ലോഡുകൾ സജ്ജമാക്കുക',
-       'config-upload-deleted' => 'മായ്ക്കപ്പെട്ട ഫയലുകൾക്കുള്ള ഡയറക്റ്ററി:',
-       'config-logo' => 'ലോഗോയുടെ യൂ.ആർ.എൽ.:',
-       'config-logo-help' => 'മീഡിയവിക്കിയിൽ സ്വതേയുള്ള ദൃശ്യരൂപത്തിൽ 135x160 പിക്സലുള്ള ലോഗോ മുകളിൽ ഇടത് മൂലയിൽ കാണാം.
-അനുയോജ്യമായ വലിപ്പമുള്ള ഒരു ചിത്രം അപ്‌ലോഡ് ചെയ്തിട്ട്, അതിന്റെ യൂ.ആർ.എൽ. ഇവിടെ നൽകുക.
-
-താങ്കൾക്ക് ലോഗോ ആവശ്യമില്ലെങ്കിൽ, ഈ പെട്ടി ശൂന്യമായിടുക.', # Fuzzy
-       'config-cc-again' => 'ഒന്നുകൂടി എടുക്കൂ...',
-       'config-advanced-settings' => 'വിപുലീകൃത ക്രമീകരണങ്ങൾ',
-       'config-extensions' => 'അനുബന്ധങ്ങൾ',
-       'config-install-step-done' => 'ചെയ്തു കഴിഞ്ഞു',
-       'config-install-step-failed' => 'പരാജയപ്പെട്ടു',
-       'config-install-extensions' => 'അനുബന്ധങ്ങൾ ഉൾപ്പെടുത്തുന്നു',
-       'config-install-database' => 'ഡേറ്റാബേസ് സജ്ജമാക്കുന്നു',
-       'config-install-pg-commit' => 'മാറ്റങ്ങൾ സ്വീകരിക്കുന്നു',
-       'config-install-user' => 'ഡേറ്റാബേസ് ഉപയോക്താവിനെ സൃഷ്ടിക്കുന്നു',
-       'config-install-sysop' => 'കാര്യനിർവാഹക അംഗത്വം സൃഷ്ടിക്കുന്നു',
-       'config-install-mainpage' => 'സ്വാഭാവിക ഉള്ളടക്കത്തോടുകൂടി പ്രധാനതാൾ സൃഷ്ടിക്കുന്നു',
-       'config-install-mainpage-failed' => 'പ്രധാന താൾ ഉൾപ്പെടുത്താൻ കഴിഞ്ഞില്ല: $1',
-       'config-install-done' => "'''അഭിനന്ദനങ്ങൾ!'''
-താങ്കൾ വിജയകരമായി മീഡിയവിക്കി സജ്ജീകരിച്ചിരിക്കുന്നു.
-
-ഇൻസ്റ്റോളർ താങ്കളുടെ എല്ലാ ക്രമീകരണങ്ങളുമടങ്ങുന്ന <code>LocalSettings.php</code> ഫയൽ സൃഷ്ടിച്ചിട്ടുണ്ട്.
-
-പ്രസ്തുത പ്രമാണം ഡൗൺലോഡ് ചെയ്ത് താങ്കളുടെ വിക്കി സജ്ജീകരണത്തിന്റെ അടിസ്ഥാന ഡയറക്റ്ററിയിൽ ഇടേണ്ടതാണ് (index.php കിടക്കുന്ന അതേ ഡയറക്റ്ററിയിൽ). ഡൗൺലോഡിങ്ങ് സ്വയം ആരംഭിക്കുന്നതാണ്. ഡൗൺലോഡിങ്ങ് സ്വയം തുടങ്ങാതിരിക്കുകയോ, താങ്കൾ റദ്ദാക്കുകയോ ചെയ്ത പക്ഷം താഴെ കാണുന്ന കണ്ണിയിൽ ഞെക്കുക:
-$3
-
-'''ശ്രദ്ധിക്കുക''': താങ്കൾ ഇപ്പോൾ ചെയ്തില്ലെങ്കിൽ, ഫയൽ എടുക്കാതെ ഇൻസ്റ്റലേഷൻ പ്രക്രിയയിൽ നിന്ന് പുറത്തിറങ്ങിയാൽ, സൃഷ്ടിക്കപ്പെട്ട ക്രമീകരണങ്ങളടങ്ങുന്ന പ്രമാണം പിന്നീട് ലഭ്യമായിരിക്കില്ല.
-
-മുകളിൽ പറഞ്ഞ പ്രകാരം ചെയ്തു കഴിഞ്ഞാൽ, താങ്കൾക്ക് '''[$2 വിക്കിയിൽ പ്രവേശിക്കാവുന്നതാണ്]'''.",
-       'mainpagetext' => "'''മീഡിയവിക്കി വിജയകരമായി സജ്ജീകരിച്ചിരിക്കുന്നു.'''",
-       'mainpagedocfooter' => 'വിക്കി സോഫ്റ്റ്‌വെയർ ഉപയോഗിക്കുന്നതിനെ കുറിച്ചുള്ള വിശദാംശങ്ങൾക്ക്  [//meta.wikimedia.org/wiki/Help:Contents സോഫ്റ്റ്‌വെയർ സഹായി] കാണുക.
-
-== പ്രാരംഭസഹായികൾ ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings ക്രമീകരണങ്ങളുടെ പട്ടിക]
-* [//www.mediawiki.org/wiki/Manual:FAQ മീഡിയവിക്കി പതിവുചോദ്യങ്ങൾ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce മീഡിയവിക്കി പ്രകാശന മെയിലിങ് ലിസ്റ്റ്]', # Fuzzy
-);
-
-/** Mongolian (монгол)
- * @author Chinneeb
- */
-$messages['mn'] = array(
-       'config-page-language' => 'Хэл',
-       'mainpagetext' => "'''МедиаВики амжилттай суулаа.'''",
-       'mainpagedocfooter' => 'Вики программыг хэрэглэх талаар заавар авахын тулд [//meta.wikimedia.org/wiki/Help:Contents хэрэглэгчийн гарын авлага]-г үзнэ үү.
-
-== Эхлэх ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Тохиргоо]
-* [//www.mediawiki.org/wiki/Manual:FAQ МедиаВикигийн тогтмол тавигддаг асуултууд]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce МедиаВикигийн мэдээний мэйл явуулах жагсаалт]', # Fuzzy
-);
-
-/** Marathi (मराठी)
- */
-$messages['mr'] = array(
-       'mainpagetext' => "'''मीडियाविकीचे इन्स्टॉलेशन पूर्ण.'''",
-       'mainpagedocfooter' => 'विकी सॉफ्टवेअर वापरण्याकरिता [//meta.wikimedia.org/wiki/Help:Contents यूजर गाईड] पहा.
-
-== सुरुवात ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings कॉन्फिगरेशन सेटींगची यादी]
-* [//www.mediawiki.org/wiki/Manual:FAQ मीडियाविकी नेहमी विचारले जाणारे प्रश्न]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce मीडियाविकि मेलिंग लिस्ट]', # Fuzzy
-);
-
-/** Malay (Bahasa Melayu)
- * @author Anakmalaysia
- * @author Pizza1016
- */
-$messages['ms'] = array(
-       'config-desc' => 'Pemasang MediaWiki',
-       'config-title' => 'Pasangan MediaWiki $1',
-       'config-information' => 'Maklumat',
-       '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 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.',
-       'config-back' => '← Undur',
-       'config-continue' => 'Teruskan →',
-       'config-page-language' => 'Bahasa',
-       'config-page-welcome' => 'Selamat datang ke MediaWiki!',
-       'config-page-dbconnect' => 'Bersambung dengan pangkalan data',
-       'config-page-upgrade' => 'Naik taraf pemasangan sedia ada',
-       'config-page-dbsettings' => 'Tetapan pangkalan data',
-       'config-page-name' => 'Nama',
-       'config-page-options' => 'Pilihan',
-       'config-page-install' => 'Pasang',
-       'config-page-complete' => 'Selesai!',
-       'config-page-restart' => 'Mulakan semula pemasangan',
-       'config-page-readme' => 'Baca saya',
-       'config-page-releasenotes' => 'Catatan keluaran',
-       'config-page-copying' => 'Sedang menyalin',
-       'config-page-upgradedoc' => 'Sedang menaik taraf',
-       'config-page-existingwiki' => 'Wiki sedia ada',
-       'config-env-php' => 'PHP $1 dipasang.',
-       'config-env-php-toolow' => 'PHP $1 dipasang.
-Bagaimanapun, MediaWiki memerlukan PHP $2 ke atas.',
-       'config-unicode-using-utf8' => 'utf8_normalize.so oleh Brion Vibber digunakan untuk penormalan Unicode.',
-       'config-unicode-using-intl' => '[http://pecl.php.net/intl Sambungan intl PECL] digunakan untuk penormalan Unicode.',
-       'config-db-charset' => 'Peranggu aksara pangkalan data',
-       'config-header-mysql' => 'Keutamaan MySQL',
-       'config-header-postgres' => 'Keutamaan PostgreSQL',
-       'config-header-sqlite' => 'Keutamaan SQLite',
-       'config-header-oracle' => 'Keutamaan Oracle',
-       'config-invalid-db-type' => 'Jenis pangkalan data tidak sah',
-       'config-db-web-account-same' => 'Gunakan akaun yang sama seperti dalam pemasangan',
-       'config-db-web-create' => 'Ciptakan akaun jika belum wujud',
-       'config-mysql-engine' => 'Enjin storan:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-charset' => 'Peranggu aksara pangkalan data:',
-       'config-mysql-binary' => 'Perduaan',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'Nama wiki:',
-       'config-site-name-help' => 'Ini akan dipaparkan pada bar tajuk perisian pelayar dan tempat-tempat lain yang berkenaan.',
-       'config-site-name-blank' => 'Isikan nama tapak.',
-       'config-project-namespace' => 'Ruang nama projek:',
-       'config-ns-generic' => 'Projek',
-       'config-ns-site-name' => 'Sama dengan nama wiki: $1',
-       'config-ns-other' => 'Lain-lain (nyatakan)',
-       'config-ns-other-default' => 'MyWiki',
-       'config-admin-box' => 'Akaun penyelia',
-       'config-admin-name' => 'Nama kamu:',
-       'config-admin-password' => 'Kata laluan:',
-       'config-admin-password-confirm' => 'Kata laluan lagi:',
-       'config-admin-password-mismatch' => 'Kata-kata laluan yang kamu berikan tidak sepadan.',
-       'config-admin-email' => 'Alamat e-mel:',
-       'config-admin-error-bademail' => 'Kamu telah memberikan alamat e-mel yang tidak betul.',
-       'config-optional-skip' => 'Saya sudah bosan, pasangkanlah wiki sahaja.',
-       'config-license' => 'Hak cipta dan lesen:',
-       'config-license-none' => 'Tiada pengaki lesen',
-       'config-license-cc-by-sa' => 'Creative Commons Attribution Share Alike',
-       'config-license-cc-by' => 'Creative Commons Attribution',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Attribution Non-Commercial Share Alike',
-       'config-license-cc-0' => 'Creative Commons Zero (Domain Awam)',
-       'config-license-gfdl' => 'Lesen Dokumentasi Bebas GNU 1.3 atau ke atas',
-       'config-license-pd' => 'Domain Awam',
-       'config-email-settings' => 'Tetapan e-mel',
-       'config-install-step-done' => 'siap',
-       'config-install-step-failed' => 'gagal',
-       'config-install-user-alreadyexists' => 'Pengguna "$1" sudah wujud',
-       'config-help' => 'bantuan',
-       'mainpagetext' => "'''MediaWiki telah berjaya dipasang.'''",
-       'mainpagedocfooter' => 'Sila rujuk [//meta.wikimedia.org/wiki/Help:Contents Panduan Penggunaan] untuk maklumat mengenai penggunaan perisian wiki ini.
-
-== 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 surat keluaran MediaWiki]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Terjemahkan MediaWiki ke dalam bahasa anda]',
-);
-
-/** Maltese (Malti)
- * @author Chrisportelli
- */
-$messages['mt'] = array(
-       'config-title' => "Installazzjoni ta' MediaWiki $1",
-       'config-information' => 'Informazzjoni',
-       'config-localsettings-key' => 'Ċavetta tal-aġġornament:',
-       'config-localsettings-badkey' => 'Iċ-ċavetta li tajt hija ħażina.',
-       'config-your-language' => 'Il-lingwa tiegħek:',
-       'config-your-language-help' => "Agħżel lingwa li tixtieq tuża' matul il-proċess ta' installazzjoni.",
-       'config-wiki-language' => 'Lingwi tal-wiki:',
-       'config-wiki-language-help' => 'Agħżel il-lingwa li l-wiki se tkun l-aktar użata fil-wiki.',
-       'config-back' => '← Lura',
-       'config-continue' => 'Kompli →',
-       'config-page-language' => 'Lingwa',
-       'config-page-welcome' => 'Merħba fuq MediaWiki!',
-       'config-page-dbconnect' => 'Aqbad mad-databażi',
-       'config-page-upgrade' => 'Aġġorna l-installazzjoni eżistenti',
-       'config-page-dbsettings' => 'Impostazzjonijiet tad-databażi',
-       'config-page-name' => 'Isem',
-       'config-page-options' => 'Għażliet',
-       'config-page-install' => 'Installa',
-       'config-page-complete' => 'Lesta!',
-       'config-page-restart' => "Erġa' ibda l-installazzjoni",
-       'config-page-readme' => 'Aqrani',
-       'config-page-releasenotes' => 'Noti tal-verżjoni',
-       'config-page-upgradedoc' => 'Aġġornament',
-       'config-page-existingwiki' => 'Wiki eżistenti',
-       'config-restart' => "Iva, erġa' ibda",
-       'config-env-php' => 'PHP $1 huwa installat.',
-       'config-db-wiki-settings' => 'Identifika din il-wiki',
-       'config-db-name' => 'Isem tad-databażi:',
-       'config-db-install-account' => 'Kont tal-utent għall-installazzjoni',
-       'config-db-username' => 'Isem tal-utent tad-databażi:',
-       'config-db-password' => 'Password tad-databażi:',
-       'config-db-port' => 'Port tad-databażi:',
-       'config-db-schema' => 'Skema għal MediaWiki:',
-       'config-db-web-create' => 'Oħloq il-kont jekk għadu ma jeżistix',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-charset' => "Sett ta' karattri tad-databażi:",
-       'config-mysql-binary' => 'Binarju',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'Isem tal-wiki:',
-       'config-site-name-help' => "Dan se jidher fil-barra tat-titlu tal-browżer u f'diversi postijiet oħra.",
-       'config-site-name-blank' => 'Daħħal isem tas-sit.',
-       'config-project-namespace' => 'Spazju tal-isem tal-proġett:',
-       'config-ns-generic' => 'Proġett',
-       'config-ns-site-name' => 'L-istess bħall-isem tal-wiki: $1',
-       'config-ns-other' => 'Oħrajn (speċifika)',
-       'config-ns-other-default' => 'MyWiki',
-       'config-ns-invalid' => 'L-ispazju speċifikat "<nowiki>$1</nowiki>" huwa ħażin.
-Speċifika spazju tal-isem tal-proġett differenti.',
-       'config-ns-conflict' => 'L-ispazju speċifikat "<nowiki>$1</nowiki>" joħloq kunflitt ma\' spazju tal-isem ieħor tal-MediaWiki.
-Speċifika spazju tal-isem tal-proġett differenti.',
-       'config-admin-box' => 'Kont tal-amministratur',
-       'config-admin-name' => 'Ismek:',
-       'config-admin-password' => 'Password:',
-       'config-admin-password-confirm' => "Erġa' daħħal il-password:",
-       'config-admin-help' => 'Daħħal l-isem tal-utent preferit hawnhekk, per eżempju "Joe Borg".
-Dan huwa l-isem li se tuża\' kull darba li tidħol fil-wiki.',
-       'config-admin-name-blank' => 'Daħħal isem tal-utent għall-amministratur.',
-       'config-admin-name-invalid' => 'L-isem tal-utent speċifikat "<nowiki>$1</nowiki>" huwa ħażin.
-Speċifika isem tal-utent differenti.',
-       'config-admin-password-blank' => 'Daħħal password għall-kont tal-amministratur.',
-       'config-admin-password-same' => 'Il-password ma tistax tkun l-istess bħall-isem tal-utent.',
-       'config-admin-password-mismatch' => 'Il-passwords li daħħalt ma jaqblux.',
-       'config-admin-email' => 'Indirizz elettroniku:',
-       'config-admin-error-bademail' => 'Daħħalt indirizz elettroniku ħażin.',
-       'config-almost-done' => "Kważi lest!
-Jekk trid tista' taqbeż il-parti li jmiss tal-konfigurazzjoni u sempliċiment tinstalla l-wiki.",
-       'config-optional-continue' => 'Staqsini aktar mistoqsijiet.',
-       'config-optional-skip' => 'Xbajt diġà, installa l-wiki.',
-       'config-profile-wiki' => 'Wiki tradizzjonali', # Fuzzy
-       'config-profile-no-anon' => 'Huwa obbligatorju l-ħolqien tal-kont',
-       'config-profile-fishbowl' => 'Edituri awtorizzati biss',
-       'config-profile-private' => 'Wiki privata',
-       'config-license-cc-by-sa' => 'Creative Commons Attribution Share Alike',
-       'config-license-cc-by' => 'Creative Commons Attribution',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Attribution Non-Commercial Share Alike',
-       'config-license-cc-0' => 'Creative Commons Zero (dominju pubbliku)',
-       'config-license-pd' => 'Dominju pubbliku',
-       'config-license-cc-choose' => 'Agħżel waħda mil-liċenzji tal-Creative Commons',
-       'config-upload-deleted' => 'Direttorju għall-fajls imħassra:',
-       'config-upload-deleted-help' => "Agħżel direttorju fejn iżżomm fajls imħassra.
-Idealment, dan m'għandux ikun aċċessibbli mill-web.",
-       'config-logo' => 'URL tal-logo:',
-       'config-download-localsettings' => 'Niżżel <code>LocalSettings.php</code>',
-       'config-help' => 'għajnuna',
-       'config-nofile' => 'Il-fajl "$1" ma setax jinstab. Dan ġie mħassar?',
-       'mainpagetext' => "'''MediaWiki ġie installat b'suċċess.'''",
-       'mainpagedocfooter' => "Ikkonsulta l-[//meta.wikimedia.org/wiki/Help:Contents Gwida għall-utenti] sabiex tikseb iktar informazzjoni dwar kif tuża' s-softwer tal-wiki.
-
-== Biex tibda ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista ta' preferenzi għall-konfigurazzjoni]
-* [//www.mediawiki.org/wiki/Manual:FAQ Mistoqsijiet rikorrenti fuq il-MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Il-lista tal-posta tħabbar 'l MediaWiki]", # Fuzzy
-);
-
-/** Burmese (မြန်မာဘာသာ)
- * @author Lionslayer
- */
-$messages['my'] = array(
-       'mainpagetext' => "'''မီဒီယာဝီကီကို အောင်မြင်စွာ သွင်းပြီးပါပြီ။'''",
-);
-
-/** Erzya (эрзянь)
- * @author Botuzhaleny-sodamo
- */
-$messages['myv'] = array(
-       'config-page-language' => 'Кель',
-       'config-page-name' => 'Лемезэ',
-       'config-page-readme' => 'Ловномак',
-       'config-admin-name' => 'Леметь:',
-       'config-admin-password' => 'Совамо валот:',
-       'config-admin-password-confirm' => 'Совамо валот одов:',
-       'config-admin-email' => 'Е-сёрма паргот:',
-       'config-install-step-done' => 'теезь',
-       'mainpagetext' => "'''МедияВикинь тевс аравтомазо парсте лиссь.'''",
-);
-
-/** Mazanderani (مازِرونی)
- * @author محک
- */
-$messages['mzn'] = array(
-       'config-help' => 'راهنما',
-);
-
-/** Nahuatl (Nāhuatl)
- */
-$messages['nah'] = array(
-       'mainpagetext' => "'''MediaHuiqui cualli ōmotlahtlāli.'''",
-);
-
-/** Min Nan Chinese (Bân-lâm-gú)
- * @author Ianbu
- */
-$messages['nan'] = array(
-       'mainpagetext' => "'''MediaWiki已經裝好矣。'''",
-       'mainpagedocfooter' => '請查看[//meta.wikimedia.org/wiki/Help:Contents 用者說明書]的資料通使用wiki 軟體
-
-== 入門 ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings 配置的設定]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki時常問答]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki的公布列單]', # Fuzzy
-);
-
-/** Norwegian Bokmål (norsk bokmål)
- * @author Event
- * @author Nghtwlkr
- * @author 아라
- */
-$messages['nb'] = array(
-       'config-desc' => 'Installasjonsprogrammet for MediaWiki',
-       'config-title' => 'Installasjon av MediaWiki $1',
-       'config-information' => 'Informasjon',
-       'config-localsettings-upgrade' => 'En <code>LocalSettings.php</code>-fil har blitt oppdaget.
-For å oppgradere denne installasjonen, skriv inn verdien av <code>$wgUpgradeKey</code> i boksen nedenfor.
-Du finner denne i <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => "Filen ''<code>LocalSettings.php</code>'' er funnet.
-For å oppgradere denne installasjonen, vennligst kjør ''update.php'' i stedet",
-       'config-localsettings-key' => 'Oppgraderingsnøkkel:',
-       'config-localsettings-badkey' => 'Nøkkelen du oppga er feil.',
-       'config-upgrade-key-missing' => "En eksisterende installasjon av MediaWiki er funnet.
-For å oppgradere denne installasjonen, vær vennlig å legge til følgende linje helt til slutt i din ''<code>LocalSettings.php</code>''-fil:
-
-$1",
-       'config-localsettings-incomplete' => "Den eksisterende ''<code>LocalSettings.php</code>'' ser ut til å være ufullstendig.
-Variabelen $1 har ingen verdi.
-Vær vennlig å endre ''<code>LocalSettings.php</code>'' slik at variabelen får en verdi, og klikk ''{{int:Config-continue}}''.",
-       'config-localsettings-connection-error' => "Det ble funnet en feil ved tilknytning av databasen med innstillingene i ''<code>LocalSettings.php</code>'' eller ''<code>AdminSettings.php</code>''. Vær vennlig å rette opp disse innstillingene og prøv igjen.
-
-$1",
-       'config-session-error' => 'Feil under oppstart av økt: $1',
-       'config-session-expired' => 'Dine øktdata ser ut til å ha utløpt.
-Økter er konfigurert for en levetid på $1.
-Du kan øke dette ved å sette <code>session.gc_maxlifetime</code> i php.ini.
-Start installasjonsprosessen på nytt.',
-       'config-no-session' => 'Dine øktdata ble tapt!
-Sjekk din php.ini og sørg for at <code>session.save_path</code> er satt til en passende mappe.',
-       'config-your-language' => 'Ditt språk:',
-       'config-your-language-help' => 'Velg et språk å bruke under installasjonsprosessen.',
-       'config-wiki-language' => 'Wikispråk:',
-       'config-wiki-language-help' => 'Velg språket som wikien hovedsakelig vil bli skrevet i.',
-       'config-back' => '← Tilbake',
-       'config-continue' => 'Fortsett →',
-       'config-page-language' => 'Språk',
-       'config-page-welcome' => 'Velkommen til MediaWiki!',
-       'config-page-dbconnect' => 'Koble til database',
-       'config-page-upgrade' => 'Oppgrader eksisterende innstallasjon',
-       'config-page-dbsettings' => 'Databaseinnstillinger',
-       'config-page-name' => 'Navn',
-       'config-page-options' => 'Valg',
-       'config-page-install' => 'Installer',
-       'config-page-complete' => 'Ferdig!',
-       'config-page-restart' => 'Start installasjonen på nytt',
-       'config-page-readme' => 'Les meg',
-       'config-page-releasenotes' => 'Utgivelsesnotat',
-       'config-page-copying' => 'Kopiering',
-       'config-page-upgradedoc' => 'Oppgradering',
-       'config-page-existingwiki' => 'Eksisterende wiki',
-       'config-help-restart' => 'Ønsker du å fjerne alle lagrede data som du har skrevet inn og starte installasjonsprosessen på nytt?',
-       'config-restart' => 'Ja, start på nytt',
-       'config-welcome' => '=== Miljøsjekker ===
-Grunnleggende sjekker utføres for å se om dette miljøet er egnet for en MediaWiki-installasjon.
-Du bør oppgi resultatene fra disse sjekkene om du trenger hjelp under installasjonen.',
-       'config-copyright' => "=== Opphavsrett og vilkår ===
-
-$1
-
-MediaWiki er fri programvare; du kan redistribuere det og/eller modifisere det under betingelsene i GNU General Public License som publisert av Free Software Foundation; enten versjon 2 av lisensen, eller (etter eget valg) enhver senere versjon.
-
-Dette programmet er distribuert i håp om at det vil være nyttig, men '''uten noen garanti'''; ikke engang implisitt garanti av '''salgbarhet''' eller '''egnethet for et bestemt formål'''.
-Se GNU General Public License for flere detaljer.
-
-Du skal ha mottatt <doclink href=Copying>en kopi av GNU General Public License</doclink> sammen med dette programmet; hvis ikke, skriv til Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA eller [http://www.gnu.org/copyleft/gpl.html les det på nettet].",
-       'config-sidebar' => '* [//www.mediawiki.org MediaWiki hjem]
-* [//www.mediawiki.org/wiki/Help:Contents Brukerguide]
-* [//www.mediawiki.org/wiki/Manual:Contents Administratorguide]
-* [//www.mediawiki.org/wiki/Manual:FAQ OSS]
-----
-* <doclink href=Readme>Les meg</doclink>
-* <doclink href=ReleaseNotes>Utgivelsesnotater</doclink>
-* <doclink href=Copying>Kopiering</doclink>
-* <doclink href=UpgradeDoc>Oppgradering</doclink>',
-       'config-env-good' => 'Miljøet har blitt sjekket.
-Du kan installere MediaWiki.',
-       'config-env-bad' => 'Miljøet har blitt sjekket.
-Du kan installere MediaWiki.',
-       'config-env-php' => 'PHP $1 er innstallert.',
-       'config-env-php-toolow' => 'PHP $1 er installert.
-MediaWiki krever imidlertid PHP $2 eller høyere.',
-       'config-unicode-using-utf8' => 'Bruker Brion Vibbers utf8_normalize.so for Unicode-normalisering.',
-       'config-unicode-using-intl' => 'Bruker [http://pecl.php.net/intl intl PECL-utvidelsen] for Unicode-normalisering.',
-       'config-unicode-pure-php-warning' => "'''Advarsel''': [http://pecl.php.net/intl intl PECL-utvidelsen] er ikke tilgjengelig for å håndtere Unicode-normaliseringen, faller tilbake til en langsommere ren-PHP-implementasjon.
-Om du kjører et nettsted med høy trafikk bør du lese litt om [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode-normalisering].",
-       'config-unicode-update-warning' => "'''Advarsel''': Den installerte versjonen av Unicode-normalisereren bruker en eldre versjon av [http://site.icu-project.org/ ICU-prosjektets] bibliotek.
-Du bør [//www.mediawiki.org/wiki/Unicode_normalization_considerations oppgradere] om du er bekymret for å bruke Unicode.",
-       'config-no-db' => 'Fant ikke en passende databasedriver! Du må installere en databasedriver for PHP.
-Følgende databasetyper er støttet: $1
-
-Om du er på delt vertsskap, spør din vertsleverandør om å installere en passende databasedriver.
-Om du kompilerte PHP selv, rekonfigirer den med en aktivert databaseklient, for eksempel ved å bruke <code>./configure --with-mysql</code>.
-Om du installerte PHP fra en Debian- eller Ubuntu-pakke må du også installere modulen php5-mysql.',
-       'config-outdated-sqlite' => "'''Advarsel''': Du har SQLite $1, som er en eldre versjon enn minimumskravet SQLite $2. SQLite vil ikke være tilgjengelig.",
-       'config-no-fts3' => "'''Advarsel''': SQLite er kompilert uten [//sqlite.org/fts3.html FTS3-modulen], søkefunksjoner vil ikke være tilgjengelig på dette bakstykket.",
-       'config-register-globals' => "'''Advarsel: PHPs <code>[http://php.net/register_globals register_globals]</code>-alternativ er aktivert.'''
-'''Deaktiver det om du kan.'''
-MediaWiki vil fungere, men tjeneren din er utsatt for potensielle sikkerhetssårbarheter.",
-       'config-magic-quotes-runtime' => "'''Kritisk: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] er aktiv!'''
-Dette alternativet ødelegger inndata på en uforutsigbar måte.
-Du kan ikke installere eller bruke MediaWiki med mindre dette alternativet deaktiveres.",
-       'config-magic-quotes-sybase' => "'''Kritisk: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] er aktiv!'''
-Dette alternativet ødelegger inndata på en uforutsigbar måte.
-Du kan ikke installere eller bruke MediaWiki med mindre dette alternativet deaktiveres.",
-       'config-mbstring' => "'''Kritisk: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] er aktiv!'''
-Dette alternativet fører til feil og kan ødelegge data på en uforutsigbar måte.
-Du kan ikke installere eller bruke MediaWiki med mindre dette alternativet deaktiveres.",
-       'config-ze1' => "'''Kritisk: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] er aktiv!'''
-Dette alternativet fører til horrible feil med MediaWiki.
-Du kan ikke installere eller bruke MediaWiki med mindre dette alternativet deaktiveres.",
-       'config-safe-mode' => "'''Advarsel:''' PHPs [http://www.php.net/features.safe-mode safe mode] er aktiv.
-Det kan føre til problem, spesielt hvis du bruker støtte for filopplastinger og <code>math</code>.",
-       'config-xml-bad' => 'PHPs XML-modul mangler.
-MediaWiki krever funksjonene i denne modulen og vil ikke virke i denne konfigurasjonen.
-Hvis du kjører Mandrak, installer pakken php-xml.',
-       'config-pcre' => 'PCRE-støttemodulen ser ut til å mangle.
-MediaWiki krever funksjonene for de Perl-kompatible regulære uttrykkene for å virke.',
-       'config-pcre-no-utf8' => "'''Fatal''': PHPs PCRE modul ser ut til å være kompilert uten PCRE_UTF8-støtte.
-MediaWiki krever UTF-8-støtte for å fungere riktig.",
-       'config-memory-raised' => 'PHPs <code>memory_limit</code> er $1, økt til $2.',
-       'config-memory-bad' => "'''Advarsel:''' PHPs <code>memory_limit</code> er $1.
-Dette er sannsynligvis for lavt.
-Installasjonen kan mislykkes!",
-       'config-ctype' => "'''Fatal feil''': PHP må kompileres med støtte for [http://www.php.net/manual/en/ctype.installation.php Ctype-utvidelsen].",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] er innstallert',
-       'config-apc' => '[http://www.php.net/apc APC] er innstallert',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] er installert',
-       'config-no-cache' => "'''Advarsel:''' Kunne ikke finne [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] eller [http://www.iis.net/download/WinCacheForPhp WinCache].
-Objekthurtiglagring er ikke aktivert.",
-       'config-mod-security' => "'''Advarsel''': Din web-tjener har [http://modsecurity.org/ mod_security] påslått. Hvis denne er feilinnstilt, kan det gi problemer for MediaWiki eller annen programvare som tillater brukere å poste vilkårlig innhold.
-Sjekk [http://modsecurity.org/documentation/ mod_security-dokumentasjonen] eller ta kontakt med din nettleverandør hvis du opplever tilfeldige feil.",
-       'config-diff3-bad' => 'GNU diff3 ikke funnet.',
-       'config-imagemagick' => 'Fant ImageMagick: <code>$1</code>.
-Bildeminiatyrisering vil aktiveres om du aktiverer opplastinger.',
-       'config-gd' => 'Fant innebygd GD-grafikkbibliotek.
-Bildeminiatyrisering vil aktiveres om du aktiverer opplastinger.',
-       'config-no-scaling' => 'Kunne ikke finne GD-bibliotek eller ImageMagick.
-Bildeminiatyrisering vil være deaktivert.',
-       'config-no-uri' => "'''Feil:''' Kunne ikke bestemme gjeldende URI.
-Installasjon avbrutt.",
-       'config-no-cli-uri' => "'''Advarsel''': Ingen --scriptpath er angitt; bruker standard: <code>$1</code>.",
-       'config-using-server' => 'Bruker servernavnet  "<nowiki>$1</nowiki>".',
-       'config-using-uri' => 'Bruker server-URL "<nowiki>$1$2</nowiki>".',
-       'config-uploads-not-safe' => "'''Advarsel:''' Din standardmappe for opplastinger <code>$1</code> er sårbar for kjøring av vilkårlige skript.
-Selv om MediaWiki sjekker alle opplastede filer for sikkerhetstrusler er det sterkt anbefalt å [//www.mediawiki.org/wiki/Manual:Security#Upload_security lukke denne sikkerhetssårbarheten] før du aktiverer opplastinger.",
-       'config-no-cli-uploads-check' => "'''Advarsel:''' Din standard-katalog for opplastinger (<code>$1</code>) er ikke kontrollert for sårbarhet overfor vilkårlig skript-kjøring under CLI-installasjonen.",
-       'config-brokenlibxml' => 'Ditt system har en kombinasjon av PHP- og libxml2-versjoner som er feilaktige og kan forårsake skjult dataødeleggelse i MediaWiki og andre web-applikasjoner.
-Oppgrader til PHP 5.2.9 eller nyere og libxml 2 2.7.3 eller nyere ([//bugs.php.net/bug.php?id=45996 Feil-liste for PHP]).
-Installasjon abortert.',
-       'config-using531' => 'MediaWiki kan ikke brukes med PHP $1 på grunn av en feil med referanseparametere til <code>__call()</code>.
-Oppgrader til PHP 5.3.2 eller høyere, eller nedgrader til PHP 5.3.0 for å løse dette.
-Installasjonen avbrutt.',
-       'config-suhosin-max-value-length' => 'Suhosin er installert og begrenser GET-parameterlengder til $1 bytes. MediaWiki\'s ResourceLoader-komponent klarer å komme rundt denne begrensningen, med med redusert ytelse. På mulig bør du sette <code>suhosin.get.max_value_length</code> til minst 1024 i <code>php.ini</code>, og sette <code>$wgResourceLoaderMaxQueryLength</code> til samme verdi i LocalSettings.php.', # Fuzzy
-       'config-db-type' => 'Databasetype:',
-       'config-db-host' => 'Databasevert:',
-       'config-db-host-help' => 'Hvis databasen kjører på en annen tjenermaskin, skriv inn vertsnavnet eller IP-adressen her.
-
-Hvis du bruker et webhotell, vil du kunne be om aktuelt vertsnavn fra din leverandør.
-
-Hvis du installerer på en Windowstjener og bruker MySQL, kan det hende at «localhost» ikke brukes som tjenernavn. Hvis så er tilfelle, prøv «127.0.0.1» som lokal IP-adresse.
-
-Hvis du bruker PostgreSQL, la dette feltet være blankt slik at koplingen gjøres via en "Unix socket".',
-       'config-db-host-oracle' => 'Database TNS:',
-       'config-db-host-oracle-help' => 'Skriv inn et gyldig [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name]; en tnsnames.ora-fil må være synlig for installasjonsprosessen.<br />Hvis du bruker klientbibliotek 10g eller nyere kan du også bruke navngivingsmetoden [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].',
-       'config-db-wiki-settings' => 'Identifiser denne wikien',
-       'config-db-name' => 'Databasenavn:',
-       'config-db-name-help' => 'Velg et navn som identifiserer wikien din.
-Det bør ikke inneholde mellomrom.
-
-Hvis du bruker en delt nettvert vil verten din enten gi deg et spesifikt databasenavn å bruke, eller la deg opprette databaser via kontrollpanelet.',
-       'config-db-name-oracle' => 'Databaseskjema:',
-       'config-db-account-oracle-warn' => 'Det finnes tre mulig fremgangsmåter for å installere Oracle som database:
-
-Hvis du ønsker å opprette en databasekonto som del av installasjonsprosessen, oppgi da en konto med SYSDBA-rolle som databasekonto for installasjonen og angi påkrevd autentiseringsinformasjon for web-aksesskontoen. Ellers kan du enten opprette web-aksesskontoen manuelt eller kun oppgi den kontoen (hvis den har påkrevede tillatelser for å opprette skjemeobjektene) , alternativt oppgi to ulike kontoer, en med opprettelsesprivilegier (create) og en begrenset konto for web-aksess.
-
-Skript for å opprette en konto med påkrevde privilegier finnes i "maintenance/oracle/"-folderen av denne installasjonen. Husk at det å bruke en begrenset konto vil blokkere all vedlikeholdsfunksjonalitet med standard konto.',
-       'config-db-install-account' => 'Brukerkonto for installasjon',
-       'config-db-username' => 'Databasebrukernavn:',
-       'config-db-password' => 'Databasepassord:',
-       'config-db-password-empty' => 'Skriv inn et passord for den nye databasebrukeren: $1.
-Det er mulig å opprette brukere uten passord, men dette er ikke sikkert.',
-       'config-db-install-username' => 'Skriv inn brukernavnet som vil bli brukt til å koble til databasen under installasjonsprosessen.
-Dette er ikke brukernavnet på MediaWiki-kontoen; dette er brukernavnet for databasen din.',
-       'config-db-install-password' => 'Skriv inn passordet som vil bli brukt til å koble til databasen under installasjonsprosessen.
-Dette er ikke passordet på MediaWiki-kontoen; dette er passordet for databasen din.',
-       'config-db-install-help' => 'Skriv inn brukernavnet og passordet som vil bli brukt for å koble til databasen under installasjonsprosessen.',
-       'config-db-account-lock' => 'Bruk det samme brukernavnet og passordet under normal drift',
-       'config-db-wiki-account' => 'Brukerkonto for normal drift',
-       'config-db-wiki-help' => 'Skriv inn brukernavnet og passordet som vil bli brukt til å koble til databasen under normal wikidrift.
-Hvis kontoen ikke finnes, og installasjonskontoen har tilstrekkelige privilegier, vil denne brukerkontoen bli opprettet med et minimum av privilegier, tilstrekkelig for å operere wikien.',
-       'config-db-prefix' => 'Databasetabellprefiks:',
-       'config-db-prefix-help' => 'Hvis du trenger å dele en database mellom flere wikier, eller mellom MediaWiki og andre nettapplikasjoner, kan du velge å legge til et prefiks til alle tabellnavnene for å unngå konflikter.
-Ikke bruk mellomrom.
-
-Dette feltet er vanligvis tomt.',
-       'config-db-charset' => 'Databasetegnsett',
-       '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 bakoverkompatibel UTF-8',
-       'config-charset-help' => "'''Advarsel:''' Hvis du bruker '''bakoverkompatibel UTF-8''' på MySQL 4.1+, og deretter sikkerhetskopierer databasen med <code>mysqldump</code> kan det ødelegge alle ikke-ASCII tegn og irreversibelt ødelegge dine sikkerhetskopier!
-
-I '''binary mode''' lagrer MediaWiki UTF-8 tekst til databasen i binærfelt.
-Dette er mer effektivt enn MySQLs UTF-8 modus og tillater deg å bruke hele spekteret av Unicode-tegn.
-I '''UTF-8 mode''' vil MySQL vite hvilket tegnsett dataene dine er i og kan presentere og konvertere det på en riktig måte,
-men det vil ikke la deg lagre tegn over «[//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes the Basic Multilingual Plane]».",
-       'config-mysql-old' => 'MySQL $1 eller senere kreves, du har $2.',
-       'config-db-port' => 'Databaseport:',
-       'config-db-schema' => 'Skjema for MediaWiki',
-       'config-db-schema-help' => 'Dette skjemaet er som regel riktig.
-Bare endre det hvis du vet at du trenger det.',
-       'config-pg-test-error' => "Får ikke kontakt med database '''$1''': $2",
-       'config-sqlite-dir' => 'SQLite datamappe:',
-       'config-sqlite-dir-help' => "SQLite lagrer alle data i en enkelt fil.
-
-Mappen du oppgir må være skrivbar for nettjeneren under installasjonen.
-
-Den bør '''ikke''' være tilgjengelig fra nettet, dette er grunnen til at vi ikke legger det der PHP-filene dine er.
-
-Installasjonsprogrammet vil skrive en <code>.htaccess</code>-fil sammen med det, men om det mislykkes kan noen få tilgang til din råe database. Dette inkluderer rå brukerdata (e-postadresser, hashede passord) samt slettede revisjoner og andre begrensede data på wikien.
-
-Vurder å plassere databasen et helt annet sted, for eksempel i <code>/var/lib/mediawiki/yourwiki</code>.",
-       'config-oracle-def-ts' => 'Standard tabellrom:',
-       'config-oracle-temp-ts' => 'Midlertidig tabellrom:',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-support-info' => 'MediaWiki støtter følgende databasesystem:
-
-$1
-
-Hvis du ikke ser databasesystemet du prøver å bruke i listen nedenfor, følg instruksjonene det er lenket til over for å aktivere støtte.',
-       'config-support-mysql' => '* $1 er det primære målet for MediaWiki og er best støttet ([http://www.php.net/manual/en/mysql.installation.php hvordan kompilere PHP med MySQL-støtte])',
-       'config-support-postgres' => '* $1 er et populært åpen kildekode-databasesystem som er et alternativ til MySQL ([http://www.php.net/manual/en/pgsql.installation.php hvordan kompilere PHP med PostgreSQL-støtte]). Det kan være noen små utestående feil og det anbefales ikke for bruk i et produksjonsmiljø.',
-       'config-support-sqlite' => '* $1 er et lettvekts-databasesystem som er veldig godt støttet. ([http://www.php.net/manual/en/pdo.installation.php hvordan kompilere PHP med SQLite-støtte], bruker PDO)',
-       'config-support-oracle' => '* $1 er en kommersiell bedriftsdatabase. ([http://www.php.net/manual/en/oci8.installation.php Hvordan kompilere PHP med OCI8-støtte])',
-       'config-header-mysql' => 'MySQL-innstillinger',
-       'config-header-postgres' => 'PostgreSQL-innstillinger',
-       'config-header-sqlite' => 'SQLite-innstillinger',
-       'config-header-oracle' => 'Oracle-innstillinger',
-       'config-invalid-db-type' => 'Ugyldig databasetype',
-       'config-missing-db-name' => 'Du må skrive inn en verdi for «Databasenavn»',
-       'config-missing-db-host' => 'Du må skrive inn en verdi for «Databasevert»',
-       'config-missing-db-server-oracle' => 'Du må skrive inn en verdi for «Database TNS»',
-       'config-invalid-db-server-oracle' => 'Ugyldig database-TNS «$1».
-Bruk bare ASCII-bokstaver (a-z, A-Z), tall (0-9) og undestreker (_) og punktum (.).',
-       'config-invalid-db-name' => 'Ugyldig databasenavn «$1».
-Bruk bare ASCII-bokstaver (a-z, A-Z), tall (0-9), undestreker (_) og bindestreker (-).',
-       'config-invalid-db-prefix' => 'Ugyldig databaseprefiks «$1».
-Bruk bare ASCII-bokstaver (a-z, A-Z), tall (0-9), undestreker (_) og bindestreker (-).',
-       'config-connection-error' => '$1.
-
-Sjekk verten, brukernavnet og passordet nedenfor og prøv igjen.',
-       'config-invalid-schema' => 'Ugyldig skjema for MediaWiki «$1».
-Bruk bare ASCII-bokstaver (a-z, A-Z), tall (0-9) og undestreker (_).',
-       'config-db-sys-create-oracle' => 'Installasjonsprogrammet støtter kun bruk av en SYSDBA-konto for opprettelse av en ny konto.',
-       'config-db-sys-user-exists-oracle' => 'Brukerkontoen «$1» finnes allerede. SYSDBA kan kun brukes for oppretting av nye kontoer!',
-       'config-postgres-old' => 'PostgreSQL $1 eller senere kreves, du har $2.',
-       'config-sqlite-name-help' => 'Velg et navn som identifiserer wikien din.
-Ikke bruk mellomrom eller bindestreker.
-Dette vil bli brukt til SQLite-datafilnavnet.',
-       'config-sqlite-parent-unwritable-group' => 'Kan ikke opprette datamappen <code><nowiki>$1</nowiki></code> fordi foreldremappen <code><nowiki>$2</nowiki></code> ikke er skrivbar for nettjeneren.
-
-Installasjonsprogrammet har bestemt brukeren nettjeneren din kjører som.
-Gjør <code><nowiki>$3</nowiki></code>-mappen skrivbar for denne for å fortsette.
-På et Unix/Linux-system, gjør:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Kan ikke opprette datamappen <code><nowiki>$1</nowiki></code> fordi foreldremappen <code><nowiki>$2</nowiki></code> ikke er skrivbar for nettjeneren.
-
-Installasjonsprogrammet kunne ikke bestemme brukeren nettjeneren din kjører som.
-Gjør <code><nowiki>$3</nowiki></code>-mappen globalt skrivbar for denne (og andre!) for å fortsette.
-På et Unix/Linux-system, gjør:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Feil under oppretting av datamappen «$1».
-Sjekk plasseringen og prøv igjen.',
-       'config-sqlite-dir-unwritable' => 'Kan ikke skrive til mappen «$1».
-Endre dens tilganger slik at nettjeneren kan skrive til den og prøv igjen.',
-       'config-sqlite-connection-error' => '$1.
-
-Sjekk datamappen og databasenavnet nedenfor og prøv igjen.',
-       'config-sqlite-readonly' => 'Filen <code>$1</code> er ikke skrivbar.',
-       'config-sqlite-cant-create-db' => 'Kunne ikke opprette databasefilen <code>$1</code>.',
-       'config-sqlite-fts3-downgrade' => 'PHP mangler FTS3-støtte, nedgraderer tabeller',
-       'config-can-upgrade' => "Det er MediaWiki-tabeller i denne databasen.
-For å oppgradere dem til MediaWiki $1, klikk '''Fortsett'''.",
-       'config-upgrade-done' => "Oppgradering fullført.
-
-Du kan nå [$1 begynne å bruke wikien din].
-
-Hvis du ønsker å regenerere <code>LocalSettings.php</code>-filen din, klikk på knappen nedenfor.
-Dette er '''ikke anbefalt''' med mindre du har problemer med wikien din.",
-       'config-upgrade-done-no-regenerate' => 'Oppgradering fullført.
-
-Du kan nå [$1 begynne å bruke wikien din].',
-       'config-regenerate' => 'Regenerer LocalSettings.php →',
-       'config-show-table-status' => '<code>SHOW TABLE STATUS</code> etterspørselen mislyktes!',
-       'config-unknown-collation' => "'''Advarsel:''' Databasen bruker en ukjent sortering.",
-       'config-db-web-account' => 'Databasekonto for nettilgang',
-       'config-db-web-help' => 'Velg brukernavnet og passordet som nettjeneren skal bruke for å koble til databasetjeneren under ordinær drift av wikien.',
-       'config-db-web-account-same' => 'Bruk samme konto som for installasjonen',
-       'config-db-web-create' => 'Opprett kontoen om den ikke finnes allerede',
-       'config-db-web-no-create-privs' => 'Kontoen du oppga for installasjonen har ikke nok privilegier til å opprette en konto.
-Kontoen du oppgir her må finnes allerede.',
-       'config-mysql-engine' => 'Lagringsmotor:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-engine-help' => "'''InnoDB''' er nesten alltid det beste alternativet siden den har god støtte for samtidighet («concurrency»).
-
-'''MyISAM''' kan være raskere i enbruker- eller les-bare-installasjoner.
-MyISAM-databaser har en tendens til å bli ødelagt oftere enn InnoDB-databaser.",
-       'config-mysql-charset' => 'Databasetegnsett:',
-       'config-mysql-binary' => 'Binær',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "I '''binary mode''' lagrer MediaWiki UTF-8 tekst til databasen i binærfelt.
-Dette er mer effektivt enn MySQLs UTF-8 modus og tillater deg å bruke hele spekteret av Unicode-tegn.
-
-I '''UTF-8 mode''' vil MySQL vite hvilket tegnsett dataene dine er i og kan presentere og konvertere det på en riktig måte,
-men det vil ikke la deg lagre tegn over «[//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes the Basic Multilingual Plane]».",
-       'config-site-name' => 'Navn på wiki:',
-       'config-site-name-help' => 'Dette vil vises i tittellinjen i nettleseren og diverse andre steder.',
-       'config-site-name-blank' => 'Skriv inn et nettstedsnavn.',
-       'config-project-namespace' => 'Prosjektnavnerom:',
-       'config-ns-generic' => 'Prosjekt',
-       'config-ns-site-name' => 'Samme som wikinavnet: $1',
-       'config-ns-other' => 'Annet (spesifiser)',
-       'config-ns-other-default' => 'MyWiki',
-       'config-project-namespace-help' => "Etter Wikipedias eksempel holder mange wikier deres sider med retningslinjer atskilt fra sine innholdssider, i et «'''prosjektnavnerom'''».
-Alle sidetitler i dette navnerommet starter med et gitt prefiks som du kan angi her.
-Tradisjonelt er dette prefikset avledet fra navnet på wikien, men det kan ikke innholde punkttegn som «#» eller «:».",
-       'config-ns-invalid' => 'Det angitte navnerommet «<nowiki>$1</nowiki>» er ugyldig.
-Angi et annet prosjektnavnerom.',
-       'config-ns-conflict' => 'Det angitte navnerommet «<nowiki>$1</nowiki>» er i konflikt med et standard MediaWiki-navnerom.
-Angi et annet prosjekt-navnerom.',
-       'config-admin-box' => 'Administratorkonto',
-       'config-admin-name' => 'Ditt navn:',
-       'config-admin-password' => 'Passord:',
-       'config-admin-password-confirm' => 'Passord igjen:',
-       'config-admin-help' => 'Skriv inn ditt ønskede brukernavn her, for eksempel «Joe Bloggs».
-Dette er navnet du vil bruke for å logge inn på denne wikien.',
-       'config-admin-name-blank' => 'Skriv inn et administratorbrukernavn.',
-       'config-admin-name-invalid' => 'Det angitte brukernavnet «<nowiki>$1</nowiki>» er ugyldig.
-Angi et annet brukernavn.',
-       'config-admin-password-blank' => 'Skriv inn et passord for administratorkontoen.',
-       'config-admin-password-same' => 'Passordet skal ikke være det samme som brukernavnet.',
-       'config-admin-password-mismatch' => 'De to passordene du skrev inn samsvarte ikke.',
-       'config-admin-email' => 'E-postadresse:',
-       'config-admin-email-help' => 'Skriv inn en e-postadresse her for at du skal kunne motta e-post fra andre brukere på wikien, tilbakestille passordet ditt, og bli varslet om endringer på sider på overvåkningslisten din. Du kan la dette feltet stå tomt.',
-       'config-admin-error-user' => 'Intern feil ved opprettelse av en admin med navnet «<nowiki>$1</nowiki>».',
-       'config-admin-error-password' => 'Intern feil ved opprettelse av passord for admin «<nowiki>$1</nowiki>»: <pre>$2</pre>',
-       'config-admin-error-bademail' => 'Du har skrevet inn en ugyldig e-postadresse.',
-       'config-subscribe' => 'Abonner på [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce e-postlisten for utgivelsesannonseringer].',
-       'config-subscribe-help' => 'Dette er en lav-volums e-postliste brukt til utgivelsesannonseringer, herunder viktige sikkerhetsannonseringer.
-Du bør abonnere på den og oppdatere MediaWikiinstallasjonen din når nye versjoner kommer ut.',
-       'config-almost-done' => 'Du er nesten ferdig!
-Du kan hoppe over de resterende konfigurasjonene og installere wikien nå.',
-       'config-optional-continue' => 'Spør meg flere spørsmål.',
-       'config-optional-skip' => 'Jeg er lei, bare installer wikien.',
-       'config-profile' => 'Brukerrettighetsprofil:',
-       'config-profile-wiki' => 'Tradisjonell wiki', # Fuzzy
-       'config-profile-no-anon' => 'Kontoopprettelse påkrevd',
-       'config-profile-fishbowl' => 'Kun autoriserte bidragsytere',
-       'config-profile-private' => 'Privat wiki',
-       'config-profile-help' => "Wikier fungerer best når du lar så mange mennesker som mulig redigere den.
-I MediaWiki er det lett å revidere siste endringer og tilbakestille eventuell skade som er gjort av naive eller ondsinnede brukere.
-
-Imidlertid har mange funnet at MediaWiki er nyttig i mange roller, og av og til er det ikke lett å overbevise alle om fordelene med wikimåten.
-Så du har valget.
-
-En '''{{int:config-profile-wiki}}''' tillater alle å redigere, selv uten å logge inn.
-En wiki med '''{{int:config-profile-no-anon}}''' tilbyr ekstra ansvarlighet, men kan avskrekke tilfeldige bidragsytere.
-
-'''{{int:config-profile-fishbowl}}'''-scenariet tillater godkjente brukere å redigere, mens publikum kan se sider, og også historikken.
-En '''{{int:config-profile-private}}''' tillater kun godkjente brukere å se sider, den samme gruppen som får lov til å redigere dem.
-
-Mer komplekse konfigurasjoner av brukerrettigheter er tilgjengelig etter installasjon, se det [//www.mediawiki.org/wiki/Manual:User_rights relevante manualavsnittet].", # Fuzzy
-       'config-license' => 'Opphavsrett og lisens:',
-       'config-license-none' => 'Ingen lisensbunntekst',
-       'config-license-cc-by-sa' => 'Creative Commons Navngivelse Del på samme vilkår',
-       'config-license-cc-by' => 'Creative Commons Attribution',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Navngivelse Ikke-kommersiell Del på samme vilkår',
-       'config-license-cc-0' => 'Creative Commons Zero', # Fuzzy
-       'config-license-pd' => 'Offentlig rom',
-       'config-license-cc-choose' => 'Velg en egendefinert Creative Commons-lisens',
-       'config-email-settings' => 'E-postinnstillinger',
-       'config-enable-email' => 'Aktiver utgående e-post',
-       'config-enable-email-help' => 'Hvis du vil at e-post skal virke må [http://www.php.net/manual/en/mail.configuration.php PHPs e-postinnstillinger] bli konfigurert riktig.
-Hvis du ikke ønsker noen e-postfunksjoner kan du deaktivere dem her.',
-       'config-email-user' => 'Aktiver e-post mellom brukere',
-       'config-email-user-help' => 'Tillat alle brukere å sende hverandre e-post hvis de har aktivert det i deres innstillinger.',
-       'config-email-usertalk' => 'Aktiver brukerdiskusjonssidevarsler',
-       'config-email-usertalk-help' => 'Tillat brukere å motta varsler ved endringer på deres brukerdiskusjonsside hvis de har aktivert dette i deres innstillinger.',
-       'config-email-watchlist' => 'Aktiver overvåkningslistevarsler',
-       'config-email-watchlist-help' => 'Tillat brukere å motta varsler ved endringer på deres overvåkede sider hvis de har aktivert dette i deres innstillinger.',
-       'config-email-auth' => 'Aktiver e-postautentisering',
-       'config-email-auth-help' => "Om dette alternativet er aktivert må brukere bekrefte sin e-postadresse ved å bruke en lenke som blir sendt til dem når de setter eller endrer adressen sin.
-Kun autentiserte e-postadresser kan motta e-post fra andre brukere eller endringsvarsel.
-Å sette dette valget er '''anbefalt''' for offentlige wikier på grunn av potensiell misbruk av e-postfunksjonene.",
-       'config-email-sender' => 'Svar-e-postadresse:',
-       'config-email-sender-help' => 'Skriv inn e-postadressen som skal brukes som svar-adresse ved utgående e-post.
-Det er hit returmeldinger vil bli sendt.
-Mange e-posttjenere krever at minst domenenavnet må være gyldig.',
-       'config-upload-settings' => 'Bilde- og filopplastinger',
-       'config-upload-enable' => 'Aktiver filopplastinger',
-       'config-upload-help' => 'Filopplastinger kan potensielt utsette tjeneren din for sikkerhetsrisikoer.
-For mer informasjon, les [//www.mediawiki.org/wiki/Manual:Security sikkerhetsseksjonen] i manualen.
-
-For å aktivere filopplastinger, endre modusen i <code>images</code>-undermappen i MediaWikis rotmappe slik at nettjeneren kan skrive til den.
-Aktiver så dette alternativet.',
-       'config-upload-deleted' => 'Mappe for slettede filer:',
-       'config-upload-deleted-help' => 'Velg en mappe for å arkivere slettede filer.
-Ideelt burde ikke denne være tilgjengelig for nettet.',
-       'config-logo' => 'Logo-URL:',
-       'config-logo-help' => 'MediaWikis standarddrakt inkluderer plass til en 135x160 pikslers logo i øvre venstre hjørne.
-Last opp et bilde i passende størrelse og skriv inn nettadressen her.
-
-Hvis du ikke ønsker en logo, la denne boksen være tom.', # Fuzzy
-       'config-instantcommons' => 'Aktiver Instant Commons',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons Instant Commons] er en funksjon som gjør det mulig for wikier å bruke bilder, lyder og andre media funnet på nettstedet [//commons.wikimedia.org/ Wikimedia Commons].
-For å gjøre dette krever MediaWiki tilgang til internett.
-
-For mer informasjon om denne funksjonen, inklusive instruksjoner om hvordan man setter opp dette for andre wikier enn Wikimedia Commons, konsulter [//mediawiki.org/wiki/Manual:$wgForeignFileRepos manualen].',
-       'config-cc-again' => 'Velg igjen...',
-       'config-cc-not-chosen' => 'Velg hvilken Creative Commons-lisens du ønsker og klikk «fortsett».',
-       'config-advanced-settings' => 'Avansert konfigurasjon',
-       'config-extensions' => 'Utvidelser',
-       'config-install-step-done' => 'ferdig',
-       'config-install-step-failed' => 'mislyktes',
-       'config-install-extensions' => 'Inkludert utvidelser',
-       'config-install-database' => 'Setter opp database',
-       'config-install-user' => 'Oppretter databasebruker',
-       'config-install-user-alreadyexists' => 'Brukeren «$1» finnes allerede',
-       'config-install-user-create-failed' => 'Opprettelse av brukeren «$1» mislyktes: $2',
-       'config-install-user-grant-failed' => 'Å gi tillatelse til brukeren «$1» mislyktes: $2',
-       'config-install-tables' => 'Oppretter tabeller',
-       'config-install-mainpage-failed' => 'Kunne ikke sette inn hovedside: $1',
-       'config-download-localsettings' => 'Last ned <code>LocalSettings.php</code>',
-       'config-help' => 'hjelp',
-       'config-nofile' => 'Filen "$1" ble ikke funnet. Kan den være blitt slettet?',
-       'mainpagetext' => "'''MediaWiki-programvaren er nå installert.'''",
-       'mainpagedocfooter' => 'Se [//meta.wikimedia.org/wiki/Help:Contents brukerveiledningen] for informasjon om hvordan du bruker wiki-programvaren.
-
-==Å starte==
-*[//www.mediawiki.org/wiki/Manual:Configuration_settings Oppsettsliste]
-*[//www.mediawiki.org/wiki/Manual:FAQ Ofte stilte spørsmål]
-*[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-postliste]', # Fuzzy
-);
-
-/** Low German (Plattdüütsch)
- * @author Joachim Mos
- */
-$messages['nds'] = array(
-       'config-page-name' => 'Naam',
-       'config-ns-generic' => 'Projekt',
-       'config-admin-name' => 'Dien Naam:',
-       'config-admin-password' => 'Passwoord:',
-       'config-help' => 'Hülp',
-       'mainpagetext' => "'''De MediaWiki-Software is mit Spood installeert worrn.'''",
-       'mainpagedocfooter' => 'Kiek de [//meta.wikimedia.org/wiki/MediaWiki_localisation Dokumentatschoon för dat Anpassen vun de Brukerböversiet]
-un dat [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Brukerhandbook] för Hülp to de Bruuk un Konfiguratschoon.', # Fuzzy
-);
-
-/** Low Saxon (Netherlands) (Nedersaksies)
- * @author Servien
- */
-$messages['nds-nl'] = array(
-       'mainpagetext' => "'''’t Installeren van de MediaWiki programmatuur is succesvol.'''",
-       'mainpagedocfooter' => 'Bekiek de [//meta.wikimedia.org/wiki/Help:Contents haandleiding] veur informasie over t gebruuk van de wikiprogrammatuur.
-
-== 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]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Maak MediaWiki beschikbaor in joew taal]',
-);
-
-/** Nepali (नेपाली)
- * @author Bhawani Gautam
- * @author RajeshPandey
- */
-$messages['ne'] = array(
-       'mainpagetext' => "'''मीडिया सफलतापूर्वक कम्प्यूटरमा स्थापित भयो ।'''",
-       'mainpagedocfooter' => ' विकी अनुप्रयोग कसरी प्रयोग गर्ने भन्ने जानकारीको लागि  [//meta.wikimedia.org/wiki/Help:Contents प्रयोगकर्ता सहायता] हेर्नुहोस्
-
-== सुरू गर्नको लागि  ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings विन्यास सेटिङ्ग सूची]
-* [//www.mediawiki.org/wiki/Manual:FAQ मेडियाविकि सामान्य प्रश्नका उत्तरहरु]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce मेडियाविकि सुचना मेलिङ्ग सूची]', # Fuzzy
-);
-
-/** Dutch (Nederlands)
- * @author Catrope
- * @author McDutchie
- * @author Purodha
- * @author SPQRobin
- * @author Siebrand
- * @author Tjcool007
- * @author 아라
- */
-$messages['nl'] = array(
-       'config-desc' => 'Het installatieprogramma voor MediaWiki',
-       'config-title' => 'Installatie MediaWiki $1',
-       'config-information' => 'Gegevens',
-       'config-localsettings-upgrade' => 'Er is een bestaand instellingenbestand <code>LocalSettings.php</code> gevonden.
-Voer de waarde van <code>$wgUpgradeKey</code> in in onderstaande invoerveld om deze installatie bij te werken.
-De instelling is terug te vinden in <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'Het bestand <code>LocalSettings.php</code> is al aanwezig.
-Voer <code>update.php</code> uit om deze installatie bij te werken.',
-       'config-localsettings-key' => 'Upgradesleutel:',
-       'config-localsettings-badkey' => 'De sleutel die u hebt opgegeven is onjuist',
-       'config-upgrade-key-missing' => 'Er is een bestaande installatie van MediaWiki aangetroffen.
-Plaats de volgende regel onderaan uw <code>LocalSettings.php</code> om deze installatie bij te werken:
-
-$1',
-       'config-localsettings-incomplete' => 'De bestaande inhoud van <code>LocalSettings.php</code> lijkt incompleet.
-De variabele $1 is niet ingesteld.
-Wijzig <code>LocalSettings.php</code> zodat deze variabele is ingesteld en klik op "{{int:Config-continue}}".',
-       'config-localsettings-connection-error' => 'Er is een fout opgetreden tijdens het verbinden van de database met de instellingen uit <code>LocalSettings.php</code> of <code>AdminSettings.php</code>. Los het probleem met de instellingen op en probeer het daarna opnieuw.
-
-$1',
-       'config-session-error' => 'Fout bij het begin van de sessie: $1',
-       'config-session-expired' => 'Uw sessiegegevens zijn verlopen.
-Sessies zijn ingesteld om een levensduur van $1 te hebben.
-U kunt deze wijzigen via de instelling <code>session.gc_maxlifetime</code> in php.ini.
-Begin het installatieproces opnieuw.',
-       'config-no-session' => 'Uw sessiegegevens zijn verloren gegaan.
-Controleer uw php.ini en zorg dat er een juiste map is ingesteld voor <code>session.save_path</code>.',
-       'config-your-language' => 'Uw taal:',
-       'config-your-language-help' => 'Selecteer een taal om tijdens het installatieproces te gebruiken.',
-       'config-wiki-language' => 'Wikitaal:',
-       'config-wiki-language-help' => 'Selecteer de taal waar de wiki voornamelijk in wordt geschreven.',
-       'config-back' => '← Terug',
-       'config-continue' => 'Doorgaan →',
-       'config-page-language' => 'Taal',
-       'config-page-welcome' => 'Welkom bij MediaWiki!',
-       'config-page-dbconnect' => 'Verbinding maken met database',
-       'config-page-upgrade' => 'Bestaande installatie bijwerken',
-       'config-page-dbsettings' => 'Databaseinstellingen',
-       'config-page-name' => 'Naam',
-       'config-page-options' => 'Opties',
-       'config-page-install' => 'Installeren',
-       'config-page-complete' => 'Voltooid!',
-       'config-page-restart' => 'Installatie herstarten',
-       'config-page-readme' => 'Lees mij',
-       'config-page-releasenotes' => 'Release notes',
-       'config-page-copying' => 'Kopiëren',
-       'config-page-upgradedoc' => 'Bijwerken',
-       'config-page-existingwiki' => 'Bestaande wiki',
-       'config-help-restart' => 'Wilt u alle opgeslagen gegevens die u hebt ingevoerd wissen en het installatieproces opnieuw starten?',
-       'config-restart' => 'Ja, opnieuw starten',
-       'config-welcome' => '=== Controle omgeving ===
-Er worden een aantal basiscontroles uitgevoerd met als doel vast te stellen of deze omgeving geschikt is voor een installatie van MediaWiki.
-Als u hulp nodig hebt bij de installatie, lever deze gegevens dan ook aan.',
-       'config-copyright' => "=== Auteursrechten en voorwaarden ===
-
-$1
-
-Dit programma is vrije software. U mag het verder verspreiden en/of aanpassen in overeenstemming met de voorwaarden van de GNU General Public License zoals uitgegeven door de Free Software Foundation; ofwel versie 2 van de Licentie of - naar uw keuze - enige latere versie.
-
-Dit programma wordt verspreid in de hoop dat het nuttig is, maar '''zonder enige garantie''', zelfs zonder de impliciete garantie van '''verkoopbaarheid''' of '''geschiktheid voor een bepaald doel'''.
-Zie de GNU General Public License voor meer informatie.
-
-Samen met dit programma hoort u een <doclink href=Copying>exemplaar van de GNU General Public License</doclink> ontvangen te hebben; zo niet, schrijf dan aan de Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, Verenigde Staten. Of [http://www.gnu.org/copyleft/gpl.html lees de licentie online].",
-       'config-sidebar' => '* [//www.mediawiki.org MediaWiki thuispagina]
-* [//www.mediawiki.org/wiki/Help:Contents Gebruikershandleiding] (Engelstalig)
-* [//www.mediawiki.org/wiki/Manual:Contents Beheerdershandleiding] (Engelstalig)
-* [//www.mediawiki.org/wiki/Manual:FAQ Veel gestelde vragen] (Engelstalig)
-----
-* <doclink href=Readme>Leesmij</doclink> (Engelstalig)
-* <doclink href=ReleaseNotes>Release notes</doclink> (Engelstalig)
-* <doclink href=Copying>Kopiëren</doclink> (Engelstalig)
-* <doclink href=UpgradeDoc>Versie bijwerken</doclink> (Engelstalig)',
-       'config-env-good' => 'De omgeving is gecontroleerd.
-U kunt MediaWiki installeren.',
-       'config-env-bad' => 'De omgeving is gecontroleerd.
-U kunt MediaWiki niet installeren.',
-       'config-env-php' => 'PHP $1 is op dit moment geïnstalleerd.',
-       'config-env-php-toolow' => 'PHP $1 is geïnstalleerd.
-MediaWiki heeft PHP $2 of hoger nodig om correct te kunnen werken.',
-       'config-unicode-using-utf8' => 'Voor Unicode-normalisatie wordt utf8_normalize.so van Brion Vibber gebruikt.',
-       'config-unicode-using-intl' => 'Voor Unicode-normalisatie wordt de [http://pecl.php.net/intl PECL-extensie intl] gebruikt.',
-       'config-unicode-pure-php-warning' => "'''Waarschuwing''': de [http://pecl.php.net/intl PECL-extensie intl] is niet beschikbaar om de Unicodenormalisatie af te handelen en daarom wordt de langzame PHP-implementatie gebruikt.
-Als u MediaWiki voor een website met veel verkeer installeert, lees u dan in over [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicodenormalisatie].",
-       'config-unicode-update-warning' => "'''Waarschuwing''': de geïnstalleerde versie van de Unicodenormalisatiewrapper maakt gebruik van een oudere versie van [http://site.icu-project.org/ de bibliotheek van het ICU-project].
-U moet [//www.mediawiki.org/wiki/Unicode_normalization_considerations bijwerken] als Unicode voor u van belang is.",
-       'config-no-db' => 'Het was niet mogelijk een geschikte databasedriver te vinden voor PHP.
-U moet een databasedriver installeren voor PHP.
-De volgende databases worden ondersteund: $1.
-
-Als u op een gedeelde omgeving zit, vraag dan aan uw hostingprovider een geschikte databasedriver te installeren.
-Als u PHP zelf hebt gecompileerd, wijzig dan uw instellingen zodat een databasedriver wordt geactiveerd, bijvoorbeeld via <code>./configure --with-mysql</code>.
-Als u PHP hebt geïnstalleerd via een Debian- of Ubuntu-package, installeer dan ook de module php5-mysql.',
-       'config-outdated-sqlite' => "''' Waarschuwing:''' u gebruikt SQLite $1. SQLite is niet beschikbaar omdat de minimaal vereiste versie $2 is.",
-       'config-no-fts3' => "'''Waarschuwing''': SQLite is gecompileerd zonder de module [//sqlite.org/fts3.html FTS3]; er zijn geen zoekfuncties niet beschikbaar.",
-       'config-register-globals' => "'''Waarschuwing: de PHP-optie <code>[http://php.net/register_globals register_globals]</code> is ingeschakeld.'''
-'''Schakel deze uit als dat mogelijk is.'''
-MediaWiki kan ermee werken, maar uw server is dan meer kwetsbaar voor beveiligingslekken.",
-       'config-magic-quotes-runtime' => "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] is actief!'''
-Deze instelling zorgt voor gegevenscorruptie.
-U kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
-       'config-magic-quotes-sybase' => "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_sybase] is actief!'''
-Deze instelling zorgt voor gegevenscorruptie.
-U kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
-       'config-mbstring' => "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] is actief!'''
-Deze instelling zorgt voor gegevenscorruptie.
-U kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
-       'config-ze1' => "'''Onherstelbare fout: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] is actief!'''
-Deze instelling zorgt voor grote problemen in MediaWiki.
-U kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
-       'config-safe-mode' => "'''Waarschuwing:'''
-'''PHP's [http://www.php.net/features.safe-mode veilige modus] is actief.'''
-Dit kan problemen veroorzaken, vooral bij het uploaden van bestanden en ondersteuning van <code>math</code>.",
-       'config-xml-bad' => 'De XML-module van PHP ontbreekt.
-MediaWiki heeft de functies van deze module nodig en werkt niet zonder deze module.
-Als u gebruik maakt van Mandrake, installeer dan het package php-xml.',
-       'config-pcre' => 'De ondersteuningsmodule PCRE lijkt te missen.
-MediaWiki vereist dat de met Perl compatibele reguliere expressies werken.',
-       'config-pcre-no-utf8' => "'''Fataal:''' de module PRCE van PHP lijkt te zijn gecompileerd zonder ondersteuning voor PCRE_UTF8.
-MediaWiki heeft ondersteuning voor UTF-8 nodig om correct te kunnen werken.",
-       'config-memory-raised' => "PHP's <code>memory_limit</code> is $1 en is verhoogd tot $2.",
-       'config-memory-bad' => "'''Waarschuwing:''' PHP's <code>memory_limit</code> is $1.
-Dit is waarschijnlijk te laag.
-De installatie kan mislukken!",
-       'config-ctype' => "'''Fataal:''' PHP moet gecompileerd zijn met ondersteuning voor de [http://www.php.net/manual/en/ctype.installation.php extensie Ctype].",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] is op dit moment geïnstalleerd',
-       'config-apc' => '[http://www.php.net/apc APC] is op dit moment geïnstalleerd',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] is op dit moment geïnstalleerd',
-       'config-no-cache' => "'''Waarschuwing:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] of [http://www.iis.net/download/WinCacheForPhp WinCache] is niet aangetroffen.
-Het cachen van objecten is niet ingeschakeld.",
-       'config-mod-security' => "'''Waarschuwing:''' uw webserver heeft de module [http://modsecurity.org/ mod_security] ingeschakeld. Als deze onjuist is ingesteld, kan dit problemen geven in combinatie met MediaWiki of andere software die gebruikers in staat stelt willekeurige inhoud te posten.
-Lees de [http://modsecurity.org/documentation/ documentatie over mod_security] of neem contact op met de helpdesk van uw provider als u tegen problemen aanloopt.",
-       'config-diff3-bad' => 'GNU diff3 niet aangetroffen.',
-       'config-git' => 'Versiecontrolesoftware git is aangetroffen: <code>$1</code>',
-       'config-git-bad' => 'Geen git versiecontrolesoftware aangetroffen.',
-       'config-imagemagick' => 'ImageMagick aangetroffen: <code>$1</code>.
-Het aanmaken van miniaturen van afbeeldingen wordt ingeschakeld als u uploaden inschakelt.',
-       'config-gd' => 'Ingebouwde GD grafische bibliotheek aangetroffen.
-Het aanmaken van miniaturen van afbeeldingen wordt ingeschakeld als u uploaden inschakelt.',
-       'config-no-scaling' => 'De GD-bibliotheek en ImageMagick zijn niet aangetroffen.
-Het maken van miniaturen van afbeeldingen wordt uitgeschakeld.',
-       'config-no-uri' => "'''Fout:''' de huidige URI kon niet vastgesteld worden.
-De installatie is afgebroken.",
-       'config-no-cli-uri' => "'''Waarschuwing:''' de parameter ==scriptpath is niet opgegeven. De standaardwaarde wordt gebruikt: <code>$1</code>.",
-       'config-using-server' => 'De servernaam "<nowiki>$1</nowiki>" wordt gebruikt.',
-       'config-using-uri' => 'De server-URL "<nowiki>$1$2</nowiki>" wordt gebruikt.',
-       'config-uploads-not-safe' => "'''Waarschuwing:''' uw uploadmap <code>$1</code> kan gebruikt worden voor het arbitrair uitvoeren van scripts.
-Hoewel MediaWiki alle toegevoegde bestanden controleert op bedreigingen, is het zeer aan te bevelen het [//www.mediawiki.org/wiki/Manual:Security#Upload_security beveiligingslek te verhelpen] alvorens uploads in te schakelen.",
-       'config-no-cli-uploads-check' => "''Waarschuwing:'' uw standaardmap voor uploads (<code>$1</code>) wordt niet gecontroleerd op kwetsbaarheden voor het uitvoeren van willekeurige scripts gedurende de CLI-installatie.",
-       'config-brokenlibxml' => 'Uw systeem heeft een combinatie van PHP- en libxml2-versies geïnstalleerd die is foutgevoelig is en kan leiden tot onzichtbare beschadiging van gegevens in MediaWiki en andere webapplicaties.
-Upgrade naar PHP 5.2.9 of hoger en libxml2 2.7.3 of hoger([//bugs.php.net/bug.php?id=45996 bij PHP gerapporteerde fout]).
-De installatie wordt afgebroken.',
-       'config-using531' => 'PHP $1 is niet compatibel met MediaWiki vanwege een fout met betrekking tot referentieparameters met <code>__call()</code>.
-Werk uw PHP bij naar PHP 5.3.2 of hoger of werk bij naar de lagere versie PHP 5.3.0 om dit op te lossen.
-De installatie wordt afgebroken.',
-       'config-suhosin-max-value-length' => 'Suhosin is geïnstalleerd en beperkt de GET-parameter <code>length</code> tot $1 bytes.
-De ResourceLoader van MediaWiki omzeilt deze beperking, maar dat is slecht voor de prestaties.
-Als het mogelijk is, moet u de waarde "<code>suhosin.get.max_value_length</code>" in <code>php.ini</code> instellen op 1024 of hoger en <code>$wgResourceLoaderMaxQueryLength</code> in LocalSettings.php op dezelfde waarde instellen.',
-       'config-db-type' => 'Databasetype:',
-       'config-db-host' => 'Databasehost:',
-       'config-db-host-help' => 'Als uw databaseserver een andere server is, voer dan de hostnaam of het IP-adres hier in.
-
-Als u gebruik maakt van gedeelde webhosting, hoort uw provider u de juiste hostnaam te hebben verstrekt.
-
-Als u MediaWiki op een Windowsserver installeert en MySQL gebruikt, dan werkt "localhost" mogelijk niet als servernaam.
-Als het inderdaad niet werkt, probeer dan "127.0.0.1" te gebruiken als lokaal IP-adres.
-
-Als u PostgreSQL gebruikt, laat dit veld dan leeg om via een Unix-socket te verbinden.',
-       'config-db-host-oracle' => 'Database-TNS:',
-       'config-db-host-oracle-help' => 'Voer een geldige [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name] in; een tnsnames.ora-bestand moet zichtbaar zijn voor deze installatie.<br />Als u gebruik maakt van clientlibraries 10g of een latere versie, kunt u ook gebruik maken van de naamgevingsmethode [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].',
-       'config-db-wiki-settings' => 'Identificeer deze wiki',
-       'config-db-name' => 'Databasenaam:',
-       'config-db-name-help' => 'Kies een naam die uw wiki identificeert.
-Er mogen geen spaties gebruikt worden.
-Als u gebruik maakt van gedeelde webhosting, dan hoort uw provider ofwel u een te gebruiken databasenaam gegeven te hebben, of u aangegeven te hebben hoe u databases kunt aanmaken.',
-       'config-db-name-oracle' => 'Databaseschema:',
-       'config-db-account-oracle-warn' => 'Er zijn drie ondersteunde scenario\'s voor het installeren van Oracle als databasebackend:
-
-Als u een databasegebruiker wilt aanmaken als onderdeel van het installatieproces, geef dan de gegevens op van een databasegebruiker in met de rol SYSDBA voor de installatie en voer de gewenste aanmeldgegevens in voor de gebruiker met webtoegang. U kunt ook de gebruiker met webtoegang handmatig aanmaken en alleen van die gebruiker de aanmeldgegevens opgeven als deze de vereiste rechten heeft om schemaobjecten aan te maken. Als laatste is het mogelijk om aanmeldgegevens van twee verschillende gebruikers op te geven; een met de rechten om schemaobjecten aan te maken, en een met alleen webtoegang.
-
-Een script voor het aanmaken van een gebruiker met de vereiste rechten is te vinden in de map "maintenance/oracle/" van deze installatie. Onthoud dat het gebruiken van een gebruiker met beperkte rechten alle mogelijkheden om beheerscripts uit te voeren met de standaard gebruiker onmogelijk maakt.',
-       'config-db-install-account' => 'Gebruiker voor installatie',
-       'config-db-username' => 'Gebruikersnaam voor database:',
-       'config-db-password' => 'Wachtwoord voor database:',
-       'config-db-password-empty' => 'Voer een wachtwoord in voor de nieuwe databasegebruiker: $1.
-Hoewel het wellicht mogelijk is gebruikers aan te maken zonder wachtwoord, is dit niet veilig.',
-       'config-db-install-username' => 'Voer de gebruikersnaam in die gebruikt moet worden om te verbinden met de database tijdens het installatieproces. Dit is niet de gebruikersnaam van de MediaWikigebruiker. Dit is de gebruikersnaam voor de database.',
-       'config-db-install-password' => 'Voer het wachtwoord in dat gebruikt moet worden om te verbinden met de database tijdens het installatieproces. Dit is niet het wachtwoord van de MediaWikigebruiker. Dit is het wachtwoord voor de database.',
-       'config-db-install-help' => 'Voer de gebruikersnaam en het wachtwoord in die worden gebruikt voor de databaseverbinding tijdens het installatieproces.',
-       'config-db-account-lock' => 'Dezelfde gebruiker en wachwoord gebruiken na de installatie',
-       'config-db-wiki-account' => 'Gebruiker voor na de installatie',
-       'config-db-wiki-help' => 'Voer de gebruikersnaam en het wachtwoord in die gebruikt worden om verbinding te maken met de database na de installatie.
-Als de gebruiker niet bestaat en de gebruiker die tijdens de installatie gebruikt wordt voldoende rechten heeft, wordt deze gebruiker aangemaakt met de minimaal benodigde rechten voor het laten werken van de wiki.',
-       'config-db-prefix' => 'Databasetabelvoorvoegsel:',
-       'config-db-prefix-help' => "Als u een database moet gebruiken voor meerdere wiki's, of voor MediaWiki en een andere applicatie, dan kunt u ervoor kiezen om een voorvoegsel toe te voegen aan de tabelnamen om conflicten te voorkomen.
-Gebruik geen spaties.
-
-Dit veld wordt meestal leeg gelaten.",
-       'config-db-charset' => 'Tekenset voor de database',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binair',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 UTF-8-compatibel',
-       'config-charset-help' => "'''Waarschuwing:''' als u '''achterwaarts compatibel met UTF-8''' gebruikt met MySQL 4.1+ en een back-up van de database maakt met <code>mysqldump</code>, dan kunnen alle niet-ASCII-tekens in uw back-ups onherstelbaar beschadigd raken.
-
-In '''binaire modus''' slaat MediaWiki tekst in UTF-8 op in binaire databasevelden.
-Dit is efficiënter dan de UTF-8-modus van MySQL en stelt u in staat de volledige reeks Unicode-tekens te gebruiken.
-In '''UTF-8-modus''' kent MySQL de tekenset van uw gegevens en kan de databaseserver ze juist weergeven en converteren.
-Het is dan niet mogelijk tekens op te slaan die de \"[//nl.wikipedia.org/wiki/Lijst_van_Unicode-subbereiken#Basic_Multilingual_Plane Basic Multilingual Plane]\" te boven gaan.",
-       'config-mysql-old' => 'U moet MySQL $1 of later gebruiken.
-U gebruikt $2.',
-       'config-db-port' => 'Databasepoort:',
-       'config-db-schema' => 'Schema voor MediaWiki',
-       'config-db-schema-help' => 'Dit schema klopt meestal.
-Wijzig het alleen als u weet dat dit nodig is.',
-       'config-pg-test-error' => "Kan geen verbinding maken met database '''$1''': $2",
-       'config-sqlite-dir' => 'Gegevensmap voor SQLite:',
-       'config-sqlite-dir-help' => "SQLite slaat alle gegevens op in een enkel bestand.
-
-De map die u opgeeft moet beschrijfbaar zijn voor de webserver tijdens de installatie.
-
-Deze mag '''niet toegankelijk''' zijn via het web en het bestand mag dus niet tussen de PHP-bestanden staan.
-
-Het installatieprogramma schrijft het bestand <code>.htaccess</code> weg met het databasebestand, maar als dat niet werkt kan iemand zich toegang tot het ruwe databasebestand verschaffen.
-Ook de gebruikersgegevens (e-mailadressen, wachtwoordhashes) en verwijderde versies en overige gegevens met beperkte toegang via MediaWiki zijn dan onbeschermd.
-
-Overweeg om de database op een totaal andere plaats neer te zetten, bijvoorbeeld in <code>/var/lib/mediawiki/yourwiki</code>.",
-       'config-oracle-def-ts' => 'Standaard tablespace:',
-       'config-oracle-temp-ts' => 'Tijdelijke tablespace:',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-support-info' => 'MediaWiki ondersteunt de volgende databasesystemen:
-
-$1
-
-Als u het databasesysteem dat u wilt gebruiken niet in de lijst terugvindt, volg dan de handleiding waarnaar hierboven wordt verwezen om ondersteuning toe te voegen.',
-       'config-support-mysql' => '* $1 is het primaire databasesysteem voor voor MediaWiki en wordt het best ondersteund ([http://www.php.net/manual/en/mysql.installation.php hoe PHP gecompileerd moet zijn met ondersteuning voor MySQL])',
-       'config-support-postgres' => '* $1 is een populair open source databasesysteem als alternatief voor MySQL ([http://www.php.net/manual/en/pgsql.installation.php hoe PHP gecompileerd moet zijn met ondersteuning voor PostgreSQL]). Het is mogelijk dat er een aantal bekende problemen zijn met MediaWiki in combinatie met deze database en daarom wordt PostgreSQL niet aanbevolen voor een productieomgeving.',
-       'config-support-sqlite' => '* $1 is een zeer goed ondersteund lichtgewicht databasesysteem ([http://www.php.net/manual/en/pdo.installation.php hoe PHP gecompileerd zijn met ondersteuning voor SQLite]; gebruikt PDO)',
-       'config-support-oracle' => '* $1 is een commerciële data voor grote bedrijven ([http://www.php.net/manual/en/oci8.installation.php PHP compileren met ondersteuning voor OCI8]).',
-       'config-header-mysql' => 'MySQL-instellingen',
-       'config-header-postgres' => 'PostgreSQL-instellingen',
-       'config-header-sqlite' => 'SQLite-instellingen',
-       'config-header-oracle' => 'Oracle-instellingen',
-       'config-invalid-db-type' => 'Ongeldig databasetype',
-       '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-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".
-Gebruik alleen letters (a-z, A-Z), cijfers (0-9) en liggende streepjes (_) en streepjes (-).',
-       'config-connection-error' => '$1.
-
-Controleer de host, gebruikersnaam en wachtwoord en probeer het opnieuw.',
-       'config-invalid-schema' => 'Ongeldig schema voor MediaWiki "$1".
-Gebruik alleen letters (a-z, A-Z), cijfers (0-9) en liggende streepjes (_).',
-       'config-db-sys-create-oracle' => 'Het installatieprogramma biedt alleen de mogelijkheid een nieuwe gebruiker aan te maken met de SYSDBA-gebruiker.',
-       'config-db-sys-user-exists-oracle' => 'De gebruiker "$1" bestaat al. SYSDBA kan alleen gebruikt worden voor het aanmaken van een nieuwe gebruiker!',
-       'config-postgres-old' => 'PostgreSQL $1 of hoger is vereist.
-U gebruikt $2.',
-       'config-sqlite-name-help' => 'Kies een naam die uw wiki identificeert.
-Gebruik geen spaties of koppeltekens.
-Deze naam wordt gebruikt voor het gegevensbestand van SQLite.',
-       'config-sqlite-parent-unwritable-group' => 'Het was niet mogelijk de gegevensmap <code><nowiki>$1</nowiki></code> te maken omdat in de bovenliggende map <code><nowiki>$2</nowiki></code> niet geschreven mag worden door de webserver.
-
-Het installatieprogramma heeft vast kunnen stellen onder welke gebruiker de webserver draait.
-Maak de map <code><nowiki>$3</nowiki></code> beschrijfbaar om door te kunnen gaan.
-Voer op een Linux-systeem de volgende opdrachten uit:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Het was niet mogelijk de gegevensmap <code><nowiki>$1</nowiki></code> te maken omdat in de bovenliggende map <code><nowiki>$2</nowiki></code> niet geschreven mag worden door de webserver.
-
-Het installatieprogramma heeft niet vast kunnen stellen onder welke gebruiker de webserver draait.
-Maak de map <code><nowiki>$3</nowiki></code> beschrijfbaar voor de webserver (en anderen!) om door te kunnen gaan.
-Voer op een Linux-systeem de volgende opdrachten uit:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Er is een fout opgetreden tijdens het aanmaken van de gegevensmap "$1".
-Controleer de locatie en probeer het opnieuw.',
-       'config-sqlite-dir-unwritable' => 'Het was niet mogelijk in de map "$1" te schrijven.
-Wijzig de rechten zodat de webserver erin kan schrijven en probeer het opnieuw.',
-       'config-sqlite-connection-error' => '$1.
-
-Controleer de map voor gegevens en de databasenaam hieronder en probeer het opnieuw.',
-       'config-sqlite-readonly' => 'Er kan niet naar bestand <code>$1</code> worden geschreven.',
-       'config-sqlite-cant-create-db' => 'Het was niet mogelijk het databasebestand <code>$1</code> aan te maken.',
-       'config-sqlite-fts3-downgrade' => 'PHP heeft geen ondersteuning voor FTS3.
-De tabellen worden gedowngrade.',
-       'config-can-upgrade' => "Er staan al tabellen voor MediaWiki in deze database.
-Klik op '''Doorgaan''' om ze bij te werken naar MediaWiki $1.",
-       'config-upgrade-done' => "Het bijwerken is afgerond.
-
-Uw kunt [$1 uw wiki nu gebruiken].
-
-Als u uw <code>LocalSettings.php</code> opnieuw wilt aanmaken, klik dan op de knop hieronder.
-Dit is '''niet aan te raden''' tenzij u problemen hebt met uw wiki.",
-       'config-upgrade-done-no-regenerate' => 'Het bijwerken is afgerond.
-
-U kunt nu [$1 uw wiki gebruiken].',
-       'config-regenerate' => 'LocalSettings.php opnieuw aanmaken →',
-       'config-show-table-status' => 'Het uitvoeren van <code>SHOW TABLE STATUS</code> is mislukt!',
-       'config-unknown-collation' => "'''Waarschuwing:''' de database gebruikt een collatie die niet wordt herkend.",
-       'config-db-web-account' => 'Databasegebruiker voor webtoegang',
-       'config-db-web-help' => 'Selecteer de gebruikersnaam en het wachtwoord die de webserver gebruikt om verbinding te maken met de databaseserver na de installatie.',
-       'config-db-web-account-same' => 'Dezelfde gebruiker gebruiken als voor de installatie',
-       'config-db-web-create' => 'Maak de gebruiker aan als deze nog niet bestaat',
-       'config-db-web-no-create-privs' => 'De gebruiker die u hebt opgegeven voor de installatie heeft niet voldoende rechten om een gebruiker aan te maken.
-De gebruiker die u hier opgeeft moet al bestaan.',
-       'config-mysql-engine' => 'Opslagmethode:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''Waarschuwing''': u hebt MyISAM geselecteerd als opslagengine voor MySQL. Dit is niet aan te raden voor MediaWiki omdat:
-* het nauwelijks ondersteuning biedt voor gebruik door meerdere gebruikers tegelijkertijd door het locken van tabellen;
-* het meer vatbaar is voor corruptie dan andere engines;
-* de code van MediaWiki niet alstijd omgaat met MyISAM zoals dat zou moeten.
-
-Als uw installatie van MySQL InnoDB ondersteunt, gebruik dat dan vooral.
-Als uw installatie van MySQL geen ondersteuning heeft voor InnoDB, denk dan na over upgraden.",
-       'config-mysql-only-myisam-dep' => "'''Waarschuwing:''' MyISAM is enige beschikbare opslagmethode voor MySQL, en deze wordt niet aangeraden voor gebruik met MediaWiki, omdat:
-* er nauwelijks ondersteuning is voor meerdere gelijktijdige transacties omdat tabellen op slot gezet worden;
-* tabellen makkelijker stuk kunnen gaan;
-* de code van MediaWiki niet altijd op de juiste wijze omgaat met MyISAM.
-
-Uw installatie van MySQL heeft geen ondersteuning voor InnoDB. We raden u aan om een meer recente versie te gebruiken.",
-       'config-mysql-engine-help' => "'''InnoDB''' is vrijwel altijd de beste instelling, omdat deze goed omgaat met meerdere verzoeken tegelijkertijd.
-
-'''MyISAM''' is bij een zeer beperkt aantal gebruikers mogelijk sneller, of als de wiki alleen-lezen is.
-MyISAM-databases raken vaker corrupt dan InnoDB-databases.",
-       'config-mysql-charset' => 'Tekenset voor de database:',
-       'config-mysql-binary' => 'Binair',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "In '''binaire modus''' slaat MediaWiki tekst in UTF-8 op in binaire databasevelden.
-Dit is efficiënter dan de UTF-8-modus van MySQL en stelt u in staat de volledige reeks Unicodetekens te gebruiken.
-
-In '''UTF-8-modus''' kent MySQL de tekenset van uw gegevens en kan de databaseserver ze juist weergeven en converteren.
-Het is dat niet mogelijk tekens op te slaan die de \"[//nl.wikipedia.org/wiki/Lijst_van_Unicode-subbereiken#Basic_Multilingual_Plane Basic Multilingual Plane]\" te boven gaan.",
-       'config-site-name' => 'Naam van de wiki:',
-       'config-site-name-help' => 'Deze naam verschijnt in de titelbalk van browsers en op andere plaatsen.',
-       'config-site-name-blank' => 'Geef een naam op voor de site.',
-       'config-project-namespace' => 'Projectnaamruimte:',
-       'config-ns-generic' => 'Project',
-       'config-ns-site-name' => 'Zelfde als de wiki: $1',
-       'config-ns-other' => 'Andere (geef aan welke)',
-       'config-ns-other-default' => 'MijnWiki',
-       'config-project-namespace-help' => "In het kielzog van Wikipedia beheren veel wiki's hun beleidspagina's apart van hun inhoudelijke pagina's in een \"'''projectnaamruimte'''\".
-Alle paginanamen in deze naamruimte beginnen met een bepaald voorvoegsel dat u hier kunt opgeven.
-Dit voorvoegsel wordt meestal afgeleid van de naam van de wiki, maar het kan geen bijzondere tekens bevatten als \"#\" of \":\".",
-       'config-ns-invalid' => 'De opgegeven naamruimte "<nowiki>$1</nowiki>" is ongeldig.
-Geef een andere naamruimte op.',
-       'config-ns-conflict' => 'De opgegeven naamruimte "<nowiki>$1</nowiki>" conflicteert met een standaard naamruimte in MediaWiki.
-Geef een andere naam op voor de projectnaamruimte.',
-       'config-admin-box' => 'Beheerdersgebruiker',
-       'config-admin-name' => 'Uw naam:',
-       'config-admin-password' => 'Wachtwoord:',
-       'config-admin-password-confirm' => 'Wachtwoord opnieuw:',
-       'config-admin-help' => 'Voer de gebruikersnaam hier in, bijvoorbeeld "Jan Jansen".
-Dit is de naam die wordt gebruikt om aan de melden bij de wiki.',
-       'config-admin-name-blank' => 'Geef een gebruikersnaam op voor de beheerder.',
-       'config-admin-name-invalid' => 'De opgegeven gebruikersnaam "<nowiki>$1</nowiki>" is ongeldig.
-Kies een andere gebruikersnaam.',
-       'config-admin-password-blank' => 'Voer een wachtwoord voor de beheerder in.',
-       'config-admin-password-same' => 'Het wachtwoord mag niet hetzelfde zijn als de gebruikersnaam.',
-       'config-admin-password-mismatch' => 'De twee door u ingevoerde wachtwoorden komen niet overeen.',
-       'config-admin-email' => 'E-mailadres:',
-       'config-admin-email-help' => "Voer hier een e-mailadres in om e-mail te kunnen ontvangen van andere gebruikers op de wiki, uw wachtwoord opnieuw in te kunnen stellen en op de hoogte te worden gehouden van wijzigingen van pagina's op uw volglijst. U kunt het veld leeg laten.",
-       'config-admin-error-user' => 'Interne fout bij het aanmaken van een beheerder met de naam "<nowiki>$1</nowiki>".',
-       'config-admin-error-password' => 'Interne fout bij het instellen van een wachtwoord voor de bejeerder "<nowiki>$1</nowiki>": <pre>$2</pre>',
-       'config-admin-error-bademail' => 'U hebt een ongeldig e-mailadres opgegeven',
-       'config-subscribe' => 'Abonneren op de [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce mailinglijst releaseaankondigen].',
-       'config-subscribe-help' => 'Dit is een mailinglijst met een laag volume voor aankondigingen van nieuwe versies, inclusief belangrijke aankondigingen met betrekking tot beveiliging.
-Abonneer uzelf erop en werk uw MediaWiki-installatie bij als er nieuwe versies uitkomen.',
-       'config-subscribe-noemail' => 'U hebt geprobeerd zich te abonneren op de mailinglijst voor release-aankondigingen zonder een e-mailadres op te geven.
-Geef een e-mailadres op als u zich wilt abonneren op de mailinglijst.',
-       'config-almost-done' => 'U bent bijna klaar!
-Als u wilt kunt u de overige instellingen overslaan en de wiki nu installeren.',
-       'config-optional-continue' => 'Stel me meer vragen.',
-       'config-optional-skip' => 'Laat dat maar, installeer gewoon de wiki.',
-       'config-profile' => 'Gebruikersrechtenprofiel:',
-       'config-profile-wiki' => 'Open wiki',
-       'config-profile-no-anon' => 'Gebruiker aanmaken verplicht',
-       'config-profile-fishbowl' => 'Alleen voor geautoriseerde bewerkers',
-       'config-profile-private' => 'Privéwiki',
-       'config-profile-help' => "Wiki's werken het beste als ze door zoveel mogelijk gebruikers worden bewerkt.
-In MediaWiki is het eenvoudig om de recente wijzigingen te controleren en eventuele foutieve of kwaadwillende bewerkingen terug te draaien.
-
-Daarnaast vinden velen MediaWiki goed inzetbaar in vele andere rollen, en soms is het niet handig om helemaal \"op de wikimanier\" te werken.
-Daarom biedt dit installatieprogramma u de volgende keuzes voor de basisinstelling van gebruikersvrijheden:
-
-Het profiel '''{{int:config-profile-wiki}}''' staat iedereen toe te bewerken, zonder zelfs aan te melden.
-Een wiki met '''{{int:config-profile-no-anon}}\" biedt extra verantwoordelijkheid, maar kan afschrikken toevallige gebruikers afschrikken.
-
-Het scenario '''{{int:config-profile-fishbowl}}''' laat gebruikers waarvoor dat is ingesteld bewerkt, maar andere gebruikers kunnen alleen pagina's bekijken, inclusief de bewerkingsgeschiedenis.
-In een '''{{int:config-profile-private}}''' kunnen alleen goedgekeurde gebruikers pagina's bekijken en bewerken.
-
-Meer complexe instellingen voor gebruikersrechten zijn te maken na de installatie; hierover is meer te lezen in de [//www.mediawiki.org/wiki/Manual:User_rights handleiding].",
-       'config-license' => 'Auteursrechten en licentie:',
-       'config-license-none' => 'Geen licentie in de voettekst',
-       'config-license-cc-by-sa' => 'Creative Commons Naamsvermelding-Gelijk delen',
-       'config-license-cc-by' => 'Creative Commons Naamsvermelding',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Naamsvermelding-Niet Commercieel-Gelijk delen',
-       'config-license-cc-0' => 'Creative Commons Zero (Publiek domein)',
-       'config-license-gfdl' => 'GNU Free Documentation License 1.3 of hoger',
-       'config-license-pd' => 'Publiek domein',
-       'config-license-cc-choose' => 'Een Creative Commons-licentie selecteren',
-       'config-license-help' => "In veel openbare wiki's zijn alle bijdragen beschikbaar onder een [http://freedomdefined.org/Definition vrije licentie].
-Dit helpt bij het creëren van een gevoel van gemeenschappelijk eigendom en stimuleert bijdragen op lange termijn.
-Dit is over het algemeen niet nodig is voor een particuliere of zakelijke wiki.
-
-Als u teksten uit Wikipedia wilt kunnen gebruiken en u wilt het mogelijk maken teksten uit uw wiki naar Wikipedia te kopiëren, kies dan de licentie '''Creative Commons Naamsvermelding-Gelijk delen'''.
-
-De GNU Free Documentation License is de oude licentie voor inhoud uit Wikipedia.
-Dit is nog steeds een geldige licentie, maar deze licentie is lastig te begrijpen.
-Het is ook lastig inhoud te hergebruiken onder de GFDL.",
-       'config-email-settings' => 'E-mailinstellingen',
-       'config-enable-email' => 'Uitgaande e-mail inschakelen',
-       'config-enable-email-help' => 'Als u wilt dat e-mailen mogelijk is, dan moeten de [http://www.php.net/manual/en/mail.configuration.php e-mailinstellingen van PHP] correct zijn.
-Als u niet wilt dat e-mailen mogelijk is, dan kunt u de instellingen hier uitschakelen.',
-       'config-email-user' => 'E-mail tussen gebruikers inschakelen',
-       'config-email-user-help' => 'Gebruikers toestaan e-mail aan elkaar te verzenden als dit in de voorkeuren is ingesteld.',
-       'config-email-usertalk' => 'Gebruikersoverlegmeldingen inschakelen',
-       'config-email-usertalk-help' => 'Gebruikers toestaan meldingen te ontvangen bij wijzigingen op de eigen overlegpagina, als dit in de voorkeuren is ingesteld.',
-       'config-email-watchlist' => 'Volglijstmeldingen inschakelen',
-       'config-email-watchlist-help' => "Gebruikers toestaan meldingen te ontvangen bij wijzigingen van pagina's op hun volglijst, als dit in de voorkeuren is ingesteld.",
-       'config-email-auth' => 'E-mailbevestiging inschakelen',
-       'config-email-auth-help' => "Als deze instelling actief is, moeten gebruikers hun e-mailadres bevestigen via een verwijziging die ze per e-mail wordt toegezonden.
-Alleen bevestigde e-mailadressen kunnen e-mail ontvangen van andere gebruikers of wijzigingsnotificaties ontvangen.
-Het inschakelen van deze instelling wordt '''aangeraden''' voor openbare wiki's vanwege de mogelijkheden voor misbruik van e-mailmogelijkheden.",
-       'config-email-sender' => 'E-mailadres voor antwoorden:',
-       'config-email-sender-help' => 'Voer het e-mailadres in dat u wilt gebruiken als antwoordadres voor uitgaande e-mail.
-Als een e-mail niet bezorgd kan worden, wordt dat op dit e-mailadres gemeld.
-Veel mailservers vereisen dat tenminste het domein bestaat.',
-       'config-upload-settings' => 'Afbeeldingen en bestanden uploaden',
-       'config-upload-enable' => 'Uploaden van bestanden inschakelen',
-       'config-upload-help' => "Het toestaan van het uploaden van bestanden stelt uw server mogelijk bloot aan beveiligingsrisico's.
-Er is meer [//www.mediawiki.org/wiki/Manual:Security informatie over beveiliging] beschikbaar in de handleiding.
-
-Om het bestandsuploads mogelijk te maken kunt u de rechten op de submap <code>images</code> onder de hoofdmap van MediaWiki aanpassen, zodat de webserver erin kan schrijven.
-Daarmee wordt deze functie ingeschakeld.",
-       'config-upload-deleted' => 'Map voor verwijderde bestanden:',
-       'config-upload-deleted-help' => 'Kies een map waarin verwijderde bestanden gearchiveerd kunnen worden.
-Idealiter is deze map niet via het web te benaderen.',
-       'config-logo' => 'URL voor logo:',
-       'config-logo-help' => 'Het standaarduiterlijk van MediaWiki bevat ruimte voor een logo van 135x160 pixels boven het menu.
-Upload een afbeelding met de juiste afmetingen en voer de URL hier in.
-
-U kunt <code>$wgStylePath</code> of <code>$wgScriptPath</code> gebruiken als uw logo relatief is aan een van deze paden.
-
-Als u geen logo wilt gebruiken, kunt u dit veld leeg laten.',
-       'config-instantcommons' => 'Instant Commons inschakelen',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons Instant Commons] is functie die het mogelijk maakt om afbeeldingen, geluidsbestanden en andere mediabestanden te gebruiken van de website [//commons.wikimedia.org/ Wikimedia Commons].
-Hiervoor heeft MediaWiki toegang nodig tot Internet.
-
-Meer informatie over deze functie en hoe deze in te stellen voor andere wiki\'s dan Wikimedia Commons is te vinden in de [//mediawiki.org/wiki/Manual:$wgForeignFileRepos handleiding].',
-       'config-cc-error' => 'De licentiekiezer van Creative Commons heeft geen resultaat opgeleverd.
-Voer de licentie handmatig in.',
-       'config-cc-again' => 'Opnieuw kiezen...',
-       'config-cc-not-chosen' => 'Kies de Creative Commonslicentie die u wilt gebruiken en klik op "doorgaan".',
-       'config-advanced-settings' => 'Gevorderde instellingen',
-       'config-cache-options' => 'Instellingen voor het cachen van objecten:',
-       'config-cache-help' => 'Het cachen van objecten wordt gebruikt om de snelheid van MediaWiki te verbeteren door vaak gebruikte gegevens te bewaren.
-Middelgrote tot grote websites wordt geadviseerd dit in te schakelen en ook kleine sites merken de voordelen.',
-       'config-cache-none' => 'Niets cachen.
-Er gaat geen functionaliteit verloren, maar dit kan invloed hebben op de prestaties.',
-       'config-cache-accel' => 'Cachen van objecten via PHP (APC, XCache of WinCache)',
-       'config-cache-memcached' => 'Memcached gebruiken (dit vereist aanvullende instellingen)',
-       'config-memcached-servers' => 'Memcachedservers:',
-       'config-memcached-help' => 'Lijst met IP-adressen te gebruiken voor Memcached.
-Eén IP-adres per regel met een poortnummer.
-Bijvoorbeeld:
- 127.0.0.1:11211
- 192.168.1.25:1234',
-       'config-memcache-needservers' => 'U hebt Memcached geselecteerd als uw cache, maar u hebt geen servers opgegeven.',
-       'config-memcache-badip' => 'U hebt een ongeldig IP-adres ingevoerd voor Memcached: $1.',
-       'config-memcache-noport' => 'U hebt geen poort opgegeven voor de Memcachedserver: $1.
-De standaardpoort is 11211.',
-       'config-memcache-badport' => 'Poortnummers voor Memcached moeten tussen $1 en $2 liggen.',
-       'config-extensions' => 'Uitbreidingen',
-       'config-extensions-help' => 'De bovenstaande uitbreidingen zijn aangetroffen in de map <code>./extensions</code>.
-
-Mogelijk moet u aanvullende instellingen maken, maar u kunt deze uitbreidingen nu inschakelen.',
-       'config-install-alreadydone' => "'''Waarschuwing:''' het lijkt alsof u MediaWiki al hebt geïnstalleerd en probeert het programma opnieuw te installeren.
-Ga door naar de volgende pagina.",
-       'config-install-begin' => 'Als u nu op "{{int:config-continue}}" klikt, begint de installatie van MediaWiki.
-Als u nog wijzigingen wilt maken, klik dan op "{{int:config-back}}".',
-       'config-install-step-done' => 'afgerond',
-       'config-install-step-failed' => 'mislukt',
-       'config-install-extensions' => 'Inclusief uitbreidingen',
-       'config-install-database' => 'Database inrichten',
-       'config-install-schema' => 'Het schema wordt aangemaakt',
-       'config-install-pg-schema-not-exist' => 'Het schema voor PostgreSQL bestaat niet',
-       'config-install-pg-schema-failed' => 'Het aanmaken van de tabellen is mislukt.
-Zorg dat de gebruiker "$1" in het schema "$2" mag schrijven.',
-       'config-install-pg-commit' => 'Wijzigingen worden doorgevoerd',
-       'config-install-pg-plpgsql' => 'Controle op de taal PL/pgSQL',
-       'config-pg-no-plpgsql' => 'U moet de taal PL/pgSQL installeren in de database $1',
-       'config-pg-no-create-privs' => 'De gebruiker die u hebt opgegeven door de installatie heeft niet voldoende rechten om een gebruiker aan te maken.',
-       'config-pg-not-in-role' => 'De gebruiker die u hebt opgegeven voor de webgebruiker bestaat al.
-De gebruiker die u hebt opgegeven voor installatie is geen superuser en geen lid van de rol van de webgebruiker, en kan het dus geen objecten aanmaken die van de webgebruiker zijn.
-
-MediaWiki vereist momenteel dat de tabellen van de webgebruiker zijn. Geef een andere webgebruikersnaam op, of klik op "terug" en geef een gebruiker op die voldoende installatierechten heeft.',
-       'config-install-user' => 'Databasegebruiker aan het aanmaken',
-       'config-install-user-alreadyexists' => 'Gebruiker "$1" bestaat al',
-       'config-install-user-create-failed' => 'Het aanmaken van de gebruiker "$1" is mislukt: $2',
-       'config-install-user-grant-failed' => 'Het geven van rechten aan gebruiker "$1" is mislukt: $2',
-       'config-install-user-missing' => 'De opgegeven gebruiker "$1" bestaat niet.',
-       'config-install-user-missing-create' => 'De opgegeven gebruiker "$1" bestaat niet.
-Klik op "registreren" onderaan als u de gebruiker wilt aanmaken.',
-       'config-install-tables' => 'Tabellen aanmaken',
-       'config-install-tables-exist' => "'''Waarschuwing''': de MediaWikitabellen lijken al te bestaan.
-Het aanmaken wordt overgeslagen.",
-       'config-install-tables-failed' => "'''Fout''': het aanmaken van een tabel is mislukt met de volgende foutmelding: $1",
-       'config-install-interwiki' => 'Bezig met het vullen van de interwikitabel',
-       'config-install-interwiki-list' => 'Het bestand <code>interwiki.list</code> is niet aangetroffen',
-       'config-install-interwiki-exists' => "'''Waarschuwing''': de interwikitabel heeft al inhoud.
-De standaardlijst wordt overgeslagen.",
-       'config-install-stats' => 'Statistieken initialiseren',
-       'config-install-keys' => 'Bezig met aanmaken van geheime sleutels',
-       'config-insecure-keys' => "'''Waarschuwing:''' De {{PLURAL:$2|sleutel die is aangemaakt|sleutels die zijn aangemaakt}} ($1) tijdens de installatie {{PLURAL:$2|is|zijn}} niet volledig veilig. Overweeg deze handmatig te wijzigen.",
-       'config-install-sysop' => 'Gebruiker voor beheerder aanmaken',
-       'config-install-subscribe-fail' => 'Het is niet mogelijk te abonneren op mediawiki-announce: $1',
-       'config-install-subscribe-notpossible' => 'cURL is niet geïnstalleerd en <code>allow_url_fopen</code> is niet beschikbaar.',
-       'config-install-mainpage' => 'Hoofdpagina aanmaken met standaard inhoud',
-       'config-install-extension-tables' => 'Tabellen voor ingeschakelde uitbreidingen worden aangemaakt',
-       'config-install-mainpage-failed' => 'Het was niet mogelijk de hoofdpagina in te voegen: $1',
-       'config-install-done' => "'''Gefeliciteerd!'''
-U hebt MediaWiki met geïnstalleerd.
-
-Het installatieprogramma heeft het bestand <code>LocalSettings.php</code> aangemaakt.
-Dit bevat al uw instellingen.
-
-U moet het bestand downloaden en in de hoofdmap van uw wiki-installatie plaatsten; in dezelfde map als index.php.
-De download moet u automatisch zijn aangeboden.
-
-Als de download niet is aangeboden of als u de download hebt geannuleerd, dan kunt u de download opnieuw starten door op de onderstaande koppeling te klikken:
-
-$3
-
-'''Let op''': als u dit niet nu doet, dan het is bestand als u later de installatieprocedure afsluit zonder het bestand te downloaden niet meer beschikbaar.
-
-Na het plaatsen van het bestand met instellingen kunt u '''[$2 uw wiki betreden]'''.",
-       'config-download-localsettings' => '<code>LocalSettings.php</code> downloaden',
-       'config-help' => 'hulp',
-       'config-nofile' => 'Het bestand "$1" is niet gevonden. Is het verwijderd?',
-       'config-extension-link' => 'Weet u dat u [//www.mediawiki.org/wiki/Manual:Extensions uitbreidingen] kunt gebruiken voor uw wiki?
-U kunt [//www.mediawiki.org/wiki/Category:Extensions_by_category uitbreidingen op categorie] bekijken of ga naar de [//www.mediawiki.org/wiki/Extension_Matrix Uitbreidingenmatrix] om de volledige lijst met uitbreidingen te bekijken.',
-       'mainpagetext' => "'''De installatie van MediaWiki is geslaagd.'''",
-       'mainpagedocfooter' => 'Raadpleeg de [//meta.wikimedia.org/wiki/NL_Help:Inhoudsopgave handleiding] voor informatie over het gebruik van de wikisoftware.
-
-== Meer hulp over MediaWiki ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lijst met instellingen]
-* [//www.mediawiki.org/wiki/Manual:FAQ Veelgestelde vragen (FAQ)]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglijst voor aankondigingen van nieuwe versies]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Maak MediaWiki beschikbaar in uw taal]',
-);
-
-/** Nederlands (informeel)‎ (Nederlands (informeel)‎)
- * @author Siebrand
- */
-$messages['nl-informal'] = array(
-       'config-localsettings-badkey' => 'De sleutel die je hebt opgegeven is onjuist',
-       'config-upgrade-key-missing' => 'Er is een bestaande installatie van MediaWiki aangetroffen.
-Plaats de volgende regel onderaan je <code>LocalSettings.php</code> om deze installatie bij te werken:
-
-$1',
-       'config-session-expired' => 'Je sessiegegevens zijn verlopen.
-Sessies zijn ingesteld om een levensduur van $1 te hebben.
-Je kunt deze wijzigen via de instelling <code>session.gc_maxlifetime</code> in php.ini.
-Begin het installatieproces opnieuw.',
-       'config-no-session' => 'Je sessiegegevens zijn verloren gegaan.
-Controleer je php.ini en zorg dat er een juiste map is ingesteld voor <code>session.save_path</code>.',
-       'config-your-language' => 'Jouw taal:',
-       'config-help-restart' => 'Wil je alle opgeslagen gegevens die je hebt ingevoerd wissen en het installatieproces opnieuw starten?',
-       'config-welcome' => '=== Controle omgeving ===
-Er worden een aantal basiscontroles uitgevoerd met als doel vast te stellen of deze omgeving geschikt is voor een installatie van MediaWiki.
-Als je hulp nodig hebt bij de installatie, lever deze gegevens dan ook aan.',
-       'config-copyright' => "=== Auteursrechten en voorwaarden ===
-
-$1
-
-Dit programma is vrije software. Je mag het verder verspreiden en/of aanpassen in overeenstemming met de voorwaarden van de GNU General Public License zoals uitgegeven door de Free Software Foundation; ofwel versie 2 van de Licentie of - naar eigen keuze - enige latere versie.
-
-Dit programma wordt verspreid in de hoop dat het nuttig is, maar '''zonder enige garantie''', zelfs zonder de impliciete garantie van '''verkoopbaarheid''' of '''geschiktheid voor een bepaald doel'''.
-Zie de GNU General Public License voor meer informatie.
-
-Samen met dit programma hoor je een <doclink href=Copying>exemplaar van de GNU General Public License</doclink> ontvangen te hebben; zo niet, schrijf dan aan de Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, Verenigde Staten. Of [http://www.gnu.org/copyleft/gpl.html lees de licentie online].",
-       'config-env-good' => 'De omgeving is gecontroleerd.
-Je kunt MediaWiki installeren.',
-       'config-env-bad' => 'De omgeving is gecontroleerd.
-Je kunt MediaWiki niet installeren.',
-       'config-unicode-pure-php-warning' => "'''Waarschuwing''': de [http://pecl.php.net/intl PECL-extensie intl] is niet beschikbaar om de Unicodenormalisatie af te handelen en daarom wordt de langzame PHP-implementatie gebruikt.
-Als je MediaWiki voor een website met veel verkeer installeert, lees je dan in over [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicodenormalisatie].",
-       'config-unicode-update-warning' => "'''Waarschuwing''': de geïnstalleerde versie van de Unicodenormalisatiewrapper maakt gebruik van een oudere versie van [http://site.icu-project.org/ de bibliotheek van het ICU-project].
-Je moet [//www.mediawiki.org/wiki/Unicode_normalization_considerations bijwerken] als Unicode voor jou van belang is.",
-       'config-no-db' => 'Het was niet mogelijk een geschikte databasedriver te vinden voor PHP.
-Je moet een databasedriver installeren voor PHP.
-De volgende databases worden ondersteund: $1.
-
-Als je op een gedeelde omgeving zit, vraag dan aan je hostingprovider een geschikte databasedriver te installeren.
-Als je PHP zelf hebt gecompileerd, wijzig dan je instellingen zodat een databasedriver wordt geactiveerd, bijvoorbeeld via <code>./configure --with-mysql</code>.
-Als je PHP hebt geïnstalleerd via een Debian- of Ubuntu-package, installeer dan ook de module php5-mysql.',
-       'config-outdated-sqlite' => "''' Waarschuwing:''' je gebruikt SQLite $1. SQLite is niet beschikbaar omdat de minimaal vereiste versie $2 is.",
-       'config-register-globals' => "'''Waarschuwing: de PHP-optie <code>[http://php.net/register_globals register_globals]</code> is ingeschakeld.'''
-'''Schakel deze uit als dat mogelijk is.'''
-MediaWiki kan ermee werken, maar je server is dan meer kwetsbaar voor beveiligingslekken.",
-       'config-magic-quotes-runtime' => "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] is actief!'''
-Deze instelling zorgt voor gegevenscorruptie.
-Je kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
-       'config-magic-quotes-sybase' => "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_sybase] is actief!'''
-Deze instelling zorgt voor gegevenscorruptie.
-Je kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
-       'config-mbstring' => "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] is actief!'''
-Deze instelling zorgt voor gegevenscorruptie.
-Je kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
-       'config-ze1' => "'''Onherstelbare fout: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] is actief!'''
-Deze instelling zorgt voor grote problemen in MediaWiki.
-Je kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
-       'config-xml-bad' => 'De XML-module van PHP ontbreekt.
-MediaWiki heeft de functies van deze module nodig en werkt niet zonder deze module.
-Als je gebruik maakt van Mandrake, installeer dan het package php-xml.',
-       'config-mod-security' => "'''Waarschuwing:''' je webserver heeft de module [http://modsecurity.org/ mod_security] ingeschakeld. Als deze onjuist is ingesteld, kan dit problemen geven in combinatie met MediaWiki of andere software die gebruikers in staat stelt willekeurige inhoud te posten.
-Lees de [http://modsecurity.org/documentation/ documentatie over mod_security] of neem contact op met de helpdesk van je provider als je tegen problemen aanloopt.",
-       'config-imagemagick' => 'ImageMagick aangetroffen: <code>$1</code>.
-Het aanmaken van miniaturen van afbeeldingen wordt ingeschakeld als je uploaden inschakelt.',
-       'config-gd' => 'Ingebouwde GD grafische bibliotheek aangetroffen.
-Het aanmaken van miniaturen van afbeeldingen wordt ingeschakeld als je uploaden inschakelt.',
-       'config-uploads-not-safe' => "'''Waarschuwing:''' je uploadmap <code>$1</code> kan gebruikt worden voor het arbitrair uitvoeren van scripts.
-Hoewel MediaWiki alle toegevoegde bestanden controleert op bedreigingen, is het zeer aan te bevelen het [//www.mediawiki.org/wiki/Manual:Security#Upload_security beveiligingslek te verhelpen] alvorens uploads in te schakelen.",
-       'config-no-cli-uploads-check' => "''Waarschuwing:'' je standaardmap voor uploads (<code>$1</code>) wordt niet gecontroleerd op kwetsbaarheden voor het uitvoeren van willekeurige scripts gedurende de CLI-installatie.",
-       'config-brokenlibxml' => 'Je systeem heeft een combinatie van PHP- en libxml2-versies geïnstalleerd die is foutgevoelig is en kan leiden tot onzichtbare beschadiging van gegevens in MediaWiki en andere webapplicaties.
-Upgrade naar PHP 5.2.9 of hoger en libxml2 2.7.3 of hoger([//bugs.php.net/bug.php?id=45996 bij PHP gerapporteerde fout]).
-De installatie wordt afgebroken.',
-       'config-db-host-help' => 'Als je databaseserver een andere server is, voer dan de hostnaam of het IP-adres hier in.
-
-Als je gebruik maakt van gedeelde webhosting, hoort je provider je de juiste hostnaam te hebben verstrekt.
-
-Als je MediaWiki op een Windowsserver installeert en MySQL gebruikt, dan werkt "localhost" mogelijk niet als servernaam.
-Als het inderdaad niet werkt, probeer dan "127.0.0.1" te gebruiken als lokaal IP-adres.
-
-Als je PostgreSQL gebruikt, laat dit veld dan leeg om via een Unix-socket te verbinden.',
-       'config-db-host-oracle-help' => 'Voer een geldige [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name] in; een tnsnames.ora-bestand moet zichtbaar zijn voor deze installatie.<br />Als je gebruik maakt van clientlibraries 10g of een latere versie, kan je ook gebruik maken van de naamgevingsmethode [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].',
-       'config-db-name-help' => 'Kies een naam die je wiki identificeert.
-Er mogen geen spaties gebruikt worden.
-Als je gebruik maakt van gedeelde webhosting, dan hoort je provider ofwel jou een te gebruiken databasenaam gegeven te hebben, of je aangegeven te hebben hoe je databases kunt aanmaken.',
-       'config-db-account-oracle-warn' => 'Er zijn drie ondersteunde scenario\'s voor het installeren van Oracle als databasebackend:
-
-Als je een databasegebruiker wilt aanmaken als onderdeel van het installatieproces, geef dan de gegevens op van een databasegebruiker in met de rol SYSDBA voor de installatie en voer de gewenste aanmeldgegevens in voor de gebruiker met webtoegang. Je kunt ook de gebruiker met webtoegang handmatig aanmaken en alleen van die gebruiker de aanmeldgegevens opgeven als deze de vereiste rechten heeft om schemaobjecten aan te maken. Als laatste is het mogelijk om aanmeldgegevens van twee verschillende gebruikers op te geven; een met de rechten om schemaobjecten aan te maken, en een met alleen webtoegang.
-
-Een script voor het aanmaken van een gebruiker met de vereiste rechten is te vinden in de map "maintenance/oracle/" van deze installatie. Onthoud dat het gebruiken van een gebruiker met beperkte rechten alle mogelijkheden om beheerscripts uit te voeren met de standaard gebruiker onmogelijk maakt.',
-       'config-db-prefix-help' => "Als je een database moet gebruiken voor meerdere wiki's, of voor MediaWiki en een andere applicatie, dan kan je ervoor kiezen om een voorvoegsel toe te voegen aan de tabelnamen om conflicten te voorkomen.
-Gebruik geen spaties.
-
-Dit veld wordt meestal leeg gelaten.",
-       'config-charset-help' => "'''Waarschuwing:''' als je '''achterwaarts compatibel met UTF-8''' gebruikt met MySQL 4.1+ en een back-up van de database maakt met <code>mysqldump</code>, dan kunnen alle niet-ASCII-tekens in je back-ups onherstelbaar beschadigd raken.
-
-In '''binaire modus''' slaat MediaWiki tekst in UTF-8 op in binaire databasevelden.
-Dit is efficiënter dan de UTF-8-modus van MySQL en stelt je in staat de volledige reeks Unicode-tekens te gebruiken.
-In '''UTF-8-modus''' kent MySQL de tekenset van je gegevens en kan de databaseserver ze juist weergeven en converteren.
-Het is dan niet mogelijk tekens op te slaan die de \"[//nl.wikipedia.org/wiki/Lijst_van_Unicode-subbereiken#Basic_Multilingual_Plane Basic Multilingual Plane]\" te boven gaan.",
-       'config-mysql-old' => 'Je moet MySQL $1 of later gebruiken.
-Jij gebruikt $2.',
-       'config-db-schema-help' => 'Dit schema klopt meestal.
-Wijzig het alleen als je weet dat dit nodig is.',
-       'config-sqlite-dir-help' => "SQLite slaat alle gegevens op in een enkel bestand.
-
-De map die je opgeeft moet beschrijfbaar zijn voor de webserver tijdens de installatie.
-
-Deze mag '''niet toegankelijk''' zijn via het web en het bestand mag dus niet tussen de PHP-bestanden staan.
-
-Het installatieprogramma schrijft het bestand <code>.htaccess</code> weg met het databasebestand, maar als dat niet werkt kan iemand zich toegang tot het ruwe databasebestand verschaffen.
-Ook de gebruikersgegevens (e-mailadressen, wachtwoordhashes) en verwijderde versies en overige gegevens met beperkte toegang via MediaWiki zijn dan onbeschermd.
-
-Overweeg om de database op een totaal andere plaats neer te zetten, bijvoorbeeld in <code>/var/lib/mediawiki/yourwiki</code>.",
-       'config-support-info' => 'MediaWiki ondersteunt de volgende databasesystemen:
-
-$1
-
-Als je het databasesysteem dat je wilt gebruiken niet in de lijst terugvindt, volg dan de handleiding waarnaar hierboven wordt verwezen om ondersteuning toe te voegen.',
-       'config-missing-db-name' => 'Je moet een waarde opgeven voor "Databasenaam"',
-       'config-missing-db-host' => 'Je moet een waarde invoeren voor "Databaseserver"',
-       'config-missing-db-server-oracle' => 'Je moet een waarde opgeven voor "Database-TNS"',
-       'config-postgres-old' => 'PostgreSQL $1 of hoger is vereist.
-Jij gebruikt $2.',
-       'config-sqlite-name-help' => 'Kies een naam die je wiki identificeert.
-Gebruik geen spaties of koppeltekens.
-Deze naam wordt gebruikt voor het gegevensbestand van SQLite.',
-       'config-upgrade-done' => "Het bijwerken is afgerond.
-
-Je kunt [$1 je wiki nu gebruiken].
-
-Als je je <code>LocalSettings.php</code> opnieuw wilt aanmaken, klik dan op de knop hieronder.
-Dit is '''niet aan te raden''' tenzij je problemen hebt met je wiki.",
-       'config-upgrade-done-no-regenerate' => 'Het bijwerken is afgerond.
-
-Je kunt nu [$1 je wiki gebruiken].',
-       'config-db-web-no-create-privs' => 'De gebruiker die je hebt opgegeven voor de installatie heeft niet voldoende rechten om een gebruiker aan te maken.
-De gebruiker die je hier opgeeft moet al bestaan.',
-       'config-mysql-myisam-dep' => "'''Waarschuwing''': je hebt MyISAM geselecteerd als opslagengine voor MySQL. Dit is niet aan te raden voor MediaWiki omdat:
-* het nauwelijks ondersteuning biedt voor gebruik door meerdere gebruikers tegelijkertijd door het locken van tabellen;
-* het meer vatbaar is voor corruptie dan andere engines;
-* de code van MediaWiki niet alstijd omgaat met MyISAM zoals dat zou moeten.
-
-Als je installatie van MySQL InnoDB ondersteunt, gebruik dat dan vooral.
-Als je installatie van MySQL geen ondersteuning heeft voor InnoDB, denk dan na over upgraden.",
-       'config-mysql-charset-help' => "In '''binaire modus''' slaat MediaWiki tekst in UTF-8 op in binaire databasevelden.
-Dit is efficiënter dan de UTF-8-modus van MySQL en stelt je in staat de volledige reeks Unicodetekens te gebruiken.
-
-In '''UTF-8-modus''' kent MySQL de tekenset van je gegevens en kan de databaseserver ze juist weergeven en converteren.
-Het is dat niet mogelijk tekens op te slaan die de \"[//nl.wikipedia.org/wiki/Lijst_van_Unicode-subbereiken#Basic_Multilingual_Plane Basic Multilingual Plane]\" te boven gaan.",
-       'config-project-namespace-help' => "In het kielzog van Wikipedia beheren veel wiki's hun beleidspagina's apart van hun inhoudelijke pagina's in een \"'''projectnaamruimte'''\".
-Alle paginanamen in deze naamruimte beginnen met een bepaald voorvoegsel dat je hier kunt opgeven.
-Dit voorvoegsel wordt meestal afgeleid van de naam van de wiki, maar het kan geen bijzondere tekens bevatten als \"#\" of \":\".",
-       'config-admin-name' => 'Je naam:',
-       'config-admin-password-mismatch' => 'De twee door jou ingevoerde wachtwoorden komen niet overeen.',
-       'config-admin-email-help' => "Voer hier een e-mailadres in om e-mail te kunnen ontvangen van andere gebruikers op de wiki, je wachtwoord opnieuw in te kunnen stellen en op de hoogte te worden gehouden van wijzigingen van pagina's op uw volglijst. Je kunt het veld leeg laten.",
-       'config-admin-error-bademail' => 'Je hebt een ongeldig e-mailadres opgegeven',
-       'config-subscribe-help' => 'Dit is een mailinglijst met een laag volume voor aankondigingen van nieuwe versies, inclusief belangrijke aankondigingen met betrekking tot beveiliging.
-Abonneer jezelf erop en werk je MediaWiki-installatie bij als er nieuwe versies uitkomen.',
-       'config-subscribe-noemail' => 'Je hebt geprobeerd je te abonneren op de mailinglijst voor release-aankondigingen zonder een e-mailadres op te geven.
-Geef een e-mailadres op als je je wilt abonneren op de mailinglijst.',
-       'config-almost-done' => 'Je bent bijna klaar!
-Als je wilt kan je de overige instellingen overslaan en de wiki nu installeren.',
-       'config-profile-help' => "Wiki's werken het beste als ze door zoveel mogelijk gebruikers worden bewerkt.
-In MediaWiki is het eenvoudig om de recente wijzigingen te controleren en eventuele foutieve of kwaadwillende bewerkingen terug te draaien.
-
-Daarnaast vinden velen MediaWiki goed inzetbaar in vele andere rollen, en soms is het niet handig om helemaal \"op de wikimanier\" te werken.
-Daarom biedt dit installatieprogramma je de volgende keuzes voor de basisinstelling van gebruikersvrijheden:
-
-Een '''{{int:config-profile-wiki}}''' staat iedereen toe te bewerken, zonder zelfs aan te melden.
-Een wiki met '''{{int:config-profile-no-anon}}\" biedt extra verantwoordelijkheid, maar kan afschrikken toevallige gebruikers afschrikken.
-
-Het scenario '''{{int:config-profile-fishbowl}}''' laat gebruikers waarvoor dat is ingesteld bewerkt, maar andere gebruikers kunnen alleen pagina's bekijken, inclusief de bewerkingsgeschiedenis.
-In een '''{{int:config-profile-private}}''' kunnen alleen goedgekeurde gebruikers pagina's bekijken en bewerken.
-
-Meer complexe instellingen voor gebruikersrechten zijn te maken na de installatie; hierover is meer te lezen in de [//www.mediawiki.org/wiki/Manual:User_rights handleiding].", # Fuzzy
-       'config-license-help' => "In veel openbare wiki's zijn alle bijdragen beschikbaar onder een [http://freedomdefined.org/Definition vrije licentie].
-Dit helpt bij het creëren van een gevoel van gemeenschappelijk eigendom en stimuleert bijdragen op lange termijn.
-Dit is over het algemeen niet nodig is voor een particuliere of zakelijke wiki.
-
-Als je teksten uit Wikipedia wilt kunnen gebruiken en je wilt het mogelijk maken teksten uit je wiki naar Wikipedia te kopiëren, kies dan de licentie '''Creative Commons Naamsvermelding-Gelijk delen'''.
-
-De GNU Free Documentation License is de oude licentie voor inhoud uit Wikipedia.
-Dit is nog steeds een geldige licentie, maar deze licentie is lastig te begrijpen.
-Het is ook lastig inhoud te hergebruiken onder de GFDL.",
-       'config-enable-email-help' => 'Als je wilt dat e-mailen mogelijk is, dan moeten de [http://www.php.net/manual/en/mail.configuration.php e-mailinstellingen van PHP] correct zijn.
-Als je niet wilt dat e-mailen mogelijk is, dan kan je de instellingen hier uitschakelen.',
-       'config-upload-help' => "Het toestaan van het uploaden van bestanden stelt je server mogelijk bloot aan beveiligingsrisico's.
-Er is meer [//www.mediawiki.org/wiki/Manual:Security informatie over beveiliging] beschikbaar in de handleiding.
-
-Om het bestandsuploads mogelijk te maken kan je de rechten op de submap <code>images</code> onder de hoofdmap van MediaWiki aanpassen, zodat de webserver erin kan schrijven.
-Daarmee wordt deze functie ingeschakeld.",
-       'config-logo-help' => 'Het standaarduiterlijk van MediaWiki bevat ruimte voor een logo van 135x160 pixels boven het menu.
-Upload een afbeelding met de juiste afmetingen en voer de URL hier in.
-
-Als je geen logo wilt gebruiken, kan je dit veld leeg laten.', # Fuzzy
-       'config-cc-not-chosen' => 'Kies de Creative Commonslicentie die je wilt gebruiken en klik op "doorgaan".',
-       'config-memcache-needservers' => 'Je hebt Memcached geselecteerd als je cache, maar je hebt geen servers opgegeven.',
-       'config-memcache-badip' => 'Je hebt een ongeldig IP-adres ingevoerd voor Memcached: $1.',
-       'config-memcache-noport' => 'Je hebt geen poort opgegeven voor de Memcachedserver: $1.
-De standaardpoort is 11211.',
-       'config-extensions-help' => 'De bovenstaande uitbreidingen zijn aangetroffen in de map <code>./extensions</code>.
-
-Mogelijk moet je aanvullende instellingen maken, maar je kunt deze uitbreidingen nu inschakelen.',
-       'config-install-alreadydone' => "'''Waarschuwing:''' het lijkt alsof je MediaWiki al hebt geïnstalleerd en probeert het programma opnieuw te installeren.
-Ga door naar de volgende pagina.",
-       'config-install-begin' => 'Als je nu op "{{int:config-continue}}" klikt, begint de installatie van MediaWiki.
-Als je nog wijzigingen wilt maken, klik dan op "Terug".', # Fuzzy
-       'config-pg-no-plpgsql' => 'Je moet de taal PL/pgSQL installeren in de database $1',
-       'config-pg-no-create-privs' => 'De gebruiker die je hebt opgegeven door de installatie heeft niet voldoende rechten om een gebruiker aan te maken.',
-       'config-pg-not-in-role' => 'De gebruiker die je hebt opgegeven voor de webgebruiker bestaat al.
-De gebruiker die je hebt opgegeven voor installatie is geen superuser en geen lid van de rol van de webgebruiker, en kan het dus geen objecten aanmaken die van de webgebruiker zijn.
-
-MediaWiki vereist momenteel dat de tabellen van de webgebruiker zijn. Geef een andere webgebruikersnaam op, of klik op "terug" en geef een gebruiker op die voldoende installatierechten heeft.',
-       'config-install-user-missing-create' => 'De opgegeven gebruiker "$1" bestaat niet.
-Klik op "registreren" onderaan als je de gebruiker wilt aanmaken.',
-       'config-install-done' => "'''Gefeliciteerd!'''
-Je hebt MediaWiki met geïnstalleerd.
-
-Het installatieprogramma heeft het bestand <code>LocalSettings.php</code> aangemaakt.
-Dit bevat al je instellingen.
-
-Je moet het bestand downloaden en in de hoofdmap van uw wikiinstallatie plaatsten; in dezelfde map als index.php.
-De download moet je automatisch zijn aangeboden.
-
-Als de download niet is aangeboden of als je de download hebt geannuleerd, dan kan je de download opnieuw starten door op de onderstaande koppeling te klikken:
-
-$3
-
-'''Let op''': als je dit niet nu doet, dan het is bestand als u later de installatieprocedure afsluit zonder het bestand te downloaden niet meer beschikbaar.
-
-Na het plaatsen van het bestand met instellingen kan je '''[$2 je wiki betreden]'''.",
-       'mainpagedocfooter' => 'Raadpleeg de [//meta.wikimedia.org/wiki/NL_Help:Inhoudsopgave handleiding] voor informatie over het gebruik van de wikisoftware.
-
-== Meer hulp over MediaWiki ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lijst met instellingen]
-* [//www.mediawiki.org/wiki/Manual:FAQ Veelgestelde vragen (FAQ)]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglijst voor aankondigingen van nieuwe versies]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Maak MediaWiki beschikbaar in jouw taal]',
-);
-
-/** Norwegian Nynorsk (norsk nynorsk)
- * @author Harald Khan
- * @author Nghtwlkr
- */
-$messages['nn'] = array(
-       'config-your-language' => 'Språket ditt:',
-       'config-wiki-language' => 'Wikispråk:',
-       'config-back' => '← Attende',
-       'config-continue' => 'Hald fram →',
-       'config-page-language' => 'Språk',
-       'config-memory-raised' => 'PHPs <code>memory_limit</code> er $1, auka til $2.',
-       'config-memory-bad' => "'''Advarsel:''' PHPs <code>memory_limit</code> er $1.
-Dette er sannsynlegvis for lågt.
-Installasjonen kan mislukkast!",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] er innstallert',
-       'config-apc' => '[http://www.php.net/apc APC] er innstallert',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] er installert',
-       'config-db-name' => 'Databasenamn:',
-       'config-db-username' => 'Databasebrukarnamn:',
-       'config-db-password' => 'Databasepassord:',
-       'config-db-charset' => 'Databaseteiknsett',
-       '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 bakoverkompatibel UTF-8',
-       'config-mysql-old' => 'MySQL $1 eller seinare krevst, du har $2.',
-       'config-db-port' => 'Databaseport:',
-       'config-db-schema' => 'Skjema for MediaWiki',
-       'config-header-mysql' => 'MySQL-innstillingar',
-       'config-header-postgres' => 'PostgreSQL-innstillingar',
-       'config-header-sqlite' => 'SQLite-innstillingar',
-       'config-header-oracle' => 'Oracle-innstillingar',
-       'config-invalid-db-type' => 'Ugyldig databasetype',
-       'config-invalid-db-name' => 'Ugyldig databasenamn «$1».
-Berre bruk ASCII-bokstavar (a-z, A-Z), tal (0-9) og undestrekar (_).', # Fuzzy
-       'config-invalid-db-prefix' => 'Ugyldig databaseprefiks «$1».
-Berre bruk ASCII-bokstavar (a-z, A-Z), tal (0-9) og undestrekar (_).', # Fuzzy
-       'config-invalid-schema' => 'Ugyldig skjema for MediaWiki «$1».
-Berre bruk ASCII-bokstavar (a-z, A-Z), tal (0-9) og undestrekar (_).',
-       'config-postgres-old' => 'PostgreSQL $1 eller seinare krevst, du har $2.',
-       'config-email-settings' => 'E-postinnstillingar',
-       'config-logo' => 'Logo-URL:',
-       'mainpagetext' => "'''MediaWiki er no installert.'''",
-       'mainpagedocfooter' => 'Sjå [//meta.wikimedia.org/wiki/Help:Contents brukarmanualen] for informasjon om bruk og oppsettshjelp for wikiprogramvara.
-
-==Kome i gang==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Liste over oppsettsinnstillingar]
-* [//www.mediawiki.org/wiki/Manual:FAQ Spørsmål og svar om MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-postliste med informasjon om nye MediaWiki-versjonar]', # Fuzzy
-);
-
-/** Norwegian (bokmål)‬ (‪norsk (bokmål)‬) */
-$messages['no'] = array(
-       'mainpagetext' => "'''MediaWiki-programvaren er nå installert.'''",
-);
-
-/** Occitan (occitan)
- * @author Cedric31
- */
-$messages['oc'] = array(
-       'config-desc' => 'Lo programa d’installacion de MediaWiki',
-       'config-title' => 'Installacion de MediaWiki $1',
-       'config-information' => 'Informacions',
-       'config-localsettings-key' => 'Clau de mesa a jorn :',
-       'config-localsettings-badkey' => "La clau qu'avètz provesida es incorrècta",
-       'config-session-error' => "Error al moment de l'aviada de la sesilha : $1",
-       'config-your-language' => 'Vòstra lenga :',
-       'config-wiki-language' => 'Lenga del wiki :',
-       'config-back' => '← Retorn',
-       'config-continue' => 'Contunhar →',
-       'config-page-language' => 'Lenga',
-       'config-page-welcome' => 'Benvenguda sus MediaWiki !',
-       'config-page-dbconnect' => 'Se connectar a la banca de donadas',
-       'config-page-dbsettings' => 'Paramètres de la banca de donadas',
-       'config-page-name' => 'Nom',
-       'config-page-options' => 'Opcions',
-       'config-page-install' => 'Installar',
-       'config-page-complete' => 'Acabat !',
-       'config-page-restart' => 'Reaviar l’installacion',
-       'config-page-readme' => 'Legissètz-me',
-       'config-page-releasenotes' => 'Nòtas de version',
-       'config-page-copying' => 'Còpia',
-       'config-page-upgradedoc' => 'Mesa a jorn',
-       'config-page-existingwiki' => 'Wiki existent',
-       'config-restart' => 'Òc, lo reaviar',
-       'config-env-php' => 'PHP $1 es installat.',
-       'config-db-host-oracle' => 'Nom TNS de la banca de donadas :',
-       'config-db-wiki-settings' => 'Identificar aqueste wiki',
-       'config-db-name' => 'Nom de la banca de donadas :',
-       'config-db-name-oracle' => 'Esquèma de banca de donadas :',
-       'config-db-install-account' => "Compte d'utilizaire per l'installacion",
-       'config-db-username' => "Nom d'utilizaire de la banca de donadas :",
-       'config-db-password' => 'Senhal de la banca de donadas :',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binari',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 retrocompatible UTF-8',
-       'config-db-port' => 'Pòrt de la banca de donadas :',
-       'config-db-schema' => 'Esquèma per MediaWiki',
-       'config-header-mysql' => 'Paramètres de MySQL',
-       'config-header-postgres' => 'Paramètres de PostgreSQL',
-       'config-header-sqlite' => 'Paramètres de SQLite',
-       'config-header-oracle' => 'Paramètres d’Oracle',
-       'config-mysql-engine' => "Motor d'emmagazinatge :",
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-binary' => 'Binari',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'Nom del wiki :',
-       'config-ns-generic' => 'Projècte',
-       'config-ns-other-default' => 'MonWiki',
-       'config-admin-name' => 'Vòstre nom :',
-       'config-admin-password' => 'Senhal :',
-       'mainpagetext' => "'''MediaWiki es estat installat amb succès.'''",
-       'mainpagedocfooter' => "Consultatz lo [//meta.wikimedia.org/wiki/Ajuda:Contengut Guida de l'utilizaire] per mai d'entresenhas sus l'utilizacion d'aqueste logicial.
-
-== Començar amb MediaWiki ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista dels paramètres de configuracion]
-* [//www.mediawiki.org/wiki/Manual:FAQ/fr FAQ MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussions de las parucions de MediaWiki]", # Fuzzy
-);
-
-/** Oriya (ଓଡ଼ିଆ)
- * @author Jnanaranjan Sahu
- */
-$messages['or'] = array(
-       'config-back' => '← ପଛକୁ',
-       'config-continue' => 'ଚାଲୁରଖିବେ →',
-       'config-page-language' => 'ଭାଷା',
-       'config-page-welcome' => 'ମେଡିଆଉଇକିକୁ ଆପଣଙ୍କୁ ସ୍ଵାଗତ',
-       'config-page-name' => 'ନାମ',
-       'config-page-options' => 'ପସନ୍ଦସମୂହ',
-);
-
-/** Ossetic (Ирон)
- * @author Amikeco
- */
-$messages['os'] = array(
-       'config-page-language' => 'Æвзаг',
-       'mainpagetext' => "'''Вики-скрипт «MediaWiki» æнтыстджынæй æвæрд æрцыд.'''",
-);
-
-/** Punjabi (ਪੰਜਾਬੀ)
- */
-$messages['pa'] = array(
-       'mainpagetext' => "'''ਮੀਡਿਆਵਿਕਿ ਠੀਕ ਤਰ੍ਹਾਂ ਇੰਸਟਾਲ ਹੋ ਗਿਆ ਹੈ।'''",
-);
-
-/** Pampanga (Kapampangan)
- */
-$messages['pam'] = array(
-       'mainpagetext' => "'''Melaus ing pamipalyari ning MediaWiki.'''",
-       'mainpagedocfooter' => "Basan me ing [//meta.wikimedia.org/wiki/Help:Contents User's Guide] para king impormasiun keng pamangamit ning wiki software.
-
-== Pamagumpisa ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
-);
-
-/** Picard (Picard)
- */
-$messages['pcd'] = array(
-       'mainpagetext' => "'''MediaWiki o té instalé aveuc victoère.'''",
-);
-
-/** Deitsch (Deitsch)
- * @author Xqt
- */
-$messages['pdc'] = array(
-       'config-continue' => 'Weider →',
-       'config-page-language' => 'Schprooch',
-       'config-admin-password' => 'Paesswatt:',
-       'config-install-step-done' => 'geduh',
-       'config-help' => 'Hilf',
-       'mainpagedocfooter' => "Hilf fer's Yuuse unn Konfiguriere vun de Wiki-Software kansch finne im [//meta.wikimedia.org/wiki/Help:Contents Handbuch fer Yuuser].
-
-== Hilf zum Schtaerte ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lischt vun Gnepp zum Konfiguriere]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Eposchde-Lischt fer neie MediaWiki-Versione]", # Fuzzy
-);
-
-/** Polish (polski)
- * @author Beau
- * @author BeginaFelicysym
- * @author Chrumps
- * @author Holek
- * @author Matma Rex
- * @author Michał Roszka
- * @author Saper
- * @author Sp5uhe
- * @author Woytecr
- * @author 아라
- */
-$messages['pl'] = array(
-       'config-desc' => 'Instalator MediaWiki',
-       'config-title' => 'Instalacja MediaWiki $1',
-       'config-information' => 'Informacja',
-       'config-localsettings-upgrade' => 'Plik <code>LocalSettings.php</code> istnieje.
-Aby oprogramowanie zostało zaktualizowane musisz wstawić wartość <code>$wgUpgradeKey</code> w poniższe pole.
-Odnajdziesz ją w <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'Wykryto obecność pliku <code>LocalSettings.php</code>.
-Aktualizację należy wykonać poprzez uruchomienie <code>update.php</code>',
-       'config-localsettings-key' => 'Klucz aktualizacji',
-       'config-localsettings-badkey' => 'Podany klucz jest nieprawidłowy',
-       'config-upgrade-key-missing' => 'Wykryto zainstalowane wcześniej MediaWiki.
-Jeśli chcesz je zaktualizować dodaj na koniec pliku <code>LocalSettings.php</code> poniższą linię tekstu.
-
-$1',
-       'config-localsettings-incomplete' => 'Istniejący plik <code>LocalSettings.php</code> wygląda na niekompletny.
-Brak wartości zmiennej $1.
-Zmień plik <code>LocalSettings.php</code>, tak by zawierał deklarację wartości tej zmiennej, a następnie kliknij „{{int:Config-continue}}”.',
-       'config-localsettings-connection-error' => 'Wystąpił błąd podczas łączenia z bazą danych z wykorzystaniem danych z <code>LocalSettings.php</code> lub <code>AdminSettings.php</code>.
-Popraw ustawienia i spróbuj ponownie.
-
-$1',
-       'config-session-error' => 'Błąd uruchomienia sesji – $1',
-       'config-session-expired' => 'Wygląda na to, że Twoja sesja wygasła.
-Czas życia sesji został skonfigurowany na $1.
-Możesz go wydłużyć zmieniając <code>session.gc_maxlifetime</code> w pliku php.ini.
-Uruchom ponownie proces instalacji.',
-       'config-no-session' => 'Dane sesji zostały utracone.
-Sprawdź plik php.ini i upewnij się, że <code>session.save_path</code> wskazuje na odpowiedni katalog.',
-       'config-your-language' => 'Język',
-       'config-your-language-help' => 'Wybierz język używany podczas procesu instalacji.',
-       'config-wiki-language' => 'Język wiki',
-       'config-wiki-language-help' => 'Wybierz język, w którym będzie tworzona większość treści wiki',
-       'config-back' => '← Wstecz',
-       'config-continue' => 'Dalej →',
-       'config-page-language' => 'Język',
-       'config-page-welcome' => 'Witamy w MediaWiki!',
-       'config-page-dbconnect' => 'Połączenie z bazą danych',
-       'config-page-upgrade' => 'Uaktualnienie istniejącej instalacji',
-       'config-page-dbsettings' => 'Ustawienia bazy danych',
-       'config-page-name' => 'Nazwa',
-       'config-page-options' => 'Opcje',
-       'config-page-install' => 'Instaluj',
-       'config-page-complete' => 'Zakończono!',
-       'config-page-restart' => 'Rozpoczęcie instalacji od nowa',
-       'config-page-readme' => 'Podstawowe informacje',
-       'config-page-releasenotes' => 'Informacje o wersji',
-       'config-page-copying' => 'Kopiowanie',
-       'config-page-upgradedoc' => 'Uaktualnienie',
-       'config-page-existingwiki' => 'Istniejąca wiki',
-       'config-help-restart' => 'Czy chcesz usunąć wszystkie zapisane dane i uruchomić ponownie proces instalacji?',
-       'config-restart' => 'Tak, zacznij od nowa',
-       'config-welcome' => '=== Sprawdzenie środowiska instalacji ===
-Teraz zostaną wykonane podstawowe testy sprawdzające czy to środowisko jest odpowiednie dla instalacji MediaWiki.
-Jeśli potrzebujesz pomocy podczas instalacji, załącz wyniki tych testów.',
-       'config-copyright' => "=== Prawa autorskie i warunki użytkowania ===
-
-$1
-
-To oprogramowanie jest wolne; możesz je rozprowadzać dalej i modyfikować zgodnie z warunkami licencji GNU General Public License opublikowanej przez Free Software Foundation w wersji 2 tej licencji lub (według Twojego wyboru) którejś z późniejszych jej wersji.
-
-Niniejsze oprogramowanie jest rozpowszechniane w nadziei, że będzie użyteczne, ale '''bez żadnej gwarancji'''; nawet bez domniemanej gwarancji '''handlowej''' lub '''przydatności do określonego celu'''.
-Zobacz treść licencji GNU General Public License, aby uzyskać więcej szczegółów.
-
-Razem z oprogramowaniem powinieneś otrzymać <doclink href=Copying>kopię licencji GNU General Public License</doclink>. Jeśli jej nie otrzymałeś, napisz do Free Software Foundation, Inc, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. lub [http://www.gnu.org/copyleft/gpl.html przeczytaj ją online].",
-       'config-sidebar' => '* [//www.mediawiki.org Strona domowa MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents Podręcznik użytkownika]
-* [//www.mediawiki.org/wiki/Manual:Contents Podręcznik administratora]
-* [//www.mediawiki.org/wiki/Manual:FAQ Odpowiedzi na często zadawane pytania]
-----
-* <doclink href=Readme>Przeczytaj to</doclink>
-* <doclink href=ReleaseNotes>Informacje o tej wersji</doclink>
-* <doclink href=Copying>Kopiowanie</doclink>
-* <doclink href=UpgradeDoc>Aktualizacja</doclink>',
-       'config-env-good' => 'Środowisko oprogramowania zostało sprawdzone.
-Możesz teraz zainstalować MediaWiki.',
-       'config-env-bad' => 'Środowisko oprogramowania zostało sprawdzone.
-Nie możesz zainstalować MediaWiki.',
-       'config-env-php' => 'Zainstalowane jest PHP w wersji $1.',
-       'config-env-php-toolow' => 'Zainstalowane jest PHP $1.
-Jednak MediaWiki wymaga PHP $2 lub nowszego.',
-       'config-unicode-using-utf8' => 'Korzystanie z normalizacji Unicode utf8_normalize.so napisanej przez Brion Vibbera.',
-       'config-unicode-using-intl' => 'Korzystanie z [http://pecl.php.net/intl rozszerzenia intl PECL] do normalizacji Unicode.',
-       'config-unicode-pure-php-warning' => "'''Uwaga!''' [http://pecl.php.net/intl Rozszerzenie intl PECL] do obsługi normalizacji Unicode nie jest dostępne. Użyta zostanie mało wydajna zwykła implementacja w PHP.
-Jeśli prowadzisz stronę o dużym natężeniu ruchu, powinieneś zapoznać się z informacjami o [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalizacji Unicode].",
-       'config-unicode-update-warning' => "'''Uwaga''' – zainstalowana wersja normalizacji Unicode korzysta z nieaktualnej biblioteki [http://site.icu-project.org/ projektu ICU].
-Powinieneś [//www.mediawiki.org/wiki/Unicode_normalization_considerations zrobić aktualizację] jeśli chcesz korzystać w pełni z Unicode.",
-       'config-no-db' => 'Nie można odnaleźć właściwego sterownika bazy danych! Musisz zainstalować sterownik bazy danych dla PHP.
-Można użyć następujących typów baz danych: $1.
-
-Jeżeli korzystasz ze współdzielonego hostingu, zwróć się do administratora o zainstalowanie odpowiedniego sterownika bazy danych.
-Jeśli skompilowałeś PHP samodzielnie, skonfiguruj je ponownie z włączonym klientem bazy danych, na przykład za pomocą polecenia <code>./configure --with-mysql</code>.
-Jeśli zainstalowałeś PHP jako pakiet Debiana lub Ubuntu, musisz również zainstalować moduł php5-mysql.',
-       'config-outdated-sqlite' => "'''Ostrzeżenie''': masz SQLite  $1, która jest niższa od minimalnej wymaganej wersji  $2 . SQLite będzie niedostępne.",
-       'config-no-fts3' => "'''Uwaga''' – SQLite został skompilowany bez [//sqlite.org/fts3.html modułu FTS3] – funkcje wyszukiwania nie będą dostępne.",
-       'config-register-globals' => "'''Uwaga –  w konfiguracji PHP włączona jest opcja <code>[http://php.net/register_globals register_globals]</code>.'''
-'''Jeśli możesz, wyłącz ją.'''
-MediaWiki będzie działać, ale Twój serwer może być narażony potencjalnymi lukami w zabezpieczeniach.",
-       'config-magic-quotes-runtime' => "'''Błąd krytyczny – włączono [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]!'''
-Ta opcja powoduje nieprzewidywalne uszkodzenia wprowadzanych danych.
-Zainstalować lub korzystać z MediaWiki można pod warunkiem, że ta opcja jest wyłączona.",
-       'config-magic-quotes-sybase' => "'''Błąd krytyczny – włączono [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]!'''
-Ta opcja powoduje nieprzewidywalne uszkodzenia wprowadzanych danych.
-Zainstalować lub korzystać z MediaWiki można pod warunkiem, że ta opcja jest wyłączona.",
-       'config-mbstring' => "'''Błąd krytyczny – włączono [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]!'''
-Ta opcja powoduje błędy i może wywołać nieprzewidywalne uszkodzenia wprowadzanych danych.
-Zainstalować lub korzystać z MediaWiki można pod warunkiem, że ta opcja jest wyłączona.",
-       'config-ze1' => "'''Błąd krytyczny – włączono [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]!'''
-Ta opcja powoduje okropne błędy podczas korzystania z MediaWiki.
-Zainstalować lub korzystać z MediaWiki można wyłącznie wtedy, gdy ta opcja jest wyłączona.",
-       'config-safe-mode' => "'''Ostrzeżenie''' – uaktywniono [http://www.php.net/features.safe-mode tryb awaryjny] PHP.
-Opcja ta może powodować problemy, szczególnie w przypadku korzystania z przesyłania plików i używania znacznika <code>math</code>.",
-       'config-xml-bad' => 'Brak modułu XML dla PHP.
-MediaWiki wymaga funkcji z tego modułu i nie może działać w tej konfiguracji.
-Jeśli korzystasz z Mandrake, zainstaluj pakiet php-xml.',
-       'config-pcre' => 'Wygląda na to, że brak modułu PCRE.
-MediaWiki do pracy wymaga funkcji obsługi wyrażeń regularnych kompatybilnej z Perlem.',
-       'config-pcre-no-utf8' => "'''Błąd krytyczny''' – wydaje się, że moduł PCRE w PHP został skompilowany bez wsparcia dla UTF‐8.
-MediaWiki wymaga wsparcia dla UTF‐8 do prawidłowego działania.",
-       'config-memory-raised' => 'PHP <code>memory_limit</code> było ustawione na $1, zostanie zwiększone do $2.',
-       'config-memory-bad' => "'''Uwaga:''' PHP <code>memory_limit</code> jest ustawione na $1.
-To jest prawdopodobnie zbyt mało.
-Instalacja może się nie udać!",
-       'config-ctype' => "''' Krytyczny ''': PHP musi być skompilowany z obsługą [http://www.php.net/manual/en/ctype.installation.php rozszerzenia Ctype].",
-       'config-xcache' => '[Http://trac.lighttpd.net/xcache/ XCache] jest zainstalowany',
-       'config-apc' => '[Http://www.php.net/apc APC] jest zainstalowany',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] jest zainstalowany',
-       'config-no-cache' => "'''Uwaga:''' Pamięć podręczna dla kodu MediaWiki nie będzie uruchomiona., gdyż nie ma żadnego z następujących narzędzi: [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] lub [http://www.iis.net/download/WinCacheForPhp WinCache].",
-       '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 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.",
-       'config-no-cli-uri' => "''' Ostrzeżenie ''': nie wskazano --scriptpath,  użycie wartości domyślnej: <code>$1</code> .",
-       'config-using-server' => '„<nowiki>$1</nowiki>“ jest adresem serwera, na którym instalowana jest wiki.',
-       'config-using-uri' => 'Wiki będzie zainstalowana pod adresem "<nowiki>$1$2</nowiki>".',
-       'config-uploads-not-safe' => "'''Uwaga''' – domyślny katalog do którego zapisywane są przesyłane pliki <code>$1</code> jest podatny na wykonanie dowolnego skryptu.
-Chociaż MediaWiki sprawdza wszystkie przesłane pliki pod kątem bezpieczeństwa, zaleca się jednak, aby [//www.mediawiki.org/wiki/Manual:Security#Upload_security zamknąć tę lukę w zabezpieczeniach] przed włączeniem przesyłania plików.",
-       'config-no-cli-uploads-check' => "'''Ostrzeżenie:''' Katalog domyślny przesyłanych plików ( <code>$1</code> ) nie jest sprawdzona względem luki
- wykonania dowolnego skryptu podczas instalacji CLI w zabezpieczeniach.",
-       'config-brokenlibxml' => 'Twój system jest kombinacją wersji PHP i libxml2, które zawierają błędy mogące powodować ukryte uszkodzenia danych w MediaWiki i innych aplikacjach sieci web.
-Wykonaj aktualizację PHP do wersji 5.2.9 lub późniejszej oraz libxml2 do wersji 2.7.3 lub późniejszej ([//bugs.php.net/bug.php?id=45996 błąd w PHP]).
-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 <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.
-
-Jeśli korzystasz ze współdzielonego hostingu, operator serwera powinien podać Ci prawidłową nazwę serwera w swojej dokumentacji.
-
-Jeśli instalujesz oprogramowanie na serwerze Windowsowym i korzystasz z MySQL, użycie „localhost” może nie zadziałać jako nazwa hosta. Jeśli wystąpi ten problem użyj „127.0.0.1” jako lokalnego adresu IP.
-
-Jeżeli korzystasz z PostgreSQL, pozostaw to pole puste, aby połączyć się poprzez gniazdo Unix‐a.',
-       'config-db-host-oracle' => 'Nazwa instancji bazy danych (TNS):',
-       'config-db-host-oracle-help' => 'Wprowadź prawidłową [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm nazwę połączenia lokalnego]. Plik „tnsnames.ora” musi być widoczny dla instalatora.<br />Jeśli używasz biblioteki klienckiej 10g lub nowszej możesz również skorzystać z metody nazw [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm łatwego łączenia].',
-       'config-db-wiki-settings' => 'Zidentyfikuj tę wiki',
-       'config-db-name' => 'Nazwa bazy danych',
-       'config-db-name-help' => 'Wybierz nazwę, która zidentyfikuje Twoją wiki.
-Nie może ona zawierać spacji.
-
-Jeśli korzystasz ze współdzielonego hostingu, dostawca usługi hostingowej może wymagać użycia konkretnej nazwy bazy danych lub pozwalać na tworzenie baz danych za pośrednictwem panelu użytkownika.',
-       'config-db-name-oracle' => 'Nazwa schematu bazy danych:',
-       'config-db-account-oracle-warn' => 'Bazę danych Oracle można przygotować do pracy z MediaWiki na trzy sposoby:
-
-Możesz utworzyć konto użytkownika bazy danych podczas instalacji MediaWiki. Wówczas należy podać nazwę i hasło użytkownika z rolą SYSDBA w celu użycia go przez instalator do utworzenia nowe konta użytkownika, z którego korzystać będzie MediaWiki.
-
-Możesz również skorzystać z konta użytkownika bazy danych utworzonego bezpośrednio w Oracle i wówczas wystarczy podać tylko nazwę i hasło tego użytkownika. Konto z rolą SYSDBA nie będzie potrzebne, jednak konto użytkownika powinno mieć uprawnienia do utworzenia obiektów w schemacie bazy danych. Możesz też podać dwa konta - konto dla instalatora, z pomocą którego zostaną obiekty w schemacie bazy danych i drugie konto, z którego będzie MediaWiki korzystać będzie do pracy.
-
-W podkatalogu "maintenance/oracle" znajduje się skrypt do tworzenia konta użytkownika. Korzystanie z konta użytkownika z ograniczonymi uprawnieniami spowoduje wyłączenie funkcji związanych z aktualizacją oprogramowania MediaWiki.',
-       'config-db-install-account' => 'Konto użytkownika dla instalatora',
-       'config-db-username' => 'Nazwa użytkownika bazy danych',
-       'config-db-password' => 'Hasło bazy danych',
-       'config-db-password-empty' => 'Wprowadź hasło dla nowego użytkownika bazy danych: $1.
-Choć istnieje możliwość tworzenia użytkowników bez hasła, nie jest to bezpieczne.',
-       'config-db-install-username' => 'Wprowadź nazwę użytkownika, który będzie używany do łączenia się z bazą danych podczas procesu instalacji.
-Nie jest to nazwa konta MediaWiki, a użytkownika bazy danych.',
-       'config-db-install-password' => 'Wprowadź hasło, które będzie wykorzystywane do łączenia się z bazą danych w procesie instalacji.
-To nie jest hasło konta MediaWiki, lecz hasło do bazy danych.',
-       'config-db-install-help' => 'Podaj nazwę użytkownika i jego hasło, które zostaną użyte do połączenia z bazą danych w czasie procesu instalacji.',
-       'config-db-account-lock' => 'Użyj tej samej nazwy użytkownika i hasła w czasie normalnej pracy.',
-       'config-db-wiki-account' => 'Konto użytkownika do normalnej pracy',
-       'config-db-wiki-help' => 'Wprowadź nazwę użytkownika i hasło, które będą używane do połączenia z bazą danych podczas normalnej pracy wiki.
-Jeśli konto nie istnieje, a konto instalacji ma wystarczające uprawnienia, to zostanie utworzone konto użytkownika z minimalnymi uprawnieniami wymaganymi do działania wiki.',
-       'config-db-prefix' => 'Przedrostek tabel bazy danych',
-       'config-db-prefix-help' => 'Jeśli zachodzi potrzeba współdzielenia jednej bazy danych między wieloma wiki, lub między MediaWiki i inną aplikacją sieciową, można dodać przedrostek do wszystkich nazw tabel w celu uniknięcia konfliktów.
-Nie należy używać spacji.
-
-To pole zwykle pozostawiane jest puste.',
-       'config-db-charset' => 'Zestaw znaków bazy danych',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binarny',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 kompatybilny wstecz UTF-8',
-       'config-charset-help' => "'''Ostrzeżenie:''' W przypadku użycia opcji '''UTF-8 zgodnego ze starszymi wersjami''' podczas korzystania z wersji MySQL nowszych niż 4.1 kopie zapasowe wykonane przy użyciu programu <code>mysqldump</code> będą bezużyteczne - wszystkie znaki inne niż ASCII zostaną zapisane nieprawidłowo.
-
-W '''trybie binarnym''', MediaWiki zapisuje tekst UTF-8 do bazy danych w polach binarnych.
-To jest bardziej wydajne niż tryb UTF-8 w MySQL i pozwala na używanie pełnego zakresu znaków Unicode.
-W ''' trybie UTF-8''', MySQL będzie wiedzieć, w jakim zestawie znaków są dane i umożliwia ich prezentowanie i odpowiednią konwersję, ale nie pozwoli Ci przechowywać znaków spoza [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes podstawowej płaszczyzny wielojęzyczności].",
-       'config-mysql-old' => 'Wymagany jest MySQL $1 lub nowszy; korzystasz z $2.',
-       'config-db-port' => 'Numer portu TCP dla połączeń do bazy danych',
-       'config-db-schema' => 'Nazwa schematu bazy danych, z którego ma korzystać MediaWiki',
-       'config-db-schema-help' => 'Zaproponowana nazwa schematu jest odpowiednia dla większości sytuacji i przeważnie nie trzeba jej zmieniać.',
-       'config-pg-test-error' => "Nie można połączyć się z bazą danych''' $1 ''': $2",
-       'config-sqlite-dir' => 'Katalog danych SQLite',
-       'config-sqlite-dir-help' => "SQLite przechowuje wszystkie dane w pojedynczym pliku.
-
-Wskazany katalog musi być dostępny do zapisu przez webserver podczas instalacji.
-
-Powinien '''nie''' być dostępny za z sieci web, dlatego nie umieszczamy ich tam, gdzie znajdują się pliki PHP.
-
-Instalator zapisze plik <code>.htaccess</code> obokniego, ale jeśli to zawiedzie, ktoś może uzyskać dostęp do nieprzetworzonej bazy danych.
-Zawiera ona nieopracowane dane użytkownika (adresy e-mail, zahaszowane hasła) jak również usunięte wersje oraz inne dane o ograniczonym dostępie na wiki.
-
-Warto rozważyć umieszczenie w bazie danych zupełnie gdzie indziej, na przykład w <code>/var/lib/mediawiki/yourwiki</code> .",
-       'config-oracle-def-ts' => 'Domyślna przestrzeń tabel',
-       'config-oracle-temp-ts' => 'Przestrzeń tabel tymczasowych',
-       'config-support-info' => 'MediaWiki może współpracować z następującymi systemami baz danych:
-
-$1
-
-Poniżej wyświetlone są systemy baz danych gotowe do użycia. Jeżeli poniżej brakuje bazy danych, z której chcesz skorzystać, oznacza to, że brakuje odpowiedniego oprogramowania lub zostało ono niepoprawnie skonfigurowane. Powyżej znajdziesz odnośniki do dokumentacji, która pomoże w konfiguracji odpowiednich komponentów.',
-       'config-support-mysql' => '* $1 jest bazą danych, na której rozwijane jest oprogramowanie MediaWiki. Ewentualne błędy w współpracy z bazą danych są odnajdowane i naprawiane dość szybko. ([http://www.php.net/manual/en/mysql.installation.php zobacz, jak skompilować PHP ze wsparciem dla MySQL])',
-       'config-support-postgres' => '* $1 jest popularnym systemem baz danych, często stosowanym zamiast MySQL  ([http://www.php.net/manual/en/pgsql.installation.php Zobacz, jak skompilować PHP ze wsparciem dla PostgreSQL]). Z powodu możliwości wystąpienia drobnych błędów, nie jest zalecana do wymagających wdrożeń.',
-       'config-support-sqlite' => '* $1 jest niewielkim systemem bazy danych, z którym MediaWiki bardzo dobrze współpracuje. ([http://www.php.net/manual/en/pdo.installation.php Jak skompilować PHP ze wsparciem dla SQLite], korzystając z PDO)',
-       'config-support-oracle' => '* $1 jest komercyjną profesjonalną bazą danych. ([http://www.php.net/manual/en/oci8.installation.php Jak skompilować PHP ze wsparciem dla OCI8])',
-       'config-header-mysql' => 'Ustawienia MySQL',
-       'config-header-postgres' => 'Ustawienia PostgreSQL',
-       'config-header-sqlite' => 'Ustawienia SQLite',
-       'config-header-oracle' => 'Ustawienia Oracle',
-       'config-invalid-db-type' => 'Nieprawidłowy typ bazy danych',
-       'config-missing-db-name' => 'Należy wpisać wartość w polu „Nazwa bazy danych”',
-       '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”.
-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”.
-Używaj wyłącznie liter ASCII (a-z, A-Z), cyfr (0-9), podkreślenia (_) lub znaku odejmowania (-).',
-       'config-connection-error' => '$1.
-
-Sprawdź adres serwera, nazwę użytkownika i hasło, a następnie spróbuj ponownie.',
-       'config-invalid-schema' => 'Nieprawidłowa nazwa schematu dla MediaWiki „$1”.
-Nazwa może zawierać wyłącznie liter ASCII (a-z, A-Z), cyfr (0-9) i podkreślenia (_).',
-       'config-db-sys-create-oracle' => 'Instalator może wykorzystać wyłącznie konto SYSDBA do tworzenia nowych kont użytkowników.',
-       'config-db-sys-user-exists-oracle' => 'Konto użytkownika „$1“ już istnieje. SYSDBA można użyć tylko do utworzenia nowego konta!',
-       'config-postgres-old' => 'Korzystasz z wersji $2 oprogramowania PostgreSQL, a potrzebna jest wersja co najmniej $1.',
-       'config-sqlite-name-help' => 'Wybierz nazwę, która będzie identyfikować Twoją wiki.
-Nie wolno używać spacji ani myślników.
-Zostanie ona użyta jako nazwa pliku danych SQLite.',
-       'config-sqlite-parent-unwritable-group' => 'Nie można utworzyć katalogu danych <code><nowiki>$1</nowiki></code> , ponieważ katalog nadrzędny <code><nowiki>$2</nowiki></code> nie jest dostępny do zapisu przez webserwer.
-
-Instalator nie może określić, jako kttóry użytkownik działa webserwer.
-Zezwól by katalog <code><nowiki>$3</nowiki></code> był dostępny do zapisu przez niego, aby przejść dalej.
-W systemie Unix/Linux wykonaj:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Nie można utworzyć katalogu danych <code><nowiki>$1</nowiki></code> , ponieważ katalog nadrzędny <code><nowiki>$2</nowiki></code> nie jest dostępny do zapisu przez webserwer.
-
-Instalator nie może określić, jako kttóry użytkownik działa webserwer.
-Zezwól by katalog <code><nowiki>$3</nowiki></code> był globalnie modyfikowalny przez niego (i innych!) aby przejść dalej.
-W systemie Unix/Linux wykonaj:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Błąd podczas tworzenia katalogu dla danych „$1”.
-Sprawdź lokalizację i spróbuj ponownie.',
-       'config-sqlite-dir-unwritable' => 'Nie można zapisać do katalogu „$1”.
-Zmień uprawnienia dostępu do katalogu tak, aby serwer WWW mógł pisać do niego, a następnie spróbuj ponownie.',
-       'config-sqlite-connection-error' => '$1.
-
-Sprawdź katalog danych oraz nazwę bazy danych, a następnie spróbuj ponownie.',
-       'config-sqlite-readonly' => 'Plik <code>$1</code> nie jest zapisywalny.',
-       'config-sqlite-cant-create-db' => 'Nie można utworzyć pliku bazy danych <code>$1</code>.',
-       'config-sqlite-fts3-downgrade' => 'Brak wsparcia FTS3 dla PHP. Tabele zostały cofnięte',
-       'config-can-upgrade' => "W bazie danych są już tabele MediaWiki.
-Aby uaktualnić je do MediaWiki $1, kliknij '''Dalej'''.",
-       'config-upgrade-done' => "Uaktualnienie kompletne.
-
-Można teraz [ $1  rozpocząć korzystanie z wiki].
-
-Jeśli chcesz ponownie wygenerować plik <code>LocalSettings.php</code>, kliknij przycisk poniżej.
-Jest to '''nie zalecane''', chyba że występują problemy z twoją wiki.",
-       'config-upgrade-done-no-regenerate' => 'Aktualizacja zakończona.
-
-Możesz wreszcie [$1 zacząć korzystać ze swojej wiki].',
-       'config-regenerate' => 'Ponowne generowanie LocalSettings.php →',
-       'config-show-table-status' => 'Zapytanie „<code>SHOW TABLE STATUS</code>” nie powiodło się!',
-       'config-unknown-collation' => "'''Uwaga''' – bazy danych używa nierozpoznanej metody porównywania.",
-       'config-db-web-account' => 'Konto bazy danych dla dostępu przez WWW',
-       'config-db-web-help' => 'Wybierz nazwę użytkownika i hasło, z których korzystać będzie serwer WWW do łączenia się z serwerem baz danych, podczas zwykłej pracy z wiki.',
-       'config-db-web-account-same' => 'Użyj tego samego konta, co dla instalacji',
-       'config-db-web-create' => 'Utwórz konto, jeśli jeszcze nie istnieje',
-       'config-db-web-no-create-privs' => 'Konto podane do wykonania instalacji nie ma wystarczających uprawnień, aby utworzyć nowe konto.
-Konto, które wskazałeś tutaj musi już istnieć.',
-       'config-mysql-engine' => 'Silnik przechowywania',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''Ostrzeżenie''': wybrano MyISIAM jako silnik  składowania danych MySQL, co nie jest zalecane do użytku w MediaWiki, ponieważ:
- * ledwo obsługuje współbieżnośći ze względu na blokowanie tabel
- * jest bardziej podatna na uszkodzenie niż inne silniki
- * kod źródłowy MediaWiki nie zawsze obsługuje MyISAM tak, jak powinien
-
-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.
-Bazy danych MyISAM mają tendencję do ulegania uszkodzeniom częściej niż bazy InnoDB.",
-       'config-mysql-charset' => 'Zestaw znaków bazy danych',
-       'config-mysql-binary' => 'binarny',
-       'config-mysql-utf8' => 'UTF‐8',
-       'config-mysql-charset-help' => "W '''trybie binarnym''', MediaWiki zapisuje tekst UTF-8 do bazy danych w polach binarnych.
-Jest on bardziej wydajny niż tryb UTF-8 w MySQL i pozwala na używanie znaków pełnego zakresu Unicode.
-
-W '''trybie UTF-8''', MySQL będzie znać zestaw znaków w jakim zakodowano dane, można też przedstawić i przekonwertuj je odpowiednio, ale nie pozwoli Ci przechowywać znaków spoza [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes podstawowej płaszczyzny wielojęzyczności].",
-       'config-site-name' => 'Nazwa wiki',
-       'config-site-name-help' => 'Ten napis pojawi się w pasku tytułowym przeglądarki oraz w różnych innych miejscach.',
-       'config-site-name-blank' => 'Wprowadź nazwę witryny.',
-       'config-project-namespace' => 'Przestrzeń nazw projektu',
-       'config-ns-generic' => 'Projekt',
-       'config-ns-site-name' => 'Taka sama jak nazwa wiki $1',
-       'config-ns-other' => 'Inna (należy określić)',
-       'config-ns-other-default' => 'MojaWiki',
-       'config-project-namespace-help' => 'Według przykładu Wikipedii wiele wiki przechowuje swoje strony zasad oddzielnie od stron z zawartością, w "\'\'\'przestrzeni nazw projektu\'\'\'".
-Wszystkie tytuły stron w tej przestrzeni nazw zaczynają się od pewnego przedrostka, który można tutaj określić.
-Tradycyjnie ten przedrostek wywodzi się od nazwy wiki, ale nie może zawierać pewnych znaków przestankowych takich jak "#" lub ":".',
-       'config-ns-invalid' => 'Podana przestrzeń nazw „<nowiki>$1</nowiki>” jest nieprawidłowa.
-Podaj inną przestrzeń nazw projektu.',
-       'config-ns-conflict' => 'Określona przestrzeń nazw "<nowiki>$1</nowiki>" powoduje konflikt z domyślną przestrzenią nazw MediaWiki.
-Wskaż inną przestrzeń nazw projektu.',
-       'config-admin-box' => 'Konto administratora',
-       'config-admin-name' => 'Administrator',
-       'config-admin-password' => 'Hasło',
-       'config-admin-password-confirm' => 'Hasło powtórnie',
-       'config-admin-help' => 'Wprowadź preferowaną nazwę użytkownika, na przykład „Jan Kowalski”.
-Tej nazwy będziesz używać do logowania się do wiki.',
-       'config-admin-name-blank' => 'Wpisz nazwę użytkownika, który będzie administratorem.',
-       'config-admin-name-invalid' => 'Podana nazwa użytkownika „<nowiki>$1</nowiki>” jest nieprawidłowa.
-Podaj inną nazwę.',
-       'config-admin-password-blank' => 'Wprowadź hasło dla konta administratora.',
-       'config-admin-password-same' => 'Hasło nie może być takie samo jak nazwa użytkownika.',
-       'config-admin-password-mismatch' => 'Wprowadzone dwa hasła różnią się między sobą.',
-       'config-admin-email' => 'Adres e‐mail',
-       'config-admin-email-help' => 'Wpisz adres e‐mail, aby mieć możliwość odbierania e‐maili od innych użytkowników wiki, zresetowania hasła oraz otrzymywania powiadomień o zmianach na stronach z listy obserwowanych. Możesz pozostawić to pole niewypełnione.',
-       '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ł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.
-Proszę podać adres e-mail, jeśli chcesz subskrybować listę wysyłkową.',
-       'config-almost-done' => 'To już prawie koniec!
-Możesz pominąć pozostałe czynności konfiguracyjne i zainstalować wiki.',
-       'config-optional-continue' => 'Zadaj mi więcej pytań.',
-       'config-optional-skip' => 'Jestem już znudzony, po prostu zainstaluj wiki.',
-       'config-profile' => 'Profil uprawnień użytkowników',
-       'config-profile-wiki' => 'Otwarte wiki',
-       'config-profile-no-anon' => 'Wymagane utworzenie konta',
-       '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, 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ż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-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 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].",
-       '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',
-       'config-license-cc-by' => 'Creative Commons – za podaniem autora',
-       'config-license-cc-by-nc-sa' => 'Creative Commons – za uznaniem autora, bez użycia komercyjnego, na tych samych zasadach',
-       'config-license-cc-0' => 'Creative Commons – zero (domena publiczna)',
-       'config-license-gfdl' => 'GNU licencja wolnej dokumentacji 1.3 lub nowsza',
-       'config-license-pd' => 'Domena publiczna',
-       'config-license-cc-choose' => 'Wybierz własną licencję Creative Commons',
-       'config-license-help' => "Wiele publicznych wiki umieszcza wszystkie dopisane treści na [http://freedomdefined.org/Definition wolnej licencji].
-To pomaga tworzyć poczucie wspólnoty i zachęca do długoterminowego wkładu.
-Nie jest to zazwyczaj konieczne w prywatnych lub firmowych wiki.
-
-Jeśli chcesz móc użyć tekstu z Wikipedii i chcesz Wikipedia mogła zaakceptować tekst skopiowany z twojej wiki, należy wybrać '''Creative Commons Attribution Share Alike'''.
-
-Wikipedia używała poprzednio GNU Free Documentation License.
-GFDL jest poprawną licencję, ale trudno ją zrozumieć.
-Trudno także ponowne użyć zawartości na licencji GFDL.",
-       'config-email-settings' => 'Ustawienia e-maili',
-       'config-enable-email' => 'Włącz wychodzące wiadomości e–mail',
-       'config-enable-email-help' => 'Jeśli chcesz, aby działał e-mail, [http://www.php.net/manual/en/mail.configuration.php Ustawienia poczty PHP] muszą być poprawnie wprowadzone.
-Jeśli nie chcesz jakichś funkcji poczty e-mail, można je wyłączyć tutaj.',
-       'config-email-user' => 'Włącz możliwość przesyłania e‐maili pomiędzy użytkownikami',
-       'config-email-user-help' => 'Zezwalaj użytkownikom na wysyłanie wzajemnie e‐maili, jeśli będą mieć włączoną tę funkcję w swoich preferencjach.',
-       'config-email-usertalk' => 'Włącz powiadamianie o zmianach na stronie dyskusji użytkownika',
-       'config-email-usertalk-help' => 'Pozwól użytkownikom otrzymywać powiadomienia o zmianach na stronie dyskusji użytkownika, jeśli będą mieć włączoną tę funkcję w swoich preferencjach.',
-       'config-email-watchlist' => 'Włącz powiadomienie o zmianach stron obserwowanych',
-       'config-email-watchlist-help' => 'Pozwól użytkownikom otrzymywać powiadomienia o zmianach na stronach obserwowanych, jeśli będą mieć włączoną tę funkcję w swoich preferencjach.',
-       'config-email-auth' => 'Włącz uwierzytelnianie e‐mailem',
-       'config-email-auth-help' => "Jeśli ta opcja jest włączona, użytkownicy będą musieli potwierdzić swoje adresy e-mail przy użyciu wysłanego do nich łącza, gdy będą je ustawiać lub zmieniać.
-Tylko uwierzytelnione adresy e-mail mogą otrzymywać wiadomości od innych użytkowników lub mailowe powiadomienia o zmianach.
-Ustawienie tej opcji jest'''zalecane''' na publicznych wiki ze względu na potencjalne nadużycia funkcji poczty e-mail.",
-       'config-email-sender' => 'Zwrotny adres e‐mail',
-       'config-email-sender-help' => 'Wprowadź adres e-mail używany jako adres zwrotny wiadomości wychodzących.
-To tam będą wysyłane szturchnięcia.
-Wiele serwerów poczty wymaga, by co najmniej część nazwy domeny była prawidłowa.',
-       'config-upload-settings' => 'Przesyłanie obrazków i plików',
-       'config-upload-enable' => 'Włącz przesyłanie plików na serwer',
-       'config-upload-help' => 'Przesyłanie plików potencjalnie wystawia serwer na zagrożenia.
-Więcej informacji na ten temat można znaleźć w [//www.mediawiki.org/wiki/Manual:Security sekcji zabezpieczeń] podręcznika.
-
-Aby włączyć przesyłanie plików, zmień właściwości podkatalogu <code>images</code> katalogu głównego MediaWiki tak, aby serwer sieci web mógł zapisywać do niego.
-Następnie włącz tę opcję.',
-       'config-upload-deleted' => 'Katalog dla usuniętych plików',
-       'config-upload-deleted-help' => 'Wybierz katalog, w którym będzie archiwum usuniętych plików.
-Najlepiej, aby nie był on dostępny z internetu.',
-       'config-logo' => 'Adres URL logo',
-       '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.
-
-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.
-
-Aby uzyskać więcej informacji na temat tej funkcji, w tym instrukcje dotyczące sposobu ustawiania go na wiki innych niż Wikimedia Commons, sprawdź w [//mediawiki.org/wiki/Manual:$wgForeignFileRepos podręczniku].',
-       'config-cc-error' => 'Wybieranie licencji Creative Commons nie dało wyniku.
-Wpisz nazwę licencji ręcznie.',
-       'config-cc-again' => 'Wybierz jeszcze raz...',
-       'config-cc-not-chosen' => 'Wybierz którą chcesz licencję Creative Commons i kliknij „Dalej”.',
-       'config-advanced-settings' => 'Konfiguracja zaawansowana',
-       'config-cache-options' => 'Ustawienia buforowania obiektów',
-       'config-cache-help' => 'Buforowanie obiekto jest używane aby przyspieszyć MediaWiki przez trzymanie w pamięci podręcznej często używanych danych.
-Średnie oraz duże witryny są wysoce zachęcane by je włączyć, a małe witryny także dostrzegą korzyści.',
-       'config-cache-none' => 'Brak buforowania (wszystkie funkcje będą działać, ale mogą wystąpić kłopoty z wydajnością na dużych witrynach wiki)',
-       'config-cache-accel' => 'Buforowania obiektów PHP (APC, XCache lub WinCache)',
-       'config-cache-memcached' => 'Użyj Memcached (wymaga dodatkowej instalacji i konfiguracji)',
-       'config-memcached-servers' => 'Serwery Memcached:',
-       'config-memcached-help' => 'Lista adresów IP do wykorzystania przez Memcached.
-Adresy powinny być umieszczane po jednym w linii i określać również wykorzystywany port. Na przykład:
- 127.0.0.1:11211
- 192.168.1.25:1234',
-       'config-memcache-needservers' => 'Został wybrany Memcached jako typ pamięci podręcznej, ale nie określono żadnych serwerów.',
-       'config-memcache-badip' => 'Wprowadzono nieprawidłowy adres IP dla Memcached:  $1.',
-       'config-memcache-noport' => 'Nie określono portu dla serwera Memcached:  $1.
-Jeśli nie znasz numeru portu, wartością domyślną jest 11211.',
-       'config-memcache-badport' => 'Numery portu Memcached powinny zawierać się pomiędzy $1 i $2.',
-       'config-extensions' => 'Rozszerzenia',
-       'config-extensions-help' => 'Rozszerzenia wyżej wymienione zostały wykryte w katalogu <code>./extensions</code>.
-
-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ę 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',
-       'config-install-database' => 'Konfigurowanie bazy danych',
-       'config-install-schema' => 'Tworzenie schematu',
-       'config-install-pg-schema-not-exist' => 'Schemat PostgreSQL nie istnieje.',
-       'config-install-pg-schema-failed' => 'Utworzenie tabel nie powiodło się.
-Upewnij się, że użytkownik „$1” może zapisywać do schematu „$2”.',
-       'config-install-pg-commit' => 'Zatwierdzanie zmian',
-       'config-install-pg-plpgsql' => 'Sprawdzanie języka PL/pgSQL',
-       'config-pg-no-plpgsql' => 'Musisz zainstalować język PL/pgSQL w bazie danych $1',
-       'config-pg-no-create-privs' => 'Konto, które zostało określone dla instalacji nie ma wystarczających uprawnień, aby utworzyć konto.',
-       'config-pg-not-in-role' => 'Konto określone dla użytkownika sieci już istnieje.
-Konto określone dla instalacji nie ma uprawnień administratora ani nie jest przynależy do roli użytkownika sieci web, więc nie można utworzyć obiektów stanowiących własność użytkownika sieci.
-
-MediaWiki wymaga obecnie, by tabele były własnością konta zwykłego użytkownika. Podaj inną nazwę konta użytkownika, lub kliknij przycisk "Wstecz" i podaj nazwę konta użytkownika instalatora, które posiada odpowiednie uprawnienia.',
-       'config-install-user' => 'Tworzenie użytkownika bazy danych',
-       'config-install-user-alreadyexists' => 'Konto użytkownika „$1“ już istnieje',
-       'config-install-user-create-failed' => 'Tworzenie użytkownika "$1" nie powiodło się: $2',
-       'config-install-user-grant-failed' => 'Przyznanie uprawnień użytkownikowi „$1” nie powiodło się – $2',
-       'config-install-user-missing' => 'Nie istnieje konto użytkownika „$1“.',
-       'config-install-user-missing-create' => 'Określony użytkownik "$1" nie istnieje.
-Kliknij poniższe pole wyboru „utwórz konto" jeśli chcesz go utworzyć.',
-       'config-install-tables' => 'Tworzenie tabel',
-       'config-install-tables-exist' => "'''Uwaga''' – wygląda na to, że tabele MediaWiki już istnieją.
-Pomijam tworzenie tabel.",
-       'config-install-tables-failed' => "'''Błąd''' – tworzenie tabeli nie powiodło się z powodu błędu – $1",
-       'config-install-interwiki' => 'Wypełnianie tabeli domyślnymi interwiki',
-       'config-install-interwiki-list' => 'Nie można odnaleźć pliku <code>interwiki.list</code>.',
-       'config-install-interwiki-exists' => "'''Uwaga''' – wygląda na to, że tabela interwiki ma już jakieś wpisy.
-Tworzenie domyślnej listy pominięto.",
-       'config-install-stats' => 'Inicjowanie statystyki',
-       'config-install-keys' => 'Generowanie tajnych kluczy',
-       'config-insecure-keys' => "'''Ostrzeżenie:''' {{PLURAL:$2|Klucz bezpieczeństwa|Klucze bezpieczeństwa|Klucze bezpieczeństwa}} ($1) utworzone podczas instalacji {{PLURAL:$2|utworzony podczas instalacji nie jest|utworzone podczas instalacji nie są|utworzone podczas instalacji nie są}} w pełni bezpieczne. Być może warto wygenerować {{PLURAL:$2|własny klucz|własne klucze|własne klucze}}.",
-       'config-install-sysop' => 'Tworzenie konta administratora',
-       'config-install-subscribe-fail' => 'Nie można zapisać na listę „mediawiki-announce“ – $1',
-       'config-install-subscribe-notpossible' => 'cURL nie jest zainstalowany, więc allow_url_fopen nie jest dostępne.',
-       'config-install-mainpage' => 'Tworzenie strony głównej z domyślną zawartością',
-       '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.
-
-Instalator wygenerował plik konfiguracyjny <code>LocalSettings.php</code>.
-
-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 je anulował, można ponownie uruchomić pobranie klikając poniższe łącze:
-
-$3
-
-'''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]'''.",
-       '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/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)
- * @author Borichèt
- * @author Dragonòt
- * @author Krinkle
- * @author 아라
- */
-$messages['pms'] = array(
-       'config-desc' => "L'instalador për mediaWiki",
-       'config-title' => 'Anstalassion ëd MediaWiki $1',
-       'config-information' => 'Anformassion',
-       'config-localsettings-upgrade' => "A l'é stàit trovà n'archivi <code>LocalSettings.php</code>.
-Për agiorné cost'anstalassion, ch'a anserissa ël valor ëd <code>\$wgUpgradeKey</code> ant la casela sì-sota.
-A la trovrà an LocalSetting.php.",
-       'config-localsettings-cli-upgrade' => "N'archivi <code>LocalSettings.php</code> a l'é stàit trovà.
-Për agiorné sta instalassion, për piasì fà anvece giré <code>update.php</code>",
-       'config-localsettings-key' => "Ciav d'agiornament:",
-       'config-localsettings-badkey' => "La ciav ch'it l'has dàit a l'é pa giusta.",
-       'config-upgrade-key-missing' => "A l'é stàita trovà n'istalassion esistenta ëd MediaWiki.
-Për agiorné soa istalassion, për piasì ch'a buta la linia sì-sota al fond ëd sò <code>LocalSettings.php</code>:
-
-$1",
-       'config-localsettings-incomplete' => "L'esistent <code>LocalSettings.php</code> a smija esse ancomplet.
-La variàbil $1 a l'é nen ampostà.
-Për piasì, ch'a modìfica <code>LocalSettings.php</code> ëd fasson che costa variàbil a sia ampostà, e ch'a sgnaca «{{int:Config-continue}}».",
-       'config-localsettings-connection-error' => "A l'é ancapitaje n'eror an colegand-se a la base ëd dàit an dovrand j'ampostassion specificà an <code>LocalSettings.php</code> o <code>AdminSettings.php</code>. Për piasì, ch'a coregia cost'ampostassion e ch'a preuva torna.
-
-$1",
-       'config-session-error' => 'Eror an fasend parte la session: $1',
-       'config-session-expired' => "Ij sò dat ëd session a smijo scadù.
-Le session a son configurà për na durà ëd $1.
-A peul aumenté sòn an ampostand <code>session.gc_maxlifetime</code> an php.ini.
-Ch'a anandia torna ël process d'instalassion.",
-       'config-no-session' => "Ij sò dat ëd session a son përdù!
-Ch'a contròla sò php.ini e ch'as sigura che <code>session.save_path</code> a sia ampostà ant ël dossié giust.",
-       'config-your-language' => 'Toa lenga:',
-       'config-your-language-help' => "Selessioné na lenga da dovré durant ël process d'instalassion.",
-       'config-wiki-language' => 'Lenga dla Wiki:',
-       'config-wiki-language-help' => 'Selession-a la lenga dont la wiki a sarà prevalentement scrivùa.',
-       'config-back' => '← André',
-       'config-continue' => 'Continua →',
-       'config-page-language' => 'Lenga',
-       'config-page-welcome' => 'Bin  ëvnù a MediaWiki!',
-       'config-page-dbconnect' => 'Coleghesse a la base ëd dàit',
-       'config-page-upgrade' => "Agiorné l'instalassion esistenta",
-       'config-page-dbsettings' => 'Ampostassion dla base ëd dàit',
-       'config-page-name' => 'Nòm',
-       'config-page-options' => 'Opsion',
-       'config-page-install' => 'Instala',
-       'config-page-complete' => 'Completa!',
-       'config-page-restart' => "Fé torna parte l'instalassion",
-       'config-page-readme' => 'Lesme',
-       'config-page-releasenotes' => 'Nòte ëd publicassion',
-       'config-page-copying' => 'Copié',
-       'config-page-upgradedoc' => 'Agiorné',
-       'config-page-existingwiki' => 'Wiki esistenta',
-       'config-help-restart' => "Veul-lo scancelé tùit ij dat salvà ch'a l'ha anserì e anandié torna ël process d'instalassion?",
-       'config-restart' => 'É!, felo torna parte',
-       'config-welcome' => "=== Contròj d'ambient ===
-Dle verìfiche ëd base a son fàite për vëdde se st'ambient a va bin për l'instalassion ëd MediaWiki.
-S'a l'ha da manca d'agiut durant l'anstalassion, a dovrìa fornì j'arzultà dë sti contròj.",
-       'config-copyright' => "=== Drit d'Autor e Condission ===
-
-$1
-
-Cost-sì a l'é un programa lìber e a gràtis: a peul ridistribuilo e/o modifichelo sota le condission dla licensa pùblica general GNU com publicà da la Free Software Foundation; la version 2 dla Licensa, o (a toa sèrnìa) qualsëssìa version pi recenta.
-
-Cost programa a l'é distribuì ant la speransa ch'a sia ùtil, ma '''sensa gnun-e garansìe'''; sensa gnanca la garansia implìssita ëd '''comersiabilità''' o '''d'esse adat a un but particolar'''.
-
-A dovrìa avèj arseivù <doclink href=Copying>na còpia ëd la licensa pùblica general GNU</doclink> ansema a sto programa; dësnò, ch'a scriva a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA opura [http://www.gnu.org/copyleft/gpl.html ch'a la lesa an linia].",
-       'config-sidebar' => "* [//www.mediawiki.org Intrada MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents Guida dl'Utent]
-* [//www.mediawiki.org/wiki/Manual:Contents Guida dl'Aministrator]
-* [//www.mediawiki.org/wiki/Manual:FAQ Soens an ciamo]
-----
-* <doclink href=Readme>Ch'am lesa</doclink>
-* <doclink href=ReleaseNotes>Nòte ëd publicassion</doclink>
-* <doclink href=Copying>Còpia</doclink>
-* <doclink href=UpgradeDoc>Agiornament</doclink>",
-       'config-env-good' => "L'ambient a l'é stàit controlà.
-It peule instalé MediaWiki.",
-       'config-env-bad' => "L'ambient a l'é stàit controlà.
-It peule pa instalé MediaWiki.",
-       'config-env-php' => "PHP $1 a l'é instalà.",
-       'config-env-php-toolow' => "PHP $1 a l'é instalà.
-Ant tùit ij cas, MediaWiki a ciama PHP $2 o pi neuv.",
-       'config-unicode-using-utf8' => 'As deuvra utf8_normalize.so ëd Brion Vibber për la normalisassion Unicode.',
-       'config-unicode-using-intl' => "As deuvra l'[http://pecl.php.net/intl estension intl PECL] për la normalisassion Unicode.",
-       'config-unicode-pure-php-warning' => "'''Avis:''' L'[http://pecl.php.net/intl estension intl PECL] a l'é pa disponìbil për gestì la normalisassion Unicode, da già che l'implementassion an PHP pur a faliss për lentëssa.
-S'a gestiss un sit a àut tràfich, a dovrìa lese cheicòs an sla [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalisassion Unicode].",
-       'config-unicode-update-warning' => "'''Avis:''' La version instalà dlë spassiador ëd normalisassion Unicode a deuvra na version veja ëd la librarìa dël [http://site.icu-project.org/ proget ICU].
-A dovrìa fé n'[//www.mediawiki.org/wiki/Unicode_normalization_considerations agiornament] s'a l'é anteressà a dovré Unicode.",
-       'config-no-db' => "Impossìbil trové un pilòta ëd base ëd dàit bon! A dev instalé un pilòta ëd base ëd dàit për PHP.
-Le sòrt ëd database ch'a ven-o a son apogià: $1.
-
-S'a l'é ansima a 'n servissi partagià, ch'a ciama a sò fornidor ëd servissi d'instalé un pilòta ëd base ëd dàit compatìbil.
-S'a l'é compilasse PHP chiel-midem, ch'a lo configura torna con un client ëd base ëd dàit abilità, për esempi an dovrand <code>./configure --with-mysql</code>.
-S'a l'ha instalà PHP dai pachèt Debian o Ubuntu, antlora a dev ëdcò istalé ël mòdul php5-mysql.",
-       'config-outdated-sqlite' => "'''Avis''': chiel a l'ha SQLite $1, che a l'é pi vej che la version mìnima dont a-i é damanca $2. SQLite a sarà pa disponìbil.",
-       'config-no-fts3' => "'''Avis''': SQLite a l'é compilà sensa ël mòdul [//sqlite.org/fts3.html FTS3], le funsion d'arserca a saran pa disponìbij su cost motor.",
-       'config-register-globals' => "'''Avis: L'opsion <code>[http://php.net/register_globals register_globals]</code> ëd PHP a l'é abilità.'''
-'''Ch'a la disabìlita s'a peul.'''
-MediaWiki a marcërà, ma sò servent a l'é espòst a 'd possìbij vunerabilità ëd sicurëssa.",
-       'config-magic-quotes-runtime' => "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] a l'é ativ!'''
-Costa opsion a danegia ij dat d'intrada an manera pa prevedìbil.
-A peul pa instalé o dovré MediaWiki se st'opsion a l'é pa disabilità.",
-       'config-magic-quotes-sybase' => "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] a l'é ativ!'''
-Costa opsion a danegia ij dat d'intrada an manera pa prevedìbil.
-A peul pa instalé o dovré MediaWiki se st'opsion a l'é pa disabilità.",
-       'config-mbstring' => "'''Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] a l'é ativ!'''
-Costa opsion a càusa d'eror e a peul danegié ij dat d'intrada an manera pa prevedìbil.
-A peul pa instalé o dovré MediaWiki se st'opsion a l'é pa disabilità.",
-       'config-ze1' => "'''Fatal: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] a l'é ativ!'''
-Costa opsion a càusa dij bigat afros con MediaWiki.
-A peul pa instalé o dovré MediaWiki se st'opsion a l'é pa disabilità.",
-       'config-safe-mode' => "'''Avis:''' [http://www.php.net/features.safe-mode Safe mode] ëd PHP a l'é ativ.
-A peul causé ëd problema, dzortut s'as deuvro ël cariament d'archivi e ël manteniment ëd <code>math</code>.",
-       'config-xml-bad' => "Mòdul XML ed PHP mancant.
-MediaWiki a l'ha da manca dle funsion an sto mòdul e a travajërà pa an costa configurassion.
-S'a fa giré mandrake, ch'a instala ël pachet php-xml.",
-       'config-pcre' => "A smija che ël mòdul d'apògg PCRE a sia mancant.
-MediaWiki a l'ha da manca dle funsion d'espression regolar Perl-compatìbij për marcé.",
-       'config-pcre-no-utf8' => "'''Fatal''': ël mòdul PCRE ëd PHP a smija esse compilà sensa l'apògg PCRE_UTF8.
-MediaWiki a ciama l'apògg d'UTF8 për marcé për da bin.",
-       'config-memory-raised' => "<code>memory_limit</code> ëd PHP a l'é $1, aussà a $2.",
-       'config-memory-bad' => "'''Avis:''' <code>memory_limit</code> ëd PHP a l'é $1.
-Sossì a l'é probabilment tròp bass.
-L'instalassion a peul falì!",
-       'config-ctype' => "'''Fatal''': PHP a dev esse compilà con l'apògg për l'[http://www.php.net/manual/en/ctype.installation.php extension Ctype].",
-       'config-xcache' => "[http://xcache.lighttpd.net/ XCache] a l'é instalà",
-       'config-apc' => "[http://www.php.net/apc APC] a l'é instalà",
-       'config-wincache' => "[http://www.iis.net/download/WinCacheForPhp WinCache]  a l'é instalà",
-       'config-no-cache' => "'''Avis:''' As treuva pa [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] o [http://www.iis.net/download/WinCacheForPhp WinCache]. Ël buté d'oget an memòria local a l'é pa abilità.",
-       'config-mod-security' => "'''Avis''': Sò servent për l'aragnà a l'ha [http://modsecurity.org/ mod_security] abilità. Se mal configurà, a peul causé dij problema për MediaWiki o d'àutri programa ch'a përmëtto a j'utent dë spedì un contnù qualsëssìa.
-Ch'a fasa arferiment a la [http://modsecurity.org/documentation/ mod_security documentassion] o ch'a contata l'echip ëd sò servissi s'a-j rivo dj'eror casuaj.",
-       'config-diff3-bad' => 'GNU diff3 pa trovà.',
-       'config-imagemagick' => "Trovà ImageMagick: <code>$1</code>.
-La miniaturisassion ëd figure a sarà abilità s'it abìlite le carie.",
-       'config-gd' => "Trovà la librarìa gràfica antëgrà GD.
-La miniaturisassion ëd figure a sarà abilità s'a abìlita ij cariament.",
-       'config-no-scaling' => 'As treuva pa la librarìa GD o ImageMagick.
-La miniaturisassion ëd figure a sarà disabilità.',
-       'config-no-uri' => "'''Eror:''' As peul pa determiné l'URI corenta.
-Instalassion abortìa.",
-       'config-no-cli-uri' => "'''Avis''': pa gnun --scriptpath specificà, a sarà dovrà ël predefinì: <code>$1</code>.",
-       'config-using-server' => 'Utilisassion dël nòm ëd servent "<nowiki>$1</nowiki>".',
-       'config-using-uri' => "Utilisassion ëd l'anliura ëd servent «<nowiki>$1$2</nowiki>».",
-       'config-uploads-not-safe' => "'''Avis:''' Sò dossié stàndard për carié <code>$1</code> a l'é vulneràbil a l'esecussion ëd qualsëssìa senari.
-Bele che MediaWiki a contròla j'aspet ëd sicurëssa ëd tùit j'archivi carià, a l'é motobin arcomandà ëd [//www.mediawiki.org/wiki/Manual:Security#Upload_security saré ës përtus ëd sicurëssa] prima d'abilité ij cariament.",
-       'config-no-cli-uploads-check' => "'''Avis:''' Toa cartela predefinìa për j-amportassion (<code>$1</code>) a l'é nen controlà a propòsit ëd la vulnerabilità
-d'esecussion ëd senari arbitrari durant l'istalassion CLI.",
-       'config-brokenlibxml' => "Sò sistema a l'ha na combinassion ëd version PHP e libxml2 che a l'ha dij bigat e a peul provoché la corussion ëd dat ëstërmà an MediaWiki e d'àutre aplicassion për l'aragnà.
-Ch'a agiorna a PHP 5.2.9 o pi neuv e libxml2 2.7.3 o pi neuv ([//bugs.php.net/bug.php?id=45996 bug filed with PHP]).
-Istalassion abortìa.",
-       'config-using531' => "MediaWiki a peul pa esse dovrà con PHP $1 a motiv d'un bigat ch'a ìmplica ij paràmetr d'arferiment a <code>__call()</code>.
-Ch'a agiorna a PHP 5.3.2 o pi neuv, o ch'a torna andré a PHP 5.3.0 për arzòlve ës problema.
-Istalassion abortìa.",
-       'config-suhosin-max-value-length' => 'Suhosin a l\'é instalà e a lìmita la longheur dël paràmetr GET a $1 byte. Ël component ResourceLoader ëd MediaWiki a travajerà an rispetand ës lìmit, ma sòn a degraderà le prestassion. Se possìbil, a dovrìa amposté suhosin.get.max_value_lenght a 1024 o pi àut an <code>php.ini</code>, e amposté <code>$wgResourceLoaderMaxQueryLength</code> al midem valor an LocalSettings.php .', # Fuzzy
-       'config-db-type' => 'Sòrt ëd base ëd dàit:',
-       'config-db-host' => 'Ospitant ëd la base ëd dàit:',
-       'config-db-host-help' => "Se sò servent ëd base ëd dàit a l'é su un servent diferent, ch'a anserissa ambelessì ël nòm dl'ospitant o l'adrëssa IP.
-
-S'a deuvra n'ospitalità partagià, sò fornidor d'ospitalità a dovrìa deje ël nòm dl'ospitant giust ant soa documentassion.
-
-Se a anstala su un servent Windows e a deuvra MySQL, dovré «localhost» a podrìa funsioné nen com nòm dël servent. S'a marcia nen, ch'a preuva «127.0.0.1» com adrëssa IP local.
-
-S'a deuvra PostgresSQL, ch'a lassa sto camp bianch për coleghesse a travers un socket UNIX.",
-       'config-db-host-oracle' => 'TNS dla base ëd dàit:',
-       'config-db-host-oracle-help' => "Anserì un [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm nòm ëd conession local] bon; n'archivi tnsnames.ora a dev esse visìbil da costa anstalassion..<br />S'a deuvra le librarìe cliente 10g o pi neuve a peul ëdcò dovré ël métod ëd nominassion [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
-       'config-db-wiki-settings' => 'Identìfica sta wiki',
-       'config-db-name' => 'Nòm dla base ëd dàit:',
-       'config-db-name-help' => "Ch'a serna un nòm ch'a identìfica soa wiki.
-A dovrìa conten-e gnun ëspassi.
-
-S'a deuvra n'ospitalità partagià, sò fornidor ëd l'ospitalità a-j darà un nòm ëd base ëd dàit specìfich da dovré o a lassrà ch'a lo crea via un panel ëd contròl.",
-       'config-db-name-oracle' => 'Schema dla base ëd dàit:',
-       'config-db-account-oracle-warn' => "A-i é tre possibilità mantnùe për istalé Oracle tanme terminal ëd base ëd dàit:
-
-S'a veul creé un cont ëd base ëd dàit com part dël process d'istalassion, për piasì ch'a fornissa un cont con ël ròl SYSDBA com cont ëd base ëd dàit për l'istalassion e ch'a specìfica le credensiaj vorsùe për ël cont d'acess an sl'aragnà, dësnò a peul ëdcò creé ël cont d'acess an sl'aragnà manualment e mach fornì col cont (se a l'ha ij përmess necessari për creé j'oget dë schema) o fornì doi cont diferent, un con ij privilegi ëd creé e un limità për l'acess an sla Ragnà.
-
-Ij senari për creé un cont con ij privilegi necessari a peul esse trovà ant la cartela «manutension/oracol/» ëd costa istalassion. Ch'a ten-a da ment che dovrand un cont limità a disabiliterà tute le funsion ëd manutension con ël cont predefinì.",
-       'config-db-install-account' => "Cont d'utent për l'instalassion.",
-       'config-db-username' => "Nòm d'utent dla base ëd dàit:",
-       'config-db-password' => 'Ciav dla base ëd dàit:',
-       'config-db-password-empty' => "Për piasì, ch'a anserissa na ciav për ël neuv utent ëd base ëd dàit: $1.
-Con tut ch'a sia possìbil creé d'utent sensa ciav, a l'é pa na ròba sigura.",
-       'config-db-install-username' => "Ch'a nserissa lë stranòm che a sarà dovrà për coleghesse a la base ëd dàit durant ël process d'istalassion.
-Cost-sì a l'é nen lë stranòm dël cont MediaWiki; a l'é lë stranòm për soa base ëd dàit.",
-       'config-db-install-password' => "Ch'a anserissa la ciav che a sarà dovrà për coleghesse a la base ëd dàit durant ël process d'istalassion.
-Costa-sì a l'é nen la ciav dël cont MediaWiki; a l'é la ciav për soa base ëd dàit.",
-       'config-db-install-help' => "Ch'a anserissa lë stranòm d'utent e la ciav che a saran dovrà për coleghesse a la base ëd dàit durant ël process d'instalassion.",
-       'config-db-account-lock' => "Dovré ij midem stranòm d'utent e ciav durant j'operassion normaj",
-       'config-db-wiki-account' => "Cont d'utent për j'operassion normaj",
-       'config-db-wiki-help' => "Ch'a anseriss lë stranòm d'utent e la ciav che a saran dovrà për coleghesse a la base ëd dàit durant j'operassion normaj dla wiki.
-S'ël cont a esist pa, e ël cont d'instalassion a l'ha ij privilegi ch'a-i van, sto cont utent a sarà creà con ij privilegi mìnin për fé marcé la wiki.",
-       'config-db-prefix' => 'Prefiss dle tàule dla base ëd dàit:',
-       'config-db-prefix-help' => "S'a l'ha dabzògn ëd partagé na base ëd dàit an tra vàire wiki, o tra MediaWiki e n'àutra aplicassion dl'aragnà, a peul serne ëd gionté un prefiss a tùit ij nòm ëd le tàule për evité ëd conflit.
-Ch'a deuvra pa dë spassi.
-
-Cost camp a l'é lassà normalment veuid.",
-       'config-db-charset' => 'Ansema dij caràter dla base ëd dàit',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binari',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => "MySQL 4.0 compatìbil a l'andaré con UTF-8",
-       'config-charset-help' => "'''Avis:''' S'a deuvra '''UTF-8 compatìbil a l'andaré''' su MySQL 4.1+, e peui a fa na còpia con <code>mysqldump</code>, a podrìa scancelé tùit ij caràter nen-ASCII, dësbland sensa speranse soe còpie!
-
-An '''manera binaria''', MediaWiki a memorisa ël test UTF-8 an dij camp binari ant la base ëd dàit.
-Sossì a l'é pi eficient che la manera UTF-8 ëd MySQL, e a përmët ëd dovré tut l'ansema ëd caràter Unicode.
-An '''manera UTF-8''', MySQL a arconòss an che ansema ëd caràter a son ij sò dat, e a peul presenteje e convertije apropriatament, ma a-j lassrà pa memorisé ij caràter dzora al [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes pian multilenghe ëd base].",
-       'config-mysql-old' => "A-i é da manca ëd MySQL $1 o pi recent, chiel a l'ha $2.",
-       'config-db-port' => 'Porta dla base ëd dàit:',
-       'config-db-schema' => 'Schema për MediaWiki',
-       'config-db-schema-help' => "Lë schema sì-sota a l'é ëd sòlit giust.
-Ch'a lo cangia mach s'a sa ch'a n'ha da manca.",
-       'config-pg-test-error' => "Impossìbil coleghesse a la base ëd dàit '''$1'''; $2",
-       'config-sqlite-dir' => 'Dossié dij dat SQLite:',
-       'config-sqlite-dir-help' => "SQLite a memorisa tùit ij dat ant n'archivi ùnich.
-
-Ël dossié che chiel a forniss a dev esse scrivìbil dal servent durant l'instalassion.
-
-A dovrìa '''pa''' esse acessìbil da l'aragnà, sossì a l'é për sòn ch'i l'oma pa butalo andova a-i son ij sò file PHP.
-
-L'instalador a scriverà n'archivi <code>.htaccess</code> ansema con chiel, ma se lòn a faliss quaidun a peul intré an soa base ëd dàit originaria.
-Lòn a comprend ij dat brut ëd l'utent (adrëssa ëd pòsta eletrònica, ciav tërbola) e ëdcò le revision scancelà e d'àutri dat segret ëd la wiki.
-
-Ch'a consìdera ëd buté la base ëd dàit tuta antrega da n'àutra part, për esempi an <code>/var/lib/mediawiki/yourwiki</code>.",
-       'config-oracle-def-ts' => 'Spassi dla tàula dë stàndard:',
-       'config-oracle-temp-ts' => 'Spassi dla tàula temporani:',
-       'config-support-info' => "MediaWiki a manten ij sistema ëd base ëd dàit sì-dapress:
-
-$1
-
-S'a vëd pa listà sì-sota ël sistema ëd base ëd dàit ch'a preuva a dovré, antlora va andaré a j'istrussion dl'anliura sì-dzora për abilité ël manteniment.",
-       'config-support-mysql' => "* $1 e l'é l'obietiv primari për MediaWiki e a l'é mej mantnù ([http://www.php.net/manual/en/mysql.installation.php com compilé PHP con ël manteniment MySQL])",
-       'config-support-postgres' => "* $1 e l'é un sistema ëd base ëd dàit popolar a sorgiss duverta com alternativa a MySQL ([http://www.php.net/manual/en/pgsql.installation.php com compilé PHP con ël manteniment ëd PostgreSQL]). A peulo ess-ie chèich cit bigat, e a l'é nen arcomandà ëd dovrelo an n'ambient ëd produssion.",
-       'config-support-sqlite' => "* $1 e l'é un sistema ëd base ëd dàit leger che a l'é motobin bin mantnù ([http://www.php.net/manual/en/pdo.installation.php com compilé PHP con ël manteniment ëd SQLite], a deuvra PDO)",
-       'config-support-oracle' => "* $1 a l'é na base ëd dàit comersial për j'amprèise. ([http://www.php.net/manual/en/oci8.installation.php Com compilé PHP con ël manteniment OCI8])",
-       'config-header-mysql' => 'Ampostassion MySQL',
-       'config-header-postgres' => 'Ampostassion PostgreSQL',
-       'config-header-sqlite' => 'Ampostassion SQLite',
-       'config-header-oracle' => 'Ampostassion Oracle',
-       'config-invalid-db-type' => 'Sòrt ëd ëd base ëd dàit pa bon-a',
-       'config-missing-db-name' => 'A dev buteje un valor për "Nòm ëd la base ëd dàit"',
-       'config-missing-db-host' => 'A dev buteje un valor për "l\'òspit ëd la base ëd dàit"',
-       'config-missing-db-server-oracle' => 'A dev buteje un valor për "TNS ëd la base ëd dat"',
-       'config-invalid-db-server-oracle' => 'TNS ëd la base ëd dat pa bon "$1".
-Dovré mach dle litre ASCII (a-z, A-Z), nùmer (0-9), sotlignadure (_) e pontin (.).',
-       'config-invalid-db-name' => 'Nòm ëd la base ëd dàit pa bon "$1".
-Dovré mach litre ASCII (a-z, A-Z), nùmer (0-9), sotlignadure (_) e tratin (-).',
-       'config-invalid-db-prefix' => 'Prefiss dla base ëd dàit pa bon "$1".
-Dovré mach litre ASCII (a-z, A-Z), nùmer (0-9), sotlignadure (_) e tratin (-).',
-       'config-connection-error' => "$1.
-
-Controla l'ospitant, lë stranòm d'utent e la ciav sì-sota e prové torna.",
-       'config-invalid-schema' => 'Schema pa bon për MediaWiki "$1".
-Dovré mach litre ASCII (a-z, A-Z), nùmer (0-9) e sotlignadure (_).',
-       'config-db-sys-create-oracle' => "L'istalador a arconòss mach ij cont SYSDBA durant la creassion d'un cont neuv.",
-       'config-db-sys-user-exists-oracle' => 'Ël cont utent "$1" a esist già. SYSDBA a peul mach esse dovrà për creé un cont neuv!',
-       'config-postgres-old' => "A-i é da manca ëd PostgreSQL $1 o pi recent, chiel a l'ha $2.",
-       'config-sqlite-name-help' => "Serne un nòm ch'a identìfica soa wiki.
-Dovré nì dë spassi nì ëd tratin.
-Sòn a sarà dovrà për ël nòm ëd l'archivi ëd dat SQLite.",
-       'config-sqlite-parent-unwritable-group' => "As peul pa creesse ël dossié ëd dat <code><nowiki>$1</nowiki></code>, përchè ël dossié a mont <code><nowiki>$2</nowiki></code> a l'é pa scrivìbil dal servent.
-
-L'instalador a l'ha determinà sota che utent a gira sò servent.
-Fé an manera che ël dossié <code><nowiki>$3</nowiki></code> a sia scrivìbil da chiel për continué.
-Su un sistema Unix/Linux buté:
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>",
-       'config-sqlite-parent-unwritable-nogroup' => "As peul pa creesse ël dossié ëd dat <code><nowiki>$1</nowiki></code>, përchè ël dossié a mont <code><nowiki>$2</nowiki></code> a l'é pa scrivìbil dal servent.
-
-L'instalador a peul pa determiné l'utent sota ël qual a gira sò servent.
-Fé an manera che ël dossié <code><nowiki>$3</nowiki></code> a sia scrivìbil globalment da chiel (e da d'àutri) për continué.
-Su un sistema Unix/Linux buté:
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>",
-       'config-sqlite-mkdir-error' => 'Eror an creand ël dossié ëd dat "$1".
-Ch\'a contròla la locassion e ch\'a preuva torna.',
-       'config-sqlite-dir-unwritable' => 'As peul pa scrivse an sël dossié "$1".
-Modifiché ij sò përmess an manera che ël servent a peula scrivje ansima, e prové torna.',
-       'config-sqlite-connection-error' => '$1.
-
-Controlé ël dossié ëd dat e ël nòm ëd la base ëd dàit ambelessì-sota e prové torna.',
-       'config-sqlite-readonly' => "L'archivi <code>$1</code> a l'é nen scrivìbil.",
-       'config-sqlite-cant-create-db' => "As peul pa cresse l'archivi ëd base ëd dàit <code>$1</code>.",
-       'config-sqlite-fts3-downgrade' => "PHP a l'ha pa ël supòrt ëd FTS3, le tàule a son degradà",
-       'config-can-upgrade' => "A-i é dle tàule MediaWiki an costa base ëd dàit.
-Për agiorneje a MediaWiki $1, ch'a sgnaca su '''Continué'''.",
-       'config-upgrade-done' => "Agiornament completà.
-
-Adess a peule [$1 ancaminé a dovré soa wiki].
-
-S'a veul generé torna sò archivi <code>LocalSettings.php</code>, ch'a sgnaca ël boton sì-sota.
-Sòn a l'è '''pa arcomandà''' gavà ch'a rancontra dij problema con soa wiki.",
-       'config-upgrade-done-no-regenerate' => 'Agiornament complet.
-
-It peule adess [$1 ancaminé a dovré toa wiki].',
-       'config-regenerate' => 'Generé torna LocalSettings.php →',
-       'config-show-table-status' => 'Arcesta <code>SHOW TABLE STATUS</code> falìa!',
-       'config-unknown-collation' => "'''Avis:''' La base ëd dàit a deuvra na classificassion pa arconossùa.",
-       'config-db-web-account' => "Cont dla base ëd dàit për l'acess a l'aragnà",
-       'config-db-web-help' => "Ch'a selession-a lë stranòm d'utent e la ciav che ël servent ëd l'aragnà a dovrërà për coleghesse al servent dle base ëd dàit, durant j'operassion ordinarie dla wiki.",
-       'config-db-web-account-same' => "Ch'a deuvra ël midem cont com për l'istalassion",
-       'config-db-web-create' => "Crea ël cont se a esist pa anco'",
-       'config-db-web-no-create-privs' => "Ël cont ch'a l'ha specificà për l'instalassion a l'ha pa basta 'd privilegi për creé un cont.
-Ël cont ch'a spessìfica ambelessì a dev già esiste.",
-       'config-mysql-engine' => 'Motor ëd memorisassion:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''Avis''': A l'ha selessionà MyISAM com motor ëd memorisassion për MySQL, che a l'é pa arcomandà da dovré con MediaWiki, përchè:
-* a sopòrta a pen-a la contemporanità për via ëd saradure ëd tàula
-* a l'é pi soget a la corussion che j'àutri motor
-* ël còdes bas ëd MediaWiki pa sempe a gestiss MyISAM com a dovrìa
-
-Se soa istalassion MySQL a manten InnoDB, a l'é fortement arcomandà ch'a serna pitòst col-lì.
-Se soa istalassion MySQL a manten nen InnoDB, a peul esse ch'a sia ël moment ëd n'agiornament.",
-       'config-mysql-engine-help' => "'''InnoDB''' a l'é scasi sempe la mej opsion, da già ch'a l'ha un bon manteniment dla concorensa.
-
-'''MyISAM''' a peul esse pi lest an instalassion për n'utent sol o mach an letura.
-La base ëd dàit MyISAM a tira a corompse pi 'd soens che la base ëd dàit InnoDB.",
-       'config-mysql-charset' => 'Ansem ëd caràter dla base ëd dàit:',
-       'config-mysql-binary' => 'Binari',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "An '''manera binaria''', MediaWiki a memorisa ël test UTF-8 ant la base ëd dàit an camp binari.
-Sòn a l'é pi eficient che la manera UTF-8 ëd MySQL, e a-j përmët ëd dovré l'ansema antregh ëd caràter Unicode.
-
-An '''manera UTF-8''', MySQL a conossrà an che ansem ëd caràter a son ij sò dat, e a peul presenteje e convertije apropriatament, ma a-j lassa pa memorisé ij caràter ëdzora al [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes pian multilenghìstich ëd base].",
-       'config-site-name' => 'Nòm ëd la wiki:',
-       'config-site-name-help' => "Sòn a comparirà ant la bara dël tìtol dël navigador e an vàire d'àutri pòst.",
-       'config-site-name-blank' => "Ch'a buta un nòm ëd sit.",
-       'config-project-namespace' => 'Spassi nominal dël proget:',
-       'config-ns-generic' => 'Proget',
-       'config-ns-site-name' => 'Midem com ël nom dla wiki: $1',
-       'config-ns-other' => 'Àutr (specìfica)',
-       'config-ns-other-default' => 'MyWiki',
-       'config-project-namespace-help' => "Andasend daré a l'esempi ëd Wikipedia, vàire wiki a manten-o soe pàgine ëd regolament separà da soe pàgine ëd contnù, ant në \"'''spassi nominal ëd proget'''\".
-Tùit ij tìtoj ëd pàgina ant cost ëspassi nominal a parto con un sert prefiss, che a peul specifiché ambelessì.
-Tradissionalment, sto prefiss a l'é derivà dal nòm ëd la wiki, ma a peul pa conten-e caràter ëd pontegiatura coma \"#\" o \":\".",
-       'config-ns-invalid' => 'Lë spassi nominal specificà "<nowiki>$1</nowiki>" a l\'é pa bon.
-Specìfica në spassi nominal ëd proget diferent.',
-       'config-ns-conflict' => 'Lë spassi nominal specificà "<nowiki>$1</nowiki>" a và contra në spassi nominal predefinì ëd MediaWiki.
-Specìfica në spassi nominal ëd proget diferent.',
-       'config-admin-box' => "Cont ëd l'Aministrator",
-       'config-admin-name' => 'Tò nòm:',
-       'config-admin-password' => 'Ciav:',
-       'config-admin-password-confirm' => 'Buté torna la ciav:',
-       'config-admin-help' => "Ch'a butà ambelessì tò stranòm d'utent preferì, për esempi \"Gioann Scriv\".
-Cost-sì a l'é lë stranòm ch'a dovrërà për intré ant la wiki.",
-       'config-admin-name-blank' => "Ch'a anserissa në stranòm d'aministrator.",
-       'config-admin-name-invalid' => 'Ël nòm utent specificà "<nowiki>$1</nowiki>" a l\'é pa bon.
-Specìfica un nòm utent diferent.',
-       'config-admin-password-blank' => "Ch'a anserissa na ciav për ël cont d'aministrator.",
-       'config-admin-password-same' => "La ciav a dev nen esse l'istessa ëd lë stranòm d'utent.",
-       'config-admin-password-mismatch' => "Le doe ciav che a l'ha scrivù a son diferente antra 'd lor.",
-       'config-admin-email' => 'Adrëssa ëd pòsta eletrònica:',
-       'config-admin-email-help' => "Ch'a anserissa ambelessì n'adrëssa ëd pòsta eletrònica për përmëtt-je d'arsèive ëd mëssagi da d'àutri utent an sla wiki, riamposté soa ciav, e esse anformà dle modìfiche a le pàgine ch'a ten sot-euj. A peule lassé ës camp veuid.",
-       'config-admin-error-user' => 'Eror antern an creand n\'aministrator con lë stranòm "<nowiki>$1</nowiki>".',
-       'config-admin-error-password' => 'Eror antern an ampostand na ciav për l\'admin "<nowiki>$1</nowiki>": <pre>$2</pre>',
-       'config-admin-error-bademail' => "A l'ha butà n'adrëssa ëd pòsta eletrònica pa bon-a.",
-       'config-subscribe' => "Ch'a sot-scriva la [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce lista ëd discussion ëd j'anonsi ëd publicassion].",
-       'config-subscribe-help' => "Costa a l'é na lista ëd discussion a bass tràfich dovrà për j'anonsi ëd publicassion, comprèis d'amportant anonsi ëd sicurëssa.
-A dovrìa sot-ëscrivla e agiorné soa instalassion mediaWiki quand che ëd version neuve a rivo.",
-       'config-subscribe-noemail' => "A l'ha provà a abonesse a la lista ëd difusion dij comunicà sensa dé n'adrëssa ëd pòsta eletrònica.
-Për piasì, ch'a fornissa n'adrëssa ëd pòsta eletrònica s'a veul abonesse a la lista ëd pòsta.",
-       'config-almost-done' => "A l'ha bele che fàit!
-A peul adess sauté la configurassion rimanenta e instalé dlongh la wiki.",
-       'config-optional-continue' => "Ciameme d'àutre chestion.",
-       'config-optional-skip' => 'I son già anojà, instala mach la wiki.',
-       'config-profile' => "Profil dij drit d'utent:",
-       'config-profile-wiki' => 'Wiki duverta',
-       'config-profile-no-anon' => 'A venta creé un cont',
-       'config-profile-fishbowl' => 'Mach editor autorisà',
-       'config-profile-private' => 'Wiki privà',
-       'config-profile-help' => "Le wiki a marcio mej quand ch'a lassa che pì përsone possìbij a-j modìfico.
-An MediaWiki, a l'é bel fé revisioné j'ùltime modìfiche, e buté andré qualsëssìa dann che a sia fàit da dj'utent noviss o malissios.
-
-An tùit ij cas, an tanti a l'han trovà che MediaWiki a sia ùtil ant na gran varietà ëd manere, e dle vire a l'é pa bel fé convince cheidun dij vantagi dla wiki.
-Parèj a l'ha doe possibilità.
-
-Ël model '''{{int:config-profile-wiki}}''' a përmët a chicassìa ëd modifiché, bele sensa intré ant ël sistema.
-Na wiki con  '''{{int:config-profile-no-anon}}''' a dà pì 'd contròl, ma a peul slontané dij contributor ocasionaj.
-
-Ël senari '''{{int:config-profile-fishbowl}}''' a përmët a j'utent aprovà ëd modifiché, ma ël pùblich a peul vëdde le pàgine, comprèisa la stòria.
-Un '''{{int:config-profile-private}}''' a përmët mach a j'utent aprovà ëd vëdde le pàgine, con la midema partìa ch'a peul modifiché.
-
-Configurassion ëd drit d'utent pi complicà a son disponìbij apress l'instalassion, vëdde la [//www.mediawiki.org/wiki/Manual:User_rights pàgina a pòsta dël manual].",
-       'config-license' => "Drit d'autor e licensa",
-       'config-license-none' => 'Gnun-a licensa an nòta an bass',
-       'config-license-cc-by-sa' => 'Creative Commons atribussion an part uguaj',
-       'config-license-cc-by' => 'Creative Commons Attribution',
-       'config-license-cc-by-nc-sa' => 'Creative Commons atribussion nen comersial an part uguaj',
-       'config-license-cc-0' => 'Creative Commons Zero (domini pùblich)',
-       'config-license-gfdl' => 'Licensa GNU Free Documentation 1.3 o pi neuva',
-       'config-license-pd' => 'Domini Pùblich',
-       'config-license-cc-choose' => 'Selessioné na licensa Creative Commons përsonalisà',
-       'config-license-help' => "Vàire wiki pùbliche a buto tute le contribussion sota na [http://freedomdefined.org/Definition licensa lìbera]. Sòn a giuta a creé un sens d'apartenensa a la comunità e a ancoragia ëd contribussion ëd longa durà.
-A l'é generalment nen necessari për na wiki privà o d'asienda.
-
-S'a veul podèj dovré dij test da Wikipedia, e a veul che Wikipedia a aceta dij test copià da soa wiki, a dovrìa serne '''Creative Commons Attribution Share Alike'''.
-
-Wikipedia prima a dovrava la GNU Free Documentation License.
-La GDFL a l'é anco' na licensa bon-a, ma a l'é malfé da capila.
-A l'é ëdcò mal fé riutilisé dël contnù licensià sota la GDFL.",
-       'config-email-settings' => 'Ampostassion ëd pòsta eletrònica',
-       'config-enable-email' => 'Abilité ij mëssagi ëd pòsta eletrònica an surtìa',
-       'config-enable-email-help' => "S'a veul che la pòsta eletrònica a marcia, j'[http://www.php.net/manual/en/mail.configuration.php ampostassion ëd pòsta eletrònica PHP] a devo esse configurà për da bin.
-S'a veul pa 'd funsion ëd pòsta eletrònica, a dev disabiliteje ambelessì.",
-       'config-email-user' => 'Abilité ij mëssagi ëd pòsta eletrònica da utent a utent',
-       'config-email-user-help' => "A përmët a tùit j'utent ëd mandesse ëd mëssagi ëd pòsta eletrònica se lor a l'han abilità sòn an soe preferense.",
-       'config-email-usertalk' => "Abilité notìfica dle pàgine ëd discussion dj'utent",
-       'config-email-usertalk-help' => "A përmët a j'utent d'arsèive na notìfica dle modìfiche dle pàgine ëd discussion d'utent, s'a l'han abilitalo ant soe preferense.",
-       'config-email-watchlist' => "Abilité la notìfica ëd lòn ch'as ten sot euj",
-       'config-email-watchlist-help' => "A përmët a j'utent d'arsèive dle notificassion a propòsit dle pàgine ch'a ten-o sot euj s'a l'han abilitalo ant soe preferense.",
-       'config-email-auth' => "Abilité l'autenticassion për pòsta eletrònica",
-       'config-email-auth-help' => "Se st'opsion a l'é abilità, j'utent a devo confirmé soe adrësse ëd pòsta eletrònica an dovrand un colegament mandà a lor quand ch'a l'han ampostala o cambiala.
-Mach j'adrësse ëd pòsta eletrònica autenticà a peulo arsèive ëd mëssagi da j'àutri utent o cangé adrëssa ëd notìfica.
-Amposté st'opsion a l'é '''arcomandà''' për le wiki pùbliche a càusa ëd possìbij abus ëd le funsion ëd pòsta eletrònica.",
-       'config-email-sender' => 'Adrëssa ëd pòsta eletrònica ëd ritorn:',
-       'config-email-sender-help' => "Ch'a anserissa l'adrëssa ëd pòsta eletrònica da dovré com adrëssa d'artorn dij mëssagi an surtìa.
-Ambelessì a l'é andova j'arspòste a saran mandà.
-Motobin ëd servent ëd pòsta a ciamo che almanch la part dël nòm ëd domini a sia bon-a.",
-       'config-upload-settings' => 'Cariament ëd figure e archivi',
-       'config-upload-enable' => "Abilité ël cariament d'archivi",
-       'config-upload-help' => "Carié d'archivi potensialment a espon sò servent a d'arzigh ëd sicurëssa.
-Per pi d'anformassion, ch'a lesa la [//www.mediawiki.org/wiki/Manual:Security session ëd sicurëssa] d'ës manual.
-
-Për abilité ël cariament d'archivi, ch'a modìfica la manera dël sot-dossié dle <code>figure</code> sota al dossié rèis ëd MediaWiki an manera che ël servent dl'aragnà a peussa scrivlo.
-Peui ch'a abìlita costa opsion.",
-       'config-upload-deleted' => "Dossié për j'archivi scancelà:",
-       'config-upload-deleted-help' => "ch'a serna un dossié andova goerné j'archivi scancelà.
-Idealment, sòn a dovrìa pa esse acessìbil an sl'aragnà.",
-       'config-logo' => 'Anliura dla marca:',
-       'config-logo-help' => "La pel dë stàndard ëd MediaWiki a comprend lë spassi për na marca ëd 135x160 pontin dzora la lista dla bara lateral.
-Ch'a dëscaria na figura ëd la dimension aproprià, e ch'a anserissa l'anliura ambelessì.
-
-S'a veul gnun-e marche, ch'a lassa ës camp bianch.", # Fuzzy
-       'config-instantcommons' => 'Abìlita Instant Commons',
-       'config-instantcommons-help' => "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] a l'é na funsion ch'a përmët a le wiki ëd dovré dle figure, dij son e d'àutri mojen trovà an sël sit [//commons.wikimedia.org/ Wikimedia Commons].
-Për dovré sossì, MediaWiki a l'ha da manca dl'acess a la ragnà.
-
-Për pi d'anformassion su sta funsion, comprèise j'istrussion ëd com ampostela për wiki diferente da Wikimedia Commons, ch'a consulta [//mediawiki.org/wiki/Manual:\$wgForeignFileRepos ël manual].",
-       'config-cc-error' => "La selession ëd la licensa Creative Commons a l'ha dàit gnun arzultà.
-Ch'a anserissa ël nòm dla licensa a man.",
-       'config-cc-again' => 'Torna cheuje...',
-       'config-cc-not-chosen' => 'Sern che licensa Creative Commons it veule e sgnaca "anans".',
-       'config-advanced-settings' => 'Configurassion avansà',
-       'config-cache-options' => "Ampostassion për la memorisassion local d'oget:",
-       'config-cache-help' => "La memorisassion loca d'oget a l'é dovrà për amelioré l'andi ëd MediaWiki an butant an local dij dat dovrà 'd soens.
-Ij sit da mesan a gròss a son motobin ancoragià a abilité sòn, e ij sit cit a l'avran ëdcò dij benefissi.",
-       'config-cache-none' => "Gnun-a memorisassion local (gnun-a funsionalità gavà, ma l'andi a peul esse anfluensà an sij sit ëd wiki gròsse)",
-       'config-cache-accel' => "Memorisassion local d'oget PHP (APC, XCache o WinCache)",
-       'config-cache-memcached' => "Dovré Memcached (a ciama n'ampostassion e na configurassion adissionaj)",
-       'config-memcached-servers' => 'Servent Memcached:',
-       'config-memcached-help' => "Lista d'adrësse IP da dovré për Memcached.
-A dovrìa specifichene un-a për linia e specifiché la pòrta da dovré. Për esempi:
-127.0.0.1:11211
-192.168.1.25:11211",
-       'config-memcache-needservers' => "A l'ha selessionà Memcached com soa sòrt ëd memorisassion local ma a l'ha specificà gnun servent.",
-       'config-memcache-badip' => "It l'ha anserì n'adrëssa IP pa bon-a për Memcached: $1.",
-       'config-memcache-noport' => "A l'ha pa specificà na pòrta da dovré për ël servent Memcached: $1.
-S'a conòsse nen la pòrta, cola predefinìa a l'é 11211.",
-       'config-memcache-badport' => 'Ij nùmer ëd pòrta ëd Memcached a dovrìo esse tra $1 e $2.',
-       'config-extensions' => 'Estension',
-       'config-extensions-help' => "J'estension listà dì-sota a son ëstàite trovà ant sò dossié <code>./extensions</code>.
-
-A peulo avèj da manca ëd configurassion adissionaj, ma a peul abiliteje adess",
-       'config-install-alreadydone' => "'''Avis''' A smija ch'a l'abie già instalà MediaWiki e ch'a preuva a instalelo torna.
-Për piasì, ch'a vada a la pàgina ch'a-i ven.",
-       'config-install-begin' => "An sgnacand su «{{int:config-continue}}», a anandiërà l'istalassion ëd MediaWiki.
-S'a veul anco' fé dle modìfiche, ch'a sgnaca su «{{int:config-back}}».",
-       'config-install-step-done' => 'fàit',
-       'config-install-step-failed' => 'falì',
-       'config-install-extensions' => "Comprende j'estension",
-       'config-install-database' => 'Creassion ëd la base ëd dàit',
-       'config-install-schema' => 'Creassion dë schema',
-       'config-install-pg-schema-not-exist' => 'Lë schema postgreSQL a esist pa.',
-       'config-install-pg-schema-failed' => 'Creassion dle tàule falìa.
-Sigurte che l\'utent "$1" a peussa scrive lë schema "$2".',
-       'config-install-pg-commit' => 'Salvé ij cambi.',
-       'config-install-pg-plpgsql' => 'Contròl dël langagi PL/pgSQL',
-       'config-pg-no-plpgsql' => 'A dev istalé ël langage PL/pgSQL ant la base ëd dàit $1',
-       'config-pg-no-create-privs' => "Ël cont ch'a l'ha specificà për l'istalassion a l'ha pa basta 'd privilegi për creé un cont.",
-       'config-pg-not-in-role' => "Ël cont ch'a l'ha specificà për l'utent ëd la ragnà a esist già.
-Ël cont ch'a l'has specificà për l'istalassion a l'é pa un superutent e a l'é pa un mémber dla partìa dj'utent dla Ragnà, parèj a peul pa creé dj'oget ch'a apartenent a l'utent dla Ragnà.
-
-MediaWiki al moment a ciama che le tàule a sia possedùe da n'utent dla Ragnà. Për piasì, ch'a specìfica n'àutr nòm ëd cont dla Ragnà, o ch'a sgnaca ansima a \"andré\" e ch'a specìfica n'utent ch'a l'ha ij privilegi ch'a basto për l'anstalassion.",
-       'config-install-user' => "Creassion ëd n'utent ëd la base ëd dàit",
-       'config-install-user-alreadyexists' => 'L\'utent "$1" a esist già',
-       'config-install-user-create-failed' => "Faliment ant la creassion ëd l'utent «$1»: $2",
-       'config-install-user-grant-failed' => 'Falì a dé ij përmess a l\'utent "$1": $2',
-       'config-install-user-missing' => 'L\'utent specificà "$1" a esist pa.',
-       'config-install-user-missing-create' => "L'utent specificà «$1» a esist pa.
-Për piasì, ch'a selession-a la casela «cont da creé» sì-sota s'a veul creelo.",
-       'config-install-tables' => 'Creassion dle tàule',
-       'config-install-tables-exist' => "'''Avis''': A smija che le tàule ëd mediaWiki a esisto già.
-Sauté la creassion.",
-       'config-install-tables-failed' => "'''Eror''': Creassion ëd le tàule falìa con l'eror sì-dapress: $1",
-       'config-install-interwiki' => "Ampiniment dë stàndard ëd le tàule dj'anliure interwiki",
-       'config-install-interwiki-list' => "As peul pa trovesse l'archivi <code>interwiki.list</code>.",
-       'config-install-interwiki-exists' => "'''Avis''': La tàula interwiki a smija ch'a l'abia già dj'element.
-Për stàndard, la lista a sarà sautà.",
-       'config-install-stats' => 'Inissialisassion dle statìstiche',
-       'config-install-keys' => 'Generassion ëd le ciav segrete',
-       'config-insecure-keys' => "'''Avis:''' {{PLURAL:$2|Na ciav sigura|Dle ciav sigure}} ($1) generà durant l'istalassion {{PLURAL:$2|a l'é|a son}} pa completament sigure. Ch'a consìdera ëd modifiche{{PLURAL:$2|la|je}} manualment.",
-       'config-install-sysop' => "Creassion dël cont ëd l'utent aministrator",
-       'config-install-subscribe-fail' => 'As peul pa sot-scrivse mediawiki-announce: $1',
-       'config-install-subscribe-notpossible' => "cURL a l'é pa istalà e allow_url_fopen a l'é pa disponìbil.",
-       'config-install-mainpage' => 'Creassion ëd la pàgina prinsipal con un contnù predefinì',
-       'config-install-extension-tables' => "Creassion ëd tàule për j'estension abilità",
-       'config-install-mainpage-failed' => 'As peul pa inserisse la pàgina prinsipal: $1',
-       'config-install-done' => "'''Congratulassion!'''
-A l'ha instalà për da bin mediaWiki.
-
-L'instalador a l'ha generà n'archivi <code>LocalSettings.php</code>.
-A conten tuta soa configurassion.
-
-A dovrà dëscarielo e butelo ant la bas ëd l'instalassion ëd soa wiki (ël midem dossié d'index.php). La dëscaria a dovrìa esse ancaminà automaticament.
-
-Se la dëscaria a l'é pa disponìbil, o s'a l'ha scancelala, a peul torna ancaminé la dëscaria an sgnacand an sla liura sì-sota:
-
-$3
-
-'''Nòta''': S'a lo fa nen adess, cost archivi ëd configurassion generà a sarà pa disponìbil për chiel pi tard s'a chita l'instalassion sensa dëscarielo.
-
-Quand che a l'é stàit fàit, a peul '''[$2 intré an soa wiki]'''.",
-       'config-download-localsettings' => 'Dëscarié <code>LocalSettings.php</code>',
-       'config-help' => 'agiut',
-       'config-nofile' => "L'archivi «$1» as treuva nen. A l'é stàit ëscancelà?",
-       'mainpagetext' => "'''MediaWiki a l'é staita anstalà a la përfession.'''",
-       'mainpagedocfooter' => "Che a varda la [//meta.wikimedia.org/wiki/Help:Contents User's Guide] për avèj dj'anformassion ant sël coma dovré ël programa dla wiki.
-
-== Për anandiesse a travajé ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista dij paràmeter ëd configurassion]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki Chestion frequente]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista ëd discussion an sla distribussion ëd MediaWiki]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Localisa MediaWiki për toa lenga]",
-);
-
-/** Pontic (Ποντιακά)
- * @author Sinopeus
- */
-$messages['pnt'] = array(
-       'mainpagetext' => "'''To λογισμικόν MediaWiki εθέκεν.'''",
-);
-
-/** Prussian (Prūsiskan)
- * @author Nertiks
- */
-$messages['prg'] = array(
-       'mainpagetext' => "'''MediaWiki's instalaciōni izpalla.'''",
-       'mainpagedocfooter' => 'Wīdais [//meta.wikimedia.org/wiki/Help:Contents przewodnik użytkownika] kāi gaūlai infōrmaciōnei ezze wiki prōgramijas tērpausnan.
-
-== En pagaūseņu ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]', # Fuzzy
-);
-
-/** Pashto (پښتو)
- * @author Ahmed-Najib-Biabani-Ibrahimkhel
- */
-$messages['ps'] = array(
-       'config-information' => 'مالومات',
-       'config-your-language' => 'ستاسې ژبه:',
-       'config-wiki-language' => 'د ويکي ژبه:',
-       'config-page-language' => 'ژبه',
-       'config-page-welcome' => 'مېډياويکي ته ښه راغلاست!',
-       'config-page-name' => 'نوم',
-       'config-page-options' => 'خوښنې',
-       'config-page-install' => 'لگول',
-       'config-page-complete' => 'بشپړ!',
-       'config-env-php' => 'د $1 PHP نصب شو.',
-       'config-db-type' => 'د توکبنسټ ډول:',
-       'config-db-host' => 'د توکبنسټ کوربه:',
-       'config-db-host-oracle' => 'د توکبنسټ TNS:',
-       'config-db-name' => 'د توکبنسټ نوم:',
-       'config-db-username' => 'د توکبنسټ کارن-نوم:',
-       'config-db-password' => 'د توکبنسټ پټنوم:',
-       'config-header-mysql' => 'د MySQL امستنې',
-       'config-header-postgres' => 'د PostgreSQL امستنې',
-       'config-header-sqlite' => 'د SQLite امستنې',
-       'config-header-oracle' => 'د اورېکل امستنې',
-       'config-sqlite-readonly' => 'د <code>$1</code> دوتنه د ليکلو وړ نه ده.',
-       'config-sqlite-cant-create-db' => 'د توکبنسټ دوتنه <code>$1</code> جوړه نه شوه.',
-       'config-site-name' => 'د ويکي نوم:',
-       'config-site-name-blank' => 'د وېبځي نوم وليکۍ.',
-       'config-project-namespace' => 'د پروژې نوم-تشيال:',
-       'config-ns-generic' => 'پروژه',
-       'config-admin-box' => 'د پازوال گڼون',
-       'config-admin-name' => 'ستاسې نوم:',
-       'config-admin-password' => 'پټنوم:',
-       'config-admin-password-confirm' => 'پټنوم يو ځل بيا:',
-       'config-admin-email' => 'برېښليک پته:',
-       'config-profile-wiki' => 'پرانيستې ويکي',
-       'config-license-pd' => 'ټولگړی شپول',
-       'config-email-settings' => 'د برېښليک امستنې',
-       'config-install-step-done' => 'ترسره شو',
-       'config-install-tables' => 'لښتيالونه جوړول',
-       'config-help' => 'لارښود',
-       'mainpagetext' => "'''MediaWiki په برياليتوب سره نصب شو.'''",
-       'mainpagedocfooter' => 'د ويکي ساوترې د کارولو د  مالوماتو په اړه [//meta.wikimedia.org/wiki/Help:Contents د کارن لارښود] سره سلا وکړۍ.
-
-== پيلول ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings د امستنو د سازونې لړليک]
-* [//www.mediawiki.org/wiki/Manual:FAQ د ميډياويکي ډېرځليزې پوښتنې]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce د مېډياويکي د برېښليکونو لړليک]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources خپلې ژبې لپاره MediaWiki ځايتابول]',
-);
-
-/** Portuguese (português)
- * @author Crazymadlover
- * @author Hamilton Abreu
- * @author Luckas
- * @author Mormegil
- * @author Platonides
- * @author SandroHc
- * @author Waldir
- * @author 아라
- * @author 555
- */
-$messages['pt'] = array(
-       'config-desc' => 'O instalador do MediaWiki',
-       'config-title' => 'Instalação MediaWiki $1',
-       'config-information' => 'Informação',
-       'config-localsettings-upgrade' => 'Foi detectado um ficheiro <code>LocalSettings.php</code>.
-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 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 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.
-A variável $1 não está definida.
-Por favor defina esta variável no <code>LocalSettings.php</code> e clique "{{int:Config-continue}}".',
-       'config-localsettings-connection-error' => 'Ocorreu um erro ao ligar à base de dados usando as configurações especificadas no <code>LocalSettings.php</code> ou <code>AdminSettings.php</code>. Por favor corrija essas configurações e tente novamente.
-
-$1',
-       'config-session-error' => 'Erro ao iniciar a sessão: $1',
-       'config-session-expired' => 'Os seus dados de sessão parecem ter expirado.
-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 diretório apropriado.',
-       'config-your-language' => 'A sua língua:',
-       'config-your-language-help' => 'Selecione a língua que será usada durante o processo de instalação.',
-       'config-wiki-language' => 'Língua da wiki:',
-       'config-wiki-language-help' => 'Selecione a língua que será predominante na wiki.',
-       'config-back' => '← Voltar',
-       'config-continue' => 'Continuar →',
-       'config-page-language' => 'Língua',
-       'config-page-welcome' => 'Bem-vindo(a) ao MediaWiki!',
-       'config-page-dbconnect' => 'Ligar à base de dados',
-       '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',
-       'config-page-install' => 'Instalar',
-       'config-page-complete' => 'Terminado!',
-       'config-page-restart' => 'Reiniciar a instalação',
-       'config-page-readme' => 'Leia-me',
-       'config-page-releasenotes' => 'Notas de lançamento',
-       'config-page-copying' => 'A copiar',
-       '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',
-       'config-welcome' => '=== Verificações do ambiente ===
-São realizadas verificações básicas para determinar se este ambiente é apropriado para instalação do MediaWiki.
-Se necessitar de pedir ajuda durante a instalação, deve fornecer os resultados destas verificações.', # Fuzzy
-       'config-copyright' => "=== Direitos de autor e Condições de uso ===
-
-$1
-
-Este programa é 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.
-
-Este programa é 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.
-
-Em conjunto com este programa deve ter recebido <doclink href=Copying>uma cópia da licença GNU General Public License</doclink>; se não a recebeu, peça-a por escrito a Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ou [http://www.gnu.org/copyleft/gpl.html leia-a na internet].",
-       'config-sidebar' => '* [//www.mediawiki.org/wiki/MediaWiki/pt Página principal do MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents/pt Ajuda]
-* [//www.mediawiki.org/wiki/Manual:Contents/pt Manual técnico]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]
-----
-* <doclink href=Readme>Leia-me</doclink>
-* <doclink href=ReleaseNotes>Notas de lançamento</doclink>
-* <doclink href=Copying>Cópia</doclink>
-* <doclink href=UpgradeDoc>Atualização</doclink>',
-       'config-env-good' => 'O ambiente foi verificado.
-Pode instalar o MediaWiki.',
-       'config-env-bad' => 'O ambiente foi verificado.
-Não pode instalar o MediaWiki.',
-       'config-env-php' => 'O PHP $1 está instalado.',
-       'config-env-php-toolow' => 'O PHP $1 está instalado.
-No entanto, o MediaWiki requer o PHP $2 ou superior.',
-       'config-unicode-using-utf8' => 'A usar o utf8_normalize.so, por Brion Vibber, 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 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/ projeto ICU].
-Devia [//www.mediawiki.org/wiki/Unicode_normalization_considerations atualizá-la] se tem quaisquer preocupações sobre o uso do Unicode.",
-       'config-no-db' => "Não foi possível encontrar um controlador ''(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 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á 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á 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 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 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 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 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.
-Se está a executar o Mandrake, instale o pacote php-xml.',
-       'config-pcre' => 'Parece faltar o módulo de suporte PCRE.
-Para funcionar, o MediaWiki necessita das funções de expressões regulares compatíveis com Perl.',
-       'config-pcre-no-utf8' => "'''Fatal''': O módulo PCRE do PHP parece ter sido compilado sem suporte PCRE_UTF8.
-O MediaWiki necessita do suporte UTF-8 para funcionar corretamente.",
-       'config-memory-raised' => 'A configuração <code>memory_limit</code> do PHP era $1; foi aumentada para $2.',
-       'config-memory-bad' => "'''Aviso:''' A configuração <code>memory_limit</code> do PHP é $1.
-Isto é provavelmente demasiado baixo.
-A instalação poderá falhar!",
-       'config-ctype' => "'''Fatal''': O PHP tem de ser compilado com suporte para a [http://www.php.net/manual/en/ctype.installation.php extensão Ctype].",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] instalada',
-       '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 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á ativada.',
-       'config-gd' => 'Foi encontrada a biblioteca gráfica GD.
-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á desativada.',
-       'config-no-uri' => "'''Erro:''' Não foi possível determinar a URI atual.
-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 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 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.
-Atualize 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.',
-       'config-using531' => 'O MediaWiki não pode ser usado com o PHP $1 devido a um problema que envolve parâmetros de referência para <code>__call()</code>.
-Para resolver este problema, atualize o PHP para a versão 5.3.2 ou posterior, ou reverta-o para a 5.3.0.
-Instalação interrompida.',
-       'config-suhosin-max-value-length' => 'O Suhosin está instalado e limita a $1 bytes o comprimento do parâmetro GET. O componente ResourceLoader do MediaWiki pode tornear este limite, mas prejudicando o desempenho. Se lhe for possível, deve atribuir o valor 1024 ou maior ao parâmetro <code>suhosin.get.max_value_length</code> no ficheiro <code>php.ini</code>, e definir o mesmo valor para <code>$wgResourceLoaderMaxQueryLength</code> no ficheiro LocalSettings.php.', # Fuzzy
-       'config-db-type' => 'Tipo da base de dados:',
-       'config-db-host' => 'Servidor da base de dados:',
-       'config-db-host-help' => 'Se a base de dados estiver num servidor separado, introduza aqui o nome ou o endereço IP desse servidor.
-
-Se estiver a usar um servidor partilhado, o fornecedor do alojamento deve fornecer o nome do servidor na documentação.
-
-Se está a fazer a instalação num servidor Windows com MySQL, usar como nome do servidor "localhost" poderá não funcionar. Se não funcionar, tente usar "127.0.0.1" como endereço IP local.
-
-Se estiver a usar PostgreSQL, deixe este campo em branco para fazer a ligação através de um socket Unix.',
-       'config-db-host-oracle' => 'TNS (Transparent Network Substrate) da base de dados:',
-       'config-db-host-oracle-help' => 'Introduza um [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Nome Local de Ligação] válido; tem de estar visível para esta instalação um ficheiro tnsnames.ora.<br />Se está a usar bibliotecas cliente versão 10g ou posterior, também pode usar o método [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Ligação Fácil] de atribuição do nome.',
-       'config-db-wiki-settings' => 'Identifique esta wiki',
-       'config-db-name' => 'Nome da base de dados:',
-       'config-db-name-help' => 'Escolha um nome para identificar a sua wiki.
-O nome não deve conter espaços.
-
-Se estiver a usar um servidor partilhado, o fornecedor do alojamento deve poder fornecer-lhe o nome de uma base de dados que possa usar, ou permite-lhe criar bases de dados através de um painel de controle.',
-       '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 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 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:',
-       'config-db-password-empty' => 'Introduza a palavra-chave do novo utilizador da base de dados: $1.
-Embora seja possível criar utilizadores sem palavra-chave, fazê-lo não é seguro.',
-       'config-db-install-username' => 'Introduza o nome de utilizador que será usado para aceder à base de dados durante o processo de instalação. Este utilizador não é o do MediaWiki; é o utilizador da base de dados.',
-       'config-db-install-password' => 'Introduza a palavra-chave do utilizador que será usado para aceder à base de dados durante o processo de instalação. Esta palavra-chave não é a do utilizador do MediaWiki; é a palavra-chave do utilizador da base de dados.',
-       'config-db-install-help' => 'Introduza o nome de utilizador e a palavra-chave que serão usados para aceder à base de dados durante o processo de instalação.',
-       'config-db-account-lock' => 'Usar o mesmo nome de utilizador e palavra-chave durante a operação normal',
-       'config-db-wiki-account' => 'Conta de utilizador para a operação normal',
-       'config-db-wiki-help' => 'Introduza o nome de utilizador e a palavra-chave que serão usados para aceder à base de dados durante a operação normal da wiki.
-Se o utilizador não existir na base de dados, mas a conta de instalação tiver privilégios suficientes, o utilizador que introduzir será criado na base de dados com os privilégios mínimos necessários para a operação normal da wiki.',
-       'config-db-prefix' => 'Prefixo para as tabelas da base de dados:',
-       'config-db-prefix-help' => 'Se necessitar de partilhar uma só base de dados entre várias wikis, ou entre o MediaWiki e outra aplicação, pode escolher adicionar um prefixo ao nome de todas as tabelas desta instalação, para evitar conflitos.
-Não use espaços.
-
-Normalmente, este campo deve ficar vazio.',
-       'config-db-charset' => 'Conjunto de caracteres da base de dados',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binary',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 backwards-compatible UTF-8',
-       'config-charset-help' => "'''Aviso:''' Se usar '''backwards-compatible UTF-8''' (\"UTF-8 compatível com versões anteriores\") no MySQL 4.1+, e depois fizer cópias de segurança da base de dados usando <code>mysqldump</code>, poderá destruir todos os caracteres que não fazem parte do conjunto ASCII, corrompendo assim, de forma irreversível, as suas cópias de segurança!
-
-No modo '''binary''' (\"binário\"), o MediaWiki armazena o texto UTF-8 na base de dados em campos binários.
-Isto é mais eficiente do que o modo UTF-8 do MySQL e permite que sejam usados todos os caracteres Unicode.
-No modo '''UTF-8''', o MySQL saberá em que conjunto de caracteres os seus dados estão e pode apresentá-los e convertê-los da forma mais adequada,
-mas não lhe permitirá armazenar caracteres acima do [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Plano Multilingue Básico].",
-       'config-mysql-old' => 'É necessário o MySQL $1 ou posterior; tem a versão $2.',
-       'config-db-port' => 'Porta da base de dados:',
-       'config-db-schema' => "Esquema ''(schema)'' do MediaWiki",
-       'config-db-schema-help' => 'Normalmente, este esquema estará correto.
-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' => '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 diretório que especificar.
-
-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 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:',
-       'config-oracle-temp-ts' => 'Tablespace temporário:',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-support-info' => 'O MediaWiki suporta as seguintes plataformas de base de dados:
-
-$1
-
-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)',
-       'config-support-oracle' => '* $1 é uma base de dados de uma empresa comercial. ([http://www.php.net/manual/en/oci8.installation.php How to compile PHP with OCI8 support])',
-       'config-header-mysql' => 'Definições MySQL',
-       'config-header-postgres' => 'Definições PostgreSQL',
-       'config-header-sqlite' => 'Definições SQLite',
-       'config-header-oracle' => 'Definições Oracle',
-       'config-invalid-db-type' => 'O tipo de base de dados é inválido',
-       'config-missing-db-name' => 'Tem de introduzir um valor para "Nome da base de dados"',
-       '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.', # 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.
-Use só letras (a-z, A-Z), algarismos (0-9), sublinhados (_) e hífens (-) dos caracteres ASCII.',
-       'config-connection-error' => '$1.
-
-Verifique o servidor, o nome do utilizador e a palavra-chave abaixo e tente novamente.',
-       'config-invalid-schema' => "O esquema ''(schema)'' do MediaWiki, \"\$1\", é inválido.
-Use só letras (a-z, A-Z), algarismos (0-9) e sublinhados (_) dos caracteres ASCII.",
-       'config-db-sys-create-oracle' => 'O instalador só permite criar uma conta nova usando uma conta SYSDBA.',
-       'config-db-sys-user-exists-oracle' => 'A conta "$1" já existe. A conta SYSDBA só pode criar uma conta nova!',
-       'config-postgres-old' => 'É necessário o PostgreSQL $1 ou posterior; tem a versão $2.',
-       '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 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 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 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 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 diretório de dados "$1".
-Verifique a localização e tente novamente.',
-       '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 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 atualizá-las para o MediaWiki $1, clique '''Continuar'''.",
-       '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' => 'Atualização terminada.
-
-Agora pode [$1 começar a usar a sua wiki].',
-       'config-regenerate' => 'Regenerar o LocalSettings.php →',
-       'config-show-table-status' => 'A consulta <code>SHOW TABLE STATUS</code> falhou!',
-       'config-unknown-collation' => "'''Aviso:''' A base de dados está a utilizar uma colação ''(collation)'' desconhecida.",
-       'config-db-web-account' => 'Conta na base de dados para acesso pela internet',
-       'config-db-web-help' => 'Selecione o nome de utilizador e a palavra-chave que o servidor de internet irá utilizar para aceder ao servidor da base de dados, durante a operação normal da wiki.',
-       'config-db-web-account-same' => 'Usar a mesma conta usada na instalação',
-       'config-db-web-create' => 'Criar a conta se ainda não existir',
-       'config-db-web-no-create-privs' => 'A conta que especificou para a instalação não tem privilégios suficientes para criar uma conta.
-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''': 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 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 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.
-As bases de dados MyISAM tendem a ficar corrompidas com maior frequência do que as bases de dados InnoDB.",
-       'config-mysql-charset' => 'Conjunto de caracteres da base de dados:',
-       'config-mysql-binary' => 'Binary',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "No modo '''binary''' (\"binário\"), o MediaWiki armazena o texto UTF-8 na base de dados em campos binários.
-Isto é mais eficiente do que o modo UTF-8 do MySQL e permite que sejam usados todos os caracteres Unicode.
-
-No modo '''UTF-8''', o MySQL saberá em que conjunto de caracteres os seus dados estão e pode apresentá-los e convertê-los da forma mais adequada,
-mas não lhe permitirá armazenar caracteres acima do [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Plano Multilingue Básico].",
-       '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 projeto:',
-       'config-ns-generic' => 'Projeto',
-       'config-ns-site-name' => 'O mesmo que o nome da wiki: $1',
-       'config-ns-other' => 'Outro (especifique)',
-       'config-ns-other-default' => 'AMinhaWiki',
-       'config-project-namespace-help' => 'Seguindo o exemplo da Wikipedia, muitas wikis mantêm as páginas das suas normas e políticas, separadas das páginas de conteúdo, num "\'\'\'espaço nominal do projeto\'\'\'".
-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 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 projeto diferente.',
-       'config-admin-box' => 'Conta de administrador',
-       'config-admin-name' => 'O seu nome:',
-       'config-admin-password' => 'Palavra-chave:',
-       'config-admin-password-confirm' => 'Repita a palavra-chave:',
-       'config-admin-help' => 'Introduza aqui o seu nome de utilizador preferido, por exemplo, "João Beltrão".
-Este é o nome que irá utilizar para entrar na wiki.',
-       'config-admin-name-blank' => 'Introduza um nome de utilizador para administrador.',
-       'config-admin-name-invalid' => 'O nome de utilizador especificado "<nowiki>$1</nowiki>" é inválido.
-Introduza um nome de utilizador diferente.',
-       'config-admin-password-blank' => 'Introduza uma palavra-chave para a conta de administrador.',
-       'config-admin-password-same' => 'A palavra-chave tem de ser diferente do nome de utilizador.',
-       'config-admin-password-mismatch' => 'As duas palavras-chave que introduziu não coincidem.',
-       'config-admin-email' => 'Correio electrónico:',
-       'config-admin-email-help' => 'Introduza aqui um correio electrónico que lhe permita receber mensagens de outros utilizadores da wiki, reiniciar a sua palavra-chave e receber notificações de alterações às suas páginas vigiadas. Pode deixar o campo vazio.',
-       'config-admin-error-user' => 'Ocorreu um erro interno ao criar um administrador com o nome "<nowiki>$1</nowiki>".',
-       'config-admin-error-password' => 'Ocorreu um erro interno ao definir uma palavra-chave para o administrador "<nowiki>$1</nowiki>": <pre>$2</pre>',
-       '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 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!
-Agora pode saltar as configurações restantes e instalar já a wiki.',
-       'config-optional-continue' => 'Faz-me mais perguntas.',
-       'config-optional-skip' => 'Já estou aborrecido, instala lá a wiki.',
-       'config-profile' => 'Perfil de permissões:',
-       'config-profile-wiki' => 'Wiki tradicional', # Fuzzy
-       'config-profile-no-anon' => 'Criação de conta exigida',
-       'config-profile-fishbowl' => 'Somente utilizadores autorizados',
-       'config-profile-private' => 'Wiki privada',
-       'config-profile-help' => "As wikis funcionam melhor quando se deixa tantas pessoas editá-las quanto possível.
-No MediaWiki, é fácil rever as alterações recentes e reverter quaisquer estragos causados por utilizadores novatos ou maliciosos.
-
-No entanto, muitas pessoas consideram o MediaWiki útil de variadas formas e nem sempre é fácil convencer todas as pessoas dos benefícios desta filosofia wiki.
-Por isso pode optar.
-
-Uma '''{{int:config-profile-wiki}}''' permite que todos a editem, sem sequer necessitar de autenticação.
-Uma wiki com '''{{int:config-profile-no-anon}}''' atribui mais responsabilidade, mas pode afastar os colaboradores ocasionais.
-
-Um cenário '''{{int:config-profile-fishbowl}}''' permite que os utilizadores aprovados editem, mas que o público visione as páginas, incluindo o historial das mesmas.
-Uma '''{{int:config-profile-private}}''' só permite que os utilizadores aprovados visionem as páginas e as editem.
-
-Após a instalação, estarão disponíveis mais configurações de privilégios. Consulte [//www.mediawiki.org/wiki/Manual:User_rights a entrada relevante no Manual].", # Fuzzy
-       'config-license' => 'Direitos de autor e licença:',
-       'config-license-none' => 'Sem rodapé com a licença',
-       'config-license-cc-by-sa' => 'Creative Commons - Atribuição - Partilha nos Mesmos Termos',
-       'config-license-cc-by' => 'Creative Commons - Atribuição',
-       'config-license-cc-by-nc-sa' => 'Creative Commons - Atribuição - Uso Não Comercial - Partilha nos Mesmos Termos',
-       'config-license-cc-0' => 'Creative Commons Zero (Domínio Público)',
-       'config-license-gfdl' => 'GNU Free Documentation License 1.3 ou posterior',
-       'config-license-pd' => 'Domínio Público',
-       'config-license-cc-choose' => 'Selecione uma licença personalizada Creative Commons',
-       'config-license-help' => 'Muitas wikis de acesso público licenciam todas as colaborações com uma [http://freedomdefined.org/Definition licença livre].
-Isto ajuda a criar um sentido de propriedade da comunidade e encoraja as colaborações a longo prazo.
-Tal não é geralmente necessário nas wikis privadas ou corporativas.
-
-Se pretende que seja possível usar textos da Wikipédia na sua wiki e que seja possível a Wikipédia aceitar textos copiados da sua wiki, deve escolher a licença Creative Commons - Atribuição - Partilha nos Mesmos Termos.
-
-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' => 'Ativar mensagens eletrónicas de saída',
-       'config-enable-email-help' => 'Se quer que o correio eletrónico funcione, as [http://www.php.net/manual/en/mail.configuration.php definições de correio eletrónico do PHP] têm de estar configuradas corretamente.
-Se não pretende viabilizar qualquer funcionalidade de correio eletrónico, pode desativá-lo aqui.',
-       '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.
-Muitos servidores de correio electrónico exigem que pelo menos a parte do nome do domínio seja válida. \\',
-       '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 seção sobre segurança] do Manual Técnico.
-
-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' => '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.
-
-Para mais informações sobre esta funcionalidade, incluindo instruções sobre como configurá-la para usar outras wikis em vez da Wikimedia Commons, consulte o [//mediawiki.org/wiki/Manual:$wgForeignFileRepos Manual Técnico].',
-       'config-cc-error' => 'O auxiliar de escolha de licenças da Creative Commons não produziu resultados.
-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' => '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 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' => '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 diretório <code>./extensions</code>.
-
-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.
-Se quiser fazer mais alterações, clique Voltar.', # Fuzzy
-       'config-install-step-done' => 'terminado',
-       'config-install-step-failed' => 'falhou',
-       'config-install-extensions' => 'A incluir as extensões',
-       'config-install-database' => 'A preparar a base de dados',
-       'config-install-schema' => "A criar o esquema (''schema'') da base de dados",
-       'config-install-pg-schema-not-exist' => "O esquema ''(schema)'' PostgreSQL não existe",
-       'config-install-pg-schema-failed' => 'A criação das tabelas falhou.
-Certifique-se de que o utilizador "$1" pode escrever no esquema \'\'(schema)\'\' "$2".',
-       'config-install-pg-commit' => 'A gravar as alterações',
-       'config-install-pg-plpgsql' => 'A verificar a presença da linguagem PL/pgSQL',
-       '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 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',
-       'config-install-user-alreadyexists' => 'O utilizador "$1" já existe',
-       'config-install-user-create-failed' => 'A criação do utilizador "$1" falhou: $2',
-       '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 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.",
-       'config-install-tables-failed' => "'''Erro''': A criação das tabelas falhou com o seguinte erro: $1",
-       'config-install-interwiki' => 'A preencher a tabela padrão de interwikis',
-       'config-install-interwiki-list' => 'Não foi possível encontrar o ficheiro <code>interwiki.list</code>.',
-       'config-install-interwiki-exists' => "'''Aviso''': A tabela de interwikis parece já conter entradas.
-O preenchimento padrão desta tabela será saltado.",
-       'config-install-stats' => 'A inicializar as estatísticas',
-       'config-install-keys' => 'A gerar as chaves secretas',
-       'config-insecure-keys' => "'''Warning:''' {{PLURAL:$2|A chave segura|As chaves seguras}} ($1) {{PLURAL:$2|gerada durante a instalação não é completamente segura|geradas durante a instalação não são completamente seguras}}. Considere a possibilidade de {{PLURAL:$2|alterá-la|alterá-las}} manualmente.",
-       'config-install-sysop' => 'A criar a conta de administrador',
-       '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 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.
-
-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 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:
-
-$3
-
-'''Nota''': Se não fizer isto agora, o ficheiro que foi gerado deixará de estar disponível quando sair do processo de instalação.
-
-Depois de terminar o passo anterior, pode '''[$2 entrar na wiki]'''.",
-       'config-download-localsettings' => 'Download do <code>LocalSettings.php</code>',
-       'config-help' => 'ajuda',
-       'config-nofile' => 'Não foi possível encontrar o ficheiro "$1". Terá sido apagado?',
-       'mainpagetext' => "'''MediaWiki instalado com sucesso.'''",
-       'mainpagedocfooter' => 'Consulte o [//meta.wikimedia.org/wiki/Help:Contents Guia de Utilizadores] para informações sobre o uso do software wiki.
-
-== Onde começar ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de opções de configuração]
-* [//www.mediawiki.org/wiki/Manual:FAQ Perguntas e respostas frequentes sobre o MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Subscreva a lista de divulgação de novas versões do MediaWiki]', # Fuzzy
-);
-
-/** Brazilian Portuguese (português do Brasil)
- * @author Cainamarques
- * @author Giro720
- * @author Gustavo
- * @author Luckas
- * @author Marcionunes
- * @author 555
- */
-$messages['pt-br'] = array(
-       'config-desc' => 'O instalador do MediaWiki',
-       'config-title' => 'Instalação do MediaWiki $1',
-       'config-information' => 'Informações',
-       'config-localsettings-upgrade' => 'Foi detectada a existência do arquivo <code>LocalSettings.php</code>.
-Para atualizar esta instalação, insira no box abaixo o valor de <code>$wgUpgradeKey</code>.
-Essa informação pode ser encontrada no arquivo <code>LocalSettings.php</code>',
-       'config-localsettings-cli-upgrade' => 'Foi detectada a existência do arquivo <code><code>LocalSettings.php</code></code>.
-Atualize esta instalação executando o arquivo <code>update.php</code>',
-       'config-localsettings-key' => 'Chave de atualização:',
-       'config-localsettings-badkey' => 'A chave fornecida está incorreta.',
-       'config-upgrade-key-missing' => 'Foi detectada uma instalação existente do MediaWiki.
-Para atualizar esta instalação, insira a seguinte linha na parte inferior do seu <code>LocalSettings.php</code>:
-
-$1',
-       'config-localsettings-incomplete' => 'O arquivo <code>LocalSettings.php</code> parece incompleto.
-A variável $1 não está definida.
-Altere seu <code>LocalSettings.php</code> com a definição dessa variável e clique em "{{int:Config-continue}}".',
-       'config-localsettings-connection-error' => 'Ocorreu um erro ao conectar ao banco de dados através das configurações presentes ou no <code>LocalSettings.php</code> ou no <code>AdminSettings.php</code>. Corrija essas configurações e tente novamente.
-
-$1',
-       'config-session-error' => 'Erro ao iniciar a sessão: $1',
-       'config-session-expired' => 'Os seus dados de sessão parecem ter expirado.
-As sessões estão configuradas para uma duração de $1.
-Você 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 diretório apropriado.',
-       'config-your-language' => 'Seu idioma:',
-       'config-your-language-help' => 'Selecione o idioma que será usado durante o processo de instalação.',
-       'config-wiki-language' => 'Idioma do wiki:',
-       'config-wiki-language-help' => 'Selecione o idioma em que o wiki será predominantemente escrito.',
-       'config-back' => '← Voltar',
-       'config-continue' => 'Continuar →',
-       'config-page-language' => 'Idioma',
-       'config-page-welcome' => 'Bem-vindo(a) ao MediaWiki!',
-       'config-page-dbconnect' => 'Conectar ao banco de dados',
-       'config-page-upgrade' => 'Atualizar a instalação existente',
-       'config-page-dbsettings' => 'Configurações do banco de dados',
-       'config-page-name' => 'Nome',
-       'config-page-options' => 'Opções',
-       'config-page-install' => 'Instalar',
-       'config-page-complete' => 'Concluído!',
-       'config-page-restart' => 'Reiniciar a instalação',
-       'config-page-readme' => 'Leia-me',
-       'config-page-releasenotes' => 'Notas de lançamento',
-       'config-page-copying' => 'Copiando',
-       'config-page-upgradedoc' => 'Atualizando',
-       'config-page-existingwiki' => 'Wiki existente',
-       'config-help-restart' => 'Deseja limpar todos os dados salvos que você introduziu e reiniciar o processo de instalação?',
-       'config-restart' => 'Sim, reiniciar',
-       'config-welcome' => '=== Verificações de ambiente ===
-São realizadas verificações básicas para determinar se este ambiente é apropriado para a instalação do MediaWiki.
-Lembre-se de incluir estas informações se for procurar por suporte para a conclusão da instalação.',
-       'config-copyright' => "=== Direitos autorais e Termos de uso ===
-
-$1
-
-Este programa é software livre; você 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.
-
-Este programa é 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.
-
-Em conjunto com este programa você deve ter recebido <doclink href=Copying>uma cópia da licença GNU General Public License</doclink>; se não a recebeu, peça-a por escrito para Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ou [http://www.gnu.org/copyleft/gpl.html leia-a na internet].",
-       'config-sidebar' => '* [//www.mediawiki.org/wiki/MediaWiki Página principal do MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents Manual de uso]
-* [//www.mediawiki.org/wiki/Manual:Contents Manual administrativo]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]
-----
-* <doclink href=Readme>Leia-me</doclink>
-* <doclink href=ReleaseNotes>Notas de lançamento</doclink>
-* <doclink href=Copying>Licença</doclink>
-* <doclink href=UpgradeDoc>Como fazer upgrade</doclink>',
-       'config-env-good' => 'O ambiente foi verificado.
-Você pode instalar o MediaWiki.',
-       'config-env-bad' => 'O ambiente foi verificado.
-Você não pode instalar o MediaWiki.',
-       'config-env-php' => 'O PHP $1 está instalado.',
-       'config-unicode-using-utf8' => 'Usando o utf8_normalize.so, de Brion Vibber, para a normalização Unicode.',
-       'config-unicode-using-intl' => 'Usando a [http://pecl.php.net/intl extensão intl PECL] para a normalização Unicode.',
-       'config-unicode-pure-php-warning' => "'''Aviso''': A [http://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode sendo usada, em seu lugar, a lenta implementação de PHP puro.
-Se o seu site tem um alto volume de tráfego, informe-se sobre a [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalização Unicode].",
-       'config-no-db' => 'Não foi possível encontrar um driver de banco de dados adequado! É necessário instalar um driver de banco de dados para o PHP.
-São suportados os seguintes tipos de bancos de dados: $1.
-
-Se estiver em uma hospedagem partilhada, peça à sua empresa de hospedagem para instalar um driver de banco de dados adequado.
-Se você mesmo tiver compilado o PHP, reconfigure-o com um cliente de banco de dados ativado usando, por exemplo, <code>./configure --with-mysql</code>.
-Se você instalou o PHP a partir de um pacote do Debian ou do Ubuntu, instale também o módulo php5-mysql.',
-       '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á ativada.'''
-' ' 'Desative-a, se puder.'''
-O MediaWiki funcionará mesmo assim, mas o seu servidor ficará exposto a potenciais vulnerabilidades de segurança.",
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binary',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-binary' => 'Binary',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-ns-generic' => 'Projeto',
-       'config-admin-box' => 'Conta de administrador',
-       'config-admin-name' => 'Seu nome:',
-       'config-admin-password' => 'Senha:',
-       'config-license-pd' => 'Domínio público',
-       'config-logo-help' => 'Faça o upload de uma imagem de tamanho adequado e insira seu URL aqui.
-
-Você pode usar <code>$wgStylePath</code> ou <code>$wgScriptPath</code> se o seu logotipo for associado a esses diretórios.',
-       'config-advanced-settings' => 'Configuração avançada',
-       'config-extensions' => 'Extensões',
-       'config-install-step-done' => 'feito',
-       'config-help' => 'ajuda',
-       'mainpagetext' => "'''MediaWiki instalado com sucesso.'''",
-       'mainpagedocfooter' => 'Consulte o [//meta.wikimedia.org/wiki/Help:Contents Manual de Usuário] para informações de como usar o software wiki.
-
-== Começando ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de opções de configuração]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ do MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussão com avisos de novas versões do MediaWiki]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Traduza o MediaWiki para seu idioma]',
-);
-
-/** Quechua (Runa Simi)
- * @author AlimanRuna
- */
-$messages['qu'] = array(
-       'config-desc' => 'MediaWiki tiyachiq',
-       'config-title' => 'MediaWiki $1 tiyachiy',
-       'config-information' => 'Willay',
-       'config-your-language' => 'Rimayniyki:',
-       'config-wiki-language' => 'Wiki rimay:',
-       'config-back' => '← Ñawpaqman',
-       'config-extensions' => "Mast'ariykuna",
-       'config-install-step-done' => 'rurasqañam',
-       'config-install-step-failed' => 'manam aypasqachu',
-       'config-help' => 'yanapay',
-       'config-nofile' => '"$1" sutiyuq willañiqiqa manam tarisqachu. Qullusqachu?',
-       'mainpagetext' => "'''MediaWiki nisqa llamp'u kaqqa aypaylla takyachisqañam.'''",
-       'mainpagedocfooter' => "Wiki llamp'u kaqmanta willasunaykipaqqa [//meta.wikimedia.org/wiki/Help:Contents Ruraqpaq yanapana] ''(User's Guide)'' sutiyuq p'anqata qhaway.
-
-== Qallarichkaspa ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Kunphigurasyun churanamanta sutisuyu]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki nisqamanta pasaq tapuykuna]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki kachaykuy e-chaski sutisuyu]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources MediaWiki nisqata qampa rimaykiman t'ikray]",
-);
-
-/** Romagnol (Rumagnôl)
- */
-$messages['rgn'] = array(
-       'mainpagetext' => "'''L'instalaziòn d'MediaWiki l'è andêda ben'''",
-);
-
-/** Romansh (rumantsch)
- * @author Gion-andri
- */
-$messages['rm'] = array(
-       'mainpagetext' => "'''MediaWiki è vegnì installà cun success.'''",
-       'mainpagedocfooter' => "Consultai il [//meta.wikimedia.org/wiki/Help:Contents manual per utilisaders] per infurmaziuns davart l'utilisaziun da questa software da wiki.
-
-== Cumenzar ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Glista da las opziuns per la configuraziun]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Glista da mail da MediaWiki cun annunzias da novas versiuns]", # Fuzzy
-);
-
-/** Romanian (română)
- * @author Firilacroco
- * @author Minisarm
- * @author Stelistcristi
- */
-$messages['ro'] = array(
-       'config-desc' => 'Programul de instalare pentru MediaWiki',
-       'config-title' => 'Instalarea MediaWiki $1',
-       'config-information' => 'Informații',
-       'config-localsettings-key' => 'Cheie de actualizare:',
-       'config-localsettings-badkey' => 'Cheia furnizată este incorectă.',
-       'config-session-error' => 'Eroare la pornirea sesiunii: $1',
-       'config-your-language' => 'Limba ta:',
-       'config-your-language-help' => 'Alege o limbă pentru a o utiliza în timpul procesului de instalare.',
-       'config-wiki-language' => 'Limbă wiki:',
-       'config-wiki-language-help' => 'Alege limba în care wiki-ul va fi scris predominant.',
-       'config-back' => '← Înapoi',
-       'config-continue' => 'Continuă →',
-       'config-page-language' => 'Limbă',
-       'config-page-welcome' => 'Bun venit la MediaWiki!',
-       'config-page-dbconnect' => 'Conectează la baza de date',
-       'config-page-upgrade' => 'Extinde instalarea existentă',
-       'config-page-dbsettings' => 'Setări ale bazei de date',
-       'config-page-name' => 'Nume',
-       'config-page-options' => 'Opţiuni',
-       'config-page-install' => 'Instalare',
-       'config-page-complete' => 'Finalizat!',
-       'config-page-restart' => 'Reporneşte instalarea',
-       'config-page-readme' => 'Citeşte-mă',
-       'config-page-releasenotes' => 'Note de lansare',
-       'config-page-copying' => 'Copiere',
-       'config-page-upgradedoc' => 'Actualizare',
-       'config-page-existingwiki' => 'Wiki existent',
-       'config-restart' => 'Da, repornește.',
-       'config-env-php' => 'PHP $1 este instalat.',
-       'config-env-php-toolow' => 'PHP $1 este instalat.
-Totuși, MediaWiki necesită PHP $2 sau mai nou.',
-       'config-db-type' => 'Tipul bazei de date:',
-       'config-db-host' => 'Gazdă bază de date:',
-       'config-db-host-oracle' => 'Baza de date TNS:',
-       'config-db-wiki-settings' => 'Identificați acest wiki',
-       'config-db-name' => 'Numele bazei de date:',
-       'config-db-name-oracle' => 'Schema bazei de date:',
-       'config-db-username' => 'Nume de utilizator pentru baza de date:',
-       'config-db-password' => 'Parola bazei de date:',
-       'config-db-prefix' => 'Prefixul tabelelor din baza de date:',
-       'config-db-charset' => 'Setul de caractere al bazei de date',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binar',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-db-port' => 'Portul bazei de date:',
-       'config-db-schema' => 'Schema pentru MediaWiki:',
-       'config-sqlite-dir' => 'Director de date SQLite:',
-       'config-oracle-def-ts' => 'Spațiu de stocare („tablespace”) implicit:',
-       'config-oracle-temp-ts' => 'Spațiu de stocare („tablespace”) temporar:',
-       'config-header-mysql' => 'Setările MySQL',
-       'config-header-postgres' => 'Setări PostgreSQL',
-       'config-header-sqlite' => 'Setări SQLite',
-       'config-header-oracle' => 'Setări Oracle',
-       'config-invalid-db-type' => 'Tip de bază de date incorect',
-       'config-missing-db-name' => 'Trebuie să introduci o valoare pentru „Numele bazei de date”',
-       'config-connection-error' => '$1.
-
-Verificați gazda, numele de utilizator și parola și reîncercați.',
-       'config-upgrade-done-no-regenerate' => 'Actualizare completă.
-
-Acum puteți [$1 începe să vă folosiți wikiul].',
-       'config-regenerate' => 'Regenerare LocalSettings.php →',
-       'config-unknown-collation' => 'AVERTISMENT: Baza de date folosește o colaționare nerecunoscută.',
-       'config-db-web-account' => 'Contul bazei de date pentru accesul web.',
-       'config-db-web-create' => 'Creați contul dacă nu există deja',
-       'config-mysql-engine' => 'Motor de stocare:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-charset' => 'Setul de caractere al bazei de date:',
-       'config-mysql-binary' => 'Binar',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'Numele wikiului:',
-       'config-site-name-blank' => 'Introduceți un nume pentru sit.',
-       'config-project-namespace' => 'Spațiul de nume al proiectului:',
-       'config-ns-generic' => 'Proiect',
-       'config-ns-site-name' => 'Același nume ca al wikiului: $1',
-       'config-ns-other' => 'Altul (specificați)',
-       'config-ns-other-default' => 'MyWiki',
-       'config-admin-box' => 'Cont de administrator',
-       'config-admin-name' => 'Numele dumneavoastră:',
-       'config-admin-password' => 'Parolă:',
-       'config-admin-password-confirm' => 'Parola, din nou:',
-       'config-admin-password-blank' => 'Introduceți o parolă pentru contul de administrator.',
-       'config-admin-password-same' => 'Parola trebuie să difere de numele de utilizator.',
-       'config-admin-password-mismatch' => 'Cele două parole introduse nu corespund.',
-       'config-admin-email' => 'Adresa de e-mail:',
-       'config-admin-error-bademail' => 'Ați introdus o adresă de e-mail incorectă.',
-       'config-almost-done' => 'Sunteți aproape gata!
-Puteți sări peste configurarea rămasă și să instalați wikiul chiar acum.',
-       'config-optional-continue' => 'Adresează-mi mai multe întrebări.',
-       'config-optional-skip' => 'Sunt deja plictisit, doar instalează wikiul.',
-       'config-profile' => 'Profilul drepturilor de utilizator:',
-       'config-profile-wiki' => 'Wiki tradițional', # Fuzzy
-       'config-profile-no-anon' => 'Crearea de cont este necesară',
-       'config-profile-fishbowl' => 'Doar editorii autorizați',
-       'config-profile-private' => 'Wiki privat',
-       'config-license' => 'Drepturi de autor și licență:',
-       'config-license-none' => 'Fără licență în subsolul paginii',
-       'config-license-cc-by-sa' => 'Creative Commons Atribuire și distribuire în condiții identice',
-       'config-license-cc-by' => 'Creative Commons Atribuire',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Atribuire, necomercial și distribuire în condiții identice',
-       'config-license-cc-0' => 'Creative Commons Zero (domeniu public)',
-       'config-license-gfdl' => 'Licența GNU pentru Documentare Liberă 1.3 sau ulterioară',
-       'config-license-pd' => 'Domeniu public',
-       'config-license-cc-choose' => 'Alegeți o licență Creative Commons personalizată',
-       'config-email-settings' => 'Setări pentru e-mail',
-       'config-email-usertalk' => 'Activați notificările pentru pagina de discuții a utilizatorului',
-       'config-upload-deleted' => 'Director pentru fișierele șterse:',
-       'config-logo' => 'Adresa URL a siglei:',
-       'config-cc-again' => 'Alegeți din nou...',
-       'config-advanced-settings' => 'Configurare avansată',
-       'config-cache-options' => 'Parametrii pentru stocarea temporară a obiectelor:',
-       'config-extensions' => 'Extensii',
-       'config-install-step-done' => 'realizat',
-       'config-install-step-failed' => 'eșuat',
-       'config-install-extensions' => 'Se includ extensiile',
-       'config-install-database' => 'Se creează baza de date',
-       'config-install-schema' => 'Se creează schema',
-       'config-install-pg-schema-not-exist' => 'Schema PostgreSQL nu există.',
-       'config-install-pg-commit' => 'Se validează modificările',
-       'config-install-user' => 'Se creează utilizatorul pentru baza de date',
-       'config-install-user-alreadyexists' => 'Utilizatorul „$1” există deja',
-       'config-install-user-create-failed' => 'Crearea utilizatorului „$1” a eșuat: $2',
-       'config-install-tables' => 'Se creează tabelele',
-       'config-install-stats' => 'Se inițializează statisticile',
-       'config-install-keys' => 'Se generează cheile secrete',
-       'config-install-sysop' => 'Se creează contul de administrator',
-       'config-install-mainpage-failed' => 'Nu s-a putut insera pagina principală: $1',
-       'config-download-localsettings' => 'Descarcă <code>LocalSettings.php</code>',
-       'config-help' => 'ajutor',
-       'mainpagetext' => "'''Programul Wiki a fost instalat cu succes.'''",
-       'mainpagedocfooter' => 'Consultați [//meta.wikimedia.org/wiki/Help:Contents Ghidul utilizatorului (en)] pentru informații despre utilizarea software-ului wiki.
-
-== Primii pași ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista parametrilor configurabili (en)]
-* [//www.mediawiki.org/wiki/Manual:FAQ Întrebări frecvente despre MediaWiki (en)]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discuții a MediaWiki (en)]', # Fuzzy
-);
-
-/** tarandíne (tarandíne)
- * @author Joetaras
- */
-$messages['roa-tara'] = array(
-       'config-desc' => "'U 'nstallatore de MediaUicchi",
-       'config-title' => 'Installazzione de MediaUicchi $1',
-       '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',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 backwards-compatible UTF-8',
-       'config-db-port' => "Porte d'u database:",
-       'config-db-schema' => 'Scheme pe MediaUicchi:',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-admin-email' => 'Indirizze e-mail:',
-       'config-install-step-done' => 'fatte',
-       'config-install-step-failed' => 'fallite',
-       'config-install-extensions' => "'Ngludenne le estenziune",
-       'config-install-database' => "Stoche a 'mboste l'archivije",
-       'config-install-schema' => "Stoche a creje 'u scheme",
-       'config-install-pg-schema-not-exist' => "'U scheme PostgreSQL non g'esiste.",
-       'config-help' => 'ajute',
-       'mainpagetext' => "'''MediaUicchi ha state 'nstallete.'''",
-       'mainpagedocfooter' => "Vè vide [//meta.wikimedia.org/wiki/Help:Contents User's Guide] pe l'mbormaziune sus a cumme s'ause 'u softuer wiki.
-
-== Pe accumenzà ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Liste pe le configuraziune]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ de MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Elenghe d'a poste de MediaUicchi]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Localizzazzione de MediaUicchi pa lènga toje]",
-);
-
-/** Russian (русский)
- * @author Adata80
- * @author DCamer
- * @author Eleferen
- * @author Express2000
- * @author KPu3uC B Poccuu
- * @author Kaganer
- * @author Krinkle
- * @author Lockal
- * @author MaxSem
- * @author Okras
- * @author Yuriy Apostol
- * @author Александр Сигачёв
- * @author Сrower
- * @author 아라
- */
-$messages['ru'] = array(
-       'config-desc' => 'Инсталлятор MediaWiki',
-       'config-title' => 'Установка MediaWiki $1',
-       'config-information' => 'Информация',
-       'config-localsettings-upgrade' => 'Обнаружен файл <code>LocalSettings.php</code>.
-Для обновления этой установки, пожалуйста, введите значение <code>$wgUpgradeKey</code>.
-Его можно найти в файле <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'Обнаружен файл <code>LocalSettings.php</code>.
-Для обновления этой установки, пожалуйста, запустите <code>update.php</code>',
-       'config-localsettings-key' => 'Ключ обновления:',
-       'config-localsettings-badkey' => 'Вы указали неправильный ключ',
-       'config-upgrade-key-missing' => 'Обнаружена существующая установленная копия MediaWiki.
-Чтобы обновить обнаруженную установку, пожалуйста, добавьте следующую строку в конец вашего файла <code>LocalSettings.php</code>:
-
-$1',
-       'config-localsettings-incomplete' => 'Похоже, что существующий файл <code>LocalSettings.php</code> не является полными.
-Не установлена переменная $1.
-Пожалуйста, измените <code>LocalSettings.php</code> так, чтобы значение этой переменной было задано, затем нажмите «{{int:Config-continue}}».',
-       'config-localsettings-connection-error' => 'Произошла ошибка при подключении к базе данных с помощью настроек, указанных в <code>LocalSettings.php</code> или <code>AdminSettings.php</code>. Пожалуйста, исправьте эти настройки и повторите попытку.
-
-$1',
-       'config-session-error' => 'Ошибка при запуске сессии: $1',
-       'config-session-expired' => 'Ваша сессия истекла.
-Сессии настроены на длительность $1.
-Вы её можете увеличить, изменив <code>session.gc_maxlifetime</code> в php.ini.
-Перезапустите процесс установки.',
-       'config-no-session' => 'Данные сессии потеряны!
-Проверьте ваш php.ini и убедитесь, что <code>session.save_path</code> установлен в соответствующий каталог.',
-       'config-your-language' => 'Ваш язык:',
-       'config-your-language-help' => 'Выберите язык, на котором будет происходить процесс установки.',
-       'config-wiki-language' => 'Язык, который будет использовать вики:',
-       'config-wiki-language-help' => 'Выберите язык, на котором будут отображаться вики.',
-       'config-back' => '← Назад',
-       'config-continue' => 'Далее →',
-       'config-page-language' => 'Язык',
-       'config-page-welcome' => 'Добро пожаловать в MediaWiki!',
-       'config-page-dbconnect' => 'Подключение к базе данных',
-       'config-page-upgrade' => 'Обновление существующей установки',
-       'config-page-dbsettings' => 'Настройки базы данных',
-       'config-page-name' => 'Название',
-       'config-page-options' => 'Настройки',
-       'config-page-install' => 'Установка',
-       'config-page-complete' => 'Готово!',
-       'config-page-restart' => 'Начать установку заново',
-       'config-page-readme' => 'Прочти меня',
-       'config-page-releasenotes' => 'Информация о версии',
-       'config-page-copying' => 'Лицензия',
-       'config-page-upgradedoc' => 'Обновление',
-       'config-page-existingwiki' => 'Существующая вики',
-       'config-help-restart' => 'Вы хотите удалить все сохранённые данные, которые вы ввели, и запустить процесс установки заново?',
-       'config-restart' => 'Да, начать заново',
-       'config-welcome' => '=== Проверка окружения ===
-Будут проведены базовые проверки с целью определить, подходит ли данная система для установки MediaWiki.
-Не забудьте включить эту информацию, если вам потребуется помощь для завершения установки.',
-       'config-copyright' => "=== Авторские права и условия ===
-
-$1
-
-MediaWiki является свободным программным обеспечением, которое вы можете распространять и/или изменять в соответствии с условиями лицензии GNU General Public License, опубликованной фондом свободного программного обеспечения; второй версии, либо любой более поздней версии.
-
-MediaWiki распространяется в надежде, что она будет полезной, но '''без каких-либо гарантий''', даже без подразумеваемых гарантий '''коммерческой ценности''' или '''пригодности для определённой цели'''. См. лицензию GNU General Public License для более подробной информации.
-
-Вы должны были получить <doclink href=Copying>копию GNU General Public License</doclink> вместе с этой программой, если нет, то напишите Free Software Foundation, Inc., по адресу: 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA или [http://www.gnu.org/licenses/old-licenses/gpl-2.0.html прочтите её онлайн].",
-       'config-sidebar' => '* [//www.mediawiki.org Сайт MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents/ru Справка для пользователей]
-* [//www.mediawiki.org/wiki/Manual:Contents/ru Справка для администраторов]
-* [//www.mediawiki.org/wiki/Manual:FAQ/ru FAQ]
-----
-* <doclink href=Readme>Readme-файл</doclink>
-* <doclink href=ReleaseNotes>Информация о выпуске</doclink>
-* <doclink href=Copying>Лицензия</doclink>
-* <doclink href=UpgradeDoc>Обновление</doclink>',
-       'config-env-good' => 'Проверка внешней среды была успешно проведена.
-Вы можете установить MediaWiki.',
-       'config-env-bad' => 'Была проведена проверка внешней среды.
-Вы не можете установить MediaWiki.',
-       'config-env-php' => 'Установленная версия PHP: $1.',
-       'config-env-php-toolow' => 'Найден PHP $1, тогда как MediaWiki требуется PHP версии $2 или выше.',
-       'config-unicode-using-utf8' => 'Использовать Brion Vibber utf8_normalize.so для нормализации Юникода.',
-       'config-unicode-using-intl' => 'Будет использовано [http://pecl.php.net/intl расширение «intl» для PECL] для нормализации Юникода.',
-       'config-unicode-pure-php-warning' => "'''Внимание!''': [http://pecl.php.net/intl расширение intl из PECL] недоступно для нормализации Юникода, будет использоваться медленная реализация на чистом PHP.
-Если ваш сайт работает под высокой нагрузкой, вам следует больше узнать о [//www.mediawiki.org/wiki/Unicode_normalization_considerations нормализации Юникода].",
-       'config-unicode-update-warning' => "'''Предупреждение''': установленная версия обёртки нормализации Юникода использует старую версию библиотеки [http://site.icu-project.org/ проекта ICU].
-Вы должны [//www.mediawiki.org/wiki/Unicode_normalization_considerations обновить версию], если хотите полноценно использовать Юникод.",
-       'config-no-db' => 'Не найдено поддержки баз данных! Вам необходимо установить драйвера базы данных для PHP.
-Поддерживаются следующие базы данных: $1.
-
-Если вы используете виртуальный хостинг, обратитесь к своему хостинг-провайдеру с просьбой установить подходящий драйвер базы данных.
-Если вы скомпилировали PHP сами, сконфигурируйте его снова с включенным клиентом базы данных, например, с помощью <code>./configure --with-mysql</code>.
-Если вы установили PHP из пакетов Debian или Ubuntu, то вам также необходимо установить модуль 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> включена.'''
-'''Отключите её, если это возможно.'''
-MediaWiki будет работать, но это снизит безопасность сервера и увеличит риск проникновения извне.",
-       'config-magic-quotes-runtime' => "'''Проблема: включена опция PHP [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]!'''
-Это приводит к непредсказуемой порче вводимых данных.
-Установка и использование MediaWiki без выключения этой опции невозможно.",
-       'config-magic-quotes-sybase' => "'''Проблема: включена опция PHP [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]!'''
-Это приводит к непредсказуемой порче вводимых данных.
-Установка и использование MediaWiki без выключения этой опции невозможно.",
-       'config-mbstring' => "'''Проблема: включена опция PHP [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]!'''
-Это приводит к ошибкам и непредсказуемой порче вводимых данных.
-Установка и использование MediaWiki без выключения этой опции невозможно.",
-       'config-ze1' => "'''Проблема: включена опция PHP [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]!'''
-Это приводит к катастрофическим сбоям в MediaWiki.
-Установка и использование MediaWiki без выключения этой опции невозможно.",
-       'config-safe-mode' => "'''Предупреждение:''' PHP работает в [http://www.php.net/features.safe-mode «безопасном режиме»].
-Это может привести к проблемам, особенно с загрузкой файлов и вставкой математических формул.",
-       'config-xml-bad' => 'XML-модуль РНР отсутствует.
-MediaWiki не будет работать в этой конфигурации, так как требуется функционал этого модуля.
-Если вы работаете в Mandrake, установите PHP XML-пакет.',
-       'config-pcre' => 'Модуль поддержки PCRE не найден.
-Для работы MediaWiki требуется поддержка Perl-совместимых регулярных выражений.',
-       'config-pcre-no-utf8' => "'''Фатальная ошибка'''. Модуль PCRE для PHP, похоже, собран без поддержки PCRE_UTF8.
-MediaWiki требует поддержки UTF-8 для корректной работы.",
-       'config-memory-raised' => 'Ограничение на доступную PHP память (<code>memory_limit</code>) поднято с $1 до $2.',
-       'config-memory-bad' => "'''Внимание:''' размер PHP <code>memory_limit</code> составляет $1.
-Вероятно, этого слишком мало.
-Установка может потерпеть неудачу!",
-       'config-ctype' => "'''Фатальная ошибка:''' PHP должен быть скомпилирован с поддержкой [http://www.php.net/manual/ru/ctype.installation.php расширения Ctype].",
-       'config-json' => "'''Фатальная ошибка:''' PHP был скомпилирован без поддержка JSON.
-Вам необходимо установить либо расширение PHP JSON, либо расширение [http://pecl.php.net/package/jsonc PECL jsonc] перед установкой MediaWiki.
-* PHP-расширение входит в состав Red Hat Enterprise Linux (CentOS) 5 и 6, хотя должна быть включено в <code>/etc/php.ini</code> или <code>/etc/php.d/json.ini</code>.
-* Некоторые дистрибутивы Linux, выпущенные после мая 2013 года, не включают расширение PHP, вместо того, чтобы упаковывать расширение PECL как <code>php5-json</code> или <code>php-pecl-jsonc</code>.",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] установлен',
-       'config-apc' => '[http://www.php.net/apc APC] установлен',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] установлен',
-       'config-no-cache' => "'''Внимание:''' Не найдены [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] или [http://www.iis.net/download/WinCacheForPhp WinCache].
-Кэширование объектов будет отключено.",
-       '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.
-Возможность использования миниатюр изображений будет отключена.',
-       'config-no-uri' => "'''Ошибка:''' Не могу определить текущий URI.
-Установка прервана.",
-       'config-no-cli-uri' => "'''Предупреждение''': нет задан параметр --scriptpath, используется по умолчанию: <code>$1</code> .",
-       'config-using-server' => 'Используется имя сервера «<nowiki>$1</nowiki>».',
-       'config-using-uri' => 'Используется имя сервера "<nowiki>$1$2</nowiki>".',
-       'config-uploads-not-safe' => "'''Внимание:''' директория, используемая по умолчанию для загрузок (<code>$1</code>) уязвима к выполнению произвольных скриптов.
-Хотя MediaWiki проверяет все загружаемые файлы на наличие угроз, настоятельно рекомендуется [//www.mediawiki.org/wiki/Manual:Security#Upload_security закрыть данную уязвимость] перед включением загрузки файлов.",
-       'config-no-cli-uploads-check' => "'''Предупреждение:''' каталог для загрузки по умолчанию ( <code>$1</code> ) не проверялся на уязвимости
- на выполнение произвольного сценария во время установки CLI.",
-       'config-brokenlibxml' => 'В вашей системе имеется сочетание версий PHP и libxml2, могущее привести к скрытым повреждениям данных в MediaWiki и других веб-приложениях.
-Обновите PHP до версии 5.2.9 или старше и libxml2 до 2.7.3 или старше ([//bugs.php.net/bug.php?id=45996 сведения об ошибке]).
-Установка прервана.',
-       'config-using531' => 'PHP $1 не совместим с MediaWiki из-за ошибки с параметрами-ссылками при вызовах <code>__call()</code>.
-Обновитесь до PHP 5.3.2 и выше, или откатитесь до PHP 5.3.0, чтобы избежать этой проблемы.
-Установка прервана.',
-       'config-suhosin-max-value-length' => 'Suhosin установлен и ограничивает параметр GET <code>length</code> до $1 байт. Компонент MediaWiki ResourceLoader будет обходить это ограничение, но это снизит производительность. Если это возможно, следует установить <code>suhosin.get.max_value_length</code> в значение 1024 или выше в <code>php.ini</code>, а также установить для <code>$wgResourceLoaderMaxQueryLength</code> такое же значение в LocalSettings.php.',
-       'config-db-type' => 'Тип базы данных:',
-       'config-db-host' => 'Хост базы данных:',
-       'config-db-host-help' => 'Если сервер базы данных находится на другом сервере, введите здесь его имя хоста или IP-адрес.
-
-Если вы используете виртуальный хостинг, ваш провайдер должен указать правильное имя хоста в своей документации.
-
-Если вы устанавливаете систему на сервере под Windows и используете MySQL, имя сервера «localhost» может не работать. В этом случае попробуйте указать 127.0.0.1 локальный  IP-адрес.
-
-Если вы используете PostgreSQL, оставьте это поле пустым для подключения через сокет Unix.',
-       'config-db-host-oracle' => 'TNS базы данных:',
-       'config-db-host-oracle-help' => 'Введите действительный [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name]; файл tnsnames.ora должен быть видимым для этой инсталляции. <br />При использовании клиентских библиотек версии 10g и старше также возможно использовать метод именования [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].',
-       'config-db-wiki-settings' => 'Идентификация этой вики',
-       'config-db-name' => 'Имя базы данных:',
-       'config-db-name-help' => 'Выберите название-идентификатор для вашей вики.
-Оно не должно содержать пробелов.
-
-Если вы используете виртуальный хостинг, провайдер или выдаст вам конкретное имя базы данных, или позволит создавать базы данных с помощью панели управления.',
-       'config-db-name-oracle' => 'Схема базы данных:',
-       'config-db-account-oracle-warn' => 'Поддерживаются три сценария установки Oracle в качестве базы данных:
-
-Если вы хотите создать учётную запись базы данных в процессе установки, пожалуйста, укажите учётную запись роли SYSDBA для установки и укажите желаемые полномочия учётной записи с веб-доступом. вы также можете учётную запись с веб-доступом вручную и указать только её (если у неё есть необходимые разрешения на создание объектов схемы) или указать две учётные записи, одну с правами создания объектов, а другую с ограничениями для веб-доступа.
-
-Сценарий для создания учётной записи с необходимыми привилегиями можно найти в папке «maintenance/oracle/» этой программы установки. Имейте в виду, что использование ограниченной учётной записи приведёт к отключению всех возможностей обслуживания с учётной записи по умолчанию.',
-       'config-db-install-account' => 'Учётная запись для установки',
-       'config-db-username' => 'Имя пользователя базы данных:',
-       'config-db-password' => 'Пароль базы данных:',
-       'config-db-password-empty' => 'Пожалуйста, введите пароль для нового пользователя базы данных «$1».
-Хотя и возможно создание пользователей без паролей, это небезопасно.',
-       'config-db-install-username' => 'Введите имя пользователя, которое будет использоваться для подключения к базе данных в процессе установки.
-Это не имя пользователя MediaWiki, это имя пользователя для базы данных.',
-       'config-db-install-password' => 'Введите пароль, который будет использоваться для подключения к базе данных в процессе установки.
-Это не пароль пользователя MediaWiki, это пароль для базы данных.',
-       'config-db-install-help' => 'Введите имя пользователя и пароль, которые будут использоваться для подключения к базе данных во время процесса установки.',
-       'config-db-account-lock' => 'Использовать то же имя пользователя и пароль для обычной работы',
-       'config-db-wiki-account' => 'Учётная запись для обычной работы',
-       'config-db-wiki-help' => 'Введите имя пользователя и пароль, которые будут использоваться для подключения к базе данных во время обычной работы вики.
-Если такой учётной записи не существует, а установочная учётная запись имеет достаточно привилегий, то обычная учётная запись будет создана с минимально необходимыми для работы вики привилегиями.',
-       'config-db-prefix' => 'Префикс таблиц базы данных:',
-       'config-db-prefix-help' => 'Если вам нужно делить одну базу данных между несколькими вики, или между MediaWiki и другими веб-приложениями, вы можете добавить префикс для всех имён таблиц.
-Не используйте пробелы.
-
-Это поле обычно остаётся пустым.',
-       'config-db-charset' => 'Набор символов базы данных',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 бинарная',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 обратно совместимая с UTF-8',
-       'config-charset-help' => "'''Внимание.''' Если вы используете '''обратно совместый UTF-8''' на MySQL 4.1+ и создаёте резервные копии базы данных с помощью <code>mysqldump</code>, то все не-ASCII символы могут быть искажены, а резервная копия окажется негодной!
-
-В '''бинарном режиме''' MediaWiki хранит юникодный текст в базе в виде двоичных полей.
-Это более эффективно, чем MySQL в режиме UTF-8, позволяет использовать полный набор символов Юникода.
-В '''режиме UTF-8''' MySQL будет знать к какому набору символу относятся ваши данные, сможет представлять и преобразовать их надлежащим образом (буква Ё окажется при сортировке после буквы Е, а не после буквы Я, как в бинарном режиме),
-но не позволит вам сохранять символы, выходящие за пределы [//ru.wikipedia.org/wiki/Символы,_представленные_в_Юникоде#.D0.91.D0.B0.D0.B7.D0.BE.D0.B2.D0.B0.D1.8F_.D0.BC.D0.BD.D0.BE.D0.B3.D0.BE.D1.8F.D0.B7.D1.8B.D0.BA.D0.BE.D0.B2.D0.B0.D1.8F_.D0.BF.D0.BB.D0.BE.D1.81.D0.BA.D0.BE.D1.81.D1.82.D1.8C BMP].",
-       'config-mysql-old' => 'Необходим MySQL $1 или более поздняя версия. У вас установлен MySQL $2.',
-       'config-db-port' => 'Порт базы данных:',
-       'config-db-schema' => 'Схема для MediaWiki',
-       'config-db-schema-help' => 'Эта схема обычно работают хорошо.
-Изменяйте её только если знаете, что вам это нужно.',
-       'config-pg-test-error' => "Не удаётся подключиться к базе данных '''$1''': $2",
-       'config-sqlite-dir' => 'Директория данных SQLite:',
-       'config-sqlite-dir-help' => "SQLite хранит все данные в одном файле.
-
-Директория, которую вы должны указать, должна быть доступна для записи веб-сервером во время установки.
-
-Она '''не должна''' быть доступна через Интернет, поэтому не должна совпадать с той, где хранятся PHP файлы.
-
-Установщик запишет в эту директорию файл <code>.htaccess</code>, но если это не сработает, кто-нибудь может получить доступ ко всей базе данных.
-В этой базе находится в том числе и информация о пользователях (адреса электронной почты, хэши паролей), а также удалённые страницы и другие секретные данные о вики.
-
-По возможности, расположите базу данных где-нибудь в стороне, например, в <code>/var/lib/mediawiki/yourwiki</code>.",
-       'config-oracle-def-ts' => 'Пространство таблиц по умолчанию:',
-       'config-oracle-temp-ts' => 'Временное пространство таблиц:',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-support-info' => 'MediaWiki поддерживает следующие СУБД:
-
-$1
-
-Если вы не видите своей системы хранения данных в этом списке, следуйте инструкциям, на которые есть ссылка выше, чтобы получить поддержку.',
-       'config-support-mysql' => '* $1 — основная база данных для MediaWiki, и лучше поддерживается ([http://www.php.net/manual/en/mysql.installation.php инструкция, как собрать PHP с поддержкой MySQL])',
-       'config-support-postgres' => '* $1 — популярная открытая СУБД, альтернатива MySQL ([http://www.php.net/manual/en/pgsql.installation.php инструкция, как собрать PHP с поддержкой PostgreSQL]). Могут встречаться небольшие неисправленные ошибки, не рекомендуется для использования в рабочей системе.',
-       'config-support-sqlite' => '* $1 — это легковесная система баз данных, имеющая очень хорошую поддержку. ([http://www.php.net/manual/en/pdo.installation.php инструкция, как собрать PHP с поддержкой SQLite], работающей посредством PDO)',
-       'config-support-oracle' => '* $1 — это коммерческая база данных масштаба предприятия. ([http://www.php.net/manual/en/oci8.installation.php Как собрать PHP с поддержкой OCI8])',
-       'config-header-mysql' => 'Настройки MySQL',
-       'config-header-postgres' => 'Настройки PostgreSQL',
-       'config-header-sqlite' => 'Настройки SQLite',
-       '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' => 'Неверное 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.
-
-Проверьте хост, имя пользователя и пароль и попробуйте ещё раз.',
-       'config-invalid-schema' => 'Неправильная схема для MediaWiki «$1».
-Используйте только ASCII символы (a-z, A-Z), цифры(0-9) и знаки подчёркивания(_).',
-       'config-db-sys-create-oracle' => 'Программа установки поддерживает только использование SYSDBA для создания новой учётной записи.',
-       'config-db-sys-user-exists-oracle' => 'Учётная запись «$1». SYSDBA может использоваться только для создания новой учётной записи!',
-       'config-postgres-old' => 'Необходим PostgreSQL $1 или более поздняя версия. У вас установлен PostgreSQL $2.',
-       'config-sqlite-name-help' => 'Выберите имя-идентификатор для вашей вики.
-Не используйте дефисы и пробелы.
-Эта строка будет использоваться в имени файла SQLite.',
-       'config-sqlite-parent-unwritable-group' => 'Не удалось создать директорию данных <nowiki><code>$1</code></nowiki>, так как у веб-сервера нет прав записи в родительскую директорию <nowiki><code>$2</code></nowiki>.
-
-Установщик определил пользователя, под которым работает веб-сервер.
-Сделайте директорию <nowiki><code>$3</code></nowiki> доступной для записи и продолжите.
-В Unix/Linux системе выполните:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Не удалось создать директорию для данных <code><nowiki>$1</nowiki></code>, так как у веб-сервера нет прав на запись в родительскую директорию <code><nowiki>$2</nowiki></code>.
-
-Программа установки не смогла определить пользователя, под которым работает веб-сервер.
-Для продолжения сделайте каталог <code><nowiki>$3</nowiki></code> глобально доступным для записи серверу (и другим).
-В Unix/Linux сделайте:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Ошибка при создании директории для данных «$1».
-Проверьте расположение и повторите попытку.',
-       'config-sqlite-dir-unwritable' => 'Невозможно произвести запись в каталог «$1».
-Измените настройки доступа так, чтобы веб-сервер мог записывать в этот каталог, и попробуйте ещё раз.',
-       'config-sqlite-connection-error' => '$1.
-
-Проверьте название базы данных и директорию с данными и попробуйте ещё раз.',
-       'config-sqlite-readonly' => 'Файл <code>$1</code> недоступен для записи.',
-       'config-sqlite-cant-create-db' => 'Не удаётся создать файл базы данных <code>$1</code> .',
-       'config-sqlite-fts3-downgrade' => 'У PHP отсутствует поддержка FTS3 — сбрасываем таблицы',
-       'config-can-upgrade' => "В базе данных найдены таблицы MediaWiki.
-Чтобы обновить их до MediaWiki $1, нажмите на кнопку '''«Продолжить»'''.",
-       'config-upgrade-done' => "Обновление завершено.
-
-Теперь вы можете [$1 начать использовать вики].
-
-Если вы хотите повторно создать файл <code>LocalSettings.php</code>, нажмите на кнопку ниже.
-Это действие '''не рекомендуется''', если у вас не возникло проблем при установке.",
-       'config-upgrade-done-no-regenerate' => 'Обновление завершено.
-
-Теперь вы можете [$1 начать работу с вики].',
-       'config-regenerate' => 'Создать LocalSettings.php заново →',
-       'config-show-table-status' => 'Запрос «<code>SHOW TABLE STATUS</code>» не выполнен!',
-       'config-unknown-collation' => "'''Внимание:''' База данных использует нераспознанные правила сортировки.",
-       'config-db-web-account' => 'Учётная запись для доступа к базе данных из веб-сервера',
-       'config-db-web-help' => 'Выберите имя пользователя и пароль, которые веб-сервер будет использовать для подключения к серверу базы данных при обычной работе вики.',
-       'config-db-web-account-same' => 'Использовать ту же учётную запись, что и для установки',
-       'config-db-web-create' => 'Создать учётную запись, если она ещё не существует',
-       'config-db-web-no-create-privs' => 'Учётная запись, указанная вами для установки, не обладает достаточными правами для создания учётной записи.
-Указанная здесь учётная запись уже должна существовать.',
-       'config-mysql-engine' => 'Движок базы данных:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "''' Внимание.''' Вы выбрали механизм MyISAM для хранения данных MySQL. Он не рекомендуется к использованию по следующим причинам:
-* он слабо поддерживает параллелизм из-за табличных блокировок;
-* более склонен к потере данных, по сравнению с другими механизмами;
-* код MediaWiki не всегда учитывает особенности MyISAM должным образом.
-
-Если ваша установка MySQL поддерживает InnoDB, настоятельно рекомендуется выбрать этот механизм.
-Если ваша установка MySQL не поддерживает InnoDB, возможно, настало время обновиться.",
-       'config-mysql-only-myisam-dep' => "'''Предупреждение:''' MyISAM является единственной доступной системой хранения данных для MySQL, которая, однако, не рекомендуется для использования с MediaWiki, потому что:
- * он слабо поддерживает параллелизм из-за блокировки таблиц
- * она больше других систем подвержена повреждению
- * кодовая база MediaWiki не всегда обрабатывает MyISAM так, как следует
-
-Ваша MySQL не поддерживает InnoDB, так что, возможно, настало время для обновления.",
-       'config-mysql-engine-help' => "'''InnoDB''' почти всегда предпочтительнее, так как он лучше справляется с параллельным доступом.
-
-'''MyISAM''' может оказаться быстрее для вики с одним пользователем или с минимальным количеством поступающих правок, однако базы данных на нём портятся чаще, чем на InnoDB.",
-       'config-mysql-charset' => 'Набор символов (кодовая таблица) базы данных:',
-       'config-mysql-binary' => 'Двоичный',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "В '''двоичном режиме''' MediaWiki хранит UTF-8 текст в бинарных полях базы данных.
-Это более эффективно, чем ''UTF-8 режим'' MySQL, и позволяет использовать полный набор символов Unicode.
-
-В '''режиме UTF-8''' MySQL будет знать в какой кодировке находятся Ваши данные и может отображать и преобразовывать их соответствующим образом, но это не позволит вам хранить символы выше [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Базовой Многоязыковой Плоскости].",
-       'config-site-name' => 'Название вики:',
-       'config-site-name-help' => 'Название будет отображаться в заголовке окна браузера и в некоторых других местах вики.',
-       'config-site-name-blank' => 'Введите название сайта.',
-       'config-project-namespace' => 'Пространство имён проекта:',
-       'config-ns-generic' => 'Проект',
-       'config-ns-site-name' => 'То же, что имя вики: $1',
-       'config-ns-other' => 'Другое (укажите)',
-       'config-ns-other-default' => 'MyWiki',
-       'config-project-namespace-help' => "Следуя примеру Википедии, многие вики хранят свои страницы правил отдельно от страниц основного содержания, в так называемом '''«пространстве имён проекта»'''.
-Все названия страниц в этом пространстве имён начинается с определённого префикса, который вы можете задать здесь.
-Обычно, этот префикс происходит от имени вики, но он не может содержать знаки препинания, символы «#» или «:».",
-       'config-ns-invalid' => 'Указанное пространство имён <nowiki>$1</nowiki> недопустимо.
-Укажите другое пространство имён проекта.',
-       'config-ns-conflict' => 'Указанное пространство имён «<nowiki>$1</nowiki>» конфликтует со стандартным пространством имён MediaWiki.
-Укажите другое пространство имён проекта.',
-       'config-admin-box' => 'Учётная запись администратора',
-       'config-admin-name' => 'Имя:',
-       'config-admin-password' => 'Пароль:',
-       'config-admin-password-confirm' => 'Пароль ещё раз:',
-       'config-admin-help' => 'Введите ваше имя пользователя здесь, например, «Иван Иванов».
-Это имя будет использоваться для входа в вики.',
-       'config-admin-name-blank' => 'Введите имя пользователя администратора.',
-       'config-admin-name-invalid' => 'Указанное имя пользователя «<nowiki>$1</nowiki>» недопустимо.
-Укажите другое имя пользователя.',
-       'config-admin-password-blank' => 'Введите пароль для учётной записи администратора.',
-       'config-admin-password-same' => 'Пароль не должен быть таким же, как имя пользователя.',
-       'config-admin-password-mismatch' => 'Введённые вами пароли не совпадают.',
-       'config-admin-email' => 'Адрес электронной почты:',
-       'config-admin-email-help' => 'Введите адрес электронной почты, чтобы получать сообщения от других пользователей вики, иметь возможность восстановить пароль, а также получать уведомления об изменениях страниц из списка наблюдения. Вы можете оставить это поле пустым.',
-       'config-admin-error-user' => 'Внутренняя ошибка при создании учётной записи администратора с именем «<nowiki>$1</nowiki>».',
-       'config-admin-error-password' => 'Внутренняя ошибка при установке пароля для учётной записи администратора «<nowiki>$1</nowiki>»: <pre>$2</pre>',
-       'config-admin-error-bademail' => 'Вы ввели неправильный адрес электронной почты',
-       'config-subscribe' => 'Подписаться на [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce рассылку новостей о появлении новых версий MediaWiki].',
-       'config-subscribe-help' => 'Это список рассылки с малым числом сообщений, используется для анонса новых выпусков и сообщений о проблемах с безопасностью.
-Вам следует подписаться на него и обновлять движок MediaWiki, по мере выхода новых версий.',
-       'config-subscribe-noemail' => 'Вы попытались подписаться на список рассылки уведомлений о новых выпусках без указания адреса электронной почты.
-Укажите адрес электронной почты, если вы хотите подписаться на список рассылки.',
-       'config-almost-done' => 'Вы почти у цели!
-Остальные настройки можно пропустить и приступить к установке вики.',
-       'config-optional-continue' => 'Произвести тонкую настройку',
-       'config-optional-skip' => 'Хватит, установить вики',
-       'config-profile' => 'Профиль прав прользователей:',
-       'config-profile-wiki' => 'Открытая вики',
-       'config-profile-no-anon' => 'Требуется создание учётной записи',
-       'config-profile-fishbowl' => 'Только для авторизованных редакторов',
-       'config-profile-private' => 'Закрытая вики',
-       'config-profile-help' => "Вики-технология лучше всего работает, когда вы позволяете редактировать сайт максимально широкому кругу лиц.
-В MediaWiki легко просмотреть последних изменений и, при необходимости, откатить любой ущерб сделанный злоумышленниками или наивными пользователями.
-
-Однако, движок MediaWiki можно использовать и иными способами, и не далеко не всех удаётся убедить в преимуществах открытой вики-работы.
-Так что в вас есть выбор.
-
-Модель '''«{{int:config-profile-wiki}}»''' позволяет всем править страницы даже не регистрируясь на сайте. Конфигурация '''{{int:config-profile-no-anon}}''' обеспечивает дополнительный учёт, но может отсечь случайных участников.
-
-Сценарий '''«{{int:config-profile-fishbowl}}»''' разрешает редактирование только определённым участникам, но общедоступным остаётся просмотр страниц, в том числе просмотр истории изменения. В режиме '''«{{int:config-profile-private}}»''' просмотр страниц разрешён только определённым пользователям, какая-то их часть может иметь также права на редактирование.
-
-Более сложные схемы разграничения прав можно настроить после установки, см. [//www.mediawiki.org/wiki/Manual:User_rights соответствующее руководство].",
-       'config-license' => 'Авторские права и лицензии:',
-       'config-license-none' => 'Не указывать лицензию в колонтитуле внизу страницы',
-       'config-license-cc-by-sa' => 'Creative Commons Attribution Share Alike',
-       'config-license-cc-by' => 'Creative Commons Attribution',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Attribution Non-Commercial Share Alike',
-       'config-license-cc-0' => 'Creative Commons Zero (общественное достояние)',
-       'config-license-gfdl' => 'GNU Free Documentation License 1.3 или более поздняя',
-       'config-license-pd' => 'Общественное достояние',
-       'config-license-cc-choose' => 'Выберите одну из лицензий Creative Commons',
-       'config-license-help' => "Многие общедоступные вики разрешают использовать свои материалы на условиях [http://freedomdefined.org/Definition/Ru свободных лицензий].
-Это помогает созданию чувства общности, стимулирует долгосрочное участие.
-Но в этом нет необходимости для частных или корпоративных вики.
-
-Если вы хотите использовать тексты из Википедии или хотите, что в Википедию можно было копировать тексты из вашей вики, вам следует выбрать '''Creative Commons Attribution Share Alike'''.
-
-Википедия ранее использовала лицензию GNU Free Documentation License.
-GFDL может быть использована, но она сложна для понимания и осложняет повторное использование материалов.",
-       'config-email-settings' => 'Настройки электронной почты',
-       'config-enable-email' => 'Включить исходящие e-mail',
-       'config-enable-email-help' => 'Если вы хотите, чтобы электронная почта работала, необходимо выполнить [http://www.php.net/manual/en/mail.configuration.php соответствующие настройки PHP].
-Если вы не хотите использовать возможности электронной почты в вики, вы можете её отключить.',
-       'config-email-user' => 'Включить электронную почту от участника к участнику',
-       'config-email-user-help' => 'Разрешить всем пользователям отправлять друг другу электронные письма, если выставлена соответствующая настройка в профиле.',
-       'config-email-usertalk' => 'Включить уведомления пользователей о сообщениях на их странице обсуждения',
-       'config-email-usertalk-help' => 'Разрешить пользователям получать уведомления об изменениях своих страниц обсуждения, если они разрешат это в своих настройках.',
-       'config-email-watchlist' => 'Включить уведомление на электронную почту об изменении списка наблюдения',
-       'config-email-watchlist-help' => 'Разрешить пользователям получать уведомления об отслеживаемых ими страницах, если они разрешили это в своих настройках.',
-       'config-email-auth' => 'Включить аутентификацию через электронную почту',
-       'config-email-auth-help' => "Если эта опция включена, пользователи должны подтвердить свой адрес электронной почты перейдя по ссылке, которая отправляется на e-mail. Подтверждение требуется каждый раз при смене электронного ящика в настройках пользователя.
-Только прошедшие проверку подлинности адреса электронной почты, могут получать электронные письма от других пользователей или изменять уведомления, отправляемые по электронной почте.
-Включение этой опции '''рекомендуется'''  для открытых вики в целях пресечения потенциальных злоупотреблений возможностями электронной почты.",
-       'config-email-sender' => 'Обратный адрес электронной почты:',
-       'config-email-sender-help' => 'Введите адрес электронной почты для использования в качестве обратного адреса исходящей электронной почты.
-На него будут отправляться отказы.
-Многие почтовые серверы требуют, чтобы по крайней мере доменное имя в нём было правильным.',
-       'config-upload-settings' => 'Загрузка изображений и файлов',
-       'config-upload-enable' => 'Разрешить загрузку файлов',
-       'config-upload-help' => 'Разрешение загрузки файлов, потенциально, может привести к угрозе безопасности сервера.
-Для получения дополнительной информации, прочтите в руководстве [//www.mediawiki.org/wiki/Manual:Security раздел, посвящённый безопасности].
-
-Чтобы разрешить загрузку файлов, необходимо изменить права на каталог <code>images</code>, в корневой директории MediaWiki так, чтобы веб-сервер мог записывать в него файлы.
-Затем включите эту опцию.',
-       'config-upload-deleted' => 'Директория для удалённых файлов:',
-       'config-upload-deleted-help' => 'Выберите каталог, в котором будут храниться архивы удалённых файлов.
-В идеальном случае, в этот каталог не должно быть доступа из сети Интернет.',
-       'config-logo' => 'URL логотипа:',
-       'config-logo-help' => 'Стандартная тема оформления MediaWiki содержит над боковой панелью пространство для логотипа размером 135x160 пикселей.
-Загрузите изображение соответствующего размера, и введите его URL здесь.
-
-Вы можете использовать <code>$wgStylePath</code> или <code>$wgScriptPath</code>, если ваш логотип находится относительно к этим путям.
-
-Если вам не нужен логотип, оставьте это поле пустым.',
-       'config-instantcommons' => 'Включить Instant Commons',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons Instant Commons] — это функция, позволяющая использовать изображения, звуки и другие медиафайлы с Викисклада ([//commons.wikimedia.org/ Wikimedia Commons]).
-Для работы этой функции MediaWiki необходим доступ к Интернету.
-
-Дополнительную информацию об Instant Commons, в том числе указания о том, как её настроить для других вики, отличных от Викисклада, можно найти в [//mediawiki.org/wiki/Manual:$wgForeignFileRepos руководстве].',
-       'config-cc-error' => 'Механизм выбора лицензии Creative Commons не вернул результата.
-Введите название лицензии вручную.',
-       'config-cc-again' => 'Выберите ещё раз…',
-       'config-cc-not-chosen' => 'Выберите, какую лицензию Creative Commons Вы хотите использовать, и нажмите кнопку "Продолжить".',
-       'config-advanced-settings' => 'Дополнительные настройки',
-       'config-cache-options' => 'Параметры кэширования объектов:',
-       'config-cache-help' => 'Кэширование объектов используется для повышения скорости MediaWiki путем кэширования часто используемых данных.
-Для средних и больших сайтов кеширование настоятельно рекомендуется включать, а для небольших сайтов кеширование может показать преимущество.',
-       'config-cache-none' => 'Без кэширования (никакой функционал не теряется, но крупные вики-сайты могут работать медленнее)',
-       'config-cache-accel' => 'PHP кэширование объектов (APC, XCache или WinCache)',
-       'config-cache-memcached' => 'Использовать Memcached (требует дополнительной настройки)',
-       'config-memcached-servers' => 'Сервера Memcached:',
-       'config-memcached-help' => 'Список IP-адресов, используемых Memcached.
-Перечислите по одному адресу на строку с указанием портов. Например:
- 127.0.0.1:11211
- 192.168.1.25:1234',
-       'config-memcache-needservers' => 'Вы выбрали тип кэширования Memcached, но не задали адреса серверов.',
-       'config-memcache-badip' => 'Вы ввели неверный IP-адрес для Memcached: $1.',
-       'config-memcache-noport' => 'Не указан порт для сервера Memcached: $1.
-Если вы не знаете порт, по умолчанию используется 11211.',
-       'config-memcache-badport' => 'Номера портов Memcached должны лежать в пределах от $1 до $2.',
-       'config-extensions' => 'Расширения',
-       'config-extensions-help' => 'Расширения MediaWiki, перечисленные выше, были найдены в каталоге <code>./extensions</code>.
-
-Они могут потребовать дополнительные настройки, но их можно включить прямо сейчас',
-       'config-install-alreadydone' => "'''Предупреждение:''' Вы, кажется, уже устанавливали MediaWiki и пытаетесь произвести повторную установку.
-Пожалуйста, перейдите на следующую страницу.",
-       'config-install-begin' => 'Нажав «{{int:config-continue}}», вы начнёте установку MediaWiki.
-Если вы хотите внести изменения, нажмите «{{int:config-back}}».',
-       'config-install-step-done' => 'выполнено',
-       'config-install-step-failed' => 'не удалось',
-       'config-install-extensions' => 'В том числе расширения',
-       'config-install-database' => 'Настройка базы данных',
-       'config-install-schema' => 'Создание схемы',
-       'config-install-pg-schema-not-exist' => 'Схемы PostgreSQL не существует',
-       'config-install-pg-schema-failed' => 'Не удалось создать таблицы.
-Убедитесь в том, что пользователь «$1» может писать в схему «$2».',
-       'config-install-pg-commit' => 'Внесение изменений',
-       'config-install-pg-plpgsql' => 'Проверка языка PL/pgSQL',
-       'config-pg-no-plpgsql' => 'Вам необходимо установить поддержку языка PL/pgSQL для базы данных $1',
-       'config-pg-no-create-privs' => 'Учётная запись, указанная для установки, не обладает достаточными привилегиями для создания учётной записи.',
-       'config-pg-not-in-role' => 'Указанная учётная запись веб-пользователя уже существует.
-Указанная для установки учётная запись не является записью суперпользователя, и не относится к роли веб-пользователя, поэтому не получается создать объекты, принадлежащие веб-пользователю.
-
-MediaWiki в настоящее время требует, чтобы владельцем таблиц был веб-пользователь. Пожалуйста, укажите другое имя учётной записи для веб, или нажмите кнопку «назад» и укажите пользователя с достаточными для установки правами.',
-       'config-install-user' => 'Создание базы данных пользователей',
-       'config-install-user-alreadyexists' => 'Участник «$1» уже существует',
-       'config-install-user-create-failed' => 'Не получилось создать участника «$1»: $2',
-       'config-install-user-grant-failed' => 'Ошибка предоставления прав пользователю «$1»: $2',
-       'config-install-user-missing' => 'Указанного пользователя «$1» не существует.',
-       'config-install-user-missing-create' => 'Указанного пользователя «$1» не существует.
-Пожалуйста поставьте ниже отметку «Создать учётную запись», если вы хотите создать его.',
-       'config-install-tables' => 'Создание таблиц',
-       'config-install-tables-exist' => "'''Предупреждение''': таблицы MediaWiki, возможно, уже существуют.
-Пропуск повторного создания.",
-       'config-install-tables-failed' => "'''Ошибка''': Таблица не может быть создана из-за ошибки: $1",
-       'config-install-interwiki' => 'Заполнение таблицы интервики значениями по умолчанию',
-       'config-install-interwiki-list' => 'Не удалось найти файл <code>interwiki.list</code>.',
-       'config-install-interwiki-exists' => "'''Предупреждение''': в интервики-таблице, кажется, уже есть записи.
-Создание стандартного списка пропущено.",
-       'config-install-stats' => 'Статистика инициализации',
-       'config-install-keys' => 'Создание секретных ключей',
-       'config-insecure-keys' => "'''Предупреждение.''' {{PLURAL:$2|Ключ безопасности $1, созданный во время установки, недостаточно надёжен|Ключи безопасности $1, созданные во время установки, недостаточно надёжны}}. Рассмотрите возможность {{PLURAL:$2|его|их}} изменения вручную.",
-       'config-install-sysop' => 'Создание учётной записи администратора',
-       'config-install-subscribe-fail' => 'Не удаётся подписаться на mediawiki-announce: $1',
-       'config-install-subscribe-notpossible' => 'cURL не установлен и не доступна опция allow_url_fopen.',
-       'config-install-mainpage' => 'Создание главной страницы с содержимым по умолчанию',
-       'config-install-extension-tables' => 'Создание таблиц для включённых расширений',
-       'config-install-mainpage-failed' => 'Не удаётся вставить главную страницу: $1',
-       'config-install-done' => "'''Поздравляем!'''
-Вы успешно установили MediaWiki.
-
-Во время установки был создан файл <code>LocalSettings.php</code>.
-Он содержит всю конфигурации вики.
-
-Вам необходимо скачать его и положить в корневую директорию вашей вики (ту же директорию, где находится файл index.php). Его загрузка должна начаться автоматически.
-
-Если автоматическая загрузка не началась или вы её отменили, вы можете скачать по ссылке ниже:
-
-$3
-
-'''Примечание''': Если вы не сделаете этого сейчас, то сгенерированный файл конфигурации не будет доступен вам в дальнейшем, если вы выйдете из установки, не скачивая его.
-
-По окончании действий, описанных выше, вы сможете '''[$2 войти в вашу вики]'''.",
-       'config-download-localsettings' => 'Загрузить <code>LocalSettings.php</code>',
-       'config-help' => 'справка',
-       'config-nofile' => 'Файл "$1" не удается найти. Он был удален?',
-       'config-extension-link' => 'Знаете ли вы, что ваш вики-проект поддерживает [//www.mediawiki.org/wiki/Manual:Extensions расширения]?
-
-Вы можете просмотреть [//www.mediawiki.org/wiki/Category:Extensions_by_category расширения по категориям] или [//www.mediawiki.org/wiki/Extension_Matrix матрицу расширений], чтобы увидеть их полный список.',
-       'mainpagetext' => "'''Вики-движок «MediaWiki» успешно установлен.'''",
-       'mainpagedocfooter' => 'Информацию по работе с этой вики можно найти в [//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 справочном руководстве].
-
-== Некоторые полезные ресурсы ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Список возможных настроек];
-* [//www.mediawiki.org/wiki/Manual:FAQ Часто задаваемые вопросы и ответы по MediaWiki];
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Рассылка уведомлений о выходе новых версий MediaWiki].
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Перевод MediaWiki на свой язык]',
-);
-
-/** Rusyn (русиньскый)
- * @author Gazeb
- */
-$messages['rue'] = array(
-       'mainpagetext' => "'''MediaWiki была успішно наіншталована.'''",
-       'mainpagedocfooter' => '[//meta.wikimedia.org/wiki/Help:Contents Мануял хоснователя] Вам порадить, як хосновати MediaWiki.
-
-== Про початок ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Наставлїня конфіґурації]
-* [//www.mediawiki.org/wiki/Manual:FAQ Часты вопросы о MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Розосыланя повідомлїнь про новы верзії MediaWiki]', # Fuzzy
-);
-
-/** Sanskrit (संस्कृतम्)
- * @author Hemant wikikosh1
- */
-$messages['sa'] = array(
-       'mainpagetext' => 'मीडियाविकि तु सफलतया अन्तःस्थापितमस्ति',
-);
-
-/** Sakha (саха тыла)
- */
-$messages['sah'] = array(
-       'mainpagetext' => "'''«MediaWiki» сөпкө туруорулунна.'''",
-       'mainpagedocfooter' => 'Биики программатын туһунан [//meta.wikimedia.org/wiki/Help:Contents справочникка] көрүөххүн сөп.
-
-== Саҕаланыыта ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Конфигурация уларытыытын параметрдара]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki релизтарын почтовай испииһэгэ]', # Fuzzy
-);
-
-/** Sardinian (sardu)
- * @author Andria
- */
-$messages['sc'] = array(
-       'mainpagetext' => "'''MediaWiki est stadu installadu in modu currègidu.'''",
-);
-
-/** Sicilian (sicilianu)
- */
-$messages['scn'] = array(
-       'mainpagetext' => "'''Nstallazzioni di MediaWiki cumplitata currettamenti.'''",
-       'mainpagedocfooter' => "Pi favuri taliari [//meta.wikimedia.org/wiki/Help:Contents Guida utenti] pi aiutu supra l'usu e la cunfigurazzioni di stu software wiki.
-
-== P'accuminzari ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Alencu di mpustazzioni di cunfigurazzioni]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailing list dî rilassi di MediaWiki]", # Fuzzy
-);
-
-/** Scots (Scots)
- */
-$messages['sco'] = array(
-       'mainpagetext' => "'''MediaWiki haes been installit wi speed.'''",
-       'mainpagedocfooter' => "Aks the [//meta.wikimedia.org/wiki/Help:Contents Uiser's Manual] for speirins aboot using the wiki saftware.
-
-== Gettin startit ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settins leet]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki releese mailin leet]", # Fuzzy
-);
-
-/** Sassaresu (Sassaresu)
- */
-$messages['sdc'] = array(
-       'mainpagetext' => "'''Isthallazioni di MediaWiki accabadda currentementi.'''",
-       'mainpagedocfooter' => "Cunsultha la [//meta.wikimedia.org/wiki/Aggiuddu:Summàriu Ghia utenti] pa maggiori infuimmazioni i l'usu di chisthu software wiki.
-
-== Pa ischuminzà ==
-Li sighenti cullegamenti so in linga ingrese:
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Impusthazioni di cunfigurazioni]
-* [//www.mediawiki.org/wiki/Manual:FAQ Prigonti friquenti i MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailing list annùnzii MediaWiki]", # Fuzzy
-);
-
-/** Cmique Itom (Cmique Itom)
- */
-$messages['sei'] = array(
-       'mainpagetext' => "'''MediaWiki coccebj installöx successua zo mii.'''",
-);
-
-/** Serbo-Croatian (srpskohrvatski / српскохрватски)
- * @author OC Ripper
- */
-$messages['sh'] = array(
-       'mainpagetext' => "'''MediaWiki softver is uspješno instaliran.'''",
-       'mainpagedocfooter' => 'Kontaktirajte [//meta.wikimedia.org/wiki/Help:Contents uputstva za korisnike] za informacije o upotrebi wiki programa.
-
-== Početak ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista postavki]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki najčešće postavljana pitanja]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista E-Mail adresa MediaWiki]', # Fuzzy
-);
-
-/** Tachelhit (Tašlḥiyt/ⵜⴰⵛⵍⵃⵉⵜ)
- * @author Dalinanir
- */
-$messages['shi'] = array(
-       'mainpagetext' => "'''MediaWiki tǧizn (tsrbk) bla tamukrist.'''",
-       'mainpagedocfooter' => 'Ẓr taǧttnn  [//meta.wikimedia.org/wiki/Aide:Contenu Guide de l’utilisateur] bac ad tawit inɣmisn yaḍn f manik sa tswwurt asɣẓan ad.
-
-== Izwir d MediaWiki ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Umuɣ n iɣwwarn n usgadda ]
-* [//www.mediawiki.org/wiki/Manual:FAQ/fr Isqqsitn f MidyWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Umuɣ n imsgdaln f imbḍitn n MidyaWiki]', # Fuzzy
-);
-
-/** Sinhala (සිංහල)
- * @author Singhalawap
- * @author පසිඳු කාවින්ද
- */
-$messages['si'] = array(
-       'config-desc' => 'මාධ්‍යවිකි සඳහා වූ ස්ථාපකය',
-       'config-title' => 'මාධ්‍යවිකි $1 ස්ථාපනය',
-       'config-information' => 'තොරතුරු',
-       'config-localsettings-key' => 'උසස්කිරීම් යතුර:',
-       'config-localsettings-badkey' => 'ඔබ ඉදිරිපත් කෙරූ යතුර වැරදිය.',
-       'config-session-error' => 'සැසිය ඇරඹීමේ දෝෂය: $1',
-       'config-your-language' => 'ඔබේ භාෂාව:',
-       'config-wiki-language' => 'විකි භාෂාව:',
-       'config-back' => '← ආපසු',
-       'config-continue' => 'ඉදිරියට →',
-       'config-page-language' => 'භාෂාව',
-       'config-page-welcome' => 'මාධ්‍යවිකි වෙත පිළිගනිමු!',
-       'config-page-dbconnect' => 'දත්ත සංචිතයට සම්බන්ධ කරන්න',
-       'config-page-upgrade' => 'පවත්නා ස්ථාපනය උසස් කරන්න',
-       'config-page-dbsettings' => 'දත්ත සංචිත සැකසුම්',
-       'config-page-name' => 'නම',
-       'config-page-options' => 'විකල්ප',
-       'config-page-install' => 'ස්ථාපනය',
-       'config-page-complete' => 'සම්පූර්ණයි!',
-       'config-page-restart' => 'ස්ථාපනය යළි අරඹන්න',
-       'config-page-readme' => 'මාව කියවන්න',
-       'config-page-releasenotes' => 'නිකුතු සටහන්',
-       'config-page-copying' => 'පිටපත් කරමින්',
-       'config-page-upgradedoc' => 'උසස් කරමින්',
-       'config-page-existingwiki' => 'පවත්නා විකිය',
-       'config-env-php' => 'PHP $1 ස්ථාපිතයි.',
-       'config-db-type' => 'දත්ත සංචිත වර්ගය:',
-       'config-db-host' => 'දත්ත සංචිත ධාරක:',
-       'config-db-wiki-settings' => 'මෙම විකිය හඳුනා ගන්න',
-       'config-db-name' => 'දත්ත සංචිතයේ නම:',
-       'config-db-name-oracle' => 'දත්ත සංචිත සංක්ෂිප්ත නිරූපණය:',
-       'config-db-install-account' => 'ස්ථාපනය සඳහා පරිශීලක ගිණුම',
-       'config-db-username' => 'දත්ත සංචිතයේ පරිශීලක නාමය:',
-       'config-db-password' => 'දත්ත සංචිතයේ මුරපදය:',
-       'config-db-wiki-account' => 'සාමාන්‍ය ක්‍රියාකාරිත්වය සඳහා පරිශීලක ගිණුම',
-       'config-db-prefix' => 'දත්ත සංචිත වගු උපසර්ගය:',
-       'config-db-charset' => 'දත්ත සංචිත අක්ෂර කට්ටලය',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 ද්විමය',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 ආපස්සට-ගැළපෙන UTF-8',
-       'config-db-port' => 'දත්ත සංචිතයේ කවුළුව:',
-       'config-db-schema' => 'මාධ්‍යවිකි සඳහා සංක්ෂිප්ත නිරූපණය:',
-       'config-pg-test-error' => "'''$1''' දත්ත සංචිතය වෙත සම්බන්ධ විය නොහැක: $2",
-       'config-sqlite-dir' => 'SQLite දත්ත නාමවලිය:',
-       'config-oracle-def-ts' => 'සාමාන්‍ය වගු අවකාශය:',
-       'config-oracle-temp-ts' => 'තාවකාලික වගු අවකාශය:',
-       'config-header-mysql' => 'MySQL සැකසුම්',
-       'config-header-postgres' => 'PostgreSQL සැකසුම්',
-       'config-header-sqlite' => 'SQLite සැකසුම්',
-       'config-header-oracle' => 'ඔරකල් සැකසුම්',
-       'config-invalid-db-type' => 'වලංගු නොවන දත්ත සංචිත වර්ගය',
-       'config-missing-db-name' => '"දත්ත සංචිත නාමය" සඳහා ඔබ විසින් අගයක් දිය යුතු වේ',
-       'config-missing-db-host' => '"දත්ත සංචිත ධාරකය" සඳහා ඔබ විසින් අගයක් දිය යුතු වේ',
-       'config-missing-db-server-oracle' => '"දත්ත සංචිත TNS" සඳහා ඔබ විසින් අගයක් දිය යුතු වේ',
-       'config-regenerate' => 'නැවත ජනිත කරන්න LocalSettings.php →',
-       'config-db-web-account' => 'ජාල ප්‍රවේශනය සඳහා දත්ත සංචිත ගිණුම',
-       'config-mysql-engine' => 'ආචයන එන්ජිම:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-binary' => 'ද්විමය',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'විකියෙහි නම:',
-       'config-site-name-blank' => 'අඩවි නාමයක් යොදන්න.',
-       'config-project-namespace' => 'ව්‍යාපෘතියේ නාමඅවකාශය:',
-       'config-ns-generic' => 'ව්‍යාපෘතිය',
-       'config-ns-site-name' => 'විකියෙහි නම ලෙසම: $1',
-       'config-ns-other' => 'වෙනත් (විශේෂණය කරන්න)',
-       'config-ns-other-default' => 'මගේවිකිය',
-       'config-admin-box' => 'පරිපාලක ගිණුම',
-       'config-admin-name' => 'ඔබේ නම:',
-       'config-admin-password' => 'මුරපදය:',
-       'config-admin-password-confirm' => 'මුරපදය නැවතත්:',
-       'config-admin-name-blank' => 'පරිපාලක පරිශීලක නාමය යොදන්න.',
-       'config-admin-password-blank' => 'පරිපාලක ගිණුම සඳහා මුරපදය යොදන්න.',
-       'config-admin-password-same' => 'මුරපදය හා පරිශීලක නාමය එක සමාන නොවිය යුතුය.',
-       'config-admin-password-mismatch' => 'ඔබ ඇතුළු කල මුරපද දෙක නොගැලපේ.',
-       'config-admin-email' => 'විද්‍යුත්-තැපැල් ලිපිනය:',
-       'config-admin-error-bademail' => 'ඔබ විසින් වලංගු නොවන විද්‍යුත්-ලිපිනයක් යොදා ඇත.',
-       'config-optional-continue' => 'මගෙන් තව ප්‍රශ්ණ අහන්න.',
-       'config-optional-skip' => 'මම දැනටමත් කම්මැලි වී ඇත, විකිය ස්ථාපනය කරන්න.',
-       'config-profile' => 'පරිශීලක හිමිකම් පැතිකඩ:',
-       'config-profile-wiki' => 'සාම්ප්‍රදායික විකිය', # Fuzzy
-       'config-profile-no-anon' => 'ගිණුම් තැනීම අවශ්‍යයි',
-       'config-profile-fishbowl' => 'අවසරලත් සංස්කාරකවරුන් පමණි',
-       'config-profile-private' => 'පුද්ගලික විකිය',
-       'config-license' => 'කතුහිමිකම සහ බලපත්‍රය:',
-       'config-license-none' => 'බලපත්‍ර පාද තලයක් නොමැත',
-       'config-license-cc-by-sa' => 'නිර්මාණාත්මක පොදුජන ආරෝපණය හුවමාරුවට සමානව',
-       'config-license-cc-by' => 'නිර්මාණාත්මක පොදුජන ආරෝපණය',
-       'config-license-cc-by-nc-sa' => 'නිර්මාණාත්මක පොදුජන ආරෝපණය වාණිජ්‍ය-නොවන හුවමාරුවට සමානව',
-       'config-license-pd' => 'පොදු වසම',
-       'config-email-settings' => 'විද්‍යුත්-තැපැල් සැකසුම්',
-       'config-enable-email' => 'පිටතට යොමු වූ විද්‍යුත්-තැපෑල සක්‍රිය කරන්න',
-       'config-email-user' => 'පරිශීලක-වෙත-පරිශීලක විද්‍යුත්-තැපෑල සක්‍රිය කරන්න',
-       'config-email-usertalk' => 'පරිශීලක කතාබහ පිටු නිවේදනය සක්‍රිය කරන්න',
-       'config-email-watchlist' => 'මුරලැයිස්තු නිවේදනය සක්‍රිය කරන්න',
-       'config-email-auth' => 'විද්‍යුත්-තැපැල් සහතික කිරීම සක්‍රිය කරන්න',
-       'config-email-sender' => 'ප්‍රත්‍යාගමන විද්‍යුත්-තැපැල් ලිපිනය:',
-       'config-upload-settings' => 'පින්තූර සහ ගොනු උඩුගත කිරීම්',
-       'config-upload-enable' => 'ගොනු උඩුගත කිරීම් සක්‍රිය කරන්න',
-       'config-upload-deleted' => 'මැකූ ගොනු සඳහා නාමාවලිය:',
-       'config-logo' => 'ලාංඡනයේ URL:',
-       'config-instantcommons' => 'ක්ෂණික කොමන්ස් සක්‍රිය කරන්න',
-       'config-cc-again' => 'නැවත ඇහිඳගන්න...',
-       'config-advanced-settings' => 'උසස් වින්‍යාසගතකෙරුම',
-       'config-cache-options' => 'වස්තු කෑෂය සඳහා සැකසුම්:',
-       'config-memcached-servers' => 'මතකකෑෂිත සර්වරයන්:',
-       'config-extensions' => 'විස්තීර්ණ',
-       'config-install-step-done' => 'සිදුකලා',
-       'config-install-step-failed' => 'අසාර්ථකයි',
-       'config-install-extensions' => 'විස්තීර්ණ අඩංගු කරමින්',
-       'config-install-database' => 'දත්ත සංචිතය සකසමින්',
-       'config-install-schema' => 'සංක්ෂිප්ත නිරූපණය තනමින්',
-       'config-install-pg-schema-not-exist' => 'PostgreSQL සංක්ෂිප්ත නිරූපණය නොපවතියි.',
-       'config-install-pg-commit' => 'වෙනස්කම් ප්‍රයාපනය කරමින්',
-       'config-install-pg-plpgsql' => 'PL/pgSQL භාෂාව සඳහා පරික්ෂා කරමින්',
-       'config-install-user' => 'දත්ත සංචිත පරිශීලක තනමින්',
-       'config-install-user-alreadyexists' => '"$1" පරිශීලක දැනටමත් පවතී',
-       'config-install-user-create-failed' => '"$1" පරිශීලක තැනීම අසාර්ථකයි: $2',
-       'config-install-user-missing' => 'විශේෂණය කෙරූ "$1" පරිශීලකයා නොපවතියි.',
-       'config-install-tables' => 'වගු තනමින්',
-       'config-install-interwiki' => 'සාමාන්‍ය අන්තර්විකි වගුව ගහනය කරමින්',
-       'config-install-interwiki-list' => '<code>interwiki.list</code> ගොනුව කියවිය නොහැක.',
-       'config-install-stats' => 'සංඛ්‍යානය අරඹමින්',
-       'config-install-keys' => 'රහස් යතුරු ජනිත කරමින්',
-       'config-install-sysop' => 'පරිපාලක පරිශීලක ගිණුම තනමින්',
-       'config-install-mainpage' => 'සාමාන්‍ය අන්තර්ගතය සමඟින් ප්‍රධාන පිටුව තනමින්',
-       'config-install-mainpage-failed' => 'ප්‍රධාන පිටුව ඇතුල් කල නොහැක: $1',
-       'config-download-localsettings' => '<code>LocalSettings.php</code> බාගන්න',
-       'config-help' => 'උදව්',
-       'config-nofile' => '"$1" ගොනුව සොයාගත නොහැක. එක මැකිලා ගියාවත්ද?',
-       'mainpagetext' => "'''මීඩියාවිකි සාර්ථක ලෙස ස්ථාපනය කරන ලදි.'''",
-       'mainpagedocfooter' => 'විකි මෘදුකාංග භාවිතා කිරීම පිළිබඳ තොරතුරු සඳහා  [//meta.wikimedia.org/wiki/Help:Contents පරිශීලකයන් සඳහා නියමුව] හදාරන්න.
-
-== ඇරඹුම ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings වින්‍යාස සැකසුම්]
-* [//www.mediawiki.org/wiki/Manual:FAQ මීඩියාවිකි නිති-විමසන-පැන]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce මීඩියාවිකි නිකුතුව තැපැල් ලැයිස්තුව]', # Fuzzy
-);
-
-/** Slovak (slovenčina)
- * @author Kusavica
- */
-$messages['sk'] = array(
-       'config-your-language' => 'Váš jazyk:',
-       'config-wiki-language' => 'Wiki jazyk:',
-       'config-back' => '← Späť',
-       'config-continue' => 'Pokračovať →',
-       'config-page-language' => 'Jazyk',
-       'config-download-localsettings' => 'Stiahnuť <code>LocalSettings.php</code>',
-       'config-nofile' => 'Súbor "$1" sa nenašiel. Bol zmazaný?',
-       'mainpagetext' => "'''Softvér MediaWiki bol úspešne nainštalovaný.'''",
-       'mainpagedocfooter' => 'Informácie ako používať wiki softvér nájdete v [//meta.wikimedia.org/wiki/Help:Contents Používateľskej príručke].
-
-== Začíname ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Zoznam konfiguračných nastavení]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce mailing list nových verzií MediaWiki]', # Fuzzy
-);
-
-/** Slovenian (slovenščina)
- * @author Dbc334
- * @author Eleassar
- */
-$messages['sl'] = array(
-       'config-desc' => 'Namestitveni program za MediaWiki',
-       'config-title' => 'Namestitev MediaWiki $1',
-       'config-information' => 'Informacije',
-       'config-localsettings-cli-upgrade' => 'Zaznana je bila datoteka <code>LocalSettings.php</code>.
-Za nadgradnjo te namestitve zaženite <code>update.php</code>',
-       'config-localsettings-key' => 'Nadgraditveni ključ:',
-       'config-localsettings-badkey' => 'Naveden ključ je napačen.',
-       'config-upgrade-key-missing' => 'Zaznana je bila obstoječa namestitev MediaWiki.
-Za nadgradnjo te namestitve vstavite naslednjo vrstico na dno vaše <code>LocalSettings.php</code>:
-
-$1',
-       'config-session-error' => 'Napaka pri začenjanju seje: $1',
-       'config-session-expired' => 'Kot kaže, so vaši podatki seje potekli.
-Seje so konfigurirane za dobo $1.
-To lahko povečate tako, da nastavite <code>session.gc_maxlifetime</code> v php.ini.
-Ponovno zaženite postopek namestitve.',
-       'config-no-session' => 'Vaši podatki seje so bili izgubljeni!
-Preverite vaš php.ini in se prepričajte, da je <code>session.save_path</code> nastavljena na ustrezno mapo.',
-       'config-your-language' => 'Vaš jezik:',
-       'config-your-language-help' => 'Izberite jezik, ki bo uporabljen med postopkom namestitve.',
-       'config-wiki-language' => 'Jezik wikija:',
-       'config-wiki-language-help' => 'Izberite jezik, v katerem bo wiki večinoma pisan.',
-       'config-back' => '← Nazaj',
-       'config-continue' => 'Nadaljuj →',
-       'config-page-language' => 'Jezik',
-       'config-page-welcome' => 'Dobrodošli na MediaWiki!',
-       'config-page-dbconnect' => 'Vzpostavi povezavo z zbirko podatkov',
-       'config-page-upgrade' => 'Nadgradi obstoječo namestitev',
-       'config-page-dbsettings' => 'Nastavitve zbirke podatkov',
-       'config-page-name' => 'Ime',
-       'config-page-options' => 'Možnosti',
-       'config-page-install' => 'Namesti',
-       'config-page-complete' => 'Končano!',
-       'config-page-restart' => 'Ponovno zaženi namestitev',
-       'config-page-readme' => 'Beri me',
-       'config-page-releasenotes' => 'Opombe ob izidu',
-       'config-page-copying' => 'Kopiranje',
-       'config-page-upgradedoc' => 'Nadgrajevanje',
-       'config-page-existingwiki' => 'Obstoječ wiki',
-       'config-help-restart' => 'Želite počistiti vse shranjene podatke, ki ste jih vnesti, in ponovno začeti s postopkom namestitve?',
-       'config-restart' => 'Da, ponovno zaženi',
-       'config-welcome' => '=== Pregledi okolja ===
-Izvedli bomo osnovne preglede, da vidimo, če je okolje primerno za namestitev MediaWiki.
-Posredujte rezultate teh pregledov, če med namestitvijo potrebujete pomoč.',
-       'config-sidebar' => '* [//www.mediawiki.org Domača stran MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents Vodnik za uporabnike]
-* [//www.mediawiki.org/wiki/Manual:Contents Vodnik za administratorje]
-* [//www.mediawiki.org/wiki/Manual:FAQ Pogosto zastavljena vprašanja]
-----
-* <doclink href=Readme>Beri me</doclink>
-* <doclink href=ReleaseNotes>Opombe ob izidu</doclink>
-* <doclink href=Copying>Kopiranje</doclink>
-* <doclink href=UpgradeDoc>Nadgrajevanje</doclink>',
-       'config-env-good' => 'Okolje je pregledano.
-Lahko namestite MediaWiki.',
-       'config-env-bad' => 'Okolje je pregledano.
-Ne morete namestiti MediaWiki.',
-       'config-env-php' => 'Nameščen je PHP $1.',
-       'config-env-php-toolow' => 'Nameščen je PHP $1.
-Vendar pa MediaWiki zahteva PHP $2 ali višji.',
-       'config-unicode-using-utf8' => 'Uporaba utf8_normalize.so Briona Vibberja za normalizacijo unikoda.',
-       'config-unicode-using-intl' => 'Uporaba [http://pecl.php.net/intl razširitve PECL intl] za normalizacijo unikoda.',
-       'config-memory-raised' => 'PHP-jev <code>memory_limit</code> je $1, dvignjen na $2.',
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] je nameščen',
-       'config-apc' => '[http://www.php.net/apc APC] je nameščen',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] je nameščen',
-       'config-diff3-bad' => 'GNU diff3 ni bilo mogoče najti.',
-       'config-db-type' => 'Vrsta zbirke podatkov:',
-       'config-db-host' => 'Gostitelj zbirke podatkov:',
-       'config-db-host-oracle' => 'TNS zbirke podatkov:',
-       'config-db-wiki-settings' => 'Prepoznaj ta wiki:',
-       'config-db-name' => 'Ime zbirke podatkov:',
-       'config-db-name-oracle' => 'Shema zbirke podatkov:',
-       'config-db-username' => 'Uporabniško ime zbirke podatkov:',
-       'config-db-password' => 'Geslo zbirke podatkov:',
-       'config-db-prefix' => 'Predpona tabel zbirke podatkov:',
-       'config-db-charset' => 'Nabor znakov zbirke podatkov',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 dvojiško',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 nazaj združljiv UTF-8',
-       'config-mysql-old' => 'Potreben je MySQL $1 ali novejši; vi imate $2.',
-       'config-db-port' => 'Vrata zbirke podatkov:',
-       'config-db-schema' => 'Shema MediaWiki',
-       'config-db-schema-help' => 'Ta shema je po navadi v redu.
-Spremenite jo samo, če veste, da jo morate.',
-       'config-sqlite-dir' => 'Mapa podatkov SQLite:',
-       'config-support-info' => 'MediaWiki podpira naslednje sisteme zbirk podatkov:
-
-$1
-
-Če zgoraj ne vidite navedenega sistema zbirk podatkov, ki ga poskušate uporabiti, sledite navodilom na spodnji povezavi, da omogočite podporo.',
-       'config-header-mysql' => 'Nastavitve MySQL',
-       'config-header-postgres' => 'Nastavitve PostgreSQL',
-       'config-header-sqlite' => 'Nastavitve SQLite',
-       'config-header-oracle' => 'Nastavitve Oracle',
-       'config-invalid-db-type' => 'Neveljavna vrsta zbirke podatkov',
-       'config-missing-db-name' => 'Vnesti morate vrednost za »Ime zbirke podatkov«',
-       '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«.
-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«.
-Uporabljajte samo črke ASCII (a-z, A-Z), številke (0-9), podčrtaje (_) in vezaje (-).',
-       'config-connection-error' => '$1.
-
-Preverite gostitelja, uporabniško ime in geslo spodaj ter poskusite znova.',
-       'config-postgres-old' => 'Potreben je PostgreSQL $1 ali novejši; vi imate $2.',
-       'config-sqlite-connection-error' => '$1.
-
-Preverite mapo podatkov in ime zbirke podatkov spodaj ter poskusite znova.',
-       'config-sqlite-readonly' => 'Datoteka <code>$1</code> ni zapisljiva.',
-       'config-sqlite-cant-create-db' => 'Ne morem ustvariti datoteke zbirke podatkov <code>$1</code>.',
-       'config-upgrade-done-no-regenerate' => 'Nadgradnja je končana.
-
-Sedaj lahko [$1 začnete uporabljati vaš wiki].',
-       'config-regenerate' => 'Ponovno ustvari LocalSettings.php →',
-       'config-show-table-status' => 'Poizvedba <code>SHOW TABLE STATUS</code> ni uspela!',
-       'config-unknown-collation' => "'''Opozorilo:''' Zbirke podatkov uporablja neprepoznano razvrščanje znakov.",
-       'config-db-web-account' => 'Račun zbirke podatkov za spletni dostop',
-       'config-db-web-account-same' => 'Uporabi enak račun kot za namestitev',
-       'config-db-web-create' => 'Ustvari račun, če že ne obstaja',
-       'config-mysql-engine' => 'Pogon skladiščenja:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-charset' => 'Nabor znakov zbirke podatkov:',
-       'config-mysql-binary' => 'Dvojiško',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'Ime wikija:',
-       'config-site-name-help' => 'To bo prikazano v naslovni vrstici brskalnika in na drugih različnih mestih.',
-       'config-site-name-blank' => 'Vnesite ime strani.',
-       'config-project-namespace' => 'Imenski prostor projekta:',
-       'config-ns-generic' => 'Projekt',
-       'config-ns-site-name' => 'Enako kot ime wikija: $1',
-       'config-ns-other' => 'Drugo (navedite)',
-       'config-ns-other-default' => 'MojWiki',
-       'config-ns-invalid' => 'Naveden imenski prostor »<nowiki>$1</nowiki>« ni veljaven.
-Določite drug imenski prostor projekta.',
-       'config-ns-conflict' => 'Naveden imenski prostor »<nowiki>$1</nowiki>« je v sporu s privzetim imenskim prostorom MediaWiki.
-Določite drug imenski prostor projekta.',
-       'config-admin-box' => 'Administratorski račun',
-       'config-admin-name' => 'Vaše ime:',
-       'config-admin-password' => 'Geslo:',
-       'config-admin-password-confirm' => 'Geslo, ponovno:',
-       'config-admin-help' => 'Tukaj vnesite želeno uporabniško ime, na primer »Janez Blog«.
-To je ime, ki ga boste uporabljali za prijavo v wiki.',
-       'config-admin-name-blank' => 'Vnesite uporabniško ime administratorja.',
-       'config-admin-name-invalid' => 'Navedeno uporabniško ime »<nowiki>$1</nowiki>« ni veljavno.
-Določite drugo uporabniško ime.',
-       'config-admin-password-blank' => 'Vnesite geslo za administratorski račun.',
-       'config-admin-password-same' => 'Geslo ne sme biti enako kot uporabniško ime.',
-       'config-admin-password-mismatch' => 'Vneseni gesli se ne ujemata.',
-       'config-admin-email' => 'E-poštni naslov:',
-       'config-admin-error-user' => 'Med ustvarjanjem administratorja »<nowiki>$1</nowiki>« je prišlo do notranje napake.',
-       'config-admin-error-password' => 'Med nastavljanjem gesla za administratorja »<nowiki>$1</nowiki>« je prišlo do notranje napake: <pre>$2</pre>',
-       'config-admin-error-bademail' => 'Vnesli ste neveljaven e-poštni naslov.',
-       'config-subscribe' => 'Naročite se na [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce poštni seznam obvestil o izdajah].',
-       'config-almost-done' => 'Skoraj ste že končali!
-Preostalo konfiguriranje lahko zdaj preskočite in wiki takoj namestite.',
-       'config-optional-continue' => 'Zastavi mi več vprašanj.',
-       'config-optional-skip' => 'Se že dolgočasim; samo namesti wiki.',
-       'config-profile' => 'Profil uporabniških pravic:',
-       'config-profile-wiki' => 'Odprti wiki',
-       'config-profile-no-anon' => 'Zahtevano je ustvarjanje računa',
-       'config-profile-fishbowl' => 'Samo pooblaščeni urejevalci',
-       'config-profile-private' => 'Zasebni wiki',
-       'config-license' => 'Avtorske pravice in licenca:',
-       'config-license-none' => 'Brez noge dovoljenja',
-       'config-license-cc-by-sa' => 'Creative Commons Priznanje avtorstva-Deljenje pod enakimi pogoji',
-       'config-license-cc-by' => 'Creative Commons Priznanje avtorstva',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Priznanje avtorstva-Nekomercialno-Deljenje pod enakimi pogoji',
-       'config-license-cc-0' => 'Creative Commons Zero (javna last)',
-       'config-license-pd' => 'Javna last',
-       'config-license-cc-choose' => 'Izberite dovoljenje Creative Commons po meri',
-       'config-email-settings' => 'Nastavitve e-pošte',
-       'config-enable-email' => 'Omogoči odhodno e-pošto',
-       'config-email-user' => 'Omogoči e-pošto med uporabniki',
-       'config-email-auth' => 'Omogoči overitev preko e-pošte',
-       'config-email-sender' => 'E-poštni naslov za vrnjeno pošto:',
-       'config-upload-settings' => 'Nalaganje slike in datotek',
-       'config-upload-enable' => 'Omogoči nalaganje datotek',
-       'config-upload-deleted' => 'Mapa za izbrisane datoteke:',
-       'config-upload-deleted-help' => 'Izberite mapo za arhiviranje izbrisanih datotek.
-Najbolje je, da mapa ni dostopna preko spleta.',
-       'config-logo' => 'URL logotipa:',
-       'config-cc-error' => 'Izbirnik dovoljenja Creative Commons ni vrnil nobenih rezultatov.
-Vnesite ime dovoljenja ročno.',
-       'config-cc-again' => 'Izberi ponovno ...',
-       'config-cc-not-chosen' => 'Izberite licenco Creative Commons, ki jo želite uporabiti, in kliknite »proceed«.',
-       'config-advanced-settings' => 'Napredna konfiguracija',
-       'config-cache-accel' => 'Predpomnjenje predmetov PHP (APC, XCache ali WinCache)',
-       'config-cache-memcached' => 'Uporabi Memcached (zahteva dodatno namestitev in konfiguracijo)',
-       'config-memcached-servers' => 'Strežniki Memcached:',
-       'config-memcache-badip' => 'Vnesli ste neveljaven IP-naslov za Memcached: $1',
-       'config-extensions' => 'Razširitve',
-       'config-install-step-done' => 'končano',
-       'config-install-step-failed' => 'spodletelo',
-       'config-install-database' => 'Vzpostavljanje zbirke podatkov',
-       'config-install-pg-schema-not-exist' => 'Shema PostgreSQL ne obstaja.',
-       'config-install-user-alreadyexists' => 'Uporabnik »$1« že obstaja',
-       'config-install-tables' => 'Ustvarjanje tabel',
-       'config-download-localsettings' => 'Prenesi <code>LocalSettings.php</code>',
-       'config-help' => 'pomoč',
-       'mainpagetext' => "'''Programje MediaWiki je bilo uspešno nameščeno.'''",
-       'mainpagedocfooter' => 'Oglejte si [//meta.wikimedia.org/wiki/Help:Contents Uporabniški priročnik] za informacije o uporabi programja wiki.
-
-== Kako začeti ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Seznam konfiguracijskih nastavitev]
-* [//www.mediawiki.org/wiki/Manual:FAQ Poogsto zastavljena vprašanja MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Poštni seznam izdaj MediaWiki]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Prevedite MediaWiki v svoj jezik]',
-);
-
-/** Lower Silesian (Schläsch)
- * @author Äberlausitzer
- */
-$messages['sli'] = array(
-       'mainpagetext' => "'''MediaWiki wourde erfolgreich installiert.'''",
-       'mainpagedocfooter' => 'Hilfe zur Benutzung und Konfiguration der Wiki-Software fendest du eim [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbichl].
-
-== Stoarthilfa ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]', # Fuzzy
-);
-
-/** Somali (Soomaaliga)
- * @author Maax
- */
-$messages['so'] = array(
-       'mainpagetext' => "'''MediaWiki Si fiican oo kuugu install gareeyay.'''",
-       'mainpagedocfooter' => "Meeshaan ka akhriso sidii aad u isticmaali leheed brogramka wiki [//meta.wikimedia.org/wiki/Help:Contents User's Guide]  .
-== Bilaaw ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
-);
-
-/** Albanian (shqip)
- */
-$messages['sq'] = array(
-       'mainpagetext' => "'''MediaWiki software u instalua me sukses.'''",
-       'mainpagedocfooter' => 'Për më shumë informata rreth përdorimit të softwerit wiki , ju lutem shikoni [//meta.wikimedia.org/wiki/Help:Contents dokumentacionin përkatës].
-
-== Sa për fillim==
-* [//www.mediawiki.org/wiki/Help:Configuration_settings Parazgjedhjet e MediaWiki-t]
-* [//www.mediawiki.org/wiki/Help:FAQ Pyetjet e shpeshta rreth MediaWiki-t]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Njoftime rreth MediaWiki-t]', # Fuzzy
-);
-
-/** Serbian (Cyrillic script) (српски (ћирилица)‎)
- * @author Rancher
- * @author Михајло Анђелковић
- */
-$messages['sr-ec'] = array(
-       'config-session-error' => 'Грешка при започињању сесије: $1',
-       'config-session-expired' => 'Ваши подаци о сесији су истекли.
-Сесије су подешене да трају $1.
-Њихов рок можете повећати постављањем <code>session.gc_maxlifetime</code> у php.ini.
-Поново покрените инсталацију.',
-       'config-no-session' => 'Ваши подаци о сесији су изгубљени!
-Проверите Ваш php.ini и обезбедите да је <code>session.save_path</code> постављен на одговарајући директоријум.',
-       'config-your-language' => 'Ваш језик:',
-       'config-your-language-help' => 'Изаберите језик који желите да користите током инсталације.',
-       'config-wiki-language' => 'Језик викија:',
-       'config-wiki-language-help' => 'Изаберите језик на ком ће бити садржај викија.',
-       'config-back' => '← Назад',
-       'config-continue' => 'Настави →',
-       'config-page-language' => 'Језик',
-       'config-page-welcome' => 'Добро дошли на МедијаВики!',
-       'config-page-dbconnect' => 'Повезивање са базом података',
-       'config-page-upgrade' => 'Надоградња постојеће инсталације',
-       'config-page-dbsettings' => 'Подешавања базе података',
-       'config-page-name' => 'Назив',
-       'config-page-options' => 'Поставке',
-       'config-page-install' => 'Инсталирај',
-       'config-page-complete' => 'Завршено!',
-       'config-page-restart' => 'Поновно покретање инсталације',
-       'config-page-copying' => 'Умножавање',
-       'config-page-upgradedoc' => 'Надоградња',
-       'config-page-existingwiki' => 'Постојећи вики',
-       'config-help-restart' => 'Желите ли да обришете све сачуване податке које сте унели и поново покренете инсталацију?',
-       'config-restart' => 'Да, покрени поново',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'mainpagetext' => "'''Медијавики је успешно инсталиран.'''",
-       'mainpagedocfooter' => 'Погледајте [//meta.wikimedia.org/wiki/Help:Contents кориснички водич] за коришћење програма.
-
-== Увод ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Помоћ у вези са подешавањима]
-* [//www.mediawiki.org/wiki/Manual:FAQ Често постављена питања]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Дописна листа о издањима Медијавикија]', # Fuzzy
-);
-
-/** Serbian (Latin script) (srpski (latinica)‎)
- */
-$messages['sr-el'] = array(
-       'config-session-error' => 'Greška pri započinjanju sesije: $1',
-       'config-session-expired' => 'Vaši podaci o sesiji su istekli.
-Sesije su podešene da traju $1.
-Njihov rok možete povećati postavljanjem <code>session.gc_maxlifetime</code> u php.ini.
-Ponovo pokrenite instalaciju.',
-       'config-no-session' => 'Vaši podaci o sesiji su izgubljeni!
-Proverite Vaš php.ini i obezbedite da je <code>session.save_path</code> postavljen na odgovarajući direktorijum.',
-       'config-your-language' => 'Vaš jezik:',
-       'config-your-language-help' => 'Izaberite jezik koji želite da koristite tokom instalacije.',
-       'config-wiki-language' => 'Jezik vikija:',
-       'config-wiki-language-help' => 'Izaberite jezik na kom će biti sadržaj vikija.',
-       'config-back' => '← Nazad',
-       'config-continue' => 'Nastavi →',
-       'config-page-language' => 'Jezik',
-       'config-page-welcome' => 'Dobro došli na MedijaViki!',
-       'config-page-dbconnect' => 'Povezivanje sa bazom podataka',
-       'config-page-upgrade' => 'Nadogradnja postojeće instalacije',
-       'config-page-dbsettings' => 'Podešavanja baze podataka',
-       'config-page-name' => 'Naziv',
-       'config-page-options' => 'Postavke',
-       'config-page-install' => 'Instaliraj',
-       'config-page-complete' => 'Završeno!',
-       'config-page-restart' => 'Ponovno pokretanje instalacije',
-       'config-page-copying' => 'Umnožavanje',
-       'config-page-upgradedoc' => 'Nadogradnja',
-       'config-page-existingwiki' => 'Postojeći viki',
-       'config-help-restart' => 'Želite li da obrišete sve sačuvane podatke koje ste uneli i ponovo pokrenete instalaciju?',
-       'config-restart' => 'Da, pokreni ponovo',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'mainpagetext' => "'''MedijaViki je uspešno instaliran.'''",
-       'mainpagedocfooter' => 'Molimo vidite [//meta.wikimedia.org/wiki/Help:Contents korisnički vodič] za informacije o upotrebi viki softvera.
-
-== Za početak ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Pomoć u vezi sa podešavanjima]
-* [//www.mediawiki.org/wiki/Manual:FAQ Najčešće postavljena pitanja]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mejling lista o izdanjima MedijaVikija]', # Fuzzy
-);
-
-/** Sranan Tongo (Sranantongo)
- */
-$messages['srn'] = array(
-       'mainpagetext' => "'''MediaWiki seti kon bun.'''",
-       'mainpagedocfooter' => 'Luku na ini a [//meta.wikimedia.org/wiki/Help:Yepi yepibuku] fu si fa fu kebrouki a wikisoftware.
-
-== Moro yepi ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Den seti]
-* [//www.mediawiki.org/wiki/Manual:FAQ Sani di ben aksi furu (FAQ)]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Boskopu grupu gi nyun meki]', # Fuzzy
-);
-
-/** Swati (SiSwati)
- */
-$messages['ss'] = array(
-       'mainpagetext' => "'''i-MediaWiki seyifakeke ngalokuphelele.'''",
-);
-
-/** Seeltersk (Seeltersk)
- * @author Maartenvdbent
- */
-$messages['stq'] = array(
-       'mainpagetext' => "'''Ju MediaWiki Software wuude mäd Ärfoulch installierd.'''",
-       'mainpagedocfooter' => 'Sjuch ju [//meta.wikimedia.org/wiki/MediaWiki_localization Dokumentation tou de Anpaasenge fon dän Benutseruurfläche] un dät [//meta.wikimedia.org/wiki/Help:Contents Benutserhondbouk] foar Hälpe tou ju Benutsenge un Konfiguration.', # Fuzzy
-);
-
-/** Sundanese (Basa Sunda)
- */
-$messages['su'] = array(
-       'mainpagetext' => "'''''Software'' MediaWiki geus diinstal.'''",
-       'mainpagedocfooter' => "Mangga tingal ''[//meta.wikimedia.org/wiki/MediaWiki_localisation documentation on customizing the interface]'' jeung [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Tungtunan Pamaké] pikeun pitulung maké jeung konfigurasi.", # Fuzzy
-);
-
-/** Swedish (svenska)
- * @author Jopparn
- * @author Skalman
- * @author WikiPhoenix
- */
-$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.',
-       'config-wiki-language' => 'Wikispråk:',
-       'config-wiki-language-help' => 'Välj det språk som wikin främst kommer att skrivas i.',
-       'config-back' => '← Tillbaka',
-       'config-continue' => 'Fortsätt →',
-       'config-page-language' => 'Språk',
-       'config-page-welcome' => 'Välkommen till MediaWiki!',
-       'config-page-dbconnect' => 'Anslut till databas',
-       'config-page-upgrade' => 'Uppgradera existerande installation',
-       'config-page-dbsettings' => 'Databasinställningar',
-       'config-page-name' => 'Namn',
-       'config-page-options' => 'Alternativ',
-       'config-page-install' => 'Installera',
-       'config-page-complete' => 'Slutfört!',
-       'config-page-restart' => 'Starta om installationen',
-       'config-page-readme' => 'Läs mig',
-       'config-page-releasenotes' => 'Utgivningsanteckningar',
-       'config-page-copying' => 'Kopiering',
-       'config-page-upgradedoc' => 'Uppgradering',
-       'config-page-existingwiki' => 'Befintlig wiki',
-       'config-help-restart' => 'Vill du rensa all sparad data som du har skrivit in och starta om installationen?',
-       'config-restart' => 'Ja, starta om',
-       'config-sidebar' => '* [//www.mediawiki.org MediaWikis hemsida]
-* [//www.mediawiki.org/wiki/Help:Contents Användarguide]
-* [//www.mediawiki.org/wiki/Manual:Contents Administratörguide]
-* [//www.mediawiki.org/wiki/Manual:FAQ Frågor och svar]
-----
-* <doclink href=Readme>Läs mig</doclink>
-* <doclink href=ReleaseNotes>Utgivningsanteckningar</doclink>
-* <doclink href=Copying>Kopiering</doclink>
-* <doclink href=UpgradeDoc>Uppgradering</doclink>',
-       'config-env-good' => 'Miljön har kontrollerats.
-Du kan installera MediaWiki.',
-       'config-env-bad' => 'Miljön har kontrollerats.
-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',
-       'config-header-oracle' => 'Oracle-inställningar',
-       '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.
-Använd bara ASCII-bokstäver (a-z, A-Z), siffror (0-9), understreck (_) och bindestreck (-).',
-       'config-connection-error' => '$1.
-
-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].
-
-Om du vill förnya din <code>LocalSettings.php</code>-fil, klicka på knappen nedan.
-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:',
-       'config-mysql-binary' => 'Binär',
-       'config-mysql-utf8' => 'UTF-8',
-       '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.
-Ange ett annat namnrymd för projektet.',
-       'config-admin-box' => 'Administratörskonto',
-       'config-admin-name' => 'Ditt namn:',
-       'config-admin-password' => 'Lösenord:',
-       'config-admin-password-confirm' => 'Lösenord igen:',
-       'config-admin-help' => 'Skriv in ditt föredragna användarnamn här, t.ex. "Joe Bloggs".
-Detta är namnet du kommer att använda för att logga in på wikin.',
-       'config-admin-name-blank' => 'Ange ett användarnamn för administratörskontot.',
-       'config-admin-name-invalid' => 'Det angivna användarnamnet "<nowiki>$1</nowiki>" är ogiltigt.
-Ange ett annat användarnamn.',
-       'config-admin-password-blank' => 'Ange ett lösenord för administratörskontot.',
-       '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:',
-       'config-license-none' => 'Ingen licenssidfot',
-       'config-license-cc-by-sa' => 'Creative Commons Erkännande Dela Lika',
-       'config-license-cc-by' => 'Creative Commons Erkännande',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Erkännande Icke-Kommersiell Dela Lika',
-       'config-license-cc-0' => 'Creative Commons Zero (allmän egendom)',
-       'config-license-gfdl' => 'GNU Free Documentation License 1.3 eller senare',
-       '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.
-
-Installationsprogrammet har genererat filen <code>LocalSettings.php</code>.
-Det innehåller alla dina konfigurationer.
-
-Du kommer att behöva ladda ned den och placera den i botten av din wiki-installation (samma mapp som index.php). Nedladdningen borde ha startats automatiskt.
-
-Om ingen nedladdning erbjöds, eller om du har avbrutit det kan du starta om nedladdningen genom att klicka på länken nedan:
-
-$3
-
-'''OBS''': Om du inte gör detta nu, kommer denna genererade konfigurationsfil inte vara tillgänglig för dig senare om du avslutar installationen utan att ladda ned den.
-
-När det är klart, kan du '''[$2 gå in på din wiki]'''.",
-       'config-download-localsettings' => 'Ladda ned <code>LocalSettings.php</code>',
-       'config-help' => 'hjälp',
-       'config-nofile' => 'Filen "$1" kunde inte hittas. Har den tagits bort?',
-       'mainpagetext' => "'''MediaWiki har installerats utan problem.'''",
-       'mainpagedocfooter' => 'Information om hur wiki-programvaran används finns i [//meta.wikimedia.org/wiki/Help:Contents användarguiden].
-
-== Att komma igång ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista över konfigurationsinställningar]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mail list]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Lokalisera MediaWiki för ditt språk]',
-);
-
-/** Swahili (Kiswahili)
- * @author Lloffiwr
- */
-$messages['sw'] = array(
-       'mainpagetext' => "'''MediaWiki imefanikiwa kuingizwa.'''",
-       'mainpagedocfooter' => 'Shauriana na [//meta.wikimedia.org/wiki/Help:Contents Mwongozo wa Mtumiaji] kwa habari juu ya utumiaji wa bidhaa pepe ya wiki.
-
-== Msaada wa kianzio ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Orodha ya mipangilio ya msingi]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ ya MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Orodha ya utoaji wa habari za MediaWiki]', # Fuzzy
-);
-
-/** Silesian (ślůnski)
- * @author Djpalar
- */
-$messages['szl'] = array(
-       'mainpagetext' => "'''Sztalowańy MediaWiki śe udoło.'''",
-       'mainpagedocfooter' => 'Uobezdrzij [//meta.wikimedia.org/wiki/Help:Contents przewodńik sprowjacza], kaj sům informacyje uo dźołańu uoprogramowańo MediaWiki.
-
-== Na sztart ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista sztalowań konfiguracyje]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Komuńikaty uo nowych wersyjach MediaWiki]', # Fuzzy
-);
-
-/** Tamil (தமிழ்)
- * @author Karthi.dr
- * @author TRYPPN
- * @author மதனாஹரன்
- */
-$messages['ta'] = array(
-       'config-title' => 'மீடியாவிக்கி $1 நிறுவுதல்',
-       'config-information' => 'தகவல்',
-       'config-localsettings-key' => 'தரமுயர்த்தல் குறியீடு:',
-       'config-localsettings-badkey' => 'நீங்கள் தந்த குறியீடு தவறானது.',
-       'config-your-language' => 'தங்களது மொழி:',
-       'config-your-language-help' => 'நிறுவல் செயன்முறையின்போது பயன்படுத்துவதற்கு ஒரு மொழியைத் தெரிவு செய்யவும்.',
-       'config-wiki-language' => 'விக்கி மொழி:',
-       'config-back' => '← முந்தைய',
-       'config-continue' => 'தொடரவும் →',
-       'config-page-language' => 'மொழி',
-       'config-page-welcome' => 'மீடியாவிக்கிக்கு வருக !',
-       'config-page-dbconnect' => 'தரவுத் தளத்துடன் தொடர்பு கொள்ளவும்',
-       'config-page-dbsettings' => 'தரவுத் தள அமைப்புகள்',
-       'config-page-name' => 'பெயர்',
-       'config-page-options' => 'விருப்பத்தேர்வுகள்',
-       'config-page-install' => 'நிறுவு',
-       'config-page-complete' => 'நிறைவு!',
-       'config-page-restart' => 'நிறுவலை மீண்டும் தொடங்கவும்',
-       'config-page-readme' => 'இதைப் படி',
-       'config-page-releasenotes' => 'வெளியீட்டு குறிப்புகள்',
-       'config-page-copying' => 'நகலெடுக்கப்படுகிறது',
-       'config-page-upgradedoc' => 'தரமுயர்த்தப்படுகிறது',
-       'config-page-existingwiki' => 'இருக்கின்ற விக்கி',
-       'config-restart' => 'ஆம், மறுமுறை துவங்கு',
-       'config-sidebar' => '* [//www.mediawiki.org மீடியாவிக்கி முகப்பு]
-* [//www.mediawiki.org/wiki/Help:Contents பயனரின் கையேடு]
-* [//www.mediawiki.org/wiki/Manual:Contents மேலாளரின் கையேடு]
-* [//www.mediawiki.org/wiki/Manual:FAQ அகேகே]
-----
-* <doclink href=Readme>என்னை வாசிக்கவும்</doclink>
-* <doclink href=ReleaseNotes>வெளியீட்டுக் குறிப்புகள்</doclink>
-* <doclink href=Copying>படியெடுத்தல்</doclink>
-* <doclink href=UpgradeDoc>நிகழ்நிலைப்படுத்தல்</doclink>',
-       'config-db-type' => 'தரவுத்தள வகை:',
-       'config-db-wiki-settings' => 'இந்த விக்கியைக் கண்டுபிடி',
-       'config-db-name' => 'தரவுதளப் பெயர்:',
-       'config-db-install-account' => 'நிறுவலுக்கான பயனர் கணக்கு',
-       'config-db-username' => 'தரவுத்தள பயனர்பெயர்:',
-       'config-db-password' => 'தரவுத்தள கடவுச்சொல்:',
-       'config-db-prefix' => 'தரவுத் தள வரிசைப் பட்டியல் முன்னொட்டு:',
-       'config-db-charset' => 'தரவுத் தள வரியுருத் தொகுதி',
-       'config-invalid-db-type' => 'செல்லாத தரவுத்தள வகை',
-       'config-upgrade-done-no-regenerate' => 'தரமுயர்த்தல் முழுமையடைந்தது.
-நீங்கள் தற்போது [$1 உங்கள் விக்கியைப் பயன்படுத்தத் துவங்கலாம்].',
-       'config-db-web-account' => 'வலை அணுகலுக்கான தரவுத் தளக் கணக்கு',
-       'config-mysql-engine' => 'சேமிப்பு இயந்திரம்:',
-       'config-mysql-charset' => 'தரவுத் தள வரியுருத் தொகுதி:',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'விக்கியின் பெயர்:',
-       'config-site-name-blank' => 'ஒரு தளத்தின் பெயரை உள்ளிடுக.',
-       'config-ns-generic' => 'திட்டம்',
-       'config-ns-other' => 'ஏனையவை (குறிப்பிடவும்)',
-       'config-admin-box' => 'நிருவாகி கணக்கு',
-       'config-admin-name' => 'தங்களது பெயர்:',
-       'config-admin-password' => 'கடவுச்சொல்:',
-       'config-admin-password-confirm' => 'கடவுச்சொல் மறுமுறையும்:',
-       'config-admin-name-blank' => 'நிருவாக அணுக்கம் உள்ள பயனர் பெயரை இடுக.',
-       'config-admin-password-blank' => 'நிருவாகி கணக்குக்கு கடவுச்சொல் ஒன்றை உள்ளிடவும்.',
-       'config-admin-password-same' => 'பயனர் பெயரையே கடவுச்சொல்லாக வைத்துக் கொள்ள முடியாது.',
-       'config-admin-password-mismatch' => 'நீங்கள் பதிந்த கடவுச்சொற்கள் ஒன்றுக்கொன்று பொருந்தவில்லை.',
-       'config-admin-email' => 'மின்னஞ்சல் முகவரி:',
-       'config-admin-error-bademail' => 'நீங்கள் செல்லாத ஒரு மின்னஞ்சல் முகவரியைத் தந்துள்ளீர்கள்.',
-       'config-optional-continue' => 'என்னை இன்னும் அதிகமாக வினவு.',
-       'config-optional-skip' => 'நான் ஏற்கனவே சோர்வடைந்துள்ளேன், விக்கியை மட்டும் உருவாக்கு.',
-       'config-profile' => 'பயனர் உரிமைகள் சுயவிவரம்:',
-       'config-profile-wiki' => 'பாரம்பரிய விக்கி', # Fuzzy
-       'config-profile-no-anon' => 'கணக்கு உருவாக்குதல் அவசியம்',
-       'config-profile-private' => 'தனியார் விக்கி',
-       'config-license' => 'பதிப்புரிமை மற்றும் உரிமம்:',
-       'config-license-pd' => 'பொதுக்களம்',
-       'config-email-settings' => 'மின்னஞ்சல் அமைப்புகள்',
-       'config-email-user' => 'பயனர்-பயனர் மின்னஞ்சலைச் செயற்படுத்தவும்',
-       'config-email-usertalk' => 'பயனர் பேச்சுப் பக்க அறிவிப்பைச் செயற்படுத்தவும்',
-       'config-email-watchlist' => 'கவனிப்புப் பட்டியல் அறிவிப்பைச் செயற்படுத்தவும்',
-       'config-upload-settings' => 'படிமம் மற்றும் கோப்பு பதிவேற்றங்கள்',
-       'config-upload-enable' => 'கோப்புப் பதிவேற்றங்களைச் செயற்படுத்தவும்',
-       'config-upload-deleted' => 'அழித்த கோப்புகளுக்கான அடைவு:',
-       'config-logo' => 'அடையாளச் சின்ன உரலி:',
-       'config-extensions' => 'நீட்சிகள்',
-       'config-install-step-done' => 'முடிந்தது',
-       'config-install-step-failed' => 'தோல்வியுற்றது',
-       'config-install-user' => 'தரவுத் தளப் பயனரை உருவாக்குகிறது',
-       'config-install-user-alreadyexists' => 'பயனர் "$1" ஏற்கனவே உள்ளது',
-       'config-install-tables' => 'வரிசைப் பட்டியல்களை உருவாக்குகிறது',
-       'config-install-mainpage' => 'இயல்புநிலை உள்ளடக்கத்துடன் முதற்பக்கத்தை உருவாக்குகிறது',
-       'config-install-extension-tables' => 'செயற்படுத்தப்பட்ட நீட்சிகளுக்கு வரிசைப் பட்டியல்களை உருவாக்குகிறது',
-       'config-download-localsettings' => '<code>LocalSettings.php</code>ஐத் தரவிறக்கவும்',
-       'config-help' => 'உதவி',
-       'mainpagetext' => "'''விக்கி மென்பொருள் வெற்றிகரமாக உள்ளிடப்பட்டது.'''",
-       'mainpagedocfooter' => 'விக்கி மென்பொருளைப் பயன்படுத்துவது தொடர்பாக [//meta.wikimedia.org/wiki/Help:Contents பயனர் வழிகாட்டியைப்] பார்க்க.
-
-== தொடக்கப்படிகள் ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings அமைப்புக்களை மாற்றம் செய்தல்]
-* [//www.mediawiki.org/wiki/Manual:FAQ மிடியாவிக்கி பொதுவான கேள்விகள்]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce மீடியாவிக்கி வெளியீடு மின்னஞ்சல் பட்டியல்]', # Fuzzy
-);
-
-/** Tulu (ತುಳು)
- */
-$messages['tcy'] = array(
-       'mainpagetext' => "'''ಮೀಡಿಯವಿಕಿ ಯಶಸ್ವಿಯಾದ್ ಇನ್’ಸ್ಟಾಲ್ ಆಂಡ್.'''",
-       'mainpagedocfooter' => 'ವಿಕಿ ತಂತ್ರಾಂಶನ್ ಉಪಗೋಗ ಮನ್ಪುನ ಬಗ್ಗೆ ಮಾಹಿತಿಗ್ [//meta.wikimedia.org/wiki/Help:Contents ಸದಸ್ಯೆರ್ನ ನಿರ್ದೇಶನ ಪುಟ] ತೂಲೆ.
-
-== ಎಂಚ ಶುರು ಮಲ್ಪುನಿ ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ ಮೀಡಿಯವಿಕಿ FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]', # Fuzzy
-);
-
-/** Telugu (తెలుగు)
- * @author Veeven
- */
-$messages['te'] = array(
-       'config-desc' => 'మీడియావికీ కొరకై స్థాపకి',
-       'config-title' => 'మీడియావికీ $1స్థాపన',
-       'config-information' => 'సమాచారం',
-       'config-your-language' => 'మీ భాష:',
-       'config-wiki-language' => 'వికీ భాష:',
-       'config-back' => '← వెనక్కి',
-       'config-continue' => 'కొనసాగించు →',
-       'config-page-language' => 'భాష',
-       'config-page-welcome' => 'మీడియావికీకి స్వాగతం!',
-       'config-page-dbsettings' => 'డాటాబేసు అమరికలు',
-       'config-page-name' => 'పేరు',
-       'config-page-options' => 'ఎంపికలు',
-       'config-page-install' => 'స్థాపించు',
-       'config-page-complete' => 'పూర్తయ్యింది!',
-       'config-page-readme' => 'నన్ను చదవండి',
-       'config-page-releasenotes' => 'విడుదల విశేషాలు',
-       'config-db-type' => 'డాటాబేసు రకం:',
-       'config-db-name' => 'డాటాబేసు పేరు:',
-       'config-db-install-account' => 'స్థాపనకి వాడుకరి ఖాతా',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-header-mysql' => 'MySQL అమరికలు',
-       'config-header-postgres' => 'PostgreSQL అమరికలు',
-       'config-header-sqlite' => 'SQLite అమరికలు',
-       'config-header-oracle' => 'Oracle అమరికలు',
-       'config-invalid-db-type' => 'తప్పుడు డాటాబేసు రకం',
-       'config-connection-error' => '$1.
-
-క్రింది హోస్టు, వాడుకరిపేరు మరియు సంకేతపదాలను ఒకసారి సరిచూసుకుని అప్పుడు ప్రయత్నించండి.',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-site-name' => 'వికీ యొక్క పేరు:',
-       'config-ns-other' => 'ఇతర (ఇవ్వండి)',
-       'config-ns-other-default' => 'నావికీ',
-       'config-admin-name' => 'మీ పేరు:',
-       'config-admin-password' => 'సంకేతపదం:',
-       'config-admin-password-confirm' => 'సంకేతపదం మళ్ళీ:',
-       'config-admin-email' => 'ఈ-మెయిలు చిరునామా:',
-       'config-optional-continue' => 'నన్ను మరిన్ని ప్రశ్నలు అడుగు.',
-       'config-profile-wiki' => 'సంప్రదాయ వికీ', # Fuzzy
-       'config-profile-no-anon' => 'ఖాతా సృష్టింపు తప్పనిసరి',
-       'config-profile-private' => 'అంతరంగిక వికీ',
-       'config-license' => 'కాపీహక్కులు మరియు లైసెన్సు:',
-       'config-license-pd' => 'సార్వజనీనం',
-       'config-email-settings' => 'ఈ-మెయిల్ అమరికలు',
-       'config-upload-deleted' => 'తొలగించిన దస్త్రాల కొరకు సంచయం:',
-       'config-advanced-settings' => 'ఉన్నత స్వరూపణం',
-       'config-install-step-done' => 'పూర్తయింది',
-       'config-install-step-failed' => 'విఫలమైంది',
-       'config-help' => 'సహాయం',
-       'mainpagetext' => "'''మీడియా వికీని విజయవంతంగా ప్రతిష్టించాం.'''",
-       'mainpagedocfooter' => 'వికీ సాఫ్టువేరును వాడటనికి కావలిసిన సమాచారం కోసం [//meta.wikimedia.org/wiki/Help:Contents వాడుకరుల గైడు]ను సందర్శించండి.
-
-== మొదలు పెట్టండి ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings మీడియావికీ పనితీరు, అమరిక మార్చుకునేందుకు వీలుకల్పించే చిహ్నాల జాబితా]
-* [//www.mediawiki.org/wiki/Manual:FAQ మీడియావికీపై తరుచుగా అడిగే ప్రశ్నలు]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce మీడియావికీ సాఫ్టువేరు కొత్త వెర్షను విడుదలల గురించి తెలిపే మెయిలింగు లిస్టు]', # Fuzzy
-);
-
-/** Tetum (tetun)
- * @author MF-Warburg
- */
-$messages['tet'] = array(
-       'config-page-language' => 'Lian',
-       'config-page-name' => 'Naran',
-);
-
-/** Tajik (Cyrillic script) (тоҷикӣ)
- */
-$messages['tg-cyrl'] = array(
-       'mainpagetext' => "'''Нармафзори МедиаВики бо муваффақият насб шуд.'''",
-       'mainpagedocfooter' => 'Аз [//meta.wikimedia.org/wiki/Help:Contents Роҳнамои Корбарон] барои истифодаи нармафзори вики кӯмак бигиред.
-
-== Оғоз ба кор ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Феҳристи танзимоти пайгирбандӣ]
-* [//www.mediawiki.org/wiki/Manual:FAQ Пурсишҳои МедиаВики]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Феҳристи ройномаҳои нусхаҳои МедиаВики]', # Fuzzy
-);
-
-/** Tajik (Latin script) (tojikī)
- * @author Liangent
- */
-$messages['tg-latn'] = array(
-       'mainpagetext' => "'''Narmafzori MediaViki bo muvaffaqijat nasb şud.'''",
-       'mainpagedocfooter' => 'Az [//meta.wikimedia.org/wiki/Help:Contents Rohnamoi Korbaron] baroi istifodai narmafzori viki kūmak bigired.
-
-== Oƣoz ba kor ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Fehristi tanzimoti pajgirbandī]
-* [//www.mediawiki.org/wiki/Manual:FAQ Pursişhoi MediaViki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Fehristi rojnomahoi nusxahoi MediaViki]', # Fuzzy
-);
-
-/** Thai (ไทย)
- * @author Korrawit
- */
-$messages['th'] = array(
-       'mainpagetext' => "'''ติดตั้งซอฟต์แวร์มีเดียวิกิเรียบร้อย'''",
-       'mainpagedocfooter' => 'ศึกษา[//meta.wikimedia.org/wiki/Help:Contents คู่มือการใช้งาน] สำหรับเริ่มต้นใช้งานซอฟต์แวร์วิกิ
-
-== เริ่มต้น ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings รายการการปรับแต่งระบบ] (ภาษาอังกฤษ)
-* [//www.mediawiki.org/wiki/Manual:FAQ คำถามที่ถามบ่อยในมีเดียวิกิ] (ภาษาอังกฤษ)
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce เมลลิงลิสต์ของมีเดียวิกิ]', # Fuzzy
-);
-
-/** Turkmen (Türkmençe)
- * @author Hanberke
- */
-$messages['tk'] = array(
-       'mainpagetext' => "'''MediaWiki şowlulyk bilen guruldy.'''",
-       'mainpagedocfooter' => 'Wiki programmasynyň ulanylyşy hakynda maglumat almak üçin [//meta.wikimedia.org/wiki/Help:Contents ulanyjy gollanmasyna] serediň.
-
-== Öwrenjeler ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Konfigurasiýa sazlamalary]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki SSS]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-poçta sanawy]', # Fuzzy
-);
-
-/** Tagalog (Tagalog)
- * @author AnakngAraw
- * @author Sky Harbor
- * @author 아라
- */
-$messages['tl'] = array(
-       'config-desc' => 'Ang tagapagluklok para sa MediaWiki',
-       'config-title' => 'Instalasyong $1 ng MediaWiki',
-       'config-information' => 'Kabatiran',
-       'config-localsettings-upgrade' => 'Napansin ang isang talaksang <code>LocalSettings.php</code>.
-Upang maitaas ang uri ng pagluluklok na ito, paki ipasok ang halaga ng <code>$wgUpgradeKey</code> sa loob ng kahong nasa ibaba.
-Matatagpuan mo ito sa loob ng <code>LocalSettings.php</code>.',
-       'config-localsettings-cli-upgrade' => 'Napansin ang isang talaksan ng <code>LocalSettings.php</code>.
-Upang isapanahon ang pagtatalagang ito, mangyaring patakbuhin sa halip ang <code>update.php</code>',
-       'config-localsettings-key' => 'Susi ng pagsasapanahon:',
-       'config-localsettings-badkey' => 'Hindi tama ang susing ibinigay mo.',
-       'config-upgrade-key-missing' => 'Napansin ang isang umiiral na pagtatalaga ng MediaWiki.
-Upang isapanahon ang katalagahang ito, mangyaring ilagay ang sumusunod na guhit sa ilalim ng iyong <code>LocalSettings.php</code>:
-
-$1',
-       'config-localsettings-incomplete' => 'Lumilitaw na hindi pa buo ang umiiral na <code>LocalSettings.php</code>.
-Ang pabagu-bagong $1 ay hindi nakatakda.
-Mangyaring baguhin ang  <code>LocalSettings.php</code> upang ang maitakda ang pagpapabagu-bagong ito, at pindutin ang "{{int:Config-continue}}".',
-       'config-localsettings-connection-error' => 'Isang kamalian ang nakatagpo noong kumakabit sa kalipunan ng dato na ginagamit ang tinukoy na mga katakdaan sa loob ng <code>LocalSettings.php</code> o
-<code>AdminSettings.php</code>. Paki kumpunihin ang mga katakdaang ito at subukang muli.
-
-$1',
-       'config-session-error' => 'Kamalian sa pagsisimula ng sesyon: $1',
-       'config-session-expired' => 'Tila nagwakas na ang inilaan sa iyong panahon ng dato.
-Ang inilaang mga panahon ay iniayos para sa isang panahon ng buhay na $1.
-Mapapataas mo ito sa pamamagitan ng pagtatakda ng <code>session.gc_maxlifetime</code> sa loob ng php.ini.
-Muling simulan ang proseso ng pagluluklok.',
-       'config-no-session' => 'Nawala ang iyong datos ng sesyon!
-Suriin ang iyong php.ini at tiyakin na ang <code>session.save_path</code> ay nakatakda sa angkop na direktoryo.',
-       'config-your-language' => 'Ang wika mo:',
-       'config-your-language-help' => 'Pumili ng isang wikang gagamitin habang isinasagawa ang pagtatalaga.',
-       'config-wiki-language' => 'Wika ng Wiki:',
-       'config-wiki-language-help' => 'Piliin ang wika kung saan mangingibabaw na isusulat ang wiki.',
-       'config-back' => '← Bumalik',
-       'config-continue' => 'Magpatuloy →',
-       'config-page-language' => 'Wika',
-       'config-page-welcome' => 'Maligayang pagdating sa MediaWiki!',
-       'config-page-dbconnect' => 'Umugnay sa kalipunan ng datos',
-       'config-page-upgrade' => 'Itaas ng uri ang umiiral na pagkakatalaga',
-       'config-page-dbsettings' => 'Mga katakdaan ng kalipunan ng datos',
-       'config-page-name' => 'Pangalan',
-       'config-page-options' => 'Mga mapipili',
-       'config-page-install' => 'Italaga',
-       'config-page-complete' => 'Buo na!',
-       'config-page-restart' => 'Simulan muli ang pag-iinstala',
-       'config-page-readme' => 'Basahin ako',
-       'config-page-releasenotes' => 'Pakawalan ang mga tala',
-       'config-page-copying' => 'Kinokopya',
-       'config-page-upgradedoc' => 'Itinataas ang uri',
-       'config-page-existingwiki' => 'Umiiral na wiki',
-       'config-help-restart' => 'Nais mo bang hawiin ang lahat ng nasagip na datong ipinasok mo at muling simulan ang proseso ng pagluluklok?',
-       'config-restart' => 'Oo, muling simulan ito',
-       'config-welcome' => '=== Pagsusuring pangkapaligiran ===
-Isinasagawa ang payak na mga pagsusuri upang makita kung ang kapaligirang ito ay angkop para sa pagluluklok ng MediaWiki.
-Dapat mong ibigay ang mga kinalabasan ng mga pagsusuring ito kung kailangan mo ng tulong habang nagluluklok.',
-       'config-copyright' => "=== Karapatang-ari at Tadhana ===
-
-$1
-
-Ang programang ito ay malayang software; maaari mo itong ipamahagi at/o baguhin sa ilalim ng mga tadhana ng Pangkalahatang Pampublikong Lisensiyang GNU ayon sa pagkakalathala ng Free Software Foundation; na maaaring bersyong 2 ng Lisensiya, o (kung nais mo) anumang susunod na bersyon.
-
-Ipinamamahagi ang programang ito na umaasang magiging gamitin, subaliut '''walang anumang katiyakan'''; na walang pahiwatig ng '''pagiging mabenta''' o '''kaangkupan para sa isang tiyak na layunin'''.
-Tingnan ang Pangkalahatang Pampublikong Lisensiyang GNU para sa mas maraming detalye.
-
-Dapat nakatanggap ka ng <doclink href=Copying>isang sipi ng Pangkalahatang Pampublikong Lisensiyang GNU</doclink> kasama ng programang ito; kung hindi, sumulat sa Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, o [http://www.gnu.org/licenses//gpl.html basahin ito sa Internet].",
-       'config-sidebar' => '* [//www.mediawiki.org Tahanan ng MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents Gabay ng Tagagamit]
-* [//www.mediawiki.org/wiki/Manual:Contents Gabay ng Tagapangasiwa]
-* [//www.mediawiki.org/wiki/Manual:FAQ Mga Malimit Itanong]
-----
-* <doclink href=Readme>Basahin ako</doclink>
-* <doclink href=ReleaseNotes>Mga tala ng paglalabas</doclink>
-* <doclink href=Copying>Pagkopya</doclink>
-* <doclink href=UpgradeDoc>Pagsasapanahon</doclink>',
-       'config-env-good' => 'Nasuri na ang kapaligiran.
-Mailuluklok mo ang MediaWiki.',
-       'config-env-bad' => 'Nasuri na ang kapaligiran.
-Hindi mo mailuklok ang MediaWiki.',
-       'config-env-php' => 'Naitalaga ang PHP na $1.',
-       'config-env-php-toolow' => 'Naitalaga ang PHP $1.
-Subalit, nangangailangan ang MediaWiki ng PHP $2 o mas mataas pa.',
-       'config-unicode-using-utf8' => 'Ginagamit ang utf8_normalize.so ni Brion Vibber para sa pagpapanormal ng Unikodigo.',
-       'config-unicode-using-intl' => 'Ginagamit ang [http://pecl.php.net/intl intl dugtong na PECL] para sa pagsasanormal ng Unikodigo.',
-       'config-unicode-pure-php-warning' => "'''Babala''': Ang [http://pecl.php.net/intl dugtong ng internasyunal na PECL] ay hindi makukuha upang makapanghawak ng pagpapanormal ng Unikodigo, na babagsak na pabalik sa mabagal na pagsasakatuparan ng dalisay na PHP.
-Kapag nagpapatakbo ka ng isang pook na mataas ang trapiko, dapat kang bumasa ng kaunti hinggil sa [//www.mediawiki.org/wiki/Unicode_normalization_considerations pagpapanormal ng Unikodigo].",
-       'config-unicode-update-warning' => "'''Babala''': Ang nakaluklok na bersiyon ng pambalot ng pagpapanormal ng Unikodigo ay gumagamit ng isang mas matandang bersiyon ng aklatan ng [http://site.icu-project.org/ proyekto ng ICU].
-Dapat kang [//www.mediawiki.org/wiki/Unicode_normalization_considerations magtaas ng uri] kung may pag-aalala ka hinggil sa paggamit ng Unikodigo.",
-       'config-no-db' => 'Hindi matagpuan ang isang angkop na tagapagmaneho ng kalipunan ng datos! Kailangan mong magluklok ng isang tagapagmaneho ng kalipunan ng dato para sa PHP.
-Tinatangkilik ang sumusunod na mga uri ng kalipunan ng dato: $1.
-
-Kung ikaw ay nasa isang pinagsasaluhang pagpapasinaya, hilingin sa iyong tagapagbigay ng pagpapasinaya na iluklok ang isang angkop na tagapagmaneho ng kalipunan ng dato.
-Kung ikaw mismo ang nangalap ng PHP, muling isaayos ito na pinagagana ang isang kliyente ng kalipunan ng dato, halimbawa na ang paggamit ng <code>./configure --with-mysql</code>.
-Kung iniluklok mo ang PHP mula sa isang pakete ng Debian o Ubuntu, kung gayon kailangan mo ring magluklok ng modyul na php5-mysql.',
-       'config-outdated-sqlite' => "'''Babala''': mayroong kang $1 ng SQLite, na mas mababa kaysa sa pinaka mababang kailangang bersiyon na $2. Magiging hindi makukuha ang SQLite.",
-       'config-no-fts3' => "'''Warning''': Ang SQLite ay hindi itinala at tinipon na wala ang [//sqlite.org/fts3.html modulong FTS3], ang mga tampok na panghanap ay magiging hindi makukuha sa ibabaw ng panlikod na dulong ito.",
-       'config-register-globals' => "'''Babala: Ang mapipili na <code>[http://php.net/register_globals register_globals]</code> ng PHP ay pinagagana.'''
-'''Huwag paganahin kung kaya mo.'''
-Aandar ang MediaWiki, subalit ang tagapaghain mo ay nakalantad sa maaaring maganap na mga kahinaang pangkatiwasayan.",
-       'config-magic-quotes-runtime' => "'''Malubha: Masigla ang [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]!'''
-Ang piniling ito ay hindi mahuhulaan na pipinsala sa lahok na dato.
-Hindi mo maaaring iluklok o gamitin ang MediaWiki maliban na lamang kung hindi na gumagana ang pinili na ito.",
-       'config-magic-quotes-sybase' => "'''Malubha: Masigla ang [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]!'''
-Hindi mahuhulaan na sinisira ng napiling ito ang lahok na dato.
-Hindi mo maaaring iluklok o gamitin ang MediaWiki maliban na lamang kung hindi na pinagagana ang napiling ito.",
-       'config-mbstring' => "'''Malubha: Masigla ang [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]!'''
-Ang napiling ito ay nagdurulot ng mga kamalian at maaaring sumira nang hindi nahuhulaan ang dato.
-Hindi mo maaaring iluklok o gamitin ang MediaWiki maliban na lamang kung hindi na pinagagana ang napiling ito.",
-       'config-ze1' => "'''Malubha: Masigla ang [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]!'''
-Ang napiling ito ay nagsasanhi ng karima-rimarim na mga sira sa MediaWiki.
-Hindi mo maaaring iluklok o gamitin ang MediaWiki maliban na lamang kung hindi na pinagagana ang napiling ito.",
-       'config-safe-mode' => "'''Babala:''' Masigla ang [http://www.php.net/features.safe-mode safe mode] ng PHP.
-Maaari itong magdulot ng mga suliranin, partikular na kung gumagamit ng mga ikinargang paitaas na talaksan at ng suporta sa <code>math</code>.",
-       'config-xml-bad' => 'Nawawala ang modulong XML ng PHP.
-Nangangailangan ang MediaWiki ng mga tungkulin sa loob ng modulong ito at hindi aandar sa loob ng ganitong pagkakaayos.
-Kung pinapatakbo mo ang Mandrake, iluklok ang pakete ng php-xml.',
-       'config-pcre' => 'Tila nawawala ang modyul na pangsuporta ng PCRE.
-Nangangailangan ang MediaWiki ng nakaukol sa Perl na mga tungkulin ng karaniwang pagsasaad upang gumana.',
-       'config-pcre-no-utf8' => "'''Malubha''': Tila tinipon ang modyul na PCRE ng PHP na wala ang suporta ng PCRE_UTF8.
-Nangangailangan ang MediaWiki ng suporta ng UTF-8 upang maging tama ang pag-andar.",
-       'config-memory-raised' => 'Ang <code>hangganan_ng_alaala</code> ng PHP ay $1, itinaas sa $2.',
-       'config-memory-bad' => "'''Babala:''' Ang <code>hangganan_ng_alaala</code> ng PHP ay $1.
-Ito ay maaaring napakababa.
-Maaaring mabigo ang pagluluklok!",
-       'config-ctype' => "'''Maluba''': Dapat na tipunin ang PHP na mayroong suporta para sa [http://www.php.net/manual/en/ctype.installation.php dugtong Ctype].",
-       'config-xcache' => 'Ininstala na ang [http://xcache.lighttpd.net/ XCache]',
-       'config-apc' => 'Ininstala na ang [http://www.php.net/apc APC]',
-       'config-wincache' => 'Ininstala na ang [http://www.iis.net/download/WinCacheForPhp WinCache]',
-       'config-no-cache' => "'''Babala:''' Hindi mahanap ang [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] o [http://www.iis.net/download/WinCacheForPhp WinCache].
-Hindi pinapagana ang pagbabaon ng mga bagay.",
-       'config-mod-security' => "'''Babala''': Ang tagapaghain mo ng sangkasaputan ay pinagana na mayroong [http://modsecurity.org/ mod_security]. Kung mali ang kaayusan, makapagdurulot ito ng mga suliranin para sa MediaWiki o ibang mga sopwer na nagpapahintulot sa mga tagagamit na magpaskil ng hindi makatwirang nilalaman.
-Sumangguni sa [http://modsecurity.org/documentation/ mod_security kasulatan] o makipag-ugnayan sa suporta ng iyong tagapagpasinaya kapag nakatagpo ng alin mang mga kamalian.",
-       'config-diff3-bad' => 'Hindi natagpuan ang GNU diff3.',
-       'config-imagemagick' => 'Natagpuan ang ImageMagick: <code>$1</code>.
-Papaganahin ang pagkakagyat ng larawan kapag pinagana mo ang mga pagkakargang paitaas.',
-       'config-gd' => 'Natagpuan ang pinasadyang nakapaloob na grapiks ng GD.
-Papaganahin ang pagkakagyat ng larawan kapag pinagana mo ang mga pagkakargang paitaas.',
-       'config-no-scaling' => 'Hindi matagpuan ang aklatang GD o ImageMagick.
-Hindi papaganahin ang pagkakagyat ng larawan.',
-       'config-no-uri' => "'''Kamalian:''' Hindi matukoy ang kasalukuyang URI.
-Pinigilan ang pag-iinstala.",
-       'config-no-cli-uri' => "'''Babala''': Walang tinukoy na --landas ng panitik, ginagamit ang likas na katakdaan: <code>$1</code>.",
-       'config-using-server' => 'Ginagamit ang pangalan ng tagapaghain na "<nowiki>$1</nowiki>".',
-       'config-using-uri' => 'Ginagamit ang URL ng tagapaghain na "<nowiki>$1$2</nowiki>".',
-       'config-uploads-not-safe' => "'''Babala:''' Ang iyong likas na nakatakdang direktoryo para sa paitaas na mga pagkakarga na <code>$1</code> ay may kahinaan laban sa pagsasagawa ng mga panitiki na hindi makatwiran. Bagaman sinisiyasat ng MediaWiki ang lahat ng paitaas na naikargang mga talaksan para sa mga panganib na pangkatiwasayan, mataas na iminumungkahi na [//www.mediawiki.org/wiki/Manual:Security#Upload_security isara ang kahinaang ito na pangkatiwasayan] bago paganahin ang paitaas na mga pagkakarga.",
-       'config-no-cli-uploads-check' => "'''Babala:''' Ang iyong likas na nakatakdang direktoryo para sa paitaas na mga pagkakarga (<code>$1</code>) ay hindi nasuri para sa kahinaan laban sa pagsasagawa ng panitik na hindi makatwiran habang iniluluklok ang Ugnayang Mukha ng Guhit ng Kaataasan o Command-Line Interface (CLI).",
-       'config-brokenlibxml' => "Ang sistema mo ay mayroong isang pagsasama ng mga bersiyon ng PHP at libxml2 na maaaring masurot at maaaring makapagsanhi ng pagkasira ng datong nakakubli sa loob ng MediaWiki at iba pang mga aplikasyon ng sangkasaputan.
-Magtaas ng uri upang maging PHP 5.2.9 o mas lalong huli at libxml2 2.7.3 o mas lalong huli ([//bugs.php.net/bug.php?id=45996 isinalansan ang surot o ''bug'' na mayroong PHP]). Binigo ang pagluluklok.",
-       'config-using531' => 'Hindi maaaring gamitin ang MediaWiki na kapiling ang PHP na $1 dahil sa isang surot na kinasasangkutan ng mga parametrong pangsangguni sa <code>__call()</code>. Magtaas ng uri upang maging PHP 5.3.2 o mas mataas, o magbaba ng uri upang maging PHP 5.3.0 upang malutas ito. Binigo ang pagluluklok.',
-       'config-suhosin-max-value-length' => 'Nakaluklok ang Suhosin at hinahanggahan ang haba ng parametro ng GET sa $1 mga byte. Ang sangkap na ResourceLoader ng MediaWiki ay gagana sa paligid ng hangganang ito, subalit pasasamain nito ang pagganap. Kung talagang maaari, dapat mong itakda ang <code>suhosin.get.max_value_length</code> upang maging 1024 o mas mataas sa loob ng <code>php.ini</code>, at itakda ang <code>$wgResourceLoaderMaxQueryLength</code> sa katulad na halaga sa loob ng LocalSettings.php.', # Fuzzy
-       'config-db-type' => 'Uri ng kalipunan ng datos:',
-       'config-db-host' => 'Tagapagpasinaya ng kalipunan ng datos:',
-       'config-db-host-help' => 'Kung ang iyong tagapaghain ng kalipunan ng dato ay nasa ibabaw ng isang ibang tagapaghain, ipasok ang pangalan ng tagapagpasinaya o tirahan ng IP dito.
-
-Kung gumagamit ka ng pinagsasaluhang pagpapasinaya ng sangkasaputan, dapat ibigay sa iyo ng iyong tagapagbigay ng pagpapasinaya ang tamang pangalan ng tagapagpasinaya sa loob ng kanilang kasulatan.
-
-Kapag nagluluklok ka sa ibabaw ng isang tagapaghain ng Windows at gumagamit ng MySQL, maaaring hindi gumana ang paggamit ng "localhost" para sa pangalan ng tagapaghain. Kung hindi, subukan ang "127.0.0.1" para sa katutubong tirahan ng IP.
-
-Kapag gumagamit ka ng PostgreSQL, iwanang walang laman ang hanay na ito upang kumabit sa pamamagitan ng bokilya ng Unix.',
-       'config-db-host-oracle' => 'TNS ng kalipunan ng dato:',
-       'config-db-host-oracle-help' => 'Magpasok ng isang katanggap-tanggap na [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Katutubong Pangalan ng Pagkabit]; dapat na nakikita ang isang talaksan ng tnsnames.ora sa pagluluklok na ito.<br />Kung gumagamit ka ng mga aklatan ng kliyente na 10g o mas bago, maaari mo ring gamitin ang pamamaraan ng pagpapangalan ng [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Maginhawang Pagkabit].',
-       'config-db-wiki-settings' => 'Kilalanin ang wiking ito',
-       'config-db-name' => 'Pangalan ng kalipunan ng dato:',
-       'config-db-name-help' => 'Pumili ng isang pangalan na pangkilala sa wiki mo.
-Hindi ito dapat maglaman ng mga patlang.
-
-Kung gumagamit ka ng pinagsasaluhang pagpapasinaya ng sangkasaputan, ang iyong tagapagbigay ng pagpapasinaya ay maaaring bigyan ka ng isang tiyak na pangalan ng kalipunan ng datong gagamitin o papayagan kang lumikha ng mga kalipunan ng dato sa pamamagitan ng isang entrepanyong pantaban.',
-       'config-db-name-oracle' => 'Balangkas ng kalipunan ng dato:',
-       'config-db-account-oracle-warn' => 'Mayroong tatlong tinatangkilik na tagpo para sa pagluluklok ng Oracle bilang panlikurang hulihan ng kalipunan ng dato:
-
-Kung nais mong lumikha ng akawnt ng kalipunan ng dato bilang bahagi ng proseso ng pagluluklok, paki magbigay ng isang akawnt na mayroong gampanin ng SYSDBA bilang akawnt ng kalipunan ng dato para sa pagluluklok at tukuyin ang ninanais na mga kredensiyal para sa akawnt ng pagpunta sa sangkasaputan, o di kaya ay maaaring kinakamay na lumikha ng akawnt ng pagpunta sa sangkasaputan at ibigay lamang ang akawnt na iyan (kung mayroong ito ng kinakailangang mga pahintulot upang malikha ang mga bagay na pampagpapanukala) o magbigay ng dalawang magkaibang mga akawnt, isang mayroong pribilehiyo ng paglikha at isang may pagbabawal para sa pagpunta sa sangkasaputan.
-
-Ang panitik sa paglikha ng isang akawnt na mayroon ng kinakailangang mga pribilehiyo ay matatagpuan sa loob ng direktoryong "maintenance/oracle/" ng pagluluklok na ito. Pakatandaan na ang paggamit ng isang akawnt na may pagbabawal ay hindi magpapagana isa lahat ng mga kakayahang pampananatili sa piling ng likas na nakatakdang akawnt.',
-       'config-db-install-account' => 'Akawnt ng tagagamit para sa pagluluklok',
-       'config-db-username' => 'Pangalang pangtagagamit ng kalipunan ng dato:',
-       'config-db-password' => 'Hudyat sa kalipunan ng dato:',
-       'config-db-password-empty' => 'Paki magpasok ng isang hudyat para sa bagong tagagamit ng kalipunan ng dato: $1.
-Habang maging maaari na makalikha ng mga tagagamit na walang mga hudyat, hindi ito ligtas.',
-       'config-db-install-username' => 'Ipasok ang pangalan ng tagagamit na gagamitin upang kumabit sa kalipunan ng dato habang isinasagawa ang pagluluklok.
-Hindi ito ang pangalan ng tagagamit ng akawnt ng MediaWiki; ito ang pangalan ng tagagamit para sa iyong kalipunan ng dato.',
-       'config-db-install-password' => 'Ipasok ang hudyat na gagamitin upang kumabit sa kalipunan ng dato habang isinasagawa ang pagluluklok.
-Hindi ito ang hudyat para sa akawnt ng MediaWiki; ito ang hudyat para sa iyong kalipunan ng dato.',
-       'config-db-install-help' => 'Ipasok ang pangalan ng tagagamit at hudyat na gagamitin upang umugnay sa kalipunan ng dato habang isinasagawa ang pagluluklok.',
-       'config-db-account-lock' => 'Gamitin ang gayun ding pangalan ng tagagamit at hudyat habang nasa normal na operasyon',
-       'config-db-wiki-account' => 'Akawnt ng tagagamit para sa pangkaraniwang pagpapaandar',
-       'config-db-wiki-help' => 'Ipasok ang pangalan ng tagagamit at hudyat na gagamitin upang kumabit sa kalipunan ng dato habang nasa karaniwang pagtakbo ng wiki.
-Kung hindi umiiral ang akawnt, at ang akawnt ng pagluluklok ay mayroong sapat na mga pribilehiyo, ang akawnt na ito ng tagagamit ay lilikhain na mayroong pinaka mababang mga pribilehiyo na kailangan upang mapatakbo ang wiki.',
-       'config-db-prefix' => 'Unlapi ng talahanayan ng kalipunan ng dato:',
-       'config-db-prefix-help' => 'Kung kailangan mong ibahagi ang isang kalipunan ng dato sa pagitan ng maramihang mga wiki, o sa pagitan ng MediaWiki at ibang aplikasyon ng kasaputan, maaaring piliin mo na magdagdag ng isang unlapi sa lahat ng mga pangalan ng talahanayan upang maiwasan ang mga salungatan.
-Huwag gumamit ng mga patlang.
-
-Ang hanay na ito ay karaniwang iniiwanang walang laman.',
-       'config-db-charset' => 'Pangkat ng panitik ng kalipunan ng dato',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binaryo',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 paurong-kabagay UTF-8',
-       'config-charset-help' => "'''Babala:''' Kapag ginamit mo ang '''backwards-compatible UTF-8''' o \"nauukol na pabalik na UTF-8\" sa MySQL 4.1+, at may kasunod na pagtatabi ng pansalong kopya ng kalipunan ng dato na mayroong <code>mysqldump</code>, maaaring wasakin nito ang lahat ng mga panitik na hindi ASCII, na hindi na mababawi pa ang mga pansalong kopya.
-
-Sa '''gawi na nakahalo sa dalawa (binaryo)''', itinatabi ng MediaWiki ang tekstong UTF-8 sa kalipunan ng dato sa loob ng mga kahanayang binaryo.
-Mas kapaki-pakinabang ito kaysa sa gawi na UTF-8 ng MySQL, at nagpapahintulot sa iyo na gamitin ang buong kasaklawan ng mga panitik na Unikodigo.
-Sa '''gawi ng UTF-8''', malalaman ng MySQL kung anong pangkat ng panitik ang kinapapalooban ng iyong dato, at may kaangkupang maihaharap at mapapalitan ito, ngunit hindi ka nito papayagan na mag-imbak ng mga panitik sa ibabaw ng [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] o Saligang Patag na Kayas na Pangmaramihang Wika.",
-       'config-mysql-old' => 'Hindi kailangan ang MySQL na $1 o mas bago, mayroon kang $2.',
-       'config-db-port' => 'Daungan ng kalipunan ng dato:',
-       'config-db-schema' => 'Panukala para sa MediaWiki',
-       'config-db-schema-help' => 'Ang nasa itaas na panukala ay pangkaraniwang magiging maayos.
-Baguhin lamang ito kung alam mong kinakailangan.',
-       'config-pg-test-error' => "Hindi makakabit sa kalipunan ng dato na '''$1''': $2",
-       'config-sqlite-dir' => 'Direktoryo ng dato ng SQLite:',
-       'config-sqlite-dir-help' => "Iniimbak ng SQLite ang lahat ng dato sa loob ng isang nag-iisang talaksan.
-
-Ang ibibigay mong direktoryo ay dapat na maging masusulatan ng tagapaghain ng kasaputan habang nagluluklok.
-
-'''Hindi''' ito dapat na mapuntahan sa pamamagitan ng kasaputan, ito ang dahilan kung bakit hindi namin ito inilalagay sa kung nasaan ang iyong mga talaksan ng PHP.
-
-Ang tagapagluklok ay magsusulat ng isang talaksang <code>.htaccess</code> na kasama ito, subalit kapag nabigo iyon mayroong isang tao na maaaring makakuha ng pagka nakakapunta sa iyong hilaw na kalipunan ng dato.
-Kasama riyan ang hilaw na dato ng tagagamit (mga tirahan ng e-liham, pinaghalong mga hudyat) pati na ang nabura nang mga pagbabago at iba pang may pagbabawal na dato sa ibabaw ng wiki.
-
-Isaalang-alang ang paglalagay na magkakasama ang kalipunan ng dato sa ibang lugar, halimbawa na ang sa loob ng <code>/var/lib/mediawiki/yourwiki</code>.",
-       'config-oracle-def-ts' => 'Likas na nakatakdang puwang ng talahanayan:',
-       'config-oracle-temp-ts' => 'Pansamantalang puwang ng talahanayan:',
-       'config-type-mysql' => 'MySQL',
-       'config-type-postgres' => 'PostgreSQL',
-       'config-type-sqlite' => 'SQLite',
-       'config-type-oracle' => 'Oracle',
-       'config-support-info' => 'Sinusuportahan ng MediaWiki ang sumusunod na mga sistema ng kalipunan ng dato:
-
-$1
-
-Kung hindi mo makita ang sistema ng kalipunan ng dato na sinusubukan mong gamitin na nakatala sa ibaba, kung gayon ay sundi ang mga tagubilin na nakakawing sa itaas upang mapagana ang suporta,',
-       'config-support-mysql' => '* Ang $1 ay ang pangunahing puntirya para sa MediaWiki at ang pinaka sinusuportahan ([http://www.php.net/manual/en/mysql.installation.php paano magtipon ng PHP na mayroong suporta ng MySQL])',
-       'config-support-postgres' => '* Ang $1 ay isang bantog na sistema ng kalipunan ng dato na bukas ang pinagmulan na panghalili sa MySQL ([http://www.php.net/manual/en/pgsql.installation.php paano magtipon ng PHP na mayroong suporta ng PostgreSQL]). Maaaring mayroong ilang hindi pangunahing mga surot na natitira pa, at hindi iminumungkahi para gamitin sa loob ng isang kapaligiran ng produksiyon.',
-       'config-support-sqlite' => 'Ang $1 ay isang magaan ang timbang na sistema ng kalipunan ng dato na sinusuportahan nang napaka mainam. ([http://www.php.net/manual/en/pdo.installation.php Paano magtipon ng PHP na mayroong suporta ng SQLite], gumagamit ng PDO)',
-       'config-support-oracle' => '* Ang $1 ay isang kalipunan ng dato ng kasigasigang pangkalakal. ([http://www.php.net/manual/en/oci8.installation.php Paano magtipunan ng PHP na mayroong suporta ng OCI8])',
-       'config-header-mysql' => 'Mga katakdaan ng MySQL',
-       'config-header-postgres' => 'Mga katakdaan ng PostgreSQL',
-       'config-header-sqlite' => 'Mga katakdaan ng SQLite',
-       'config-header-oracle' => 'Mga katakdaan ng Oracle',
-       'config-invalid-db-type' => 'Hindi tanggap na uri ng kalipunan ng dato',
-       'config-missing-db-name' => 'Dapat kang magpasok ng isang halaga para sa "Pangalan ng kalipunan ng dato"',
-       'config-missing-db-host' => 'Dapat kang magpasok ng isang halaga para sa "Tagapagpasinaya ng kalipunan ng dato"',
-       'config-missing-db-server-oracle' => 'Dapat kang magpasok ng isang halaga para sa "TNS ng kalipunan ng dato"',
-       'config-invalid-db-server-oracle' => 'Hindi katanggap-tanggap na pangalan ng TNSng kalipunan ng dato na "$1".
-Gumamit lamang ng mga titik ng ASCII (a-z, A-Z), mga bilang (0-9), mga salungguhit (_) at mga tuldok (.).',
-       'config-invalid-db-name' => 'Hindi tanggap na pangalan ng kalipunan ng dato na "$1".
-Gumamit lamang ng mga titik ng ASCII (a-z, A-Z), mga bilang (0-9), mga salungguhit (_) at mga gitling (-).',
-       'config-invalid-db-prefix' => 'Hindi tanggap na unlapi ng kalipunan ng dato na "$1".
-Gamitin lamang ang mga titik na ASCII (a-z, A-Z), mga bilang (0-9), mga salungguhit (_) at mga gitling (-).',
-       'config-connection-error' => '$1.
-
-Suriin ang punong-abala, pangalan ng tagagamit at hudyat na nasa ibaba at subukan ulit.',
-       'config-invalid-schema' => 'Hindi katanggap-tanggap na panukala para sa "$1" ng MediaWiki.
-Gumamit lamang ng mga titik ng ASCII (a-z, A-Z), mga bilang (0-9), at mga salungguhit (_).',
-       'config-db-sys-create-oracle' => 'Ang panluklok ay tumatangkilik lamang sa paggamit ng isang akawnt ng SYSDBA para sa paglikha ng isang bagong akawnt.',
-       'config-db-sys-user-exists-oracle' => 'Umiiral na ang akawnt ng tagagamit na "$1". Magagamit lamang ang SYSDBA para sa paglikha ng isang bagong akawnt!',
-       'config-postgres-old' => 'Kailangan ang PostgreSQL $1 o mas bago, mayroon kang $2.',
-       'config-sqlite-name-help' => 'Pumili ng isang pangalan na pangkilala na wiki mo.
-Huwag gumamit ng mga puwang o mga gitling.
-Gagamitin ito para sa pangalan ng talaksan ng dato ng SQLite.',
-       'config-sqlite-parent-unwritable-group' => 'Hindi malikha ang direktoryo ng dato na <code><nowiki>$1</nowiki></code>, sapagkat ang magulang na direktoryong <code><nowiki>$2</nowiki></code> ay hindi masulatan ng tagapaghain ng kasaputan.
-
-Napag-alaman ng tagapagluklok kung sinong tagagamit ang kinatatakbuhan ng iyong tagapaghain ng kasaputan.
-Gawing nasusulatan nito ang <code><nowiki>$3</nowiki></code> ng direktoryo upang makapagpatuloy.
-Ito ang gawin sa ibabaw ng isang sistema ng Unix/Linux:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Hindi malikha ang direktoryo ng dato na <code><nowiki>$1</nowiki></code>, sapagkat ang magulang na direktoryong <code><nowiki>$2</nowiki></code> ay hindi masulatan ng tagapaghain ng kasaputan.
-
-Hindi malaman ng tagapagluklok kung sinong tagagamit ang kinatatakbuhan ng iyong tagapaghain ng kasaputan.
-Gawing nasusulatan nito (at ng mga iba pa) ang <code><nowiki>$3</nowiki></code> ng direktoryo upang makapagpatuloy.
-Ito ang gawin sa ibabaw ng isang sistema ng Unix/Linux:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Kamalian sa paglikha ng direktoryo ng datong "$1".
-Suriin ang kinalalagyan at subukang muli.',
-       'config-sqlite-dir-unwritable' => 'Hindi nagawang magsulat sa direktoryong "$1".
-Baguhin ang mga kapahintulutan nito upang makapagsulat dito ang tagapaghain ng sapot, at subukang muli.',
-       'config-sqlite-connection-error' => '$1.
-
-Surrin ang direktoryo ng dato at pangalan ng kalipunan ng datong nasa ibaba at subukan uli.',
-       'config-sqlite-readonly' => 'Ang talaksang <code>$1</code> ay hindi maisusulat.',
-       'config-sqlite-cant-create-db' => 'Hindi malikha ang talaksang <code>$1</code> ng kalipunan ng dato.',
-       'config-sqlite-fts3-downgrade' => 'Nawawala ang suportang FTS3 ng PHP, ibinababa ang uri ng mga talahanayan',
-       'config-can-upgrade' => "Mayroong mga talahanayan ng MediaWiki sa loob ng kalipunan ng datong ito.
-Upang maitaas ang uri ng mga ito upang maging MediaWiki na $1, pindutin ang '''Magpatuloy'''.",
-       'config-upgrade-done' => "Buo na ang pagtataas ng uri.
-
-Maaari mo na ngayong [$1 gamitin ang iyong wiki].
-
-Kung nais mong muling likhain ang iyong talaksang <code>LocalSettings.php</code>, lagitikin ang pindutang nasa ibaba.
-'''Hindi minumungkahi''' ito maliban na lamang kung nagkakaroon ka ng mga suliranin sa piling ng wiki mo.",
-       'config-upgrade-done-no-regenerate' => 'Buo na ang pagsasapanahon.
-
-Maaari ka na ngayong [$1 magsimula sa paggamit ng wiki mo].',
-       'config-regenerate' => 'Muling likhain ang LocalSettings.php →',
-       'config-show-table-status' => 'Nabigo ang pagtatanong na IPAKITA ANG KALAGAYAN NG TALAHANAYAN!', # Fuzzy
-       'config-unknown-collation' => "'''Babala:''' Ang kalipunan ng dato ay gumagagamit ng hindi nakikilalang pag-iipon.",
-       'config-db-web-account' => 'Akawnt ng kalipunan ng dato para sa pagpunta sa web',
-       'config-db-web-help' => 'Piliin ang pangalan ng tagagamit at hudyat na gagamitin ng tagapaghain ng web upang umugnay sa tagapaghain ng kalipunan ng dato, habang nasa pangkaraniwang pagtakbo ng wiki.',
-       'config-db-web-account-same' => 'Gamitin ang gayun din akawnt katulad ng sa pagluluklok',
-       'config-db-web-create' => 'Likhain ang akawnt kung hindi pa ito umiiral',
-       'config-db-web-no-create-privs' => 'Ang tinukoy mong akawnt na iluluklok ay walang sapat na mga pribilehiyo upang makalikha ng isang akawnt.
-Ang akawnt na tutukuyin mo rito ay umiiral na dapat.',
-       'config-mysql-engine' => 'Makinang imbakan:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''Babala''': Pinili mo ang MyISAM bilang makinang imbakan para sa MySQL, na hindi iminumungkahi para gamitin sa MediaWiki, sapagkat:
-* bahagya lamang itong sumusuporta ng pagkakasundu-sundo dahil sa pagkakandado ng talahanayan
-* mas malaki ang pagkakataon na kapitan ng sira kaysa sa ibang mga makina
-* ang himpilang kodigo ng MediaWiki ay hindi palaging humahawak ng MyISAM ayon sa nararapat
-
-Kung ang iyong nakaluklok na MySQL ay sumusuporta ng InnoDB, higit na iminumungkahi na piliin mo iyon sa halip.
-Kung ang iyong nakaluklok na MySQL ay hindi sumusuporta ng InnoDB, marahil ay panahon na para sa isang pagtataas ng uri.",
-       'config-mysql-engine-help' => "Ang '''InnoDB''' ay ang halos palaging pinaka mainam na mapipili, dahil mayroon itong mabuting suporta ng pagkakasundu-sundo.
-
-Maaaring mas mabilis ang '''MyISAM''' sa mga pagluluklok na pang-isahang tagagamit o mababasa lamang.
-May gawi ang mga kalipunan ng dato ng MyISAM na masira nang mas madalas kaysa sa mga kalipunan ng dato ng InnoDB.",
-       'config-mysql-charset' => 'Pangkat ng panitik ng kalipunan ng dato:',
-       'config-mysql-binary' => 'Binaryo',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "Sa '''gawi na binaryo''', iniimbak ng MediaWiki ang tekstong UTF-8 sa kalipunan ng dato sa loob ng mga hanay na binaryo.
-Mas kapaki-pakinabang ito kaysa sa gawi na UTF-8 ng MySQL, at nagpapahintulot sa iyo upang magamit ang buong kasaklawan ng mga panitik ng Unikodigo.
-
-Sa ''gawi na UTF-8''', malalaman ng MySQL kung sa anong pangkat ng panitik nakapaloob ang iyong dato, at angkop na makakapagharap at makapapagpalit nito, subalit hindi ka nito papayagan na mag-imbak ng mga panitik na nasa itaas ng [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] o Saligang Tapyas na Pangmaramihang Wika.",
-       'config-site-name' => 'Pangalan ng wiki:',
-       'config-site-name-help' => "Lilitaw ito sa bareta ng pamagat ng pantingin-tingin at sa samu't saring ibang mga lugar.",
-       'config-site-name-blank' => 'Magpasok ng isang pangalan ng sityo.',
-       'config-project-namespace' => 'Puwang na pampangalan ng proyekto:',
-       'config-ns-generic' => 'Proyekto',
-       'config-ns-site-name' => 'Katulad ng sa pangalan ng wiki: $1',
-       'config-ns-other' => 'Iba pa (tukuyin)',
-       'config-ns-other-default' => 'Wiki Ko',
-       'config-project-namespace-help' => 'Bilang pagsunod sa halimbawa ng Wikipedia, maraming mga wiki ang nagpapanatili ng kanilang mga pahina ng patakaran na nakahiwalay magmula sa kanilang mga pahina ng nilalaman, na nasa loob ng isang "\'\'\'puwang na pampangalan ng proyekto\'\'\'".
-Ang lahat ng mga pamagat ng pahina na nasa loob ng puwang ng pangalang ito ay nagsisimula na mayroong isang partikular na unlapi, na maaari mong tukuyin dito.
-Sa nakaugalian, ang unlaping ito ay hinango mula sa pangalan ng wiki, subalit hindi ito maaaring maglaman ng mga panitik ng palabantasan na katulad ng "#" o ":".',
-       'config-ns-invalid' => 'Ang tinukoy na puwang ng pangalan na "<nowiki>$1</nowiki>" ay hindi katanggap-tanggap.
-Tumukoy ng isang ibang puwang ng pangalan ng proyekto.',
-       'config-ns-conflict' => 'Ang tinukoy na puwang ng pangalan na "<nowiki>$1</nowiki>" ay sumasalungat sa isang likas na nakatakdang puwang ng pangalan ng MediaWiki.
-Tumukoy ng isang ibang puwang ng pangalan ng proyekto.',
-       'config-admin-box' => 'Akawnt ng tagapangasiwa',
-       'config-admin-name' => 'Pangalan mo:',
-       'config-admin-password' => 'Hudyat:',
-       'config-admin-password-confirm' => 'Hudyat uli:',
-       'config-admin-help' => 'Ipasok dito ang mas ninanais mong pangalan ng tagagamit, bilang halimbawa na ang "Joe Bloggs".
-Ito ang pangalang gagamitin mo upang lumagdang papasok sa wiki.',
-       'config-admin-name-blank' => 'Magpasok ng isang pangalan ng tagagamit na tagapangasiwa.',
-       'config-admin-name-invalid' => 'Ang tinukoy na pangalan ng tagagamit na "<nowiki>$1</nowiki>" ay hindi tanggap.
-Tumukoy ng ibang pangalan ng tagagamit.',
-       'config-admin-password-blank' => 'Magpasok ng isang hudyat para sa akawnt ng tagapangasiwa.',
-       'config-admin-password-same' => 'Ang hudyat ay hindi dapat na katulad ng pangalan ng tagagamit.',
-       'config-admin-password-mismatch' => 'Hindi magkatugma ang ipinasok mong dalawang mga hudyat.',
-       'config-admin-email' => 'Tirahan ng e-liham:',
-       'config-admin-email-help' => 'Magpasok dito ng isang tirahan ng e-liham upang mapahintulutan kang makatanggap ng e-liham mula sa iba pang mga tagagamit sa ibabaw ng wiki, itakdang muli ang hudyat mo, at mapabatiran ng mga pagbabago sa mga pahinang nasa ibabaw ng iyong tala ng mga binabantayan. Maiiwanan mo na walang laman ang hanay na ito.',
-       'config-admin-error-user' => 'Panloob na kamalian kapag nililikha ang isang tagapangasiwa na may pangalang "<nowiki>$1</nowiki>".',
-       'config-admin-error-password' => 'Panloob na kamalian kapag nagtatakda ng isang hudyat na para sa tagapangasiwang "<nowiki>$1</nowiki>": <pre>$2</pre>',
-       'config-admin-error-bademail' => 'Nagpasok ka ng isang hindi katanggap-tanggap na tirahan ng e-liham.',
-       'config-subscribe' => 'Tumanggap mula sa [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce talaan ng mga pinadadalhan ng mga nilalabas na mga pabatid].',
-       'config-subscribe-help' => 'Isang itong tala ng pagliliham na mababa ang dami na ginagamit para sa pagpapakawala ng mga pahayag, kabilang na ang mahahalagang mga pahayag na pangkatiwasayan. Dapat kang magpasipi nito at isapanahon ang iyong nakaluklok na MediaWiki kapag lumalabas ang bagong mga bersiyon.',
-       'config-subscribe-noemail' => 'Sinubukan mong magpasipi sa tala ng nililihaman ng pagpapakawala ng mga pahayag na hindi nagbibigay ng isang tirahan ng -eliham. Paki magbigay ng isang tirahan ng e-liham kung nais mong magpasipi sa listahan ng pagliliham.',
-       'config-almost-done' => 'Halos tapos ka na!
-Maaari mo ngayong laktawan ang natitira pang pag-aayos at iluklok na ang wiki ngayon.',
-       'config-optional-continue' => 'Magtanong sa akin ng marami pang mga tanong.',
-       'config-optional-skip' => 'Naiinip na ako, basta iluklok na lang ang wiki.',
-       'config-profile' => 'Balangkas ng mga karapatan ng tagagamit:',
-       'config-profile-wiki' => 'Tradisyonal na wiki', # Fuzzy
-       'config-profile-no-anon' => 'Kailangan ang paglikha ng akawnt',
-       'config-profile-fishbowl' => 'Pinahintulutang mga patnugot lamang',
-       'config-profile-private' => 'Pribadong wiki',
-       'config-profile-help' => "Pinaka mahusay ang pagtakbo ng mga Wiki kapag pinapahintulutan mo ang pinaka maraming mga tao na makapamatnugot ng mga ito hanggang sa maaari.
-Sa loob ng MediaWiki, maginhawang masusuring muli ang kamakailang mga pagbabago, at mapanauli sa dati ang anumang nasira na nagawa ng isang walang muwang o may masamang hangarin na mga tagagamit.
-
-Subalit, marami ang nakatagpo na nagagamit ang MediaWiki sa loob ng malawak na sari-saring mga gampanin, at kung minsan ay hindi madaling makumbinsi ang lahat ng mga tao hinggil sa kapakinabangan ng kaparaanan ng wiki.
-Kung kaya't nasa iyo ang pagpili.
-
-Ang isang '''{{int:config-profile-wiki}}''' ay nagpapahintulot sa sinuman upang makapagbago, na hindi kailangan ang paglagdang papasok.
-Ang isang wiki na mayroong '''{{int:config-profile-no-anon}}''' ay nagbibigay ng karagdagang pananagutan, subalit maaaring pumigil sa nagkataon lamang na mga tagapag-ambag.
-
-Ang tagpo na '''{{int:config-profile-fishbowl}}''' ay nagpapahintulot lamang sa pinayagang mga tagagamit na makatingin ng mga pahina, na kapiling ang pangkat na pinayagang  makapamatnugot.
-Ang isang '''{{int:config-profile-private}}''' ay nagpapahintulot lamang sa pinayagang mga tagagamit na makatingin ng mga pahina, na kapiling ang pangkat na pinayagang makapamatnugot.
-
-Ang mas masasalimuot na mga kaayusan ng mga karapatan ng tagagamit ay makukuha pagkaraan ng pagluluklok, tingnan ang [//www.mediawiki.org/wiki/Manual:User_rights may kaugnayang kinamay na lahok].", # Fuzzy
-       'config-license' => 'Karapatang-ari at lisensiya:',
-       'config-license-none' => 'Walang talababa ng lisensiya',
-       'config-license-cc-by-sa' => 'Malikhaing Pangkaraniwang Pagtukoy Pamamahaging Magkatulad',
-       'config-license-cc-by' => 'Atribusyon ng Creative Commons',
-       'config-license-cc-by-nc-sa' => 'Malikhaing Pangkaraniwang Pagtukoy Hindi-Pangkalakal Pamamahaging Magkatulad',
-       'config-license-cc-0' => 'Sero na Creative Commons (Nasasakop ng Madla)',
-       'config-license-gfdl' => 'Lisensiyang 1.3 ng Malayang Dokumentasyon ng GNU o mas lalong huli',
-       'config-license-pd' => 'Nasasakupan ng Madla',
-       'config-license-cc-choose' => 'Pumili ng isang pasadyang Lisensiya ng Malikhaing mga Pangkaraniwan',
-       'config-license-help' => "Maraming mga pangmadlang wiki ang naglalagay ng lahat ng mga ambag sa ilalim ng [http://freedomdefined.org/Definition lisensiyang malaya].
-Nakakatulong ito sa paglikha ng isang diwa ng pagmamay-ari ng pamayanan at nakapanghihikayat ng ambag na pangmahabang panahon.
-Sa pangkalahatan, hindi kailangan ang isang wiking pribado o pangsamahan.
-
-Kung nais mong magamit ang teksto magmula sa Wikipedia, at nais mong makatanggap ang Wikipedia ng tekstong kinopya magmula sa wiki mo, dapat mong piliin ang '''Creative Commons Attribution Share Alike''' (Pagbanggit na Pinagsasaluhang Magkatulad ng Malikhaing Pangkaraniwan).
-
-Dating ginamit ng Wikipedia ang Lisensiya ng Kasulatang Malaya ng GNU (GNU Free Documentation License o GFDL).
-Isang katanggap-tanggap na lisensiya ang GFDL, subalit mahirap itong maunawaan.
-Mahirap din ang paggamit na muli ng nilalaman na nasa ilalim ng GFDL.",
-       'config-email-settings' => 'Mga katakdaan ng e-liham',
-       'config-enable-email' => 'Paganahin ang palabas na e-liham',
-       'config-enable-email-help' => 'Kung nais mong gumana ang e-liham, ang mga katakdaan ng liham ng [http://www.php.net/manual/en/mail.configuration.php PHP] ay kailangang maging wasto ang pagkakaayos.
-Kung ayaw mo nang anumang mga katampukan ng e-liham, maaari mong huwag paganahin ang mga ito rito.',
-       'config-email-user' => 'Paganahin ang tagagamit-sa-tagagamit na e-liham',
-       'config-email-user-help' => 'Payagan ang lahat ng mga tagagamit na magpadala ng e-liham sa bawat isa kapag pinagana nila ito sa kanilang mga nais.',
-       'config-email-usertalk' => 'Paganahin ang pabatid na pampahina ng usapan ng tagagamit',
-       'config-email-usertalk-help' => 'Payagan ang mga tagagamit na tumanggap ng mga pabatid sa mga pagbabago ng pahina ng usapan ng tagagamit, kapag pinagana nila ito sa kanilang mga nais.',
-       'config-email-watchlist' => 'Paganahin ang pabatid ng talaan ng bantayan',
-       'config-email-watchlist-help' => 'Payagan ang mga tagagamit na tumanggap ng mga pabatid tungkol sa kanilang binabantayang mga pahina kapag pinagana nila ito sa kanilang mga nais.',
-       'config-email-auth' => 'Paganahin ang pagpapatunay ng e-liham',
-       'config-email-auth-help' => "Kapag pinagagana ang mapipiling ito, dapat tiyakin ng mga tagagamit ang kanilang tirahan ng e-liham na ginagamit ang isang kawing na ipinadala sa kanila tuwing itinatakda o binabago nila ito.
-Tanging napatunayang mga tirahan ng e-liham lamang ang makakatanggap ng mga e-liham magmula sa ibang mga tagagamit o makakapagbago ng mga e-liham ng pagpapabatid.
-'''Iminumungkahi''' ang mapipiling katakdaan na ito para sa mga wiking pangmadla dahil sa maaaring mangyaring pagmamalabis ng mga katampukan ng e-liham.",
-       'config-email-sender' => 'Pabalik na tirahan ng e-liham:',
-       'config-email-sender-help' => 'Ipasok ang tirahan ng e-liham na gagamitin bilang tirahang pagsasaulian ng e-liham na papalabas.
-Dito ang kung saan ipapadala ang mga pagtalbog.
-Maraming mga tagapaghain ng liham ang nangangailangan ng kahit na bahagi lamang ng pangalan ng nasasakupan upang maging katanggap-tanggap.',
-       'config-upload-settings' => 'Mga pagkakarga ng mga larawan at talaksan',
-       'config-upload-enable' => 'Paganahin ang pagkakarga ng talaksan',
-       'config-upload-help' => 'Ang paitaas na mga pagkakarga ng mga talaksan ay maaaring makapaglantad ng iyong tagapaghain sa mga panganib na pangkatiwasayan.
-Para sa mas marami pang kabatiran, basahin ang [//www.mediawiki.org/wiki/Manual:Security seksiyon ng katiwasayan] sa loob ng gabay.
-
-Upang mapagana ang paitaas na mga pagkakarga ng talaksan, baguhin ang gawi roon sa subdirektoryo ng <code>mga imahe</code> sa ilalim ng ugat na direktoryo ng MediaWiki upang ang tagapaghain ng kasaputan ay makapagsulat dito.
-Pagkaraan ay paganahin ang pipiliing ito.',
-       'config-upload-deleted' => 'Direktoryo para sa binurang mga talaksan:',
-       'config-upload-deleted-help' => 'Pumili ng isang direktoryong pagsusupnayan ng naburang mga talaksan.
-Ideyal na dapat itong  hindi mapupuntahan mula sa web.',
-       'config-logo' => 'URL ng logo:',
-       'config-logo-help' => 'Ang likas na nakatakdang pabalat ng MediaWiki ay nagsasama ng puwang para sa isang logong 135x160 ang piksel na nasa itaas ng menu ng panggilid na bareta.
-Magkargang papaitaas ng isang imahe na mayroong naaangkop na sukat, at ipasok dito ang URL.
-
-Kung ayaw mo ng isang logo, iwanang walang laman ang kahong ito.', # Fuzzy
-       'config-instantcommons' => 'Paganahin ang Mga Pangkaraniwang Biglaan',
-       'config-instantcommons-help' => 'Ang [//www.mediawiki.org/wiki/InstantCommons Instant Commons] ay isang tampok na nagpapahintulot sa mga wiki upang gumamit ng mga imahe, mga tunog at iba pang mga midyang matatagpuan sa pook ng [//commons.wikimedia.org/ Wikimedia Commons].
-Upang magawa ito, nangangailangan ang MediaWiki ng pagka nakakapunta sa Internet.
-
-Para sa mas marami pang kabatiran hinggil sa tampok na ito, kabilang na ang mga tagubilin sa kung paano ito itakda para sa mga wiki na bukod pa kaysa sa Wikimedia Commons, sumangguni sa [//mediawiki.org/wiki/Manual:$wgForeignFileRepos gabay].',
-       'config-cc-error' => 'Hindi nagbigay ng resulta ang pampili ng lisensiya ng Malikhaing Pangkaraniwan.
-Ipasok na kinakamay ang pangalan ng lisensiya.',
-       'config-cc-again' => 'Pumili uli...',
-       'config-cc-not-chosen' => 'Piliin kung anong lisensiya ng Malikhaing mga Pangkaraniwan ang nais mo at pindutin ang "magpatuloy".',
-       'config-advanced-settings' => 'Mas masulong na pagkakaayos',
-       'config-cache-options' => 'Mga katakdaan para sa pagtatago ng bagay:',
-       'config-cache-help' => 'Ang pagtatago ng bagay ay ginagamit upang mapainam ang tulin ng MediaWiki sa pamamagitan ng pagtatago ng madalas gamiting dato.
-Ang mga pook na bahagya hanggang malalaki ang sukat ay labis na hinihikayat na paganahin ito, at ang mga pook na maliliit ay makakakita rin ng mga kapakinabangan.',
-       'config-cache-none' => 'Walang pagtatago (tinanggal ang katungkulan, subalit maaaring maapektuhan ang tulin sa mas malalaking mga pook ng wiki)',
-       'config-cache-accel' => 'Pagtatago ng bagay ng PHP (APC, XCache o WinCache)',
-       'config-cache-memcached' => 'Gamitin ang Pagtatago sa Alaala (Memcached) (nangangailangan ng karagdagang kaayusan ng pagkakahanda at pagsasaayos)',
-       'config-memcached-servers' => 'Mga tagapaghaing itinago sa alaala:',
-       'config-memcached-help' => 'Listahan ng mga tirahan ng IP na gagamitin para sa Memcached o Itinagong Alaala.
-Dapat na tukuyin na isa sa bawat guhit at tukuyin ang daungang gagamitin. Bilang halimbawa:
- 127.0.0.1:11211
- 192.168.1.25:1234',
-       'config-memcache-needservers' => 'Pinili mo ang Memcached bilang uri mo ng taguan ngunit hindi tumukoy ng anumang mga tagapaghain.',
-       'config-memcache-badip' => 'Nagpasok ka ng isang hindi tanggap na tirahan ng IP para sa Memcached: $1.',
-       'config-memcache-noport' => 'Hindi ka tumukoy ng isang daungan na gagamitin para sa tagapaghain ng Memcached: $1.
-Kung hindi mo alam ang daungan, ang likas na nakatakda ay 11211.',
-       'config-memcache-badport' => 'Ang bilang ng daungan ng Memcached ay dapat na nasa pagitan ng $1 at $2.',
-       'config-extensions' => 'Mga dugtong',
-       'config-extensions-help' => 'Ang mga dugtong na nakalista sa ibabaw ay napansin sa loob ng iyong direktoryo ng <code>./extensions</code>.
-
-Maaaring mangailangan ang mga ito ng karagdagang kaayusan, subalit mapapagana mo ngayon ang mga ito',
-       'config-install-alreadydone' => "'''Babala:''' Tila nailuklok mo na ang MediaWiki at tinatangka mong iluklok ito ulit.
-Paki magpatuloy sa susunod na pahina.",
-       'config-install-begin' => 'Sa pamamagitan ng pagpindot sa "{{int:config-continue}}", sisimulan mo ang pagluluklok ng MediaWiki.
-Kung nais mo paring gumawa ng mga pagbabago, paki pindutin ang bumalik.', # Fuzzy
-       'config-install-step-done' => 'nagawa na',
-       'config-install-step-failed' => 'nabigo',
-       'config-install-extensions' => 'Isinasama ang mga karugtong',
-       'config-install-database' => 'Inihahanda ang kalipunan ng dato',
-       'config-install-schema' => 'Nililikha ang panukala',
-       'config-install-pg-schema-not-exist' => 'Hindi umiiral ang panukala ng PostgreSQL.',
-       'config-install-pg-schema-failed' => 'Nabigo ang paglikha ng mga talahanayan.
-Tiyakin na ang tagagamit na "$1" ay maaaring makasulat sa balangkas na "$2".',
-       'config-install-pg-commit' => 'Isinasagawa ang mga pagbabago',
-       'config-install-pg-plpgsql' => 'Sumusuri ng wikang PL/pgSQL',
-       'config-pg-no-plpgsql' => 'Kailangan mong magtalaga ng wikang PL/pgSQL sa loob ng kalipunan ng datong $1',
-       'config-pg-no-create-privs' => 'Ang tinukoy mong akawnt para sa pagtatalaga ay walang sapat na mga pribilehiyo upang makalikha ng isang akawnt.',
-       'config-pg-not-in-role' => 'Umiiral na ang akawnt na tinukoy mo para sa tagagamit ng sangkasaputan.
-Ang tinukoy mong akawnt para sa pagluluklok ay hindi isang tagagamit na super at hindi isang kasapi sa gampanin ng tagagamit ng sangkasaputan, kung kaya\'t hindi nito nagawang makalikha ng mga bagay na pag-aari ng tagagamit ng sangkasaputan.
-
-Sa kasalukuyan, nangangailangan ang MediaWiki na ang mga talahanayan ay maging pag-aari ng tagagamit ng sangkasaputan. Paki tumukoy ng isa pang pangalan ng akawnt na pangsangkasaputan, o pindutin ang "bumalik" at tumukoy ng isang tagagamit na may kaangkupang pribilehiyo ng pagluluklok.',
-       'config-install-user' => 'Nililikha ang tagagamit ng kalipunan ng dato',
-       'config-install-user-alreadyexists' => 'Umiiral na ang tagagamit na "$1"',
-       'config-install-user-create-failed' => 'Nabigo ang paglikha ng tagagamit na "$1": $2',
-       'config-install-user-grant-failed' => 'Nabigo ang pagbibigay ng pahintulot sa tagagamit na "$1": $2',
-       'config-install-user-missing' => 'Hindi umiiral ang tinukoy na tagagamit na si "$1".',
-       'config-install-user-missing-create' => 'Hindi umiiral ang tinukoy na tagagamit na si "$1".
-Paki lagitikin ang nasa ibabang kahong natsetsekan na "likhain ang akawnt" kung nais mong likhain ito.',
-       'config-install-tables' => 'Nililikha ang mga talahanayan',
-       'config-install-tables-exist' => "'''Babala''': Tila umiiral na ang mga talahanayan ng MediaWiki.
-Nilalaktawan ang paglikha.",
-       'config-install-tables-failed' => "'''Kamalian''': Nabigo ang paglikha ng talahanayan na may sumusunod na kamalian: $1",
-       'config-install-interwiki' => 'Nilalagyan ng laman ang likas na nakatakdang talahanayan ng interwiki',
-       'config-install-interwiki-list' => 'Hindi matagpuan ang talaksang <code>interwiki.list</code>.',
-       'config-install-interwiki-exists' => "'''Babala''': Tila may mga laman na ang talahanayan ng interwiki.
-Nilalaktawan ang likas na nakatakdang talaan.",
-       'config-install-stats' => 'Sinisimulan ang estadistika',
-       'config-install-keys' => 'Ginagawa ang lihim na mga susi',
-       'config-insecure-keys' => "'''Babala:''' Nalikha ang {{PLURAL:$2|A secure key|ligtas na mga susi}} ($1) habang ang pagluluklok {{PLURAL:$2|ay|ay}} hindi pa lubos na ligtas. Isaalang-alang ang kinakamay na pagbago {{PLURAL:$2|nito|ng mga ito}}.",
-       'config-install-sysop' => 'Nililikha ang akawnt ng tagagamit na tagapangasiwa',
-       'config-install-subscribe-fail' => 'Hindi nagawang magpasipi mula sa mediawiki-announce: $1',
-       'config-install-subscribe-notpossible' => 'Hindi nakalagak ang cURL at hindi makukuha ang allow_url_fopen',
-       'config-install-mainpage' => 'Nililikha ang pangunahing pahina na may likas na nakatakdang nilalaman',
-       'config-install-extension-tables' => 'Nililikha ang mga talahanayan para sa pinagaganang mga dugtong',
-       'config-install-mainpage-failed' => 'Hindi maisingit ang pangunahing pahina: $1',
-       'config-install-done' => "'''Maligayang bati!'''
-Matagumpay mong nailuklok ang MediaWiki.
-
-Ang tagapagluklok ay nakagawa ng isang talaksan ng <code>LocalSettings.php</code>.
-Naglalaman ito ng lahat ng iyong mga pagsasaayos.
-
-Kailangan mo itong ikargang paibaba at ilagay ito sa lipon ng iyong pagluluklok ng wiki (katulad ng direktoryo ng index.php).  Ang pagkakargang paibaba ay dapat na kusang magsimula.
-
-Kung ang pagkakargang paibaba ay hindi inialok, o kung hindi mo ito itinuloy, maaari mong muling simulan ang pagkakargang paibaba sa pamamagitan ng pagpindot sa kawing na nasa ibaba:
-
-$3
-
-'''Paunawa''': Kapag hindi mo ito ginawa ngayon, ang nagawang talaksang ito ng pagkakaayos ay hindi mo na makukuha mamaya kapag lumabas ka mula sa pagluluklok na hindi ikinakarga itong paibaba.
-
-Kapag nagawa na iyan, maaari ka nang '''[$2 pumasok sa wiki mo]'''.",
-       'config-download-localsettings' => 'Ikargang paibaba ang <code>LocalSettings.php</code>',
-       'config-help' => 'saklolo',
-       'config-nofile' => 'Hindi matagpuan ang talaksang "$1". Binura na ba ito?',
-       'mainpagetext' => "'''Matagumpay na ininstala ang MediaWiki.'''",
-       'mainpagedocfooter' => "Silipin ang [//meta.wikimedia.org/wiki/Help:Contents Patnubay sa Tagagamit] (''\"User's Guide\"'') para sa kaalaman sa paggamit ng wiking ''software''.
-
-== Pagsisimula ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Tala ng mga nakatakdang kumpigurasyon]
-* [//www.mediawiki.org/wiki/Manual:FAQ Mga malimit itanong sa MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Tala ng mga pinadadalhan ng liham ng MediaWiki]", # Fuzzy
-);
-
-/** толышә зывон (толышә зывон)
- * @author Erdemaslancan
- */
-$messages['tly'] = array(
-       'config-page-options' => 'Кукон',
-);
-
-/** Turkish (Türkçe)
- */
-$messages['tr'] = array(
-       'mainpagetext' => "'''MediaWiki başarı ile kuruldu.'''",
-       'mainpagedocfooter' => 'Viki yazılımının kullanımı hakkında bilgi almak için [//meta.wikimedia.org/wiki/Help:Contents kullanıcı rehberine] bakınız.
-
-== Yeni Başlayanlar ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Yapılandırma ayarlarının listesi]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki SSS]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-posta listesi]', # Fuzzy
-);
-
-/** Tatar (Cyrillic script) (татарча)
- * @author KhayR
- */
-$messages['tt-cyrl'] = array(
-       'mainpagetext' => '«MediaWiki» уңышлы куелды.',
-       'mainpagedocfooter' => "Бу вики турында мәгълүматны [//meta.wikimedia.org/wiki/Ярдәм:Эчтәлек биредә] табып була.
-
-== Кайбер файдалы ресурслар ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Көйләнмәләр исемлеге (инг.)];
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki турында еш бирелгән сораулар һәм җаваплар (инг.)];
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki'ның яңа версияләре турында хәбәрләр яздырып алу].", # Fuzzy
-);
-
-/** Tatar (Latin script) (tatarça)
- * @author Don Alessandro
- */
-$messages['tt-latn'] = array(
-       'mainpagetext' => '«MediaWiki» uñışlı quyıldı.',
-       'mainpagedocfooter' => "Bu wiki turında mäğlümatnı [//meta.wikimedia.org/wiki/Yärdäm:Eçtälek biredä] tabıp bula.
-
-== Qayber faydalı resurslar ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Köylänmälär isemlege (ing.)];
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki turında yış birelgän sorawlar häm cawaplar (ing.)];
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki'nıñ yaña versiäläre turında xäbärlär yazdırıp alu].", # Fuzzy
-);
-
-/** Udmurt (удмурт)
- * @author Andrewboltachev
- */
-$messages['udm'] = array(
-       'mainpagetext' => "'''MediaWiki движок азинлыко пуктэмын.'''",
-);
-
-/** Uyghur (Arabic script) (ئۇيغۇرچە)
- * @author Sahran
- */
-$messages['ug-arab'] = array(
-       'mainpagetext' => "'''MediaWiki مۇۋەپپەقىيەتلىك قاچىلاندى.'''",
-       'mainpagedocfooter' => '[//meta.wikimedia.org/wiki/Help:Contents ئىشلەتكۈچى قوللانمىسى] نى زىيارەت قىلىپ wiki يۇمشاق دېتالىنى ئىشلىتىش ئۇچۇرىغا ئېرىشىڭ.
-
-== دەسلەپكى ساۋات ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings سەپلىمە تەڭشەك تىزىملىكى]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki كۆپ ئۇچرايدىغان مەسىلىلەرگە جاۋاب]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki تارقاتقان ئېلخەت تىزىملىكى]', # Fuzzy
-);
-
-/** Ukrainian (українська)
- * @author AS
- * @author Ahonc
- * @author Alex Khimich
- * @author Andriykopanytsia
- * @author Base
- * @author Diemon.ukr
- * @author Ата
- * @author Тест
- * @author 아라
- */
-$messages['uk'] = array(
-       'config-desc' => 'Інсталятор MediaWiki',
-       'config-title' => 'Встановлення MediaWiki $1',
-       'config-information' => 'Інформація',
-       'config-localsettings-upgrade' => "'''Увага''': було виявлено файл <code>LocalSettings.php</code>.
-Ваше програмне забезпечення може бути оновлено.
-Будь-ласка, перемістіть файл <code>LocalSettings.php</code> в іншу безпечну директорію, а потім знову запустіть програму установки.",
-       'config-localsettings-cli-upgrade' => 'Виявлено файл <code>LocalSettings.php</code>.
-Щоб оновити наявну установку, запустіть <code>update.php</code>',
-       'config-localsettings-key' => 'Ключ оновлення:',
-       'config-localsettings-badkey' => 'Ви вказали неправильний ключ.',
-       'config-upgrade-key-missing' => 'Виявлено наявну установку MediaWiki.
-Для оновлення цієї установки, будь ласка, вставте такий рядок в кінець вашого <code>LocalSettings.php</code>:
-$1',
-       'config-localsettings-incomplete' => 'Існуючий файл <code>LocalSettings.php</code> виявився неповним.
-Не вказано змінну $1.
-Будь ласка, змініть <code>LocalSettings.php</code> так, щоб цю змінну було задано, і натисніть "{{int:Config-continue}}".',
-       'config-localsettings-connection-error' => 'Сталася помилка при підключення до бази даних з допомогою налаштувань на сторінці <code>LocalSettings.php</code> чи <code>AdminSettings.php</code>. Будь ласка, виплавте ці налаштування і спробуйте знову.
-
-$1',
-       'config-session-error' => 'Помилка початку сесії: $1',
-       'config-session-expired' => 'Час Вашої сесії минув.
-Задана тривалість сесії — $1.
-Ви можете збільшити її, змінивши <code>session.gc_maxlifetime</code> у php.ini.
-Перезапустіть процес встановлення.',
-       'config-no-session' => 'Дані сесії було втрачено!
-Перевірте Ваш php.ini і переконайтесь, що <code>session.save_path</code> встановлено у відповідну папку.',
-       'config-your-language' => 'Ваша мова:',
-       'config-your-language-help' => 'Оберіть мову для використання в процесі установки.',
-       'config-wiki-language' => 'Мова для вікі:',
-       'config-wiki-language-help' => 'Виберіть мову, якою буде відображатися вікі.',
-       'config-back' => '← Назад',
-       'config-continue' => 'Далі →',
-       'config-page-language' => 'Мова',
-       'config-page-welcome' => 'Ласкаво просимо на MediaWiki!',
-       'config-page-dbconnect' => 'Підключення до бази даних',
-       'config-page-upgrade' => 'Оновлення існуючої установки',
-       'config-page-dbsettings' => 'Налаштування бази даних',
-       'config-page-name' => 'Назва',
-       'config-page-options' => 'Параметри',
-       'config-page-install' => 'Установка',
-       'config-page-complete' => 'Готово!',
-       'config-page-restart' => 'Перезапустити установку',
-       'config-page-readme' => 'Прочитай мене',
-       'config-page-releasenotes' => 'Інформація про версію',
-       'config-page-copying' => 'Копіювання',
-       'config-page-upgradedoc' => 'Оновлення',
-       'config-page-existingwiki' => 'Існуюча вікі',
-       'config-help-restart' => 'Ви бажаєте видалити всі введені та збережені вами дані і запустити процес установки спочатку?',
-       'config-restart' => 'Так, перезапустити установку',
-       'config-welcome' => '=== Перевірка оточення ===
-Будуть проведені базові перевірки, щоб виявити, чи можлива установка MediaWiki у даній системі.
-Не забудьте включити цю інформацію, якщо ви звернетеся по підтримку, як завершити установку.',
-       'config-copyright' => "=== Авторське право і умови ===
-
-$1
-
-Ця програма є вільним програмним забезпеченням; Ви можете розповсюджувати та/або змінювати її під ліцензією GNU General Public License, опублікованою Фондом вільного програмного забезпечення; версією 2 цієї ліцензії або будь-якою пізнішою на Ваш вибір.
-
-Ця програма поширюється з надією на те, що вона буде корисною, однак '''без жодних гарантій'''; навіть без неявної гарантії '''комерційної цінності''' або '''придатності для певних цілей'''.
-Див. GNU General Public License для детальної інформації.
-
-Ви повинні були отримати <doclink href=Copying>копію GNU General Public License</doclink> разом із цією програмою; якщо ж ні, зверніться до Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. або [http://www.gnu.org/copyleft/gpl.html ознайомтесь з нею онлайн].",
-       'config-sidebar' => '* [//www.mediawiki.org Сайт MediaWiki]
-* [//www.mediawiki.org/wiki/Help:Contents Посібник користувача]
-* [//www.mediawiki.org/wiki/Manual:Contents Посібник адміністратора]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]
-----
-* <doclink href=Readme>Read me</doclink>
-* <doclink href=ReleaseNotes>Інформація про випуск</doclink>
-* <doclink href=Copying>Ліцензія</doclink>
-* <doclink href=UpgradeDoc>Оновлення</doclink>',
-       'config-env-good' => 'Перевірку середовища успішно завершено.
-Ви можете встановити MediaWiki.',
-       'config-env-bad' => 'Було проведено перевірку середовища. Ви не можете встановити MediaWiki.',
-       'config-env-php' => 'Встановлено версію PHP: $1.',
-       'config-env-php-toolow' => 'Встановлено PHP $1.
-Натомість MediaWiki вимагає PHP $2 і вище.',
-       'config-unicode-using-utf8' => 'Використовувати utf8_normalize.so Брайона Віббера для нормалізації Юнікоду.',
-       'config-unicode-using-intl' => 'Використовувати [http://pecl.php.net/intl міжнародне розширення PECL] для нормалізації Юнікоду.',
-       'config-unicode-pure-php-warning' => "'''Увага''': [http://pecl.php.net/intl міжнародне розширення PECL] не може провести нормалізацію Юнікоду.
-Якщо ваш сайт має високий трафік, вам варто почитати про [//www.mediawiki.org/wiki/Unicode_normalization_considerations нормалізацію Юнікоду].",
-       'config-unicode-update-warning' => "'''Увага''': Встановлена версія обгортки нормалізації Юнікоду використовує стару версію бібліотеки [http://site.icu-project.org/ проекту ICU].
-Ви маєте [//www.mediawiki.org/wiki/Unicode_normalization_considerations оновити версію], якщо плануєте повноцінно використовувати Юнікод.",
-       'config-no-db' => 'Не вдалося знайти відповідний драйвер бази даних! Вам необхідно встановити драйвер бази даних для PHP. Підтримуються такі типи баз даних: $1.
-
-Якщо ви користуєтесь віртуальним хостингом, попросіть вашого хостинг-провайдера інсталювати відповідний драйвер бази даних.
-Якщо ви скомпілювали PHP самостійно, переналаштуйте його з включенням клієнта бази даних, наприклад за допомогою <code>./configure --with-mysql</code>.
-Якщо установлено PHP з пакетів Debian або Ubuntu, тоді ви також повинні встановити 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> увімкнена.'''
-'''Вимкніть її, якщо це можливо.'''
-MediaWiki буде працювати, але Ваш сервер буде більш вразливим до потенційного проникнення зовні.",
-       'config-magic-quotes-runtime' => "'''Проблема: Опція PHP [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] увімкнена!'''
-Ця опція призводить до непередбачуваного пошкодження даних.
-Ви не можете встановити і використовувати MediaWiki, поки не буде вимкнено цю опцію.",
-       'config-magic-quotes-sybase' => "'''Проблема: Опція PHP [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] увімкнена!'''
-Ця опція призводить до непередбачуваного пошкодження даних.
-Ви не можете встановити і використовувати MediaWiki, поки не буде вимкнено цю опцію.",
-       'config-mbstring' => "'''Проблема: Опція PHP [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] увімкнена!'''
-Ця опція призводить до непередбачуваного пошкодження даних.
-Ви не можете встановити і використовувати MediaWiki, поки не буде вимкнено цю опцію.",
-       'config-ze1' => "'''Проблема: Опція PHP [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] увімкнена!'''
-Ця опція призводить до непередбачуваного пошкодження даних.
-Ви не можете встановити і використовувати MediaWiki, поки не буде вимкнено цю опцію.",
-       'config-safe-mode' => "'''Увага:''' Опція PHP [http://www.php.net/features.safe-mode «безпечний режим»] увімкнена.
-Це може спричинити проблеми, зокрема із завантаженням файлів та вставкою математичних формул.",
-       'config-xml-bad' => 'XML-модуть PHP відсутній.
-MediaWiki необхідні його функції, без цього модуля вона працювати не буде.
-Якщо Ви використовуєте Mandrake, встановіть php-xml пакет.',
-       'config-pcre' => 'Модуть підтримку PCRE не знайдено.
-Для роботи MediaWiki необхідна підтримка Perl-сумісних регулярних виразів.',
-       'config-pcre-no-utf8' => "'''Помилка''': PCRE-модуть PHP, вочевидь, було зібрано без підтримки PCRE_UTF8.
-MediaWiki вимагає підтримку UTF-8 для коректної роботи.",
-       'config-memory-raised' => "Обмеження пам'яті PHP (<code>memory_limit</code>) $1, піднято до $2.",
-       'config-memory-bad' => "'''Увага:''' Розмір пам'яті PHP (<code>memory_limit</code>) становить $1.
-Імовірно, це замало.
-Встановлення може не вдатись!",
-       'config-ctype' => "'''Помилка''': PHP має бути зібраним з підтримкою [http://www.php.net/manual/en/ctype.installation.php розширення Ctype].",
-       'config-json' => "'''Fatal:''' PHP був скомпільований без підтримки JSON.
-Вам потрібно встановити або розширення PHP JSON або розширення[http://pecl.php.net/package/jsonc PECL jsonc] перед встановлення Медіавікі.
-* Розширення PHP включено у Red Hat Enterprise Linux (CentOS) 5 та 6, хоча має бути доступним у  <code>/etc/php.ini</code> або <code>/etc/php.d/json.ini</code>.
-* Деякі дистрибутиви Лінукса, випущені після травня 2013, пропустили розширення PHP, натомість упакували розширення  PECL як <code>php5-json</code> або <code>php-pecl-jsonc</code>.",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache] встановлено',
-       'config-apc' => '[http://www.php.net/apc APC] встановлено',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache] встановлено',
-       'config-no-cache' => "'''Увага:''' Не вдалося знайти [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] чи [http://www.iis.net/download/WinCacheForPhp WinCache].
-Кешування об'єктів не ввімкнено.",
-       '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.
-Відображення мініатюр буде вимкнено.',
-       'config-no-uri' => "'''Помилка:''' Не вдалося визначити поточний URI.
-Встановлення перервано.",
-       'config-no-cli-uri' => "'''Увага''': Не задано параметр --scriptpath, використовується за замовчуванням: <code>$1</code>.",
-       'config-using-server' => 'Використовується ім\'я сервера "<nowiki>$1</nowiki>".',
-       'config-using-uri' => 'Використовується URL сервера "<nowiki>$1$2</nowiki>".',
-       'config-uploads-not-safe' => "'''Увага:''' Ваша типова папка для завантажень <code>$1</code> вразлива до виконання довільних скриптів.
-Хоча MediaWiki перевіряє усі завантажені файли на наявність загроз, наполегливо рекомендується [//www.mediawiki.org/wiki/Manual:Security#Upload_security закрити дану вразливість] перед тим, як дозволяти завантаження файлів.",
-       'config-no-cli-uploads-check' => "'''Увага:''' Ваша типова папка для завантажень (<code>$1</code>) не перевірялась на вразливість до виконання довільних скриптів під час встановлення CLI.",
-       'config-brokenlibxml' => 'У Вашій системі невдале поєднання версій PHP і libxml2, яке може спричинити пошкодження прихованих даних у MediaWiki та інших веб-застосунках.
-Оновіть PHP до версії 5.2.9 або пізнішої і libxml2 до 2.7.3 або пізнішої ([//bugs.php.net/bug.php?id=45996 відомості про помилку]).
-Встановлення перервано.',
-       'config-using531' => 'MediaWiki не можна використовувати разом з PHP $1 через помилку з параметрами-посиланнями <code>__call()</code>.
-Оновіть PHP до версії 5.3.2 і вище або відкотіть до PHP 5.3.0 щоб уникнути цієї проблеми.
-Встановлення скасовано.',
-       'config-suhosin-max-value-length' => 'Suhosin встановлено і обмежує параметра GET  <code>length</code> до $1 байта. Компонент MediaWiki ResourceLoader буде обходити це обмеження, однак це зменшить продуктивність. Якщо це можливо, Вам варто встановити значення <code>suhosin.get.max_value_length</code> як 1024 і більше у <code>php.ini</code> і встановити таке ж значення <code>$wgResourceLoaderMaxQueryLength</code> у LocalSettings.php .',
-       'config-db-type' => 'Тип бази даних:',
-       'config-db-host' => 'Хост бази даних:',
-       'config-db-host-help' => 'Якщо сервер бази даних знаходиться на іншому сервері, введіть тут ім\'я хосту і IP адресу.
-
-Якщо Ви використовуєте віртуальний хостинг, Ваш хостинг-провайдер має надати Вам правильне ім\'я хосту у його документації.
-
-Якщо у Вас сервер із Windows Ви використовуєте MySQL, параметр "localhost" може не працювати для імені сервера. Якщо не працює, використайте "127.0.0.1" як локальну IP-адресу.
-
-Якщо Ви використовуєте PostgreSQL, залиште це поле пустим, щоб під\'єднатись через сокет Unix.',
-       'config-db-host-oracle' => 'TNS бази даних:',
-       'config-db-host-oracle-help' => 'Введіть допустиме [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name]; файл tnsnames.ora має бути видимим для цієї інсталяції. <br />Якщо Ви використовуєте бібліотеки 10g чи новіші, можна також використовувати метод іменування [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].',
-       'config-db-wiki-settings' => 'Ідентифікувати цю вікі',
-       'config-db-name' => 'Назва бази даних:',
-       'config-db-name-help' => 'Виберіть назву, що ідентифікує Вашу вікі.
-Вона не повинна містити пробілів.
-
-Якщо Ви використовуєте віртуальний хостинг, Ваш хостинг-провайдер або надасть Вам конкретну назву бази даних, або дозволить створювати бази даних з допомогою панелі управління.',
-       'config-db-name-oracle' => 'Схема бази даних:',
-       'config-db-account-oracle-warn' => 'Є три підтримувані сценарії установки Oracle:
-
-Якщо Ви хочете створити обліковий запис бази даних у процесі встановлення, будь ласка, вкажіть обліковий запис ролі SYSDBA для установки і бажані повноваження для облікового запису з веб-доступом. В протилежному випадку Ви можете або створити обліковий запис з веб-доступом вручну і вказати тільки цей обліковий запис (якщо він має необхідні дозволи на створення об\'єктів-схем), або вказати два різні облікові записи, з яких в одного будуть права на створення, а в другого, обмеженого — права веб-доступу.
-
-Скрипт для створення облікового запису з необхідними повноваженнями можна знайти у папці "maintenance/oracle/" цієї інсталяції. Майте на увазі, що використання обмеженого облікового запису вимкне можливість використання технічного обслуговування з облікового запису за замовчуванням.',
-       'config-db-install-account' => 'Обліковий запис користувача для встановлення',
-       'config-db-username' => "Ім'я користувача бази даних:",
-       'config-db-password' => 'Пароль бази даних:',
-       'config-db-password-empty' => 'Будь ласка, введіть пароль для нового користувача бази даних: $1.
-Хоча можна створювати користувачів без паролів, це не є безпечним.',
-       'config-db-install-username' => "Введіть ім'я користувача, яке буде використано для підключення до бази даних під час процесу встановлення.
-Це не ім'я користувача облікового запису MediaWiki; це ім'я користувача для Вашої бази даних.",
-       'config-db-install-password' => 'Введіть пароль, який буде використано для підключення до бази даних під час процесу встановлення.
-Це не пароль облікового запису MediaWiki; це пароль для Вашої бази даних.',
-       'config-db-install-help' => "Введіть ім'я користувача і пароль, які буде використано для підключення до бази даних у процесі встановлення.",
-       'config-db-account-lock' => "Використовувати ті ж ім'я користувача і пароль і для звичайної роботи",
-       'config-db-wiki-account' => 'Обліковий запис користувача для звичайної роботи',
-       'config-db-wiki-help' => "Введіть ім'я користувача і пароль, які будуть використовуватись для з'єднання з базою даних під час звичайної роботи.
-Якщо обліковий запис не існує, а в облікового запису інсталяції є достатні повноваження, цей обліковий запис користувача буде створено з мінімальними правами, що необхідні для роботи з вікі.",
-       'config-db-prefix' => 'Префікс таблиць бази даних:',
-       'config-db-prefix-help' => 'Якщо треба ділити одну базу даних між декількома вікі або між MediaWiki та іншим веб-застосунком, Ви можете додати префікс до усіх назв таблиць для уникнення конфліктів.
-Не використовуйте пробіли.
-
-Це поле зазвичай залишають пустим.',
-       'config-db-charset' => 'Кодування бази даних',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 binary',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 зворотно сумісна з UTF-8',
-       'config-charset-help' => "'''Увага:''' Якщо Ви використовуєте '''зворотно сумісну UTF-8''' на MySQL 4.1+ і створюєте резервні копії бази даних з допомогою <code>mysqldump</code>, це може викривити усі не-ASCII символи, незворотно пошкодивши резервні копії!
-
-У '''бінарному режимі''' MediaWiki зберігає текст UTF-8 у базі даних з бінарними полями.
-Це більш ефективно, ніж UTF-8 режим MySQL, і дозволяє використовувати увесь набір символів Юнікоду.
-У '''режимі UTF-8''' MySQL буде знати, якого символу стосуються Ваші дані, і могтиме відображати та конвертувати їх належним чином,
-але не дозволятиме зберігати символи, що виходять за межі [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
-       'config-mysql-old' => 'Необхідна MySQL $1 або пізніша, а у Вас $2.',
-       'config-db-port' => 'Порт бази даних:',
-       'config-db-schema' => 'Схема для MediaWiki',
-       'config-db-schema-help' => 'Ця схема зазвичай працює добре.
-Змінюйте її тільки якщо знаєте, що Вам це потрібно.',
-       'config-pg-test-error' => "Не вдається підключитися до бази даних '''$1''': $2",
-       'config-sqlite-dir' => 'Папка даних SQLite:',
-       'config-sqlite-dir-help' => "SQLite зберігає усі дані в єдиному файлі.
-
-Папка, яку Ви вказуєте, має бути доступна серверу для запису під час встановлення.
-
-Вона '''не''' повинна бути доступна через інтернет, тому ми і не поміщуємо її туди, де Ваші файли PHP.
-
-Інсталятор пропише у неї файл <code>.htaccess</code>, але якщо це не спрацює, хтось може отримати доступ до Вашої вихідної бази даних, яка містить вихідні дані користувача (адреси електронної пошти, хеші паролів), а також видалені версії та інші обмежені дані на вікі.
-
-За можливості розташуйте базу даних десь окремо, наприклад в <code>/var/lib/mediawiki/yourwiki</code>.",
-       'config-oracle-def-ts' => 'Простір таблиць за замовчуванням:',
-       'config-oracle-temp-ts' => 'Тимчасовий простір таблиць:',
-       'config-support-info' => 'MediaWiki підтримує таки системи баз даних:
-
-$1
-
-Якщо Ви не бачите серед перерахованих систему баз даних, яку використовуєте, виконайте вказівки, вказані вище, щоб увімкнути підтримку.',
-       'config-support-mysql' => '* $1 є основною для MediaWiki і найкраще підтримується ([http://www.php.net/manual/en/mysql.installation.php як зібрати PHP з допомогою MySQL])',
-       'config-support-postgres' => '* $1 — популярна відкрита СУБД, альтернатива MySQL ([http://www.php.net/manual/en/pgsql.installation.php як зібрати PHP з допомогою PostgreSQL]). Можуть зустрічатись деякі невеликі невиправлені помилки, не рекомендується використовувати у робочій системі.',
-       'config-support-sqlite' => '* $1 — легка система баз даних, яка дуже добре підтримується. ([http://www.php.net/manual/en/pdo.installation.php Як зібрати PHP з допомогою SQLite], що використовує PDO)',
-       'config-support-oracle' => '* $1 — комерційна база даних масштабу підприємства. ([http://www.php.net/manual/en/oci8.installation.php Як зібрати PHP з підтримкою OCI8])',
-       'config-header-mysql' => 'Налаштування MySQL',
-       'config-header-postgres' => 'Налаштування PostgreSQL',
-       'config-header-sqlite' => 'Налаштування SQLite',
-       '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' => 'Неприпустиме 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.
-
-Перевірте хост, ім'я користувача та пароль і спробуйте ще раз.",
-       'config-invalid-schema' => 'Неприпустима схема для MediaWiki "$1".
-Використовуйте тільки ASCII букви (a-z, A-Z), цифри (0-9) і знаки підкреслення(_).',
-       'config-db-sys-create-oracle' => 'Інсталятор підтримує лише використання облікового запису SYSDBA для створення нового облікового запису.',
-       'config-db-sys-user-exists-oracle' => 'Обліковий запис користувача "$1" уже існує. SYSDBA використовується лише для створення новий облікових записів!',
-       'config-postgres-old' => 'Необхідна PostgreSQL $1 або пізніша, а у Вас $2.',
-       'config-sqlite-name-help' => 'Виберіть назву, що ідентифікує Вашу вікі.
-Не використовуйте пробіли і дефіси.
-Це буде використовуватись у назві файлу даних SQLite.',
-       'config-sqlite-parent-unwritable-group' => 'Не можна створити папку даних <code><nowiki>$1</nowiki></code>, оскільки батьківська папка <code><nowiki>$2</nowiki></code> не доступна веб-серверу для запису.
-
-Інсталятор виявив, під яким користувачем працює Ваш сервер.
-Зробіть папку <code><nowiki>$3</nowiki></code> доступною для запису, щоб продовжити.
-В ОС Unix/Linux виконайте:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => 'Не можна створити папку даних <code><nowiki>$1</nowiki></code>, оскільки батьківська папка <code><nowiki>$2</nowiki></code> не доступна веб-серверу для запису.
-
-Інсталятор не зміг виявити, під яким користувачем працює Ваш сервер.
-Зробіть папку <code><nowiki>$3</nowiki></code> доступною для запису серверу (і всім!) глобально, щоб продовжити.
-В ОС Unix/Linux виконайте:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => 'Помилка при створенні папки даних "$1".
-Перевірте розташування і спробуйте знову.',
-       'config-sqlite-dir-unwritable' => 'Не можливо записати до папки "$1".
-Змініть налаштування доступу так, щоб веб-сервер міг писати до неї, і спробуйте ще раз.',
-       'config-sqlite-connection-error' => '$1.
-
-Перевірте папку даних і назву бази даних нижче та спробуйте знову.',
-       'config-sqlite-readonly' => 'Файл <code>$1</code> недоступний для запису.',
-       'config-sqlite-cant-create-db' => 'Не вдалося створити файл бази даних <code>$1</code>.',
-       'config-sqlite-fts3-downgrade' => 'У PHP немає підтримки FTS3, скидаю таблиці',
-       'config-can-upgrade' => "У цій базі даних є таблиці MediaWiki.
-Щоб оновити їх до MediaWiki $1, натисніть '''Продовжити'''.",
-       'config-upgrade-done' => "Оновлення завершено.
-
-Ви можете зараз [$1 починати використовувати свою вікі].
-
-Якщо Ви хочете повторно згенерувати файл <code>LocalSettings.php</code>, натисніть на кнопку нижче.
-Це '''не рекомендується''', якщо тільки у Вас не виникли проблеми з Вашою вікі.",
-       'config-upgrade-done-no-regenerate' => 'Оновлення завершено.
-
-Ви можете зараз [$1 починати використовувати свою вікі].',
-       'config-regenerate' => 'Повторно згенерувати LocalSettings.php →',
-       'config-show-table-status' => 'Запит <code>SHOW TABLE STATUS</code> не виконано!',
-       'config-unknown-collation' => "'''Увага:''' База даних використовує нерозпізнане сортування.",
-       'config-db-web-account' => 'Обліковий запис бази даних для інтернет-доступу',
-       'config-db-web-help' => "Оберіть ім'я користувача і пароль, які веб-сервер буде використовувати для з'єднання із сервером бази даних під час звичайної роботи вікі.",
-       'config-db-web-account-same' => 'Використати той же обліковий запис для встановлення',
-       'config-db-web-create' => 'Створити обліковий запис, якщо його ще не існує',
-       'config-db-web-no-create-privs' => 'Обліковий запис, вказаний Вами для встановлення, не має достатніх повноважень для створення облікового запису.
-Обліковий запис, який Ви вказуєте тут, уже повинен існувати.',
-       'config-mysql-engine' => 'Двигун бази даних:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''Увага''': Ви обрали MyISAM для зберігання даних MySQL, що не рекомендовано для роботи з MediaWiki, оскільки:
-* він слабко підтримує паралелізм через блокування таблиць
-* він більш схильний до ушкоджень, ніж інші двигуни
-* база коду MediaWiki не завжди працює з MyISAM так, як мала б.
-
-Якщо Ваша інсталяція MySQL підтримує InnoDB, дуже рекомендується вибрати цей двигун.
-Якщо Ваша інсталяція MySQL не підтримує InnoDB, можливо настав час її оновити.",
-       'config-mysql-only-myisam-dep' => '"\'Зауваження:"\' MyISAM є єдиним механізмом для зберігання MySQL, який не рекомендується для використання з MediaWiki, оскільки:
-* слабо підтримує паралелізм через блокування таблиць
-* більш схильний до пошкоджень, ніж інші двигуни
-* код MediaWiki не завжди розглядає MyISAM, як повинен
-
-Твоє встановлення MySQL не підтримує InnoDB, можливо, потрібно оновити.',
-       'config-mysql-engine-help' => "'''InnoDB''' є завжди кращим вибором, оскільки краще підтримує паралельний доступ.
-
-'''MyISAM''' може бути швидшим для одного користувача або в інсталяціях read-only.
-Бази даних MyISAM схильні псуватись частіше, ніж бази InnoDB.",
-       'config-mysql-charset' => 'Кодування бази даних:',
-       'config-mysql-binary' => 'Двійкове',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "У '''бінарному режимі''' MediaWiki зберігає текст UTF-8 у базі даних з бінарними полями.
-Це більш ефективно, ніж UTF-8 режим MySQL, і дозволяє використовувати увесь набір символів Юнікоду.
-
-У '''режимі UTF-8''' MySQL буде знати, якого символу стосуються Ваші дані, і могтиме відображати та конвертувати їх належним чином, але не дозволятиме зберігати символи, що виходять за межі [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
-       'config-site-name' => 'Назва вікі:',
-       'config-site-name-help' => 'Це буде відображатись у заголовку вікна браузера та у деяких інших місцях.',
-       'config-site-name-blank' => 'Введіть назву сайту.',
-       'config-project-namespace' => 'Простір назв проекту:',
-       'config-ns-generic' => 'Проект',
-       'config-ns-site-name' => 'Те ж саме, що й назва вікі: $1',
-       'config-ns-other' => 'Інше (вкажіть)',
-       'config-ns-other-default' => 'MyWiki',
-       'config-project-namespace-help' => 'За прикладом Вікіпедії, чимало вікі тримають свої сторінки правил окремо від сторінок основного вмісту, у "\'\'\'просторі імен проекту\'\'\'".
-Усі назви сторінок у цьому просторі імен починаються з певного префікса, який Ви можете вказати тут.
-Традиційно цей префікс виводиться з назви вікі, але не може містити знаки пунктуація, як-то "#" чи ":".',
-       'config-ns-invalid' => 'Вказаний простір імен "<nowiki>$1</nowiki>" не припустимий.
-Вкажіть інший простір імен проекту.',
-       'config-ns-conflict' => 'Вказаний простір імен "<nowiki>$1</nowiki>" конфліктує зі стандартним простором імен MediaWiki.
-Вкажіть інший простір імен проекту.',
-       'config-admin-box' => 'Обліковий запис адміністратора',
-       'config-admin-name' => "Ваше ім'я:",
-       'config-admin-password' => 'Пароль:',
-       'config-admin-password-confirm' => 'Пароль ще раз:',
-       'config-admin-help' => 'Введіть бажане ім\'я користувача тут, наприклад "Павло НЛО".
-Це ім\'я ви будете використовувати про вході у вікі.',
-       'config-admin-name-blank' => "Введіть ім'я користувача адміністратора.",
-       'config-admin-name-invalid' => 'Вказане ім\'я користувача "<nowiki>$1</nowiki>" не припустиме.
-Вкажіть інше ім\'я користувача.',
-       'config-admin-password-blank' => 'Введіть пароль до облікового запису адміністратора.',
-       'config-admin-password-same' => "Пароль не може бути таким же, як ім'я користувача.",
-       'config-admin-password-mismatch' => 'Два введені вами паролі не збігаються.',
-       'config-admin-email' => 'Адреса електронної пошти:',
-       'config-admin-email-help' => 'Введіть адресу електронної пошти, щоб мати змогу отримувати електронну пошту від інших користувачів у вікі, відновити пароль і отримувати повідомлення про зміни, внесені до сторінок у Вашому списку спостереження. Ви можете залишити це поле пустим.',
-       'config-admin-error-user' => 'Внутрішня помилка під час створення адміністратора з ім\'ям "<nowiki>$1</nowiki>".',
-       'config-admin-error-password' => 'Внутрішня помилка під час встановлення пароля для адміністратора "<nowiki>$1</nowiki>":<pre>$2</pre>',
-       'config-admin-error-bademail' => 'Ви ввели недопустиму адресу електронної пошти.',
-       'config-subscribe' => 'Підписатися на [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce розсилку анонсів нових версій MediaWiki].',
-       'config-subscribe-help' => "Це список розсилки з малим обсягом повідомлень, що використовується для анонсування релізів, а також важливих повідомлень про безпеку.
-Вам варто підписати і оновлювати інсталяцію MediaWiki, коли з'являтимуться нові версії.",
-       'config-subscribe-noemail' => 'Ви намагались підписатись на розсилку анонсів релізів, не вказавши адреси електронної пошти.
-Будь ласка, вкажіть адресу електронної пошти, якщо хочете підписатись на розсилку.',
-       'config-almost-done' => 'Майже готово!
-Ви можете зараз пропустити налаштування, що залишилось, і встановити вікі прямо зараз.',
-       'config-optional-continue' => 'Запитуйте ще.',
-       'config-optional-skip' => 'Це вже втомлює, просто встановити вікі.',
-       'config-profile' => 'Профіль прав користувача:',
-       'config-profile-wiki' => 'Відкрита вікі',
-       'config-profile-no-anon' => 'Необхідно створити обліковий запис',
-       'config-profile-fishbowl' => 'Тільки для авторизованих редакторів',
-       'config-profile-private' => 'Приватна вікі',
-       'config-profile-help' => "Вікі краще працюють, коли Ви дозволяєте їх редагувати якомога ширшому колу людей.
-У MediaWiki легко переглядати останні зміни і відкочувати будь-яку шкоду, спричинену недосвідченими або зловмисними користувачами.
-
-Одначе, MediaWiki може бути корисна по-різному, й інколи важко переконати у вигідності відкритої вікі-роботи.
-Тож у Вас є вибір.
-
-Модель '''{{int:config-profile-wiki}}''' дозволяє редагувати будь-кому, навіть без входження в систему.
-Вікі з вимогою \"'''{{int:config-profile-no-anon}}'''\" дає певний облік, але може відвернути випадкових дописувачів.
-Спосіб \"'''{{int:config-profile-fishbowl}}'''\" дозволяє редагувати підтвердженим користувачам, а переглядати сторінки і історію можуть усі.
-'''{{int:config-profile-private}}''' дозволяє переглядати сторінки і редагувати лише підтвердженим користувачам.
-
-Детальніші конфігурації прав користувачів доступні після встановлення, див. [//www.mediawiki.org/wiki/Manual:User_rights відповідний розділ посібника].",
-       'config-license' => 'Авторські права і ліцензія:',
-       'config-license-none' => 'Без ліцензії у нижньому колонтитулі',
-       'config-license-cc-by-sa' => 'Creative Commons Attribution Share Alike',
-       'config-license-cc-by' => 'Creative Commons Attribution',
-       'config-license-cc-by-nc-sa' => 'Creative Commons Attribution Non-Commercial Share Alike',
-       'config-license-cc-0' => 'Creative Commons Zero (Суспільне надбання)',
-       'config-license-gfdl' => 'GNU Free Documentation License 1.3 або пізніша',
-       'config-license-pd' => 'Суспільне надбання (Public Domain)',
-       'config-license-cc-choose' => 'Виберіть одну з ліцензій Creative Commons',
-       'config-license-help' => "Чимало загальнодоступних вікі публікують увесь свій вміст під [http://freedomdefined.org/Definition вільною ліцензією]. Це розвиває відчуття спільної власності і заохочує довготривалу участь. У загальному випадку для приватної чи корпоративної вікі у цьому немає необхідності.
-
-Якщо Ви хочете мати змогу використовувати текст з Вікіпедії і дати Вікіпедії змогу використовувати текст, скопійований з Вашої вікі, вам необхідно обрати '''Creative Commons Attribution Share Alike'''.
-
-Раніше Вікіпедія використовувала GNU Free Documentation License.
-GFDL — допустима ліцензія, але у ній важко розібратися, а контент під GFDL важко використовувати повторно.",
-       'config-email-settings' => 'Налаштування електронної пошти',
-       'config-enable-email' => 'Увімкнути вихідну електронну пошту',
-       'config-enable-email-help' => 'Якщо Ви хочете, що електронна пошта працювала, необхідно виставити коректні [http://www.php.net/manual/en/mail.configuration.php налаштування пошти у PHP].
-Якщо Вам не потрібні жодні можливості електронної пошти у вікі, можете тут їх відключити.',
-       'config-email-user' => 'Увімкнути електронну пошту користувач-користувачеві',
-       'config-email-user-help' => 'Дозволити усім користувачам надсилати один одному електронну пошту, якщо вони увімкнули цю можливість у своїх налаштуваннях.',
-       'config-email-usertalk' => 'Увімкнути сповіщення про повідомлення на сторінці обговорення користувача',
-       'config-email-usertalk-help' => 'Дозволити користувачам отримувати сповіщення про зміни на своїй сторінці обговорення, якщо вони увімкнули цю можливість у своїх налаштуваннях.',
-       'config-email-watchlist' => 'Увімкнути сповіщення про зміни у списку спостереження',
-       'config-email-watchlist-help' => 'Дозволити користувачам отримувати сповіщення про сторінки з їхнього списку спостереження, якщо вони увімкнули цю можливість у своїх налаштуваннях.',
-       'config-email-auth' => 'Увімкнути автентифікацію через електронну пошту',
-       'config-email-auth-help' => "Якщо ця опція увімкнена, користувачам треба підтвердити свою адресу електронної пошти з допомогою надісланого їм посилання, коли вони встановлюють чи змінюють її.
-Тільки автентифіковані адреси електронної пошти отримують листи від інших користувачів або змінювати поштові сповіщення.
-Увімкнення цієї опції '''рекомендується''' загальнодоступним вікі через можливі зловживання функціями електронної пошти.",
-       'config-email-sender' => 'Зворотна адреса електронної пошти:',
-       'config-email-sender-help' => "Введіть адресу електронної пошти, що буде використовуватись як зворотна адреса для вихідної пошти.
-На неї будуть надсилатись відмови.
-Чимало поштових серверів вимагають, щоб принаймні доменне ім'я було допустимим.",
-       'config-upload-settings' => 'Завантаження зображень і файлів',
-       'config-upload-enable' => 'Дозволити завантаження файлів',
-       'config-upload-help' => 'Завантаження файлів підставляє Ваш сервер під потенційні загрози.
-Детальнішу інформацію можна почитати у посібнику, [//www.mediawiki.org/wiki/Manual:Security розділ про безпеку].
-
-Щоб дозволити завантаження файлів, змініть режим підпапки <code>images</code> у кореневій папці MediaWiki так, щоб сервер міг у неї записувати.
-Потім увімкніть цю опцію.',
-       'config-upload-deleted' => 'Каталог для вилучених файлів:',
-       'config-upload-deleted-help' => 'Оберіть папку для архівації видалених файлів.
-В ідеалі, вона не має бути доступною через інтернет.',
-       'config-logo' => 'URL логотипу:',
-       'config-logo-help' => 'Стандартна схема оформлення MediaWiki містить вільне для логотипу місце над бічною панеллю розміром 135x160 пікселів.
-
-Завантажте зображення відповідного розміру і введіть тут його URL.
-
-Ви можете використати <code>$wgStylePath</code> або <code>$wgScriptPath</code>, якщо ваш логотип пов\'язаний з цими шляхами.
-
-Якщо Вам не потрібен логотип, залиште це поле пустим.',
-       'config-instantcommons' => 'Увімкнути Instant Commons',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons Instant Commons] це функція, що дозволяє вікі використовувати зображення, звуки та інші медіа, розміщені на [//commons.wikimedia.org/ Вікісховищі].
-Для цього MediaWiki необхідний доступ до інтернету.
-
-Додаткову інформацію стосовно цієї функції, включаючи інструкції, як її увімкнути у вікі, відмінних від Вікісховища, дивіться у [//mediawiki.org/wiki/Manual:$wgForeignFileRepos посібнику].',
-       'config-cc-error' => 'Механізм вибору ліцензії Creative Commons не дав результатів.
-Введіть назву ліцензії вручну.',
-       'config-cc-again' => 'Виберіть знову ...',
-       'config-cc-not-chosen' => 'Оберіть, яку ліцензію Creative Commons Ви хочете використовувати, і натисніть "продовжити".',
-       'config-advanced-settings' => 'Розширені налаштування',
-       'config-cache-options' => "Налаштування кешування об'єктів:",
-       'config-cache-help' => "Кешування об'єктів використовується для покращення швидкодії MediaWiki методом кешування часто використовуваних даних.
-Заохочується увімкнення цієї можливості для середніх і великих сайтів, малі сайти також можуть відчути її перевагу.",
-       'config-cache-none' => 'Без кешування (жодні функції не втрачаються, але впливає на швидкодію великих вікі-сайтів)',
-       'config-cache-accel' => "PHP кешування об'єктів (APC, XCache чи WinCache)",
-       'config-cache-memcached' => 'Використовувати Memcached (вимагає додаткової установки і налаштування)',
-       'config-memcached-servers' => 'Сервери Memcached:',
-       'config-memcached-help' => 'Список IP-адрес, що викоритовує Memcached.
-Вкажіть по одному в рядку, разом з портами. Наприклад:
- 127.0.0.1:11211
- 192.168.1.25:1234',
-       'config-memcache-needservers' => 'Ви обрали тип кешування Memcached, але не вказали ніяких серверів.',
-       'config-memcache-badip' => 'Ви ввели недопустиму IP-адресу для Memcached: $1.',
-       'config-memcache-noport' => 'Ви не вказали порт для сервера Memcached: $1.
-Якщо Ви його не знаєте, за замовчуванням використовується 11211.',
-       'config-memcache-badport' => 'Номери портів Memcached повинні лежати в межах від $1 до $2.',
-       'config-extensions' => 'Розширення',
-       'config-extensions-help' => 'Розширення, перераховані вище, були знайдені у папці <code>./extensions</code>.
-
-Вони можуть потребувати додаткових налаштувань, але Ви можете увімкнути їх зараз.',
-       'config-install-alreadydone' => "'''Увага:''' Здається, Ви вже встановлювали MediaWiki і зараз намагаєтесь встановити її знову.
-Будь ласка, перейдіть на наступну сторінку.",
-       'config-install-begin' => 'Натискаючи "{{int:config-continue}}", Ви розпочинаєте встановлення MediaWiki.
-Якщо Ви все ще хочете внести зміни, натисніть "{{int:config-back}}".',
-       'config-install-step-done' => 'виконано',
-       'config-install-step-failed' => 'не вдалося',
-       'config-install-extensions' => 'У тому числі розширення',
-       'config-install-database' => 'Налаштування бази даних',
-       'config-install-schema' => 'Створення схеми',
-       'config-install-pg-schema-not-exist' => 'Схеми PostgreSQL не існує.',
-       'config-install-pg-schema-failed' => 'Не вдалось створити таблиці.
-Переконайтесь, що користувач "$1" може писати до схеми "$2".',
-       'config-install-pg-commit' => 'Внесення змін',
-       'config-install-pg-plpgsql' => 'Перевірка мови PL/pgSQL',
-       'config-pg-no-plpgsql' => 'Вам необхідно встановити мову PL/pgSQL у базі даних $1',
-       'config-pg-no-create-privs' => 'Обліковий запис, вказаний для встановлення, має недостатньо прав для створення облікового запису.',
-       'config-pg-not-in-role' => 'Обліковий запис, який Ви вказали для веб-користувача, уже існує.
-Обліковий запис, який Ви вказали для встановлення не є суперюзером і не відноситься до ролі веб-користувача, тому неможливо створити об\'єкти, що належать веб-користувачеві.
-
-У даний час MediaWiki вимагає, щоб усі таблиці належали веб-користувачу. Будь ласка, вкажіть інше ім\'я облікового запису або натисніть "Назад" та вкажіть користувача з достатніми правами.',
-       'config-install-user' => 'Створення користувача бази даних',
-       'config-install-user-alreadyexists' => 'Користувач "$1" уже існує',
-       'config-install-user-create-failed' => 'Не вдалося створити користувача "$1": $2',
-       'config-install-user-grant-failed' => 'Не вдалося надати права користувачеві "$1": $2',
-       'config-install-user-missing' => 'Зазначеного користувача "$1" не існує.',
-       'config-install-user-missing-create' => 'Зазначеного користувача "$1" не існує.
-Будь ласка, поставте галочку "Створити обліковий запис", якщо хочете його створити.',
-       'config-install-tables' => 'Створення таблиць',
-       'config-install-tables-exist' => "'''Увага''': Таблиці MediaWiki уже, здається, існують.
-Пропуск створення.",
-       'config-install-tables-failed' => "'''Помилка''': Не вдалося створити таблицю внаслідок такої помилки: $1",
-       'config-install-interwiki' => 'Заповнення таблиці інтервікі значеннями за замовчуванням',
-       'config-install-interwiki-list' => 'Не вдалося знайти файл <code>interwiki.list</code>.',
-       'config-install-interwiki-exists' => "'''Увага''': Таблиця інтервікі уже, здається, має записи.
-Створення стандартного списку пропускається.",
-       'config-install-stats' => 'Ініціалізація статистики',
-       'config-install-keys' => 'Генерація секретних ключів',
-       'config-insecure-keys' => "'''Увага:''' {{PLURAL:$2|Секретний ключ|Секретні ключі}} ($1), {{PLURAL:$2|згенерований в процесі встановлення, недостатньо надійний|згенеровані в процесі встановлення, недостатньо надійні}}. Розгляньте можливість {{PLURAL:$2|його|їх}} заміни вручку.",
-       'config-install-sysop' => 'Створення облікового запису адміністратора',
-       'config-install-subscribe-fail' => 'Не можливо підписатись на mediawiki-announce: $1',
-       'config-install-subscribe-notpossible' => 'cURL не встановлено і опція allow_url_fopen не доступна.',
-       'config-install-mainpage' => 'Створення головної сторінки із вмістом за замовчуванням',
-       'config-install-extension-tables' => 'Створення таблиць для увімкнених розширень',
-       'config-install-mainpage-failed' => 'Не вдається вставити головну сторінку: $1',
-       'config-install-done' => "'''Вітаємо!'''
-Ви успішно встановили MediaWiki.
-
-Інсталятор згенерував файл <code>LocalSettings.php</code>, який містить усі Ваші налаштування.
-
-Вам необхідно завантажити його і помістити у кореневу папку Вашої вікі (туди ж, де index.php). Завантаження мало початись автоматично.
-
-Якщо завантаження не почалось або Ви його скасували, можете заново його почати, натиснувши на посилання внизу:
-
-$3
-
-'''Примітка''': Якщо Ви не зробите цього зараз, цей файл не буде доступним пізніше, коли Ви вийдете з встановлення, не скачавши його.
-
-Після виконання дій, описаних вище, Ви зможете '''[$2 увійти у свою вікі]'''.",
-       'config-download-localsettings' => 'Завантажити <code>LocalSettings.php</code>',
-       'config-help' => 'допомога',
-       'config-nofile' => 'Файл "$1" не знайдено. Його видалено?',
-       'config-extension-link' => 'Чи знаєте ви, що ваше вікі підтримує [//www.mediawiki.org/wiki/Manual:Extensions розширення]?
-
-Ви можете переглядати [//www.mediawiki.org/wiki/Category:Extensions_by_category розширення по категорії] або в [//www.mediawiki.org/wiki/Extension_Matrix матрицю розширень] щоб побачити повний список розширень.',
-       'mainpagetext' => 'Програмне забезпечення «MediaWiki» успішно встановлене.',
-       'mainpagedocfooter' => 'Інформацію про роботу з цією вікі можна знайти в [//meta.wikimedia.org/wiki/Help:Contents посібнику користувача].
-
-== Деякі корисні ресурси ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Список налаштувань];
-* [//www.mediawiki.org/wiki/Manual:FAQ Часті питання з приводу MediaWiki];
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Розсилка повідомлень про появу нових версій MediaWiki];
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources Локалізуйте MediaWiki своєю мовою]',
-);
-
-/** Urdu (اردو)
- * @author Noor2020
- * @author පසිඳු කාවින්ද
- */
-$messages['ur'] = array(
-       'config-information' => 'معلومات',
-       'config-git' => 'Git ورژن کنٹرول مصنع لطیف ملا: <code>$1</code> ۔',
-       'config-git-bad' => 'GIT ورژن کنٹرول مصنع لطیف نہيں ملا ۔',
-       'config-mysql-only-myisam-dep' => "' ' تنبیہ: ' '[[MyISAM|مائ اسام]] واحد دستیاب 'ذخیرہ جاتی انجن' ہے جو مائی ایس کیو ایل کے لیے ہے ، جو کہ ناموزوں ہے میڈیا وکی کے لیے ،کیوں کہ :
-* یہ ہموار قطاروں کی سہولت بمشکل فراہم کرتا ہے
-* یہ دوسرے انجنوں کے مقابلے  زیادہ بگڑ جاتا ہے
-* میڈیا وکی کوڈ بیس ہمیشہ سنبھال نہيں پاتا مائی اسام کو ۔
-
-آپ کا مائی ایس کیو ایل کا نصب ہمیشہ اننو ڈی بی کی سہولت نہيں دے سکتا ، ہو سکتا ہے یہ مزید ترقیاتی کام چاہے", # Fuzzy
-       'config-profile-fishbowl' => 'صرف مجاز ایڈیٹرز',
-       'config-license-pd' => 'پبلک ڈومین',
-       'config-email-settings' => 'ای میل کی ترتیبات',
-       'config-email-user-help' => 'تمام صارفین ای میل بھیجنے کیلئے ایک دوسرے اگر وہ یہ ان کی ترجیحات میں فعال ہے کی اجازت دیتے ہیں.',
-       'config-email-usertalk' => 'صارف بات صفحہ کی اطلاع فعال',
-       'config-email-usertalk-help' => 'اگر وہ یہ ان کی ترجیحات میں فعال ہے صارف بات صفحہ تبدیلی پر اطلاعات حاصل کرنے کے لئے صارفین کی اجازت دیں.',
-       'config-email-watchlist' => 'دیکھنی والی فہرست کی اطلاع فعال',
-       'config-email-auth' => 'فعال ای میل کی تصدیق',
-       'config-email-sender' => 'ای میل ایڈریس پر واپس:',
-       'config-upload-deleted' => 'ڈائرکٹری خارج کردہ فائلوں کے لیے:',
-       'config-advanced-settings' => 'اعلی درجے کی ترتیب',
-       'config-cache-options' => 'اعتراض کیش کے لئے ترتیب دینا:',
-       'config-extensions' => 'ملانے',
-       'config-install-step-done' => 'کیا کیا',
-       'config-install-step-failed' => 'میں ناکام رہے',
-       'config-install-extensions' => 'سمیت ملانے',
-       'config-install-database' => 'ڈیٹا بیس کی ترتیب',
-       'config-install-pg-commit' => 'تبدیلیوں کے ارتکاب',
-       'config-install-keys' => 'خفیہ چابیاں پیدا',
-       'config-install-sysop' => 'منتظم کے صارف کے اکاؤنٹ کی تشکیل',
-       'config-install-mainpage' => 'پہلے سے طے شدہ مواد کے ساتھ سب سے کامیاب کی تشکیل',
-       'mainpagetext' => "'''میڈیاوکی کو کامیابی سے چالو کردیا گیا ہے۔.'''",
-);
-
-/** 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.
-
-== Dastlabki qadamlar ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Moslamalar ro'yxati]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki haqida ko'p so'raladigan savollar]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki yangi versiyasi chiqqanda xabar berish ro'yxati]", # Fuzzy
-);
-
-/** vèneto (vèneto)
- * @author Vajotwo
- */
-$messages['vec'] = array(
-       'mainpagetext' => "'''Instałasion de MediaWiki conpletà coretamente.'''",
-       'mainpagedocfooter' => "Varda ła [//meta.wikimedia.org/wiki/Aiuto:Sommario Guida utente] par majori informasion so l'uso de sto software wiki.
-
-== Par scumisiar ==
-
-I seguenti cołegamenti i xé en łengua inglese:
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Inpostasion de configurasion]
-* [//www.mediawiki.org/wiki/Manual:FAQ Domande frequenti so MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailing list anunsi MediaWiki]", # Fuzzy
-);
-
-/** Veps (vepsän kel’)
- * @author Игорь Бродский
- */
-$messages['vep'] = array(
-       'mainpagetext' => "'''MediaWiki-likutim om seižutadud jügedusita.'''",
-       'mainpagedocfooter' => 'Kc. [//meta.wikimedia.org/wiki/Help:Kävutajan abukirj], miše sada informacijad wikin kävutamižes.
-
-== Erased tarbhaižed resursad ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Järgendusiden nimikirjutez]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce počtnimikirjutez]', # Fuzzy
-);
-
-/** Vietnamese (Tiếng Việt)
- * @author පසිඳු කාවින්ද
- */
-$messages['vi'] = array(
-       'config-information' => 'Thông tin',
-       'config-page-language' => 'Ngôn ngữ',
-       'config-page-name' => 'Tên',
-       'config-page-options' => 'Tùy chọn',
-       'config-ns-generic' => 'Dự án',
-       'config-admin-password' => 'Mật khẩu:',
-       'config-admin-email' => 'Địa chỉ thư điện tử:',
-       'config-help' => 'Trợ giúp',
-       'mainpagetext' => "'''MediaWiki đã được cài đặt thành công.'''",
-       'mainpagedocfooter' => 'Xin đọc [//meta.wikimedia.org/wiki/Help:Contents Hướng dẫn sử dụng] để biết thêm thông tin về cách sử dụng phần mềm wiki.
-
-== Để bắt đầu ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Danh sách các thiết lập cấu hình]
-* [//www.mediawiki.org/wiki/Manual:FAQ Các câu hỏi thường gặp MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Danh sách gửi thư về việc phát hành MediaWiki]', # Fuzzy
-);
-
-/** Volapük (Volapük)
- */
-$messages['vo'] = array(
-       'mainpagetext' => "'''El MediaWiki pestiton benosekiko.'''",
-       'mainpagedocfooter' => 'Konsultolös [//meta.wikimedia.org/wiki/Help:Contents Gebanageidian] ad tuvön nünis dö geb programema vükik.
-
-== Nüdugot ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Parametalised]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki: SSP]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Potalised tefü fomams nulik ela MediaWiki]', # Fuzzy
-);
-
-/** Võro (Võro)
- */
-$messages['vro'] = array(
-       'mainpagetext' => "'''MediaWiki tarkvara paika säet.'''",
-       'mainpagedocfooter' => 'Vikitarkvara pruukmisõ kotsilõ loeq mano:
-* [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide MediaWiki pruukmisoppus (inglüse keelen)].
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Säädmiisi oppus (inglüse keelen)]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki kõgõ küsütümbäq küsümiseq (inglüse keelen)]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-postilist, minka andas teedäq MediaWiki vahtsist kujõst].', # Fuzzy
-);
-
-/** Walloon (walon)
- * @author Srtxg
- */
-$messages['wa'] = array(
-       'mainpagetext' => "'''Li programe MediaWiki a stî astalé a l' idêye.'''",
-);
-
-/** Waray (Winaray)
- * @author Harvzsf
- */
-$messages['war'] = array(
-       'mainpagetext' => "'''Malinamposon an pag-instalar han MediaWiki.'''",
-       'mainpagedocfooter' => "Kitaa an [//meta.wikimedia.org/wiki/Help:Contents User's Guide] para hin impormasyon ha paggamit han wiki nga softweyr.
-
-== Ha pagtikang==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
-);
-
-/** Wolof (Wolof)
- */
-$messages['wo'] = array(
-       'mainpagetext' => "'''Campug MediaWiki gi sotti na . '''",
-       'mainpagedocfooter' => 'Saytul [//meta.wikimedia.org/wiki/Ndimbal:Ndefu Gindikaayu jëfandikukat bi] ngir yeneeni xibaar ci jëfandiku gu tëriin gi.
-
-== Tambali ak MediaWiki ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Limu jumtukaayi kocc-koccal gi]
-* [//www.mediawiki.org/wiki/Manual:FAQ FAQ MediaWiki]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Limu waxtaan ci liy-génn ci MediaWiki]', # Fuzzy
-);
-
-/** Wu (吴语)
- * @author Wu-chinese.com
- */
-$messages['wuu'] = array(
-       'mainpagetext' => "'''MediaWiki安装成功哉!'''",
-       'mainpagedocfooter' => '请访问[//meta.wikimedia.org/wiki/Help:Contents 用户手册]以获得使用此维基软件个信息!
-
-== 入门 ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置设置列表]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki 常见问题解答]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 发布邮件列表]', # Fuzzy
-);
-
-/** Kalmyk (хальмг)
- * @author Huuchin
- */
-$messages['xal'] = array(
-       'mainpagetext' => "Йовудта Mediawiki гүүлһүдә тәвллһн.'''",
-       'mainpagedocfooter' => 'Тер бики закллһна теткүл ю кеһәд олзлх туск [//meta.wikimedia.org/wiki/Help:Contents көтлвр] дастн.
-
-== Туста заавр ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Көгүдә бүрткл]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki туск ЮмБи]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki шинҗллһнә бүрткл]', # Fuzzy
-);
-
-/** Yiddish (ייִדיש)
- * @author פוילישער
- * @author පසිඳු කාවින්ද
- */
-$messages['yi'] = array(
-       'config-desc' => 'דער אינסטאלירער פאר מעדיעוויקי',
-       'config-title' => 'מעדיעוויקי $1 אינסטאלירונג',
-       'config-information' => 'אינפֿארמאציע',
-       'config-wiki-language' => 'ווקי שפראך:',
-       'config-back' => '→ צוריק',
-       'config-continue' => 'פֿארזעצן ←',
-       'config-page-language' => 'שפראַך',
-       'config-page-name' => 'נאָמען',
-       'config-page-options' => 'ברירות',
-       'config-db-type' => 'דאטנבאזע טיפ:',
-       'config-db-name' => 'דאטנבאזע נאָמען:',
-       'config-project-namespace' => 'פראיעקט נאָמענטייל:',
-       'config-ns-generic' => 'פראיעקט',
-       'config-admin-name' => 'אײַער נאָמען:',
-       'config-admin-password' => 'פאַסווארט:',
-       'config-admin-password-mismatch' => 'די צוויי פאסוועטרט איר האט איינגעגעבן שטימען נישט.',
-       'config-admin-email' => 'בליצפּאָסט אַדרעס:',
-       'config-install-tables' => 'שאפן טאבעלעס',
-       'config-install-tables-exist' => "'''ווארענונג''': זעט אויס אז די מעדיעוויקי טאבעלעס עקזיסטירן שוין.
-איבערהיפן שאפֿן.",
-       'config-download-localsettings' => 'אראפלאדן <code>LocalSettings.php</code>',
-       'config-help' => 'הילף',
-       'config-nofile' => 'מ\'האט נישט געקענט טרעפן די טעקע "$1". צי האט מען זי אויסגעמעקט?',
-       'mainpagetext' => "'''מעדיעוויקי אינסטאלירט מיט דערפאלג.'''",
-       'mainpagedocfooter' => "גיט זיך אן עצה מיט [//meta.wikimedia.org/wiki/Help:Contents באניצער'ס וועגווײַזער] פֿאר אינפֿארמאציע וויאזוי זיך באנוצן מיט וויקי ווייכוואַרג.
-
-== נוצליכע וועבלינקען פֿאַר אנהייבערס ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings רשימה פון קאנפֿיגוראציעס]
-* [//www.mediawiki.org/wiki/Manual:FAQ אפֿט געפֿרעגטע שאלות]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce מעדיעוויקי באפֿרײַאונג פאסטליסטע]* [//www.mediawiki.org/wiki/Localisation#Translation_resources איבערזעצן מעדיעוויקי אין אײַער שפראך]",
-);
-
-/** Yoruba (Yorùbá)
- * @author Demmy
- */
-$messages['yo'] = array(
-       'mainpagetext' => "'''MediaWiki ti jẹ́ gbígbékọ́sínú láyọrísírere.'''",
-       'mainpagedocfooter' => "Ẹ ṣàbẹ̀wò sí [//meta.wikimedia.org/wiki/Help:Contents User's Guide] fún ìfitólétí nípa líló atòlànà wíkì.
-
-== Láti bẹ̀rẹ̀ ==
-*  [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]", # Fuzzy
-);
-
-/** Cantonese (粵語)
- */
-$messages['yue'] = array(
-       'mainpagetext' => "'''MediaWiki已經裝好。'''",
-       'mainpagedocfooter' => '參閱[//meta.wikimedia.org/wiki/Help:Contents 用戶指引](英),裏面有資料講點用wiki軟件。
-
-==開始使用==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings 配置設定清單](英)
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki 常見問題](英)
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈郵件名單](英)', # Fuzzy
-);
-
-/** Zeeuws (Zeêuws)
- */
-$messages['zea'] = array(
-       'mainpagetext' => "'''De installaotie van MediaWiki is geslaegd.'''",
-       'mainpagedocfooter' => "Raedpleeg de [//meta.wikimedia.org/wiki/ZEA_Ulpe:Inhoudsopgaeve andleidieng] voe informatie over 't gebruuk van de wikisoftware.
-
-== Meer ulpe over MediaWiki ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lieste mie instelliengen]
-* [//www.mediawiki.org/wiki/Manual:FAQ Veehestelde vraehen (FAQ)]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailienglieste voe ankondigiengen van nieuwe versies]", # Fuzzy
-);
-
-/** Simplified Chinese (中文(简体)‎)
- * @author Anthony Fok
- * @author Cwek
- * @author Hydra
- * @author Hzy980512
- * @author Liangent
- * @author Makecat
- * @author PhiLiP
- * @author Xiaomingyan
- * @author Yfdyh000
- * @author 乌拉跨氪
- * @author 阿pp
- * @author 아라
- */
-$messages['zh-hans'] = array(
-       'config-desc' => 'MediaWiki安装程序',
-       'config-title' => 'MediaWiki $1配置',
-       'config-information' => '信息',
-       'config-localsettings-upgrade' => '已检测到<code>LocalSettings.php</code>文件。要升级该配置,请在下面的框中输入<code>$wgUpgradeKey</code>的值。您可以在<code>LocalSettings.php</code>中找到它。',
-       'config-localsettings-cli-upgrade' => '已检测到<code>LocalSettings.php</code>文件。要升级该配置,请直接运行<code>update.php</code>。',
-       'config-localsettings-key' => '升级密钥:',
-       'config-localsettings-badkey' => '您提供的密钥不正确。',
-       'config-upgrade-key-missing' => '检测到MediaWiki的配置已经存在。若要升级该配置,请将下面一行文本添加到<code>LocalSettings.php</code>的底部:
-
-$1',
-       'config-localsettings-incomplete' => '当前的<code>LocalSettings.php</code>可能并不完整,因为变量$1没有设置。请在<code>LocalSettings.php</code>设置该变量,并单击“{{int:Config-continue}}”。',
-       'config-localsettings-connection-error' => '在使用<code>LocalSettings.php</code>或<code>AdminSettings.php</code>中指定的设置连接数据库时发生错误。请修复相应设置并重试。
-
-$1',
-       'config-session-error' => '启动会话出错:$1',
-       'config-session-expired' => '您的会话数据可能已经过期,当前会话的使用期限被设定为$1。您可以在php.ini中设置<code>session.gc_maxlifetime</code>来延长此期限,并重新启动本配置程序。',
-       'config-no-session' => '您的会话数据丢失了!请检查php.ini并确保<code>session.save_path</code>被设置为适当的目录。',
-       'config-your-language' => '您使用的语言:',
-       'config-your-language-help' => '选择在安装过程中使用的语言。',
-       'config-wiki-language' => 'Wiki使用的语言:',
-       'config-wiki-language-help' => '选择将要安装的wiki在多数情况下使用的语言。',
-       'config-back' => '← 后退',
-       'config-continue' => '继续 →',
-       'config-page-language' => '语言',
-       'config-page-welcome' => '欢迎使用MediaWiki!',
-       'config-page-dbconnect' => '连接到数据库',
-       'config-page-upgrade' => '升级当前配置',
-       'config-page-dbsettings' => '数据库设置',
-       'config-page-name' => '名称',
-       'config-page-options' => '选项',
-       'config-page-install' => '安装',
-       'config-page-complete' => '完成!',
-       'config-page-restart' => '重新开始安装',
-       'config-page-readme' => '自述',
-       'config-page-releasenotes' => '发布说明',
-       'config-page-copying' => '复制',
-       'config-page-upgradedoc' => '更新',
-       'config-page-existingwiki' => '已有wiki',
-       'config-help-restart' => '是否要清除所有已输入且保存的数据,并重新启动安装过程吗?',
-       'config-restart' => '是的,重启吧',
-       'config-welcome' => '=== 环境检查 ===
-对当前环境是否适合安装MediaWiki作基本的检查。如果您在安装过程中需要帮助,请提供这些检查的结果。',
-       'config-copyright' => "=== 版权和条款 ===
-
-\$1
-
-本程序为自由软件;您可依据自由软件基金会所发表的GNU通用公共授权条款规定,就本程序再为发布与/或修改;无论您依据的是本授权的第二版或(您自行选择的)任一日后发行的版本。
-
-本程序是基于使用目的而加以发布,然而'''不负任何担保责任''';亦无对'''适售性'''或'''特定目的适用性'''所为的默示性担保。详情请参照GNU通用公共授权。
-
-您应已收到附随于本程序的<doclink href=\"Copying\">GNU通用公共授权的副本</doclink>;如果没有,请写信至自由软件基金会:59 Temple Place - Suite 330, Boston, Ma 02111-1307, USA,或[http://www.gnu.org/copyleft/gpl.html 在线阅读]。",
-       'config-sidebar' => '* [//www.mediawiki.org/wiki/MediaWiki/zh-hans MediaWiki首页]
-* [//www.mediawiki.org/wiki/Help:Contents/zh-hans 用户指南]
-* [//www.mediawiki.org/wiki/Manual:Contents 管理员指南]
-* [//www.mediawiki.org/wiki/Manual:FAQ/zh-hans 常见问题解答]
-----
-* <doclink href=Readme>自述文件</doclink>
-* <doclink href=ReleaseNotes>发行说明</doclink>
-* <doclink href=Copying>协议副本</doclink>
-* <doclink href=UpgradeDoc>升级</doclink>',
-       'config-env-good' => '环境检查已经完成。您可以安装MediaWiki。',
-       'config-env-bad' => '环境检查已经完成。您不能安装MediaWiki。',
-       'config-env-php' => 'PHP $1已安装。',
-       'config-env-php-toolow' => '已安装PHP $1;但是,MediaWiki需要PHP $2或更高版本。',
-       'config-unicode-using-utf8' => '使用Brion Vibber的utf8_normalize.so实现Unicode正常化。',
-       'config-unicode-using-intl' => '使用[http://pecl.php.net/intl intl PECL扩展]实现Unicode正常化。',
-       'config-unicode-pure-php-warning' => "'''警告:'''因为尚未安装 [http://pecl.php.net/intl intl PECL 扩展]以处理 Unicode 正常化,故只能退而采用运行较慢的纯 PHP 实现的方法。
-如果您运行着一个高流量的站点,请参阅 [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode 正常化]一文。",
-       'config-unicode-update-warning' => "'''警告''':Unicode正常化封装器的已安装版本使用了旧版本的[http://site.icu-project.org/ ICU项目]库。如果您需要使用Unicode,请将其[//www.mediawiki.org/wiki/Unicode_normalization_considerations 升级]。",
-       'config-no-db' => '找不到合适的数据库驱动!您需要为PHP安装数据库驱动。目前支持以下数据库:$1。
-
-如果您正在使用共享主机,请向您的主机提供商申请安装合适的数据库驱动。如果您通过自行编译安装的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>选项被启用。请尽量禁用该功能,'''虽然不会影响MediaWiki的运行,但您的服务器会被暴露给潜在的安全漏洞。",
-       'config-magic-quotes-runtime' => "'''毁灭性错误:[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]已启用!'''
-此选项会无法预测地破坏输入的数据,请将其禁用,否则您将不能安装或使用MediaWiki。",
-       'config-magic-quotes-sybase' => "'''毁灭性错误:[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_sybase]已启用!'''
-此选项会无法预测地破坏输入的数据,请将其禁用,否则您将不能安装或使用MediaWiki。",
-       'config-mbstring' => "'''毁灭性错误:[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]已启用!'''
-此选项会导致错误并不可预测地破坏数据,请将其禁用,否则您将不能安装或使用MediaWiki。",
-       'config-ze1' => "'''毁灭性错误:[http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]已启用!'''
-此选项将导致MediaWiki出现极其严重的故障,请将其禁用,否则您将不能安装或使用MediaWiki。",
-       'config-safe-mode' => "'''警告:'''PHP的[http://www.php.net/features.safe-mode 安全模式]已启用。它可能会导致一些问题,尤其在对文件上传和数学公式<code>math</code>的支持方面。",
-       'config-xml-bad' => '缺少PHP的XML模块。MediaWiki需要使用该模块提供的函数,在当前配置下将无法工作。如果您正在使用Mandrake Linux,请安装php-xml包。',
-       'config-pcre' => '可能缺少PCRE的支持模块。MediaWiki的运行需要兼容于Perl的正则表达式函数。',
-       'config-pcre-no-utf8' => "'''毁灭性错误''':PHP的PCRE模块在编译时可能没有包含PCRE_UTF8支持。MediaWiki需要UTF-8支持才能正常工作。",
-       'config-memory-raised' => 'PHP的内存使用上限<code>memory_limit</code>为$1,自动提升到$2。',
-       'config-memory-bad' => "'''警告:'''PHP的内存使用上限<code>memory_limit</code>为$1。该设定可能过低,并导致安装失败!",
-       'config-ctype' => "'''毁灭性错误''':PHP必须有[http://www.php.net/manual/en/ctype.installation.php Ctype 扩展]来支持编译。",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache]已安装',
-       'config-apc' => '[http://www.php.net/apc APC]已安装',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache]已安装',
-       'config-no-cache' => "'''警告:'''找不到[http://www.php.net/apc APC]、[http://xcache.lighttpd.net/ XCache]或[http://www.iis.net/download/WinCacheForPhp WinCache],无法启用对象缓存。
-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。缩略图功能将不可用。',
-       'config-no-uri' => "'''错误:'''无法确定当前的URI。安装已中断。",
-       'config-no-cli-uri' => "'''警告''':未指定--scriptpath参数,使用默认值:<code>$1</code>。",
-       'config-using-server' => '使用服务器名“<nowiki>$1</nowiki>”。',
-       'config-using-uri' => '使用服务器URL“<nowiki>$1$2</nowiki>”。',
-       'config-uploads-not-safe' => "'''警告:'''您的默认上传目录<code>$1</code>存在允许执行任意脚本的漏洞。尽管MediaWiki会对所有已上传的文件进行安全检查,但我们仍然强烈建议您在启用上传功能前[//www.mediawiki.org/wiki/Manual:Security#Upload_security 关闭该安全漏洞]。",
-       'config-no-cli-uploads-check' => "'''警告''':在CLI安装过程中,没有对您的默认上传目录(<code>$1</code>)进行执行任意脚本的漏洞检查。",
-       'config-brokenlibxml' => '您的系统安装的PHP和libxml2版本组合存在故障,并可能在MediaWiki和其他web应用程序中造成隐藏的数据损坏。请将PHP升级到5.2.9或以上,libxml2升级到2.7.3或以上([//bugs.php.net/bug.php?id=45996 PHP的故障报告])。安装已中断。',
-       'config-using531' => '由于函数<code>__call()</code>的引用参数存在故障,PHP $1和MediaWiki无法兼容。请升级到PHP 5.3.2或更高版本,或降级到PHP 5.3.0以修复该问题。安装已中断。',
-       'config-suhosin-max-value-length' => 'Suhosin已经安装并将GET请求的参数长度限制在$1字节。MediaWiki的ResourceLoader部件可以在此限制下正常工作,但其性能会被降低。如果可能,请在<code>php.ini</code>中将<code>suhosin.get.max_value_length</code>设为1024或更高值,并在LocalSettings.php中将<code>$wgResourceLoaderMaxQueryLength</code>设为同一值。',
-       'config-db-type' => '数据库类型:',
-       'config-db-host' => '数据库主机:',
-       'config-db-host-help' => '如果您的数据库在别的服务器上,请在这里输入它的域名或IP地址。
-
-如果您在使用共享网站套餐,您的网站商应该已在他们的控制面板中给您数据库信息了。
-
-如果您在Windows中安装并且使用MySQL,“localhost”可能无效。如果确实无效,请输入“127.0.0.1”作为IP地址。
-
-如果您在使用PostgreSQL,并且要用Unix socket来连接,请留空。',
-       'config-db-host-oracle' => '数据库透明网络底层(TNS):',
-       'config-db-host-oracle-help' => '请输入合法的[http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm 本地连接名],并确保tnsnames.ora文件对本安装程序可见。<br />如果您使用的客户端库为10g或更新的版本,您还可以使用[http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm 简单连接名方法](easy connect naming method)。',
-       'config-db-wiki-settings' => '标识本wiki',
-       'config-db-name' => '数据库名称:',
-       'config-db-name-help' => '请输入一个可以标识您的wiki的名称。请勿使用空格。
-
-如果您正在使用共享web主机,您的主机提供商或会给您指定一个数据库名称,或会让您通过控制面板创建数据库。',
-       'config-db-name-oracle' => '数据库模式:',
-       'config-db-account-oracle-warn' => '现有三种已支持方案可以将Oracle设置为后端数据库:
-
-如果您希望在安装过程中创建数据库帐户,请为安装程序提供具有SYSDBA角色的数据库帐户,并为web访问帐户指定所需身份证明;否则您可以手动创建web访问的账户并仅须提供该帐户(确保帐户已有创建方案对象(schema object)的所需权限);或提供两个不同的帐户,其一具有创建权限,另一则被限制为web访问。
-
-具有所需权限账户的创建脚本存放于本程序的“maintenance/oracle/”目录下。请注意,使用受限制的帐户将禁用默认帐户的所有维护性功能。',
-       'config-db-install-account' => '用于安装的用户帐号',
-       'config-db-username' => '数据库用户名:',
-       'config-db-password' => '数据库密码:',
-       'config-db-password-empty' => '请为新数据库用户$1输入密码。尽管您可以创建不使用密码的用户,但这样做并不安全。',
-       'config-db-install-username' => '请输入在安装过程中用于连接数据库的用户名。请勿输入MediaWiki帐号的用户名,请输入您数据库的用户名。',
-       'config-db-install-password' => '请输入在安装过程中用于连接数据库的密码。请勿输入MediaWiki帐号的密码,请输入您数据库的密码。',
-       'config-db-install-help' => '请输入在安装过程中用于连接数据库的用户名和密码。',
-       'config-db-account-lock' => '在普通操作中使用相同的用户名和密码',
-       'config-db-wiki-account' => '用于普通操作的用户帐号',
-       'config-db-wiki-help' => '输入在普通的wiki操作中(安装完成后)将用于连接数据库的用户名和密码。如果该帐号并不存在,而安装帐号具有足够的权限,该用户帐号会被自动创建,并被赋予足以运行此wiki的最低权限。',
-       'config-db-prefix' => '数据库表前缀:',
-       'config-db-prefix-help' => '如果您需要在多个wiki之间(或在MediaWiki与其他web应用程序之间)共享一个数据库,您可以通过添加前缀的方式来避免出现表名称的冲突。请勿使用空格。
-
-此字段通常可留空。',
-       'config-db-charset' => '数据库字符集',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 二进制',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 UTF-8(向后兼容)',
-       'config-charset-help' => "'''警告:'''如果您在MySQL 4.1+中使用'''向后兼容的UTF-8'''字符集,并在之后使用<code>mysqldump</code>备份了数据库,则可能损坏所有的非ASCII字符,从而不可逆地破坏您的备份!
-
-在'''二进制模式'''下,MediaWiki会将UTF-8编码的文本存于数据库的二进制字段中。相对于MySQL的UTF-8模式,这种方法效率更高,并允许您使用全范围的Unicode字符。
-
-在'''UTF-8模式'''下,MySQL将知道您数据使用的字符集,并能适当地提供和转换内容。但这样做您将无法在数据库中存储[//zh.wikipedia.org/wiki/基本多文种平面 基本多文种平面]以外的字符。",
-       'config-mysql-old' => '需要MySQL $1或更新的版本,您的版本为$2。',
-       'config-db-port' => '数据库端口:',
-       'config-db-schema' => 'MediaWiki的数据库模式',
-       'config-db-schema-help' => '此数据库模式通常是正确的,请在有明确需求时才改动之。',
-       'config-pg-test-error' => "无法连接到数据库'''$1''':$2",
-       'config-sqlite-dir' => 'SQLite数据目录:',
-       'config-sqlite-dir-help' => "SQLite会将所有的数据存储于单一文件中。
-
-您所提供的目录必须在安装过程中对网页服务器可写。
-
-该目录'''不应'''允许通过web访问,因此我们不会将数据文件和PHP文件放在一起。
-
-安装程序在创建数据文件时,亦会在相同目录下创建<code>.htaccess</code>以控制权限。假若此等控制失效,则可能会将您的数据文件暴露于公共空间,让他人可以获取用户数据(电子邮件地址、杂凑后的密码)、被删除的版本以及其他在wiki上被限制访问的数据。
-
-请考虑将数据库统一放置在某处,如<code>/var/lib/mediawiki/yourwiki</code>下。",
-       'config-oracle-def-ts' => '默认表空间:',
-       'config-oracle-temp-ts' => '临时表空间:',
-       'config-support-info' => 'MediaWiki支持以下数据库系统:
-
-$1
-
-如果您在下面列出的数据库系统中没有找到您希望使用的系统,请根据上方链向的指引启用支持。',
-       'config-support-mysql' => '* $1是MediaWiki的首选数据库,对它的支持最为完备([http://www.php.net/manual/en/mysql.installation.php 如何将对MySQL的支持编译进PHP中])',
-       'config-support-postgres' => '* $1是一种流行的开源数据库系统,可作为MySQL的替代([http://www.php.net/manual/en/pgsql.installation.php 如何将对PostgreSQL的支持编译进PHP中])。本程序中可能依然存在一些小而明显的错误,因此并不建议在生产环境中使用该数据库系统。',
-       'config-support-sqlite' => '* $1是一种轻量级的数据库系统,能被良好地支持。([http://www.php.net/manual/en/pdo.installation.php 如何将对SQLite的支持编译进PHP中],须使用PDO)',
-       'config-support-oracle' => '* $1是一种商用企业级的数据库。([http://www.php.net/manual/en/oci8.installation.php 如何将对OCI8的支持编译进PHP中])',
-       'config-header-mysql' => 'MySQL设置',
-       'config-header-postgres' => 'PostgreSQL设置',
-       'config-header-sqlite' => 'SQLite设置',
-       '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' => '无效的数据库TNS“$1”。请只使用ASCII字母(a-z、A-Z)、数字(0-9)、下划线(_)和点号(.)。',
-       '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。
-
-请检查下列的主机、用户名和密码设置后重试。',
-       'config-invalid-schema' => '无效的MediaWiki数据库模式“$1”。请只使用ASCII字母(a-z、A-Z)、数字(0-9)和下划线(_)。',
-       'config-db-sys-create-oracle' => '安装程序仅支持使用SYSDBA帐户创建新帐户。',
-       'config-db-sys-user-exists-oracle' => '用户帐户“$1”已经存在。SYSDBA仅可用于创建新帐户!',
-       'config-postgres-old' => '需要PostgreSQL $1或更新的版本,您的版本为$2。',
-       'config-sqlite-name-help' => '请为您的wiki指定一个用于标识的名称。请勿使用空格或连字号,该名称将被用作SQLite的数据文件名。',
-       'config-sqlite-parent-unwritable-group' => '由于父目录<code><nowiki>$2</nowiki></code>对网页服务器不可写,无法创建数据目录<code><nowiki>$1</nowiki></code>。
-
-安装程序已确定您网页服务器所使用的用户。请将<code><nowiki>$3</nowiki></code>目录设为对该用户可写以继续安装过程。在Unix/Linux系统中,您可以逐行输入下列命令:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => '由于父目录<code><nowiki>$2</nowiki></code>对网页服务器不可写,无法创建数据目录<code><nowiki>$1</nowiki></code>。
-
-安装程序无法确定您网页服务器所使用的用户。请将<code><nowiki>$3</nowiki></code>目录设为全局可写(对所有用户)以继续安装过程。在Unix/Linux系统中,您可以逐行输入下列命令:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => '创建数据目录“$1”时发生错误。请检查路径后重试。',
-       'config-sqlite-dir-unwritable' => '无法写入目录“$1”。请修改该目录的权限,使其对网页服务器可写后重试。',
-       'config-sqlite-connection-error' => '$1。
-
-请检查下列的数据目录和数据库名称后重试。',
-       'config-sqlite-readonly' => '文件<code>$1</code>不可写。',
-       'config-sqlite-cant-create-db' => '无法创建数据文件<code>$1</code>。',
-       'config-sqlite-fts3-downgrade' => 'PHP缺少FTS3支持,正在降级数据表',
-       'config-can-upgrade' => "在数据库中发现了MediaWiki的数据表。要将它们升级至MediaWiki $1,请点击'''继续'''。",
-       'config-upgrade-done' => "升级完成。
-
-现在您可以[$1 开始使用您的wiki]了。
-
-如果您需要重新生成<code>LocalSettings.php</code>文件,请点击下面的按钮。除非您的wiki出现了问题,我们'''不推荐'''您执行此操作。",
-       'config-upgrade-done-no-regenerate' => '升级完成。
-
-现在您可以[$1 开始使用您的wiki]了。',
-       'config-regenerate' => '重新生成LocalSettings.php →',
-       'config-show-table-status' => '<code>SHOW TABLE STATUS</code>语句执行失败!',
-       'config-unknown-collation' => "'''警告:'''数据库使用了无法识别的整理。",
-       'config-db-web-account' => '供网页访问使用的数据库帐号',
-       'config-db-web-help' => '请指定在wiki执行普通操作时,网页服务器用于连接数据库服务器的用户名和密码。',
-       'config-db-web-account-same' => '使用和安装程序相同的帐号',
-       'config-db-web-create' => '如果帐号不存在,则自动创建',
-       'config-db-web-no-create-privs' => '您指定给安装程序的帐号缺少创建帐号的权限,因此您指定的帐号必须已经存在。',
-       'config-mysql-engine' => '存储引擎:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''警告''':您选择了MyISAM作为MySQL的存储引擎,MediaWiki并不推荐您这么做,因为:
-* 它仅能通过表锁定来勉强支持并发
-* 与其他引擎相比,它更容易被损坏
-* MediaWiki代码库并不总会去处理MyISAM
-
-如果您的MySQL程序支持InnoDB,我们高度推荐您使用该引擎替代MyISAM。
-如果您的MySQL程序不支持InnoDB,请考虑升级。",
-       'config-mysql-only-myisam-dep' => "''''警告:'''MyISAM是MySQL唯一可用的存储引擎,但不适合用于MediaWiki,是由于:
-*由于只支持表级锁定,几乎不支持并发。
-*它比其他引擎更容易损坏。
-*MediaWiki代码不能总是按照预设地操作MyISAM。
-
-你的MySQL不支持InnoDB,是时候升级了。",
-       'config-mysql-engine-help' => "'''InnoDB'''通常是最佳选项,因为它对并发操作有着良好的支持。
-
-'''MyISAM'''在单用户或只读环境下可能会有更快的性能表现。但MyISAM数据库出错的概率一般要大于InnoDB数据库。",
-       'config-mysql-charset' => '数据库字符集:',
-       'config-mysql-binary' => '二进制',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "在'''二进制模式'''下,MediaWiki会将UTF-8编码的文本存于数据库的二进制字段中。相对于MySQL的UTF-8模式,这种方法效率更高,并允许您使用全范围的Unicode字符。
-
-在'''UTF-8模式'''下,MySQL将知道您数据使用的字符集,并能适当地提供和转换内容。但这样做您将无法在数据库中存储[//zh.wikipedia.org/wiki/基本多文种平面 基本多文种平面]以外的字符。",
-       'config-site-name' => 'Wiki的名称:',
-       'config-site-name-help' => '填入的内容会出现在浏览器的标题栏以及其他多处位置中。',
-       'config-site-name-blank' => '输入网站的名称。',
-       'config-project-namespace' => '项目名字空间:',
-       'config-ns-generic' => '项目',
-       'config-ns-site-name' => '与wiki名称相同:$1',
-       'config-ns-other' => '其他(自定义)',
-       'config-ns-other-default' => '我的Wiki',
-       'config-project-namespace-help' => "依循维基百科形成的惯例,许多wiki将他们的方针页面存放在与内容页面不同的“'''项目名字空间'''”中。所有位于该名字空间下的页面标题都会被冠以固定的前缀,您可以在此处指定这一前缀。传统上,这一前缀应与wiki的命名保持一致,但请勿在其中使用标点符号,如“#”或“:”。",
-       'config-ns-invalid' => '指定的名字空间“<nowiki>$1</nowiki>”无效,请为项目名字空间指定其他名称。',
-       'config-ns-conflict' => '指定的名字空间“<nowiki>$1</nowiki>”与默认的MediaWiki名字空间冲突。请指定一个不同的项目名字空间。',
-       'config-admin-box' => '管理员帐号',
-       'config-admin-name' => '您的名字:',
-       'config-admin-password' => '密码:',
-       'config-admin-password-confirm' => '确认密码:',
-       'config-admin-help' => '在此输入您想使用的用户名,例如“乔帮主”。您将使用该名称登录本wiki。',
-       'config-admin-name-blank' => '输入管理员的用户名。',
-       'config-admin-name-invalid' => '指定的用户名“<nowiki>$1</nowiki>”无效,请指定其他用户名。',
-       'config-admin-password-blank' => '输入管理员帐号的密码。',
-       'config-admin-password-same' => '密码不能和用户名相同。',
-       'config-admin-password-mismatch' => '两次输入的密码并不相同。',
-       'config-admin-email' => '电子邮件地址:',
-       'config-admin-email-help' => '输入电子邮件地址后,您可以收到此wiki上其他用户发来的电子邮件,并能重置您的密码,还可在监视列表中页面被更改时收到邮件通知。您可以将此字段留空。',
-       'config-admin-error-user' => '在创建用户名为“<nowiki>$1</nowiki>”的管理员帐号时发生内部错误。',
-       'config-admin-error-password' => '在为管理员“<nowiki>$1</nowiki>”设置密码时发生内部错误:<pre>$2</pre>',
-       'config-admin-error-bademail' => '您输入了无效的电子邮件地址。',
-       'config-subscribe' => '订阅[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce 发行公告邮件列表]。',
-       'config-subscribe-help' => '此低流量的邮件列表仅用于发行公告,其中包括重要安全公告。请订阅该列表以便在新的版本推出时升级您的MediaWiki。',
-       'config-subscribe-noemail' => '您选择了订阅发行公告邮件列表,但没有提供电子邮件地址。请提供一个电子邮件地址以订阅邮件列表。',
-       'config-almost-done' => '您几乎已经完成了!现在您可以跳过剩下的配置流程并立即安装wiki。',
-       'config-optional-continue' => '多问我一些问题吧。',
-       'config-optional-skip' => '我已经不耐烦了,赶紧安装我的wiki。',
-       'config-profile' => '用户权限配置:',
-       'config-profile-wiki' => '开放的wiki',
-       'config-profile-no-anon' => '需要注册帐号',
-       'config-profile-fishbowl' => '编辑受限',
-       'config-profile-private' => '非公开wiki',
-       'config-profile-help' => "如果您允许尽量多的人编写wiki,网站上的内容会更加丰富。在MediaWiki中,您可以轻松地审查最近更改,并轻易回退掉新手或破坏者造成的损害。
-
-然而,许多人觉得让MediaWiki存在多种角色将更加好用;同时,要说服所有人都愿以wiki的方式作贡献并非一件易事。因此,您可以有以下选择:
-
-'''{{int:config-profile-wiki}}'''允许包括未登录用户在内的所有人编辑。'''{{int:config-profile-no-anon}}'''的wiki需要额外的注册流程,这有可能会阻碍随意贡献者。
-
-'''{{int:config-profile-fishbowl}}'''模式只允许获批准的用户编辑,但对公众开放页面浏览(包括历史记录)。'''{{int:config-profile-private}}'''则只允许获批准的用户浏览、编辑页面。
-
-安装完成后,您还可以对用户权限进行更多、更复杂的配置,参见[//www.mediawiki.org/wiki/Manual:User_rights 相关的使用手册]。",
-       'config-license' => '版权和许可证:',
-       'config-license-none' => '页脚无许可证',
-       'config-license-cc-by-sa' => '知识共享署名-相同方式分享',
-       'config-license-cc-by' => '知识共享署名',
-       'config-license-cc-by-nc-sa' => '知识共享署名-非商业性使用-相同方式共享',
-       'config-license-cc-0' => '知识共享Zero(公有领域)',
-       'config-license-gfdl' => 'GNU自由文档许可证1.3或更高版本',
-       'config-license-pd' => '公有领域',
-       'config-license-cc-choose' => '选择自定义的知识共享许可证',
-       'config-license-help' => "许多公共wiki会以[http://freedomdefined.org/Definition 自由许可证]的方式释放出编者的所有贡献。这有助于构建社区的主人翁意识,并能鼓励长期贡献。对于非公共wiki或公司wiki,这并非必要条件。
-
-如果您希望使用来自维基百科的内容,并希望维基百科能接受复制自您的wiki的内容,请选择'''知识共享署名-相同方式共享'''。
-
-GNU自由文档许可证是维基百科曾经使用过的许可证,并迄今有效。然而,该许可证难以理解,并会增加重用内容的难度。",
-       'config-email-settings' => '电子邮件设置',
-       'config-enable-email' => '启用出站电子邮件',
-       'config-enable-email-help' => '如果您希望使用电子邮件功能,请正确配置[http://www.php.net/manual/en/mail.configuration.php PHP的邮件设定]。如果您不需要任何电子邮件功能,请在此处禁用它。',
-       'config-email-user' => '启用用户到用户的电子邮件',
-       'config-email-user-help' => '允许所有用户互发邮件,假若他们启用了该功能。',
-       'config-email-usertalk' => '启用用户讨论页通知',
-       'config-email-usertalk-help' => '允许用户收到用户讨论页被修改的通知,假若他们启用了该功能。',
-       'config-email-watchlist' => '启用监视列表通知',
-       'config-email-watchlist-help' => '允许用户收到与其监视列表有关的通知,假若他们启用了该功能。',
-       'config-email-auth' => '启用电子邮件身份验证',
-       'config-email-auth-help' => "如果启用此选项,在用户设置或修改电子邮件地址时,就会收到一封邮件,内含确认电子地址的链接。只有经过身份验证的电子邮件地址,才能收到来自其他用户的电子邮件,或任何修改通知的邮件。'''建议'''公开wiki启用本选项,以防对电子邮件功能的滥用。",
-       'config-email-sender' => '回复电子邮件地址:',
-       'config-email-sender-help' => '输入要用来发送出站电子邮件的地址,该地址将会收到被拒收的邮件。许多邮件服务器要求域名部分必须有效。',
-       'config-upload-settings' => '图像和文件上传',
-       'config-upload-enable' => '启用文件上传',
-       'config-upload-help' => '文件上传可能会将您的服务器暴露在安全风险下。有关更多的信息,请参阅手册的[//www.mediawiki.org/wiki/Manual:Security 安全部分]。
-
-要启用文件上传,请先将MediaWiki根目录下的<code>images</code>子目录更改为对web服务器可写,然后再启用此选项。',
-       'config-upload-deleted' => '已删除文件的目录:',
-       'config-upload-deleted-help' => '指定用于存放被删除文件的目录。理想情况下,该目录不应能通过web访问。',
-       'config-logo' => '标志URL:',
-       'config-logo-help' => '在MediaWiki的默认外观中,左侧栏菜单之上有一块135x160像素的标志区。请上传一幅相应大小的图像,并在此输入URL。
-
-你可以用<code>$wgStylePath</code>或<code>$wgScriptPath</code>来表示相对于这些位置的路径。
-
-如果您不希望使用标志,请将本处留空。',
-       'config-instantcommons' => '启用即时共享资源',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons 即时共享资源]可以让wiki使用来自[//commons.wikimedia.org/ 维基共享资源]网站的图像、音频和其他媒体文件。要启用该功能,MediaWiki必须能够访问互联网。
-
-有关此功能的详细信息,包括如何将其他wiki网站设为具有类似共享功能的方法,请参考[//mediawiki.org/wiki/Manual:$wgForeignFileRepos 手册]。',
-       'config-cc-error' => '知识共享许可证挑选器无法找到结果,请手动输入许可证的名称。',
-       'config-cc-again' => '重新挑选……',
-       'config-cc-not-chosen' => '选择您希望使用的知识共享许可证,并点击“继续”。',
-       'config-advanced-settings' => '高级设置',
-       'config-cache-options' => '对象缓存设置:',
-       'config-cache-help' => '对象缓存可通过缓存频繁使用的数据来提高MediaWiki的速度。高度推荐中到大型的网站启用该功能,小型网站亦能从其中受益。',
-       'config-cache-none' => '无缓存(不影响功能,但对较大型的wiki网站会有速度影响)',
-       'config-cache-accel' => 'PHP对象缓存(APC、XCache或WinCache)',
-       'config-cache-memcached' => '使用Memcached(需要另外安装并配置)',
-       'config-memcached-servers' => 'Memcached服务器:',
-       'config-memcached-help' => '用于Memcached的IP地址列表。请保持每行一条,并指定要使用的端口。例如:
-127.0.0.1:11211
-192.168.1.25:1234',
-       'config-memcache-needservers' => '您选择了Memcached作为您的缓存,但并未指定任何服务器。',
-       'config-memcache-badip' => '您为Memcached输入了无效的IP地址:$1。',
-       'config-memcache-noport' => '您没有指定Memcached服务器的端口:$1。如果您不清楚端口是多少,默认值为11211。',
-       'config-memcache-badport' => 'Memcached的端口号应该在$1到$2之间。',
-       'config-extensions' => '扩展',
-       'config-extensions-help' => '已在您的<code>./extensions</code>目录中发现下列扩展。
-
-您可能要对它们进行额外的配置,但您现在可以启用它们。',
-       'config-install-alreadydone' => "'''警告:'''您似乎已经安装了MediaWiki,并试图重新安装它。请前往下一个页面。",
-       'config-install-begin' => '点击“{{int:config-continue}}”后,您将开始安装MediaWiki。如果您还想对配置作一些修改,请点击“{{int:config-back}}”。',
-       'config-install-step-done' => '完成',
-       'config-install-step-failed' => '失败',
-       'config-install-extensions' => '正在启用扩展',
-       'config-install-database' => '正在配置数据库',
-       'config-install-schema' => '创建架构',
-       'config-install-pg-schema-not-exist' => 'PostgreSQL 架构不存在',
-       'config-install-pg-schema-failed' => '创建数据表失败。请确保用户“$1”拥有写入模式“$2”的权限。',
-       'config-install-pg-commit' => '正在提交更改',
-       'config-install-pg-plpgsql' => '正在检查PL/pgSQL语言',
-       'config-pg-no-plpgsql' => '您需要为数据库$1安装PL/pgSQL语言',
-       'config-pg-no-create-privs' => '为安装程序指定的帐号缺少创建帐号的权限。',
-       'config-pg-not-in-role' => '您指定为web用户的帐户已经存在。
-您给本程序指定的帐户不是超级用户,也不是web用户角色的成员,所以它不能创建web用户所拥有的对象。
-
-MediaWiki当前需要使用由web用户所有的表。请指定另一个web帐户名称,或点击“后退”并指定具有适当权限的安装用户。',
-       'config-install-user' => '正在创建数据库用户',
-       'config-install-user-alreadyexists' => '用户“$1”已存在',
-       'config-install-user-create-failed' => '创建用户“$1”失败:$2',
-       'config-install-user-grant-failed' => '授予用户“$1”权限失败:$2',
-       'config-install-user-missing' => '指定的用户“$1”不存在。',
-       'config-install-user-missing-create' => '指定的用户“$1”不存在。如果您想要创建一名,请点选“创建帐户”下面的复选框。',
-       'config-install-tables' => '正在创建数据表',
-       'config-install-tables-exist' => "'''警告''':MediaWiki的数据表似乎已经存在,跳过创建。",
-       'config-install-tables-failed' => "'''错误''':创建数据表出错,下为错误信息:$1",
-       'config-install-interwiki' => '正在填充默认的跨wiki数据表',
-       'config-install-interwiki-list' => '找不到文件<code>interwiki.list</code>。',
-       'config-install-interwiki-exists' => "'''警告''':跨wiki数据表似乎已有内容,跳过默认列表。",
-       'config-install-stats' => '初始化统计',
-       'config-install-keys' => '生成密钥中',
-       'config-insecure-keys' => "'''警告''':在安装过程中生成的{{PLURAL:$2|安全密钥|安全密钥}}($1){{PLURAL:$2|并|并}}不一定安全。请考虑手动更改{{PLURAL:$2|它|它们}}。",
-       'config-install-sysop' => '正在创建管理员用户帐号',
-       'config-install-subscribe-fail' => '无法订阅mediawiki-announce:$1',
-       'config-install-subscribe-notpossible' => '没有安装cURL,allow_url_fopen也不可用。',
-       'config-install-mainpage' => '正在创建显示默认内容的首页',
-       'config-install-extension-tables' => '正在为已启用扩展创建数据表',
-       'config-install-mainpage-failed' => '无法插入首页:$1',
-       'config-install-done' => "'''恭喜!'''
-您已经成功地安装了MediaWiki。
-
-安装程序已经生成了<code>LocalSettings.php</code>文件,其中包含了您所有的配置。
-
-您需要下载该文件,并将其放在您wiki的根目录(index.php的同级目录)中。稍后下载将自动开始。
-
-如果浏览器没有提示您下载,或者您取消了下载,您可以点击下面的链接重新开始下载:
-
-$3
-
-'''注意''':如果您现在不完成本步骤,而是没有下载便退出了安装过程,此后您将无法获得自动生成的配置文件。
-
-当本步骤完成后,您可以 '''[$2 进入您的wiki]'''。",
-       'config-download-localsettings' => '下载<code>LocalSettings.php</code>',
-       'config-help' => '帮助',
-       'config-nofile' => '找不到文件“$1”。它是否已被删除?',
-       'mainpagetext' => "'''已成功安装MediaWiki。'''",
-       'mainpagedocfooter' => '请查阅[//meta.wikimedia.org/wiki/Help:Contents 用户指南]以获取使用本wiki软件的信息!
-
-== 入门 ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki配置设置列表]
-* [//www.mediawiki.org/wiki/Manual:FAQ/zh-hans MediaWiki常见问题]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki发布邮件列表]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources 本地化MediaWiki到您的语言]',
-);
-
-/** Traditional Chinese (中文(繁體)‎)
- * @author Anthony Fok
- * @author Hzy980512
- * @author Justincheng12345
- * @author Liangent
- * @author Mark85296341
- * @author Simon Shek
- * @author 아라
- */
-$messages['zh-hant'] = array(
-       'config-desc' => 'MediaWiki安裝程序',
-       'config-title' => 'MediaWiki $1配置',
-       'config-information' => '資訊',
-       'config-localsettings-upgrade' => '已檢測到<code>LocalSettings.php</code>文件。要升級該配置,請在下面的框中輸入<code>$wgUpgradeKey</code>的值。您可以在<code>LocalSettings.php</code>中找到它。',
-       'config-localsettings-cli-upgrade' => '已檢測到<code>LocalSettings.php</code>文件。要升級該配置,請直接執行<code>update.php</code>。',
-       'config-localsettings-key' => '升級密鑰:',
-       'config-localsettings-badkey' => '您提供的密鑰不正確。',
-       'config-upgrade-key-missing' => '檢測到MediaWiki的配置已經存在。若要升級該配置,請將下面一行文本添加到<code>LocalSettings.php</code>的底部:
-
-$1',
-       'config-localsettings-incomplete' => '當前的<code>LocalSettings.php</code>可能並不完整,因為變量$1沒有設置。請在<code>LocalSettings.php</code>設置該變量,並單擊“{{int:Config-continue}}”。',
-       'config-localsettings-connection-error' => '在使用<code>LocalSettings.php</code>或<code>AdminSettings.php</code>中指定的設置連接數據庫時發生錯誤。請修復相應設置並重試。
-
-$1',
-       'config-session-error' => '啟動會話出錯:$1',
-       'config-session-expired' => '您的會話數據可能已經過期,當前會話的使用期限被設定為$1。您可以在php.ini中設置<code>session.gc_maxlifetime</code>來延長此期限,並重新啟動本配置程序。',
-       'config-no-session' => '您的會話數據丟失了!請檢查php.ini並確保<code>session.save_path</code>被設置為適當的目錄。',
-       'config-your-language' => '您的語言:',
-       'config-your-language-help' => '選擇一個要使用的語言在安裝過程中。',
-       'config-wiki-language' => 'Wiki 語言:',
-       'config-wiki-language-help' => '選擇將要安裝的wiki在多數情況下使用的語言。',
-       'config-back' => '←返回',
-       'config-continue' => '繼續→',
-       'config-page-language' => '語言',
-       'config-page-welcome' => '歡迎您來到 MediaWiki!',
-       'config-page-dbconnect' => '連接到資料庫',
-       'config-page-upgrade' => '升級現有的安裝',
-       'config-page-dbsettings' => '資料庫設定',
-       'config-page-name' => '名稱',
-       'config-page-options' => '選項',
-       'config-page-install' => '安裝',
-       'config-page-complete' => '完成!',
-       'config-page-restart' => '重新安裝',
-       'config-page-readme' => '讀我',
-       'config-page-releasenotes' => '發布說明',
-       'config-page-copying' => '複製',
-       'config-page-upgradedoc' => '升級',
-       'config-page-existingwiki' => '已有wiki',
-       'config-help-restart' => '是否要清除所有已輸入且保存的數據,並重新啟動安裝過程嗎?',
-       'config-restart' => '是的,重新啟動',
-       'config-welcome' => '=== 環境檢查 ===
-對當前環境是否適合安裝MediaWiki作基本的檢查。如果您在安裝過程中需要幫助,請提供這些檢查的結果。',
-       'config-copyright' => "=== 版權和條款 ===
-
-\$1
-
-本程序為自由軟件;您可依據自由軟件基金會所發表的GNU通用公共授權條款規定,就本程序再為發布與/或修改;無論您依據的是本授權的第二版或(您自行選擇的)任一日後發行的版本。
-
-本程序是基於使用目的而加以發布,然而'''不負任何擔保責任''';亦無對'''適售性'''或'''特定目的適用性'''所為的默示性擔保。詳情請參照GNU通用公共授權。
-
-您應已收到附隨於本程序的<doclink href=\"Copying\">GNU通用公共授權的副本</doclink>;如果沒有,請寫信至自由軟件基金會:59 Temple Place - Suite 330, Boston, Ma 02111-1307, USA,或[http://www.gnu.org/copyleft/gpl.html 在線閱讀]。",
-       'config-sidebar' => '* [//www.mediawiki.org/wiki/MediaWiki/zh-hans MediaWiki首頁]
-* [//www.mediawiki.org/wiki/Help:Contents/zh-hans 用戶指南]
-* [//www.mediawiki.org/wiki/Manual:Contents 管理員指南]
-* [//www.mediawiki.org/wiki/Manual:FAQ/zh-hans 常見問題解答]
-----
-* <doclink href=Readme>自述文件</doclink>
-* <doclink href=ReleaseNotes>發行說明</doclink>
-* <doclink href=Copying>協議副本</doclink>
-* <doclink href=UpgradeDoc>升級</doclink>',
-       'config-env-good' => '環境檢查已經完成。您可以安裝MediaWiki。',
-       'config-env-bad' => '環境檢查已經完成。您不能安裝MediaWiki。',
-       'config-env-php' => 'PHP $1 已安裝。',
-       'config-env-php-toolow' => '已安裝 PHP $1;但是,MediaWiki 需要 PHP $2 或更高版本。',
-       'config-unicode-using-utf8' => '將使用 Brion Vibber 的 utf8_normalize.so 以實作 Unicode 正規化。',
-       'config-unicode-using-intl' => '將使用 [http://pecl.php.net/intl intl PECL 延伸函式庫]以實作 Unicode 正規化。',
-       'config-unicode-pure-php-warning' => "'''警告:'''因為尚未安裝 [http://pecl.php.net/intl intl PECL 延伸函式庫]以處理 Unicode 正規化,故只能退而採用較慢的純 PHP 實作。如果您運行着一個高流量的網站,請參閱 [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode 正規化]一文。",
-       'config-unicode-update-warning' => "'''警告''':Unicode正常化封裝器的已安裝版本使用了舊版本的[http://site.icu-project.org/ ICU項目]庫。如果您需要使用Unicode,請將其[//www.mediawiki.org/wiki/Unicode_normalization_considerations 升級]。",
-       'config-no-db' => '找不到合適的數據庫驅動!您需要為PHP安裝數據庫驅動。目前支持以下數據庫:$1。
-
-如果您正在使用共享主機,請向您的主機提供商申請安裝合適的數據庫驅動。如果您通過自行編譯安裝的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>選項被啟用。請盡量禁用該功能,'''雖然不會影響MediaWiki的運行,但您的服務器會被暴露給潛在的安全漏洞。",
-       'config-magic-quotes-runtime' => "'''致命錯誤:[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]被啟用!'''
-此選項會無法預測地破壞輸入的數據,請將其禁用,否則您將不能安裝或使用MediaWiki。",
-       'config-magic-quotes-sybase' => "'''致命錯誤:[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_sybase]被啟用!'''
-此選項會無法預測地破壞輸入的數據,請將其禁用,否則您將不能安裝或使用MediaWiki。",
-       'config-mbstring' => "'''致命錯誤:[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]被啟用!'''
-此選項會導致錯誤並不可預測地破壞數據,請將其禁用,否則您將不能安裝或使用MediaWiki。",
-       'config-ze1' => "'''致命錯誤:[http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]被啟用!'''
-此選項將導致MediaWiki出現極其嚴重的故障,請將其禁用,否則您將不能安裝或使用MediaWiki。",
-       'config-safe-mode' => "'''警告:'''PHP的[http://www.php.net/features.safe-mode 安全模式]已啟用。它可能會導致一些問題,尤其在對文件上傳和數學公式<code>math</code>的支持方面。",
-       'config-xml-bad' => '缺少PHP的XML模塊。MediaWiki需要使用該模塊提供的函數,在當前配置下將無法工作。如果您正在使用Mandrake Linux,請安裝php-xml包。',
-       'config-pcre' => '可能缺少PCRE的支持模塊。MediaWiki的運行需要兼容於Perl的正則表達式函數。',
-       'config-pcre-no-utf8' => "'''致命錯誤''':PHP的PCRE模塊在編譯時可能沒有包含PCRE_UTF8支持。MediaWiki需要UTF-8支持才能正常工作。",
-       'config-memory-raised' => 'PHP的內存使用上限<code>memory_limit</code>為$1,自動提升到$2。',
-       'config-memory-bad' => "'''警告:'''PHP的內存使用上限<code>memory_limit</code>為$1。該設定可能過低,並導致安裝失敗!",
-       'config-ctype' => "'''毀滅性錯誤''':PHP必須有[http://www.php.net/manual/en/ctype.installation.php Ctype 擴展]來支持編譯。",
-       'config-xcache' => '[http://xcache.lighttpd.net/ XCache]已安裝',
-       'config-apc' => '[http://www.php.net/apc APC]已安裝',
-       'config-wincache' => '[http://www.iis.net/download/WinCacheForPhp WinCache]已安裝',
-       'config-no-cache' => "'''警告:'''找不到[http://www.php.net/apc APC]、[http://xcache.lighttpd.net/ XCache]或[http://www.iis.net/download/WinCacheForPhp WinCache],無法啟用對象緩存。
-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。縮略圖功能將不可用。',
-       'config-no-uri' => "'''錯誤:'''無法確定當前的URI。安裝已中斷。",
-       'config-no-cli-uri' => "'''警告''':未指定--scriptpath參數,使用默認值:<code>$1</code>。",
-       'config-using-server' => '使用服務器名“<nowiki>$1</nowiki>”。',
-       'config-using-uri' => '使用服務器URL“<nowiki>$1$2</nowiki>”。',
-       'config-uploads-not-safe' => "'''警告:'''您的默認上傳目錄<code>$1</code>存在允許執行任意腳本的漏洞。儘管MediaWiki會對所有已上傳的文件進行安全檢查,但我們仍然強烈建議您在啟用上傳功能前[//www.mediawiki.org/wiki/Manual:Security#Upload_security 關閉該安全漏洞]。",
-       'config-no-cli-uploads-check' => "'''警告''':在CLI安裝過程中,沒有對您的默認上傳目錄(<code>$1</code>)進行執行任意腳本的漏洞檢查。",
-       'config-brokenlibxml' => '您的系統安裝的PHP和libxml2版本組合存在故障,並可能在MediaWiki和其他web應用程序中造成隱藏的數據損壞。請將PHP升級到5.2.9或以上,libxml2升級到2.7.3或以上([//bugs.php.net/bug.php?id=45996 PHP的故障報告])。安裝已中斷。',
-       'config-using531' => '由於函數<code>__call()</code>的引用參數存在故障,PHP $1和MediaWiki無法兼容。請升級到PHP 5.3.2或更高版本,或降級到PHP 5.3.0以修復該問題。安裝已中斷。',
-       'config-suhosin-max-value-length' => 'Suhosin已經安裝並將GET請求的參數長度限制在$1字節。MediaWiki的ResourceLoader部件可以在此限制下正常工作,但其性能會被降低。如果可能,請在<code>php.ini</code>中將<code>suhosin.get.max_value_length</code>設為1024或更高值,並在LocalSettings.php中將<code>$wgResourceLoaderMaxQueryLength</code>設為同一值。', # Fuzzy
-       'config-db-type' => '資料庫類型:',
-       'config-db-host' => '資料庫主機:',
-       'config-db-host-help' => '如果您的數據庫在別的服務器上,請在這裡輸入它的域名或IP地址。
-
-如果您在使用共享網站套餐,您的網站商應該已在他們的控制面板中給您數據庫信息了。
-
-如果您在Windows中安裝並且使用MySQL,“localhost”可能無效。如果確實無效,請輸入“127.0.0.1”作為IP地址。
-
-如果您在使用PostgreSQL,並且要用Unix socket來連接,請留空。',
-       'config-db-host-oracle' => '資料庫的 TNS:',
-       'config-db-host-oracle-help' => '請輸入合法的[http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm 本地連接名],並確保tnsnames.ora文件對本安裝程序可見。<br />如果您使用的客戶端庫為10g或更新的版本,您還可以使用[http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm 簡單連接名方法](easy connect naming method)。',
-       'config-db-wiki-settings' => '識別這個 Wiki',
-       'config-db-name' => '資料庫名稱:',
-       'config-db-name-help' => '請輸入一個可以標識您的wiki的名稱。請勿使用空格。
-
-如果您正在使用共享web主機,您的主機提供商或會給您指定一個數據庫名稱,或會讓您通過控制面板創建數據庫。',
-       'config-db-name-oracle' => '資料庫架構:',
-       'config-db-account-oracle-warn' => '現有三種已支持方案可以將Oracle設置為後端數據庫:
-
-如果您希望在安裝過程中創建數據庫帳戶,請為安裝程序提供具有SYSDBA角色的數據庫帳戶,並為web訪問帳戶指定所需身份證明;否則您可以手動創建web訪問的賬戶並僅須提供該帳戶(確保帳戶已有創建方案對象(schema object)的所需權限);或提供兩個不同的帳戶,其一具有創建權限,另一則被限制為web訪問。
-
-具有所需權限賬戶的創建腳本存放於本程序的“maintenance/oracle/”目錄下。請注意,使用受限制的帳戶將禁用默認帳戶的所有維護性功能。',
-       'config-db-install-account' => '用於安裝的用戶帳號',
-       'config-db-username' => '資料庫使用者名稱:',
-       'config-db-password' => '資料庫密碼:',
-       'config-db-password-empty' => '請為新數據庫用戶$1輸入密碼。儘管您可以創建不使用密碼的用戶,但這樣做並不安全。',
-       'config-db-install-username' => '請輸入在安裝過程中用於連接數據庫的用戶名。請勿輸入MediaWiki帳號的用戶名,請輸入您數據庫的用戶名。',
-       'config-db-install-password' => '請輸入在安裝過程中用於連接數據庫的密碼。請勿輸入MediaWiki帳號的密碼,請輸入您數據庫的密碼。',
-       'config-db-install-help' => '請輸入在安裝過程中用於連接數據庫的用戶名和密碼。',
-       'config-db-account-lock' => '在普通操作中使用相同的用戶名和密碼',
-       'config-db-wiki-account' => '用於普通操作的用戶帳號',
-       'config-db-wiki-help' => '輸入在普通的wiki操作中(安裝完成後)將用於連接數據庫的用戶名和密碼。如果該帳號並不存在,而安裝帳號具有足夠的權限,該用戶帳號會被自動創建,並被賦予足以運行此wiki的最低權限。',
-       'config-db-prefix' => '數據庫表前綴:',
-       'config-db-prefix-help' => '如果您需要在多個wiki之間(或在MediaWiki與其他web應用程序之間)共享一個數據庫,您可以通過添加前綴的方式來避免出現表名稱的衝突。請勿使用空格。
-
-此字段通常可留空。',
-       'config-db-charset' => '數據庫字符集',
-       'config-charset-mysql5-binary' => 'MySQL 4.1/5.0 二進制',
-       'config-charset-mysql5' => 'MySQL 4.1/5.0 UTF-8',
-       'config-charset-mysql4' => 'MySQL 4.0 UTF-8(向後兼容)',
-       'config-charset-help' => "'''警告:'''如果您在MySQL 4.1+中使用'''向後兼容的UTF-8'''字符集,並在之後使用<code>mysqldump</code>備份了數據庫,則可能損壞所有的非ASCII字符,從而不可逆地破壞您的備份!
-
-在'''二進制模式'''下,MediaWiki會將UTF-8編碼的文本存於數據庫的二進制字段中。相對於MySQL的UTF-8模式,這種方法效率更高,並允許您使用全範圍的Unicode字符。
-
-在'''UTF-8模式'''下,MySQL將知道您數據使用的字符集,並能適當地提供和轉換內容。但這樣做您將無法在數據庫中存儲[//zh.wikipedia.org/wiki/基本多文種平面 基本多文種平面]以外的字符。",
-       'config-mysql-old' => '需要MySQL $1或更新的版本,您的版本為$2。',
-       'config-db-port' => '數據庫端口:',
-       'config-db-schema' => 'MediaWiki的數據庫模式',
-       'config-db-schema-help' => '此數據庫模式通常是正確的,請在有明確需求時才改動之。',
-       'config-pg-test-error' => "無法連接到數據庫'''$1''':$2",
-       'config-sqlite-dir' => 'SQLite 的資料目錄:',
-       'config-sqlite-dir-help' => "SQLite會將所有的數據存儲於單一文件中。
-
-您所提供的目錄必須在安裝過程中對網頁服務器可寫。
-
-該目錄'''不應'''允許通過web訪問,因此我們不會將數據文件和PHP文件放在一起。
-
-安裝程序在創建數據文件時,亦會在相同目錄下創建<code>.htaccess</code>以控制權限。假若此等控制失效,則可能會將您的數據文件暴露於公共空間,讓他人可以獲取用戶數據(電子郵件地址、雜湊後的密碼)、被刪除的版本以及其他在wiki上被限制訪問的數據。
-
-請考慮將數據庫統一放置在某處,如<code>/var/lib/mediawiki/yourwiki</code>下。",
-       'config-oracle-def-ts' => '默認表空間:',
-       'config-oracle-temp-ts' => '臨時表空間:',
-       'config-support-info' => 'MediaWiki支持以下數據庫系統:
-
-$1
-
-如果您在下面列出的數據庫系統中沒有找到您希望使用的系統,請根據上方鏈向的指引啟用支持。',
-       'config-support-mysql' => '* $1是MediaWiki的首選數據庫,對它的支持最為完備([http://www.php.net/manual/en/mysql.installation.php 如何將對MySQL的支持編譯進PHP中])',
-       'config-support-postgres' => '* $1是一種流行的開源數據庫系統,可作為MySQL的替代([http://www.php.net/manual/en/pgsql.installation.php 如何將對PostgreSQL的支持編譯進PHP中])。本程序中可能依然存在一些小而明顯的錯誤,因此並不建議在生產環境中使用該數據庫系統。',
-       'config-support-sqlite' => '* $1是一種輕量級的數據庫系統,能被良好地支持。([http://www.php.net/manual/en/pdo.installation.php 如何將對SQLite的支持編譯進PHP中],須使用PDO)',
-       'config-support-oracle' => '* $1是一種商用企業級的數據庫。([http://www.php.net/manual/en/oci8.installation.php 如何將對OCI8的支持編譯進PHP中])',
-       'config-header-mysql' => 'MySQL 的設定',
-       'config-header-postgres' => 'PostgreSQL設置',
-       'config-header-sqlite' => 'SQLite 的設定',
-       'config-header-oracle' => '甲骨文設定',
-       'config-invalid-db-type' => '無效的資料庫類型',
-       'config-missing-db-name' => '您必須為“數據庫名稱”輸入內容',
-       'config-missing-db-host' => '您必須為“數據庫主機”輸入內容',
-       'config-missing-db-server-oracle' => '您必須為“數據庫透明網絡底層(TNS)”輸入內容',
-       '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。
-
-請檢查下列的主機、用戶名和密碼設置後重試。',
-       'config-invalid-schema' => '無效的MediaWiki數據庫模式“$1”。請只使用ASCII字母(a-z、A-Z)、數字(0-9)和下劃線(_)。',
-       'config-db-sys-create-oracle' => '安裝程序僅支持使用SYSDBA帳戶創建新帳戶。',
-       'config-db-sys-user-exists-oracle' => '用戶帳戶“$1”已經存在。SYSDBA僅可用於創建新帳戶!',
-       'config-postgres-old' => '需要PostgreSQL $1或更新的版本,您的版本為$2。',
-       'config-sqlite-name-help' => '請為您的wiki指定一個用於標識的名稱。請勿使用空格或連字號,該名稱將被用作SQLite的數據文件名。',
-       'config-sqlite-parent-unwritable-group' => '由於父目錄<code><nowiki>$2</nowiki></code>對網頁服務器不可寫,無法創建數據目錄<code><nowiki>$1</nowiki></code>。
-
-安裝程序已確定您網頁服務器所使用的用戶。請將<code><nowiki>$3</nowiki></code>目錄設為對該用戶可寫以繼續安裝過程。在Unix/Linux系統中,您可以逐行輸入下列命令:
-
-<pre>cd $2
-mkdir $3
-chgrp $4 $3
-chmod g+w $3</pre>',
-       'config-sqlite-parent-unwritable-nogroup' => '由於父目錄<code><nowiki>$2</nowiki></code>對網頁服務器不可寫,無法創建數據目錄<code><nowiki>$1</nowiki></code>。
-
-安裝程序無法確定您網頁服務器所使用的用戶。請將<code><nowiki>$3</nowiki></code>目錄設為全局可寫(對所有用戶)以繼續安裝過程。在Unix/Linux系統中,您可以逐行輸入下列命令:
-
-<pre>cd $2
-mkdir $3
-chmod a+w $3</pre>',
-       'config-sqlite-mkdir-error' => '創建數據目錄“$1”時發生錯誤。請檢查路徑後重試。',
-       'config-sqlite-dir-unwritable' => '無法寫入目錄“$1”。請修改該目錄的權限,使其對網頁服務器可寫後重試。',
-       'config-sqlite-connection-error' => '$1。
-
-請檢查下列的數據目錄和數據庫名稱後重試。',
-       'config-sqlite-readonly' => '文件<code>$1</code>不可寫。',
-       'config-sqlite-cant-create-db' => '無法創建數據文件<code>$1</code>。',
-       'config-sqlite-fts3-downgrade' => 'PHP缺少FTS3支持,正在降級數據表',
-       'config-can-upgrade' => "在數據庫中發現了MediaWiki的數據表。要將它們升級至MediaWiki $1,請點擊'''繼續'''。",
-       'config-upgrade-done' => "升級完成。
-
-現在您可以[$1 開始使用您的wiki]了。
-
-如果您需要重新生成<code>LocalSettings.php</code>文件,請點擊下面的按鈕。除非您的wiki出現了問題,我們'''不推薦'''您執行此操作。",
-       'config-upgrade-done-no-regenerate' => '升級完成。
-
-現在您可以[$1 開始使用您的wiki]了。',
-       'config-regenerate' => '重新生成LocalSettings.php →',
-       'config-show-table-status' => '查詢<code>SHOW TABLE STATUS</code>失敗!',
-       'config-unknown-collation' => "'''警告:'''數據庫使用了無法識別的整理。",
-       'config-db-web-account' => '供網頁訪問使用的數據庫帳號',
-       'config-db-web-help' => '請指定在wiki執行普通操作時,網頁服務器用於連接數據庫服務器的用戶名和密碼。',
-       'config-db-web-account-same' => '使用和安裝程序相同的帳號',
-       'config-db-web-create' => '建立帳號,如果它不存在',
-       'config-db-web-no-create-privs' => '您指定給安裝程序的帳號缺少創建帳號的權限,因此您指定的帳號必須已經存在。',
-       'config-mysql-engine' => '存儲引擎:',
-       'config-mysql-innodb' => 'InnoDB',
-       'config-mysql-myisam' => 'MyISAM',
-       'config-mysql-myisam-dep' => "'''警告''':您選擇了MyISAM作為MySQL的存儲引擎,MediaWiki並不推薦您這麼做,因為:
-* 它僅能通過表鎖定來勉強支持並發
-* 與其他引擎相比,它更容易被損壞
-* MediaWiki代碼庫並不總會去處理MyISAM
-
-如果您的MySQL程序支持InnoDB,我們高度推薦您使用該引擎替代MyISAM。
-如果您的MySQL程序不支持InnoDB,請考慮升級。",
-       'config-mysql-engine-help' => "'''InnoDB'''通常是最佳選項,因為它對並發操作有着良好的支持。
-
-'''MyISAM'''在單用戶或只讀環境下可能會有更快的性能表現。但MyISAM數據庫出錯的概率一般要大於InnoDB數據庫。",
-       'config-mysql-charset' => '資料庫字符集:',
-       'config-mysql-binary' => '二進制',
-       'config-mysql-utf8' => 'UTF-8',
-       'config-mysql-charset-help' => "在'''二進制模式'''下,MediaWiki會將UTF-8編碼的文本存於數據庫的二進制字段中。相對於MySQL的UTF-8模式,這種方法效率更高,並允許您使用全範圍的Unicode字符。
-
-在'''UTF-8模式'''下,MySQL將知道您數據使用的字符集,並能適當地提供和轉換內容。但這樣做您將無法在數據庫中存儲[//zh.wikipedia.org/wiki/基本多文種平面 基本多文種平面]以外的字符。",
-       'config-site-name' => 'Wiki的名稱:',
-       'config-site-name-help' => '填入的內容會出現在瀏覽器的標題欄以及其他多處位置中。',
-       'config-site-name-blank' => '輸入站點名稱。',
-       'config-project-namespace' => '項目名字空間:',
-       'config-ns-generic' => '項目',
-       'config-ns-site-name' => '與wiki名稱相同:$1',
-       'config-ns-other' => '其他(請註明)',
-       'config-ns-other-default' => '我的Wiki',
-       'config-project-namespace-help' => "依循維基百科形成的慣例,許多wiki將他們的方針頁面存放在與內容頁面不同的“'''項目名字空間'''”中。所有位於該名字空間下的頁面標題都會被冠以固定的前綴,您可以在此處指定這一前綴。傳統上,這一前綴應與wiki的命名保持一致,但請勿在其中使用標點符號,如“#”或“:”。",
-       'config-ns-invalid' => '指定的名字空間“<nowiki>$1</nowiki>”無效,請為項目名字空間指定其他名稱。',
-       'config-ns-conflict' => '指定的名字空間“<nowiki>$1</nowiki>”與默認的MediaWiki名字空間衝突。請指定一個不同的項目名字空間。',
-       'config-admin-box' => '管理員帳號',
-       'config-admin-name' => '您的名字:',
-       'config-admin-password' => '密碼:',
-       'config-admin-password-confirm' => '再次輸入密碼:',
-       'config-admin-help' => '在此輸入您想使用的用戶名,例如“喬幫主”。您將使用該名稱登錄本wiki。',
-       'config-admin-name-blank' => '輸入管理員的使用者名稱。',
-       'config-admin-name-invalid' => '指定的用戶名“<nowiki>$1</nowiki>”無效,請指定其他用戶名。',
-       'config-admin-password-blank' => '輸入管理員帳號密碼。',
-       'config-admin-password-same' => '密碼不能與使用者名稱相同。',
-       'config-admin-password-mismatch' => '兩次輸入的密碼並不相同。',
-       'config-admin-email' => '電郵地址:',
-       'config-admin-email-help' => '輸入電子郵件地址後,您可以收到此wiki上其他用戶發來的電子郵件,並能重置您的密碼,還可在監視列表中頁面被更改時收到郵件通知。您可以將此字段留空。',
-       'config-admin-error-user' => '在創建用戶名為“<nowiki>$1</nowiki>”的管理員帳號時發生內部錯誤。',
-       'config-admin-error-password' => '在為管理員“<nowiki>$1</nowiki>”設置密碼時發生內部錯誤:<pre>$2</pre>',
-       'config-admin-error-bademail' => '你輸入了一個無效的電子郵件地址。',
-       'config-subscribe' => '訂閱[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce 發行公告郵件列表]。',
-       'config-subscribe-help' => '此低流量的郵件列表僅用於發行公告,其中包括重要安全公告。請訂閱該列表以便在新的版本推出時升級您的MediaWiki。',
-       'config-subscribe-noemail' => '您選擇了訂閱發行公告郵件列表,但沒有提供電子郵件地址。請提供一個電子郵件地址以訂閱郵件列表。',
-       'config-almost-done' => '您幾乎已經完成了!現在您可以跳過剩下的配置流程並立即安裝wiki。',
-       'config-optional-continue' => '多問我一些問題吧。',
-       'config-optional-skip' => '我已經不耐煩了,趕緊安裝我的wiki。',
-       'config-profile' => '用戶權限配置:',
-       'config-profile-wiki' => '開放的wiki',
-       'config-profile-no-anon' => '需要註冊帳號',
-       'config-profile-fishbowl' => '編輯受限',
-       'config-profile-private' => '非公開wiki',
-       'config-profile-help' => "如果您允許盡量多的人編寫wiki,網站上的內容會更加豐富。在MediaWiki中,您可以輕鬆地審查最近更改,並輕易回退掉新手或破壞者造成的損害。
-
-然而,許多人覺得讓MediaWiki存在多種角色將更加好用;同時,要說服所有人都願以wiki的方式作貢獻並非一件易事。因此,您可以有以下選擇:
-
-'''{{int:config-profile-wiki}}'''允許包括未登錄用戶在內的所有人編輯。'''{{int:config-profile-no-anon}}'''的wiki需要額外的註冊流程,這有可能會阻礙隨意貢獻者。
-
-'''{{int:config-profile-fishbowl}}'''模式只允許獲批准的用戶編輯,但對公眾開放頁面瀏覽(包括歷史記錄)。'''{{int:config-profile-private}}'''則只允許獲批准的用戶瀏覽、編輯頁面。
-
-安裝完成後,您還可以對用戶權限進行更多、更複雜的配置,參見[//www.mediawiki.org/wiki/Manual:User_rights 相關的使用手冊]。", # Fuzzy
-       'config-license' => '版權和許可證:',
-       'config-license-none' => '頁腳無許可證',
-       'config-license-cc-by-sa' => '知識共享署名-相同方式分享',
-       'config-license-cc-by' => '知識共享署名',
-       'config-license-cc-by-nc-sa' => '知識共享署名-非商業性使用-相同方式共享',
-       'config-license-cc-0' => '知識共享Zero(公有領域)',
-       'config-license-gfdl' => 'GNU自由文檔許可證1.3或更高版本',
-       'config-license-pd' => '公共領域',
-       'config-license-cc-choose' => '選擇自定義的知識共享許可證',
-       'config-license-help' => "許多公共wiki會以[http://freedomdefined.org/Definition 自由許可證]的方式釋放出編者的所有貢獻。這有助於構建社區的主人翁意識,並能鼓勵長期貢獻。對於非公共wiki或公司wiki,這並非必要條件。
-
-如果您希望使用來自維基百科的內容,並希望維基百科能接受複製自您的wiki的內容,請選擇'''知識共享署名-相同方式共享'''。
-
-GNU自由文檔許可證是維基百科曾經使用過的許可證,並迄今有效。然而,該許可證難以理解,並會增加重用內容的難度。",
-       'config-email-settings' => 'E-mail 設定',
-       'config-enable-email' => '啟用出站電子郵件',
-       'config-enable-email-help' => '如果您希望使用電子郵件功能,請正確配置[http://www.php.net/manual/en/mail.configuration.php PHP的郵件設定]。如果您不需要任何電子郵件功能,請在此處禁用它。',
-       'config-email-user' => '啟用用戶到用戶的電子郵件',
-       'config-email-user-help' => '允許所有用戶互發郵件,假若他們啟用了該功能。',
-       'config-email-usertalk' => '啟用用戶討論頁通知',
-       'config-email-usertalk-help' => '允許用戶收到用戶討論頁被修改的通知,假若他們啟用了該功能。',
-       'config-email-watchlist' => '啟用監視列表通知',
-       'config-email-watchlist-help' => '允許用戶收到與其監視列表有關的通知,假若他們啟用了該功能。',
-       'config-email-auth' => '啟用電子郵件認證',
-       'config-email-auth-help' => "如果啟用此選項,在用戶設置或修改電子郵件地址時,就會收到一封郵件,內含確認電子地址的鏈接。只有經過身份驗證的電子郵件地址,才能收到來自其他用戶的電子郵件,或任何修改通知的郵件。'''建議'''公開wiki啟用本選項,以防對電子郵件功能的濫用。",
-       'config-email-sender' => '返回電子郵件地址:',
-       'config-email-sender-help' => '輸入要用來發送出站電子郵件的地址,該地址將會收到被拒收的郵件。許多郵件服務器要求域名部分必須有效。',
-       'config-upload-settings' => '圖片和檔案上傳',
-       'config-upload-enable' => '啟用檔案上傳',
-       'config-upload-help' => '文件上傳可能會將您的服務器暴露在安全風險下。有關更多的信息,請參閱手冊的[//www.mediawiki.org/wiki/Manual:Security 安全部分]。
-
-要啟用文件上傳,請先將MediaWiki根目錄下的<code>images</code>子目錄更改為對web服務器可寫,然後再啟用此選項。',
-       'config-upload-deleted' => '已刪除文件的目錄:',
-       'config-upload-deleted-help' => '指定用於存放被刪除文件的目錄。理想情況下,該目錄不應能通過web訪問。',
-       'config-logo' => '標誌URL:',
-       'config-logo-help' => '在MediaWiki的默認外觀中,左側欄菜單之上有一塊135x160像素的標誌區。請上傳一幅相應大小的圖像,並在此輸入URL。
-
-如果您不希望使用標誌,請將本處留空。', # Fuzzy
-       'config-instantcommons' => '啟用即時共享資源',
-       'config-instantcommons-help' => '[//www.mediawiki.org/wiki/InstantCommons 即時共享資源]可以讓wiki使用來自[//commons.wikimedia.org/ 維基共享資源]網站的圖像、音頻和其他媒體文件。要啟用該功能,MediaWiki必須能夠訪問互聯網。
-
-有關此功能的詳細信息,包括如何將其他wiki網站設為具有類似共享功能的方法,請參考[//mediawiki.org/wiki/Manual:$wgForeignFileRepos 手冊]。',
-       'config-cc-error' => '知識共享許可證挑選器無法找到結果,請手動輸入許可證的名稱。',
-       'config-cc-again' => '重新選取......',
-       'config-cc-not-chosen' => '選擇您希望使用的知識共享許可證,並點擊“繼續”。',
-       'config-advanced-settings' => '進階配置',
-       'config-cache-options' => '對象緩存設置:',
-       'config-cache-help' => '對象緩存可通過緩存頻繁使用的數據來提高MediaWiki的速度。高度推薦中到大型的網站啟用該功能,小型網站亦能從其中受益。',
-       'config-cache-none' => '無緩存(不影響功能,但對較大型的wiki網站會有速度影響)',
-       'config-cache-accel' => 'PHP對象緩存(APC、XCache或WinCache)',
-       'config-cache-memcached' => '使用Memcached(需要另外安裝並配置)',
-       'config-memcached-servers' => 'Memcached服務器:',
-       'config-memcached-help' => '用於Memcached的IP地址列表。請保持每行一條,並指定要使用的端口。例如:
-127.0.0.1:11211
-192.168.1.25:1234',
-       'config-memcache-needservers' => '您選擇了Memcached作為您的緩存,但並未指定任何服務器。',
-       'config-memcache-badip' => '您為Memcached輸入了無效的IP地址:$1。',
-       'config-memcache-noport' => '您沒有指定Memcached服務器的端口:$1。如果您不清楚端口是多少,默認值為11211。',
-       'config-memcache-badport' => 'Memcached的端口號應該在$1到$2之間。',
-       'config-extensions' => '擴充套件',
-       'config-extensions-help' => '已在您的<code>./extensions</code>目錄中發現下列擴展。
-
-您可能要對它們進行額外的配置,但您現在可以啟用它們。',
-       'config-install-alreadydone' => "'''警告:'''您似乎已經安裝了MediaWiki,並試圖重新安裝它。請前往下一個頁面。",
-       'config-install-begin' => '點擊“{{int:config-continue}}”後,您將開始安裝MediaWiki。如果您還想對配置作一些修改,請點擊後退。', # Fuzzy
-       'config-install-step-done' => '完成',
-       'config-install-step-failed' => '失敗',
-       'config-install-extensions' => '正在啟用擴展',
-       'config-install-database' => '正在配置數據庫',
-       'config-install-schema' => '創建架構',
-       'config-install-pg-schema-not-exist' => 'PostgreSQL 架構不存在',
-       'config-install-pg-schema-failed' => '創建數據表失敗。請確保用戶“$1”擁有寫入模式“$2”的權限。',
-       'config-install-pg-commit' => '提交更改',
-       'config-install-pg-plpgsql' => '正在檢查PL/pgSQL語言',
-       'config-pg-no-plpgsql' => '您需要為數據庫$1安裝PL/pgSQL語言',
-       'config-pg-no-create-privs' => '為安裝程序指定的帳號缺少創建帳號的權限。',
-       'config-pg-not-in-role' => '您指定為web用戶的帳戶已經存在。
-您給本程序指定的帳戶不是超級用戶,也不是web用戶角色的成員,所以它不能創建web用戶所擁有的對象。
-
-MediaWiki當前需要使用由web用戶所有的表。請指定另一個web帳戶名稱,或點擊“後退”並指定具有適當權限的安裝用戶。',
-       'config-install-user' => '正在創建數據庫用戶',
-       'config-install-user-alreadyexists' => '用戶“$1”已存在',
-       'config-install-user-create-failed' => '創建用戶“$1”失敗:$2',
-       'config-install-user-grant-failed' => '授予用戶“$1”權限失敗:$2',
-       'config-install-user-missing' => '指定的用戶“$1”不存在。',
-       'config-install-user-missing-create' => '指定的用戶“$1”不存在。如果您想要創建一名,請點選“創建帳戶”下面的複選框。',
-       'config-install-tables' => '正在創建數據表',
-       'config-install-tables-exist' => "'''警告''':MediaWiki的數據表似乎已經存在,跳過創建。",
-       'config-install-tables-failed' => "'''錯誤''':創建數據表出錯,下為錯誤信息:$1",
-       'config-install-interwiki' => '正在填充默認的跨wiki數據表',
-       'config-install-interwiki-list' => '找不到文件<code>interwiki.list</code>。',
-       'config-install-interwiki-exists' => "'''警告''':跨wiki數據表似乎已有內容,跳過默認列表。",
-       'config-install-stats' => '初始化統計',
-       'config-install-keys' => '生成密鑰中',
-       'config-insecure-keys' => "'''警告''':在安裝過程中生成的{{PLURAL:$2|安全密鑰|安全密鑰}}($1){{PLURAL:$2|並|並}}不一定安全。請考慮手動更改{{PLURAL:$2|它|它們}}。",
-       'config-install-sysop' => '正在創建管理員用戶帳號',
-       'config-install-subscribe-fail' => '無法訂閱mediawiki-announce:$1',
-       'config-install-subscribe-notpossible' => '沒有安裝cURL,allow_url_fopen也不可用。',
-       'config-install-mainpage' => '正在創建顯示默認內容的首頁',
-       'config-install-extension-tables' => '正在為已啟用擴展創建數據表',
-       'config-install-mainpage-failed' => '無法插入首頁:$1',
-       'config-install-done' => "'''恭喜!'''
-您已經成功地安裝了MediaWiki。
-
-安裝程序已經生成了<code>LocalSettings.php</code>文件,其中包含了您所有的配置。
-
-您需要下載該文件,並將其放在您wiki的根目錄(index.php的同級目錄)中。稍後下載將自動開始。
-
-如果瀏覽器沒有提示您下載,或者您取消了下載,您可以點擊下面的鏈接重新開始下載:
-
-$3
-
-'''注意''':如果您現在不完成本步驟,而是沒有下載便退出了安裝過程,此後您將無法獲得自動生成的配置文件。
-
-當本步驟完成後,您可以 '''[$2 進入您的wiki]'''。",
-       'config-download-localsettings' => '下載<code>LocalSettings.php</code>',
-       'config-help' => '說明',
-       'mainpagetext' => "'''已成功安裝MediaWiki。'''",
-       'mainpagedocfooter' => '請參閱[//meta.wikimedia.org/wiki/Help:Contents 用戶手冊]以獲得使用此wiki軟體的訊息!
-
-== 入門 ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki配置設定清單]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki常見問題解答]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki發佈郵件清單]
-* [//www.mediawiki.org/wiki/Localisation#Translation_resources MediaWiki界面本地化]',
-);
-
-/** Chinese (Hong Kong) (‪中文(香港)‬)
- * @author Mark85296341
- */
-$messages['zh-hk'] = array(
-       'mainpagedocfooter' => '請參閱[//meta.wikimedia.org/wiki/Help:Contents 用戶手冊]以獲得使用此 wiki 軟件的訊息!
-
-== 入門 ==
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置設定清單]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki 常見問題解答]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈郵件清單]',
-);
-
-/** Chinese (Taiwan) (‪中文(台灣)‬) */
-$messages['zh-tw'] = array(
-       'mainpagedocfooter' => '請參閱 [//meta.wikimedia.org/wiki/Help:Contents 使用者手冊] 以獲得使用此 wiki 軟體的訊息!
-
-== 入門 ==
-
-* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置設定清單]
-* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki 常見問題解答]
-* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈郵件清單]',
-);
index 55ca014..48f850f 100644 (file)
@@ -346,15 +346,14 @@ abstract class Installer {
         * Constructor, always call this from child classes.
         */
        public function __construct() {
-               global $wgExtensionMessagesFiles, $wgUser;
+               global $wgMessagesDirs, $wgUser;
 
                // Disable the i18n cache and LoadBalancer
                Language::getLocalisationCache()->disableBackend();
                LBFactory::disableBackend();
 
-               // Load the installer's i18n file.
-               $wgExtensionMessagesFiles['MediawikiInstaller'] =
-                       __DIR__ . '/Installer.i18n.php';
+               // Load the installer's i18n.
+               $wgMessagesDirs['MediawikiInstaller'] = __DIR__ . '/i18n';
 
                // Having a user with id = 0 safeguards us from DB access via User::loadOptions().
                $wgUser = User::newFromId( 0 );
index 77c35b8..fe036ad 100644 (file)
@@ -264,7 +264,7 @@ class LocalSettingsGenerator {
 # file, not there.
 #
 # Further documentation for configuration settings may be found at:
-# http://www.mediawiki.org/wiki/Manual:Configuration_settings
+# https://www.mediawiki.org/wiki/Manual:Configuration_settings
 
 # Protect against web entry
 if ( !defined( 'MEDIAWIKI' ) ) {
@@ -280,7 +280,7 @@ if ( !defined( 'MEDIAWIKI' ) ) {
 ## defaults for all runtime URL paths are based off of this.
 ## For more information on customizing the URLs
 ## (like /w/index.php/Page_title to /wiki/Page_title) please see:
-## http://www.mediawiki.org/wiki/Manual:Short_URL
+## https://www.mediawiki.org/wiki/Manual:Short_URL
 \$wgScriptPath = \"{$this->values['wgScriptPath']}\";
 \$wgScriptExtension = \"{$this->values['wgScriptExtension']}\";
 ${serverSetting}
index 952b902..d6c84eb 100644 (file)
@@ -273,12 +273,12 @@ class MssqlInstaller extends DatabaseInstaller {
                // http://technet.microsoft.com/en-us/library/ms178569.aspx
                // The following array sets up which permissions imply whatever permissions we specify
                $implied = array(
-                       // schema           database   server
-                       'DELETE'  => array( 'DELETE',  'CONTROL SERVER' ),
+                       // schema           database  server
+                       'DELETE'  => array( 'DELETE', 'CONTROL SERVER' ),
                        'EXECUTE' => array( 'EXECUTE', 'CONTROL SERVER' ),
-                       'INSERT'  => array( 'INSERT',  'CONTROL SERVER' ),
-                       'SELECT'  => array( 'SELECT',  'CONTROL SERVER' ),
-                       'UPDATE'  => array( 'UPDATE',  'CONTROL SERVER' ),
+                       'INSERT'  => array( 'INSERT', 'CONTROL SERVER' ),
+                       'SELECT'  => array( 'SELECT', 'CONTROL SERVER' ),
+                       'UPDATE'  => array( 'UPDATE', 'CONTROL SERVER' ),
                );
 
                $grantOptions = array_flip( $this->webUserPrivs );
index 6c56b3a..02116ea 100644 (file)
@@ -96,6 +96,7 @@ class OracleUpdater extends DatabaseUpdater {
                        //1.23
                        array( 'addIndex', 'logging', 'i06', 'patch-logging_user_text_type_time_index.sql' ),
                        array( 'addIndex', 'logging', 'i07', 'patch-logging_user_text_time_index.sql' ),
+                       array( 'addField', 'user', 'user_password_expires', 'patch-user_password_expire.sql' ),
 
                        // KEEP THIS AT THE BOTTOM!!
                        array( 'doRebuildDuplicateFunction' ),
index 25634ba..e05a3d4 100644 (file)
@@ -306,7 +306,7 @@ class WebInstallerOutput {
 <div id="mw-panel">
        <div class="portal" id="p-logo">
          <a style="background-image: url(../skins/common/images/mediawiki.png);"
-               href="http://www.mediawiki.org/"
+               href="https://www.mediawiki.org/"
                title="Main Page"></a>
        </div>
        <div class="portal"><div class="body">
index f83db54..4bc6cad 100644 (file)
@@ -482,7 +482,7 @@ class WebInstaller_DBConnect extends WebInstallerPage {
                $defaultType = $this->getVar( 'wgDBtype' );
 
                // Messages: config-dbsupport-mysql, config-dbsupport-postgres, config-dbsupport-oracle,
-               // config-dbsupport-sqlite
+               // config-dbsupport-sqlite, config-dbsupport-mssql
                $dbSupport = '';
                foreach ( Installer::getDBTypes() as $type ) {
                        $dbSupport .= wfMessage( "config-dbsupport-$type" )->plain() . "\n";
diff --git a/includes/installer/i18n/af.json b/includes/installer/i18n/af.json
new file mode 100644 (file)
index 0000000..95831f4
--- /dev/null
@@ -0,0 +1,150 @@
+{
+    "@metadata": {
+        "authors": [
+            "Naudefj"
+        ]
+    },
+    "config-desc": "Die Installasieprogram vir MediaWiki",
+    "config-title": "Installasie MediaWiki $1",
+    "config-information": "Inligting",
+    "config-localsettings-key": "Opgradeer-sleutel:",
+    "config-localsettings-badkey": "Die sleutel wat u verskaf het is verkeerd.",
+    "config-session-error": "Fout met begin van sessie: $1",
+    "config-no-session": "U sessiedata is verlore!\nKontroleer u php.ini en maak seker dat <code>session.save_path</code> na 'n geldige gids wys.",
+    "config-your-language": "U taal:",
+    "config-your-language-help": "Kies 'n taal om tydens die installasieproses te gebruik.",
+    "config-wiki-language": "Wiki se taal:",
+    "config-wiki-language-help": "Kies die taal waarin die wiki hoofsaaklik geskryf sal word.",
+    "config-back": "← Terug",
+    "config-continue": "Gaan voort →",
+    "config-page-language": "Taal",
+    "config-page-welcome": "Welkom by MediaWiki!",
+    "config-page-dbconnect": "Konnekteer na die databasis",
+    "config-page-upgrade": "Opgradeer 'n bestaande installasie",
+    "config-page-dbsettings": "Databasis-instellings",
+    "config-page-name": "Naam",
+    "config-page-options": "Opsies",
+    "config-page-install": "Installeer",
+    "config-page-complete": "Voltooi!",
+    "config-page-restart": "Herbegin installasie",
+    "config-page-readme": "Lees my",
+    "config-page-releasenotes": "Vrystellingsnotas",
+    "config-page-copying": "Besig met kopiëring",
+    "config-page-upgradedoc": "Besig met opgradering",
+    "config-page-existingwiki": "Bestaande wiki",
+    "config-restart": "Ja, herbegin dit",
+    "config-sidebar": "* [//www.mediawiki.org MediaWiki tuisblad]\n* [//www.mediawiki.org/wiki/Help:Contents Gebruikershandleiding] (Engelstalig)\n* [//www.mediawiki.org/wiki/Manual:Contents Administrateurshandleiding] (Engelstalig)\n* [//www.mediawiki.org/wiki/Manual:FAQ Algemene vrae] (Engelstalig)\n----\n* <doclink href=Readme>Lees my</doclink>\n* <doclink href=ReleaseNotes>Vrystellingsnotas</doclink>\n* <doclink href=Copying>Kopiëring</doclink>\n* <doclink href=UpgradeDoc>Opgradering</doclink>",
+    "config-env-good": "Die omgewing is gekontroleer.\nU kan MediaWiki installeer.",
+    "config-env-bad": "Die omgewing is gekontroleer.\nU kan nie MediaWiki installeer nie.</span>",
+    "config-env-php": "PHP $1 is tans geïnstalleer.",
+    "config-no-db": "Kon nie 'n geskikte databasisdrywer vind nie!",
+    "config-memory-raised": "PHP se <code>memory_limit</code> is $1, en is verhoog tot $2.",
+    "config-memory-bad": "'''Waarskuwing:''' PHP se <code>memory_limit</code> is $1.\nDit is waarskynlik te laag.\nDie installasie mag moontlik faal!",
+    "config-xcache": "[Http://trac.lighttpd.net/xcache/ XCache] is geïnstalleer",
+    "config-apc": "[Http://www.php.net/apc APC] is geïnstalleer",
+    "config-wincache": "[Http://www.iis.net/download/WinCacheForPhp WinCache] is geïnstalleer",
+    "config-diff3-bad": "GNU diff3 nie gevind nie.",
+    "config-db-type": "Databasistipe:",
+    "config-db-host": "Databasisbediener:",
+    "config-db-host-oracle": "Databasis-TNS:",
+    "config-db-wiki-settings": "Identifiseer hierdie wiki",
+    "config-db-name": "Databasisnaam:",
+    "config-db-name-oracle": "Databasis-skema:",
+    "config-db-install-account": "Gebruiker vir die installasie",
+    "config-db-username": "Databasis gebruikersnaam:",
+    "config-db-password": "Databasis wagwoord:",
+    "config-db-prefix": "Voorvoegsel vir databasistabelle:",
+    "config-db-charset": "Karakterstelsel vir databasis",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binêr",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-mysql-old": "U moet MySQL $1 of later gebruik.\nU gebruik tans $2.",
+    "config-db-port": "Databasispoort:",
+    "config-db-schema": "Skema vir MediaWiki",
+    "config-sqlite-dir": "Gids vir SQLite se data:",
+    "config-oracle-def-ts": "Standaard tabelruimte:",
+    "config-oracle-temp-ts": "Tydelike tabelruimte:",
+    "config-header-mysql": "MySQL-instellings",
+    "config-header-postgres": "PostgreSQL-instellings",
+    "config-header-sqlite": "SQLite-instellings",
+    "config-header-oracle": "Oracle-instellings",
+    "config-invalid-db-type": "Ongeldige databasistipe",
+    "config-missing-db-name": "U moet 'n waarde vir \"Databasnaam\" verskaf",
+    "config-sqlite-readonly": "Die lêer <code>$1</code> kan nie geskryf word nie.",
+    "config-sqlite-cant-create-db": "Kon nie databasislêer <code>$1</code> skep nie.",
+    "config-upgrade-done-no-regenerate": "Opgradering is voltooi.\n\nU kan nou [$1 u wiki gebruik].",
+    "config-regenerate": "Herskep LocalSettings.php →",
+    "config-show-table-status": "Die uitvoer van <code>SHOW TABLE STATUS</code> het gefaal!",
+    "config-db-web-account": "Databasisgebruiker vir toegang tot die web",
+    "config-mysql-engine": "Stoor-enjin:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-charset": "Karakterstelsel vir databasis:",
+    "config-mysql-binary": "Binêr",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "Naam van die wiki:",
+    "config-site-name-blank": "Verskaf 'n naam vir u webwerf.",
+    "config-project-namespace": "Projeknaamruimte:",
+    "config-ns-generic": "Projek",
+    "config-ns-site-name": "Dieselfde as die wiki: $1",
+    "config-ns-other": "Ander (spesifiseer)",
+    "config-ns-other-default": "MyWiki",
+    "config-admin-box": "Administrateur se gebruiker",
+    "config-admin-name": "U naam:",
+    "config-admin-password": "Wagwoord:",
+    "config-admin-password-confirm": "Wagwoord weer:",
+    "config-admin-password-blank": "Verskaf 'n wagwoord vir die administrateur in.",
+    "config-admin-password-same": "Die wagwoord mag nie dieselfde as die gebruikersnaam wees nie.",
+    "config-admin-password-mismatch": "Die twee wagwoorde wat u ingetik het stem nie ooreen nie.",
+    "config-admin-email": "E-posadres:",
+    "config-optional-continue": "Vra my meer vrae.",
+    "config-optional-skip": "Ek is reeds verveeld, installeer maar net die wiki.",
+    "config-profile-wiki": "Tradisionele wiki",
+    "config-profile-no-anon": "Skep van gebruiker is verpligtend",
+    "config-profile-fishbowl": "Slegs vir gemagtigde redaksie",
+    "config-profile-private": "Privaat wiki",
+    "config-license": "Kopiereg en lisensie:",
+    "config-license-none": "Geen lisensie in die onderskrif",
+    "config-license-pd": "Publieke Domein",
+    "config-license-cc-choose": "Kies 'n Creative Commons-lisensie",
+    "config-email-settings": "E-posinstellings",
+    "config-email-sender": "E-posadres vir antwoorde:",
+    "config-upload-settings": "Oplaai van beelde en lêer",
+    "config-upload-enable": "Aktiveer die oplaai van lêers",
+    "config-upload-deleted": "Gids vir verwyderde lêers:",
+    "config-logo": "URL vir logo:",
+    "config-cc-again": "Kies weer...",
+    "config-advanced-settings": "Gevorderde konfigurasie",
+    "config-memcached-servers": "Memcached-bedieners:",
+    "config-extensions": "Uitbreidings",
+    "config-install-step-done": "gedoen",
+    "config-install-step-failed": "het misluk",
+    "config-install-extensions": "Insluitende uitbreidings",
+    "config-install-database": "Stel die databasis op",
+    "config-install-pg-schema-not-exist": "Die skema vir PostgreSQL bestaan ​​nie.",
+    "config-install-pg-schema-failed": "Die skep van tabelle het gefaal.\nMaak seker dat die gebruiker \"$1\" na skema \"$2\" mag skryf.",
+    "config-install-pg-commit": "Wysigings word gestoor",
+    "config-install-pg-plpgsql": "Kontroleer vir taal PL/pgSQL",
+    "config-pg-no-plpgsql": "U moet die taal PL/pgSQL in die database $1 installeer",
+    "config-install-user": "Besig om die databasisgebruiker te skep",
+    "config-install-user-alreadyexists": "Gebruiker \"$1\" bestaan al reeds",
+    "config-install-user-create-failed": "Skep van gebruiker \"$1\" het gefaal: $2",
+    "config-install-user-grant-failed": "Die toekenning van regte aan gebruiker \"$1\" het gefaal: $2",
+    "config-install-tables": "Skep tabelle",
+    "config-install-tables-exist": "'''Waarskuwing''': Dit lyk of MediaWiki se tabelle reeds bestaan.\nDie skep van tabelle word oorgeslaan.",
+    "config-install-tables-failed": "'''Fout''': die skep van 'n tabel het gefaal met die volgende fout: $1",
+    "config-install-interwiki": "Besig om data in die interwiki-tabel in te laai",
+    "config-install-interwiki-list": "Kon nie die lêer <code>interwiki.list</code> vind nie.",
+    "config-install-interwiki-exists": "'''Waarskuwing''': Die interwiki-tabel bevat reeds inskrywings.\nDie standaardlys word oorgeslaan.",
+    "config-install-stats": "Inisialiseer statistieke",
+    "config-install-keys": "Genereer geheime sleutel",
+    "config-install-sysop": "Skep 'n gebruiker vir die administrateur",
+    "config-install-subscribe-fail": "Kon nie vir MediaWiki-announce inskryf nie: $1",
+    "config-install-mainpage": "Skep die hoofblad met standaard inhoud",
+    "config-install-extension-tables": "Skep tabelle vir aangeskakel uitbreidings",
+    "config-install-mainpage-failed": "Kon nie die hoofblad laai nie: $1",
+    "config-install-done": "'''Veels geluk!'''\nU het MediaWiki suksesvol geïnstalleer.\n\nDie installeerder het 'n <code>LocalSettings.php</code> lêer opgestel.\nDit bevat al u instellings.\n\nU sal dit moet [$1 aflaai] en dit in die hoofgids van u wiki-installasie plaas; in dieselfde gids as index.php.\n'''Let wel''': As u dit nie nou doen nie, sal die gegenereerde konfigurasielêer nie later meer beskikbaar wees nadat u die installasie afgesluit het nie.\n\nAs dit gedoen is, kan u '''[u $2 wiki besoek]'''.",
+    "config-download-localsettings": "Laai <code>LocalSettings.php</code> af",
+    "config-help": "hulp",
+    "mainpagetext": "'''MediaWiki is suksesvol geïnstalleer.'''",
+    "mainpagedocfooter": "Konsulteer '''[//meta.wikimedia.org/wiki/Help:Contents User's Guide]''' vir inligting oor hoe om die wikisagteware te gebruik.\n\n== Hoe om te Begin ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/aln.json b/includes/installer/i18n/aln.json
new file mode 100644 (file)
index 0000000..16dbe0a
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Bresta"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki software u instalue me sukses.'''",
+    "mainpagedocfooter": "Për mâ shumë informata rreth përdorimit të softwareit wiki, ju lutem shikoni [//meta.wikimedia.org/wiki/Help:Contents dokumentacionin].\n\n\n== Për fillim ==\n\n* [//www.mediawiki.org/wiki/Help:Configuration_settings Konfigurimi i MediaWikit]\n* [//www.mediawiki.org/wiki/Help:FAQ Pyetjet e shpeshta rreth MediaWikit]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Njoftime rreth MediaWikit]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/am.json b/includes/installer/i18n/am.json
new file mode 100644 (file)
index 0000000..2c79fab
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki በትክክል ማስገባቱ ተከናወነ።'''",
+    "mainpagedocfooter": "ስለ ዊኪ ሶፍትዌር ጥቅም ለመረዳት፣ [//meta.wikimedia.org/wiki/Help:Contents User's Guide] ያንብቡ።\n\n== ለመጀመር ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/an.json b/includes/installer/i18n/an.json
new file mode 100644 (file)
index 0000000..90f5d5d
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Juanpabl"
+        ]
+    },
+    "mainpagetext": "'''O programa MediaWiki s'ha instalato correctament.'''",
+    "mainpagedocfooter": "Consulta a [//meta.wikimedia.org/wiki/Help:Contents Guía d'usuario] ta mirar información sobre cómo usar o software wiki.\n\n== Ta prencipiar ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de caracteristicas confegurables]\n* [//www.mediawiki.org/wiki/Manual:FAQ Preguntas cutianas sobre MediaWiki (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correu sobre ta anuncios de MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ang.json b/includes/installer/i18n/ang.json
new file mode 100644 (file)
index 0000000..a7ecaeb
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Gott wisst"
+        ]
+    },
+    "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.\n\n== Beȝinnunȝ ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Onfæstnunȝa ȝesetednessa ȝetæl]\n* [//www.mediawiki.org/wiki/Manual:FAQ Ȝetæl oft ascodra ascunȝa ymb MediaǷiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Ǣrendunȝȝetæl nīƿra MediaǷiki forþsendnessa]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ar.json b/includes/installer/i18n/ar.json
new file mode 100644 (file)
index 0000000..c7e3914
--- /dev/null
@@ -0,0 +1,27 @@
+{
+    "@metadata": {
+        "authors": [
+            "Meno25",
+            "Mido",
+            "OsamaK",
+            "روخو"
+        ]
+    },
+    "config-desc": "مثبت لميدياويكي",
+    "config-title": "تثبيت ميدياويكي $1",
+    "config-information": "معلومات",
+    "config-back": "→ ارجع",
+    "config-continue": "استمر ←",
+    "config-page-language": "اللغة",
+    "config-page-name": "الاسم",
+    "config-db-username": "اسم مستخدم قاعدة البيانات:",
+    "config-db-password": "كلمة سر قاعدة البيانات:",
+    "config-db-port": "منفذ قاعدة البيانات:",
+    "config-type-mysql": "ماي إس كيو إل",
+    "config-type-postgres": "بوستجر إس كيو إل",
+    "config-type-sqlite": "إس كيو لايت",
+    "config-type-oracle": "أوراكل",
+    "config-admin-email": "عنوان البريد الإلكتروني:",
+    "mainpagetext": "'''تم تثبيت ميدياويكي بنجاح.'''",
+    "mainpagedocfooter": "استشر [//meta.wikimedia.org/wiki/Help:Contents دليل المستخدم] لمعلومات حول استخدام برنامج الويكي.\n\n== البداية ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings قائمة إعدادات الضبط]\n* [//www.mediawiki.org/wiki/Manual:FAQ أسئلة متكررة حول ميدياويكي]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce القائمة البريدية الخاصة بإصدار ميدياويكي]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/arc.json b/includes/installer/i18n/arc.json
new file mode 100644 (file)
index 0000000..e109ca1
--- /dev/null
@@ -0,0 +1,22 @@
+{
+    "@metadata": {
+        "authors": [
+            "Basharh"
+        ]
+    },
+    "config-information": "ܝܕ̈ܥܬܐ",
+    "config-your-language": "ܠܫܢܐ ܕܝܠܟ:",
+    "config-wiki-language": "ܠܫܢܐ ܕܘܝܩܝ:",
+    "config-page-language": "ܠܫܢܐ",
+    "config-page-name": "ܫܡܐ",
+    "config-page-options": "ܓܒܝܬ̈ܐ",
+    "config-page-install": "ܢܨܘܒ",
+    "config-ns-other-default": "ܘܝܩܝ ܕܝܠܝ",
+    "config-admin-box": "ܚܘܫܒܢܐ ܕܡܕܒܪܢܐ",
+    "config-admin-name": "ܫܡܐ ܕܝܠܟ:",
+    "config-admin-password": "ܡܠܬܐ ܕܥܠܠܐ:",
+    "config-admin-password-confirm": "ܡܠܬܐ ܕܥܠܠܐ ܙܒܢܬܐ ܐܚܪܬܐ:",
+    "config-admin-email": "ܡܘܢܥܐ ܕܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ:",
+    "config-profile-private": "ܘܝܩܝ ܦܪܨܘܦܝܐ",
+    "config-email-settings": "ܛܘܝܒ̈ܐ ܕܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ary.json b/includes/installer/i18n/ary.json
new file mode 100644 (file)
index 0000000..9437127
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Enzoreg"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki ṫ'instala be najaḫ.'''",
+    "mainpagedocfooter": "Ila bġiṫiw meĝlomaṫ ĥrin baċ ṫesṫeĝmlo had l-lojisyél siro ċofo [//meta.wikimedia.org/wiki/Aide:Contenu Gid dyal l-mosṫeĥdim]\n\n== L-bdaya mĝa MediaWiki ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista dyal l-paramétraṫ dyal l-konfigurasyon]\n* [//www.mediawiki.org/wiki/Manual:FAQ/fr FAQ fe MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista dyal l-modakaraṫ ĝla versyonaṫ jdad dyal MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/arz.json b/includes/installer/i18n/arz.json
new file mode 100644 (file)
index 0000000..e0f7319
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "''' ميدياويكى اتنزلت بنجاح.'''",
+    "mainpagedocfooter": "اسال [//meta.wikimedia.org/wiki/Help:Contents دليل اليوزر] للمعلومات حوالين استخدام برنامج الويكى.\n\n== البداية ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings لستة اعدادات الضبط]\n* [//www.mediawiki.org/wiki/Manual:FAQ أسئلة بتكرر حوالين الميدياويكى]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce لستة الايميلات بتاعة اعلانات الميدياويكى]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/as.json b/includes/installer/i18n/as.json
new file mode 100644 (file)
index 0000000..3af200f
--- /dev/null
@@ -0,0 +1,10 @@
+{
+    "@metadata": {
+        "authors": [
+            "Chaipau",
+            "Gitartha.bordoloi"
+        ]
+    },
+    "mainpagetext": "'''মিডিয়াৱিকি সফলভাবে ইন্সটল কৰা হ'ল ।'''",
+    "mainpagedocfooter": "ৱিকি চ'ফটৱেৰ কেনেকৈ ব্যৱহাৰ কৰিব [//meta.wikimedia.org/wiki/Help:Contents সদস্যৰ সহায়িকা] চাওঁক ।\n\n== আৰম্ভণি কৰিবলৈ ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ast.json b/includes/installer/i18n/ast.json
new file mode 100644 (file)
index 0000000..56be311
--- /dev/null
@@ -0,0 +1,43 @@
+{
+    "@metadata": {
+        "authors": [
+            "Xuacu"
+        ]
+    },
+    "config-desc": "L'instalador pa MediaWiki",
+    "config-title": "Instalación de MediaWiki $1",
+    "config-information": "Información",
+    "config-localsettings-upgrade": "Detectose un ficheru <code>LocalSettings.php</code>.\nP'anovar esta instalación, escriba'l valor de\n<code>$wgUpgradeKey</code> nel cuadru d'abaxo.\nAlcontraralu en <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Deteutose un ficheru <code>LocalSettings.php</code>.\nP'anovar esta instalación, execute <code>update.php</code>",
+    "config-localsettings-key": "Clave d'anovamientu:",
+    "config-localsettings-badkey": "La clave que dio ye incorreuta.",
+    "config-upgrade-key-missing": "Deteutose una instalación esistente de MediaWiki.\nP'anovar esta instalación, ponga la llinia siguiente al final del ficheru <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "Paez que'l ficheru <code>LocalSettings.php</code> esistente ta incompletu.\nLa variable $1 nun ta definida.\nCamude'l ficheru <code>LocalSettings.php</code> pa qu'esta variable quede definida y calque \"{{int:Config-continue}}\".",
+    "config-localsettings-connection-error": "Alcontrose un error al conectar cola base de datos usando la configuración especificada en <code>LocalSettings.php</code> o <code>AdminSettings.php</code>. Corrixa esta configuración y vuelva a intentalo.\n\n$1",
+    "config-your-language": "La so llingua:",
+    "config-your-language-help": "Seleicione la llingua a emplegar nel procesu d'instalación.",
+    "config-wiki-language": "Llingua de la wiki:",
+    "config-wiki-language-help": "Seleicione la llingua que s'usará preferentemente na wiki.",
+    "config-back": "← Atrás",
+    "config-continue": "Siguir →",
+    "config-page-language": "Llingua",
+    "config-page-welcome": "¡Bienveníu a MediaWiki!",
+    "config-page-dbconnect": "Conectar cola base de datos",
+    "config-page-upgrade": "Anovar instalación esistente",
+    "config-page-dbsettings": "Configuración de la base de datos",
+    "config-page-name": "Nome",
+    "config-page-options": "Opciones",
+    "config-page-install": "Instalar",
+    "config-page-complete": "¡Completo!",
+    "config-page-restart": "Reaniciar la instalación",
+    "config-page-readme": "Llei-me",
+    "config-page-releasenotes": "Notes de la versión",
+    "config-page-copying": "Copiar",
+    "config-page-upgradedoc": "Anovando",
+    "config-page-existingwiki": "Wiki esistente",
+    "config-download-localsettings": "Descargar <code>LocalSettings.php</code>",
+    "config-help": "Ayuda",
+    "config-nofile": "Nun pudo atopase'l ficheru \"$1\". ¿Desaniciose?",
+    "mainpagetext": "'''MediaWiki instalóse correchamente.'''",
+    "mainpagedocfooter": "Visita la [//meta.wikimedia.org/wiki/Help:Contents Guía del usuariu] pa saber cómo usar esti software wiki.\n\n== Empecipiando ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Llista de les opciones de configuración]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de corréu de les ediciones de MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Llocaliza MediaWiki na to llingua]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/avk.json b/includes/installer/i18n/avk.json
new file mode 100644 (file)
index 0000000..7e3a0c3
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki inkeyen talpeyot.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/az.json b/includes/installer/i18n/az.json
new file mode 100644 (file)
index 0000000..63b9c4c
--- /dev/null
@@ -0,0 +1,29 @@
+{
+    "@metadata": {
+        "authors": [
+            "Cekli829",
+            "Vago",
+            "Wertuose"
+        ]
+    },
+    "config-back": "← Geri",
+    "config-continue": "Davam et →",
+    "config-page-language": "Dil",
+    "config-page-welcome": "MediaWiki-yə xoş gəlmişsiniz!",
+    "config-page-dbconnect": "Verilənlər bazasına birləşdir",
+    "config-page-dbsettings": "Verilənlər bazasının nizamlanması",
+    "config-page-name": "Ad",
+    "config-page-options": "Nizamlamalar:",
+    "config-page-install": "Nizamlama",
+    "config-page-complete": "Komplektləşdir!",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-utf8": "UTF-8",
+    "config-ns-generic": "Layihə",
+    "config-admin-name": "Sizin adınız:",
+    "config-admin-password": "Parol:",
+    "config-admin-email": "E-poçt ünvanı",
+    "config-help": "kömək",
+    "mainpagetext": "'''MediaWiki müvəffəqiyyətlə quraşdırıldı.'''",
+    "mainpagedocfooter": "Bu vikinin istifadəsi ilə bağlı məlumat almaq üçün [//meta.wikimedia.org/wiki/Help:Contents İstifadəçi məlumat səhifəsinə] baxın.\n\n== Faydalı keçidlər ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Tənzimləmələrin siyahısı]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki haqqında tez-tez soruşulan suallar]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-poçt siyahısı]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ba.json b/includes/installer/i18n/ba.json
new file mode 100644 (file)
index 0000000..d07dabf
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Haqmar"
+        ]
+    },
+    "mainpagetext": "«MediaWiki» уңышлы рәүештә ҡоролдо.",
+    "mainpagedocfooter": "Был вики менән эшләү тураһында мәғлүмәтте [//meta.wikimedia.org/wiki/Ярҙам:Белешмә ошонда] табып була.\n\n== Файҙалы сығанаҡтар ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Көйләүҙәр исемлеге (инг.)];\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki тураһында йыш бирелгән һорауҙар һәм яуаптар (инг.)];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-ның яңы версиялары тураһында хәбәрҙәр алып тороу]."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/bar.json b/includes/installer/i18n/bar.json
new file mode 100644 (file)
index 0000000..5eb5e2f
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Mucalexx"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki is erfoigreich installird worn.'''",
+    "mainpagedocfooter": "A Hüf zur da Benützung und Konfigurazion voh da Wiki-Software findst auf [//meta.wikimedia.org/wiki/Help:Contents Benützerhåndbuach].\n\n== Starthüfe ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Listen voh de Konfigurazionsvariaablen]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglisten voh de neichen MediaWiki-Versionen]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/bcc.json b/includes/installer/i18n/bcc.json
new file mode 100644 (file)
index 0000000..1b4f44a
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''مدیا وی کی گون موفقیت نصب بوت.'''",
+    "mainpagedocfooter": "مشورت کنیت گون  [//meta.wikimedia.org/wiki/Help:Contents User's Guide] په گشیترین اطلاعات په استفاده چه برنامه ویکی.\n\n== شروع بیت ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/bcl.json b/includes/installer/i18n/bcl.json
new file mode 100644 (file)
index 0000000..640cb22
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Instalado na an MediaWiki.'''",
+    "mainpagedocfooter": "Konsultarón tabì an [//meta.wikimedia.org/wiki/Help:Contents User's Guide] para sa impormasyon sa paggamit nin progama kaining wiki.\n\n== Pagpopoon ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/be-tarask.json b/includes/installer/i18n/be-tarask.json
new file mode 100644 (file)
index 0000000..911c3c2
--- /dev/null
@@ -0,0 +1,311 @@
+{
+    "@metadata": {
+        "authors": [
+            "EugeneZelenko",
+            "Jim-by",
+            "Wizardist",
+            "Zedlik",
+            "아라"
+        ]
+    },
+    "config-desc": "Праграма ўсталяваньня MediaWiki",
+    "config-title": "Усталяваньне MediaWiki $1",
+    "config-information": "Інфармацыя",
+    "config-localsettings-upgrade": "Выяўлены файл <code>LocalSettings.php</code>.\nКаб абнавіць гэтае усталяваньне, калі ласка, увядзіце значэньне <code>$wgUpgradeKey</code> у полі ніжэй.\nЯго можна знайсьці ў <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Быў знойдзены файл <code>LocalSettings.php</code>.\nКаб зьмяніць гэтае ўсталяваньне, калі ласка, запусьціце <code>update.php</code>",
+    "config-localsettings-key": "Ключ паляпшэньня:",
+    "config-localsettings-badkey": "Пададзены Вамі ключ зьяўляецца няслушным",
+    "config-upgrade-key-missing": "Выяўленае існуючае ўсталяваньне MediaWiki.\nКаб абнавіць гэтае ўсталяваньне, калі ласка, устаўце наступны радок у канец Вашага <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "Выглядае, што існуючы <code>LocalSettings.php</code> зьяўляецца няпоўным.\nНе ўстаноўленая пераменная $1.\nКалі ласка, зьмяніце <code>LocalSettings.php</code> так, каб была ўстаноўленая гэтая пераменная, і націсьніце «{{int:Config-continue}}».",
+    "config-localsettings-connection-error": "Адбылася памылка падчас злучэньня з базай зьвестак з выкарыстаньнем наладаў, пазначаных у <code>LocalSettings.php</code> ці <code>AdminSettings.php</code>. Калі ласка, выпраўце гэтыя налады і паспрабуйце зноў.\n\n$1",
+    "config-session-error": "Памылка стварэньня сэсіі: $1",
+    "config-session-expired": "Скончыўся тэрмін дзеяньня зьвестак сэсіі.\nСэсія мае абмежаваны тэрмін у $1.\nВы можаце павялічыць яго, зьмяніўшы парамэтар <code>session.gc_maxlifetime</code> у php.ini.\nПеразапусьціце праграму ўсталяваньня.",
+    "config-no-session": "Зьвесткі сэсіі згубленыя!\nПраверце php.ini і ўпэўніцеся, што ўстаноўлены слушны шлях у <code>session.save_path</code>.",
+    "config-your-language": "Вашая мова:",
+    "config-your-language-help": "Выберыце мову для выкарыстаньня падчас усталяваньня.",
+    "config-wiki-language": "Мова вікі:",
+    "config-wiki-language-help": "Выберыце мову, на якой пераважна будзе пісацца зьмест у вікі.",
+    "config-back": "← Назад",
+    "config-continue": "Далей →",
+    "config-page-language": "Мова",
+    "config-page-welcome": "Вітаем у MediaWiki!",
+    "config-page-dbconnect": "Падключэньне да базы зьвестак",
+    "config-page-upgrade": "Абнавіць існуючую ўстаноўку",
+    "config-page-dbsettings": "Налады базы зьвестак",
+    "config-page-name": "Назва",
+    "config-page-options": "Налады",
+    "config-page-install": "Усталяваць",
+    "config-page-complete": "Зроблена!",
+    "config-page-restart": "Пачаць усталяваньне зноў",
+    "config-page-readme": "Дадатковыя зьвесткі",
+    "config-page-releasenotes": "Заўвагі да выпуску",
+    "config-page-copying": "Капіяваньне",
+    "config-page-upgradedoc": "Абнаўленьне",
+    "config-page-existingwiki": "Існуючая вікі",
+    "config-help-restart": "Ці жадаеце выдаліць усе ўведзеныя зьвесткі і пачаць працэс усталяваньня зноў?",
+    "config-restart": "Так, пачаць зноў",
+    "config-welcome": "== Праверка асяродзьдзя ==\nПраверка патрэбная для запэўніваньня, што гэтае асяродзьдзе слушнае для ўсталяваньня MediaWiki.\nВам патрэбна будзе падаць усе вынікі праверкі, калі спатрэбіцца дапамога падчас усталяваньня.",
+    "config-copyright": "== Аўтарскае права і ўмовы ==\n\n$1\n\nThis 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.\n\nThis 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'''.\nSee the GNU General Public License for more details.\n\nYou should have received <doclink href=Copying>a copy of the GNU General Public License</doclink> along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. or [http://www.gnu.org/copyleft/gpl.html read it online].",
+    "config-sidebar": "* [//www.mediawiki.org Хатняя старонка MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents Даведка для ўдзельнікаў]\n* [//www.mediawiki.org/wiki/Manual:Contents Даведка для адміністратараў]\n* [//www.mediawiki.org/wiki/Manual:FAQ Адказы на частыя пытаньні]\n----\n* <doclink href=Readme>Прачытайце</doclink>\n* <doclink href=ReleaseNotes>Паляпшэньні ў вэрсіі</doclink>\n* <doclink href=Copying>Капіяваньне</doclink>\n* <doclink href=UpgradeDoc>Абнаўленьне</doclink>",
+    "config-env-good": "Асяродзьдзе было праверанае.\nВы можаце ўсталёўваць MediaWiki.",
+    "config-env-bad": "Асяродзьдзе было праверанае.\nУсталяваньне MediaWiki немагчымае.",
+    "config-env-php": "Усталяваны PHP $1.",
+    "config-env-php-toolow": "Усталяваны PHP $1.\nАле MediaWiki патрабуе PHP вэрсіі $2 ці навейшай.",
+    "config-unicode-using-utf8": "Выкарыстоўваецца бібліятэка Unicode-нармалізацыі Браяна Вібэра",
+    "config-unicode-using-intl": "Выкарыстоўваецца [http://pecl.php.net/intl intl пашырэньне з PECL] для Unicode-нармалізацыі",
+    "config-unicode-pure-php-warning": "'''Папярэджаньне''': [http://pecl.php.net/intl Пашырэньне intl з PECL] — ня слушнае для Unicode-нармалізацыі, цяпер выкарыстоўваецца марудная PHP-рэалізацыя.\nКалі ў Вас сайт з высокай наведваемасьцю, раім пачытаць пра [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode-нармалізацыю].",
+    "config-unicode-update-warning": "'''Папярэджаньне''': усталяваная вэрсія бібліятэкі для Unicode-нармалізацыі выкарыстоўвае састарэлую вэрсію бібліятэкі з [http://site.icu-project.org/ праекту ICU].\nРаім [//www.mediawiki.org/wiki/Unicode_normalization_considerations абнавіць], калі ваш сайт будзе працаваць зь Unicode.",
+    "config-no-db": "Немагчыма знайсьці адпаведны драйвэр базы зьвестак. Вам неабходна ўсталяваць драйвэр базы зьвестак для PHP.\nПадтрымліваюцца наступныя тыпы базаў зьвестак: $1.\n\nКалі вы выкарыстоўваеце агульны хостынг, запытайцеся ў свайго хостынг-правайдэра наконт усталяваньня патрабуемага драйвэру базы зьвестак.\nКалі Вы кампілявалі PHP самастойна, пераканфігуруйце і сабярыце яго з дазволеным кліентам базаў зьвестак, напрыклад, <code>./configure --with-mysql</code>.\nКалі Вы ўсталёўвалі PHP з пакетаў Debian ці Ubuntu, то Вам трэба ўсталяваць дадаткова модуль <code>php5-mysql</code>.",
+    "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>.'''\n'''Адключыце яе, калі можаце.'''\nMediaWiki будзе працаваць, але гэта панізіць узровень бясьпекі сэрвэра.",
+    "config-magic-quotes-runtime": "'''Фатальная памылка: уключаная опцыя PHP [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]!'''\nГэтая опцыя псуе ўводны паток зьвестак непрадказальным чынам.\nПрацяг усталяваньня альбо выкарыстаньне MediaWiki без адключэньня гэтай опцыі немагчымыя.",
+    "config-magic-quotes-sybase": "'''Фатальная памылка: рэжым [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] уключаны!'''\nГэты рэжым шкодзіць уваходныя зьвесткі непрадказальным чынам.\nПрацяг усталяваньня альбо выкарыстаньне MediaWiki немагчымыя, пакуль рэжым ня будзе выключаны.",
+    "config-mbstring": "'''Фатальная памылка: рэжым [http://www.php.net/manual/en/ref.info.php#mbstring.overload mbstring.func_overload] уключаны!'''\nГэты рэжым выклікае памылкі і можа шкодзіць зьвесткі непрадказальным чынам.\nПрацяг усталяваньня альбо выкарыстаньне MediaWiki немагчымыя, пакуль рэжым ня будзе выключаны.",
+    "config-ze1": "'''Фатальная памылка: рэжым [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] уключаны!'''\nГэтая рэжым стварае вялікія праблемы ў працы MediaWiki.\nПрацяг усталяваньня альбо выкарыстаньне MediaWiki немагчымыя, пакуль рэжым ня будзе выключаны.",
+    "config-safe-mode": "'''Папярэджаньне:''' [http://www.php.net/features.safe-mode бясьпечны рэжым] PHP уключаны.\nГэта можа выклікаць праблемы, галоўным чынам падчас загрузак файлаў і ў падтрымцы <code>math</code>.",
+    "config-xml-bad": "Ня знойдзены модуль XML для PHP.\nMediaWiki патрэбныя функцыі з гэтага модулю, таму MediaWiki ня будзе працаваць у гэтай канфігурацыі.\nКалі Вы выкарыстоўваеце Mandrake, усталюйце пакет php-xml.",
+    "config-pcre": "Ня знойдзены модуль падтрымкі PCRE.\nMediaWiki для працы патрабуюцца функцыі рэгулярных выразаў у стылі Perl.",
+    "config-pcre-no-utf8": "'''Фатальная памылка''': модуль PCRE для PHP скампіляваны без падтрымкі PCRE_UTF8.\nMediaWiki патрабуе падтрымкі UTF-8 для слушнай працы.",
+    "config-memory-raised": "Абмежаваньне на даступную для PHP памяць <code>memory_limit</code> было падвышанае з $1 да $2.",
+    "config-memory-bad": "'''Папярэджаньне:''' памер PHP <code>memory_limit</code> складае $1.\nВерагодна, гэта вельмі мала.\nУсталяваньне можа быць няўдалым!",
+    "config-ctype": "'''Фатальная памылка''': PHP мусіць быць скампіляваны з падтрымкай [http://www.php.net/manual/en/ctype.installation.php пашырэньня Ctype].",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] усталяваны",
+    "config-apc": "[http://www.php.net/apc APC] усталяваны",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] усталяваны",
+    "config-no-cache": "'''Папярэджаньне:''' немагчыма знайсьці [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] ці [http://www.iis.net/download/WinCacheForPhp WinCache].\nАб’ектнае кэшаваньне ня ўключанае.",
+    "config-mod-security": "'''Папярэджаньне''': на Вашым ўэб-сэрверы ўключаны [http://modsecurity.org/ mod_security]. У выпадку няслушнай наладцы, ён можа стаць прычынай праблемаў для MediaWiki ці іншага праграмнага забесьпячэньня, якое дазваляе ўдзельнікам дасылаць на сэрвэр любы зьмест.\nГлядзіце [http://modsecurity.org/documentation/ дакумэнтацыю mod_security] ці зьвярніцеся ў падтрымку Вашага хосту, калі ў Вас узьнікаюць выпадковыя праблемы.",
+    "config-diff3-bad": "GNU diff3 ня знойдзены.",
+    "config-git": "Знойдзеная сыстэма канстролю вэрсіяў Git: <code>$1</code>",
+    "config-git-bad": "Сыстэма кантролю вэрсіяў Git ня знойдзеная.",
+    "config-imagemagick": "Знойдзены ImageMagick: <code>$1</code>.\nПасьля ўключэньня загрузак будзе ўключанае маштабаваньне выяваў.",
+    "config-gd": "GD падтрымліваецца ўбудавана.\nПасьля ўключэньня загрузак будзе ўключанае маштабаваньне выяваў.",
+    "config-no-scaling": "Ні GD, ні ImageMagick ня знойдзеныя.\nМаштабаваньне выяваў будзе адключанае.",
+    "config-no-uri": "'''Памылка:''' Не магчыма вызначыць цяперашні URI.\nУсталяваньне спыненае.",
+    "config-no-cli-uri": "'''Папярэджаньне''': Не пазначаны --scriptpath, па змоўчваньні выкарыстоўваецца: <code>$1</code>.",
+    "config-using-server": "Выкарыстоўваецца назва сэрвэра «<nowiki>$1</nowiki>».",
+    "config-using-uri": "Выкарыстоўваецца URL-спасылка сэрвэра «<nowiki>$1$2</nowiki>».",
+    "config-uploads-not-safe": "'''Папярэджаньне:''' дырэкторыя для загрузак па змоўчваньні <code>$1</code> уразьлівая да выкананьня адвольнага коду.\nХоць MediaWiki і правярае ўсе файлы перад захаваньнем, вельмі рэкамэндуецца [//www.mediawiki.org/wiki/Manual:Security#Upload_security закрыць гэтую ўразьлівасьць] перад уключэньнем магчымасьці загрузкі файлаў.",
+    "config-no-cli-uploads-check": "'''Папярэджаньне:''' Вашая дырэкторыя для загрузак па змоўчваньні (<code>$1</code>), не правераная на ўразьлівасьць да выкананьня адвольных скрыптоў падчас усталяваньня CLI.\n.",
+    "config-brokenlibxml": "У Вашай сыстэме ўсталяваныя PHP і libxml2 зь несумяшчальнымі вэрсіямі, што можа прывесьці да пашкоджаньня зьвестак MediaWiki і іншых ўэб-дастасаваньняў.\nАбнавіце PHP да вэрсіі 5.2.9 ці болей позьняй, а libxml2 да 2.7.3 ці болей позьняй ([//bugs.php.net/bug.php?id=45996 паведамленьне пра памылку на сайце PHP]).\nУсталяваньне перарванае.",
+    "config-using531": "PHP $1 не сумяшчальнае з MediaWiki з-за памылкі ў перадачы парамэтраў па ўказальніку да <code>__call()</code>.\nАбнавіце PHP да вэрсіі 5.3.2 ці болей позьняй, ці адкаціце да вэрсіі 5.3.0 каб гэта выправіць.\nУсталяваньне перарванае.",
+    "config-suhosin-max-value-length": "Suhosin усталяваны і абмяжоўвае <code>даўжыню</code> парамэтра GET да $1 {{PLURAL:$1|байта|байтаў}}.\nResourceLoader, складнік MediaWiki, будзе абходзіць гэтае абмежаваньне, што, адаб’ецца на прадукцыйнасьці.\nКалі магчыма, варта ўсталяваць у <code>php.ini</code> <code>suhosin.get.max_value_length</code> роўным 1024 ці больш, а таксама вызначыць тое ж значэньне для <code>$wgResourceLoaderMaxQueryLength</code> у LocalSettings.php.",
+    "config-db-type": "Тып базы зьвестак:",
+    "config-db-host": "Хост базы зьвестак:",
+    "config-db-host-help": "Калі сэрвэр Вашай базы зьвестак знаходзіцца на іншым сэрвэры, увядзіце тут імя хоста ці IP-адрас.\n\nКалі Вы карыстаецеся shared-хостынгам, Ваш хостынг-правайдэр мусіць даць Вам слушнае імя хоста базы зьвестак у сваёй дакумэнтацыі.\n\nКалі Вы усталёўваеце сэрвэр Windows з выкарыстаньнем MySQL, выкарыстаньне «localhost» можа не працаваць для назвы сэрвэра. У гэтым выпадку паспрабуйце пазначыць «127.0.0.1»  для лякальнага IP-адраса.\n\nКалі Вы выкарыстоўваеце PostgreSQL, пакіньце поле пустым, каб далучыцца праз Unix-сокет.",
+    "config-db-host-oracle": "TNS базы зьвестак:",
+    "config-db-host-oracle-help": "Увядзіце слушнае [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm лякальнае імя злучэньня]; файл tnsnames.ora павінен быць бачным для гэтага ўсталяваньня.<br />Калі Вы выкарыстоўваеце кліенцкія бібліятэкі 10g ці больш новыя, Вы можаце таксама выкарыстоўваць мэтад наданьня назваў [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm лёгкае злучэньне].",
+    "config-db-wiki-settings": "Ідэнтыфікацыя гэтай вікі",
+    "config-db-name": "Назва базы зьвестак:",
+    "config-db-name-help": "Выберыце імя для вызначэньня Вашай вікі.\nЯно ня мусіць зьмяшчаць прагалаў.\n\nКалі Вы набываеце shared-хостынг, Ваш хостынг-правайдэр мусіць надаць Вам ці пэўнае імя базы зьвестак для выкарыстаньня, ці магчымасьць ствараць базы зьвестак праз кантрольную панэль.",
+    "config-db-name-oracle": "Схема базы зьвестак:",
+    "config-db-account-oracle-warn": "Існуюць тры сцэнары ўсталяваньня Oracle як базы зьвестак для MediaWiki:\n\nКалі Вы жадаеце стварыць рахунак базы зьвестак як частку працэсу ўсталяваньня, калі ласка, падайце рахунак з роляй SYSDBA як рахунак базы зьвестак для ўсталяваньня і пазначце пажаданыя правы рахунку з доступам да Інтэрнэту, у адваротным выпадку Вы можаце таксама стварыць рахунак з доступам да Інтэрнэту ўручную і падаць толькі гэты рахунак (калі патрабуюцца правы для стварэньня схемы аб’ектаў) ці падайце два розных рахункі, адзін з правамі на стварэньне і адзін з абмежаваньнямі для доступу да Інтэрнэту.\n\nСкрыпт для стварэньня рахунку з патрабуемымі правамі можна знайсьці ў дырэкторыі гэтага ўсталяваньня «maintenance/oracle/». Памятайце, што выкарыстаньне рахунку з абмежаваньнямі адключыць усе падтрымліваемыя магчымасьці даступныя па змоўчваньні.",
+    "config-db-install-account": "Імя карыстальніка для ўсталяваньня",
+    "config-db-username": "Імя карыстальніка базы зьвестак:",
+    "config-db-password": "Пароль базы зьвестак:",
+    "config-db-password-empty": "Калі ласка, увядзіце пароль для новага карыстальніка базы зьвестак: $1.\nМагчыма стварыць карыстальніка без паролю, але гэта небясьпечна.",
+    "config-db-install-username": "Увядзіце імя карыстальніка, якое будзе выкарыстоўвацца для злучэньня з базай зьвестак падчас усталяваньня. Гэта не назва рахунку MediaWiki; гэта імя карыстальніка Вашай базы зьвестак.",
+    "config-db-install-password": "Увядзіце пароль, які будзе выкарыстоўвацца для злучэньня з базай зьвестак падчас усталяваньня. Гэта не пароль рахунку MediaWiki; гэта пароль Вашай базы зьвестак.",
+    "config-db-install-help": "Увядзіце імя карыстальніка і пароль, якія будуць выкарыстаныя для далучэньня да базы зьвестак падчас працэсу ўсталяваньня.",
+    "config-db-account-lock": "Выкарыстоўваць тыя ж імя карыстальніка і пароль пасьля ўсталяваньня",
+    "config-db-wiki-account": "Імя карыстальніка для працы",
+    "config-db-wiki-help": "Увядзіце імя карыстальніка і пароль, якія будуць выкарыстаныя для далучэньня да базы зьвестак падчас працы (пасьля ўсталяваньня).\nКалі рахунак ня створаны, а рахунак для ўсталяваньня мае значныя правы, гэты рахунак будзе створаны зь мінімальна патрэбнымі для працы вікі правамі.",
+    "config-db-prefix": "Прэфікс табліцаў базы зьвестак:",
+    "config-db-prefix-help": "Калі Вы разьдзяляеце адну базу зьвестак паміж некалькімі вікі, ці паміж MediaWiki і іншым вэб-дастасаваньнем, можаце вызначыць прэфікс назваў табліцаў для пазьбяганьня канфліктаў.\nПазьбягайце прагалаў.\n\nГэтае поле звычайна пакідаецца пустым.",
+    "config-db-charset": "Кадаваньне базы зьвестак",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 UTF-8 з адваротнай сумяшчальнасьцю",
+    "config-charset-help": "'''Папярэджаньне:''' калі Вы выкарыстоўваеце '''UTF-8 з адваротнай сумяшчальнасьцю''' на MySQL 4.1+ і зробіце рэзэрвовую копію праз <code>mysqldump</code>, ён можа зьнішчыць усе не-ASCII-сымбалі беспаваротна!\n\nУ '''бінарным (binary)''' рэжыме MediaWiki захоўвае тэксты ў UTF-8 у палёх тыпу binary.\nГэты рэжым болей эфэктыўны за рэжым MySQL UTF-8 і дазваляе выкарыстоўваць увесь абсяг сымбаляў Unicode.\nУ рэжыме '''UTF-8''' MySQL будзе ведаць, у якім кадаваньне Вы зьмяшчаеце зьвесткі, і будзе вяртаць іх у адпаведным кадаваньні,\nале MySQL ня можа ўтрымліваць сымбалі па-за [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Стандартным шматмоўным пластом] сымбаляў Unicode.",
+    "config-mysql-old": "Патрабуецца MySQL $1 ці навейшая, усталяваная вэрсія $2.",
+    "config-db-port": "Порт базы зьвестак:",
+    "config-db-schema": "Схема для MediaWiki",
+    "config-db-schema-help": "Гэтая схема слушная ў большасьці выпадкаў.\nЗьмяняйце яе толькі тады, калі Вы ведаеце, што гэта неабходна.",
+    "config-pg-test-error": "Немагчыма далучыцца да базы зьвестак '''$1''': $2",
+    "config-sqlite-dir": "Дырэкторыя зьвестак SQLite:",
+    "config-sqlite-dir-help": "SQLite захоўвае ўсе зьвесткі ў адзіным файле.\n\nПададзеная Вамі дырэкторыя павінна быць даступнай да запісу вэб-сэрвэрам падчас усталяваньня.\n\nЯна '''ня''' мусіць быць даступнай праз Сеціва, вось чаму мы не захоўваем яе ў адным месцы з файламі PHP.\n\nПраграма ўсталяваньня дадаткова створыць файл <code>.htaccess</code>, але калі ён не выкарыстоўваецца, хто заўгодна зможа атрымаць зьвесткі з базы зьвестак.\nГэта ўключае як прыватныя зьвесткі ўдзельнікаў (адрасы электроннай пошты, хэшы пароляў), гэтак і выдаленыя вэрсіі старонак і іншыя зьвесткі, доступ да якіх маецца абмежаваны.\n\nПадумайце над тым, каб зьмяшчаць базу зьвестак у іншым месцы, напрыклад у <code>/var/lib/mediawiki/yourwiki</code>.",
+    "config-oracle-def-ts": "Прастора табліцаў па змоўчваньні:",
+    "config-oracle-temp-ts": "Часовая прастора табліцаў:",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-support-info": "MediaWiki падтрымлівае наступныя сыстэмы базаў зьвестак:\n\n$1\n\nКалі Вы ня бачыце сыстэму базаў зьвестак, якую Вы спрабуеце выкарыстоўваць ў сьпісе ніжэй, перайдзіце па спасылцы інструкцыі, якая знаходзіцца ніжэй, каб уключыць падтрымку.",
+    "config-support-mysql": "* $1 зьяўляецца галоўнай мэтай MediaWiki і падтрымліваецца лепей за ўсё ([http://www.php.net/manual/en/mysql.installation.php як кампіляваць PHP з падтрымкай MySQL])",
+    "config-support-postgres": "* $1 — вядомая сыстэма базы зьвестак з адкрытым кодам, якая зьяўляецца альтэрнатывай MySQL ([http://www.php.net/manual/en/pgsql.installation.php як кампіляваць PHP з падтрымкай PostgreSQL]). Яна можа ўтрымліваць дробныя памылкі, і не рэкамэндуецца выкарыстоўваць яе для працуючых праектаў.",
+    "config-support-sqlite": "* $1 — невялікая сыстэма базы зьвестак, якая мае вельмі добрую падтрымку. ([http://www.php.net/manual/en/pdo.installation.php як кампіляваць PHP з падтрымкай SQLite], выкарыстоўвае PDO)",
+    "config-support-oracle": "* $1 зьяўляецца камэрцыйнай прафэсійнай базай зьвестак. ([http://www.php.net/manual/en/oci8.installation.php Як скампіляваць PHP з падтрымкай OCI8])",
+    "config-header-mysql": "Налады MySQL",
+    "config-header-postgres": "Налады PostgreSQL",
+    "config-header-sqlite": "Налады SQLite",
+    "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": "Няслушнае TNS базы зьвестак «$1».\nНазва можа ўтрымліваць толькі ASCII-літары (a-z, A-Z), лічбы (0-9), сымбалі падкрэсьліваньня(_) і кропкі (.).",
+    "config-invalid-db-name": "Няслушная назва базы зьвестак «$1».\nНазва можа ўтрымліваць толькі ASCII-літары (a-z, A-Z), лічбы (0-9), сымбалі падкрэсьліваньня(_) і працяжнікі (-).",
+    "config-invalid-db-prefix": "Няслушны прэфікс базы зьвестак «$1».\nЁн можа зьмяшчаць толькі ASCII-літары (a-z, A-Z), лічбы (0-9), сымбалі падкрэсьліваньня (_) і працяжнікі (-).",
+    "config-connection-error": "$1.\n\nПраверце хост, імя карыстальніка і пароль ніжэй і паспрабуйце зноў.",
+    "config-invalid-schema": "Няслушная схема для MediaWiki «$1».\nВыкарыстоўвайце толькі ASCII-літары (a-z, A-Z), лічбы (0-9) і сымбалі падкрэсьліваньня (_).",
+    "config-db-sys-create-oracle": "Праграма ўсталяваньня падтрымлівае толькі выкарыстаньне рахунку SYSDBA для стварэньня новага рахунку.",
+    "config-db-sys-user-exists-oracle": "Рахунак карыстальніка «$1» ужо існуе. SYSDBA можа выкарыстоўвацца толькі для стварэньня новых рахункаў!",
+    "config-postgres-old": "Патрабуецца PostgreSQL $1 ці навейшая, усталяваная вэрсія $2.",
+    "config-sqlite-name-help": "Выберыце назву, якая будзе ідэнтыфікаваць Вашую вікі.\nНе выкарыстоўвайце прагалы ці злучкі.\nНазва будзе выкарыстоўвацца ў назьве файла зьвестак SQLite.",
+    "config-sqlite-parent-unwritable-group": "Немагчыма стварыць дырэкторыю зьвестак <code><nowiki>$1</nowiki></code>, таму што бацькоўская дырэкторыя <code><nowiki>$2</nowiki></code> абароненая ад запісаў вэб-сэрвэра.\n\nПраграма ўсталяваньня вызначыла карыстальніка, які запусьціў вэб-сэрвэр.\nДазвольце запісы ў дырэкторыю <code><nowiki>$3</nowiki></code> для працягу.\nУ сыстэме Unix/Linux зрабіце:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Немагчыма стварыць дырэкторыю зьвестак <code><nowiki>$1</nowiki></code>, таму што бацькоўская дырэкторыя <code><nowiki>$2</nowiki></code> абароненая ад запісаў вэб-сэрвэра.\n\nПраграма ўсталяваньня вызначыла карыстальніка, які запусьціў вэб-сэрвэр.\nДазвольце яму (і іншым) запісы ў дырэкторыю <code><nowiki>$3</nowiki></code> для працягу.\nУ сыстэме Unix/Linux зрабіце:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Памылка падчас стварэньня дырэкторыі «$1».\nПраверце шлях і паспрабуйце зноў.",
+    "config-sqlite-dir-unwritable": "Запіс у дырэкторыю «$1» немагчымы.\nЗьмяніце налады доступу, каб вэб-сэрвэр меў правы на запіс, і паспрабуйце зноў.",
+    "config-sqlite-connection-error": "$1.\n\nПраверце дырэкторыю для зьвестак, назву базы зьвестак і паспрабуйце зноў.",
+    "config-sqlite-readonly": "Файл <code>$1</code> недаступны для запісу.",
+    "config-sqlite-cant-create-db": "Немагчыма стварыць файл базы зьвестак <code>$1</code>.",
+    "config-sqlite-fts3-downgrade": "PHP бракуе падтрымкі FTS3 — табліцы пагаршаюцца",
+    "config-can-upgrade": "У гэтай базе зьвестак ёсьць табліцы MediaWiki.\nКаб абнавіць іх да MediaWiki $1, націсьніце '''Працягнуць'''.",
+    "config-upgrade-done": "Абнаўленьне завершанае.\n\nЦяпер Вы можаце [$1 пачаць выкарыстаньне вікі].\n\nКалі Вы жадаеце рэгенэраваць <code>LocalSettings.php</code>, націсьніце кнопку ніжэй.\nГэтае дзеяньне '''не рэкамэндуецца''', калі Вы ня маеце праблемаў у працы вікі.",
+    "config-upgrade-done-no-regenerate": "Абнаўленьне скончанае.\n\nЦяпер Вы можаце [$1 пачаць працу з вікі].",
+    "config-regenerate": "Рэгенэраваць LocalSettings.php →",
+    "config-show-table-status": "Запыт '<code>SHOW TABLE STATUS</code>' не атрымаўся!",
+    "config-unknown-collation": "'''Папярэджаньне:''' база зьвестак выкарыстоўвае нераспазнанае супастаўленьне.",
+    "config-db-web-account": "Рахунак базы зьвестак для вэб-доступу",
+    "config-db-web-help": "Выберыце імя карыстальніка і пароль, які выкарыстоўваецца вэб-сэрвэрам для злучэньня з сэрвэрам базы зьвестак, падчас звычайных апэрацыяў вікі.",
+    "config-db-web-account-same": "Выкарыстоўваць той жа рахунак, што для ўсталяваньня",
+    "config-db-web-create": "Стварыць рахунак, калі ён яшчэ не існуе",
+    "config-db-web-no-create-privs": "Рахунак, які Вы пазначылі для ўсталяваньня ня мае правоў для стварэньня рахунку.\nРахунак, які Вы пазначылі тут, мусіць ужо існаваць.",
+    "config-mysql-engine": "Рухавік сховішча:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''Папярэджаньне''': Вы выбралі MyISAM у якасьці рухавіка для захоўваньня зьвестак у MySQL, які не рэкамэндуецца да выкарыстаньня з MediaWiki па прычынах:\n* кепская падтрымка паралельнай апрацоўкі з-за таблічных блякаваньняў;\n* большая імавернасьць пашкоджаньня зьвестак у параўнаньні зь іншымі рухавікамі;\n* код MediaWiki не ва ўсіх выпадках улічвае асаблівасьці MyISAM.\n\nКалі Ваш MySQL-сэрвэр падтрымлівае InnoDB, вельмі рэкамэндуецца выкарыстаньне менавіта гэтага рухавіка.\nКалі MySQL-сэрвэр не падтрымлівае InnoDB, пэўна, настаў час абнавіць яго.",
+    "config-mysql-engine-help": "'''InnoDB''' — звычайна найбольш слушны варыянт, таму што добра падтрымлівае паралелізм.\n\n'''MyISAM''' можа быць хутчэйшай у вікі з адным удзельнікам, ці толькі для чытаньня.\nБазы зьвестак на MyISAM вядомыя тым, што ў іх зьвесткі шкодзяцца нашмат часьцей за InnoDB.",
+    "config-mysql-charset": "Кадаваньне базы зьвестак:",
+    "config-mysql-binary": "Двайковае",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "У '''двайковым рэжыме''', MediaWiki захоўвае тэкст у кадаваньні UTF-8 у базе зьвестак у двайковых палях.\nГэта болей эфэктыўна за рэжым MySQL UTF-8, і дазваляе Вам выкарыстоўваць увесь дыяпазон сымбаляў Unicode.\n\nУ '''рэжыме UTF-8''', MySQL ведае, якая табліцы сымбаляў выкарыстоўваецца ў Вашых зьвестках, і можа адпаведна прадстаўляць і канвэртаваць іх, але гэта не дазволіць Вам захоўваць сымбалі па-за межамі [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Базавага шматмоўнага дыяпазону].",
+    "config-site-name": "Назва вікі:",
+    "config-site-name-help": "Назва будзе паказвацца ў загалоўку браўзэра і ў некаторых іншых месцах.",
+    "config-site-name-blank": "Увядзіце назву сайта.",
+    "config-project-namespace": "Прастора назваў праекту:",
+    "config-ns-generic": "Праект",
+    "config-ns-site-name": "Такая ж, як і назва вікі: $1",
+    "config-ns-other": "Іншая (вызначце)",
+    "config-ns-other-default": "MyWiki",
+    "config-project-namespace-help": "Па прыкладу Вікіпэдыі, шматлікія вікі трымаюць уласныя старонкі з правіламі асобна ад старонак са зьместам, у «'''прасторы назваў праекту'''».\nУсе назвы старонак у гэтай прасторы назваў пачынаюцца з прыстаўкі, якую Вы можаце пазначыць тут.\nТрадыцыйна, гэтая прыстаўка вытворная ад назвы вікі, яле яна ня можа ўтрымліваць некаторыя сымбалі, такія як «#» ці «:».",
+    "config-ns-invalid": "Пададзеная няслушная прастора назваў «<nowiki>$1</nowiki>».\nПадайце іншую прастору назваў праекту.",
+    "config-ns-conflict": "Пазначаная прастора назваў «<nowiki>$1</nowiki>» канфліктуе з прасторай назваў MediaWiki па змоўчваньні.\nПазначце іншую прастору назваў праекту.",
+    "config-admin-box": "Рахунак адміністратара",
+    "config-admin-name": "Вашае імя:",
+    "config-admin-password": "Пароль:",
+    "config-admin-password-confirm": "Пароль яшчэ раз:",
+    "config-admin-help": "Увядзіце тут Вашае імя ўдзельніка, напрыклад «Янка Кавалевіч».\nГэтае імя будзе выкарыстоўвацца для ўваходу ў вікі.",
+    "config-admin-name-blank": "Увядзіце імя адміністратара.",
+    "config-admin-name-invalid": "Пададзенае няслушнае імя ўдзельніка «<nowiki>$1</nowiki>».\nПадайце іншае імя ўдзельніка.",
+    "config-admin-password-blank": "Увядзіце пароль рахунку адміністратара.",
+    "config-admin-password-same": "Пароль ня можа быць аднолькавым зь іменем удзельніка.",
+    "config-admin-password-mismatch": "Уведзеныя Вамі паролі не супадаюць.",
+    "config-admin-email": "Адрас электроннай пошты:",
+    "config-admin-email-help": "Увядзіце тут адрас электроннай пошты, каб атрымліваць электронныя лісты ад іншых удзельнікаў вікі, скідваць Ваш пароль і атрымліваць абвешчаньні пра зьмены старонак, якія знаходзяцца ў Вашым сьпісе назіраньня. Вы можаце пакінуць гэтае поле пустым.",
+    "config-admin-error-user": "Унутраная памылка падчас стварэньня рахунку адміністратара зь іменем «<nowiki>$1</nowiki>».",
+    "config-admin-error-password": "Унутраная памылка падчас устаноўкі паролю для адміністратара «<nowiki>$1</nowiki>»: <pre>$2</pre>",
+    "config-admin-error-bademail": "Вы ўвялі няслушны адрас электроннай пошты",
+    "config-subscribe": "Падпісацца на [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce сьпіс распаўсюджаньня навінаў пра зьяўленьне новых вэрсіяў].",
+    "config-subscribe-help": "Гэта ня вельмі актыўны сьпіс распаўсюджаньня навінаў пра зьяўленьне новых вэрсіяў, які ўключаючы важныя навіны пра бясьпеку.\nВам неабходна падпісацца на яго і абнавіць Вашае ўсталяваньне MediaWiki, калі зьявяцца новыя вэрсіі.",
+    "config-subscribe-noemail": "Вы спрабавалі падпісацца на рассылку паведамленьняў пра выхад новых вэрсіяў, не пазначыўшы адрас электроннай пошты.\nКалі ласка, падайце слушны адрас, калі Вы жадаеце падпісацца на рассылку.",
+    "config-almost-done": "Вы амаль што скончылі!\nАстатнія налады можна прапусьціць і пачаць усталяваньне вікі.",
+    "config-optional-continue": "Задаць болей пытаньняў.",
+    "config-optional-skip": "Хопіць, проста ўсталяваць вікі.",
+    "config-profile": "Профіль правоў удзельніка:",
+    "config-profile-wiki": "Адкрытая вікі",
+    "config-profile-no-anon": "Патрэбнае стварэньне рахунку",
+    "config-profile-fishbowl": "Толькі для аўтарызаваных рэдактараў",
+    "config-profile-private": "Прыватная вікі",
+    "config-profile-help": "Вікі працуюць лепей, калі Вы дазваляеце як мага большай колькасьці людзей рэдагаваць яе.\nУ MediaWiki вельмі лёгка праглядаць апошнія зьмены і выпраўляць любыя пашкоджаньні зробленыя недасьведчанымі ўдзельнікамі альбо вандаламі.\n\nТым ня менш, многія лічаць, што MediaWiki можа быць карыснай ў шматлікіх іншых ролях, і часта вельмі нялёгка растлумачыць усім перавагі выкарыстаньня тэхналёгіяў вікі.\nТаму Вы маеце выбар.\n\n'''{{int:config-profile-wiki}}''' дазваляе рэдагаваць усім, нават без уваходу ў сыстэму.\nВікі з '''{{int:config-profile-no-anon}}''' дазваляе дадатковую адказнасьць, але можа адштурхнуць некаторых патэнцыйных удзельнікаў.\n\nСцэнар '''{{int:config-profile-fishbowl}}''' дазваляе рэдагаваць зацьверджаным удзельнікам, але ўсе могуць праглядаць старонкі іх гісторыю.\n'''{{int:config-profile-private}}''' дазваляе праглядаць і рэдагаваць старонкі толькі зацьверджаным удзельнікам.\n\nБольш складаныя правы ўдзельнікаў даступныя пасьля ўсталяваньня, глядзіце [//www.mediawiki.org/wiki/Manual:User_rights адпаведную старонку дакумэнтацыі].",
+    "config-license": "Аўтарскія правы і ліцэнзія:",
+    "config-license-none": "Без інфармацыі пра ліцэнзію",
+    "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
+    "config-license-cc-by": "Creative Commons Attribution",
+    "config-license-cc-by-nc-sa": "Creative Commons Attribution Non-Commercial Share Alike",
+    "config-license-cc-0": "Creative Commons Zero (грамадзкі набытак)",
+    "config-license-gfdl": "GNU Free Documentation License 1.3 ці болей позьняя",
+    "config-license-pd": "Грамадзкі набытак",
+    "config-license-cc-choose": "Выберыце іншую ліцэнзію Creative Commons",
+    "config-license-help": "Шматлікія адкрытыя вікі публікуюць увесь унёсак у праект на ўмовах [http://freedomdefined.org/Definition вольнай ліцэнзіі].\nГэта дазваляе ствараць эфэкт супольнай уласнасьці і садзейнічае доўгатэрміноваму ўнёску.\nДля прыватных і карпаратыўных вікі гэта не зьяўляецца неабходнасьцю.\n\nКалі Вы жадаеце выкарыстоўваць тэкст зь Вікіпэдыі, і жадаеце, каб Вікіпэдыя магла прымаць тэксты, скапіяваныя з Вашай вікі, Вам неабходна выбраць ліцэнзію '''Creative Commons Attribution Share Alike'''.\n\nРаней Вікіпэдыя выкарыстоўвала ліцэнзію GNU Free Documentation.\nЯна ўсё яшчэ дзейнічае, але яна ўтрымлівае некаторыя моманты,\nякія ўскладняюць паўторнае выкарыстоўваньне і інтэрпрэтацыю матэрыялаў.",
+    "config-email-settings": "Налады электроннай пошты",
+    "config-enable-email": "Дазволіць выходзячыя электронныя лісты",
+    "config-enable-email-help": "Калі Вы жадаеце, каб працавала электронная пошта, неабходна сканфігураваць PHP [http://www.php.net/manual/en/mail.configuration.php адпаведным чынам].\nКалі Вы не жадаеце выкарыстоўваць магчымасьці электроннай пошты, Вы можаце яе адключыць.",
+    "config-email-user": "Дазволіць электронную пошту для сувязі паміж удзельнікамі",
+    "config-email-user-help": "Дазволіць усім удзельнікам дасылаць адзін аднаму электронныя лісты, калі ўключаная адпаведная магчымасьць ў іх наладах.",
+    "config-email-usertalk": "Уключыць абвяшчэньні пра паведамленьні на старонцы абмеркаваньня",
+    "config-email-usertalk-help": "Дазваляе ўдзельнікам атрымліваць абвяшчэньні пра зьмены на старонцы абмеркаваньня, калі гэтая магчымасьць уключаная ў іх наладах.",
+    "config-email-watchlist": "Уключыць абвяшчэньні пра зьмены ў сьпісе назіраньня",
+    "config-email-watchlist-help": "Дазваляе ўдзельнікам атрымліваць абвяшчэньні пра зьмены ў іх сьпісе назіраньня, калі гэтая магчымасьць уключаная ў іх наладах.",
+    "config-email-auth": "Уключыць аўтэнтыфікацыю праз электронную пошту",
+    "config-email-auth-help": "Калі гэтая магчымасьць уключаная, удзельнікі павінны пацьвердзіць іх адрас электроннай пошты праз спасылку, якая дасылаецца ім праз электронную пошту. Яна дасылаецца і падчас зьмены адрасу электроннай пошты.\nТолькі аўтэнтыфікаваныя адрасы электроннай пошты могуць атрымліваць электронныя лісты ад іншых удзельнікаў, ці зьмяняць абвяшчэньні дасылаемыя праз электронную пошту.\nУключэньне гэтай магчымасьці '''рэкамэндуецца'''  для адкрытых вікі, з-за магчымых злоўжываньняў магчымасьцямі электроннай пошты.",
+    "config-email-sender": "Адрас электроннай пошты для вяртаньня:",
+    "config-email-sender-help": "Увядзіце адрас электроннай пошты для вяртаньня ў якасьці адрасу дасылаемых электронных лістоў.\nСюды будуць дасылацца неатрыманыя электронныя лісты.\nШматлікія паштовыя сэрвэры патрабуюць, каб хаця б назва дамэну была слушнай.",
+    "config-upload-settings": "Загрузкі выяваў і файлаў",
+    "config-upload-enable": "Дазволіць загрузку файлаў",
+    "config-upload-help": "Дазвол загрузкі файлаў можа патэнцыйна пагражаць бясьпекі сэрвэра.\nДадатковую інфармацыю можна атрымаць ў [//www.mediawiki.org/wiki/Manual:Security разьдзеле бясьпекі].\n\nКаб дазволіць загрузку файлаў, зьмяніце рэжым падкаталёга <code>images</code> у карэннай дырэкторыі MediaWiki так, каб ўэб-сэрвэр меў доступ на запіс.\nПотым дазвольце гэтую магчымасьць.",
+    "config-upload-deleted": "Дырэкторыя для выдаленых файлаў:",
+    "config-upload-deleted-help": "Выберыце дырэкторыю, у якой будуць захоўвацца выдаленыя файлы.\nУ ідэальным выпадку, яна не павінна мець доступу з Інтэрнэту.",
+    "config-logo": "URL-адрас лягатыпу:",
+    "config-logo-help": "Афармленьне MediaWiki па змоўчваньні уключае прастору для лягатыпу памерам 135×160 піксэляў у верхнім левым куце.\nЗагрузіце выяву адпаведнага памеру і увядзіце тут URL-адрас.\n\nКалі Вы не жадаеце мець ніякага лягатыпу, пакіньце поле пустым.",
+    "config-instantcommons": "Дазволіць Instant Commons",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] — магчымасьць, якая дазваляе вікі выкарыстоўваць выявы, гукі і іншыя мэдыя, якія знаходзяцца на сайце [//commons.wikimedia.org/ Wikimedia Commons].\nКаб гэта зрабіць, MediaWiki патрабуе доступу да Інтэрнэту.\n\nКаб даведацца болей пра гэтую магчымасьць, уключаючы інструкцыю пра тое, як яе ўстанавіць ў любой вікі, акрамя Wikimedia Commons, глядзіце [//mediawiki.org/wiki/Manual:$wgForeignFileRepos дакумэнтацыю].",
+    "config-cc-error": "Выбар ліцэнзіі Creative Commons ня даў вынікаў.\nУвядзіце назву ліцэнзіі ўручную.",
+    "config-cc-again": "Выберыце яшчэ раз…",
+    "config-cc-not-chosen": "Выберыце, якую ліцэнзію Creative Commons Вы жадаеце выкарыстоўваць і націсьніце «працягваць».",
+    "config-advanced-settings": "Дадатковыя налады",
+    "config-cache-options": "Налады кэшаваньня аб’ектаў:",
+    "config-cache-help": "Кэшаваньне аб’ектаў павялічвае хуткасьць працы MediaWiki праз кэшаваньне зьвестак, якія часта выкарыстоўваюцца.\nВельмі рэкамэндуем уключыць гэта для сярэдніх і буйных сайтаў, таксама будзе карысна для дробных сайтаў.",
+    "config-cache-none": "Без кэшаваньня (ніякія магчымасьці не страчваюцца, але хуткасьць працы буйных сайтаў можа зьнізіцца)",
+    "config-cache-accel": "Кэшаваньне аб’ектаў PHP (APC, XCache ці WinCache)",
+    "config-cache-memcached": "Выкарыстоўваць Memcached (патрабуе дадатковай канфігурацыі)",
+    "config-memcached-servers": "Сэрвэры memcached:",
+    "config-memcached-help": "Сьпіс IP-адрасоў, якія будуць выкарыстоўвацца Memcached.\nАдрасы павінны быць у асобным радку з пазначэньнем порту, які будзе выкарыстоўвацца. Напрыклад:\n 127.0.0.1:11211\n 192.168.1.25:1234",
+    "config-memcache-needservers": "Вы выбралі Memcached у якасьці тыпу Вашага кэша, але не пазначылі ніякага сэрвэра",
+    "config-memcache-badip": "Вы ўвялі няслушны IP-адрас для Memcached: $1",
+    "config-memcache-noport": "Вы не пазначылі порт для выкарыстаньня сэрвэрам Memcached: $1.\nКалі Вы ня ведаеце порт, то па змоўчваньні выкарыстоўваецца 11211",
+    "config-memcache-badport": "Нумар порту Memcached павінен быць паміж $1 і $2",
+    "config-extensions": "Пашырэньні",
+    "config-extensions-help": "Пашырэньні пададзеныя вышэй, былі знойдзеныя ў Вашай дырэкторыі <code>./extensions</code>.\n\nЯны могуць патрабаваць дадатковых наладаў, але іх можна ўключыць зараз",
+    "config-install-alreadydone": "'''Папярэджаньне:''' здаецца, што Вы ўжо ўсталёўвалі MediaWiki і спрабуеце зрабіць гэтай зноў.\nКалі ласка, перайдзіце на наступную старонку.",
+    "config-install-begin": "Пасьля націску кнопкі «{{int:config-continue}}» пачнецца ўсталяваньне MediaWiki.\nКалі Вы жадаеце што-небудзь зьмяніць, націсьніце кнопку «Вярнуцца».",
+    "config-install-step-done": "зроблена",
+    "config-install-step-failed": "не атрымалася",
+    "config-install-extensions": "Уключаючы пашырэньні",
+    "config-install-database": "Налада базы зьвестак",
+    "config-install-schema": "Стварэньне схемы",
+    "config-install-pg-schema-not-exist": "Схема PostgreSQL не існуе",
+    "config-install-pg-schema-failed": "Немагчыма стварыць табліцу.\nУпэўніцеся, што карыстальнік «$1» можа пісаць у схему «$2».",
+    "config-install-pg-commit": "Захаваньне зьменаў",
+    "config-install-pg-plpgsql": "Праверка падтрымкі мовы PL/pgSQL",
+    "config-pg-no-plpgsql": "Вам неабходна ўсталяваць падтрымку мовы PL/pgSQL у базе зьвестак $1",
+    "config-pg-no-create-privs": "Рахунак, які Вы пазначылі для ўсталяваньня ня мае дастаткова правоў для стварэньня рахунку.",
+    "config-pg-not-in-role": "Пазначаны Вамі рахунак для ўэб-карыстальніка ўжо існуе.\nПазначаны Вамі рахунак для ўсталяваньня ня мае правоў і не зьяўляецца сябрам ролі ўэб-карыстальніка, таму немагчыма стварыць аб’екты, якія належаць ўэб-карыстальніку.\n\nЦяпер MediaWiki патрабуе, каб табліцы належалі да ўэб-карыстальніку. Калі ласка, пазначце іншы рахунак, ці націсьніце кнопку «Вярнуцца» і пазначце карыстальніка з неабходнымі для ўсталяваньня правамі.",
+    "config-install-user": "Стварэньне карыстальніка базы зьвестак",
+    "config-install-user-alreadyexists": "Удзельнік «$1» ужо існуе",
+    "config-install-user-create-failed": "Немагчыма стварыць ўдзельніка «$1»: $2",
+    "config-install-user-grant-failed": "Немагчыма даць правы удзельніку «$1»: $2",
+    "config-install-user-missing": "Пазначаны карыстальнік «$1» не існуе.",
+    "config-install-user-missing-create": "Пазначаны карыстальнік «$1» не існуе.\nКалі ласка, пазначце «стварыць рахунак», калі Вы жадаеце яго стварыць.",
+    "config-install-tables": "Стварэньне табліцаў",
+    "config-install-tables-exist": "'''Папярэджаньне''': Выглядае, што табліцы MediaWiki ужо існуюць.\nСтварэньне прапушчанае.",
+    "config-install-tables-failed": "'''Памылка''': немагчыма стварыць табліцы з-за наступнай памылкі: $1",
+    "config-install-interwiki": "Запаўненьне табліцы інтэрвікі па змоўчваньні",
+    "config-install-interwiki-list": "Немагчыма знайсьці файл <code>interwiki.list</code>.",
+    "config-install-interwiki-exists": "'''Папярэджаньне''': выглядае, што табліца інтэрвікі ўжо запоўненая.\nСьпіс па змоўчваньні прапушчаны.",
+    "config-install-stats": "Ініцыялізацыі статыстыкі",
+    "config-install-keys": "Стварэньне сакрэтных ключоў",
+    "config-insecure-keys": "'''Папярэджаньне:''' {{PLURAL:$2|Ключ бясьпекі $1 створаны|Ключы бясьпекі $1 створаныя}} падчас усталяваньня, не зьяўляюцца поўнасьцю бясьпечнымі. Рэкамэндуецца зьмяніць {{PLURAL:$2|яго ўручную|іх уручную}}.",
+    "config-install-sysop": "Стварэньне рахунку адміністратара",
+    "config-install-subscribe-fail": "Немагчыма падпісацца на «mediawiki-announce»: $1",
+    "config-install-subscribe-notpossible": "cURL не ўсталяваны, allow_url_fopen недаступны.",
+    "config-install-mainpage": "Стварэньне галоўнай старонкі са зьместам па змоўчваньні",
+    "config-install-extension-tables": "Стварэньне табліцаў для ўключаных пашырэньняў",
+    "config-install-mainpage-failed": "Немагчыма ўставіць галоўную старонку: $1",
+    "config-install-done": "'''Віншуем!'''\nВы пасьпяхова ўсталявалі MediaWiki.\n\nПраграма ўсталяваньня стварыла файл <code>LocalSettings.php</code>.\nЁн утрымлівае ўсе Вашыя налады.\n\nВам неабходна загрузіць яго і захаваць у карэнную дырэкторыю Вашай вікі (у тую ж самую дырэкторыю, дзе знаходзіцца index.php). Загрузка павінна пачацца аўтаматычна.\n\nКалі загрузка не пачалася, ці Вы яе адмянілі, Вы можаце перазапусьціць яе націснуўшы на спасылку ніжэй:\n\n$3\n\n'''Заўвага''': калі Вы гэтага ня зробіце зараз, то створаны файл ня будзе даступны Вам потым, калі Вы выйдзеце з праграмы ўсталяваньня  без яго загрузкі.\n\nКалі Вы гэта зробіце, Вы можаце '''[$2 ўвайсьці ў Вашую вікі]'''.",
+    "config-download-localsettings": "Загрузіць <code>LocalSettings.php</code>",
+    "config-help": "дапамога",
+    "config-nofile": "Файл «$1» ня знойдзены. Ці быў ён выдалены?",
+    "mainpagetext": "'''MediaWiki пасьпяхова ўсталяваная.'''",
+    "mainpagedocfooter": "Глядзіце [//meta.wikimedia.org/wiki/Help:Contents дапаможнік карыстальніка] для атрыманьня інфармацыі па карыстаньні вікі-праграмамі.\n\n== З чаго пачаць ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Сьпіс парамэтраў канфігурацыі]\n* [//www.mediawiki.org/wiki/Manual:FAQ Частыя пытаньні MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Рассылка паведамленьняў пра зьяўленьне новых вэрсіяў MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/be.json b/includes/installer/i18n/be.json
new file mode 100644 (file)
index 0000000..99222c6
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki паспяхова ўсталяваная.'''",
+    "mainpagedocfooter": "Гл. [//meta.wikimedia.org/wiki/Help:Contents Дапаможнік карыстальніка (англ.)] па далейшыя звесткі аб карыстанні вікі-праграмамі.\n\n== З чаго пачаць ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Пералік параметраў канфігурацыі (англ.)]\n* [//www.mediawiki.org/wiki/Manual:FAQ ЧАПЫ MediaWiki (англ.)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Ліставанне аб выпусках MediaWiki (англ.)]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/bg.json b/includes/installer/i18n/bg.json
new file mode 100644 (file)
index 0000000..601a2f4
--- /dev/null
@@ -0,0 +1,291 @@
+{
+    "@metadata": {
+        "authors": [
+            "DCLXVI",
+            "아라"
+        ]
+    },
+    "config-desc": "Инсталатор на МедияУики",
+    "config-title": "Инсталиране на МедияУики $1",
+    "config-information": "Информация",
+    "config-localsettings-upgrade": "Беше открит файл <code>LocalSettings.php</code>.\nЗа надграждане на съществуващата инсталация, необходимо е в кутията по-долу да се въведе стойността на <code>$wgUpgradeKey</code>.\nТази информация е налична в <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Беше открит файл <code>LocalSettings.php</code>.\nЗа надграждане на наличната инсталация, необходимо е да се стартира <code>update.php</code>",
+    "config-localsettings-key": "Ключ за надграждане:",
+    "config-localsettings-badkey": "Предоставеният ключ е неправилен.",
+    "config-upgrade-key-missing": "Беше открита съществуваща инсталация на МедияУики.\nЗа надграждане на съществуващата инсталация, необходимо е да се постави следният ред в края на файла <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "Съществуващият файл <code>LocalSettings.php</code> изглежда непълен.\nПроменливата $1 не е зададена.\nНеобходимо е да се редактира файлът <code>LocalSettings.php</code> и да се зададе променливата, след което да се натисне „{{int:Config-continue}}“.",
+    "config-localsettings-connection-error": "Възникна грешка при свързване с базата от данни чрез данните, посочени в <code>LocalSettings.php</code> или <code>AdminSettings.php</code>. Необходимо е да се коригират тези настройки преди повторен опит за свързване.\n\n$1",
+    "config-session-error": "Грешка при създаване на сесия: $1",
+    "config-session-expired": "Срокът на валидност на данните от сесията са изтекли.\nПродължителността на сесиите е настроена на $1.\nТова може да бъде увеличено чрез настройване на <code>session.gc_maxlifetime</code> в php.ini.\nНеобходимо е рестартиране на инсталационния процес.",
+    "config-no-session": "Данните за сесията бяха загубени!\nПроверете вашия php.ini и се уверете, че на <code>session.save_path</code> е настроена подходящата директория.",
+    "config-your-language": "Вашият език:",
+    "config-your-language-help": "Избиране на език за използване по време на инсталацията.",
+    "config-wiki-language": "Език на уикито:",
+    "config-wiki-language-help": "Избиране на език, на който ще е основното съдържание на уикито.",
+    "config-back": "← Връщане",
+    "config-continue": "Продължаване →",
+    "config-page-language": "Език",
+    "config-page-welcome": "Добре дошли в МедияУики!",
+    "config-page-dbconnect": "Свързване с базата от данни",
+    "config-page-upgrade": "Надграждане на съществуваща инсталация",
+    "config-page-dbsettings": "Настройки на базата от данни",
+    "config-page-name": "Име",
+    "config-page-options": "Настройки",
+    "config-page-install": "Инсталиране",
+    "config-page-complete": "Готово!",
+    "config-page-restart": "Рестартиране на инсталацията",
+    "config-page-readme": "Информация за софтуера",
+    "config-page-releasenotes": "Бележки за версията",
+    "config-page-copying": "Лицензно споразумение",
+    "config-page-upgradedoc": "Надграждане",
+    "config-page-existingwiki": "Съществуващо уики",
+    "config-help-restart": "Необходимо е потвърждение за изтриване на всички въведени и съхранени данни и започване отначало на процеса по инсталация.",
+    "config-restart": "Да, започване отначало",
+    "config-welcome": "=== Проверка на средата ===\nИзвършени бяха основни проверки, за да се провери дали средата е подходяща за инсталиране на МедияУики.\nАко е необходима помощ по време на инсталацията, резултатите от направените проверки трябва също да бъдат предоставени.",
+    "config-copyright": "=== Авторски права и Условия ===\n\n$1\n\nТази програма е свободен софтуер, който може да се променя и/или разпространява според Общия публичен лиценз на GNU, както е публикуван от Free Software Foundation във версия на Лиценза 2 или по-късна версия.\n\nТази програма се разпространява с надеждата, че ще е полезна, но '''без каквито и да е гаранции'''; без дори косвена гаранция за '''продаваемост''' или '''прогодност за конкретна употреба'''.\nЗа повече подробности се препоръчва преглеждането на Общия публичен лиценз на GNU.\n\nКъм програмата трябва да е приложено <doclink href=Copying>копие на Общия публичен лиценз на GNU</doclink>; ако не, можете да пишете на Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. или да [http://www.gnu.org/copyleft/gpl.html го прочетете онлайн].",
+    "config-sidebar": "* [//www.mediawiki.org Сайт на МедияУики]\n* [//www.mediawiki.org/wiki/Help:Contents Наръчник на потребителя]\n* [//www.mediawiki.org/wiki/Manual:Contents Наръчник на администратора]\n* [//www.mediawiki.org/wiki/Manual:FAQ ЧЗВ]\n----\n* <doclink href=Readme>Документация</doclink>\n* <doclink href=ReleaseNotes>Бележки за версията</doclink>\n* <doclink href=Copying>Авторски права</doclink>\n* <doclink href=UpgradeDoc>Обновяване</doclink>",
+    "config-env-good": "Средата беше проверена.\nИнсталирането на МедияУики е възможно.",
+    "config-env-bad": "Средата беше проверена.\nНе е възможна инсталация на МедияУики.",
+    "config-env-php": "Инсталирана е версия на PHP $1.",
+    "config-env-php-toolow": "Инсталирана е версия на PHP $1.\nМедияУики изисква версия PHP $2 или по-нова.",
+    "config-unicode-using-utf8": "Използване на utf8_normalize.so от Brion Vibber за нормализация на Уникод.",
+    "config-unicode-using-intl": "Използване на разширението [http://pecl.php.net/intl intl PECL] за нормализация на Уникод.",
+    "config-unicode-pure-php-warning": "'''Предупреждение''': [http://pecl.php.net/intl Разширението intl PECL] не е налично за справяне с нормализацията на Уникод, превключване към по-бавното изпълнение на чист PHP.\nАко сайтът е с голям трафик, препоръчително е запознаването с [//www.mediawiki.org/wiki/Unicode_normalization_considerations нормализацията на Уникод].",
+    "config-unicode-update-warning": "'''Предупреждение''': Инсталираната версия на Обвивката за нормализация на Unicode използва по-старата версия на библиотеката на [http://site.icu-project.org/ проекта ICU].\nНеобходимо е да [//www.mediawiki.org/wiki/Unicode_normalization_considerations инсталирате по-нова верия], в случай че сте загрижени за използването на Unicode.",
+    "config-no-db": "Не може да бъде открит подходящ драйвер за база от данни! Необходимо е да се инсталира драйвер за база от данни за PHP.\nПоддържат се следните типове базни от данни: $1.\n\nАко използвате споделен хостинг, помолете доставчика на услугата да инсталира подходящ драйвер за база от данни.\nАко сами сте компилирали PHP, преконфигурирайте го с включен клиент за база от данни, например чрез използване на <code>./configure --with-mysql</code>.\nАко сте инсталирали PHP от пакет за Debian или Убунту, необходимо е, също така, да инсталирате и модула php5-mysql.",
+    "config-no-fts3": "'''Предупреждение''': SQLite е компилирана без [//sqlite.org/fts3.html модула FTS3], затова възможностите за търсене няма да са достъпни.",
+    "config-register-globals": "'''Предупреждение: Настройката на PHP <code>[http://php.net/register_globals register_globals]</code> е включена.'''\n'''При възможност е препоръчително тя да бъде изключена.'''\nМедияУики ще работи, но сървърът е изложен на евентуални пропуски в сигурността.",
+    "config-magic-quotes-runtime": "'''Фатално: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] е активирана!'''\nТова може да повреди непредвидимо въвеждането на данните.\nИнсталацията на МедияУики е невъзможна докато тази настройка не бъде изключена.",
+    "config-magic-quotes-sybase": "'''Фатално: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] е активирана!'''\nТова може да повреди непредвидимо въвеждането на данните.\nИнсталацията на МедияУики е невъзможна докато тази настройка не бъде изключена.",
+    "config-mbstring": "'''Фатално: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] е активирана!'''\nТова може да повреди непредвидимо въвеждането на данните.\nИнсталацията на МедияУики е невъзможна докато тази настройка не бъде изключена.",
+    "config-ze1": "'''Фатално: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] е активирана!'''\nТази настройка причинява ужасни грешки в МедияУики.\nНевъзможно е инсталирането и използването на МедияУики докато тази настройка не бъде изключена.",
+    "config-safe-mode": "'''Предупреждение:''' PHP работи в [http://www.php.net/features.safe-mode безопасен режим].\nТова може да създаде проблеми, особено ако качването на файлове е разрешено, както и при поддръжката на <code>math</code>.",
+    "config-xml-bad": "Липсва XML модулът на PHP.\nМедияУики се нуждае от някои функции от този модул и няма да работи при наличната конфигурация.\nПри Mandrake, необходимо е да се инсталира пакетът php-xml.",
+    "config-pcre": "Липсва модулът PCRE.\nЗа да работи, МедияУики изисква съвместими с Perl функии за регилярни изрази.",
+    "config-pcre-no-utf8": "'''Фатално''': Модулът PCRE на PHP изглежда е компилиран без поддръжка на PCRE_UTF8.\nЗа да функционира правилно, МедияУики изисква поддръжка на UTF-8.",
+    "config-memory-raised": "<code>memory_limit</code> на PHP е $1, увеличаване до $2.",
+    "config-memory-bad": "'''Предупреждение:''' <code>memory_limit</code> на PHP е $1.\nСтойността вероятно е твърде ниска.\nВъзможно е инсталацията да се провали!",
+    "config-ctype": "'''Фатално''': Необходимо е PHP да бъде компилиран с поддръжка на [http://www.php.net/manual/en/ctype.installation.php разширението Ctype].",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] е инсталиран",
+    "config-apc": "[http://www.php.net/apc APC] е инсталиран",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] е инсталиран",
+    "config-no-cache": "'''Предупреждение:''' Не бяха открити [http://www.php.net/apc APC] [http://xcache.lighttpd.net/ XCache] или [http://www.iis.net/download/WinCacheForPhp WinCache].\nОбектното кеширане не е включено.",
+    "config-diff3-bad": "GNU diff3 не беше намерен.",
+    "config-imagemagick": "Открит е ImageMagick: <code>$1</code>.\nПреоразмеряването на картинки ще бъде включено ако качването на файлове бъде разрешено.",
+    "config-gd": "Открита е вградена графичната библиотека GD.\nАко качването на файлове бъде включено, ще бъде включена възможността за преоразмеряване на картинки.",
+    "config-no-scaling": "Не са открити библиотеките GD или ImageMagick.\nПреоразмеряването на картинки ще бъде изключено.",
+    "config-no-uri": "'''Грешка:''' Не може да се определи текущия адрес.\nИнсталация беше прекратена.",
+    "config-using-server": "Използване на сървърното име \"<nowiki>$1</nowiki>\".",
+    "config-using-uri": "Използване на сървърния адрес (URL) \"<nowiki>$1$2</nowiki>\".",
+    "config-uploads-not-safe": "'''Предупреждение:''' Папката по подразбиране за качване <code>$1</code> е уязвима от изпълнение на зловредни скриптове.\nВъпреки че МедияУики извършва проверка за заплахи в сигурността на всички качени файлове, силно препоръчително е да се [//www.mediawiki.org/wiki/Manual:Security#Upload_security затвори тази уязвимост в сигурността] преди разрешаване за качване на файлове.",
+    "config-brokenlibxml": "Вашата система използа комбинация от версии на PHP и libxml2, които са с много грешки и могат да причинят скрити повреди на данните в МедияУики или други уеб приложения.\nНеобходимо е обновяване до PHP 5.2.9 или по-нова версия и libxml2 2.7.3 или по-нова версия ([//bugs.php.net/bug.php?id=45996 докладвана грешка при PHP]).\nИнсталацията беше прекратена.",
+    "config-using531": "МедияУики не може да се използва с PHP $1 заради проблем с референтните параметри за <code>__call()</code>.\nЗа разрешаване на този проблем е необходимо да се обнови до PHP 5.3.2 или по-нова версия или да се инсталира по-стара версия, напр. PHP 5.3.0.\nИнсталацията беше прекратена.",
+    "config-suhosin-max-value-length": "Suhosin е инсталиран и ограничава дължината на параметъра GET на $1 байта. Компонентът на МедияУики ResourceLoader ще може да пренебрегне частично това ограничение, но това ще намали производителността. По възможност е препоръчително да се настрои <code>suhosin.get.max_value_length</code> на 1024 или по-голяма стойност в <code>php.ini</code> и в LocalSettings.php да се настрои <code>$wgResourceLoaderMaxQueryLength</code> със същата стойност.",
+    "config-db-type": "Тип на базата от данни:",
+    "config-db-host": "Хост на базата от данни:",
+    "config-db-host-help": "Ако базата от данни е на друг сървър, в кутията се въвежда името на хоста или IP адреса.\n\nАко се използва споделен уеб хостинг, доставчикът на услугата би трябвало да е предоставил в документацията си коректния хост.\n\nАко инсталацията протича на Windows-сървър и се използва MySQL, използването на \"localhost\" може да е неприемливо. В такива случаи се използва \"127.0.0.1\" за локален IP адрес.\n\nПри използване на PostgreSQL, това поле се оставя празно, за свързване чрез Unix socket.",
+    "config-db-host-oracle": "TNS на базата данни:",
+    "config-db-wiki-settings": "Идентифициране на това уики",
+    "config-db-name": "Име на базата от данни:",
+    "config-db-name-help": "Избира се име, което да идентифицира уикито.\nТо не трябва да съдържа интервали.\n\nАко се използва споделен хостинг, доставчикът на услугата би трябвало да е предоставил или име на базата от данни, която да бъде използвана, или да позволява създаването на бази от данни чрез контролния панел.",
+    "config-db-name-oracle": "Схема на базата от данни:",
+    "config-db-install-account": "Потребителска сметка за инсталацията",
+    "config-db-username": "Потребителско име за базата от данни:",
+    "config-db-password": "Парола за базата от данни:",
+    "config-db-password-empty": "Въведете парола за новия потребител на базата от данни: $1.\nВъпреки че е допустимо да се създават потребители без пароли, това е незащитено действие.",
+    "config-db-install-username": "Въвежда се потребителско име, което ще се използва за свързване с базата от данни по време на процеса по инсталация.\nТова не е потребителско име за сметка в МедияУики; това е потребителско име за базата от данни.",
+    "config-db-install-password": "Въвежда се парола, която ще бъде използвана за свързване с базата от данни по време на инсталационния процес.\nТова не е парола за сметка в МедияУики; това е парола за базата от данни.",
+    "config-db-install-help": "Въвеждат се потребителско име и парола, които ще бъдат използвани за свързване с базата от данни по време на инсталационния процес.",
+    "config-db-account-lock": "Използване на същото потребителско име и парола по време на нормална работа",
+    "config-db-wiki-account": "Потребителска сметка за нормална работа",
+    "config-db-wiki-help": "Въвежда се потребителско име и парола, които ще се използват при нормалното функциониране на уикито.\nАко сметката не съществува и използваната при инсталацията сметка има необходимите права, тази потребителска сметка ще бъде създадена с минималните необходими права за работа с уикито.",
+    "config-db-prefix": "Представка за таблиците в базата от данни:",
+    "config-db-prefix-help": "Ако е необходимо да се сподели базата от данни между няколко уикита или между МедияУики и друго уеб приложение, може да се добави представка пред имената на таблиците, за да се избегнат конфликти.\nНе се използват интервали.\n\nТова поле обикновено се оставя празно.",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 бинарно",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 с обратна съвестимост с UTF-8",
+    "config-mysql-old": "Изисква се MySQL $1 или по-нова версия, наличната версия е $2.",
+    "config-db-port": "Порт на базата от данни:",
+    "config-db-schema": "Схема за МедияУики",
+    "config-db-schema-help": "Схемата по-горе обикновено е коректна.\nПромени се извършват ако наистина е необходимо.",
+    "config-pg-test-error": "Невъзможно свързване с базата данни '''$1''': $2",
+    "config-sqlite-dir": "Директория за данни на SQLite:",
+    "config-sqlite-dir-help": "SQLite съхранява всички данни в един файл.\n\nПо време на инсталацията уеб сървърът трябва да има права за писане в посочената директория.\n\nТя '''не трябва''' да е достъпна през уеб, затова не е там, където са PHP файловете.\n\nИнсталаторът ще съхрани заедно с нея файл <code>.htaccess</code>, но ако този метод пропадне, някой може да придобие даостъп до суровите данни от базата от данни.\nТова включва сурови данни за потребителите (адреси за е-поща, хеширани пароли), както и изтрити версии на страници и друга чувствителна и с ограничен достъп информация от и за уикито.\n\nБазата от данни е препоръчително да се разположи на друго място, например в <code>/var/lib/mediawiki/yourwiki</code>.",
+    "config-support-info": "МедияУики поддържа следните системи за бази от данни:\n\n$1\n\nАко не виждате желаната за използване система в списъка по-долу, следвайте инструкциите за активиране на поддръжка по-горе.",
+    "config-support-mysql": "* $1 е най-добре поддържаната система за база от данни, с най-добра поддръжка от МедияУики ([http://www.php.net/manual/en/mysql.installation.php Как се компилира PHP с поддръжка на MySQL])",
+    "config-support-postgres": "* $1 е популярна система за бази от данни с отворен изходен код, която е алтернатива на MySQL ([http://www.php.net/manual/en/pgsql.installation.php как се компилира PHP с поддръжка на PostgreSQL]). Възможно е все още да има грешки, затова не се препоръчва да се използва в общодостъпна среда.",
+    "config-support-sqlite": "* $1 е лека система за база от данни, която е много добре поддържана. ([http://www.php.net/manual/en/pdo.installation.php Как се компилира PHP с поддръжка на SQLite], използва PDO)",
+    "config-support-oracle": "* $1 е комерсиална корпоративна база от данни. ([http://www.php.net/manual/en/oci8.installation.php Как се компилира PHP с поддръжка на OCI8])",
+    "config-header-mysql": "Настройки за MySQL",
+    "config-header-postgres": "Настройки за PostgreSQL",
+    "config-header-sqlite": "Настройки за SQLite",
+    "config-header-oracle": "Настройки за Oracle",
+    "config-invalid-db-type": "Невалиден тип база от данни",
+    "config-missing-db-name": "Необходимо е да се въведе стойност за \"Име на базата от данни\"",
+    "config-missing-db-host": "Необходимо е да се въведе стойност за \"Хост на базата от данни\"",
+    "config-missing-db-server-oracle": "Необходимо е да се въведе стойност за \"Database TNS\"",
+    "config-invalid-db-server-oracle": "Невалиден TNS на базата от данни \"$1\".\nДопустими са само ASCII букви (a-z, A-Z), цифри (0-9), символите за долна черта (_) и точка (.).",
+    "config-invalid-db-name": "Невалидно име на базата от данни \"$1\".\nИзползват се само ASCII букви (a-z, A-Z), цифри (0-9), долни черти (_) и тирета (-).",
+    "config-invalid-db-prefix": "Невалидна представка за базата от данни \"$1\".\nПозволени са само ASCII букви (a-z, A-Z), цифри (0-9), долни черти (_) и тирета (-).",
+    "config-connection-error": "$1.\n\nНеобходимо е да се проверят хостът, потребителското име и паролата, след което да се опита отново.",
+    "config-invalid-schema": "Невалидна схема за МедияУики \"$1\".\nДопустими са само ASCII букви (a-z, A-Z), цифри (0-9) и долни черти (_).",
+    "config-db-sys-create-oracle": "Инсталаторът поддържа само сметка SYSDBA за създаване на нова сметка.",
+    "config-db-sys-user-exists-oracle": "Потребителската сметка \"$1\" вече съществува. SYSDBA може да се използва само за създаване на нова сметка!",
+    "config-postgres-old": "Изисква се PostgreSQL $1 или по-нова версия, наличната версия е $2.",
+    "config-sqlite-name-help": "Избира се име, което да идентифицира уикито.\nНе се използват интервали или тирета.\nТова име ще се използва за име на файла за данни на SQLite.",
+    "config-sqlite-parent-unwritable-group": "Дикректорията за данни <code><nowiki>$1</nowiki></code> не може да бъде създадена, тъй като уеб сървърът няма права за писане в родителската директория <code><nowiki>$2</nowiki></code>.\n\nИнсталаторът разпознава потребителското име, с което работи уеб сървърът.\nУверете се, че той притежава права за писане в директорията <code><nowiki>$3</nowiki></code> преди да продължите.\nВ Unix/Линукс системи можете да използвате:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Дикректорията за данни <code><nowiki>$1</nowiki></code> не може да бъде създадена, тъй като уеб сървърът няма права за писане в родителската директория <code><nowiki>$2</nowiki></code>.\n\nИнсталаторът не може да определи потребителското име, с което работи уеб сървърът.\nУверете се, че в директория <code><nowiki>$3</nowiki></code> може да бъде писано от уебсървъра (или от други потребители!) преди да продължите.\nНа Unix/Линукс системи можете да използвате:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Грешка при създаване на директорията за данни \"$1\".\nПроверете местоположението ѝ и опитайте отново.",
+    "config-sqlite-dir-unwritable": "Уебсървърът няма права за писане в директория \"$1\".\nПроменете правата му така, че да може да пише в нея, и опитайте отново.",
+    "config-sqlite-connection-error": "$1.\n\nПроверете директорията за данни и името на базата от данни по-долу и опитайте отново.",
+    "config-sqlite-readonly": "Файлът <code>$1</code> няма права за писане.",
+    "config-sqlite-cant-create-db": "Файлът за базата от данни <code>$1</code> не може да бъде създаден.",
+    "config-sqlite-fts3-downgrade": "Липсва поддръжката на FTS3 за PHP, извършен беше downgradе на таблиците",
+    "config-can-upgrade": "В базата от данни има таблици за МедияУики.\nЗа надграждането им за MediaWiki $1, натиска се '''Продължаване'''.",
+    "config-upgrade-done": "Обновяването приключи.\n\nВече е възможно [$1 да използвате уикито].\n\nАко е необходимо, възможно е файлът <code>LocalSettings.php</code> да бъде създаден отново чрез натискане на бутона по-долу.\nТова '''не е препоръчително действие''', освен ако не срещате затруднения с уикито.",
+    "config-upgrade-done-no-regenerate": "Обновяването приключи.\n\nВече е възможно [$1 да използвате уикито].",
+    "config-regenerate": "Създаване на LocalSettings.php →",
+    "config-show-table-status": "Заявката <code>SHOW TABLE STATUS</code> не сполучи!",
+    "config-unknown-collation": "'''Предупреждение:''' Базата от данни използва неразпозната колация.",
+    "config-db-web-account": "Сметка за уеб достъп до базата от данни",
+    "config-db-web-help": "Избиране на потребителско име и парола, които уеб сървърът ще използва да се свързва с базата от данни при обичайната работа на уикито.",
+    "config-db-web-account-same": "Използване на същата сметка като при инсталацията.",
+    "config-db-web-create": "Създаване на сметката ако все още не съществува",
+    "config-db-web-no-create-privs": "Посочената сметка за инсталацията не разполага с достатъчно права за създаване на нова сметка.\nНеобходимо е посочената сметка вече да съществува.",
+    "config-mysql-engine": "Хранилище на данни:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''Предупреждение''': Избрана е MyISAM като система за складиране в MySQL, която не се препоръчва за използване с МедияУики, защото:\n* почти не поддържа паралелност заради заключване на таблиците\n* е по-податлива на повреди в сравнение с други системи\n* кодът на МедияУики не винаги поддържа MyISAM коректно\n\nАко инсталацията на MySQL поддържа InnoDB, силно е препоръчително да се използва тя.\nАко инсталацията на MySQL не поддържа InnoDB, вероятно е време за обновяване.",
+    "config-mysql-engine-help": "'''InnoDB''' почти винаги е най-добрата възможност заради навременната си поддръжка.\n\n'''MyISAM''' може да е по-бърза при инсталации с един потребител или само за четене.\nБазите от данни MyISAM се повреждат по-често от InnoDB.",
+    "config-mysql-charset": "Набор от символи в базата от данни:",
+    "config-mysql-binary": "Бинарен",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "В '''бинарен режим''' МедияУики съхранява текстовете в UTF-8 в бинарни полета в базата от данни.\nТова е по-ефективно от UTF-8 режима на MySQL и позволява използването на пълния набор от символи в Уникод.\n\nВ '''UTF-8 режим''' MySQL ще знае в кой набор от символи са данните от уикито и ще може да ги показва и променя по подходящ начин, но няма да позволява складиране на символи извън [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Основния многоезичен набор].",
+    "config-site-name": "Име на уикито:",
+    "config-site-name-help": "Това име ще се показва в заглавната лента на браузъра и на различни други места.",
+    "config-site-name-blank": "Необходимо е да се въведе име на уикито.",
+    "config-project-namespace": "Именно пространство на проекта:",
+    "config-ns-generic": "Проект",
+    "config-ns-site-name": "Същото като името на уикито: $1",
+    "config-ns-other": "Друго (уточняване)",
+    "config-ns-other-default": "МоетоУики",
+    "config-project-namespace-help": "Следвайки примера на Уикипедия, много уикита съхраняват страниците си с правила в \"'''именно пространство на проекта'''\", отделно от основното съдържание.\nВсички заглавия на страниците в това именно пространство започват с определена представка, която може да бъде зададена тук.\nОбикновено представката произлиза от името на уикито, но не може да съдържа символи като \"#\" или \":\".",
+    "config-ns-invalid": "Посоченото именно пространство \"<nowiki>$1</nowiki>\" е невалидно.\nНеобходимо е да бъде посочено друго.",
+    "config-ns-conflict": "Посоченото именно пространство \"<nowiki>$1</nowiki>\" е в конфликт с използваното по подразбиране именно пространство MediaWiki.\nНеобходимо е да се посочи друго именно пространство.",
+    "config-admin-box": "Администраторска сметка",
+    "config-admin-name": "Потребителско име:",
+    "config-admin-password": "Парола:",
+    "config-admin-password-confirm": "Парола (повторно):",
+    "config-admin-help": "Въвежда се предпочитаното потребителско име, например \"Иванчо Иванчев\".\nТова ще е потребителското име, което администраторът ще използва за влизане в уикито.",
+    "config-admin-name-blank": "Необходимо е да бъде въведено потребителско име на администратора.",
+    "config-admin-name-invalid": "Посоченото потребителско име \"<nowiki>$1</nowiki>\" е невалидно.\nНеобходимо е да се посочи друго.",
+    "config-admin-password-blank": "Неовходимо е да се въведе парола за администраторската сметка.",
+    "config-admin-password-same": "Паролата не трябва да е същата като потребителското име.",
+    "config-admin-password-mismatch": "Двете въведени пароли не съвпадат.",
+    "config-admin-email": "Адрес за електронна поща:",
+    "config-admin-email-help": "Въвеждането на адрес за е-поща позволява получаване на е-писма от другите потребители на уикито, възстановяване на изгубена или забравена парола, оповестяване при промени в страниците от списъка за наблюдение. Това поле може да бъде оставено празно.",
+    "config-admin-error-user": "Възникна вътрешна грешка при създаване на администратор с името \"<nowiki>$1</nowiki>\".",
+    "config-admin-error-password": "Възникна вътрешна грешка при задаване на парола за администратора \"<nowiki>$1</nowiki>\": <pre>$2</pre>",
+    "config-admin-error-bademail": "Въведен е невалиден адрес за електронна поща",
+    "config-subscribe": "Абониране за [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce пощенския списък за нови версии].",
+    "config-subscribe-help": "Това е пощенски списък с малко трафик, който се използва за съобщения при излизане на нови версии, както и за важни проблеми със сигурността.\nАбонирането е препоръчително, както и надграждането на инсталацията на МедияУики при излизането на нова версия.",
+    "config-subscribe-noemail": "Опитахте да се абонирате за пощенския списък за нови версии без да посочите адрес за електронна поща.\nНеобходимо е да се предостави адрес за електронна поща, в случай че желаете да се абонирате за пощенския списък.",
+    "config-almost-done": "Инсталацията е почти готова!\nВъзможно е пропускане на оставащата конфигурация и моментално инсталиране на уикито.",
+    "config-optional-continue": "Задаване на допълнителни въпроси.",
+    "config-optional-skip": "Достатъчно, инсталиране на уикито.",
+    "config-profile": "Профил на потребителските права:",
+    "config-profile-wiki": "Отворено уики",
+    "config-profile-no-anon": "Необходимо е създаване на сметка",
+    "config-profile-fishbowl": "Само одобрени редактори",
+    "config-profile-private": "Затворено уики",
+    "config-profile-help": "Уикитата функционират най-добре, когато позволяват на възможно най-много хора да ги редактират.\nВ МедияУики лесно се преглеждат последните промени и се възстановяват пораженип от недобронамерени потребители.\n\nВъпреки това мнозина смятат МедияУики за полезен софтуер по различни начини и често е трудно да се убедят всички от предимствата на уики модела.\nЗатова се предоставя възможност за избор.\n\nУикитата от типа '''{{int:config-profile-wiki}}''' позволяват на всички потребители да редактират, дори и без регистрация.\nУикитата от типа '''{{int:config-profile-no-anon}}''' позволяват достъп до страниците и редактирането им само след създаване на потребителска сметка.\n\nУики, което е '''{{int:config-profile-fishbowl}}''' позволява на всички да преглеждат страниците, но само предварително одобрени редактори могат да редактират съдържанието.\nВ '''{{int:config-profile-private}}''' само предварително одобрени потребители могат да четат и редактират съдържанието.\n\nДетайлно обяснение на конфигурациите на потребителските права е достъпно след инсталацията в [//www.mediawiki.org/wiki/Manual:User_rights Наръчника за потребителски права].",
+    "config-license": "Авторски права и лиценз:",
+    "config-license-none": "Без лиценз",
+    "config-license-cc-by-sa": "Криейтив Комънс Признание-Споделяне на споделеното",
+    "config-license-cc-by": "Криейтив Комънс Признание",
+    "config-license-cc-by-nc-sa": "Криейтив Комънс Признание-Некомерсиално-Споделяне на споделеното",
+    "config-license-cc-0": "Криейтив Комънс Нула (обществено достояние)",
+    "config-license-gfdl": "Лиценз за свободна документация на GNU 1.3 или по-нов",
+    "config-license-pd": "Обществено достояние",
+    "config-license-cc-choose": "Избиране на друг лиценз от Криейтив Комънс",
+    "config-license-help": "Много публични уикита поставят всички приноси под [http://freedomdefined.org/Definition/Bg свободен лиценз].\nТова помага създаване на усещане за общност и насърчава дългосрочните приноси.\nТова не е необходимо за частни или корпоративни уикита.\n\nАко е необходимо да се използват текстове от Уикипедия, както и Уикипедия да може да използва текстове от уикито, необходимо е да се избере лиценз '''Криейтив Комънс Признание-Споделяне на споделеното'''.\n\nЛицензът за свободна документация на GNU е старият лиценз на съдържанието на Уикипедия.\nТой все още е валиден лиценз, но някои негови условия са трудни за разбиране и правят по-сложни повторното използване и интерпретацията.",
+    "config-email-settings": "Настройки за е-поща",
+    "config-enable-email": "Разрешаване на изходящи е-писма",
+    "config-enable-email-help": "За да работят възможностите за използване на е-поща, необходимо е [http://www.php.net/manual/en/mail.configuration.php настройките за поща на PHP] да бъдат конфигурирани правилно.\nАко няма да се използват услугите за е-поща в уикито, те могат да бъдат изключени тук.",
+    "config-email-user": "Позволяване на потребителите да си изпращат е-писма през уикито",
+    "config-email-user-help": "Позволяване на потребителите да си изпращат е-писма ако са разрешили това в настройките си.",
+    "config-email-usertalk": "Оповестяване при промяна на потребителската беседа",
+    "config-email-usertalk-help": "Позволява на потребителите да получават оповестяване при промяна на беседата им, ако това е разрешено в настройките им.",
+    "config-email-watchlist": "Оповестяване за списъка за наблюдение",
+    "config-email-watchlist-help": "Позволява на потребителите да получават оповестяване за техните наблюдавани страници, ако това е разрешено в настройките им.",
+    "config-email-auth": "Потвърждаване на адреса за електронна поща",
+    "config-email-auth-help": "Ако тази настройка е включена, потребителите трябва да потвърдят адреса си за е-поща чрез препратка, която им се изпраща при настройване или промяна.\nСамо валидните адреси могат да получават е-писма от други потребители или да променят писмата за оповестяване.\nНастройването на това е '''препоръчително''' за публични уикита заради потенциални злоупотреби с възможностите за електронна поща.",
+    "config-email-sender": "Адрес за обратна връзка:",
+    "config-email-sender-help": "Въвежда се адрес за електронна поща, който ще се използва за обратен адрес при изходящи е-писма.\nТова е адресът, на който ще се получават върнатите и неполучени писма.\nМного е-пощенски сървъри изискват поне домейн името да е валидно.",
+    "config-upload-settings": "Картинки и качване на файлове",
+    "config-upload-enable": "Позволяне качването на файлове",
+    "config-upload-help": "Качването на файлове е възможно да доведе до пробели със сигурността на сървъра.\nПовече информация по темата има в [//www.mediawiki.org/wiki/Manual:Security раздела за сигурност] в Наръчника.\n\nЗа позволяване качването на файлове, необходимо е уебсървърът да може да записва в поддиректорията на МедияУики <code>images</code>.\nСлед като това условие е изпълнено, функционалността може да бъде активирана.",
+    "config-upload-deleted": "Директория за изтритите файлове:",
+    "config-upload-deleted-help": "Избиране на директория, в която ще се складират изтритите файлове.\nВ най-добрия случай тя не трябва да е достъпна през уеб.",
+    "config-logo": "Адрес на логото:",
+    "config-logo-help": "Обликът по подразбиране на МедияУики вклчва място с размери 135х160 пиксела за лого над страничното меню.\nАко има наличен файл с подходящ размер, неговият адрес може да бъде посочен тук.\n\nАко не е необходимо лого, полето може да се остави празно.",
+    "config-instantcommons": "Включване на Instant Commons",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] е функционалност, която позволява на уикитата да използват картинки, звуци и друга медиа от сайта на Уикимедия [//commons.wikimedia.org/ Общомедия].\nЗа да е възможно това, МедияУики изисква достъп до Интернет.\n\nПовече информация за тази функционалност, както и инструкции за настройване за други уикита, различни от Общомедия, е налична в [//mediawiki.org/wiki/Manual:$wgForeignFileRepos наръчника].",
+    "config-cc-error": "Избирането на лиценз на Криейтив Комънс не даде резултат.\nНеобходимо е името на лиценза да бъде въведено ръчно.",
+    "config-cc-again": "Повторно избиране...",
+    "config-cc-not-chosen": "Изберете кой лиценз на Криейтив Комънс желаете и щракнете \"proceed\".",
+    "config-advanced-settings": "Разширена конфигурация",
+    "config-cache-options": "Настройки за обектното кеширане:",
+    "config-cache-help": "Обектното кеширане се използва за подобряване на скоростта на МедияУики чрез кеширане на често използваните данни.\nСилно препоръчително е на средните и големите сайтове да включат тази настройка, но малките също могат да се възползват от нея.",
+    "config-cache-none": "Без кеширане (не се премахва от функционалността, но това влияе на скоростта на по-големи уикита)",
+    "config-cache-accel": "PHP обектно кеширане (APC, XCache или WinCache)",
+    "config-cache-memcached": "Използване на Memcached (изисква допълнителни настройки и конфигуриране)",
+    "config-memcached-servers": "Memcached сървъри:",
+    "config-memcached-help": "Списък с IP адреси за използване за Memcached.\nНеобходимо е да бъдат разделени по един на ред, както и да е посочен порта. Пример:\n127.0.0.1:11211\n192.168.1.25:1234",
+    "config-memcache-needservers": "Избран е Memcached като складиращ тип, но не са посочени сървъри.",
+    "config-memcache-badip": "Беше въведен невалиден IP адрес за Memcached: $1.",
+    "config-memcache-noport": "Не е посочен порт за използване за Memcached сървъра: $1.\nВ случай, че не знаете порта, този по подразбиране е 11211.",
+    "config-memcache-badport": "Портовете за Memcached трябва да бъдат между $1 и $2.",
+    "config-extensions": "Разширения",
+    "config-extensions-help": "Разширенията от списъка по-горе бяха открити в директорията <code>./extensions</code>.\n\nВъзможно е те да изискват допълнително конфигуриране, но сега могат да бъдат включени.",
+    "config-install-alreadydone": "'''Предупреждение:''' Изглежда вече сте инсталирали МедияУики и се опитвате да го инсталирате отново.\nПродължете към следващата страница.",
+    "config-install-begin": "Инсталацията на МедияУики ще започне след натискане на бутона „{{int:config-continue}}“.\nВ случай, че е необходимо да се направят промени, използва се бутона „{{int:config-back}}“.",
+    "config-install-step-done": "готово",
+    "config-install-step-failed": "неуспешно",
+    "config-install-extensions": "Добавяне на разширенията",
+    "config-install-database": "Създаване на базата от данни",
+    "config-install-schema": "Създаване на схема",
+    "config-install-pg-schema-not-exist": "PostgreSQL схемата не съществува",
+    "config-install-pg-schema-failed": "Създаването на таблиците пропадна.\nНеобходимо е потребител \"$1\" да има права за писане в схемата \"$2\".",
+    "config-install-pg-plpgsql": "Проверяване за езика PL/pgSQL",
+    "config-pg-no-plpgsql": "Необходимо е да се инсталира езикът PL/pgSQL в базата от данни $1",
+    "config-pg-no-create-privs": "Посочената сметка за инсталацията не притежава достатъчно права за създаване на сметка.",
+    "config-pg-not-in-role": "Посочената сметка за уеб потребител вече съществува.\nПосочената сметка за инсталация не с права на суперпотребител и не е член на ролите на уеб потребителя и не може да създава обекти, собственост на уеб потребителя.\n\nТекущо МедияУики изисква таблиците да са собственост на уеб потребителя. Необходимо е да се посочи друго потребителско име за уеб или да се натисне \"връщане\" и да се избере друг потребител за инсталацията с подходящите права.",
+    "config-install-user": "Създаване на потребител за базата от данни",
+    "config-install-user-alreadyexists": "Потребител „$1“ вече съществува",
+    "config-install-user-create-failed": "Създаването на потребител „$1“ беше неуспешно: $2",
+    "config-install-user-grant-failed": "Предоставянето на права на потребител \"$1\" беше неуспешно: $2",
+    "config-install-user-missing": "Посоченият потребител \" $1 \"не съществува.",
+    "config-install-user-missing-create": "Посоченият потребител \"$1\" не съществува.\nАко желаете да го създадете, поставете отметка на \"създаване на сметка\".",
+    "config-install-tables": "Създаване на таблиците",
+    "config-install-tables-exist": "'''Предупреждение''': Таблиците за МедияУики изглежда вече съществуват.\nПропускане на създаването им.",
+    "config-install-tables-failed": "'''Грешка''': Създаването на таблиците пропадна и върна следната грешка: $1",
+    "config-install-interwiki": "Попълване на таблицата с междууикитата по подразбиране",
+    "config-install-interwiki-list": "Файлът <code>interwiki.list</code> не можа да бъде открит.",
+    "config-install-interwiki-exists": "'''Предупреждение''': Таблицата с междууикита изглежда вече съдържа данни.\nПропускане на списъка по подразбиране.",
+    "config-install-stats": "Инициализиране на статистиките",
+    "config-install-keys": "Генериране на тайни ключове",
+    "config-insecure-keys": "'''Предупреждение:''' {{PLURAL:$2|Сигурният ключ, създаден по време на инсталацията, не е напълно надежден|Сигурните ключове, създадени по време на инсталацията, не са напълно надеждни}} $1 . Обмислете да {{PLURAL:$2|го|ги}} смените ръчно.",
+    "config-install-sysop": "Създаване на администраторска сметка",
+    "config-install-subscribe-fail": "Невъзможно беше абонирането за mediawiki-announce: $1",
+    "config-install-subscribe-notpossible": "не е инсталиран cURL и allow_url_fopen не е налична.",
+    "config-install-mainpage": "Създаване на Началната страница със съдържание по подразбиране",
+    "config-install-extension-tables": "Създаване на таблици за включените разширения",
+    "config-install-mainpage-failed": "Вмъкването на Началната страница беше невъзможно: $1",
+    "config-install-done": "'''Поздравления!'''\nИнсталирането на МедияУики приключи успешно.\n\nИнсталаторът създаде файл <code>LocalSettings.php</code>.\nТой съдържа всичката необходима основна конфигурация на уикито.\n\nНеобходимо е той да бъде изтеглен и поставен в основната директория на уикито (директорията, в която е и index.php). Изтеглянето би трябвало да започне автоматично.\n\nАко изтеглянето не започне автоматично или е било прекратено, файлът може да бъде изтеглен чрез щракване на препратката по-долу:\n\n$3\n\n'''Забележка''': Ако това не бъде извършено сега, генерираният конфигурационен файл няма да е достъпен на по-късен етап ако не бъде изтеглен сега или инсталацията приключи без изтеглянето му.\n\nКогато файлът вече е в основната директория, '''[$2 уикито ще е достъпно на този адрес]'''.",
+    "config-download-localsettings": "Изтегляне на <code>LocalSettings.php</code>",
+    "config-help": "помощ",
+    "config-nofile": "Файлът „$1“ не може да бъде открит. Да не е бил изтрит?",
+    "mainpagetext": "'''Уикито беше успешно инсталирано.'''",
+    "mainpagedocfooter": "Разгледайте [//meta.wikimedia.org/wiki/Help:Contents ръководството] за подробна информация относно използването на уики софтуера.\n\n== Първи стъпки ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Настройки за конфигуриране]\n* [//www.mediawiki.org/wiki/Manual:FAQ ЧЗВ за МедияУики]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Пощенски списък относно нови версии на МедияУики]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Локализиране на МедияУики]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/bjn.json b/includes/installer/i18n/bjn.json
new file mode 100644 (file)
index 0000000..49e56c1
--- /dev/null
@@ -0,0 +1,10 @@
+{
+    "@metadata": {
+        "authors": [
+            "Ezagren",
+            "J Subhi"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki sudah tapasang awan sukses'''.",
+    "mainpagedocfooter": "Carii panjalasan [//meta.wikimedia.org/wiki/Help:Contents Panduan Pamuruk] gasan mamuruk parangkat lunak wiki\n\n== Gasan bamula ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Daptar konpigurasi setélan]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki nang rancak ditakunakan]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki rilis milis]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/bn.json b/includes/installer/i18n/bn.json
new file mode 100644 (file)
index 0000000..ef2da60
--- /dev/null
@@ -0,0 +1,108 @@
+{
+    "@metadata": {
+        "authors": [
+            "Bellayet",
+            "Wikitanvir"
+        ]
+    },
+    "config-desc": "মিডিয়াউইকির জন্য ইন্সটলার",
+    "config-title": "মিডিয়াউইকি $1 ইন্সটলেশন",
+    "config-information": "তথ্য",
+    "config-localsettings-key": "হালনাগাদ কি",
+    "config-session-error": "সেশন শুরুতে ত্রুটি: $1",
+    "config-your-language": "আপনার ভাষা:",
+    "config-your-language-help": "ইন্সটল করা সময় ব্যবহারের জন্য ভাষা নির্বাচন করুন।",
+    "config-wiki-language": "উইকি ভাষা:",
+    "config-back": "← পেছনে",
+    "config-continue": "অব্যাহত →",
+    "config-page-language": "ভাষা",
+    "config-page-welcome": "মিডিয়াউইকিতে স্বাগতম!",
+    "config-page-dbconnect": "ডেটাবেজে সংযোগ দিন",
+    "config-page-upgrade": "ইতিমধ্যেই থাকা ইন্সটলেশন হালনাগাদ করুন",
+    "config-page-dbsettings": "ডেটাবেজ সেটিংস",
+    "config-page-name": "নাম",
+    "config-page-options": "অপশন",
+    "config-page-install": "ইন্সটল",
+    "config-page-complete": "সম্পূর্ণ!",
+    "config-page-restart": "পুনরায় ইন্সটল প্রক্রিয়া চালু করুন",
+    "config-page-readme": "এটি পড়ুন",
+    "config-page-releasenotes": "রিলিজ নোট",
+    "config-page-copying": "অনুলেপন",
+    "config-page-upgradedoc": "হালনাগাদকরণ",
+    "config-page-existingwiki": "ইতিমধ্যেই থাকা উইকি",
+    "config-restart": "হ্যাঁ, পুনরায় চালু করুন",
+    "config-env-php": "পিএইচপি $1 ইন্সটল করা হয়েছে।",
+    "config-db-type": "ডেটাবেজের ধরন:",
+    "config-db-host": "ডেটাবেজের হোস্ট:",
+    "config-db-install-account": "ইন্সটলের জন্য ব্যবহারকারী অ্যাকাউন্ট",
+    "config-db-username": "ডেটাবেজের ব্যবহারকারী নাম:",
+    "config-db-password": "ডেটাবেজের শব্দচাবি:",
+    "config-db-charset": "ডেটাবেজের অক্ষর সেট",
+    "config-db-port": "ডেটাবেজ পোর্ট:",
+    "config-db-schema": "মিডিয়াউইকির স্কিমা",
+    "config-sqlite-dir": "এসকিউলাইট ডেটা ডিরেক্টরি:",
+    "config-oracle-def-ts": "পূর্বনির্ধারিত টেবিলস্পেস",
+    "config-oracle-temp-ts": "সাময়কি টেবিলস্পেস:",
+    "config-header-mysql": "মাইএসকিউএল সেটিংস",
+    "config-header-postgres": "পোস্টগ্রেএসকিউএল সেটিংস",
+    "config-header-sqlite": "এসকিউলাইট সেটিংস",
+    "config-header-oracle": "ওরাকল সেটিংস",
+    "config-invalid-db-type": "ডেটাবেজের ধরন অগ্রহযোগ্য",
+    "config-missing-db-name": "আপনাকে অবশ্যই \"ডেটাবেজ নাম\"-এর জন্য একটি মান প্রবেশ করাতে হবে",
+    "config-missing-db-host": "আপনাকে অবশ্যই \"ডেটাবেজ হোস্ট\"-এর জন্য একটি মান প্রবেশ করাতে হবে",
+    "config-missing-db-server-oracle": "আপনাকে অবশ্যই \"ডেটাবেজ টিএনএস\"-এর জন্য একটি মান প্রবেশ করাতে হবে",
+    "config-mysql-engine": "সংরক্ষণ ইঞ্জিন:",
+    "config-mysql-innodb": "ইনোডিবি",
+    "config-mysql-myisam": "মাইআইএসএএম",
+    "config-mysql-charset": "ডেটাবেজের অক্ষর সেট",
+    "config-mysql-binary": "বাইনারি",
+    "config-mysql-utf8": "ইউটিএফ-৮",
+    "config-site-name": "উইকির নাম:",
+    "config-site-name-blank": "একটি সাইটের নাম প্রবেশ করান।",
+    "config-project-namespace": "প্রকল্প নামস্থান:",
+    "config-ns-generic": "প্রকল্প",
+    "config-ns-site-name": "উইকি নামের অনুরুপ: $1",
+    "config-ns-other": "অন্যান্য (নির্দিষ্ট করুন)",
+    "config-ns-other-default": "মাইউইকি",
+    "config-admin-box": "প্রশাসক অ্যাকাউন্ট",
+    "config-admin-name": "আপনার নাম:",
+    "config-admin-password": "শব্দচাবি:",
+    "config-admin-password-confirm": "শব্দচাবি আবারও প্রবেশ করান:",
+    "config-admin-name-blank": "একটি প্রশাসক ব্যবহারকারী নাম প্রবেশ করান",
+    "config-admin-password-blank": "প্রশাসক অ্যাকাউন্টের জন্য পাসওয়ার্ড প্রবেশ করান।",
+    "config-admin-password-same": "পাসওয়ার্ড অবশ্যই ব্যবহারকারী নামের অনুরুপ হওয়া চলবে না।",
+    "config-admin-password-mismatch": "আপনি যে দুটি শব্দচাবি দিয়েছেন তারা পরস্পর মেলেনি।",
+    "config-admin-email": "ইমেইল ঠিকানা:",
+    "config-optional-continue": "আরও প্রশ্ন জিজ্ঞেস করুন।",
+    "config-optional-skip": "আমি ইতিমধ্যেই বিরক্ত হয়ে গেছি, উইকিটি ইন্সটল করো।",
+    "config-profile": "ব্যবহারকারী অধিকার প্রোফাইল:",
+    "config-profile-wiki": "গতানুগতিক উইকি",
+    "config-profile-no-anon": "অ্যাকাউন্ট তৈরি করা বাধ্যতামূলক",
+    "config-profile-fishbowl": "শুধুমাত্র নির্ধারিত সম্পাদকদের  জন্যই",
+    "config-profile-private": "ব্যক্তিগত উইকি",
+    "config-license": "কপিরাইট ও লাইসেন্স:",
+    "config-license-none": "কোনো লাইসেন্স ফুটার নেই",
+    "config-license-cc-by-sa": "ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন শেয়ার অ্যালাইক",
+    "config-license-cc-by-nc-sa": "ক্রিয়েটিভ কমন্স অ্যাট্রিবিউশন নন-কমার্শিয়াল শেয়ার অ্যালাইক",
+    "config-license-cc-0": "ক্রিয়েটিভ কমন্স জিরো",
+    "config-license-pd": "পাবলিক ডোমেইন",
+    "config-license-cc-choose": "একটি স্বনির্ধারিত ক্রিয়েটিভ কমন্স লাইসেন্ট নির্বাচন করুন",
+    "config-email-settings": "ই-মেইল সেটিংস",
+    "config-email-user": "ব্যবহারকারী-থেকে-ব্যবহারকারী ই-মেইল সুবিধা সক্রিয় করো",
+    "config-upload-settings": "চিত্র এবং ফাইল আপলোড",
+    "config-upload-enable": "ফাইল আপলোড সক্রিয় করো",
+    "config-upload-deleted": "অপসারণকৃত ফাইলের ডিরেক্টরি:",
+    "config-logo": "লোগো ইউআরএল:",
+    "config-memcached-servers": "মেমক্যাশেকৃত সার্ভারসমূহ:",
+    "config-extensions": "এক্সটেনশন",
+    "config-install-step-done": "সম্পন্ন",
+    "config-install-step-failed": "ব্যর্থ",
+    "config-install-extensions": "এক্সটেনশন সহকারে",
+    "config-install-database": "ডেটাবেজ সেটআপ",
+    "config-install-pg-schema-not-exist": "পোস্টগ্রেএসকিউএল স্কিমা খুঁজে পাওয়া যায়নি।",
+    "config-install-tables": "টেবিল তৈরি",
+    "config-install-keys": "গোপন কি তৈরি",
+    "config-help": "সাহায্য",
+    "mainpagetext": "'''মিডিয়াউইকি সফলভাবে ইন্সটল করা হয়েছে।'''",
+    "mainpagedocfooter": "কী ভাবে উইকি সফটওয়্যারটি ব্যবহারকার করবেন, তা জানতে [//meta.wikimedia.org/wiki/Help:Contents ব্যবহারকারী সহায়িকা] দেখুন।\n\n== কোথা থেকে শুরু করবেন ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings কনফিগারেশন সেটিংস তালিকা]\n* [//www.mediawiki.org/wiki/Manual:FAQ প্রশ্নোত্তরে মিডিয়াউইকি]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce মিডিয়াউইকি রিলিজের মেইলিং লিস্ট]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/bpy.json b/includes/installer/i18n/bpy.json
new file mode 100644 (file)
index 0000000..af0b4c0
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''মিডিয়াউইকি হবাবালা ইয়া ইন্সটল ইল.'''",
+    "mainpagedocfooter": "উইকি সফটৱ্যার এহান আতানির বারে দরকার ইলে [//meta.wikimedia.org/wiki/Help:Contents আতাকুরার গাইড]হানর পাঙলাক নেগা।\n\n== অকরানিহান ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings কনফিগারেশন সেটিংর তালিকাহান]\n* [//www.mediawiki.org/wiki/Manual:FAQ মিডিয়া উইকি আঙলাক]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce মিডিয়া উইকির ফঙপার বারে মেইলর তালিকাহান]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/br.json b/includes/installer/i18n/br.json
new file mode 100644 (file)
index 0000000..eac799b
--- /dev/null
@@ -0,0 +1,267 @@
+{
+    "@metadata": {
+        "authors": [
+            "Fohanno",
+            "Fulup",
+            "Gwendal",
+            "Y-M D",
+            "아라"
+        ]
+    },
+    "config-desc": "Poellad staliañ MediaWIki",
+    "config-title": "Staliadur MediaWiki $1",
+    "config-information": "Titouroù",
+    "config-localsettings-upgrade": "Kavet ez eus bet ur restr <code>LocalSettings.php</code>.\nEvit hizivaat ar staliadur-se, merkit an talvoud <code>$wgUpgradeKey</code> er voest dindan.\nE gavout a rit e <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Dinoet ez eus bet ur restr <code>LocalSettings.php</code>.\nEvit lakaat ar staliadur-mañ a-live, implijit <code>update.php</code> e plas",
+    "config-localsettings-key": "Alc'hwez hizivaat :",
+    "config-localsettings-badkey": "Direizh eo an alc'hwez merket ganeoc'h",
+    "config-upgrade-key-missing": "Kavet ez eus bet ur staliadur kent eus MediaWiki.\nEvit hizivaat ar staliadur-se, ouzhpennit al linenn da-heul e traoñ ho restr <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "Diglok e seblant bezañ ar restr <code>LocalSettings.php</code> zo anezhi dija.\nAn argemmenn $1 n'eo ket termenet.\nKemmit <code>LocalSettings.php</code> evit ma vo termenet an argemmenn-se, ha klikit war « {{int:Config-continue}} ».",
+    "config-localsettings-connection-error": "C'hoarvezet ez eus ur fazi en ur gevreañ ouzh an diaz roadennoù oc'h implijout an arventennoù diferet e <code>LocalSettings.php</code> pe <code>AdminSettings.php</code>. Reizhit an arventennoù-se hag esaeit en-dro.\n\n$1",
+    "config-session-error": "Fazi e-ser loc'hañ an dalc'h : $1",
+    "config-session-expired": "Kloz eo an dalc'h evit doare.\nKefluniet eo an dalc'hoù evit padout $1.\nKreskiñ ar pad-mañ a c'hallit dre e arventenniñ <code>session.gc_maxlifetime</code> e php.ini.\nAdgrogit gant ar staliadur.",
+    "config-no-session": "Kolle teo bet roadennoù ho talc'h !\nGwiriit ar restr php.ini ha bezit sur emañ staliet <code>session.save_path</code> en ur c'havlec'h a zere.",
+    "config-your-language": "Ho yezh :",
+    "config-your-language-help": "Dibabit ur yezh da implijout e-pad an argerzh staliañ.",
+    "config-wiki-language": "Yezh ar wiki :",
+    "config-wiki-language-help": "Diuzañ ar yezh a vo implijet ar muiañ er wiki.",
+    "config-back": "← Distreiñ",
+    "config-continue": "Kenderc'hel →",
+    "config-page-language": "Yezh",
+    "config-page-welcome": "Degemer mat e MediaWiki !",
+    "config-page-dbconnect": "Kevreañ d'an diaz roadennoù",
+    "config-page-upgrade": "Hizivaat ar staliadur a zo dioutañ",
+    "config-page-dbsettings": "Arventennoù an diaz roadennoù",
+    "config-page-name": "Anv",
+    "config-page-options": "Dibarzhioù",
+    "config-page-install": "Staliañ",
+    "config-page-complete": "Graet !",
+    "config-page-restart": "Adlañsañ ar staliadur",
+    "config-page-readme": "Lennit-me",
+    "config-page-releasenotes": "Notennoù stumm",
+    "config-page-copying": "O eilañ",
+    "config-page-upgradedoc": "O hizivaat",
+    "config-page-existingwiki": "Wiki zo anezhañ dija",
+    "config-help-restart": "Ha c'hoant hoc'h eus da ziverkañ an holl roadennoù hoc'h eus ebarzhet ha da adlañsañ an argerzh staliañ ?",
+    "config-restart": "Ya, adloc'hañ anezhañ",
+    "config-welcome": "=== Gwiriadennoù a denn d'an endro ===\nRekis eo un nebeud gwiriadennoù diazez da welet hag azas eo an endro evit gallout staliañ MediaWiki.\nDleout a rafec'h merkañ disoc'hoù ar gwiriadennoù-se m'hoc'h eus ezhomm skoazell e-pad ar staliadenn.",
+    "config-copyright": "=== Gwiriañ aozer ha Termenoù implijout ===\n\n$1\n\nUr meziant frank eo ar programm-mañ; gallout a rit skignañ anezhañ ha/pe kemmañ anezhañ dindan termenoù ar GNU Aotre-implijout Foran Hollek evel m'emañ embannet gant Diazezadur ar Meziantoù Frank; pe diouzh stumm 2 an aotre-implijout, pe (evel mar karit) diouzh ne vern pe stumm nevesoc'h.\n\nIngalet eo ar programm gant ar spi e vo talvoudus met n'eus '''tamm gwarant ebet'''; hep zoken gwarant empleg ar '''varc'hadusted''' pe an '''azaster ouzh ur pal bennak'''. Gwelet ar GNU Aotre-Implijout Foran Hollek evit muioc'h a ditouroù.\n\nSañset oc'h bezañ resevet <doclink href=Copying>un eilskrid eus ar GNU Aotre-implijout Foran Hollek</doclink> a-gevret gant ar programm-mañ; ma n'hoc'h eus ket, skrivit da Diazezadur ar Meziantoù Frank/Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, SUA pe [http://www.gnu.org/licenses/old-licenses/gpl-2.0.html lennit anezhañ enlinenn].",
+    "config-sidebar": "* [//www.mediawiki.org MediaWiki degemer]\n* [//www.mediawiki.org/wiki/Help:Contents Sturlevr an implijerien]\n* [//www.mediawiki.org/wiki/Manual:Contents Sturlevr ar verourien]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAG]\n----\n* <doclink href=Readme>Lennit-me</doclink>\n* <doclink href=ReleaseNotes>Notennoù embann</doclink>\n* <doclink href=Copying>Oc'h eilañ</doclink>\n* <doclink href=UpgradeDoc>O hizivaat</doclink>",
+    "config-env-good": "Gwiriet eo bet an endro.\nGallout a rit staliañ MediaWiki.",
+    "config-env-bad": "Gwiriet eo bet an endro.\nNe c'hallit ket staliañ MediaWiki.",
+    "config-env-php": "Staliet eo PHP $1.",
+    "config-env-php-toolow": "Staliet eo PHP $1.\nNemet eo rekis PHP $2 pe nevesoc'h evit MediaWiki.",
+    "config-unicode-using-utf8": "Oc'h implijout utf8_normalize.so gant Brion Vibber evit ar reolata Unicode.",
+    "config-unicode-using-intl": "Oc'h implijout [http://pecl.php.net/intl an astenn PECL intl] evit ar reolata Unicode.",
+    "config-unicode-pure-php-warning": "'''Diwallit''' : N'haller ket kaout an [http://pecl.php.net/intl intl PECL astenn] evit merañ reoladur Unicode, a zistro d'ar stumm gorrek emplementet e-PHP.\nMa lakait da dreiñ ul lec'hienn darempredet-stank e vo mat deoc'h lenn un tammig bihan diwar-benn se war [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode normalization]. (e saozneg)",
+    "config-unicode-update-warning": "'''Diwallit''': ober a ra stumm staliet endalc'her skoueriekaat Unicode gant ur stumm kozh eus [http://site.icu-project.org/ levraoueg meziantoù ar raktres ICU].\nDleout a rafec'h [//www.mediawiki.org/wiki/Unicode_normalization_considerations hizivaat] ma seblant deoc'h bezañ pouezus ober gant Unicode.",
+    "config-no-db": "N'eus ket bet gallet kavout ur sturier diazoù roadennoù a zere ! Ret eo deoc'h staliañ ur sturier diazoù roadennoù evit PHP.\nSkoret eo an diazoù roadennoù da-heul : $1.\n\nMa rit gant un herberc'hiañ kenrannet, goulennit digant ho herberc'hier staliañ ur sturier diaz roadennoù azas.\nMa kempunit PHP c'hwi hoc'h-unan, adkeflugnit-eñ en ur weredekaat un arval diaz roadennoù, da skouer en ur ober gant <code>./configure --mysql</code>.\nM'hoc'h eus staliet PHP adalek ur pakad Debian pe Ubuntu, eo ret deoc'h staliañ ar vodulenn php5-mysql ivez.",
+    "config-no-fts3": "'''Diwallit ''': Kempunet eo SQLite hep ar [//sqlite.org/fts3.html vodulenn FTS3]; ne vo ket posupl ober gant an arc'hwelioù klask er staliadur-mañ",
+    "config-register-globals": "'''Diwallit : Gweredekaet eo dibarzh <code>[http://php.net/register_globals register_globals]</code> PHP.'''\n'''Diweredekait anezhañ ma c'hallit.'''\nMont a raio MediaWiki en-dro met fazioù surentez a c'hallo c'hoari war ho servijer",
+    "config-magic-quotes-runtime": "'''Fazi groñs : gweredekaet eo [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] !'''\nBreinañ a ra an dibarzh-mañ ar roadennoù en ur mod dic'hortoz.\nN'hallit ket staliañ pe ober gant MediaWiki e-keit ha m'eo gweredekaet an dibarzh-se.",
+    "config-magic-quotes-sybase": "'''Fazi groñs : gweredekaet eo [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] !'''\nBreinañ a ra an dibarzh-mañ ar roadennoù en ur mod dic'hortoz.\nN'hallit ket staliañ pe ober gant MediaWiki e-keit ha m'eo gweredekaet an dibarzh-se.",
+    "config-mbstring": "'''Fazi groñs : gweredekaet eo [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] !'''\nDegas a ra an dibarzh-mañ fazioù ha gallout a ra breinañ ar roadennoù en ur mod dic'hortoz.\nN'hallit ket staliañ pe ober gant MediaWiki e-keit ha m'eo gweredekaet an dibarzh-se.",
+    "config-ze1": "'''Fazi diremed : [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mod] zo gweredekaet !'''\nAn dibarzh-mañ zo kaoz da zrein euzhus gant MediaWiki.\nNe c'hallit ket staliañ nag implijout MediaWiki keit ha m'eo gweredekaet an dibarzh-mañ.",
+    "config-safe-mode": "'''Diwallit :''' Gweredekaet eo [http://www.php.net/features.safe-mode mod surentez] PHP.\nKudennoù a c'hall sevel abalamour da gement-se, dreist-holl ma pellgargit restroù ha ma skorit <code>math</code>.",
+    "config-xml-bad": "Mankout a ra modulenn XML PHP.\nEzhomm en deus MediaWiki eus arc'hwelioù zo eus ar vodulenn-se ha ne'z aio ket en-dro gant ar c'hefluniadur zo.\nM'emaoc'h gant Mandrake, stailhit pakad php-xml.",
+    "config-pcre": "Evit doare e vank ar vodulenn skorañ PCRE.\nEvit mont en-dro plaen en deus ezhomm MediaWiki eus an arc'hwelioù jediñ reoliek kenglotus gant Perl.",
+    "config-pcre-no-utf8": "'''Fazi groñs ''': evit doare eo bet kempunet modulenn PCRE PHP hep ar skor PCRE_UTF8.\nEzhomm en deus MediaWiki eus UTF-8 evit mont plaen en-dro.",
+    "config-memory-raised": "<code>memory_limit</code> ar PHP zo $1, kemmet e $2.",
+    "config-memory-bad": "'''Diwallit :''' Da $1 emañ arventenn <code>memory_limit</code> PHP.\nRe izel eo moarvat.\nMarteze e c'hwito ar staliadenn !",
+    "config-xcache": "Staliet eo [http://xcache.lighttpd.net/ XCache]",
+    "config-apc": "Staliet eo [http://www.php.net/apc APC]",
+    "config-wincache": "Staliet eo [http://www.iis.net/download/WinCacheForPhp WinCache]",
+    "config-no-cache": "'''Diwallit:''' N'eus ket bet gallet kavout [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] pe [http://www.iis.net/download/WinCacheForPhp WinCache].\nN'eo ket gweredekaet ar c'hrubuilhañ traezoù.",
+    "config-diff3-bad": "N'eo ket bet kavet GNU diff3.",
+    "config-imagemagick": "ImageMagick kavet : <code>$1</code>.\nGweredekaet e vo ar bihanaat skeudennoù ma vez gweredekaet ganeoc'h ar pellgargañ restroù.",
+    "config-gd": "Kavet eo bet al levraoueg c'hrafek GD enframmet.\nGweredekaet e vo ar bihanaat skeudennoù ma vez gweredekaet an enporzhiañ restroù.",
+    "config-no-scaling": "N'eus ket bet gallet kavout al levraoueg GD pe ImageMagick.\nDiweredekaet e vo ar bihanaat skeudennoù.",
+    "config-no-uri": "'''Fazi :''' N'eus ket tu da anavezout URI ar skript red.\nStaliadur nullet.",
+    "config-uploads-not-safe": "'''Diwallit :'''Bresk eo ho kavlec'h pellgargañ dre ziouer <code>$1</code> rak gallout a ra erounit ne vern pe skript.\nha pa vefe gwiriet gant MediaWiki an holl restroù pellgarget eo erbedet-groñs da [//www.mediawiki.org/wiki/Manual:Security#Upload_security serriñ ar breskter surentez-mañ] a-rao gweredekaat ar pellgargañ.",
+    "config-brokenlibxml": "Ur meskad stummoù PHP ha libxml2 dreinek a vez implijet gant ho reizhiad. Gallout a ra breinañ ar roadennoù e MediaWiki hag en arloadoù web all.\nHizivait da PHP 5.2.9 pe nevesoc'h ha libxml2 2.7.3 pe nevesoc'h ([//bugs.php.net/bug.php?id=45996 draet renablet gant PHP]).\nStaliadur paouezet.",
+    "config-using531": "N'haller ket implijout MediaWiki gant PHP $1 abalamour d'un draen a zegas trubuilh en arventennoù kaset en ur ober dave da <code>__call()</code>.\nHizivait ho reizhiad gant PHP 5.3.2 pe nevesoc'h, pe distroit da PHP 5.3.0 evit renkañ an dra-se.\nStaliadur paouezet.",
+    "config-db-type": "Doare an diaz roadennoù :",
+    "config-db-host": "Anv implijer an diaz roadennoù :",
+    "config-db-host-help": "M'emañ ho servijer roadennoù war ur servijer disheñvel, merkit amañ an anv ostiz pe ar chomlec'h IP.\n\nMa rit gant un herberc'hiañ kenrannet, e tlefe ho herberc'hier bezañ pourchaset deoc'h un anv ostiz reizh en teulioù titouriñ.\n\nM'emaoc'h o staliañ ur servijer Windows ha ma rit gant MySQL, marteze ne'z aio ket en-dro \"localhost\" evel anv servijer. Ma ne dro ket, klaskit ober gant \"127.0.0.1\" da chomlec'h IP lechel.",
+    "config-db-host-oracle": "TNS an diaz roadennoù :",
+    "config-db-wiki-settings": "Anavezout ar wiki-mañ",
+    "config-db-name": "Anv an diaz roadennoù :",
+    "config-db-name-help": "Dibabit un anv evit ho wiki.\nNa lakait ket a esaouennoù ennañ.\n\nMa ri gant un herberc'hiañ kenrannet e vo pourchaset deoc'h un anv diaz roadennoù dibar da vezañ graet gantañ gant ho herberc'hier pe e lezo ac'hanoc'h da grouiñ diazoù roadennoù dre ur banell gontrolliñ.",
+    "config-db-name-oracle": "Brastres diaz roadennoù :",
+    "config-db-install-account": "Kont implijer evit ar staliadur",
+    "config-db-username": "Anv implijer an diaz roadennoù :",
+    "config-db-password": "Ger-tremen an diaz roadennoù :",
+    "config-db-password-empty": "Lakait ur ger-tremen evit kont nevez an diaz roadennoù : $1.\nHa pa vefe posupl da grouiñ kontoù hep ger-tremen, n'eo ket erbedet evit abegoù surentez.",
+    "config-db-install-username": "Ebarzhit an anv implijer a vo implijet da gevreañ ouzh an diaz roadennoù e-pad an argerzh staliañ.\nN'eo ket anv implijer ar gont MediaWiki, an anv implijer evit ho tiaz roadennoù eo.",
+    "config-db-install-password": "Ebarzhit ar ger-tremen a vo implijet da gevreañ ouzh an diaz roadennoù e-pad an argerzh staliañ.\nN'eo ket ar ger-tremen evit ar gont MediaWiki, ar ger-tremen evit ho tiaz roadennoù eo.",
+    "config-db-install-help": "Merkañ anv an implijer hag ar ger-tremen a vo implijet evit kevreañ ouzh an diaz roadennoù e-pad an argerzh staliañ.",
+    "config-db-account-lock": "Implijout ar memes anv implijer ha ger-tremen e-kerzh oberiadurioù boutin",
+    "config-db-wiki-account": "Kont implijer evit oberiadurioù boutin",
+    "config-db-prefix": "Rakrann taolennoù an diaz roadennoù :",
+    "config-db-charset": "Strobad arouezennoù an diaz roadennoù",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binarel",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 kilkenglotus UTF-8",
+    "config-mysql-old": "Rekis eo MySQL $1 pe ur stumm nevesoc'h; ober a rit gant $2.",
+    "config-db-port": "Porzh an diaz roadennoù :",
+    "config-db-schema": "Brastres evit MediaWiki",
+    "config-db-schema-help": "Peurliesañ e vo digudenn ar chema-mañ.\nArabat cheñch anezho ma n'hoc'h eus ket ezhomm d'en ober.",
+    "config-pg-test-error": "N'haller ket kevreañ ouzh an diaz-titouroù '''$1''' : $2",
+    "config-sqlite-dir": "Kavlec'h roadennoù SQLite :",
+    "config-oracle-def-ts": "Esaouenn stokañ (\"tablespace\") dre ziouer :",
+    "config-oracle-temp-ts": "Esaouenn stokañ (''tablespace'') da c'hortoz :",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-support-info": "Skoret eo ar reizhiadoù diaz titouroù da-heul gant MediaWiki :\n\n$1\n\nMa ne welit ket amañ dindan ar reizhiad diaz titouroù a fell deoc'h ober ganti, heuilhit an titouroù a-us (s.o. al liammoù) evit gweredekaat ar skorañ.",
+    "config-support-mysql": "* $1 eo an dibab kentañ evit MediaWiki hag an hini skoret ar gwellañ ([http://www.php.net/manual/en/mysql.installation.php penaos kempunañ PHP gant skor MySQL])",
+    "config-support-postgres": "* Ur reizhiad diaz titouroù brudet ha digor eo $1. Gallout a ra ober evit MySQL ([http://www.php.net/manual/en/pgsql.installation.php Penaos kempunañ PHP gant skor PostgreSQL]). Gallout a ra bezañ un nebeud drein bihan enni ha n'eo ket erbedet he implijout en un endro produiñ.",
+    "config-support-sqlite": "* $1 zo ur reizhiad diaz titouroù skañv skoret eus ar c'hentañ. ([http://www.php.net/manual/en/pdo.installation.php Penaos kempunañ PHP gant skor SQLite], implijout a ra PDO)",
+    "config-support-oracle": "* $1 zo un diaz titouroù kenwerzhel. ([http://www.php.net/manual/en/oci8.installation.php Penaos kempunañ PHP gant skor OCI8])",
+    "config-header-mysql": "Arventennoù MySQL",
+    "config-header-postgres": "Arventennoù PostgreSQL",
+    "config-header-sqlite": "Arventennoù SQLite",
+    "config-header-oracle": "Arventennoù Oracle",
+    "config-invalid-db-type": "Direizh eo ar seurt diaz roadennoù",
+    "config-missing-db-name": "Ret eo deoc'h merkañ un dalvoudenn evit \"Anv an diaz titouroù\"",
+    "config-missing-db-host": "Ret eo deoc'h merkañ un dalvoudenn evit \"Ostiz an diaz titouroù\"",
+    "config-missing-db-server-oracle": "Ret eo deoc'h merkañ un dalvoudenn evit \"Anv TNS an diaz titouroù\"",
+    "config-invalid-db-server-oracle": "Direizh eo anv TNS an diaz titouroù \"$1\".\nOber hepken gant lizherennoù ASCII (a-z, A-Z), sifroù (0-9), arouezennoù islinennañ (_) ha pikoù (.).",
+    "config-invalid-db-name": "Direizh eo anv an diaz titouroù \"$1\".\nOber hepken gant lizherennoù ASCII (a-z, A-Z), sifroù (0-9), arouezennoù islinennañ (_) ha tiredoù (-).",
+    "config-invalid-db-prefix": "Direizh eo rakger an diaz titouroù \"$1\".\nOber hepken gant lizherennoù ASCII (a-z, A-Z), sifroù (0-9), arouezennoù islinennañ (_) ha tiredoù (-).",
+    "config-connection-error": "$1.\n\nGwiriit anv an ostiz, an anv implijer, ar ger-tremen ha klaskit en-dro.",
+    "config-invalid-schema": "Chema direizh evit MediaWiki \"$1\".\nGrit hepken gant lizherennoù ASCII (a-z, A-Z), sifroù (0-9) hag arouezennoù islinennañ (_).",
+    "config-db-sys-create-oracle": "N'anavez ar stalier nemet ar c'hontoù SYSDBA evit krouiñ kontoù nevez.",
+    "config-db-sys-user-exists-oracle": "Bez' ez eus eus ar gont \"$1\" c'hoazh. N'haller ober gant SYSDBA nemet evit krouiñ kontoù nevez !",
+    "config-postgres-old": "Rekis eo PostgreSQL $1 pe ur stumm nevesoc'h; ober a rit gant $2.",
+    "config-sqlite-name-help": "Dibabit un anv dibar d'ho wiki.\nArabat ober gant esaouennoù pe barrennigoù-stagañ.\nImplijet e vo evit ar restr roadennoù SQLite.",
+    "config-sqlite-mkdir-error": "Ur fazi zo bet e-ser krouiñ ar c'havlec'h roadennoù \"$1\".\nGwiriañ al lec'hiadur ha klask en-dro.",
+    "config-sqlite-dir-unwritable": "Dibosupl skrivañ er c'havlec'h \"$1\".\nCheñchit ar aotreoù evit ma c'hallfe ar servijer web skrivañ ennañ ha klaskit en-dro.",
+    "config-sqlite-connection-error": "$1.\n\nGwiriañ ar c'havlec'h roadennoù hag anv an diaz roadennoù a-is ha klaskit en-dro.",
+    "config-sqlite-readonly": "N'haller ket skrivañ er restr <code>$1</code>.",
+    "config-sqlite-cant-create-db": "N'haller ket krouiñ restr an diaz roadennoù <code>$1</code>.",
+    "config-sqlite-fts3-downgrade": "N'eo ket kenglotus ar PHP gant FTS3, o lakaat an taolennoù da glotañ gant ur stumm koshoc'h",
+    "config-can-upgrade": "Taolennoù MediaWiki zo en diaz titouroù.\nDa hizivaat anezho da VediaWiki $1, klikañ war '''Kenderc'hel'''.",
+    "config-upgrade-done-no-regenerate": "Hizivadenn kaset da benn.\n\nGallout a rit [$1 kregiñ da implijout ho wiki].",
+    "config-regenerate": "Adgenel LocalSettings.php →",
+    "config-show-table-status": "C'hwitet ar reked <code>SHOW TABLE STATUS</code> !",
+    "config-unknown-collation": "'''Diwallit :''' Emañ an diaz roadennoù o renkañ an traoù diouzh un urzh lizherennek dianav.",
+    "config-db-web-account": "Kont an diaz roadennoù evit ar voned Kenrouedad",
+    "config-db-web-help": "Diuzañ an anv implijer hag ar ger-tremen a vo implijet gant ar servijer web evit kevreañ ouzh ar servijer diaz roadennoù pa vez ar wiki o vont en-dro war ar pemdez.",
+    "config-db-web-account-same": "Ober gant an hevelep kont hag an hini implijet evit ar staliañ",
+    "config-db-web-create": "Krouiñ ar gont ma n'eus ket anezhi c'hoazh",
+    "config-mysql-engine": "Lusker stokañ :",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-charset": "Strobad arouezennoù an diaz roadennoù :",
+    "config-mysql-binary": "Binarel",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "Anv ar wiki :",
+    "config-site-name-help": "Dont a raio war wel e barrenn ditl ar merdeer hag e meur a lec'h all c'hoazh.",
+    "config-site-name-blank": "Lakait anv ul lec'hienn .",
+    "config-project-namespace": "Esaouenn anv ar raktres :",
+    "config-ns-generic": "Raktres",
+    "config-ns-site-name": "Hevelep anv hag hini ar wiki : $1",
+    "config-ns-other": "All (spisaat)",
+    "config-ns-other-default": "MaWiki",
+    "config-ns-invalid": "Direizh eo an esaouenn anv \"<nowiki>$1</nowiki>\" spisaet.\nMerkit un esaouenn anv disheñvel evit ar raktres.",
+    "config-ns-conflict": "Tabut zo etre an esaouenn anv spisaet \"<nowiki>$1</nowiki>\" hag un esaouenn anv dre ziouer eus MediaWiki.\nSpisait un anv raktres esaouenn anv all.",
+    "config-admin-box": "Kont merour",
+    "config-admin-name": "Hoc'h anv :",
+    "config-admin-password": "Ger-tremen :",
+    "config-admin-password-confirm": "Adskrivañ ar ger-tremen :",
+    "config-admin-help": "Merkit hoc'h anv implijer amañ, da skouer \"Yann Vlog\".\nHemañ eo an anv a implijot evit kevreañ d'ar wiki-mañ.",
+    "config-admin-name-blank": "Lakait anv ur merour.",
+    "config-admin-name-invalid": "Direizh eo an anv implijer spisaet \"<nowiki>$1</nowiki>\".\nMerkit un anv implijer all.",
+    "config-admin-password-blank": "Reiñ ur ger-tremen evit kont ar merour.",
+    "config-admin-password-same": "Ne c'hall ket ar ger-tremen bezañ heñvel ouzh anv ar gont.",
+    "config-admin-password-mismatch": "Ne glot ket ar gerioù-tremen hoc'h eus merket an eil gant egile.",
+    "config-admin-email": "Chomlec'h postel :",
+    "config-admin-email-help": "Merkit ur chomlec'h postel amañ evit gallout resev posteloù a-berzh implijerien all eus ar wiki, adderaouekaat ho ker-tremen ha bezañ kelaouet eus ar c'hemmoù degaset d'ar pajennoù zo en ho roll evezhiañ. Gallout a rit lezel ar vaezienn-mañ goullo.",
+    "config-admin-error-user": "Fazi diabarzh en ur grouiñ ur merer gant an anv \"<nowiki>$1</nowiki>\".",
+    "config-admin-error-password": "Fazi diabarzh o lakaat ur ger-tremen evit ar merour « <nowiki>$1</nowiki> » : <pre>$2</pre>",
+    "config-admin-error-bademail": "Ebarzhet hoc'h eus ur chomlec'h postel direizh.",
+    "config-subscribe": "Koumanantit da [https://lists.wikimedia.org/mailman/listinfo/mediawiki-listenn kemennadoù evit ar stummoù nevez].",
+    "config-almost-done": "Kazi echu eo !\nGellout a rit tremen ar c'hefluniadur nevez ha staliañ ar wiki war-eeun.",
+    "config-optional-continue": "Sevel muioc'h a goulennoù ouzhin.",
+    "config-optional-skip": "Aet on skuizh, staliañ ar wiki hepken.",
+    "config-profile": "Profil ar gwirioù implijer :",
+    "config-profile-wiki": "Wiki digor",
+    "config-profile-no-anon": "Krouidigezh ur gont ret",
+    "config-profile-fishbowl": "Embanner aotreet hepken",
+    "config-profile-private": "Wiki prevez",
+    "config-license": "Copyright hag aotre-implijout:",
+    "config-license-none": "Aotre ebet en traoñ pajenn",
+    "config-license-cc-by-sa": "Creative Commons Deroadenn Kenrannañ heñvel",
+    "config-license-cc-by": "Creative Commons Deroadenn",
+    "config-license-cc-by-nc-sa": "Creative Commons Deroadenn Angenwerzhel Kenrannañ heñvel",
+    "config-license-cc-0": "Creative Commons Zero (Domani foran)",
+    "config-license-pd": "Domani foran",
+    "config-license-cc-choose": "Dibabit un aotre-implijout Creative Commons personelaet",
+    "config-email-settings": "Arventennoù ar postel",
+    "config-enable-email": "Gweredekaat ar posteloù a ya kuit",
+    "config-enable-email-help": "Mar fell deoc'h ober gant ar posteler eo ret deoc'h [http://www.php.net/manual/en/mail.configuration.php kefluniañ arventennoù postel PHP] ervat.\nMar ne fell ket deoc'h ober gant ar servij posteloù e c'hall bezañ diweredekaet amañ.",
+    "config-email-user": "Gweredekaat ar posteloù a implijer da implijer",
+    "config-email-user-help": "Aotren a ra an holl implijerien da gas posteloù an eil d'egile mard eo bet gweredekaet an arc'hwel ganto en ho penndibaboù.",
+    "config-email-usertalk": "Gweredekaat kemennadur pajennoù kaozeal an implijerien",
+    "config-email-usertalk-help": "Talvezout a ra d'an implijerien da resev kemennadennoù ma vez kemmet o fajennoù kaozeal, ma vez gweredekaet en o fenndibaboù.",
+    "config-email-watchlist": "Gweredekaat ar c'hemenn listenn evezhiañ",
+    "config-email-watchlist-help": "Talvezout a ra d'an implijerien da resev kemennadennoù diwar-benn ar pajennoù evezhiet ganto, ma vez gweredekaet en o fenndibaboù.",
+    "config-email-auth": "Gweredekaat an dilesadur dre bostel",
+    "config-email-sender": "Chomlec'h postel respont :",
+    "config-email-sender-help": "Merkit ar chomlec'h postel da vezañ implijet da chomlec'h distreiñ ar posteloù a ya er-maez.\nDi e vo kaset ar posteloù distaolet.\nNiverus eo ar servijerioù postel a c'houlenn da nebeutañ un [http://fr.wikipedia.org/wiki/Nom_de_domaine anv domani] reizh.",
+    "config-upload-settings": "Pellgargañ skeudennoù ha restroù",
+    "config-upload-enable": "Gweredekaat ar pellgargañ restroù",
+    "config-upload-deleted": "Kavlec'h evit ar restroù dilamet :",
+    "config-upload-deleted-help": "Dibab ur c'havlec'h da ziellaouiñ ar restroù diverket.\nAr pep gwellañ e vije ma ne vije ket tu d'e dizhout adalek ar Genrouedad.",
+    "config-logo": "URL al logo :",
+    "config-instantcommons": "Gweredekaat ''InstantCommons''",
+    "config-cc-error": "N'eus deuet disoc'h ebet gant dibaber aotreoù-implijout Creative Commons.\nMerkit anv an aotre-implijout gant an dorn.",
+    "config-cc-again": "Dibabit adarre...",
+    "config-cc-not-chosen": "Dibabit an aotre-implijout Creative Commons a fell deoc'h ober gantañ ha klikit war \"kenderc'hel\".",
+    "config-advanced-settings": "Kefluniadur araokaet",
+    "config-cache-options": "Arventennoù evit krubuilhañ traezoù :",
+    "config-cache-accel": "Krubuilhañ traezoù PHP (APC, XCache pe WinCache)",
+    "config-cache-memcached": "Implijout Memcached (en deus ezhomm bezañ staliet ha kefluniet)",
+    "config-memcached-servers": "Servijerioù Memcached :",
+    "config-memcached-help": "Roll ar chomlec'hioù IP da implijout evit Memcached.\nRet eo spisaat unan dre linenn ha spisaat ar porzh da vezañ implijet. Da skouer :\n127.0.0.1:11211\n192.168.1.25:1234",
+    "config-memcache-needservers": "Diuzet hoc'h eus Memcached evel seurt krubuilh met n'hoc'h eus spisaet servijer ebet.",
+    "config-memcache-badip": "Ur chomlec'h IP direizh hoc'h eus lakaet evit Memcached : $1.",
+    "config-memcache-badport": "Niverennoù porzh Memcached a zlefe bezañ etre $1 ha $2.",
+    "config-extensions": "Astennoù",
+    "config-extensions-help": "N'eo ket bet detektet an astennoù rollet a-us en ho kavlec'h <code>./astennoù</code>.\n\nMarteze e vo ezhomm kefluniañ pelloc'h met gallout a rit o gweredekaat bremañ.",
+    "config-install-alreadydone": "'''Diwallit''': Staliet hoc'h eus MediaWiki dija war a seblant hag emaoc'h o klask e staliañ c'hoazh.\nKit d'ar bajenn war-lerc'h, mar plij.",
+    "config-install-begin": "Pa vo bet pouezet ganeoc'h war \"{{int:config-continue}}\"  e krogo staliadur MediaWiki.\nPouezit war \"{{int:config-back}}\" mar fell deoc'h cheñch tra pe dra.",
+    "config-install-step-done": "graet",
+    "config-install-step-failed": "c'hwitet",
+    "config-install-extensions": "En ur gontañ an astennoù",
+    "config-install-database": "Krouiñ an diaz roadennoù",
+    "config-install-schema": "O krouiñ ar chema",
+    "config-install-pg-schema-not-exist": "N'eus ket eus chema PostgreSQL.",
+    "config-install-pg-schema-failed": "C'hwitet eo krouidigezh an taolennoù.\nGwiriit hag-eñ e c'hall an implijer « $1 » skrivañ er brastres « $2 ».",
+    "config-install-pg-commit": "O wiriekaat ar c'hemmoù",
+    "config-install-pg-plpgsql": "O wiriañ ar yezh PL/pgSQL",
+    "config-pg-no-plpgsql": "Ret eo deoc'h staliañ ar yezh PL/pgSQL en diaz roadennoù $1",
+    "config-pg-no-create-privs": "N'eus ket gwirioù a-walc'h gant ar gont hoc'h eus merket evit ar staliadur evit gallout krouiñ ur gont.",
+    "config-install-user": "O krouiñ an diaz roadennoù implijer",
+    "config-install-user-alreadyexists": "An implijer \"$1\" zo anezhañ dija",
+    "config-install-user-create-failed": "Fazi e-ser krouiñ an implijer \"$1\" : $2",
+    "config-install-user-grant-failed": "N'eus ket bet gallet reiñ an aotre d'an implijer \"$1\" : $2",
+    "config-install-tables": "Krouiñ taolennoù",
+    "config-install-tables-failed": "'''Fazi :''' c'hwitet eo krouidigezh an daolenn gant ar fazi-mañ : $1",
+    "config-install-interwiki": "O leuniañ dre ziouer an daolenn etrewiki",
+    "config-install-interwiki-list": "Ne c'haller ket kavout ar restr <code>interwiki.list</code>.",
+    "config-install-stats": "O sevel ar stadegoù",
+    "config-install-keys": "Genel an alc'hwezioù kuzh",
+    "config-install-sysop": "Krouidigezh kont ar merour",
+    "config-install-subscribe-fail": "N'haller ket koumanantiñ da mediawiki-announce : $1",
+    "config-install-mainpage": "O krouiñ ar bajenn bennañ gant un endalc'had dre ziouer",
+    "config-install-extension-tables": "O krouiñ taolennoù evit an astennoù gweredekaet",
+    "config-install-mainpage-failed": "Ne c'haller ket ensoc'hañ ar bajenn bennañ: $1",
+    "config-download-localsettings": "Pellgargañ <code>LocalSettings.php</code>",
+    "config-help": "skoazell",
+    "config-nofile": "N'eus ket bet gallet kavout ar restr \"$1\". Daoust ha dilamet eo bet ?",
+    "mainpagetext": "'''Meziant MediaWiki staliet.'''",
+    "mainpagedocfooter": "Sellit ouzh [//meta.wikimedia.org/wiki/Help:Contents Sturlevr an implijerien] evit gouzout hiroc'h war an doare da implijout ar meziant wiki.\n\n== Kregiñ ganti ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Roll an arventennoù kefluniañ]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAG MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Roll ar c'haozeadennoù diwar-benn dasparzhoù MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Lec'hiañ MediaWiki en ho yezh"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/bs.json b/includes/installer/i18n/bs.json
new file mode 100644 (file)
index 0000000..f876673
--- /dev/null
@@ -0,0 +1,59 @@
+{
+    "@metadata": {
+        "authors": [
+            "CERminator"
+        ]
+    },
+    "config-desc": "Instalacija za MediaWiki",
+    "config-title": "MediaWiki $1 instalacija",
+    "config-information": "Informacija",
+    "config-localsettings-upgrade": "Otkrivena je datoteka <code>LocalSettings.php</code>.\nDa biste unaprijedili vaš softver, molimo vas upišite vrijednost od <code>$wgUpgradeKey</code> u okvir ispod.\nNaći ćete ga u <code>LocalSettings.php</code>.",
+    "config-localsettings-key": "Ključ za nadgradnju:",
+    "config-session-error": "Greška pri pokretanju sesije: $1",
+    "config-no-session": "Vaši podaci sesije su izgubljeni!\nProvjerite vaš php.ini i provjerite da li je <code>session.save_path</code> postavljen na pravilni direktorijum.",
+    "config-your-language": "Vaš jezik:",
+    "config-your-language-help": "Odaberite jezik koji ćete koristiti tokom procesa instalacije.",
+    "config-wiki-language": "Wiki jezik:",
+    "config-wiki-language-help": "Odaberite jezik na kojem će wiki biti najvećim dijelim pisana.",
+    "config-back": "← Nazad",
+    "config-continue": "Nastavi →",
+    "config-page-language": "Jezik",
+    "config-page-welcome": "Dobrodošli u MediaWiki!",
+    "config-page-dbconnect": "Poveži sa bazom podataka",
+    "config-page-upgrade": "Unaprijedi postojeću instalaciju",
+    "config-page-dbsettings": "Postavke baze podataka",
+    "config-page-name": "Naziv",
+    "config-page-options": "Opcije",
+    "config-page-install": "Instaliraj",
+    "config-page-complete": "Završeno!",
+    "config-page-restart": "Ponovi instalaciju ispočetka",
+    "config-page-readme": "Pročitaj me",
+    "config-page-releasenotes": "Bilješke izdanja",
+    "config-page-copying": "Kopiram",
+    "config-page-upgradedoc": "Nadograđujem",
+    "config-help-restart": "Da li želite očistiti sve spremljene podatke koje ste unijeli i da započnete ponovo proces instalacije?",
+    "config-restart": "Da, pokreni ponovo",
+    "config-sidebar": "* [//www.mediawiki.org MediaWiki Početna strana]\n* [//www.mediawiki.org/wiki/Help:Contents Vodič za korisnike]\n* [//www.mediawiki.org/wiki/Manual:Contents Vodič za administratore]\n* [//www.mediawiki.org/wiki/Manual:FAQ NPP]\n----\n* <doclink href=Readme>Pročitaj me</doclink>\n* <doclink href=ReleaseNotes>Napomene izdanja</doclink>\n* <doclink href=Copying>Kopiranje</doclink>\n* <doclink href=UpgradeDoc>Poboljšavanje</doclink>",
+    "config-env-good": "Okruženje je provjereno.\nMožete instalirati MediaWiki.",
+    "config-env-php": "PHP $1 je instaliran.",
+    "config-no-db": "Nije mogao biti pronađen pogodan driver za bazu podataka! Morate instalirati driver baze podataka za PHP.\nSlijedeće vrste baza podataka su podržane: $1.\n\nAko se na dijeljenom serveru, tražite od vašeg pružaoca usluga da instalira pogodan driver za bazu podataka.\nAko se sami kompajlirali PHP, podesite ga sa omogućenim klijentom baze podataka, koristeći naprimjer <code>./configure --with-mysql</code>.\nAko ste instalirali PHP iz Debian ili Ubuntu paketa, možda morate instalirati i modul php5-mysql.",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] je instaliran",
+    "config-apc": "[http://www.php.net/apc APC] je instaliran",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] je instaliran",
+    "config-diff3-bad": "GNU diff3 nije pronađen.",
+    "config-db-type": "Vrsta baze podataka:",
+    "config-db-host": "Domaćin baze podataka:",
+    "config-db-wiki-settings": "Identificiraj ovu wiki",
+    "config-db-name": "Naziv baze podataka:",
+    "config-db-name-oracle": "Šema baze podataka:",
+    "config-header-mysql": "Postavke MySQL",
+    "config-header-postgres": "Postavke PostgreSQL",
+    "config-header-sqlite": "Postavke SQLite",
+    "config-header-oracle": "Postavke Oracle",
+    "config-invalid-db-type": "Nevaljana vrsta baze podataka",
+    "config-upgrade-done": "Nadogradnja završena.\n\nSada možete [$1 početi koristiti vašu wiki].\n\nAko želite regenerisati vašu datoteku <code>LocalSettings.php</code>, kliknite na dugme ispod.\nOvo '''nije preporučeno''' osim ako nemate problema s vašom wiki.",
+    "config-admin-name": "Vaše ime:",
+    "config-admin-password": "Šifra:",
+    "mainpagetext": "'''MediaViki softver is uspješno instaliran.'''",
+    "mainpagedocfooter": "Kontaktirajte [//meta.wikimedia.org/wiki/Help:Contents uputstva za korisnike] za informacije o upotrebi wiki programa.\n\n== Početak ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista postavki]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki najčešće postavljana pitanja]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista E-Mail adresa MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ca.json b/includes/installer/i18n/ca.json
new file mode 100644 (file)
index 0000000..9270e07
--- /dev/null
@@ -0,0 +1,24 @@
+{
+    "@metadata": {
+        "authors": [
+            "Pitort",
+            "පසිඳු කාවින්ද"
+        ]
+    },
+    "config-page-language": "Llengua",
+    "config-page-name": "Nom",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-utf8": "UTF-8",
+    "config-ns-generic": "Projecte",
+    "config-admin-password": "Contrasenya:",
+    "config-profile-wiki": "Wiki públic",
+    "config-profile-private": "Wiki privat",
+    "config-license-pd": "Domini públic",
+    "config-upload-deleted": "Directori pels arxius suprimits:",
+    "config-advanced-settings": "Configuració avançada",
+    "config-extensions": "Extensions",
+    "mainpagetext": "'''El programari del MediaWiki s'ha instaŀlat correctament.'''",
+    "mainpagedocfooter": "Consulteu la [//meta.wikimedia.org/wiki/Help:Contents Guia d'Usuari] per a més informació sobre com utilitzar-lo.\n\n== Per a començar ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Llista de característiques configurables]\n* [//www.mediawiki.org/wiki/Manual:FAQ PMF del MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de correu (''listserv'') per a anuncis del MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ce.json b/includes/installer/i18n/ce.json
new file mode 100644 (file)
index 0000000..944f52b
--- /dev/null
@@ -0,0 +1,20 @@
+{
+    "@metadata": {
+        "authors": [
+            "Sasan700",
+            "Умар"
+        ]
+    },
+    "config-your-language": "Хьан мотт:",
+    "config-continue": "Кхин дӀа →",
+    "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 нисвохааман куьйгаллица].\n\n== Цхьаболу пайде гlирсаш ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Гlирс нисбан тарлушболу могlам];\n* [//www.mediawiki.org/wiki/Manual:FAQ Сих сиха лушдолу хаттарш а жоьпаш оцу MediaWiki];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Хаам бохьуьйту араяларца башхонца керла MediaWiki]."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ceb.json b/includes/installer/i18n/ceb.json
new file mode 100644 (file)
index 0000000..8d4f46a
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Malamposon ang pag-instalar sa MediaWiki.'''",
+    "mainpagedocfooter": "Konsultaha ang [//meta.wikimedia.org/wiki/Help:Contents Giya sa mga gumagamit] alang sa impormasyon unsaon paggamit niining wiki nga software.\n\n== Pagsugod ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Listahan sa mga setting sa kompigurasyon]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ sa MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce  Mailing list sa mga release sa MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ckb.json b/includes/installer/i18n/ckb.json
new file mode 100644 (file)
index 0000000..9319178
--- /dev/null
@@ -0,0 +1,31 @@
+{
+    "@metadata": {
+        "authors": [
+            "Asoxor",
+            "Calak",
+            "Muhammed taha"
+        ]
+    },
+    "config-wiki-language": "زمانی ویکی:",
+    "config-back": "→ گەڕانەوە",
+    "config-continue": "بەردەوامبوون ←",
+    "config-page-language": "زمان",
+    "config-page-welcome": "بەخێربێیت بۆ میدیاویکی!",
+    "config-page-dbconnect": "پەیوەندی دەکات بەبنکەی زانیارییەکان",
+    "config-page-upgrade": "نويکردنەوەی دابەزاندنی پێشوو",
+    "config-page-dbsettings": "ڕێکخستنەکانی بنکەی زانیارییەکان",
+    "config-page-name": "ناو",
+    "config-page-options": "ھەڵبژاردەکان",
+    "config-page-install": "دابەزاندن",
+    "config-page-complete": "تەواو!",
+    "config-page-restart": "دەست پێکردنەوە بەدابەزاندن",
+    "config-page-readme": "بمخوێنەوە",
+    "config-page-copying": "لەبەردەگیرێتەوە",
+    "config-page-upgradedoc": "نوێدەکرێتەوە",
+    "config-page-existingwiki": "ویکی پێشوو",
+    "config-restart": "بەڵێ، دەستی پێ بکەرەوە",
+    "config-env-php": "PHP $1 دابەزێندرا.",
+    "config-env-php-toolow": "PHP $1 دابەزێندرا.\nھەرچۆنێک بێت میدیاویکی پێویستی بە PHP $2 یان بەرزتر ھەیە.",
+    "mainpagetext": "'''میدیاویکی بە سەرکەوتوویی دامەزرا.'''",
+    "mainpagedocfooter": "لە [//meta.wikimedia.org/wiki/Help:Contents ڕێنوێنیی بەکارھێنەران] بۆ زانیاری سەبارەت بە بەکارھێنانی نەرمامێری ویکی کەڵک وەربگرە.\n\n== دەستپێکردن ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings پێرستی ڕێکخستنەکانی شێوەپێدان]\n* [//www.mediawiki.org/wiki/Manual:FAQ پرسیارە دووپاتکراوەکانی میدیاویکی (MediaWiki FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce پێرستی ئیمەیلی وەشانەکانی میدیاویکی]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources خۆماڵیکردنی ویکیمیدیا بۆ زمانەکەت]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/cps.json b/includes/installer/i18n/cps.json
new file mode 100644 (file)
index 0000000..6b2a372
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Oxyzen"
+        ]
+    },
+    "mainpagetext": "'''Madalag-on nga na-install ang MediaWiki.'''",
+    "mainpagedocfooter": "Kunsultahon ang [//meta.wikimedia.org/wiki/Help:Pagtuytoy sa Manug-usar] para sa impormasyon sa paggamit sang wiki nga \"software\".\n\n==Pag-umpisa==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista sang mga setting sang konpigurayon]\n* [//www.mediawiki.org/wiki/Manual:FAQ Mga perme napangkot sa MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista sang mga ginapadal-an sang sulat sang MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/crh-cyrl.json b/includes/installer/i18n/crh-cyrl.json
new file mode 100644 (file)
index 0000000..738cdb1
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki мувафакъиетнен къурулды.'''",
+    "mainpagedocfooter": "Бу викининъ ёл-ёругъыны [//meta.wikimedia.org/wiki/Help:Contents User's Guide къулланыджы къылавузындан] огренип оласынъыз.\n\n== Базы файдалы сайтлар ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Олуджы сазламалар джедвели];\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki боюнджа сыкъ берильген суаллернен джеваплар];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-нинъ янъы версияларынынъ чыкъувындан хабер йиберюв]."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/crh-latn.json b/includes/installer/i18n/crh-latn.json
new file mode 100644 (file)
index 0000000..b0dcc1f
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki muvafaqiyetnen quruldı.'''",
+    "mainpagedocfooter": "Bu vikiniñ yol-yoruğını [//meta.wikimedia.org/wiki/Help:Contents User's Guide qullanıcı qılavuzından] ögrenip olasıñız.\n\n== Bazı faydalı saytlar ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Olucı sazlamalar cedveli];\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki boyunca sıq berilgen suallernen cevaplar];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-niñ yañı versiyalarınıñ çıquvından haber yiberüv]."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/cs.json b/includes/installer/i18n/cs.json
new file mode 100644 (file)
index 0000000..939581e
--- /dev/null
@@ -0,0 +1,313 @@
+{
+    "@metadata": {
+        "authors": [
+            "Danny B.",
+            "Jezevec",
+            "Mormegil",
+            "아라"
+        ]
+    },
+    "config-desc": "Instalační program pro MediaWiki",
+    "config-title": "Instalace MediaWiki $1",
+    "config-information": "Informace",
+    "config-localsettings-upgrade": "Byl nalezen soubor <code>LocalSettings.php</code>.\nPokud chcete stávající instalaci aktualizovat, zadejte hodnotu <code>$wgUpgradeKey</code>, kterou naleznete v souboru <code>LocalSettings.php</code>, do následujícího rámečku.",
+    "config-localsettings-cli-upgrade": "Byl detekován soubor <code><code>LocalSettings.php</code></code>\nPro aktualizaci spusťte místo instalace skript <code>update.php</code>.",
+    "config-localsettings-key": "Klíč pro aktualizaci:",
+    "config-localsettings-badkey": "Zadaný klíč je nesprávný.",
+    "config-upgrade-key-missing": "Byla detekována existující instalace MediaWiki.\nPokud ji chcete aktualizovat, přidejte následující řádku na konec souboru <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "Existující soubor <code>LocalSettings.php</code> vypadá neúplný.\nNení nastavena proměnná $1.\nUpravte soubor <code>LocalSettings.php</code> tak, aby tuto proměnnou obsahoval, a klikněte na „{{int:Config-continue}}“.",
+    "config-localsettings-connection-error": "Při připojování k databázi s využitím nastavení uvedených v <code>LocalSettings.php</code> nebo <code>AdminSettings.php</code> došlo k chybě. Opravte tato nastavení a zkuste to znovu.\n\n$1",
+    "config-session-error": "Nepodařilo se inicializovat relaci: $1",
+    "config-session-expired": "Platnost dat vašeho sezení patrně vypršela.\nSezení má nastavenu životnost $1.\nProdloužit ji můžete nastavením <code>session.gc_maxlifetime</code> v php.ini.\nSpusťte instalační proces od začátku.",
+    "config-no-session": "Data vašeho sezení se ztratila!\nZkontrolujte svůj soubor php.ini a ujistěte se, že <code>session.save_path</code> je nastaveno na odpovídající adresář.",
+    "config-your-language": "Váš jazyk:",
+    "config-your-language-help": "Zvolte jazyk, který se má použít v průběhu instalace.",
+    "config-wiki-language": "Jazyk wiki:",
+    "config-wiki-language-help": "Zvolte jazyk, ve kterém bude většina obsahu wiki.",
+    "config-back": "← Zpět",
+    "config-continue": "Pokračovat →",
+    "config-page-language": "Jazyk",
+    "config-page-welcome": "Vítejte v MediaWiki!",
+    "config-page-dbconnect": "Připojení k databázi",
+    "config-page-upgrade": "Aktualizace existující instalace",
+    "config-page-dbsettings": "Nastavení databáze",
+    "config-page-name": "Název",
+    "config-page-options": "Nastavení",
+    "config-page-install": "Instalovat",
+    "config-page-complete": "Hotovo!",
+    "config-page-restart": "Restartovat instalaci",
+    "config-page-readme": "Soubor Čti mě",
+    "config-page-releasenotes": "Poznámky k vydání",
+    "config-page-copying": "Licence",
+    "config-page-upgradedoc": "Upgrade",
+    "config-page-existingwiki": "Existující wiki",
+    "config-help-restart": "Chcete smazat všechny údaje, které jste zadali, a spustit proces instalace znovu od začátku?",
+    "config-restart": "Ano, restartovat",
+    "config-welcome": "=== Kontrola prostředí ===\nNyní se provedou základní kontroly, aby se zjistilo, zda je toto prostředí použitelné k instalaci MediaWiki.\nPokud budete potřebovat k dokončení instalace pomoc, nezapomeňte sdělit výsledky těchto testů.",
+    "config-copyright": "=== Licence a podmínky ===\n$1\n\nTento program je svobodný software; můžete jej šířit nebo modifikovat podle podmínek GNU General Public License, vydávané Free Software Foundation; buď verze 2 této licence anebo (podle vašeho uvážení) kterékoli pozdější verze.\n\nTento program je distribuován v naději, že bude užitečný, avšak '''bez jakékoli záruky'''; neposkytují se ani odvozené záruky '''prodejnosti''' anebo '''vhodnosti pro určitý účel'''.\nPodrobnosti se dočtete v textu GNU General Public License.\n\n<doclink href=Copying>Kopii GNU General Public License</doclink> jste měli obdržet spolu s tímto programem; pokud ne, napište na Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA nebo [http://www.gnu.org/copyleft/gpl.html si ji přečtěte online].",
+    "config-sidebar": "* [//www.mediawiki.org Oficiální web MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents Uživatelská příručka]\n* [//www.mediawiki.org/wiki/Manual:Contents Administrátorská příručka]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Čti mě</doclink>\n* <doclink href=ReleaseNotes>Poznámky k vydání</doclink>\n* <doclink href=Copying>Licence</doclink>\n* <doclink href=UpgradeDoc>Upgrade</doclink>",
+    "config-env-good": "Prostředí bylo zkontrolováno.\nMůžete nainstalovat MediaWiki.",
+    "config-env-bad": "Prostředí bylo zkontrolováno.\nMediaWiki nelze nainstalovat.",
+    "config-env-php": "Je nainstalováno PHP $1.",
+    "config-env-php-toolow": "Je nainstalováno PHP $1.\nMediaWiki ale vyžaduje PHP $2 nebo vyšší.",
+    "config-unicode-using-utf8": "Pro normalizaci Unicode se používá utf8_normalize.so Briona Vibbera.",
+    "config-unicode-using-intl": "Pro normalizaci Unicode se používá [http://pecl.php.net/intl PECL rozšíření intl].",
+    "config-unicode-pure-php-warning": "'''Upozornění''': Není dostupné [http://pecl.php.net/intl PECL rozšíření intl] pro normalizaci Unicode, bude se využívat pomalá implementace v čistém PHP.\nPokud provozujete wiki s velkým provozem, měli byste si přečíst něco o [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalizaci Unicode].",
+    "config-unicode-update-warning": "'''Upozornění''': Nainstalovaná verze vrstvy pro normalizaci Unicode používá starší verzi knihovny [http://site.icu-project.org/ projektu ICU].\nPokud vám aspoň trochu záleží na používání Unicode, měli byste [//www.mediawiki.org/wiki/Unicode_normalization_considerations ji aktualizovat].",
+    "config-no-db": "Nepodařilo se nalézt vhodný databázový ovladač! Musíte do PHP nainstalovat databázový ovladač.\nJsou podporovány následující typy databází: $1.\n\nPokud jste na sdíleném hostingu, požádejte svého poskytovale o instalaci vhodného databázového ovladače.\nPokud jste si PHP přeložili sami, překonfigurujte ho se zapnutým databázovým klientem, například pomocí <code>./configure --with-mysql</code>.\nPokud jste PHP nainstalovali z balíčku Debian či Ubuntu, potřebujete nainstalovat také modul php5-mysql.",
+    "config-outdated-sqlite": "'''Upozornění''': Máte SQLite $1, které je starší než minimálně vyžadovaná verze $2. SQLite nebude dostupné.",
+    "config-no-fts3": "'''Upozornění''': SQLite bylo přeloženo bez [//sqlite.org/fts3.html modulu FTS3], funkce pro vyhledávání zde nebudou dostupné.",
+    "config-register-globals": "'''Upozornění: Je zapnuta PHP volba <code>[http://php.net/register_globals register_globals]</code>.'''\n'''Pokud můžete, vypněte ji.'''\nMediaWiki bude fungovat, ale váš server je vystaven potenciálním bezpečnostním hrozbám.",
+    "config-magic-quotes-runtime": "'''Kritická chyba: Je zapnuto [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]!'''\nToto nastavení nepředvídatelně poškozuje vstupní data.\nMediaWiki nelze nainstalovat ani používat, dokud není toto nastavení vypnuto.",
+    "config-magic-quotes-sybase": "'''Kritická chyba: Je zapnuto [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]!'''\nToto nastavení nepředvídatelně poškozuje vstupní data.\nMediaWiki nelze nainstalovat ani používat, dokud není toto nastavení vypnuto.",
+    "config-mbstring": "'''Kritická chyba: Je zapnuto [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]!'''\nToto nastavení způsobuje chyby a může nepředvídatelně poškozovat vstupní data.\nMediaWiki nelze nainstalovat ani používat, dokud není toto nastavení vypnuto.",
+    "config-ze1": "'''Kritická chyba: Je zapnut [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]!'''\nToto nastavení způsobuje s MediaWiki příšerné chyby.\nMediaWiki nelze nainstalovat ani používat, dokud není toto nastavení vypnuto.",
+    "config-safe-mode": "'''Upozornění:''' Je aktivní [http://www.php.net/features.safe-mode bezpečný režim] PHP.\nMůže způsobovat potíže, zejména při použití načítání souborů a podpory <code>math</code>.",
+    "config-xml-bad": "Chybí XML modul pro PHP.\nMediaWiki potřebuje funkce v tomto modulu a v této konfiguraci nebude fungovat.\nPokud běžíte na Mandrake, nainstalujte balíček php-xml.",
+    "config-pcre": "Zdá se, že modul s podporou PCRE chybí.\nMediaWiki ke své činnosti potřebuje funkce pro Perl-kompatibilní regulární výrazy.",
+    "config-pcre-no-utf8": "'''Kritická chyba''': PHP modul PCRE byl zřejmě přeložen bez podpory PCRE_UTF8.\nMediaWiki vyžaduje ke správné funkci podporu UTF-8.",
+    "config-memory-raised": "<code>memory_limit</code> v PHP byl nastaven na $1, zvýšen na $2.",
+    "config-memory-bad": "'''Upozornění:''' <code>memory_limit</code> je v PHP nastaven na $1.\nTo je pravděpodobně příliš málo.\nInstalace může selhat!",
+    "config-ctype": "'''Kritická chyba''': PHP musí být přeloženo s podporou pro [http://www.php.net/manual/en/ctype.installation.php rozšíření Ctype].",
+    "config-json": "'''Kritická chyba:''' PHP bylo přeloženo bez podpory JSON.\nPřed instalací MediaWiki musíte buď nainstalovat rozšíření PHP JSON nebo rozšíření [http://pecl.php.net/package/jsonc PECL jsonc].\n* Rozšíření PHP je součástí Red Hat Enterprise Linux (CentOS) 5 a 6, avšak musí se povolit v <code>/etc/php.ini</code> nebo <code>/etc/php.d/json.ini</code>.\n* V některých linuxových distribucích vydaných po květnu 2013 může toto rozšíření PHP chybět a místo toho mohou používat rozšíření PECL jako <code>php5-json</code> nebo <code>php-pecl-jsonc</code>.",
+    "config-xcache": "Je nainstalována [http://xcache.lighttpd.net/ XCache]",
+    "config-apc": "Je nainstalováno [http://www.php.net/apc APC]",
+    "config-wincache": "Je nainstalována [http://www.iis.net/download/WinCacheForPhp WinCache]",
+    "config-no-cache": "'''Upozornění:''' Nebylo nalezeno [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache], ani [http://www.iis.net/download/WinCacheForPhp WinCache].\nKešování objektů bude vypnuto.",
+    "config-mod-security": "'''Upozornění''': váš webový server má zapnuto [http://modsecurity.org/ mod_security]. Při chybné konfiguraci může způsobovat potíže MediaWiki či dalším programům, které umožňují ukládat libovolný obsah.\nPokud narazíte na náhodné chyby, podívejte se do [http://modsecurity.org/documentation/ dokumentace mod_security] nebo kontaktujte technickou podporu vašeho poskytovatele.",
+    "config-diff3-bad": "Nebyl nalezen GNU diff3.",
+    "config-git": "Nalezen software pro správu verzí Git: <code>$1</code>.",
+    "config-git-bad": "Software pro správu verzí Git nebyl nalezen.",
+    "config-imagemagick": "Nalezen ImageMagick: <code>$1</code>.\nPokud povolíte načítání souborů, bude zapnuto vytváření náhledů.",
+    "config-gd": "Nalezena vestavěná grafická knihovna GD.\nPokud povolíte načítání souborů, bude zapnuto vytváření náhledů.",
+    "config-no-scaling": "Nebyla nalezena knihovna GD ani ImageMagick.\nVytváření náhledů bude vypnuto.",
+    "config-no-uri": "'''Chyba:''' Nepodařilo se určit aktuální URI.\nInstalace přerušena.",
+    "config-no-cli-uri": "'''Upozornění''': Nebylo uvedeno --scriptpath, používá se implicitní hodnota: <code>$1</code>.",
+    "config-using-server": "Použito jméno serveru „<nowiki>$1</nowiki>“.",
+    "config-using-uri": "Použito URL serveru „<nowiki>$1$2</nowiki>“.",
+    "config-uploads-not-safe": "'''Upozornění:''' Váš implicitní adresář pro načítání souborů <code>$1</code> umožňuje provádění libovolných skriptů.\nPřestože MediaWiki všechny načítané soubory kontroluje proti bezpečnostním hrozbám, je důrazně doporučeno [//www.mediawiki.org/wiki/Manual:Security#Upload_security tuto bezpečnostní díru zacelit] před povolením načítání souborů.",
+    "config-no-cli-uploads-check": "'''Upozornění:''' Váš implicitní adresář pro načítané soubory (<code>$1</code>) se při instalaci z příkazového řádku nekontroluje na bezpečnostní hrozbu provádění libovolných skriptů.",
+    "config-brokenlibxml": "Váš systém obsahuje kombinaci verzí PHP a libxml2, která je chybná a může v MediaWiki a dalších webových aplikacích způsobovat skryté poškozování dat.\nAktualizujte na PHP 5.2.9 nebo novější a libxml2 2.7.3 nebo novější ([//bugs.php.net/bug.php?id=45996 chyba evidovaná u PHP]).\nInstalace přerušena.",
+    "config-using531": "MediaWiki nelze používat na PHP $1 kvůli chybě při předávání parametrů odkazem do <code>__call()</code>.\nPro vyřešení upgradujte na PHP 5.3.2 nebo vyšší nebo downgradujte na PHP 5.3.0.\nInstalace přerušena.",
+    "config-suhosin-max-value-length": "Je nainstalován Suhosin, který omezuje délku parametrů GET na $1 bajtů.\nKomponenta ResourceLoader z MediaWiki dokáže s tímto omezením pracovat, ale sníží to výkon.\nPokud to je alespoň trochu možné, měli byste v <code>php.ini</code> nastavit <code>suhosin.get.max_value_length</code> na 1024 nebo vyšší a na stejnou hodnotu nastavit v <code>LocalSettings.php</code> proměnnou <code>$wgResourceLoaderMaxQueryLength</code>.",
+    "config-db-type": "Typ databáze:",
+    "config-db-host": "Databázový server:",
+    "config-db-host-help": "Pokud je váš databázový server na jiném počítači, zadejte zde jméno stroje nebo IP adresu.\n\nPokud používáte sdílený webový hosting, váš poskytovatel by vám měl v dokumentaci sdělit správné jméno stroje.\n\nPokud instalujete na server běžící na Windows a používáte MySQL, jméno „localhost“ nemusí fungovat. V takovém případě zkuste jako místní IP adresu zadat „127.0.0.1“.\n\nPokud používáte PostgreSQL, můžete se připojit Unixovými sockety tak, že toto pole necháte prázdné.",
+    "config-db-host-oracle": "Databázové TNS:",
+    "config-db-host-oracle-help": "Zadejte platné [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name]; tato instalace musí vidět soubor tnsnames.ora.<br />Pokud používáte klientské knihovny verze 10g nebo novější, můžete také používat názvy [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
+    "config-db-wiki-settings": "Identifikace této wiki",
+    "config-db-name": "Jméno databáze:",
+    "config-db-name-help": "Zvolte jméno, které označuje vaši wiki.\nNemělo by obsahovat mezery.\n\nPokud používáte sdílený webový hosting, váš poskytovatel vám buď sdělí konkrétní jméno databáze, nebo vás nechá vytvářet databáze pomocí nějakého ovládacího panelu.",
+    "config-db-name-oracle": "Databázové schéma:",
+    "config-db-account-oracle-warn": "Existují tři podporované možnosti pro instalaci s použitím databáze Oracle.\n\nPokud chcete v rámci instalace založit databázový účet, zadejte jako databázový účet pro instalaci účet s rolí SYSDBA a uveďte požadované údaje pro účet pro webový přístup, jinak můžete vytvořit účet pro webový přístup ručně a zadat pouze tento účet (pokud má dostatečná oprávnění k zakládání objektů schématu) nebo poskytnout dva různé účty, jeden s oprávněními k zakládání, druhý omezený pro webový přístup.\n\nSkript pro založení účtu s potřebnými privilegii můžete v této instalaci nalézt v adresáři „maintenance/oracle/“. Nezapomeňte, že použití omezeného účtu znepřístupní veškeré možnosti údržby přes implicitní účet.",
+    "config-db-install-account": "Uživatelský účet pro instalaci",
+    "config-db-username": "Databázové uživatelské jméno:",
+    "config-db-password": "Databázové heslo:",
+    "config-db-password-empty": "Zadejte heslo pro nového databázového uživatele: $1.\nPřestože může jít zakládat nové uživatele i bez hesel, není to bezpečné.",
+    "config-db-install-username": "Zadejte uživatelské jméno, které se použije pro připojení k databázi v průběhu instalace.\nToto není jméno uživatelského účtu MediaWiki; toto je uživatelské jméno k vaší databázi.",
+    "config-db-install-password": "Zadejte heslo, které se použije pro připojení k databázi v průběhu instalace.\nToto není heslo uživatelského účtu MediaWiki; toto je heslo k vaší databázi.",
+    "config-db-install-help": "Zadejte uživatelské jméno a heslo, které se použijí pro připojení k databázi v průběhu instalace.",
+    "config-db-account-lock": "Použít stejné uživatelské jméno a heslo pro běžnou činnost",
+    "config-db-wiki-account": "Uživatelský účet pro běžnou činnost",
+    "config-db-wiki-help": "Zadejte uživatelské jméno a heslo, které se bude používat pro připojení k databázi za běžného provozu wiki.\nPokud účet neexistuje a instalační účet má dostatečná oprávnění, bude tento uživatelský účet založen s minimálními oprávněními potřebnými k provozu wiki.",
+    "config-db-prefix": "Prefix databázových tabulek:",
+    "config-db-prefix-help": "Pokud potřebujete sdílet jednu databázi mezi vícero wiki, případně mezi MediaWiki a další webovou aplikací, můžete přidat k názvu každé tabulky prefix, abyste se vyhnuli konfliktům.\nNepoužívejte mezery.\n\nToto pole se zpravidla ponechává prázdné.",
+    "config-db-charset": "Znaková sada databáze",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binární",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 zpětně kompatibilní UTF-8",
+    "config-charset-help": "'''Upozornění:''' Pokud použijete '''zpětně kompatibilní UTF-8''' na MySQL 4.1+ a následně zazálohujete databázi pomocí <code>mysqldump</code>, může to zničit všechny ne-ASCII znaky, což nevratně poškodí vaše zálohy!\n\nV '''binárním režimu''' ukládá MediaWiki text v UTF-8 do databáze v binárních sloupcích.\nTo je výkonnější než UTF-8 režim MySQL a umožňuje využít plný rozsah znaků Unicode.\nV '''režimu UTF-8''' bude MySQL znát znakovou sadu vašich dat a může je příslušně zobrazovat a převádět,\nale neumožní vám uložit znaky mimo [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+    "config-mysql-old": "Je vyžadováno MySQL $1 nebo novější, vy máte $2.",
+    "config-db-port": "Databázový port:",
+    "config-db-schema": "Schéma pro MediaWiki:",
+    "config-db-schema-help": "Toto schéma zpravidla stačí.\nMěňte ho, jen pokud víte, že je to potřeba.",
+    "config-pg-test-error": "Nelze se připojit k databázi '''$1''': $2",
+    "config-sqlite-dir": "Adresář pro data SQLite:",
+    "config-sqlite-dir-help": "SQLite ukládá veškerá data v jediném souboru.\n\nZadaný adresář musí být v průběhu instalace být přístupný pro zápis.\n\n'''Neměl by''' být dostupný z webu, proto ho nedáváme tam, kde jsou vaše PHP soubory.\n\nInstalátor do adresáře přidá soubor <code>.htaccess</code>, ale pokud to selže, mohl by někdo získat přístup k vaší holé databázi.\nTo zahrnuje syrová uživatelská data (e-mailové adresy, hašovaná hesla), jako i smazané revize a další data s omezeným přístupem z vaší wiki.\n\nZvažte umístění databáze někam zcela jinam, například do <code>/var/lib/mediawiki/mojewiki</code>.",
+    "config-oracle-def-ts": "Implicitní tabulkový prostor:",
+    "config-oracle-temp-ts": "Dočasný tabulkový prostor:",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Věštba",
+    "config-support-info": "MediaWiki podporuje následující databázové systémy:\n\n$1\n\nPokud v nabídce níže nevidíte databázový systém, který chcete použít, musíte pro zapnutí podpory následovat instrukce odkázané výše.",
+    "config-support-mysql": "* $1 je pro MediaWiki hlavní platformou a je podporováno nejlépe ([http://www.php.net/manual/en/mysql.installation.php jak zkompilovat PHP s podporou MySQL])",
+    "config-support-postgres": "* $1 je populární open-source databázový systém používaný jako alternativa k MySQL ([http://www.php.net/manual/en/pgsql.installation.php jak přeložit PHP s podporou PostgreSQL]). Mohou se vyskytnout ještě nějaké menší chyby, použití v produkčním prostředí se nedoporučuje.",
+    "config-support-sqlite": "* $1 je velmi dobře podporovaný lehký databázový systém. ([http://www.php.net/manual/en/pdo.installation.php Jak přeložit PHP s podporou SQLite], používá PDO)",
+    "config-support-oracle": "* $1 je komerční podniková databáze. ([http://www.php.net/manual/en/oci8.installation.php Jak přeložit PHP s podporou OCI8])",
+    "config-header-mysql": "Nastavení MySQL",
+    "config-header-postgres": "Nastavení PostgreSQL",
+    "config-header-sqlite": "Nastavení SQLite",
+    "config-header-oracle": "Nastavení Oracle",
+    "config-invalid-db-type": "Chybný typ databáze",
+    "config-missing-db-name": "Musíte zadat hodnotu pro „Jméno databáze“",
+    "config-missing-db-host": "Musíte zadat hodnotu pro „Databázový server“",
+    "config-missing-db-server-oracle": "Musíte zadat hodnotu pro „Databázové TNS“",
+    "config-invalid-db-server-oracle": "Chybné databázové TNS „$1“.\nPoužívejte buď „TNS Name“ nebo „Easy Connect“ (vizte [http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle Naming Methods]).",
+    "config-invalid-db-name": "Chybné jméno databáze „$1“.\nPoužívejte pouze ASCII písmena (a-z, A-Z), čísla (0-9), podtržítko (_) a spojovník (-).",
+    "config-invalid-db-prefix": "Chybný databázový prefix „$1“.\nPoužívejte pouze ASCII písmena (a-z, A-Z), čísla (0-9), podtržítko (_) a spojovník (-).",
+    "config-connection-error": "$1.\n\nZkontrolujte server, uživatelské jméno a heslo a zkuste to znovu.",
+    "config-invalid-schema": "Neplatné schéma pro MediaWiki „$1“.\nPoužívejte pouze ASCII písmena (a-z, A-Z), čísla (0-9) a podtržítko (_).",
+    "config-db-sys-create-oracle": "Instalátor podporuje zakládání nového účtu pouze prostřednictvím účtu SYSDBA.",
+    "config-db-sys-user-exists-oracle": "Uživatelský účet „$1“ již existuje. SYSDBA lze použít pouze pro založení nového účtu!",
+    "config-postgres-old": "Je vyžadován PostgreSQL $1 nebo novější, vy máte $2.",
+    "config-sqlite-name-help": "Zvolte jméno, které označuje vaši wiki.\nNepoužívejte mezery a spojovníky.\nPoužije se jako název souboru s daty SQLite.",
+    "config-sqlite-parent-unwritable-group": "Nelze vytvořit datový adresář <code><nowiki>$1</nowiki></code>, protože do nadřazeného adresáře <code><nowiki>$2</nowiki></code> nemá webový server právo zapisovat.\n\nInstalátor zjistil uživatele, pod kterým váš webový server běží.\nAbyste mohli pokračovat, umožněte mu zapisovat do adresáře <code><nowiki>$3</nowiki></code>.\nNa systémech Unix/Linux proveďte:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Nelze vytvořit datový adresář <code><nowiki>$1</nowiki></code>, protože do nadřazeného adresáře <code><nowiki>$2</nowiki></code> nemá webový server právo zapisovat.\n\nInstalátoru se nepodařilo zjistit uživatele, pod kterým váš webový server běží.\nAbyste mohli pokračovat, umožněte zápis do <code><nowiki>$3</nowiki></code> všem uživatelům.\nNa systémech Unix/Linux proveďte:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Chyba při vytváření datového adresáře „$1“.\nZkontrolujte umístění a zkuste to znovu.",
+    "config-sqlite-dir-unwritable": "Nelze zapisovat do adresáře „$1“.\nZměňte na něm oprávnění, aby do něj mohl webový server zapisovat, a zkuste to znovu.",
+    "config-sqlite-connection-error": "$1.\n\nZkontrolujte datový adresář a jméno databáze níže a zkuste to znovu.",
+    "config-sqlite-readonly": "Do souboru <code>$1</code> nelze zapisovat.",
+    "config-sqlite-cant-create-db": "Nepodařilo se vytvořit databázový soubor <code>$1</code>.",
+    "config-sqlite-fts3-downgrade": "PHP neobsahuje podporu FTS3, downgradují se tabulky",
+    "config-can-upgrade": "V této databázi jsou tabulky MediaWiki.\nPokud je chcete aktualizovat na MediaWiki $1, klikněte na '''Pokračovat'''.",
+    "config-upgrade-done": "Aktualizace byla dokončena.\n\nSvou wiki teď můžete [$1 začít používat].\n\nPokud chcete přegenerovat soubor <code>LocalSettings.php</code>, klikněte na tlačítko níže.\nTo se ale '''nedoporučuje''', pokud s wiki nemáte problémy.",
+    "config-upgrade-done-no-regenerate": "Aktualizace byla dokončena.\n\nSvou wiki teď můžete [$1 začít používat].",
+    "config-regenerate": "Přegenerovat LocalSettings.php →",
+    "config-show-table-status": "Dotaz <code>SHOW TABLE STATUS</code> se nezdařil!",
+    "config-unknown-collation": "'''Upozornění:''' Databáze používá nerozpoznané řazení.",
+    "config-db-web-account": "Databázový účet pro webový přístup",
+    "config-db-web-help": "Zvolte uživatelské jméno a heslo, které bude webový server používat pro připojení k databázovému serveru při běžném provozu wiki.",
+    "config-db-web-account-same": "Použít stejný účet jako pro instalaci",
+    "config-db-web-create": "Založit účet, pokud zatím neexistuje",
+    "config-db-web-no-create-privs": "Účet uvedený pro instalaci nemá oprávnění dostatečná pro založení nového účtu.\nÚčet, který zde uvedete, již musí existovat.",
+    "config-mysql-engine": "Typ úložiště:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''Upozornění''': Jako typ úložiště pro MySQL jste zvolili MyISAM, které není pro použití v MediaWiki doporučeno, neboť:\n* stěží podporuje současný přístup kvůli zamykání tabulek,\n* je náchylnější na poškození dat než jiná úložiště,\n* kód MediaWiki nepodporuje MyISAM vždy tak dobře, jak by měl.\n\nPokud vaše instalace MySQL podporuje InnoDB, důrazně doporučujeme použít spíše to.\nPokud vaše instalace MySQL InnoDB nepodporuje, možná je čas na aktualizaci.",
+    "config-mysql-only-myisam-dep": "'''Upozornění:''' Jediným dostupným formátem dat pro MySQL je MyISAM, který se k užití pro MediaWiki nedoporučuje, protože:\n* téměř nepodporuje současný přístup kvůli zamykání tabulek,\n* oproti jiným formátům je náchylnější k poškození,\n* kód MediaWiki nepodporuje MyISAM tak dobře, jak by bylo potřeba.\n\nVaše instalace MySQL nepodporuje InnoDB, možná je na čase upgradovat.",
+    "config-mysql-engine-help": "'''InnoDB''' je téměř vždy nejlepší volba, neboť má dobrou podporu současného přístupu.\n\n'''MyISAM''' může být rychlejší u instalací pro jednoho uživatele nebo jen pro čtení.\nDatabáze MyISAM bývají poškozeny častěji než databáze InnoDB.",
+    "config-mysql-charset": "Znaková sada databáze:",
+    "config-mysql-binary": "Binární",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "V '''binárním režimu''' ukládá MediaWiki text v UTF-8 do databáze v binárních sloupcích.\nTo je výkonnější než UTF-8 režim MySQL a umožňuje využít plný rozsah znaků Unicode.\n\nV '''režimu UTF-8''' bude MySQL znát znakovou sadu vašich dat a může je příslušně zobrazovat a převádět, ale neumožní vám uložit znaky mimo [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+    "config-site-name": "Název wiki:",
+    "config-site-name-help": "Bude se zobrazovat v titulku prohlížeče a na dalších místech.",
+    "config-site-name-blank": "Zadejte název serveru.",
+    "config-project-namespace": "Jmenný prostor projektu:",
+    "config-ns-generic": "Projekt",
+    "config-ns-site-name": "Stejný jako název wiki: $1",
+    "config-ns-other": "Jiný (uveďte)",
+    "config-ns-other-default": "MojeWiki",
+    "config-project-namespace-help": "Po vzoru Wikipedie udržuje mnoho wiki stránky se svými pravidly odděleně od stránek s vlastním obsahem, v „'''jmenném prostoru projektu'''“.\nNázvy všech stránek v tomto jmenném prostoru začínají jistým prefixem, který zde můžete nastavit.\nZvykem je odvozovat tento prefix z názvu wiki, ale nesmí obsahovat jisté interpunkční znaky jako „#“ nebo „:“.",
+    "config-ns-invalid": "Uvedený jmenný prostor „<nowiki>$1</nowiki>“ je neplatný.\nZadejte jiný jmenný prostor projektu.",
+    "config-ns-conflict": "Uvedený jmenný prostor „<nowiki>$1</nowiki>“ koliduje se standardním jmenným prostorem MediaWiki.\nZadejte jiný jmenný prostor projektu.",
+    "config-admin-box": "Správcovský účet",
+    "config-admin-name": "Vaše jméno:",
+    "config-admin-password": "Heslo:",
+    "config-admin-password-confirm": "Heslo ještě jednou:",
+    "config-admin-help": "Zde zadejte své požadované uživatelské jméno, například „Pepa Novák“.\nTímto jménem se budete do wiki hlásit.",
+    "config-admin-name-blank": "Zadejte uživatelské jméno správce.",
+    "config-admin-name-invalid": "Uvedené uživatelské jméno „<nowiki>$1</nowiki>“ není platné.\nZadejte jiné uživatelské jméno.",
+    "config-admin-password-blank": "Zadejte heslo ke správcovskému účtu.",
+    "config-admin-password-same": "Heslo nesmí být stejné jako uživatelské jméno.",
+    "config-admin-password-mismatch": "Uvedená hesla se neshodují.",
+    "config-admin-email": "E-mailová adresa:",
+    "config-admin-email-help": "Zde zadejte e-mailovou adresu, která vám umožní přijímat e-maily od ostatních uživatelů wiki, získat nové heslo a přijímat notifikace o změnách sledovaných stránek. Tohle pole můžete nechat prázdné.",
+    "config-admin-error-user": "Vnitřní chyba při vytváření správce se jménem „<nowiki>$1</nowiki>“.",
+    "config-admin-error-password": "Vnitřní chyba při nastavování hesla správci se jménem „<nowiki>$1</nowiki>“: <pre>$2</pre>",
+    "config-admin-error-bademail": "Zadali jste neplatnou e-mailovou adresu.",
+    "config-subscribe": "Přihlásit se k odběru [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce e-mailové konference pro oznamování nových verzí].",
+    "config-subscribe-help": "Tohle je e-mailová konference s nízkým provozem, na které se oznamují nové verze, včetně důležitých bezpečnostních oznámení.\nMěli byste se do ní přihlásit a při vydání nových verzí aktualizovat svou instalaci MediaWiki.",
+    "config-subscribe-noemail": "Pokusili jste se přihlásit k odběru e-mailové konference pro oznamování nových verzí, aniž byste poskytli e-mailovou adresu.\nPokud se chcete přihlásit k odběru, zadejte e-mailovou adresu.",
+    "config-almost-done": "Už jsme skoro hotovi!\nZbývající konfiguraci už můžete přeskočit a nainstalovat wiki hned teď.",
+    "config-optional-continue": "Ptejte se mě dál.",
+    "config-optional-skip": "Už mě to nudí, prostě nainstalujte wiki.",
+    "config-profile": "Profil uživatelských práv:",
+    "config-profile-wiki": "Otevřená wiki",
+    "config-profile-no-anon": "Vyžadována registrace uživatelů",
+    "config-profile-fishbowl": "Editace jen pro vybrané",
+    "config-profile-private": "Soukromá wiki",
+    "config-profile-help": "Wiki fungují nejlépe, když je necháte editovat co největším možným počtem lidí.\nV MediaWiki můžete snadno kontrolovat poslední změny a vracet zpět libovolnou škodu způsobenou hloupými nebo zlými uživateli.\n\nMnoho lidí však zjistilo, že je MediaWiki užitečné v širokém spektru rolí a někdy není snadné všechny přesvědčit o výhodách wikizvyklostí.\nTakže si můžete vybrat.\n\nModel '''{{int:config-profile-wiki}}''' dovoluje editovat všem, aniž by se museli přihlašovat.\nNa wiki, kde je '''{{int:config-profile-no-anon}}''', se lépe řídí zodpovědnost, ale může to odradit náhodné přispěvatele.\n\nProfil '''{{int:config-profile-fishbowl}}''' umožňuje schváleným uživatelům editovat, ale veřejnost si může stránky prohlížet včetně jejich historie.\n'''{{int:config-profile-private}}''' dovoluje stránky prohlížet jen schváleným uživatelům, kteří je i mohou editovat.\n\nPo instalaci je možná komplexní konfigurace uživatelských práv; vizte [//www.mediawiki.org/wiki/Manual:User_rights odpovídající stránku příručky].",
+    "config-license": "Autorská práva a licence:",
+    "config-license-none": "Bez patičky s licencí",
+    "config-license-cc-by-sa": "Creative Commons Uveďte autora-Zachovejte licenci",
+    "config-license-cc-by": "Creative Commons Uveďte autora",
+    "config-license-cc-by-nc-sa": "Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci",
+    "config-license-cc-0": "Creative Commons Zero (volné dílo)",
+    "config-license-gfdl": "GNU Free Documentation License 1.3 nebo novější",
+    "config-license-pd": "Volné dílo",
+    "config-license-cc-choose": "Zvolit vlastní licenci Creative Commons",
+    "config-license-help": "Mnoho veřejných wiki všechny příspěvky zveřejňuje pod některou [http://freedomdefined.org/Definition/Cs svobodnou licencí].\nTo pomáhá vytvořit duch komunitního vlastnictví a povzbuzuje dlouhodobé přispívání.\nTo obecně není potřeba u soukromé nebo firemní wiki.\n\nPokud chcete být schopni používat text z Wikipedie a chcete, aby Wikipedie byla schopna přijímat text okopírovaný z vaší wiki, měli byste zvolit '''Creative Commons Uveďte autora-Zachovejte licenci'''.\n\nDříve Wikipedie používala GNU Free Documentation License.\nGFDL je platná licence, ale složité jí porozumět.\nTaké je komplikované používat obsah licencovaný pod GFDL.",
+    "config-email-settings": "Nastavení e-mailu",
+    "config-enable-email": "Zapnout odchozí e-mail",
+    "config-enable-email-help": "Pokud chcete, aby e-mail fungoval, je potřeba správně nakonfigurovat [http://www.php.net/manual/en/mail.configuration.php e-mailová nastavení PHP].\nPokud nechcete žádné e-mailové funkce, můžete je zde vypnout.",
+    "config-email-user": "Umožnit vzájemné e-maily mezi uživateli",
+    "config-email-user-help": "Umožní všem uživatelům posílat si navzájem e-maily, pokud si to zapnout v uživatelském nastavení.",
+    "config-email-usertalk": "Umožnit notifikace k uživatelským diskusím",
+    "config-email-usertalk-help": "Umožní uživatelům přijímat notifikace o změnách uživatelských diskusí, pokud si to zapnou v nastavení.",
+    "config-email-watchlist": "Umožnit notifikace ke sledovaným stránkám",
+    "config-email-watchlist-help": "Umožní uživatelům přijímat notifikace o změnách sledovaných stránek, pokud si to zapnou v nastavení.",
+    "config-email-auth": "Zapnout ověřování e-mailů",
+    "config-email-auth-help": "Pokud je tato volba vybrána, uživatelé musí potvrdit svou e-mailovou adresu pomocí odkazu, který je jim poslán, kdykoli si ji nastaví nebo změní.\nJen potvrzené e-mailové adresy mohou přijímat e-maily od ostatních uživatelů a e-maily s notifikacemi o změnách.\nNastavení této volby je '''doporučeno''' pro veřejné wiki kvůli možnosti zneužití e-mailových funkcí.",
+    "config-email-sender": "Návratová e-mailová adresa:",
+    "config-email-sender-help": "Zadejte e-mailovou adresu, která se má použít jako návratová na odchozích e-mailech.\nSem budou zasílány nedoručitelné zprávy.\nMnoho mailových serverů vyžaduje, aby byla přinejmenším část s doménovým jménem platná.",
+    "config-upload-settings": "Obrázky a načítání souborů",
+    "config-upload-enable": "Povolit načítání souborů",
+    "config-upload-help": "Načítání souborů potenciálně vystavuje váš server bezpečnostním rizikům.\nVíce informací naleznete v [//www.mediawiki.org/wiki/Manual:Security části o bezpečnosti] v příručce.\n\nPro umožnění načítání souborů změňte práva na podadresáři <code>images</code> pod kořenovým adresářem MediaWiki, aby do něj mohl webový server zapisovat.\nPoté zapněte tuto volbu.",
+    "config-upload-deleted": "Adresář pro smazané soubory:",
+    "config-upload-deleted-help": "Zvolte adresář, do kterého se mají archivovat smazané soubory.\nTento adresář by ideálně neměl být dostupný z webu.",
+    "config-logo": "URL loga:",
+    "config-logo-help": "Základní vzhled MediaWiki zahrnuje místo pro logo o velikosti 135×160 pixelů nad bočním menu.\nNačtěte obrázek odpovídající velikosti a zadejte sem jeho URL.\n\nPokud je vaše logo umístěno relativně vůči <code>$wgStylePath</code> nebo <code>$wgScriptPath</code>, můžete zde tyto proměnné použít.\n\nPokud logo nechcete, ponechte toto pole prázdné.",
+    "config-instantcommons": "Zapnout Instant Commons",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] je funkce, která umožňuje wiki používat obrázky, zvuky a další mediální soubory ze serveru [//commons.wikimedia.org/wiki/Hlavn%C3%AD_strana Wikimedia Commons].\nAby to bylo možné, potřebuje mít MediaWiki přístup k internetu.\n\nVíce informací o této funkci, včetně instrukcí, jak ji nastavit pro jiné wiki než Wikimedia Commons, najdete v [//mediawiki.org/wiki/Manual:$wgForeignFileRepos příručce].",
+    "config-cc-error": "Volič licence Creative Commons nevrátil žádný výsledek.\nZadejte název licence ručně.",
+    "config-cc-again": "Zvolit znovu…",
+    "config-cc-not-chosen": "Zvolte si požadovanou licenci Creative Commons a klikněte na tlačítko.",
+    "config-advanced-settings": "Pokročilá konfigurace",
+    "config-cache-options": "Nastavení cachování objektů:",
+    "config-cache-help": "Cachování objektů se používá pro vylepšení rychlosti MediaWiki tím, že se cachují často používaná data.\nStředním až velkým serverům se jeho zapnutí důrazně doporučuje, i menší servery pocítí jeho výhody.",
+    "config-cache-none": "Bez cachování (o žádnou funkcionalitu nepřijdete, na větších wiki však může dojít ke zhoršení rychlosti)",
+    "config-cache-accel": "Cachování PHP objektů (APC, XCache nebo WinCache)",
+    "config-cache-memcached": "Použít Memcached (vyžaduje další nastavení a konfiguraci)",
+    "config-memcached-servers": "Servery Memcached:",
+    "config-memcached-help": "Seznam IP adres, které se mají používat pro Memcached.\nUveďte jednu na řádek spolu s portem. Například:\n 127.0.0.1:11211\n 192.168.1.25:1234",
+    "config-memcache-needservers": "Jako typ cache jste zvolili Memcached, ale neuvedli jste žádné servery.",
+    "config-memcache-badip": "Zadali jste neplatnou IP adresu pro Memcached: $1.",
+    "config-memcache-noport": "Nezadali jste port serveru Memcached: $1.\nPokud port neznáte, implicitní je 11211.",
+    "config-memcache-badport": "Čísla portů pro Memcached by měla být mezi $1 a $2.",
+    "config-extensions": "Rozšíření",
+    "config-extensions-help": "Výše uvedená rozšíření byla nalezena ve vašem adresáři <code>./extensions</code>.\n\nMohou vyžadovat dodatečnou konfiguraci, ale teď je můžete povolit.",
+    "config-install-alreadydone": "'''Upozornění:''' Vypadá to, že jste MediaWiki již nainstalovali a teď se o to pokoušíte znovu.\nPokračujte na další stránku.",
+    "config-install-begin": "Stisknutím „{{int:config-continue}}“ spustíte instalaci MediaWiki.\nPokud ještě chcete udělat nějaké změny, stiskněte „{{int:config-back}}“.",
+    "config-install-step-done": "hotovo",
+    "config-install-step-failed": "selhaly",
+    "config-install-extensions": "Vkládají se rozšíření",
+    "config-install-database": "Připravuje se databáze",
+    "config-install-schema": "Vytváří se schéma",
+    "config-install-pg-schema-not-exist": "Schéma PostgreSQL neexistuje.",
+    "config-install-pg-schema-failed": "Založení tabulek se nezdařilo.\nUjistěte se, že uživatel „$1“ může zapisovat do schématu „$2“.",
+    "config-install-pg-commit": "Potvrzují se změny",
+    "config-install-pg-plpgsql": "Kontroluje se jazyk PL/pgSQL",
+    "config-pg-no-plpgsql": "Musíte do databáze $1 nainstalovat jazyk PL/pgSQL",
+    "config-pg-no-create-privs": "Účet zadaný pro instalaci nemá oprávnění k založení uživatelského účtu.",
+    "config-pg-not-in-role": "Účet zadaný pro webového uživatele již existuje\nÚčet zadaný pro instalaci není superuživatelský a není členem role webového uživatele, takže nemůže zakládat objekty vlastněné webovým uživatelem.\n\nMediaWiki v současné době vyžaduje, aby byl vlastníkem tabulek webový uživatel. Uveďte jiný název účtu webového uživatele nebo klikněte na „zpět“ a zadejte instalačního uživatele s odpovídajícími oprávněními.",
+    "config-install-user": "Vytváří se databázový uživatel",
+    "config-install-user-alreadyexists": "Uživatel „$1“ už existuje",
+    "config-install-user-create-failed": "Vytváření uživatele „$1“ selhalo: $2",
+    "config-install-user-grant-failed": "Uživateli „$1“ se nepodařilo přidělit oprávnění: $2",
+    "config-install-user-missing": "Zadaný uživatel „$1“ neexistuje.",
+    "config-install-user-missing-create": "Zadaný uživatel „$1“ neexistuje.\nPokud ho chcete založit, zaškrtněte možnost „založit účet“ níže.",
+    "config-install-tables": "Vytvářejí se tabulky",
+    "config-install-tables-exist": "'''Upozornění''': Vypadá to, že tabulky MediaWiki již existují.\nPřeskakuje se jejich zakládání.",
+    "config-install-tables-failed": "'''Chyba''': Vytvoření tabulek selhalo s následující chybou: $1",
+    "config-install-interwiki": "Tabulka interwiki se plní implicitními položkami",
+    "config-install-interwiki-list": "Nelze přečíst soubor <code>interwiki.list</code>.",
+    "config-install-interwiki-exists": "'''Upozornění''': Vypadá to, že tabulka interwiki již obsahuje nějaké záznamy.\nPřeskakuje se implicitní seznam.",
+    "config-install-stats": "Inicializují se statistiky",
+    "config-install-keys": "Vytvářejí se tajné klíče",
+    "config-insecure-keys": "'''Upozornění:''' {{PLURAL:$2|Tajný klíč|Tajné klíče}} ($1) vytvořené v průběhu instalace {{PLURAL:$2|není|nejsou}} zcela {{PLURAL:$2|bezpečný|bezpečné}}. Zvažte {{PLURAL:$2|jeho|jejich}} ruční změnu.",
+    "config-install-sysop": "Zakládá se uživatelský účet správce",
+    "config-install-subscribe-fail": "Nelze se přihlásit k odběru mediawiki-announce: $1",
+    "config-install-subscribe-notpossible": "Není nainstalován cURL a není dostupné allow_url_fopen.",
+    "config-install-mainpage": "Vytváří se počáteční obsah hlavní strany",
+    "config-install-extension-tables": "Vytvářejí se tabulky pro zapnutá rozšíření",
+    "config-install-mainpage-failed": "Nepodařilo se vložit hlavní stranu: $1",
+    "config-install-done": "'''Gratulujeme!'''\nÚspěšně jste nainstalovali MediaWiki.\n\nInstalátor vytvořil soubor <code>LocalSettings.php</code>.\nTen obsahuje veškerou vaši konfiguraci.\n\nBudete si ho muset stáhnout a uložit do základního adresáře vaší instalace wiki (do stejného adresáře jako soubor index.php). Stažení souboru se mělo spustit automaticky.\n\nPokud se vám stažení nenabídlo nebo jste ho zrušili, můžete ho spustit znovu kliknutím na následující odkaz:\n\n$3\n\n'''Poznámka''': Pokud to neuděláte hned, tento vygenerovaný konfigurační soubor nebude později dostupný, pokud instalaci opustíte, aniž byste si ho stáhli.\n\nAž to dokončíte, můžete '''[$2 vstoupit do své wiki]'''.",
+    "config-download-localsettings": "Stáhnout <code>LocalSettings.php</code>",
+    "config-help": "nápověda",
+    "config-nofile": "Soubor „$1“ nelze nalézt. Byl smazán?",
+    "config-extension-link": "Věděli jste, že vaše wiki podporuje [//www.mediawiki.org/wiki/Manual:Extensions rozšíření]?\n\nMůžete procházet [//www.mediawiki.org/wiki/Category:Extensions_by_category rozšíření po kategoriích] nebo si prohlédnout [//www.mediawiki.org/wiki/Extension_Matrix Matici rozšíření] obsahující úplný seznam.",
+    "mainpagetext": "'''MediaWiki byla úspěšně nainstalována.'''",
+    "mainpagedocfooter": "[//meta.wikimedia.org/wiki/Help:Contents Uživatelská příručka] vám napoví, jak MediaWiki používat.\n\n== Začínáme ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Nastavení konfigurace]\n* [//www.mediawiki.org/wiki/Manual:FAQ Často kladené otázky o MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-mailová konference oznámení MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Překlad MediaWiki do vašeho jazyka]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/csb.json b/includes/installer/i18n/csb.json
new file mode 100644 (file)
index 0000000..024b3d8
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki òsta zainstalowónô.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/cu.json b/includes/installer/i18n/cu.json
new file mode 100644 (file)
index 0000000..a5b1c21
--- /dev/null
@@ -0,0 +1,10 @@
+{
+    "@metadata": {
+        "authors": [
+            "ОйЛ"
+        ]
+    },
+    "config-page-language": "ѩꙁꙑкъ",
+    "config-page-name": "имѧ",
+    "config-help": "помощь"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/cv.json b/includes/installer/i18n/cv.json
new file mode 100644 (file)
index 0000000..bdb08c2
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''«MediaWiki» вики-движока лартасси ăнăçлă вĕçленчĕ.'''",
+    "mainpagedocfooter": "Ку википе ĕçлеме пулăшакан информацине [//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 усăç руководствинче] тупма пултаратăр.\n\n== Пулăшма пултарĕç ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Ĕнерлевсен списокĕ];\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki тăрăх час-часах ыйтакан ыйтусемпе хуравсем];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki çĕнĕ верси тухнине пĕлтерекен рассылка]."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/cy.json b/includes/installer/i18n/cy.json
new file mode 100644 (file)
index 0000000..5bfbb21
--- /dev/null
@@ -0,0 +1,10 @@
+{
+    "@metadata": {
+        "authors": [
+            "Lloffiwr",
+            "Xxglennxx"
+        ]
+    },
+    "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.\n\n==Cychwyn arni==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Rhestr osodiadau wrth gyflunio]\n* [//www.mediawiki.org/wiki/Manual:FAQ Cwestiynau poblogaidd ar MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Rhestr postio datganiadau MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Cyfieithu MediaWici i'ch iaith chi]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/da.json b/includes/installer/i18n/da.json
new file mode 100644 (file)
index 0000000..45f6a79
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Peter Alberti"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki er nu installeret.'''",
+    "mainpagedocfooter": "Se [//meta.wikimedia.org/wiki/Help:Contents brugervejledningen] for oplysninger om brugen af wikiprogrammellet.\n\n== At komme i gang ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Listen over opsætningsmuligheder]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki ofte stillede spørgsmål]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Postliste angående udgivelser af MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/de-formal.json b/includes/installer/i18n/de-formal.json
new file mode 100644 (file)
index 0000000..8a48010
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "@metadata": {
+        "authors": [
+            "MichaelFrey"
+        ]
+    },
+    "mainpagedocfooter": "Hilfe zur Benutzung und Konfiguration der Wiki-Software finden Sie im [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch].\n\n== Starthilfen ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/de.json b/includes/installer/i18n/de.json
new file mode 100644 (file)
index 0000000..2924c82
--- /dev/null
@@ -0,0 +1,319 @@
+{
+    "@metadata": {
+        "authors": [
+            "Geitost",
+            "Kghbln",
+            "LWChris",
+            "Metalhead64",
+            "Purodha",
+            "Rillke",
+            "The Evil IP address",
+            "Umherirrender",
+            "Wikinaut",
+            "아라"
+        ]
+    },
+    "config-desc": "Das MediaWiki-Installationsprogramm",
+    "config-title": "Installation von MediaWiki $1",
+    "config-information": "Informationen",
+    "config-localsettings-upgrade": "Eine Datei <code>LocalSettings.php</code> wurde gefunden.\nUm die vorhandene Installation aktualisieren zu können, muss der Wert des Parameters <code>$wgUpgradeKey</code> im folgenden Eingabefeld angegeben werden.\nDer Parameterwert befindet sich in der Datei <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Eine Datei <code><code>LocalSettings.php</code></code> wurde gefunden.\nUm die vorhandene Installation zu aktualisieren, muss die Datei <code>update.php</code> ausgeführt werden.",
+    "config-localsettings-key": "Aktualisierungsschlüssel:",
+    "config-localsettings-badkey": "Der angegebene Aktualisierungsschlüssel ist falsch.",
+    "config-upgrade-key-missing": "Eine MediaWiki-Installation wurde gefunden.\nUm die vorhandene Installation aktualisieren zu können, muss die unten angegebene Codezeile in die Datei <code>LocalSettings.php</code> an deren Ende eingefügt werden:\n\n$1",
+    "config-localsettings-incomplete": "Die vorhandene Datei <code>LocalSettings.php</code> scheint unvollständig zu sein.\nDie Variable <code>$1</code> wurde nicht definiert.\nDie Datei <code>LocalSettings.php</code> muss entsprechend geändert werden, so dass sie definiert ist. Klicke danach auf „{{int:Config-continue}}“.",
+    "config-localsettings-connection-error": "Beim Verbindungsversuch zur Datenbank ist, unter Verwendung der in den Dateien <code>LocalSettings.php</code> oder <code>AdminSettings.php</code> hinterlegten Einstellungen, ein Fehler aufgetreten. Diese Einstellungen müssen korrigiert werden. Danach kann ein erneuter Versuch unternommen werden.\n\n$1",
+    "config-session-error": "Fehler beim Starten der Sitzung: $1",
+    "config-session-expired": "Die Sitzungsdaten scheinen abgelaufen zu sein.\nSitzungen sind für einen Zeitraum von $1 konfiguriert.\nDieser kann durch Anhebung des Parameters <code>session.gc_maxlifetime</code> in der Datei <code>php.ini</code> erhöht werden.\nDen Installationsvorgang erneut starten.",
+    "config-no-session": "Die Sitzungsdaten sind verloren gegangen!\nDie Datei <code>php.ini</code> muss geprüft und es muss dabei sichergestellt werden, dass der Parameter <code>session.save_path</code> auf das richtige Verzeichnis verweist.",
+    "config-your-language": "Sprache während des Installierens:",
+    "config-your-language-help": "Bitte die Sprache auswählen, die während des Installationsvorgangs verwendet werden soll.",
+    "config-wiki-language": "Sprache des Wikis:",
+    "config-wiki-language-help": "Bitte die Sprache auswählen, die überwiegend beim Erstellen der Inhalte verwendet werden soll.",
+    "config-back": "← Zurück",
+    "config-continue": "Weiter →",
+    "config-page-language": "Sprache",
+    "config-page-welcome": "Willkommen bei MediaWiki!",
+    "config-page-dbconnect": "Mit der Datenbank verbinden",
+    "config-page-upgrade": "Eine vorhandene Installation aktualisieren",
+    "config-page-dbsettings": "Einstellungen zur Datenbank",
+    "config-page-name": "Name",
+    "config-page-options": "Optionen",
+    "config-page-install": "Installieren",
+    "config-page-complete": "Fertig!",
+    "config-page-restart": "Installationsvorgang erneut starten",
+    "config-page-readme": "Lies mich",
+    "config-page-releasenotes": "Versionsinfos (en)",
+    "config-page-copying": "Kopie der Lizenz",
+    "config-page-upgradedoc": "Aktualisiere",
+    "config-page-existingwiki": "Vorhandenes Wiki",
+    "config-help-restart": "Sollen alle bereits eingegebenen Daten gelöscht und der Installationsvorgang erneut gestartet werden?",
+    "config-restart": "Ja, erneut starten",
+    "config-welcome": "=== Prüfung der Installationsumgebung ===\nDie Basisprüfungen werden jetzt durchgeführt, um festzustellen, ob die Installationsumgebung für die Installation von MediaWiki geeignet ist.\nNimm diese Information auf, falls du Unterstützung bei der Vervollständigung der Installation benötigst.",
+    "config-copyright": "=== Lizenz und Nutzungsbedingungen ===\n\n$1\n\nDieses Programm ist freie Software, d. h. es kann, gemäß den Bedingungen der von der Free Software Foundation veröffentlichten ''GNU General Public License'', weiterverteilt und/oder modifiziert werden. Dabei kann die Version 2, oder nach eigenem Ermessen, jede neuere Version der Lizenz verwendet werden.\n\nDieses Programm wird in der Hoffnung verteilt, dass es nützlich sein wird, allerdings '''ohne jegliche Garantie''' und sogar ohne die implizierte Garantie einer '''Marktgängigkeit''' oder '''Eignung für einen bestimmten Zweck'''. Hierzu sind weitere Hinweise in der ''GNU General Public License'' enthalten.\n\nEine <doclink href=Copying>Kopie der GNU General Public License</doclink> sollte zusammen mit diesem Programm verteilt worden sein. Sofern dies nicht der Fall war, kann eine Kopie bei der Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, schriftlich angefordert oder auf deren Website [http://www.gnu.org/copyleft/gpl.html online gelesen] werden.",
+    "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki/de Website von MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents/de Benutzeranleitung]\n* [//www.mediawiki.org/wiki/Manual:Contents/de Administratorenanleitung]\n* [//www.mediawiki.org/wiki/Manual:FAQ/de Häufig gestellte Fragen]\n----\n* <doclink href=Readme>Lies mich</doclink>\n* <doclink href=ReleaseNotes>Versionsinformationen</doclink>\n* <doclink href=Copying>Lizenzbestimmungen</doclink>\n* <doclink href=UpgradeDoc>Aktualisierung</doclink>",
+    "config-env-good": "Die Installationsumgebung wurde geprüft.\nMediaWiki kann installiert werden.",
+    "config-env-bad": "Die Installationsumgebung wurde geprüft.\nMediaWiki kann nicht installiert werden.",
+    "config-env-php": "PHP $1 ist installiert.",
+    "config-env-php-toolow": "PHP $1 ist installiert.\nAllerdings benötigt MediaWiki PHP $2 oder höher.",
+    "config-unicode-using-utf8": "Zur Unicode-Normalisierung wird Brion Vibbers <code>utf8_normalize.so</code> eingesetzt.",
+    "config-unicode-using-intl": "Zur  Unicode-Normalisierung wird die [http://pecl.php.net/intl PECL-Erweiterung intl] eingesetzt.",
+    "config-unicode-pure-php-warning": "'''Warnung:''' Die [http://pecl.php.net/intl PECL-Erweiterung intl] ist für die Unicode-Normalisierung nicht verfügbar, so dass stattdessen die langsame pure-PHP-Implementierung genutzt wird.\nSofern eine Website mit großer Benutzeranzahl betrieben wird, sollten weitere Informationen auf der Webseite [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode-Normalisierung (en)] gelesen werden.",
+    "config-unicode-update-warning": "'''Warnung:''' Die installierte Version des Unicode-Normalisierungswrappers nutzt einer ältere Version der Bibliothek des [http://site.icu-project.org/ ICU-Projekts].\nDiese sollte [//www.mediawiki.org/wiki/Unicode_normalization_considerations aktualisiert] werden, sofern auf die Verwendung von Unicode Wert gelegt wird.",
+    "config-no-db": "Es konnte kein adäquater Datenbanktreiber gefunden werden. Es muss daher ein Datenbanktreiber für PHP installiert werden.\nDie folgenden Datenbanksysteme werden unterstützt: $1\n\nSofern ein gemeinschaftlich genutzter Server für das Hosting verwendet wird, muss der Hoster gefragt werden einen adäquaten Datenbanktreiber zu installieren.\nSofern PHP selbst kompiliert wurde, muss es mit es neu konfiguriert werden, wobei der Datenbankclient zu aktivierten ist. Hierzu kann beispielsweise <code>./configure --with-mysql</code> ausgeführt werden.\nSofern PHP über die Paketverwaltung einer Debian- oder Ubuntu-Installation installiert wurde, muss das „php5-mysql“-Paket nachinstalliert werden.",
+    "config-outdated-sqlite": "'''Warnung:''' SQLite $1 ist installiert. Allerdings benötigt MediaWiki SQLite $2 oder höher. SQLite wird daher nicht verfügbar sein.",
+    "config-no-fts3": "'''Warnung:''' SQLite wurde ohne das [//sqlite.org/fts3.html FTS3-Modul] kompiliert, so dass keine Suchfunktionen für dieses Datenbanksystem zur Verfügung stehen werden.",
+    "config-register-globals": "'''Warnung: Der Parameter <code>[http://php.net/register_globals register_globals]</code> von PHP ist aktiviert.'''\n'''Sie sollte deaktiviert werden, sofern dies möglich ist.'''\nDie MediaWiki-Installation wird zwar laufen, wobei aber der Server für potentielle Sicherheitsprobleme anfällig ist.",
+    "config-magic-quotes-runtime": "'''Fataler Fehler: Der Parameter <code>[http://www.php.net/manual/de/function.set-magic-quotes-runtime.php set_magic_quotes_runtime]</code> von PHP ist aktiviert!'''\nDiese Einstellung führt zu unvorhersehbaren Problemen bei der Dateneingabe.\nMediaWiki kann nicht installiert werden, solange dieser Parameter nicht deaktiviert wurde.",
+    "config-magic-quotes-sybase": "'''Fataler Fehler: Der Parameter <code>[http://www.php.net/manual/de/sybase.configuration.php#ini.magic-quotes-sybase magic_quotes_sybase]</code> von PHP ist aktiviert!'''\nDiese Einstellung führt zu unvorhersehbaren Problemen bei der Dateneingabe.\nMediaWiki kann nicht installiert werden, solange dieser Parameter nicht deaktiviert wurde.",
+    "config-mbstring": "'''Fataler Fehler: Der Parameter <code>[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]</code> von PHP ist aktiviert!'''\nDiese Einstellung verursacht Fehler und führt zu unvorhersehbaren Problemen bei der Dateneingabe.\nMediaWiki kann nicht installiert werden, solange dieser Parameter nicht deaktiviert wurde.",
+    "config-ze1": "'''Fataler Fehler: Der Parameter <code>[http://www.php.net/manual/de/ini.core.php zend.ze1_compatibility_mode]</code> von PHP ist aktiviert!'''\nDiese Einstellung führt zu großen Fehlern bei MediaWiki.\nMediaWiki kann nicht installiert werden, solange dieser Parameter nicht deaktiviert wurde.",
+    "config-safe-mode": "'''Warnung:''' Der Funktion <code>[http://www.php.net/features.safe-mode Safe Mode]</code> von PHP ist aktiviert.\nDies kann zu Problemen führen, insbesondere wenn das Hochladen von Dateien möglich sein, bzw. der Auszeichner <code>math</code> genutzt werden soll.",
+    "config-xml-bad": "Das XML-Modul von PHP fehlt.\nMediaWiki benötigt Funktionen, die dieses Modul bereitstellt und wird in der bestehenden Konfiguration nicht funktionieren.\nSofern Mandriva genutzt wird, muss noch das „php-xml“-Paket installiert werden.",
+    "config-pcre": "Das PHP-Modul für die PCRE-Unterstützung wurde nicht gefunden.\nMediaWiki benötigt allerdings perl-kompatible reguläre Ausdrücke, um lauffähig zu sein.",
+    "config-pcre-no-utf8": "'''Fataler Fehler:''' Das PHP-Modul PCRE scheint ohne PCRE_UTF8-Unterstützung kompiliert worden zu sein.\nMediaWiki benötigt die UTF-8-Unterstützung, um fehlerfrei lauffähig zu sein.",
+    "config-memory-raised": "Der PHP-Parameter <code>memory_limit</code> betrug $1 und wurde auf $2 erhöht.",
+    "config-memory-bad": "'''Warnung:''' Der PHP-Parameter <code>memory_limit</code> beträgt $1.\nDieser Wert ist wahrscheinlich zu niedrig.\nDer Installationsvorgang könnte daher scheitern!",
+    "config-ctype": "'''Fataler Fehler:''' PHP muss mit Unterstützung für das [http://www.php.net/manual/de/ctype.installation.php Modul ctype] kompiliert werden.",
+    "config-json": "'''Fatal:''' PHP wurde ohne JSON-Support kompiliert.\nDu musst entweder die PHP-JSON- oder die [http://pecl.php.net/package/jsonc PECL-jsonc]-Erweiterung installieren, bevor du MediaWiki installierst.\n* Die PHP-Erweiterung ist in Red Hat Enterprise Linux (CentOS) 5 und 6 enthalten, muss jedoch in <code>/etc/php.ini</code> oder <code>/etc/php.d/json.ini</code> aktiviert werden.\n* Einige Linux-Distributionen, die nach Mai 2013 veröffentlicht wurden, lassen die PHP-Erweiterung weg, stattdessen wird die PECL-Erweiterung als <code>php5-json</code> oder <code>php-pecl-jsonc</code> mitgeliefert.",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] ist installiert",
+    "config-apc": "[http://www.php.net/apc APC] ist installiert",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] ist installiert",
+    "config-no-cache": "'''Warnung:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] oder [http://www.iis.net/download/WinCacheForPhp WinCache] wurden nicht gefunden.\nDas Objektcaching kann daher nicht aktiviert werden.",
+    "config-mod-security": "'''Warnung:''' Auf dem Webserver wurde [http://modsecurity.org/ ModSecurity] aktiviert. Sofern falsch konfiguriert, kann dies zu Problemen mit MediaWiki sowie anderer Software auf dem Server führen und es Benutzern ermöglichen beliebige Inhalte im Wiki einzustellen.\nFür weitere Informationen empfehlen wir die [http://modsecurity.org/documentation/ Dokumentation zu ModSecurity] oder den Kontakt zum Hoster, sofern Fehler auftreten.",
+    "config-diff3-bad": "GNU diff3 wurde nicht gefunden.",
+    "config-git": "Die Git-Versionsverwaltungssoftware wurde gefunden: <code>$1</code>.",
+    "config-git-bad": "Die Git-Versionsverwaltungssoftware wurde nicht gefunden.",
+    "config-imagemagick": "ImageMagick wurde gefunden: <code>$1</code>.\nMiniaturansichten von Bildern werden möglich sein, sobald das Hochladen von Dateien aktiviert wurde.",
+    "config-gd": "Die im System integrierte GD-Grafikbibliothek wurde gefunden.\nMiniaturansichten von Bildern werden möglich sein, sobald das Hochladen von Dateien aktiviert wurde.",
+    "config-no-scaling": "Weder die GD-Grafikbibliothek noch ImageMagick wurden gefunden.\nMiniaturansichten von Bildern sind daher nicht möglich.",
+    "config-no-uri": "'''Fehler:''' Die aktuelle URL konnte nicht ermittelt werden.\nDer Installationsvorgang wurde daher abgebrochen.",
+    "config-no-cli-uri": "'''Warnung''': Es wurde kein Pfad zum Skipt (--scriptpath) angegeben. Daher wird der Standardpfad genutzt: <code>$1</code>.",
+    "config-using-server": "Der Servername „<nowiki>$1</nowiki>“ wird verwendet.",
+    "config-using-uri": "Die Server-URL „<nowiki>$1$2</nowiki>“ wird verwendet.",
+    "config-uploads-not-safe": "'''Warnung:''' Das Standardverzeichnis für hochgeladene Dateien <code>$1</code> ist für die willkürliche Ausführung von Skripten anfällig.\nObwohl MediaWiki die hochgeladenen Dateien auf Sicherheitsrisiken überprüft, wird dennoch dringend empfohlen diese [//www.mediawiki.org/wiki/Manual:Security#Upload_security Sicherheitslücke] zu schließen, bevor das Hochladen von Dateien aktiviert wird.",
+    "config-no-cli-uploads-check": "'''Warnung''': Das Standardverzeichnis für hochgeladene Dateien (<code>$1</code>) wird, während der Installation über die Kommandozeile, nicht auf Sicherheitsanfälligkeiten hinsichtlich willkürlicher Skriptausführungen geprüft.",
+    "config-brokenlibxml": "Das System nutzt eine Kombination aus PHP- und libxml2-Versionen, die fehleranfällig ist und versteckte Datenfehler bei MediaWiki und anderen Webanwendungen verursachen kann.\nPHP muss auf Version 5.2.9 oder später sowie libxml2 auf die Version 2.7.3 oder später aktualisiert werden, um das Problem zu lösen. Installationsabbruch ([//bugs.php.net/bug.php?id=45996 siehe hierzu die Fehlermeldung bei PHP]).",
+    "config-using531": "MediaWiki kann nicht zusammen mit PHP $1 verwendet werden. Grund hierfür ist ein Fehler im Zusammenhang mit den Verweisparametern zu <code>__call()</code>.\nPHP muss auf Version 5.3.2 oder höher oder 5.3.0 oder niedriger aktualisiert werden, um das Problem zu beheben.\nDie Installation wurde abgebrochen.",
+    "config-suhosin-max-value-length": "Suhosin ist installiert und beschränkt die Länge des GET-Parameters auf $1 Bytes.\nDer ResouceLoader von MediaWiki wird zwar unter diesen Bedingungen funktionieren, allerdings nur mit verminderter Leistungsfähigkeit.\nSofern möglich sollte der Parameter <code>suhosin.get.max_value_length</code> in der Datei <code>php.ini</code> auf 1024 oder höher festgelegt werden.\nGleichzeitig muss der Parameter <code>$wgResourceLoaderMaxQueryLength</code> in der Datei <code>LocalSettings.php</code> auf den selben Wert eingestellt werden.",
+    "config-db-type": "Datenbanksystem:",
+    "config-db-host": "Datenbankserver:",
+    "config-db-host-help": "Sofern sich die Datenbank auf einem anderen Server befindet, ist hier der Servername oder die entsprechende IP-Adresse anzugeben.\n\nSofern ein gemeinschaftlich genutzter Server verwendet wird, sollte der Hoster den zutreffenden Servernamen in seiner Dokumentation angegeben haben.\n\nSofern auf einem Windows-Server installiert und MySQL genutzt wird, funktioniert der Servername „localhost“ voraussichtlich nicht. Wenn nicht, sollte  „127.0.0.1“ oder die lokale IP-Adresse angegeben werden.\n\nSofern PostgresQL genutzt wird, muss dieses Feld leer gelassen werden, um über ein Unix-Socket zu verbinden.",
+    "config-db-host-oracle": "Datenbank-TNS:",
+    "config-db-host-oracle-help": "Einen gültigen [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm „Local Connect“-Namen] angeben. Die „tnsnames.ora“-Datei muss von dieser Installation erkannt werden können.<br />Sofern die Client-Bibliotheken für Version 10g oder neuer verwendet werden, kann auch [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm „Easy Connect“] zur Namensgebung genutzt werden.",
+    "config-db-wiki-settings": "Bitte Daten zur eindeutigen Identifikation dieses Wikis angeben",
+    "config-db-name": "Datenbankname:",
+    "config-db-name-help": "Bitte einen Namen angeben, mit dem das Wiki identifiziert werden kann.\nDabei sollten keine Leerzeichen verwendet werden.\n\nSofern ein gemeinschaftlich genutzter Server verwendet wird, sollte der Hoster den Datenbanknamen angegeben oder aber die Erstellung einer Datenbank über ein entsprechendes Interface gestattet haben.",
+    "config-db-name-oracle": "Datenbankschema:",
+    "config-db-account-oracle-warn": "Es gibt drei von MediaWiki unterstützte Möglichkeiten Oracle als Datenbank einzurichten:\n\nSofern das Datenbankbenutzerkonto während des Installationsvorgangs erstellt werden soll, muss ein Datenbankbenutzerkonto mit der SYSDBA-Berechtigung zusammen mit den entsprechenden Anmeldeinformationen angegeben werden, mit dem dann über das Web auf die Datenbank zugegriffen werden kann. Alternativ kann man auch lediglich ein einzelnes manuell angelegtes Datenbankbenutzerkonto angeben, mit dem über das Web auf die Datenbank zugegriffen werden kann, sofern dieses über die Berechtigung zur Erstellung von Datenbankschemen verfügt. Zudem ist es möglich zwei Datenbankbenutzerkonten anzugeben von denen eines die Berechtigung zur Erstellung von Datenbankschemen hat und das andere, um mit ihm über das Web auf die Datenbank zuzugreifen.\n\nEin Skript zum Anlegen eines Datenbankbenutzerkontos mit den notwendigen Berechtigungen findet man unter dem Pfad „…/maintenance/oracle/“ dieser MediaWiki-Installation. Es ist dabei zu bedenken, dass die Verwendung eines Datenbankbenutzerkontos mit beschränkten Berechtigungen die Nutzung der Wartungsfunktionen für das Standarddatenbankbenutzerkonto deaktiviert.",
+    "config-db-install-account": "Benutzerkonto für die Installation",
+    "config-db-username": "Name des Datenbankbenutzers:",
+    "config-db-password": "Passwort des Datenbankbenutzers:",
+    "config-db-password-empty": "Bitte ein Passwort für den neuen Datenbankbenutzer angeben: $1\nObzwar es möglich ist Datenbankbenutzer ohne Passwort anzulegen, so ist dies aber nicht sicher.",
+    "config-db-install-username": "Den Benutzernamen angeben, der für die Verbindung mit der Datenbank während des Installationsvorgangs genutzt werden soll. Es handelt sich dabei nicht um den Benutzernamen für das MediaWiki-Konto, sondern um den Benutzernamen der vorgesehenen Datenbank.",
+    "config-db-install-password": "Das Passwort angeben, das für die Verbindung mit der Datenbank während des Installationsvorgangs genutzt werden soll. Es handelt sich dabei nicht um das Passwort für das MediaWiki-Konto, sondern um das Passwort der vorgesehenen Datenbank.",
+    "config-db-install-help": "Benutzername und Passwort, die während des Installationsvorgangs, für die Verbindung mit der Datenbank, genutzt werden sollen, sind nun anzugeben.",
+    "config-db-account-lock": "Derselbe Benutzername und das Passwort müssen während des Normalbetriebs des Wikis verwendet werden.",
+    "config-db-wiki-account": "Benutzerkonto für den normalen Betrieb",
+    "config-db-wiki-help": "Bitte Benutzernamen und Passwort angeben, die der Webserver während des Normalbetriebes dazu verwenden soll, eine Verbindung zum Datenbankserver herzustellen.\nSofern ein entsprechendes Benutzerkonto nicht vorhanden ist und das Benutzerkonto für den Installationsvorgang über ausreichende Berechtigungen verfügt, wird dieses Benutzerkonto automatisch mit den Mindestberechtigungen zum Normalbetrieb des Wikis angelegt.",
+    "config-db-prefix": "Datenbanktabellenpräfix:",
+    "config-db-prefix-help": "Sofern eine Datenbank für mehrere Wikiinstallationen oder eine Wikiinstallation und eine andere Programminstallation genutzt werden soll, muss ein Datenbanktabellenpräfix angegeben werden, um Datenbankprobleme zu vermeiden.\nEs können keine Leerzeichen verwendet werden.\n\nGewöhnlich bleibt dieses Datenfeld leer.",
+    "config-db-charset": "Datenbankzeichensatz",
+    "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 abwärtskompatibles UTF-8",
+    "config-charset-help": "'''Warnung:''' Sofern '''abwärtskompatibles UTF-8''' bei MySQL 4.1+ verwendet und anschließend die Datenbank mit <code>mysqldump</code> gesichert wird, könnten alle nicht mit ASCII-codierten Zeichen beschädigt werden, was zu irreversiblen Schäden der Datensicherung führt!\n\nIm '''binären Modus''' speichert MediaWiki UTF-8 Texte in der Datenbank in binär kodierte Datenfelder.\nDies ist effizienter als der UTF-8-Modus von MySQL und ermöglicht so die Verwendung jeglicher Unicode-Zeichen.\nIm '''UTF-8-Modus''' wird MySQL den Zeichensatz der Daten erkennen und sie richtig anzeigen und konvertieren.\nEs können allerdings keine Zeichen außerhalb des [//de.wikipedia.org/wiki/Basic_Multilingual_Plane#Gliederung_in_Ebenen_und_Bl.C3.B6cke ''Basic Multilingual Plane'' (BMP)] gespeichert werden.",
+    "config-mysql-old": "MySQL $1 oder höher wird benötigt. MySQL $2 ist momentan vorhanden.",
+    "config-db-port": "Datenbankport:",
+    "config-db-schema": "Datenschema für MediaWiki",
+    "config-db-schema-help": "Dieses Datenschema ist in der Regel allgemein verwendbar.\nNur Änderungen daran vornehmen, sofern es gute Gründe dafür gibt.",
+    "config-pg-test-error": "Es kann keine Verbindung zur Datenbank '''$1''' hergestellt werden: $2",
+    "config-sqlite-dir": "SQLite-Datenverzeichnis:",
+    "config-sqlite-dir-help": "SQLite speichert alle Daten in einer einzigen Datei.\n\nDas für sie vorgesehene Verzeichnis muss während des Installationsvorgangs beschreibbar sein.\n\nEs sollte '''nicht''' über das Web zugänglich sein, was der Grund ist, warum die Datei nicht dort abgelegt wird, wo sich die PHP-Dateien befinden.\n\nDas Installationsprogramm wird mit der Datei zusammen eine zusätzliche <code>.htaccess</code>-Datei erstellen. Sofern dies scheitert, können Dritte auf die Datendatei zugreifen.\nDies umfasst die Nutzerdaten (E-Mail-Adressen, Passwörter, etc.) wie auch gelöschte Seitenversionen und andere vertrauliche Daten, die im Wiki gespeichert sind.\n\nEs ist daher zu erwägen, die Datendatei an gänzlich anderer Stelle abzulegen, beispielsweise im Verzeichnis <code>./var/lib/mediawiki/yourwiki</code>.",
+    "config-oracle-def-ts": "Standardtabellenraum:",
+    "config-oracle-temp-ts": "Temporärer Tabellenraum:",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-support-info": "MediaWiki unterstützt die folgenden Datenbanksysteme:\n\n$1\n\nSofern nicht das Datenbanksystem angezeigt wird, das verwendet werden soll, gibt es oben einen Link zur Anleitung mit Informationen, wie dieses aktiviert werden kann.",
+    "config-support-mysql": "* $1 ist das von MediaWiki primär unterstützte Datenbanksystem ([http://www.php.net/manual/en/mysql.installation.php Anleitung zur Kompilierung von PHP mit MySQL-Unterstützung (en)])",
+    "config-support-postgres": "* $1 ist ein beliebtes Open-Source-Datenbanksystem und eine Alternative zu MySQL ([http://www.php.net/manual/de/pgsql.installation.php Anleitung zur Kompilierung von PHP mit PostgreSQL-Unterstützung]). Es gibt allerdings einige kleinere Implementierungsfehler, so dass von der Nutzung in einer Produktivumgebung abgeraten wird.",
+    "config-support-sqlite": "* $1 ist ein verschlanktes Datenbanksystem, das auch gut unterstützt wird ([http://www.php.net/manual/de/pdo.installation.php Anleitung zur Kompilierung von PHP mit SQLite-Unterstützung], verwendet PHP Data Objects (PDO))",
+    "config-support-oracle": "* $1 ist eine kommerzielle Unternehmensdatenbank ([http://www.php.net/manual/en/oci8.installation.php Anleitung zur Kompilierung von PHP mit OCI8-Unterstützung (en)])",
+    "config-header-mysql": "MySQL-Einstellungen",
+    "config-header-postgres": "PostgreSQL-Einstellungen",
+    "config-header-sqlite": "SQLite-Einstellungen",
+    "config-header-oracle": "Oracle-Einstellungen",
+    "config-invalid-db-type": "Unzulässiges Datenbanksystem",
+    "config-missing-db-name": "Bei „Datenbankname“ muss ein Wert angegeben werden.",
+    "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“.\nEntweder „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“.\nEs 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“.\nEs dürfen nur ASCII-codierte Buchstaben (a-z, A-Z), Zahlen (0-9), Unter- (_) sowie Bindestriche (-) verwendet werden.",
+    "config-connection-error": "$1.\n\nBitte unten angegebenen Servernamen, Benutzernamen sowie das Passwort überprüfen und es danach erneut versuchen.",
+    "config-invalid-schema": "Ungültiges Datenschema für MediaWiki „$1“.\nEs dürfen nur ASCII-codierte Buchstaben (a-z, A-Z), Zahlen (0-9) und Unterstriche (_) verwendet werden.",
+    "config-db-sys-create-oracle": "Das Installationsprogramm unterstützt nur die Verwendung eines Datenbankbenutzerkontos mit SYSDBA-Berechtigung zum Anlegen eines neuen Datenbankbenutzerkontos.",
+    "config-db-sys-user-exists-oracle": "Das Datenbankbenutzerkonto „$1“ ist bereits vorhanden. Ein Datenbankbenutzerkontos mit SYSDBA-Berechtigung kann nur zum Anlegen eines neuen Datenbankbenutzerkontos genutzt werden.",
+    "config-postgres-old": "PostgreSQL $1 oder höher wird benötigt. PostgreSQL $2 ist momentan vorhanden.",
+    "config-sqlite-name-help": "Bitten einen Namen angeben, mit dem das Wiki identifiziert werden kann.\nDabei bitte keine Leerzeichen oder Bindestriche verwenden.\nDieser Name wird für die SQLite-Datendateinamen genutzt.",
+    "config-sqlite-parent-unwritable-group": "Das Datenverzeichnis <code><nowiki>$1</nowiki></code> kann nicht erzeugt werden, da das übergeordnete Verzeichnis <code><nowiki>$2</nowiki></code> nicht für den Webserver beschreibbar ist.\n\nDas Installationsprogramm konnte den Benutzer bestimmen, mit dem Webserver ausgeführt wird.\nSchreibzugriff auf das <code><nowiki>$3</nowiki></code>-Verzeichnis muss für diesen ermöglicht werden, um den Installationsvorgang fortsetzen zu können.\n\nAuf einem Unix- oder Linux-System:\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Das Datenverzeichnis <code><nowiki>$1</nowiki></code> kann nicht erzeugt werden, da das übergeordnete Verzeichnis <code><nowiki>$2</nowiki></code> nicht für den Webserver beschreibbar ist.\n\nDas Installationsprogramm konnte den Benutzer bestimmen, mit dem Webserver ausgeführt wird.\nSchreibzugriff auf das <code><nowiki>$3</nowiki></code>-Verzeichnis muss global für diesen und andere Benutzer ermöglicht werden, um den Installationsvorgang fortsetzen zu können.\n\nAuf einem Unix- oder Linux-System:\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Fehler beim Erstellen des Datenverzeichnisses „$1“.\n\nBitte den Speicherort überprüfen und es danach erneut versuchen.",
+    "config-sqlite-dir-unwritable": "Das Verzeichnis „$1“  ist nicht beschreibbar.\nBitte die Zugriffsberechtigungen so ändern, dass dieses Verzeichnis für den Webserver beschreibbar ist und es danach erneut versuchen.",
+    "config-sqlite-connection-error": "$1.\n\nBitte unten angegebenes Datenverzeichnis sowie den Datenbanknamen überprüfen und es danach erneut versuchen.",
+    "config-sqlite-readonly": "Die Datei <code>$1</code> ist nicht beschreibbar.",
+    "config-sqlite-cant-create-db": "Die Datenbankdatei <code>$1</code> konnte nicht erzeugt werden.",
+    "config-sqlite-fts3-downgrade": "PHP verfügt nicht über FTS3-Unterstützung. Die Tabellen wurden zurückgestuft.",
+    "config-can-upgrade": "Es wurden MediaWiki-Tabellen in dieser Datenbank gefunden.\nUm sie auf MediaWiki $1 zu aktualisieren, bitte auf '''Weiter''' klicken.",
+    "config-upgrade-done": "Die Aktualisierung ist nun abgeschlossen.\n\nDas Wiki kann nun [$1 genutzt werden].\n\nSofern die Datei <code>LocalSettings.php</code> neu erzeugt werden soll, bitte auf die Schaltfläche unten klicken.\nDies wird '''nicht empfohlen''', es sei denn, es treten Probleme mit dem Wiki auf.",
+    "config-upgrade-done-no-regenerate": "Die Aktualisierung ist abgeschlossen.\n\nDas Wiki kann nun [$1 genutzt werden].",
+    "config-regenerate": "LocalSettings.php neu erstellen →",
+    "config-show-table-status": "Die Abfrage <code>SHOW TABLE STATUS</code> ist gescheitert!",
+    "config-unknown-collation": "'''Warnung:''' Die Datenbank nutzt eine unbekannte Kollation.",
+    "config-db-web-account": "Datenbankkonto für den Webzugriff",
+    "config-db-web-help": "Bitte Benutzernamen und Passwort auswählen, die der Webserver während des Normalbetriebes dazu verwenden soll, eine Verbindung zum Datenbankserver herzustellen.",
+    "config-db-web-account-same": "Dasselbe Datenbankkonto wie während des Installationsvorgangs verwenden",
+    "config-db-web-create": "Sofern nicht bereits vorhanden, muss nun das Konto erstellt werden",
+    "config-db-web-no-create-privs": "Das angegebene und für den Installationsvorgang vorgesehene Datenbankkonto verfügt nicht über ausreichend Berechtigungen, um ein weiteres Datenbankkonto zu erstellen.\nDas hier angegebene Datenbankkonto muss daher bereits vorhanden sein.",
+    "config-mysql-engine": "Speicher-Engine:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''Warnung:''' Es wurde MyISAM als Speicher-Engine für MySQL ausgewählt, die aus folgenden Gründen nicht für den Einsatz mit MediaWiki empfohlen ist:\n* Sie unterstützt aufgrund von Tabellensperrungen kaum die nebenläufige Ausführung von Aktionen.\n* Sie ist anfälliger für Datenprobleme.\n* Sie wird von MediaWiki nicht immer adäquat unterstützt.\n\nSofern die vorhandene MySQL-Installation die Speicher-Engine InnoDB unterstützt, wird deren Verwendung eindringlich empfohlen.\nSofern sie sie nicht unterstützt, sollte eine entsprechende Aktualisierung nunmehr Erwägung gezogen werden.",
+    "config-mysql-only-myisam-dep": "'''Warnung:''' MyISAM ist die einzige verfügbare Speicher-Engine für MySQL, die nicht für die Verwendung mit MediaWiki empfohlen wird, da sie\n* aufgrund von Tabellensperrungen kaum die nebenläufige Ausführung von Aktionen unterstützt,\n* anfälliger für Datenprobleme ist und\n* von MediaWiki nicht immer adäquat unterstützt wird.\n\nDeine MySQL-Installation unterstützt nicht InnoDB. Eventuell muss eine Aktualisierung durchgeführt werden.",
+    "config-mysql-engine-help": "'''InnoDB''' ist fast immer die bessere Wahl, da es gleichzeitige Zugriffe gut unterstützt.\n\n'''MyISAM''' ist in Einzelnutzerumgebungen sowie bei schreibgeschützten Wikis schneller.\nBei MyISAM-Datenbanken treten tendenziell häufiger Fehler auf als bei InnoDB-Datenbanken.",
+    "config-mysql-charset": "Datenbankzeichensatz:",
+    "config-mysql-binary": "binär",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "Im '''binären Modus''' speichert MediaWiki UTF-8 Texte in der Datenbank in binär kodierte Datenfelder.\nDies ist effizienter als der UTF-8-Modus von MySQL und ermöglicht so die Verwendung jeglicher Unicode-Zeichen.\n\nIm '''UTF-8-Modus''' wird MySQL den Zeichensatz der Daten erkennen und sie richtig anzeigen und konvertieren,\nallerdings können keine Zeichen außerhalb des [//de.wikipedia.org/wiki/Basic_Multilingual_Plane#Gliederung_in_Ebenen_und_Bl.C3.B6cke ''Basic Multilingual Plane'' (BMP)] gespeichert werden.",
+    "config-site-name": "Name des Wikis:",
+    "config-site-name-help": "Er wird in der Titelleiste des Browsers, wie auch verschiedenen anderen Stellen, genutzt.",
+    "config-site-name-blank": "Den Namen des Wikis angeben.",
+    "config-project-namespace": "Name des Projektnamensraums:",
+    "config-ns-generic": "Projekt",
+    "config-ns-site-name": "Entspricht dem Namen des Wikis: $1",
+    "config-ns-other": "Anderer Name (bitte angeben)",
+    "config-ns-other-default": "MeinWiki",
+    "config-project-namespace-help": "Dem Beispiel von Wikipedia folgend, unterscheiden viele Wikis zwischen den Seiten für Inhalte und denen für Richtlinien. Letztere werden im „'''Projektnamensraum'''“ hinterlegt.\nAlle Seiten dieses Namensraumes verfügen über einen Seitenpräfix, der nun an dieser Stelle angegeben werden kann.\nTraditionell steht dieser Seitenpräfix mit dem Namen des Wikis in einem engen Zusammenhang. Dabei können bestimmte Sonderzeichen wie „#“ oder „:“ nicht verwendet werden.",
+    "config-ns-invalid": "Der angegebene Namensraum „<nowiki>$1</nowiki>“ ist ungültig.\nBitte einen abweichenden Projektnamensraum angeben.",
+    "config-ns-conflict": "Der angegebene Namensraum „<nowiki>$1</nowiki>“ verursacht Problem mit dem Standardnamensraum von MediaWiki.\nBitte einen abweichenden Projektnamensraum angeben.",
+    "config-admin-box": "Administratorkonto",
+    "config-admin-name": "Name:",
+    "config-admin-password": "Passwort:",
+    "config-admin-password-confirm": "Passwort wiederholen:",
+    "config-admin-help": "Bitte den bevorzugten Benutzernamen angeben, beispielsweise „Knut Wuchtig“.\nDies ist der Name, der benötigt wird, um sich im Wiki anzumelden.",
+    "config-admin-name-blank": "Bitte den Benutzernamen für den Administratoren angeben.",
+    "config-admin-name-invalid": "Der angegebene Benutzername „<nowiki>$1</nowiki>“ ist ungültig.\nBitte einen abweichenden Benutzernamen angeben.",
+    "config-admin-password-blank": "Bitte das Passwort für das Administratorkonto angeben.",
+    "config-admin-password-same": "Das Passwort darf nicht mit dem Benutzernamen übereinstimmen.",
+    "config-admin-password-mismatch": "Die beiden Passwörter stimmen nicht überein.",
+    "config-admin-email": "E-Mail-Adresse:",
+    "config-admin-email-help": "Bitte hier eine E-Mail-Adresse angeben, die den E-Mail-Empfang von anderen Benutzern des Wikis, das Zurücksetzen des Passwortes sowie Benachrichtigungen zu Änderungen an beobachteten Seiten ermöglicht. Diese Feld kann leer gelassen werden.",
+    "config-admin-error-user": "Es ist beim Erstellen des Administrators mit dem Namen „<nowiki>$1</nowiki>“ ein interner Fehler aufgetreten.",
+    "config-admin-error-password": "Es ist beim Setzen des Passworts für den Administrator „<nowiki>$1</nowiki>“ ein interner Fehler aufgetreten: <pre>$2</pre>",
+    "config-admin-error-bademail": "Es wurde eine ungültige E-Mail-Adresse angegeben",
+    "config-subscribe": "Bitte die Mailingliste [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mitteilungen zu Versionsveröffentlichungen] abonnieren.",
+    "config-subscribe-help": "Es handelt sich hierbei um eine Mailingliste mit wenigen Aussendungen, die für Mitteilungen zu Versionsveröffentlichungen, einschließlich wichtiger Sicherheitsveröffentlichungen, genutzt wird.\nDiese Mailingliste sollte abonniert werden. Zudem sollte die MediaWiki-Installation stets aktualisiert werden, sobald eine neue Programmversion veröffentlicht wurde.",
+    "config-subscribe-noemail": "Beim Abonnieren der Mailingliste mit Mitteilungen zu Versionsveröffentlichungen wurde keine E-Mail-Adresse angegeben.\nBitte eine E-Mail-Adresse angeben, sofern die Mailingliste abonniert werden soll.",
+    "config-almost-done": "Der Vorgang ist fast abgeschlossen!\nDie verbleibenden Konfigurationseinstellungen können übersprungen und das Wiki umgehend installiert werden.",
+    "config-optional-continue": "Ja, es sollen weitere Konfigurationseinstellungen vorgenommen werden.",
+    "config-optional-skip": "Nein, das Wiki soll nun installiert werden.",
+    "config-profile": "Profil der Benutzerberechtigungen:",
+    "config-profile-wiki": "offenes Wiki",
+    "config-profile-no-anon": "Erstellung eines Benutzerkontos erforderlich",
+    "config-profile-fishbowl": "ausschließlich berechtigte Bearbeiter",
+    "config-profile-private": "geschlossenes Wiki",
+    "config-profile-help": "Wikis sind am nützlichsten, wenn so viele Menschen als möglich Bearbeitungen vornehmen können.\nMit MediaWiki ist es einfach die letzten Änderungen nachzuvollziehen und unbrauchbare Bearbeitungen, beispielsweise von unbedarften oder böswilligen Benutzern, rückgängig zu machen.\n\nAllerdings finden etliche Menschen Wikis auch mit anderen Bearbeitungskonzepten sinnvoll. Manchmal ist es zudem nicht einfach alle Beteiligten von den Vorteilen des „Wiki-Prinzips” zu überzeugen. Darum ist diese Auswahl möglich.\n\nDas Modell „'''{{int:config-profile-wiki}}'''“ ermöglicht es jedermann, sogar ohne über ein Benutzerkonto zu verfügen, Bearbeitungen vorzunehmen.\nEin Wiki bei dem die '''{{int:config-profile-no-anon}}''' ist, fordert von den Benutzern eine höhere Verantwortung für ihre Bearbeitungen ein, könnte allerdings Personen abschrecken, die nur gelegentlich Bearbeitungen vornehmen wollen. Ein Wiki für '''{{int:config-profile-fishbowl}}''' gestattet es nur bestimmten Benutzern, Bearbeitungen vorzunehmen. Allerdings kann dabei die Allgemeinheit die Seiten immer noch betrachten und Änderungen nachvollziehen. Ein '''{{int:config-profile-private}}''' gestattet es nur ausgewählten Benutzern, Seiten zu betrachten sowie zu bearbeiten.\n\nKomplexere Konzepte zur Zugriffssteuerung können erst nach abgeschlossenem Installationsvorgang eingerichtet werden. Hierzu gibt es weitere Informationen auf der Website mit der [//www.mediawiki.org/wiki/Manual:User_rights entsprechenden Anleitung].",
+    "config-license": "Lizenz:",
+    "config-license-none": "Keine Lizenzangabe in der Fußzeile",
+    "config-license-cc-by-sa": "Creative Commons „Namensnennung, Weitergabe unter gleichen Bedingungen“",
+    "config-license-cc-by": "Creative Commons „Namensnennung“",
+    "config-license-cc-by-nc-sa": "Creative Commons „Namensnennung, nicht kommerziell, Weitergabe unter gleichen Bedingungen“",
+    "config-license-cc-0": "Creative Commons „Zero“ (Gemeinfreiheit)",
+    "config-license-gfdl": "GNU-Lizenz für freie Dokumentation 1.3 oder höher",
+    "config-license-pd": "Gemeinfreiheit",
+    "config-license-cc-choose": "Eine benutzerdefinierte Creative-Commons-Lizenz auswählen",
+    "config-license-help": "Viele öffentliche Wikis publizieren alle Beiträge unter einer [http://freedomdefined.org/Definition/De freien Lizenz].\nDies trägt dazu bei ein Gefühl von Gemeinschaft zu schaffen und ermutigt zu längerfristiger Mitarbeit.\nDahingegen ist im Allgemeinen eine freie Lizenz auf geschlossenen Wikis nicht notwendig.\n\nSofern man Texte aus der Wikipedia verwenden möchte und umgekehrt, sollte die Creative Commons-Lizenz „Namensnennung, Weitergabe unter gleichen Bedingungen“ gewählt werden.\n\nDie Wikipedia nutzte vormals die GNU-Lizenz für freie Dokumentation (GFDL).\nDie GFDL ist eine gültige Lizenz, die allerdings schwer zu verstehen ist.\nEs ist zudem schwierig gemäß dieser Lizenz lizenzierte Inhalten wiederzuverwenden.",
+    "config-email-settings": "E-Mail-Einstellungen",
+    "config-enable-email": "Ausgehende E-Mails ermöglichen",
+    "config-enable-email-help": "Sofern die E-Mail-Funktionen genutzt werden sollen, müssen die entsprechenden [http://www.php.net/manual/en/mail.configuration.php PHP-E-Mail-Einstellungen] richtig konfiguriert werden.\nFür den Fall, dass die E-Mail-Funktionen nicht benötigt werden, können sie hier deaktiviert werden.",
+    "config-email-user": "E-Mail-Versand von Benutzer zu Benutzer aktivieren",
+    "config-email-user-help": "Allen Benutzern ermöglichen, sich gegenseitig E-Mails zu schicken, sofern sie es in ihren Einstellungen aktiviert haben.",
+    "config-email-usertalk": "Benachrichtigungen zu Änderungen an Benutzerdiskussionsseiten ermöglichen",
+    "config-email-usertalk-help": "Ermöglicht es Benutzern, Benachrichtigungen zu Änderungen an ihren Benutzerdiskussionsseiten zu erhalten, sofern sie dies in ihren Einstellungen aktiviert haben.",
+    "config-email-watchlist": "Benachrichtigungen zu Änderungen an Seiten auf der Beobachtungsliste ermöglichen",
+    "config-email-watchlist-help": "Ermöglicht es Benutzern, Benachrichtigungen zu Änderungen an Seiten auf ihrer Beobachtungsliste zu erhalten, sofern sie dies in ihren Einstellungen aktiviert haben.",
+    "config-email-auth": "E-Mail-Authentifizierung ermöglichen",
+    "config-email-auth-help": "Sofern diese Funktion aktiviert ist, müssen Benutzer ihre E-Mail-Adresse bestätigen, indem sie den Bestätigungslink nutzen, der ihnen immer dann zugesandt wird, wenn sie ihre E-Mail-Adresse angeben oder ändern.\nNur bestätigte E-Mail-Adressen können Nachrichten von anderen Benutzer oder Benachrichtigungsmitteilungen erhalten.\nDie Aktivierung dieser Funktion wird bei offenen Wikis, mit Hinblick auf möglichen Missbrauch der E-Mail-Funktionen, '''empfohlen.'''",
+    "config-email-sender": "E-Mail-Adresse für Antworten:",
+    "config-email-sender-help": "Bitte hier die E-Mail-Adresse angeben, die als Absenderadresse bei ausgehenden E-Mails eingesetzt werden soll.\nRücklaufende E-Mails werden an diese E-Mail-Adresse gesandt.\nBei vielen E-Mail-Servern muss der Teil der E-Mail-Adresse mit der Domainangabe korrekt sein.",
+    "config-upload-settings": "Hochladen von Bildern und Dateien",
+    "config-upload-enable": "Das Hochladen von Dateien ermöglichen",
+    "config-upload-help": "Das Hochladen von Dateien macht den Server für potentielle Sicherheitsprobleme anfällig.\nWeitere Informationen hierzu können im [//www.mediawiki.org/wiki/Manual:Security Abschnitt Sicherheit] der Anleitung nachgelesen werden.\n\nUm das Hochladen von Dateien zu ermöglichen, muss der Zugriff auf das Unterverzeichnis <code>./images</code> so geändert werden, das dieses für den Webserver beschreibbar ist.\nHernach kann diese Option aktiviert werden.",
+    "config-upload-deleted": "Verzeichnis für gelöschte Dateien:",
+    "config-upload-deleted-help": "Bitte ein Verzeichnis auswählen, in dem gelöschte Dateien archiviert werden sollen.\nIdealerweise sollte es nicht über das Internet zugänglich sein.",
+    "config-logo": "URL des Logos:",
+    "config-logo-help": "Die Standardoberfläche von MediaWiki verfügt links oberhalb der Seitenleiste über Platz für ein Logo mit den Maßen 135x160 Pixel.\nBitte ein Logo in entsprechender Größe hochladen und die zugehörige URL an dieser Stelle angeben.\n\nDu kannst <code>$wgStylePath</code> oder <code>$wgScriptPath</code> verwenden, falls dein Logo relativ zu diesen Pfaden ist.\n\nSofern kein Logo benötigt wird, kann dieses Datenfeld leer bleiben.",
+    "config-instantcommons": "„InstantCommons“ aktivieren",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons InstantCommons] ist eine Funktion, die es Wikis ermöglicht, Bild-, Klang- und andere Mediendateien zu nutzen, die auf der Website [//commons.wikimedia.org/ Wikimedia Commons] verfügbar sind.\nUm diese Funktion nutzen zu können, muss das Wiki über eine Verbindung zum Internet verfügen.\n\nWeitere Informationen zu dieser Funktion, einschließlich der Anleitung, wie hierfür andere Wikis als Wikimedia Commons eingerichtet werden können, gibt es im [//mediawiki.org/wiki/Manual:$wgForeignFileRepos Handbuch].",
+    "config-cc-error": "Der Creativ-Commons-Lizenzassistent konnte keine Lizenz ermitteln.\nDie Lizenz ist daher jetzt manuell einzugeben.",
+    "config-cc-again": "Erneut auswählen …",
+    "config-cc-not-chosen": "Die gewünschte Creative-Commons-Lizenz auswählen und dann auf „weiter“ klicken.",
+    "config-advanced-settings": "Erweiterte Konfiguration",
+    "config-cache-options": "Einstellungen für die Zwischenspeicherung von Objekten:",
+    "config-cache-help": "Das Objektcaching wird dazu genutzt die Geschwindigkeit von MediaWiki zu verbessern, indem häufig genutzte Daten zwischengespeichert werden.\nEs wird sehr empfohlen es für mittelgroße bis große Wikis zu nutzen, aber auch für kleine Wikis ergeben sich erkennbare Geschwindigkeitsverbesserungen.",
+    "config-cache-none": "Kein Objektcaching (es wird keine Funktion entfernt, allerdings kann dies die Geschwindigkeit größerer Wikis negativ beeinflussen)",
+    "config-cache-accel": "Objektcaching von PHP (APC, XCache oder WinCache)",
+    "config-cache-memcached": "Memcached Cacheserver nutzen (erfordert einen zusätzlichen Installationsvorgang mitsamt Konfiguration)",
+    "config-memcached-servers": "Memcached Cacheserver",
+    "config-memcached-help": "Liste der für Memcached nutzbaren IP-Adressen.\nEs sollte eine je Zeile mitsamt des vorgesehenen Ports angegeben werden. Beispiele:\n127.0.0.1:11211 oder\n192.168.1.25:1234 usw.",
+    "config-memcache-needservers": "Memcached wurde als Cacheserver ausgewählt. Dabei wurde allerdings kein Server angegeben.",
+    "config-memcache-badip": "Es wurde für Memcached eine ungültige IP-Adresse angegeben: $1",
+    "config-memcache-noport": "Es wurde kein Port zur Nutzung durch den Memcached Cacheserver angegeben: $1\nSofern der Port unbekannt ist, ist 11211 die Standardangabe.",
+    "config-memcache-badport": "Der Ports für den Memcached Cacheserver sollten zwischen $1 und $2 liegen",
+    "config-extensions": "Erweiterungen",
+    "config-extensions-help": "Die obig angegebenen Erweiterungen wurden im Verzeichnis <code>./extensions</code> gefunden.\n\nEs könnten zusätzliche Konfigurierungen zu einzelnen Erweiterungen erforderlich sein, dennoch können sie aber bereits jetzt aktiviert werden.",
+    "config-install-alreadydone": "'''Warnung:''' Es wurde eine vorhandene MediaWiki-Installation gefunden.\nEs muss daher mit den nächsten Seite weitergemacht werden.",
+    "config-install-begin": "Durch Drücken von „{{int:config-continue}}“ wird die Installation von MediaWiki gestartet.\nSofern Änderungen vorgenommen werden sollen, kann man auf „{{int:config-back}}“ klicken.",
+    "config-install-step-done": "erledigt",
+    "config-install-step-failed": "gescheitert",
+    "config-install-extensions": "Programmerweiterungen",
+    "config-install-database": "Datenbank wird eingerichtet",
+    "config-install-schema": "Datenschema wird erstellt",
+    "config-install-pg-schema-not-exist": "Das PostgesSQL-Datenschema ist nicht vorhanden",
+    "config-install-pg-schema-failed": "Das Erstellen der Datentabellen ist gescheitert.\nEs muss sichergestellt sein, dass der Benutzer „$1“ Schreibzugriff auf das Datenschema „$2“ hat.",
+    "config-install-pg-commit": "Änderungen anwenden",
+    "config-install-pg-plpgsql": "Suche nach der Datenbanksprache PL/pgSQL",
+    "config-pg-no-plpgsql": "Für Datenbank $1 muss die Datenbanksprache PL/pgSQL installiert werden",
+    "config-pg-no-create-privs": "Das für die Installation angegeben Konto verfügt nicht über ausreichende Berechtigungen, um ein Datenbanknutzerkonto zu erstellen.",
+    "config-pg-not-in-role": "Das für den Webbenutzer angegebene Benutzerkonto ist bereits vorhanden.\nDas für den Installationsvorgang angegebene Benutzerkonto ist kein Superbenutzer und nicht Mitglied der Benutzergruppe der Webbenutzer, so dass keine dem Webbenutzer zugeordneten Datenobjekte erstellt werden können.\n\nFür MediaWiki ist es momentan erforderlich, dass die Tabellen dem Webbenutzer rechtemäßig zugeordnet sind. Bitte einen anderen Namen für den Wikibenutzer angeben oder „← Zurück“ anklicken, um einen ausreichend berechtigten Benutzer für den Installationsvorgang anzugeben.",
+    "config-install-user": "Datenbankbenutzer wird erstellt",
+    "config-install-user-alreadyexists": "Datenbankbenutzer „$1“ ist bereits vorhanden",
+    "config-install-user-create-failed": "Das Anlegen des Datenbankbenutzers „$1“ ist gescheitert: $2",
+    "config-install-user-grant-failed": "Die Gewährung der Berechtigung für Datenbankbenutzer „$1“ ist gescheitert: $2",
+    "config-install-user-missing": "Der angegebene Benutzer „$1“ ist nicht vorhanden.",
+    "config-install-user-missing-create": "Der angegebene Benutzer „$1“ ist nicht vorhanden.\nBitte das Auswahlkästchen „Benutzerkonto erstellen“ anklicken, sofern dieser erstellt werden soll.",
+    "config-install-tables": "Datentabellen werden erstellt",
+    "config-install-tables-exist": "'''Warnung:''' Es wurden MediaWiki-Datentabellen gefunden.\nDie Erstellung wurde übersprungen.",
+    "config-install-tables-failed": "'''Fehler:''' Die Erstellung der Datentabellen ist aufgrund des folgenden Fehlers gescheitert: $1",
+    "config-install-interwiki": "Interwikitabellen werden eingerichtet",
+    "config-install-interwiki-list": "Die Datei <code>interwiki.list</code> konnte nicht gelesen werden.",
+    "config-install-interwiki-exists": "'''Warnung:'''  Es wurden Interwikitabellen mit Daten gefunden.\nDie Standardliste wird übersprungen.",
+    "config-install-stats": "Statistiken werden initialisiert",
+    "config-install-keys": "Geheimschlüssel werden erstellt",
+    "config-insecure-keys": "'''Warnung:''' {{PLURAL:$2|Der Geheimschlüssel|Die Geheimschlüssel}} $1, {{PLURAL:$2|der|die}} während des Installationsvorgangs generiert {{PLURAL:$2|wurde, ist|wurden, sind}} nicht sehr sicher. {{PLURAL:$2|Er sollte|Sie sollten}} manuell geändert werden.",
+    "config-install-sysop": "Administratorkonto wird erstellt",
+    "config-install-subscribe-fail": "Abonnieren von „mediawiki-announce“ ist gescheitert: $1",
+    "config-install-subscribe-notpossible": "cURL ist nicht installiert und allow_url_fopen ist nicht verfügbar.",
+    "config-install-mainpage": "Erstellung der Hauptseite mit Standardinhalten",
+    "config-install-extension-tables": "Erstellung der Tabellen für die aktivierten Erweiterungen",
+    "config-install-mainpage-failed": "Die Hauptseite konnte nicht erstellt werden: $1",
+    "config-install-done": "'''Herzlichen Glückwunsch!'''\nMediaWiki wurde erfolgreich installiert.\n\nDas Installationsprogramm hat die Datei <code>LocalSettings.php</code> erzeugt.\nSie enthält alle vorgenommenen Konfigurationseinstellungen.\n\nDiese Datei muss nun heruntergeladen und anschließend in das Stammverzeichnis der MediaWiki-Installation hochgeladen werden. Dies ist dasselbe Verzeichnis, in dem sich auch die Datei <code>index.php</code> befindet. Das Herunterladen sollte inzwischen automatisch gestartet worden sein.\n\nSofern dies nicht der Fall war, oder das Herunterladen unterbrochen wurde, kann der Vorgang durch einen Klick auf den folgenden Link erneut gestartet werden:\n\n$3\n\n'''Hinweis:''' Die Konfigurationsdatei sollte jetzt unbedingt heruntergeladen werden. Sie wird nach Beenden des Installationsprogramms, nicht mehr zur Verfügung stehen.\n\nSobald alles erledigt wurde, kann auf das '''[$2 Wiki zugegriffen werden]'''. Wir wünschen viel Spaß und Erfolg mit dem Wiki.",
+    "config-download-localsettings": "<code>LocalSettings.php</code> herunterladen",
+    "config-help": "Hilfe",
+    "config-nofile": "Die Datei „$1“ konnte nicht gefunden werden. Wurde sie gelöscht?",
+    "config-extension-link": "Wusstest du, dass dein Wiki [//www.mediawiki.org/wiki/Manual:Extensions Erweiterungen] unterstützt?\n\nDu kannst [//www.mediawiki.org/wiki/Category:Extensions_by_category Erweiterungen nach Kategorie] durchsuchen oder die [//www.mediawiki.org/wiki/Extension_Matrix Erweiterungstabelle] ansehen, um eine volle Erweiterungsliste zu erhalten.",
+    "mainpagetext": "'''MediaWiki wurde erfolgreich installiert.'''",
+    "mainpagedocfooter": "Hilfe zur Benutzung und Konfiguration der Wiki-Software findest du im [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuch].\n\n== Starthilfen ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Lokalisiere MediaWiki für deine Sprache]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/diq.json b/includes/installer/i18n/diq.json
new file mode 100644 (file)
index 0000000..78daf1d
--- /dev/null
@@ -0,0 +1,53 @@
+{
+    "@metadata": {
+        "authors": [
+            "Erdemaslancan",
+            "Mirzali"
+        ]
+    },
+    "config-title": "MediaWiki $1 sazkerdış",
+    "config-information": "Melumat",
+    "config-your-language": "Zıwanê şıma:",
+    "config-wiki-language": "Wiki zıwan:",
+    "config-back": "← Peyser",
+    "config-continue": "Dewam ke",
+    "config-page-language": "Zıwan",
+    "config-page-welcome": "Şıma xeyr ameyê MediaWiki!",
+    "config-page-dbconnect": "Database rê grêdey",
+    "config-page-name": "Name",
+    "config-page-options": "Weçinegi",
+    "config-page-install": "Barine",
+    "config-page-complete": "Temamyayo",
+    "config-page-readme": "Mı bıwane",
+    "config-page-copying": "Kopyayeno",
+    "config-page-upgradedoc": "Berzkerdış",
+    "config-restart": "E, fına dest pekê",
+    "config-sidebar": "* [//www.mediawiki.org MediaWiki keye]\n* [//www.mediawiki.org/wiki/Help:Contents User's Şınasiye]\n* [//www.mediawiki.org/wiki/Manual:Contents Xizmetkara şınasiye]\n* [//www.mediawiki.org/wiki/Manual:FAQ Peşti]\n----\n* <doclink href=Readme>Mı buwanê</doclink>\n* <doclink href=ReleaseNotes>Notê elekeyıni</doclink>\n* <doclink href=Copying>Telifiye</doclink>\n* <doclink href=UpgradeDoc>Weşkerdış</doclink>",
+    "config-env-php": "PHP $1 i biyo saz.",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 dılet",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-db-port": "Portê database:",
+    "config-header-mysql": "Sazkardışê MySQL",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-binary": "Dılet",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "Namey wiki:",
+    "config-ns-generic": "Proce",
+    "config-ns-other": "Zewbi (keyfiyo)",
+    "config-ns-other-default": "MyWiki",
+    "config-admin-box": "Hesabê Administratori",
+    "config-admin-name": "Namey şıma:",
+    "config-admin-password": "Parola:",
+    "config-admin-password-confirm": "Fına parola:",
+    "config-admin-email": "Adresa e-postey:",
+    "config-profile-private": "Bexse wiki",
+    "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
+    "config-license-cc-by": "Creative Commons Attribution",
+    "config-license-cc-by-nc-sa": "Creative Commons Attribution Non-Commercial Share Alike",
+    "config-license-pd": "Malê Şari",
+    "config-extensions": "Olekeni",
+    "config-help": "peşti",
+    "mainpagetext": "'''MediaWiki vıst ra ser, vıraziya.'''",
+    "mainpagedocfooter": "Seba gurenayış u eyarkerdışê Wiki-Softwarey [//meta.wikimedia.org/wiki/Help:Contents İdarê karberi] de mıracaet ke.\n\n== Yardımê Sıftekerdışi ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista eyaranê vıraştışi]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki de ÇZP]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki ra lista serbest-dayışê postey]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/dsb.json b/includes/installer/i18n/dsb.json
new file mode 100644 (file)
index 0000000..da8bd44
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Michawiki"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki jo se wuspěšnje instalěrowało.'''",
+    "mainpagedocfooter": "Pomoc pśi wužywanju softwary wiki namakajoš pód [//meta.wikimedia.org/wiki/Help:Contents User's Guide].\n\nPomoc pśi wužywanju softwary wiki namakajoš pód [//meta.wikimedia.org/wiki/Help:Contents User's Guide].\n\n== Na zachopjenje ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Konfiguracija lisćiny połoženjow]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ (pšašanja a wótegrona)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lisćina e-mailowych nakładow MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources MediaWiki za twóju rěc lokalizěrowaś]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/dtp.json b/includes/installer/i18n/dtp.json
new file mode 100644 (file)
index 0000000..2280a90
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "FRANELYA"
+        ]
+    },
+    "mainpagetext": "'''Nopongo no do popodokot ot ModiaWiki.'''",
+    "mainpagedocfooter": "Rujuko hilo [//meta.wikimedia.org/wiki/Help:Contents Ponudukan Momomoguno] kokomoi koilaan do momoguno posusuang-suangon wiki.\n\n== Kopotimpuunan ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lis papatantu nuludan]\n* [//www.mediawiki.org/wiki/Manual:FAQ Ponguhatan Koinsoruan om Simbar ModiaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lis pininsuratan pinolabus do ModiaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/el.json b/includes/installer/i18n/el.json
new file mode 100644 (file)
index 0000000..c88b749
--- /dev/null
@@ -0,0 +1,68 @@
+{
+    "@metadata": {
+        "authors": [
+            "Glavkos",
+            "Protnet",
+            "ZaDiak"
+        ]
+    },
+    "config-desc": "Το πρόγραμμα εγκατάστασης για το MediaWiki",
+    "config-title": "Εγκατάσταση MediaWiki $1",
+    "config-information": "Πληροφορίες",
+    "config-your-language": "Η γλώσσα σας:",
+    "config-wiki-language": "Γλώσσα του wiki:",
+    "config-back": "← Πίσω",
+    "config-continue": "Συνέχεια →",
+    "config-page-language": "Γλώσσα",
+    "config-page-welcome": "Καλώς ήλθατε στο MediaWiki!",
+    "config-page-name": "Όνομα",
+    "config-page-options": "Επιλογές",
+    "config-page-install": "Εγκατάσταση",
+    "config-page-complete": "Ολοκληρώθηκε!",
+    "config-page-restart": "Επανεκκίνηση εγκατάστασης",
+    "config-page-copying": "Αντιγραφή",
+    "config-page-upgradedoc": "Αναβάθμιση",
+    "config-page-existingwiki": "Υπάρχον βίκι",
+    "config-restart": "Ναι, κάντε επανεκκίνηση",
+    "config-env-php": "H PHP $1 είναι εγκατεστημένη.",
+    "config-db-type": "Τύπος βάσης δεδομένων:",
+    "config-db-host": "Φιλοξενία βάσης δεδομένων:",
+    "config-db-wiki-settings": "Αναγνώριση αυτού του βίκι",
+    "config-db-name": "Όνομα βάσης δεδομένων:",
+    "config-db-install-account": "Λογαριασμός χρήστη για την εγκατάσταση",
+    "config-db-username": "Όνομα χρήστη βάσης δεδομένων:",
+    "config-db-password": "Κωδικός πρόσβασης βάσης δεδομένων:",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 δυαδικό",
+    "config-header-mysql": "Ρυθμίσεις MySQL",
+    "config-header-postgres": "Ρυθμίσεις PostgreSQL",
+    "config-header-sqlite": "Ρυθμίσεις SQLite",
+    "config-header-oracle": "Ρυθμίσεις Oracle",
+    "config-invalid-db-type": "Μη έγκυρος τύπος βάσης δεδομένων",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "Όνομα του βίκι:",
+    "config-site-name-blank": "Εισαγάγετε όνομα ιστοχώρου.",
+    "config-project-namespace": "Ονοματοχώρος εγχειρήματος:",
+    "config-ns-generic": "Εγχείρημα",
+    "config-ns-site-name": "Ίδιο με το όνομα του wiki: $1",
+    "config-ns-other": "Άλλο (προσδιορίστε)",
+    "config-admin-box": "Λογαριασμός διαχειριστή",
+    "config-admin-name": "Το όνομά σας:",
+    "config-admin-password": "Κωδικός πρόσβασης:",
+    "config-admin-password-confirm": "Επανάληψη κωδικού πρόσβασης:",
+    "config-admin-email": "Διεύθυνση ηλεκτρονικού ταχυδρομείου:",
+    "config-optional-continue": "Να ερωτηθώ περισσότερες ερωτήσεις.",
+    "config-profile-wiki": "Παραδοσιακό wiki",
+    "config-profile-no-anon": "Απαιτείται η δημιουργία λογαριασμού",
+    "config-profile-private": "Ιδιωτικό wiki",
+    "config-email-settings": "Ρυθμίσεις ηλεκτρονικού ταχυδρομείου",
+    "config-upload-settings": "Ανέβασμα εικόνων και άλλων αρχείων",
+    "config-upload-enable": "Ενεργοποιήστε το ανέβασμα αρχείων",
+    "config-logo": "Διεύθυνση URL λογότυπου:",
+    "config-cc-again": "Επιλέξτε ξανά...",
+    "config-extensions": "Επεκτάσεις",
+    "config-install-step-done": "έγινε",
+    "config-install-step-failed": "απέτυχε",
+    "config-help": "βοήθεια",
+    "mainpagetext": "'''To λογισμικό MediaWiki εγκαταστάθηκε με επιτυχία.'''",
+    "mainpagedocfooter": "Περισσότερες πληροφορίες σχετικά με τη χρήση και με τη ρύθμιση παραμέτρων θα βρείτε στους συνδέσμους: [//meta.wikimedia.org/wiki/MediaWiki_localisation Οδηγίες για τροποποίηση του περιβάλλοντος εργασίας] και [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Εγχειρίδιο χρήστη]."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/en-gb.json b/includes/installer/i18n/en-gb.json
new file mode 100644 (file)
index 0000000..2f836ca
--- /dev/null
@@ -0,0 +1,14 @@
+{
+    "@metadata": {
+        "authors": [
+            "Shirayuki"
+        ]
+    },
+    "config-unicode-using-utf8": "Using Brion Vibber's utf8_normalize.so for Unicode normalisation.",
+    "config-unicode-using-intl": "Using the [http://pecl.php.net/intl intl PECL extension] for Unicode normalisation.",
+    "config-unicode-pure-php-warning": "'''Warning:''' The [http://pecl.php.net/intl intl PECL extension] is not available to handle Unicode normalisation, falling back to slow pure-PHP implementation.\nIf you run a high-traffic site, you should read a little on [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode normalisation].",
+    "config-unicode-update-warning": "'''Warning:''' The installed version of the Unicode normalisation wrapper uses an older version of [http://site.icu-project.org/ the ICU project's] library.\nYou should [//www.mediawiki.org/wiki/Unicode_normalization_considerations upgrade] if you are at all concerned about using Unicode.",
+    "config-unknown-collation": "'''Warning:''' Database is using unrecognised collation.",
+    "config-profile-fishbowl": "Authorised editors only",
+    "config-install-stats": "Initialising statistics"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/en.json b/includes/installer/i18n/en.json
new file mode 100644 (file)
index 0000000..45149c5
--- /dev/null
@@ -0,0 +1,314 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "config-desc": "The installer for MediaWiki",
+    "config-title": "MediaWiki $1 installation",
+    "config-information": "Information",
+    "config-localsettings-upgrade": "A <code>LocalSettings.php</code> file has been detected.\nTo upgrade this installation, please enter the value of <code>$wgUpgradeKey</code> in the box below.\nYou will find it in <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "A <code>LocalSettings.php</code> file has been detected.\nTo upgrade this installation, please run <code>update.php</code> instead",
+    "config-localsettings-key": "Upgrade key:",
+    "config-localsettings-badkey": "The key you provided is incorrect.",
+    "config-upgrade-key-missing": "An existing installation of MediaWiki has been detected.\nTo upgrade this installation, please put the following line at the bottom of your <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "The existing <code>LocalSettings.php</code> appears to be incomplete.\nThe $1 variable is not set.\nPlease change <code>LocalSettings.php</code> so that this variable is set, and click \"{{int:Config-continue}}\".",
+    "config-localsettings-connection-error": "An error was encountered when connecting to the database using the settings specified in <code>LocalSettings.php</code>. Please fix these settings and try again.\n\n$1",
+    "config-session-error": "Error starting session: $1",
+    "config-session-expired": "Your session data seems to have expired.\nSessions are configured for a lifetime of $1.\nYou can increase this by setting <code>session.gc_maxlifetime</code> in php.ini.\nRestart the installation process.",
+    "config-no-session": "Your session data was lost!\nCheck your php.ini and make sure <code>session.save_path</code> is set to an appropriate directory.",
+    "config-your-language": "Your language:",
+    "config-your-language-help": "Select a language to use during the installation process.",
+    "config-wiki-language": "Wiki language:",
+    "config-wiki-language-help": "Select the language that the wiki will predominantly be written in.",
+    "config-back": "← Back",
+    "config-continue": "Continue →",
+    "config-page-language": "Language",
+    "config-page-welcome": "Welcome to MediaWiki!",
+    "config-page-dbconnect": "Connect to database",
+    "config-page-upgrade": "Upgrade existing installation",
+    "config-page-dbsettings": "Database settings",
+    "config-page-name": "Name",
+    "config-page-options": "Options",
+    "config-page-install": "Install",
+    "config-page-complete": "Complete!",
+    "config-page-restart": "Restart installation",
+    "config-page-readme": "Read me",
+    "config-page-releasenotes": "Release notes",
+    "config-page-copying": "Copying",
+    "config-page-upgradedoc": "Upgrading",
+    "config-page-existingwiki": "Existing wiki",
+    "config-help-restart": "Do you want to clear all saved data that you have entered and restart the installation process?",
+    "config-restart": "Yes, restart it",
+    "config-welcome": "=== Environmental checks ===\nBasic checks will now be performed to see if this environment is suitable for MediaWiki installation.\nRemember to include this information if you seek support on how to complete the installation.",
+    "config-copyright": "=== Copyright and Terms ===\n\n$1\n\nThis 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.\n\nThis program is distributed in the hope that it will be useful, but <strong>without any warranty</strong>; without even the implied warranty of <strong>merchantability</strong> or <strong>fitness for a particular purpose</strong>.\nSee the GNU General Public License for more details.\n\nYou should have received <doclink href=Copying>a copy of the GNU General Public License</doclink> along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, or [http://www.gnu.org/copyleft/gpl.html read it online].",
+    "config-sidebar": "* [//www.mediawiki.org MediaWiki home]\n* [//www.mediawiki.org/wiki/Help:Contents User's Guide]\n* [//www.mediawiki.org/wiki/Manual:Contents Administrator's Guide]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Read me</doclink>\n* <doclink href=ReleaseNotes>Release notes</doclink>\n* <doclink href=Copying>Copying</doclink>\n* <doclink href=UpgradeDoc>Upgrading</doclink>",
+    "config-env-good": "The environment has been checked.\nYou can install MediaWiki.",
+    "config-env-bad": "The environment has been checked.\nYou cannot install MediaWiki.",
+    "config-env-php": "PHP $1 is installed.",
+    "config-env-php-toolow": "PHP $1 is installed.\nHowever, MediaWiki requires PHP $2 or higher.",
+    "config-unicode-using-utf8": "Using Brion Vibber's utf8_normalize.so for Unicode normalization.",
+    "config-unicode-using-intl": "Using the [http://pecl.php.net/intl intl PECL extension] for Unicode normalization.",
+    "config-unicode-pure-php-warning": "<strong>Warning:</strong> The [http://pecl.php.net/intl intl PECL extension] is not available to handle Unicode normalization, falling back to slow pure-PHP implementation.\nIf you run a high-traffic site, you should read a little on [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode normalization].",
+    "config-unicode-update-warning": "<strong>Warning:</strong> The installed version of the Unicode normalization wrapper uses an older version of [http://site.icu-project.org/ the ICU project's] library.\nYou should [//www.mediawiki.org/wiki/Unicode_normalization_considerations upgrade] if you are at all concerned about using Unicode.",
+    "config-no-db": "Could not find a suitable database driver! You need to install a database driver for PHP.\nThe following database types are supported: $1.\n\nIf you compiled PHP yourself, reconfigure it with a database client enabled, for example, using <code>./configure --with-mysqli</code>.\nIf you installed PHP from a Debian or Ubuntu package, then you also need to install, for example, the <code>php5-mysql</code> package.",
+    "config-outdated-sqlite": "<strong>Warning:</strong> you have SQLite $1, which is lower than minimum required version $2. SQLite will be unavailable.",
+    "config-no-fts3": "<strong>Warning:</strong> SQLite is compiled without the [//sqlite.org/fts3.html FTS3 module], search features will be unavailable on this backend.",
+    "config-register-globals": "<strong>Warning: PHP's <code>[http://php.net/register_globals register_globals]</code> option is enabled.\nDisable it if you can.</strong>\nMediaWiki will work, but your server is exposed to potential security vulnerabilities.",
+    "config-magic-quotes-runtime": "<strong>Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] is active!'</strong>\nThis option corrupts data input unpredictably.\nYou cannot install or use MediaWiki unless this option is disabled.",
+    "config-magic-quotes-sybase": "<strong>Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] is active!</strong>\nThis option corrupts data input unpredictably.\nYou cannot install or use MediaWiki unless this option is disabled.",
+    "config-mbstring": "<strong>Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] is active!</strong>\nThis option causes errors and may corrupt data unpredictably.\nYou cannot install or use MediaWiki unless this option is disabled.",
+    "config-safe-mode": "<strong>Warning:</strong> PHP's [http://www.php.net/features.safe-mode safe mode] is active.\nIt may cause problems, particularly if using file uploads and <code>math</code> support.",
+    "config-xml-bad": "PHP's XML module is missing.\nMediaWiki requires functions in this module and will not work in this configuration.\nIf you're running Mandrake, install the php-xml package.",
+    "config-pcre-old": "<strong>Fatal:</strong> PCRE $1 or later is required.\nYour PHP binary is linked with PCRE $2.\n[https://www.mediawiki.org/wiki/Manual:Errors_and_symptoms/PCRE More information].",
+    "config-pcre-no-utf8": "<strong>Fatal:</strong> PHP's PCRE module seems to be compiled without PCRE_UTF8 support.\nMediaWiki requires UTF-8 support to function correctly.",
+    "config-memory-raised": "PHP's <code>memory_limit</code> is $1, raised to $2.",
+    "config-memory-bad": "<strong>Warning:</strong> PHP's <code>memory_limit</code> is $1.\nThis is probably too low.\nThe installation may fail!",
+    "config-ctype": "<strong>Fatal:</strong> PHP must be compiled with support for the [http://www.php.net/manual/en/ctype.installation.php Ctype extension].",
+    "config-json": "<strong>Fatal:</strong> PHP was compiled without JSON support.\nYou must install either the PHP JSON extension or the [http://pecl.php.net/package/jsonc PECL jsonc] extension before installing MediaWiki.\n* The PHP extension is included in Red Hat Enterprise Linux (CentOS) 5 and 6, though must be enabled in <code>/etc/php.ini</code> or <code>/etc/php.d/json.ini</code>.\n* Some Linux distributions released after May 2013 omit the PHP extension, instead packaging the PECL extension as <code>php5-json</code> or <code>php-pecl-jsonc</code>.",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] is installed",
+    "config-apc": "[http://www.php.net/apc APC] is installed",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] is installed",
+    "config-no-cache": "<strong>Warning:</strong> Could not find [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] or [http://www.iis.net/download/WinCacheForPhp WinCache].\nObject caching is not enabled.",
+    "config-mod-security": "<strong>Warning:</strong> Your web server has [http://modsecurity.org/ mod_security] enabled. If misconfigured, it can cause problems for MediaWiki or other software that allows users to post arbitrary content.\nRefer to [http://modsecurity.org/documentation/ mod_security documentation] or contact your host's support if you encounter random errors.",
+    "config-diff3-bad": "GNU diff3 not found.",
+    "config-git": "Found the Git version control software: <code>$1</code>.",
+    "config-git-bad": "Git version control software not found.",
+    "config-imagemagick": "Found ImageMagick: <code>$1</code>.\nImage thumbnailing will be enabled if you enable uploads.",
+    "config-gd": "Found GD graphics library built-in.\nImage thumbnailing will be enabled if you enable uploads.",
+    "config-no-scaling": "Could not find GD library or ImageMagick.\nImage thumbnailing will be disabled.",
+    "config-no-uri": "<strong>Error:</strong> Could not determine the current URI.\nInstallation aborted.",
+    "config-no-cli-uri": "<strong>Warning:</strong> No --scriptpath specified, using default: <code>$1</code>.",
+    "config-using-server": "Using server name \"<nowiki>$1</nowiki>\".",
+    "config-using-uri": "Using server URL \"<nowiki>$1$2</nowiki>\".",
+    "config-uploads-not-safe": "<strong>Warning:</strong> Your default directory for uploads <code>$1</code> is vulnerable to arbitrary scripts execution.\nAlthough MediaWiki checks all uploaded files for security threats, it is highly recommended to [//www.mediawiki.org/wiki/Manual:Security#Upload_security close this security vulnerability] before enabling uploads.",
+    "config-no-cli-uploads-check": "<strong>Warning:</strong> Your default directory for uploads (<code>$1</code>) is not checked for vulnerability\nto arbitrary script execution during the CLI install.",
+    "config-brokenlibxml": "Your system has a combination of PHP and libxml2 versions that is buggy and can cause hidden data corruption in MediaWiki and other web applications.\nUpgrade to libxml2 2.7.3 or later ([https://bugs.php.net/bug.php?id=45996 bug filed with PHP]).\nInstallation aborted.",
+    "config-suhosin-max-value-length": "Suhosin is installed and limits the GET parameter <code>length</code> to $1 bytes.\nMediaWiki's ResourceLoader component will work around this limit, but that will degrade performance.\nIf at all possible, you should set <code>suhosin.get.max_value_length</code> to 1024 or higher in <code>php.ini</code>, and set <code>$wgResourceLoaderMaxQueryLength</code> to the same value in <code>LocalSettings.php</code>.",
+    "config-db-type": "Database type:",
+    "config-db-host": "Database host:",
+    "config-db-host-help": "If your database server is on different server, enter the host name or IP address here.\n\nIf you are using shared web hosting, your hosting provider should give you the correct host name in their documentation.\n\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.\n\nIf you are using PostgreSQL, leave this field blank to connect via a Unix socket.",
+    "config-db-host-oracle": "Database TNS:",
+    "config-db-host-oracle-help": "Enter a valid [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name]; a tnsnames.ora file must be visible to this installation.<br />If you are using client libraries 10g or newer you can also use the [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect] naming method.",
+    "config-db-wiki-settings": "Identify this wiki",
+    "config-db-name": "Database name:",
+    "config-db-name-help": "Choose a name that identifies your wiki.\nIt should not contain spaces.\n\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.",
+    "config-db-name-oracle": "Database schema:",
+    "config-db-account-oracle-warn": "There are three supported scenarios for installing Oracle as database backend:\n\nIf you wish to create database account as part of the installation process, please supply an account with SYSDBA role as database account for installation and specify the desired credentials for the web-access account, otherwise you can either create the web-access account manually and supply only that account (if it has required permissions to create the schema objects) or supply two different accounts, one with create privileges and a restricted one for web access.\n\nScript for creating an account with required privileges can be found in \"maintenance/oracle/\" directory of this installation. Keep in mind that using a restricted account will disable all maintenance capabilities with the default account.",
+    "config-db-install-account": "User account for installation",
+    "config-db-username": "Database username:",
+    "config-db-password": "Database password:",
+    "config-db-password-empty": "Please enter a password for the new database user: $1.\nWhile it may be possible to create users with no passwords, it is not secure.",
+    "config-db-install-username": "Enter the username that will be used to connect to the database during the installation process.\nThis is not the username of the MediaWiki account; this is the username for your database.",
+    "config-db-install-password": "Enter the password that will be used to connect to the database during the installation process.\nThis is not the password for the MediaWiki account; this is the password for your database.",
+    "config-db-install-help": "Enter the username and password that will be used to connect to the database during the installation process.",
+    "config-db-account-lock": "Use the same username and password during normal operation",
+    "config-db-wiki-account": "User account for normal operation",
+    "config-db-wiki-help": "Enter the username and password that will be used to connect to the database during normal wiki operation.\nIf the account does not exist, and the installation account has sufficient privileges, this user account will be created with the minimum privileges required to operate the wiki.",
+    "config-db-prefix": "Database table prefix:",
+    "config-db-prefix-help": "If you need to share one database between multiple wikis, or between MediaWiki and another web application, you may choose to add a prefix to all the table names to avoid conflicts.\nDo not use spaces.\n\nThis field is usually left empty.",
+    "config-db-charset": "Database character set",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 backwards-compatible UTF-8",
+    "config-charset-help": "<strong>Warning:</strong> If you use <strong>backwards-compatible UTF-8</strong> on MySQL 4.1+, and subsequently back up the database with <code>mysqldump</code>, it may destroy all non-ASCII characters, irreversibly corrupting your backups!\n\nIn <strong>binary mode</strong>, MediaWiki stores UTF-8 text to the database in binary fields.\nThis is more efficient than MySQL's UTF-8 mode, and allows you to use the full range of Unicode characters.\nIn <strong>UTF-8 mode</strong>, MySQL will know what character set your data is in, and can present and convert it appropriately,\nbut it will not let you store characters above the [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+    "config-mysql-old": "MySQL $1 or later is required. You have $2.",
+    "config-db-port": "Database port:",
+    "config-db-schema": "Schema for MediaWiki:",
+    "config-db-schema-help": "This schema will usually be fine.\nOnly change it if you know you need to.",
+    "config-pg-test-error": "Cannot connect to database <strong>$1</strong>: $2",
+    "config-sqlite-dir": "SQLite data directory:",
+    "config-sqlite-dir-help": "SQLite stores all data in a single file.\n\nThe directory you provide must be writable by the webserver during installation.\n\nIt should <strong>not</strong> be accessible via the web, this is why we're not putting it where your PHP files are.\n\nThe installer will write a <code>.htaccess</code> file along with it, but if that fails someone can gain access to your raw database.\nThat includes raw user data (email addresses, hashed passwords) as well as deleted revisions and other restricted data on the wiki.\n\nConsider putting the database somewhere else altogether, for example in <code>/var/lib/mediawiki/yourwiki</code>.",
+    "config-oracle-def-ts": "Default tablespace:",
+    "config-oracle-temp-ts": "Temporary tablespace:",
+    "config-type-mysql": "MySQL (or compatible)",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-type-mssql": "Microsoft SQL Server",
+    "config-support-info": "MediaWiki supports the following database systems:\n\n$1\n\nIf you do not see the database system you are trying to use listed below, then follow the instructions linked above to enable support.",
+    "config-dbsupport-mysql": "* [{{int:version-db-mysql-url}} MySQL] is the primary target for MediaWiki and is best supported. MediaWiki also works with [{{int:version-db-mariadb-url}} MariaDB] and [{{int:version-db-percona-url}} Percona Server], which are MySQL compatible. ([http://www.php.net/manual/en/mysqli.installation.php How to compile PHP with MySQL support])",
+    "config-dbsupport-postgres": "* [{{int:version-db-postgres-url}} PostgreSQL] is a popular open source database system as an alternative to MySQL. There may be some minor outstanding bugs, and it is not recommended for use in a production environment. ([http://www.php.net/manual/en/pgsql.installation.php How to compile PHP with PostgreSQL support])",
+    "config-dbsupport-sqlite": "* [{{int:version-db-sqlite-url}} SQLite] is a lightweight database system that is very well supported. ([http://www.php.net/manual/en/pdo.installation.php How to compile PHP with SQLite support], uses PDO)",
+    "config-dbsupport-oracle": "* [{{int:version-db-oracle-url}} Oracle] is a commercial enterprise database. ([http://www.php.net/manual/en/oci8.installation.php How to compile PHP with OCI8 support])",
+    "config-dbsupport-mssql": "* [{{int:version-db-mssql-url}} Microsoft SQL Server] is a commercial enterprise database for Windows. ([http://www.php.net/manual/en/sqlsrv.installation.php How to compile PHP with SQLSRV support])",
+    "config-header-mysql": "MySQL settings",
+    "config-header-postgres": "PostgreSQL settings",
+    "config-header-sqlite": "SQLite settings",
+    "config-header-oracle": "Oracle settings",
+    "config-header-mssql": "Microsoft SQL Server settings",
+    "config-invalid-db-type": "Invalid database type",
+    "config-missing-db-name": "You must enter a value for \"Database name\"",
+    "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\".\nUse 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\".\nUse only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_) and hyphens (-).",
+    "config-invalid-db-prefix": "Invalid database prefix \"$1\".\nUse only ASCII letters (a-z, A-Z), numbers (0-9), underscores (_) and hyphens (-).",
+    "config-connection-error": "$1.\n\nCheck the host, username and password and try again.",
+    "config-invalid-schema": "Invalid schema for MediaWiki \"$1\".\nUse only ASCII letters (a-z, A-Z), numbers (0-9) and underscores (_).",
+    "config-db-sys-create-oracle": "Installer only supports using a SYSDBA account for creating a new account.",
+    "config-db-sys-user-exists-oracle": "User account \"$1\" already exists. SYSDBA can only be used for creating of a new account!",
+    "config-postgres-old": "PostgreSQL $1 or later is required. You have $2.",
+    "config-mssql-old": "Microsoft SQL Server $1 or later is required. You have $2.",
+    "config-sqlite-name-help": "Choose a name that identifies your wiki.\nDo not use spaces or hyphens.\nThis will be used for the SQLite data file name.",
+    "config-sqlite-parent-unwritable-group": "Cannot create the data directory <code><nowiki>$1</nowiki></code>, because the parent directory <code><nowiki>$2</nowiki></code> is not writable by the webserver.\n\nThe installer has determined the user your webserver is running as.\nMake the <code><nowiki>$3</nowiki></code> directory writable by it to continue.\nOn a Unix/Linux system do:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Cannot create the data directory <code><nowiki>$1</nowiki></code>, because the parent directory <code><nowiki>$2</nowiki></code> is not writable by the webserver.\n\nThe installer could not determine the user your webserver is running as.\nMake the <code><nowiki>$3</nowiki></code> directory globally writable by it (and others!) to continue.\nOn a Unix/Linux system do:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Error creating the data directory \"$1\".\nCheck the location and try again.",
+    "config-sqlite-dir-unwritable": "Unable to write to the directory \"$1\".\nChange its permissions so that the webserver can write to it, and try again.",
+    "config-sqlite-connection-error": "$1.\n\nCheck the data directory and database name below and try again.",
+    "config-sqlite-readonly": "The file <code>$1</code> is not writeable.",
+    "config-sqlite-cant-create-db": "Could not create database file <code>$1</code>.",
+    "config-sqlite-fts3-downgrade": "PHP is missing FTS3 support, downgrading tables",
+    "config-can-upgrade": "There are MediaWiki tables in this database.\nTo upgrade them to MediaWiki $1, click <strong>Continue</strong>.",
+    "config-upgrade-done": "Upgrade complete.\n\nYou can now [$1 start using your wiki].\n\nIf you want to regenerate your <code>LocalSettings.php</code> file, click the button below.\nThis is <strong>not recommended</strong> unless you are having problems with your wiki.",
+    "config-upgrade-done-no-regenerate": "Upgrade complete.\n\nYou can now [$1 start using your wiki].",
+    "config-regenerate": "Regenerate LocalSettings.php →",
+    "config-show-table-status": "<code>SHOW TABLE STATUS</code> query failed!",
+    "config-unknown-collation": "<strong>Warning:</strong> Database is using unrecognized collation.",
+    "config-db-web-account": "Database account for web access",
+    "config-db-web-help": "Select the username and password that the web server will use to connect to the database server, during ordinary operation of the wiki.",
+    "config-db-web-account-same": "Use the same account as for installation",
+    "config-db-web-create": "Create the account if it does not already exist",
+    "config-db-web-no-create-privs": "The account you specified for installation does not have enough privileges to create an account.\nThe account you specify here must already exist.",
+    "config-mysql-engine": "Storage engine:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "<strong>Warning:</strong> You have selected MyISAM as storage engine for MySQL, which is not recommended for use with MediaWiki, because:\n* it barely supports concurrency due to table locking\n* it is more prone to corruption than other engines\n* the MediaWiki codebase does not always handle MyISAM as it should\n\nIf your MySQL installation supports InnoDB, it is highly recommended that you choose that instead.\nIf your MySQL installation does not support InnoDB, maybe it's time for an upgrade.",
+    "config-mysql-only-myisam-dep": "<strong>Warning:</strong> MyISAM is the only available storage engine for MySQL on this machine, and this is not recommended for use with MediaWiki, because:\n* it barely supports concurrency due to table locking\n* it is more prone to corruption than other engines\n* the MediaWiki codebase does not always handle MyISAM as it should\n\nYour MySQL installation does not support InnoDB, maybe it's time for an upgrade.",
+    "config-mysql-engine-help": "<strong>InnoDB</strong> is almost always the best option, since it has good concurrency support.\n\n<strong>MyISAM</strong> may be faster in single-user or read-only installations.\nMyISAM databases tend to get corrupted more often than InnoDB databases.",
+    "config-mysql-charset": "Database character set:",
+    "config-mysql-binary": "Binary",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "In <strong>binary mode</strong>, MediaWiki stores UTF-8 text to the database in binary fields.\nThis is more efficient than MySQL's UTF-8 mode, and allows you to use the full range of Unicode characters.\n\nIn <strong>UTF-8 mode</strong>, 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 [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+    "config-mssql-auth": "Authentication type:",
+    "config-mssql-install-auth": "Select the authentication type that will be used to connect to the database during the installation process.\nIf you select \"{{int:config-mssql-windowsauth}}\", the credentials of whatever user the webserver is running as will be used.",
+    "config-mssql-web-auth": "Select the authentication type that the web server will use to connect to the database server, during ordinary operation of the wiki.\nIf you select \"{{int:config-mssql-windowsauth}}\", the credentials of whatever user the webserver is running as will be used.",
+    "config-mssql-sqlauth": "SQL Server Authentication",
+    "config-mssql-windowsauth": "Windows Authentication",
+    "config-site-name": "Name of wiki:",
+    "config-site-name-help": "This will appear in the title bar of the browser and in various other places.",
+    "config-site-name-blank": "Enter a site name.",
+    "config-project-namespace": "Project namespace:",
+    "config-ns-generic": "Project",
+    "config-ns-site-name": "Same as the wiki name: $1",
+    "config-ns-other": "Other (specify)",
+    "config-ns-other-default": "MyWiki",
+    "config-project-namespace-help": "Following Wikipedia's example, many wikis keep their policy pages separate from their content pages, in a \"'''project namespace'''\".\nAll page titles in this namespace start with a certain prefix, which you can specify here.\nUsually, this prefix is derived from the name of the wiki, but it cannot contain punctuation characters such as \"#\" or \":\".",
+    "config-ns-invalid": "The specified namespace \"<nowiki>$1</nowiki>\" is invalid.\nSpecify a different project namespace.",
+    "config-ns-conflict": "The specified namespace \"<nowiki>$1</nowiki>\" conflicts with a default MediaWiki namespace.\nSpecify a different project namespace.",
+    "config-admin-box": "Administrator account",
+    "config-admin-name": "Your username:",
+    "config-admin-password": "Password:",
+    "config-admin-password-confirm": "Password again:",
+    "config-admin-help": "Enter your preferred username here, for example \"Joe Bloggs\".\nThis is the name you will use to log in to the wiki.",
+    "config-admin-name-blank": "Enter an administrator username.",
+    "config-admin-name-invalid": "The specified username \"<nowiki>$1</nowiki>\" is invalid.\nSpecify a different username.",
+    "config-admin-password-blank": "Enter a password for the administrator account.",
+    "config-admin-password-mismatch": "The two passwords you entered do not match.",
+    "config-admin-email": "Email address:",
+    "config-admin-email-help": "Enter an email address here to allow you to receive email from other users on the wiki, reset your password, and be notified of changes to pages on your watchlist. You can leave this field empty.",
+    "config-admin-error-user": "Internal error when creating an admin with the name \"<nowiki>$1</nowiki>\".",
+    "config-admin-error-password": "Internal error when setting a password for the admin \"<nowiki>$1</nowiki>\": <pre>$2</pre>",
+    "config-admin-error-bademail": "You have entered an invalid email address.",
+    "config-subscribe": "Subscribe to the [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce release announcements mailing list].",
+    "config-subscribe-help": "This is a low-volume mailing list used for release announcements, including important security announcements.\nYou should subscribe to it and update your MediaWiki installation when new versions come out.",
+    "config-subscribe-noemail": "You tried to subscribe to the release announcements mailing list without providing an email address.\nPlease provide an email address if you wish to subscribe to the mailing list.",
+    "config-almost-done": "You are almost done!\nYou can now skip the remaining configuration and install the wiki right now.",
+    "config-optional-continue": "Ask me more questions.",
+    "config-optional-skip": "I'm bored already, just install the wiki.",
+    "config-profile": "User rights profile:",
+    "config-profile-wiki": "Open wiki",
+    "config-profile-no-anon": "Account creation required",
+    "config-profile-fishbowl": "Authorized editors only",
+    "config-profile-private": "Private wiki",
+    "config-profile-help": "Wikis work best when you let as many people edit them as possible.\nIn MediaWiki, it is easy to review the recent changes, and to revert any damage that is done by naive or malicious users.\n\nHowever, many have found MediaWiki to be useful in a wide variety of roles, and sometimes it is not easy to convince everyone of the benefits of the wiki way.\nSo you have the choice.\n\nThe <strong>{{int:config-profile-wiki}}</strong> model allows anyone to edit, without even logging in.\nA wiki with <strong>{{int:config-profile-no-anon}}</strong> provides extra accountability, but may deter casual contributors.\n\nThe <strong>{{int:config-profile-fishbowl}}</strong> scenario allows approved users to edit, but the public can view the pages, including history.\nA <strong>{{int:config-profile-private}}</strong> only allows approved users to view pages, with the same group allowed to edit.\n\nMore complex user rights configurations are available after installation, see the [//www.mediawiki.org/wiki/Manual:User_rights relevant manual entry].",
+    "config-license": "Copyright and license:",
+    "config-license-none": "No license footer",
+    "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
+    "config-license-cc-by": "Creative Commons Attribution",
+    "config-license-cc-by-nc-sa": "Creative Commons Attribution Non-Commercial Share Alike",
+    "config-license-cc-0": "Creative Commons Zero (Public Domain)",
+    "config-license-gfdl": "GNU Free Documentation License 1.3 or later",
+    "config-license-pd": "Public Domain",
+    "config-license-cc-choose": "Select a custom Creative Commons license",
+    "config-license-help": "Many public wikis put all contributions under a [http://freedomdefined.org/Definition free license].\nThis helps to create a sense of community ownership and encourages long-term contribution.\nIt is not generally necessary for a private or corporate wiki.\n\nIf you want to be able to use text from Wikipedia, and you want Wikipedia to be able to accept text copied from your wiki, you should choose <strong>Creative Commons Attribution Share Alike</strong>.\n\nWikipedia previously used the GNU Free Documentation License.\nThe GFDL is a valid license, but it is difficult to understand.\nIt is also difficult to reuse content licensed under the GFDL.",
+    "config-email-settings": "Email settings",
+    "config-enable-email": "Enable outbound email",
+    "config-enable-email-help": "If you want email to work, [http://www.php.net/manual/en/mail.configuration.php PHP's mail settings] need to be configured correctly.\nIf you do not want any email features, you can disable them here.",
+    "config-email-user": "Enable user-to-user email",
+    "config-email-user-help": "Allow all users to send each other email if they have enabled it in their preferences.",
+    "config-email-usertalk": "Enable user talk page notification",
+    "config-email-usertalk-help": "Allow users to receive notifications on user talk page changes, if they have enabled it in their preferences.",
+    "config-email-watchlist": "Enable watchlist notification",
+    "config-email-watchlist-help": "Allow users to receive notifications about their watched pages if they have enabled it in their preferences.",
+    "config-email-auth": "Enable email authentication",
+    "config-email-auth-help": "If this option is enabled, users have to confirm their email address using a link sent to them whenever they set or change it.\nOnly authenticated email addresses can receive emails from other users or change notification emails.\nSetting this option is <strong>recommended</strong> for public wikis because of potential abuse of the email features.",
+    "config-email-sender": "Return email address:",
+    "config-email-sender-help": "Enter the email address to use as the return address on outbound email.\nThis is where bounces will be sent.\nMany mail servers require at least the domain name part to be valid.",
+    "config-upload-settings": "Images and file uploads",
+    "config-upload-enable": "Enable file uploads",
+    "config-upload-help": "File uploads potentially expose your server to security risks.\nFor more information, read the [//www.mediawiki.org/wiki/Manual:Security security section] in the manual.\n\nTo enable file uploads, change the mode on the <code>images</code> subdirectory under MediaWiki's root directory so that the web server can write to it.\nThen enable this option.",
+    "config-upload-deleted": "Directory for deleted files:",
+    "config-upload-deleted-help": "Choose a directory in which to archive deleted files.\nIdeally, this should not be accessible from the web.",
+    "config-logo": "Logo URL:",
+    "config-logo-help": "MediaWiki's default skin includes space for a 135x160 pixel logo above the sidebar menu.\nUpload an image of the appropriate size, and enter the URL here.\n\nYou can use <code>$wgStylePath</code> or <code>$wgScriptPath</code> if your logo is relative to those paths.\n\nIf you do not want a logo, leave this box blank.",
+    "config-instantcommons": "Enable Instant Commons",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] is a feature that allows wikis to use images, sounds and other media found on the [//commons.wikimedia.org/ Wikimedia Commons] site.\nIn order to do this, MediaWiki requires access to the Internet.\n\nFor more information on this feature, including instructions on how to set it up for wikis other than the Wikimedia Commons, consult [//mediawiki.org/wiki/Manual:$wgForeignFileRepos the manual].",
+    "config-cc-error": "The Creative Commons license chooser gave no result.\nEnter the license name manually.",
+    "config-cc-again": "Pick again...",
+    "config-cc-not-chosen": "Choose which Creative Commons license you want and click \"proceed\".",
+    "config-advanced-settings": "Advanced configuration",
+    "config-cache-options": "Settings for object caching:",
+    "config-cache-help": "Object caching is used to improve the speed of MediaWiki by caching frequently used data.\nMedium to large sites are highly encouraged to enable this, and small sites will see benefits as well.",
+    "config-cache-none": "No caching (no functionality is removed, but speed may be impacted on larger wiki sites)",
+    "config-cache-accel": "PHP object caching (APC, XCache or WinCache)",
+    "config-cache-memcached": "Use Memcached (requires additional setup and configuration)",
+    "config-memcached-servers": "Memcached servers:",
+    "config-memcached-help": "List of IP addresses to use for Memcached.\nShould specify one per line and specify the port to be used. For example:\n 127.0.0.1:11211\n 192.168.1.25:1234",
+    "config-memcache-needservers": "You selected Memcached as your cache type but did not specify any servers.",
+    "config-memcache-badip": "You have entered an invalid IP address for Memcached: $1.",
+    "config-memcache-noport": "You did not specify a port to use for Memcached server: $1.\nIf you do not know the port, the default is 11211.",
+    "config-memcache-badport": "Memcached port numbers should be between $1 and $2.",
+    "config-extensions": "Extensions",
+    "config-extensions-help": "The extensions listed above were detected in your <code>./extensions</code> directory.\n\nThey may require additional configuration, but you can enable them now.",
+    "config-install-alreadydone": "<strong>Warning:</strong> You seem to have already installed MediaWiki and are trying to install it again.\nPlease proceed to the next page.",
+    "config-install-begin": "By pressing \"{{int:config-continue}}\", you will begin the installation of MediaWiki.\nIf you still want to make changes, press \"{{int:config-back}}\".",
+    "config-install-step-done": "done",
+    "config-install-step-failed": "failed",
+    "config-install-extensions": "Including extensions",
+    "config-install-database": "Setting up database",
+    "config-install-schema": "Creating schema",
+    "config-install-pg-schema-not-exist": "PostgreSQL schema does not exist.",
+    "config-install-pg-schema-failed": "Tables creation failed.\nMake sure that the user \"$1\" can write to the schema \"$2\".",
+    "config-install-pg-commit": "Committing changes",
+    "config-install-pg-plpgsql": "Checking for language PL/pgSQL",
+    "config-pg-no-plpgsql": "You need to install the language PL/pgSQL in the database $1",
+    "config-pg-no-create-privs": "The account you specified for installation does not have enough privileges to create an account.",
+    "config-pg-not-in-role": "The account you specified for the web user already exists.\nThe account you specified for installation is not a superuser and is not a member of the web user's role, so it is unable to create objects owned by the web user.\n\nMediaWiki currently requires that the tables be owned by the web user. Please specify another web account name, or click \"back\" and specify a suitably privileged install user.",
+    "config-install-user": "Creating database user",
+    "config-install-user-alreadyexists": "User \"$1\" already exists",
+    "config-install-user-create-failed": "Creating user \"$1\" failed: $2",
+    "config-install-user-grant-failed": "Granting permission to user \"$1\" failed: $2",
+    "config-install-user-missing": "The specified user \"$1\" does not exist.",
+    "config-install-user-missing-create": "The specified user \"$1\" does not exist.\nPlease click the \"create account\" checkbox below if you want to create it.",
+    "config-install-tables": "Creating tables",
+    "config-install-tables-exist": "<strong>Warning:</strong> MediaWiki tables seem to already exist.\nSkipping creation.",
+    "config-install-tables-failed": "<strong>Error:</strong> Table creation failed with the following error: $1",
+    "config-install-interwiki": "Populating default interwiki table",
+    "config-install-interwiki-list": "Could not read file <code>interwiki.list</code>.",
+    "config-install-interwiki-exists": "<strong>Warning:</strong> The interwiki table seems to already have entries.\nSkipping default list.",
+    "config-install-stats": "Initializing statistics",
+    "config-install-keys": "Generating secret keys",
+    "config-insecure-keys": "<strong>Warning:</strong> {{PLURAL:$2|A secure key|Secure keys}} ($1) generated during installation {{PLURAL:$2|is|are}} not completely safe. Consider changing {{PLURAL:$2|it|them}} manually.",
+    "config-install-sysop": "Creating administrator user account",
+    "config-install-subscribe-fail": "Unable to subscribe to mediawiki-announce: $1",
+    "config-install-subscribe-notpossible": "cURL is not installed and allow_url_fopen is not available.",
+    "config-install-mainpage": "Creating main page with default content",
+    "config-install-extension-tables": "Creating tables for enabled extensions",
+    "config-install-mainpage-failed": "Could not insert main page: $1",
+    "config-install-done": "<strong>Congratulations!</strong>\nYou have successfully installed MediaWiki.\n\nThe installer has generated a <code>LocalSettings.php</code> file.\nIt contains all your configuration.\n\nYou will need to download it and put it in the base of your wiki installation (the same directory as index.php). The download should have started automatically.\n\nIf the download was not offered, or if you cancelled it, you can restart the download by clicking the link below:\n\n$3\n\n<strong>Note:</strong> If you do not do this now, this generated configuration file will not be available to you later if you exit the installation without downloading it.\n\nWhen that has been done, you can <strong>[$2 enter your wiki]</strong>.",
+    "config-download-localsettings": "Download <code>LocalSettings.php</code>",
+    "config-help": "help",
+    "config-nofile": "File \"$1\" could not be found. Has it been deleted?",
+    "config-extension-link": "Did you know that your wiki supports [//www.mediawiki.org/wiki/Manual:Extensions extensions]?\n\nYou can browse [//www.mediawiki.org/wiki/Category:Extensions_by_category extensions by category] or the [//www.mediawiki.org/wiki/Extension_Matrix Extension Matrix] to see the full list of extensions.",
+    "mainpagetext": "<strong>MediaWiki has been successfully installed.</strong>",
+    "mainpagedocfooter": "Consult the [//meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.\n\n== Getting started ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Localise MediaWiki for your language]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/eo.json b/includes/installer/i18n/eo.json
new file mode 100644 (file)
index 0000000..baeed82
--- /dev/null
@@ -0,0 +1,20 @@
+{
+    "@metadata": {
+        "authors": [
+            "Airon90",
+            "Yekrats"
+        ]
+    },
+    "config-your-language": "Via lingvo:",
+    "config-your-language-help": "Elekti lingvon uzi dum la instalada procezo.",
+    "config-wiki-language": "Lingvo de la vikio:",
+    "config-wiki-language-help": "Elekti la ĉefe skribotan lingvon de la vikio.",
+    "config-page-welcome": "Bonvenon al MediaWiki!",
+    "config-page-dbsettings": "Agordoj de la datumbazo",
+    "config-page-name": "Nomo",
+    "config-page-options": "Agordoj",
+    "config-page-install": "Instali",
+    "config-page-complete": "Farita!",
+    "mainpagetext": "'''MediaWiki estis sukcese instalita.'''",
+    "mainpagedocfooter": "Konsultu la [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide User's Guide] por informo pri uzado de vikia programaro.\n\n==Kiel komenci==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Listo de konfiguraĵoj] (angla)\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki Oftaj Demandoj] (angla)\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki dissendolisto pri anoncoj] (angla)"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/es-formal.json b/includes/installer/i18n/es-formal.json
new file mode 100644 (file)
index 0000000..12a94c7
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "@metadata": {
+        "authors": [
+            "Dferg"
+        ]
+    },
+    "mainpagedocfooter": "Consulte usted la [//meta.wikimedia.org/wiki/Ayuda:Contenido Guía de usuario] para obtener información sobre el uso del software wiki.\n\n== Empezando ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de ajustes de configuración]\n* [//www.mediawiki.org/wiki/Manual:FAQ/es FAQ de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correo de anuncios de distribución de MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/es.json b/includes/installer/i18n/es.json
new file mode 100644 (file)
index 0000000..acf0f02
--- /dev/null
@@ -0,0 +1,317 @@
+{
+    "@metadata": {
+        "authors": [
+            "Armando-Martin",
+            "Ciencia Al Poder",
+            "Crazymadlover",
+            "Danke7",
+            "Fitoschido",
+            "Locos epraix",
+            "Od1n",
+            "Platonides",
+            "Sanbec",
+            "Translationista",
+            "Vivaelcelta",
+            "아라"
+        ]
+    },
+    "config-desc": "El instalador para MediaWiki",
+    "config-title": "MediaWiki $1 instalación",
+    "config-information": "Información",
+    "config-localsettings-upgrade": "Se ha encontrado un archivo <code>LocalSettings.php</code>.\nPara actualizar esta instalación, por favor ingresa el valor de <code>$wgUpgradeKey</code> en el cuadro de abajo.\nLo encontrarás en <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Se ha detectado un archivo <code>LocalSettings.php</code>.\nPara actualizar la instalación, vuelva a ejecutar <code>update.php</code>",
+    "config-localsettings-key": "Clave de actualización:",
+    "config-localsettings-badkey": "La clave proporcionada es incorrecta.",
+    "config-upgrade-key-missing": "Se ha detectado una instalación existente de MediaWiki.\nPara actualizar la instalación, por favor, ponga la siguiente línea al final de su archivo <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "El archivo <code>LocalSettings.php</code> existente parece estar incompleto.\nLa variable $1 no está definida.\nCambie el archivo <code>LocalSettings.php</code> para que esta variable quede establecida y haga clic en \"{{int:Config-continue}}\".",
+    "config-localsettings-connection-error": "Se detectó un error al conectarse a la base de datos utilizando la configuración especificada en los archivos <code>LocalSettings.php</code> o <code>AdminSettings.php</code>. Corrija estas opciones y vuelva a intentarlo.\n\n$1",
+    "config-session-error": "Error comenzando sesión: $1",
+    "config-session-expired": "Tus datos de sesión parecen haber expirado.\nLas sesiones están configuradas por una duración de $1.\nPuedes incrementar esto configurando <code>session.gc_maxlifetime</code> en php.ini.\nReiniciar el proceso de instalación.",
+    "config-no-session": "Se han perdido los datos de sesión.\nVerifica tu php.ini y comprueba que <code>session.save_path</code> está establecido en un directorio apropiado.",
+    "config-your-language": "Tu idioma:",
+    "config-your-language-help": "Seleccionar un idioma a usar durante el proceso de instalación.",
+    "config-wiki-language": "Idioma del wiki:",
+    "config-wiki-language-help": "Seleccionar el idioma en el que el wiki será escrito predominantemente.",
+    "config-back": "← Atrás",
+    "config-continue": "Continuar →",
+    "config-page-language": "Idioma",
+    "config-page-welcome": "Bienvenido a MediaWiki!",
+    "config-page-dbconnect": "Conectar a la base de datos",
+    "config-page-upgrade": "Actualizar instalación existente",
+    "config-page-dbsettings": "Configuración de la base de datos",
+    "config-page-name": "Nombre",
+    "config-page-options": "Opciones",
+    "config-page-install": "Instalar",
+    "config-page-complete": "Completo!",
+    "config-page-restart": "Reiniciar instalación",
+    "config-page-readme": "Léeme",
+    "config-page-releasenotes": "Notas de la versión",
+    "config-page-copying": "Copiando",
+    "config-page-upgradedoc": "Actualizando",
+    "config-page-existingwiki": "Wiki existente",
+    "config-help-restart": "¿Deseas borrar todos los datos que has ingresado hasta ahora y reiniciar el proceso de instalación desde el principio?",
+    "config-restart": "Sí, reiniciarlo",
+    "config-welcome": "=== Comprobación del entorno ===\nSe realiza comprobaciones básicas para ver si el entorno es adecuado para la instalación de MediaWiki.\nDeberás suministrar los resultados de tales comprobaciones si necesitas ayuda durante la instalación.",
+    "config-copyright": "=== Derechos de autor y Términos de uso ===\n\n$1\n\nEste programa es software libre; puedes redistribuirlo y/o modificarlo en los términos de la Licencia Pública General de GNU, tal como aparece publicada por la Fundación para el Software Libre, tanto la versión 2 de la Licencia, como cualquier versión posterior (según prefiera).\n\nEste programa es distribuido en la esperanza de que sea útil, pero '''sin cualquier garantía'''; inclusive, sin la garantía implícita de la '''posibilidad de ser comercializado''' o de '''idoneidad para cualquier finalidad específica'''.\nConsulte la licencia *GNU General *Public *License para más detalles.\n\nEn conjunto con este programa debe haber recibido <doclink href=Copying>una copia de la Licencia Pública General de GNU</doclink>; si no la recibió, pídala por escrito a Fundación para el Software Libre, Inc., 51 Franklin Street, Fifth Floor, Boston, ME La 02110-1301, USA o [http://www.gnu.org/copyleft/gpl.html léala en internet].",
+    "config-sidebar": "* [//www.mediawiki.org Página principal de MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents Guía del usuario]\n* [//www.mediawiki.org/wiki/Manual:Contents Guía del administrador]\n* [//www.mediawiki.org/wiki/Manual:FAQ Preguntas frecuentes]\n----\n* <doclink href=Readme>Léeme</doclink>\n* <doclink href=ReleaseNotes>Notas de la versión</doclink>\n* <doclink href=Copying>Copia</doclink>\n* <doclink href=UpgradeDoc>Actualización</doclink>",
+    "config-env-good": "El entorno ha sido comprobado.\nPuedes instalar MediaWiki.",
+    "config-env-bad": "El entorno ha sido comprobado.\nNo puedes instalar MediaWiki.",
+    "config-env-php": "PHP $1 está instalado.",
+    "config-env-php-toolow": "PHP $1 está instalado.\nSin embargo, MediaWiki requiere PHP $2 o superior.",
+    "config-unicode-using-utf8": "Usando utf8_normalize.so de Brion Vibber para la normalización Unicode.",
+    "config-unicode-using-intl": "Usando la [http://pecl.php.net/intl extensión intl PECL] para la normalización Unicode.",
+    "config-unicode-pure-php-warning": "'''Advertencia''': La [http://pecl.php.net/intl extensión intl] no está disponible para efectuar la normalización Unicode. Utilizando la implementación más lenta en PHP.\nSi tu web tiene mucho tráfico, te recomendamos leer acerca de la [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalización Unicode].",
+    "config-unicode-update-warning": "'''Warning''': La versión instalada del contenedor de normalización Unicode usa una versión anterior de la biblioteca del [http://site.icu-project.org/ proyecto ICU].\nDeberás [//www.mediawiki.org/wiki/Unicode_normalization_considerations actualizar] si realmente deseas usar Unicode.",
+    "config-no-db": "No fue posible encontrar un controlador adecuado para la base de datos! Necesitas instalar un controlador de base de datos para PHP.\nLas siguientes bases de datos son soportadas: $1.\nSi estás en alojamiento compartido, pregunta a tu proveedor el instalar un controlador de base de datos adecuado.\nSi estás compilando PHP por ti mismo, reconfigúralo con un cliente de base de datos disponible, por ejemplo usando <code>./configure --with-mysql</code>.\nSi instalaste PHP de un paquete Debian o Ubuntu, entonces también necesitas instalar el módulo php5-mysql.",
+    "config-outdated-sqlite": "''' Advertencia ''': tiene la versión SQLite $1, que es inferior a la mínima versión requerida: $2 . SQLite no estará disponible.",
+    "config-no-fts3": "'''Advertencia''': SQLite está compilado sin el [//sqlite.org/fts3.html módulo FTS3]. Las funcionalidades de búsqueda no estarán disponibles en esta instalación.",
+    "config-register-globals": "'''Advertencia: La opción de <code>[http://php.net/register_globals register_globals]</code> de PHP está habilitada.'''\n'''Desactívela si puede.'''\nMediaWiki funcionará, pero tu servidor quedará expuesto a vulnerabilidades de seguridad potenciales.",
+    "config-magic-quotes-runtime": "'''Fatal: ¡[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] está activada!'''\nEsta opción causa la imprevisible corrupción de la entrada de datos.\nNo puedes instalar o utilizar MediaWiki a menos que esta opción esté inhabilitada.",
+    "config-magic-quotes-sybase": "'''Fatal: ¡[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] está activada!'''\nEsta opción causa la imprevisible corrupción de la entrada de datos.\nNo puedes instalar o utilizar MediaWiki a menos que esta opción esté inhabilitada.",
+    "config-mbstring": "'''Fatal: La opción [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] está activada!'''\nEsta opción causa errores y puede corromper los datos de una forma imprevisible.\nNo se puede instalar o usar MediaWiki a menos que esta opción sea desactivada.",
+    "config-ze1": "'''Fatal: ¡La opción [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] está activada!'''\nEsta opción causa problemas significativos en MediaWiki.\nNo se puede instalar o usar MediaWiki a menos que esta opción sea desactivada.",
+    "config-safe-mode": "'''Advertencia:''' El [http://www.php.net/features.safe-mode modo seguro] de PHP está activado.\nEste modo puede causar problemas, especialmente en la carga de archivosy en compatibilidad con <code>math</code>.",
+    "config-xml-bad": "Falta el módulo XML de PHP.\nMediaWiki necesita funciones en este módulo y no funcionará con esta configuración.\nSi está ejecutando Mandrake, instale el paquete php-xml.",
+    "config-pcre": "Parece faltar el módulo de compatibilidad PCRE.\nMediaWiki necesita que las funciones de expresiones regulares compatibles con Perl estén funcionando.",
+    "config-pcre-no-utf8": "'''Error fatal ''': Parece que el módulo PCRE de PHP fue compilado sin el soporte PCRE_UTF8.\nMediaWiki requiere compatibilidad con UTF-8 para funcionar correctamente.",
+    "config-memory-raised": "el parámetro <code>memory_limit</code> de PHP es $1, aumentada a $2.",
+    "config-memory-bad": "'''Advertencia:''' El parámetro <code>memory_limit</code> de PHP es $1.\nProbablemente este valor es demasiado bajo.\n¡La instalación podrá fallar!",
+    "config-ctype": "'''Fatal''': PHP debe ser compilado con soporte para la [http://www.php.net/manual/en/ctype.installation.php extensión Ctype].",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] está instalado",
+    "config-apc": "[http://www.php.net/apc APC] está instalado",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] está instalado",
+    "config-no-cache": "'''Advertencia:''' No pudo encontrarse [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] o [http://www.iis.net/download/WinCacheForPhp WinCache].\nEl caché de objetos no está habilitado.",
+    "config-mod-security": "''' Advertencia ''': Su servidor web tiene [http://modsecurity.org/ mod_security] habilitado. Si la configuración es incorrecta, puede causar problemas a MediaWiki u otro software que permita a los usuarios publicar contenido arbitrarios.\nConsulte la [http://modsecurity.org/documentation/ documentación de mod_security] o contacte con el soporte de su servidor (''host'') si encuentra errores aleatorios.",
+    "config-diff3-bad": "GNU diff3 no se encuentra.",
+    "config-git-bad": "No se encontró el software de control de versiones Git.",
+    "config-imagemagick": "ImageMagick encontrado: <code>$1</code>.\nLa miniaturización de imágenes se habilitará si habilitas las cargas.",
+    "config-gd": "Se ha encontrado una biblioteca de gráficos GD integrada.\nLa miniaturización de imágenes se habilitará si habilitas las subidas.",
+    "config-no-scaling": "No se ha encontrado ninguma biblioteca GD o ImageMagik.\nSe inhabilitará la miniaturización de imágenes.",
+    "config-no-uri": "'''Error:''' No se pudo determinar el URI actual.\nInstalación abortada.",
+    "config-no-cli-uri": "''' Advertencia ''': No se ha especificado ningún --scriptpath, por defecto, se usará: <code>$1</code> .",
+    "config-using-server": "Utilizando el nombre de servidor \"<nowiki>$1</nowiki>\".",
+    "config-using-uri": "Utilizando la dirección URL del servidor \"<nowiki>$1$2</nowiki>\".",
+    "config-uploads-not-safe": "'''Atención:''' Su directorio por defecto para las cargas, <code>$1</code>, es vulnerable a la ejecución de scripts arbitrarios.\nAunque MediaWiki comprueba todos los archivos cargados por si hubiese amenazas de seguridad, es altamente recomendable [//www.mediawiki.org/wiki/Manual:Security#Upload_security cerrar esta vulnerabilidad de seguridad] antes de activar las cargas.",
+    "config-no-cli-uploads-check": "'''Atención:''' Su directorio predeterminado para cargas (<code>$1</code>) no está comprobado para la vulnerabilidad\n de ejecución arbitraria de comandos script durante la instalación de CLI.",
+    "config-brokenlibxml": "El sistema tiene una combinación de versiones de PHP y de libxml2 que puede ser problemática y puede causar daños en datos ocultos de MediaWiki y otras aplicaciones web\nActualizar a PHP 5.2.9 o posterior y a libxml2 2.7.3 o posterior ([//bugs.php.net/bug.php?id=45996 bug presentado con PHP]).\nInstalación anulada.",
+    "config-using531": "MediaWiki no puede utilizarse con PHP $1 debido a un error con los parámetros de referencia para <code>__call()</code> .\nActualice el sistema a PHP 5.3.2 o superior, o vuelva a la versión PHP 5.3.0 para resolver este problema.\nInstalación anulada.",
+    "config-suhosin-max-value-length": "Suhosin está instalado y limita el parámetro <code>length</code> GET a $1 bytes.\nEl componente ResourceLoader (gestor de recursos) de MediaWiki trabajará en este límite, pero eso perjudicará el rendimiento.\nSi es posible, deberías establecer <code>suhosin.get.max_value_length</code> en el valor 1024 o superior en <code>php.ini</code> y establecer <code>$wgResourceLoaderMaxQueryLength</code> en el mismo valor en <code>php.ini</code>.",
+    "config-db-type": "Tipo de base de datos",
+    "config-db-host": "Servidor de la base de datos:",
+    "config-db-host-help": "Si su servidor de base de datos está en otro servidor, escriba el nombre del host o su dirección IP aquí.\nSi está utilizando alojamiento web compartido, su proveedor de alojamiento debería darle el nombre correcto del servidor de alojamiento (host) en su documentación.\nSi va a instalarlo en un servidor Windows y utiliza MySQL, el uso de \"localhost\" como nombre del servidor puede no funcionar. Si no es así, intente poner \"127.0.0.1\" como dirección IP local.\nSi utiliza PostgreSQL, deje este campo en blanco para conectarse a través de un socket de Unix.",
+    "config-db-host-oracle": "TNS de la base de datos:",
+    "config-db-host-oracle-help": "Introduzca un [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm nombre de conexión local] válido; un archivo tnsnames.ora debe ser visible para esta instalación.<br />Si está utilizando bibliotecas de cliente 10g o más recientes también puede utilizar el método de asignación de nombres [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
+    "config-db-wiki-settings": "Identifique este wiki",
+    "config-db-name": "Nombre de base de datos:",
+    "config-db-name-help": "Elija un nombre que identifique su wiki.\nNo debe contener espacios.\n\nSi está utilizando alojamiento web compartido, su proveedor de alojamiento le dará un nombre específico de base de datos para que lo utilice, o bien le permitirá crear bases de datos a través de un panel de control.",
+    "config-db-name-oracle": "Esquema de base de datos:",
+    "config-db-account-oracle-warn": "Hay tres escenarios compatibles para la instalación de Oracle como base de datos back-end:\n\nSi desea crear una cuenta de base de datos como parte del proceso de instalación, por favor suministre una cuenta con función SYSDBA como cuenta de base de datos para la instalación y especifique las credenciales deseadas de la cuenta de acceso al web, de lo contrario puede crear manualmente la cuenta de acceso al web y suministrar sólo esa cuenta (si tiene los permisos necesarios para crear los objetos de esquema) o suministrar dos cuentas diferentes, una con privilegios de creación y otra con acceso restringido a la web\n\nLa secuencia de comandos (script) para crear una cuenta con los privilegios necesarios puede encontrarse en el directorio \"maintenance/oracle/\" de esta instalación. Tenga en cuenta que utilizando una cuenta restringida desactivará todas las capacidades de mantenimiento con la cuenta predeterminada.",
+    "config-db-install-account": "Cuenta de usuario para instalación",
+    "config-db-username": "Nombre de usuario de base de datos:",
+    "config-db-password": "contraseña de base de datos:",
+    "config-db-password-empty": "Introduzca una contraseña para el nuevo usuario de base de datos:  $1.\nAunque es posible crear usuarios sin contraseña, esto no es seguro.",
+    "config-db-install-username": "Introduzca el nombre de usuario que se utilizará para conectarse a la base de datos durante el proceso de instalación.\nEste no es el nombre de usuario de la cuenta de MediaWiki; Este es el nombre de usuario para la base de datos.",
+    "config-db-install-password": "Introduzca la contraseña que se utilizará para conectarse a la base de datos durante el proceso de instalación.\nEsta no es la contraseña para la cuenta de MediaWiki; esta es la contraseña para la base de datos.",
+    "config-db-install-help": "Ingresar el nombre de usuario y la contraseña que será usada para conectar a la base de datos durante el proceso de instalación.",
+    "config-db-account-lock": "Usar el mismo nombre de usuario y contraseña durante operación normal",
+    "config-db-wiki-account": "Usar cuenta para operación normal",
+    "config-db-wiki-help": "Introduce el nombre de usuario y la contraseña que serán usados para acceder a la base de datos durante la operación normal del wiki.\nSi esta cuenta no existe y la cuenta de instalación tiene suficientes privilegios, se creará esta cuenta de usuario con los privilegios mínimos necesarios para la operación normal del wiki.",
+    "config-db-prefix": "Prefijo para las tablas de la base de datos:",
+    "config-db-prefix-help": "Si necesita compartir una base de datos entre múltiples wikis, o entre MediaWiki y otra aplicación web, puede optar por agregar un prefijo a todos los nombres de tabla para evitar conflictos.\nNo utilice espacios.\n\nNormalmente se deja este campo vacío.",
+    "config-db-charset": "Conjunto de caracteres de la base de datos",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binario",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 retrocompatible UTF-8",
+    "config-charset-help": "'''Atención:''' Si emplea '''backwards-compatible UTF-8''' en MySQL 4.1+ y posteriormente hace copia de seguridad de la base de datos con <code>mysqldump</code> , puede destruir todos los caracteres no-ASCII, ¡dañando irreversiblemente sus copias de seguridad!\n\nEn '''modo binario''', MediaWiki almacena texto UTF-8 en la base de datos en campos binarios.\nEsto es más eficiente que el modo UTF-8 de MySQL, y le permite utilizar la gama completa de caracteres Unicode.\nEn ''' modo UTF-8'' ', MySQL sabrá el juego de caracteres de sus datos y puede presentarlos y convertirlos apropiadamente,\npero no le permitirá almacenar caracteres por encima del [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plano multilingüe básico].",
+    "config-mysql-old": "Se necesita MySQL $1 o una versión más reciente. Tienes la versión $2.",
+    "config-db-port": "Puerto de la base de datos:",
+    "config-db-schema": "Esquema para MediaWiki",
+    "config-db-schema-help": "Estos esquemas usualmente estarán bien.\nAltéralos sólo si tienes la seguridad de que necesitas hacerlo.",
+    "config-pg-test-error": "No se puede conectar a la base de datos '''$1''': $2",
+    "config-sqlite-dir": "Directorio de datos SQLite:",
+    "config-sqlite-dir-help": "SQLite almacena todos los datos en un único archivo.\n\nEl directorio que proporcione debe ser escribible por el servidor Web durante la instalación.\n\n'''No''' debería ser accesible a través de Internet, por eso no vamos a ponerlo en el sitio donde están los archivos PHP.\n\nEl instalador escribirá un archivo <code>.htaccess</code> junto con él, pero si falla alguien podría tener acceso a la base de datos en bloque.\nEso incluye los datos de usuario en bloque (direcciones de correo electrónico, las contraseñas con hash) así como revisiones eliminadas y otros datos restringidos del wiki.\n\nConsidere la posibilidad de poner la base de datos en algún otro sitio, por ejemplo en <code>/var/lib/mediawiki/yourwiki</code> .",
+    "config-oracle-def-ts": "Espacio de tablas por defecto:",
+    "config-oracle-temp-ts": "Espacio de tablas temporal:",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-support-info": "MediaWiki es compatible con los siguientes sistemas de bases de datos:\n\n$1\n\nSi no encuentras en el listado el sistema de base de datos que estás intentando utilizar, sigue las instrucciones vinculadas arriba para habilitar la compatibilidad.",
+    "config-support-mysql": "* $1 es la base de datos mayoritaria para MediaWiki y la que goza de mayor compatibilidad ([http://www.php.net/manual/es/mysql.installation.php cómo compilar PHP con compatibilidad MySQL])",
+    "config-support-postgres": "$1 es un popular sistema de base de datos de código abierto, alternativa a MySQL. ([http://www.php.net/manual/es/pgsql.installation.php cómo compilar PHP con compatibilidad PostgreSQL]). Puede haber algunos defectos menores destacables, y no es recomendable para uso en un entorno de producción.",
+    "config-support-sqlite": "* $1 es una base de datos ligera con gran compatibilidad con MediaWiki ([http://www.php.net/manual/es/pdo.installation.php cómo compilar PHP con compatibilidad SQLite usando PDO]).",
+    "config-support-oracle": "* $1 es una base de datos comercial a nivel empresarial ([http://www.php.net/manual/es/oci8.installation.php cómo compilar PHP con compatibilidad con OCI8])",
+    "config-header-mysql": "Configuración de MySQL",
+    "config-header-postgres": "Configuración de PostgreSQL",
+    "config-header-sqlite": "Configuración de SQLite",
+    "config-header-oracle": "Configuración de Oracle",
+    "config-invalid-db-type": "Tipo de base de datos inválida",
+    "config-missing-db-name": "Debes introducir un valor para \"Nombre de la base de datos\"",
+    "config-missing-db-host": "Debe introducir un valor para \"Servidor (host) de base de datos\"",
+    "config-missing-db-server-oracle": "Debe introducir un valor para \"TNS de la base de datos\"",
+    "config-invalid-db-server-oracle": "El TNS de la base de datos, \"$1\", es inválido.Use sólo carateres ASCII: letras (a-z, A-Z), números (0-9), guiones bajos (_) y guiones (-).Usa sólo caracteres ASCII: letras (a-z, A-Z), dígitos (0-9), guiones bajos (_) y puntos (.).",
+    "config-invalid-db-name": "El nombre de la base de datos \"$1\"  es inválido.\nUsa sólo caracteres ASCII: letras (a-z, A-Z), números (0-9), guiones bajos (_)y guiones (-).",
+    "config-invalid-db-prefix": "El prefijo de la base de datos \"$1\"  es inválido.\nUse sólo carateres ASCII: letras (a-z, A-Z), números (0-9), guiones bajos (_) y guiones (-).",
+    "config-connection-error": "$1.\n\nVerifique el servidor, el nombre de usuario y la contraseña, e intente de nuevo.",
+    "config-invalid-schema": "El esquema de la base de datos \"$1\"  es inválido.\nUse sólo carateres ASCII: letras (a-z, A-Z), guarismos (0-9) y guiones bajos (_).",
+    "config-db-sys-create-oracle": "El instalador sólo admite el empleo de cuentas SYSDBA como método para crear una cuenta nueva.",
+    "config-db-sys-user-exists-oracle": "La cuenta de usuario \"$1\" ya existe. ¡SYSDBA sólo puede utilizarse para crear una nueva cuenta!",
+    "config-postgres-old": "Se necesita PostgreSQL $1 o una versión más reciente; tienes la versión $2.",
+    "config-sqlite-name-help": "Elige el nombre que identificará tu wiki.\nNo uses espacios o guiones.\nEste nombre será usado como nombre del archivo de datos de SQLite.",
+    "config-sqlite-parent-unwritable-group": "No se puede crear el directorio de datos <code><nowiki>$1</nowiki></code> , porque el directorio padre <code><nowiki>$2</nowiki></code> no es accesible en escritura por el servidor Web.\n\nEl instalador ha determinado el usuario cuyo servidor Web se está ejecutando.\nConceda permisos de escritura en el directorio <code><nowiki>$3</nowiki></code> para continuar.\nEn un sistema Unix/Linux haga:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "No se puede crear el directorio de datos <code><nowiki>$1</nowiki></code> , porque el directorio padre <code><nowiki>$2</nowiki></code> no es accesible en escritura por el servidor Web.\n\nEl programa de instalación no pudo determinar el usuario que se ejecuta en el servidor Web\nConceda permisos de escritura en el directorio <code><nowiki>$3</nowiki></code> para continuar.\nEn un sistema Unix/Linux haga:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Error al crear el directorio de datos \"$1\".\nComprueba la ubicación e inténtalo de nuevo.",
+    "config-sqlite-dir-unwritable": "No se puede escribir en el directorio \"$1\".\nModifica los permisos para que el servidor web pueda escribir en él y vuelve a intentarlo.",
+    "config-sqlite-connection-error": "$1.\n\nVerifique el directório de datos y el nombre de la base de datos mostrada a continuación e inténtalo nuevamente.",
+    "config-sqlite-readonly": "El archivo <code>$1</code> no se puede escribir.",
+    "config-sqlite-cant-create-db": "No fue posible crear el archivo de la base de datos <code>$1</code>.",
+    "config-sqlite-fts3-downgrade": "El PHP no tiene compatibilidad FTS3. actualizando tablas a una versión anterior",
+    "config-can-upgrade": "Esta base de datos contiene tablas de MediaWiki.\nPara actualizarlas a MediaWiki $1, haz clic en '''Continuar'''.",
+    "config-upgrade-done": "Actualización completa.\n\nUsted puede ahora [ $1  empezar a usar su wiki].\n\nSi desea regenerar su archivo <code>LocalSettings.php</code> de archivo, haga clic en el botón de abajo.\nEsto '''no se recomienda''' a menos que esté teniendo problemas con su wiki.",
+    "config-upgrade-done-no-regenerate": "Actualización completa.\n\nUsted puede ahora [$1  empezar a usar su wiki].",
+    "config-regenerate": "Regenerar LocalSettings.php →",
+    "config-show-table-status": "<code>SHOW TABLE STATUS</code> ha fallado!",
+    "config-unknown-collation": "'''Advertencia:''' La base de datos está utilizando una intercalación no reconocida.",
+    "config-db-web-account": "Cuenta de base de datos para acceso Web",
+    "config-db-web-help": "Elige el usuario y contraseña que el servidor Web usará para conectarse al servidor de la base de datos durante el fincionamiento normal del wiki.",
+    "config-db-web-account-same": "Utilizar la misma cuenta que en la instalación",
+    "config-db-web-create": "Crear la cuenta si no existe",
+    "config-db-web-no-create-privs": "La cuenta que has especificado para la instalación no tiene privilegios suficientes para crear una cuenta.\nLa cuenta que especifiques aquí debe existir.",
+    "config-mysql-engine": "Motor de almacenamiento:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''Atención''': Ha seleccionado MyISAM como motor de almacenamiento de MySQL, el cual no está recomendado para su uso con MediaWiki, porque:\n * apenas soporta accesos simultáneos debido al bloqueo de tablas\n * es más propenso a la corrupción que otros motores\n * el código MediaWiki no siempre controla MyISAM como debiera\n\nSi su instalación de MySQL soporta InnoDB, es muy recomendable que lo elija en su lugar.\nSi la instalación de MySQL no admite InnoDB, quizás es el momento de una actualización.",
+    "config-mysql-engine-help": "'''InnoDB''' es casi siempre la mejor opción, dado que soporta bien los accesos simultáneos.\n\n'''MyISAM''' es más rápido en instalaciones de usuario único o de sólo lectura.\nLas bases de datos MyISAM tienden a corromperse más a menudo que las bases de datos InnoDB.",
+    "config-mysql-charset": "Conjunto de caracteres de la base de datos:",
+    "config-mysql-binary": "Binario",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "En '''modo binario''', MediaWiki almacena texto UTF-8 para la base de datos en campos binarios.\nEsto es más eficiente que el modo UTF-8 de MySQL y le permite utilizar la gama completa de caracteres Unicode.\n\nEn '''modo UTF-8''', MySQL sabrá qué conjunto de caracteres emplean sus datos y puede presentarlos y convertirlos adecuadamente, pero no le permitirá almacenar caracteres por encima del [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plano multilingüe básico].",
+    "config-site-name": "Nombre del wiki:",
+    "config-site-name-help": "Esto aparecerá en la barra de título del navegador y en varios otros lugares.",
+    "config-site-name-blank": "Ingresar un nombre de sitio.",
+    "config-project-namespace": "Espacio de nombre de proyecto:",
+    "config-ns-generic": "Proyecto",
+    "config-ns-site-name": "Igual como el nombre del wiki: $1",
+    "config-ns-other": "Otro (especificar)",
+    "config-ns-other-default": "MiWiki",
+    "config-project-namespace-help": "Siguiendo el ejemplo de  Wikipedia, muchos wikis mantienen sus páginas de políticas separadas de sus páginas de contenido, en un \"'''espacio de nombres del proyecto'''\".\n\nTodos los títulos de página en este espacio de nombres comienzan con un determinado prefijo, que usted puede especificar aquí.\nTradicionalmente, este prefijo se deriva del nombre del wiki, pero no puede contener caracteres de puntuación como \"#\" o \":\".",
+    "config-ns-invalid": "El espacio de nombre especificado \"<nowiki>$1</nowiki>\" no es válido.\nEspecifica un espacio de nombre de proyecto diferente.",
+    "config-ns-conflict": "El espacio de nombres especificado \"<nowiki>$1</nowiki>\" entra en conflicto con un espacio de nombres predeterminado de MediaWiki.\nEspecifique un espacio de nombres de proyecto diferente.",
+    "config-admin-box": "Cuenta de administrador",
+    "config-admin-name": "Su nombre:",
+    "config-admin-password": "Contraseña:",
+    "config-admin-password-confirm": "Repita la contraseña:",
+    "config-admin-help": "Escribe aquí el nombre de usuario que desees, como por ejemplo \"Pedro Bloggs\".\nEste es el nombre que usarás para entrar al wiki.",
+    "config-admin-name-blank": "Introduce un nombre de usuario de administrador.",
+    "config-admin-name-invalid": "El nombre de usuario especificado \"<nowiki>$1</nowiki>\" no es válido.\nEspecifique un nombre de usuario diferente.",
+    "config-admin-password-blank": "Introduzca una contraseña para la cuenta de administrador.",
+    "config-admin-password-same": "La contraseña no debe ser la misma que el nombre de usuario.",
+    "config-admin-password-mismatch": "Las dos contraseñas que ingresaste no coinciden.",
+    "config-admin-email": "Dirección de correo electrónico:",
+    "config-admin-email-help": "Introduce aquí un correo electrónico que te permita recibir mensajes de otros usuarios del wiki, vuelve a configurar tu contraseña y recibe notificaciones de cambios realizados a tus páginas vigiladas. Puedes dejar este campo vacío.",
+    "config-admin-error-user": "Error interno al crear un administrador con el nombre \"<nowiki>$1</nowiki>\".",
+    "config-admin-error-password": "Error interno al establecer una contraseña para el administrador \" <nowiki>$1</nowiki> \": <pre>$2</pre>",
+    "config-admin-error-bademail": "Ha introducido una dirección de correo electrónico inválida.",
+    "config-subscribe": "Suscribirse para recibir [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce avisos de nuevas versiones].",
+    "config-subscribe-help": "Esta es una lista de divulgación de bajo volumen para anuncios de lanzamiento de versiones nuevas, incluyendo anuncios de seguridad importantes.\nTe recomendamos suscribirte y actualizar tu instalación MediaWiki cada vez que se lance una nueva versión.",
+    "config-subscribe-noemail": "Ha intentado suscribirse a la lista de correo de anuncios de nuevos lanzamientos sin proporcionar una dirección de correo electrónico.\nProporcione una dirección de correo electrónico si desea suscribirse a la lista de correo.",
+    "config-almost-done": "¡Ya casi has terminado!\nAhora puedes saltarte el resto de pasos e instalar el wiki con valores predeterminados.",
+    "config-optional-continue": "Hazme más preguntas.",
+    "config-optional-skip": "Ya estoy aburrido, sólo instala el wiki.",
+    "config-profile": "Perfil de derechos de usuario:",
+    "config-profile-wiki": "Wiki abierto",
+    "config-profile-no-anon": "Creación de cuenta requerida",
+    "config-profile-fishbowl": "Sólo editores autorizados",
+    "config-profile-private": "Wiki privado",
+    "config-profile-help": "Los wikis funcionan mejor cuando dejas que los edite tanta gente como sea posible.\nEn MediaWiki, es fácil revisar los cambios recientes y revertir los daños realizados por usuarios malintencionados o novatos.\nSin embargo, muchos han encontrado que MediaWiki es útil para una amplia variedad de funciones, y a veces no es fácil convencer a todos de los beneficios de la forma wiki.\nPor lo tanto tienes la elección.\n\nUn '''{{int:config-profile-wiki}}''' permite que cualquiera pueda editar, sin siquiera iniciar sesión.\nUn wiki con '''{{int:config-profile-no-anon}}''' ofrece rendición de cuentas adicional, pero puede disuadir a colaboradores.\n\nEl escenario '''{{int:config-profile-fishbowl}}''' permite editar a los usuarios autorizados, pero el público puede ver las páginas, incluyendo el historial.\nUn '''{{int:config-profile-private}}''' sólo permite ver páginas a los usuarios autorizados, el mismo grupo al que le está permitido editar.\n\nConfiguraciones más complejas de derechos de usuario están disponibles después de la instalación, consulte [//www.mediawiki.org/wiki/Manual:User_rights esta entrada en el manual].",
+    "config-license": "Copyright and licencia:",
+    "config-license-none": "Pie sin licencia",
+    "config-license-cc-by-sa": "Creative Commons Reconocimiento Compartir Igual",
+    "config-license-cc-by": "Creative Commons Reconocimiento",
+    "config-license-cc-by-nc-sa": "Creative Commons Reconocimiento Compartir Igual no comercial",
+    "config-license-cc-0": "Creative Commons Zero (dominio público)",
+    "config-license-gfdl": "Licencia de documentación libre de GNU 1.3 o posterior",
+    "config-license-pd": "Dominio Público",
+    "config-license-cc-choose": "Selecciona una licencia personalizada de Creative Commons",
+    "config-license-help": "Muchos wikis públicos ponen todas las contribuciones bajo una [http://freedomdefined.org/Definition licencia libre].\nEsto ayuda a crear un sentido de propiedad comunitaria y alienta la contribución a largo plazo.\nEsto no es generalmente necesario para un wiki privado o corporativo.\n\nSi desea poder utilizar texto de Wikipedia, y desea que Wikipedia pueda aceptar el texto copiado de tu wiki, debe elegir '''Creative Commons Reconocimiento Compartir Igual'''.\n\nWikipedia utilizaba anteriormente la licencia de documentación libre de GNU (GFDL).\nLa GFDL es una licencia válida, pero es difícil de entender.\nTambién es difícil reutilizar el contenido licenciado bajo la GFDL.",
+    "config-email-settings": "Configuración de correo electrónico",
+    "config-enable-email": "Activar el envío de correos electrónicos",
+    "config-enable-email-help": "Si quieres que el correo electrónico funcione, la [http://www.php.net/manual/en/mail.configuration.php configuración PHP de correo electrónico] debe ser la correcta.\nSi no quieres la funcionalidad de correo electrónico, puedes desactivarla aquí.",
+    "config-email-user": "Habilitar correo electrónico de usuario a usuario",
+    "config-email-user-help": "Permitir que todos los usuarios intercambien correos electrónicos si lo han activado en sus preferencias.",
+    "config-email-usertalk": "Activar notificaciones de páginas de discusión de usuarios",
+    "config-email-usertalk-help": "Permitir a los usuarios recibir notificaciones de cambios en la página de discusión de usuario, si lo han activado en sus preferencias.",
+    "config-email-watchlist": "Activar notificación de alteraciones a la páginas vigiladas",
+    "config-email-watchlist-help": "Permitir a los usuarios recibir notificaciones de cambios en la páginas que vigilan, si lo han activado en sus preferencias.",
+    "config-email-auth": "Activar autenticación del correo electrónico",
+    "config-email-auth-help": "Si esta opción está habilitada, los usuarios tienen que confirmar su dirección de correo electrónico mediante un enlace que se les envía a ellos cuando éstos lo establecen o lo cambian.\nSolo las direcciones de correo electrónico autenticadas pueden recibir correos electrónicos de otros usuarios o correos electrónicos de notificación de cambios.\nEsta opción está '''recomendada''' para wikis públicos debido a posibles abusos de las características del correo electrónico.",
+    "config-email-sender": "Dirección de correo electrónico de retorno:",
+    "config-email-sender-help": "Introduce la dirección de correo electrónico que será usada como dirección de retorno en los mensajes electrónicos de salida.\nAquí llegarán los correos electrónicos que no lleguen a su destino.\nMuchos servidores de correo electrónico exigen que por lo menos la parte del nombre del dominio sea válida.",
+    "config-upload-settings": "Cargas de imágenes y archivos",
+    "config-upload-enable": "Habilitar la subida de archivos",
+    "config-upload-help": "La carga de archivos expone potencialmente su servidor a riesgos de seguridad.\nPara obtener más información, lea la [//www.mediawiki.org/wiki/Manual:Security sección de seguridad] en el manual.\n\nPara habilitar la carga de archivos, cambie el modo en el subdirectorio <code>images</code> bajo el directorio raíz de MediaWiki para que el servidor web pueda escribir en él.\nA continuación, habilite esta opción.",
+    "config-upload-deleted": "*Directorio para los archivos eliminados:",
+    "config-upload-deleted-help": "Elige un directorio en el que guardar los archivos eliminados.\nLo ideal es una carpeta no accesible desde la red.",
+    "config-logo": "URL del logo :",
+    "config-logo-help": "La apariencia por defecto de MediaWiki incluye espacio para un logotipo de 135x160 píxeles encima del menú de la barra lateral.\nCargue una imagen de tamaño adecuado e introduzca la dirección URL aquí.\n\nSi no desea un logotipo, deje esta casilla en blanco.",
+    "config-instantcommons": "Habilitar Instant Commons",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] es una característica que permite que los wikis puedan utilizar imágenes, sonidos y otros archivos multimedia que se encuentran en el sitio [//commons.wikimedia.org/ Wikimedia Commons].\nPara ello, MediaWiki requiere acceso a Internet.\n\nPara obtener más información sobre esta función, incluidas las instrucciones sobre cómo configurarlo para otras wikis distintas de Wikimedia Commons, consulte [//mediawiki.org/wiki/Manual:$wgForeignFileRepos el manual].",
+    "config-cc-error": "El selector de licencia de Creative Commons no dio resultado.\nEscribe el nombre de la licencia manualmente.",
+    "config-cc-again": "Elegir otra vez...",
+    "config-cc-not-chosen": "Elige la licencia Creative Commons que desees y haz clic en \"continuar\".",
+    "config-advanced-settings": "Configuración avanzada",
+    "config-cache-options": "Configuración de la caché de objetos:",
+    "config-cache-help": "El almacenamiento en caché de objetos se utiliza para mejorar la velocidad de MediaWiki mediante el almacenamiento en caché los datos usados más frecuentemente.\nA los sitios medianos y grandes se les recomienda que permitirlo. También es beneficioso para los sitios pequeños.",
+    "config-cache-none": "Sin almacenamiento en caché (no se pierde ninguna funcionalidad, pero la velocidad puede resentirse en sitios grandes)",
+    "config-cache-accel": "Almacenamiento en caché de objetos PHP (APC, XCache o WinCache)",
+    "config-cache-memcached": "Utilizar Memcached (necesita ser instalado y configurado aparte)",
+    "config-memcached-servers": "Servidores Memcached:",
+    "config-memcached-help": "Lista de direcciones IP que serán usadas por Memcached.\nDeben especificarse una por cada línea y especificar el puerto a utilizar. Por ejemplo:\n127.0.0.1:11211\n192.168.1.25:1234",
+    "config-memcache-needservers": "Ha seleccionado Memcached como su tipo de caché pero no especificó ninguno de los servidores.",
+    "config-memcache-badip": "Ha introducido una dirección IP no válida para Memcached:  $1 .",
+    "config-memcache-noport": "No ha especificado un puerto a usar en el servidor Memcached:  $1 .\nSi no conoce el puerto, el valor predeterminado es 11211.",
+    "config-memcache-badport": "Los números de puerto de Memcached deben estar entre  $1  y  $2.",
+    "config-extensions": "Extensiones",
+    "config-extensions-help": "Se ha detectado en tu directorio <code>./extensions</code>  las extensiones listadas arriba.\n\nPuede que necesiten configuraciones adicionales, pero puedes habilitarlas ahora.",
+    "config-install-alreadydone": "'''Aviso:''' Parece que ya habías instalado MediaWiki y estás intentando instalarlo nuevamente.\nPasa a la próxima página, por favor.",
+    "config-install-begin": "Pulsando \"{{int:config-continue}}\", se iniciará la instalación de MediaWiki.\nSi todavía desea realizar algún cambio, pulse atrás.",
+    "config-install-step-done": "hecho",
+    "config-install-step-failed": "falló",
+    "config-install-extensions": "Extensiones inclusive",
+    "config-install-database": "Configurando la base de datos",
+    "config-install-schema": "Creando el esquema",
+    "config-install-pg-schema-not-exist": "El esquema PostgreSQL no existe.",
+    "config-install-pg-schema-failed": "La creación de las tablas ha fallado.\nAsegúrate de que el usuario \"$1\" puede escribir en el esquema \"$2\".",
+    "config-install-pg-commit": "Validando los cambios",
+    "config-install-pg-plpgsql": "Comprobación de lenguaje PL/pgSQL",
+    "config-pg-no-plpgsql": "Necesita instalar el lenguaje PL/pgSQL en la base de datos $1",
+    "config-pg-no-create-privs": "La cuenta especificada para la instalación no tiene suficientes privilegios para crear una cuenta.",
+    "config-pg-not-in-role": "La cuenta especificada para el usuario web ya existe.\nLa cuenta especificada para la instalación no es de un superusuario y no es miembro del grupo de usuarios con acceso a la web, por lo que es incapaz de crear objetos pertenecientes al usuario web.\n\nMediaWiki requiere actualmente que las tablas sean propiedad del usuario web. Especifique otro nombre de cuenta web, o haga clic en \"atrás\" y especifique un usuario de instalación con los privilegios convenientes.",
+    "config-install-user": "Creando el usuario de la base de datos",
+    "config-install-user-alreadyexists": "El usuario \"$1\" ya existe",
+    "config-install-user-create-failed": "La creación del usuario \"$1\" falló:  $2",
+    "config-install-user-grant-failed": "La concesión de permisos para el usuario \"$1\" ha fallado: $2",
+    "config-install-user-missing": "El usuario especificado \"$1\" no existe.",
+    "config-install-user-missing-create": "El usuario especificado \"$1\" no existe.\nPor favor, haga clic en la casilla \"Crear cuenta\" que aparece a continuación si desea crearlo.",
+    "config-install-tables": "Creando tablas",
+    "config-install-tables-exist": "'''Advertencia''': Al parecer, las tablas de MediaWiki ya existen. Saltándose su creación.",
+    "config-install-tables-failed": "'''Error''': La creación de las tablas falló con el siguiente error: $1",
+    "config-install-interwiki": "Llenando la tabla interwiki predeterminada",
+    "config-install-interwiki-list": "No se pudo encontrar el archivo <code>interwiki.list</code>.",
+    "config-install-interwiki-exists": "'''Advertencia''': La tabla de interwikis parece ya contener entradas.\nSe omitirá la lista predeterminada.",
+    "config-install-stats": "Iniciando las estadísticas",
+    "config-install-keys": "Generación de claves secretas",
+    "config-insecure-keys": "''' Atención:'' '  {{PLURAL:$2|Una clave de seguridad generada|Las claves de seguridad generadas}} ($1) durante la instalación no  {{PLURAL:$2|es totalmente segura|son totalmente seguras}}. Considere {{PLURAL:$2| cambiarla|cambiarlas}} manualmente.",
+    "config-install-sysop": "Creando cuenta de usuario del administrador",
+    "config-install-subscribe-fail": "No se ha podido suscribir a mediawiki-announce: $1",
+    "config-install-subscribe-notpossible": "cURL no está instalado y allow_url_fopen no está disponible.",
+    "config-install-mainpage": "Creando página principal con contenido predeterminado",
+    "config-install-extension-tables": "Creando las tablas para las extensiones habilitadas",
+    "config-install-mainpage-failed": "No se pudo insertar la página principal: $1",
+    "config-install-done": "''' Felicidades!'''\nHa instalado MediaWiki correctamente.\n\nEl instalador ha generado un  archivo<code>LocalSettings.php</code>.\nContiene toda su configuración.\n\nDeberá descargarlo y ponerlo en la base de la instalación de wiki (el mismo directorio que index.php). Debería haber comenzado automáticamente la descarga.\n\nSi no comenzó la descarga, o si se ha cancelado, puede reiniciar la descarga haciendo clic en el enlace siguiente:\n$3\n\n'''Nota''': Si no haces esto ahora, este archivo de configuración generado no estará disponible para usted más tarde si sale de la instalación sin descargarlo.\n\nCuando lo haya hecho, usted puede '''[$2  entrar en su wiki]'''.",
+    "config-download-localsettings": "Descargar archivo <code>LocalSettings.php</code>",
+    "config-help": "Ayuda",
+    "config-nofile": "El archivo \"$1\" no se pudo encontrar. ¿Se ha eliminado?",
+    "mainpagetext": "'''MediaWiki ha sido instalado con éxito.'''",
+    "mainpagedocfooter": "Consulta la [//meta.wikimedia.org/wiki/Ayuda:Guía del usuario de contenidos] para obtener información sobre el uso del software wiki.\n\n== Empezando ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de ajustes de configuración]\n* [//www.mediawiki.org/wiki/Manual:FAQ/es FAQ de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correo de anuncios de distribución de MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Regionalizar MediaWiki para tu idioma]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/et.json b/includes/installer/i18n/et.json
new file mode 100644 (file)
index 0000000..710e218
--- /dev/null
@@ -0,0 +1,67 @@
+{
+    "@metadata": {
+        "authors": [
+            "Avjoska",
+            "Pikne"
+        ]
+    },
+    "config-information": "Teave",
+    "config-session-error": "Tõrge seansi alustamisel: $1",
+    "config-your-language": "Oma keel:",
+    "config-wiki-language": "Viki keel:",
+    "config-back": "← Tagasi",
+    "config-continue": "Jätka →",
+    "config-page-language": "Keel",
+    "config-page-welcome": "Tere tulemast MediaWikisse!",
+    "config-page-dbconnect": "Andmebaasiga ühendamine",
+    "config-page-upgrade": "Olemasoleva installi uuendus",
+    "config-page-dbsettings": "Andmebaasi sätted",
+    "config-page-name": "Nimi",
+    "config-page-options": "Seaded",
+    "config-page-install": "Paigaldamine",
+    "config-page-complete": "Valmis!",
+    "config-page-restart": "Alusta installimist uuesti",
+    "config-page-readme": "Loe mind",
+    "config-page-copying": "Kopeerimine",
+    "config-page-upgradedoc": "Uuendamine",
+    "config-page-existingwiki": "Olemasolev viki",
+    "config-restart": "Jah, tee taaskäivitus",
+    "config-db-name": "Andmebaasi nimi:",
+    "config-db-username": "Andmebaasi kasutajanimi:",
+    "config-db-password": "Andmebaasi parool:",
+    "config-db-port": "Andmebaasi port:",
+    "config-invalid-db-type": "Vigane andmebaasi tüüp",
+    "config-site-name": "Viki nimi:",
+    "config-site-name-blank": "Sisestage lehekülje nimi.",
+    "config-project-namespace": "Projekti nimeruum:",
+    "config-ns-generic": "Projekt",
+    "config-admin-box": "Administraatorikonto",
+    "config-admin-name": "Sinu nimi:",
+    "config-admin-password": "Parool:",
+    "config-admin-password-confirm": "Parool uuesti:",
+    "config-admin-name-blank": "Sisesta administraatori kasutajanimi.",
+    "config-admin-password-blank": "Sisesta administraatorikonto parool.",
+    "config-admin-password-same": "Parool ei tohi kattuda kasutajanimega.",
+    "config-admin-password-mismatch": "Sisestatud kaks parooli ei lange kokku.",
+    "config-admin-email": "E-posti aadress:",
+    "config-admin-error-bademail": "Sisestasid vigase e-posti aadressi.",
+    "config-optional-continue": "Küsi minult veel küsimusi.",
+    "config-profile-private": "Eraviki",
+    "config-license": "Autoriõigus ja litsents:",
+    "config-license-none": "Litsentsijaluseta",
+    "config-license-cc-by-sa": "Creative Commonsi litsents \"Autorile viitamine + jagamine samadel tingimustel\"",
+    "config-license-cc-by": "Creative Commonsi litsents \"Autorile viitamine\"",
+    "config-license-cc-by-nc-sa": "Creative Commonsi litsents \"Autorile viitamine + mitteäriline eesmärk + jagamine samadel tingimustel\"",
+    "config-email-settings": "E-posti sätted",
+    "config-email-sender": "Saatja e-aadress:",
+    "config-logo": "Logo internetiaadress:",
+    "config-cc-again": "Vali uuesti...",
+    "config-extensions": "Lisad",
+    "config-install-step-done": "valmis",
+    "config-install-step-failed": "ebaõnnestus",
+    "config-install-user-alreadyexists": "Kasutaja \"$1\" on juba olemas",
+    "config-install-tables": "Tabelite loomine",
+    "config-help": "abi",
+    "mainpagetext": "'''MediaWiki tarkvara on edukalt paigaldatud.'''",
+    "mainpagedocfooter": "Vikitarkvara kasutamise kohta leiad lisateavet [//meta.wikimedia.org/wiki/Help:Contents juhendist].\n\n== Alustamine ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Häälestussätete loend]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki KKK]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki versiooniuuenduste postiloend]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources MediaWiki lokaliseerimine]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/eu.json b/includes/installer/i18n/eu.json
new file mode 100644 (file)
index 0000000..a0033bd
--- /dev/null
@@ -0,0 +1,76 @@
+{
+    "@metadata": {
+        "authors": [
+            "An13sa",
+            "පසිඳු කාවින්ද"
+        ]
+    },
+    "config-desc": "MediaWiki instalatzailea",
+    "config-title": "MediaWiki $1 instalazioa",
+    "config-information": "Informazioa",
+    "config-session-error": "Saio hasierako errorea: $1",
+    "config-your-language": "Zure hizkuntza:",
+    "config-your-language-help": "Aukeratu instalazio prozesuan erabiliko den hizkuntza",
+    "config-wiki-language": "Wiki hizkuntza:",
+    "config-back": "← Atzera",
+    "config-continue": "Jarraitu →",
+    "config-page-language": "Hizkuntza",
+    "config-page-welcome": "Ongi etorri MediaWikira!",
+    "config-page-dbconnect": "Datu-basera konektatu",
+    "config-page-dbsettings": "Datu-basearen ezarpenak",
+    "config-page-name": "Izena",
+    "config-page-options": "Aukerak",
+    "config-page-install": "Instalatu",
+    "config-page-complete": "Bukatua!",
+    "config-page-restart": "Instalazioa berriz hasi",
+    "config-page-readme": "Irakur nazazu",
+    "config-page-copying": "Kopiatzea",
+    "config-page-upgradedoc": "Eguneratu",
+    "config-restart": "Bai, berriz hasi",
+    "config-sidebar": "* [//www.mediawiki.org MediaWiki nagusia]\n* [//www.mediawiki.org/wiki/Help:Contents Erabiltzaileentzako Gida]\n* [//www.mediawiki.org/wiki/Manual:Contents Administratzaileentzako Gida]\n* [//www.mediawiki.org/wiki/Manual:FAQ MEG]\n----\n* <doclink href=Readme>Irakur nazazu</doclink>\n* <doclink href=ReleaseNotes>Oharren argitalpena</doclink>\n* <doclink href=Copying>Kopiaketa</doclink>\n* <doclink href=UpgradeDoc>Eguneratzea</doclink>",
+    "config-env-php": "PHP $1 instalatuta dago.",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] instalatuta dago",
+    "config-apc": "[http://www.php.net/apc APC] instalatuta dago",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] instalatuta dago",
+    "config-diff3-bad": "GNU diff3 ez da aurkitu.",
+    "config-db-type": "Datu-base mota:",
+    "config-db-wiki-settings": "Wiki hau identifikatu",
+    "config-db-name": "Datu-base izena:",
+    "config-db-username": "Datu-base lankide izena:",
+    "config-db-password": "Datu-base pasahitza:",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 bitarra",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-header-mysql": "MySQL hobespenak",
+    "config-header-postgres": "PostgreSQL hobespenak",
+    "config-header-sqlite": "SQLite hobespenak",
+    "config-header-oracle": "Oracle hobespenak",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-binary": "Bitarra",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "Wikiaren izena:",
+    "config-project-namespace": "Proiektuaren izen-tartea:",
+    "config-ns-generic": "Proiektua",
+    "config-ns-other": "Bestelakoa (zehaztu)",
+    "config-ns-other-default": "MyWiki",
+    "config-admin-box": "Administratzaile kontua",
+    "config-admin-name": "Zure izena:",
+    "config-admin-password": "Pasahitza:",
+    "config-admin-password-confirm": "Pasahitza berriz:",
+    "config-admin-email": "E-posta helbidea:",
+    "config-profile-wiki": "Wiki tradizionala",
+    "config-profile-private": "Wiki pribatua",
+    "config-license": "Copyright eta lizentzia:",
+    "config-license-pd": "Domeinu Askea",
+    "config-email-settings": "E-posta hobespenak",
+    "config-logo": "Logo URL:",
+    "config-extensions": "Luzapenak",
+    "config-install-step-done": "egina",
+    "config-help": "Laguntza",
+    "mainpagetext": "'''MediaWiki arrakastaz instalatu da.'''",
+    "mainpagedocfooter": "Ikus [//meta.wikimedia.org/wiki/Help:Contents Erabiltzaile Gida] wiki softwarea erabiltzen hasteko informazio gehiagorako.\n\n== Nola hasi ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Konfigurazio balioen zerrenda]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ (Maiz egindako galderak)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWikiren argitalpenen posta zerrenda]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ext.json b/includes/installer/i18n/ext.json
new file mode 100644 (file)
index 0000000..9e0af3d
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MeyaGüiqui s'á istalau satihatoriamenti.'''",
+    "mainpagedocfooter": "Consurta la [//meta.wikimedia.org/wiki/Help:Contents User's Guide] pa sabel mas al tentu el huncionamientu el software güiqui.\n\n== Esminciandu ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/fa.json b/includes/installer/i18n/fa.json
new file mode 100644 (file)
index 0000000..b469b79
--- /dev/null
@@ -0,0 +1,65 @@
+{
+    "@metadata": {
+        "authors": [
+            "Mjbmr"
+        ]
+    },
+    "config-desc": "نصب کنندهٔ ویکی‌مدیا",
+    "config-title": "نصب ویکی‌مدیا $1",
+    "config-information": "اطلاعات",
+    "config-localsettings-key": "کلید ارتقا:",
+    "config-your-language": "زبان شما:",
+    "config-wiki-language": "زبان ویکی:",
+    "config-back": "→ بازگشت",
+    "config-continue": "ادامه ←",
+    "config-page-language": "زبان",
+    "config-page-welcome": "به مدیاویکی خوش آمدید!",
+    "config-page-dbconnect": "اتصال به پایگاه داده",
+    "config-page-name": "نام",
+    "config-page-options": "گزینه‌ها",
+    "config-page-install": "نصب",
+    "config-page-complete": "کامل!",
+    "config-page-readme": "مرا بخوان",
+    "config-page-releasenotes": "یادداشت‌های انتشار",
+    "config-page-copying": "تکثیر",
+    "config-page-upgradedoc": "ارتقا",
+    "config-page-existingwiki": "ویکی موجود",
+    "config-restart": "بله ، آن دوباره راه اندازی کن",
+    "config-sidebar": "* [//www.mediawiki.org صفحهٔ اصلی مدیاویکی]\n* [//www.mediawiki.org/wiki/Help:Contents راهنمای کاربر]\n* [//www.mediawiki.org/wiki/Manual:Contents راهنمای مدیر]\n* [//www.mediawiki.org/wiki/Manual:FAQ پرسش‌های رایج]\n----\n* <doclink href=Readme>مرا بخوان</doclink>\n* <doclink href=ReleaseNotes>یادداشت‌های انتشار</doclink>\n* <doclink href=Copying>نسخه برداری</doclink>\n* <doclink href=UpgradeDoc>ارتقا</doclink>",
+    "config-env-php": "پی‌اچ‌پی $1 نصب شده است.",
+    "config-env-php-toolow": "پی‌اچ‌پی $1 نصب شده است.\nدر هر صورت، مدیاویکی نیاز به پی‌اچ‌پی نسخهٔ $2 یا بالاتر دارد.",
+    "config-db-type": "نوع پایگاه اطلاعات:",
+    "config-db-host": "میزبان پایگاه اطلاعات:",
+    "config-db-username": "نام کاربری پایگاه اطلاعات:",
+    "config-db-password": "کلمه عبور پایگاه اطلاعات:",
+    "config-mysql-old": "مای‌اس‌کیو‌ال نسخهٔ $1 و یا بالاتر نیاز است، شما نسخهٔ $2 را دارید.",
+    "config-db-port": "درگاه پایگاه‌داده:",
+    "config-header-mysql": "تنظیمات مای‌اس‌کیو‌ال",
+    "config-connection-error": "$1.\n\nمیزبان، نام کاربری و گذرواژه را بررسی کنید و دوباره امتحان کنید.",
+    "config-mysql-binary": "دودویی",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "نام ویکی:",
+    "config-site-name-blank": "نام تارنما را وارد کنید.",
+    "config-project-namespace": "فضای نام پروژه:",
+    "config-ns-generic": "پروژه",
+    "config-ns-other-default": "ویکی‌من",
+    "config-admin-box": "حساب مدیر سیستم",
+    "config-admin-name": "نام شما:",
+    "config-admin-password": "کلمه عبور:",
+    "config-admin-password-confirm": "دوباره کلمه عبور:",
+    "config-admin-email": "پست الکترونیکی شما:",
+    "config-profile-private": "ویکی خصوصی",
+    "config-license": "حق تکثیر و مجوز:",
+    "config-license-none": "بدون پاورقی مجوز",
+    "config-license-pd": "دامنه عمومی",
+    "config-license-cc-choose": "انتخاب یک مجوز سفارشی عوام خلاق",
+    "config-email-settings": "تنظیمات پست الکترونیکی",
+    "config-upload-enable": "فعال سازی بارگذاری پرونده",
+    "config-logo": "نشانی نامواره:",
+    "config-extensions": "افزونه‌ها",
+    "config-install-step-done": "انجام شد",
+    "config-install-step-failed": "ناموفق بود",
+    "config-help": "راهنما",
+    "mainpagetext": "'''نرم‌افزار ویکی با موفقیت نصب شد.'''",
+    "mainpagedocfooter": "از [//meta.wikimedia.org/wiki/Help:Contents راهنمای کاربران]\nبرای استفاده از نرم‌افزار ویکی کمک بگیرید.\n\n== آغاز به کار ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings تنظیم پیکربندی]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki پرسش‌های متداول]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce فهرست پست الکترونیکی نسخه‌های مدیاویکی]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/fi.json b/includes/installer/i18n/fi.json
new file mode 100644 (file)
index 0000000..149313a
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "@metadata": {
+        "authors": [
+            "Beluga",
+            "Centerlink",
+            "Crt",
+            "Nike",
+            "Olli",
+            "Silvonen",
+            "Str4nd",
+            "VezonThunder",
+            "아라"
+        ]
+    },
+    "config-desc": "MediaWiki-asennin",
+    "config-title": "MediaWikin version $1 asennus",
+    "config-information": "Tiedot",
+    "config-localsettings-upgrade": "<code>LocalSettings.php</code>-tiedosto havaittiin.\nKirjoita muuttujan <code>$wgUpgradeKey</code> arvo alla olevaan kenttään päivittääksesi asennuksen.\nLöydät sen <code>LocalSettings.php</code>-tiedostosta.",
+    "config-localsettings-cli-upgrade": "<code>LocalSettings.php</code>-tiedosto havaittiin.\nPäivitä asennus suorittamalla <code>update.php</code>.",
+    "config-localsettings-key": "Päivitysavain",
+    "config-localsettings-badkey": "Antamasi avain on virheellinen.",
+    "config-upgrade-key-missing": "Havaittiin aiempi MediaWiki-asennus.\nPäivittääksesi tämän asennuksen lisää <code>LocalSettings.php</code>-tiedostosi loppuun seuraava rivi:\n\n$1",
+    "config-localsettings-incomplete": "Nykyinen <code>LocalSettings.php</code>-tiedosto näyttää olevan puutteellinen.\nMuuttujaa $1 ei ole asetettu.\nMuuta <code>LocalSettings.php</code>-tiedostoa siten, että muuttuja on asetettu ja napsauta »{{int:Config-continue}}».",
+    "config-localsettings-connection-error": "Virhe yhdistettäessä tietokantaan käyttäen tiedostossa <code>LocalSettings.php</code> tai <code>AdminSettings.php</code> määritettyjä asetuksia. Korjaa asetukset ja yritä uudelleen.\n\n$1",
+    "config-session-error": "Istunnon aloittaminen epäonnistui: $1",
+    "config-session-expired": "Istuntotietosi näyttävät olevan vanhentuneita.\nIstuntojen elinajaksi on määritelty $1.\nVoit muuttaa tätä asetusta vaihtamalla kohtaa <code>session.gc_maxlifetime</code> php.ini-tiedostossa.\nKäynnistä asennusprosessi uudelleen.",
+    "config-no-session": "Istuntosi tiedot menetettiin!\nTarkista php.ini-tiedostosi ja varmista, että <code>session.save_path</code> on asetettu sopivaan kansioon.",
+    "config-your-language": "Asennuksen kieli",
+    "config-your-language-help": "Valitse kieli, jota haluat käyttää asennuksen ajan.",
+    "config-wiki-language": "Wikin kieli",
+    "config-wiki-language-help": "Valitse kieli, jota wikissä tullaan etupäässä käyttämään.",
+    "config-back": "← Takaisin",
+    "config-continue": "Jatka →",
+    "config-page-language": "Kieli",
+    "config-page-welcome": "Tervetuloa MediaWikiin!",
+    "config-page-dbconnect": "Tietokantaan yhdistäminen",
+    "config-page-upgrade": "Olemassa olevan asennuksen päivitys",
+    "config-page-dbsettings": "Tietokannan asetukset",
+    "config-page-name": "Nimi",
+    "config-page-options": "Asetukset",
+    "config-page-install": "Asenna",
+    "config-page-complete": "Valmis!",
+    "config-page-restart": "Aloita asennus alusta",
+    "config-page-readme": "Lue minut",
+    "config-page-releasenotes": "Julkaisutiedot",
+    "config-page-copying": "Kopiointi",
+    "config-page-upgradedoc": "Päivittäminen",
+    "config-page-existingwiki": "Aikaisempi asennus",
+    "config-help-restart": "Haluatko poistaa kaikki annetut tiedot ja aloittaa asennuksen alusta?",
+    "config-restart": "Kyllä",
+    "config-welcome": "=== Ympäristön tarkistukset ===\nVarmistetaan MediaWikin asennettavuus tähän ympäristöön.\nSinun pitäisi antaa näiden tarkistusten tulokset, jos tarvitset apua asennuksen aikana.",
+    "config-sidebar": "* [//www.mediawiki.org MediaWikin kotisivu]\n* [//www.mediawiki.org/wiki/Help:Contents Käyttöopas]\n* [//www.mediawiki.org/wiki/Manual:Contents Hallintaopas]\n* [//www.mediawiki.org/wiki/Manual:FAQ UKK]\n----\n* <doclink href=Readme>Lue minut</doclink>\n* <doclink href=ReleaseNotes>Julkaisutiedot</doclink>\n* <doclink href=Copying>Kopiointi</doclink>\n* <doclink href=UpgradeDoc>Päivittäminen</doclink>",
+    "config-env-good": "Asennusympäristö on tarkastettu.\nVoit asentaa MediaWikin.",
+    "config-env-bad": "Asennusympäristö on tarkastettu.\nEt voi asentaa MediaWikiä.",
+    "config-env-php": "PHP $1 on asennettu.",
+    "config-env-php-toolow": "PHP $1 on asennettu.\nMediaWiki vaatii PHP:n version $2 tai uudemman.",
+    "config-no-db": "Sopivaa tietokanta-ajuria ei löytynyt! Sinun täytyy asentaa tietokanta-ajurit PHP:lle.\nSeuraavat tietokantatyypit ovat tuettuja: $1.",
+    "config-safe-mode": "'''Varoitus:''' PHP:n [http://www.php.net/features.safe-mode safe mode] -tila on aktiivinen.\nSe voi aiheuttaa ongelmia erityisesti tiedostojen tallentamisen ja matemaattisten kaavojen kanssa.",
+    "config-pcre": "PCRE-tukimoduuli puuttuu.\nMediaWiki vaatii toimiakseen Perl-yhteensopivat säännölliset lausekkeet.",
+    "config-memory-bad": "'''Varoitus:''' PHP:n <code>memory_limit</code> on $1.\nTämä on luultavasti liian alhainen.\nAsennus saattaa epäonnistua!",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] on asennettu",
+    "config-apc": "[http://www.php.net/apc APC] on asennettu.",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] on asennettu",
+    "config-diff3-bad": "GNU diff3:a ei löytynyt.",
+    "config-db-type": "Tietokannan tyyppi",
+    "config-db-host": "Tietokantapalvelin",
+    "config-db-name": "Tietokannan nimi",
+    "config-db-username": "Tietokannan käyttäjätunnus",
+    "config-db-password": "Tietokannan salasana",
+    "config-db-install-help": "Anna käyttäjätunnus ja salasana, joita käytetään asennuksen aikana.",
+    "config-db-account-lock": "Käytä samaa tunnusta ja salasanaa myös asennuksen jälkeen",
+    "config-db-prefix": "Tietokantataulujen etuliite",
+    "config-db-charset": "Tietokannan merkistö",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0, binääri",
+    "config-charset-mysql5": "MySQL 4.1/5.0, UTF-8",
+    "config-charset-mysql4": "MySQL 4.0, taaksepäin yhteensopiva UTF-8",
+    "config-mysql-old": "MediaWiki tarvitsee MySQL:n version $1 tai uudemman. Nykyinen versio on $2.",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-header-mysql": "MySQL-asetukset",
+    "config-header-postgres": "PostgreSQL-asetukset",
+    "config-header-sqlite": "SQLite-asetukset",
+    "config-header-oracle": "Oracle-asetukset",
+    "config-invalid-db-type": "Virheellinen tietokantatyyppi",
+    "config-missing-db-name": "Kenttä »Tietokannan nimi» on pakollinen",
+    "config-invalid-db-name": "”$1” ei kelpaa tietokannan nimeksi.\nKäytä ainoastaan kirjaimia (a-z, A-Z), numeroita (0-9), alaviivoja (_) ja tavuviivoja (-).",
+    "config-invalid-db-prefix": "”$1” ei kelpaa tietokannan etuliitteeksi.\nKäytä ainoastaan kirjaimia (a-z, A-Z), numeroita (0-9), alaviivoja (_) ja tavuviivoja (-).",
+    "config-postgres-old": "MediaWiki tarvitsee PostgreSQL:n version $1 tai uudemman. Nykyinen versio on $2.",
+    "config-sqlite-name-help": "Valitse nimi, joka yksilöi tämän wikin.\nÄlä käytä välilyöntejä tai viivoja.\nNimeä käytetään SQLite-tietokannan tiedostonimessä.",
+    "config-sqlite-dir-unwritable": "Hakemistoon ”$1” kirjoittaminen epäonnistui.\nMuuta hakemiston käyttöoikeuksia siten, että palvelinohjelmisto voi kirjoittaa siihen ja yritä uudelleen.",
+    "config-sqlite-readonly": "Tiedostoon <code>$1</code> ei voi kirjoittaa.",
+    "config-sqlite-fts3-downgrade": "PHP:stä puuttuu FTS3-tuki. Poistetaan ominaisuus käytöstä tietokantatauluista.",
+    "config-upgrade-done": "Päivitys valmis.\n\nVoit [$1 aloittaa wikin käytön].\n\nNapsauta alla olevaa painiketta, jos haluat luoda uudelleen <code>LocalSettings.php</code>-tiedoston.\nTämä '''ei ole suositeltavaa''', jos wikissäsi ei ole ongelmia.",
+    "config-upgrade-done-no-regenerate": "Päivitys valmis.\n\nVoit [$1 aloittaa wikin käytön].",
+    "config-regenerate": "Luo LocalSettings.php uudelleen →",
+    "config-show-table-status": "Kysely <code>SHOW TABLE STATUS</code> epäonnistui!",
+    "config-mysql-engine": "Tallennusmoottori",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-binary": "Binääri",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "Wikin nimi",
+    "config-site-name-blank": "Kirjoita sivuston nimi.",
+    "config-project-namespace": "Projektinimiavaruus",
+    "config-ns-generic": "Projekti",
+    "config-ns-site-name": "Sama kuin wikin nimi: $1",
+    "config-ns-other": "Muu (määritä)",
+    "config-admin-name": "Nimesi",
+    "config-admin-password": "Salasana",
+    "config-admin-password-confirm": "Salasana uudelleen",
+    "config-admin-name-blank": "Anna ylläpitäjän käyttäjänimi.",
+    "config-admin-email": "Sähköpostiosoite",
+    "config-admin-error-bademail": "Annoit virheellisen sähköpostiosoitteen.",
+    "config-almost-done": "Olet jo lähes valmis!\nVoit ohittaa jäljellä olevat määritykset ja asentaa wikin juuri nyt.",
+    "config-profile-wiki": "Avoin wiki",
+    "config-profile-no-anon": "Tunnuksen luonti vaaditaan",
+    "config-profile-private": "Yksityinen wiki",
+    "config-license": "Tekijänoikeus ja lisenssi:",
+    "config-license-pd": "Public domain",
+    "config-email-settings": "Sähköpostiasetukset",
+    "config-logo": "Logon URL-osoite",
+    "config-cc-again": "Valitse uudelleen...",
+    "config-extensions": "Laajennukset",
+    "config-install-step-done": "valmis",
+    "config-install-step-failed": "epäonnistui",
+    "config-install-user-alreadyexists": "Käyttäjä $1 on jo olemassa",
+    "config-install-interwiki-list": "Tiedostoa <code>interwiki.list</code> ei voitu lukea.",
+    "config-download-localsettings": "Lataa <code>LocalSettings.php</code>",
+    "config-help": "ohje",
+    "mainpagetext": "'''MediaWiki on onnistuneesti asennettu.'''",
+    "mainpagedocfooter": "Lisätietoja käytöstä on sivulla [//meta.wikimedia.org/wiki/Help:Contents User's Guide].\n\n=== Lisäohjeita ===\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Asetusten teko-ohjeita]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWikin FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Sähköpostilista, jolla tiedotetaan MediaWikin uusista versioista]\n\n=== Asetukset ===\n\nTarkista, että alla olevat taivutusmuodot ovat oikein. Jos eivät, tee tarvittavat muutokset tiedostoon LocalSettings.php seuraavasti:\n $wgGrammarForms['fi']['genitive']['{{SITENAME}}'] = '...';\n $wgGrammarForms['fi']['partitive']['{{SITENAME}}'] = '...';\n $wgGrammarForms['fi']['elative']['{{SITENAME}}'] = '...';\n $wgGrammarForms['fi']['inessive']['{{SITENAME}}'] = '...';\n $wgGrammarForms['fi']['illative']['{{SITENAME}}'] = '...';\nTaivutusmuodot: {{GRAMMAR:genitive|{{SITENAME}}}} (yön) – {{GRAMMAR:partitive|{{SITENAME}}}} (yötä) – {{GRAMMAR:elative|{{SITENAME}}}} (yöstä) – {{GRAMMAR:inessive|{{SITENAME}}}} (yössä) – {{GRAMMAR:illative|{{SITENAME}}}} (yöhön)."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/fo.json b/includes/installer/i18n/fo.json
new file mode 100644 (file)
index 0000000..30aa2c6
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Innlegging av Wiki-ritbúnaði væleydnað.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/fr.json b/includes/installer/i18n/fr.json
new file mode 100644 (file)
index 0000000..2c1793b
--- /dev/null
@@ -0,0 +1,326 @@
+{
+    "@metadata": {
+        "authors": [
+            "Aadri",
+            "Crochet.david",
+            "Gomoko",
+            "Grondin",
+            "Guillom",
+            "Hashar",
+            "IAlex",
+            "Jean-Frédéric",
+            "McDutchie",
+            "Peter17",
+            "Reedy",
+            "Sherbrooke",
+            "Urhixidur",
+            "Verdy p",
+            "Wyz",
+            "Yumeki",
+            "아라"
+        ]
+    },
+    "config-desc": "Le programme d’installation de MediaWiki",
+    "config-title": "Installation de MediaWiki $1",
+    "config-information": "Informations",
+    "config-localsettings-upgrade": "Un fichier <code>LocalSettings.php</code> a été détecté.\nPour mettre à jour cette installation, veuillez saisir la valeur de <code>$wgUpgradeKey</code> dans le champ ci-dessous.\nVous la trouverez dans <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Un fichier <code>LocalSettings.php</code> a été détecté.\nPour mettre à niveau cette installation, veuillez exécuter <code>update.php</code>",
+    "config-localsettings-key": "Clé de mise à jour :",
+    "config-localsettings-badkey": "La clé que vous avez fournie est incorrecte",
+    "config-upgrade-key-missing": "Une installation existante de MediaWiki a été détectée.\n\nPour mettre à jour cette installation, veuillez ajouter la ligne suivante à la fin de votre fichier <code>LocalSettings.php</code>\n\n$1",
+    "config-localsettings-incomplete": "Le fichier <code>LocalSettings.php</code> existant semble être incomplet.\nLa variable $1 n’est pas définie.\nVeuillez modifier <code>LocalSettings.php</code> de sorte que cette variable soit définie, puis cliquer sur « {{int:Config-continue}} ».",
+    "config-localsettings-connection-error": "Une erreur est survenue lors de la connexion à la base de données en utilisant la configuration spécifiée dans <code>LocalSettings.php</code> ou <code>AdminSettings.php</code>. Veuillez corriger cette configuration puis réessayer.\n\n$1",
+    "config-session-error": "Erreur lors du démarrage de la session : $1",
+    "config-session-expired": "↓Les données de votre session semblent avoir expiré.\nLes sessions sont configurées pour une durée de $1.\nVous pouvez l'augmenter en configurant <code>session.gc_maxlifetime</code> dans le fichier php.ini.\nRedémarrer le processus d'installation.",
+    "config-no-session": "Les données de votre session ont été perdues !\nVérifiez votre fichier php.ini et assurez-vous que <code>session.save_path</code> contient le chemin d’un répertoire approprié.",
+    "config-your-language": "Votre langue :",
+    "config-your-language-help": "Sélectionnez la langue à utiliser pendant le processus d'installation.",
+    "config-wiki-language": "Langue du wiki :",
+    "config-wiki-language-help": "Sélectionner la langue dans laquelle le wiki sera principalement écrit.",
+    "config-back": "← Retour",
+    "config-continue": "Continuer →",
+    "config-page-language": "Langue",
+    "config-page-welcome": "Bienvenue sur MediaWiki !",
+    "config-page-dbconnect": "Se connecter à la base de données",
+    "config-page-upgrade": "Mettre à jour l’installation existante",
+    "config-page-dbsettings": "Paramètres de la base de données",
+    "config-page-name": "Nom",
+    "config-page-options": "Options",
+    "config-page-install": "Installer",
+    "config-page-complete": "Terminé !",
+    "config-page-restart": "Redémarrer l’installation",
+    "config-page-readme": "Lisez-moi",
+    "config-page-releasenotes": "Notes de version",
+    "config-page-copying": "Copie",
+    "config-page-upgradedoc": "Mise à jour",
+    "config-page-existingwiki": "Wiki existant",
+    "config-help-restart": "Voulez-vous effacer toutes les données enregistrées que vous avez entrées et relancer le processus d'installation ?",
+    "config-restart": "Oui, le relancer",
+    "config-welcome": "=== Vérifications liées à l’environnement ===\nDes vérifications de base vont maintenant être effectuées pour voir si cet environnement est adapté à l’installation de MediaWiki.\nRappelez-vous d’inclure ces informations si vous recherchez de l’aide sur la manière de terminer l’installation.",
+    "config-copyright": "=== Droit d'auteur et conditions ===\n\n$1\n\nCe programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la Licence Publique Générale GNU telle que publiée par la Free Software Foundation (version 2 de la Licence, ou, à votre choix, toute version ultérieure).\n\nCe programme est distribué dans l’espoir qu’il sera utile, mais '''sans aucune garantie''' : sans même les garanties implicites de '''commerciabilité''' ou d’'''adéquation à un usage particulier'''.\nVoir la Licence Publique Générale GNU pour plus de détails.\n\nVous devriez avoir reçu <doclink href=Copying>une copie de la Licence Publique Générale GNU</doclink> avec ce programme ; dans le cas contraire, écrivez à la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. ou [http://www.gnu.org/copyleft/gpl.html lisez-le en ligne].",
+    "config-sidebar": "* [//www.mediawiki.org Accueil MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents Guide de l’utilisateur]\n* [//www.mediawiki.org/wiki/Manual:Contents Guide de l’administrateur]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Lisez-moi</doclink>\n* <doclink href=ReleaseNotes>Notes de publication</doclink>\n* <doclink href=Copying>Copie</doclink>\n* <doclink href=UpgradeDoc>Mise à jour</doclink>",
+    "config-env-good": "L’environnement a été vérifié.\nVous pouvez installer MediaWiki.",
+    "config-env-bad": "L’environnement a été vérifié.\nVous ne pouvez pas installer MediaWiki.",
+    "config-env-php": "PHP $1 est installé.",
+    "config-env-php-toolow": "PHP $1 est installé.\nCependant, MediaWiki requiert PHP $2 ou plus haut.",
+    "config-unicode-using-utf8": "Utilisation de utf8_normalize.so par Brion Vibber pour la normalisation Unicode.",
+    "config-unicode-using-intl": "Utilisation de [http://pecl.php.net/intl l'extension PECL intl] pour la normalisation Unicode.",
+    "config-unicode-pure-php-warning": "'''Attention''': L'[http://pecl.php.net/intl extension PECL intl] n'est pas disponible pour la normalisation d’Unicode, retour à la version lente implémentée en PHP.\nSi votre site web sera très fréquenté, vous devriez lire ceci : [//www.mediawiki.org/wiki/Unicode_normalization_considerations ''Unicode normalization''] (en anglais).",
+    "config-unicode-update-warning": "'''Attention''': La version installée du ''wrapper'' de normalisation Unicode utilise une vieille version de la [http://site.icu-project.org/ bibliothèque logicielle ''ICU Project''].\nVous devriez faire une [//www.mediawiki.org/wiki/Unicode_normalization_considerations mise à jour] (texte en anglais) si l'usage d'Unicode vous semble important.",
+    "config-no-db": "Impossible de trouver un pilote de base de données approprié ! Vous devez installer un pilote pour PHP. Ces types de bases de données sont reconnus : $1.\n\nSi vous êtes sur un site partagé, demandez à votre hébergeur d'installer un pilote de base de données approprié. Si vous avez compilé PHP, le configurer avec client de base de données activé, par exemple en insérant la directive <code>./configure --with-mysql</code>.\n\nSi vous avez installé PHP d'une distribution Debian ou Ubuntu, vous devez aussi installer le module <code>php5-mysql</code>.",
+    "config-outdated-sqlite": "'''Attention''': vous avez SQLite $1, qui est inférieur à la version minimale requise $2. SQLite sera indisponible.",
+    "config-no-fts3": "'''Attention :''' SQLite est compilé sans le module [//sqlite.org/fts3.html FTS3] ; les fonctions de recherche ne seront pas disponibles sur ce moteur.",
+    "config-register-globals": "'''Attention : l'option <code>[http://php.net/register_globals register_globals]</code> de PHP est activée.'''\n'''Désactivez-la si vous le pouvez.'''\nMediaWiki fonctionnera, mais votre serveur sera exposé à de potentielles failles de sécurité.",
+    "config-magic-quotes-runtime": "'''Erreur fatale : [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] est activé !'''\nCette option corrompt les données de manière imprévisible.\nVous ne pouvez pas installer ou utiliser MediaWiki tant que cette option est activée.",
+    "config-magic-quotes-sybase": "'''Erreur fatale : [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybasee] est activé !'''\nCette option corrompt les données de manière imprévisible.\nVous ne pouvez pas installer ou utiliser MediaWiki tant que cette option est activée.",
+    "config-mbstring": "'''Erreur fatale : [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] est activé !'''\nCette option provoque des erreurs et peut corrompre les données de manière imprévisible.\nVous ne pouvez pas installer ou utiliser MediaWiki tant que cette option est activée.",
+    "config-ze1": "'''Erreur fatale : [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mod] est activé !'''\nCette option provoque des bugs horribles avec MediaWiki.\nVous ne pouvez pas installer ou utiliser MediaWiki tant que cette option est activée.",
+    "config-safe-mode": "'''Attention : le « [http://www.php.net/features.safe-mode safe mode] » est activé !'''\nCeci peut causer des problèmes, en particulier si vous utilisez le téléversement de fichiers et le support de <code>math</code>.",
+    "config-xml-bad": "Le module XML de PHP est manquant.\nMediaWiki requiert des fonctions de ce module et ne fonctionnera pas avec cette configuration.\nSi vous êtes sous Mandrake, installez le paquet php-xml.",
+    "config-pcre": "Le module de support PCRE semble manquer.\nMediaWiki requiert les fonctions d’expressions rationnelles compatibles avec Perl.",
+    "config-pcre-no-utf8": "'''Erreur fatale''': Le module PCRE de PHP semble être compilé sans le support PCRE_UTF8.\nMédiaWiki nécessite la gestion d’UTF-8 pour fonctionner correctement.",
+    "config-memory-raised": "Le paramètre <code>memory_limit</code> de PHP était à $1, porté à $2.",
+    "config-memory-bad": "'''Attention :''' Le paramètre <code>memory_limit</code> de PHP est à $1.\nCette valeur est probablement trop faible.\nIl est possible que l’installation échoue !",
+    "config-ctype": "'''Fatal ''': PHP doit être compilé avec le support pour l'[http://www.php.net/manual/en/ctype.installation.php extension Ctype].",
+    "config-json": "'''Erreur fatale :''' PHP a été compilé sans le support de JSON.\nVous devez soit installez l’extension JSON de PHP ou l’extension [http://pecl.php.net/package/jsonc PECL jsonc] avant d’installer MediaWiki.\n* L’extension PHP est comprise dans Red Hat Enterprise Linux (CentOS) 5 et 6, mais doit être activée dans <code>/etc/php.ini</code> ou <code>/etc/php.d/json.ini</code>.\n* Certaines distributions Linux après mai 2013 ne comprennent pas l’extension PHP, mais oint mis à la place l’extension PECL sous al forme <code>php5-json</code> ou <code>php-pecl-jsonc</code>.",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] est installé",
+    "config-apc": "[http://www.php.net/apc APC] est installé",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] est installé",
+    "config-no-cache": "'''Attention :''' Impossible de trouver [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] ou [http://www.iis.net/download/WinCacheForPhp WinCache].\nLa mise en cache d'objets n'est pas activée.",
+    "config-mod-security": "'''Attention''': Votre serveur web a [http://modsecurity.org/ mod_security] activé. S&il est mal configuré, cela peut poser des problèmes à MediaWiki ou à d'autres applications qui permettent aux utilisateurs de publier un contenu quelconque.\nReportez-vous à [http://modsecurity.org/documentation/ la documentation de mod_security] ou contactez le support de votre hébergeur si vous rencontrez des erreurs aléatoires.",
+    "config-diff3-bad": "GNU diff3 introuvable.",
+    "config-git": "Logiciel de contrôle de version Git trouvé : <code>$1</code>.",
+    "config-git-bad": "Logiciel de contrôle de version Git non trouvé.",
+    "config-imagemagick": "ImageMagick trouvé : <code>$1</code>.\nLa miniaturisation d'images sera activée si vous activez le téléversement de fichiers.",
+    "config-gd": "La bibliothèque graphique GD intégrée a été trouvée.\nLa miniaturisation d'images sera activée si vous activez le téléversement de fichiers.",
+    "config-no-scaling": "Impossible de trouver la bibliothèque GD ou ImageMagick.\nLa miniaturisation d'images sera désactivé.",
+    "config-no-uri": "'''Erreur :''' Impossible de déterminer l'URI du script actuel.\nInstallation avortée.",
+    "config-no-cli-uri": "'''Attention''': Aucun --scriptpath n'a été spécifié; <code>$1</code> sera utilisé par défaut",
+    "config-using-server": "Utilisation du nom de serveur \"<nowiki>$1</nowiki>\".",
+    "config-using-uri": "Utilisation de l'URL de serveur \"<nowiki>$1$2</nowiki>\".",
+    "config-uploads-not-safe": "'''Attention:''' Votre répertoire par défaut pour les téléchargements, <code>$1</code>, est vulnérable, car il peut exécuter n'importe quel script.\nBien que MediaWiki vérifie tous les fichiers téléchargés, il est fortement recommandé de [//www.mediawiki.org/wiki/Manual:Security#Upload_security fermer cette vulnérabilité de sécurité] (texte en anglais) avant d'activer les téléchargements.",
+    "config-no-cli-uploads-check": "'''Attention:''' Votre répertoire par défaut pour les imports(<code>$1</code>) n'est pas contrôlé concernant la vulnérabilité d'exécution de scripts arbitraires lors de l'installation CLI.",
+    "config-brokenlibxml": "Votre système utilise une combinaison de versions de PHP et libxml2 qui est boguée et peut engendrer des corruptions cachées de données dans MediaWiki et d’autres applications web.\nVeuillez mettre à jour votre système vers PHP 5.2.9 ou plus récent et libxml2 2.7.3 ou plus récent ([//bugs.php.net/bug.php?id=45996 bogue déposé auprès de PHP]).\nInstallation interrompue.",
+    "config-using531": "MediaWiki ne peut pas être utilisé avec PHP $1 à cause d’un bogue affectant les paramètres passés par référence à <code>__call()</code>.\nVeuillez mettre à jour votre système vers PHP 5.3.2 ou plus récent ou revenir à PHP 5.3.0 pour résoudre ce problème.\nInstallation interrompue.",
+    "config-suhosin-max-value-length": "Suhosin est installé et limite la <code>longueur</code> du paramètre GET à $1 octets.\nLe composant ResourceLoader de MediaWiki va répondre en respectant cette limite, mais ses performances seront dégradées. Si possible, vous devriez définir <code>suhosin.get.max_value_length</code> à 1024 ou plus dans le fichier <code>php.ini</code>, et fixer <code>$wgResourceLoaderMaxQueryLength</code> à la même valeur dans <code>LocalSettings.php</code>.",
+    "config-db-type": "Type de base de données :",
+    "config-db-host": "Nom d’hôte de la base de données :",
+    "config-db-host-help": "Si votre serveur de base de données est sur un serveur différent, saisissez ici son nom d’hôte ou son adresse IP.\n\nSi vous utilisez un hébergement mutualisé, votre hébergeur doit vous avoir fourni le nom d’hôte correct dans sa documentation.\n\nSi vous installez sur un serveur Windows et utilisez MySQL, « localhost » peut ne pas fonctionner comme nom de serveur. S’il ne fonctionne pas, essayez « 127.0.0.1 » comme adresse IP locale.\n\nSi vous utilisez PostgreSQL, laissez ce champ vide pour vous connecter via un socket Unix.",
+    "config-db-host-oracle": "Nom TNS de la base de données :",
+    "config-db-host-oracle-help": "Entrez un [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm nom de connexion locale] valide ; un fichier tnsnames.ora doit être visible par cette installation.<br /> Si vous utilisez les bibliothèques clientes version 10g ou plus récentes, vous pouvez également utiliser la méthode de nommage [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
+    "config-db-wiki-settings": "Identifier ce wiki",
+    "config-db-name": "Nom de la base de données :",
+    "config-db-name-help": "Choisissez un nom qui identifie votre wiki.\nIl ne doit pas contenir d'espaces.\n\nSi vous utilisez un hébergement web partagé, votre hébergeur vous fournira un nom spécifique de base de données à utiliser, ou bien vous permet de créer des bases de données via un panneau de contrôle.",
+    "config-db-name-oracle": "Schéma de base de données :",
+    "config-db-account-oracle-warn": "Il existe trois scénarios pris en charge pour l’installation d'Oracle comme backend de base :\n\nSi vous souhaitez créer un compte de base de données dans le cadre de la procédure d’installation, veuillez fournir un compte avec le rôle de SYSDBA comme compte de base de données pour l’installation et spécifiez les informations d’identification souhaitées pour le compte d'accès au web, sinon vous pouvez créer le compte d’accès web manuellement et fournir uniquement ce compte (si elle a exigé des autorisations nécessaires pour créer les objets de schéma) ou fournir deux comptes différents, l’un avec les privilèges de créer et une restreinte pour l’accès web.\n\nUn script pour créer un compte avec des privilèges requis peut être trouvé dans le répertoire « entretien/oracle/ » de cette installation. N’oubliez pas que le fait de l’utilisation d’un compte limité désactive toutes les fonctionnalités d’entretien avec le compte par défaut.",
+    "config-db-install-account": "Compte d'utilisateur pour l'installation",
+    "config-db-username": "Nom d’utilisateur de la base de données :",
+    "config-db-password": "Mot de passe de la base de données :",
+    "config-db-password-empty": "Veuillez entrer un mot de passe pour le nouvel compte de la base de données : $1.\nBien qu'il soit possible de créer un compte sans mot de passe, ce n'est pas recommandé pour des questions de sécurité.",
+    "config-db-install-username": "Entrez le nom d’utilisateur qui sera utilisé pour se connecter à la base de données pendant le processus d'installation. Il ne s’agit pas du nom d’utilisateur du compte MediaWiki, mais du nom d’utilisateur pour votre base de données.",
+    "config-db-install-password": "Entrez le mot de passe qui sera utilisé pour se connecter à la base de données pendant le processus d'installation. Il ne s’agit pas du mot de passe du compte MediaWiki, mais du mot de passe pour votre base de données.",
+    "config-db-install-help": "Entrez le nom d'utilisateur et le mot de passe qui seront utilisés pour se connecter à la base de données pendant le processus d'installation.",
+    "config-db-account-lock": "Utiliser le même nom d'utilisateur et le même mot de passe pendant le fonctionnement habituel",
+    "config-db-wiki-account": "Compte d'utilisateur pour le fonctionnement habituel",
+    "config-db-wiki-help": "Entrez le nom d'utilisateur et le mot de passe qui seront utilisés pour se connecter à la base de données pendant le fonctionnement habituel du wiki.\nSi le compte n'existe pas, et le compte d'installation dispose de privilèges suffisants, ce compte d'utilisateur sera créé avec les privilèges minimum requis pour faire fonctionner le wiki.",
+    "config-db-prefix": "Préfixe des tables de la base de données :",
+    "config-db-prefix-help": "Si vous avez besoin de partager une base de données entre plusieurs wikis, ou entre MediaWiki et une autre application Web, vous pouvez choisir d'ajouter un préfixe à tous les noms de table pour éviter les conflits.\nNe pas utiliser des espaces.\n\nCe champ est généralement laissé vide.",
+    "config-db-charset": "Jeu de caractères de la base de données",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binaire",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 rétrocompatible UTF-8",
+    "config-charset-help": "'''Attention:''' Si vous utilisez ''backwards-compatible UTF-8'' sur MySQL 4.1+, et ensuite sauvegardez la base de données avec <code>mysqldump</code>, cela peut détruire tous les caractères non-ASCII, ce qui rend inutilisable vos copies de sauvegarde de façon irréversible !\n\nEn ''mode binaire'', MediaWiki stocke le texte UTF-8 dans des champs binaires de la base de données. C'est plus efficace que le ''mode UTF-8'' de MySQL, et vous permet d'utiliser toute la gamme des caractères Unicode.\nEn ''mode UTF-8'', MySQL connaîtra le jeu de caractères de vos données et pourra présenter et convertir les données de manière appropriée, mais il ne vous laissera pas stocker les caractères au-dessus du [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingue de base] (en anglais).",
+    "config-mysql-old": "MySQL $1 ou version ultérieure est requis, vous avez $2.",
+    "config-db-port": "Port de la base de données :",
+    "config-db-schema": "Schéma pour MediaWiki",
+    "config-db-schema-help": "Les schémas ci-dessus sont généralement corrects.\nNe les changez que si vous êtes sûr que c'est nécessaire.",
+    "config-pg-test-error": "Impossible de se connecter à la base de données '''$1''' : $2",
+    "config-sqlite-dir": "Dossier des données SQLite :",
+    "config-sqlite-dir-help": "SQLite stocke toutes les données dans un fichier unique.\n\nLe répertoire que vous inscrivez doit être accessible en écriture par le serveur lors de l'installation.\n\nIl '''ne faut pas''' qu'il soit accessible via le web, c'est pourquoi il n'est pas à l'endroit où vos fichiers PHP sont.\n\nL'installateur écrira un fichier <code>.htaccess</code> en même temps, mais s'il y a échec, quelqu'un peut accéder à votre base de données.\nCela comprend les données des utilisateurs (adresses de courriel, mots de passe hachés) ainsi que des révisions supprimées et d'autres données confidentielles du wiki.\n\nEnvisagez de placer la base de données ailleurs, par exemple dans <code>/var/lib/mediawiki/yourwiki</code>.",
+    "config-oracle-def-ts": "Espace de stockage (''tablespace'') par défaut :",
+    "config-oracle-temp-ts": "Espace de stockage (''tablespace'') temporaire :",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-support-info": "MediaWiki supporte ces systèmes de bases de données :\n\n$1\n\nSi vous ne voyez pas le système de base de données que vous essayez d'utiliser ci-dessous, alors suivez les instructions ci-dessus (voir liens) pour activer le support.",
+    "config-support-mysql": "* $1 est le premier choix pour MediaWiki et est mieux pris en charge ([http://www.php.net/manual/en/mysql.installation.php how to compile PHP with MySQL support])",
+    "config-support-postgres": "* $1 est un système de base de données populaire et ''open source'' qui peut être une alternative à MySQL ([http://www.php.net/manual/en/pgsql.installation.php how to compile PHP with PostgreSQL support]). Il peut contenir quelques bogues mineurs et n'est pas recommandé dans un environnement de production.",
+    "config-support-sqlite": "* $1 est un système de base de données léger qui est bien supporté. ([http://www.php.net/manual/en/pdo.installation.php How to compile PHP with SQLite support], utilise PDO)",
+    "config-support-oracle": "* $1 est un système commercial de gestion de base de données d’entreprise. ([http://www.php.net/manual/en/oci8.installation.php Comment compiler PHP avec le support OCI8])",
+    "config-header-mysql": "Paramètres de MySQL",
+    "config-header-postgres": "Paramètres de PostgreSQL",
+    "config-header-sqlite": "Paramètres de SQLite",
+    "config-header-oracle": "Paramètres d’Oracle",
+    "config-invalid-db-type": "Type de base de données non valide",
+    "config-missing-db-name": "Vous devez saisir une valeur pour « Nom de la base de données »",
+    "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.\nUtilisez 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 »).\nIl 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 ».\nIl ne peut contenir que des lettres latines (a-z, A-Z), des chiffres (0-9), des caractères de soulignement (_) et des tirets (-).",
+    "config-connection-error": "$1.\n\nVérifier le nom d’hôte, le nom d’utilisateur et le mot de passe ci-dessous puis réessayer.",
+    "config-invalid-schema": "Schéma invalide pour MediaWiki « $1 ».\nUtilisez seulement des lettres latines (a-z, A-Z), des chiffres (0-9) et des caractères de soulignement (_).",
+    "config-db-sys-create-oracle": "L'installateur ne reconnaît que les compte SYSDBA lors de la création d'un nouveau compte.",
+    "config-db-sys-user-exists-oracle": "Le compte « $1 » existe déjà. Un SYSDBA peut seulement servir à créer un nouveau compte.",
+    "config-postgres-old": "PostgreSQL $1 ou version ultérieure est requis, vous avez $2.",
+    "config-sqlite-name-help": "Choisir un nom qui identifie votre wiki.\nNe pas utiliser des espaces ou des traits d'union.\nIl sera utilisé pour le fichier de données SQLite.",
+    "config-sqlite-parent-unwritable-group": "Impossible de créer le répertoire de données <nowiki><code>$1</code></nowiki>, parce que le répertoire parent <nowiki><code>$2</code></nowiki> n'est pas accessible en écriture par le serveur Web.\n\nL'utilisateur du serveur web est connu.\nRendre le répertoire <nowiki><code>$3</code></nowiki> accessible en écriture pour continuer.\nSur un système UNIX/Linux, saisir :\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Impossible de créer le répertoire de données <nowiki><code>$1</code></nowiki>, parce que le répertoire parent <nowiki><code>$2</code></nowiki> n'est pas accessible en écriture par le serveur Web.\n\nL'utilisateur du serveur web est inconnu.\nRendre le répertoire <nowiki><code>$3</code></nowiki> globalement accessible en écriture pour continuer.\nSur un système UNIX/Linux, saisir :\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Erreur de création du répertoire de données « $1 ».\nVérifiez l'emplacement et essayez à nouveau.",
+    "config-sqlite-dir-unwritable": "Impossible d'écrire dans le répertoire « $1 ».\nChanger les permissions de sorte que le serveur peut y écrire et essayez à nouveau.",
+    "config-sqlite-connection-error": "$1.\n\nVérifier le répertoire des données et le nom de la base de données ci-dessous et réessayer.",
+    "config-sqlite-readonly": "Le fichier <code>$1</code> n'est pas accessible en écriture.",
+    "config-sqlite-cant-create-db": "Impossible de créer le fichier de base de données <code>$1</code>.",
+    "config-sqlite-fts3-downgrade": "PHP ne vient pas avec FTS3, les tables sont diminuées.",
+    "config-can-upgrade": "Il y a des tables MediaWiki dans cette base de données.\nPour les mettre au niveau de MediaWiki $1, cliquez sur '''Continuer'''.",
+    "config-upgrade-done": "Mise à jour complétée.\n\nVous pouvez maintenant [$1 commencer à utiliser votre wiki].\n\nSi vous souhaitez régénérer votre fichier <code>LocalSettings.php</code>, cliquez sur le bouton ci-dessous.\nCe '''n'est pas recommandé''' sauf si vous rencontrez des problèmes avec votre wiki.",
+    "config-upgrade-done-no-regenerate": "Mise à jour terminée.\n\nVous pouvez maintenant [$1 commencer à utiliser votre wiki].",
+    "config-regenerate": "Regénérer LocalSettings.php →",
+    "config-show-table-status": "Échec de la requête <code>SHOW TABLE STATUS</code> !",
+    "config-unknown-collation": "'''Attention:''' La base de données effectue un classement alphabétique (''collation'') inconnu.",
+    "config-db-web-account": "Compte de la base de données pour l'accès Web",
+    "config-db-web-help": "Sélectionnez le nom d'utilisateur et le mot de passe que le serveur web utilisera pour se connecter au serveur de base de données pendant le fonctionnement habituel du wiki.",
+    "config-db-web-account-same": "Utilisez le même compte que pour l'installation",
+    "config-db-web-create": "Créez le compte s'il n'existe pas déjà",
+    "config-db-web-no-create-privs": "Le compte que vous avez spécifié pour l'installation n'a pas de privilèges suffisants pour créer un compte.\nLe compte que vous spécifiez ici doit déjà exister.",
+    "config-mysql-engine": "Moteur de stockage :",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "''' Avertissement ''': vous avez sélectionné MyISAM comme moteur de stockage pour MySQL, ce qui n'est pas recommandé pour une utilisation avec MediaWiki, parce que:\n * il supporte à peine la simultanéité en raison de verrouillage de table\n * il est plus sujet à la corruption que les autres moteurs\n * le codebase MediaWiki ne gère pas toujours MyISAM comme il se doit\nSi votre installation MySQL supporte InnoDB, il est fortement recommandé que vous le choisissez plutôt. Si votre installation MySQL ne supporte pas les tables InnoDB, il est peut-être temps de faire une mise à niveau.",
+    "config-mysql-only-myisam-dep": "'''Attention :''' MyISAM est le seul moteur de stockage disponible pour MySQL qui ne soit pas recommandé pour une utilsiation avec MédiaWiki, car :\n* il supporte très peu les accès concurrents à cause du verrouillage des tables\n* il est plus sujet à corruption que les autres moteurs\n* le code de base de MédiaWiki ne gère pas toujours MyISAM comme il faudrait\n\nVotre installation MySQL ne supporte pas InnoDB ; il est peut-être temps de la mettre à jour.",
+    "config-mysql-engine-help": "'''InnoDB''' est presque toujours la meilleure option, car il supporte bien l'[http://fr.wikipedia.org/wiki/Ordonnancement_dans_les_syst%C3%A8mes_d%27exploitation ordonnancement].\n\n'''MyISAM''' peut être plus rapide dans les installations monoposte ou en lecture seule. Les bases de données MyISAM ont tendance à se corrompre plus souvent que celles d'InnoDB.",
+    "config-mysql-charset": "Jeu de caractères de la base de données :",
+    "config-mysql-binary": "Binaire",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "En ''mode binaire'', MediaWiki stocke le texte au format UTF-8 dans la base de données. C'est plus efficace que le ''UTF-8 mode'' de MySQL, et vous permet d'utiliser toute la gamme des caractères Unicode.\n\nEn ''mode binaire'', MediaWiki stocke le texte UTF-8 dans des champs binaires de la base de données. C'est plus efficace que le ''mode UTF-8'' de MySQL, et vous permet d'utiliser toute la gamme des caractères Unicode.\nEn ''mode UTF-8'', MySQL connaîtra le jeu de caractères de vos données et pourra présenter et convertir les données de manière appropriée, mais il ne vous laissera pas stocker les caractères au-dessus du [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingue de base] (en anglais).",
+    "config-site-name": "Nom du wiki :",
+    "config-site-name-help": "Il apparaîtra dans la barre de titre du navigateur et en divers autres endroits.",
+    "config-site-name-blank": "Entrez un nom de site.",
+    "config-project-namespace": "Espace de noms du projet :",
+    "config-ns-generic": "Projet",
+    "config-ns-site-name": "Même nom que le wiki : $1",
+    "config-ns-other": "Autre (préciser)",
+    "config-ns-other-default": "MonWiki",
+    "config-project-namespace-help": "Suivant l'exemple de Wikipédia, plusieurs wikis gardent leurs pages de politique séparées de leurs pages de contenu, dans un ''espace de noms'' propre.\nTous les titres de page de cet espace de noms commence par un préfixe défini, que vous pouvez spécifier ici.\nTraditionnellement, ce préfixe est dérivé du nom du wiki, mais il ne peut contenir des caractères de ponctuation tels que « # » ou « : ».",
+    "config-ns-invalid": "L'espace de noms spécifié « <nowiki>$1</nowiki> » n'est pas valide.\nSpécifiez un espace de noms pour le projet.",
+    "config-ns-conflict": "L'espace de noms spécifié « <nowiki>$1</nowiki> » est en conflit avec un espace de noms par défaut de MediaWiki.\nChoisir un autre espace de noms.",
+    "config-admin-box": "Compte administrateur",
+    "config-admin-name": "Votre nom :",
+    "config-admin-password": "Mot de passe :",
+    "config-admin-password-confirm": "Saisir à nouveau le mot de passe :",
+    "config-admin-help": "Entrez votre nom d'utilisateur préféré ici, par exemple « Jean Blogue ».\nC'est le nom que vous utiliserez pour vous connecter au wiki.",
+    "config-admin-name-blank": "Entrez un nom d'administrateur.",
+    "config-admin-name-invalid": "Le nom d'utilisateur spécifié « <nowiki>$1</nowiki> » n'est pas valide.\nIndiquez un nom d'utilisateur différent.",
+    "config-admin-password-blank": "Entrez un mot de passe pour le compte administrateur.",
+    "config-admin-password-same": "Le mot de passe doit être différent du nom d'utilisateur.",
+    "config-admin-password-mismatch": "Les deux mots de passe que vous avez saisis ne correspondent pas.",
+    "config-admin-email": "Adresse de courriel :",
+    "config-admin-email-help": "Entrez une adresse de courriel ici pour vous permettre de recevoir des courriels d'autres utilisateurs du wiki, réinitialiser votre mot de passe, et être informé des modifications apportées aux pages de votre liste de suivi. Vous pouvez laisser ce champ vide.",
+    "config-admin-error-user": "Erreur interne lors de la création d'un administrateur avec le nom « <nowiki>$1</nowiki> ».",
+    "config-admin-error-password": "Erreur interne lors de l'inscription d'un mot de passe pour l'administrateur « <nowiki>$1</nowiki> » : <pre>$2</pre>",
+    "config-admin-error-bademail": "Vous avez entré une adresse de courriel invalide",
+    "config-subscribe": "Abonnez-vous à la [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce liste d'annonce des nouvelles versions] (la page peut afficher le texte en français).",
+    "config-subscribe-help": "Il s'agit d'une liste de diffusion à faible volume utilisée servant à annoncer les nouvelles versions, y compris les versions améliorant la sécurité du logiciel.\nVous devriez y souscrire et mettre à jour votre version de MediaWiki lorsque de nouvelles versions sont publiées.",
+    "config-subscribe-noemail": "Vous avez essayé de vous abonner à la liste de diffusion des communiqués, sans fournir une adresse courriel ! S'il vous plaît, fournir une adresse électronique si vous souhaitez vous abonner à la liste de diffusion.",
+    "config-almost-done": "Vous avez presque fini !\nVous pouvez passer la configuration restante et installer immédiatement le wiki.",
+    "config-optional-continue": "Me poser davantage de questions.",
+    "config-optional-skip": "J’en ai assez, installer simplement le wiki.",
+    "config-profile": "Profil des droits d’utilisateurs :",
+    "config-profile-wiki": "Wiki ouvert",
+    "config-profile-no-anon": "Création de compte requise",
+    "config-profile-fishbowl": "Éditeurs autorisés seulement",
+    "config-profile-private": "Wiki privé",
+    "config-profile-help": "Les wikis fonctionnent mieux lorsque vous laissez le plus de personnes possible le modifier.\nAvec MediaWiki, il est facile de vérifier les modifications récentes et de révoquer tout dommage créé par des utilisateurs débutants ou mal intentionnés.\n\nCependant, de nombreuses autres utilisations ont été trouvées au logiciel et il n’est pas toujours facile de convaincre tout le monde des bénéfices de l’esprit wiki.\nVous avez donc le choix.\n\nLe modèle '''{{int:config-profile-wiki}}''' autorise toute personne à modifier, y compris sans s’identifier.\n'''{{int:config-profile-no-anon}}''' fournit plus de contrôle, par l’identification, mais peut rebuter les contributeurs occasionnels.\n\n'''{{int:config-profile-fishbowl}}''' autorise la modification par les utilisateurs approuvés, mais le public peut toujours lire les pages et leur historique.\n'''{{int:config-profile-private}}''' n’autorise que les utilisateurs approuvés à voir et modifier les pages.\n\nDes configurations de droits d’utilisateurs plus complexes sont disponibles après l'installation, voir la [//www.mediawiki.org/wiki/Manual:User_rights page correspondante du manuel].",
+    "config-license": "Droits d'auteur et licence :",
+    "config-license-none": "Aucune licence en bas de page",
+    "config-license-cc-by-sa": "Creative Commons attribution partage à l'identique",
+    "config-license-cc-by": "Creative Commons Attribution",
+    "config-license-cc-by-nc-sa": "Creative Commons paternité – non commercial – partage à l’identique",
+    "config-license-cc-0": "Creative Commons Zero (domaine public)",
+    "config-license-gfdl": "GNU Free Documentation License 1.3 ou ultérieure",
+    "config-license-pd": "Domaine public",
+    "config-license-cc-choose": "Sélectionner une licence Creative Commons personnalisée",
+    "config-license-help": "Beaucoup de wikis publics mettent l'ensemble des contributions sous [http://freedomdefined.org/Definition/Fr licence libre].\nCela contribue à créer un sentiment d'appartenance dans leur communauté et encourage les contributions sur le long terme.\nCe n'est généralement pas nécessaire pour un wiki privé ou d'entreprise.\n\nSi vous souhaitez utiliser des textes de Wikipédia, et souhaitez que Wikipédia réutilise des textes de votre wiki, vous devriez choisir la [http://creativecommons.org/licenses/by-sa/3.0/deed.fr licence ''Creative Commons Attribution Share Alike''] (CC-by-sa).\n\nWikipédia a déjà été publié selon les termes de la [http://fr.wikipedia.org/wiki/Licence_de_documentation_libre_GNU ''GNU Free Documentation License''] (GFDL).\nC'est une licence valide, mais elle est difficile à comprendre. De plus, elle possède des caractéristiques qui rendent difficiles la réutilisation.",
+    "config-email-settings": "Paramètres de courriel",
+    "config-enable-email": "Activer les courriels sortants",
+    "config-enable-email-help": "Si vous souhaitez utiliser le courriel, vous devez [http://www.php.net/manual/en/mail.configuration.php configurer des paramètres PHP] (texte en anglais).\nSi vous ne voulez pas du service de courriel, vous pouvez le désactiver ici.",
+    "config-email-user": "Activer les courriers électroniques d'utilisateur à utilisateur",
+    "config-email-user-help": "Permet à tous les utilisateurs d'envoyer des courriels à d'autres utilisateurs si cela est activé dans leurs préférences.",
+    "config-email-usertalk": "Activer la notification des pages de discussion des utilisateurs",
+    "config-email-usertalk-help": "Permet aux utilisateurs de recevoir une notification en cas de modification de leurs pages de discussion, si cela est activé dans leurs préférences.",
+    "config-email-watchlist": "Activer la notification de la liste de suivi",
+    "config-email-watchlist-help": "Permet aux utilisateurs de recevoir des notifications à propos des pages qu'ils ont en suivi (si cette préférence est activée).",
+    "config-email-auth": "Activer l'authentification par courriel",
+    "config-email-auth-help": "Si cette option est activée, les utilisateurs doivent confirmer leur adresse de courriel en utilisant l'hyperlien envoyé à chaque fois qu'ils la définissent ou la modifient.\nSeules les adresses authentifiées peuvent recevoir des courriels des autres utilisateurs ou lorsqu'il y a des notifications de modification.\nL'activation de cette option est '''recommandée''' pour les wikis publics en raison d'abus potentiels des fonctionnalités de courriels.",
+    "config-email-sender": "Adresse de courriel de retour :",
+    "config-email-sender-help": "Entrez l'adresse de courriel à utiliser comme adresse de retour des courriels sortant.\nLes courriels rejetés y seront envoyés.\nDe nombreux serveurs de courriels exigent au moins un [http://fr.wikipedia.org/wiki/Nom_de_domaine nom de domaine] valide.",
+    "config-upload-settings": "Téléchargement des images et des fichiers",
+    "config-upload-enable": "Activer le téléchargement des fichiers",
+    "config-upload-help": "Le téléchargement des fichiers expose votre serveur à des risques de sécurité.\nPour plus d'informations, lire la section [//www.mediawiki.org/wiki/Manual:Security ''Security''] du manuel d'installation (en anglais).\n\nPour autoriser le téléchargement des fichiers, modifier le mode du sous-répertoire <code>images</code> qui se situe sous le répertoire racine de MediaWiki.\nEnsuite, activez cette option.",
+    "config-upload-deleted": "Répertoire pour les fichiers supprimés :",
+    "config-upload-deleted-help": "Choisissez un répertoire qui servira à archiver les fichiers supprimés.\nIdéalement, il ne devrait pas être accessible depuis le web.",
+    "config-logo": "URL du logo :",
+    "config-logo-help": "L’habillage par défaut de MediaWiki comprend l’espace pour un logo de 135x160 pixels au-dessus de la barre de menu latérale.\nTéléchargez une image de la taille appropriée, et entrez son URL ici.\n\nVous pouvez utiliser <code>$wgStylePath</code> ou <code>$wgScriptPath</code> si votre logo est relatif à ces chemins.\n\nSi vous ne voulez pas de logo, laissez cette case vide.",
+    "config-instantcommons": "Activer ''InstantCommons''",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons InstantCommons] est un service qui permet d'utiliser les images, les sons et les autres médias disponibles sur le site [//commons.wikimedia.org/ Wikimedia Commons].\nPour se faire, il faut que MediaWiki accède à Internet.\n\nPour plus d'informations sur ce service, y compris les instructions sur la façon de le configurer pour d'autres wikis que Wikimedia Commons, consultez le [//mediawiki.org/wiki/Manual:$wgForeignFileRepos manuel] (en anglais).",
+    "config-cc-error": "Le sélection d'une licence ''Creative Commons'' n'a donné aucun résultat.\nEntrez le nom de la licence manuellement.",
+    "config-cc-again": "Choisissez à nouveau...",
+    "config-cc-not-chosen": "Choisissez une licence ''Creative Commons'' et cliquez sur « Continuer ».",
+    "config-advanced-settings": "Configuration avancée",
+    "config-cache-options": "Paramètres pour la mise en cache des objets:",
+    "config-cache-help": "La mise en cache des objets améliore la vitesse de MediaWiki en mettant en cache les données fréquemment utilisées.\nLes sites de taille moyenne à grande sont fortement encouragés à l'activer. Les petits sites y verront également des avantages.",
+    "config-cache-none": "Aucune mise en cache (aucune fonctionnalité supprimée, mais la vitesse peut changer sur les wikis importants)",
+    "config-cache-accel": "Mise en cache des objets PHP (APC, XCache ou WinCache)",
+    "config-cache-memcached": "Utiliser Memcached (nécessite une installation et une configuration supplémentaires)",
+    "config-memcached-servers": "serveurs pour Memcached :",
+    "config-memcached-help": "Liste des adresses IP à utiliser pour Memcached.\nElles doivent être séparés par des virgules et vous devez spécifier le port à utiliser. Par exemple :\n  127.0.0.1:11211\n  192.168.1.25:1234",
+    "config-memcache-needservers": "Vous avez sélectionné Memcached comme type de cache, mais ne précisez pas de serveur.",
+    "config-memcache-badip": "Vous avez entré une adresse IP invalide pour Memcached: $1.",
+    "config-memcache-noport": "Vous n'avez pas entré un port pour le serveur Memcached : $1.\nSi vous ne le connaissez pas, la valeur par défaut est 11211.",
+    "config-memcache-badport": "Les numéros de port de Memcached sont situés entre $1 et $2.",
+    "config-extensions": "Extensions",
+    "config-extensions-help": "Les extensions énumérées ci-dessus ont été détectées dans votre répertoire <code>./extensions</code>.\n\nElles peuvent nécessiter une configuration supplémentaire, mais vous pouvez les activer maintenant",
+    "config-install-alreadydone": "'''Attention''': Vous semblez avoir déjà installé MediaWiki et tentez de l'installer à nouveau.\nS'il vous plaît, allez à la page suivante.",
+    "config-install-begin": "En appuyant sur {{int:config-continue}}, vous commencerez l'installation de MediaWiki.\nSi vous voulez apporter des modifications, appuyez sur \"{{int:config-back}}\".",
+    "config-install-step-done": "fait",
+    "config-install-step-failed": "échec",
+    "config-install-extensions": "Inclusion des extensions",
+    "config-install-database": "Création de la base de données",
+    "config-install-schema": "Création de schéma",
+    "config-install-pg-schema-not-exist": "Le schéma PostgreSQL n'existe pas",
+    "config-install-pg-schema-failed": "Échec lors de la création des tables.\nAssurez-vous que l'utilisateur « $1 » peut écrire selon le schéma « $2 ».",
+    "config-install-pg-commit": "Validation des modifications",
+    "config-install-pg-plpgsql": "Vérification du langage PL/pgSQL",
+    "config-pg-no-plpgsql": "Vous devez installer le langage PL/pgSQL dans la base de données $1",
+    "config-pg-no-create-privs": "Le compte que vous avez spécifié pour l'installation n'a pas suffisamment de privilèges pour créer un compte.",
+    "config-pg-not-in-role": "Le compte que vous avez spécifié pour l'utilisateur web existe déjà !\nLe compte que vous avez spécifié pour l'installation n'est pas un super-utilisateur et n'est pas membre du rôle de l'internaute, il est donc incapable de créer des objets appartenant à l'utilisateur web.!\n\nMediaWiki exige actuellement que les tableaux soient possédés par un utilisateur web. S'il vous plaît, spécifier un autre nom de compte web, ou cliquez sur \"retour\" et spécifier un utilisateur avec les privilèges suffisants.",
+    "config-install-user": "Création d'un utilisateur de la base de données",
+    "config-install-user-alreadyexists": "L'utilisateur « $1 » existe déjà.",
+    "config-install-user-create-failed": "Échec lors de la création de l'utilisateur « $1 » : $2",
+    "config-install-user-grant-failed": "Échec lors de l'ajout de permissions à l'utilisateur « $1 » : $2",
+    "config-install-user-missing": "L'utilisateur \"$1\" n'existe pas.",
+    "config-install-user-missing-create": "L'utilisateur \"$1\" n'existe pas !\nS'il vous plaît, cocher \"Compte de créer\" dans la case ci-dessous si vous voulez le créer.",
+    "config-install-tables": "Création des tables",
+    "config-install-tables-exist": "'''Avertissement:''' Les tables MediaWiki semblent déjà exister.\nCréation omise.",
+    "config-install-tables-failed": "'''Erreur:''' échec lors de la création de la table avec l'erreur suivante: $1",
+    "config-install-interwiki": "Remplissage par défaut de la table des interwikis",
+    "config-install-interwiki-list": "Impossible de trouver le fichier <code>interwiki.list</code>.",
+    "config-install-interwiki-exists": "'''Attention:''' La table des interwikis semble déjà contenir des entrées.\nLa liste par défaut ne sera pas inscrite.",
+    "config-install-stats": "Initialisation des statistiques",
+    "config-install-keys": "Génération de la clé secrète",
+    "config-insecure-keys": "'''Avertissement''' : {{PLURAL:$2|Une clé de sécurité générée ($1) pendant l'installation n'est pas complètement sécuritaire. Envisagez de la modifier manuellement.|Des clés de sécurité générées ($1) pendant l'installation ne sont pas complètement sécuritaires. Envisagez de les modifier manuellement.}}",
+    "config-install-sysop": "Création du compte administrateur",
+    "config-install-subscribe-fail": "Impossible de s'abonner à mediawiki-announce : $1",
+    "config-install-subscribe-notpossible": "cURL n’est pas installé et allow_url_fopen n’est pas disponible.",
+    "config-install-mainpage": "Création de la page principale avec un contenu par défaut",
+    "config-install-extension-tables": "Création de tables pour les extensions activées",
+    "config-install-mainpage-failed": "Impossible d’insérer la page principale: $1",
+    "config-install-done": "'''Félicitations!'''\nVous avez réussi à installer MediaWiki.\n\nLe programme d'installation a généré <code>LocalSettings.php</code>, un fichier qui contient tous les paramètres de configuration.\n\nSi le téléchargement n'a pas été offert, ou que vous l'avez annulé, vous pouvez démarrer à nouveau le téléchargement en cliquant ce lien :\n\n$3\n\n'''Note''': Si vous ne le faites pas maintenant, ce fichier de configuration généré ne sera pas disponible plus tard si vous quittez l'installation sans le télécharger.\n\nLorsque c'est fait, vous pouvez '''[$2 accéder à votre wiki]'''.",
+    "config-download-localsettings": "Télécharger <code>LocalSettings.php</code>",
+    "config-help": "aide",
+    "config-nofile": "Le fichier « $1 » est introuvable. A-t-il été supprimé ?",
+    "config-extension-link": "Saviez-vous que votre wiki supporte [//www.mediawiki.org/wiki/Manual:Extensions des extensions] ?\n\nVous pouvez consulter les [//www.mediawiki.org/wiki/Category:Extensions_by_category extensions par catégorie] ou la [//www.mediawiki.org/wiki/Extension_Matrix Matrice des extensions] pourvoir la liste complète des extensions.",
+    "mainpagetext": "'''MediaWiki a été installé avec succès.'''",
+    "mainpagedocfooter": "Consultez le [//meta.wikimedia.org/wiki/Aide:Contenu Guide de l’utilisateur] pour plus d’informations sur l’utilisation de ce logiciel de wiki.\n\n== Pour démarrer ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Liste des paramètres de configuration]\n* [//www.mediawiki.org/wiki/Manual:FAQ/fr FAQ sur MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Liste de discussion sur les distributions de MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Adaptez MediaWiki dans votre langue]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/frc.json b/includes/installer/i18n/frc.json
new file mode 100644 (file)
index 0000000..c80bb4b
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Vous avez bien installé MediaWiki.'''",
+    "mainpagedocfooter": "Lisez la [//meta.wikimedia.org/wiki/Help:Contents Guide des Useurs] pour apprendre à user le wiki software.\n\n== Pour Commencer ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Réglage]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki: Questions Souvent Posées]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki Liste à Malle]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/frp.json b/includes/installer/i18n/frp.json
new file mode 100644 (file)
index 0000000..48b014e
--- /dev/null
@@ -0,0 +1,153 @@
+{
+    "@metadata": {
+        "authors": [
+            "ChrisPtDe"
+        ]
+    },
+    "config-desc": "La programeria d’enstalacion de MediaWiki",
+    "config-title": "Enstalacion de MediaWiki $1",
+    "config-information": "Enformacions",
+    "config-localsettings-key": "Cllâf de misa a jorn :",
+    "config-session-error": "Èrror pendent l’emmodâ de la sèance : $1",
+    "config-your-language": "Voutra lengoua :",
+    "config-wiki-language": "Lengoua du vouiqui :",
+    "config-back": "← Retôrn",
+    "config-continue": "Continuar →",
+    "config-page-language": "Lengoua",
+    "config-page-welcome": "Benvegnua dessus MediaWiki !",
+    "config-page-dbconnect": "Sè branchiér a la bâsa de balyês",
+    "config-page-upgrade": "Betar a jorn l’enstalacion ègzistenta",
+    "config-page-dbsettings": "Paramètres de la bâsa de balyês",
+    "config-page-name": "Nom",
+    "config-page-options": "Chouèx",
+    "config-page-install": "Enstalar",
+    "config-page-complete": "Chavonâ !",
+    "config-page-restart": "Tornar emmodar l’enstalacion",
+    "config-page-readme": "Liéséd-mè",
+    "config-page-releasenotes": "Notes de publecacion",
+    "config-page-copying": "Copia",
+    "config-page-upgradedoc": "Misa a jorn",
+    "config-page-existingwiki": "Vouiqui ègzistent",
+    "config-env-php": "PHP $1 est enstalâ.",
+    "config-env-php-toolow": "PHP $1 est enstalâ.\nPortant, MediaWiki at fôta de PHP $2 ou ben ples hôt.",
+    "config-memory-raised": "Lo paramètre <code>memory_limit</code> de PHP ére a $1, portâ a $2.",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] est enstalâ",
+    "config-apc": "[http://www.php.net/apc APC] est enstalâ",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] est enstalâ",
+    "config-diff3-bad": "GNU diff3 entrovâblo.",
+    "config-db-type": "Tipo de bâsa de balyês :",
+    "config-db-host": "Hôto de la bâsa de balyês :",
+    "config-db-host-oracle": "TNS de la bâsa de balyês :",
+    "config-db-wiki-settings": "Identifiar cél vouiqui",
+    "config-db-name": "Nom de la bâsa de balyês :",
+    "config-db-name-oracle": "Plan de bâsa de balyês :",
+    "config-db-install-account": "Compto usanciér por l’enstalacion",
+    "config-db-username": "Nom d’usanciér de la bâsa de balyês :",
+    "config-db-password": "Contresegno de la bâsa de balyês :",
+    "config-db-wiki-account": "Compto usanciér por l’opèracion normala",
+    "config-db-prefix": "Prèfixo de les trâbles de la bâsa de balyês :",
+    "config-db-charset": "Juè de caractèros de la bâsa de balyês",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binèro",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 rètrocompatiblo UTF-8",
+    "config-mysql-old": "MySQL $1 ou ben ples novél est nècèssèro, vos avéd $2.",
+    "config-db-port": "Pôrt de la bâsa de balyês :",
+    "config-db-schema": "Plan por MediaWiki",
+    "config-pg-test-error": "Empossiblo de sè branchiér a la bâsa de donâs '''$1''' : $2",
+    "config-sqlite-dir": "Dossiér de les balyês SQLite :",
+    "config-oracle-def-ts": "Èspâço de stocâjo (''tablespace'') per dèfôt :",
+    "config-oracle-temp-ts": "Èspâço de stocâjo (''tablespace'') temporèro :",
+    "config-header-mysql": "Paramètres de MySQL",
+    "config-header-postgres": "Paramètres de PostgreSQL",
+    "config-header-sqlite": "Paramètres de SQLite",
+    "config-header-oracle": "Paramètres d’Oracle",
+    "config-invalid-db-type": "Tipo de bâsa de balyês envalido",
+    "config-missing-db-name": "Vos dête buchiér una valor por « Nom de la bâsa de balyês »",
+    "config-missing-db-host": "Vos dête buchiér una valor por « Hôto de la bâsa de balyês »",
+    "config-missing-db-server-oracle": "Vos dête buchiér una valor por « TNS de la bâsa de balyês »",
+    "config-sqlite-readonly": "Lo fichiér <code>$1</code> est pas accèssiblo en ècritura.",
+    "config-regenerate": "Refâre LocalSettings.php →",
+    "config-show-table-status": "Falyita de la requéta <code>SHOW TABLE STATUS</code> !",
+    "config-db-web-account": "Compto de la bâsa de balyês por l’accès vouèbe",
+    "config-db-web-account-same": "Utilisâd lo mémo compto que por l’enstalacion",
+    "config-db-web-create": "Féte lo compto s’ègziste p’oncor",
+    "config-mysql-engine": "Motor de stocâjo :",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-charset": "Juè de caractèros de la bâsa de balyês :",
+    "config-mysql-binary": "Binèro",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "Nom du vouiqui :",
+    "config-site-name-blank": "Buchiéd un nom de seto.",
+    "config-project-namespace": "Èspâço de noms du projèt :",
+    "config-ns-generic": "Projèt",
+    "config-ns-site-name": "Mémo nom que lo vouiqui : $1",
+    "config-ns-other": "Ôtro (spècefiar)",
+    "config-ns-other-default": "MonVouiqui",
+    "config-admin-box": "Compto administrator",
+    "config-admin-name": "Voutron nom :",
+    "config-admin-password": "Contresegno :",
+    "config-admin-password-confirm": "Tornar buchiér lo contresegno :",
+    "config-admin-name-blank": "Buchiéd un nom d’administrator.",
+    "config-admin-password-blank": "Buchiéd un contresegno por lo compto administrator.",
+    "config-admin-email": "Adrèce èlèctronica :",
+    "config-optional-continue": "Mè posar més de quèstions.",
+    "config-profile": "Profil des drêts d’usanciér :",
+    "config-profile-wiki": "Vouiqui tradicionâl",
+    "config-profile-no-anon": "Crèacion de compto nècèssèra",
+    "config-profile-fishbowl": "Solament los èditors ôtorisâs",
+    "config-profile-private": "Vouiqui privâ",
+    "config-license": "Drêts d’ôtor et licence :",
+    "config-license-none": "Gins de licence d’avâl la pâge",
+    "config-license-cc-by-sa": "Creative Commons patèrnitât - partâjo a l’identico",
+    "config-license-cc-by": "Creative Commons patèrnitât",
+    "config-license-cc-by-nc-sa": "Creative Commons patèrnitât pas comèrciâla - partâjo a l’identico",
+    "config-license-cc-0": "Creative Commons Zero (domêno publico)",
+    "config-license-gfdl": "Licence de documentacion libra GNU 1.3 ou ben ples novèla",
+    "config-license-pd": "Domêno publico",
+    "config-license-cc-choose": "Chouèsir una licence Creative Commons pèrsonalisâ",
+    "config-email-settings": "Paramètres de mèssageria èlèctronica",
+    "config-enable-email": "Activar los mèssâjos que sôrtont",
+    "config-email-user": "Activar los mèssâjos d’usanciér a usanciér",
+    "config-email-usertalk": "Activar la notificacion de les pâges de discussion ux usanciérs",
+    "config-email-watchlist": "Activar la notificacion de la lista de survelyence",
+    "config-email-auth": "Activar l’ôtenticacion per mèssageria èlèctronica",
+    "config-email-sender": "Adrèce èlèctronica de retôrn :",
+    "config-upload-settings": "Tèlèchargement de les émâges et des fichiérs",
+    "config-upload-enable": "Activar lo tèlèchargement des fichiérs",
+    "config-upload-deleted": "Dossiér por los fichiérs suprimâs :",
+    "config-logo": "URL du logô :",
+    "config-instantcommons": "Activar Instant Commons",
+    "config-cc-again": "Tornâd chouèsir...",
+    "config-advanced-settings": "Configuracion avanciê",
+    "config-cache-options": "Paramètres por la misa en cache de les chouses :",
+    "config-cache-accel": "Misa en cache de les chouses PHP (APC, XCache ou ben WinCache)",
+    "config-memcached-servers": "Sèrvors por memcached :",
+    "config-extensions": "Èxtensions",
+    "config-install-step-done": "fêt",
+    "config-install-step-failed": "falyita",
+    "config-install-extensions": "Encllusion de les èxtensions",
+    "config-install-database": "Crèacion de la bâsa de balyês",
+    "config-install-schema": "Crèacion de plan",
+    "config-install-pg-schema-not-exist": "Lo plan PostgreSQL ègziste pas",
+    "config-install-pg-commit": "Validacion des changements",
+    "config-install-pg-plpgsql": "Contrôlo du lengâjo PL/pgSQL",
+    "config-install-user": "Crèacion d’un usanciér de la bâsa de balyês",
+    "config-install-user-alreadyexists": "L’usanciér « $1 » ègziste ja",
+    "config-install-user-create-failed": "Falyita pendent la crèacion de l’usanciér « $1 » : $2",
+    "config-install-user-grant-failed": "Falyita pendent l’aponsa de pèrmissions a l’usanciér « $1 » : $2",
+    "config-install-tables": "Crèacion de les trâbles",
+    "config-install-interwiki": "Remplissâjo per dèfôt de la trâbla des entèrvouiquis",
+    "config-install-interwiki-list": "Empossiblo de trovar lo fichiér <code>interwiki.list</code>.",
+    "config-install-stats": "Inicialisacion de les statistiques",
+    "config-install-keys": "G·ènèracion de les cllâfs secrètes",
+    "config-install-sysop": "Crèacion du compto administrator",
+    "config-install-subscribe-fail": "Empossiblo de s’abonar a mediawiki-announce : $1",
+    "config-install-mainpage": "Crèacion de la pâge principâla avouéc un contegnu per dèfôt",
+    "config-install-extension-tables": "Crèacion de trâbles por les èxtensions activâs",
+    "config-install-mainpage-failed": "Empossiblo d’entrebetar la pâge principâla : $1",
+    "config-download-localsettings": "Tèlèchargiér <code>LocalSettings.php</code>",
+    "config-help": "éde",
+    "mainpagetext": "'''MediaWiki at étâ enstalâ avouéc reusséta.'''",
+    "mainpagedocfooter": "Vêde lo [//meta.wikimedia.org/wiki/Aide:Contenu guido d’usanciér] por més d’enformacions sur l’usâjo de la programeria vouiqui.\n\n== Emmodar avouéc MediaWiki ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista des paramètres de configuracion]\n* [//www.mediawiki.org/wiki/Manual:FAQ/fr FDQ sur MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussion sur les distribucions de MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/frr.json b/includes/installer/i18n/frr.json
new file mode 100644 (file)
index 0000000..88ccbcd
--- /dev/null
@@ -0,0 +1,10 @@
+{
+    "@metadata": {
+        "authors": [
+            "Murma174",
+            "Pyt"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki wörd ma erfolch instaliird.'''",
+    "mainpagedocfooter": "Consult the [//meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.\n\n== Getting started ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Localise MediaWiki for your language]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/fur.json b/includes/installer/i18n/fur.json
new file mode 100644 (file)
index 0000000..79cd43c
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki e je stade instalade cun sucès.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/fy.json b/includes/installer/i18n/fy.json
new file mode 100644 (file)
index 0000000..34734c1
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki-program goed ynstallearre.'''",
+    "mainpagedocfooter": "Rieplachtsje de [//meta.wikimedia.org/wiki/Help:Ynhâldsopjefte hantlieding] foar ynformaasje oer it gebrûk fan 'e wikisoftware.\n\n== Mear help oer Mediawiki ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings List mei ynstellings]\n* [//www.mediawiki.org/wiki/Manual:FAQ Faak stelde fragen (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglist foar oankundigings fan nije ferzjes]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ga.json b/includes/installer/i18n/ga.json
new file mode 100644 (file)
index 0000000..51f931a
--- /dev/null
@@ -0,0 +1,13 @@
+{
+    "@metadata": {
+        "authors": [
+            "පසිඳු කාවින්ද"
+        ]
+    },
+    "config-page-language": "Teanga",
+    "config-page-name": "Ainm",
+    "config-admin-password": "D'fhocal faire:",
+    "config-help": "Cuidiú",
+    "mainpagetext": "'''D'éirigh le suiteáil MediaWiki.'''",
+    "mainpagedocfooter": "Féach ar [//meta.wikimedia.org/wiki/MediaWiki_localisation doiciméid um conas an chomhéadán a athrú]\nagus an [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Lámhleabhar úsáideora] chun cabhair úsáide agus fíoraíochta a fháil."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/gag.json b/includes/installer/i18n/gag.json
new file mode 100644 (file)
index 0000000..9967905
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki başarılan kuruldu.'''",
+    "mainpagedocfooter": "Vikilän iş uurunda bilgi almaa için [//meta.wikimedia.org/wiki/Help:Contents User's Guide] sayfasına bakınız\n\n== Eni başlayanlar için ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/gan-hans.json b/includes/installer/i18n/gan-hans.json
new file mode 100644 (file)
index 0000000..25e89ea
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''安装正MediaWiki喽。'''",
+    "mainpagedocfooter": "参看[//meta.wikimedia.org/wiki/Help:Contents 用户指南]里头会话到啷用wiki软件\n\n== 开始使用 ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置设定列表]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki 平常问题解答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 发布email清单]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/gan-hant.json b/includes/installer/i18n/gan-hant.json
new file mode 100644 (file)
index 0000000..2924deb
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Symane"
+        ]
+    },
+    "mainpagetext": "'''安裝正MediaWiki哩。'''",
+    "mainpagedocfooter": "參看[//meta.wikimedia.org/wiki/Help:Contents 用戶指南]裡頭會話到啷用wiki軟件\n\n== 開始使用 ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置設定列表]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki 平常問題解答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈email清單]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/gd.json b/includes/installer/i18n/gd.json
new file mode 100644 (file)
index 0000000..0fbe2fe
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Akerbeltz"
+        ]
+    },
+    "mainpagetext": "'''Chaidh MediaWiki a stàladh gu soirbheachail.'''",
+    "mainpagedocfooter": "Cuir sùil air [//meta.wikimedia.org/wiki/Help:Contents treòir nan cleachdaichean] airson fiosrachadh mu chleachdadh a' bhathar-bhog wiki.\n\n== Toiseach tòiseachaidh ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Liosta suidheachadh nan roghainnean]\n* [//www.mediawiki.org/wiki/Manual:FAQ CÀBHA MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Liosta puist nan sgaoilidhean MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Cuir do chànan air MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/gl.json b/includes/installer/i18n/gl.json
new file mode 100644 (file)
index 0000000..fe51f70
--- /dev/null
@@ -0,0 +1,312 @@
+{
+    "@metadata": {
+        "authors": [
+            "Elisardojm",
+            "Toliño",
+            "아라"
+        ]
+    },
+    "config-desc": "O programa de instalación de MediaWiki",
+    "config-title": "Instalación de MediaWiki $1",
+    "config-information": "Información",
+    "config-localsettings-upgrade": "Detectouse un ficheiro <code>LocalSettings.php</code>.\nPara actualizar esta instalación, introduza o valor de <code>$wgUpgradeKey</code> na caixa.\nPode atopalo en <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Detectouse un ficheiro <code>LocalSettings.php</code>.\nPara actualizar esta instalación, execute <code>update.php</code>",
+    "config-localsettings-key": "Clave de actualización:",
+    "config-localsettings-badkey": "A clave dada é incorrecta",
+    "config-upgrade-key-missing": "Detectouse unha instalación existente de MediaWiki.\nPara actualizar esta instalación, inclúa esta liña ao final do ficheiro <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "Semella que o ficheiro <code>LocalSettings.php</code> existente está incompleto.\nA variable $1 non está establecida.\nModifique o ficheiro <code>LocalSettings.php</code> de xeito que a variable quede establecida e prema en \"{{int:Config-continue}}\".",
+    "config-localsettings-connection-error": "Atopouse un erro ao conectar coa base de datos empregando a configuración especificada no ficheiro <code>LocalSettings.php</code> ou no ficheiro <code>AdminSettings.php</code>. Corrixa esta configuración e inténteo de novo.\n\n$1",
+    "config-session-error": "Erro ao iniciar a sesión: $1",
+    "config-session-expired": "Semella que os seus datos da sesión caducaron.\nAs sesións están configuradas para unha duración de $1.\nPode incrementar isto fixando <code>session.gc_maxlifetime</code> en php.ini.\nReinicie o proceso de instalación.",
+    "config-no-session": "Perdéronse os datos da súa sesión!\nComprobe o seu php.ini e asegúrese de que en <code>session.save_path</code> está definido un directorio correcto.",
+    "config-your-language": "A súa lingua:",
+    "config-your-language-help": "Seleccione a lingua que se empregará durante o proceso de instalación.",
+    "config-wiki-language": "Lingua do wiki:",
+    "config-wiki-language-help": "Seleccione a lingua que predominará no wiki.",
+    "config-back": "← Volver",
+    "config-continue": "Continuar →",
+    "config-page-language": "Lingua",
+    "config-page-welcome": "Benvido a MediaWiki!",
+    "config-page-dbconnect": "Conectarse á base de datos",
+    "config-page-upgrade": "Actualizar a instalación actual",
+    "config-page-dbsettings": "Configuración da base de datos",
+    "config-page-name": "Nome",
+    "config-page-options": "Opcións",
+    "config-page-install": "Instalar",
+    "config-page-complete": "Completo!",
+    "config-page-restart": "Reiniciar a instalación",
+    "config-page-readme": "Léame",
+    "config-page-releasenotes": "Notas de lanzamento",
+    "config-page-copying": "Copiar",
+    "config-page-upgradedoc": "Actualizar",
+    "config-page-existingwiki": "Wiki existente",
+    "config-help-restart": "Quere eliminar todos os datos gardados e reiniciar o proceso de instalación?",
+    "config-restart": "Si, reiniciala",
+    "config-welcome": "=== Comprobación da contorna ===\nCómpre realizar agora unhas comprobacións básicas para ver se a contorna é axeitada para a instalación de MediaWiki.\nLembre incluír esta información se necesita axuda para completar a instalación.",
+    "config-copyright": "=== Dereitos de autor e termos de uso ===\n\n$1\n\nEste programa é software libre; pode redistribuílo e/ou modificalo segundo os termos da licenza pública xeral GNU publicada pola Free Software Foundation; versión 2 ou (na súa escolla) calquera outra posterior.\n\nEste programa distribúese coa esperanza de que poida ser útil, pero '''sen garantía ningunha'''; nin sequera a garantía implícita de '''comercialización''' ou '''adecuación a unha finalidade específica'''.\nOlle a licenza pública xeral GNU para obter máis detalles.\n\nDebería recibir <doclink href=Copying>unha copia da licenza pública xeral GNU</doclink> xunto ao programa; se non é así, escriba á Free Software Foundation, Inc., rúa Franklin, número 51, quinto andar, Boston, Massachusetts, 02110-1301, Estados Unidos de América ou [http://www.gnu.org/copyleft/gpl.html lea a licenza en liña].",
+    "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki/gl Páxina principal de MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents Guía de usuario]\n* [//www.mediawiki.org/wiki/Manual:Contents Guía de administrador]\n* [//www.mediawiki.org/wiki/Manual:FAQ Preguntas máis frecuentes]\n----\n* <doclink href=Readme>Léame</doclink>\n* <doclink href=ReleaseNotes>Notas de lanzamento</doclink>\n* <doclink href=Copying>Copia</doclink>\n* <doclink href=UpgradeDoc>Actualizacións</doclink>",
+    "config-env-good": "Rematou a comprobación da contorna.\nPode instalar MediaWiki.",
+    "config-env-bad": "Rematou a comprobación da contorna.\nNon pode instalar MediaWiki.",
+    "config-env-php": "Está instalado o PHP $1.",
+    "config-env-php-toolow": "Está instalado o PHP $1.\nPorén, MediaWiki necesita o PHP $2 ou superior.",
+    "config-unicode-using-utf8": "Usando utf8_normalize.so de Brion Vibber para a normalización Unicode.",
+    "config-unicode-using-intl": "Usando a [http://pecl.php.net/intl extensión intl PECL] para a normalización Unicode.",
+    "config-unicode-pure-php-warning": "'''Atención:''' A [http://pecl.php.net/intl extensión intl PECL] non está dispoñible para manexar a normalización Unicode; volvendo á implementación lenta de PHP puro.\nSe o seu sitio posúe un alto tráfico de visitantes, debería ler un chisco sobre a [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalización Unicode].",
+    "config-unicode-update-warning": "'''Atención:''' A versión instalada da envoltura de normalización Unicode emprega unha versión vella da biblioteca [http://site.icu-project.org/ do proxecto ICU].\nDebería [//www.mediawiki.org/wiki/Unicode_normalization_considerations actualizar] se o uso de Unicode é importante para vostede.",
+    "config-no-db": "Non se puido atopar un controlador axeitado para a base de datos! Necesita instalar un controlador de base de datos para PHP.\nOs tipos de base de datos admitidos son os seguintes: $1.\n\nSe está nun aloxamento compartido, pregunte ao seu provedor de hospedaxe para instalar un controlador de base de datos axeitado.\nSe compilou o PHP vostede mesmo, reconfigúreo activando un cliente de base de datos, por exemplo, usando <code>./configure --with-mysql</code>.\nSe instalou o PHP desde un paquete Debian ou Ubuntu, entón tamén necesita instalar o módulo php5-mysql.",
+    "config-outdated-sqlite": "'''Atención:''' Ten o SQLite $1, que é inferior á versión mínima necesaria: $2. O SQLite non estará dispoñible.",
+    "config-no-fts3": "'''Atención:''' O SQLite está compilado sen o [//sqlite.org/fts3.html módulo FTS3]; as características de procura non estarán dispoñibles nesta instalación.",
+    "config-register-globals": "'''Atención: A opción PHP <code>[http://php.net/register_globals register_globals]</code> está activada.'''\n'''Desactívea se pode.'''\nMediaWiki funcionará, pero o seu servidor está exposto a potenciais vulnerabilidades de seguridade.",
+    "config-magic-quotes-runtime": "'''Erro fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] está activado!'''\nEsta opción corrompe os datos de entrada de xeito imprevisible.\nNon pode instalar ou empregar MediaWiki a menos que esta opción estea desactivada.",
+    "config-magic-quotes-sybase": "'''Erro fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] está activado!'''\nEsta opción corrompe os datos de entrada de xeito imprevisible.\nNon pode instalar ou empregar MediaWiki a menos que esta opción estea desactivada.",
+    "config-mbstring": "'''Erro fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] está activado!'''\nEsta opción causa erros e pode corromper os datos de xeito imprevisible.\nNon pode instalar ou empregar MediaWiki a menos que esta opción estea desactivada.",
+    "config-ze1": "'''Erro fatal: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] está activado!'''\nEsta opción causa erros horribles en MediaWiki.\nNon pode instalar ou empregar MediaWiki a menos que esta opción estea desactivada.",
+    "config-safe-mode": "'''Atención:''' O [http://www.php.net/features.safe-mode safe mode] do PHP está activado.\nIsto pode causar problemas, particularmente se emprega cargas de ficheiros e soporte de <code>math</code>.",
+    "config-xml-bad": "Falta o módulo XML do PHP.\nMediaWiki necesita funcións neste módulo e non funcionará con esta configuración.\nSe está executando o Mandrake, instale o paquete php-xml.",
+    "config-pcre": "Semella que falta o módulo de soporte PCRE.\nMediaWiki necesita que funcionen as expresións regulares compatibles co Perl.",
+    "config-pcre-no-utf8": "'''Erro fatal:''' Semella que o módulo PCRE do PHP foi compilado sen o soporte PCRE_UTF8.\nMediaWiki necesita soporte UTF-8 para funcionar correctamente.",
+    "config-memory-raised": "O parámetro <code>memory_limit</code> do PHP é $1. Aumentado a $2.",
+    "config-memory-bad": "'''Atención:''' O parámetro <code>memory_limit</code> do PHP é $1.\nProbablemente é un valor baixo de máis.\nA instalación pode fallar!",
+    "config-ctype": "'''Erro fatal:''' O PHP debe compilarse co soporte para a [http://www.php.net/manual/en/ctype.installation.php extensión Ctype].",
+    "config-json": "'''Erro fatal:''' O PHP compilouse sen o soporte de JSON.\nDebe instalar ben a extensión JSON do PHP ou a extensión [http://pecl.php.net/package/jsonc PECL jsonc] antes de instalar MediaWiki.\n* A extensión do PHP está incluída en Red Hat Enterprise Linux (CentOS) 5 e 6, mais debe activarse <code>/etc/php.ini</code> ou <code>/etc/php.d/json.ini</code>.\n* Algunhas distribucións do Linux lanzadas despois de maio de 2013 omiten a extensión do PHP, pero inclúen a extensión PECL como <code>php5-json</code> ou <code>php-pecl-jsonc</code>.",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] está instalado",
+    "config-apc": "[http://www.php.net/apc APC] está instalado",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] está instalado",
+    "config-no-cache": "'''Atención:''' Non se puido atopar [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] ou [http://www.iis.net/download/WinCacheForPhp WinCache].\nA caché de obxectos está desactivada.",
+    "config-mod-security": "'''Atención:''' O seu servidor web ten o [http://modsecurity.org/ mod_security] activado. Se estivese mal configurado, pode causar problemas a MediaWiki ou calquera outro software que permita aos usuarios publicar contidos arbitrarios.\nOlle a [http://modsecurity.org/documentation/ documentación do mod_security] ou póñase en contacto co soporte do seu servidor se atopa erros aleatorios.",
+    "config-diff3-bad": "GNU diff3 non se atopou.",
+    "config-git": "Atopouse o software de control da versión de Git: <code>$1</code>.",
+    "config-git-bad": "Non se atopou o software de control da versión de Git.",
+    "config-imagemagick": "ImageMagick atopado: <code>$1</code>.\nAs miniaturas de imaxes estarán dispoñibles se activa as cargas.",
+    "config-gd": "Atopouse a biblioteca gráfica GD integrada.\nAs miniaturas de imaxes estarán dispoñibles se activa as cargas.",
+    "config-no-scaling": "Non se puido atopar a biblioteca GD ou ImageMagick.\nAs miniaturas de imaxes estarán desactivadas.",
+    "config-no-uri": "'''Erro:''' Non se puido determinar o URI actual.\nInstalación abortada.",
+    "config-no-cli-uri": "'''Aviso:''' Non se especificou ningún --scriptpath; por defecto, usarase: <code>$1</code>.",
+    "config-using-server": "Usando o nome do servidor \"<nowiki>$1</nowiki>\".",
+    "config-using-uri": "Usando o URL do servidor \"<nowiki>$1$2</nowiki>\".",
+    "config-uploads-not-safe": "'''Atención:''' O seu directorio por defecto para as cargas, <code>$1</code>, é vulnerable a execucións arbitrarias de escrituras.\nAínda que MediaWiki comproba todos os ficheiros cargados por se houbese ameazas de seguridade, é amplamente recomendable [//www.mediawiki.org/wiki/Manual:Security#Upload_security pechar esta vulnerabilidade de seguridade] antes de activar as cargas.",
+    "config-no-cli-uploads-check": "'''Atención:''' Durante a instalación CLI, o seu directorio por defecto para as cargas, <code>$1</code>, non se comproba fronte a posibles vulnerabilidades de execucións arbitrarias de escrituras.",
+    "config-brokenlibxml": "O seu sistema ten unha combinación de versións de PHP e libxml2 que pode ser problemático e causar corrupción de datos en MediaWiki e outras aplicacións web.\nActualice o sistema á versión 5.2.9 ou posterior do PHP e á 2.7.3 ou posterior de libxml2 ([//bugs.php.net/bug.php?id=45996 erro presentado co PHP]).\nInstalación abortada.",
+    "config-using531": "O PHP $1 non é compatible con MediaWiki debido a un erro que afecta aos parámetros de referencia de <code>__call()</code>.\nActualice o sistema á versión 5.3.2 ou posterior do PHP ou volva á versión 5.3.0 do PHP para arranxar o problema.\nInstalación abortada.",
+    "config-suhosin-max-value-length": "Suhosin está instalado e limita o parámetro GET <code>length</code> a $1 bytes.\nO compoñente ResourceLoader (xestor de recursos) de MediaWiki traballa neste límite, pero este prexudica o rendemento.\nSe é posible, debería establecer <code>suhosin.get.max_value_length</code> no valor 1024 ou superior en <code>php.ini</code> e establecer <code>$wgResourceLoaderMaxQueryLength</code> no mesmo valor en <code>LocalSettings.php</code>.",
+    "config-db-type": "Tipo de base de datos:",
+    "config-db-host": "Servidor da base de datos:",
+    "config-db-host-help": "Se o servidor da súa base de datos está nun servidor diferente, escriba o nome do servidor ou o enderezo IP aquí.\n\nSe está usando un aloxamento web compartido, o seu provedor de hospedaxe debe darlle o nome de servidor correcto na súa documentación.\n\nSe está a realizar a instalación nun servidor de Windows con MySQL, o nome \"localhost\" pode non valer como servidor. Se non funcionase, inténteo con \"127.0.0.1\" como enderezo IP local.\n\nSe está usando PostgreSQL, deixe este campo en branco para facer a conexión a través do conectador Unix.",
+    "config-db-host-oracle": "TNS da base de datos:",
+    "config-db-host-oracle-help": "Insira un [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm nome de conexión local] válido; cómpre que haxa visible un ficheiro tnsnames.ora para esta instalación.<br />Se está a empregar bibliotecas cliente versión 10g ou máis recentes, tamén pode usar o método de atribución de nomes [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
+    "config-db-wiki-settings": "Identificar o wiki",
+    "config-db-name": "Nome da base de datos:",
+    "config-db-name-help": "Escolla un nome que identifique o seu wiki.\nNon debe conter espazos.\n\nSe está usando un aloxamento web compartido, o seu provedor de hospedaxe daralle un nome específico para a base de datos ou deixaralle crear unha a través do panel de control.",
+    "config-db-name-oracle": "Esquema da base de datos:",
+    "config-db-account-oracle-warn": "Existen tres escenarios soportados para a instalación de Oracle como fin da base de datos:\n\nSe quere crear unha conta para a base de datos como parte do proceso de instalación, proporcione unha conta co papel SYSDBA e especifique as credenciais desexadas para a conta; senón pode crear a conta manualmente e dar só esa conta (se ten os permisos necesarios para crear os obxectos do esquema) ou fornecer dous contas diferentes, unha con privilexios de creación e outra restrinxida para o acceso á web.\n\nA escritura para crear unha conta cos privilexios necesarios atópase no directorio \"maintenance/oracle/\" desta instalación. Teña en conta que o emprego de contas restrinxidas desactivará todas as operacións de mantemento da conta predeterminada.",
+    "config-db-install-account": "Conta de usuario para a instalación",
+    "config-db-username": "Nome de usuario da base de datos:",
+    "config-db-password": "Contrasinal da base de datos:",
+    "config-db-password-empty": "Introduza un contrasinal para o novo usuario da base de datos: $1.\nMalia que é posible crear usuarios sen contrasinal, esta práctica non é segura.",
+    "config-db-install-username": "Escriba o nome de usuario que empregará para conectarse á base de datos durante o proceso de instalación. Este non é o nome de usuario da conta de MediaWiki, trátase do nome de usuario para a súa base de datos.",
+    "config-db-install-password": "Escriba o contrasinal que empregará para conectarse á base de datos durante o proceso de instalación. Este non é o contrasinal da conta de MediaWiki, trátase do contrasinal para a súa base de datos.",
+    "config-db-install-help": "Introduza o nome de usuario e contrasinal que se usará para conectar á base de datos durante o proceso de instalación.",
+    "config-db-account-lock": "Use o mesmo nome de usuario e contrasinal despois do proceso de instalación",
+    "config-db-wiki-account": "Conta de usuario para despois do proceso de instalación",
+    "config-db-wiki-help": "Introduza o nome de usuario e mais o contrasinal que se usarán para conectar á base de datos durante o funcionamento habitual do wiki.\nSe a conta non existe e a conta de instalación ten privilexios suficientes, esa conta de usuario será creada cos privilexios mínimos necesarios para o funcionamento do wiki.",
+    "config-db-prefix": "Prefixo das táboas da base de datos:",
+    "config-db-prefix-help": "Se necesita compartir unha base de datos entre varios wikis ou entre MediaWiki e outra aplicación web, pode optar por engadir un prefixo a todos os nomes da táboa para evitar conflitos.\nNon utilice espazos.\n\nO normal é que este campo quede baleiro.",
+    "config-db-charset": "Conxunto de caracteres da base de datos",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binario",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 retrocompatible UTF-8",
+    "config-charset-help": "'''Atención:''' Se emprega '''backwards-compatible UTF-8''' no MySQL 4.1+ e posteriormente realiza unha copia de seguridade da base de datos con <code>mysqldump</code>, pode destruír todos os caracteres que non sexan ASCII, corrompendo de xeito irreversible as súas copias!\n\nNo '''modo binario''', MediaWiki almacena texto UTF-8 na base de datos en campos binarios.\nIsto é máis eficaz ca o modo UTF-8 de MySQL e permítelle usar o rango completo de caracteres Unicode.\nNo '''modo UTF-8''', MySQL saberá o xogo de caracteres dos seus datos e pode presentar e converter os datos de maneira axeitada,\npero non lle deixará gardar caracteres por riba do [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingüe básico].",
+    "config-mysql-old": "Necesítase MySQL $1 ou posterior; ten a versión $2.",
+    "config-db-port": "Porto da base de datos:",
+    "config-db-schema": "Esquema para MediaWiki",
+    "config-db-schema-help": "O normal é que este esquema sexa correcto.\nCámbieo soamente se sabe que é necesario.",
+    "config-pg-test-error": "Non se pode conectar coa base de datos '''$1''': $2",
+    "config-sqlite-dir": "Directorio de datos SQLite:",
+    "config-sqlite-dir-help": "SQLite recolle todos os datos nun ficheiro único.\n\nO servidor web debe ter permisos sobre o directorio para que poida escribir nel durante a instalación.\n\nAdemais, o servidor '''non''' debe ser accesible a través da web, motivo polo que non está no mesmo lugar ca os ficheiros PHP.\n\nAsemade, o programa de instalación escribirá un ficheiro <code>.htaccess</code>, pero se erra alguén pode obter acceso á súa base de datos.\nIsto inclúe datos de usuario (enderezos de correo electrónico, contrasinais codificados), así como revisións borradas e outros datos restrinxidos no wiki.\n\nConsidere poñer a base de datos nun só lugar, por exemplo en <code>/var/lib/mediawiki/oseuwiki</code>.",
+    "config-oracle-def-ts": "Espazo de táboas por defecto:",
+    "config-oracle-temp-ts": "Espazo de táboas temporal:",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-support-info": "MediaWiki soporta os seguintes sistemas de bases de datos:\n\n$1\n\nSe non ve listado a continuación o sistema de base de datos que intenta usar, siga as instrucións ligadas enriba para activar o soporte.",
+    "config-support-mysql": "* $1 é o obxectivo principal para MediaWiki e está mellor soportado ([http://www.php.net/manual/en/mysql.installation.php como compilar o PHP con soporte MySQL])",
+    "config-support-postgres": "* $1 é un sistema de base de datos popular e de código aberto como alternativa a MySQL ([http://www.php.net/manual/en/pgsql.installation.php como compilar o PHP con soporte PostgreSQL]). É posible que haxa algúns pequenos erros e non se recomenda o seu uso nunha contorna de produción.",
+    "config-support-sqlite": "* $1 é un sistema de base de datos lixeiro moi ben soportado. ([http://www.php.net/manual/en/pdo.installation.php Como compilar o PHP con soporte SQLite], emprega PDO)",
+    "config-support-oracle": "* $1 é un sistema comercial de xestión de base de datos de empresa. ([http://www.php.net/manual/en/oci8.installation.php Como compilar o PHP con soporte OCI8])",
+    "config-header-mysql": "Configuración do MySQL",
+    "config-header-postgres": "Configuración do PostgreSQL",
+    "config-header-sqlite": "Configuración do SQLite",
+    "config-header-oracle": "Configuración do Oracle",
+    "config-invalid-db-type": "Tipo de base de datos incorrecto",
+    "config-missing-db-name": "Debe escribir un valor \"Nome da base de datos\"",
+    "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.\nUtilice 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.\nSó 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.\nSó pode conter letras ASCII (a-z, A-Z), números (0-9), guións baixos (_) e guións (-).",
+    "config-connection-error": "$1.\n\nComprobe o servidor, nome de usuario e contrasinal que hai a continuación e inténteo de novo.",
+    "config-invalid-schema": "O esquema de MediaWiki, \"$1\", é incorrecto.\nSó pode conter letras ASCII (a-z, A-Z), números (0-9) e guións baixos (_).",
+    "config-db-sys-create-oracle": "O programa de instalación soamente soporta o emprego de contas SYSDBA como método para crear unha nova conta.",
+    "config-db-sys-user-exists-oracle": "A conta de usuario \"$1\" xa existe. SYSDBA soamente se pode empregar para a creación dunha nova conta!",
+    "config-postgres-old": "Necesítase PostgreSQL $1 ou posterior; ten a versión $2.",
+    "config-sqlite-name-help": "Escolla un nome que identifique o seu wiki.\nNon utilice espazos ou guións.\nEste nome será utilizado para o ficheiro de datos SQLite.",
+    "config-sqlite-parent-unwritable-group": "Non se puido crear o directorio de datos <code><nowiki>$1</nowiki></code>, porque o servidor web non pode escribir no directorio pai <code><nowiki>$2</nowiki></code>.\n\nO programa de instalación determinou o usuario que executa o seu servidor web.\nPara continuar, faga que se poida escribir no directorio <code><nowiki>$3</nowiki></code>.\nNun sistema Unix/Linux cómpre realizar:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Non se puido crear o directorio de datos <code><nowiki>$1</nowiki></code>, porque o servidor web non pode escribir no directorio pai <code><nowiki>$2</nowiki></code>.\n\nO programa de instalación non puido determinar o usuario que executa o seu servidor web.\nPara continuar, faga que se poida escribir globalmente no directorio <code><nowiki>$3</nowiki></code>.\nNun sistema Unix/Linux cómpre realizar:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Erro ao crear o directorio de datos \"$1\".\nComprobe a localización e inténteo de novo.",
+    "config-sqlite-dir-unwritable": "Non se puido escribir o directorio \"$1\".\nCambie os permisos para que o servidor poida escribir nel e inténteo de novo.",
+    "config-sqlite-connection-error": "$1.\n\nComprobe o directorio de datos e o nome da base de datos que hai a continuación e inténteo de novo.",
+    "config-sqlite-readonly": "Non se pode escribir no ficheiro <code>$1</code>.",
+    "config-sqlite-cant-create-db": "Non se puido crear o ficheiro da base de datos <code>$1</code>.",
+    "config-sqlite-fts3-downgrade": "Falta o soporte FTS3 para o PHP; diminuíndo as táboas",
+    "config-can-upgrade": "Existen táboas MediaWiki nesta base de datos.\nPara actualizalas a MediaWiki $1, prema sobre \"'''Continuar'''\".",
+    "config-upgrade-done": "Actualización completada.\n\nAgora pode [$1 comezar a utilizar o seu wiki].\n\nSe quere rexenerar o seu ficheiro <code>LocalSettings.php</code>, prema no botón que aparece a continuación.\nIsto '''non é recomendable''' a menos que estea a ter problemas co seu wiki.",
+    "config-upgrade-done-no-regenerate": "Actualización completada.\n\nXa pode [$1 comezar a usar o seu wiki].",
+    "config-regenerate": "Rexenerar LocalSettings.php →",
+    "config-show-table-status": "A pescuda <code>SHOW TABLE STATUS</code> fallou!",
+    "config-unknown-collation": "'''Atención:''' A base de datos está a empregar unha clasificación alfabética irrecoñecible.",
+    "config-db-web-account": "Conta na base de datos para o acceso á internet",
+    "config-db-web-help": "Seleccione o nome de usuario e contrasinal que o servidor web empregará para se conectar ao servidor da base de datos durante o funcionamento normal do wiki.",
+    "config-db-web-account-same": "Empregar a mesma conta que para a instalación",
+    "config-db-web-create": "Crear a conta se aínda non existe",
+    "config-db-web-no-create-privs": "A conta que especificou para a instalación non ten os privilexios suficientes para crear unha conta.\nA conta que se especifique aquí xa debe existir.",
+    "config-mysql-engine": "Motor de almacenamento:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''Atención:''' Seleccionou MyISAM como o motor de almacenamento para MySQL, unha combinación non recomendada para MediaWiki, porque:\n* practicamente non soporta os accesos simultáneos debido ao bloqueo de táboas\n* é máis propenso a corromperse ca outros motores\n* o código base de MediaWiki non sempre manexa o MyISAM como debera\n\nSe a súa instalación MySQL soporta InnoDB, recoméndase elixilo no canto de MyISAM.\nSe a súa instalación MySQL non soporta InnoDB, quizais sexa boa idea realizar unha actualización.",
+    "config-mysql-only-myisam-dep": "'''Atención:''' MyISAM é o único motor de almacenamento para MySQL, unha combinación non recomendada para MediaWiki, porque:\n* practicamente non soporta os accesos simultáneos debido ao bloqueo de táboas\n* é máis propenso a corromperse ca outros motores\n* o código base de MediaWiki non sempre manexa o MyISAM como debera\n\nA súa instalación MySQL non soporta InnoDB, quizais sexa boa idea realizar unha actualización.",
+    "config-mysql-engine-help": "'''InnoDB''' é case sempre a mellor opción, dado que soporta ben os accesos simultáneos.\n\n'''MyISAM''' é máis rápido en instalacións de usuario único e de só lectura.\nAs bases de datos MyISAM tenden a se corromper máis a miúdo ca as bases de datos InnoDB.",
+    "config-mysql-charset": "Conxunto de caracteres da base de datos:",
+    "config-mysql-binary": "Binario",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "No '''modo binario''', MediaWiki almacena texto UTF-8 na base de datos en campos binarios.\nIsto é máis eficaz ca o modo UTF-8 de MySQL e permítelle usar o rango completo de caracteres Unicode.\n\nNo '''modo UTF-8''', MySQL saberá o xogo de caracteres dos seus datos e pode presentar e converter os datos de maneira axeitada,\npero non lle deixará gardar caracteres por riba do [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes plan multilingüe básico].",
+    "config-site-name": "Nome do wiki:",
+    "config-site-name-help": "Isto aparecerá na barra de títulos do navegador e noutros lugares.",
+    "config-site-name-blank": "Escriba o nome do sitio.",
+    "config-project-namespace": "Espazo de nomes do proxecto:",
+    "config-ns-generic": "Proxecto",
+    "config-ns-site-name": "O mesmo nome que o wiki: $1",
+    "config-ns-other": "Outro (especificar)",
+    "config-ns-other-default": "OMeuWiki",
+    "config-project-namespace-help": "Seguindo o exemplo da Wikipedia, moitos wikis manteñen as súas páxinas de políticas separadas das súas páxinas de contido, nun \"'''espazo de nomes do proxecto'''\".\nTodos os títulos presentes neste espazo de nomes comezan cun prefixo determinado, que pode especificar aquí.\nTradicionalmente, este prefixo deriva do nome do wiki, pero non pode conter caracteres de puntuación como \"#\" ou \":\".",
+    "config-ns-invalid": "O espazo de nomes especificado, \"<nowiki>$1</nowiki>\", é incorrecto.\nEspecifique un espazo de nomes do proxecto diferente.",
+    "config-ns-conflict": "O espazo de nomes especificado, \"<nowiki>$1</nowiki>\", entra en conflito co espazo de nomes MediaWiki por defecto.\nEspecifique un espazo de nomes do proxecto diferente.",
+    "config-admin-box": "Conta de administrador",
+    "config-admin-name": "O seu nome:",
+    "config-admin-password": "Contrasinal:",
+    "config-admin-password-confirm": "Repita o contrasinal:",
+    "config-admin-help": "Escriba o nome de usuario que queira aquí, por exemplo, \"Joe Bloggs\".\nEste é o nome que usará para acceder ao sistema do wiki.",
+    "config-admin-name-blank": "Escriba un nome de usuario para o administrador.",
+    "config-admin-name-invalid": "O nome de usuario especificado, \"<nowiki>$1</nowiki>\", é incorrecto.\nEspecifique un nome de usuario diferente.",
+    "config-admin-password-blank": "Escriba un contrasinal para a conta de administrador.",
+    "config-admin-password-same": "O contrasinal debe diferir do nome de usuario.",
+    "config-admin-password-mismatch": "Os contrasinais non coinciden.",
+    "config-admin-email": "Enderezo de correo electrónico:",
+    "config-admin-email-help": "Escriba aquí un enderezo de correo electrónico para que poida recibir mensaxes doutros usuarios a través do wiki, restablecer o contrasinal e ser notificado das modificacións feitas nas páxinas presentes na súa lista de vixilancia. Pode deixar este campo en branco.",
+    "config-admin-error-user": "Erro interno ao crear un administrador co nome \"<nowiki>$1</nowiki>\".",
+    "config-admin-error-password": "Erro interno ao establecer un contrasinal para o administrador \"<nowiki>$1</nowiki>\": <pre>$2</pre>",
+    "config-admin-error-bademail": "Escribiu un enderezo de correo electrónico non válido.",
+    "config-subscribe": "Subscríbase á [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce lista de correo de anuncios sobre lanzamentos].",
+    "config-subscribe-help": "Esta é unha lista de correos de baixo volume usada para anuncios sobre lanzamentos de novas versións, incluíndo avisos de seguridade importantes.\nDebería subscribirse a ela e actualizar a súa instalación MediaWiki cando saian as novas versións.",
+    "config-subscribe-noemail": "Intentou subscribirse á lista de correo dos anuncios de novos lanzamentos sen proporcionar o enderezo de correo electrónico.\nDea un enderezo de correo electrónico se quere efectuar a subscrición á lista de correo.",
+    "config-almost-done": "Xa case rematou!\nNeste paso pode saltar o resto da configuración e instalar o wiki agora mesmo.",
+    "config-optional-continue": "Facédeme máis preguntas.",
+    "config-optional-skip": "Xa estou canso. Instalade o wiki.",
+    "config-profile": "Perfil dos dereitos de usuario:",
+    "config-profile-wiki": "Wiki aberto",
+    "config-profile-no-anon": "Necesítase a creación dunha conta",
+    "config-profile-fishbowl": "Só os editores autorizados",
+    "config-profile-private": "Wiki privado",
+    "config-profile-help": "Os wikis funcionan mellor canta máis xente os edite.\nEn MediaWiki, é doado revisar os cambios recentes e reverter calquera dano feito por usuarios novatos ou con malas intencións.\nPorén, moita xente atopa MediaWiki útil nunha ampla variedade de papeis, e ás veces non é fácil convencer a todos dos beneficios que leva consigo o estilo wiki.\nVostede decide.\n\nO modelo '''{{int:config-profile-wiki}}''' permite a edición por parte de calquera, mesmo sen rexistro.\nA opción '''{{int:config-profile-no-anon}}''' proporciona un control maior, pero pode desalentar os colaboradores casuais.\n\nO escenario '''{{int:config-profile-fishbowl}}''' restrinxe a edición aos usuarios aprobados, pero o público pode ollar as páxinas, incluíndo os historiais.\nO tipo '''{{int:config-profile-private}}''' só deixa que os usuarios aprobados vexan e editen as páxinas.\n\nHai dispoñibles configuracións de dereitos de usuario máis complexas despois da instalación; bótelle un ollo a [//www.mediawiki.org/wiki/Manual:User_rights esta entrada no manual].",
+    "config-license": "Dereitos de autor e licenza:",
+    "config-license-none": "Sen licenza ao pé",
+    "config-license-cc-by-sa": "Creative Commons recoñecemento compartir igual",
+    "config-license-cc-by": "Creative Commons recoñecemento",
+    "config-license-cc-by-nc-sa": "Creative Commons recoñecemento non comercial compartir igual",
+    "config-license-cc-0": "Creative Commons Zero (dominio público)",
+    "config-license-gfdl": "Licenza de documentación libre de GNU 1.3 ou posterior",
+    "config-license-pd": "Dominio público",
+    "config-license-cc-choose": "Seleccione unha licenza Creative Commons personalizada",
+    "config-license-help": "Moitos wikis públicos liberan todas as súas contribucións baixo unha [http://freedomdefined.org/Definition/Gl licenza libre].\nIsto axuda a crear un sentido de propiedade comunitaria e anima a seguir contribuíndo durante moito tempo.\nXeralmente, non é necesario nos wikis privados ou de empresas.\n\nSe quere poder empregar textos da Wikipedia, así como que a Wikipedia poida aceptar textos copiados do seu wiki, escolla a licenza '''Creative Commons recoñecemento compartir igual'''.\n\nA licenza de documentación libre de GNU era a licenza anterior da Wikipedia.\nMalia aínda ser unha licenza válida, é difícil de entender.\nTamén é difícil reusar contidos baixo esta licenza.",
+    "config-email-settings": "Configuración do correo electrónico",
+    "config-enable-email": "Activar os correos electrónicos de saída",
+    "config-enable-email-help": "Se quere que o correo electrónico funcione, cómpre configurar os [http://www.php.net/manual/en/mail.configuration.php parámetros PHP] correctamente.\nSe non quere ningunha característica no correo, pode desactivalas aquí.",
+    "config-email-user": "Activar o intercambio de correos electrónicos entre usuarios",
+    "config-email-user-help": "Permitir que todos os usuarios intercambien correos electrónicos, se o teñen activado nas súas preferencias.",
+    "config-email-usertalk": "Activar a notificación da páxina de conversa de usuario",
+    "config-email-usertalk-help": "Permitir que os usuarios reciban notificacións cando a súa páxina de conversa de usuario sufra modificacións, se o teñen activado nas súas preferencias.",
+    "config-email-watchlist": "Activar a notificación da lista de vixilancia",
+    "config-email-watchlist-help": "Permitir que os usuarios reciban notificacións sobre modificacións nas páxinas que vixían, se o teñen activado nas súas preferencias.",
+    "config-email-auth": "Activar a autenticación do correo electrónico",
+    "config-email-auth-help": "Se esta opción está activada, os usuarios teñen que confirmar o seu correo electrónico mediante unha ligazón enviada ao enderezo cando o definan ou o cambien.\nSó os enderezos autenticados poden recibir correos doutros usuarios ou de notificación.\nÉ '''recomendable''' establecer esta opción nos wikis públicos para evitar abusos potenciais das características do correo.",
+    "config-email-sender": "Enderezo de correo electrónico de retorno:",
+    "config-email-sender-help": "Introduza o enderezo de correo electrónico a usar como enderezo de retorno dos correos de saída.\nAquí é onde irán parar os correos rexeitados.\nMoitos servidores de correo electrónico esixen que polo menos a parte do nome de dominio sexa válido.",
+    "config-upload-settings": "Imaxes e carga de ficheiros",
+    "config-upload-enable": "Activar a carga de ficheiros",
+    "config-upload-help": "A subida de ficheiros expón potencialmente o servidor a riscos de seguridade.\nPara obter máis información, lea a [//www.mediawiki.org/wiki/Manual:Security sección de seguridade] no manual.\n\nPara activar a carga de ficheiros, cambie o modo no subdirectorio <code>images</code> que está baixo o directorio raíz de MediaWiki, de xeito que o servidor web poida escribir nel.\nA continuación, active esta opción.",
+    "config-upload-deleted": "Directorio para os ficheiros borrados:",
+    "config-upload-deleted-help": "Escolla un directorio no que arquivar os ficheiros borrados.\nO ideal é que non sexa accesible desde a web.",
+    "config-logo": "URL do logo:",
+    "config-logo-help": "A aparencia de MediaWiki por defecto inclúe espazo para un logo de 135x160 píxeles por riba do menú lateral.\nCargue unha imaxe do tamaño axeitado e introduza o enderezo URL aquí.\n\nPode utilizar <code>$wgStylePath</code> ou <code>$wgScriptPath</code> se o seu logo está relacionado con esas rutas.\n\nSe non quere un logo, deixe esta caixa en branco.",
+    "config-instantcommons": "Activar Instant Commons",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons InstantCommons] é unha característica que permite aos wikis usar imaxes, sons e outros ficheiros multimedia atopados no sitio da [//commons.wikimedia.org/wiki/Portada_galega Wikimedia Commons].\nPara facer isto, MediaWiki necesita acceso á internet.\n\nPara obter máis información sobre esta característica, incluíndo as instrucións sobre como configuralo para outros wikis que non sexan a Wikimedia Commons, consulte [//mediawiki.org/wiki/Manual:$wgForeignFileRepos o manual].",
+    "config-cc-error": "A escolla da licenza Creative Commons non deu resultados.\nEscriba o nome da licenza manualmente.",
+    "config-cc-again": "Escolla outra vez...",
+    "config-cc-not-chosen": "Escolla a licenza Creative Commons que desexe e prema en \"continuar\".",
+    "config-advanced-settings": "Configuración avanzada",
+    "config-cache-options": "Configuración da caché de obxectos:",
+    "config-cache-help": "A caché de obxectos emprégase para mellorar a velocidade de MediaWiki mediante a memorización de datos usados con frecuencia.\nÉ amplamente recomendable a súa activación nos sitios de tamaño medio e grande; os sitios pequenos obterán tamén beneficios.",
+    "config-cache-none": "Sen caché (non se elimina ningunha funcionalidade, pero pode afectar á velocidade en wikis grandes)",
+    "config-cache-accel": "Caché de obxectos do PHP (APC, XCache ou WinCache)",
+    "config-cache-memcached": "Empregar o Memcached (necesita unha instalación e configuración adicional)",
+    "config-memcached-servers": "Servidores da memoria caché:",
+    "config-memcached-help": "Lista de enderezos IP para Memcached.\nDebe especificarse un por liña, así como o porto a usar. Por exemplo:\n 127.0.0.1:11211\n 192.168.1.25:1234",
+    "config-memcache-needservers": "Seleccionou Memcached como o seu tipo de caché, pero non especificou ningún servidor.",
+    "config-memcache-badip": "Escribiu un enderezo IP inválido para Memcached: $1.",
+    "config-memcache-noport": "Non especificou o porto a usar no servidor Memcached: $1.\nSe non sabe o porto, o predeterminado é 11211.",
+    "config-memcache-badport": "Os números de porto Memcached deben estar entre $1 e $2.",
+    "config-extensions": "Extensións",
+    "config-extensions-help": "As extensións anteriores detectáronse no seu directorio <code>./extensions</code>.\n\nQuizais necesite algunha configuración adicional, pero pode activalas agora",
+    "config-install-alreadydone": "'''Atención:''' Semella que xa instalou MediaWiki e que o está a instalar de novo.\nVaia ata a seguinte páxina.",
+    "config-install-begin": "Ao premer en \"{{int:config-continue}}\", comezará a instalación de MediaWiki.\nSe aínda quere facer algún cambio, prema en \"{{int:config-back}}\".",
+    "config-install-step-done": "feito",
+    "config-install-step-failed": "erro",
+    "config-install-extensions": "Incluíndo as extensións",
+    "config-install-database": "Configurando a base de datos",
+    "config-install-schema": "Creando o esquema",
+    "config-install-pg-schema-not-exist": "O esquema PostgreSQL non existe.",
+    "config-install-pg-schema-failed": "Fallou a creación de táboas.\nAsegúrese de que o usuario \"$1\" pode escribir no esquema \"$2\".",
+    "config-install-pg-commit": "Validando os cambios",
+    "config-install-pg-plpgsql": "Comprobación da lingua PL/pgSQL",
+    "config-pg-no-plpgsql": "Cómpre instalar a lingua PL/pgSQL na base de datos $1",
+    "config-pg-no-create-privs": "A conta especificada para a instalación non ten os privilexios necesarios para crear unha conta.",
+    "config-pg-not-in-role": "A conta especificada para o usuario web xa existe.\nA conta que especificou para a instalación non é un superusuario e non pertence ao grupo de usuarios con acceso á web, polo que non pode crear obxectos pertencentes ao usuario da rede.\n\nActualmente, MediaWiki necesita que as táboas sexan propiedade do usuario da rede. Especifique outro nome de conta web ou prema no botón \"Atrás\" e dea un usuario de instalación cos privilexios axeitados.",
+    "config-install-user": "Creando o usuario da base de datos",
+    "config-install-user-alreadyexists": "O usuario \"$1\" xa existe",
+    "config-install-user-create-failed": "A creación do usuario \"$1\" fallou: $2",
+    "config-install-user-grant-failed": "Fallou a concesión de permisos ao usuario \"$1\": $2",
+    "config-install-user-missing": "O usuario especificado, \"$1\", non existe.",
+    "config-install-user-missing-create": "O usuario especificado, \"$1\", non existe.\nPrema na caixa de verificación \"crear unha conta\" que hai a continuación se quere crear unha.",
+    "config-install-tables": "Creando as táboas",
+    "config-install-tables-exist": "'''Atención:''' Semella que as táboas de MediaWiki xa existen.\nSaltando a creación.",
+    "config-install-tables-failed": "'''Erro:''' Fallou a creación da táboa. Descrición do erro: $1",
+    "config-install-interwiki": "Enchendo a táboa de interwiki por defecto",
+    "config-install-interwiki-list": "Non se puido atopar o ficheiro <code>interwiki.list</code>.",
+    "config-install-interwiki-exists": "'''Atención:''' Semella que a táboa de interwiki xa contén entradas.\nSaltando a lista por defecto.",
+    "config-install-stats": "Iniciando as estatísticas",
+    "config-install-keys": "Xerando as claves secretas",
+    "config-insecure-keys": "'''Atención:''' {{PLURAL:$2|A clave de seguridade|As claves de seguridade}} ($1) {{PLURAL:$2|xerada|xeradas}} durante a instalación non {{PLURAL:$2|é|son}} completamente {{PLURAL:$2|segura|seguras}}. Considere a posibilidade de {{PLURAL:$2|cambiala|cambialas}} manualmente.",
+    "config-install-sysop": "Creando a conta de usuario de administrador",
+    "config-install-subscribe-fail": "Non se puido subscribir á lista mediawiki-announce: $1",
+    "config-install-subscribe-notpossible": "cURL non está instalado e allow_url_fopen non está dispoñible.",
+    "config-install-mainpage": "Creando a páxina principal co contido por defecto",
+    "config-install-extension-tables": "Creando as táboas para as extensións activadas",
+    "config-install-mainpage-failed": "Non se puido inserir a páxina principal: $1",
+    "config-install-done": "'''Parabéns!'''\nInstalou correctamente MediaWiki.\n\nO programa de instalación xerou un ficheiro <code>LocalSettings.php</code>.\nEste ficheiro contén toda a súa configuración.\n\nTerá que descargalo e poñelo na base da instalación do seu wiki (no mesmo directorio ca index.php). A descarga debería comezar automaticamente.\n\nSe non comezou a descarga ou se a cancelou, pode facer que comece de novo premendo na ligazón que aparece a continuación:\n\n$3\n\n'''Nota:''' Se non fai iso agora, este ficheiro de configuración xerado non estará dispoñible máis adiante se sae da instalación sen descargalo.\n\nCando faga todo isto, xa poderá '''[$2 entrar no seu wiki]'''.",
+    "config-download-localsettings": "Descargar o <code>LocalSettings.php</code>",
+    "config-help": "axuda",
+    "config-nofile": "Non se puido atopar o ficheiro \"$1\". Se cadra, foi borrado.",
+    "config-extension-link": "Sabía que o seu wiki soporta [//www.mediawiki.org/wiki/Manual:Extensions extensións]?\n\nPode explorar as [//www.mediawiki.org/wiki/Category:Extensions_by_category extensións por categoría] ou a [//www.mediawiki.org/wiki/Extension_Matrix matriz de extensións] para ollar a lista completa de extensións.",
+    "mainpagetext": "'''MediaWiki instalouse correctamente.'''",
+    "mainpagedocfooter": "Consulte a [//meta.wikimedia.org/wiki/Help:Contents guía de usuario] para obter máis información sobre como usar o software wiki.\n\n== Primeiros pasos ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista das opcións de configuración]\n* [//www.mediawiki.org/wiki/Manual:FAQ Preguntas máis frecuentes sobre MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de correo dos lanzamentos de MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Localice MediaWiki á súa lingua]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/gom-latn.json b/includes/installer/i18n/gom-latn.json
new file mode 100644 (file)
index 0000000..31c7322
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "@metadata": {
+        "authors": [
+            "The Discoverer"
+        ]
+    },
+    "config-page-language": "Bhas"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/grc.json b/includes/installer/i18n/grc.json
new file mode 100644 (file)
index 0000000..abe9756
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "@metadata": {
+        "authors": [
+            "Crazymadlover",
+            "Omnipaedista"
+        ]
+    },
+    "config-page-language": "Γλῶττα",
+    "mainpagetext": "'''Ἡ ἐγκατάστασις τῆς MediaWiki ἦν ἐπιτυχής'''",
+    "mainpagedocfooter": "Βουλευθήσεσθε τὰς [//meta.wikimedia.org/wiki/Help:Contents βουλὰς τοῖς Χρωμένοις] ἵνα πληροφορηθῇτε περὶ τοῦ βίκιλογισμικοῦ.\n\n== Ἄρξασθε ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Διαλογή παραμέτρων διαμορφώσεως]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki: τὰ πολλάκις αἰτηθέντα]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Διαλογή διαλέξεων ἐπὶ τῶν διανομῶν τῆς MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/gsw.json b/includes/installer/i18n/gsw.json
new file mode 100644 (file)
index 0000000..dbfa550
--- /dev/null
@@ -0,0 +1,70 @@
+{
+    "@metadata": {
+        "authors": [
+            "Als-Holder"
+        ]
+    },
+    "config-desc": "S MediaWiki-Inschtallationsprogramm",
+    "config-title": "MediaWiki $1 inschtalliere",
+    "config-information": "Information",
+    "config-localsettings-upgrade": "'''Warnig:''' E Datei <code>LocalSettings.php</code> isch gfunde wore.\nFir d Aktualisierig vu dr däre Inschtallation, gib bitte dr Wärt vum Parameter <code>$wgUpgradeKey</code> im Fäld unten yy.\nDu findsch dr Wärt in dr Datei <code>LocalSettings.php</code>.",
+    "config-localsettings-key": "Aktualisierigsschlissel:",
+    "config-localsettings-badkey": "Dr Aktualisierigsschlissel, wu du aagee hesch, isch falsch.",
+    "config-session-error": "Fähler bim Starte vu dr Sitzig: $1",
+    "config-session-expired": "D Sitzigsdate sin schyns abgloffe.\nSitzige sin fir e Zytruum vu $1 konfiguriert.\nDää cha dur Aalupfe vum Parameter <code>session.gc_maxlifetime</code> in dr Datei <code>php.ini</code> greßer gmacht wäre.\nDr Inschtallationsvorgang nomol starte.",
+    "config-no-session": "Dyyni Sitzigsdate sin verlore gange!\nD Datei <code>php.ini</code> mueß prieft wäre un s mueß derby sichergstellt wäre, ass dr Parameter <code>session.save_path</code> uf s richtig Verzeichnis verwyyst.",
+    "config-your-language": "Dyy Sproch:",
+    "config-your-language-help": "Bitte d Sproch uuswehle, wu bim Inschtallationsvorgang soll brucht wäre.",
+    "config-wiki-language": "Wikisproch:",
+    "config-wiki-language-help": "Bitte d Sproch uuswehle, wu s Wiki in dr Hauptsach din gschribe wird.",
+    "config-back": "← Zruck",
+    "config-continue": "Wyter →",
+    "config-page-language": "Sproch",
+    "config-page-welcome": "Willchuu bi MediaWiki!",
+    "config-page-dbconnect": "Mit dr Datebank verbinde",
+    "config-page-upgrade": "E Inschtallition, wu s scho het, aktualisiere",
+    "config-page-dbsettings": "Datebankyystellige",
+    "config-page-name": "Name",
+    "config-page-options": "Optione",
+    "config-page-install": "Inschtalliere",
+    "config-page-complete": "Fertig!",
+    "config-page-restart": "Inschtallation nomol aafange",
+    "config-page-readme": "Liis mi",
+    "config-page-releasenotes": "Hiiwys fir d Vereffentlichung",
+    "config-page-copying": "Am Kopiere",
+    "config-page-upgradedoc": "Am Aktualisiere",
+    "config-help-restart": "Witt alli Date, wu Du yygee hesch, lesche un d Inschtallation nomol aafange?",
+    "config-restart": "Jo, nomol aafange",
+    "config-welcome": "=== Priefig vu dr Inschtallationsumgäbig ===\nBasispriefige wäre durgfiert zum Feschtstelle, eb d Inschtallationsumgäbig fir d Inschtallation vu MediaWiki geignet isch.\nDu sottsch d Ergebnis vu däre Priefig aagee, wänn Du bi dr Inschtallation Hilf bruchsch.",
+    "config-copyright": "=== Copyright un Nutzigsbedingige ===\n\n$1\n\nDes Programm isch e freji Software, d. h. s cha, no dr Bedingige vu dr GNU General Public-Lizänz, wu vu dr Free Software Foundation vereffentligt woren isch, wyterverteilt un/oder modifiziert wäre. Doderbyy cha d Version 2, oder no eigenem Ermässe, jedi nejeri Version vu dr Lizänz brucht wäre.\n\nDes Programm wird in dr Hoffnig verteilt, ass es nitzli isch, aber '''ohni jedi Garanti''' un sogar ohni di impliziert Garanti vun ere '''Märtgängigkeit''' oder '''Eignig fir e bstimmte Zwäck'''. Doderzue git meh Hiiwys in dr GNU General Public-Lizänz.\n\nE <doclink href=Copying>Kopi vu dr GNU General Public-Lizänz</doclink> sott zämme mit däm Programm verteilt wore syy. Wänn des nit eso isch, cha ne Kopi bi dr Free Software Foundation Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, schriftli aagforderet oder [http://www.gnu.org/copyleft/gpl.html online gläse] wäre.",
+    "config-sidebar": "* [//www.mediawiki.org MediaWiki Websyte vu MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents Nutzeraaleitig zue MediaWiki]\n* [//www.mediawiki.org/wiki/Manual:Contents Adminischtratoreaaleitig zue MediaWiki]\n* [//www.mediawiki.org/wiki/Manual:FAQ Vilmol gstellti Froge zue MediaWiki]",
+    "config-env-good": "D Inschtallationsumgäbig isch prieft wore.\nDu chasch MediaWiki inschtalliere.",
+    "config-env-bad": "D Inschtallationsumgäbigisch prieft wore.\nDu chasch MediaWiki nit inschtalliere.",
+    "config-env-php": "PHP $1 isch inschtalliert.",
+    "config-unicode-using-utf8": "Fir d Unicode-Normalisierig wird em Brion Vibber syy utf8_normalize.so yygsetzt.",
+    "config-unicode-using-intl": "For d Unicode-Normalisierig wird d [http://pecl.php.net/intl PECL-Erwyterig intl] yygsetzt.",
+    "config-unicode-pure-php-warning": "'''Warnig:''' D [http://pecl.php.net/intl PECL-Erwyterig intl] isch fir d Unicode-Normalisierig nit verfiegbar. Wäge däm wird di langsam pure-PHP-Implementierig brucht.\nWänn Du ne Websyte mit ere große Bsuechrzahl bedrybsch, sottsch e weng ebis läse iber [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode-Normalisierig (en)].",
+    "config-unicode-update-warning": "'''Warnig:''' Di inschtalliert Version vum Unicode-Normalisierigswrapper verwändet e elteri Version vu dr Bibliothek vum [http://site.icu-project.org/ ICU-Projäkt].\nDu sottsch si [//www.mediawiki.org/wiki/Unicode_normalization_considerations aktualisiere], wänn Dor d Verwändig vu Unicode wichtig isch.",
+    "config-no-db": "S isch kei adäquate Datebanktryyber gfunde wore!",
+    "config-no-fts3": "'''Warnig:''' SQLite isch ohni s [//sqlite.org/fts3.html FTS3-Modul] kumpiliert wore, s stehn kei Suechfunktione z Verfiegig.",
+    "config-register-globals": "'''Warnig: Dr Parameter <code>[http://php.net/register_globals register_globals]</code> vu PHP isch aktiviert.'''\n'''Är sott deaktiviert wäre, wänn des megli isch.'''\nD MediaWiki-Inschtallation lauft einwäg, aber dr Server isch aafällig fi megligi Sicherheitsprobläm.",
+    "config-magic-quotes-runtime": "'''Fatal: Dr Parameter <code>[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]</code> vu PHP isch aktiviert!'''\nDie Yystellig fiert zue nit vorhärsähbare Probläm bi dr Datenyygab.\nMediaWiki cha nit inschtalliert wäre, solang dää Parameter nit deaktiviert woren isch.",
+    "config-magic-quotes-sybase": "'''Fatal: Dr Parameter <code>[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]</code> vu PHP isch aktiviert!'''\nDie Yystellig fiert zue nit vorhärsähbare Probläm bi dr Datenyygab.\nMediaWiki cha nit inschtalliert wäre, solang dää Parameter nit deaktiviert woren isch.",
+    "config-mbstring": "'''Fatal: Dr Parameter <code>[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]</code> vu PHP isch aktiviert!'''\nDie Yystellig verursacht Fähler un fiert zue nit vorhärsähbare Probläm bi dr Datenyygab.\nMediaWiki cha nit inschtalliert wäre, solang dää Parameter nit deaktiviert woren isch.",
+    "config-ze1": "'''Fatal: Dr Parameter <code>[http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]</code> vu PHP isch aktiviert!'''\nDie Yystellig fiert zue große Fähler bi MediaWiki.\nMediaWiki cha nit inschtalliert wäre, solang dää Parameter nit deaktiviert woren isch.",
+    "config-safe-mode": "'''Warnig:''' D Funktion <code>[http://www.php.net/features.safe-mode Safe Mode]</code> vu PHP isch aktiviert.\nDes cha zue Probläm fiere, vor allem wänn s Uffelade vu Dateie soll megli syy bzw. dr Uuszeichner <code>math</code> soll brucht wäre.",
+    "config-xml-bad": "S XML-Modul vu PHP fählt.\nMediaWiki brucht Funktione, wu au des Modul z Verfiegig stellt, un funktioniert in däre Konfiguration nit.\nWänn Mandriva brucht wird, mueß no s „php-xml“-Paket inschtalliert wäre.",
+    "config-pcre": "S PHP-Modul fir d PCRE-Unterstitzig isch nit gfunde wore.\nMediaWiki brucht aber perl-kompatibli reguläri Uusdruck zum lauffähig syy.",
+    "config-pcre-no-utf8": "'''Fatale Fähler: S PHP-Modul PCRE isch schyns ohni PCRE_UTF8-Unterstitzig kompiliert wore.'''\nMediaWiki brucht d UTF-8-Unterstitzi zum fählerfrej lauffähig syy.",
+    "config-memory-raised": "Dr PHP-Parameter <code>memory_limit</code> lyt bi $1 un isch uf $2 uffegsetzt wore.",
+    "config-memory-bad": "'''Warnig:''' Dr PHP-Parameter <code>memory_limit</code> lyt bi $1.\nDää Wärt isch wahrschyns z nider.\nDr Inschtallationsvorgang chennt wäge däm fählschlaa!",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] isch inschtalliert",
+    "config-apc": "[http://www.php.net/apc APC] isch inschtalliert",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] isch inschtalliert",
+    "config-no-cache": "'''Warnig:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] oder [http://www.iis.net/download/WinCacheForPhp WinCache] hän nit chenne gfunde wäre.\nS Objäktcaching isch wäge däm nit aktiviert.",
+    "config-diff3-bad": "GNU diff3 isch nit gfunde wore.",
+    "config-imagemagick": "ImageMagick isch gfunde wore: <code>$1</code>.\nMiniaturaasichte vu Bilder sin megli, sobald s Uffelade vu Dateie aktiviert isch.",
+    "config-help": "Hilf",
+    "mainpagetext": "'''MediaWiki isch erfolgrich inschtalliert worre.'''",
+    "mainpagedocfooter": "Lueg uf d [//meta.wikimedia.org/wiki/MediaWiki_localisation Dokumentation fir d Aapassig vu dr Benutzeroberflächi] un s [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbuech] fir d Hilf iber d Benutzig un s Yystelle."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/gu.json b/includes/installer/i18n/gu.json
new file mode 100644 (file)
index 0000000..0046040
--- /dev/null
@@ -0,0 +1,10 @@
+{
+    "@metadata": {
+        "authors": [
+            "Ashok modhvadia",
+            "Dineshjk"
+        ]
+    },
+    "mainpagetext": "'''મિડીયાવિકિ સફળતાપૂર્વક ઇન્સટોલ થયું છે.'''",
+    "mainpagedocfooter": "વિકિ સોફ્ટવેર વાપરવાની માહીતિ માટે [//meta.wikimedia.org/wiki/Help:Contents સભ્ય માર્ગદર્શિકા] જુઓ.\n\n== શરૂઆતના તબક્કે ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings કોનફીગ્યુરેશન સેટીંગ્સની યાદી]\n* [//www.mediawiki.org/wiki/Manual:FAQ વારંવાર પુછાતા પ્રશ્નો]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce મિડીયાવિકિ રીલીઝ મેઇલીંગ લીસ્ટ]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Localise MediaWiki for your language]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/gv.json b/includes/installer/i18n/gv.json
new file mode 100644 (file)
index 0000000..8658931
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Ta MediaWiki currit stiagh nish.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/hak.json b/includes/installer/i18n/hak.json
new file mode 100644 (file)
index 0000000..02f55cf
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Yí-kîn sṳ̀n-kûng ôn-chông MediaWiki.'''",
+    "mainpagedocfooter": "chhiáng fóng-mun [//meta.wikimedia.org/wiki/Help:Contents Yung-fu sú-chhak] yî-khi̍p sṳ́-yung chhṳ́ wiki ngiôn-khien ke sin-sit!\n\n== Ngi̍p-mùn  ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki Phi-chṳ sat-thin chhîn-tân]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki Phìn-sòng mun-thì kié-tap]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki fat-phu email chhîn-tân]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/haw.json b/includes/installer/i18n/haw.json
new file mode 100644 (file)
index 0000000..f4e740e
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Ua pono ka ho‘ouka ‘ana o MediaWiki.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/he.json b/includes/installer/i18n/he.json
new file mode 100644 (file)
index 0000000..6350052
--- /dev/null
@@ -0,0 +1,304 @@
+{
+    "@metadata": {
+        "authors": [
+            "Amire80",
+            "YaronSh",
+            "ערן",
+            "아라"
+        ]
+    },
+    "config-desc": "תכנית ההתקנה של מדיה־ויקי",
+    "config-title": "התקנת מדיה־ויקי $1",
+    "config-information": "פרטים",
+    "config-localsettings-upgrade": "זוהה קובץ <code>LocalSettings.php</code>.\nכדי לשדרג את ההתקנה הזאת, נא להקליד את הערך של <code>$wgUpgradeKey</code> בתיבה להלן.\nאפשר למצוא אותו בקובץ <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "זוהה קובץ <code>LocalSettings.php</code>.\nכדי לשדרג את ההתקנה הזאת, הריצו את <code>update.php</code> ולא את הקובץ הזה.",
+    "config-localsettings-key": "מפתח השדרוג:",
+    "config-localsettings-badkey": "המפתח שהקלדתם שגוי",
+    "config-upgrade-key-missing": "זוהתה התקנה קיימת של מדיה־ויקי.\nכדי לשדרג את ההתקנה הזאת, אנא כתבו את השורה הבא בתחתית קובץ <code>LocalSettings.php</code> שלכם:\n\n$1",
+    "config-localsettings-incomplete": "נראה שקובץ <code>LocalSettings.php</code> הקיים אינו שלם.\nהמשתנה $1 אינו מוגדר.\nנו לשנות את קובץ <code>LocalSettings.php</code> שלכם כך שהמשתנה הזה יהיה מוגדר וללחוץ \"{{int:Config-continue}}\".",
+    "config-localsettings-connection-error": "אירעה שגיאה בעת חיבור למסד נתונים עם הגדרות ב־<code>LocalSettings.php</code> או ב־<code>AdminSettings.php</code>. נא לתקן את ההגדרות האלו ולנסות שוב.\n\n$1",
+    "config-session-error": "שגיאה באתחול שיחה: $1",
+    "config-session-expired": "נראה שנתוני השיחה שלכם פגו.\nהשיחות מוגדרות להיות תקפות לזמן של $1.\nאפשר להגדיל את זה ב־<code>session.gc_maxlifetime</code> בקובץ php.ini.\nיש להתחיל מחדש את תהליך ההתקנה.",
+    "config-no-session": "נתוני השיחה שלכם אבדו!\nיש לבדוק את קובץ php.ini שלכם ולוודא שתיקייה נכונה מוגדרת ב־<code>session.save_path</code>.",
+    "config-your-language": "השפה שלכם:",
+    "config-your-language-help": "נא לבחור את השפה שתשמש במהלך ההתקנה.",
+    "config-wiki-language": "שפת הוויקי:",
+    "config-wiki-language-help": "נא לבחור את השפה העיקרית שבה ייכתב ויקי זה.",
+    "config-back": "→ חזרה",
+    "config-continue": "המשך ←",
+    "config-page-language": "שפה",
+    "config-page-welcome": "ברוכים הבאים למדיה־ויקי!",
+    "config-page-dbconnect": "התחברות למסד הנתונים",
+    "config-page-upgrade": "שדרוג התקנה קיימת",
+    "config-page-dbsettings": "הגדרות מסד הנתונים",
+    "config-page-name": "שם",
+    "config-page-options": "אפשרויות",
+    "config-page-install": "התקנה",
+    "config-page-complete": "הושלמה!",
+    "config-page-restart": "הפעלת ההתקנה מחדש",
+    "config-page-readme": "קרא־אותי",
+    "config-page-releasenotes": "הערות גרסה",
+    "config-page-copying": "העתקה",
+    "config-page-upgradedoc": "שדרוג",
+    "config-page-existingwiki": "ויקי קיים",
+    "config-help-restart": "האם ברצונך לנקות את כל הנתונים שהזנת ולהתחיל מחדש את תהליך ההתקנה?",
+    "config-restart": "כן, להפעיל מחדש",
+    "config-welcome": "=== בדיקות סביבה ===\nבדיקות בסיסיות מתבצעות כדי לבדוק שהסביבה מתאימה להתקנת מדיה־ויקי.\nיש לתת את תוצאות הבדיקות האלו אם תזדקקו לעזרה בזמן ההתקנה.",
+    "config-copyright": "=== זכויות יוצרים ותנאים ===\n\n$1\n\nתכנית זו היא תכנה חופשית; באפשרותך להפיצה מחדש ו/או לשנות אותה על פי תנאי הרישיון הציבורי הכללי של GNU כפי שפורסם על ידי קרן התכנה החופשית; בין אם גרסה 2 של הרישיון, ובין אם (לפי בחירתך) כל גרסה מאוחרת שלו.\n\nתכנית זו מופצת בתקווה שתהיה מועילה, אבל '''בלא אחריות כלשהי'''; ואפילו ללא האחריות המשתמעת בדבר '''מסחריותה''' או '''התאמתה למטרה '''מסוימת'''. לפרטים נוספים, ניתן לעיין ברישיון הציבורי הכללי של GNU.\n\nלתכנית זו אמור היה להיות מצורף <doclink href=Copying>עותק של הרישיון הציבורי הכללי של GNU</doclink>; אם לא, עליך לכתוב ל־Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, , MA 02111-1307, USA. או [http://www.gnu.org/copyleft/gpl.html לקרוא אותו דרך האינטרנט].",
+    "config-sidebar": "* [//www.mediawiki.org אתר הבית של מדיה־ויקי]\n* [//www.mediawiki.org/wiki/Help:Contents המדריך למשתמשים]\n* [//www.mediawiki.org/wiki/Manual:Contents המדריך למנהלים]\n* [//www.mediawiki.org/wiki/Manual:FAQ שו״ת]\n----\n* <doclink href=Readme>קרא אותי</doclink>\n* <doclink href=ReleaseNotes>הערות גרסה</doclink>\n* <doclink href=Copying>העתקה</doclink>\n* <doclink href=UpgradeDoc>שדרוג</doclink>",
+    "config-env-good": "הסביבה שלכם נבדקה.\nאפשר להתקין מדיה־ויקי.",
+    "config-env-bad": "הסביבה שלכם נבדקה.\nאי־אפשר להתקין מדיה־ויקי.",
+    "config-env-php": "מותקנת <span dir=\"ltr\">PHP $1</span>.",
+    "config-env-php-toolow": "מותקנת <span dir=\"ltr\">PHP $1</span>.\nלמדיה־ויקי נדרשת <span dir=\"ltr\">PHP $2</span> או גרסה גבוהה יותר.",
+    "config-unicode-using-utf8": "משתמש ב־normalize.so של בריון ויבר לנרמול יוניקוד.",
+    "config-unicode-using-intl": "משתמש בהרחבת [http://pecl.php.net/intl הרחבת intl PECL] לנרמול יוניקוד",
+    "config-unicode-pure-php-warning": "'''אזהרה''': [http://pecl.php.net/intl הרחבת intl PECL] אינה זמינה לטיפול בנרמול יוניקוד. משתמש ביישום PHP טהור ואטי יותר.\nאם זהו אתר בעל תעבורה גבוהה, כדאי לקרוא את המסמך הבא: [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode normalization].",
+    "config-unicode-update-warning": "'''אזהרה''': הגרסה המותקנת של מעטפת נרמול יוניקוד משתמשת בגרסה ישנה של הספרייה של [http://site.icu-project.org/ פרויקט ICU].\nכדאי [//www.mediawiki.org/wiki/Unicode_normalization_considerations לעדכן] אם חשוב לכם הטיפול ביוניקוד.",
+    "config-no-db": "לא נמצא דרייבר מסד נתונים מתאים. יש להתקין דרייבר מסד נתונים ל־PHP.\nנתמכים הסוגים הבאים של מסדי נתונים: $1.\n\nאם אתם משתמשים באירוח משותף, בקשו מספק האירוח שלכם להתקין דרייבר מסד נתונים מתאים.\nאם קִמפלתם את PHP בעצמכם, הגדירו אותו מחדש והפעילו את לקוח מסד נתונים, למשל באמצעות <code dir=\"ltr\">./configure --with-mysql</code>.\nאם התקנתם את PHP כחבילה של דביאן או של אובונטו, יש להתקין את המודול php5-mysql.",
+    "config-outdated-sqlite": "'''אזהרה''': במערכת מתוקן SQLite $1. גרסה זו לא נתמכת ולשימוש ב SQLite נדרשת גרסה $2 ומעלה. מסיבה זו האפשרות SQLite לא מאופשרת.",
+    "config-no-fts3": "'''אזהרה''': SQLite מקומפל ללא [//sqlite.org/fts3.html מודול FTS]. יכולות חיפוש לא יהיו זמינות בהתקנה הזאת.",
+    "config-register-globals": "'''אזהרה: האפשרות <code>[http://php.net/register_globals register_globals]</code> של PHP מופעלת.'''\n'''כבו אותה אם אתם יכולים.'''\nמדיה־ויקי תעבוד, אבל השרת שלכם חשוף לפגיעות אבטחה.",
+    "config-magic-quotes-runtime": "'''שגיאה סופנית: האפשרות [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] פעילה!'''\nהאפשרות הזאת מעוותת את נתוני הקלט באופן בלתי־צפוי.\nלא ניתן להתקין את מדיה־ויקי אלא אם האפשרות הזאת תכובה.",
+    "config-magic-quotes-sybase": "'''שגיאה סופנית''': האפשרות [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] פעילה!'''\nהאפשרות הזאת מעוותת את נתוני הקלט באופן בלתי־צפוי.\nלא ניתן להתקין את מדיה־ויקי או להשתמש בה אלא אם האפשרות הזאת תכובה.",
+    "config-mbstring": "'''שגיאה סופנית''': האפשרות [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] פעילה!'''\nהאפשרות הזאת גורמת לשגיאות ומעוותת את נתוני הקלט באופן בלתי־צפוי.\nלא ניתן להתקין את מדיה־ויקי או להשתמש בה אלא אם האפשרות הזאת תכובה.",
+    "config-ze1": "'''שגיאה סופנית''': האפשרות [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] פעילה!'''\nהאפשרות הזאת גורמת לתקלות מזעזעות במדיה־ויקי.\nלא ניתן להתקין את מדיה־ויקי או להשתמש בה אלא אם האפשרות הזאת תכובה.",
+    "config-safe-mode": "'''אזהרה:''' האפשרות [http://www.php.net/features.safe-mode safe mode] של PHP פעילה.\nהיא יכולה לגרום לבעיות, במיוחד אם אתם משתמשים בהעלאת קבצים או ב־<code>math</code>.",
+    "config-xml-bad": "מודול XML של PHP חסר.\nמדיה־ויקי דורשת פונקציות של המודול ולא תעבוד עם הגדרות כאלו.\nאם מערכת ההפעלה שלהם היא Mandrake, התקינו את החבילה php-xml.",
+    "config-pcre": "נראה שחסרה תמיכה במודול PCRE.\nכדי שמדיה־ויקי תעבוד, נדרשת תמיכה בביטויים רגולריים תואמי Perl.",
+    "config-pcre-no-utf8": "'''שגיאה סופנית''': נראה שמודול PCRE של PHP מקומפל ללא תמיכה ב־PCRE_UTF8.\nמדיה־ויקי דורשת תמיכה ב־UTF-8 לפעילות נכונה.",
+    "config-memory-raised": "ערך האפשרות <code>memory_limit</code> של PHP הוא $1, הועלה ל־$2.",
+    "config-memory-bad": "'''אזהרה:''' ערך האפשרות <code>memory_limit</code> של PHP הוא $1.\nזה כנראה נמוך מדי.\nההתקנה עשויה להיכשל!",
+    "config-ctype": "'''שגיאה סופנית''': נדרשת גרסת PHP שתומכת בהרחבה [http://www.php.net/manual/en/ctype.installation.php Ctype].",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] מותקן",
+    "config-apc": "[http://www.php.net/apc APC] מותקן",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] מותקן",
+    "config-no-cache": "'''אזהרה:''' אחת מהתוכנות הבאות לא נמצאה: [http://www.php.net/apc APC]&rlm;, [http://xcache.lighttpd.net/ XCache] או [http://www.iis.net/download/WinCacheForPhp WinCache].\nמטמון עצמים לא מופעל.",
+    "config-mod-security": "'''אזהרה''': בשרת הווב שלכם מופעל [http://modsecurity.org/ mod_security]. אם הוא לא מוגדר טוב, זה יכול לגרום לבעיות במדיה־ויקי ובתכנה אחרת שמאפשרת למשתמשים לשלוח תוכן שרירותי.\nקראו את [http://modsecurity.org/documentation/ התיעוד של mod_security] או צרו קשר עם אנשי התמיכה של שירותי האירוח שלכם אם אתם נתקלים בשגיאות אקראיות.",
+    "config-diff3-bad": "GNU diff3 לא נמצא.",
+    "config-imagemagick": "נמצא ImageMagick&rlm;: <code dir=\"ltr\">$1</code>.\nמזעור תמונות יופעל, אם תפעילו את האפשרות להעלות קבצים.",
+    "config-gd": "נמצאה ספריית הגרפיקה GD המובנית.\nמזעור תמונות יופעל, אם תפעילו את האפשרות להעלות קבצים.",
+    "config-no-scaling": "ספריית GD או ImageMagick לא נמצאו.\nמזעור תמונות לא יופעל.",
+    "config-no-uri": "'''שגיאה:''' אי־אפשר לזהות את הכתובת הנוכחית.\nההתקנה בוטלה.",
+    "config-no-cli-uri": "אזהרה: לא הוגדר <span dir=\"ltr\">--scriptpath</span>, משתמש בבררת המחדל: <code dir=\"ltr\">$1</code>.",
+    "config-using-server": "שם השרת בשימוש: \"<nowiki>$1</nowiki>\".",
+    "config-using-uri": "נעשה שימוש בכתובת השרת \"<nowiki>$1$2</nowiki>\".",
+    "config-uploads-not-safe": "'''אזהרה:''' תיקיית ההעלאות ההתחלתית <code>$1</code> חשופה להרצת סקריפטים שרירותיים.\nמדיה־ויקי בודקת את כל הקבצים המוּעלים לאיומי אבטחה, מומלץ מאוד למנוע את [//www.mediawiki.org/wiki/Manual:Security#Upload_security פרצת האבטחה] הזאת לפני שאתם מפעילים את ההעלאות.",
+    "config-no-cli-uploads-check": "'''אזהרה:''' תיקיית בררת המחדל להעלאות (<code>$1</code>) לא נבדקת לפגיעוּת להרצת תסריטים אקראיים בזמן התקנה דרך CLI.",
+    "config-brokenlibxml": "במערכת שלכם יש שילוב של גרסאות של PHP ושל libxml2 שחשוף לבאגים ויכול לגרום לעיוות נתונים נסתר במדיה־ויקי וביישומי רשת אחרים.\nשדרגו ל־PHP 5.2.9 או לגרסה חדשה יותר ול־libxml2 2.7.3 או גרסה חדשה יותר ([//bugs.php.net/bug.php?id=45996 באג מתויק ב־PHP]).\nההתקנה בוטלה.",
+    "config-using531": "אי־אפשר להשתמש במדיה־ויקי עם <span dir=\"ltr\">PHP $1</span> בגלל באג בפרמטרים של הפניות (reference parameters) ל־<code dir=\"ltr\">__call()</code>.\nשדרגו ל־PHP 5.3.2 או לגרסה גבוהה יותר כדי לתקן את זה ([//bugs.php.net/bug.php?id=50394 bug filed with PHP]) או שַנמכו ל־PHP 5.3.0 כדי לפתור את הבעיה הזאת.\nההתקנה בוטלה.",
+    "config-suhosin-max-value-length": "מותקן פה Suhosin והוא מגביל את אורך פרמטר GET ל־$1 בתים. רכיב ResourceLoader של מדיה־ויקי יעקוף את המגלבה הזאת, אבל זה יפגע בביצועים. אם זה בכלל אפשרי, כדאי לתקן את הערך של <code>suhosin.get.max_value_length</code> ל־1024 או יותר בקובץ <code>php.ini</code> ולהגדיר את ‎<code>$wgResourceLoaderMaxQueryLength</code> לאותו הערך בקובץ LocalSettings.php.",
+    "config-db-type": "סוג מסד הנתונים:",
+    "config-db-host": "שרת מסד הנתונים:",
+    "config-db-host-help": "אם שרת מסד הנתונים שלכם נמצא על שרת אחר, הקלידו את שם המחשב או את כתובת ה־IP כאן.\n\nאם אתם משתמשים באירוח משותף, ספק האירוח שלכם אמור לתת לכם את שם השרת הנכון במסמכים.\n\nאם אתם מתקינים בשרת Windows ומשתמשים ב־MySQL, השימוש ב־localhost עשוי לא לעבוד. אם הוא לא עובד, נסו את \"127.0.0.1\" בתור כתובת ה־IP המקומית.\n\nאם אתם משתמשים ב־PostgreSQL, תשאירו את השדה הזה ריק כדי להתחבר דרך שקע יוניקס.",
+    "config-db-host-oracle": "TNS של מסד הנתונים:",
+    "config-db-host-oracle-help": "הקלידו [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm שם חיבור מקומי (Local Connect Name)] תקין; הקובץ tnsnames.ora צריך להיות זמין להתקנה הזאת.<br />\nאם אתם משתמשים ב־client libraries 10g או בגרסה חדשה יותר, אתם יכולים גם להשתמש בשיטת מתן השמות [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
+    "config-db-wiki-settings": "זיהוי ויקי זה",
+    "config-db-name": "שם מסד הנתונים:",
+    "config-db-name-help": "בחרו שם שמזהה את הוויקי שלכם.\nלא צריכים להיות בו רווחים.\n\nאם אתם משתמשים באירוח משותף, ספק האירוח שלכם ייתן לכם שם מסד נתונים מסוים שתוכלו להשתמש בו או יאפשר לכם ליצור מסד נתונים דרך לוח בקרה.",
+    "config-db-name-oracle": "סכמה של מסד נתונים:",
+    "config-db-account-oracle-warn": "קיימים שלושה תרחישים נתמכים עבור התקנת אורקל בתור מסד הנתונים:\n\nאם אתם רוצים ליצור חשבון מסד נתונים כחלק מתהליך ההתקנה, נא לספק חשבון בעל תפקיד SYSDBA בתור חשבון מסד הנתונים עבור ההתקנה ולציין את האישורים המבוקשים עבור חשבון הגישה לאינטרנט, אחרת ניתן ליצור באופן ידני את חשבון הגישה לאינטרנט, ולספק חשבון זה בלבד (אם יש לו ההרשאות הדרושות ליצירת עצמי סכמה) או לספק שני חשבונות שונים, אחד עם הרשאות יצירה ואחד מוגבלת עבור גישה לאינטרנט.\n\nסקריפט ליצירת חשבון עם ההרשאות הנדרשות ניתן למצוא בתיקייה \"<span dir=\"ltr\">maintenance/oracle/</span>\" של ההתקנה זו. זכרו כי שימוש בחשבון מוגבל יגרום להשבתת כל יכולות תחזוקה עם חשבון בררת המחדל.",
+    "config-db-install-account": "חשבון משתמש להתקנה",
+    "config-db-username": "שם המשתמש במסד הנתונים:",
+    "config-db-password": "הססמה במסד הנתונים:",
+    "config-db-password-empty": "נא להזין ססמה למשתמש מסד הנתונים החדש: $1.\nאף־על־פי שאפשר ליצור חשבונות ללא ססמה, זה לא מאובטח.",
+    "config-db-install-username": "הכניסו שם משתמש שישמש אתכם לחיבור למסד נתונים במהלך ההתקנה.\nזהו לא שם משתמש לחשבון במדיה־ויקי; זהו שם משתמש בשרת מסד נתונים.",
+    "config-db-install-password": "הקלידו ססמה שתשמש אתכם לצורך חיבור למסד נתונים במהלך ההתקנה.\nזוהי לא ססמה של חשבון במדיה־ויקי; זוהי ססמה לשרת מסד נתונים.",
+    "config-db-install-help": "הקלידו את שם המשתמש ואת הססמה להתחברות למסד הנתונים במהלך ההתקנה.",
+    "config-db-account-lock": "להשתמש באותו שם המשתמש ובאותה ססמה בזמן הפעלה רגילה",
+    "config-db-wiki-account": "חשבון משתמש להפעלה רגילה",
+    "config-db-wiki-help": "הקלידו את שם המשתמש והססמה לחיבור למסד הנתונים במהלך פעילות רגילה של הוויקי.\nאם החשבון אינו קיים ולחשבון שבו מתבצעת ההתקנה יש הרשאות מספיקות, החשבון הזה ייווצר עם ההרשאות המזעריות הנחוצות להפעלת הוויקי.",
+    "config-db-prefix": "תחילית לטבלאות של מסד נתונים (database table prefix):",
+    "config-db-prefix-help": "אם אתם צריכים לשתף מסד נתונים אחד בין אתרי ויקי שונים או בין מדיה־ויקי ויישום וב אחר, תוכלו לבחור להוסיף תחילית וכל שמות הטבלאות כדי להימנע מהתנגשויות.\nאל תשתמשו ברווחים.\n\nהשדה הזה בדרך כלל אמור להיות ריק.",
+    "config-db-charset": "קבוצת התווים (character set) של מסד הנתונים",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 backwards-compatible UTF-8",
+    "config-charset-help": "'''אזהרה:''' אם אתם משתמשים ב־'''backwards-compatible UTF-8''' ב־<span dir=\"ltr\">MySQL 4.1+</span>, ומגבים את מסד הנתונים באמצעות <code>mysqldump</code>, זה יכול להרוס את כל תווי ה־ASCII ויהרוס באופן בלתי־הפיך את הגיבויים שלכם!\n\nב'''מצב בינרי''' (binary mode) מדיה־ויקי שומרת טקסט UTF-8 במסד הנתונים בשדות בינריים.\nזה יעיל יותר ממצב UTF-8 של MySQL ומאפשר לכם להשתמש בכל הטווח של תווי יוניקוד.\nב'''מצב UTF-8'''&rlm; (UTF-8 mode)&rlm; MySQL יֵדַע מה קבוצת התווים (character set) של הטקסט שלכם ויציג וימיר אותו בהתאם, אבל לא יאפשר לכם לשמור תווים שאינם נמצאים בטווח הרב־לשוני הבסיסי ([//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane]).",
+    "config-mysql-old": "נדרשת גרסה <span dir=\"ltr\">$1</span> של MySQL או גרסה חדשה יותר. הגרסה הנוכחית שלכם היא $2.",
+    "config-db-port": "פִּתְחַת מסד הנתונים (database port):",
+    "config-db-schema": "סכמה למדיה־ויקי",
+    "config-db-schema-help": "הסְכֵמָה הבאה בדרך כלל מתאימה.\nשנו אותה רק אם אתם יודעים שאתם חייבים.",
+    "config-pg-test-error": "ההתחברות למסד הנתונים '''$1''' לא מצליחה: $2",
+    "config-sqlite-dir": "תיקיית נתונים (data directory) של SQLite:",
+    "config-sqlite-dir-help": "SQLite שומר את כל הנתונים בקובץ אחד.\n\nלשרת הווב צריכה להיות הרשאה לכתוב לתיקייה שאתם מגדירים.\n\nהיא לא צריכה נגישה לכולם דרך האינטרנט – בגלל זה איננו שמים אותה באותו מקום עם קובצי ה־PHP.\n\nתוכנת ההתקנה תכתוב קובץ <code dir=\"ltr\">.htaccess</code> יחד אִתו, אבל אם זה ייכשל, מישהו יוכל להשיג גישה למסד הנתונים שלכם. שם נמצא מידע מפורש של משתמשים (כתובות דוא״ל, ססמאות מגובבות) וגם גרסאות מחוקות של דפים ומידע מוגבל אחר.\n\nכדאי לשקול לשים את מסד הנתונים במקום אחר לגמרי, למשל ב־<code dir=\"ltr\">/var/lib/mediawiki/yourwik</code>.",
+    "config-oracle-def-ts": "מרחב טבלאות לפי בררת מחדל (default tablespace):",
+    "config-oracle-temp-ts": "מרחב טבלאות זמני (temporary tablespace):",
+    "config-support-info": "מדיה־ויקי תומכת במערכות מסדי הנתונים הבאות:\n\n$1\n\nאם אינכם רואים את מסד הנתונים שלכם ברשימה, עקבו אחר ההוראות המקושרות לעיל כדי להפעיל את התמיכה.",
+    "config-support-mysql": "* $1 הוא היעד העיקרי עבור מדיה־ויקי ולו התמיכה הטובה ביותר (ר׳ [http://www.php.net/manual/en/mysql.installation.php how to compile PHP with MySQL support])",
+    "config-support-postgres": "$1 הוא מסד נתונים נפוץ בקוד פתוח והוא נפוץ בתור חלופה ל־MySQL (ר׳ [http://www.php.net/manual/en/pgsql.installation.php how to compile PHP with PostgreSQL support]). ייתכן שיש בתצורה הזאת באגים מסוימים והיא לא מומלצת לסביבות מבצעיות.",
+    "config-support-sqlite": "* $1 הוא מסד נתונים קליל עם תמיכה טובה מאוד. (ר׳ [http://www.php.net/manual/en/pdo.installation.php How to compile PHP with SQLite support], משתמש ב־PDO)",
+    "config-support-oracle": "* $1 הוא מסד נתונים עסקי מסחרי. (ר׳ [http://www.php.net/manual/en/oci8.installation.php How to compile PHP with OCI8 support])",
+    "config-header-mysql": "הגדרות MySQL",
+    "config-header-postgres": "הגדרות PostgreSQL",
+    "config-header-sqlite": "הגדרות SQLite",
+    "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 בלתי תקין.\nיש להשתמש רק באותיות ASCII&rlm; (a עד z&rlm;, A עד Z), סְפָרוֹת (0 עד 9), קווים תחתיים (_) ונקודות (.).",
+    "config-invalid-db-name": "\"$1\" הוא שם מסד נתונים בלתי תקין.\nיש להשתמש רק באותיות ASCII&rlm; (a עד z&rlm;, A עד Z), סְפָרוֹת (0 עד 9), קווים תחתיים (_) ומינוסים (-).",
+    "config-invalid-db-prefix": "\"$1\" היא תחילית מסד נתונים בלתי תקינה.\nיש להשתמש רק באותיות ASCII&rlm; (a עד z&rlm;, A עד Z), סְפָרוֹת (0 עד 9), קווים תחתיים (_) ומינוסים (-).",
+    "config-connection-error": "<div dir=\"ltr\">$1.</div>\n\nבדקו את שם השרת, את שם המשתמש ואת הססמה בטופס להלן ונסו שוב.",
+    "config-invalid-schema": "\"$1\" היא סכמה לא תקינה עבור מדיה־ויקי.\nיש להשתמש רק באותיות ASCII&rlm; (a עד z&rlm;, A עד Z), סְפָרוֹת (0 עד 9) וקווים תחתיים (_).",
+    "config-db-sys-create-oracle": "תוכנית ההתקנה תומכת רק בשימוש בחשבון SYSDBA ליצירת חשבון חדש.",
+    "config-db-sys-user-exists-oracle": "חשבון המשתמש \"$1\" כבר קיים. SYSDBA יכול לשמש רק ליצירת חשבון חדש!",
+    "config-postgres-old": "נדרש PostgreSQL $1 או גרסה חדשה יותר, הגרסה הנוכחית שלכם היא $2.",
+    "config-sqlite-name-help": "בחרו בשם שמזהה את הוויקי שלכם.\nאל תשתמשו ברווחים או במינוסים.\nזה יהיה שם קובץ הנתונים ל־SQLite.",
+    "config-sqlite-parent-unwritable-group": "לא ניתן ליצור את תיקיית הנתונים <code><nowiki>$1</nowiki></code>, כי לשָׁרַת הווב אין הרשאות לכתוב לתיקיית האם <code><nowiki>$2</nowiki></code> .\n\nתוכנת ההתקנה זיהתה את החשבון שתחתיו רץ שרת הווב שלכם.\nאפשרו לשָׁרַת הווב לכתוב לתיקייה <code><nowiki>$3</nowiki></code>.\nבמערכת Unix/Linux כִתבו:\n\n<div dir=\"ltr\"><pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre></div>",
+    "config-sqlite-parent-unwritable-nogroup": "לא ניתן ליצור את תיקיית הנתונים <code><nowiki>$1</nowiki></code>, כי לשָׁרַת הווב אין הרשאות לכתוב לתיקיית האם <code><nowiki>$2</nowiki></code> .\n\nתוכנת ההתקנה לא זיהתה את החשבון שתחתיו רץ שרת הווב שלכם.\nאפשרו לכל החשבונות לכתוב לתיקייה <code><nowiki>$3</nowiki></code> כדי להמשיך.\nבמערכת Unix/Linux כִתבו:\n\n<div dir=\"ltr\"><pre>cd $2\nmkdir $3\nchmod a+w $3</pre></div>",
+    "config-sqlite-mkdir-error": "אירעה שגיאה בעת יצירת תיקיית הנתונים \"$1\".\nנא לבדוק את המיקום ולנסות שוב.",
+    "config-sqlite-dir-unwritable": "אי־אפשר לכתוב לתיקייה \"$1\".\nשנו את ההרשאות שלה כך ששרת הווב יוכל לכתוב אליה ונסו שוב.",
+    "config-sqlite-connection-error": "$1.\n\nבִדקו את תיקיית הנתונים את שם מסת הנתונים להלן ונסו שוב.",
+    "config-sqlite-readonly": "לא ניתן לכתוב אל הקובץ <code>$1</code>.",
+    "config-sqlite-cant-create-db": "לא ניתן ליצור את קובץ מסד הנתונים <code>$1</code>.",
+    "config-sqlite-fts3-downgrade": "ב־PHP חסרה תמיכה ב־FTS3, יבתצע שנמוך טבלאות",
+    "config-can-upgrade": "יש טבלאות מדיה־ויקי במסד הנתונים.\nכדי לשדרג אותן למדיה־ויקי $1, לחצו '''המשך'''.",
+    "config-upgrade-done": "השדרוג הושלם.\n\nעכשיו אפשר [$1 להשתמש בוויקי שלכם].\n\nאם תרצו ליצור מחדש את קובץ ה־<code>LocalSettings.php</code> שלכם, לחצו על הכפתור להלן.\nזה '''לא מומלץ''', אלא אם כן יש לכם בעיות עם הוויקי שלכם.",
+    "config-upgrade-done-no-regenerate": "השדרוג הושלם.\n\nעכשיו אפשר [$1 להתחיל להשתמש בוויקי שלכם].",
+    "config-regenerate": "לחולל מחדש את LocalSettings.php ←",
+    "config-show-table-status": "שאילתת <code>SHOW TABLE STATUS</code> נכשלה!",
+    "config-unknown-collation": "'''אזהרה:''' מסד הנתונים משתמש בשיטת מיון שאינה מוּכּרת.",
+    "config-db-web-account": "חשבון במסד הנתונים לגישה מהרשת",
+    "config-db-web-help": "לבחור את שם המשתמש ואת הססמה ששרת הווב ישתמש בו להתחברות לשרת מסד הנתונים בזמן פעילות רגילה של הוויקי.",
+    "config-db-web-account-same": "להשתמש באותו חשבון כמו עבור ההתקנה",
+    "config-db-web-create": "ליצור חשבון אם הוא אינו קיים כבר.",
+    "config-db-web-no-create-privs": "לחשבון שהקלדתם להתקנה אין מספיק הרשאות ליצירת חשבות.\nהחשבון שאתם מקלידים כאן צריך להיות קיים.",
+    "config-mysql-engine": "מנגנון האחסון:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''אזהרה''': בחרתם ב־MyISAM בתור מנוע אחסון של MySQL, וזה לא מומלץ מהסיבות הבאות:\n* המנוע הזה בקושי תומך בעיבוד מקבילי בגלל נעילת טבלאות\n* הוא פחות עמיד בפני אובדן מידע ממנועים אחרים\n* הקוד של מדיה־ויקי לא תמיד מטפל ב־MyISAM כפי שצריך\n\nאם התקנת MySQL שלכם תומכת ב־InnoDB, מומלץ מאוד שתבחרו באפשרות הזאת.\nאם התקנת MySQL שלכם אינה תומכת ב־InnoDB, אולי זה הזמן לשקול לשדרג אותה.",
+    "config-mysql-engine-help": "'''InnoDB''' הוא כמעט תמיד האפשרות הטובה ביותר, כי במנוע הזה יש תמיכה טובה ביותר בעיבוד מקבילי.\n\n'''MyISAM''' עשוי להיות בהתקנות שמיועדות למשתמש אחד ולהתקנות לקריאה בלבד.\nמסדי נתונים עם MyISAM נוטים להיהרס לעתים קרובות יותר מאשר מסדי נתונים עם InnoDB.",
+    "config-mysql-charset": "ערכת הקידוד של מסד הנתונים:",
+    "config-mysql-binary": "בינרי",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "ב'''מצב בינרי''' (binary mode) מדיה־ויקי שומרת טקסט UTF-8 במסד הנתונים בשדות בינריים.\nזה יעיל יותר ממצב UTF-8 של MySQL ומאפשר לכם להשתמש בכל הטווח של תווי יוניקוד.\n\nב'''מצב UTF-8'''&rlm; (UTF-8 mode)&rlm; MySQL יֵדַע מה קבוצת התווים (character set) של הטקסט שלכם ויציג וימיר אותו בהתאם, אבל לא יאפשר לכם לשמור תווים שאינם נמצאים בטווח הרב־לשוני הבסיסי ([//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane]).",
+    "config-site-name": "שם הוויקי:",
+    "config-site-name-help": "זה יופיע בשורת הכותרת של הדפדפן ובמקומות רבים אחרים.",
+    "config-site-name-blank": "נא להזין שם לאתר.",
+    "config-project-namespace": "מרחב שמות לדפי מיזם:",
+    "config-ns-generic": "מיזם",
+    "config-ns-site-name": "זהה לשם הוויקי: $1",
+    "config-ns-other": "אחר (לציין)",
+    "config-ns-other-default": "הוויקי שלי",
+    "config-project-namespace-help": "בהתאם לדוגמה של ויקיפדיה, אתרי ויקי רבים שומרים על דפי המדיניות שלהם בנפרד מדפי התוכן שלהם ב\"'''מרחב השמות של המיזם'''\" (\"'''project namespace'''\").\nכל שמות הדפים במרחב השמות הזה מתחילים בתחילית מסוימת שאתם יכולים להגדיר כאן.\nבאופן מסורתי התחילית הזאת מבוססת על שם הוויקי, והיא אינה יכולה להכיל תווי פיסוק כגון \"#\" או \":\".",
+    "config-ns-invalid": "מרחב השמות \"<nowiki>$1</nowiki>\" אינו תקין.\nהקלידו שם אחר למרחב השמות של המיזם.",
+    "config-ns-conflict": "מרחב השמות שהגדרתם \"<nowiki>$1</nowiki>\" מתנגש עם מרחב שמות מובנה של מדיה־ויקי.\nהגדירו מרחב שמות מיזם שונה.",
+    "config-admin-box": "חשבון מפעיל",
+    "config-admin-name": "שמכם:",
+    "config-admin-password": "ססמה:",
+    "config-admin-password-confirm": "הססמה שוב:",
+    "config-admin-help": "הקלידו כאן את שם המשתמש, למשל \"שקד לוי\" או \"Joe Bloggs\".\nזה השם שישמש אתכם כדי להיכנס לוויקי.",
+    "config-admin-name-blank": "נא להזין את שם המשתמש של המפעיל.",
+    "config-admin-name-invalid": "שם המשתמש שהוקלד \"<nowiki>$1</nowiki>\" אינו תקין.\nהקלידו שם משתמש אחר.",
+    "config-admin-password-blank": "הקלידו ססמה לחשבון המפעיל.",
+    "config-admin-password-same": "הססמה לא יכולה להיות זהה לשם המשתמש.",
+    "config-admin-password-mismatch": "שתי הססמאות שהוזנו אינן מתאימות.",
+    "config-admin-email": "כתובת הדוא״ל:",
+    "config-admin-email-help": "הקלידו כתובת דוא״ל שתאפשר לכם לקבל מכתבים ממשתמשים אחרים בוויקי, לאתחל את הססמה, ולקבל הודעות על שינויים בדפים ברשימת המעקב שלכם. אפשר להשאיר את השדה הזה ריק.",
+    "config-admin-error-user": "שגיאה פנימית ביצירת מפעיל בשם \"<nowiki>$1</nowiki>\".",
+    "config-admin-error-password": "שגיאה פנימית בהגדרת ססמה עבור המפעיל \"<nowiki>$1</nowiki>\"&rlm;: <pre>$2</pre>",
+    "config-admin-error-bademail": "הכנסתם כתובת דוא״ל לא תקינה.",
+    "config-subscribe": "להירשם ל[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce רשימת התפוצה עם הודעות על גרסאות חדשות].",
+    "config-subscribe-help": "זוהי רשימת תפוצה עם הודעות מעטות שמשמשת להודעות על הוצאת גרסאות, כולל עדכוני אבטחה חשובים.\nמומלץ להירשם אליה ולעדכן את מדיה־ויקי כאשר יוצאות גרסאות חדשות.",
+    "config-subscribe-noemail": "ניסיתם להירשם לרשימת תפוצה של הודעות בלי לתת כתובת דוא\"ל.\nנא לתת כתובת דוא\"ל אם אתם רוצים להירשם לרשימת התפוצה.",
+    "config-almost-done": "כמעט סיימתם!\nאפשר לדלג על שאר ההגדרות ולהתקין את הוויקי כבר עכשיו.",
+    "config-optional-continue": "הצגת שאלות נוספות.",
+    "config-optional-skip": "משעמם לי, תתקינו לי כבר את הוויקי הזה.",
+    "config-profile": "תסריט הרשאות משתמשים:",
+    "config-profile-wiki": "ויקי פיתוח",
+    "config-profile-no-anon": "נדרשת יצירת חשבון",
+    "config-profile-fishbowl": "עורכים מורשים בלבד",
+    "config-profile-private": "ויקי פרטי",
+    "config-profile-help": "אתרי ויקי עובדים הכי טוב כאשר אתם מאפשרים לכמה שיותר אנשים לערוך אותם.\nבמדיה־ויקי קל לסקור את השינויים האחרונים ולשחזר כל נזק שעושים משתמשים תמימים או משחיתים.\n\nעם זאת, אנשים שונים מצאו למדיה־ויקי שימושים מגוּונים ולעתים לא קל לשכנע את כולם ביתרונות של \"דרך הוויקי\" המסורתית. ולכן יש לכם בררה.\n\nבאתר מסוג '''{{int:config-profile-wiki}}''' – לכולם יש הרשאה לערוך, אפילו בלי להיכנס לחשבון.\nבאתר וויקי מסוג '''{{int:config-profile-no-anon}}''' יש ביטחון גדול יותר, אבל הגדרה כזאת יכולה להרתיע תורמים מזדמנים.\n\nבתסריט '''{{int:config-profile-fishbowl}}''' רק משתמשים שקיבלו אישור יכולים לערוך, אבל כל הגולשים יכולים לקרוא את הדפים ואת גרסאותיהם הקודמות.\nב'''{{int:config-profile-private}}''' רק משתמשים שקיבלו אישור יכולים לקרוא ולערוך דפים.\n\nהגדרות מורכבות של הרשאות אפשריות אחרי ההתקנה, ר׳ את [//www.mediawiki.org/wiki/Manual:User_rights הפרק על הנושא הזה בספר ההדרכה].",
+    "config-license": "זכויות יוצרים ורישיון:",
+    "config-license-none": "ללא כותרת תחתית עם רישיון",
+    "config-license-cc-by-sa": "קריאייטיב קומונז–ייחוס–שיתוף זהה",
+    "config-license-cc-by": "קריאייטיב קומונז–ייחוס",
+    "config-license-cc-by-nc-sa": "קריאייטיב קומונז ייחוס–ללא שימוש מסחרי–שיתוף זהה",
+    "config-license-cc-0": "קריאייטיב קומונז אפס (נחלת הכלל)",
+    "config-license-gfdl": "רישיון חופשי למסמכים של גנו גרסה 1.3 או חדשה יותר",
+    "config-license-pd": "נחלת הכלל",
+    "config-license-cc-choose": "בחרו רישיון קריאייטיב קומונז מותאם אישית",
+    "config-license-help": "אתרי ויקי ציבוריים רבים מפרסמים את כל התרומות תחת [http://freedomdefined.org/Definition רישיון חופשי].\nזה עוזר ליצור תחושה של בעלות קהילתית ומעודד תרומה לאורך זמן.\nזה בדרך כלל לא נחוץ לאתר ויקי פרטי או בחברה מסחרית.\n\nאם אתם רוצים אפשרות להשתמש בטקסט מוויקיפדיה ואתם רוצים שוויקיפדיה תוכל לקבל עותקים של טקסטים מהוויקי שלכם, כדאי לכם לבחור ב'''רישיון קריאייטיב קומונז ייחוס–שיתוף זהה''' (CC BY-SA).\n\nויקיפדיה השתמשה בעבר ברישיון החופשי למסמכים של גנו (GNU FDL או GFDL).\nהוא עדיין רישיון תקין, אבל קשה להבנה.\nכמו־כן, קשה לעשות שימוש חוזר ביצירות שפורסמו לפי GFDL.",
+    "config-email-settings": "הגדרות דוא״ל",
+    "config-enable-email": "להפעיל דוא״ל יוצא",
+    "config-enable-email-help": "אם אתם רוצים שדוא״ל יעבוד, [http://www.php.net/manual/en/mail.configuration.php אפשרויות הדוא״ל של PHP] צריכות להיות מוגדרות נכון.\nאם אינכם רוצים להפעיל שום אפשרויות דוא״ל, כבו אותן כאן ועכשיו.",
+    "config-email-user": "להפעיל שליחת דוא״ל ממשתמש למשתמש",
+    "config-email-user-help": "לאפשר לכל המשתמשים לשלוח אחד לשני דוא״ל אם הם הפעילו את זה בהעדפות שלהם.",
+    "config-email-usertalk": "להפעיל הודעות על דף שיחת משתמש",
+    "config-email-usertalk-help": "לאפשר למשתמשים לקבל הודעות על שינויים בדפי המשתמש שלהם, אם הם הפעילו את זה בהעדפות שלהם.",
+    "config-email-watchlist": "הפעלת התרעה על רשימת המעקב",
+    "config-email-watchlist-help": "לאפשר למשתמשים לקבל הודעות על הדפים ברשימת המעקב שלהם אם הם הפעילו את זה בהעדפות שלהם.",
+    "config-email-auth": "הפעלת התרעה בדוא״ל",
+    "config-email-auth-help": "אם האפשרות הזאת מופעלת, משתמשים יצטרכו לאשר את כתובת הדוא״ל שלהם באמצעות קישור שיישלח אליהם בכל פעם שהם יגדירו או ישנו אותה.\nרק כתובות דוא״ל מאושרות יכולות לקבלת דוא״ל ממשתמשים אחרים או מכתבים עם הודעות על שינויים.\n'''מומלץ''' להגדיר את האפשרות הזאת לאתרי ויקי ציבוריים כי אפשר לעשות שימוש לרעה בתכונות הדוא״ל.",
+    "config-email-sender": "כתובת דוא״ל לתשובות:",
+    "config-email-sender-help": "הכניסו את כתובת הדוא״ל שתשמש ככתובת לתשובה לכל הדואר היוצא.\nלשם יישלחו תגובות שגיאה (bounce).\nשרתי דוא״ל רבים דורשים שלפחות החלק של המתחם יהיה תקין.",
+    "config-upload-settings": "העלאת קבצים ותמונות",
+    "config-upload-enable": "להפעיל העלאת קבצים",
+    "config-upload-help": "העלאות קבצים חושפות את השרת שלכם לסיכוני אבטחה.\nלמידע נוסף, קִראו את [//www.mediawiki.org/wiki/Manual:Security חלק האבטחה] בספר ההדרכה.\n\nכדי להפעיל העלאת קבצים שנו את ההרשאות של התיקייה <code>images</code> תחת תיקיית השורש של מדיה־ויקי כך ששרת הווב יוכל לכתוב אליה.\nזה מפעיל את האפשרות הזאת.",
+    "config-upload-deleted": "תיקיית לקבצים שנמחקו:",
+    "config-upload-deleted-help": "בחרו את התיקייה לארכוב קבצים מחוקים.\nכדאי שזה לא יהיה נגיש לכל העולם דרך הרשת.",
+    "config-logo": "כתובת הסמל:",
+    "config-logo-help": "המראה ההתחלתי של מדיה־ויקי מכיל מקום לסמל של 135 על 160 פיקסלים בפינה העליונה מעל תפריט הצד.\nיש להעלות תמונה בגודל מתאים ולהכניס את הכתובת כאן.\n\nאם אינכם רוצים סמל, השאירו את התיבה הזאת ריקה.",
+    "config-instantcommons": "להפעיל את Instant Commons",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] היא תכונה שמאפשרת לאתרי ויקי להשתמש בתמונות, בצלילים ובמדיה אחרת שנמצאת באתר [//commons.wikimedia.org/ ויקישיתוף] (Wikimedia Commons).\nכדי לעשות את זה, מדיה־ויקי צריך לגשת לאינטרנט.\n\nלמידע נוסף על התכונה הזאת, כולל הוראות איך להפעיל את זה לאתרי ויקי שאינם ויקישיתוף, ר׳ [//mediawiki.org/wiki/Manual:$wgForeignFileRepos את ספר ההדרכה].",
+    "config-cc-error": "בורר רישיונות קריאייטיב קומונז לא החזיר שום תוצאה.\nהקלידו את שם הרישיון ידנית.",
+    "config-cc-again": "נא לבחור שוב...",
+    "config-cc-not-chosen": "בחרו באיזה רישיון קריאייטיב קומונז להשתמש ולחצו \"המשך\".",
+    "config-advanced-settings": "הגדרות מתקדמות",
+    "config-cache-options": "הגדרות למטמון עצמים (object caching):",
+    "config-cache-help": "מטמון עצמים משמש לשיפור המהירות של מדיה־ויקי על־ידי שמירה של נתונים שהשימוש בהם נפוץ במטמון.\nלאתרים בינוניים וגדולים כדאי מאוד להפעיל את זה, וגם אתרים קטנים ייהנו מזה.",
+    "config-cache-none": "ללא מטמון (שום יכולת אינה מוּסרת, אבל הביצועים באתרים גדולים ייפגעו)",
+    "config-cache-accel": "מטמון עצמים (object caching) של PHP&rlm; (APC&rlm;, XCache או WinCache)",
+    "config-cache-memcached": "להשתמש ב־Memcached (דורש התקנות והגדרות נוספות)",
+    "config-memcached-servers": "שרתי Memcached:",
+    "config-memcached-help": "רשימת כתובות IP ש־Memcached ישתמש בהן.\nיש לרשום כתובת אחת בכל שורה ולציין את הפִּתְחָה (port), למשל:\n 127.0.0.1:11211\n 192.168.1.25:1234",
+    "config-memcache-needservers": "בחרת ב־Memcached בתתור סוג המטמון שלכם, אבל לא הגדרתם שום שרת.",
+    "config-memcache-badip": "הקלדתם כתובת IP בלתי תקינה ל־Memcached&lrm;: $1.",
+    "config-memcache-noport": "לא הגדרתם פתחה לשימוש שרת Memcached&rlm;: $1.\nאם אינכם יודעים את מספר הפתחה, בררת המחדל היא 11211.",
+    "config-memcache-badport": "מספרי פתחה של Memcached צריכים להיות בין $1 ל־$2",
+    "config-extensions": "הרחבות",
+    "config-extensions-help": "ההרחבות ברשימה לעיל התגלו בתיקיית <span dir=\"ltr\"><code>./extensions</code></span> שלכם.\n\nייתכן שזה ידרוש הגדרות נוספות, אבל תוכלו להפעיל אותן עכשיו.",
+    "config-install-alreadydone": "'''אזהרה:''' נראה שכבר התקנתם את מדיה־ויקי ואתם מנסים להתקין אותה שוב.\nאנה התקדמו לדף הבא.",
+    "config-install-begin": "כשתלחצו על \"{{int:config-continue}}\", תתחילו את ההתקנה של מדיה־ויקי.\nאם אתם עדיין רוצים לשנות משהו, לחצו על \"{{int:config-back}}\"",
+    "config-install-step-done": "בוצע",
+    "config-install-step-failed": "נכשל",
+    "config-install-extensions": "כולל הרחבות",
+    "config-install-database": "הקמת מסד נתונים",
+    "config-install-schema": "יצירת סכמה",
+    "config-install-pg-schema-not-exist": "סכמה של PostgreSQL אינה קיימת",
+    "config-install-pg-schema-failed": "יצירת טבלאות נכשלה.\nודאו כי המשתמש \"$1\" יכול לכתוב לסכמה \"$2\".",
+    "config-install-pg-commit": "שמירת שינויים",
+    "config-install-pg-plpgsql": "בדיקת שפת PL/pgSQL",
+    "config-pg-no-plpgsql": "צריך להתקין את שפת PL/pgSQL במסד הנתונים $1",
+    "config-pg-no-create-privs": "לחשבון שהגדרתם להתקנה אין מספיק הרשאות ליצירת חשבון.",
+    "config-pg-not-in-role": "החשבון שציינתם עבור משתמש שרת הווב כבר קיים.\nהחשבון שסיפקתם להתקנה אינו חשבון בעל הרשאות (superuser) ואינו חבר בתפקיד (role) של משתמש שרת הווב, אז אין אפשרות ליצור עצמים בבעלות משתמש שרת הווב.\n\nכעת נדרש במדיה־ויקי שהטבלאות יהיו בבעלות של משתמש שרת הווב. נא לציין שם חשבון שרת וב אחר או ללחוץ על כפתור \"אחורה\" ולציין משתמש התקנה בעל הרשאות מתאימות.",
+    "config-install-user": "יצירת חשבון במסד נתונים",
+    "config-install-user-alreadyexists": "המשתמש \"$1\" כבר קיים",
+    "config-install-user-create-failed": "יצירת משתמש \"$1\" נכשלה: $2",
+    "config-install-user-grant-failed": "מתן הרשאות למשתמש \"$1\" נכשל: $2",
+    "config-install-user-missing": "המשתמש \"$1\" שצוין אינו קיים.",
+    "config-install-user-missing-create": "המשתמש \"$1\" שצוין אינו קיים.\nנא ללחוץ על תיבת בסימון \"יצירת חשבון\" להלן אם אתם רוצים ליצור אותו.",
+    "config-install-tables": "יצירת טבלאות",
+    "config-install-tables-exist": "'''אזהרה:''' נראה שטבלאות מדיה־ויקי כבר קיימות.\nמדלג על יצירתן.",
+    "config-install-tables-failed": "'''שגיאה:''' יצירת הטבלה נכשלה עם השגיאה הבאה: $1",
+    "config-install-interwiki": "אכלוס טבלת בינוויקי התחלתית",
+    "config-install-interwiki-list": "קריאת הקובץ <code>interwiki.list</code> לא הצליחה.",
+    "config-install-interwiki-exists": "'''אזהרה:''': נראה שבטבלת הבינוויקי כבר יש רשומות.\nמדלג על הרשומה ההתחלתית.",
+    "config-install-stats": "אתחול סטטיסטיקות",
+    "config-install-keys": "יצירת מפתחות סודיים",
+    "config-insecure-keys": "'''אזהרה''': {{PLURAL:$2|מפתח|מפתחות}} אבטחה ($1) {{PLURAL:$2|שנוצר|שנוצרו}} במהלך ההתקנה {{PLURAL:$2|אינו בטוח|אינם בטוחים}} מספיק. מומלץ לשקול לשנות {{PLURAL:$2|אותו|אותם}} ידנית.",
+    "config-install-sysop": "יצירת חשבון מפעיל",
+    "config-install-subscribe-fail": "הרישום ל־mediawiki-announce לא הצליח: $1",
+    "config-install-subscribe-notpossible": "cURL אינה מותקנת ו־allow_url_fopen אינה זמינה.",
+    "config-install-mainpage": "יצירת דף ראשי עם תוכן התחלתי.",
+    "config-install-extension-tables": "יצירת טבלאות להרחבות מופעלות",
+    "config-install-mainpage-failed": "לא הצליחה הכנסת דף ראשי: $1.",
+    "config-install-done": "'''מזל טוב!'''\nהתקנתם בהצלחה את מדיה־ויקי.\n\nתוכנת ההתקנה יצרה את הקובץ <code>LocalSettings.php</code>.\nהוא מכיל את כל ההגדרות שלכם.\n\nתצטרכו להוריד אותו ולשים אותו בבסיס ההתקנה של הוויקי שלכם (אותה התיקייה שבה נמצא הקובץ index.php). ההורדה הייתה אמורה להתחיל באופן אוטומטי.\n\nאם ההורדה לא התחילה, או אם ביטלתם אותה, אפשר להתחיל אותה מחדש בלחיצה על הקישור הבא:\n\n$3\n\n'''שימו לב''': אם לא תעשו זאת עכשיו, קובץ ההגדרות המחוּלל לא יהיה זמין לכם שוב.\n\nאחרי שתעשו את זה, תוכלו '''[$2 להיכנס לוויקי שלכם]'''.",
+    "config-download-localsettings": "הורדת <code>LocalSettings.php</code>",
+    "config-help": "עזרה",
+    "config-nofile": "הקובץ \"$1\" לא נמצא. האם הוא נמחק?",
+    "mainpagetext": "'''תוכנת מדיה־ויקי הותקנה בהצלחה.'''",
+    "mainpagedocfooter": "היעזרו ב[//meta.wikimedia.org/wiki/Help:Contents מדריך למשתמש] למידע על שימוש בתוכנת הוויקי.\n\n== קישורים שימושיים ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings רשימת ההגדרות]\n* [//www.mediawiki.org/wiki/Manual:FAQ שאלות ותשובות על מדיה־ויקי]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce רשימת התפוצה על השקת גרסאות]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources תרגום מדיה־ויקי לשפה שלך]"
+}
diff --git a/includes/installer/i18n/hi.json b/includes/installer/i18n/hi.json
new file mode 100644 (file)
index 0000000..44e2183
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''मीडियाविकिका इन्स्टॉलेशन पूरा हो गया हैं ।'''",
+    "mainpagedocfooter": "विकि सॉफ्टवेयरके इस्तेमाल के लिये [//meta.wikimedia.org/wiki/Help:Contents उपयोगकर्ता गाईड] देखें ।\n\n== शुरुवात करें ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings कॉन्फिगरेशन सेटींगकी सूची]\n* [//www.mediawiki.org/wiki/Manual:FAQ मीडियाविकिके बारे में प्राय: पूछे जाने वाले सवाल]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce मीडियाविकि मेलिंग लिस्ट]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/hif-latn.json b/includes/installer/i18n/hif-latn.json
new file mode 100644 (file)
index 0000000..9db833b
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Thakurji"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki ke safalta se install kar dewa gais hai.'''",
+    "mainpagedocfooter": "Wiki software ke use kare ke aur jaankari ke khatir [//meta.wikimedia.org/wiki/Help:Contents User's Guide] ke dekho.\n\n== Getting started ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/hil.json b/includes/installer/i18n/hil.json
new file mode 100644 (file)
index 0000000..8822f9b
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Anjoeli9806"
+        ]
+    },
+    "mainpagetext": "'''Ang MediaWiki madinalag-on nga na-instala.'''",
+    "mainpagedocfooter": " Magkonsulta sa [//meta.wikimedia.org/wiki/Help:Contents User's Guide] para sa mga impormasyon sa paggamit sang wiki nga software.\n\n== Pag-umpisa ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista sang mga konpigorasyon sang pagkay-o]\n* [//www.mediawiki.org/wiki/Manual:FAQ Mga Masami Pamangkoton sa MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista sang mga ginapadal-an sang sulat kon may paguha-on nga MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/hr.json b/includes/installer/i18n/hr.json
new file mode 100644 (file)
index 0000000..6b14f7a
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Softver MediaWiki je uspješno instaliran.'''",
+    "mainpagedocfooter": "Pogledajte [//meta.wikimedia.org/wiki/MediaWiki_localisation dokumentaciju o prilagodbi sučelja]\ni [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Vodič za suradnike] za pomoć pri uporabi i podešavanju."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/hsb.json b/includes/installer/i18n/hsb.json
new file mode 100644 (file)
index 0000000..f6e557f
--- /dev/null
@@ -0,0 +1,259 @@
+{
+    "@metadata": {
+        "authors": [
+            "Michawiki",
+            "아라"
+        ]
+    },
+    "config-desc": "Instalaciski program za MediaWiki",
+    "config-title": "Instalacija MediaWiki $1",
+    "config-information": "Informacije",
+    "config-localsettings-upgrade": "Dataja <code>LocalSettings.php</code> je so wotkryła.\nZo by tutu instalaciju aktualizował, zapodaj prošu hódnotu za parameter <code>$wgUpgradeKey</code> do slědowaceho pola.\nNamakaš tón parameter w dataji <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Dataja <code>LocalSettings.php</code> bu wotkryta.\nZo by tutu instalaciju aktualizował, wuwjedźće <code>update.php</code>",
+    "config-localsettings-key": "Aktualizaciski kluč:",
+    "config-localsettings-badkey": "Kluč, kotryž sy podał, je wopak",
+    "config-upgrade-key-missing": "Eksistowaca instalacija MediaWiki je so wotkryła.\nZo by tutu instalaciju aktualizował, staj prošu slědowacu linku deleka w dataji <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "Zda so, zo eksistwoaca dataja <code>LocalSettings.php</code> je njedospołna.\nWariabla $1 njeje nastajena.\nProšu změń dataju <code>LocalSettings.php</code>, zo by so tuta wariabla nastajiła a klikń na \"{{int:Config-continue}}\".",
+    "config-localsettings-connection-error": "Při zwjazowanju z datowej banku z pomocu nastajenjow podatych w <code>LocalSettings.php</code> abo <code>AdminSettings.php</code> je zmylk wustupił. Prošu skoriguj tute nastajenja a spytaj hišće raz.\n\n$1",
+    "config-session-error": "Zmylk při startowanju posedźenja: $1",
+    "config-session-expired": "Zda so, zo twoje posedźenske daty su spadnjene.\nPosedźenja su za čas žiwjenja $1 skonfigurowane.\nMóžeš jón přez nastajenje <code>session.gc_maxlifetime</code> w php.ini powyšić.\nStartuj instalaciski proces znowa.",
+    "config-no-session": "Twoje posedźenske daty su so zhubili!\nSkontroluj swój php.ini a zawěsć, zo <code>session.save_path</code> je na prawy zapis nastajeny.",
+    "config-your-language": "Twoja rěč:",
+    "config-your-language-help": "Wubjer rěč, kotraž ma so za instalaciski proces wužiwać.",
+    "config-wiki-language": "Wikirěč:",
+    "config-wiki-language-help": "Wubjer rěč, w kotrejž wiki ma so zwjetša pisać.",
+    "config-back": "← Wróćo",
+    "config-continue": "Dale →",
+    "config-page-language": "Rěč",
+    "config-page-welcome": "Witaj do MediaWiki!",
+    "config-page-dbconnect": "Z datowej banku zwjazać",
+    "config-page-upgrade": "Eksistowacu instalaciju aktualizować",
+    "config-page-dbsettings": "Nastajenja datoweje banki",
+    "config-page-name": "Mjeno",
+    "config-page-options": "Opcije",
+    "config-page-install": "Instalować",
+    "config-page-complete": "Dokónčeny!",
+    "config-page-restart": "Instalaciju znowa startować",
+    "config-page-readme": "Čitaj mje",
+    "config-page-releasenotes": "Wersijowe informacije",
+    "config-page-copying": "Kopěrowanje",
+    "config-page-upgradedoc": "Aktualizowanje",
+    "config-page-existingwiki": "Eksistowacy wiki",
+    "config-help-restart": "Chceš wšě składowane daty hašeć, kotrež sy zapodał a instalaciski proces znowa startować?",
+    "config-restart": "Haj, znowa startować",
+    "config-sidebar": "* [//www.mediawiki.org MediaWiki Startowa strona MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents Nawod za wužiwarjow]\n* [//www.mediawiki.org/wiki/Manual:Contents Nawod za administratorow]\n* [//www.mediawiki.org/wiki/Manual:FAQ Huste prašenja]\n----\n* <doclink href=Readme>Čitaj mje</doclink>\n* <doclink href=ReleaseNotes>Wersijowe informacije</doclink>\n* <doclink href=Copying>Licencne postajenja</doclink>\n* <doclink href=UpgradeDoc>Aktualizacija</doclink>",
+    "config-env-good": "Wokolina je so skontrolowała.\nMóžeš MediaWiki instalować.",
+    "config-env-bad": "Wokolina je so skontrolowała.\nNjemóžeš MediaWiki instalować.",
+    "config-env-php": "PHP $1 je instalowany.",
+    "config-env-php-toolow": "PHP $1 je instalowany.\nAle MediaWiki wužaduje sej PHP $2 abo wyši.",
+    "config-unicode-using-utf8": "Za normalizaciju Unicode so utf8_normalize.so Briona Vibbera wužiwa.",
+    "config-unicode-using-intl": "Za normalizaciju Unicode so [http://pecl.php.net/intl PECL-rozšěrjenje intl] wužiwa.",
+    "config-no-db": "Njeda so přihódny ćěrjak datoweje banki namakać! Dyrbiš ćěrjak datoweje banki za PHP instalować.\nSlědowace typy datoweje banki so podpěruja: $1.\n\nJeli wužiwaš zhromadnje wužiwany serwer, proš swojeho poskićowarja, zo by přihódny ćěrjak datoweje banki instalował.\nJeli sy PHP sam kompilował, konfiguruj jón znowa z aktiwizowanym programom datoweje banki, na přikład z pomocu <code>./configure --with-mysql</code>.\nJeli sy PHP z Debianoweho abo Ubuntuoweho paketa instalował, dyrbiš tež modul php5-mysql instalować.",
+    "config-outdated-sqlite": "'''Warnowanje''': maš SQLite $1, kotryž je starši hač minimalna trěbna wersija $2. SQLite njebudźe k dispoziciji stać.",
+    "config-no-fts3": "'''Warnowanje''': SQLite je so bjez [//sqlite.org/fts3.html FTS3-modula] kompilował, pytanske funkcije njebudu k dispoziciji stać.",
+    "config-register-globals": "'''Warnowanje: Funkcija <code>[http://php.net/register_globals register_globals]</code> PHP je zmóžnjena.'''\n'''Znjemóžń ju, jeli móžeš.'''\nMediaWiki budźe fungować, ale twój serwer je potencielnym wěstotnym njedostatkam wustajeny.",
+    "config-ze1": "'''Chutny zmylk: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] je aktiwny!'''\nTuta opcija zawinuje grawěrowace zmylki při MediaWiki.\nNjemóžeš MediaWiki instalować abo wužiwać, chibazo tuta opcija je znjemóžnjena.",
+    "config-safe-mode": "'''Warnowanje:''' [http://www.php.net/features.safe-mode wěsty modus] PHP je aktiwny.\nTo móže problemy zawinować, předewšěm, jeli so datajowe nahraća a podpěra <code>math</code> wužiwaja.",
+    "config-xml-bad": "XML-modul za PHP faluje.\nMediaWiki trjeba funkcije w tutym modulu a njebudźe w tutej konfiguraciji fungować.\nJeli wužiwaš Mandrake, instaluj paket php-xml.",
+    "config-pcre": "Zda so, zo modul za PCRE-podpěru faluje.\nMediaWiki trjeba z Perl kompatibelne funkcije za regularne wurazy, zo by fungował.",
+    "config-pcre-no-utf8": "'''Ćežki zmylk''': Zda so, zo PCRE-modul za PHP ma so bjez PCRE_UTF8-podpěry kompilować.\nMediaWiki trjeba UTF-8-podpěru, zo by korektnje fungował.",
+    "config-memory-raised": "PHP-parameter <code>memory_limit</code> je $1, je so na hódnotu $2 zwyšił.",
+    "config-memory-bad": "'''Warnowanje:''' PHP-parameter <code>memory_limit</code> ma hódnotu $1,\nTo je najskerje přeniske.\nInstalacija móhła so njeporadźić!",
+    "config-ctype": "'''Ćežki zmylk''': PHP dyrbi so z podpěru za [http://www.php.net/manual/en/ctype.installation.php rozšěrjenje Ctype] kompilować.",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] je instalowany",
+    "config-apc": "[http://www.php.net/apc APC] je instalowany",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] je instalowany",
+    "config-diff3-bad": "GNU diff3 njenamakany.",
+    "config-no-uri": "'''Zmylk:''' Aktualny URI njeda so postajić.\nInstalacija bu přetorhnjena.",
+    "config-no-cli-uri": "'''Warnowanje''': Žana skriptowa šćežka (--scriptpath) podata, standard so wužiwa: <code>$1</code>.",
+    "config-using-server": "Serwerowe mjeno \"<nowiki>$1</nowiki>\" so wužiwa.",
+    "config-using-uri": "Serwerowy URL \"<nowiki>$1$2</nowiki>\" so wužiwa.",
+    "config-db-type": "Typ datoweje banki:",
+    "config-db-host": "Serwer datoweje banki:",
+    "config-db-host-oracle": "Datowa banka TNS:",
+    "config-db-wiki-settings": "Tutón wiki identifikować",
+    "config-db-name": "Mjeno datoweje banki:",
+    "config-db-name-oracle": "Šema datoweje banki:",
+    "config-db-install-account": "Wužiwarske konto za instalaciju",
+    "config-db-username": "Wužiwarske mjeno datoweje banki:",
+    "config-db-password": "Hesło datoweje banki:",
+    "config-db-password-empty": "Prošu zapodaj hesło za noweho wužiwarja datoweje banki: $1.\nByrnjež było móžno wužiwarjow bjez hesłow wutworić, njeje to wěste.",
+    "config-db-install-username": "Zapodaj wužiwarske mjeno, kotrež budźe so za zwisk z datowej banku za instalaciski proces wužiwać.\nTo njeje wužiwarske mjeno konta MediaWiki; to je wužiwarske mjeno za twoju datowu banku.",
+    "config-db-install-password": "Zapodaj hesło, kotrež budźe so za zwisk z datowej banku za instalaciski proces wužiwać.\nTo njeje hesło konta MediaWiki; to je hesło za twoju datowu banku.",
+    "config-db-install-help": "Zapodaj wužiwarske mjeno a hesło, kotrejž měłoj so za zwisk z datowej banku za instalaciski proces wužiwać.",
+    "config-db-account-lock": "Samsne wužiwarske mjeno a hesło za normalnu operaciju wužiwać",
+    "config-db-wiki-account": "Wužiwarske konto za normalnu operaciju",
+    "config-db-prefix": "Tabelowy prefiks datoweje banki:",
+    "config-db-charset": "Znamješkowa sadźba datoweje banki",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binarny",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 wróćokompatibelny UTF-8",
+    "config-mysql-old": "MySQL $1 abo nowši trěbny, maš $2.",
+    "config-db-port": "Port datoweje banki:",
+    "config-db-schema": "Šema za MediaWiki",
+    "config-db-schema-help": "Tuta šema da so zwjetša derje wužiwać.\nZměń ju jenož, jeli su přeswědčiwe přičiny za to.",
+    "config-pg-test-error": "Zwisk z datowej banku '''$1''' móžno njeje: $2",
+    "config-sqlite-dir": "Zapis SQLite-datow:",
+    "config-oracle-def-ts": "Standardny tabelowy rum:",
+    "config-oracle-temp-ts": "Nachwilny tabelowy rum:",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-support-mysql": "* $1 je primarny cil za MediaWiki a podpěruje so najlěpje ([http://www.php.net/manual/en/mysql.installation.php Nawod ke kompilowanju  PHP z  MySQL-podpěru])",
+    "config-support-postgres": "* $1 je popularny system datoweje banki zjawneho žórła jako alternatiwa k MySQL ([http://www.php.net/manual/en/pgsql.installation.php nawod za kompilowanje PHP z podpěru PostgreSQL]). Móhło hišće někotre zmylki eksistować, a njeporuča so jón w produktiwnej wokolinje wužiwać.",
+    "config-support-oracle": "* $1 je komercielna předewzaćelska datowa banka. ([http://www.php.net/manual/en/oci8.installation.php Nawod za kompilowanje PHP z OCI8-podpěru])",
+    "config-header-mysql": "Nastajenja MySQL",
+    "config-header-postgres": "Nastajenja PostgreSQL",
+    "config-header-sqlite": "Nastajenja SQLite",
+    "config-header-oracle": "Nastajenja Oracle",
+    "config-invalid-db-type": "Njepłaćiwy typ datoweje banki",
+    "config-missing-db-name": "Dyrbiš hódnotu za \"Mjeno datoweje banki\" zapodać",
+    "config-missing-db-host": "Dyrbiš hódnotu za \"Database host\" zapodać",
+    "config-missing-db-server-oracle": "Dyrbiš hódnotu za \"Database TNS\" zapodać",
+    "config-invalid-db-server-oracle": "Njepłaćiwa datowa banka TNS \"$1\".\nWužij jenož pismiki ASCII (a-z, A-Z), ličby (0-9), podsmužki (_) a dypki (.).",
+    "config-invalid-db-name": "Njepłaćiwe mjeno \"$1\" datoweje banki.\nWužij jenož pismiki ASCII (a-z, A-Z), ličby (0-9),a podsmužki (_) a wjazawki (-).",
+    "config-invalid-db-prefix": "Njepłaćiwy prefiks \"$1\" datoweje banki.\nWužij jenož pismiki ASCII (a-z, A-Z), ličby (0-9), podsmužki (_) a wjazawki (-).",
+    "config-connection-error": "$1.\n\nSkontroluj serwer, wužiwarske a hesło a spytaj hišće raz.",
+    "config-invalid-schema": "Njepłaćiwe šema za MediaWiki \"$1\".\nWužij jenož pismiki ASCII (a-z, A-Z), ličby (0-9) a podsmužki (_).",
+    "config-db-sys-create-oracle": "Instalaciski program podpěruje jenož wužiwanje SYSDBA-konta za zakoženje noweho konta.",
+    "config-db-sys-user-exists-oracle": "Wužiwarske konto \"$1\" hižo eksistuje. SYSDBA hodźi so jenož za załoženje noweho konta wužiwać!",
+    "config-postgres-old": "PostgreSQL $1 abo nowši trěbny, maš $2.",
+    "config-sqlite-name-help": "Wubjer mjeno, kotrež twój wiki identifikuje.\nNjewužij mjezery abo wjazawki.\nTo budźe so za mjeno dataje SQLite-datow wužiwać.",
+    "config-sqlite-mkdir-error": "Zmylk při wutworjenju datoweho zapisa \"$1\".\nSkontroluj městno a spytaj hišće raz.",
+    "config-sqlite-dir-unwritable": "Njeje móžno do zapisa \"$1\" pisać.\nZměń jeho prawa, tak zo webserwer móže do njeho pisać a spytaj hišće raz.",
+    "config-sqlite-connection-error": "$1.\n\nSkontroluj datowy zapis a mjeno datoweje banki kaj spytaj hišće raz.",
+    "config-sqlite-readonly": "Do dataje <code>$1</code> njeda so pisać.",
+    "config-sqlite-cant-create-db": "Dataja <code>$1</code> datoweje banki njeda so wutworić.",
+    "config-sqlite-fts3-downgrade": "PHP wo podpěrje FTS3 k dispoziciji njesteji, table so znižuja",
+    "config-can-upgrade": "Su tabele MediaWiki w tutej datowej bance.\nZo by je na MediaWiki $1 aktualizował, klikń na '''Dale'''.",
+    "config-upgrade-done-no-regenerate": "Aktualizacija dokónčena.\n\nMóžeš nětko [$1 swój wiki wužiwać].",
+    "config-regenerate": "LocalSettings.php znowa wutworić →",
+    "config-show-table-status": "Naprašowanje <code>SHOW TABLE STATUS</code> je so njeporadźiło!",
+    "config-unknown-collation": "'''Warnowanje:''' Datowa banka njeznatu kolaciju wužiwa.",
+    "config-db-web-account": "Konto datoweje banki za webpřistup",
+    "config-db-web-help": "wubjer wužiwarske mjeno a hesło, kotrejž webserwer budźe wužiwać, zo by z serwerom datoweje banki za wšědnu operaciju zwjazać",
+    "config-db-web-account-same": "Samsne konto kaž za instalaciju wužiwać",
+    "config-db-web-create": "Załož konto, jeli hišće njeeksistuje.",
+    "config-db-web-no-create-privs": "Konto, kotrež sy za instalaciju podał, nima dosć woprawnjenjow, zo by konto wutworiło.\nKonto, kotrež tu podawaće, dyrbi hižo eksistować.",
+    "config-mysql-engine": "Składowanska mašina:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-charset": "Znamješkowa sadźba datoweje banki:",
+    "config-mysql-binary": "Binarny",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "Mjeno wikija:",
+    "config-site-name-help": "To zjewi so w titulowej lejstwje wobhladaka kaž tež na wšelakich druhich městnach.",
+    "config-site-name-blank": "Zapodaj sydłowe mjeno.",
+    "config-project-namespace": "Mjenowy rum projekta:",
+    "config-ns-generic": "Projekt",
+    "config-ns-site-name": "Samsne kaž wikimjeno: $1",
+    "config-ns-other": "Druhe (podać)",
+    "config-ns-other-default": "MyWiki",
+    "config-ns-invalid": "Podaty mjenowy rum \"<nowiki>$1</nowiki>\" je njepłaćiwy.\nPodaj druhi projektowy mjenowy rum.",
+    "config-ns-conflict": "Podaty mjenowy rum \"<nowiki>$1</nowiki>\" je w konflikće ze standardnym mjenjowym rumom MediaWiki.\nPodaj druhi projektowy mjenowy rum.",
+    "config-admin-box": "Administratorowe konto",
+    "config-admin-name": "Twoje mjeno:",
+    "config-admin-password": "Hesło:",
+    "config-admin-password-confirm": "Hesło wospjetować:",
+    "config-admin-help": "Zapodaj swoje preferowane wužiwarske mjeno, na přikład \"Jurij Serb\".\nTo je mjeno, kotrež budźeš wužiwać, zo by so do wikija přizjewił.",
+    "config-admin-name-blank": "Zapodaj administratorowe wužiwarske mjeno.",
+    "config-admin-name-invalid": "Podate wužiwarske mjeno \"<nowiki>$1</nowiki>\" je njepłaćiwe.\nPodaj druhe wužiwarske mjeno.",
+    "config-admin-password-blank": "Zapodaj hesło za administratorowe konto.",
+    "config-admin-password-same": "Hesło dyrbi so wot wužiwarskeho mjena rozeznać.",
+    "config-admin-password-mismatch": "Wobě hesle, kotrejž sy zapodał, njejstej jenakej.",
+    "config-admin-email": "E-mejlowa adresa:",
+    "config-admin-email-help": "Zapodaj tu e-mejlowu adresu, zo by přijimanje e-mejlow wot druhich wužiwarjow w tutym wikiju zmóžnił, swoje hesło wróćo stajił a zdźělenki wo změnach na swojich wobkedźbowanych stronach  dostał. Móžeš polo prózdne wostajić.",
+    "config-admin-error-user": "Interny zmylk při wutworjenju administratora z mjenom \"<nowiki>$1</nowiki>\".",
+    "config-admin-error-password": "Interny zmylk při nastajenju hesła za administratora \"<nowiki>$1</nowiki>\": <pre>$2</pre>",
+    "config-admin-error-bademail": "Sy njepłaćiwu e-mejlowu adresu zapodał.",
+    "config-subscribe": "[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Rozesyłansku lisćinu wo připowědźenjach nowych wersijow ].abonować",
+    "config-almost-done": "Sy skoro hotowy!\nMóžeš nětko zbytnu konfiguraciju přeskočić a wiki hnydom instalować.",
+    "config-optional-continue": "Dalše prašenja?",
+    "config-optional-skip": "Instaluj nětko wiki.",
+    "config-profile": "Profil wužiwarskich prawow:",
+    "config-profile-wiki": "Zjawny wiki",
+    "config-profile-no-anon": "Załoženje konto je trěbne",
+    "config-profile-fishbowl": "Jenož awtorizowani wobdźěłarjo",
+    "config-profile-private": "Priwatny wiki",
+    "config-license": "Awtorske prawo a licenca:",
+    "config-license-none": "Žane licencne podaća w nohowej lince",
+    "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
+    "config-license-cc-by": "Creative Commons Attribution",
+    "config-license-cc-by-nc-sa": "Creative Commons Attribution Non-Commercial Share Alike",
+    "config-license-cc-0": "Creative Commons Zero (zjawnosći přistupny)",
+    "config-license-gfdl": "GNU-licenca za swobodnu dokumentaciju 1.3 abo nowša",
+    "config-license-pd": "Powšitkownosći přistupny",
+    "config-license-cc-choose": "Swójsku licencu Creative Commons wubrać",
+    "config-email-settings": "E-mejlowe nastajenja",
+    "config-enable-email": "Wuchadźace e-mejlki zmóžnić",
+    "config-enable-email-help": "Jeli chceš e-mejl wužiwać, dyrbja so [http://www.php.net/manual/en/mail.configuration.php e-mejlowe nastajenja PHP] prawje konfigurować.\nJeli nochceš e-mejlowe funkcije wužiwać, móžeš je tu znjemóžnić.",
+    "config-email-user": "E-mejl mjez wužiwarjemi zmóžnić",
+    "config-email-user-help": "Wšěm wužiwarjam dowolić, jednomu druhemu e-mejlki pósłać, jeli su tutu funkciju w swojich nastajenjach zmóžnili.",
+    "config-email-usertalk": "Zdźělenja za wužiwarske diskusijne strony zmóžnić",
+    "config-email-usertalk-help": "Wužiwarjam dowolić zdźělenki wo změnach na wužiwarskich diskusijnych stronach dóstać, jeli woni su to w swojich nastajenjach zmóžnili.",
+    "config-email-watchlist": "Zdźělenja za wobkedźbowanki zmóžnić",
+    "config-email-watchlist-help": "Wužiwarjam dowolić zdźělenki wo jich wobked´bowanych stronach dóstać, jeli woni su to w swojich nastajenjach zmóžnili.",
+    "config-email-auth": "E-mejlowu awtentifikaciju zmóžnić",
+    "config-email-sender": "E-mejlowa adresa za wotmołwy:",
+    "config-upload-settings": "Wobrazy a nahraća datajow",
+    "config-upload-enable": "Nahraće datajow zmóžnić",
+    "config-upload-deleted": "Zapis za zhašane dataje:",
+    "config-upload-deleted-help": "Wubjer zapis, w kotrymž zhašene dataje maja so archiwować.\nIdealnje tón njeměł z weba přistupny być.",
+    "config-logo": "URL loga:",
+    "config-instantcommons": "Instant commons zmóžnić",
+    "config-cc-error": "Pytanje za licencu Creative Commons njeje žadyn wuslědk přinjesło.\nZapodaj licencne mjeno manuelnje.",
+    "config-cc-again": "Zaso wubrać...",
+    "config-cc-not-chosen": "Wubjer licencu Creative Commons a klikń na \"dale\".",
+    "config-advanced-settings": "Rozšěrjena konfiguraćija",
+    "config-cache-options": "Nastajenja za objektowe pufrowanje:",
+    "config-cache-none": "Žane pufrowanje (žana funkcionalnosć so njewotstronja, ale spěšnosć móže so na wjetšich wikijowych sydłach wobwliwować)",
+    "config-cache-accel": "Objektowe pufrowanje PHP (APC, XCache abo WinCache)",
+    "config-cache-memcached": "Memcached wužiwać (wužaduje sej přidatnu instalaciju a konfiguraciju)",
+    "config-memcached-servers": "Serwery memcached:",
+    "config-memcached-help": "Lisćina IP-adresow, kotrež maja so za Memcached wužiwać.\nKóžda linka měła jenož jednu IP-adresu a port, kotryž ma so wužiwać, wobsahować. Na přikład:\n127.0.0.1:11211\n192.168.1.25:1234",
+    "config-memcache-needservers": "Sy Memcached jako swój pufrowakowy typ wubrał, ale njejsy žane serwery podał",
+    "config-memcache-badip": "Sy njepłaćiwu IP-adresu za Memcached zapodał: $1",
+    "config-memcache-noport": "Njejsy žadyn port za wužiwanje serwera Memcached podał: $1.\nJeli port njewěš, standard je 11211.",
+    "config-memcache-badport": "Portowe čisła za Memcached měli mjez $1 a $2 być",
+    "config-extensions": "Rozšěrjenja",
+    "config-extensions-help": "Rozšěrjenja podate horjeka buchu w twojim zapisu <code>./extensions</code> namakane.\n\nTo móže sej přidatnu konfiguraciju wužadać, ale móžeš je nětko zmóžnić.",
+    "config-install-alreadydone": "'''Warnowanje:''' Zda so, zo sy hižo MediaWiki instalował a pospytuješ jón znowa instalować.\nProšu pokročuj z přichodnej stronu.",
+    "config-install-begin": "Přez kliknjenje na \"{{int:config-continue}}\" budźe so instalacija MediaWiki startować.\nJeli hišće chceš něšto změnić, klikń na \"{{int:config-back}}\".",
+    "config-install-step-done": "dokónčene",
+    "config-install-step-failed": "njeporadźiło",
+    "config-install-extensions": "Inkluziwnje rozšěrjenja",
+    "config-install-database": "Datowa banka so připrawja",
+    "config-install-schema": "Datowa šema so twori",
+    "config-install-pg-schema-not-exist": "Šema PostgreSQL njeeksistuje",
+    "config-install-pg-schema-failed": "Wutworjenje tabelow je so njeporadźiło.\nZawěsć, zo wužiwar \"$1\" móže do šemy \"$2\" pisać.",
+    "config-install-pg-commit": "Změny so wotesyłaja",
+    "config-install-pg-plpgsql": "Pruwowanje za rěču PL/pgSQL",
+    "config-pg-no-plpgsql": "Dyrbiš rěč PL/pgSQL w datowej bance $1 instalować",
+    "config-pg-no-create-privs": "Konto, kotrež sy za instalaciju podał, nima dosahace prawa za wutworjenje konta.",
+    "config-install-user": "Tworjenje wužiwarja datoweje banki",
+    "config-install-user-alreadyexists": "Wužiwar \"$1\" hižo eksistuje",
+    "config-install-user-create-failed": "Wutworjenje wužiwarja \"$1\" je so njeporadźiło: $2",
+    "config-install-user-grant-failed": "Prawo njeda so wužiwarjej \"$1\" dać: $2",
+    "config-install-user-missing": "Podaty wužiwar \"$1\" njeeksistuje.",
+    "config-install-user-missing-create": "Podaty wužiwar \"$1\" njeeksistuje.\nProšu klikń na slědowacy kontrolny kašćik \"konto załožić\", jeli chceš jo wutworić.",
+    "config-install-tables": "Tworjenje tabelow",
+    "config-install-tables-exist": "'''Warnowanje''': Zda so, zo tabele MediaWiki hižo eksistuja.\nWutworjenje so přeskakuje.",
+    "config-install-tables-failed": "'''Zmylk''': Wutworjenje tabele je so slědowaceho zmylka dla njeporadźiło: $1",
+    "config-install-interwiki": "Standardna tabela interwikijow so pjelni",
+    "config-install-interwiki-list": "<code>interwiki.list</code> njeda so namakać.",
+    "config-install-interwiki-exists": "'''Warnowanje''': Zda so, zo tabela interwikjow hižo zapiski wobsahuje.\nStandardna lisćina sp přeskakuje.",
+    "config-install-stats": "Statistika so inicializuje",
+    "config-install-keys": "Tajne kluče so tworja",
+    "config-install-sysop": "Tworjenje administratoroweho wužiwarskeho konta",
+    "config-install-subscribe-fail": "Abonowanje \"mediawiki-announce\" njemóžno: $1",
+    "config-install-subscribe-notpossible": "cURL njeje instalowany a allow_url_fopen k dispoziciji njesteji.",
+    "config-install-mainpage": "Hłowna strona so ze standardnym wobsahom wutworja",
+    "config-install-extension-tables": "Tabele za zmóžnjene rozšěrjenja so tworja",
+    "config-install-mainpage-failed": "Powěsć njeda so zasunyć: $1",
+    "config-download-localsettings": "<code>LocalSettings.php</code> sćahnyć",
+    "config-help": "pomoc",
+    "config-nofile": "Dataja \"$1\" njeje so namakała. Je so zhašała?",
+    "mainpagetext": "'''MediaWiki bu wuspěšnje instalowany.'''",
+    "mainpagedocfooter": "Prošu hlej [//meta.wikimedia.org/wiki/Help:Contents dokumentaciju] za informacije wo wužiwanju softwary.\n\n== Za nowačkow ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Wo nastajenjach]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources MediaWiki za twoju rěč lokalizować]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ht.json b/includes/installer/i18n/ht.json
new file mode 100644 (file)
index 0000000..30e4e6b
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Boukman"
+        ]
+    },
+    "mainpagetext": "'''MedyaWiki byen enstale l.'''",
+    "mainpagedocfooter": "Konsilte [//meta.wikimedia.org/wiki/Help:Konteni Gid Itilizatè] pou enfòmasyon sou kijan pou w itilize logisyèl wiki a.\n\n== Kijan pou kòmanse ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lis paramèt yo pou konfigirasyon]\n* [//www.mediawiki.org/wiki/Manyèl:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lis diskisyon ki parèt sou MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/hu-formal.json b/includes/installer/i18n/hu-formal.json
new file mode 100644 (file)
index 0000000..733a0f9
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "@metadata": {
+        "authors": [
+            "Dani",
+            "Glanthor Reviol"
+        ]
+    },
+    "config-localsettings-upgrade": "'''Figyelmeztetés''': már létezik a <code>LocalSettings.php</code> fájl.\nA szoftver frissíthető.\nAdja meg a <code>$wgUpgradeKey</code>-ben található kulcsot a beviteli mezőben",
+    "config-session-expired": "Úgy tűnik, hogy a munkamenetadatok lejártak.\nA munkamenetek élettartama a következőre van beállítva: $1.\nAz érték növelhető a php.ini <code>session.gc_maxlifetime</code> beállításának módosításával.\nIndítsa újra a telepítési folyamatot.",
+    "config-no-session": "Elvesztek a munkamenetadatok!\nEllenőrizze, hogy a php.ini-ben a <code>session.save_path</code> beállítás a megfelelő könyvtárra mutat-e.",
+    "config-your-language-help": "Válassza ki a telepítési folyamat során használandó nyelvet.",
+    "config-wiki-language-help": "Az a nyelv, amin a wiki tartalmának legnagyobb része íródik.",
+    "config-page-welcome": "Üdvözli a MediaWiki!",
+    "config-help-restart": "Szeretné törölni az eddig megadott összes adatot és újraindítani a telepítési folyamatot?",
+    "config-welcome": "=== Környezet ellenőrzése ===\nAlapvető ellenőrzés, ami megmondja, hogy a környezet alkalmas-e a MediaWiki számára.\nHa probléma merülne fel a telepítés során, meg kell adnia mások számára az alább megjelenő információkat.",
+    "config-unicode-pure-php-warning": "'''Figyelmeztetés''': Az [http://pecl.php.net/intl intl PECL kiterjesztés] nem érhető el Unicode normalizáláshoz.\nHa nagy látogatottságú oldalt üzemeltet, itt találhat információkat [//www.mediawiki.org/wiki/Unicode_normalization_considerations a témáról].",
+    "config-register-globals": "'''Figyelmeztetés: A PHP <code>[http://php.net/register_globals register_globals]</code> beállítása engedélyezve van.'''\n'''Tiltsa le, ha van rá lehetősége.'''\nA MediaWiki működőképes a beállítás használata mellett, de a szerver biztonsági kockázatnak lesz kitéve.",
+    "config-imagemagick": "Az ImageMagick megtalálható a rendszeren: <code>$1</code>.\nA bélyegképek készítése engedélyezve lesz, ha engedélyezi a feltöltéseket.",
+    "config-db-name-help": "Válassza ki a wikije azonosítására használt nevet.\nNem tartalmazhat szóközt vagy kötőjelet.\n\nHa megosztott webtárhelyet használ, a szolgáltatója vagy egy konkrét adatbázisnevet ad önnek használatra, vagy létrehozhat egyet a vezérlőpulton keresztül.",
+    "config-db-install-help": "Adja meg a felhasználónevet és jelszót, amivel a telepítő csatlakozhat az adatbázishoz.",
+    "config-db-wiki-help": "Adja meg azt a felhasználónevet és jelszót, amivel a wiki fog csatlakozni az adatbázishoz működés közben.\nHa a fiók nem létezik és a telepítést végző fiók rendelkezik megfelelő jogosultsággal, egy új fiók készül a megadott a névvel, azon minimális jogosultságkörrel, ami a wiki működéséhez szükséges.",
+    "config-charset-help": "'''Figyelmezetés:''' Ha a '''visszafelé kompatibilis UTF-8''' beállítást használja MySQL 4.1 vagy újabb verziók esetén, és utána a <code>mysqldump</code> programmal készít róla biztonsági másolatot, az tönkreteheti az összes nem ASCII-karaktert, visszafordíthatatlanul károsítva a másolatokban tárolt adatokat!\n\n'''Bináris''' módban a MediaWiki az UTF-8-ban kódolt szöveget bináris mezőkben tárolja az adatbázisban.\nEz sokkal hatékonyabb a MySQL UTF-8-módjától, és lehetővé teszi, hogy a teljes Unicode-karakterkészletet használja.\n'''UTF-8-módban''' MySQL tudja, hogy milyen karakterkészlettel van kódolva az adat, megfelelően van megjelenítve és konvertálva, de\nnem használhatja a [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] feletti karaktereket.",
+    "config-db-schema-help": "A fenti sémák általában megfelelőek.\nCsak akkor módosítson rajta, ha szükség van rá.",
+    "config-sqlite-parent-unwritable-nogroup": "Nem lehet létrehozni az adatok tárolásához szükséges <code><nowiki>$1</nowiki></code> könyvtárat, mert a webszerver nem írhat a szülőkönyvtárba (<code><nowiki>$2</nowiki></code>).\n\nA telepítő nem tudta megállapíteni, hogy melyik felhasználói fiókon fut a webszerver.\nA folytatáshoz tegye írhatóvá ezen fiók (és más fiókok!) számára a következő könyvtárat: <code><nowiki>$3</nowiki></code>.\nUnix/Linux rendszereken tedd a következőt:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-ns-other": "Más (adja meg)",
+    "config-admin-name-blank": "Adja meg az adminisztrátor felhasználónevét!",
+    "config-admin-name-invalid": "A megadott felhasználónév (<nowiki>$1</nowiki>) érvénytelen.\nAdjon meg egy másik felhasználónevet.",
+    "config-admin-password-blank": "Adja meg az adminisztrátori fiók jelszavát!",
+    "config-instantcommons-help": "Az [//www.mediawiki.org/wiki/InstantCommons Instant Commons] lehetővé teszi, hogy a wikin használhassák a [//commons.wikimedia.org/ Wikimedia Commons] oldalon található képeket, hangokat és más médiafájlokat.\nA használatához a MediaWikinek internethozzáférésre van szüksége.\n\nA funkcióról és hogy hogyan állítható be más wikik esetén [//mediawiki.org/wiki/Manual:$wgForeignFileRepos a kézikönyvben] találhat további információkat.",
+    "config-install-done": "'''Gratulálunk!'''\nSikeresen telepítette a MediaWikit.\n\nA telepítő készített egy <code>LocalSettings.php</code> fájlt.\nEz tartalmazza az összes beállítást.\n\n[$1 Le kell töltenie], és el kell helyeznie a MediaWiki telepítési könyvtárába (az a könyvtár, ahol az index.php van).\n'''Megjegyzés''': Ha ezt most nem teszi meg, és kilép, a generált fájl nem lesz elérhető a későbbiekben.\n\nHa ezzel készen van, '''[$2 beléphet a wikibe]'''.",
+    "mainpagedocfooter": "Ha segítségre van szüksége a wikiszoftver használatához, akkor keresse fel a [//meta.wikimedia.org/wiki/Help:Contents User's Guide] oldalt.\n\n== Alapok (angol nyelven) ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Beállítások listája]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki GyIK]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-kiadások levelezőlistája]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/hu.json b/includes/installer/i18n/hu.json
new file mode 100644 (file)
index 0000000..0447d17
--- /dev/null
@@ -0,0 +1,295 @@
+{
+    "@metadata": {
+        "authors": [
+            "Dani",
+            "Glanthor Reviol",
+            "아라"
+        ]
+    },
+    "config-desc": "A MediaWiki telepítője",
+    "config-title": "A MediaWiki $1 telepítése",
+    "config-information": "Információ",
+    "config-localsettings-upgrade": "Már létezik a <code>LocalSettings.php</code> fájl.\nA telepített szoftver frissítéséhez írd be az alábbi mezőbe a <code>$wgUpgradeKey</code> beállítás értékét, melyet a <code>LocalSettings.php</code> nevű fájlban találhatsz meg.",
+    "config-localsettings-cli-upgrade": "A <code>LocalSettings.php</code> fájl megtalálható.\nA telepített rendszer frissítéséhez futtasd az <code>update.php</code>-t.",
+    "config-localsettings-key": "Frissítési kulcs:",
+    "config-localsettings-badkey": "A megadott kulcs érvénytelen.",
+    "config-upgrade-key-missing": "A telepítő a MediaWiki meglévő példányát észlelte.\nA telepített rendszer frissítéséhez helyezd el az alábbi sort a <code>LocalSettings.php</code> végére:\n\n$1",
+    "config-localsettings-incomplete": "A meglévő <code>LocalSettings.php</code> hiányosnak tűnik.\nA(z) $1 változó értéke nincs beállítva.\nMódosítsd a <code>LocalSettings.php</code> fájlt úgy, hogy ez a változó be legyen állítva, majd kattints a „{{int:Config-continue}}” gombra.",
+    "config-localsettings-connection-error": "Nem sikerült csatlakozni az adatbázishoz a <code>LocalSettings.php</code>-ben vagy az <code>AdminSettings.php</code>-ben megadott adatokkal. Ellenőrizd a beállításokat, majd próbáld újra.\n\n$1",
+    "config-session-error": "Nem sikerült elindítani a munkamenetet: $1",
+    "config-session-expired": "Úgy tűnik, hogy a munkamenetadatok lejártak.\nA munkamenetek élettartama a következőre van beállítva: $1.\nAz érték növelhető a php.ini <code>session.gc_maxlifetime</code> beállításának módosításával.\nIndítsd újra a telepítési folyamatot.",
+    "config-no-session": "Elvesztek a munkamenetadatok!\nEllenőrizd, hogy a php.ini-ben a <code>session.save_path</code> a megfelelő könyvtárra mutat-e.",
+    "config-your-language": "Nyelv:",
+    "config-your-language-help": "A telepítési folyamat során használandó nyelv.",
+    "config-wiki-language": "A wiki nyelve:",
+    "config-wiki-language-help": "Az a nyelv, amin a wiki tartalmának legnagyobb része íródik.",
+    "config-back": "← Vissza",
+    "config-continue": "Folytatás →",
+    "config-page-language": "Nyelv",
+    "config-page-welcome": "Üdvözöl a MediaWiki!",
+    "config-page-dbconnect": "Kapcsolódás az adatbázishoz",
+    "config-page-upgrade": "Telepített változat frissítése",
+    "config-page-dbsettings": "Adatbázis-beállítások",
+    "config-page-name": "Név",
+    "config-page-options": "Beállítások",
+    "config-page-install": "Telepítés",
+    "config-page-complete": "Kész!",
+    "config-page-restart": "Telepítés újraindítása",
+    "config-page-readme": "Tudnivalók",
+    "config-page-releasenotes": "Kiadási megjegyzések",
+    "config-page-copying": "Másolás",
+    "config-page-upgradedoc": "Frissítés",
+    "config-page-existingwiki": "Létező wiki",
+    "config-help-restart": "Szeretnéd törölni az eddig megadott összes adatot és újraindítani a telepítési folyamatot?",
+    "config-restart": "Igen, újraindítás",
+    "config-welcome": "=== A környezet ellenőrzése ===\nNéhány alapvető ellenőrzés lett végrehajtva, ami meghatározza, hogy ez a környezet alkalmas-e a MediaWiki telepítésére.\nHa telepítéssel kapcsolatos segítségre van szükséged, add meg ezen ellenőrzések eredményét.",
+    "config-copyright": "=== Licenc és feltételek ===\n\n$1\n\nEz a program szabad szoftver; terjeszthető illetve módosítható a Free Software Foundation által kiadott GNU General Public License dokumentumában leírtak; akár a licenc 2-es, akár (tetszőleges) későbbi változata szerint.\n\nEz a program abban a reményben kerül közreadásra, hogy hasznos lesz, de minden egyéb '''garancia nélkül''', az '''eladhatóságra''' vagy '''valamely célra való alkalmazhatóságra''' való származtatott garanciát is beleértve. További részleteket a GNU General Public License tartalmaz.\n\nA felhasználónak a programmal együtt meg kell kapnia a <doclink href=Copying>GNU General Public License egy példányát</doclink>; ha mégsem kapta meg, akkor írjon a Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. címre, vagy [http://www.gnu.org/copyleft/gpl.html tekintse meg online].",
+    "config-sidebar": "* [//www.mediawiki.org A MediaWiki honlapja]\n* [//www.mediawiki.org/wiki/Help:Contents Felhasználói kézikönyv]\n* [//www.mediawiki.org/wiki/Manual:Contents Útmutató adminisztrátoroknak]\n* [//www.mediawiki.org/wiki/Manual:FAQ GyIK]\n----\n* <doclink href=Readme>Ismertető</doclink>\n* <doclink href=ReleaseNotes>Kiadási megjegyzések</doclink>\n* <doclink href=Copying>Másolás</doclink>\n* <doclink href=UpgradeDoc>Frissítés</doclink>",
+    "config-env-good": "A környezet ellenőrzése befejeződött.\nA MediaWiki telepíthető.",
+    "config-env-bad": "A környezet ellenőrzése befejeződött.\nA MediaWiki nem telepíthető.",
+    "config-env-php": "A PHP verziója: $1",
+    "config-env-php-toolow": "PHP $1 van telepítve,\nazonban a MediaWikinek PHP $2, vagy újabb szükséges.",
+    "config-unicode-using-utf8": "A rendszer Unicode normalizálására Brion Vibber utf8_normalize.so könyvtárát használja.",
+    "config-unicode-using-intl": "A rendszer Unicode normalizálására az [http://pecl.php.net/intl intl PECL kiterjesztést] használja.",
+    "config-unicode-pure-php-warning": "'''Figyelmeztetés''': Az Unicode normalizáláshoz szükséges [http://pecl.php.net/intl intl PECL kiterjesztés] nem érhető el, helyette a lassú, PHP alapú implementáció lesz használva.\nHa nagy látogatottságú oldalt üzemeltetsz, itt találhatsz további információkat [//www.mediawiki.org/wiki/Unicode_normalization_considerations a témáról].",
+    "config-unicode-update-warning": "'''Figyelmeztetés''': Az Unicode normalizáláshoz szükséges burkolókönyvtár [http://site.icu-project.org/ ICU projekt] függvénykönyvtárának régebbi változatát használja.\nHa ügyelni kívánsz a Unicode használatára, fontold meg a [//www.mediawiki.org/wiki/Unicode_normalization_considerations frissítését].",
+    "config-no-db": "Nem sikerült egyetlen használható adatbázis-illesztőprogramot sem találni.  Telepítened kell egyet a PHP-hez.\nA következő adatbázistípusok támogatottak: $1.\n\nHa megosztott tárhelyszolgáltatást használsz, kérd meg a szolgáltatódat, hogy telepítsen egy megfelelő illesztőprogramot.\nHa a PHP-t magad fordítottad, konfiguráld újra úgy, hogy engedélyezve legyen egy adatbáziskliens, pl. a <code>./configure --with-mysql</code> parancs használatával.\nHa a PHP-t Debian vagy Ubuntu csomaggal telepítetted, akkor szükséged lesz a php5-mysql modulra is.",
+    "config-no-fts3": "'''Figyelmeztetés''': Az SQLite [//sqlite.org/fts3.html FTS3 modul] nélkül lett fordítva, a keresési funkciók nem fognak működni ezen a rendszeren.",
+    "config-register-globals": "'''Figyelmeztetés: A PHP <code>[http://php.net/register_globals register_globals]</code> beállítása engedélyezve van.'''\n'''Tiltsd le, ha van rá lehetőséged.'''\nA MediaWiki működőképes a beállítás használata mellett, de a szerver biztonsági kockázatnak lesz kitéve.",
+    "config-magic-quotes-runtime": "'''Kritikus hiba: a [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] aktív!'''\nEz a beállítás kiszámíthatatlan károkat okoz a bevitt adatokban.\nA MediaWiki csak akkor telepíthető, ha ki van kapcsolva.",
+    "config-magic-quotes-sybase": "'''Kritikus hiba: a [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_sybase] aktív!'''\nEz a beállítás kiszámíthatatlan károkat okoz a bevitt adatokban.\nA MediaWiki csak akkor telepíthető, ha ki van kapcsolva.",
+    "config-mbstring": "'''Kritikus hiba: az [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime mbstring.func_overload] aktív!'''\nEz a beállítás hibákat okoz és kiszámíthatatlanul károsíthatja bevitt adatokat.\nA MediaWiki csak akkor telepíthető, ha ki van kapcsolva.",
+    "config-ze1": "'''Kritikus hiba: a [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_sybase] aktív!'''\nEz a beállítás borzalmas hibákat okoz a MediaWiki futása során.\nA MediaWiki csak akkor telepíthető, ha ki van kapcsolva.",
+    "config-safe-mode": "'''Figyelmeztetés:''' A PHP [http://www.php.net/features.safe-mode safe mode]-ja be van kapcsolva.\nProblémákat okozhat, különösen a fájlfeltöltéseknél és a <code>math</code>-támogatás használatánál.",
+    "config-xml-bad": "A PHP XML-modulja hiányzik.\nEgyes MediaWiki-funkciók, melyek ezt a modult igénylik, nem fognak működni ilyen beállítások mellett.\nHa Madrake-et futtatsz, telepítsd a php-xml csomagot.",
+    "config-pcre": "Úgy tűnik, hogy a PCRE támogató modul hiányzik.\nA MediaWikinek Perl-kompatibilis reguláriskifejezés-függvényekre van szüksége a működéshez.",
+    "config-pcre-no-utf8": "'''Kritikus hiba''': Úgy tűnik, hogy a PHP PRCE modulja PRCE_UTF8 támogatás nélkül lett fordítva.\nA MediaWikinek UTF-8-támogatásra van szüksége a helyes működéshez.",
+    "config-memory-raised": "A PHP <code>memory_limit</code> beállításának értéke: $1. Meg lett növelve a következő értékre: $2.",
+    "config-memory-bad": "'''Figyelmeztetés:''' A PHP <code>memory_limit</code> beállításának értéke $1.\nEz az érték valószínűleg túl kevés, a telepítés sikertelen lehet.",
+    "config-xcache": "Az [http://xcache.lighttpd.net/ XCache] telepítve van",
+    "config-apc": "Az [http://www.php.net/apc APC] telepítve van",
+    "config-wincache": "A [http://www.iis.net/download/WinCacheForPhp WinCache] telepítve van",
+    "config-no-cache": "'''Figyelmeztetés:''' Nem található [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] és [http://www.iis.net/download/WinCacheForPhp WinCache] sem.\nObjektum-gyorsítótárazás nem lesz engedélyezve.",
+    "config-diff3-bad": "GNU diff3 nem található.",
+    "config-imagemagick": "Az ImageMagick megtalálható a rendszeren: <code>$1</code>.\nA bélyegképek készítése engedélyezve lesz a feltöltések engedélyezése esetén.",
+    "config-gd": "A GD grafikai könyvtár elérhető.\nBélyegképek készítése működni fog, miután engedélyezted a fájlfeltöltést.",
+    "config-no-scaling": "Nem található a GD könyvtár és az ImageMagick.\nA bélyegképek készítése le lesz tiltva.",
+    "config-no-uri": "'''Hiba:''' Nem sikerült megállapítani a jelenlegi URI-t.\nTelepítés megszakítva.",
+    "config-using-server": "A következő szervernév használata: „<nowiki>$1</nowiki>”.",
+    "config-using-uri": "A következő szerver URL-cím használata: „<nowiki>$1$2</nowiki>”.",
+    "config-uploads-not-safe": "'''Figyelmeztetés:''' a feltöltésekhez használt alapértelmezett könyvtárban (<code>$1</code>) tetszőleges külső szkript futtatható.\nHabár a MediaWiki ellenőrzi a feltöltött fájlokat az efféle biztonsági veszélyek megtalálása érdekében, a feltöltés engedélyezése előtt erősen ajánlott a [//www.mediawiki.org/wiki/Manual:Security#Upload_security a sérülékenység megszüntetése].",
+    "config-brokenlibxml": "A rendszereden a PHP és libxml2 verziók olyan kombinációja található meg, ami hibásan működik, és észrevehetetlen adatkárosodást okoz a MediaWikiben és más webalkalmazásokban.\nFrissíts a PHP 5.2.9-es vagy újabb, valamint a libxml2 2.7.3 vgy újabb verziójára ([//bugs.php.net/bug.php?id=45996 A hiba bejelentése a PHP-nél]).\nTelepítés megszakítva.",
+    "config-using531": "A MediaWiki nem használható a PHP $1-es verziójával, mert hiba van a <code>__call()</code> függvénynek átadott referenciaparaméterekkel.\nA probléma kiküszöböléséhez frissíts a PHP 5.3.2-es verziójára, vagy használd a korábbi, 5.3.0-ásat.\nTelepítés megszakítva.",
+    "config-suhosin-max-value-length": "A Suhosin telepítve van, és a GET paraméter hosszát $1 bájtra korlátozza. A MediaWiki erőforrásbetöltő összetevője megkerüli a problémát, de így csökkenni fog a teljesítmény. Ha lehetséges, állítsd be a <code>suhosin.get.max_value_length</code> értékét legalább 1024-re a <code>php.ini</code>ben, és állítsd be a <code>$wgResourceLoaderMaxQueryLength</code> változót ugyanerre az értékre a LocalSettings.php-ben.",
+    "config-db-type": "Adatbázis típusa:",
+    "config-db-host": "Adatbázis hosztneve:",
+    "config-db-host-help": "Ha az adatbázisszerver másik szerveren található, add meg a hosztnevét vagy az IP-címét.\n\nHa megosztott webtárhelyet használsz, a szolgáltató dokumentációjában megtalálható a helyes hosztnév.\n\nHa Windows-alapú szerverre telepítesz, és MySQL-t használsz, a „localhost” nem biztos, hogy működni fog. Ha így van, próbáld meg a „127.0.0.1” helyi IP-cím használatát.",
+    "config-db-host-oracle": "Adatbázis TNS:",
+    "config-db-wiki-settings": "A wiki azonosítása",
+    "config-db-name": "Adatbázisnév:",
+    "config-db-name-help": "Válassz egy nevet a wiki azonosítására.\nNe tartalmazzon szóközt.\n\nHa megosztott webtárhelyet használsz, a szolgáltatód vagy egy konkrét adatbázisnevet ad neked használatra, vagy te magad hozhatsz létre adatbázisokat a vezérlőpulton keresztül.",
+    "config-db-name-oracle": "Adatbázisséma:",
+    "config-db-account-oracle-warn": "Oracle adatbázisba való telepítésnek három támogatott módja van:\n\nHa a telepítési folyamat során adatbázisfiókot szeretnél létrehozni, akkor egy olyan fiókot kell használnod, mely rendelkezik SYSDBA jogosultsággal, majd meg kell adnod a létrehozandó, webes hozzáféréshez használt fiók adatait. Emellett a fiók kézzel is létrehozható, ekkor ennek az adatait kell megadni (a fióknak rendelkeznie kell megfelelő jogosul adatbázis-objektumok létrehozásához), vagy megadhatsz két fiókot: egyet a létrehozáshoz szükséges jogosultságokkal, és egy korlátozottat a webes hozzáféréshez.\n\nA megfelelő jogosultságokkal rendelkező fiók létrehozásához használható szkript a szoftver „maintenance/oracle/” könyvtárában található. Ne feledd, hogy korlátozott fiók használatakor az alapértelmezett fiókkal nem végezhetőek el a karbantartási műveletek.",
+    "config-db-install-account": "A telepítéshez használt felhasználói fiók adatai",
+    "config-db-username": "Felhasználónév:",
+    "config-db-password": "Jelszó:",
+    "config-db-password-empty": "Írd be az új adatbázis-felhasználó jelszavát: $1\nVan lehetőség jelszó nélküli felhasználók létrehozására, azonban ez nem ajánlott.",
+    "config-db-install-username": "Írd be az adatbázisrendszerhez való csatlakozáshoz használt felhasználónevet.\nEz nem a MediaWiki fiók felhasználóneve; ez az adatbázisrendszeren használt felhasználóneved.",
+    "config-db-install-password": "Írd be az adatbázisrendszerhez való csatlakozáshoz használt jelszót.\nEz nem a MediaWiki-fiók jelszava; ez az adatbázisrendszeren használt jelszavad.",
+    "config-db-install-help": "Add meg a felhasználónevet és jelszót, amivel a telepítő csatlakozhat az adatbázishoz.",
+    "config-db-account-lock": "Általános működés során is ezen információk használata",
+    "config-db-wiki-account": "Általános működéshez használt felhasználói adatok",
+    "config-db-wiki-help": "Add meg azt a felhasználónevet és jelszót, amivel a wiki fog csatlakozni az adatbázishoz működés közben.\nHa a fiók nem létezik és a telepítést végző fiók rendelkezik megfelelő jogosultsággal, egy új fiók készül a megadott a névvel, azon minimális jogosultságkörrel, ami a wiki működéséhez szükséges.",
+    "config-db-prefix": "Adatbázistáblák nevének előtagja:",
+    "config-db-prefix-help": "Ha egyetlen adatbázison osztozik több wiki, vagy a MediaWiki és más webalkalmazás, választhatsz egy előtagot a táblaneveknek, hogy megelőzd a konfliktusokat.\nNe használj szóközöket.\n\nA mezőt általában üresen kell hagyni.",
+    "config-db-charset": "Az adatbázis karakterkészlete",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0, bináris",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0, visszafelé kompatibilis UTF-8",
+    "config-charset-help": "'''Figyelmezetés:''' Ha a '''visszafelé kompatibilis UTF-8''' beállítást használod MySQL 4.1 vagy újabb verziók esetén, és utána a <code>mysqldump</code> programmal készítesz róla biztonsági másolatot, az tönkreteheti az összes nem ASCII-karaktert, visszafordíthatatlanul károsítva a másolatokban tárolt adatokat!\n\n'''Bináris''' módban a MediaWiki az UTF-8-ban kódolt szöveget bináris mezőkben tárolja az adatbázisban.\nEz sokkal hatékonyabb a MySQL UTF-8-módjától, és lehetővé teszi, hogy a teljes Unicode-karakterkészletet használd.\n'''UTF-8-módban''' MySQL tudja, hogy milyen karakterkészlettel van kódolva az adat, és megfelelően tárolja és konvertálja, de\nnem használhatod a [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] feletti karaktereket.",
+    "config-mysql-old": "A MySQL $1 vagy újabb verziója szükséges, a rendszeren $2 van.",
+    "config-db-port": "Adatbázisport:",
+    "config-db-schema": "MediaWiki-séma",
+    "config-db-schema-help": "A fenti sémák általában megfelelőek.\nCsak akkor módosíts rajtuk, ha tudod, hogy szükséges.",
+    "config-pg-test-error": "Nem sikerült csatlakozni a(z) '''$1''' adatbázishoz: $2",
+    "config-sqlite-dir": "SQLite-adatkönyvtár:",
+    "config-sqlite-dir-help": "Az SQLite minden adatot egyetlen fájlban tárol.\n\nA megadott könyvtárban írási jogosultsággal kell rendelkeznie a webszervernek.\n\n'''Nem''' szabad elérhetőnek lennie weben keresztül, ezért nem rakjuk oda, ahol a PHP-fájljaid vannak.\n\nA telepítő készít egy <code>.htaccess</code> fájlt az adatbázis mellé, azonban ha valamilyen okból nem sikerül, akkor akárki hozzáférhet a teljes adatbázisodhoz. Ez a felhasználók adatai (e-mail címek, jelszók hashei) mellett a törölt változatokat és más, korlátozott hozzáférésű információkat is tartalmaz.\n\nFontold meg az adatbázis más helyre történő elhelyezését, például a <code>/var/lib/mediawiki/tewikid</code> könyvtárba.",
+    "config-oracle-def-ts": "Alapértelmezett táblatér:",
+    "config-oracle-temp-ts": "Ideiglenes táblatér:",
+    "config-support-info": "A MediaWiki a következő adatbázisrendszereket támogatja:\n\n$1\n\nHa az alábbi listán nem találod azt a rendszert, melyet használni szeretnél, a fenti linken található instrukciókat követve engedélyezheted a támogatását.",
+    "config-support-mysql": "* A $1 a MediaWiki elsődleges célpontja, így a legjobban támogatott ([http://www.php.net/manual/en/mysql.installation.php Hogyan fordítható a PHP MySQL-támogatással])",
+    "config-support-postgres": "* A $1 népszerű, nyílt forráskódú adatbázisrendszer, a MySQL alternatívája ([http://www.php.net/manual/en/pgsql.installation.php Hogyan fordítható a PHP PostgreSQL-támogatással]). Több apró, javítatlan hiba is előfordulhat, így nem ajánlott éles környezetben használni.",
+    "config-support-sqlite": "* Az $1 egy könnyű, nagyon jól támogatott adatbázisrendszer. ([http://www.php.net/manual/en/pdo.installation.php Hogyan fordítható a PHP SQLite-támogatással], PDO-t használ)",
+    "config-support-oracle": "* Az $1 kereskedelmi, vállalati adatbázisrendszer. ([http://www.php.net/manual/en/oci8.installation.php Hogyan fordítható a PHP OCI8-támogatással])",
+    "config-header-mysql": "MySQL-beállítások",
+    "config-header-postgres": "PostgreSQL-beállítások",
+    "config-header-sqlite": "SQLite-beállítások",
+    "config-header-oracle": "Oracle-beállítások",
+    "config-invalid-db-type": "Érvénytelen adatbázistípus",
+    "config-missing-db-name": "Meg kell adnod az „Adatbázisnév” értékét",
+    "config-missing-db-host": "Meg kell adnod az „Adatbázis hosztneve” értékét",
+    "config-missing-db-server-oracle": "Meg kell adnod az „Adatbázis TNS” értékét",
+    "config-invalid-db-server-oracle": "Érvénytelen adatbázis TNS: „$1”\nCsak ASCII betűk (a-z, A-Z), számok (0-9), alulvonás (_) és pont (.) használható.",
+    "config-invalid-db-name": "Érvénytelen adatbázisnév: „$1”.\nCsak ASCII-karakterek (a-z, A-Z), számok (0-9), alulvonás (_) és kötőjel (-) használható.",
+    "config-invalid-db-prefix": "Érvénytelen adatbázisnév-előtag: „$1”.\nCsak ASCII-karakterek (a-z, A-Z), számok (0-9), alulvonás (_) és kötőjel (-) használható.",
+    "config-connection-error": "$1.\n\nEllenőrizd a hosztot, felhasználónevet és jelszót, majd próbáld újra.",
+    "config-invalid-schema": "Érvénytelen MediaWiki-séma: „$1”.\nCsak ASCII-karakterek (a-z, A-Z), számok (0-9) és alulvonás (_) használható.",
+    "config-db-sys-create-oracle": "A telepítő csak a SYSDBA fiókkal tud új felhasználói fiókot létrehozni.",
+    "config-db-sys-user-exists-oracle": "Már létezik „$1” nevű felhasználói fiók. A SYSDBA csak új fiók létrehozására használható!",
+    "config-postgres-old": "A PostgreSQL $1 vagy újabb verziója szükséges, a rendszeren $2 van.",
+    "config-sqlite-name-help": "Válassz egy nevet a wiki azonosítására.\nNe tartalmazzon szóközt vagy kötőjelet.\nEz lesz az SQLite-adatfájl neve.",
+    "config-sqlite-parent-unwritable-group": "Nem hozható létre a(z) <code><nowiki>$1</nowiki></code> adatkönyvtár, mert a szülőkönyvtárba (<code><nowiki>$2</nowiki></code>) nem írhat a webszerver.\n\nA telepítő megállapította, hogy mely felhasználó futtatja a webszervert.\nA folytatáshoz tedd írhatóvá a(z) <code><nowiki>$3</nowiki></code> könyvtárat.\nUnix/Linux rendszeren tedd a következőt:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Nem lehet létrehozni az adatok tárolásához szükséges <code><nowiki>$1</nowiki></code> könyvtárat, mert a webszerver nem írhat a szülőkönyvtárba (<code><nowiki>$2</nowiki></code>).\n\nA telepítő nem tudta megállapíteni, hogy melyik felhasználói fiókon fut a webszerver.\nA folytatáshoz tedd írhatóvá ezen fiók (és más fiókok!) számára a következő könyvtárat: <code><nowiki>$3</nowiki></code>.\nUnix/Linux rendszereken tedd a következőt:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Nem sikerült létrehozni a következő adatkönyvtárat: „$1”.\nEllenőrizd a helyet, majd próbáld újra.",
+    "config-sqlite-dir-unwritable": "Nem sikerült írni a következő könyvtárba: „$1”.\nMódosítsd a jogosultságokat úgy, hogy a webszerver tudjon oda írni, majd próbáld újra.",
+    "config-sqlite-connection-error": "$1.\n\nEllenőrizd az adatkönyvtárat és az adatbázisnevet, majd próbáld újra.",
+    "config-sqlite-readonly": "A következő fájl nem írható: <code>$1</code>.",
+    "config-sqlite-cant-create-db": "Nem sikerült létrehozni a következő adatbázisfájlt: <code>$1</code>.",
+    "config-sqlite-fts3-downgrade": "A PHP nem rendelkezik FTS3-támogatással, táblák visszaminősítése",
+    "config-can-upgrade": "Ebben az adatábizban MediaWiki-táblák találhatóak.\nA MediaWiki $1 verzióra történő frissítéséhez kattints a '''Folytatás''' gombra.",
+    "config-upgrade-done": "A frissítés befejeződött.\n\nMost már '''[$1 beléphetsz a wikibe]'''.\n\nHa újra szeretnéd generálni a <code>LocalSettings.php</code> fájlt, kattints az alábbi gombra.\nEz '''nem ajánlott''', csak akkor, ha problémák vannak a wikivel.",
+    "config-upgrade-done-no-regenerate": "A frissítés befejeződött.\n\nMost már '''[$1 beléphetsz a wikibe]'''.",
+    "config-regenerate": "LocalSettings.php elkészítése újra →",
+    "config-show-table-status": "A <code>SHOW TABLE STATUS</code> lekérdezés nem sikerült!",
+    "config-unknown-collation": "'''Figyelmeztetés:''' az adatbázis ismeretlen egybevetést használ.",
+    "config-db-web-account": "A webes hozzáférésnél használt adatbázisfiók",
+    "config-db-web-help": "Add meg azt a felhasználónevet és jelszót, amit a webszerver a wiki általános működése során használ a csatlakozáshoz.",
+    "config-db-web-account-same": "A telepítéshez használt fiók használata",
+    "config-db-web-create": "Fiók létrehozása, ha még nem létezik.",
+    "config-db-web-no-create-privs": "A telepítéshez megadott fiók nem rendelkezik megfelelő jogosultságokkal új felhasználó létrehozásához.\nAz itt megadott fióknak léteznie kell.",
+    "config-mysql-engine": "Tárolómotor:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''Figyelmeztetés''': A MyISAM tárolómotort választottad, ami nem ajánlott a MediaWiki használatánál, mert:\n* nagyon rosszul kezeli a párhuzamos lekéréseket a táblák zárolása miatt\n* sokkal nagyobb az esélye az adatkorrupció kialakulásának\n* a MediaWiki kódbázisa nem mindig úgy kezeli a MyISAM-ot, ahogyan kellene\n\nHa a feltelepített MySQL támogatja az InnoDB-t, erősen ajánlott, hogy inkább azt válaszd.\nHa nem, akkor lehet, hogy itt az ideje a frissítésnek.",
+    "config-mysql-engine-help": "A legtöbb esetben az '''InnoDB''' a legjobb választás, mivel megfelelően támogatja a párhuzamosságot.\n\nA '''MyISAM''' gyorsabb megoldás lehet egyfelhasználós vagy csak olvasható környezetekben, azonban a MyISAM-adatbázisok sokkal gyakrabban sérülnek meg, mint az InnoDB-adatbázisok.",
+    "config-mysql-charset": "Adatbázis karakterkészlete:",
+    "config-mysql-binary": "Bináris",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "'''Bináris módban''' a MediaWiki az UTF-8-as szövegeket bináris mezőkben tárolja az adatbázisban.\nEz sokkal hatékonyabb a MySQL UTF-8-as módjánál, és lehetővé teszi a teljes Unicode-karakterkészlet használatát.\n\n'''UTF-8-as módban''' a MySQL tudni fogja,hogy az adatok milyen karakterkészlettel rendelkeznek, és megfelelően átalakítja őket, azonban nem tárolhatóak olyan karakterek, melyek a [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] felett vannak.",
+    "config-site-name": "A wiki neve:",
+    "config-site-name-help": "A böngésző címsorában és még számos más helyen jelenik meg.",
+    "config-site-name-blank": "Add meg az oldal nevét.",
+    "config-project-namespace": "Projektnévtér:",
+    "config-ns-generic": "Projekt",
+    "config-ns-site-name": "Ugyanaz, mint a wiki neve: $1",
+    "config-ns-other": "Más (meg kell adni)",
+    "config-ns-other-default": "SajátWiki",
+    "config-project-namespace-help": "A Wikipédia példáját követve számos wiki elkülöníti egy '''projekt névtérbe''' az irányelveit a tartalommal rendelkező lapoktól\nAz ebben a névtérben található lapok nevei egy előtaggal kezdődnek, amit itt adhatsz meg.\nÁltalában az előtag a wiki nevéből származik, de nem tartalmazhat írásjeleket, például „#”-t vagy „:”-t.",
+    "config-ns-invalid": "A megadott névtér („<nowiki>$1</nowiki>”) érvénytelen.\nVálassz másik projektnévteret!",
+    "config-ns-conflict": "A megadott névtér („<nowiki>$1</nowiki>”) ütközik az egyik alapértelmezett MediaWiki-névtérrel.\nVálassz másik projektnévteret!",
+    "config-admin-box": "Adminisztrátori fiók",
+    "config-admin-name": "Név:",
+    "config-admin-password": "Jelszó:",
+    "config-admin-password-confirm": "Jelszó újra:",
+    "config-admin-help": "Írd be a kívánt felhasználónevet, például „Kovács János”.\nEzzel a névvel fogsz majd bejelentkezni a wikibe.",
+    "config-admin-name-blank": "Add meg az adminisztrátor felhasználónevét!",
+    "config-admin-name-invalid": "A megadott felhasználónév (<nowiki>$1</nowiki>) érvénytelen.\nAdj meg egy másik felhasználónevet.",
+    "config-admin-password-blank": "Add meg az adminisztrátori fiók jelszavát!",
+    "config-admin-password-same": "A jelszó nem lehet ugyanaz, mint a felhasználónév.",
+    "config-admin-password-mismatch": "A megadott jelszavak nem egyeznek.",
+    "config-admin-email": "E-mail cím:",
+    "config-admin-email-help": "Add meg az e-mail címedet, hogy más felhasználók küldhessenek e-maileket a wikin keresztül, új jelszót tudj kérni, és értesülhess a figyelőlistádon lévő lapokon történt változásokról. Üresen is hagyhatod ezt a mezőt.",
+    "config-admin-error-user": "Belső hiba történt a(z) „<nowiki>$1</nowiki>” nevű adminisztrátor létrehozásakor.",
+    "config-admin-error-password": "Belső hiba történt a(z) „<nowiki>$1</nowiki>” nevű adminisztrátor jelszavának beállításakor: <pre>$2</pre>",
+    "config-admin-error-bademail": "Érvénytelen e-mail címet adtál meg.",
+    "config-subscribe": "Feliratkozás a [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce kiadási bejelentések levelezőlistájára].",
+    "config-subscribe-help": "Ez egy alacsony forgalmú levelezőlista, ahol a kiadásokkal kapcsolatos bejelentések jelennek meg, a fontos biztonsági javításokkal együtt.\nAjánlott feliratkozni rá, és frissíteni a MediaWikit, ha új verzió jön ki.",
+    "config-subscribe-noemail": "Anélkül próbáltál feliratkozni a kiadási bejelentések levelezőlistájára, hogy megadtál volna egy e-mail címet.\nAdj meg egyet, ha fel szeretnél iratkozni a levelezőlistára.",
+    "config-almost-done": "Már majdnem kész!\nA további konfigurációt kihagyhatod, és most azonnal elindíthatod a wiki telepítését.",
+    "config-optional-continue": "További információk megadása.",
+    "config-optional-skip": "Épp elég volt, települjön a wiki!",
+    "config-profile": "Felhasználói jogosultságok profilja:",
+    "config-profile-wiki": "Hagyományos wiki",
+    "config-profile-no-anon": "Felhasználói fiók létrehozása szükséges",
+    "config-profile-fishbowl": "Csak engedélyezett szerkesztők",
+    "config-profile-private": "Privát wiki",
+    "config-profile-help": "A wikik akkor működnek a legjobban, ha minél több felhasználó számára engedélyezett a szerkesztés.\nA MediaWikiben könnyű ellenőrizni a legutóbbi változtatásokat,és visszaállítani a naiv vagy káros felhasználók által okozott károkat.\n\nA MediaWiki azonban számos helyzetben hasznos lehet, és néha nem könnyű mindenkit meggyőzni a wiki előnyeiről.\nVálaszthatsz!\n\n'''{{int:config-profile-wiki}}kben''' bárki szerkeszthet, akár bejelentkezés nélkül is. A '''{{int:config-profile-no-anon}}''' beállítás további biztonságot nyújt, azonban elijesztheti az alkalmi szerkesztőket.\n\nLehetőség van arra is, hogy '''{{lc:{{int:config-profile-fishbowl}}}}''' módosíthassák a lapokat, de a nyilvánosság ekkor megtekintheti a lapokat és azok laptörténetét is. '''{{int:config-profile-private}}''' esetén csak az engedélyezett szerkesztők tekinthetik meg a lapokat, és ugyanez a csoport szerkeszthet.\n\nTelepítés után jóval összetettebb jogosultságrendszer állítható össze, további információ a [//www.mediawiki.org/wiki/Manual:User_rights kézikönyv kapcsolódó bejegyzésében].",
+    "config-license": "Szerzői jog és licenc:",
+    "config-license-none": "Nincs licencjelzés",
+    "config-license-cc-by-sa": "Creative Commons Nevezd meg! - Így add tovább!",
+    "config-license-cc-by": "Creative Commons Nevezd meg!",
+    "config-license-cc-by-nc-sa": "Creative Commons Nevezd meg! - Ne add el! - Így add tovább!",
+    "config-license-cc-0": "Creative Commons Zero (közkincs)",
+    "config-license-gfdl": "GNU Szabad Dokumentációs Licenc 1.3 vagy újabb",
+    "config-license-pd": "Közkincs",
+    "config-license-cc-choose": "Creative Commons-licenc választása",
+    "config-license-help": "A legtöbb wiki valamilyen [http://freedomdefined.org/Definition szabad licenc] alatt teszi közzé a szerkesztéseit.\nEz erősíti a közösségi tulajdon érzését, és elősegíti a hosszú távú közreműködők megjelenését.\nÁltalában nem szükséges magán- vagy vállalati wiki esetén.\n\nHa a Wikipédiáról szeretnél szövegeket másolni, és a Wikipédián felhasználhassák a wikidben található szöveget, akkor a '''Creative Commons Nevezd meg! - Így add tovább!''' lehetőséget válaszd.\n\nA Wikipédia korábban a GNU Szabad Dokumentációs Licencet használta.\nEz a licenc még ma is használható, azonban nem könnyű megérteni,\ntovábbá a GFDL alatt közzétett tartalom újrafelhasználása nehézkes.",
+    "config-email-settings": "E-mail beállítások",
+    "config-enable-email": "Kimenő e-mailek engedélyezése",
+    "config-enable-email-help": "E-mailek küldéséhez [http://www.php.net/manual/en/mail.configuration.php a PHP mail beállításait] megfelelően meg kell adni.\nHa nem akarsz semmilyen e-mailes funkciót használni, itt tilthatod le őket.",
+    "config-email-user": "A felhasználók küldhetnek egymásnak e-maileket",
+    "config-email-user-help": "Bármelyik felhasználó küldhet másiknak e-mail üzenetet, amennyiben engedélyezték a lehetőséget a beállításaiknál.",
+    "config-email-usertalk": "Vitalapi értesítések engedélyezése",
+    "config-email-usertalk-help": "A felhasználók értesítéseket kapnak a vitalapjuk változásairól, amennyiben engedélyezték ezt a lehetőséget a beállításaiknál.",
+    "config-email-watchlist": "Figyelőlistai értesítések engedélyezése",
+    "config-email-watchlist-help": "A felhasználók értesítéseket kapnak a figyelt lapjaik változásairól, amennyiben engedélyezték ezt a lehetőséget a beállításaiknál.",
+    "config-email-auth": "E-mailes hitelesítés engedélyezése",
+    "config-email-auth-help": "Ha a beállítás engedélyezve van, a felhasználóknak meg kell erősíteniük az e-mail címüket egy kiküldött link segítségével, amikor megadják vagy módosítják azt.\nCsak a megerősített e-mail címmel rendelkezők kaphatnak e-maileket más felhasználóktól vagy értesítéseket.\nA beállítás engedélyezése '''ajánlott''' publikus wikiknél, mivel így megakadályozható az e-mailes funkciókkal való visszaélés.",
+    "config-email-sender": "Válaszcím:",
+    "config-email-sender-help": "Add meg a kimenő e-mail-üzenetek válaszcímét.\nIde lesznek küldve a visszapattant üzenetek is.\nSzámos levelezőszerver számára a cím domainrészének érvényesnek kell lennie.",
+    "config-upload-settings": "Képek és fájlok feltöltése",
+    "config-upload-enable": "Fájlfeltöltés engedélyezése",
+    "config-upload-help": "A fájlfeltöltés lehetséges biztonsági kockázatoknak teszi ki a szerveredet.\nTovábbi információért olvasd el a [//www.mediawiki.org/wiki/Manual:Security biztonságról szóló szakaszt] a kézikönyvben.\n\nA fájlfeltöltés engedélyezéséhez változtasd meg a MediaWiki gyökérkönyvtárában található <code>images</code> alkönyvtár jogosultságát úgy, hogy a szerver írhasson oda, majd engedélyezd itt a beállítást.",
+    "config-upload-deleted": "Törölt fájlok könyvtára:",
+    "config-upload-deleted-help": "Válaszd ki azt a könyvtárat, ahol a törölt fájlok lesznek archiválva.\nNormális esetben ennek nem szabad elérhetőnek lennie az internetről.",
+    "config-logo": "A logó URL-címe:",
+    "config-logo-help": "A MediaWiki alapértelmezett felülete helyet ad egy 135×160 pixeles logónak a bal felső sarokban.\nTölts fel egy megfelelő méretű képet, majd írd be ide az URL-címét!\n\nHa nem szeretnél logót használni, egyszerűen hagyd üresen a mezőt.",
+    "config-instantcommons": "Instant Commons engedélyezése",
+    "config-instantcommons-help": "Az [//www.mediawiki.org/wiki/InstantCommons Instant Commons] lehetővé teszi, hogy a wikin használhassák a [//commons.wikimedia.org/ Wikimedia Commons] oldalon található képeket, hangokat és más médiafájlokat.\nA használatához a MediaWikinek internethozzáférésre van szüksége.\n\nA funkcióról és hogy hogyan állítható be más wikik esetén [//mediawiki.org/wiki/Manual:$wgForeignFileRepos a kézikönyvben] találhatsz további információkat.",
+    "config-cc-error": "A Creative Commons-licencválasztó nem tért vissza eredménnyel.\nAdd meg kézzel a licencet.",
+    "config-cc-again": "Válassz újra…",
+    "config-cc-not-chosen": "Válaszd ki a kívánt Creative Commons licencet, majd kattints a „Folytatás gombra”!",
+    "config-advanced-settings": "Haladó beállítások",
+    "config-cache-options": "Objektum-gyorsítótárazás beállításai:",
+    "config-cache-help": "Az objektumgyorsítótárazás célja, hogy felgyorsítsa a MediaWiki működését a gyakran használt adatok gyorsítótárazásával.\nKözepes vagy nagyobb oldalak esetén erősen ajánlott a használata, de kisebb oldalak esetén is hasznos lehet.",
+    "config-cache-none": "Nincs gyorsítótárazás (minden funkció működik, de nagyobb wiki esetében lassabb működést eredményezhet)",
+    "config-cache-accel": "PHP-objektumok gyorsítótárazása (APC, XCache or WinCache)",
+    "config-cache-memcached": "Memcached használata (további telepítés és konfigurálás szükséges)",
+    "config-memcached-servers": "Memcached-szerverek:",
+    "config-memcached-help": "Azon IP-címek listája, melyeket a Memcached használhat.\nVesszővel kell elválasztani őket, és meg kell adni a portot is. Például:\n 127.0.0.1:11211\n 192.168.1.25:11211",
+    "config-memcache-needservers": "Memcachedet választottad gyorsítótárnak, de nem adtál meg egyetlen szervert sem.",
+    "config-memcache-badip": "Érvénytelen IP-címet adtál meg a Memcachednek: $1.",
+    "config-memcache-noport": "Nem adtál meg portot a Memcached-szervernek: $1.\nHa nem ismered a portszámot, használd az alapértelmezettet: 11211.",
+    "config-memcache-badport": "A Memcached a(z) $1 és $2 közötti portokat szokta használni.",
+    "config-extensions": "Kiterjesztések",
+    "config-extensions-help": "A fent felsorolt kiterjesztések találhatóak meg az <code>./extensions</code> könyvtárban.\n\nLehetséges, hogy további beállításra lesz szükség hozzájuk, de már most engedélyezheted őket.",
+    "config-install-alreadydone": "'''Figyelmeztetés:''' Úgy tűnik, hogy a MediaWiki telepítve van, és te ismét megpróbálod telepíteni.\nFolytasd a következő oldalon.",
+    "config-install-begin": "A „{{int:config-continue}}” gomb megnyomása elindítja a MediaWiki telepítését.\nHa szeretnél módosítani a beállításokon, kattints a vissza gombra.",
+    "config-install-step-done": "kész",
+    "config-install-step-failed": "sikertelen",
+    "config-install-extensions": "Kiterjesztések beillesztése",
+    "config-install-database": "Adatbázis felállítása",
+    "config-install-schema": "Adatbázis-szerkezet létrehozása",
+    "config-install-pg-schema-not-exist": "A PostgreSQL-adatbázis nem létezik.",
+    "config-install-pg-schema-failed": "A táblák létrehozása nem sikerült.\nEllenőrizd, hogy „$1” felhasználó írhat-e a következő adatbázisba: „$2”.",
+    "config-install-pg-commit": "Változtatások közzététele",
+    "config-install-pg-plpgsql": "PL/pgSQL nyelv meglétének ellenőrzése",
+    "config-pg-no-plpgsql": "Telepítened kell a PL/pgSQL nyelvet a következő adatbázishoz: $1",
+    "config-pg-no-create-privs": "A telepítéshez megadott felhasználói fiók nem rendelkezik új fiók létrehozásához szükséges jogosultságokkal.",
+    "config-install-user": "Adatbázis-felhasználó létrehozása",
+    "config-install-user-alreadyexists": "Már létezik „$1” nevű felhasználó",
+    "config-install-user-create-failed": "Nem sikerült a(z) „$1” nevű felhasználó létrehozása: $2",
+    "config-install-user-grant-failed": "Nem sikerült jogosultságokkal felruházni a(z) „$1” nevű felhasználót: $2",
+    "config-install-user-missing": "A megadott felhasználó („$1”) nem létezik.",
+    "config-install-user-missing-create": "A megadott felhasználó („$1”) nem létezik.\nPipáld ki a „Fiók létrehozása” dobozt, ha létre szeretnéd hozni.",
+    "config-install-tables": "Táblák létrehozása",
+    "config-install-tables-exist": "'''Figyelmeztetés''': úgy tűnik, hogy a MediaWiki táblái már léteznek.\nLétrehozás kihagyása.",
+    "config-install-tables-failed": "'''Hiba''': a tábla létrehozása nem sikerült a következő miatt: $1",
+    "config-install-interwiki": "Alapértelmezett nyelvközihivatkozás-tábla feltöltése",
+    "config-install-interwiki-list": "Az <code>interwiki.list</code> fájl nem található.",
+    "config-install-interwiki-exists": "'''Figyelmeztetés''': Úgy tűnik, hogy az interwiki táblában már vannak bejegyzések.\nAlapértelmezett lista kihagyása.",
+    "config-install-stats": "Statisztika inicializálása",
+    "config-install-keys": "Titkos kulcsok generálása",
+    "config-insecure-keys": "'''Figyelmeztetés:''' A telepítés során generált $1 {{PLURAL:$2|biztonsági kulcs|biztonsági kulcsok}} nem teljesen $1 {{PLURAL:$2|biztonságos|biztonságosak}}. Érdemes {{PLURAL:$2||őket}} manuálisan megváltoztatni.",
+    "config-install-sysop": "Az adminisztrátor felhasználói fiókjának létrehozása",
+    "config-install-subscribe-fail": "Nem sikerült feliratkozni a mediawiki-announce levelezőlistára: $1",
+    "config-install-subscribe-notpossible": "A cURL nincs telepítve és az allow_url_fopen nem érhető el.",
+    "config-install-mainpage": "Kezdőlap létrehozása az alapértelmezett tartalommal",
+    "config-install-extension-tables": "Táblák létrehozása az engedélyezett kiterjesztésekhez",
+    "config-install-mainpage-failed": "Nemsikerült létrehozni a kezdőlapot: $1",
+    "config-install-done": "'''Gratulálunk!'''\nA MediaWiki telepítése sikeresen befejeződött.\n\nA telepítő elkészítette a <code>LocalSettings.php</code> fájlt, amely tartalmazza az összes beállítást.\n\nEzt le kell tölteni, majd elhelyezni a wiki telepítési könyvtárába (az a könyvtár, ahol az index.php is található).\n\nA letöltés automatikusan elindul. Ha mégsem indulna el, vagy megszakítottad, az alábbi linkre kattintva újra letöltheted:\n\n$3\n\n'''Megjegyzés''': Ha ezt most nem teszed meg, és kilépsz a telepítésből, az elkészített konfigurációs fájlt nem tudod elérni a későbbiekben.\n\nHa végeztél a fájl elhelyezésével, '''[$2 beléphetsz a wikibe]'''.",
+    "config-download-localsettings": "<code>LocalSettings.php</code> letöltése",
+    "config-help": "segítség",
+    "mainpagetext": "'''A MediaWiki telepítése sikeresen befejeződött.'''",
+    "mainpagedocfooter": "Ha segítségre van szükséged a wikiszoftver használatához, akkor keresd fel a [//meta.wikimedia.org/wiki/Help:Contents User's Guide] oldalt.\n\n== Alapok (angol nyelven) ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Beállítások listája]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki GyIK]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-kiadások levelezőlistája]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/hy.json b/includes/installer/i18n/hy.json
new file mode 100644 (file)
index 0000000..568c15e
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''«MediaWiki» ծրագիրը հաջողությամբ տեղադրվեց։'''",
+    "mainpagedocfooter": "Այցելեք [//meta.wikimedia.org/wiki/Help:Contents User's Guide]՝ վիքի ծրագրային ապահովման օգտագործման մասին տեղեկությունների համար։\n\n== Որոշ օգտակար ռեսուրսներ ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ia.json b/includes/installer/i18n/ia.json
new file mode 100644 (file)
index 0000000..edb7014
--- /dev/null
@@ -0,0 +1,306 @@
+{
+    "@metadata": {
+        "authors": [
+            "McDutchie",
+            "아라"
+        ]
+    },
+    "config-desc": "Le installator de MediaWiki",
+    "config-title": "Installation de MediaWiki $1",
+    "config-information": "Information",
+    "config-localsettings-upgrade": "Un file <code>LocalSettings.php</code> ha essite detegite.\nPro actualisar iste installation, per favor entra le valor de <code>$wgUpgradeKey</code> in le quadro hic infra.\nIste se trova in <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Un file <code>LocalSettings.php</code> file ha essite detegite.\nPro actualisar iste installation, per favor executa <code>update.php</code>.",
+    "config-localsettings-key": "Clave de actualisation:",
+    "config-localsettings-badkey": "Le clave que tu forniva es incorrecte",
+    "config-upgrade-key-missing": "Un installation existente de MediaWiki ha essite detegite.\nPro actualisar iste installation, es necessari adjunger le sequente linea al fin del file <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "Le file <code>LocalSettings.php</code> existente pare esser incomplete.\nLe variabile $1 non es definite.\nPer favor cambia <code>LocalSettings.php</code> de sorta que iste variabile es definite, e clicca \"{{int:Config-continue}}\".",
+    "config-localsettings-connection-error": "Un error esseva incontrate durante le connexion al base de datos usante le configurationes specificate in <code>LocalSettings.php</code> o <code>AdminSettings.php</code>. Per favor repara iste configurationes e tenta lo de novo.\n\n$1",
+    "config-session-error": "Error al comenciamento del session: $1",
+    "config-session-expired": "Le datos de tu session pare haber expirate.\nLe sessiones es configurate pro un duration de $1.\nTu pote augmentar isto per definir <code>session.gc_maxlifetime</code> in php.ini.\nReinitia le processo de installation.",
+    "config-no-session": "Le datos de tu session es perdite!\nVerifica tu php.ini e assecura te que un directorio appropriate es definite in <code>session.save_path</code>.",
+    "config-your-language": "Tu lingua:",
+    "config-your-language-help": "Selige un lingua a usar durante le processo de installation.",
+    "config-wiki-language": "Lingua del wiki:",
+    "config-wiki-language-help": "Selige le lingua in que le wiki essera predominantemente scribite.",
+    "config-back": "← Retro",
+    "config-continue": "Continuar →",
+    "config-page-language": "Lingua",
+    "config-page-welcome": "Benvenite a MediaWiki!",
+    "config-page-dbconnect": "Connecter al base de datos",
+    "config-page-upgrade": "Actualisar le installation existente",
+    "config-page-dbsettings": "Configuration del base de datos",
+    "config-page-name": "Nomine",
+    "config-page-options": "Optiones",
+    "config-page-install": "Installar",
+    "config-page-complete": "Complete!",
+    "config-page-restart": "Reinitiar installation",
+    "config-page-readme": "Lege me",
+    "config-page-releasenotes": "Notas del version",
+    "config-page-copying": "Copiar",
+    "config-page-upgradedoc": "Actualisar",
+    "config-page-existingwiki": "Wiki existente",
+    "config-help-restart": "Vole tu rader tote le datos salveguardate que tu ha entrate e reinitiar le processo de installation?",
+    "config-restart": "Si, reinitia lo",
+    "config-welcome": "=== Verificationes del ambiente ===\nVerificationes de base es exequite pro determinar si iste ambiente es apte pro le installation de MediaWiki.\nTu deberea indicar le resultatos de iste verificationes si tu ha besonio de adjuta durante le installation.",
+    "config-copyright": "=== Copyright and Terms ===\n\n$1\n\nIste programma es software libere; vos pote redistribuer lo e/o modificar lo sub le conditiones del Licentia Public General de GNU publicate per le Free Software Foundation; version 2 del Licentia, o (a vostre option) qualcunque version posterior.\n\nIste programma es distribuite in le sperantia que illo sia utile, ma '''sin garantia''', sin mesmo le implicite garantia de '''commercialisation''' o '''aptitude pro un proposito particular'''.\nVide le Licentia Public General de GNU pro plus detalios.\n\nVos deberea haber recipite <doclink href=Copying>un exemplar del Licentia Public General de GNU</doclink> con iste programma; si non, scribe al Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, o [http://www.gnu.org/copyleft/gpl.html lege lo in linea].",
+    "config-sidebar": "* [//www.mediawiki.org Pagina principal de MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents Guida pro usatores]\n* [//www.mediawiki.org/wiki/Manual:Contents Guida pro administratores]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Lege me</doclink>\n* <doclink href=ReleaseNotes>Notas de iste version</doclink>\n* <doclink href=Copying>Conditiones de copia</doclink>\n* <doclink href=UpgradeDoc>Actualisation</doclink>",
+    "config-env-good": "Le ambiente ha essite verificate.\nTu pote installar MediaWiki.",
+    "config-env-bad": "Le ambiente ha essite verificate.\nTu non pote installar MediaWiki.",
+    "config-env-php": "PHP $1 es installate.",
+    "config-env-php-toolow": "PHP $1 es installate.\nNonobstante, MediaWiki require PHP $2 o plus recente.",
+    "config-unicode-using-utf8": "utf8_normalize.so per Brion Vibber es usate pro le normalisation Unicode.",
+    "config-unicode-using-intl": "Le [http://pecl.php.net/intl extension PECL intl] es usate pro le normalisation Unicode.",
+    "config-unicode-pure-php-warning": "'''Aviso''': Le [http://pecl.php.net/intl extension PECL intl] non es disponibile pro exequer le normalisation Unicode; le systema recurre al implementation lente in PHP pur.\nSi tu sito ha un alte volumine de traffico, tu deberea informar te un poco super le [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalisation Unicode].",
+    "config-unicode-update-warning": "'''Aviso''': Le version installate del bibliotheca inveloppante pro normalisation Unicode usa un version ancian del bibliotheca del [http://site.icu-project.org/ projecto ICU].\nTu deberea [//www.mediawiki.org/wiki/Unicode_normalization_considerations actualisar lo] si le uso de Unicode importa a te.",
+    "config-no-db": "Non poteva trovar un driver appropriate pro le base de datos! Es necessari installar un driver de base de datos pro PHP.\nLe sequente typos de base de datos es supportate: $1.\n\nSi tu sito usa un servitor dividite (shared hosting), demanda a tu providitor de installar un driver de base de datos appropriate.\nSi tu compilava PHP tu mesme, reconfigura lo con un cliente de base de datos activate, per exemplo usante <code>./configure --with-mysql</code>.\nSi tu installava PHP ex un pacchetto Debian o Ubuntu, tu debe installar equalmente le modulo php5-mysql.",
+    "config-outdated-sqlite": "'''Attention''': tu ha SQLite $1, que es inferior al version minimal requirite, $2. SQLite essera indisponibile.",
+    "config-no-fts3": "'''Attention''': SQLite es compilate sin [//sqlite.org/fts3.html modulo FTS3]; functionalitate de recerca non essera disponibile in iste back-end.",
+    "config-register-globals": "'''Attention: le option <code>[http://php.net/register_globals register_globals]</code> de PHP es activate.'''\n'''Disactiva lo si tu pote.'''\nMediaWiki functionara, ma tu servitor es exponite a potential vulnerabilitates de securitate.",
+    "config-magic-quotes-runtime": "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] es active!'''\nIste option corrumpe le entrata de datos imprevisibilemente.\nTu non pote installar o usar MediaWiki si iste option non es disactivate.",
+    "config-magic-quotes-sybase": "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] es active!'''\nIste option corrumpe le entrata de datos imprevisibilemente.\nTu non pote installar o usar MediaWiki si iste option non es disactivate.",
+    "config-mbstring": "'''Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] es active!'''\nIste option causa errores e pote corrumper datos imprevisibilemente.\nTu non pote installar o usar MediaWiki si iste option non es disactivate.",
+    "config-ze1": "'''Fatal: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] es active!'''\nIste option causa horribile defectos con MediaWiki.\nTu non pote installar o usar MediaWiki si iste option non es disactivate.",
+    "config-safe-mode": "'''Aviso:''' Le [http://www.php.net/features.safe-mode modo secur] de PHP es active.\nIsto pote causar problemas, particularmente si es usate le incargamento de files e le supporto de <code>math</code>.",
+    "config-xml-bad": "Le modulo XML de PHP es mancante.\nMediaWiki require functiones de iste modulo e non functionara in iste configuration.\nSi tu usa Mandrake, installa le pacchetto php-xml.",
+    "config-pcre": "Le modulo de supporto PCRE pare esser mancante.\nMediaWiki require le functiones de expression regular compatibile con Perl pro poter functionar.",
+    "config-pcre-no-utf8": "'''Fatal''': Le modulo PCRE de PHP pare haber essite compilate sin supporto de PCRE_UTF8.\nMediaWiki require supporto de UTF-8 pro functionar correctemente.",
+    "config-memory-raised": "Le <code>memory_limit</code> de PHP es $1, elevate a $2.",
+    "config-memory-bad": "'''Aviso:''' Le <code>memory_limit</code> de PHP es $1.\nIsto es probabilemente troppo basse.\nLe installation pote faller!",
+    "config-ctype": "'''Fatal''': PHP debe esser compilate con supporto pro le [http://www.php.net/manual/en/ctype.installation.php extension Ctype].",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] es installate",
+    "config-apc": "[http://www.php.net/apc APC] es installate",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] es installate",
+    "config-no-cache": "'''Aviso:''' Non poteva trovar [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] o [http://www.iis.net/download/WinCacheForPhp WinCache].\nLe cache de objectos non es activate.",
+    "config-mod-security": "'''Attention''': [http://modsecurity.org/ mod_security] es active in tu servitor web. Si mal configurate, isto pote causar problemas pro MediaWiki o altere software que permitte al usatores de publicar contento arbitrari.\nConsulta le [http://modsecurity.org/documentation/ documentation de mod_security] o contacta le servicio de adjuta de tu host si tu incontra estranie errores.",
+    "config-diff3-bad": "GNU diff3 non trovate.",
+    "config-imagemagick": "ImageMagick trovate: <code>$1</code>.\nLe miniaturas de imagines essera activate si tu activa le incargamento de files.",
+    "config-gd": "Le bibliotheca graphic GD se trova integrate in le systema.\nLe miniaturas de imagines essera activate si tu activa le incargamento de files.",
+    "config-no-scaling": "Non poteva trovar le bibliotheca GD ni ImageMagick.\nLe miniaturas de imagines essera disactivate.",
+    "config-no-uri": "'''Error:''' Non poteva determinar le URI actual.\nInstallation abortate.",
+    "config-no-cli-uri": "'''Attention''': Cammino al script (--scriptpath) non specificate. Le predefinition es usate: <code>$1</code>.",
+    "config-using-server": "Es usate le nomine de servitor \"<nowiki>$1</nowiki>\".",
+    "config-using-uri": "Le URL de servitor \"<nowiki>$1$2</nowiki>\" es usate.",
+    "config-uploads-not-safe": "'''Aviso:''' Le directorio predefinite pro files incargate <code>$1</code> es vulnerabile al execution arbitrari de scripts.\nBen que MediaWiki verifica tote le files incargate contra le menacias de securitate, il es altemente recommendate [//www.mediawiki.org/wiki/Manual:Security#Upload_security remediar iste vulnerabilitate de securitate] ante de activar le incargamento de files.",
+    "config-no-cli-uploads-check": "'''Attention:''' Le directorio predefinite pro files incargate (<code>$1</code>) non es verificate contra le vulnerabilitate\nal execution arbitrari de scripts durante le installation de CLI.",
+    "config-brokenlibxml": "Vostre systema ha un combination de versiones de PHP e libxml2 que es defectuose e pote causar corruption celate de datos in MediaWiki e altere applicationes web.\nActualisa a PHP 5.2.9 o plus recente e libxml2 2.7.3 o plus recente ([//bugs.php.net/bug.php?id=45996 problema reportate presso PHP]).\nInstallation abortate.",
+    "config-using531": "MediaWiki non pote esser usate con PHP $1 a causa de un defecto concernente parametros de referentia a <code>__call()</code>.\nActualisa a PHP 5.3.2 o plus recente, o retrograda a PHP 5.3.0 pro remediar isto.\nInstallation abortate.",
+    "config-suhosin-max-value-length": "Suhosin es installate e limita parametro <code>length</code> de GET a $1 bytes.\nLe componente ResourceLoader de MediaWiki va contornar iste limite, ma isto prejudicara le rendimento.\nSi possibile, tu deberea mitter <code>suhosin.get.max_value_length</code> a 1024 o superior in <code>php.ini</code>, e mitter <code>$wgResourceLoaderMaxQueryLength</code> al mesme valor in <code>LocalSettings.php</code>.",
+    "config-db-type": "Typo de base de datos:",
+    "config-db-host": "Servitor de base de datos:",
+    "config-db-host-help": "Si tu servitor de base de datos es in un altere servitor, entra hic le nomine o adresse IP del servitor.\n\nSi tu usa un servitor web usate in commun, tu providitor deberea dar te le correcte nomine de servitor in su documentation.\n\nSi tu face le installation in un servitor Windows e usa MySQL, le nomine \"localhost\" possibilemente non functiona como nomine de servitor. In tal caso, essaya \"127.0.0.1\", i.e. le adresse IP local.\n\nSi tu usa PostgreSQL, lassa iste campo vacue pro connecter via un \"socket\" de Unix.",
+    "config-db-host-oracle": "TNS del base de datos:",
+    "config-db-host-oracle-help": "Entra un [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm nomine Local Connect] valide; un file tnsnames.ora debe esser visibile a iste installation.<br />Si tu usa bibliothecas de cliente 10g o plus recente, tu pote anque usar le methodo de nomination [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
+    "config-db-wiki-settings": "Identificar iste wiki",
+    "config-db-name": "Nomine del base de datos:",
+    "config-db-name-help": "Selige un nomine que identifica tu wiki.\nIllo non pote continer spatios.\n\nSi tu usa un servitor web usate in commun, tu providitor te fornira le nomine specific de un base de datos a usar, o te permitte crear un base de datos via un pannello de controlo.",
+    "config-db-name-oracle": "Schema del base de datos:",
+    "config-db-account-oracle-warn": "Il ha tres scenarios supportate pro le installation de Oracle como le base de datos de iste systema:\n\nSi tu vole crear un conto del base de datos como parte del processo de installation, per favor specifica un conto con le rolo SYSDBA como le conto del base de datos pro installation, e specifica le nomine e contrasigno desirate pro le conto de accesso per web. Alteremente tu pote crear le conto de accesso per web manualmente e specificar solmente iste conto (si illo ha le permissiones requisite pro crear le objectos de schema) o specifica duo contos differente, un con privilegios de creation e un conto restringite pro accesso per web.\n\nUn script pro crear un conto con le privilegios requisite se trova in le directorio \"maintenance/oracle/\" de iste installation. Non oblida que le uso de un conto restringite disactiva tote le capacitates de mantenentia in le conto predefinite.",
+    "config-db-install-account": "Conto de usator pro installation",
+    "config-db-username": "Nomine de usator del base de datos:",
+    "config-db-password": "Contrasigno del base de datos:",
+    "config-db-password-empty": "Per favor entra un contrasigno pro le nove usator del base de datos: $1.\nBen que il es possibile crear usatores sin contrasigno, isto non es secur.",
+    "config-db-install-username": "Entra le nomine de usator que essera usate pro connecter al base de datos durante le processo de installation. Isto non es le nomine de usator del conto MediaWiki; isto es le nomine de usator pro tu base de datos.",
+    "config-db-install-password": "Entra le contrasigno que essera usate pro connecter al base de datos durante le processo de installation. Isto non es le contrasigno del conto MediaWiki; isto es le contrasigno pro tu base de datos.",
+    "config-db-install-help": "Entra le nomine de usator e contrasigno que essera usate pro connecter al base de datos durante le processo de installation.",
+    "config-db-account-lock": "Usar le mesme nomine de usator e contrasigno durante le operation normal",
+    "config-db-wiki-account": "Conto de usator pro operation normal",
+    "config-db-wiki-help": "Entra le nomine de usator e contrasigno que essera usate pro connecter al base de datos durante le operation normal del wiki.\nSi le conto non existe, e si le conto de installation possede sufficiente privilegios, iste conto de usator essera create con le minime privilegios necessari pro operar le wiki.",
+    "config-db-prefix": "Prefixo de tabella del base de datos:",
+    "config-db-prefix-help": "Si il es necessari usar un base de datos in commun inter multiple wikis, o inter MediaWiki e un altere application web, tu pote optar pro adder un prefixo a tote le nomines de tabella pro evitar conflictos.\nNon usa spatios.\n\nIste campo usualmente resta vacue.",
+    "config-db-charset": "Codification de characteres in le base de datos",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binari",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 retrocompatibile UTF-8",
+    "config-charset-help": "'''Aviso:''' Si tu usa '''UTF-8 retrocompatibile''' sur MySQL 4.1+, e postea face un copia de reserva del base de datos con <code>mysqldump</code>, tote le characteres non ASCII pote esser destruite, resultante in corruption irreversibile de tu copias de reserva!\n\nIn '''modo binari''', MediaWiki immagazina texto in UTF-8 in le base de datos in campos binari.\nIsto es plus efficiente que le modo UTF-8 de MySQL, e permitte usar le rango complete de characteres de Unicode.\nIn '''modo UTF-8''', MySQL sapera in qual codification de characteres tu datos es, e pote presentar e converter lo appropriatemente,\nma non te permittera immagazinar characteres supra le [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Plano Multilingue Basic].",
+    "config-mysql-old": "MySQL $1 o plus recente es requirite, tu ha $2.",
+    "config-db-port": "Porto de base de datos:",
+    "config-db-schema": "Schema pro MediaWiki",
+    "config-db-schema-help": "Iste schema es generalmente correcte.\nSolmente cambia lo si tu es secur que es necessari.",
+    "config-pg-test-error": "Impossibile connecter al base de datos '''$1''': $2",
+    "config-sqlite-dir": "Directorio pro le datos de SQLite:",
+    "config-sqlite-dir-help": "SQLite immagazina tote le datos in un sol file.\n\nLe directorio que tu forni debe permitter le accesso de scriptura al servitor web durante le installation.\n\nIllo '''non''' debe esser accessibile via web. Pro isto, nos non lo pone ubi tu files PHP es.\n\nLe installator scribera un file <code>.htaccess</code> insimul a illo, ma si isto falli, alcuno pote ganiar accesso directe a tu base de datos.\nIsto include le crude datos de usator (adresses de e-mail, contrasignos codificate) assi como versiones delite e altere datos restringite super le wiki.\n\nConsidera poner le base de datos in un loco completemente differente, per exemplo in <code>/var/lib/mediawiki/yourwiki</code>.",
+    "config-oracle-def-ts": "Spatio de tabellas predefinite:",
+    "config-oracle-temp-ts": "Spatio de tabellas temporari:",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-support-info": "MediaWiki supporta le sequente systemas de base de datos:\n\n$1\n\nSi tu non vide hic infra le systema de base de datos que tu tenta usar, alora seque le instructiones ligate hic supra pro activar le supporto.",
+    "config-support-mysql": "* $1 es le systema primari pro MediaWiki e le melio supportate ([http://www.php.net/manual/en/mysql.installation.php como compilar PHP con supporto de MySQL])",
+    "config-support-postgres": "* $1 es un systema de base de datos popular e open source, alternativa a MySQL ([http://www.php.net/manual/en/pgsql.installation.php como compilar PHP con supporto de PostgreSQL]). Es possibile que resta alcun minor defectos non resolvite, dunque illo non es recommendate pro uso in un ambiente de production.",
+    "config-support-sqlite": "* $1 es un systema de base de datos legier que es multo ben supportate. ([http://www.php.net/manual/en/pdo.installation.php Como compilar PHP con supporto de SQLite], usa PDO)",
+    "config-support-oracle": "* $1 es un banca de datos commercial pro interprisas. ([http://www.php.net/manual/en/oci8.installation.php Como compilar PHP con supporto de OCI8])",
+    "config-header-mysql": "Configuration de MySQL",
+    "config-header-postgres": "Configuration de PostgreSQL",
+    "config-header-sqlite": "Configuration de SQLite",
+    "config-header-oracle": "Configuration de Oracle",
+    "config-invalid-db-type": "Typo de base de datos invalide",
+    "config-missing-db-name": "Tu debe entrar un valor pro \"Nomine de base de datos\"",
+    "config-missing-db-host": "Tu debe entrar un valor pro \"Host del base de datos\"",
+    "config-missing-db-server-oracle": "You must enter a value for \"TNS del base de datos\"",
+    "config-invalid-db-server-oracle": "TNS de base de datos \"$1\" invalide.\nUsa o \"TNS Name\" o un catena \"Easy Connect\". ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Methodos de nomenclatura de Oracle])",
+    "config-invalid-db-name": "Nomine de base de datos \"$1\" invalide.\nUsa solmente litteras ASCII (a-z, A-Z), numeros (0-9), characteres de sublineamento (_) e tractos de union (-).",
+    "config-invalid-db-prefix": "Prefixo de base de datos \"$1\" invalide.\nUsa solmente litteras ASCII (a-z, A-Z), numeros (0-9), characteres de sublineamento (_) e tractos de union (-).",
+    "config-connection-error": "$1.\n\nVerifica le servitor, nomine de usator e contrasigno hic infra e reproba.",
+    "config-invalid-schema": "Schema invalide pro MediaWiki \"$1\".\nUsa solmente litteras ASCII (a-z, A-Z), numeros (0-9) e characteres de sublineamento (_).",
+    "config-db-sys-create-oracle": "Le installator supporta solmente le uso de un conto SYSDBA pro le creation de un nove conto.",
+    "config-db-sys-user-exists-oracle": "Le conto de usator \"$1\" ja existe. SYSDBA pote solmente esser usate pro le creation de un nove conto!",
+    "config-postgres-old": "PostgreSQL $1 o plus recente es requirite, tu ha $2.",
+    "config-sqlite-name-help": "Selige un nomine que identifica tu wiki.\nNon usar spatios o tractos de union.\nIsto essera usate pro le nomine del file de datos de SQLite.",
+    "config-sqlite-parent-unwritable-group": "Impossibile crear le directorio de datos <code><nowiki>$1</nowiki></code>, proque le directorio superjacente <code><nowiki>$2</nowiki></code> non concede le accesso de scriptura al servitor web.\n\nLe installator ha determinate le usator sub que le servitor web es executate.\nConcede le accesso de scriptura in le directorio <code><nowiki>$3</nowiki></code> a iste usator pro continuar.\nIn un systema Unix/Linux:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Impossibile crear le directorio de datos <code><nowiki>$1</nowiki></code>, proque le directorio superjacente <code><nowiki>$2</nowiki></code> non concede le accesso de scriptura al servitor web.\n\nLe installator non poteva determinar le usator sub que le servitor web es executate.\nConcede le accesso de scriptura in le directorio <code><nowiki>$3</nowiki></code> a iste usator (e alteres!) pro continuar.\nIn un systema Unix/Linux:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Error al creation del directorio de datos \"$1\".\nVerifica le loco e reproba.",
+    "config-sqlite-dir-unwritable": "Impossibile scriber in le directorio \"$1\".\nCambia su permissiones de sorta que le servitor web pote scriber in illo, e reproba.",
+    "config-sqlite-connection-error": "$1.\n\nVerifica le directorio de datos e le nomine de base de datos hic infra e reproba.",
+    "config-sqlite-readonly": "Le file <code>$1</code> non es accessibile pro scriptura.",
+    "config-sqlite-cant-create-db": "Non poteva crear le file de base de datos <code>$1</code>.",
+    "config-sqlite-fts3-downgrade": "PHP non ha supporto pro FTS3. Le tabellas es retrogradate.",
+    "config-can-upgrade": "Il ha tabellas MediaWiki in iste base de datos.\nPro actualisar los a MediaWiki $1, clicca super '''Continuar'''.",
+    "config-upgrade-done": "Actualisation complete.\n\nTu pote ora [$1 comenciar a usar tu wiki].\n\nSi tu vole regenerar tu file <code>LocalSettings.php</code>, clicca super le button hic infra.\nIsto '''non es recommendate''' si tu non ha problemas con tu wiki.",
+    "config-upgrade-done-no-regenerate": "Actualisation complete.\n\nTu pote ora [$1 comenciar a usar tu wiki].",
+    "config-regenerate": "Regenerar LocalSettings.php →",
+    "config-show-table-status": "Le consulta <code>SHOW TABLE STATUS</code> falleva!",
+    "config-unknown-collation": "'''Aviso:''' Le base de datos usa un collation non recognoscite.",
+    "config-db-web-account": "Conto de base de datos pro accesso via web",
+    "config-db-web-help": "Selige le nomine de usator e contrasigno que le servitor web usara pro connecter al servitor de base de datos, durante le operation ordinari del wiki.",
+    "config-db-web-account-same": "Usar le mesme conto que pro le installation",
+    "config-db-web-create": "Crear le conto si illo non jam existe",
+    "config-db-web-no-create-privs": "Le conto que tu specificava pro installation non ha sufficiente privilegios pro crear un conto.\nLe conto que tu specifica hic debe jam exister.",
+    "config-mysql-engine": "Motor de immagazinage:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "* '''Attention:''' Tu ha seligite MyISAM como motor de immagazinage pro MySQL, lo que non es recommendate pro uso con MediaWiki, perque:\n* illo a pena supporta le processamento simultanee a causa del blocada le tabulas\n* illo es plus susceptibile al corruption que altere motores\n* le base de codice de MediaWiki non sempre manea MyISAM como illo deberea\n\nSi tu installation de MySQL supporta InnoDB, es multo recommendate que tu selige iste in su loco.\nSi tu installation de MySQL non supporta InnoDB, forsan isto es un bon occasion pro actualisar lo.",
+    "config-mysql-engine-help": "'''InnoDB''' es quasi sempre le melior option, post que illo ha bon supporto pro simultaneitate.\n\n'''MyISAM''' pote esser plus rapide in installationes a usator singule o a lectura solmente.\nLe bases de datos MyISAM tende a esser corrumpite plus frequentemente que le base de datos InnoDB.",
+    "config-mysql-charset": "Codification de characteres in le base de datos:",
+    "config-mysql-binary": "Binari",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "In '''modo binari''', MediaWiki immagazina le texto UTF-8 in le base de datos in campos binari.\nIsto es plus efficiente que le modo UTF-8 de MySQL, e permitte usar le rango complete de characteres Unicode.\n\nIn '''modo UTF-8''', MySQL cognoscera le codification de characteres usate pro tu dats, e pote presentar e converter lo appropriatemente, ma illo non permittera immagazinar characteres supra le [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Plano Multilingue Basic].",
+    "config-site-name": "Nomine del wiki:",
+    "config-site-name-help": "Isto apparera in le barra de titulo del navigator e in varie altere locos.",
+    "config-site-name-blank": "Entra un nomine de sito.",
+    "config-project-namespace": "Spatio de nomines del projecto:",
+    "config-ns-generic": "Projecto",
+    "config-ns-site-name": "Mesme nomine que le wiki: $1",
+    "config-ns-other": "Altere (specifica)",
+    "config-ns-other-default": "MiWiki",
+    "config-project-namespace-help": "Sequente le exemplo de Wikipedia, multe wikis tene lor paginas de politica separate de lor paginas de contento, in un \"'''spatio de nomines de projecto'''\".\nTote le titulos de pagina in iste spatio de nomines comencia con un certe prefixo, le qual tu pote specificar hic.\nTraditionalmente, iste prefixo deriva del nomine del wiki, ma illo non pote continer characteres de punctuation como \"#\" o \":\".",
+    "config-ns-invalid": "Le spatio de nomines specificate \"<nowiki>$1</nowiki>\" es invalide.\nSpecifica un altere spatio de nomines de projecto.",
+    "config-ns-conflict": "Le spatio de nomines specificate \"<nowiki>$1</nowiki>\" conflige con un spatio de nomines predefinite de MediaWiki.\nSpecifica un altere spatio de nomines pro le projecto.",
+    "config-admin-box": "Conto de administrator",
+    "config-admin-name": "Tu nomine:",
+    "config-admin-password": "Contrasigno:",
+    "config-admin-password-confirm": "Repete contrasigno:",
+    "config-admin-help": "Entra hic tu nomine de usator preferite, per exemplo \"Julio Cesare\".\nIsto es le nomine que tu usara pro aperir session in le wiki.",
+    "config-admin-name-blank": "Entra un nomine de usator pro administrator.",
+    "config-admin-name-invalid": "Le nomine de usator specificate \"<nowiki>$1</nowiki>\" es invalide.\nSpecifica un altere nomine de usator.",
+    "config-admin-password-blank": "Entra un contrasigno pro le conto de administrator.",
+    "config-admin-password-same": "Le contrasigno non pote esser le mesme que le nomine de usator.",
+    "config-admin-password-mismatch": "Le duo contrasignos que tu scribeva non es identic.",
+    "config-admin-email": "Adresse de e-mail:",
+    "config-admin-email-help": "Entra un adresse de e-mail hic pro permitter le reception de e-mail ab altere usatores del wiki, pro poter reinitialisar tu contrasigno, e pro reciper notification de cambios a paginas in tu observatorio. Iste campo pote esser lassate vacue.",
+    "config-admin-error-user": "Error interne durante le creation de un administrator con le nomine \"<nowiki>$1</nowiki>\".",
+    "config-admin-error-password": "Error interne durante le definition de un contrasigno pro le administrator \"<nowiki>$1</nowiki>\": <pre>$2</pre>",
+    "config-admin-error-bademail": "Tu ha entrate un adresse de e-mail invalide",
+    "config-subscribe": "Subscribe al [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce lista de diffusion pro annuncios de nove versiones].",
+    "config-subscribe-help": "Isto es un lista de e-mail a basse volumine pro annuncios de nove versiones, includente importante annuncios de securitate.\nTu deberea subscriber a illo e actualisar tu installation de MediaWiki quando nove versiones es editate.",
+    "config-subscribe-noemail": "Tu tentava abonar te al lista de diffusion pro annunciamento de nove versiones sin fornir un adresse de e-mail.\nPer favor specifica un adresse de e-mail si tu vole abonar te al lista de diffusion.",
+    "config-almost-done": "Tu ha quasi finite!\nTu pote ora saltar le configuration remanente e installar le wiki immediatemente.",
+    "config-optional-continue": "Pone me plus questiones.",
+    "config-optional-skip": "Isto me es jam tediose. Simplemente installa le wiki.",
+    "config-profile": "Profilo de derectos de usator:",
+    "config-profile-wiki": "Wiki aperte",
+    "config-profile-no-anon": "Creation de conto obligatori",
+    "config-profile-fishbowl": "Modificatores autorisate solmente",
+    "config-profile-private": "Wiki private",
+    "config-profile-help": "Le wikis functiona melio si tu permitte a tante personas como possibile de modificar los.\nIn MediaWiki, il es facile revider le modificationes recente, e reverter omne damno facite per usatores naive o malitiose.\n\nNonobstante, multes ha trovate MediaWiki utile in un grande varietate de rolos, e alcun vices il non es facile convincer omnes del beneficios del principio wiki.\nDunque, a te le option.\n\nLe modello '''{{int:config-profile-wiki}}''' permitte a omnes de modificar, sin mesmo aperir un session.\nUn wiki con '''{{int:config-profile-no-anon}}''' attribue additional responsabilitate, ma pote dissuader contributores occasional.\n\nLe scenario '''{{int:config-profile-fishbowl}}''' permitte al usatores approbate de modificar, ma le publico pote vider le paginas, includente lor historia.\nUn '''{{int:config-profile-private}}''' permitte solmente al usatores approbate de vider le paginas e de modificar los.\n\nConfigurationes de derectos de usator plus complexe es disponibile post installation, vide le [//www.mediawiki.org/wiki/Manual:User_rights pertinente section del manual].",
+    "config-license": "Copyright e licentia:",
+    "config-license-none": "Nulle licentia in pede de paginas",
+    "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
+    "config-license-cc-by": "Creative Commons Attribution",
+    "config-license-cc-by-nc-sa": "Creative Commons Attribution Non-Commercial Share Alike",
+    "config-license-cc-0": "Creative Commons Zero (dominio public)",
+    "config-license-gfdl": "Licentia GNU pro Documentation Libere 1.3 o plus recente",
+    "config-license-pd": "Dominio public",
+    "config-license-cc-choose": "Seliger un licentia Creative Commons personalisate",
+    "config-license-help": "Multe wikis public pone tote le contributiones sub un [http://freedomdefined.org/Definition/Ia?uselang=ia licentia libere].\nIsto adjuta a crear un senso de proprietate communitari e incoragia le contribution in longe termino.\nIsto non es generalmente necessari pro un wiki private o de interprisa.\n\nSi tu vole poter usar texto de Wikipedia, e si tu vole que Wikipedia pote acceptar texto copiate de tu wiki, tu debe seliger '''Creative Commons Attribution Share Alike'''.\n\nWikipedia usava anteriormente le Licentia GNU pro Documentation Libere (GFDL).\nIste es un licentia valide, ma es difficile a comprender.\nIl es anque difficile reusar le contento licentiate sub GFDL.",
+    "config-email-settings": "Configuration de e-mail",
+    "config-enable-email": "Activar le e-mail sortiente",
+    "config-enable-email-help": "Si tu vole que e-mail functiona, [http://www.php.net/manual/en/mail.configuration.php le optiones de e-mail de PHP] debe esser configurate correctemente.\nSi tu non vole functiones de e-mail, tu pote disactivar los hic.",
+    "config-email-user": "Activar le e-mail de usator a usator",
+    "config-email-user-help": "Permitter a tote le usatores de inviar e-mail inter se, si illes lo ha activate in lor preferentias.",
+    "config-email-usertalk": "Activar notification de cambios in paginas de discussion de usatores",
+    "config-email-usertalk-help": "Permitter al usatores de reciper notification de modificationes in lor paginas de discussion personal, si illes lo ha activate in lor preferentias.",
+    "config-email-watchlist": "Activar notification de observatorio",
+    "config-email-watchlist-help": "Permitter al usatores de reciper notification super lor paginas sub observation, si illes lo ha activate in lor preferentias.",
+    "config-email-auth": "Activar authentication de e-mail",
+    "config-email-auth-help": "Si iste option es activate, le usatores debe confirmar lor adresse de e-mail usante un ligamine inviate a illes, quandocunque illes lo defini o cambia.\nSolmente le adresses de e-mail authenticate pote reciper e-mail de altere usatores o alterar le e-mails de notification.\nEs '''recommendate''' activar iste option pro wikis public a causa de abuso potential del functionalitate de e-mail.",
+    "config-email-sender": "Adresse de e-mail de retorno:",
+    "config-email-sender-help": "Entra le adresse de e-mail a usar como adresse de retorno in e-mail sortiente.\nHic es recipite le notificationes de non-livration.\nMulte servitores de e-mail require que al minus le parte de nomine de dominio sia valide.",
+    "config-upload-settings": "Incargamento de imagines e files",
+    "config-upload-enable": "Activar le incargamento de files",
+    "config-upload-help": "Le incargamento de files potentialmente expone tu servitor a riscos de securitate.\nPro plus information, lege le [//www.mediawiki.org/wiki/Manual:Security section de securitate] in le manual.\n\nPro activar le incargamento de files, cambia le modo in le subdirectorio <code>images</code> sub le directorio-radice de MediaWiki de sorta que le servitor web pote scriber in illo.\nPostea activa iste option.",
+    "config-upload-deleted": "Directorio pro files delite:",
+    "config-upload-deleted-help": "Selige un directorio in le qual archivar le files delite.\nIdealmente, isto non debe esser accessibile ab le web.",
+    "config-logo": "URL del logotypo:",
+    "config-logo-help": "Le apparentia predefinite de MediaWiki include spatio pro un logotypo de 135×160 pixels supra le menu del barra lateral.\nIncarga un imagine con le dimensiones appropriate, e entra le URL hic.\n\nTu pote usar <code>$wgStylePath</code> o <code>$wgScriptPath</code> si le loco de tu logotypo es relative a iste camminos.\n\nSi tu non vole un logotypo, lassa iste quadro vacue.",
+    "config-instantcommons": "Activar \"Instant Commons\"",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] es un function que permitte a wikis de usar imagines, sonos e altere multimedia trovate in le sito [//commons.wikimedia.org/ Wikimedia Commons].\nPro poter facer isto, MediaWiki require accesso a Internet.\n\nPro plus information super iste function, includente instructiones super como configurar lo pro wikis altere que Wikimedia Commons, consulta [//mediawiki.org/wiki/Manual:$wgForeignFileRepos le manual].",
+    "config-cc-error": "Le selector de licentia Creative Commons non dava un resultato.\nEntra le nomine del licentia manualmente.",
+    "config-cc-again": "Selige de novo…",
+    "config-cc-not-chosen": "Selige le licentia Creative Commons que tu prefere e clicca \"proceder\".",
+    "config-advanced-settings": "Configuration avantiate",
+    "config-cache-options": "Configuration del cache de objectos:",
+    "config-cache-help": "Le cache de objectos es usate pro meliorar le rapiditate de MediaWiki per immagazinar le datos frequentemente usate.\nLe sitos medie o grande es multo incoragiate de activar isto, ma anque le sitos parve percipera le beneficios.",
+    "config-cache-none": "Nulle cache (nulle functionalitate es removite, ma le rapiditate pote diminuer in grande sitos wiki)",
+    "config-cache-accel": "Cache de objectos de PHP (APC, XCache o WinCache)",
+    "config-cache-memcached": "Usar Memcached (require additional installation e configuration)",
+    "config-memcached-servers": "Servitores Memcached:",
+    "config-memcached-help": "Lista de adresses IP a usar pro Memcached.\nDebe specificar un per linea e specificar le porto a usar. Per exemplo:\n 127.0.0.1:11211\n 192.168.1.25:1234",
+    "config-memcache-needservers": "Tu seligeva Memcached como typo de cache ma non specificava alcun servitores",
+    "config-memcache-badip": "Tu ha entrate un adresse IP invalide pro Memcached: $1",
+    "config-memcache-noport": "Tu non specificava un porto a usar pro le servitor Memcached: $1.\nSi tu non cognosce le porto, le standard es 11211",
+    "config-memcache-badport": "Le numeros de porto de Memcached debe esser inter $1 e $2",
+    "config-extensions": "Extensiones",
+    "config-extensions-help": "Le extensiones listate hic supra esseva detegite in tu directorio <code>./extensions</code>.\n\nIstes pote requirer additional configuration, ma tu pote activar los ora.",
+    "config-install-alreadydone": "'''Aviso:''' Il pare que tu ha jam installate MediaWiki e tenta installar lo de novo.\nPer favor continua al proxime pagina.",
+    "config-install-begin": "Un clic sur \"{{int:config-continue}}\" comencia le installation de MediaWiki.\nPro facer alterationes, clicca sur \"{{int:config-back}}\".",
+    "config-install-step-done": "finite",
+    "config-install-step-failed": "fallite",
+    "config-install-extensions": "Include le extensiones",
+    "config-install-database": "Configura le base de datos",
+    "config-install-schema": "Creation de schema",
+    "config-install-pg-schema-not-exist": "Iste schema de PostgreSQL non existe",
+    "config-install-pg-schema-failed": "Le creation del tabellas falleva.\nAssecura te que le usator \"$1\" pote scriber in le schema \"$2\".",
+    "config-install-pg-commit": "Committer cambiamentos",
+    "config-install-pg-plpgsql": "Verifica le presentia del linguage PL/pgSQL",
+    "config-pg-no-plpgsql": "Es necessari installar le linguage PL/pgSQL in le base de datos $1",
+    "config-pg-no-create-privs": "Le conto que tu specificava pro installation non ha sufficiente privilegios pro crear un conto.",
+    "config-pg-not-in-role": "Le conto que tu specificava pro le usator web ja existe.\nLe conto que tu specificava pro installation non es superusator e non es membro del rolo de usator web, dunque es incapace de crear objectos possedite per le usator web.\n\nMediaWiki require actualmente que le tabellas sia possedite per le usator web. Per favor specifica un altere nomine de conto web, o clicca super \"retornar\" e specifica un usator de installation con sufficiente privilegios.",
+    "config-install-user": "Crea usator pro base de datos",
+    "config-install-user-alreadyexists": "Le usator \"$1\" ja existe",
+    "config-install-user-create-failed": "Le creation del usator \"$1\" ha fallite: $2",
+    "config-install-user-grant-failed": "Le concession de permission al usator \"$1\" falleva: $2",
+    "config-install-user-missing": "Le usator specificate, \"$1\", non existe.",
+    "config-install-user-missing-create": "Le usator specificate, \"$1\", non existe.\nPer favor marca le quadrato \"crear conto\" hic infra si tu vole crear lo.",
+    "config-install-tables": "Crea tabellas",
+    "config-install-tables-exist": "'''Aviso''': Il pare que le tabellas de MediaWiki jam existe.\nLe creation es saltate.",
+    "config-install-tables-failed": "'''Error''': Le creation del tabellas falleva con le sequente error: $1",
+    "config-install-interwiki": "Plena le tabella interwiki predefinite",
+    "config-install-interwiki-list": "Non poteva trovar le file <code>interwiki.list</code>.",
+    "config-install-interwiki-exists": "'''Aviso''': Le tabella interwiki pare jam haber entratas.\nLe lista predefinite es saltate.",
+    "config-install-stats": "Initialisation del statisticas",
+    "config-install-keys": "Generation de claves secrete",
+    "config-insecure-keys": "'''Attention:''' {{PLURAL:$2|Un clave|Alcun claves}} secur ($1) generate durante le installation non es completemente secur. Considera cambiar {{PLURAL:$2|lo|los}} manualmente.",
+    "config-install-sysop": "Crea conto de usator pro administrator",
+    "config-install-subscribe-fail": "Impossibile subscriber a mediawiki-announce: $1",
+    "config-install-subscribe-notpossible": "cURL non es installate e allow_url_fopen non es disponibile.",
+    "config-install-mainpage": "Crea pagina principal con contento predefinite",
+    "config-install-extension-tables": "Creation de tabellas pro le extensiones activate",
+    "config-install-mainpage-failed": "Non poteva inserer le pagina principal: $1",
+    "config-install-done": "'''Felicitationes!'''\nTu ha installate MediaWiki con successo.\n\nLe installator ha generate un file <code>LocalSettings.php</code>.\nIste contine tote le configuration.\n\nEs necessari discargar lo e poner lo in le base del installation wiki (le mesme directorio que index.php).\nLe discargamento debe haber comenciate automaticamente.\n\nSi le discargamento non ha comenciate, o si illo esseva cancellate, es possibile recomenciar le discargamento con un clic sur le ligamine sequente:\n\n$3\n\n'''Nota''': Si tu non discarga iste file de configuration ora, illo non essera disponibile plus tarde.\n\nPost facer isto, tu pote '''[$2 entrar in tu wiki]'''.",
+    "config-download-localsettings": "Discargar <code>LocalSettings.php</code>",
+    "config-help": "adjuta",
+    "config-nofile": "Le file \"$1\" non poteva esser trovate. Ha illo essite delite?",
+    "mainpagetext": "'''MediaWiki ha essite installate con successo.'''",
+    "mainpagedocfooter": "Consulta le [//meta.wikimedia.org/wiki/Help:Contents Guida del usator] pro informationes super le uso del software wiki.\n\n== Pro initiar ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de configurationes]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ a proposito de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de diffusion pro annuncios de nove versiones de MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Traducer MediaWiki in tu lingua]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/id.json b/includes/installer/i18n/id.json
new file mode 100644 (file)
index 0000000..a2d7623
--- /dev/null
@@ -0,0 +1,295 @@
+{
+    "@metadata": {
+        "authors": [
+            "Farras",
+            "IvanLanin",
+            "Kenrick95",
+            "Reedy",
+            "아라"
+        ]
+    },
+    "config-desc": "Penginstal untuk MediaWiki",
+    "config-title": "Instalasi MediaWiki $1",
+    "config-information": "Informasi",
+    "config-localsettings-upgrade": "Berkas <code>LocalSettings.php</code> sudah ada.\nUntuk memutakhirkan instalasi ini, masukkan nilai <code>$wgUpgradeKey</code> dalam kotak yang tersedia di bawah ini.\nAnda dapat menemukan nilai tersebut dalam <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Berkas <code>LocalSettings.php</code> terdeteksi.\nUntuk meningkatkan versi, harap jalankan <code>update.php</code>.",
+    "config-localsettings-key": "Kunci pemutakhiran:",
+    "config-localsettings-badkey": "Kunci yang Anda berikan tidak benar",
+    "config-upgrade-key-missing": "Suatu instalasi MediaWiki telah terdeteksi.\nUntuk memutakhirkan instalasi ini, silakan masukkan baris berikut di bagian bawah <code>LocalSettings.php</code> Anda:\n\n$1",
+    "config-localsettings-incomplete": "<code>LocalSettings.php</code> yang ada tampaknya tidak lengkap.\nVariabel $1 tidak diatur.\nSilakan ubah <code>LocalSettings.php</code> untuk mengatur variabel ini dan klik \"{{int:Config-continue}}\".",
+    "config-localsettings-connection-error": "Timbul galat saat menghubungkan ke basis data dengan menggunakan setelan yang ditentukan di <code>LocalSettings.php</code> atau <code>AdminSettings.php</code>. Harap perbaiki setelan ini dan coba lagi.\n\n$1",
+    "config-session-error": "Kesalahan sesi mulai: $1",
+    "config-session-expired": "Data sesi tampaknya telah kedaluwarsa.\nSesi dikonfigurasi untuk berlaku selama $1.\nAnda dapat menaikkannya dengan menetapkan <code>session.gc_maxlifetime</code> dalam php.ini.\nUlangi proses instalasi.",
+    "config-no-session": "Data sesi Anda hilang!\nCek php.ini Anda dan pastikan bahwa <code>session.save_path</code> diatur ke direktori yang sesuai.",
+    "config-your-language": "Bahasa Anda:",
+    "config-your-language-help": "Pilih bahasa yang akan digunakan selama proses instalasi.",
+    "config-wiki-language": "Bahasa wiki:",
+    "config-wiki-language-help": "Pilih bahasa yang akan digunakan tulisan-tulisan wiki.",
+    "config-back": "← Kembali",
+    "config-continue": "Lanjut →",
+    "config-page-language": "Bahasa",
+    "config-page-welcome": "Selamat datang di MediaWiki",
+    "config-page-dbconnect": "Hubungkan ke basis data",
+    "config-page-upgrade": "Perbarui instalasi yang ada",
+    "config-page-dbsettings": "Pengaturan basis data",
+    "config-page-name": "Nama",
+    "config-page-options": "Pilihan",
+    "config-page-install": "Instal",
+    "config-page-complete": "Selesai!",
+    "config-page-restart": "Ulangi instalasi",
+    "config-page-readme": "Baca saya",
+    "config-page-releasenotes": "Catatan pelepasan",
+    "config-page-copying": "Menyalin",
+    "config-page-upgradedoc": "Memerbarui",
+    "config-page-existingwiki": "Wiki yang ada",
+    "config-help-restart": "Apakah Anda ingin menghapus semua data tersimpan yang telah Anda masukkan dan mengulang proses instalasi?",
+    "config-restart": "Ya, nyalakan ulang",
+    "config-welcome": "=== Pengecekan lingkungan ===\nPengecekan dasar dilakukan untuk melihat apakah lingkungan ini memadai untuk instalasi MediaWiki.\nAnda harus memberikan hasil pemeriksaan ini jika Anda memerlukan bantuan selama instalasi.",
+    "config-copyright": "=== Hak cipta dan persyaratan ===\n\n$1\n\nProgram ini adalah perangkat lunak bebas; Anda dapat mendistribusikan dan/atau memodifikasi di bawah persyaratan GNU General Public License seperti yang diterbitkan oleh Free Software Foundation; baik versi 2 lisensi, atau (sesuai pilihan Anda) versi yang lebih baru.\n\nProgram ini didistribusikan dengan harapan bahwa itu akan berguna, tetapi '''tanpa jaminan apa pun'''; bahkan tanpa jaminan tersirat untuk '''dapat diperjualbelikan ''' atau '''sesuai untuk tujuan tertentu'''.\nLihat GNU General Public License untuk lebih jelasnya.\n\nAnda seharusnya telah menerima <doclink href=\"Copying\">salinan dari GNU General Public License</doclink> bersama dengan program ini; jika tidak, kirimkan surat untuk Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. atau [http://www.gnu.org/copyleft/gpl.html baca versi daring].",
+    "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki/id Situs MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents/id Pedoman Pengguna]\n* [//www.mediawiki.org/wiki/Manual:Contents/id Pedoman Administrator]\n* [//www.mediawiki.org/wiki/Manual:FAQ/id FAQ]\n----\n* <doclink href=Readme>Read me</doclink>\n* <doclink href=ReleaseNotes>Release notes</doclink>\n* <doclink href=Copying>Copying</doclink>\n* <doclink href=UpgradeDoc>Upgrading</doclink>",
+    "config-env-good": "Kondisi telah diperiksa.\nAnda dapat menginstal MediaWiki.",
+    "config-env-bad": "Kondisi telah diperiksa.\nAnda tidak dapat menginstal MediaWiki.",
+    "config-env-php": "PHP $1 diinstal.",
+    "config-env-php-toolow": "PHP $1 telah terinstal.\nNamun, MediaWiki memerlukan PHP $2 atau lebih tinggi.",
+    "config-unicode-using-utf8": "Menggunakan utf8_normalize.so Brion Vibber untuk normalisasi Unicode.",
+    "config-unicode-using-intl": "Menggunakan [http://pecl.php.net/intl ekstensi PECL intl] untuk normalisasi Unicode.",
+    "config-unicode-pure-php-warning": "'''Peringatan''': [http://pecl.php.net/intl Ekstensi intl PECL] untuk menangani normalisasi Unicode tidak tersedia, kembali menggunakan implementasi murni PHP yang lambat.\nJika Anda menjalankan situs berlalu lintas tinggi, Anda harus sedikit membaca [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalisasi Unicode].",
+    "config-unicode-update-warning": "'''Peringatan''': Versi terinstal dari pembungkus normalisasi Unicode menggunakan versi lama pustaka [http://site.icu-project.org/ proyek ICU].\nAnda harus [//www.mediawiki.org/wiki/Unicode_normalization_considerations memutakhirkannya] jika Anda ingin menggunakan Unicode.",
+    "config-no-db": "Pengandar basis data yang sesuai tidak ditemukan! Anda perlu menginstal pengandar basis data untuk PHP.\nJenis basis data yang didukung: $1.\n\nJika Anda menggunakan inang bersama, mintalah penyedia inang Anda untuk menginstal pengandar basis data yang sesuai.\nJika Anda mengompilasi sendiri PHP, ubahlah konfigurasinya dengan mengaktifkan klien basis data, misalnya menggunakan <code>./configure --with-mysql</code>.\nJika Anda menginstal PHP dari paket Debian atau Ubuntu, maka Anda juga perlu menginstal modul php5-mysql.",
+    "config-no-fts3": "'''Peringatan''': SQLite dikompilasi tanpa [//sqlite.org/fts3.html modul FTS3], fitur pencarian tidak akan tersedia pada konfigurasi ini.",
+    "config-register-globals": "'''Peringatan: Opsi <code>[http://php.net/register_globals register_globals]</code> PHP diaktifkan.'''\n'''Nonaktifkan kalau bisa.'''\nMediaWiki akan bekerja, tetapi server Anda memiliki potensi kerentanan keamanan.",
+    "config-magic-quotes-runtime": "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] aktif!'''\nPilihan ini dapat merusak masukan data secara tidak terduga.\nAnda tidak dapat menginstal atau menggunakan MediaWiki kecuali pilihan ini dinonaktifkan.",
+    "config-magic-quotes-sybase": "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic_quotes_sybase magic_quotes_sybase] aktif!'''\nPilihan ini dapat merusak masukan data secara tidak terduga.\nAnda tidak dapat menginstal atau menggunakan MediaWiki kecuali pilihan ini dinonaktifkan.",
+    "config-mbstring": "'''Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] aktif!'' '\nPilihan ini dapat menyebabkan kesalahan dan kerusakan data yang tidak terduga.\nAnda tidak dapat menginstal atau menggunakan MediaWiki kecuali pilihan ini dinonaktifkan.",
+    "config-ze1": "'''Fatal: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] aktif!'''\nPilihan ini dapat menyebabkan bug yang mengerikan pada MediaWiki.\nAnda tidak dapat menginstal atau menggunakan MediaWiki kecuali pilihan ini dinonaktifkan.",
+    "config-safe-mode": "''' Peringatan:''' [http://www.php.net/features.safe-mode Mode aman] PHP aktif.\nHal ini akan menyebabkan masalah, terutama jika menggunakan pengunggahan berkas dan dukungan <code>math</code>.",
+    "config-xml-bad": "Modul XML PHP hilang.\nMediaWiki membutuhkan fungsi dalam modul ini dan tidak akan bekerja dalam konfigurasi ini.\nJika Anda menggunakan Mandrake, instal paket php-xml.",
+    "config-pcre": "Modul pendukung PCRE tampaknya hilang.\nMediaWiki memerlukan fungsi persamaan reguler kompatibel Perl untuk bekerja.",
+    "config-pcre-no-utf8": "'''Fatal''': Modul PCRE PHP tampaknya dikompilasi tanpa dukungan PCRE_UTF8.\nMediaWiki memerlukan dukungan UTF-8 untuk berfungsi dengan benar.",
+    "config-memory-raised": "<code>memory_limit</code> PHP adalah $1, dinaikkan ke $2.",
+    "config-memory-bad": "'''Peringatan:''' <code>memory_limit</code> PHP adalah $1.\nIni terlalu rendah.\nInstalasi terancam gagal!",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] telah diinstal",
+    "config-apc": "[http://www.php.net/apc APC] telah diinstal",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] telah diinstal",
+    "config-no-cache": "'''Peringatan:''' Tidak dapat menemukan [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache], atau [http://www.iis.net/download/WinCacheForPhp WinCache]. Pinggahan obyek tidak dinonaktifkan.",
+    "config-diff3-bad": "GNU diff3 tidak ditemukan.",
+    "config-imagemagick": "ImageMagick ditemukan: <code>$1</code> .\nPembuatan gambar mini akan diaktifkan jika Anda mengaktifkan pengunggahan.",
+    "config-gd": "Pustaka grafis GD terpasang ditemukan.\nPembuatan gambar mini akan diaktifkan jika Anda mengaktifkan pengunggahan.",
+    "config-no-scaling": "Pustaka GD atau ImageMagick tidak ditemukan.\nPembuatan gambar mini dinonaktifkan.",
+    "config-no-uri": "'''Kesalahan:''' URI saat ini tidak dapat ditentukan.\nInstalasi dibatalkan.",
+    "config-uploads-not-safe": "'''Peringatan:''' Direktori bawaan pengunggahan <code>$1</code> Anda rentan terhadap eksekusi skrip yang sewenang-wenang.\nMeskipun MediaWiki memeriksa semua berkas unggahan untuk ancaman keamanan, sangat dianjurkan untuk [//www.mediawiki.org/wiki/Manual:Security#Upload_security menutup kerentanan keamanan ini] sebelum mengaktifkan pengunggahan.",
+    "config-brokenlibxml": "Sistem Anda memiliki kombinasi versi PHP dan libxml2 yang memiliki bug dan dapat menyebabkan kerusakan data tersembunyi pada MediaWiki dan aplikasi web lain.\nMutakhirkan ke PHP 5.2.9 atau yang lebih baru dan libxml2 2.7.3 atau yang lebih baru ([//bugs.php.net/bug.php?id=45996 arsip bug di PHP]).\nInstalasi dibatalkan.",
+    "config-using531": "MediaWiki tidak dapat dijalankan dengan PHP $1 karena bug yang melibatkan parameter referensi untuk <code>__call()</code> .\nTingkatkan ke PHP 5.3.2 atau lebih baru, atau turunkan ke PHP versi 5.3.0 untuk menyelesaikan hal ini.\nInstalasi dibatalkan.",
+    "config-suhosin-max-value-length": "Suhosin terpasang dan membatasi panjang parameter GET sebesar $1 bita. Komponen ResourceLoader MediaWiki akan mengatasi batasan ini, tapi penanganannya akan menurunkan kinerja. Jika memungkinkan, Anda sebaiknya menetapkan nilai <code>suhosin.get.max_value_length</code> menjadi 1024 atau lebih tinggi dalam <code>php.ini</code> dan menyetel <code>$wgResourceLoaderMaxQueryLength</code> dengan nilai yang sama dalam LocalSettings.php.",
+    "config-db-type": "Jenis basis data:",
+    "config-db-host": "Inang basis data:",
+    "config-db-host-help": "Jika server basis data Anda berada di server yang berbeda, masukkan nama inang atau alamat IP di sini.\n\nJika Anda menggunakan inang web bersama, penyedia inang Anda harus memberikan nama inang yang benar di dokumentasi mereka.\n\nJika Anda menginstal pada server Windows dan menggunakan MySQL, \"localhost\" mungkin tidak dapat digunakan sebagai nama server. Jika demikian, coba \"127.0.0.1\" untuk alamat IP lokal.",
+    "config-db-host-oracle": "TNS basis data:",
+    "config-db-host-oracle-help": "Masukkan [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name] yang sah; berkas tnsnames.ora harus dapat diakses oleh instalasi ini.<br />Jika Anda menggunakan pustaka klien 10g atau lebih baru, Anda juga dapat menggunakan metode penamaan [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
+    "config-db-wiki-settings": "Identifikasi wiki ini",
+    "config-db-name": "Nama basis data:",
+    "config-db-name-help": "Pilih nama yang mengidentifikasikan wiki Anda.\nNama tersebut tidak boleh mengandung spasi.\n\nJika Anda menggunakan inang web bersama, penyedia inang Anda dapat memberikan Anda nama basis data khusus untuk digunakan atau mengizinkan Anda membuat basis data melalui panel kontrol.",
+    "config-db-name-oracle": "Skema basis data:",
+    "config-db-account-oracle-warn": "Ada tiga skenario yang didukung untuk instalasi Oracle sebagai basis data pendukung:\n\nJika Anda ingin membuat akun basis data sebagai bagian dari proses instalasi, silakan masukkan akun dengan peran SYSDBA sebagai akun basis data untuk instalasi dan tentukan kredensial yang diinginkan untuk akun akses web. Jika tidak, Anda dapat membuat akun akses web secara manual dan hanya memberikan akun tersebut (jika memiliki izin yang diperlukan untuk membuat objek skema) atau memasukkan dua akun yang berbeda, satu dengan hak membuat objek dan satu dibatasi untuk akses web.\n\nSkrip untuk membuat akun dengan privilese yang diperlukan dapat ditemukan pada direktori \"maintenance/oracle/\" instalasi ini. Harap diingat bahwa penggunaan akun terbatas akan menonaktifkan semua kemampuan pemeliharaan dengan akun bawaan.",
+    "config-db-install-account": "Akun pengguna untuk instalasi",
+    "config-db-username": "Nama pengguna basis data:",
+    "config-db-password": "Kata sandi basis data:",
+    "config-db-password-empty": "Silakan masukkan sandi untuk pengguna basis data baru: $1.\nMeskipun dimungkinkan untuk membuat pengguna tanpa sandi, hal itu tidak aman.",
+    "config-db-install-username": "Masukkan nama pengguna yang akan digunakan untuk terhubung ke basis data selama proses instalasi.\nIni bukan nama pengguna akun MediaWiki, melainkan nama pengguna untuk basis data Anda.",
+    "config-db-install-password": "Masukkan sandi yang akan digunakan untuk terhubung ke basis data selama proses instalasi.\nIni bukan sandi untuk akun MediaWiki, melainkan sandi untuk basis data Anda.",
+    "config-db-install-help": "Masukkan nama pengguna dan sandi yang akan digunakan untuk terhubung ke basis data pada saat proses instalasi.",
+    "config-db-account-lock": "Gunakan nama pengguna dan kata sandi yang sama selama operasi normal",
+    "config-db-wiki-account": "Akun pengguna untuk operasi normal",
+    "config-db-wiki-help": "Masukkan nama pengguna dan sandi yang akan digunakan untuk terhubung ke basis data wiki selama operasi normal.\nJika akun tidak ada, akun instalasi memiliki hak yang memadai, akun pengguna ini akan dibuat dengan hak akses minimum yang diperlukan untuk mengoperasikan wiki.",
+    "config-db-prefix": "Prefiks tabel basis data:",
+    "config-db-prefix-help": "Jika Anda perlu berbagi satu basis data di antara beberapa wiki, atau antara MediaWiki dan aplikasi web lain, Anda dapat memilih untuk menambahkan prefiks terhadap semua nama tabel demi menghindari konflik.\nJangan gunakan spasi.\n\nPrefiks ini biasanya dibiarkan kosong.",
+    "config-db-charset": "Set karakter basis data",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 biner",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "UTF-8 yang kompatibel balik dengan MySQL 4.0",
+    "config-charset-help": "'''Peringatan:''' Jika Anda menggunakan '''UTF-8 kompatibel balik''' pada MySQL 4.1+, dan kemudian mencadangkan basis data dengan <code>mysqldump</code>, proses itu mungkin menghancurkan semua karakter non-ASCII dan merusak cadangan Anda tanpa dapat dikembalikan!\n\nDalam '''modus biner''', MediaWiki menyimpan teks UTF-8 ke basis data dalam bidang biner.\nIni lebih efisien dibandingkan modus UTF-8 MySQL dan memungkinkan Anda untuk menggunakan berbagai karakter Unicode.\nDalam '''modus UTF-8''', MySQL akan tahu apa set karakter data anda dan dapat menyajikan dan mengubahnya denga tepat, namun tidak akan mengizinkan Anda menyimpan karakter di atas [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+    "config-mysql-old": "MySQL $1 atau versi terbaru diperlukan, Anda menggunakan $2.",
+    "config-db-port": "Porta basis data:",
+    "config-db-schema": "Skema untuk MediaWiki",
+    "config-db-schema-help": "Skema ini biasanya berjalan baik.\nUbah hanya jika Anda tahu Anda perlu mengubahnya.",
+    "config-sqlite-dir": "Direktori data SQLite:",
+    "config-sqlite-dir-help": "SQLite menyimpan semua data dalam satu berkas.\n\nDirektori yang Anda berikan harus dapat ditulisi oleh server web selama instalasi.\n\nDirektori itu '''tidak''' boleh dapat diakses melalui web, inilah sebabnya kami tidak menempatkannya bersama dengan berkas PHP lain.\n\nPenginstal akan membuat berkas <code>.htaccess</code> bersamaan dengan itu, tetapi jika gagal, orang dapat memperoleh akses ke basis data mentah Anda.\nItu termasuk data mentah pengguna (alamat surel, hash sandi) serta revisi yang dihapus dan data lainnya yang dibatasi pada wiki.\n\nPertimbangkan untuk menempatkan basis data di tempat lain, misalnya di <code>/var/lib/mediawiki/yourwiki</code>.",
+    "config-oracle-def-ts": "Tablespace bawaan:",
+    "config-oracle-temp-ts": "Tablespace sementara:",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-support-info": "MediaWiki mendukung sistem basis data berikut:\n\n$1\n\nJika Anda tidak melihat sistem basis data yang Anda gunakan tercantum di bawah ini, ikuti petunjuk terkait di atas untuk mengaktifkan dukungan.",
+    "config-support-mysql": "* $1 adalah target utama MediaWiki dan memiliki dukungan terbaik ([http://www.php.net/manual/en/mysql.installation.php cara mengompilasi PHP dengan dukungan MySQL])",
+    "config-support-postgres": "* $1 adalah sistem basis data sumber terbuka populer sebagai alternatif untuk MySQL ([http://www.php.net/manual/en/pgsql.installation.php cara mengompilasi PHP dengan dukungan PostgreSQL]). Mungkin ada beberapa bug terbuka dan alternatif ini tidak direkomendasikan untuk dipakai dalam lingkungan produksi.",
+    "config-support-sqlite": "* $1 adalah sistem basis data yang ringan yang sangat baik dukungannya. ([http://www.php.net/manual/en/pdo.installation.php cara mengompilasi PHP dengan dukungan SQLite], menggunakan PDO)",
+    "config-support-oracle": "* $1 adalah basis data komersial untuka perusahaan. ([http://www.php.net/manual/en/oci8.installation.php cara mengompilasi PHP dengan dukungan OCI8])",
+    "config-header-mysql": "Pengaturan MySQL",
+    "config-header-postgres": "Pengaturan PostgreSQL",
+    "config-header-sqlite": "Pengaturan SQLite",
+    "config-header-oracle": "Pengaturan Oracle",
+    "config-invalid-db-type": "Jenis basis data tidak sah",
+    "config-missing-db-name": "Anda harus memasukkan nilai untuk \"Nama basis data\"",
+    "config-missing-db-host": "Anda harus memasukkan nilai untuk \"Inang basis data\"",
+    "config-missing-db-server-oracle": "Anda harus memasukkan nilai untuk \"TNS basis data\"",
+    "config-invalid-db-server-oracle": "TNS basis data \"$1\" tidak sah.\nGunakan hanya huruf ASCII (a-z, A-Z), angka (0-9), garis bawah (_), dan titik (.).",
+    "config-invalid-db-name": "Nama basis data \"$1\" tidak sah.\nGunakan hanya huruf ASCII (a-z, A-Z), angka (0-9), garis bawah (_), dan tanda hubung (-).",
+    "config-invalid-db-prefix": "Prefiks basis data \"$1\" tidak sah.\nGunakan hanya huruf ASCII (a-z, A-Z), angka (0-9), garis bawah (_), dan tanda hubung (-).",
+    "config-connection-error": "$1.\n\nPeriksa nama inang, pengguna, dan sandi di bawah ini dan coba lagi.",
+    "config-invalid-schema": "Skema MediaWiki \"$1\" tidak sah.\nGunakan hanya huruf ASCII (a-z, A-Z), angka (0-9), dan garis bawah (_).",
+    "config-db-sys-create-oracle": "Penginstal hanya mendukung penggunaan akun SYSDBA untuk membuat akun baru.",
+    "config-db-sys-user-exists-oracle": "Akun pengguna \"$1\"sudah ada. SYSDBA hanya dapat digunakan untuk membuat akun baru!",
+    "config-postgres-old": "PostgreSQL $1 atau versi terbaru diperlukan, Anda menggunakan $2.",
+    "config-sqlite-name-help": "Pilih nama yang mengidentifikasi wiki Anda.\nJangan gunakan spasi atau tanda hubung.\nNama ini akan digunakan untuk nama berkas data SQLite.",
+    "config-sqlite-parent-unwritable-group": "Tidak dapat membuat direktori data <code><nowiki>$1</nowiki></code>, karena direktori induk <code><nowiki>$2</nowiki></code> tidak bisa ditulisi oleh server web.\n\nPenginstal telah menentukan pengguna yang menjalankan server web Anda.\nBuat direktori <code><nowiki>$3</nowiki></code> menjadi dapat ditulisi olehnya.\nPada sistem Unix/Linux lakukan hal berikut:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Tidak dapat membuat direktori data <code><nowiki>$1</nowiki></code>, karena direktori induk <code><nowiki>$2</nowiki></code> tidak bisa ditulisi oleh server web.\n\nPenginstal tidak dapat menentukan pengguna yang menjalankan server web Anda.\nBuat direktori <code><nowiki>$3</nowiki></code> menjadi dapat ditulisi oleh semua orang.\nPada sistem Unix/Linux lakukan hal berikut:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Kesalahan saat membuat direktori data \"$1\".\nPeriksa lokasi dan coba lagi.",
+    "config-sqlite-dir-unwritable": "Tidak dapat menulisi direktori \"$1\".\nUbah hak akses direktori sehingga server web dapat menulis ke sana, dan coba lagi.",
+    "config-sqlite-connection-error": "$1.\n\nPeriksa direktori data dan nama basis data di bawah dan coba lagi.",
+    "config-sqlite-readonly": "Berkas <code>$1</code> tidak dapat ditulisi.",
+    "config-sqlite-cant-create-db": "Tidak dapat membuat berkas basis data <code>$1</code>.",
+    "config-sqlite-fts3-downgrade": "PHP tidak memiliki dukungan FTS3, tabel dituruntarafkan.",
+    "config-can-upgrade": "Ada tabel MediaWiki di basis dataini.\nUntuk memperbaruinya ke MediaWiki $1, klik '''Lanjut'''.",
+    "config-upgrade-done": "Pemutakhiran selesai.\n\nAnda sekarang dapat [$1 mulai menggunakan wiki Anda].\n\nJika Anda ingin membuat ulang berkas <code>LocalSettings.php</code>, klik tombol di bawah ini.\nTindakan ini '''tidak dianjurkan''' kecuali jika Anda mengalami masalah dengan wiki Anda.",
+    "config-upgrade-done-no-regenerate": "Pemutakhiran selesai.\n\nAnda sekarang dapat [$1 mulai menggunakan wiki Anda].",
+    "config-regenerate": "Regenerasi LocalSettings.php →",
+    "config-show-table-status": "Kueri <code>SHOW TABLE STATUS</code> gagal!",
+    "config-unknown-collation": "'''Peringatan:''' basis data menggunakan kolasi yang tidak dikenal.",
+    "config-db-web-account": "Akun basis data untuk akses web",
+    "config-db-web-help": "Masukkan nama pengguna dan sandi yang akan digunakan server web untuk terhubung ke server basis data saat operasi normal wiki.",
+    "config-db-web-account-same": "Gunakan akun yang sama seperti untuk instalasi",
+    "config-db-web-create": "Buat akun jika belum ada",
+    "config-db-web-no-create-privs": "Akun Anda berikan untuk instalasi tidak memiliki hak yang cukup untuk membuat akun.\nAkun yang Anda berikan harus sudah ada.",
+    "config-mysql-engine": "Mesin penyimpanan:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-engine-help": "'''InnoDB''' hampir selalu merupakan pilihan terbaik karena memiliki dukungan konkurensi yang baik.\n\n'''MyISAM''' mungkin lebih cepat dalam instalasi pengguna-tunggal atau hanya-baca.\nBasis data MyISAM cenderung lebih sering rusak daripada basis data InnoDB.",
+    "config-mysql-charset": "Set karakter basis data:",
+    "config-mysql-binary": "Biner",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "Dalam '''modus biner''', MediaWiki menyimpan teks UTF-8 untuk basis data dalam bidang biner.\nIni lebih efisien daripada modus UTF-8 MySQL dan memungkinkan Anda untuk menggunakan ragam penuh karakter Unicode.\n\nDalam '''modus UTF-8''', MySQL akan tahu apa set karakter data dan dapat menampilkan dan mengubahnya sesuai keperluan, tetapi tidak akan mengizinkan Anda menyimpan karakter di atas [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+    "config-site-name": "Nama wiki:",
+    "config-site-name-help": "Ini akan muncul di bilah judul peramban dan di berbagai tempat lainnya.",
+    "config-site-name-blank": "Masukkan nama situs.",
+    "config-project-namespace": "Ruang nama proyek:",
+    "config-ns-generic": "Proyek",
+    "config-ns-site-name": "Sama seperti nama wiki: $1",
+    "config-ns-other": "Lainnya (sebutkan)",
+    "config-ns-other-default": "MyWiki",
+    "config-project-namespace-help": "Mengikuti contoh Wikipedia, banyak wiki menyimpan halaman kebijakan mereka terpisah dari halaman konten mereka, dalam \"'''ruang nama proyek'''\".\nSemua judul halaman dalam ruang nama ini diawali dengan prefiks tertentu yang dapat Anda tetapkan di sini.\nBiasanya, prefiks ini berasal dari nama wiki, tetapi tidak dapat berisi karakter tanda baca seperti \"#\" atau \":\".",
+    "config-ns-invalid": "Ruang nama \"<nowiki>$1</nowiki>\" yang ditentukan tidak sah.\nBerikan ruang nama proyek lain.",
+    "config-ns-conflict": "Ruang nama \"<nowiki>$1</nowiki>\" yang diberikan berkonflik dengan ruang nama bawaan MediaWiki.\nTentukan ruang nama proyek yang berbeda.",
+    "config-admin-box": "Akun pengurus",
+    "config-admin-name": "Nama Anda:",
+    "config-admin-password": "Kata sandi:",
+    "config-admin-password-confirm": "Kata sandi lagi:",
+    "config-admin-help": "Masukkan nama pengguna pilihan Anda di sini, misalnya \"Udin Wiki\".\nIni adalah nama yang akan Anda gunakan untuk masuk ke wiki.",
+    "config-admin-name-blank": "Masukkan nama pengguna pengurus.",
+    "config-admin-name-invalid": "Nama pengguna \"<nowiki>$1</nowiki>\" yang diberikan tidak sah.\nBerikan nama pengguna lain.",
+    "config-admin-password-blank": "Masukkan kata sandi untuk akun pengurus.",
+    "config-admin-password-same": "Kata sandi harus tidak sama seperti nama pengguna.",
+    "config-admin-password-mismatch": "Dua kata sandi yang Anda masukkan tidak cocok.",
+    "config-admin-email": "Alamat surel:",
+    "config-admin-email-help": "Masukkan alamat surel untuk memungkinkan Anda menerima surel dari pengguna lain, menyetel ulang sandi, dan mendapat pemberitahuan tentang perubahan atas daftar pantauan Anda. Anda dapat mengosongkan bidang ini.",
+    "config-admin-error-user": "Kesalahan internal saat membuat admin dengan nama \"<nowiki>$1</nowiki>\".",
+    "config-admin-error-password": "Kesalahan internal saat membuat sandi untuk admin \"<nowiki>$1</nowiki>\":<pre>$2</pre>",
+    "config-admin-error-bademail": "Anda memasukkan alamat surel yang tidak sah",
+    "config-subscribe": "Berlangganan ke [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce milis pengumuman rilis].",
+    "config-subscribe-help": "Ini adalah milis bervolume rendah yang digunakan untuk pengumuman rilis, termasuk pengumuman keamanan penting.\nAnda sebaiknya berlangganan dan memperbarui instalasi MediaWiki saat versi baru keluar.",
+    "config-almost-done": "Anda hampir selesai!\nAnda sekarang dapat melewati sisa konfigurasi dan menginstal wiki sekarang.",
+    "config-optional-continue": "Berikan saya pertanyaan lagi.",
+    "config-optional-skip": "Saya sudah bosan, instal saja wikinya.",
+    "config-profile": "Profil hak pengguna:",
+    "config-profile-wiki": "Wiki tradisional",
+    "config-profile-no-anon": "Pembuatan akun diperlukan",
+    "config-profile-fishbowl": "Khusus penyunting terdaftar",
+    "config-profile-private": "Wiki pribadi",
+    "config-profile-help": "Wiki paling baik bekerja jika Anda membiarkan sebanyak mungkin orang untuk menyunting. Dengan MediaWiki, sangat mudah meninjau perubahan terbaru dan mengembalikan kerusakan yang dilakukan oleh pengguna naif atau berbahaya.\n\nNamun, berbagai kegunaan lain dari MediaWiki telah ditemukan, dan kadang tidak mudah untuk meyakinkan semua orang manfaat dari cara wiki. Jadi, Anda yang menentukan.\n\n'''{{int:config-profile-wiki}}''' memungkinkan setiap orang untuk menyunting, bahkan tanpa masuk.\n'''{{int:config-profile-no-anon}}''' menyediakan akuntabilitas tambahan, tetapi dapat mencegah kontributor biasa.\n\n'''{{int:config-profile-fishbowl}}''' memungkinkan pengguna yang disetujui untuk menyunting, tetapi publik dapat melihat halaman, termasuk riwayatnya.\n'''{{int:config-profile-private}}''' hanya memungkinkan pengguna yang disetujui untuk melihat dan menyunting halaman.\n\nKonfigurasi hak pengguna yang lebih kompleks tersedia setelah instalasi. Lihat [//www.mediawiki.org/wiki/Manual:User_rights/id entri manual terkait].",
+    "config-license": "Hak cipta dan lisensi:",
+    "config-license-none": "Tidak ada lisensi",
+    "config-license-cc-by-sa": "Creative Commons Atribusi Berbagi Serupa",
+    "config-license-cc-by": "Creative Commons Atribusi",
+    "config-license-cc-by-nc-sa": "Creative Commons Atribusi Nonkomersial Berbagi Serupa",
+    "config-license-cc-0": "Creative Commons Zero (Domain Publik)",
+    "config-license-gfdl": "Lisensi Dokumentasi Bebas GNU 1.3 atau versi terbaru",
+    "config-license-pd": "Domain Umum",
+    "config-license-cc-choose": "Pilih lisensi Creative Commons kustom",
+    "config-license-help": "Banyak wiki publik melisensikan semua kontribusi di bawah [http://freedomdefined.org/Definition lisensi bebas].\nHal ini membantu menciptakan rasa kepemilikan komunitas dan mendorong kontribusi jangka panjang.\nHal ini umumnya tidak diperlukan untuk wiki pribadi atau perusahaan.\n\nJika Anda ingin dapat menggunakan teks dari Wikipedia dan Anda ingin agar Wikipedia dapat menerima teks yang disalin dari wiki Anda, Anda harus memilih'''Creative Commons Attribution Share Alike'''.\n\nWikipedia sebelumnya menggunakan GNU Free Documentation License.\nLisensi ini masih sah, namun sulit dipahami.\nSelain itu, sulit untuk menggunakan ulang konten yang dilisensikan di bawah GFDL.",
+    "config-email-settings": "Pengaturan surel",
+    "config-enable-email": "Aktifkan surel keluar",
+    "config-enable-email-help": "Jika Anda ingin mengaktifkan surel, [http://www.php.net/manual/en/mail.configuration.php setelah surel PHP] perlu dikonfigurasi dengan benar.\nJika Anda tidak perlu fitur surel, Anda dapat menonaktifkannya di sini.",
+    "config-email-user": "Aktifkan surel antarpengguna",
+    "config-email-user-help": "Memungkinkan semua pengguna untuk saling berkirim surel jika mereka mengaktifkan pilihan tersebut dalam preferensi mereka.",
+    "config-email-usertalk": "Aktifkan pemberitahuan perubahan halaman pembicaraan pengguna",
+    "config-email-usertalk-help": "Memungkinkan pengguna untuk menerima pemberitahuan tentang perubahan halaman pembicaraan pengguna, jika pilihan tersebut telah diaktifkan dalam preferensi mereka.",
+    "config-email-watchlist": "Aktifkan pemberitahuan daftar pantau",
+    "config-email-watchlist-help": "Memungkinkan pengguna untuk menerima pemberitahuan tentang perubahan halaman yang ada dalam daftar pantauan mereka, jika pilihan tersebut telah diaktifkan dalam preferensi mereka.",
+    "config-email-auth": "Aktifkan otentikasi surel",
+    "config-email-auth-help": "Jika opsi ini diaktifkan, pengguna harus mengonfirmasi alamat surel dengan menggunakan pranala yang dikirim kepadanya setiap kali mereka mengatur atau mengubahnya.\nHanya alamat surel yang dikonfirmasi yang dapat menerima surel dari pengguna lain atau surel pemberitahuan perubahan.\nPenetapan opsi ini '''direkomendasikan''' untuk wiki publik karena adanya potensi penyalahgunaan fitur surel.",
+    "config-email-sender": "Alamat surel balasan:",
+    "config-email-sender-help": "Masukkan alamat surel untuk digunakan sebagai alamat pengirim pada surel keluar.\nAlamat ini akan menerima pentalan.\nBanyak server surel mensyaratkan paling tidak bagian nama domain yang sah.",
+    "config-upload-settings": "Pengunggahan gambar dan berkas",
+    "config-upload-enable": "Aktifkan pengunggahan berkas",
+    "config-upload-help": "Pengunggahan berkas berpotensi memaparkan server Anda dengan risiko keamanan.\nUntuk informasi lebih lanjut, baca [//www.mediawiki.org/wiki/Manual:Security/id manual keamanan].\n\nUntuk mengaktifkan pengunggahan berkas, ubah modus subdirektori <code>images</code> di bawah direktori akar MediaWiki agar server web dapat menulis ke sana.\nKemudian aktifkan opsi ini.",
+    "config-upload-deleted": "Direktori untuk berkas terhapus:",
+    "config-upload-deleted-help": "Pilih direktori tempat mengarsipkan berkas yang dihapus.\nIdealnya, direktori ini tidak boleh dapat diakses dari web.",
+    "config-logo": "URL logo:",
+    "config-logo-help": "Kulit bawaan MediaWiki memberikan ruang untuk logo berukuran 135x160 piksel di atas menu bilah samping.\nUnggah gambar dengan ukuran yang sesuai, lalu masukkan URL di sini.\n\nJika Anda tidak ingin menyertakan logo, biarkan kotak ini kosong.",
+    "config-instantcommons": "Aktifkan Instant Commons",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] adalah fitur yang memungkinkan wiki untuk menggunakan gambar, suara, dan media lain dari [//commons.wikimedia.org/ Wikimedia Commons].\nUntuk melakukannya, MediaWiki memerlukan akses ke Internet.\n\nUntuk informasi lebih lanjut tentang fitur ini, termasuk petunjuk tentang cara untuk mengatur untuk wiki selain Wikimedia Commons, baca [//mediawiki.org/wiki/Manual:$wgForeignFileRepos manual].",
+    "config-cc-error": "Pemilih lisensi Creative Commons tidak memberikan hasil.\nMasukkan nama lisensi secara manual.",
+    "config-cc-again": "Pilih lagi...",
+    "config-cc-not-chosen": "Pilih lisensi Creative Commons yang Anda inginkan dan klik \"lanjutkan\".",
+    "config-advanced-settings": "Konfigurasi lebih lanjut",
+    "config-cache-options": "Pengaturan untuk penyinggahan objek:",
+    "config-cache-help": "Penyinggahan objek digunakan untuk meningkatkan kecepatan MediaWiki dengan menyinggahkan data yang sering digunakan.\nSitus berukuran sedang hingga besar sangat dianjurkan untuk mengaktifkan fitur ini, dan situs kecil juga akan merasakan manfaatnya.",
+    "config-cache-none": "Tidak ada penyinggahan (tidak ada fungsi yang dibuang, tetapi kecepatan dapat terpengaruh pada situs wiki yang besar)",
+    "config-cache-accel": "Penyinggahan objek PHP (APC, XCache atau WinCache)",
+    "config-cache-memcached": "Gunakan Memcached (memerlukan setup dan konfigurasi tambahan)",
+    "config-memcached-servers": "Server Memcached:",
+    "config-memcached-help": "Daftar alamat IP yang digunakan untuk Memcached.\nHarus dispesifikasikan per baris berikut porta yang akan digunakan. Contoh:\n 127.0.0.1:11211\n 192.168.1.25:1234",
+    "config-memcache-needservers": "Anda memilih Memcached sebagai jenis singgahan, tetapi tidak menentukan server apa pun.",
+    "config-memcache-badip": "Anda memasukkan alamat IP yang tidak sah untuk Memcached: $1 .",
+    "config-memcache-noport": "Anda tidak menentukan suatu porta untuk digunakan oleh server Memcached: $1.\nJika Anda tidak tahu porta tersebut, porta bawaan adalah 11211.",
+    "config-memcache-badport": "Nomor porta Memcached harus antara $1 dan $2.",
+    "config-extensions": "Ekstensi",
+    "config-extensions-help": "Ekstensi yang tercantum di atas terdeteksi di direktori <code>./extensions</code>.\n\nEkstensi tersebut mungkin memerlukan konfigurasi tambahan, tetapi Anda dapat mengaktifkannya sekarang.",
+    "config-install-alreadydone": "'''Peringatan:''' Anda tampaknya telah menginstal MediaWiki dan mencoba untuk menginstalnya lagi.\nLanjutkan ke halaman berikutnya.",
+    "config-install-begin": "Dengan menekan \"{{int:config-continue}}\", Anda akan memulai instalasi MediaWiki.\nJika Anda masih ingin membuat perubahan, tekan \"{{int:config-back}}\".",
+    "config-install-step-done": "selesai",
+    "config-install-step-failed": "gagal",
+    "config-install-extensions": "Termasuk ekstensi",
+    "config-install-database": "Menyiapkan basis data",
+    "config-install-pg-schema-not-exist": "Skema PostgreSQL tidak tersedia.",
+    "config-install-pg-schema-failed": "Pembuatan tabel gagal.\nPastikan bahwa pengguna \"$1\" dapat menulis ke skema \"$2\".",
+    "config-install-pg-commit": "Melakukan perubahan",
+    "config-install-pg-plpgsql": "Memeriksa bahasa PL / pgSQL",
+    "config-pg-no-plpgsql": "Anda perlu menginstal bahasa PL/pgSQL pada basis data $1",
+    "config-pg-no-create-privs": "Akun yang Anda tetapkan untuk instalasi tidak memiliki hak yang cukup untuk membuat akun.",
+    "config-install-user": "Membuat pengguna basis data",
+    "config-install-user-alreadyexists": "Pengguna \"$1\" sudah ada",
+    "config-install-user-create-failed": "Pembuatan pengguna \"$1\" gagal: $2",
+    "config-install-user-grant-failed": "Memberikan izin untuk pengguna \"$1\" gagal: $2",
+    "config-install-tables": "Membuat tabel",
+    "config-install-tables-exist": "'''Peringatan''': Tabel MediaWiki sepertinya sudah ada.\nMelompati pembuatan.",
+    "config-install-tables-failed": "'''Kesalahan''': Pembuatan tabel gagal dengan kesalahan berikut: $1",
+    "config-install-interwiki": "Mengisi tabel bawaan antarwiki",
+    "config-install-interwiki-list": "Tidak dapat menemukan berkas <code>interwiki.list</code>.",
+    "config-install-interwiki-exists": "'''Peringatan''': Tabel antarwiki tampaknya sudah memiliki entri.\nMengabaikan daftar bawaan.",
+    "config-install-stats": "Inisialisasi statistik",
+    "config-install-keys": "Membuat kunci rahasia",
+    "config-insecure-keys": "'''Peringatan:''' {{PLURAL:$2|Suatu|Beberapa}} kunci aman ($1) yang dibuat selama instalasi {{PLURAL:$2|tidak|tidak}} benar-benar aman. Pertimbangkan untuk mengubah {{PLURAL:$2|kunci|kunci-kunci}} tersebut secara manual.",
+    "config-install-sysop": "Membuat akun pengguna pengurus",
+    "config-install-subscribe-fail": "Tidak dapat berlangganan mediawiki-announce: $1",
+    "config-install-subscribe-notpossible": "cURL tidak diinstal dan allow_url_fopen tidak tersedia.",
+    "config-install-mainpage": "Membuat halaman utama dengan konten bawaan",
+    "config-install-extension-tables": "Pembuatan tabel untuk ekstensi yang diaktifkan",
+    "config-install-mainpage-failed": "Tidak dapat membuat halaman utama: $1",
+    "config-install-done": "'''Selamat!'''\nAnda telah berhasil menginstal MediaWiki.\n\nPenginstal telah membuat berkas <code>LocalSettings.php</code>.\nBerkas itu berisi semua konfigurasi Anda.\n\nAnda perlu mengunduh berkas itu dan meletakkannya di direktori instalasi wiki (direktori yang sama dengan index.php). Pengunduhan akan dimulai secara otomatis.\n\nJika pengunduhan tidak terjadi, atau jika Anda membatalkannya, Anda dapat mengulangi pengunduhan dengan mengeklik tautan berikut:\n\n$3\n\n'''Catatan''': Jika Anda tidak melakukannya sekarang, berkas konfigurasi yang dihasilkan ini tidak akan tersedia lagi setelah Anda keluar dari proses instalasi tanpa mengunduhnya.\n\nSetelah melakukannya, Anda dapat '''[$2 memasuki wiki Anda]'''.",
+    "config-download-localsettings": "Unduh <code>LocalSettings.php</code>",
+    "config-help": "bantuan",
+    "config-nofile": "Berkas \"$1\" tidak dapat ditemukan. Mungkin sudah dihapus?",
+    "mainpagetext": "'''MediaWiki telah terpasang dengan sukses'''.",
+    "mainpagedocfooter": "Silakan baca [//www.mediawiki.org/wiki/Help:Contents/id Panduan Pengguna] untuk cara penggunaan perangkat lunak wiki ini.\n\n== Memulai penggunaan ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings/id Daftar pengaturan konfigurasi]\n* [//www.mediawiki.org/wiki/Manual:FAQ/id Daftar pertanyaan yang sering diajukan mengenai MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Milis rilis MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Terjemahkan MediaWiki ke bahasa Anda]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ie.json b/includes/installer/i18n/ie.json
new file mode 100644 (file)
index 0000000..6b2f9ba
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Software del wiki installat con successe.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ig.json b/includes/installer/i18n/ig.json
new file mode 100644 (file)
index 0000000..253d8a3
--- /dev/null
@@ -0,0 +1,17 @@
+{
+    "@metadata": {
+        "authors": [
+            "Ukabia"
+        ]
+    },
+    "config-back": "← Laàzú",
+    "config-continue": "Gawazie →",
+    "config-page-language": "Ásụ̀sụ̀",
+    "config-page-name": "Áhà",
+    "config-page-install": "Sụ̀ímé",
+    "config-restart": "Eeh, bìdówárí ya.",
+    "config-admin-password": "Okwúngáfè:",
+    "config-admin-password-confirm": "Okwúngáfè mgbe ozor:",
+    "mainpagetext": "'''MediaWiki a banyélé nke oma.'''",
+    "mainpagedocfooter": "Gbàkpó [//meta.wikimedia.org/wiki/Help:Contents Ǹdù Ọ'bànifé] màkà ụmá màkà Í jí ngwa nsónùsòrò bu wiki.\n\n== I bídó ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Ndétu ndósé ihe]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce wéfù ndétu nke ozi MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ilo.json b/includes/installer/i18n/ilo.json
new file mode 100644 (file)
index 0000000..9ad0c99
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Sibaballigi a nainstolar ti MediaWiki.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/io.json b/includes/installer/i18n/io.json
new file mode 100644 (file)
index 0000000..fe5c494
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Wyvernoid"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki instalesis sucese.'''",
+    "mainpagedocfooter": "Videz la [//meta.wikimedia.org/wiki/Help:Contents Guidilo por Uzanti] por informo pri uzar la wiki programo.\n\n== Komencar ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Listo di ''Configuration setting'']\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki OQQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki nova versioni posto-listo]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/is.json b/includes/installer/i18n/is.json
new file mode 100644 (file)
index 0000000..1c3f99a
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Uppsetning á MediaWiki heppnaðist.'''",
+    "mainpagedocfooter": "Ráðfærðu þig við [//meta.wikimedia.org/wiki/Help:Contents Notandahandbókina] fyrir frekari upplýsingar um notkun wiki-hugbúnaðarins.\n\n== Fyrir byrjendur ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Listi yfir uppsetningarstillingar]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki Algengar spurningar MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Póstlisti MediaWiki-útgáfa]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/it.json b/includes/installer/i18n/it.json
new file mode 100644 (file)
index 0000000..bf679e3
--- /dev/null
@@ -0,0 +1,234 @@
+{
+    "@metadata": {
+        "authors": [
+            "Beta16",
+            "Darth Kule",
+            "F. Cosoleto",
+            "Gianfranco",
+            "Karika",
+            "아라"
+        ]
+    },
+    "config-desc": "Il programma di installazione per MediaWiki",
+    "config-title": "Installazione MediaWiki $1",
+    "config-information": "Informazioni",
+    "config-localsettings-upgrade": "È stato rilevato un file <code>LocalSettings.php</code>.\nPer aggiornare questa installazione, si prega di inserire il valore di <code>$wgUpgradeKey</code> nella casella qui sotto.\nLo potete trovare in <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "È stato rilevato un file <code>LocalSettings.php</code>.\nPer aggiornare questa installazione, eseguire <code>update.php</code>",
+    "config-localsettings-key": "Chiave di aggiornamento:",
+    "config-localsettings-badkey": "La chiave che hai fornito non è corretta.",
+    "config-upgrade-key-missing": "È stata rilevata un'installazione esistente di MediaWiki.\nPer aggiornare questa installazione, si prega di inserire la seguente riga nella parte inferiore del tuo <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "Il file <code>LocalSettings.php</code> esistente sembra essere incompleto.\nLa variabile $1 non è impostata.\nCambia <code>LocalSettings.php</code> in modo che questa variabile sia impostata e fai clic su \"{{int:Config-continue}}\".",
+    "config-localsettings-connection-error": "Si è verificato un errore durante la connessione al database utilizzando le impostazioni specificate in <code>LocalSettings.php</code> o <code>AdminSettings.php</code>. Si prega di correggere queste impostazioni e riprovare.\n\n$1",
+    "config-session-error": "Errore nell'avvio della sessione: $1",
+    "config-session-expired": "I dati della sessione sembrano essere scaduti.\nLe sessioni sono configurate per una durata di $1.\nPuoi aumentarla impostando <code>session.gc_maxlifetime</code> nel file php.ini.\nRiavvia il processo di installazione.",
+    "config-no-session": "I dati della sessione sono andati persi!\nControlla il tuo file php.ini ed assicurati che <code>session.save_path</code> è impostato su una directory appropriata.",
+    "config-your-language": "La tua lingua:",
+    "config-your-language-help": "Seleziona una lingua da utilizzare durante il processo di installazione.",
+    "config-wiki-language": "La lingua del wiki:",
+    "config-wiki-language-help": "Seleziona la lingua che verrà prevalentemente usata nel wiki.",
+    "config-back": "← Indietro",
+    "config-continue": "Continua →",
+    "config-page-language": "Lingua",
+    "config-page-welcome": "Benvenuti in MediaWiki!",
+    "config-page-dbconnect": "Connessione al database",
+    "config-page-upgrade": "Aggiornamento dell'installazione esistente",
+    "config-page-dbsettings": "Impostazioni del database",
+    "config-page-name": "Nome",
+    "config-page-options": "Opzioni",
+    "config-page-install": "Installa",
+    "config-page-complete": "Completa!",
+    "config-page-restart": "Riavvio installazione",
+    "config-page-readme": "Leggimi",
+    "config-page-releasenotes": "Note di versione",
+    "config-page-upgradedoc": "Aggiornamento",
+    "config-page-existingwiki": "Wiki esistenti",
+    "config-help-restart": "Vuoi cancellare tutti i dati salvati che hai inserito e riavviare il processo di installazione?",
+    "config-restart": "Sì, riavvia",
+    "config-welcome": "=== Controllo dell'ambiente ===\nSaranno eseguiti controlli di base per vedere se questo ambiente è adatto per l'installazione di MediaWiki.\nRicordati di includere queste informazioni se chiedi assistenza su come completare l'installazione.",
+    "config-sidebar": "* [//www.mediawiki.org Pagina principale MediaWiki]\n* [//www.mediawiki.org/wiki/Aiuto:Guida ai contenuti per utenti]\n* [//www.mediawiki.org/wiki/Manuale:Guida ai contenuti per admin]\n* [//www.mediawiki.org/wiki/Manuale:FAQ FAQ]\n----\n* <doclink href=Readme>Leggimi</doclink>\n* <doclink href=ReleaseNotes>Note di versione</doclink>\n* <doclink href=Copying>Copie</doclink>\n* <doclink href=UpgradeDoc>Aggiornamenti</doclink>",
+    "config-env-good": "L'ambiente è stato controllato.\nÈ possibile installare MediaWiki.",
+    "config-env-bad": "L'ambiente è stato controllato.\nNon è possibile installare MediaWiki.",
+    "config-env-php": "PHP $1 è installato.",
+    "config-env-php-toolow": "PHP $1 è installato.\nTuttavia, MediaWiki richiede PHP $2 o superiore.",
+    "config-outdated-sqlite": "'''Attenzione''': è presente SQLite $1 mentre è richiesta la versione $2, SQLite non sarà disponibile.",
+    "config-no-fts3": "'''Attenzione''': SQLite è compilato senza il [//sqlite.org/fts3.html modulo FTS3], le funzionalità di ricerca non saranno disponibili su questo backend.",
+    "config-xml-bad": "Il modulo XML di PHP è mancante.\nMediaWIki necessita di funzioni presenti in questo modulo e non funzionerà con la configurazione corrente.\nSe si sta eseguendo Mandrake, installare il paccketto php-xml.",
+    "config-pcre": "Il modulo per il supporto PCRE sembra essere mancante.\nMediaWiki necessita di questo modulo per funzinare, che fornisce funzioni per le espressioni regolari Perl-compatibili.",
+    "config-pcre-no-utf8": "'''Errore''': Il modulo PCRE di PHP sembra essere stato compilato senza il supporto PCRE_UTF8, ma MediaWiki lo richiede per funzionare correttamente.",
+    "config-memory-raised": "Il valore <code>memory_limit</code> di PHP è $1, aumentato a $2.",
+    "config-memory-bad": "''Attenzione:''' Il valore di <code>memory_limit</code> di PHP è $1.\nProbabilmente è troppo basso.\nL'installazione potrebbe non riuscire!",
+    "config-ctype": "'''Errore''': PHP deve essere compilato con il supporto per l'[http://www.php.net/manual/it/ctype.installation.php estensione Ctype].",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] è installato",
+    "config-apc": "[http://www.php.net/apc APC] è installato",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] è installato",
+    "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.\nLa 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>.\nLe miniature delle immagini saranno presenti se gli upload vengono abilitati.",
+    "config-gd": "Trovata la GD Graphics Library built-in.\nLe miniature delle immagini saranno presenti se gli upload vengono abilitati.",
+    "config-no-scaling": "Impossibile trovare GD library o ImageMagick.\nLe miniature delle immagini saranno disabilitate.",
+    "config-no-uri": "'''Errore:''' Impossibile determinare l'URI attuale.\nInstallazione interrotta.",
+    "config-no-cli-uri": "'''Attenzione''': --scriptpath non specificato, si utilizza il valore predefinito: <code>$1</code>.",
+    "config-using-server": "Nome server in uso \"<nowiki>$1</nowiki>\".",
+    "config-using-uri": "URL del server in uso \"<nowiki>$1$2</nowiki>\".",
+    "config-brokenlibxml": "Il tuo sistema ha una combinazione di versioni di PHP e libxml2 che è difettosa e che può provocare un danneggiamento non visibile di dati in MediaWiki ed in altre applicazioni per il web.\nAggiorna a PHP 5.2.9 o successivo, ed a libxml2 2.7.3 o successivo ([//bugs.php.net/bug.php?id=45996 il bug è studiato dal lato PHP]).\nInstallazione interrotta.",
+    "config-using531": "MediaWiki non può essere usato con il PHP $1 a causa di un bug che coinvolge i parametri di riferimento a <code>__call()</code>.\nAggiorna a PHP 5.3.2 o superiore, o fai un downgrade tornando a PHP 5.3.0 per risolvere il problema.\nInstallazione interrotta.",
+    "config-db-type": "Tipo di database:",
+    "config-db-host": "Host del database:",
+    "config-db-host-help": "Se il server del tuo database è su un server diverso, immetti qui il nome dell'host o il suo indirizzo IP.\n\nSe stai utilizzando un web hosting condiviso, il tuo hosting provider dovrebbe fornirti il nome host corretto nella sua documentazione.\n\nSe stai installando su un server Windows con uso di MySQL, l'uso di \"localhost\" potrebbe non funzionare correttamente come nome del server. In caso di problemi, prova a impostare \"127.0.0.1\" come indirizzo IP locale.\n\nSe usi PostgreSQL, lascia questo campo vuoto per consentire di connettersi tramite un socket Unix.",
+    "config-db-host-oracle": "TNS del database:",
+    "config-db-wiki-settings": "Identifica questo wiki",
+    "config-db-name": "Nome del database:",
+    "config-db-name-help": "Scegli un nome che identifica il tuo wiki.\nNon deve contenere spazi.\n\nSe utilizzi un web hosting condiviso, il tuo hosting provider o ti fornisce uno specifico nome di database da utilizzare, oppure ti consentirà di creare il database tramite un pannello di controllo.",
+    "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.\nAnche 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.\nQuesto 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.\nQuesta 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.\nSe 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-prefix-help": "Se hai bisogno di condividere un database tra più wiki, o tra MediaWiki e un'altra applicazione web, puoi scegliere di aggiungere un prefisso a tutti i nomi di tabella, per evitare conflitti.\nNon utilizzare spazi.\n\nSolitamente, questo campo viene lasciato vuoto.",
+    "config-db-charset": "Set di caratteri del database",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binario",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 con compatibilità UTF-8",
+    "config-mysql-old": "MySQL $1 o una versione successiva è necessaria, rilevata la $2.",
+    "config-db-port": "Porta del database:",
+    "config-db-schema": "Schema per MediaWiki:",
+    "config-db-schema-help": "Questo schema in genere andrà bene.\nDa 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-support-info": "MediaWiki supporta i seguenti sistemi di database:\n\n$1\n\nSe fra quelli elencati qui sotto non vedi il sistema di database che vorresti utilizzare, seguire le istruzioni linkate sopra per abilitare il supporto.",
+    "config-support-mysql": "* $1 è la configurazione preferibile per MediaWiki ed è quella meglio supportata ([http://www.php.net/manual/en/mysql.installation.php come compilare PHP con supporto MySQL])",
+    "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-invalid-db-name": "Nome di database \"$1\" non valido.\nUtilizza soltanto caratteri ASCII come lettere (a-z, A-Z), numeri (0-9), sottolineatura (_) e trattini (-).",
+    "config-invalid-db-prefix": "Prefisso database \"$1\" non valido.\nUtilizza soltanto caratteri ASCII come lettere (a-z, A-Z), numeri (0-9), sottolineatura (_) e trattini (-).",
+    "config-connection-error": "$1.\n\nControlla host, nome utente e password e prova ancora.",
+    "config-db-sys-create-oracle": "Il programma di installazione supporta solo l'utilizzo di un account SYSDBA per la creazione di un nuovo account.",
+    "config-db-sys-user-exists-oracle": "L'account utente \"$1\" esiste già. SYSDBA può essere usato solo per la creazione di un nuovo account!",
+    "config-postgres-old": "PostgreSQL $1 o una versione successiva è necessaria, rilevata la $2.",
+    "config-sqlite-name-help": "Scegli un nome che identifichi il tuo wiki.\nNon utilizzare spazi o trattini.\nQuesto servirà per il nome del file di dati SQLite.",
+    "config-sqlite-mkdir-error": "Errore durante la creazione della directory dati \"$1\".\nControlla la posizione e riprova.",
+    "config-sqlite-dir-unwritable": "Impossibile scrivere nella directory \"$1\".\nModifica le autorizzazioni in modo che il webserver possa scrivere in essa e riprova.",
+    "config-sqlite-connection-error": "$1.\n\nControlla la directory dati e il nome del database qui sotto, poi riprova.",
+    "config-sqlite-readonly": "Il file <code>$1</code> non è scrivibile.",
+    "config-sqlite-cant-create-db": "Impossibile creare il file di database <code>$1</code> .",
+    "config-sqlite-fts3-downgrade": "Il PHP è mancante del supporto FTS3, declassamento tabelle in corso",
+    "config-can-upgrade": "Ci sono tabelle di MediaWiki in questo database.\nPer aggiornarle a MediaWiki $1, fai clic su '''continua'''.",
+    "config-upgrade-done": "Aggiornamento completo.\n\nPuoi [$1 iniziare ad usare il tuo wiki].\n\nSe 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.\n\nPuoi [$1 iniziare ad usare il tuo wiki].",
+    "config-regenerate": "Rigenera LocalSettings.php →",
+    "config-show-table-status": "La query <code>SHOW TABLE STATUS</code> è fallita!",
+    "config-unknown-collation": "'''Attenzione:''' il database utilizza regole di confronto non riconosciute.",
+    "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.\nL'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 del wiki: $1",
+    "config-ns-other": "Altro (specificare)",
+    "config-ns-other-default": "MyWiki",
+    "config-admin-box": "Account amministratore",
+    "config-admin-name": "Tuo nome:",
+    "config-admin-password": "Password:",
+    "config-admin-password-confirm": "Ripeti la password:",
+    "config-admin-help": "Inserisci il tuo nome utente scelto qui, ad esempio \"Mario Rossi\".\nQuesto è il nome che userai per accedere al wiki.",
+    "config-admin-name-blank": "Inserisci un nome utente per l'amministratore.",
+    "config-admin-name-invalid": "Il nome utente specificato \"<nowiki>$1</nowiki>\" non è valido.\nSpecificare un nome utente diverso.",
+    "config-admin-password-blank": "Inserisci una password per l'account di amministratore.",
+    "config-admin-password-same": "La password non deve essere uguale al nome utente.",
+    "config-admin-password-mismatch": "Le password inserite non coincidono tra loro.",
+    "config-admin-email": "Indirizzo e-mail:",
+    "config-admin-error-bademail": "È stato inserito un indirizzo email non valido.",
+    "config-subscribe-help": "Si tratta di una mailing list a basso traffico dedicata agli annunci di nuove versioni, compresi importanti segnalazioni riguardanti la sicurezza.\nÈ consigliato iscriversi e aggiornare la proprio installazione di MediaWiki quando una nuova versione viene resa pubblica.",
+    "config-subscribe-noemail": "Hai provato ad iscriverti alla mailing list dedicata agli annunci delle nuove versioni senza fornire un indirizzo email.\nInserire un indirizzo email se si desidera effettuare l'iscrizione alla mailing list.",
+    "config-almost-done": "Hai quasi finito!\nAdesso 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",
+    "config-profile-private": "Wiki privata",
+    "config-license": "Copyright e licenza:",
+    "config-license-none": "Nessun piè di pagina per la licenza",
+    "config-license-cc-by-sa": "Creative Commons Attribuzione-Condividi allo stesso modo",
+    "config-license-cc-by": "Creative Commons Attribuzione",
+    "config-license-cc-by-nc-sa": "Creative Commons Attribuzione-Non commerciale-Condividi allo stesso modo",
+    "config-license-cc-0": "Creative Commons Zero (pubblico dominio)",
+    "config-license-gfdl": "GNU Free Documentation License 1.3 o versioni successive",
+    "config-license-pd": "Pubblico dominio",
+    "config-license-cc-choose": "Seleziona una delle licenze Creative Commons",
+    "config-license-help": "Molti wiki pubblici rilasciano i loro contributi con una [http://freedomdefined.org/Definition licenza libera]. Questo aiuta a creare un senso di proprietà condivisa nella comunità e incoraggia a contribuire a lungo termine. Non è generalmente necessario per un wiki privato o aziendale.\n\nSe vuoi usare testi da Wikipedia, o desideri che Wikipedia possa essere in grado di accettare testi copiati dal tuo wiki, dovresti scegliere '''Creative Commons Attribution Share Alike'''.\n\nIn 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:",
+    "config-instantcommons": "Abilita Instant Commons",
+    "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>.",
+    "config-install-stats": "Inizializzazione delle statistiche",
+    "config-install-keys": "Generazione delle chiavi segrete",
+    "config-install-sysop": "Creazione dell'account utente per l'amministratore",
+    "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",
+    "config-nofile": "Il file \"$1\" non può essere trovato. È stato eliminato?",
+    "mainpagetext": "'''Installazione di MediaWiki completata correttamente.'''",
+    "mainpagedocfooter": "Consultare la [//meta.wikimedia.org/wiki/Aiuto:Sommario Guida utente] per maggiori informazioni sull'uso di questo software wiki.\n\n== Per iniziare ==\nI seguenti collegamenti sono in lingua inglese:\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Impostazioni di configurazione]\n* [//www.mediawiki.org/wiki/Manual:FAQ Domande frequenti su MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailing list annunci MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Localizza MediaWiki nella tua lingua]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ja.json b/includes/installer/i18n/ja.json
new file mode 100644 (file)
index 0000000..8c868ee
--- /dev/null
@@ -0,0 +1,298 @@
+{
+    "@metadata": {
+        "authors": [
+            "Aphaia",
+            "Fryed-peach",
+            "Iwai.masaharu",
+            "Mizusumashi",
+            "Ninomy",
+            "Ohgi",
+            "Shirayuki",
+            "Whym",
+            "Yanajin66",
+            "青子守歌",
+            "아라"
+        ]
+    },
+    "config-desc": "MediaWiki のインストーラー",
+    "config-title": "MediaWiki $1 のインストール",
+    "config-information": "情報",
+    "config-localsettings-upgrade": "ファイル <code>LocalSettings.php</code> を検出しました。\nインストールされているものをアップグレードするには、<code>$wgUpgradeKey</code> の値を以下の欄に入力してください。\nこの値は <code>LocalSettings.php</code> 内にあります。",
+    "config-localsettings-cli-upgrade": "ファイル <code>LocalSettings.php</code> を検出しました。\nインストールされているものをアップグレードするには、<code>update.php</code> を実行してください",
+    "config-localsettings-key": "アップグレード キー:",
+    "config-localsettings-badkey": "与えられたキーが間違っています",
+    "config-upgrade-key-missing": "MediaWiki が既にインストールされていることを検出しました。\nインストールされているものをアップグレードするために、以下の行を <code>LocalSettings.php</code> の末尾に挿入してください:\n\n$1",
+    "config-localsettings-incomplete": "既存の <code>LocalSettings.php</code> の内容は不完全のようです。\n変数 $1 が設定されていません。\n<code>LocalSettings.php</code> 内でこの変数を設定して、「{{int:Config-continue}}」をクリックしてください。",
+    "config-localsettings-connection-error": "<code>LocalSettings.php</code> または <code>AdminSettings.php</code> で指定した設定を使用してデータベースに接続する際にエラーが発生しました。\n設定を修正してから再度試してください。\n\n$1",
+    "config-session-error": "セッションの開始エラー: $1",
+    "config-session-expired": "セッションの有効期限が切れたようです。\nセッションの有効期間は$1に設定されています。\nphp.iniの<code>session.gc_maxlifetime</code>を設定することで、この問題を改善できます。\nインストール作業を再起動させてください。",
+    "config-no-session": "セッションのデータが消失しました!\nphp.ini 内で <code>session.save_path</code> が適切なディレクトリに設定されていることを確認してください。",
+    "config-your-language": "あなたの言語:",
+    "config-your-language-help": "インストール作業に使用する言語を選択してください。",
+    "config-wiki-language": "ウィキの言語:",
+    "config-wiki-language-help": "ウィキで主に書き込まれる言語を選択してください。",
+    "config-back": "← 戻る",
+    "config-continue": "続行 →",
+    "config-page-language": "言語",
+    "config-page-welcome": "MediaWiki へようこそ!",
+    "config-page-dbconnect": "データベースに接続",
+    "config-page-upgrade": "既存のインストールを更新",
+    "config-page-dbsettings": "データベースの設定",
+    "config-page-name": "名前",
+    "config-page-options": "オプション",
+    "config-page-install": "インストール",
+    "config-page-complete": "完了!",
+    "config-page-restart": "インストールを再起動",
+    "config-page-readme": "お読みください",
+    "config-page-releasenotes": "リリースノート",
+    "config-page-copying": "コピー",
+    "config-page-upgradedoc": "アップグレード",
+    "config-page-existingwiki": "既存のウィキ",
+    "config-help-restart": "入力した保存データをすべて消去して、インストール作業を再起動しますか?",
+    "config-restart": "はい、再起動します",
+    "config-welcome": "=== 環境の確認 ===\n基本的な確認では、現在の環境が MediaWiki のインストールに適しているかを確認します。\nインストール方法について助けが必要になった場合は、必ずこの確認結果を添えてください。",
+    "config-copyright": "=== 著作権および規約 ===\n$1\n\nこの作品はフリーソフトウェアです。あなたは、フリーソフトウェア財団の発行するGNU一般公衆利用許諾書 (GNU General Public License) (バージョン2、またはそれ以降のライセンス) の規約に基づき、このライブラリを再配布および改変できます。\n\nこの作品は、有用であることを期待して配布されていますが、商用あるいは特定の目的に適するかどうかも含めて、暗黙的にも、一切保証されません。\n詳しくは、GNU一般公衆利用許諾書をご覧ください。\n\nあなたはこのプログラムと共に、<doclink href=Copying>GNU一般公衆利用許諾契約書の複製</doclink>を一部受け取ったはずです。受け取っていない場合は、フリーソフトウェア財団 (宛先は the Free Software Foundation, Inc., 59Temple Place, Suite 330, Boston, MA 02111-1307 USA) まで請求してください。",
+    "config-sidebar": "* [//www.mediawiki.org MediaWikiのホーム]\n* [//www.mediawiki.org/wiki/Help:Contents 利用者向け案内]\n* [//www.mediawiki.org/wiki/Manual:Contents 管理者向け案内]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>お読みください</doclink>\n* <doclink href=ReleaseNotes>リリースノート</doclink>\n* <doclink href=Copying>コピー</doclink>\n* <doclink href=UpgradeDoc>アップグレード</doclink>",
+    "config-env-good": "環境の確認が終わりました。\nMediaWikiをインストールできます。",
+    "config-env-bad": "環境の確認が終わりました。\nMediaWikiのインストールはできません。",
+    "config-env-php": "PHP $1がインストールされています。",
+    "config-env-php-toolow": "PHP $1 がインストールされています。\nしかし、MediaWikiには PHP $2 以上が必要です。",
+    "config-unicode-using-utf8": "Unicode正規化に、Brion Vibberのutf8_normalize.soを使用。",
+    "config-unicode-using-intl": "Unicode正規化に[http://pecl.php.net/intl intl PECL 拡張機能]を使用。",
+    "config-unicode-pure-php-warning": "'''警告:''' Unicode 正規化の処理に [http://pecl.php.net/intl intl PECL 拡張機能]を利用できないため、処理が遅いピュア PHP の実装を代わりに使用しています。\n高トラフィックのサイトを運営する場合は、[//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode 正規化]をお読みください。",
+    "config-unicode-update-warning": "'''警告:''' インストールされているバージョンの Unicode 正規化ラッパーは、[http://site.icu-project.org/ ICU プロジェクト]のライブラリの古いバージョンを使用しています。\nUnicode を少しでも利用する可能性がある場合は、[//www.mediawiki.org/wiki/Unicode_normalization_considerations アップグレード]してください。",
+    "config-no-db": "適切なデータベース ドライバーが見つかりませんでした! PHP にデータベース ドライバーをインストールする必要があります。\n以下の種類のデータベースに対応しています: $1\n\n共有サーバーを使用している場合は、適切なデータベース ドライバーのインストールを、サーバーの管理者に依頼してください。\nPHP を自分でコンパイルした場合は、例えば <code>./configure --with-mysql</code> を実行して、データベース クライアントを使用できるように再設定してください。\nDebian または 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> オプションが有効になっています。'''\n'''可能なら無効化してください。'''\nMediaWiki は動作しますが、サーバーの潜在的なセキュリティ脆弱性が露呈されます。",
+    "config-magic-quotes-runtime": "'''致命的エラー: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] が動作しています!'''\nこのオプションは、予期せずデータ入力を破壊します。\nこのオプションを無効化しない限り、MediaWiki のインストールや使用はできません。",
+    "config-magic-quotes-sybase": "'''致命的エラー: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] が動作しています!'''\nこのオプションは、予期せずデータ入力を破壊します。\nこのオプションを無効化しない限り、MediaWiki のインストールや使用はできません。",
+    "config-mbstring": "'''致命的エラー: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] が動作しています!'''\nこのオプションは、エラーを引き起こし、予期せずデータを破壊するおそれがあります。\nこのオプションを無効化しない限り、MediaWiki のインストールや使用はできません。",
+    "config-ze1": "'''致命的エラー: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] が動作しています!'''\nこのオプションは、MediaWiki において深刻なバグを引き起こします。\nこのオプションを無効化しない限り、MediaWiki のインストールや使用はできません。",
+    "config-safe-mode": "'''警告:''' PHPの[http://www.php.net/features.safe-mode セーフモード]が有効になっています。\n特に、ファイルのアップロードや<code>math</code>機能で、問題が発生するおそれがあります。",
+    "config-xml-bad": "PHPのXMLモジュールが不足しています。\nMediaWikiは、このモジュールの関数を必要としているため、この構成では動作しません。\nMandrakeを実行している場合、php-xmlパッケージをインストールしてください。",
+    "config-pcre": "PCREをサポートしているモジュールが不足しているようです。\nMediaWikiは、Perl互換の正規表現関数の動作が必要です。",
+    "config-pcre-no-utf8": "'''致命的エラー:''' PHP の PCRE が PCRE_UTF8 対応なしでコンパイルされているようです。\nMediaWiki を正しく動作させるには、UTF-8 対応が必要です。",
+    "config-memory-raised": "PHPの<code>memory_limit</code>は$1で、$2に引き上げられました。",
+    "config-memory-bad": "'''警告:''' PHPの<code>memory_limit</code>に$1に設定されています。\nこの値はおそらく小さすぎます。\nインストールが失敗するおそれがあります!",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] がインストール済み",
+    "config-apc": "[http://www.php.net/apc APC] がインストール済み",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] がインストール済み",
+    "config-no-cache": "'''警告:''' [http://www.php.net/apc APC]、[http://xcache.lighttpd.net/ XCache]、[http://www.iis.net/download/WinCacheForPhp WinCache] のいずれも見つかりませんでした。\nオブジェクトのキャッシュは有効化されません。",
+    "config-diff3-bad": "GNU diff3 が見つかりません。",
+    "config-git": "バージョン管理ソフトウェア Git が見つかりました: <code>$1</code>",
+    "config-git-bad": "バージョン管理ソフトウェア Git が見つかりません。",
+    "config-imagemagick": "ImageMagickが見つかりました: <code>$1</code>。\nアップロードが有効であれば、画像のサムネイルを利用できます。",
+    "config-gd": "GD画像ライブラリが内蔵されていることが確認されました。\nアップロードが有効なら、画像のサムネイルが利用できます。",
+    "config-no-scaling": "GDライブラリもImageMagickも見つかりませんでした。\n画像のサムネイル生成は無効になります。",
+    "config-no-uri": "'''エラー:''' 現在のURIを決定できませんでした。\nインストールは中止されました。",
+    "config-no-cli-uri": "'''警告:''' --scriptpath が指定されていないため、既定値 <code>$1</code> を使用します。",
+    "config-using-server": "サーバー名「<nowiki>$1</nowiki>」を使用しています。",
+    "config-using-uri": "サーバー URL「<nowiki>$1$2</nowiki>」を使用しています。",
+    "config-uploads-not-safe": "'''警告:''' アップロードの既定ディレクトリ <code>$1</code> に、任意のスクリプト実行に関する脆弱性があります。\nMediaWiki はアップロードされたファイルのセキュリティ上の脅威を確認しますが、アップロードを有効化する前に、[//www.mediawiki.org/wiki/Manual:Security#Upload_security このセキュリティ上の脆弱性を解決する]ことを強く推奨します。",
+    "config-brokenlibxml": "このシステムで使われているPHPとlibxml2のバージョンのこの組み合わせにはバグがあります。具体的には、MediaWikiやその他のウェブアプリケーションでhiddenデータが破損する可能性があります。\nPHPを5.2.9かそれ以降のバージョンに、libxml2を2.7.3かそれ以降のバージョンにアップグレードしてください([//bugs.php.net/bug.php?id=45996 PHPでのバグ情報])。\nインストールを終了します。",
+    "config-using531": "PHP$1は<code>__call()</code>の引数参照に関するバグのため、MediaWikiと互換性がありません。\nPHP5.3.2以降に更新するか、この([//bugs.php.net/bug.php?id=50394 PHPに提出されたバグ])を修正するためにPHP5.3.0へ戻してください。\nインストールは中止されました。",
+    "config-suhosin-max-value-length": "Suhosin がインストールされており、GET パラメーターの <code>length</code> を $1 バイトに制限しています。\nMediaWiki の ResourceLoader コンポーネントはこの制限を回避しますが、パフォーマンスは低下します。\n可能な限り、<code>php.ini</code> で <code>suhosin.get.max_value_length</code> を 1024 以上に設定し、同じ値を <code>LocalSettings.php</code> 内で <code>$wgResourceLoaderMaxQueryLength</code> に設定してください。",
+    "config-db-type": "データベースの種類:",
+    "config-db-host": "データベースのホスト:",
+    "config-db-host-help": "異なるサーバー上にデータベースサーバーがある場合、ホスト名またはIPアドレスをここに入力してください。\n\nもし、共有されたウェブホスティングを使用している場合、ホスティングプロバイダーは正確なホスト名を解説しているはずです。\n\nWindowsでMySQLを使用している場合に、「localhost」は、サーバー名としてはうまく働かないでしょう。もしそのような場合は、ローカルIPアドレスとして「127.0.0.1」を試してみてください。\n\nPostgreSQLを使用している場合、UNIXソケットで接続するにはこの欄を空欄のままにしてください。",
+    "config-db-host-oracle": "データベース TNS:",
+    "config-db-host-oracle-help": "有効な[http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm ローカル接続名]を入力してください。tnsnames.ora ファイルは、このインストール先から参照できる場所に置いてください。<br />ご使用中のクライアント ライブラリが 10g 以降の場合、[http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect] ネーミング メソッドを使用できます。",
+    "config-db-wiki-settings": "このウィキの識別情報",
+    "config-db-name": "データベース名:",
+    "config-db-name-help": "このウィキを識別する名前を入力してください。\n空白を含めることはできません。\n\n共有ウェブホストを利用している場合、ホスティングプロバイダーが特定の使用可能なデータベース名を提供するか、あるいは管理パネルからデータベースを作成できるようにしているでしょう。",
+    "config-db-name-oracle": "データベースのスキーマ:",
+    "config-db-install-account": "インストールで使用する利用者アカウント",
+    "config-db-username": "データベースのユーザー名:",
+    "config-db-password": "データベースのパスワード:",
+    "config-db-password-empty": "新しいデータベースの利用者名 $1 のパスワードを入力してください。\nパスワードを設定せずにユーザーを作成できる場合もありますが、安全ではありません。",
+    "config-db-install-username": "インストール中にデータベースへの接続で使用するユーザー名を入力してください。\nこれは MediaWiki アカウントの利用者名のことではありません。あなたのデータベースでのユーザー名です。",
+    "config-db-install-password": "インストール中にデータベースへの接続で使用するパスワードを入力してください。\nこれは MediaWiki アカウントのパスワードのことではありません。あなたのデータベースでのパスワードです。",
+    "config-db-install-help": "インストール作業中にデータベースに接続するための利用者名とパスワードを入力してください。",
+    "config-db-account-lock": "インストール作業終了後も同じ利用者名とパスワードを使用する",
+    "config-db-wiki-account": "インストール作業終了後の利用者アカウント",
+    "config-db-wiki-help": "通常のウィキ操作中にデータベースへの接続する時に利用する利用者名とパスワードを入力してください。\nアカウントが存在せず、インストールのアカウントに十分な権限がある場合は、この利用者アカウントは、ウィキを操作する上で最小限の権限を持った状態で作成されます。",
+    "config-db-prefix": "データベース テーブルの接頭辞:",
+    "config-db-prefix-help": "データベースを複数のウィキ間、あるいはMediaWikiと他のウェブアプリケーションで共有する必要がある場合、衝突を避けるために、すべてのテーブル名に接頭辞を付ける必要があります。\n空白は使用できません。\n\nこのフィールドは、通常は空のままです。",
+    "config-db-charset": "データベースの文字セット",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 バイナリ",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 後方互換 UTF-8",
+    "config-charset-help": "'''警告:''' MySQL 4.1+ で'''後方互換 UTF-8''' を使用している状態で、<code>mysqldump</code> でデータベースをバックアップすると、すべての非 ASCII 文字が破壊されてしまい、バックアップが不可逆的に破損してしまいます!\n\n'''バイナリ モード'''では、MediaWiki は、UTF-8 テキストをデータベースのバイナリ フィールドに格納します。\nこれは、MySQL の UTF-8 モードより効率的で、Unicode 文字の全範囲を利用できるようになります。\n'''UTF-8 モード'''では、MySQL は、データ内で使用している文字集合を知っているため、適切に表現や変換ができますが、\n[//ja.wikipedia.org/wiki/%E5%9F%BA%E6%9C%AC%E5%A4%9A%E8%A8%80%E8%AA%9E%E9%9D%A2 基本多言語面]の外にある文字を格納できません。",
+    "config-mysql-old": "MySQL $1 以降が必要です。ご使用中の MySQL は $2 です。",
+    "config-db-port": "データベースのポート:",
+    "config-db-schema": "MediaWiki のスキーマ:",
+    "config-db-schema-help": "通常はこのスキーマで問題ありません。\n必要な場合のみ変更してください。",
+    "config-pg-test-error": "データベース '''$1''' に接続できません: $2",
+    "config-sqlite-dir": "SQLite データ ディレクトリ:",
+    "config-sqlite-dir-help": "SQLite は単一のファイル内にすべてのデータを格納しています。\n\n指定したディレクトリは、インストール時にウェブ サーバーが書き込めるようにしておく必要があります。\n\nこのディレクトリはウェブからアクセス'''不可能'''である必要があります。PHP ファイルがある場所には配置できないのはこのためです。\n\nインストーラーは <code>.htaccess</code> ファイルにも書き込みます。しかし、これが失敗した場合は、誰かが生のデータベースにアクセスできてしまいます。\nデータベースは、生のデータ (メールアドレス、パスワードのハッシュ値) の他、削除された版、その他ウィキ上の制限されているデータを含んでいます。\n\n例えば <code>/var/lib/mediawiki/yourwiki</code> のように、別の場所にデータベースを配置することを検討してください。",
+    "config-oracle-def-ts": "既定のテーブル領域:",
+    "config-oracle-temp-ts": "一時的なテーブル領域:",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-support-info": "MediaWiki は以下のデータベース システムに対応しています:\n\n$1\n\n使用しようとしているデータベース システムが下記の一覧にない場合は、上記リンク先の手順に従ってインストールしてください。",
+    "config-support-mysql": "* $1はMediaWikiの主要な対象であり、最もサポートされています ([http://www.php.net/manual/en/mysql.installation.php MySQLに対応したPHPをコンパイルする方法])",
+    "config-support-postgres": "* $1は、MySQLの代替として人気があるオープンソースのデータベースシステムです ([http://www.php.net/manual/en/pgsql.installation.php PostgreSQLに対応したPHPをコンパイルする方法])",
+    "config-support-sqlite": "* $1は、良くサポートされている、軽量データベースシステムです。([http://www.php.net/manual/ja/pdo.installation.php SQLiteに対応したPHPをコンパイルする方法]、PDOを使用)",
+    "config-support-oracle": "* $1は商業企業のデータベースです。([http://www.php.net/manual/en/oci8.installation.php OCI8サポートなPHPをコンパイルする方法])",
+    "config-header-mysql": "MySQL の設定",
+    "config-header-postgres": "PostgreSQL の設定",
+    "config-header-sqlite": "SQLite の設定",
+    "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 です。\n「TNS 名」「Easy Connect」文字列のいずれかを使用してください ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle ネーミング メソッド])",
+    "config-invalid-db-name": "「$1」は無効なデータベース名です。\n半角の英数字 (a-z、A-Z、0-9)、アンダースコア (_)、ハイフン (-) のみを使用してください。",
+    "config-invalid-db-prefix": "「$1」は無効なデータベース接頭辞です。\n半角の英数字 (a-z、A-Z、0-9)、アンダースコア (_)、ハイフン (-) のみを使用してください。",
+    "config-connection-error": "$1。\n\n以下のホスト名、ユーザー名、パスワードを確認してから再度試してください。",
+    "config-invalid-schema": "「$1」は MediaWiki のスキーマとして無効です。\n半角の英数字 (a-z、A-Z、0-9)、アンダースコア (_) のみを使用してください。",
+    "config-postgres-old": "PostgreSQL $1 以降が必要です。ご使用中の PostgreSQL は $2 です。",
+    "config-sqlite-name-help": "あなたのウェキと同一性のある名前を選んでください。\n空白およびハイフンは使用しないでください。\nSQLiteのデータファイル名として使用されます。",
+    "config-sqlite-parent-unwritable-group": "データ ディレクトリ <code><nowiki>$1</nowiki></code> を作成できません。ウェブ サーバーは親ディレクトリ <code><nowiki>$2</nowiki></code> に書き込めませんでした。\n\nインストーラーは、ウェブ サーバーの実行ユーザーを特定しました。\n続行するには、ディレクトリ <code><nowiki>$3</nowiki></code> に書き込めるようにしてください。\nUnix または Linux であれば、以下を実行してください:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "データ ディレクトリ <code><nowiki>$1</nowiki></code> を作成できません。ウェブ サーバーは、親ディレクトリ <code><nowiki>$2</nowiki></code> に書き込めませんでした。\n\nインストーラーは、ウェブ サーバーの実行ユーザーを特定できませんでした。\n続行するには、ディレクトリ <code><nowiki>$3</nowiki></code> に、ウェブ サーバー (と、あらゆる人々!) がグローバルに書き込めるようにしてください。\nUnix または Linux では、以下を実行してください:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "データ ディレクトリ「$1」を作成する際にエラーが発生しました。\n場所を確認してから、再度試してください。",
+    "config-sqlite-dir-unwritable": "ディレクトリ「$1」に書き込めません。\nウェブ サーバーが書き込めるようにパーミッションを変更してから、再度試してください。",
+    "config-sqlite-connection-error": "$1。\n\nデータ ディレクトリおよびデータベース名を確認してから、再度試してください。",
+    "config-sqlite-readonly": "ファイル <code>$1</code> に書き込めません。",
+    "config-sqlite-cant-create-db": "データベース ファイル <code>$1</code> を作成できませんでした。",
+    "config-sqlite-fts3-downgrade": "PHP が FTS3 に対応していないため、テーブルをダウングレードしています",
+    "config-can-upgrade": "このデータベースには MediaWiki テーブルがあります。\nこれらのテーブルを MediaWiki $1 にアップグレードするには、「続行」をクリックしてください。",
+    "config-upgrade-done": "更新は完了しました。\n\n[$1 ウィキを使い始める]ことができます。\n\n<code>LocalSettings.php</code> ファイルを再生成したい場合は、下のボタンを押してください。\nウィキに問題がある場合を除き、再生成は'''推奨されません'''。",
+    "config-upgrade-done-no-regenerate": "アップグレードが完了しました。\n\n[$1 ウィキの使用を開始]することができます。",
+    "config-regenerate": "LocalSettings.php を再生成→",
+    "config-show-table-status": "<code>SHOW TABLE STATUS</code> クエリが失敗しました!",
+    "config-unknown-collation": "'''警告:''' データベースは認識されない照合を使用しています。",
+    "config-db-web-account": "ウェブアクセスのためのデータベースアカウント",
+    "config-db-web-help": "ウィキの通常の操作の際に、ウェブ サーバーがデータベース サーバーに接続できるように、ユーザー名とパスワードを指定してください。",
+    "config-db-web-account-same": "インストール作業と同じアカウントを使用する",
+    "config-db-web-create": "アカウントが存在しない場合は作成する",
+    "config-db-web-no-create-privs": "あなたがインストールのために定義したアカウントは、アカウント作成のための特権としては不充分です。\nあなたがここで指定したアカウントは既に存在している必要があります。",
+    "config-mysql-engine": "ストレージ エンジン:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-engine-help": "'''InnoDB'''は、並行処理のサポートに優れているので、ほとんどの場合において最良の選択肢です。\n\n'''MyISAM'''は、利用者が1人の場合、あるいは読み込み専用でインストールする場合に、より処理が早くなるでしょう。\nただし、MyISAMのデータベースは、InnoDBより高頻度で破損する傾向があります。",
+    "config-mysql-charset": "データベースの文字セット:",
+    "config-mysql-binary": "バイナリ",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "'''バイナリ モード'''では、MediaWiki は、UTF-8 テキストをデータベースのバイナリ フィールドに格納します。\nこれは、MySQL の UTF-8 モードより効率的で、Unicode 文字の全範囲を利用できるようになります。\n\n'''UTF-8 モード'''では、MySQL は、データ内で使用している文字集合を知っているため、適切に表現や変換ができますが、\n[//ja.wikipedia.org/wiki/%E5%9F%BA%E6%9C%AC%E5%A4%9A%E8%A8%80%E8%AA%9E%E9%9D%A2 基本多言語面]の外にある文字を格納できません。",
+    "config-site-name": "ウィキ名:",
+    "config-site-name-help": "この事象はブラウザーのタイトルバーと他のさまざまな場所に現れる。",
+    "config-site-name-blank": "サイト名を入力してください。",
+    "config-project-namespace": "プロジェクト名前空間:",
+    "config-ns-generic": "プロジェクト",
+    "config-ns-site-name": "ウィキ名と同じ: $1",
+    "config-ns-other": "その他 (指定してください)",
+    "config-ns-other-default": "マイウィキ",
+    "config-project-namespace-help": "ウィキペディアの例に従い、多くのウィキは、コンテンツのページとは分離したポリシーページを「'''プロジェクトの名前空間'''」に持っています。\nこの名前空間内のページのページ名はすべて特定の接頭辞で始まります。それをここで指定できます。\n通常、この接頭辞はウィキ名に基づきますが、「#」や「:」のような区切り文字を含めることはできません。",
+    "config-ns-invalid": "指定した名前空間「<nowiki>$1</nowiki>」は無効です。\n別のプロジェクト名前空間を指定してください。",
+    "config-admin-box": "管理アカウント",
+    "config-admin-name": "名前:",
+    "config-admin-password": "パスワード:",
+    "config-admin-password-confirm": "パスワードの再入力:",
+    "config-admin-help": "希望するユーザー名をここに入力してください (例:「Joe Bloggs」)。\nこの名前でこのウィキにログインすることになります。",
+    "config-admin-name-blank": "管理者のユーザー名を入力してください。",
+    "config-admin-name-invalid": "指定したユーザー名「<nowiki>$1</nowiki>」は無効です。\n別のユーザー名を指定してください。",
+    "config-admin-password-blank": "管理者アカウントのパスワードを入力してください。",
+    "config-admin-password-same": "ユーザー名と同じパスワードは使用できません。",
+    "config-admin-password-mismatch": "入力された2つのパスワードが一致しません。",
+    "config-admin-email": "メールアドレス:",
+    "config-admin-email-help": "メールアドレスを入力してください。他の利用者からのメールの受け取り、パスワードのリセット、ウォッチリストに登録したページの更新通知に使用します。空欄のままにすることもできます。",
+    "config-admin-error-user": "「<nowiki>$1</nowiki>」という名前の管理者を作成する際に内部エラーが発生しました。",
+    "config-admin-error-password": "管理者「<nowiki>$1</nowiki>」のパスワードを設定する際に内部エラーが発生しました: <pre>$2</pre>",
+    "config-admin-error-bademail": "無効なメールアドレスを入力しました。",
+    "config-subscribe": "[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce リリース告知のメーリングリスト]を購読する。",
+    "config-subscribe-help": "これは、リリースの告知 (重要なセキュリティに関する案内を含む) に使用される、流量が少ないメーリングリストです。\nこのメーリングリストを購読して、新しいバージョンが出た場合にMediaWikiを更新してください。",
+    "config-almost-done": "これでほぼ終わりました!\n残りの設定を飛ばして、ウィキを今すぐインストールできます。",
+    "config-optional-continue": "私にもっと質問してください。",
+    "config-optional-skip": "もう飽きてしまったので、とにかくウィキをインストールしてください。",
+    "config-profile": "利用者権限のプロファイル:",
+    "config-profile-wiki": "公開ウィキ",
+    "config-profile-no-anon": "アカウントの作成が必要",
+    "config-profile-fishbowl": "承認された編集者のみ",
+    "config-profile-private": "非公開ウィキ",
+    "config-profile-help": "ウィキは、できるだけ多くの人が編集できるようにすると最も優れた働きをします。\nMediaWikiでは、最近の更新を確認しやすく、神経質な、または悪意を持った利用者からの損害を簡単に差し戻せます。\n\nしかし一方で、MediaWikiは、さらにさまざまな形態での利用も優れていると言われています。また、時には、すべての人にウィキ手法の利点を説得させるのは容易ではないかもしれません。\nそこで、選択肢があります。\n\n「'''{{int:config-profile-wiki}}'''」モデルでは、ログインしなくても、誰でも編集できます。\n「'''{{int:config-profile-no-anon}}'''」なウィキでは、各編集に対してより強い説明責任を付与しますが、気軽な投稿を阻害するかもしれません。\n\n「'''{{int:config-profile-fishbowl}}'''」シナリオでは、承認された利用者のみが編集でき、一般の人はページ (とその履歴) を閲覧できます。\n「'''{{int:config-profile-private}}'''」では、承認された利用者のみがページを閲覧でき、そのグループが編集できます。\n\nより複雑な利用者権限の設定は、インストール後に設定できます。詳細は[//www.mediawiki.org/wiki/Manual:User_rights 関連するマニュアル]をご覧ください。",
+    "config-license": "著作権とライセンス:",
+    "config-license-none": "ライセンスのフッターを付けない",
+    "config-license-cc-by-sa": "クリエイティブ・コモンズ 表示-継承",
+    "config-license-cc-by": "クリエイティブ・コモンズ 表示",
+    "config-license-cc-by-nc-sa": "クリエイティブ・コモンズ 表示-非営利-継承",
+    "config-license-gfdl": "GNU フリー文書利用許諾契約書 1.3 以降",
+    "config-license-pd": "パブリック・ドメイン",
+    "config-license-cc-choose": "その他のクリエイティブ・コモンズ・ライセンスを選択する",
+    "config-license-help": "多くの公開ウィキでは、すべての寄稿物が[http://freedomdefined.org/Definition フリーライセンス]のもとに置かれています。\nこうすることにより、コミュニティによる共有の感覚が生まれ、長期的な寄稿が促されます。\n私的ウィキや企業のウィキでは、通常、フリーライセンスにする必要はありません。\n\nウィキペディアにあるテキストをあなたのウィキで利用し、逆にあなたのウィキにあるテキストをウィキペディアに複製することを許可したい場合には、'''クリエイティブ・コモンズ 表示-継承'''を選択するべきです。\n\nウィキペディアは以前、GNUフリー文書利用許諾契約書(GFDL)を使用していました。\nGFDLは有効なライセンスですが、内容を理解するのは困難です。\nまた、GFDLのもとに置かれているコンテンツの再利用も困難です。",
+    "config-email-settings": "メールの設定",
+    "config-enable-email": "メール送信を有効にする",
+    "config-enable-email-help": "メールを使用したい場合は、[http://www.php.net/manual/en/mail.configuration.php PHP のメール設定]が正しく設定されている必要があります。\nメールの機能を使用しない場合は、ここで無効にすることができます。",
+    "config-email-user": "利用者間のメールを有効にする",
+    "config-email-user-help": "設定で有効になっている場合、すべてのユーザーがお互いにメールのやりとりを行うことを許可する。",
+    "config-email-usertalk": "ユーザーのトークページでの通知を有効にする",
+    "config-email-usertalk-help": "設定で有効にしている場合は、ユーザーのトークページの変更の通知を受けることをユーザーに許可する。",
+    "config-email-watchlist": "ウォッチリストの通知を有効にする",
+    "config-email-watchlist-help": "利用者が設定で有効にしている場合、閲覧されたページに関する通知を受け取ることを許可する。",
+    "config-email-auth": "メールの認証を有効にする",
+    "config-email-auth-help": "この選択肢を有効にすると、利用者がメールアドレスを設定あるいは変更したときに送信されるリンクにより、そのアドレスを確認しなければならなくなります。\n認証済みのアドレスだけが、他の利用者からのメールや、変更通知のメールを受け取ることができます。\n公開ウィキでは、メール機能による潜在的な不正利用の防止のため、この選択肢を設定することが'''推奨'''されます。",
+    "config-email-sender": "返信先メールアドレス:",
+    "config-email-sender-help": "送信メールで返信先として使用するメールアドレスを入力してください。\nこのアドレスは、宛先不明の場合の通知の宛先になります。\n多くのメールサーバーでは、少なくともドメイン名部分は有効である必要があります。",
+    "config-upload-settings": "画像およびファイルのアップロード",
+    "config-upload-enable": "ファイルのアップロードを有効にする",
+    "config-upload-help": "ファイルのアップロードは、あなたのサーバーをセキュリティ上の潜在的な危険に晒します。\nこの詳細は、マニュアルの [//www.mediawiki.org/wiki/Manual:Security security section] をお読みください。\n\nファイルのアップロードを有効にするには、MediaWiki のルート ディレクトリ内の <code>images</code> サブ ディレクトリのモードを変更します。これにより、ウェブ サーバーがそこに書き込めるようになります。\nそして、このオプションを有効にしてください。",
+    "config-upload-deleted": "削除されたファイルのためのディレクトリ:",
+    "config-upload-deleted-help": "削除されるファイルを保存するためのディレクトリを選択してください。\nこれがウェブからアクセスできないことが理想です。",
+    "config-logo": "ロゴ のURL:",
+    "config-logo-help": "MediaWiki の既定の外装では、サイドバー上部に135x160ピクセルのロゴ用の余白があります。\n適切なサイズの画像をアップロードして、その URL をここに入力してください。\n\nロゴが相対パスの場合は、<code>$wgStylePath</code> や <code>$wgScriptPath</code> を使用できます。\n\nロゴが不要の場合は、この欄を空白のままにしてください。",
+    "config-instantcommons": "Instant Commons 機能を有効にする",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] は、[//commons.wikimedia.org/ ウィキメディア・コモンズ]のサイトにある画像、音声、その他のメディアをウィキ上で利用できるようにする機能です。\nこれを使用するには、MediaWiki がインターネットに接続できる必要があります。\n\nウィキメディア・コモンズ以外のウィキを同様に設定する手順など、この機能に関する詳細な情報は、[//mediawiki.org/wiki/Manual:$wgForeignFileRepos マニュアル]をご覧ください。",
+    "config-cc-error": "クリエイティブ・コモンズ・ライセンスの選択器から結果が得られませんでした。\nライセンスの名前を手動で入力してください。",
+    "config-cc-again": "もう一度選択してください...",
+    "config-cc-not-chosen": "希望するクリエイティブ・コモンズのライセンスを選択して、「続行」をクリックしてください。",
+    "config-advanced-settings": "高度な設定",
+    "config-cache-options": "オブジェクトのキャッシュの設定:",
+    "config-cache-help": "オブジェクトのキャッシュを使用すると、頻繁に使用するデータをキャッシュするため MediaWiki の動作速度を改善できます。\n中〜大規模サイトではこれを有効にすることを強くお勧めします。小規模サイトでも同様に効果があります。",
+    "config-cache-none": "キャッシングしない(機能は取り払われます、しかもより大きなウィキサイト上でスピードの問題が発生します)",
+    "config-cache-accel": "PHP オブジェクト キャッシュ (APC、XCache、WinCache のいずれか)",
+    "config-cache-memcached": "memcached を使用 (追加の設定が必要)",
+    "config-memcached-servers": "memcached サーバー:",
+    "config-memcached-help": "Memcachedを使用するIPアドレスの一覧。\nカンマ区切りで、利用する特定のポートの指定が必要です。例:\n127.0.0.1:11211\n192.168.1.25:1234",
+    "config-memcache-noport": "Memcached サーバー $1 で使用するポート番号を指定していません。\nポート番号が分からない場合、既定値は 11211 です。",
+    "config-memcache-badport": "Memcached のポート番号は $1 から $2 の範囲にしてください。",
+    "config-extensions": "拡張機能",
+    "config-extensions-help": "<code>./extensions</code>ディレクトリ内で、上記リストの拡張機能が発見されました。\n\nこれらは更に多くの設定を要求するかもしれませんが、今これらを有効にすることができます。",
+    "config-install-alreadydone": "'''警告:''' 既にMediaWikiがインストール済みで、再びインストールし直そうとしています。\n次のページへ進んでください。",
+    "config-install-begin": "「{{int:config-continue}}」を押すと、MediaWiki のインストールを開始できます。\n変更したい設定がある場合は、「{{int:config-back}}」を押してください。",
+    "config-install-step-done": "実行",
+    "config-install-step-failed": "失敗した",
+    "config-install-extensions": "拡張機能を含む",
+    "config-install-database": "データベースの構築",
+    "config-install-schema": "スキーマの作成",
+    "config-install-pg-schema-not-exist": "PostgreSQL スキーマがありません。",
+    "config-install-pg-schema-failed": "テーブルの作成に失敗しました。\n利用者「$1」がスキーマ「$2」に書き込めるようにしてください。",
+    "config-install-pg-commit": "変更を送信",
+    "config-pg-no-plpgsql": "データベース $1 内に PL/pgSQL 言語をインストールする必要があります。",
+    "config-install-user": "データベースユーザーの作成",
+    "config-install-user-alreadyexists": "ユーザー「$1」は既に存在します",
+    "config-install-user-create-failed": "ユーザー「$1」の作成に失敗しました: $2",
+    "config-install-user-grant-failed": "ユーザー「$1」に許可を与えることに失敗しました: $2",
+    "config-install-user-missing": "指定したユーザー「$1」は存在しません。",
+    "config-install-user-missing-create": "指定したユーザー「$1」は存在しません。\nアカウントを作成する場合は、下の「アカウント作成」をクリックしてください。",
+    "config-install-tables": "テーブルの作成",
+    "config-install-tables-exist": "'''警告:''' MediaWiki テーブルは既に存在するようです。\n作成を省略します。",
+    "config-install-tables-failed": "'''エラー:''' テーブルの作成が、以下のエラーにより失敗しました: $1",
+    "config-install-interwiki": "既定のウィキ間テーブルの導入",
+    "config-install-interwiki-list": "ファイル <code>interwiki.list</code> から読み取れませんでした。",
+    "config-install-interwiki-exists": "'''警告:''' ウィキ間テーブルは既に登録されているようです。\n既定のテーブルを無視します。",
+    "config-install-stats": "統計情報の初期化",
+    "config-install-keys": "秘密鍵の生成",
+    "config-install-sysop": "管理者のアカウントの作成",
+    "config-install-mainpage": "メインページを既定の内容で作成",
+    "config-install-mainpage-failed": "メインページを挿入できませんでした: $1",
+    "config-install-done": "'''おめでとうございます!'''\nMediaWikiのインストールに成功しました。\n\n<code>LocalSettings.php</code>ファイルが生成されました。\nこのファイルはすべての設定を含んでいます。\n\nこれをダウンロードして、ウィキをインストールした基準ディレクトリ (index.phpと同じディレクトリ) に設置する必要があります。ダウンロードは自動的に開始されるはずです。\n\nダウンロードが開始されていない場合、またはダウンロードをキャンセルした場合は、下記のリンクをクリックしてダウンロードを再開できます:\n\n$3\n\n'''注意:''' この生成された設定ファイルをダウンロードせずにインストールを終了すると、このファイルは利用できなくなります。\n\n上記の作業が完了すると、'''[$2 ウィキに入る]'''ことができます。",
+    "config-download-localsettings": "<code>LocalSettings.php</code> をダウンロード",
+    "config-help": "ヘルプ",
+    "config-nofile": "ファイル「$1」が見つかりませんでした。削除された可能性があります。",
+    "mainpagetext": "'''MediaWiki のインストールに成功しました。'''",
+    "mainpagedocfooter": "ウィキソフトウェアの使い方に関する情報は[//meta.wikimedia.org/wiki/Help:Contents 利用者案内]を参照してください。\n\n== はじめましょう ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings/ja 設定の一覧]\n* [//www.mediawiki.org/wiki/Manual:FAQ/ja MediaWiki よくある質問と回答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki リリース情報メーリングリスト]\n* [//www.mediawiki.org/wiki/Localisation/ja MediaWiki のあなたの言語へのローカライズ]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/jam.json b/includes/installer/i18n/jam.json
new file mode 100644 (file)
index 0000000..0dc7b24
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Yocahuna"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki don instaal soksesful.'''",
+    "mainpagedocfooter": "Kansolt di [//meta.wikimedia.org/wiki/Help:Contents User's Guide] fi infamieshan ou fi yuuz di wiki saafwier.\n\n== Taatop ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/jut.json b/includes/installer/i18n/jut.json
new file mode 100644 (file)
index 0000000..2b44373
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Huslåke"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki er nu installeret.'''",
+    "mainpagedocfooter": "Se vores engelskspråĝede [//meta.wikimedia.org/wiki/MediaWiki_localisation dokumentåsje tilpasnenge'm åf æ brugergrænseflade] og [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide æ brugervejlednenge] før åplysnenger åpsætnenge'm og anvendelse."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/jv.json b/includes/installer/i18n/jv.json
new file mode 100644 (file)
index 0000000..2c2c5df
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Prangkat empuk wiki wis suksès dipasang.'''",
+    "mainpagedocfooter": "Mangga maca [//meta.wikimedia.org/wiki/Help:Contents User's Guide] kanggo katrangan luwih langkung prakara panggunan prangkat empuk wiki\n== Miwiti panggunan  ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Daftar pangaturan préférènsi]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Milis rilis MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ka.json b/includes/installer/i18n/ka.json
new file mode 100644 (file)
index 0000000..26d9c4d
--- /dev/null
@@ -0,0 +1,82 @@
+{
+    "@metadata": {
+        "authors": [
+            "David1010"
+        ]
+    },
+    "config-information": "ინფორმაცია",
+    "config-your-language": "თქვენი ენა:",
+    "config-wiki-language": "ვიკის ენა:",
+    "config-back": "← უკან",
+    "config-continue": "გაგრძელება →",
+    "config-page-language": "ენა",
+    "config-page-welcome": "კეთილი იყოს თქვენი მობრძანება მედიავიკიში!",
+    "config-page-dbconnect": "მონაცემთა ბაზასთან დაკავშირება",
+    "config-page-dbsettings": "მონაცემთა ბაზის კონფიგურაცია",
+    "config-page-name": "სახელი",
+    "config-page-options": "პარამეტრები",
+    "config-page-install": "ინსტალაცია",
+    "config-page-complete": "დასრულებულია!",
+    "config-page-restart": "ინსტალაციის თავიდან დაწყება",
+    "config-page-readme": "წამიკითხე",
+    "config-page-copying": "ლიცენზია",
+    "config-page-upgradedoc": "განახლება",
+    "config-restart": "დიახ, თავიდან დაიწყეთ",
+    "config-sidebar": "* [//www.mediawiki.org მედიავიკის ვებ-გვერდი]\n* [//www.mediawiki.org/wiki/Help:Contents/ka მომხმარებლების დახმარება]\n* [//www.mediawiki.org/wiki/Manual:Contents/ka ადმინისტრატორების დახმარება]\n* [//www.mediawiki.org/wiki/Manual:FAQ/ka FAQ]\n----\n* <doclink href=Readme>წამიკითხე</doclink>\n* <doclink href=ReleaseNotes>ინფორმაცია გამოშვებაზე</doclink>\n* <doclink href=Copying>ლიცენზია</doclink>\n* <doclink href=UpgradeDoc>განახლება</doclink>",
+    "config-db-type": "მონაცემთა ბაზის ტიპი:",
+    "config-db-host-oracle": "მონაცემთა ბაზის TNS:",
+    "config-db-name": "მონაცემთა ბაზის სახელი:",
+    "config-db-name-oracle": "მონაცემთა ბაზის სქემა:",
+    "config-db-username": "მონაცემთა ბაზის მომხმარებლის სახელი:",
+    "config-db-password": "მონაცემთა ბაზის პაროლი:",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 ორობითი",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-db-port": "მონაცემთა ბაზის პორტი:",
+    "config-db-schema": "მედიავიკის სქემა:",
+    "config-header-mysql": "MySQL-ის პარამეტრები",
+    "config-header-postgres": "PostgreSQL-ის პარამეტრები",
+    "config-header-sqlite": "SQLite-ის პარამეტრები",
+    "config-header-oracle": "Oracle-ის პარამეტრები",
+    "config-invalid-db-type": "არასწორი მონაცემთა ბაზის ტიპი",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-binary": "ორობითი",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "ვიკის სახელი:",
+    "config-site-name-blank": "შეიყვანეთ ვებ-გვერდის სახელი.",
+    "config-project-namespace": "პროექტის სახელთა სივრცე:",
+    "config-ns-generic": "პროექტი",
+    "config-ns-other": "სხვა (მიუთითეთ)",
+    "config-ns-other-default": "ჩემი ვიკი",
+    "config-admin-box": "ადმინისტრატორის ანგარიში",
+    "config-admin-name": "თქვენი სახელი:",
+    "config-admin-password": "პაროლი:",
+    "config-admin-password-confirm": "პაროლი ხელმეორედ:",
+    "config-admin-name-blank": "შეიყვანეთ ადმინისტრატორის მომხმარებლის სახელი.",
+    "config-admin-email": "ელ. ფოსტის მისამართი:",
+    "config-profile": "მომხმარებელთა უფლებების პროფილი:",
+    "config-profile-wiki": "ღია ვიკი",
+    "config-profile-private": "დახურული ვიკი",
+    "config-license": "საავტორო უფლები და ლიცენზია:",
+    "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
+    "config-license-cc-by": "Creative Commons Attribution",
+    "config-license-cc-by-nc-sa": "Creative Commons Attribution Non-Commercial Share Alike",
+    "config-license-cc-0": "Creative Commons Zero (საზოგადოებრივი საკუთრება)",
+    "config-license-gfdl": "GNU Free Documentation License 1.3 ან უფრო გვიანი",
+    "config-license-pd": "საზოგადოებრივი საკუთრება",
+    "config-license-cc-choose": "აირჩიეთ Creative Commons-ის ლიცენზიიდან ერთ-ერთი",
+    "config-email-settings": "ელ. ფოსტის პარამეტრები",
+    "config-upload-settings": "სურათებისა და ფაილების ატვირთვა",
+    "config-upload-enable": "ფაილების ატვირთვის ჩართვა",
+    "config-logo": "ლოგოს URL:",
+    "config-cc-again": "აირჩიეთ კიდევ ერთხელ...",
+    "config-extensions": "გაფართოებები",
+    "config-install-step-done": "შესრულდა",
+    "config-install-step-failed": "ვერ მოხერხდა",
+    "config-install-tables": "ცხრილების შექმნა",
+    "config-install-interwiki-list": "ვერ მოიძებნა ფაილი <code>interwiki.list</code>.",
+    "config-download-localsettings": "<code>LocalSettings.php</code>-ის გადმოწერა",
+    "config-help": "დახმარება",
+    "mainpagetext": "'''მედიავიკი წარმატებით ჩაიტვირთა.'''",
+    "mainpagedocfooter": "ვიკი პროგრამის გამოყენების ინფორმაციისთვის იხილეთ [//meta.wikimedia.org/wiki/Help:Contents მომხმარებლის მეგზური].\n\n== დაწყება ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings კონფიგურაციის მაჩვენებლების სია]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce მედიავიკის გამოცემის დაგზავნის სია]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources მედიავიკის ლოკალიზება თქვენ ენაზე]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/kaa.json b/includes/installer/i18n/kaa.json
new file mode 100644 (file)
index 0000000..7130f61
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki tabıslı ornatıldı.'''",
+    "mainpagedocfooter": "Wiki bag'darlamasın qollanıw haqqındag'i mag'lıwmat usın [//meta.wikimedia.org/wiki/Help:Contents Paydalanıwshılar qollanbasınan] ken'es alın'.\n\n== Baslaw ushın ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Konfiguratsiya sazlaw dizimi]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWikidin' Ko'p Soralatug'ın Sorawları]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki haqqında xat tarqatıw dizimi]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/kbd-cyrl.json b/includes/installer/i18n/kbd-cyrl.json
new file mode 100644 (file)
index 0000000..2ed0349
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Bogups"
+        ]
+    },
+    "mainpagetext": "'''«MediaWiki» узыншу хэгъува.'''",
+    "mainpagedocfooter": "Мы виким и лэжьыгъэ хъыбархэр здэбгъуэтыфынур [//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 дэӀэпыкъуэгъу тхылъым].\n\n\n== Къыщхьэпэгъуэ хъуфынухэр ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Зэгъэзэхуэгъуэ гуэрэхэм я тхылъ];\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-м упщӀэ нахъыбу ятхэмрэ я жэуапхэмрэ];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-м и версиэ щӀэуэ къэжахэм я къэӀохугъуэ]."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/khw.json b/includes/installer/i18n/khw.json
new file mode 100644 (file)
index 0000000..16e34d5
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "@metadata": {
+        "authors": [
+            "Rachitrali"
+        ]
+    },
+    "mainpagetext": "'''میڈیاوکیو کامیابیو سورا چالو کورونو بیتی شیر۔.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/kiu.json b/includes/installer/i18n/kiu.json
new file mode 100644 (file)
index 0000000..01f0bfe
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Mirzali"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki fist ra ser, vıraziya.'''",
+    "mainpagedocfooter": "Serba melumatê gurenaena ''wiki software''i [//meta.wikimedia.org/wiki/Help:Contents İdarê karberi] de mıracaet ke.\n\n== Gamê verêni ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista ayarunê vırastene]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki de ÇZP]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki ra lista serbest-daena postey]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/kk-arab.json b/includes/installer/i18n/kk-arab.json
new file mode 100644 (file)
index 0000000..c111678
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''مەدىياۋىيكىي بۋماسى ٴساتتى ورناتىلدى.'''",
+    "mainpagedocfooter": "ۋىيكىي باعدارلامالىق جاساقتاماسىن قالاي قولداناتىن اقپاراتى ٴۇشىن [//meta.wikimedia.org/wiki/Help:Contents پايدالانۋشىلىق نۇسقاۋلارىنان] كەڭەس الىڭىز.\n\n== باستاۋ ٴۇشىن ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings باپتالىم قالاۋلارىنىڭ ٴتىزىمى]\n* [//www.mediawiki.org/wiki/Manual:FAQ مەدىياۋىيكىيدىڭ جىيى قويىلعان ساۋالدارى]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce مەدىياۋىيكىي شىعۋ تۋرالى حات تاراتۋ ٴتىزىمى]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/kk-cyrl.json b/includes/installer/i18n/kk-cyrl.json
new file mode 100644 (file)
index 0000000..9b0f94f
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''МедиаУики бумасы сәтті орнатылды.'''",
+    "mainpagedocfooter": "Уики бағдарламалық жасақтамасын қалай қолданатын ақпараты үшін [//meta.wikimedia.org/wiki/Help:Contents Пайдаланушылық нұсқауларынан] кеңес алыңыз.\n\n== Бастау үшін ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Бапталым қалауларының тізімі]\n* [//www.mediawiki.org/wiki/Manual:FAQ МедиаУикидің Жиы Қойылған Сауалдары]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce МедиаУики шығу туралы хат тарату тізімі]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/kk-latn.json b/includes/installer/i18n/kk-latn.json
new file mode 100644 (file)
index 0000000..21cc1ee
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MedïaWïkï bwması sätti ornatıldı.'''",
+    "mainpagedocfooter": "Wïkï bağdarlamalıq jasaqtamasın qalaý qoldanatın aqparatı üşin [//meta.wikimedia.org/wiki/Help:Contents Paýdalanwşılıq nusqawlarınan] keñes alıñız.\n\n== Bastaw üşin ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Baptalım qalawlarınıñ tizimi]\n* [//www.mediawiki.org/wiki/Manual:FAQ MedïaWïkïdiñ Jïı Qoýılğan Sawaldarı]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MedïaWïkï şığw twralı xat taratw tizimi]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/km.json b/includes/installer/i18n/km.json
new file mode 100644 (file)
index 0000000..9f06065
--- /dev/null
@@ -0,0 +1,25 @@
+{
+    "@metadata": {
+        "authors": [
+            "Thearith",
+            "គីមស៊្រុន"
+        ]
+    },
+    "config-your-language": "ភាសារបស់អ្នក៖",
+    "config-your-language-help": "ជ្រើសយកភាសាដើម្បីប្រើក្នុងពេលតំលើង។",
+    "config-wiki-language": "ភាសាវិគី៖",
+    "config-wiki-language-help": "ជ្រើសរើសភាសាដែលវិគីនេះប្រើជាចំបង។",
+    "config-back": "← ត្រលប់ក្រោយ",
+    "config-continue": "បន្ត →",
+    "config-page-language": "ភាសា",
+    "config-page-welcome": "មេឌាវិគីសូមស្វាគមន៍!",
+    "config-page-dbconnect": "ភ្ជាប់ទៅមូលដ្ឋានទិន្នន័យ",
+    "config-page-name": "ឈ្មោះ",
+    "config-page-options": "ជំរើស",
+    "config-page-install": "តំលើង",
+    "config-page-complete": "បញ្ចប់!",
+    "config-page-restart": "តំលើងឡើងវិញ",
+    "config-help": "ជំនួយ",
+    "mainpagetext": "'''មេឌាវិគីត្រូវបានដំឡើងសំរេចហើយ​។'''",
+    "mainpagedocfooter": "សូមពិនិត្យមើល [//meta.wikimedia.org/wiki/ជំនួយ​៖ ខ្លឹមសារ​ណែនាំ​ប្រើប្រាស់]សម្រាប់​ព័ត៌មាន​​បន្ថែមចំពោះ​ការប្រើប្រាស់ ផ្នែកទន់វិគី​។\n\n== ចាប់ផ្ដើមជាមួយមេឌាវិគី ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings បញ្ជីកំណត់ទម្រង់]\n* [//www.mediawiki.org/wiki/Manual:FAQ/km សំណួរញឹកញាប់​មេឌាវិគី]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce បញ្ជី​ពិភាក្សា​ការផ្សព្វផ្សាយ​របស់​មេឌាវិគី]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/kn.json b/includes/installer/i18n/kn.json
new file mode 100644 (file)
index 0000000..69cc7a6
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''ವಿಕಿ ತಂತ್ರಾಂಶವನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಅನುಸ್ಥಾಪಿಸಲಾಯಿತು.'''",
+    "mainpagedocfooter": "ವಿಕಿ ತಂತ್ರಾಂಶವನ್ನು ಬಳಸುವ ಬಗ್ಗೆ ಮಾಹಿತಿಗೆ [//meta.wikimedia.org/wiki/Help:Contents ಬಳಕೆದಾರರಿಗೆ ನಿರ್ದೇಶನ ಪುಟ] ನೋಡಿ.\n\n== ಪ್ರಾರಂಭಿಸುವುದು ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ ಮೀಡಿಯವಿಕಿ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ko.json b/includes/installer/i18n/ko.json
new file mode 100644 (file)
index 0000000..c01c793
--- /dev/null
@@ -0,0 +1,307 @@
+{
+    "@metadata": {
+        "authors": [
+            "Kwj2772",
+            "아라"
+        ]
+    },
+    "config-desc": "미디어위키 설치 프로그램",
+    "config-title": "MediaWiki $1 설치",
+    "config-information": "정보",
+    "config-localsettings-upgrade": "<code>LocalSettings.php</code> 파일을 감지했습니다.\n이 설치를 업그레이드하려면 아래 상자에 <code>$wgUpgradeKey</code>의 값을 입력하세요.\n<code>LocalSettings.php</code>에 찾을 수 있습니다.",
+    "config-localsettings-cli-upgrade": "<code>LocalSettings.php</code> 파일을 감지했습니다.\n이 설치를 업그레이드하려면 <code>update.php</code>를 대신 실행하세요",
+    "config-localsettings-key": "업그레이드 키:",
+    "config-localsettings-badkey": "제공한 키가 잘못되었습니다.",
+    "config-upgrade-key-missing": "미디어위키의 기존 설치가 감지되었습니다.\n이 설치를 업그레이드하려면 <code>LocalSettings.php</code>의 아래에 다음 줄을 넣으세요:\n\n$1",
+    "config-localsettings-incomplete": "기존 <code>LocalSettings.php</code>가 완전하지 않은 것 같습니다.\n$1 변수가 설정되어 있지 않습니다.\n이 변수가 설정되도록 <code>LocalSettings.php</code>를 바꾸고 \"{{int:Config-continue}}\"을 클릭하세요.",
+    "config-localsettings-connection-error": "<code>LocalSettings.php</code> 또는 <code>AdminSettings.php</code>에 지정한 설정을 사용하여 데이터베이스에 연결할 때 오류가 발생했습니다. 이러한 설정을 수정하고 다시 시도하세요.\n\n$1",
+    "config-session-error": "세션 시작 오류: $1",
+    "config-session-expired": "세션 데이터가 만료된 것 같습니다.\n세션은 $1의 작동 시간 동안 구성됩니다.\nphp.ini에 있는 <code>session.gc_maxlifetime</code>에서 설정해 이를 증가시킬 수 있습니다.\n설치 과정을 다시 시작합니다.",
+    "config-no-session": "세션 데이터가 없어졌습니다!\nphp.ini를 확인하고 <code>session.save_path</code>가 적절한 디렉토리로 설정되어 있는지 확인하세요.",
+    "config-your-language": "설치 언어:",
+    "config-your-language-help": "설치 과정에서 사용할 언어를 선택하세요.",
+    "config-wiki-language": "위키 언어:",
+    "config-wiki-language-help": "위키에 주로 작성될 언어를 선택하세요.",
+    "config-back": "← 뒤로",
+    "config-continue": "계속 →",
+    "config-page-language": "언어",
+    "config-page-welcome": "미디어위키에 오신 것을 환영합니다!",
+    "config-page-dbconnect": "데이터베이스에 연결",
+    "config-page-upgrade": "기존 설치 업그레이드",
+    "config-page-dbsettings": "데이터베이스 설정",
+    "config-page-name": "이름",
+    "config-page-options": "설정",
+    "config-page-install": "설치",
+    "config-page-complete": "완료!",
+    "config-page-restart": "설치 다시 시작",
+    "config-page-readme": "읽어보기",
+    "config-page-releasenotes": "배포 노트",
+    "config-page-copying": "전문",
+    "config-page-upgradedoc": "업그레이드하기",
+    "config-page-existingwiki": "기존 위키",
+    "config-help-restart": "입력한 모든 저장된 데이터를 지우고 설치 과정을 다시 시작하겠습니까?",
+    "config-restart": "예, 다시 시작합니다",
+    "config-welcome": "=== 사용 환경 검사 ===\n기본 검사는 지금 이 환경이 미디어위키 설치에 적합한지 수행합니다.\n설치를 완료하는 방법에 대한 지원을 찾는다면 이 정보를 포함해야 하는 것을 기억하세요.",
+    "config-copyright": "=== 저작권 및 이용 약관 ===\n\n$1\n\n이 프로그램은 자유 소프트웨어입니다. 당신은 자유 소프트웨어 재단이 발표한 GNU 일반 공중 사용 허가서 버전 2나 그 이후 버전에 따라 이 프로그램을 재배포하거나 수정할 수 있습니다.\n\n이 프로그램이 유용하게 사용될 수 있기를 바라지만 '''상용으로 사용'''되거나 '''특정 목적에 맞을 것'''이라는 것을 '''보증하지 않습니다'''.\n자세한 내용은 GNU 일반 공중 사용 허가서를 참고하십시오.\n\n당신은 이 프로그램을 통해 <doclink href=Copying>GNU 일반 공중 사용 허가서 전문</doclink>을 받았습니다. 그렇지 않다면, Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA로 편지를 보내주시거나 [http://www.gnu.org/copyleft/gpl.html 온라인으로 읽어보시기] 바랍니다.",
+    "config-sidebar": "* [//www.mediawiki.org 미디어위키 홈]\n* [//www.mediawiki.org/wiki/Help:Contents 사용자 가이드]\n* [//www.mediawiki.org/wiki/Manual:Contents 관리자 가이드]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>읽어보기</doclink>\n* <doclink href=ReleaseNotes>배포 노트</doclink>\n* <doclink href=Copying>전문</doclink>\n* <doclink href=UpgradeDoc>업그레이드하기</doclink>",
+    "config-env-good": "환경이 확인되었습니다.\n미디어위키를 설치할 수 있습니다.",
+    "config-env-bad": "환경이 확인되었습니다.\n미디어위키를 설치할 수 없습니다.",
+    "config-env-php": "PHP $1(이)가 설치되었습니다.",
+    "config-env-php-toolow": "PHP $1(이)가 설치되었습니다.\n하지만 미디어위키는 PHP $2 이상이 필요합니다.",
+    "config-unicode-using-utf8": "유니코드 정규화에 Brion Vibber의 utf8_normalize.so를 사용합니다.",
+    "config-unicode-using-intl": "유니코드 정규화에 [http://pecl.php.net/intl intl PECL 확장 기능]을 사용합니다.",
+    "config-unicode-pure-php-warning": "'''경고''': 유니코드 정규화를 처리할 [http://pecl.php.net/intl intl PECL 확장 기능]을 사용할 수 없기 때문에 느린 순수한 PHP 구현을 대신 사용합니다.\n높은 트래픽 사이트에서 실행하려면 [//www.mediawiki.org/wiki/Unicode_normalization_considerations 유니코드 정규화]를 읽어보시기 바랍니다.",
+    "config-unicode-update-warning": "'''경고''': 유니코드 정규화 래퍼의 설치된 버전은 [http://site.icu-project.org/ ICU 프로젝트]의 라이브러리의 이전 버전을 사용합니다.\n만약 유니코드를 사용하는 것에 대해 우려가 된다면 [//www.mediawiki.org/wiki/Unicode_normalization_considerations 업그레이드]해야합니다.",
+    "config-no-db": "적절한 데이터베이스 드라이버를 찾을 수 없습니다! PHP에 데이터베이스 드라이버를 설치해야 합니다.\n다음 데이터베이스 유형을 지원합니다 : $1.\n\n공유하는 호스팅을 사용하고 있다면 적절한 데이터베이스 드라이버를 설치하도록 호스팅 제공 업체에 문의하세요.\nPHP를 직접 컴파일했다면 예를 들어 <code>./configure --with-mysql</code>을 사용하여 데이터베이스 클라이언트를 활성화하도록 다시 설정하세요.\n데비안이나 우분트 패키지에서 PHP를 설치했다면 php-mysql 모듈도 설치해야 합니다.",
+    "config-outdated-sqlite": "'''경고''': SQLite 필요한 최소 $2 버전보다 낮은 $1(이)가 있습니다. SQLite는 사용할 수 없습니다.",
+    "config-no-fts3": "'''경고''': SQLite는 [//sqlite.org/fts3.html FTS3 모듈] 없이 컴파일되어, 검색 기능은 백엔드에 사용할 수 없습니다.",
+    "config-register-globals": "'''경고: PHP의 <code>[http://php.net/register_globals register_globals]</code> 옵션이 활성화되어 있습니다.'''\n'''가능하면 이를 비활성화하십시오.'''\n미디어위키는 작동하지만 서버에 잠재적인 보안 취약점이 노출됩니다.",
+    "config-magic-quotes-runtime": "'''치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]이 활성합니다!'''\n이 옵션은 데이터를 입력하는 데 예기치 않는 손상이 일어납니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
+    "config-magic-quotes-sybase": "'''치명: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]이 활성합니다!'''\n이 옵션은 데이터를 입력하는 데 예기치 않는 손상이 일어납니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
+    "config-mbstring": "'''치명: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]이 활성합니다!'''\n이 옵션은 오류가 발생하고 데이터를 입력하는 데 예기치 않는 손상이 일어날 수 있습니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
+    "config-ze1": "'''치명: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]이 활성합니다!'''\n이 옵션은 미디어위키에 심간한 버그를 일으킵니다.\n이 옵션을 비활성화하지 않는 한 미디어위키를 설치하고 사용할 수 없습니다.",
+    "config-safe-mode": "'''경고:''' [http://www.php.net/features.safe-mode 안전 모드]이 활성합니다!\n특히 파일을 올리거나 <code>math</code>를 지원하는 데 문제가 발생할 수 있습니다.",
+    "config-xml-bad": "PHP의 XML 모듈이 없습니다.\n미디어위키는 이 모듈의 기능이 필요하며 이 설정에서는 작동하지 않습니다.\nMandrake를 실행하고 있다면 php-xml 패키지를 설치하세요.",
+    "config-pcre": "PCRE 지원 모듈이 없는 것 같습니다.\n미디어위키는 Perl 호환 정규 표현식을 작동시켜야 합니다.",
+    "config-pcre-no-utf8": "'''치명''': PHP의 PCRE 모듈은 RCRE_UTF8 지원 없이 컴파일된 것 같습니다.\n미디어위키가 제대로 작동하려면 UTF-8 지원이 필요합니다.",
+    "config-memory-raised": "PHP의 <code>memory_limit</code>는 $1이며 $2(으)로 늘리세요.",
+    "config-memory-bad": "'''경고:''' PHP의 <code>memory_limit</code>는 $1입니다.\n아마도 너무 낮은 것 같습니다.\n설치가 실패할 수 있습니다!",
+    "config-ctype": "'''치명''': PHP는 [http://www.php.net/manual/en/ctype.installation.php Ctype 확장 기능]에 대해 지원하여 컴파일해야 합니다.",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache]가 설치되었습니다",
+    "config-apc": "[http://www.php.net/apc APC]가 설치되었습니다",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache]가 설치되었습니다",
+    "config-no-cache": "'''경고:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] 또는 [http://www.iis.net/download/WinCacheForPhp WinCache]를 찾을 수 없습니다.\n개체 캐싱을 활성화하지 않습니다.",
+    "config-mod-security": "'''경고''': 웹 서버에 [http://modsecurity.org/ mod_security]가 허용되었습니다. 잘못 설정된 경우 미디어위키나 사용자가 임의의 콘텐츠를 게시할 수 있는 다른 소프트웨어에 대한 문제를 일으킬 수 있습니다.\n[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>.\n올리기를 활성화할 경우 그림 섬네일이 활성화됩니다.",
+    "config-gd": "내장된 GD 그래픽 라이브러리를 찾았습니다.\n올리기를 활성화할 경우 그림 섬네일이 활성화됩니다.",
+    "config-no-scaling": "GD 라이브러리나 ImageMagick를 찾을 수 없습니다.\n그림 섬네일이 비활성화됩니다.",
+    "config-no-uri": "'''오류:''' 현재 URI를 확인할 수 없습니다.\n설치가 중단되었습니다.",
+    "config-no-cli-uri": "'''경고''': 기본값을 사용하여 --scriptpath를 지정하지 않았습니다: <code>$1</code>.",
+    "config-using-server": "\"<nowiki>$1</nowiki>\"(을)를 서버 이름으로 사용합니다.",
+    "config-using-uri": "\"<nowiki>$1$2</nowiki>\"(을)를 서버 URL로 사용합니다.",
+    "config-uploads-not-safe": "'''경고:''' 올리기에 대한 기본 디렉터리(<code>$1</code>)는 임의의 스크립트 실행에 취약합니다.\n미디어위키는 보안 위협에 대한 모든 올린 파일을 검사하지만, 올리기를 활성화하기 전에 [//www.mediawiki.org/wiki/Manual:Security#Upload_security 이 보안 취약점을 해결할 것]을 매우 권장합니다.",
+    "config-no-cli-uploads-check": "'''경고:''' 올리기에 대한 기본 디렉터리(<code>$1</code>)는 CLI를 설치하는 동안 임의의 스크립트 실행에 대한 취약점에 대해 검사되지 않습니다.",
+    "config-brokenlibxml": "시스템에 버그가 있는 PHP와 libxml2의 조합이 있으며 미디어위키나 다른 웹 어플리케이션에 숨겨진 데이터 손상을 일으킬 수 있습니다.\nPHP 5.2.9 이후와 libxml2 2.7.3 이후로 업그레이드하세요. ([//bugs.php.net/bug.php?id=45996 PHP에 제기한 버그])\n설치가 중단되었습니다.",
+    "config-using531": "미디어위키는 <code>__call()</code>을 참고로 매개 변수를 포함하는 버그로 인해 PHP $1(와)과 함께 사용할 수 없습니다.\n문제를 해결하려면 PHP 5.3.2 이상로 업그레이드하거나 PHP 5.3.0으로 다운그레이드를 하세요.\n설치가 중단되었습니다.",
+    "config-suhosin-max-value-length": "수호신(Suhosin)이 설치되었고 $1 바이트로 GET 매개 변수인 <code>length</code>를 제한하고 있습니다.\n미디어위키의 ResourceLoader 구성 요소는 이 제한을 해결하지만 성능이 저하됩니다.\n가능하면 <code>php.ini</code>의 <code>suhosin.get.max_value_length</code>에 1024 이상으로 설정하고 <code>LocalSettings.php</code>의 <code>$wgResourceLoaderMaxQueryLength</code>에 같은 값을 설정해야 합니다.",
+    "config-db-type": "데이터베이스 종류:",
+    "config-db-host": "데이터베이스 호스트:",
+    "config-db-host-help": "데이터베이스 서버가 다른 서버에 있으면 여기에 호스트 이름이나 IP 주소를 입력하세요.\n\n공유하는 웹 호스팅을 사용하고 있으면 호스팅 제공 업체는 호스트 이름을 설명하고 있을 것입니다.\n\n윈도 서버에 설치하고 MySQL을 사용하면 \"localhost\"는 서버 이름으로 작동하지 않을 수 있습니다. 그렇게 된다면 로컬 IP 주소로 \"127.0.0.1\"를 시도하세요.\n\nPostgreSQL을 사용하면 유닉스 소켓을 통해 연결되도록 입력란을 비워두세요.",
+    "config-db-host-oracle": "데이터베이스 TNS:",
+    "config-db-host-oracle-help": "올바른 [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm 로컬 연결 이름]을 입력하세요. tnsnames.ora 파일이 이 설치에 보여야 합니다.<br />10g 이후의 클라이언트 라이브러리를 사용하는 경우 [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm 쉬운 연결] 네이밍 메소드도 사용할 수 있습니다.",
+    "config-db-wiki-settings": "이 위키 식별",
+    "config-db-name": "데이터베이스 이름:",
+    "config-db-name-help": "위키를 식별하기 위한 이름을 선택하세요.\n공백이 없어야 합니다.\n\n공유하는 웹 호스팅 사용하면 호스팅 제공 업체가 특정 데이터베이스 이름을 제공하거나 관리 패널에서 데이터베이스를 만들 수 있습니다.",
+    "config-db-name-oracle": "데이터베이스 스키마:",
+    "config-db-account-oracle-warn": "데이터베이스 백엔드로 오라클을 설치하기 위해 지원하는 세 가지 시나리오가 있습니다:\n\n설치 과정의 일부로 데이터베이스 계정을 만들려면 설치를 위해 데이터베이스 계정으로 SYSDBA 역할을 가진 계정을 제공하고 웹 접근 계정에 대해 원하는 자격 증명을 지정하세요, 그렇지 않으면 수동으로 웹 접근 계정을 만들 수 있으며 (필요한 경우 권한 스키마 개체를 만들어야 합니다) 또는 다른 계정 두 개를 만들고 권한을 가진 하나의 웹 접근을 위한 제한된 하나를 제공할 수 있습니다.\n\n필요한 권한을 가진 계정을 만드는 스크립트는 이 설치의 \"maintenance/oracle/\" 디렉토리에서 찾을 수 있습니다. 제한된 계정을 사용하면 기본 계정으로 모든 관리 기능을 비활성화할 것을 유의하십시오.",
+    "config-db-install-account": "설치를 위한 사용자 계정",
+    "config-db-username": "데이터베이스 사용자 이름:",
+    "config-db-password": "데이터베이스 비밀번호:",
+    "config-db-password-empty": "새 데이터베이스 사용자의 비밀번호를 입력하세요: $1.\n비밀번호 없이 사용자를 만들 수도 있지만 안전하지 않습니다.",
+    "config-db-install-username": "설치 과정 중에 데이터베이스에 연결할 때 사용할 사용자 이름을 입력하세요.\n미디어위키 계정의 사용자 이름이 아닌 데이터베이스에 대한 사용자 이름입니다.",
+    "config-db-install-password": "설치 과정 중에 데이터베이스에 연결할 때 사용할 비밀번호을 입력하세요.\n미디어위키 계정의 비밀번호가 아닌 데이터베이스에 대한 비밀번호입니다.",
+    "config-db-install-help": "설치 과정 중에 데이터베이스에 연결할 때 사용할 사용자 이름과 비밀번호를 입력하세요.",
+    "config-db-account-lock": "정상적으로 작동하는 동안 같은 사용자 이름과 비밀번호를 사용함",
+    "config-db-wiki-account": "정상적인 작동을 위한 사용자 계정",
+    "config-db-wiki-help": "정상적인 위키 작업 동안 데이터베이스에 연결하는 데 사용할 사용자 이름과 비밀 번호를 입력하세요.\n계정이 존재하지 않고 설치 계정에 충분한 권한이 있는 경우 이 사용자 계정은 위키를 작동하는 데 필요한 최소 권한으로 만들어집니다.",
+    "config-db-prefix": "데이터베이스 테이블 접두어:",
+    "config-db-prefix-help": "여러 위키 사이 또는 미디어위키와 다른 웹 응용 프로그램 사이에서 하나의 데이터베이스를 공유해야 하는 경우, 충돌을 피하기 위해 모든 테이블 이름에 접두어를 추가하도록 선택할 수 있습니다.\n공백을 사용하지 마세요.\n\n이 필드는 일반적으로 비어있습니다.",
+    "config-db-charset": "데이터베이스 문자 집합",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 바이너리",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 UTF-8 하위 호환성",
+    "config-charset-help": "'''경고:''' MySQL 4.1에서 '''UTF-8 하위 호환성'''을 사용하고 나서 <code>mysqldump</code>로 데이터베이스에 백업한다면 모든 ASCII가 아닌 문자를 파괴하고 손상한 백업을 되돌릴 수 없습니다!\n\n'''바이너리 모드'''에서는 미디어위키는 바이너리 필드의 데이터베이스에 UTF-8 텍스트를 저장합니다.\nMySQL의 UTF-8 모드를 보다 더 효율적이고 유니코드 문자의 전체 범위를 사용할 수 있습니다.\n'''UTF-8 모드'''에서는 MySQL은 데이터를 설정하는 문자 집합을 알고 있기 때문에 적절하게 표현하고 변환할 수 있지만\n[//ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_%ED%8F%89%EB%A9%B4#.EA.B8.B0.EB.B3.B8_.EB.8B.A4.EA.B5.AD.EC.96.B4_.ED.8F.89.EB.A9.B4 기본 다국어 평면] 밖의 문자를 저장할 수 없습니다.",
+    "config-mysql-old": "MySQL $1 이상이 필요하나 $2(이)가 있습니다.",
+    "config-db-port": "데이터베이스 포트:",
+    "config-db-schema": "미디어위키에 대한 스키마:",
+    "config-db-schema-help": "보통 이 스키마는 문제가 없습니다.\n필요한 경우에만 바꾸세요.",
+    "config-pg-test-error": "'''$1''' 데이터베이스에 연결할 수 없습니다: $2",
+    "config-sqlite-dir": "SQLite 데이터 디렉터리:",
+    "config-sqlite-dir-help": "SQLite는 하나의 파일에 모든 데이터를 저장합니다.\n\n제공하는 디렉토리는 설치하는 동안 웹 서버가 쓸 수 있어야 합니다.\n\n이 디렉토리는 웹을 통해 접근할 수 '''없어야''' 하는데 PHP 파일이 있는 곳에 넣을 수 없는 것은 이 때문입니다.\n\n설치 프로그램은 <code>.htaccess</code> 파일을 작성하지만 이것이 실패하면 누군가가 원본 데이터베이스에 접근할 수 있습니다.\n데이터베이스는 원본 사용자 데이터(이메일 주소, 해시한 비밀번호) 뿐만 아니라 삭제된 판과 위키의 다른 제한된 데이터를 포함합니다.\n\n예를 들어 <code>/var/lib/mediawiki/yourwiki</code>와 같이 다른 곳에 데이터베이스를 넣는 것이 좋습니다.",
+    "config-oracle-def-ts": "기본 테이블공간:",
+    "config-oracle-temp-ts": "임시 테이블공간:",
+    "config-type-oracle": "Oracle",
+    "config-support-info": "미디어위키는 다음의 데이터베이스 시스템을 지원합니다:\n\n$1\n\n데이터베이스 시스템이 표시되지 않을 때 아래에 나열된 다음 지원을 활성화하려면 위의 링크된 지시에 따라 설치해볼 수 있습니다.",
+    "config-support-mysql": "* $1은 미디어위키의 기본 대상으로 가장 잘 지원합니다. ([http://www.php.net/manual/en/mysql.installation.php MySQL을 지원하여 PHP를 컴파일하는 방법])",
+    "config-support-postgres": "* $1은 MySQL의 대안으로 인기 있는 오픈 소스 데이터베이스 시스템입니다. ([http://www.php.net/manual/en/pgsql.installation.php PostgreSQL을 지원하여 PHP를 컴파일하는 방법]) 몇가지 사소한 해결하지 못한 버그가 있을 수 있으며, 이를 제작 환경에서 사용하지 않는 것이 좋습니다.",
+    "config-support-sqlite": "* $1는 매우 잘 지원하는 가벼운 데이터베이스 시스템입니다. ([http://www.php.net/manual/en/pdo.installation.php SQLite를 지원하여 PHP를 컴파일하는 방법], PDO 사용)",
+    "config-support-oracle": "* $1은 상용 엔터프라이스 데이터베이스입니다. ([http://www.php.net/manual/en/oci8.installation.php OCI8을 지원하여 PHP를 컴파일하는 방법])",
+    "config-header-mysql": "MySQL 설정",
+    "config-header-postgres": "PostgreSQL 설정",
+    "config-header-sqlite": "SQLite 설정",
+    "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가 잘못됐습니다.\n\"TNS Name\"이나 \"Easy Connect\" 문자열 중 하나를 사용하세요 ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Oracle 네이밍 메서드])",
+    "config-invalid-db-name": "\"$1\" 데이터베이스 이름이 잘못되었습니다.\nASCII 글자 (a-z, A-Z), 숫자 (0-9), 밑줄 (_)과 하이픈 (-)만 사용하세요.",
+    "config-invalid-db-prefix": "\"$1\" 데이터베이스 접두어가 잘못됐습니다.\nASCII 글자 (a-z, A-Z), 숫자 (0-9), 밑줄 (_)과 하이픈 (-)만 사용하세요.",
+    "config-connection-error": "$1.\n\n호스트, 계정 이름과 비밀번호를 확인하고 다시 시도하세요.",
+    "config-invalid-schema": "미디어위키 \"$1\"에 대한 스키마가 잘못됐습니다.\nASCII 글자 (a-z, A-Z), 숫자 (0-9), 밑줄 (_)과 하이픈 (-)만 사용하세요.",
+    "config-db-sys-create-oracle": "설치 프로그램은 새 계정을 만들기 위한 SYSDBA 계정만을 지원합니다.",
+    "config-db-sys-user-exists-oracle": "\"$1\" 사용자 계정이 이미 존재합니다. SYSDBA는 새 계정을 만드는 데에만 사용할 수 있습니다!",
+    "config-postgres-old": "PostgreSQL $1 이상이 필요하나 $2(이)가 있습니다.",
+    "config-sqlite-name-help": "위키를 식별하기 위한 이름을 선택하세요.\n공백이나 하이픈을 사용하지 마십시오.\nSQLite 데이터 파일 이름에 사용됩니다.",
+    "config-sqlite-parent-unwritable-group": "<code><nowiki>$1</nowiki></code> 데이터 디렉토리를 만들 수 없으며 웹 서버는 <code><nowiki>$2</nowiki></code> 상위 디렉토리에 쓸 수 없기 때문입니다.\n\n설치 프로그램은 웹 서버로 실행중인 사용자를 지정할 수 없습니다.\n계속하려면 웹 서버가 쓸 수 있는 <code><nowiki>$3</nowiki></code> 디렉토리를 만드세요.\n유닉스/리눅스 시스템에서의 수행:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "<code><nowiki>$1</nowiki></code> 데이터 디렉토리를 만들 수 없으며 웹 서버는 <code><nowiki>$2</nowiki></code> 상위 디렉토리에 쓸 수 없기 때문입니다.\n\n설치 프로그램은 웹 서버로 실행중인 사용자를 지정할 수 없습니다.\n계속하려면 웹 서버(와 기타!)가 전역으로 쓸 수 있는 <code><nowiki>$3</nowiki></code> 디렉토리를 만드세요.\n유닉스/리눅스 시스템에서의 수행:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "\"$1\" 데이터 디렉토리를 만드는 중 오류가 났습니다.\n경로를 확인하고 다시 시도하세요.",
+    "config-sqlite-dir-unwritable": "\"$1\" 디렉토리에 쓸 수 없습니다.\n웹 서버를 쓸 수 있도록 권한을 바꾸고 다시 시도하세요.",
+    "config-sqlite-connection-error": "$1.\n\n호스트, 계정 이름과 비밀번호를 확인하고 다시 시도하세요.",
+    "config-sqlite-readonly": "<code>$1</code> 파일은 쓸 수 없습니다.",
+    "config-sqlite-cant-create-db": "<code>$1</code> 데이터베이스 파일을 만들 수 없습니다.",
+    "config-sqlite-fts3-downgrade": "PHP가 FTS3 지원이 없어졌습니다. 테이블을 다운그레이드하세요.",
+    "config-can-upgrade": "이 데이터베이스에 미디어위키 테이블이 있습니다.\n미디어위키 $1(으)로 업그레이드하려면 '''계속'''을 클릭하세요.",
+    "config-upgrade-done": "업그레이드가 완료되었습니다.\n\n이제 [$1 위키를 시작]할 수 있습니다.\n\n만약 <code>LocalSettings.php</code> 파일을 다시 만들기를 원하면 아래의 버튼을 클릭하세요.\n위키에 문제가 있지 않는 한 '''권장하지 않습니다'''.",
+    "config-upgrade-done-no-regenerate": "업그레이드가 완료되었습니다.\n\n이제 [$1 위키를 시작]할 수 있습니다.",
+    "config-regenerate": "LocalSettings.php 다시 만들기 →",
+    "config-show-table-status": "<code>SHOW TABLE STATUS</code> 쿼리를 실패했습니다!",
+    "config-unknown-collation": "'''경고:''' 데이터베이스가 인식하지 않는 정렬을 사용하고 있습니다.",
+    "config-db-web-account": "웹 접근을 위한 데이터베이스 계정",
+    "config-db-web-help": "위키의 일반적인 작업 중에 데이터베이스 서버에 연결하는 데 사용할 웹 서버에 대한 계정 이름과 비밀번호를 선택하세요.",
+    "config-db-web-account-same": "설치를 위해 같은 계정 사용",
+    "config-db-web-create": "이 계정이 아직 존재하지 않을 경우 계정 만들기",
+    "config-db-web-no-create-privs": "설치를 위해 지정한 계정은 계정을 만들 수 있는 충분한 권한이 없습니다.\n여기서 지정한 계정은 이미 존재해야 합니다.",
+    "config-mysql-engine": "스토리지 엔진:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''경고''': 미디어위키에 사용하지 않는 것이 좋은 MySQL에 대한 스토리지 엔진으로 MyISAM을 선택하였습니다. 이유는:\n* 테이블 잠금에 의해 간신히 동시성을 지원합니다\n* 다른 엔진보다 손상하는 경향이 있습니다\n* 미디어위키 코드베이스가 항상 정상적으로 MyISAM을 처리하지 않습니다\n\nMySQL 설치가 InnoDB를 지원한다면, 그 선택 대신에 InnoDB를 선택할 것을 매우 권장합니다.\nMySQL 설치가 InnoDB를 지원하지 않는다면, 아마도 업그레이드를 할 시간입니다.",
+    "config-mysql-only-myisam-dep": "'''경고''': 미디어위키에 사용하지 않는 것이 좋은 MySQL에 대한 유일하게 사용할 수 있는 스토리지 엔진입니다. 이유는:\n* 테이블 잠금에 의해 간신히 동시성을 지원합니다\n* 다른 엔진보다 손상하는 경향이 있습니다\n* 미디어위키 코드베이스가 항상 정상적으로 MyISAM을 처리하지 않습니다\n\nMySQL 설치가 InnoDB를 지원하지 않으며, 아마도 업그레이드를 할 시간입니다.",
+    "config-mysql-engine-help": "'''InnoDB'''는 동시적인 지원에 좋기 때문에 대부분 최고의 옵션입니다.\n\n'''MyISAM'''은 단일 사용자 또는 읽기 전용 설치에 빠를 수 있습니다.\nMyISAM 데이터베이스는 InnoDB 데이터베이스보다 더 자주 손실될 수 있습니다.",
+    "config-mysql-charset": "데이터베이스 문자 집합:",
+    "config-mysql-binary": "바이너리",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "'''바이너리 모드'''에서는 미디어위키는 바이너리 필드의 데이터베이스에 UTF-8 텍스트를 저장합니다.\nMySQL의 UTF-8 모드를 보다 더 효율적이고 유니코드 문자의 전체 범위를 사용할 수 있습니다.\n'''UTF-8 모드'''에서는 MySQL은 데이터를 설정하는 문자 집합을 알고 있기 때문에 적절하게 표현하고 변환할 수 있지만\n[//ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_%ED%8F%89%EB%A9%B4#.EA.B8.B0.EB.B3.B8_.EB.8B.A4.EA.B5.AD.EC.96.B4_.ED.8F.89.EB.A9.B4 기본 다국어 평면] 밖의 문자를 저장할 수 없습니다.",
+    "config-site-name": "위키 이름:",
+    "config-site-name-help": "브라우저 제목 표시줄과 다른 여러 곳에 나타납니다.",
+    "config-site-name-blank": "사이트 이름을 입력하세요.",
+    "config-project-namespace": "프로젝트 이름공간:",
+    "config-ns-generic": "프로젝트",
+    "config-ns-site-name": "위키 이름과 같은 이름: $1",
+    "config-ns-other": "기타 (지정)",
+    "config-ns-other-default": "내위키",
+    "config-project-namespace-help": "위키백과의 예를 따라서, 많은 위키는 \"'''프로젝트 이름공간'''\"에 그들의 콘텐츠 페이지에서 그들의 정책 페이지는 별도로 보관합니다.\n이 이름공간에 있는 모든 페이지의 제목은 여기서 지정할 수 있는 특정 접두어로 시작합니다.\n보통 이 접두어는 위키의 이름에서 파생되지만, \"#\" 또는 \":\"와 같은 특수 문자를 포함할 수 없습니다.",
+    "config-ns-invalid": "특정 \"<nowiki>$1</nowiki>\" 이름공간이 잘못되었습니다.\n다른 프로젝트 이름공간을 지정하세요.",
+    "config-ns-conflict": "특정 \"<nowiki>$1</nowiki>\" 이름공간이 기본 미디어위키 이름공간과 충돌합니다.\n다른 프로젝트 이름공간을 지정하세요.",
+    "config-admin-box": "관리자 계정",
+    "config-admin-name": "사용자 이름:",
+    "config-admin-password": "비밀번호:",
+    "config-admin-password-confirm": "비밀번호 확인:",
+    "config-admin-help": "\"홍길동\"과 같이 여기에 원하는 사용자 이름을 입력하세요.\n위키에 로그인하는 데 사용되는 이름입니다.",
+    "config-admin-name-blank": "관리자의 사용자 이름을 입력하세요.",
+    "config-admin-name-invalid": "특정 \"<nowiki>$1</nowiki>\" 사용자 이름이 잘못되었습니다.\n다른 사용자 이름을 지정하세요.",
+    "config-admin-password-blank": "관리자 계정의 비밀번호를 입력하세요.",
+    "config-admin-password-same": "비밀번호는 사용자 이름과 같아서는 안 됩니다.",
+    "config-admin-password-mismatch": "입력한 비밀번호 두 개가 일치하지 않습니다.",
+    "config-admin-email": "이메일 주소:",
+    "config-admin-email-help": "위키의 다른 사용자로부터 이메일을 전달받거나 비밀번호를 재설정하고 주시문서 목록에 대한 바뀜 알림을 받기 위해 여기에 이메일 주소를 입력하세요. 이 필드를 비워 둘 수 있습니다.",
+    "config-admin-error-user": "\"<nowiki>$1</nowiki>\" 이름의 관리자를 만드는 중 내부 오류가 발생했습니다.",
+    "config-admin-error-password": "\"<nowiki>$1</nowiki>\" 관리자의 비밀번호를 설정하는 중 내부 오류가 발생했습니다: <pre>$2</pre>",
+    "config-admin-error-bademail": "이메일 주소를 잘못 입력하였습니다.",
+    "config-subscribe": "[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce 배포 발표 메일링 리스트]에 가입합니다.",
+    "config-subscribe-help": "중요한 보안 알림을 포함한 배포 알림에 대해 사용되는 로우 볼륨 메일링 리스트입니다.\n이 리스트를 구독하고 나서 새 버전이 나올 때 미디어위키 설치를 업데이트하십시오.",
+    "config-subscribe-noemail": "이메일 주소를 제공하지 않고 배포 발표 메일링 리스트에 가입하려 합니다.\n메일링 리스트에 가입하고자 할 경우 이메일 주소를 제공하세요.",
+    "config-almost-done": "거의 다 완료했습니다!\n이제 남은 설정을 생략하고 지금 바로 위키를 설치할 수 있습니다.",
+    "config-optional-continue": "더 많은 질문을 물어보세요.",
+    "config-optional-skip": "지겨워요, 그냥 위키를 설치할래요.",
+    "config-profile": "사용자 권한 프로필:",
+    "config-profile-wiki": "열린 위키",
+    "config-profile-no-anon": "계정 만들기 필요",
+    "config-profile-fishbowl": "승인된 편집자만",
+    "config-profile-private": "비공개 위키",
+    "config-profile-help": "위키는 많은 사람들이 가능한 한 편집할 수 있도록 하면 가장 뛰어난 역할을 합니다.\n미디어위키에서는 최근 바뀜을 검토하기 쉽고, 선하거나 악의적인 사용자의 어떠한 손실을 되돌리는 것이 쉽습니다.\n\n그러나 많은 사람이 미디어위키는 다양한 역할로 유용하지만, 때로는 모든 사람에게 위키 방식의 장점을 설득하기 쉽지 않을 지도 모릅니다.\n그래서 선택할 수 있습니다.\n\n'''{{int:config-profile-wiki}}''' 모델은 로그인하지 않고도 누구나 편집할 수 있습니다.\n'''{{int:config-profile-no-anon}}'''인 위키는 각 편집에 추가적으로 강한 책임을 제공하지만, 부담 없는 기여를 저해할 수도 있습니다.\n\n'''{{int:config-profile-fishbowl}}''' 시나리오는 승인된 사용자만 편집할 수 있지만, 대중은 역사를 포함하여 문서를 볼 수 있습니다.\n'''{{int:config-profile-private}}'''는 승인된 사용자만 문서를 볼 수 있으며 해당 그룹을 편집할 수 있습니다.\n\n더 복잡한 사용자 권한을 설정은 설치한 후 사용할 수 있으며 [//www.mediawiki.org/wiki/Manual:User_rights 관련 설명서 항목]을 참고하세요.",
+    "config-license": "저작권 및 라이선스:",
+    "config-license-none": "라이선스 바닥글 없음",
+    "config-license-cc-by-sa": "크리에이티브 커먼즈 저작자표시-동일조건변경허락",
+    "config-license-cc-by": "크리에이티브 커먼즈 저작자표시",
+    "config-license-cc-by-nc-sa": "크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락",
+    "config-license-cc-0": "크리에이티브 커먼즈 제로 (퍼블릭 도메인)",
+    "config-license-gfdl": "GNU 자유 문서 사용 허가서 1.3 이상",
+    "config-license-pd": "퍼블릭 도메인",
+    "config-license-cc-choose": "다른 크리에이티브 커먼즈 라이선스 선택",
+    "config-license-help": "많은 공개 위키는 모든 기여를 [http://freedomdefined.org/Definition 자유 라이선스]에 따라 넣습니다.\n이렇게 하면 커뮤니티 소유권의 이해를 할 수 있도록 하고 장기적인 기여를 장려합니다.\n일반적으로 개인 또는 회사 위키에 대해서는 필요하지 않습니다.\n\n위키백과의 텍스트를 사용할 수 있도록 하고 위키백과가 위키에서 복사한 텍스트를 사용할 수 있도록 원한다면 '''크리에이티브 커먼즈 저작자표시-동일조건변경허락'''으로 선택해야 합니다.\n\n위키백과는 이전에 GNU 자유 문서 사용 허가서를 사용했습니다.\nGFDL은 유효한 라이선스이지만 내용을 이해하기 어렵습니다.\nGFDL에 따라 사용이 허가된 내용을 재사용하는 것도 어렵습니다.",
+    "config-email-settings": "이메일 설정",
+    "config-enable-email": "발신 이메일 활성화",
+    "config-enable-email-help": "이메일을 작동하려면 [http://www.php.net/manual/en/mail.configuration.php PHP의 메일 설정]을 올바르게 설정해야 합니다.\n이메일 기능을 사용하지 않으려면 이를 비활성화할 수 있습니다.",
+    "config-email-user": "사용자와 사용자 간 이메일 활성화",
+    "config-email-user-help": "환경 설정에서 활성화한 경우 모든 사용자가 이메일을 서로 보내도록 활성화합니다.",
+    "config-email-usertalk": "사용자 토론 문서 알림 활성화",
+    "config-email-usertalk-help": "환경 설정에서 활성화한 경우 사용자는 사용자 토론 문서의 바뀜 알림을 받도록 활성화합니다.",
+    "config-email-watchlist": "주시문서 목록 알림 활성화",
+    "config-email-watchlist-help": "환경 설정에서 활성화한 경우 사용자가 주시한 문서에 대한 알림을 받도록 활성화합니다.",
+    "config-email-auth": "이메일 인증 활성화",
+    "config-email-auth-help": "이 설정이 활성화되어 있으면 사용자는 이메일 주소를 설정하거나 바꿀 때마다 링크를 사용하여 이메일 주소를 확인해야 합니다.\n인증된 이메일 주소만 다른 사용자로부터의 이메일이나 바뀜 알림 이메일을 받을 수 있습니다.\n이메일 기능의 남용 가능성이 있기 때문에 이 옵션을 설정하는 것은 공개 위키에서 '''권장'''합니다.",
+    "config-email-sender": "반송 이메일 주소",
+    "config-email-sender-help": "발신한 이메일에 대한 반송 주소로 사용할 이메일 주소를 입력하세요.\n반송할 때 보내는 주소입니다.\n대부분의 메일 서버는 적어도 도메인 이름 부분은 유효합니다.",
+    "config-upload-settings": "그림과 파일 올리기",
+    "config-upload-enable": "파일 올리기 활성화",
+    "config-upload-help": "파일 올리기는 서버에 잠재적인 보안 위험에 쉽게 노출될 수 있습니다.\n자세한 내용은 매뉴얼의 [//www.mediawiki.org/wiki/Manual:Security 보안 문단]을 참고하세요.\n\n파일 올리기를 활성화하려면 미디어위키의 루트 디렉토리에 있는 <code>images</code> 하위 디렉토리에서 웹 서버가 기록할 수 있도록 모드를 바꿉니다.\n그 다음 이 옵션을 활성화합니다.",
+    "config-upload-deleted": "삭제된 파일에 대한 디렉터리:",
+    "config-upload-deleted-help": "삭제된 파일을 보관할 디렉토리를 선택하세요.\n이상적으로 웹에서 접근할 수 없게 해야 합니다.",
+    "config-logo": "로고 URL:",
+    "config-logo-help": "미디어위키의 기본 스킨은 사이드바 메뉴 위에 135×160 픽셀의 로고의 공간을 포함하고 있습니다.\n적당한 크기로 그림을 올리고 여기에 URL을 입력하세요.\n\n로고가 상대적인 경로에 있으면 <code>$wgStylePath</code>나 <code>$wgScriptPath</code>를 사용할 수 있습니다.\n\n로고 사용을 원하지 않으면 이 상자를 비우세요.",
+    "config-instantcommons": "인스턴트 공용 활성화",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons 인스턴트 공용]은 [//commons.wikimedia.org/ 위키미디어 공용] 사이트에서 찾을 수 있는 그림, 소리 및 다른 미디어를 위키에서 사용할 수 있도록 하는 기능입니다.\n이렇게 하려면 미디어위키가 인터넷에 접근해야합니다.\n\n위키미디어 공용 외에 기타 위키를 설정하는 방법에 대한 지침을 포함한 기능에 대한 자세한 내용은 [//mediawiki.org/wiki/Manual:$wgForeignFileRepos 매뉴얼]을 참고하세요.",
+    "config-cc-error": "크리에이티브 커먼즈 라이선스 선택기에 결과가 없습니다.\n수동으로 라이선스 이름을 입력하세요.",
+    "config-cc-again": "다시 선택...",
+    "config-cc-not-chosen": "원하는 크리에이티브 커먼즈 라이선스를 선택하고 \"진행\"을 클릭하세요.",
+    "config-advanced-settings": "고급 설정",
+    "config-cache-options": "개체 캐싱을 위한 설정:",
+    "config-cache-help": "개체 캐싱은 자주 사용하는 데이터를 캐싱하여 미디어위키의 속도를 개선하는 데 사용합니다.\n큰 사이트의 규모에는 이를 많이 사용하도록 권장하고 있으며, 소규모 사이트들도 물론 이익을 볼 수 있습니다.",
+    "config-cache-none": "캐시하지 않음 (기능적으로는 삭제되지 않지만 큰 위키 사이트에 속도에 영향을 받을 수 있습니다)",
+    "config-cache-accel": "PHP 개체 캐싱 (APC, XCache 또는 WinCache)",
+    "config-cache-memcached": "Memcached 사용 (추가적인 설치와 설정이 필요합니다)",
+    "config-memcached-servers": "Memcached 서버:",
+    "config-memcached-help": "Memcached의 사용하기 위한 IP 주소 목록입니다.\n한 줄에 하나씩 사용할 포트를 지정해야 합니다. 예를 들어 :\n 127.0.0.1:11211\n 192.168.1.25:1234",
+    "config-memcache-needservers": "캐시 종류로 Memcached를 선택했지만 어떠한 서버도 지정하지 않았습니다.",
+    "config-memcache-badip": "Memcached에 대해 잘못된 IP 주소를 입력했습니다: $1.",
+    "config-memcache-noport": "Memcached 서버에 사용할 포트를 지정하지 않았습니다: $1.\n포트를 모를 경우 기본값은 11211입니다.",
+    "config-memcache-badport": "Memcached 포트 번호는 $1(와)과 $2 사이여야 합니다.",
+    "config-extensions": "확장 기능",
+    "config-extensions-help": "위에 나열된 확장 기능이 <code>./extensions</code>에서 발견되었습니다.\n\n추가적인 설정이 필요할 수 있습니다만 지금 활성화시킬 수 있습니다.",
+    "config-install-alreadydone": "'''경고:''' 이미 미디어위키를 설치했고 다시 설치하려고 합니다.\n다음 페이지에서 진행하세요.",
+    "config-install-begin": "\"{{int:config-continue}}\"을 누르면 미디어위키의 설치를 시작합니다.\n그래도 바꾸는 것을 원한다면 \"{{int:config-back}}\"를 누르세요.",
+    "config-install-step-done": "완료",
+    "config-install-step-failed": "실패",
+    "config-install-extensions": "확장 기능을 포함하는 중",
+    "config-install-database": "데이터베이스를 설정하는 중",
+    "config-install-schema": "스키마를 만드는 중",
+    "config-install-pg-schema-not-exist": "PostgreSQL 스키마가 존재하지 않습니다.",
+    "config-install-pg-schema-failed": "테이블을 만드는 데 실패했습니다.\n\"$2\" 스키마에 쓸 수 있는 \"$1\" 사용자가 있는지 확인하세요.",
+    "config-install-pg-commit": "바뀐 사항을 적용하는 중",
+    "config-install-pg-plpgsql": "PL/pgSQL 언어에 대해 확인하는 중",
+    "config-pg-no-plpgsql": "$1 데이터베이스에 PL/pgSQL 언어를 설치해야 합니다",
+    "config-pg-no-create-privs": "설치를 위한 지정한 계정에 계정을 만드는 데 충분한 권한이 없습니다,",
+    "config-pg-not-in-role": "웹 사용자에 대해 지정한 계정이 이미 존재합니다.\n설치에 대한 지정한 사용자는 슈퍼 사용자가 아니고, 그것은 웹 사용자의 역할의 구성원이 아니며, 그래서 웹 사용자가 소유한 개체를 만들 수 없습니다.\n\n현재 미디어위키는 테이블을 웹 사용자가 소유해야 합니다. 다른 웹 계정 이름을 지정하거나 \"뒤로\"를 클릭하고 적절한 권한의 설치할 사용자를 지정하세요.",
+    "config-install-user": "데이터베이스 사용자를 만드는 중",
+    "config-install-user-alreadyexists": "\"$1\" 사용자가 이미 존재합니다",
+    "config-install-user-create-failed": "\"$1\" 사용자 만드는 중 실패: $2",
+    "config-install-user-grant-failed": "\"$1\" 사용자에 대한 권한 부여 실패: $2",
+    "config-install-user-missing": "지정한 \"$1\" 사용자가 존재하지 않습니다.",
+    "config-install-user-missing-create": "지정된 \"$1\" 사용자가 존재하지 않습니다.\n이를 만드는 것을 원하면 아래의 \"계정 만들기\" 확인 상자를 클릭하세요.",
+    "config-install-tables": "테이블을 만드는 중",
+    "config-install-tables-exist": "'''경고''': 미디어위키 테이블이 이미 있는 것 같습니다.\n테이블 만들기를 생략합니다.",
+    "config-install-tables-failed": "'''오류''': 다음 오류와 함께 테이블 만들기에 실패했습니다: $1",
+    "config-install-interwiki": "기본 인터위키 테이블을 채우는 중",
+    "config-install-interwiki-list": "<code>interwiki.list</code> 파일을 불러올 수 없습니다.",
+    "config-install-interwiki-exists": "'''경고''': 인터위키 테이블이 이미 항목을 갖고 있는 것 같습니다.\n기본 목록으로 넘어갑니다.",
+    "config-install-stats": "통계를 초기화하는 중",
+    "config-install-keys": "보안 키를 만드는 중",
+    "config-insecure-keys": "'''경고:''' 설치 중에 생성한 {{PLURAL:$2|보안 키}} ($1)를 설치하는 동안 완전히 안전하지 {{PLURAL:$2|않습니다}}. 직접 바꾸기를 고려하세요.",
+    "config-install-sysop": "관리자 사용자 계정을 만드는 중",
+    "config-install-subscribe-fail": "미디어위키 발표를 구독할 수 없습니다: $1",
+    "config-install-subscribe-notpossible": "cURL이 설치되지 않았고 allow_url_fopen를 사용할 수 없습니다.",
+    "config-install-mainpage": "기본 콘텐츠로 대문을 만드는 중",
+    "config-install-extension-tables": "활성화된 확장 기능을 위한 테이블을 만드는 중",
+    "config-install-mainpage-failed": "대문을 삽입할 수 없습니다: $1",
+    "config-install-done": "'''축하합니다!'''\n미디어위키가 성공적으로 설치되었습니다.\n\n설치 프로그램이 <code>LocalSettings.php</code> 파일을 만들었습니다.\n모든 설정이 포함되어 있습니다.\n\n파일을 다운로드하여 위키 설치의 거점에 넣어야 합니다. (index.php와 같은 디렉터리) 다운로드가 자동으로 시작됩니다.\n\n다운로드가 제공되지 않을 경우나 그것을 취소한 경우에는 아래의 링크를 클릭하여 다운로드를 다시 시작할 수 있습니다:\n\n$3\n\n'''참고:''' 이 생성한 설정 파일을 다운로드하지 않고 설치를 끝내면 이 파일은 나중에 사용할 수 없습니다.\n\n완료되었으면 '''[$2 위키에 들어갈 수 있습니다]'''.",
+    "config-download-localsettings": "<code>LocalSettings.php</code> 다운로드",
+    "config-help": "도움말",
+    "config-nofile": "\"$1\" 파일을 찾을 수 없습니다. 이미 삭제되었나요?",
+    "config-extension-link": "당신의 위키가 [//www.mediawiki.org/wiki/Manual:Extensions 확장 기능]을 지원한다는 것을 알고 계십니까?\n\n전체 확장 기능의 목록을 확인하려면 [//www.mediawiki.org/wiki/Category:Extensions_by_category 분류별 확장 기능]이나 [//www.mediawiki.org/wiki/Extension_Matrix 확장 기능 표]를 찾아보실 수 있습니다.",
+    "mainpagetext": "'''미디어위키가 성공적으로 설치되었습니다.'''",
+    "mainpagedocfooter": "[//meta.wikimedia.org/wiki/Help:Contents 이곳]에서 위키 소프트웨어에 대한 정보를 얻을 수 있습니다.\n\n== 시작하기 ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings 설정하기 목록]\n* [//www.mediawiki.org/wiki/Manual:FAQ 미디어위키 FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce 미디어위키 발표 메일링 리스트]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources 내 언어로 미디어위키 지역화]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/krc.json b/includes/installer/i18n/krc.json
new file mode 100644 (file)
index 0000000..320ae4b
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Iltever"
+        ]
+    },
+    "mainpagetext": "'''«MediaWiki» тыйыншлы салынды.'''",
+    "mainpagedocfooter": "Бу вики бла къалай ишлерге ангылатхан информацияны [//meta.wikimedia.org/wiki/Help:Contents_User's_Guide къошулуучугъа юретиуде] табаргъа боллукъду.\n\n== Файдалы ресурсла ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings тюрлендириулени списогу (ингил.)];\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-ни юсюнден кёб берилген соруула];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-ни джангы версиясыны чыкъгъанын билдириу письмола]."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ksh.json b/includes/installer/i18n/ksh.json
new file mode 100644 (file)
index 0000000..7c08745
--- /dev/null
@@ -0,0 +1,311 @@
+{
+    "@metadata": {
+        "authors": [
+            "Mormegil",
+            "Purodha",
+            "Reedy"
+        ]
+    },
+    "config-desc": "Et Projramm för Mediwiki opzesäze.",
+    "config-title": "MediaWiki $1 opsäze",
+    "config-information": "Enfomazjuhn",
+    "config-localsettings-upgrade": "De Dattei <code lang=\"en\"><code>LocalSettings.php</code></code> es ald doh.\nDe Projramme vum Wiki künne op der neußte Shtand jebraat wääde:\nDonn doför dä Wäät vum <code lang=\"en\">$wgUpgradeKey</code> en dat heh Feld enjävve.\nDo fenggs_et en dä Dattei <code lang=\"en\"><code>LocalSettings.php</code></code> om ẞööver.",
+    "config-localsettings-cli-upgrade": "En Dattei <code lang=\"en\"><code>LocalSettings.php</code></code> es jefonge woode.\nÖm et Wiki_Projramm op ene neue Shtand ze bränge, donn <code lang=\"en\">update.php</code> oproofe.",
+    "config-localsettings-key": "Der Schlößel för et Projramm op ene neue Schtand ze bränge:",
+    "config-localsettings-badkey": "Dinge Schlößel paß nit.",
+    "config-upgrade-key-missing": "Mer han jefonge, dat MediaWiki ald enschtalleed es.\nÜm de Projramme un Daate o der neue Schtand bränge ze künne, dunn aan et Engk vun dä Dattei <code lang=\"en\"><code>LocalSettings.php</code></code> op dämm ẞööver:\n\n$1\n\naanhange.",
+    "config-localsettings-incomplete": "Mer han en Dattei <code lang=\"en\"><code>LocalSettings.php</code>:</code> jefonge, ävver di schingk nit kumplätt ze sin.\nDe Varijable <code lang=\"en\">$1</code> es nit jesatz.\nBes esu joot, un donn di Dattei esu aanpaße, dat se jesaz ea, un dann donn op „{{int:config-continue}}“ klecke.",
+    "config-localsettings-connection-error": "Ene Fähler es opjetrodde wi mer en Verbendung noh de Datebangk opmaache wullte met dä Enshtellunge uß dä Dattei <code lang=\"en\">LocalSettings</code> udder uß dä Dattei <code lang=\"en\">LocalSettings</code> un et hät nit jeflupp. Bes esu joot un dat repareere un versöhg et dann norr_ens.\n\n$1",
+    "config-session-error": "Ene Fähler es opjetrodde beim Aanmelde för en Sezung: $1",
+    "config-session-expired": "De Daate för Ding Setzung sinn wall övverholld of afjeloufe.\nDe Setzungunge sin esu enjeshtallt, nit mieh wi $1 ze doore.\nDat kanns De verlängere, endämm dat De de <code lang=\"en\">session.gc_maxlifetime</code> en dä Dattei <code>php.ini</code> jrüüßer määß.\nDon dat Projramm för et Opsäze norr_ens aanschmiiße.",
+    "config-no-session": "De Daate för Ding Setzung sinn verschött jejange.\nDonn en dä Dattei <code>php.ini</code> nohloore, ov dä <code lang=\"en\">session.save_path</code> op e zopaß Verzeijschneß zeisch.",
+    "config-your-language": "Ding Schprooch:",
+    "config-your-language-help": "Donn heh di Shprooch ußsöhke, di dat Enshtallzjuhnsprojramm kalle sull.",
+    "config-wiki-language": "Dem Wiki sing Shprooch:",
+    "config-wiki-language-help": "Donn heh di Shprooch ußsöhke, di et Wiki shtandattmääßesch kalle sull.",
+    "config-back": "← Retuur",
+    "config-continue": "Wigger →",
+    "config-page-language": "Schprooch",
+    "config-page-welcome": "Wellkumme beim MediaWiki!",
+    "config-page-dbconnect": "Met dä Daatebangk Verbenge",
+    "config-page-upgrade": "En Inshtallzjuhn op der neuste Shtand bränge",
+    "config-page-dbsettings": "Parrameeter för de Daatebangk",
+    "config-page-name": "Name",
+    "config-page-options": "Ennställunge",
+    "config-page-install": "Opsäzze",
+    "config-page-complete": "Fäädesch!",
+    "config-page-restart": "Et Opsäze norr_ens neu aanfange",
+    "config-page-readme": "Donn mesch lässe! (<i lang=\"en\">read me</i>)",
+    "config-page-releasenotes": "Henwies för heh di Version vum Projramm (<i lang=\"en\">Release notes</i>)",
+    "config-page-copying": "Ben aam Kopeere",
+    "config-page-upgradedoc": "Ben op der neuste Stand aam bränge",
+    "config-page-existingwiki": "Mer han ald e Wiki!",
+    "config-help-restart": "Wells De all Ding enjejovve Sachee fottjeschmesse han, un dä janze Vörjang vun fürre aan neu aanfange?",
+    "config-restart": "Joh, neu aanfange!",
+    "config-welcome": "=== Ömjevong Prööfe ===\nMer maache en Aanzal jrundlääje Prövunge, öm erus ze fenge, ov di Ömjevong heh paß, för Mediawiki opzesäze.\nWann de Hölp bem Opsäze bruchs, donn wigger ssare, wat erus kohm, wat heh shteiht.",
+    "config-copyright": "=== Urhävverrääsch un Lizänzbedengunge ===\n\n$1\n\nDat  Projramm heh es frei, mer kann et wiggerjävve un verdeijle un och verändere ungger dä Bedengunge vun de  GNU <i lang=\"en\">General Public License</i> (Alljemeine öffentlesche Lizänz) wi se vun de <i lang=\"en\">Free Software Foundation</i> (de Shteftung för frei Projramme) veröffentlesch woode es. Dobei kanns De Der de Version 2 vun dä Lizanz ußsöhke, udder jeede Version donoh, wi et Der jefällt.\n\nDat Projramm weed wigger jejovve met dä Hoffnung, dat et jät nöz, ävver '''ohne Jarrantie''', sujaa ohne de onußjeshproche Jarantie, '''verkoufbaa''' ze sin, udder '''för öhnds_ene beshtemmpte Zweck ze bruche''' ze sin.\nLiß de GNU <i lang=\"en\">General Public License</i> sellver, öm mieh ze erfahre.\n\nDo sullts en <doclink href=Copying>Kopie vun dä alljemene öffentlesche Lizänz vun dä GNU</doclink> (<i lang=\"en\">GNU General Public License</i>) zosamme met heh däm Projramm krääje han. Wann dat nit esu es, schrief aan de <i lang=\"en\">Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA</i>. udder [http://www.gnu.org/copyleft/gpl.html liß se online övver et Internet].",
+    "config-sidebar": "* [//www.mediawiki.org MediaWiki sing Hompäjdsch]\n* [//www.mediawiki.org/wiki/Help:Contents Handbooch för Aanwender]\n* [//www.mediawiki.org/wiki/Manual:Contents Handbooch för Administratore un Wiki_Köbesse]\n* [//www.mediawiki.org/wiki/Manual:FAQ Öff jeshtallte Froore met Antwoote]\n----\n* <doclink href=Readme>Liß Mesch! (<i lang=\"en\">Read me</i>)</doclink>\n* <doclink href=ReleaseNotes><i lang=\"en\">Release notes</i> Övver heh di Projrammversion</doclink>\n* <doclink href=Copying><i lang=\"en\">Copying</i> — Lizänzbeshtemmunge</doclink>\n* <doclink href=UpgradeDoc><i lang=\"en\">Upgrading</i> — Ob en neu Projrammversion jonn</doclink>",
+    "config-env-good": "De Ömjävung es jeprööf.\nDo kanns MediaWiki opsäze.",
+    "config-env-bad": "De Ömjävung es jeprööf.\nDo kanns MediaWiki nit opsäze.",
+    "config-env-php": "PHP $1 es doh.",
+    "config-env-php-toolow": "PHP $1 es enshtalleert.\nÄvver MediaWiki bruch PHP $2 udder hühter.",
+    "config-unicode-using-utf8": "För et <i lang=\"en\">Unicode</i>-Nommaliseere dom_mer däm <i lang=\"en\">Brion Vibber</i> sing Projramm <code lang=\"en\">utf8_normalize.so</code> nämme.",
+    "config-unicode-using-intl": "För et <i lang=\"en\">Unicode</i>-Nommaliseere dom_mer dä [http://pecl.php.net/intl Zohsaz <code lang=\"en\">intl</code> uss em <code lang=\"en\">PECL</code>] nämme.",
+    "config-unicode-pure-php-warning": "'''Opjepaß:''' Mer kunnte dä [http://pecl.php.net/intl Zohsaz <code lang=\"en\">intl</code> uss em <code lang=\"en\">PECL</code>] för et <i lang=\"en\">Unicode</i>-Nommaliseere nit fenge. Dröm nämme mer dat eijfache, ävver ärsh lahme, <i lang=\"en\">PHP</i>-Projrammshtöck doför.\nFör jruuße Wikis met vill Metmaachere doht Üsch die Sigg övver et [//www.mediawiki.org/wiki/Unicode_normalization_considerations <i lang=\"en\">Unicode</i>-Nommaliseere] (es op Änglesch) aanloore.",
+    "config-unicode-update-warning": "'''Opjepaß:''' Dat Projramm för der <i lang=\"en\">Unicode</i> zo normaliseere boud em Momang op en  ählter Version vun dä Bibliothek vum [http://site.icu-project.org/ ICU-Projäk] op.\nDoht di [//www.mediawiki.org/wiki/Unicode_normalization_considerations op der neuste Shtand bränge], wann auf dat Wiki em Äänz <i lang=\"en\">Unicode</i> bruche sull.",
+    "config-no-db": "Mer kunnte kei zopaß Daatebangk-Driiverprojamm fenge.\nMer bruche e Daatebangk-Driiverprojamm för PHP. Dat moß enjeresht wääde.\nMer künne met heh dä Daatebangke ömjonn: $1.\n\nWann De nit om eijene Rääshner bes, moß De Dinge <i lang=\"en\">provider</i> bedde, dat hä Der ene zopaß Driiver enresht.\nWann de PHP sellver övversaz häs, donn e Zohjangsprjramm för en Daatebangk enbenge, för e Beishpell met: <code  lang=\"en\">./configure --with-mysql</code> op ene <i lang=\"en\">command shell</i>.\nWann De PHP uss enem <i lang=\"en\">Debian</i> udder <i lang=\"en\">Ubuntu</i> Pakätt enjeresht häs, moß De dann och noch et <code lang=\"en\">php5-mysql</code> op Dinge Räschner bränge.",
+    "config-outdated-sqlite": "'''Opjepaß:''' <i lang=\"en\">SQLite</i> $1 es enschtaleert. Avver MediaWiki bruch <i lang=\"en\">SQLite</i> $2 udder hühter. <i lang=\"en\">SQLite</i> kann dröm nit enjesaz wääde.",
+    "config-no-fts3": "'''Opjepaß:''' De Projramme vum <i lang=\"en\">SQLite</i> sin der ohne et [//sqlite.org/fts3.html FTS3-Modul] övversaz, dröm wääde de Funxjohne för et Söhke fähle.",
+    "config-register-globals": "'''Opjepaß:''' dem PHP singe Schallder <code lang=\"en\">[http://php.net/register_globals register_globals]</code> es enjeschalldt.\n'''Donn dä ußmaache, wann De kann.'''\nMediaWiki löp och esu, dä künnt ävver Sesherheitslöcke opmaache, di mer noch nit jefonge un eruß jemaat hät.",
+    "config-magic-quotes-runtime": "'''Dä!''' Dem PHP singe Schallder <code lang=\"en\">[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]</code> es enjeschalldt.\nDä määt enjejovve Daate kapott, un doh draan kam_mer dann nix mieh repareere.\nDomet kam_mer MediaWiki nit ennreeshte un och nit loufe lohße.\nDat heiß, mer moß en affschallde, söns jeiht nix.",
+    "config-magic-quotes-sybase": "'''Dä!''' Dem PHP singe Schallder <code lang=\"en\">[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]</code> es enjeschalldt.\nDä määt enjejovve Daate kapott, un doh draan kam_mer dann nix mieh repareere.\nDomet kam_mer MediaWiki nit ennreeshte un och nit loufe lohße.\nDat heiß, mer moß en affschallde, söns jeiht nix.",
+    "config-mbstring": "'''Dä!''' Dem PHP singe Schallder <code lang=\"en\">[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]</code> es enjeschalldt.\nDat sorresch för Fähler un kann enjejovve Daate esu kapott maach, dat doh draan nix mieh ze repareere es.\nDomet kam_mer MediaWiki nit ennreeshte un och nit loufe lohße.\nDat heiß, mer moß en affschallde, söns jeiht nix.",
+    "config-ze1": "'''Dä!''' Dem PHP singe Schallder <code lang=\"en\">[http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]</code> es enjeschalldt.\nDat sorresch för schräcklejje Fähler em MediaWiki.\nDat kam_mer domet nit ennreeshte un och nit loufe lohße.\nDat heiß, mer moß en affschallde, söns jeiht nix.",
+    "config-safe-mode": "'''Opjepaß:''' Dem PHP singe <code lang=\"en\">[http://www.php.net/features.safe-mode safe mode]</code> es aanjeschalldt. Dat kann Ärjer maache, besönders beim Datteie Huhlaade bei de Ongershtözung för <code lang=\"en\">math</code>-Befähle.",
+    "config-xml-bad": "Dem PHP sing XML-Modul es nit ze fenge.\nMediaWiki bruch Funxjohne en däm Modul un deiht et esu nit.\nWann De <i lang=\"en\">Mandrake</i> aam loufehäs, donn dat Pakätt <code lang=\"en\">php-xml</code> enstalleere.",
+    "config-pcre": "Dem PHP sing Modul för <i lang=\"en\">PCRE</i> schingk ze fähle.\nMediaWiki deiht et nit der ohne de Funxjohne för de rejolähre Ußdrök vun dä Zoot, wi <i lang=\"en\">Perl</i> se kännt.",
+    "config-pcre-no-utf8": "'''Dä:''' Et PHP-Modul <i lang=\"en\">PCRE</i> schingk ohne de <i lang=\"en\">PCRE_UTF8</i>-Aandeile övversaz ze sin.\nMediaWiki bruch dä UTF-8-Krohm ävver, öm ohne Fähler loufe ze künne.",
+    "config-memory-raised": "Der jrühzte zohjelasse Shpeisherbedarf vum PHP, et <code lang=\"en\">memory_limit</code>, shtund op $1 un es op $2 erop jesaz woode.",
+    "config-memory-bad": "'''Opjepaß:''' Dem PHP singe Parameeter <code lang=\"en\">memory_limit</code> es $1.\nDat es wall ze winnisch.\nEt Enreeschte kunnt doh draan kappott jon!",
+    "config-ctype": "'''Fähler:''' <i lang=\"en\">PHP</i> moß met dä Ongerschtözong för der [http://www.php.net/manual/en/ctype.installation.php <code lang=\"en\">Ctype</code> Zohsaz] övversaz woode sin.",
+    "config-xcache": "Dä <code lang=\"en\">[http://xcache.lighttpd.net/ XCache]</code> es ennjeresht.",
+    "config-apc": "Dä <code lang=\"en\">[http://www.php.net/apc APC]</code> es ennjeresht.",
+    "config-wincache": "Dä <code lang=\"en\">[http://www.iis.net/download/WinCacheForPhp WinCache]</code> es ennjeresht.",
+    "config-no-cache": "'''Opjepaß:''' Mer kunnte dä <code lang=\"en\">[http://www.php.net/apc APC]</code>, dä <code lang=\"en\">[http://xcache.lighttpd.net/ XCache]</code> un dä <code lang=\"en\">[http://www.iis.net/download/WinCacheForPhp WinCache]</code> nit fenge.\nEt <i lang=\"en\">object caching</i> es nit müjjelesh un ußjeschalldt.",
+    "config-mod-security": "'''Opjepaß''': Dinge Webßööver hät <code lang=\"en\">[http://modsecurity.org/ mod_security]</code> enjeschalldt. Wann doh derbei en Enschtällong nit janz akeraat paßß, dann kann et goot sin, dat mer Probleme met MeedijaWiki un oc met ander Projramme kritt, die zohlööt, dat vun ußerhallef öhndsene Krohm op dä Webßööver jebraat wääde künnt.Beloor Der di Sigg <code lang=\"en\">[http://modsecurity.org/documentation/ mod_security documentation]</code> udder donn met dä Fachlück för Dinge Webßööver kalle, wann zohfälleje un koomijje Fähler bemerke deihß.",
+    "config-diff3-bad": "Mer han <i lang=\"en\">GNU</i> <code lang=\"en\">diff3</code> nit jefonge.",
+    "config-git": "Mer han de Väsjohn <code>$1</code> vun däm Väsjohnsverwalldongsprojamm <i lang=\"en\">Git</i> jefonge.",
+    "config-git-bad": "Dat Väsjohnsverwalldongsprojamm <i lang=\"en\">Git</i> ham_mer nit jefonge.",
+    "config-imagemagick": "Mer han <i lang=\"en\">ImageMagick</i> jefonge: <code>$1</code>.\nEt Ömrääschne en Minni-Beldsche weed müjjelesch sin, wann De et Belder Huhlaade zohlöhß.",
+    "config-gd": "Mer han de ennjeboute GD-Jrafik-Projramm-Biblijotheek jefonge.\nEt Ömrääschne en Minni-Beldsche weed müjjelesch sin, wann De et Belder Huhlaade zohlöhß.",
+    "config-no-scaling": "Mer han weeder de GD-Jrafik-Projramm-Biblijotheek, noch <i lang=\"en\">ImageMagick</i> jefonge.\nEt Ömrääschne en Minni-Beldsche weed ußjeschalldt.",
+    "config-no-uri": "'''Fähler:''' Mer kunnte der aktoälle <i lang=\"en\">URI</i> nit erusfenge.\nEt Enreeschte es domet heh aam Engk.",
+    "config-no-cli-uri": "'''Opjepaß''': <code lang=\"en\">--scriptpath</code> es nit aanjejovve, mer nämme der Schtandatt: <code>$1</code>.",
+    "config-using-server": "Mer nämmen dem ẞööver singe Name: „<nowiki>$1</nowiki>“.",
+    "config-using-uri": "Mer nämmen dem ẞööver singe <i lang=\"en\">URL</i>: „<nowiki>$1$2</nowiki>“.",
+    "config-uploads-not-safe": "'''Opjepaß:''' Uß däm jewöhnlijje Verzeichnes för de huhjelaade Datteie, dat es <code>$1</code>, künnte öhnzwällsche Skrepte un Projramme ußjeföhrt wääde. Och wann MediaWiki de huhjelaade Datteie prööf, dat kein bekannte Risike dren sin, sullt mer doch dat [//www.mediawiki.org/wiki/Manual:Security#Upload_security Sesherheitsloch] zoh maache, ih dat mer et Dattei Huhlaade zohlöht.",
+    "config-no-cli-uploads-check": "'''Opjepaß''': <code>$1</code> es dat Schtandatt-Verzeijschneß för et Datteije-Huhlaade. Beim Opsäze met <abbr lang=\"en\" title=\"Call Level Interface\">CLI</abbr> donn mer ävver nit övverpröhve, dat dat jeschöz es dojääje, dat Skrepte vun doh loufe künne, di mer nit loufe han well.",
+    "config-brokenlibxml": "Op Dingem Rääschner loufe Versione vun PHP un <code lang=\"en\">libxml2</code> zosamme, di ävver nit zosamme paßße, un de Daate em MediaWiki un ander Web_Aanwändunge [//bugs.php.net/bug.php?id=45996 bug kapott maache].\nJangk op PHP 5.2.9 udder dohnoh un op <code lang=\"en\">libxml2</code> 2.7.3 udder dohnoh.\nHeh jeihd et nit wigger.",
+    "config-using531": "MediaWiki läuf nit met PHP $1 zosamme wääje enem [//bugs.php.net/bug.php?id=50394 Fähler em Zosammehang met Parrameetere för <code lang=\"en\">__call()</code>].\nJangk op de Version 5.3.2 vum <i lang=\"en\">PHP</i> ov dohnoh, udder op de Version 5.3.0 udder dovöör, öm dat Problem ze ömjonn.\nHeh jeiht et nit wigger.",
+    "config-suhosin-max-value-length": "<i lang=\"en\">Suhosin</i> es enschtalleet. Dröm kann ene <code lang=\"en\">GET</code>-Parrameeter nit övver {{PLURAL:$1|ei Byte|$1 Bytes|noll Byte}} lang wääde. Dem MediaWiki singe <i lang=\"en\">ResourceLoader</i> kütt doh zwa drömeröm, ävver dat bräms. Wann müjelesch, doht <code lang=\"en\">suhosin.get.max_value_length</code> en dä Dattei <code lang=\"en\">php.ini</code> op 1024 Bytes udder drövver enschtälle, un dann moß <code lang=\"en\">$wgResourceLoaderMaxQueryLength</code> en dä Dattei <code lang=\"en\">LocalSettings.php</code> op däsälve Wäät jesaz wääde.",
+    "config-db-type": "De Zoot Daatebangk:",
+    "config-db-host": "Dä Name vun däm Rääschner met dä Daatebangk:",
+    "config-db-host-help": "Wann Dinge ẞööver för de Daatebangk ob enem andere Rääschner es, donn heh dämm singe Name udder dämm sing <i lang=\"en\">IP</i>-Addräß enjävve.\n\nWann De ob enem Meetẞööver beß, weet Der Dinge Provaider odder däm sing Dokemäntazjuhn saare, wat De endraare moß.\n\nWann De ob enem ẞööver onger <i lang=\"en\">Windows</i> am enshtalleere bes un en <i lang=\"en\">MySQL</i>-Daatebangk häs, künnd_et sin, dat „<code lang=\"en\">localhost</code>“ nit douch för der Name vum ẞööver. Wann dad-esu es, versöhg et ens met „<code lang=\"en\">127.0.0.1</code>“ als <i lang=\"en\">IP</i>-Addräß vum eije Rääschner.\n\nWann De ene <i lang=\"en\">PostgreSQL</i>-ẞööver häs, donn dat Fäld läddesch lohße, öm en Verbendung övver e <i lang=\"en\">Unix socket</i> opzemaache.",
+    "config-db-host-oracle": "Dä Daatebangk ier <i lang=\"en\" title=\"Transparent Network Substrate\">TNS</i>:",
+    "config-db-host-oracle-help": "Donn ene jöltije [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm „<i lang=\"en\">Local Connect</i>“-Name] aanjävve. De Dattei „<code lang=\"en\">tnsnames.ora</code>“ moß för heh dat Projamm seschbaa un ze Lässe sin.<br />Wann heh de Projamm_Biblijoteeke für de Aanwänderprojramme för de Version 10g udder neuer enjesaz wääde, kam_mer och et [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm „<i lang=\"en\">Easy Connect</i>“] jenumme wääde för der Name ze verjävve.",
+    "config-db-wiki-settings": "De Daate vum Wiki",
+    "config-db-name": "Dä Name vun dä Daatebangk:",
+    "config-db-name-help": "Jiff ene Name aan, dä för Ding Wiki passe deiht.\nDoh sullte kei Zweschrereum un kein Stresche dren sin.\n\nWann De nit op Dingem eije Rääschner bes, künnt et sin, dat Dinge Provaider Der extra ene beshtemmpte Name för de Daatebangk jejovve hät, uffr dat de dä drom froore moß udder dat De de Daatebangke övver e Fommulaa selver enreeschte moß.",
+    "config-db-name-oracle": "Schema för de Daatebangk:",
+    "config-db-account-oracle-warn": "Mer han drei Aate, wi mer <i lang=\"en\">Oracle</i> als Daatebangk aanbenge künne.\n\nWann De ene neue Zohjang op de Daatenbangk met Naame un Paßwoot mem Projramm för et Opsäze aanlääje wells, dann jif ene Zohjang met däm Rääsch „<i lang=\"en\">SYSDBA</i>“ aan, dä et alld jitt, un jif däm di Daate aan för dä neue Zohjang aanzelääje.\nDo kanns och dä neue Zohjang vun Hand aanlääje un heh beim Opsäze nur dää aanjävve — wann dä dat Rääsch hät, en de Daatebangk Schema_Objäkte aanzelääje.\nUdder De jiß zwei ongerscheidlijje Zohjäng op de Daatenbangk aan, woh eine vun dat Rääsch zom Aanlääje hät un dä andere moß dat nit un es för der nomaale Bedrief zohshtändesch.\n\nEn Skrep, wat ene Zohjang op de Daatenbangk aanlääsch met all dä nüüdejje Rääschde, fengks De em Verzeishneß <code lang=\"en\">maintenance/oracle/</code> vun Dingem MediaWiki. Donn draan dengke, dat ene Zohjang met beschrängkte Rääschde all di Müjjeleschkeite för et Waade un Repareere nit hät, di de jewöhnlejje Zoot Zohjang met sesh brängk.",
+    "config-db-install-account": "Der Zohjang för en Enreeschte",
+    "config-db-username": "Dä Name vun däm Aanwender för dä Zohjref op de Daatebangk:",
+    "config-db-password": "Et Paßwoot vun däm Aanwender för dä Zohjref op de Daatebangk:",
+    "config-db-password-empty": "Jiv e Paßwoot aan, för dä neue Aanwender för dä Zohjref op de Daatebangk, $1.\nEd es zwa müjjelesch, Aanwender för dä Zohjref op de Daatebangk der ohne e Paßwoot aanzelääje,\nävver dat wöhr en schwere Jevah för de Sescherheit vum Wiki.",
+    "config-db-install-username": "Jiv ene Name aan för dä Aanwender för dä Zohjref op de Daatebangk beim Enshtalleere.\nDat es keine Metmaacher_Name em Wiki — heh dä Name es alleins en der Daatebangk bikannt.",
+    "config-db-install-password": "Jiv e Paßwoot aan för dä Aanwender för dä Zohjref op de Daatebangk beim Enshtalleere.\nDat es kei Paßwoot för ene Metmaacher em Wiki — et es alleins en der Daatebangk bikannt.",
+    "config-db-install-help": "Donn dä Name un et Paßwoot vun däm Aanwänder för der Zohjreff op de Daatebangk jäz för et Enreeshte aanjävve.",
+    "config-db-account-lock": "Donn dersälve Name un et sälve Paßwoot för der nomaale Bedrief vum Wiki bruche",
+    "config-db-wiki-account": "Dä Name vun däm Aanwender för dä Zohjref op de Daatebangk em nomaale Bedrief:",
+    "config-db-wiki-help": "Jiv ene Name un e Paßwoot aan, för dä Aanwender för dä Zohjref op de Daatebangk, wann et wiki nommaal aam Loufe es.\nWan et dä Name en der Daatebangk noch it jit, un dä Aanwender för dä Zohjref op de Daatebangk beim Enshtalleere\njenooch Beräschtijunge hät, läät dä heh dä Aanwender en der Daatebangk aan un jidd_em di Rääschde, di dä nüüdesch hät, ävver nit mieh.",
+    "config-db-prefix": "Vörsaz för de Name vun de Tabälle en de Daatebangk:",
+    "config-db-prefix-help": "Wann ein Daatebangk för mieh wi ein Wiki udder e Wiki uns söns jät zosamme jebruch weed, dann kam_mer noch jet vör de Tabälle ier Name säze. Esu ene Vörsaz sull dubblte Tabällename vermeide hälfe.\nDonn kein Zwescheräum enjävve!\n\nJewöhnlesch bliev dat Feld heh ävver läddesch.",
+    "config-db-charset": "Dä Daatebangk iere Zeishesaz",
+    "config-charset-mysql5-binary": "MySQL (4.1 udder 5.0) binär",
+    "config-charset-mysql5": "MySQL (4.1 udder 5.0) UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 röckwääts kompatibel UTF-8",
+    "config-charset-help": "''' Opjepaß:'''\nWann De et '''röckwääts kompatibel UTF-8 Fommaat''' nemmps, met dem <i lang=\"en\">MySQL</i> singe Version4.1 udder hüüter, dann künnt dat all di Zeishe kappott maache, die nit em <i lang=\"en\" title=\"American Standard Code for Information Interchange\">ASCII</i> sen, un domet all ding Sesherungskopieje kapott maache, wat mer nieh mieh retuur krijje kann.\n\nBeim Shpeishere em '''binäre Fomaat''' deiht MediaWiki de Täxte, di em UTF-8 Fommaat kumme, en dä Daatebangk en binär kodeerte Daatefälder faßhallde.\nDat es flöcker un spaasaamer wi et UTF-8 Fommaat vum <i lang=\"en\">MySQL</i> un määd et müjjelesch, all un jeedes <i lang=\"en\">Unicode</i>-Zeishe met faßzehallde.\n\nBeim Shpeishere em '''UTF-8 Fomaat''' deiht et <i lang=\"en\">MySQL</i> der Zeishesaz un de Kodeerung vun dä Daate känne, un kann se akeraat aanzeije un ömwandelle,\nallerdengs künne kein Zeishe ußerhalv vum [//de.wikipedia.org/wiki/Basic_Multilingual_Plane#Gliederung_in_Ebenen_und_Bl.C3.B6cke jrundlääje Knubbel för vill Shprooche (<i lang=\"en\">Basic Multilingual Plane — BMP</i>)] afjeshpeishert wääde.",
+    "config-mysql-old": "Mer bruche <i lang=\"en\">MySQL</i> $1 udder neuer. Em Momang es <i lang=\"en\">MySQL</i> $2 aam Loufe.",
+    "config-db-port": "De Pooz-Nommer (<i lang=\"en\">port</i>) för de Daatebangk:",
+    "config-db-schema": "Et Schema en de Datebangk för MediaWiki:",
+    "config-db-schema-help": "För jewöhnlesch es dat Schema en Odenong.\nDonn bloß jät draan ändere, wann De sescher weiß, dat dat nüüdesch es.",
+    "config-pg-test-error": "Mer krijje kein Verbendung zor Daatebank '''$1''': $2",
+    "config-sqlite-dir": "Dem <i lang=\"en\">SQLite</i> sing Daateverzeishnes:",
+    "config-sqlite-dir-help": "<i lang=\"en\">SQLite</i> hät all sing Daate zosamme en en einzel Dattei.\n\nEn dat Verzeishneß, wat De aanjiß, moß dat Web_ẞööver_Projramm beim Opsäze eren schriive dörrve.\n\nDat Verzeishneß sullt '''nit''' övver et Web zohjänglesch sin, dröm dom_mer et nit dohen, woh de <i lang=\"en\">PHP</i>-Datteije sin.\n\nMer donn beim Opsäze zwa uß Vöörssh en <code lang=\"en\">.htaccess</code> Dattei dobei, ävver wann di nit werrek, künnte Lück vun ußerhallef aan Ding Daatebangk_Dattei eraan kumme.\nDoh shtonn Saache dren, wi de Addräße för de Metmaacher ier <i lang=\"en\">e-mail</i> un de verschlößelte Paßwööter un de vershtoche un de fottjeschmeße Sigge un ander Saache ussem Wiki, di mer nit öffentlesch maache darref.\n\nDonn Ding Daatebangk et beß janz woh anders hen, noh <code lang=\"en\">/var/lib/mediawiki/''wikiname''</code> för e Beishpell.",
+    "config-oracle-def-ts": "Tabälleroum för der Shtandattjebruch:",
+    "config-oracle-temp-ts": "Tabälleroum för der Jebruch zweschedorsh:",
+    "config-type-mysql": "<i lang=\"en\">MySQL</i>",
+    "config-type-postgres": "<i lang=\"en\">PostgreSQL</i>",
+    "config-type-sqlite": "<i lang=\"en\">SQLite</i>",
+    "config-type-oracle": "<i lang=\"en\">Oracle</i>",
+    "config-support-info": "MediaWiki kann met heh dä Daatebangk_Süßteeme zosamme jonn:\n\n$1\n\nWann dat Daatebangk_Süßteem, wat De nämme wells, onge nit dobei es, dann donn desch aan di Aanleidonge hallde, di bovve verlengk sen, öm et op Dingem ẞööver singem Süßteem müjjelesh ze maache, se aan et Loufe ze krijje.",
+    "config-support-mysql": "* <i lang=\"en\">$1</i> es dat vum MediaWiki et eets ongershtöz Daatebangksüßteem ([http://www.php.net/manual/de/mysql.installation.php Aanleidung för et Övversäze un Enreeschte von PHP met <i lang=\"en\">MySQL</i> dobei, op Deutsch])",
+    "config-support-postgres": "* <i lang=\"en\">$1</i> es e bikannt Daatebangksüßteem met offe Quälltäxde, un en och en Wahl nävve <i lang=\"en\">MySQL</i> ([http://www.php.net/manual/de/pgsql.installation.php Aanleidung för et Övversäze un Enreeschte von PHP met <i lang=\"en\">PostgreSQL</i> dobei, op Deutsch]) Et sinn_er ävver paa klein Fählershe bekannt, um kunne dat em Momang för et reschtijje Werke nit emfähle.",
+    "config-support-sqlite": "* <i lang=\"en\">$1</i> es e eijfach Daatebangksüßteem, wat joot ongershtöz weed. ([http://www.php.net/manual/de/pdo.installation.php Aanleidong för et Övversäze un Enreeschte von PHP met <i lang=\"en\">SQLite</i> dobei, op Deutsch])",
+    "config-support-oracle": "* <i lang=\"en\">$1</i> es e jeschäfflesch Daatebangksüßteem för Ferme. ([http://www.php.net/manual/de/oci8.installation.php Aanleidong för et Övversäze un Enreeschte von PHP met <i lang=\"en\">OCI8</i> dobei, op Deutsch])",
+    "config-header-mysql": "De Enshtällunge för de <i lang=\"en\">MySQL</i> Daatebangk",
+    "config-header-postgres": "De Enshtällunge för de <i lang=\"en\">PostgreSQL</i> Daatebangk",
+    "config-header-sqlite": "De Enshtällunge för de <i lang=\"en\">SQLite</i> Daatebangk",
+    "config-header-oracle": "De Enshtällunge för de <i lang=\"en\">Oracle</i> Daatebangk",
+    "config-invalid-db-type": "Dat es en onjöltijje Zoot Daatebangk.",
+    "config-missing-db-name": "Do moß jät enjävve för dä Name vun dä Daatebangk.",
+    "config-missing-db-host": "Do moß jät enjävve för dä Name vun däm Rääschner met dä Daatebangk.",
+    "config-missing-db-server-oracle": "Do moß jät enjävve för dä Daatebangk ier <i lang=\"en\" title=\"Transparent Network Substrate\">TNS</i>.",
+    "config-invalid-db-server-oracle": "Dä Daatebangk ier <i lang=\"en\" title=\"Transparent Network Substrate\">TNS</i> kann nit „$1“ sin, dat es esu nit jöltesch.\nDöh dörve bloß <i lang=\"en\" title=\"American Standard Code for Information Interchange\">ASCII</i> Boochshtaabe (a-z, A-Z), Zahle (0-9), Ongerstreshe (_), un Punkte (.) dren vörkumme.",
+    "config-invalid-db-name": "Dä Daatebangk iere Name kann nit „$1“ sin, dä es esu nit jöltesch.\nDöh dörve bloß <i lang=\"en\" title=\"American Standard Code for Information Interchange\">ASCII</i> Boochshtaabe (a-z, A-Z), Zahle (0-9), Ongerstresh (_), un Bendeshtresh (-) dren vörkumme.",
+    "config-invalid-db-prefix": "Dä Vörsaz för de Name vun de Tabälle en de Daatebangk kann nit „$1“ sin, dä es esu nit jöltesch.\nDöh dörve bloß <i lang=\"en\" title=\"American Standard Code for Information Interchange\">ASCII</i> Boochshtaabe (a-z, A-Z), Zahle (0-9), Ongerstreshe (_), un Bendeshtreshe (-) dren vörkumme.",
+    "config-connection-error": "$1.\n\nDonn de Name för dä Rääschner, vun däm Aanwender för dä Zohjref op de Daatebangk, un et Paßwoot prööfe, repareere, un dann versöhg et norr_ens.",
+    "config-invalid-schema": "Dat Schema för MediaWiki kann nit „$1“ sin, dä Name wöhr esu nit jöltesch.\nDöh dörve bloß <i lang=\"en\" title=\"American Standard Code for Information Interchange\">ASCII</i> Boochshtaabe (a-z, A-Z), Zahle (0-9), un Ongerstreshe (_) dren vörkumme.",
+    "config-db-sys-create-oracle": "Dat Projramm för MediaWiki opzesäze kann bloß <i lang=\"en\">SYSDBA</i> bruche för ene neue Zohjang zor Daatebangk enzereeschte!",
+    "config-db-sys-user-exists-oracle": "Dä Aanwender „$1“ för dä Zohjref op de Daatebangk jidd_et ald. <i lang=\"en\">SYSDBA</i> kam_mer bloß bruche, för ene neue Zohjang enzereeschte!",
+    "config-postgres-old": "Mer bruche <i lang=\"en\">PostgreSQL</i> $1 udder neuer. Em Momang es <i lang=\"en\">PostgreSQL</i> $2 aam Loufe.",
+    "config-sqlite-name-help": "Söhk enen Name uß, dä Ding Wiki beschrief.\nDonn kein Bendeschresch un Zweschräum en däm Name bruche.\nDä Name weed för der Dateiname för de <i lang=\"en\">SQLite</i> Daatebangk jenumme.",
+    "config-sqlite-parent-unwritable-group": "Mer kunnte dat Verzeischneß för de Daate, <code lang=\"en\"><nowiki>$1</nowiki></code>, nit enreeschte, weil dat Projramm fö dä Web_ẞööver en dat Verzeischneß doh drövver, <code><nowiki>$2</nowiki></code>, nix erin donn darref.\n\nMer han dä Name vun däm Zohjang op et Süßteem eruß jefonge, onger dämm dat Web_ẞööver_Projramm läuf. Jez moß De bloß doför sorrje, dat dä en dat Verzeischneß  <code><nowiki>$3</nowiki></code> schrieve kann, öm heh wigger maache ze künne.\nOb enem Süßteem met <i lang=\"en\">Unix</i>- oder <i lang=\"en\">Linux</i> jeiht dat esu:\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Mer kunnte dat Verzeischneß för de Daate, <code lang=\"en\"><nowiki>$1</nowiki></code>, nit enreeschte, weil dat Projramm fö dä Web_ẞööver en dat Verzeischneß doh drövver, <code><nowiki>$2</nowiki></code>, nix erin donn darref.\n\nMer han dä Name vun däm Zohjang op et Süßteem nit eruß fenge künne, onger dämm dat Web_ẞööver_Projramm läuf. Jez moß De bloß doför sorrje, dat dä en dat Verzeischneß  <code><nowiki>$3</nowiki></code> schrieve kann, öm heh wigger maache ze künne. Wann De dä Name och nit weiß, maach, dat jeeder_ein doh schrieve kann.\nOb enem Süßteem met <i lang=\"en\">Unix</i>- oder <i lang=\"en\">Linux</i> jeiht dat esu:\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Ene Fähler es opjetrodde beim Aanlääje vum Daate_Verzeishneß „$1“.\nDon dä Plaz för et Shpeishere prööfe un Repareere, dann versöhg et norr_ens.",
+    "config-sqlite-dir-unwritable": "Mer künne nit en dat Verzeishneß „$1“ schrieeve\nDonn dohvun de Zohjreffs_Rääschde esu verändere, dat der Webßööver doh dren schrieeve kann, un dann versöhg et norr_ens.",
+    "config-sqlite-connection-error": "$1.\n\nDonn onge dat Verzeishnes un der Name vun der Daatebangk prööfe un repareere, un dann versöhg_et norr-ens.",
+    "config-sqlite-readonly": "En di Dattei <code lang=\"en\">$1</code> künne mer nit schrieve.",
+    "config-sqlite-cant-create-db": "Mer kunnte di Dattei <code lang=\"en\">$1</code> för de Daatebangk nit aanlääje.",
+    "config-sqlite-fts3-downgrade": "Dat PHP heh hät kein Ongershtözong för FTS3, dröm donn mer de Daatebangktabälle eronger shtoofe.",
+    "config-can-upgrade": "Et sinn-er ald Daatebangktabelle vum MediaWiki en dä Daatebangk.\nÖm di op der Shtand vum MediaWiki $1 ze bränge, donn jäz op „{{int:config-continue}}“ klecke.",
+    "config-upgrade-done": "Alles es jäz om neue Shtand.\n\nMer kann dat Wiki jäz [$1 bruche].\n\nWann De Ding Dattei <code lang=\"en\">LocalSettings.php</code> neu schrieve wells, donn onge op dä Knopp klicke.\nDat dom_mer ävver '''nit vörschlonn'''em Jääjedeil, ußer, wann et Probleme mem Wiki jitt.",
+    "config-upgrade-done-no-regenerate": "Alles es jäz om neue Shtand.\n\nMer kann dat Wiki jäz [$1 bruche].",
+    "config-regenerate": "Donn de Dattei <code lang=\"en\">LocalSettings.php</code> neu opsäze →",
+    "config-show-table-status": "Et Kommando <code lang=\"en\"><code>SHOW TABLE STATUS</code></code> aan de Daatebangk es donävve jejange!",
+    "config-unknown-collation": "'''Opjepaß:''' De Daatabangk deiht en onbikannte Reijefollsch bruche, för Booshtaabe un Zeishe ze verjliishe un ze zotteere.",
+    "config-db-web-account": "Dä Zohjang zor Daatebangk för et Wiki",
+    "config-db-web-help": "Donn ene Name un e Paßwoot för der Zohjang zor Daatebangk för et Wiki em nomaale Bedrief aanjävve.",
+    "config-db-web-account-same": "Donn dersällve Zohjang nämme, wi heh beim Opsäze.",
+    "config-db-web-create": "Donn dä Zohjang aanlääje, wann dä noch nit doh es.",
+    "config-db-web-no-create-privs": "Dä Zohjang för et Opsäze es nit berääschtesch, ene ander Zohjan enzereeschte.\nDä aanjejovve Zohjang för der Nomaalbedrief moß dröm schunn enjersht sen!",
+    "config-mysql-engine": "De Zoot udder et Fommaat vun de Tabälle:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''Opjepaß:''' <i lang=\"en\">MyISAM</i> es als Speicher för <i lang=\"en\">MySQL</i> nit besönders joot för et Zosammeschpell met MediaWiki zo bruche:\n* Dorj_et kumplätte Sperre vun Tabälle, künne koum ens Saache parrallel en dä Daatebangk jedonn wääde.\n* Dat Fomaat es anfällesch för Probleme met de Daate.\n* Et weed vun MediaWiki nit ėmmer zopaß ongerschtöz.\n\nWann Ding <i lang=\"en\">MySQL</i> et Schpeischere en <i lang=\"en\">InnoDB</i>-Datteije ongerschtöze deiht, dom_mer dat nohdröcklesch ämfähle.\nKann dä ẞööver dat nit, künnd et joode jelääjeheit sin, dä ens op der neuste Schtand ze bränge.",
+    "config-mysql-only-myisam-dep": "'''Opjepaß:''' <i lang=\"en\">MyISAM</i> es de einzeje Zoot Speischerprojramm för <i lang=\"en\">MySQL</i>, di nit för MediaWiki ze ämfähle es, weil:\n* wääje dem Schpärre vun jannze Tabälle sin koum paralleele Axjuhne en dä Daatebangk möjjelesch,\n* et es aanfällesch för Probleeme met de Daate es, un\n* et weed vun MediaWiki nit emmer jood ongerschtöz.\n\nDing Enschtallazjuhn vum <i lang=\"en\">MySQL</i> kann nit met <i lang=\"en\">InnoDB</i> ömjonn.\nWi wöhr et met ener neuere väsjohn vum <i lang=\"en\">MySQL</i>?",
+    "config-mysql-engine-help": "'''InnoDB''' es fö jewöhnlesch et beß, weil vill Zohjreffe op eijmohl joot ongershtöz wääde.\n\n'''MyISAM''' es flöcker op Rääschnere met bloß einem Minsch draan, un bei Wikis, di mer bloß lässe un nit schrieeve kann.\nMyISAM-Daatebangke han em Schnett mieh Fähler un jon flöcker kappott, wi InnoDB-Daatebangke.",
+    "config-mysql-charset": "Dä Daatebangk iere Zeishesaz:",
+    "config-mysql-binary": "binär",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "Beim Shpeishere em '''binäre Fomaat''' deiht MediaWiki de Täxte, di em UTF-8 Fommaat kumme, en dä Daatebangk en binär kodeerte Daatefälder faßhallde.\nDat es flöcker un spaasaamer wi et UTF-8 Fommaat vum <i lang=\"en\">MySQL</i> un määd et müjjelesch, all un jeedes <i lang=\"en\">Unicode</i>-Zeishe met faßzehallde.\n\nBeim Shpeishere em '''UTF-8 Fomaat''' deiht et <i lang=\"en\">MySQL</i> der Zeishesaz un de Kodeerung vun dä Daate känne, un kann se akeraat aanzeije un ömwandelle,\nallerdengs künne kein Zeishe ußerhalv vum [//de.wikipedia.org/wiki/Basic_Multilingual_Plane#Gliederung_in_Ebenen_und_Bl.C3.B6cke jrundlääje Knubbel för vill Shprooche (<i lang=\"en\">Basic Multilingual Plane — BMP</i>)] afjeshpeishert wääde.",
+    "config-site-name": "Däm Wiki singe Name:",
+    "config-site-name-help": "Dä douch em Tittel vun de Brauserfinstere un aan ätlije andere Shtälle op.",
+    "config-site-name-blank": "Donn ene Name för di Sait aanjävve.",
+    "config-project-namespace": "Dä Name för et Appachtemang övver et Projäk:",
+    "config-ns-generic": "Projäk",
+    "config-ns-site-name": "Et sällve wi däm Wiki singe Name: $1",
+    "config-ns-other": "Andere (jiff aan wälshe)",
+    "config-ns-other-default": "MingWiki",
+    "config-project-namespace-help": "Noh dämm Vörbeld vun de Wikipeedija, donn vill Wikis dänne ier Sigge övver et Wiki un sing Rääjelle vun dä Sigge mem Enhald vum Wiki tränne, un en enem extra Appachtemang för et „'''Projäk'''“ afflääje.\nSigge en däm Appachtemang fange all med enem beshtemmpte Vörsaz aan, däm Name vum Appachtemang, un dä moß De heh faßlääje.\nDä Name kann beshtemmpte Zeiche nit enthallde, wi „#“ un „:“ un et es Tradizjuhn, dat hä vum Name vum Wiki her kütt.",
+    "config-ns-invalid": "Dat aanjejovve Appachtemang „<nowiki>$1</nowiki>“ es nit jöltesch.\nNemm ene andere Name för däm Wiki sing eije Appachtemang.",
+    "config-ns-conflict": "Dat aanjejovve Appachtemang „<nowiki>$1</nowiki>“ kütt ald als Standatt-Appachtemang em MediaWiki vör.\nNemm ene andere Name för däm Wiki sing eije Appachtemang.",
+    "config-admin-box": "Der Zohjang för der eezte Wiki_Köbes",
+    "config-admin-name": "Metmaacher_Name:",
+    "config-admin-password": "Et Paßwoot:",
+    "config-admin-password-confirm": "Norrens dat Paßwoot:",
+    "config-admin-help": "Jif Dinge leevste Name als Metmaacher för Desch aan, för e Beishpell „Schmitzens Pitter“\n— Dat weed dä Name wääde, met dämm De Desch enlogge deihs.",
+    "config-admin-name-blank": "Jiv ene Metmaacher_Name en för dä Wiki-Köbes.",
+    "config-admin-name-invalid": "„<nowiki>$1</nowiki>“ es keine jöltijje Metmaacher_Name.\nJiv ene joode Name en!",
+    "config-admin-password-blank": "Do mos_e Paßwoot för dä Wiki_Köbes aanjävve!",
+    "config-admin-password-same": "Dat Paßwoot un dä Name dörve nit ejaal sin!",
+    "config-admin-password-mismatch": "Di Paßwööter sin ongerscheidlesh!",
+    "config-admin-email": "Addräß för de <i lang=\"en\">e-mail</i>:",
+    "config-admin-email-help": "Jiv heh di Adräß för de <i lang=\"en\">e-mail</i> aan, woh De <i lang=\"en\">e-mail</i> vun ander Metmaacher uss_em Wiki hen krijje wells, di et Der müjjelesh määt, Ding Paßwoot automatetsch truusche ze lohße, un woh Nohreeshte övver veränderte Sigge op Dinge Oppaßleß hen jescheck wääde sulle.\nDe kanns dat Fäld ävver och läddesch lohße.",
+    "config-admin-error-user": "Beim Enreeshte vum Zohjang för dä Wiki_Köbes „<nowiki>$1</nowiki>“ es ene Fähler em Wiki opjetrodde.",
+    "config-admin-error-password": "Beim Paßwoot-Säze för dä Wiki_Köbes „<nowiki>$1</nowiki>“ es ene Fähler em Wiki opjetrodde.: <pre>$2</pre>",
+    "config-admin-error-bademail": "Do häs_en onjöltijje Addräß för de <i lang=\"en\">e-mail</i> aanjejovve.",
+    "config-subscribe": "Donn de [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce <i lang=\"en\">e-mail</i>-Leß met de Aanköndijunge vum MediaWiki] abonnere.",
+    "config-subscribe-help": "Do kumme bloß winnish Meddeilunge un di jonn övver neu Versiohne vom MediaWiki un weeshtejje Saache vun däm sing Sesherheit.\nDo sullts se abbonneere, un Ding MediWiki_Projramme op der neue Shtand bränge, wann neu Version eruß kumme.",
+    "config-subscribe-noemail": "Do has versöhk, der ohne en Addräß för Ding <i lang=\"en\">e-mail<i> aanzejävve, de Aanköndijonge för Aanköndijunge för neue Versione ze abboneere. Jivv en Addräß aan, wann De di Aanköndijonge hann wells.",
+    "config-almost-done": "Do bes beinah dorsh!\nDo künnts jez der Räß vun de einzel Enshtellunge övverjonn, un et Wiki tiräktemang fäädesch opsäze.",
+    "config-optional-continue": "De wells noch mieh Frore jeshtallt krijje un noch mieh Enshtällunge maache?",
+    "config-optional-skip": "Nä, lohß dä Ömshtand, donn eifarr_et Wiki opsäze.",
+    "config-profile": "Enshtällunge för de Metmaacher ier Rääschte:",
+    "config-profile-wiki": "En offe Wiki",
+    "config-profile-no-anon": "Schriever möße enlogge",
+    "config-profile-fishbowl": "Bloß ußdröcklesch zohjelohße Schriever",
+    "config-profile-private": "E jeschloße Privat_Wiki",
+    "config-profile-help": "Wikis loufe et bäß, wam_mer esu vill Lück wi möjjelesch draan metmaache un schrieve löht.\nMet MediaWiki es et ejfach, de neuste Änderonge ze beloore un wat ahnungslose udder fiese Lück kapott jemaat han wider retuur ze maache.\n\nBloß, mänsch eine häd_eruß jefonge, dat mer MediaWiki jood en en jruuße Zahl ongerscheidlijje Rolle bruche kann, un nit emmer es et leisch, ene vum onverfälschte Wiki_Wääsch ze övverzeuje.\nEsu häß De de Wahl:\n\n'''{{int:config-profile-wiki}}''' löht jeder_ein metschrieve, och ohne sesch enzelogge.\n\n'''{{int:config-profile-no-anon}}''', dat sorsch för mieh seeschbaa Verantwootlischkeite, künnt ävver zohfällije Methellefer verschrecke.\n\n'''{{int:config-profile-fishbowl}}''' löht nor de ußjesöhk Metmaacher schrieve, ävver de janze Öffentleshkeit kann et lässe un süht och de ällder Versione, un wat wää wann draan jedonn hät.\n\n'''{{int:config-profile-private}}''' kann nur lässe, wäh en et Wiki zohjelohße es, un desellve Jropp kann uch schrieve.\n\nNoch ander un un opwändijere Enschtellunge för de Rääschte sin möjjelesch, wann et Wiki ens aam Loufe es. Loor Der doför de [//www.mediawiki.org/wiki/Manual:User_rights zopaß Hölp em Handbooch] aan.",
+    "config-license": "Urhävverrääsch un Lizänz:",
+    "config-license-none": "Kein Fooßreih övver de Lizänz",
+    "config-license-cc-by-sa": "<i lang=\"en\">Creative Commons</i> Der Name moß jenannt sin, et Wiggerjävve es zohjelohße onger dersellve Bedengunge",
+    "config-license-cc-by": "De <i lang=\"en\">Creative Commons</i> ier Lizänz met Namensnännong",
+    "config-license-cc-by-nc-sa": "<i lang=\"en\">Creative Commons</i> Nit för e Jeschäff ze maache, et Wiggerjävve es zohjelohße unger dersellve Bedengunge",
+    "config-license-cc-0": "<i lang=\"en\">Creative Commons</i> „Noll“ (jemeinfrei udder Pablic Domain)",
+    "config-license-gfdl": "De <i lang=\"en\">GNU</i>-Lizänz för frei Dokemäntazjuhne, Version 1.3 udder en späädere",
+    "config-license-pd": "Allmende (jemeinfrei, <i lang=\"en\">public domain</i>)",
+    "config-license-cc-choose": "En <i lang=\"en\">Creative Commons</i> Lizänz, sellver ußjesöhk:",
+    "config-license-help": "Ättlijje öffentleje Wikis donn iehr Beidrääsh onger en [http://freedomdefined.org/Definition frei Lizänz] shtelle.\nDat hellef, e Jeföhl vun Jemeinsamkeid opzeboue, un op lange Seesh emmer wider Beidrääsch ze krijje.\nDat es nit onbedengk nüüdesh för e Jeschäffs- udder Privaat_Wiki.\n\nWä Stöcke uß de Wikipedia bruche well, un han well, dat de Wikipedia uss_em eije Wiki jät övvernämme kann, sullt „'''<i lang=\"en\">Creative Commons</i>, dem Schriever singe Name moß jenannt wääde, un Wiggerjävve zoh dersellve Bedengunge es zohjelohße'''“ ußwähle.\n\nDe su jenannte '''<i lang=\"en\">GNU Free Documentation License</i>''' (de freije Lizänz för Dokemäntazjuhne vun dä GNU) sen de ahle Lizänzbedenonge vun de Wikipedia. Se es emmer noch in Odenong un jöltesch, ävver se es schwer ze vershtonn un et Wiggerjävve un widder Verwände es manshmool schwieeresch domet.",
+    "config-email-settings": "Enschtellunge för de <i lang=\"en\">e-mail</i>",
+    "config-enable-email": "De <i lang=\"en\">e-mail</i> noh druße zohlohße",
+    "config-enable-email-help": "Sulle <i lang=\"en\">e-mails</i> zohjelohße sin, moß mer, domet et noher flupp, de [http://www.php.net/manual/en/mail.configuration.php Enschtellunge em PHP för de <i lang=\"en\">e-mails</i>] zopaß jemaat han.\nWann kein <i lang=\"en\">e-mails</i> nüüdesch sin, kam_mer se heh afschallde.",
+    "config-email-user": "<i lang=\"en\">e-mails</i> zwesche de Metmaacher zohlohße",
+    "config-email-user-help": "Määt et müjjelesch, dat sesch de Metmaacher jääjesiggesch <i lang=\"en\">e-mails</i> schecke künne, wann se dat en iehre eije Enschtellunge och enjeschalldt han.",
+    "config-email-usertalk": "<i lang=\"en\">e-mails</i> mem Bescheid zohlohße, dat einem sing Klaafsigg verändert woodt",
+    "config-email-usertalk-help": "Maach et müjjelesch, dat Metmaaacher en iere Enstellunge <i lang=\"en\">e-mails</i> mem Bescheid zohlohße, dat einem sing Klaafsigg verändert woodt.",
+    "config-email-watchlist": "Nohreeschte övver Änderonge aan Sigg op de Opaßleßte zohlohße",
+    "config-email-watchlist-help": "Lohß Metmaacher Nohreeshte övver de Sigge op dänne iehr Oppaßleß krijje, wann se et en iehre Enschtellonge ußjewählt han.",
+    "config-email-auth": "Donn de Övverprööfung för Zohjangsberääschtejunge övver de <i lang=\"en\">e-mail</i> zohlohße",
+    "config-email-auth-help": "Wann dat aanjeschald es, möße Metmaacher, di iehr Adräß för de <i lang=\"en\">e-mail</i> neu aanjävve udder ändere, di Addräß övver ene Lengk beschtäätejje, dä se met de <i lang=\"en\">e-mail</i> jescheck krijje.\nBloß aan esu beschtääteschte Adräße deiht et Wiki <i lang=\"en\">e-mails</i> schecke, Di künne vun annder Metmaachere kumme, udder vum Wiki sellver, wann en Sigg en däm Metmaacher singe Oppaßleß verändert woode es.\nMer '''schlonn vör, dat aanzeschallde''' för öffentlesch Wikis, weil sönß zoh leisch Driß mem Wiki singe <i lang=\"en\">e-mail</i> jemaat wääde künnt.",
+    "config-email-sender": "De Adräß för de Antwoote op <i lang=\"en\">e-mails</i>:",
+    "config-email-sender-help": "Jiff de Adräß för de <i lang=\"en\">e-mail</i> en, woh Antwoote ob em Wiki singe <i lang=\"en\">e-mails</i> hen jonn sulle.\nDat es och de Adräß, woh de <i lang=\"en\">e-mails</i> met Fählermäldonge hen jon.\nVill ẞöövere för de <i lang=\"en\">e-mail</i> welle winnischßdens ene jöltijje Domain en dä Adräß han.",
+    "config-upload-settings": "Belder un Datteie huh laade",
+    "config-upload-enable": "Belder un Datteie huh laade zohlohße",
+    "config-upload-help": "Datteije huh ze laade künnt e Risiko för dem ẞööver singe Sescherheit sin.\nMieh doh drövver kam_mer em [//www.mediawiki.org/wiki/Manual:Security Kapitel övver de Sescherheit] em Handbooch lässe.\n\nÖm et Huhlaade zohzelohße donn de Rääschde för der Zohjreff op dat Ongerverzeischneß <code lang=\"en\">images</code> em MediaWiki singem Houpverzeischneß esu enshtälle, dat et Webßööverprojramm doh Datteije un Verzeischneße eren schrieve kann.\nDonoh donn heh di Saach zohlohße.",
+    "config-upload-deleted": "Dat Verzeishneß för fottjeschmeße Datteije:",
+    "config-upload-deleted-help": "Söhk e Verzeijschneß uß för de fottjeschmeße Datteije vum Wiki dren afzelääje.\nEt bäß es, wam_mer vum <i lang=\"en\">world wide web</i> doh nit drahn kumme kann.",
+    "config-logo": "Dem Wiki singem Logo sing <i lang=\"en\">URL</i>:",
+    "config-logo-help": "De Schtandart_Bedeen_Bovverfläsch vum MediaWiki hät e Logo bovve en der Eck met 135x160 Pixele.\nDonn e zopaß Logo huh laade, un donn däm sing URL heh endraare.\n\nDo kanns <code lang=\"en\">$wgStylePath</code> udder <code lang=\"en\">$wgScriptPath</code> nämme, wann Ding Logo en einem vun dänne Pahde litt.\n\nWells De kei Logo han, draach heh nix en.",
+    "config-instantcommons": "Donn <i lang=\"en\">InstantCommons</i> zohlohße.",
+    "config-instantcommons-help": "<i lang=\"en\">[//www.mediawiki.org/wiki/InstantCommons InstantCommons]</i> es en Eijeschaff, di et för Wikis müjjelesch määt, Belder, Tondatteie un ander Meedijedatteie enzebenge, di op dä Webßait vun de <i lang=\"en\">[//commons.wikimedia.org/ Wikimedia Commons]</i> ongerjebraat sin. Öm dat noze ze künne, moß dä ẞööver vum MediaWiki en Verbendung nohm Internet opnämme künne.\n\nMieh Aanjaabe doh drövver un en Aanleidung, wi mer och ander Wikis ußer de <i lang=\"en\">Wikimedia Commons</i> doför enreeschte kann, fengk mer em [//mediawiki.org/wiki/Manual:$wgForeignFileRepos Handbooch].",
+    "config-cc-error": "Et Ußsöhke övver de <i lang=\"en\">Creative Commons</i> iehr Projramm zum Lizänzbeshtemme hät nix jebraat.\nDonn de Lizänz sellver beshtemme.",
+    "config-cc-again": "Noch ens neu ußsöhke&nbsp;…",
+    "config-cc-not-chosen": "Söhk uß, wat för en Lizänz vun de <i lang=\"en\">Creative Commons</i> De han wells, un donn dann op „<i lang=\"en\">proceed</i>“ klecke.",
+    "config-advanced-settings": "Fottjeschredde Enshtellunge",
+    "config-cache-options": "Enshtällunge för et Faßhallde vun Objäkte em Zweschsheisher:",
+    "config-cache-help": "Objäkte em Zwescheshpeisher faßhallde, dat heiß öff jebruchte Daate en der <i lang=\"en\">cache</i> donn, bruche mer, öm MediaWiki flöcker ze maache,\nMeddlere un jruuße Wiki-ẞaits sullte dat onbedengk ußnoze, un och bei klein Wikis weed mer et jood merke.",
+    "config-cache-none": "Keine Zweschshpeijsher (Et jeid_em Wiki nix verloore, ußer velleish Schnälleshkeid wann vill loss es)",
+    "config-cache-accel": "Ene Objäk<i lang=\"en\">cache</i> vum PHP (<i lang=\"en\">APC</i>, <i lang=\"en\">XCache</i>, udder <i lang=\"en\">WinCache</i>)",
+    "config-cache-memcached": "Donn der <code lang=\"en\">memcached</code> ẞööver nämme (Määt extra Enshtellunge un Opsäze nüüdesch)",
+    "config-memcached-servers": "De <code lang=\"en\">memcached</code> ßöövere:",
+    "config-memcached-help": "Donn de Leß aanhjävve, met de <i lang=\"en\">IP</i>-Addräße för der <code lang=\"en\">memcached</code> ẞööver ze bruche.\nSe sullte ein pro Reih opjeschrevve sin, un en Pooz (<i lang=\"en\">port</i>) ier Nommer han, För e Beishpell, esu:\n 127.0.0.1:11211\n 192.168.1.25:1234",
+    "config-memcache-needservers": "Do häss der <code lang=\"en\">memcached</code> als Dinge Zoot vun Zwescheshpeijscher aanjejovve, ävver nit eine ẞööver doför.",
+    "config-memcache-badip": "Do häss en onjöltijje <i lang=\"en\">IP</i>-Addräß för der <code lang=\"en\">memcached</code> ẞööver aanjejovve: $1.",
+    "config-memcache-noport": "Do has kein Pooz (<code lang=\"en\">port</code>) Nommer aanjejovve för mem <code lang=\"en\">memcached</code> ẞööver ze bruche: $1.\nWann De di Nommer nit weiß, der Shtandatt es 11211.",
+    "config-memcache-badport": "Dem <code lang=\"en\">memcached</code> ẞööver singe Pooz (<code lang=\"en\">port</code>) Nommere sullte zwesche $1 un $2 sin.",
+    "config-extensions": "Projramm-Zohsäz (<i lang=\"en\">Extensions</i>)",
+    "config-extensions-help": "Di bovve opjeleß Zohsazprojramme för et MediaWiki sin em Verzeischneß <code lang=\"en\">./extensions</code> ald ze fenge.\n\nDo kann se heh un jez aanschallde, ävver se künnte noch zohsäzlesch Enshtellunge bruche.",
+    "config-install-alreadydone": "'''Opjepaß:'''\nEt sühd esu uß, wi wann De MediaWiki ald enshtalleet hätß, un wöhrs aam Versöhke, dat norr_ens ze donn.\nJang wigger op de näähßte Sigg.",
+    "config-install-begin": "Wann De op „{{int:config-continue}}“ klecks, jeiht de Enshtallazjuhn vum MediaWiki loßß.\nWann De noch Änderonge maache wells, dann kleck op „{{int:config-back}}“.",
+    "config-install-step-done": "jedonn",
+    "config-install-step-failed": "donävve jejange",
+    "config-install-extensions": "Zohsazprojramme enjeschloße",
+    "config-install-database": "Ben de Daatebangk aam ennreeschte.",
+    "config-install-schema": "Dat Schema en dä Daatebank weed aanjelaat.",
+    "config-install-pg-schema-not-exist": "Dat Scheema för <i lang=\"en\">PostgreSQL</i> es nit doh.",
+    "config-install-pg-schema-failed": "Et Tabälle-Opsäze es donävve jejange.\nDonn doför sorrje, dat dä Daatebangk-Aanwänder „$1“ en dämm Daatebangkscheema „$2“ schrieve kann.",
+    "config-install-pg-commit": "Ben de Änderonge aam ennbränge.",
+    "config-install-pg-plpgsql": "Ben noh dä Daatebangkshprooch <code lang=\"en\">PL/pgSQL</code> aam söhke.",
+    "config-pg-no-plpgsql": "Do moß de Daatebangkshprooch <code lang=\"en\">PL/pgSQL</code> en dä Daatebangk $1 enreeschte.",
+    "config-pg-no-create-privs": "Dä Daatebangk-Aanwänder för et Enreeschte hät nit jenooch Rääschde, öm ene andere Daatebangk-Aanwänder en dä Daatebangk aanzelääje.",
+    "config-pg-not-in-role": "Dä aanjejovve Zohjang för et Web jiddet ald.\nDä aanjejovve Zohjang för et Enschtalleere es keine <i lang=\"en\">superuser<i> un es nit en de Web-Jropp, dröm kam_mer domet kein Dateije aanlääje, di däm Zohjang för et Web jehüüre.\n\nFör MeedijaWiki mößße dämm ävver em Momang di Tabälle jehüüre.\nDröm donn ene andere Name för dä Zohjang zom Wäb nämme, udder donn „retuur“ klicke, un jivv ene Zohjang för et Enschtalleere aan, dä jenooch Rääschte hät.",
+    "config-install-user": "Ben unse Daatebangk-Aanwänder en de Daatebangk am aanlääje.",
+    "config-install-user-alreadyexists": "Dä Aanwender „$1“ för dä Zohjref op de Daatebangk kann nit aanjelaat wääde, et jidd_en alld.",
+    "config-install-user-create-failed": "Dä Aanwender „$1“ för dä Zohjref op de Daatebangk kunnt nit aanjelaat wääde, wäje: <code lang=\"en\">$2</code>",
+    "config-install-user-grant-failed": "Däm Daatebangk-Aanwänder sing Beräschtijunge ze säze däät nit fluppe wääje: $2",
+    "config-install-user-missing": "Dä aanjejovve Metmaacher „$1“ jidd_et nit.",
+    "config-install-user-missing-create": "{{int:Config-install-user-missing}}<!-- $1 -->\nDonn e Höhksche en et Käßje „{{int:Createaccount}}“ onge, wann De dä aanlääje wells.",
+    "config-install-tables": "Ben de Daatebangk-Tabälle aam aanlääje.",
+    "config-install-tables-exist": "'''Opjepaß''': Et schingk, dem MediaWiki sing Tabälle sin alt doh.\nDoh dom_mer nix aanlääje.",
+    "config-install-tables-failed": "'''Fähler''': De Tabälle kunnte nit aanjelaat wääde, wääje: $1",
+    "config-install-interwiki": "Ben de Engerwiki-Tabäll met de shtandattmääßejje Daate aam fölle.",
+    "config-install-interwiki-list": "Mer kunnte de Dattei <code lang=\"en\">interwiki.list</code> nit fenge.",
+    "config-install-interwiki-exists": "'''Opjepaß''': En der Engewiki-Tabäll schingk alt jät dren ze shtonn.\nDoh dom_mer nix dobei.",
+    "config-install-stats": "De Shtatestek-Zahle wääde op Aanfang jeshtallt.",
+    "config-install-keys": "Jeheime Schlößel wääde opjebout.",
+    "config-insecure-keys": "'''Opjepaß:''' {{PLURAL:$2|Ene jeheime Schlößel|Jeheim Schlößele|Keine jeheime Schlößel}} ($1) {{PLURAL:$2|es|sin|es}} automattesch aanjelaat woode. {{PLURAL:$2|Dä es|Di sin|Hä es}} ävver nit onbedengk janz sescher. Övverlääsch Der, {{PLURAL:$2|dä|di|en}} norr_ens vun Hand ze ändere.",
+    "config-install-sysop": "Dä Zohjang för der Wiki-Köbes weed aanjelaat.",
+    "config-install-subscribe-fail": "Mer künne de <i lang=\"en\">e-mail</i>-Leß <code lang=\"en\">mediawiki-announce</code> nit abonneere: $1",
+    "config-install-subscribe-notpossible": "<code lang=\"en\">cURL</code> es nit enstalleed un <code lang=\"en\">allow_url_fopen</code>es nit doh.",
+    "config-install-mainpage": "Ben de Houpsigg med enem shtandatmääßeje Enhald aam aanlääje",
+    "config-install-extension-tables": "Ben Datebangk-Tabälle för de Zohsazprojramme aam ennreschte",
+    "config-install-mainpage-failed": "Kunnt de Houpsigg nit afshpeishere: $1",
+    "config-install-done": "'''Jlöckwonsch!'''\nMediaWiki es jetz enstalleet.\n\nEt Projramm zom Enreeschte hät en Dattei <code lang=\"en\">LocalSettings.php</code> aanjelaat.\nDoh sin de Enstellunge vum Wiki dren.\n\nDo weeß se eronge laade möße un dann en dem Wiki sing Aanfangsverzeishnes donn möße, et sellve Verzeisneß, woh di Dattei <code lang=\"en\">index.php</code> dren litt. Dat Erongerlaade sullt automattesch aanjefange han.\n\nWann domet jet nit jeflupp hät, udder De di Dattei norr_ens han wells, donn op dä Lengk heh dronger klecke:\n\n$3\n\n'''Opjepaß''': Wann De dat jez nit deihß, es alles verschött, wat De bes jöz enjejovve häs, weil di Dattei fott es en däm Momang, woh heh dat Projamm aam Engk es.\n\nWann De mem Ronger- un widder Huhlaade fäädesh bes, kanns De '''[$2 en Ding Wiki jonn]'''.",
+    "config-download-localsettings": "Donn di Dattei <code lang=\"en\">LocalSettings.php</code> eronger laade",
+    "config-help": "Hölp",
+    "config-nofile": "De Dattei „$1“ ham_mer nit jefonge. Es di fottjeschmeße?",
+    "config-extension-link": "Häs De jewoß, dat et Wiki [//www.mediawiki.org/wiki/Manual:Extensions Zohsazprojramme] hann kann?\n\nDo kanns [//www.mediawiki.org/wiki/Category:Extensions_by_category Zohsazprojramme noh Saachjroppe] söhke udder en de [//www.mediawiki.org/wiki/Extension_Matrix Tabäll met de Zohsazprojramme] kike, öm de kumplätte Leß met de Zohsazprojramme ze krijje.",
+    "mainpagetext": "'''MediaWiki es jetz enstalleet.'''",
+    "mainpagedocfooter": "Luur en et (änglesche) [//meta.wikimedia.org/wiki/Help:Contents Handbooch] wann De wesse wells wie de Wiki-Soffwär jebruch un bedeent wääde moß.\n\n== För dä Aanfang ==\nDat es och all op Änglesch:\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Donn MediaWiki op Ding Schprooch aanpaße]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ku-latn.json b/includes/installer/i18n/ku-latn.json
new file mode 100644 (file)
index 0000000..30a01f4
--- /dev/null
@@ -0,0 +1,17 @@
+{
+    "@metadata": {
+        "authors": [
+            "George Animal"
+        ]
+    },
+    "config-information": "Agahî",
+    "config-your-language": "Zimanê te:",
+    "config-page-language": "Ziman",
+    "config-page-name": "Nav",
+    "config-page-options": "Vebijêrk",
+    "config-ns-generic": "Proje",
+    "config-install-step-done": "çêbû",
+    "config-help": "alîkarî",
+    "mainpagetext": "'''MediaWiki serketî hate çêkirin.'''",
+    "mainpagedocfooter": "Alîkarî ji bo bikaranîn û guherandin yê datayê Wîkî tu di bin [//meta.wikimedia.org/wiki/Help:Contents pirtûka alîkarîyê ji bikarhêneran] da dikarê bibînê.\n\n== Alîkarî ji bo destpêkê ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lîsteya varîyablên konfîgûrasîyonê]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lîsteya e-nameyên versyonên nuh yê MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/lad.json b/includes/installer/i18n/lad.json
new file mode 100644 (file)
index 0000000..3bae636
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Universal Life"
+        ]
+    },
+    "mainpagetext": "'''MedyaViki ya se kureó con reuxitá.'''",
+    "mainpagedocfooter": "Konsulta la [//meta.wikimedia.org/wiki/Ayudo:Contenido Guía de usador] para tomar enformasyones encima de como usar el lojikal viki.\n\n== En Empeçando ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings La lista de los arreglamientos de la konfiggurasyón]\n* [//www.mediawiki.org/wiki/Manual:FAQ/lad DDS de MedyaViki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce La lista de las letrales (e-mail) de MedyaViki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/lb.json b/includes/installer/i18n/lb.json
new file mode 100644 (file)
index 0000000..8aa3866
--- /dev/null
@@ -0,0 +1,184 @@
+{
+    "@metadata": {
+        "authors": [
+            "Robby",
+            "Soued031",
+            "아라"
+        ]
+    },
+    "config-desc": "Den Installatiounsprogramm vu MediaWiki",
+    "config-title": "MediaWiki $1 Installatioun",
+    "config-information": "Informatioun",
+    "config-localsettings-upgrade": "'''Opgepasst''': E Fichier <code>LocalSettings.php</code> gouf fonnt.\nÄr Software kann aktualiséiert ginn, setzt w.e.g. de Wäert vum <code>$wgUpgradeKey</code> an d'Këscht.\nDir fannt en am <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "E Fichier <code>LocalSettings.php</code> gouf fonnt.\nFir 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.\nD'Variabel $1 ass net definéiert.\nÄnnert w.e.g. de Fichier <code>LocalSettings.php</code> esou datt déi Variabel definéiert ass a klickt op \"{{int:Config-continue}}\".",
+    "config-session-error": "Feeler beim Starte vun der Sessioun: $1",
+    "config-no-session": "D'Donnéeë vun ärer Sessioun si verluergaangen!\nKuckt Är php.ini no a vergewëssert Iech datt <code>session.save_path</code>  op adequate REpertoire agestallt ass.",
+    "config-your-language": "Är Sprooch",
+    "config-your-language-help": "Sicht déi Sprooch eraus déi Dir während der Installatioun benotze wëllt",
+    "config-wiki-language": "Sprooch vun der Wiki:",
+    "config-wiki-language-help": "Sicht d'Sprooch eraus an där d'Wiki haaptsächlech geschriwwe gëtt.",
+    "config-back": "← Zréck",
+    "config-continue": "Weider →",
+    "config-page-language": "Sprooch",
+    "config-page-welcome": "Wëllkomm bäi MediaWiki!",
+    "config-page-dbconnect": "Mat der Datebank verbannen",
+    "config-page-upgrade": "Eng Installatioun déi besteet aktualiséieren",
+    "config-page-dbsettings": "Astellunge vun der Datebank",
+    "config-page-name": "Numm",
+    "config-page-options": "Optiounen",
+    "config-page-install": "Installéieren",
+    "config-page-complete": "Fäerdeg!",
+    "config-page-restart": "Installatioun neistarten",
+    "config-page-readme": "Liest dëst",
+    "config-page-releasenotes": "Informatiounen zur Versioun",
+    "config-page-copying": "Kopéieren",
+    "config-page-upgradedoc": "Aktualiséieren",
+    "config-page-existingwiki": "Wiki déi et gëtt",
+    "config-help-restart": "Wëllt dir all gespäichert Donnéeë läschen déi dir bis elo aginn hutt an den Installatiounsprozess nei starten?",
+    "config-restart": "Jo, neistarten",
+    "config-welcome": "=== Iwwerpréifung vum Installatiounsenvironnement ===\nEt gi grondsätzlech Iwwerpréifunge gemaach fir ze kucken ob den Environnment gëeegent ass fir MediaWiki z'installéieren.\nDir sollt d'Resultater vun dëser Iwwerpréifung ugi wann Dir während der Installatioun Hëllef frot wéi Dir D'Installatioun ofschléisse kënnt.",
+    "config-sidebar": "* [//www.mediawiki.org MediaWiki Haaptsäit]\n* [//www.mediawiki.org/wiki/Help:Contents Benotzerguide]\n* [//www.mediawiki.org/wiki/Manual:Contents Guide fir Administrateuren]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Liest dëst</doclink>\n* <doclink href=ReleaseNotes>Informatioune vun der aktueller Versioun</doclink>\n* <doclink href=Copying>Lizenzbedingungen</doclink>\n* <doclink href=UpgradeDoc>Aktualisatioun</doclink>",
+    "config-env-good": "Den Environement gouf nogekuckt.\nDir kënnt MediaWiki installéieren.",
+    "config-env-bad": "Den Environnement gouf iwwerpréift.\nDir kënnt MediWiki net installéieren.",
+    "config-env-php": "PHP $1 ass installéiert.",
+    "config-env-php-toolow": "PHP $1 ass installéiert.\nAwer MediaWiki brauch PHP $2 oder méi héich.",
+    "config-unicode-using-utf8": "Fir d'Unicode-Normalisatioun gëtt dem Brion Vibber säin <code>utf8_normalize.so</code> benotzt.",
+    "config-no-db": "Et konnt kee passenden Datebank-Driver fonnt ginn! Dir musst een Datebank-Driver fir PHP installéieren.\nDës Datebank-Type ginn ënnerstëtzt: $1.\n\nWann Dir op engem gesharte Server sidd, da frot Ären Hosting-Provider fir de passenden Datebank-Driver z'installéieren.\nWann Dir PHP selwer compiléiert hutt, da reconfiguréiert en mat dem ageschalten Datebank-Client, zum Beispill an deem Dir <code>./configure --with-mysql</code> benotzt.\nWann Dir PHP vun engem Debian oder Ubuntu Package aus installéiert hutt, da musst Dir och den php5-mysql Modul installéieren.",
+    "config-outdated-sqlite": "'''Warnung:''' SQLite $1 ass installéiert. Allerdengs brauch MediaWiki SQLite $2 oder méi nei. SQLite ass dofir net disponibel.",
+    "config-memory-bad": "'''Opgepasst:''' De Parameter <code>memory_limit</code> vu PHP ass $1.\nDat ass wahrscheinlech ze niddreg.\nD'Installatioun kéint net funktionéieren.",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] ass installéiert",
+    "config-apc": "[http://www.php.net/apc APC] ass installéiert",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] ass installéiert",
+    "config-diff3-bad": "GNU diff3 gouf net fonnt.",
+    "config-no-uri": "'''Feeler:''' Déi aktuell URI konnt net festgestallt ginn.\nInstallatioun ofgebrach.",
+    "config-using-server": "De Servernumm \"<nowiki>$1</nowiki>\" gëtt benotzt.",
+    "config-using-uri": "D'Server URL  \"<nowiki>$1$2</nowiki>\" gëtt benotzt.",
+    "config-db-type": "Datebanktyp:",
+    "config-db-host": "Host vun der Datebank:",
+    "config-db-host-oracle": "Datebank-TNS:",
+    "config-db-wiki-settings": "Dës Wiki identifizéieren",
+    "config-db-name": "Numm vun der Datebank:",
+    "config-db-name-oracle": "Datebankschema:",
+    "config-db-install-account": "Benotzerkont fir d'Installatioun",
+    "config-db-username": "Datebank-Benotzernumm:",
+    "config-db-password": "Passwuert vun der Datebank:",
+    "config-db-install-help": "Gitt de Benotzernumm an Passwuert an dat wàhrend der Installatioun benotzt gëtt fir sech mat der Datebank ze verbannen.",
+    "config-db-account-lock": "De selwechte Benotzernumm a Passwuert fir déi normal Operatioune benotzen",
+    "config-db-wiki-account": "Benotzerkont fir normal Operatiounen",
+    "config-db-wiki-help": "Gitt de Benotzernumm an d'Passwuert an dat benotzt wäert gi fir sech bei den normale Wiki-Operatiounen mat der Datebank ze connectéieren.\nWann et de Kont net gëtt, a wann den Installatiouns-Kont genuch Rechter huet, gëtt dëse Benotzerkont opgemaach mat dem Minimum vu Rechter déi gebraucht gi fir dës Wiki bedreiwen ze kënnen.",
+    "config-db-charset": "Zeechesaz (character set) vun der Datebank",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binair",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-mysql-old": "MySQL $1 oder eng méi nei Versioun gëtt gebraucht, Dir hutt $2.",
+    "config-db-port": "Port vun der Datebank:",
+    "config-db-schema": "Schema fir MediaWiki",
+    "config-db-schema-help": "D'Schemaen hei driwwer si gewéinlech korrekt.\nÄnnert se nëmme wann Dir wësst datt et néideg ass.",
+    "config-pg-test-error": "Et ass net méiglech d'Datebank '''$1''' ze kontaktéieren: $2",
+    "config-sqlite-dir": "Repertoire vun den SQLite-Donnéeën",
+    "config-oracle-def-ts": "Standard 'tablespace':",
+    "config-oracle-temp-ts": "Temporären 'tablespace':",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-header-mysql": "MySQL-Astellungen",
+    "config-header-postgres": "PostgreSQL-Astellungen",
+    "config-header-sqlite": "SQLite-Astellungen",
+    "config-header-oracle": "Oracle-Astellungen",
+    "config-invalid-db-type": "Net valabelen Datebank-Typ",
+    "config-missing-db-name": "Dir musst en Numm fir de Wäert \"Numm vun der Datebank\" uginn",
+    "config-missing-db-host": "Dir musst e Wäert fir \"Database host\" uginn",
+    "config-missing-db-server-oracle": "Dir musst e Wäert fir \"Datebank-TNS\" uginn",
+    "config-db-sys-user-exists-oracle": "De Benotzerkont \"$1\" gëtt et schonn. SYSDBA kann nëmme benotzt gi fir en neie Benotzerkont opzemaachen.",
+    "config-postgres-old": "PostgreSQL $1 oder eng méi nei Versioun gëtt gebraucht, Dir hutt $2.",
+    "config-sqlite-name-help": "Sicht en Numm deen Är wiki identifizéiert.\nBenotzt keng Espacen a Bindestrécher.\nE gëtt fir den Numm vum SQLite Date-Fichier benotzt.",
+    "config-sqlite-readonly": "An de Fichier <code>$1</code> Kann net geschriwwe ginn.",
+    "config-sqlite-cant-create-db": "Den Datebank-Fichier <code>$1</code> konnt net ugeluecht ginn.",
+    "config-upgrade-done-no-regenerate": "D'Aktualisatioun ass ofgeschloss.\n\nDir kënnt elo [$1 ufänken Är Wiki ze benotzen]",
+    "config-regenerate": "LocalSettings.php regeneréieren →",
+    "config-db-web-account": "Datebankkont fir den Accès iwwer de Web",
+    "config-db-web-account-same": "Dee selwechte Kont wéi bei der Installatioun benotzen",
+    "config-db-web-create": "De Kont uleeë wann et e net scho gëtt",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-binary": "binär",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "Numm vun der Wiki:",
+    "config-site-name-help": "Dësen daucht an der Titelleescht vum Browser an op verschiddenen anere Plazen op.",
+    "config-site-name-blank": "Gitt den Numm vum Site un.",
+    "config-project-namespace": "Projet Nummraum:",
+    "config-ns-generic": "Projet",
+    "config-ns-site-name": "Deeselwechte wéi den Numm vun der Wiki: $1",
+    "config-ns-other": "Anerer (spezifizéieren)",
+    "config-ns-other-default": "MyWiki",
+    "config-admin-box": "Administrateurs-Kont",
+    "config-admin-name": "Ären Numm:",
+    "config-admin-password": "Passwuert:",
+    "config-admin-password-confirm": "Passwuert confirméieren:",
+    "config-admin-help": "Gitt w.e.g. Äre gewënschte Benotzernumm hei an, zum Beispill \"Jang Muller\".\nDësen Numm gëtt da gebraucht fir sech an d'Wiki anzeloggen.",
+    "config-admin-name-blank": "Gitt e Benotzernumm fir den Administrateur an.",
+    "config-admin-name-invalid": "De spezifizéierte Benotzernumm \"<nowiki>$1</nowiki>\" ass net valabel.\nSpezifizéiert en anere Benotzernumm.",
+    "config-admin-password-blank": "Gitt e Passwuert fir den Adminstateur-Kont an.",
+    "config-admin-password-same": "D'Passwuert däerf net dat selwecht si wéi de Benotzernumm.",
+    "config-admin-password-mismatch": "Déi zwee Passwierder Déi Dir aginn hutt stëmmen net iwwereneen.",
+    "config-admin-email": "E-Mail-Adress:",
+    "config-admin-error-user": "Interne Feeler beim uleeë vun engem Administrateur mam Numm \"<nowiki>$1</nowiki>\".",
+    "config-admin-error-password": "Interne Feeler beim Setze vum Passwuert fir den Admin \"<nowiki>$1</nowiki>\": <pre>$2</pre>",
+    "config-admin-error-bademail": "Dir hutt eng E-Mail-Adress aginn déi net valabel ass",
+    "config-subscribe": "Sech op d'[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Ukënnegunge vun neie Versiounen] abonnéieren.",
+    "config-almost-done": "Dir sidd bal fäerdeg!\nDir kënnt elo déi Astellungen déi nach iwwreg sinn iwwersprangen an d'Wiki elo direkt installéieren.",
+    "config-optional-continue": "Stellt mir méi Froen.",
+    "config-optional-skip": "Ech hunn es genuch, installéier just d'Wiki.",
+    "config-profile": "Profil vun de Benotzerrechter:",
+    "config-profile-wiki": "Oppe Wiki",
+    "config-profile-no-anon": "Uleeë vun engem Benotzerkont verlaangt",
+    "config-profile-fishbowl": "Nëmmen autoriséiert Editeuren",
+    "config-profile-private": "Privat Wiki",
+    "config-license": "Copyright a Lizenz:",
+    "config-license-none": "Keng Lizenz ënnen op der Säit",
+    "config-license-pd": "Ëffentlechen Domaine",
+    "config-email-settings": "E-Mail-Astellungen",
+    "config-enable-email": "E-Mailen déi no bausse ginn aschalten",
+    "config-email-user": "Benotzer-op-Benotzer E-Mail aschalten",
+    "config-email-usertalk": "Benoriichtege bäi Ännerung vun der Benotzerdiskussiounssäit aschalten",
+    "config-email-watchlist": "Benoriichtigung vun der Iwwerwaachungslëscht aschalten",
+    "config-email-auth": "E-Mail-Authentifizéierung aschalten",
+    "config-email-sender": "E-Mailadress fir Äntwerten:",
+    "config-upload-settings": "Eropgeluede Biller a Fichieren",
+    "config-upload-enable": "Eropluede vu Fichieren aschalten",
+    "config-upload-deleted": "Repertoire fir geläscht Fichieren:",
+    "config-logo": "URL vum Logo:",
+    "config-instantcommons": "\"Instant Commons\" aktivéieren",
+    "config-cc-again": "Nach eng kéier eraussichen...",
+    "config-advanced-settings": "Erweidert Astellungen",
+    "config-extensions": "Erweiderungen",
+    "config-install-step-done": "fäerdeg",
+    "config-install-step-failed": "huet net funktionéiert",
+    "config-install-extensions": "Mat den Ereiderungen",
+    "config-install-database": "Datebank gëtt installéiert",
+    "config-install-pg-plpgsql": "No der Sprooch PL/pgSQL sichen",
+    "config-pg-no-plpgsql": "Fir d'Datebank $1 muss d'Datebanksprooch PL/pgSQL installéiert ginn",
+    "config-install-user": "Datebank Benotzer uleeën",
+    "config-install-user-alreadyexists": "De Benotzer \"$1\" gëtt et schonn!",
+    "config-install-user-create-failed": "D'Opmaache vum Benotzer \"$1\" huet net funktionéiert: $2",
+    "config-install-user-grant-failed": "D'Bäisetze vu Rechter fir de Benotzer \"$1\" huet net funktionéiert: $2",
+    "config-install-user-missing": "De Benotzer \"$1\" deen ugi gouf gëtt et net.",
+    "config-install-user-missing-create": "De spezifizéierte Benotzer \"$1\" gëtt et net.\nKlickt d'Checkbox \"Benotzerkont uleeën\" wann Dir dee Benotzer uleeë wëllt.",
+    "config-install-tables": "Tabelle ginn ugeluecht",
+    "config-install-interwiki": "Standard Interwiki-Tabell gëtt ausgefëllt",
+    "config-install-interwiki-list": "De Fichier <code>interwiki.list</code> gouf net fonnt.",
+    "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",
+    "config-help": "Hëllef",
+    "config-nofile": "De Fichier \"$1\" gouf net fonnt. Gouf e geläscht?",
+    "mainpagetext": "'''MediaWiki gouf installéiert.'''",
+    "mainpagedocfooter": "Kuckt w.e.g. [//meta.wikimedia.org/wiki/Help:Contents d'Benotzerhandbuch] fir Informatiounen iwwer de Gebruach vun der Wiki Software.\n\n== Fir  unzefänken ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Hëllef bei der Konfiguratioun]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglëscht vun neie MediaWiki-Versiounen]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Lokaliséiert MediaWiki fir Är Sprooch]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/lfn.json b/includes/installer/i18n/lfn.json
new file mode 100644 (file)
index 0000000..cd00514
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki es aora instalada.'''",
+    "mainpagedocfooter": "Atenda la [//meta.wikimedia.org/wiki/Help:Contents Gida per Usores] per informa supra la usa de la programa de vici.\n\n== Comensa ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de ajustas de la desinia]\n* [//www.mediawiki.org/wiki/Manual:FAQ Demandas comun de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista per receta anunsias de novas supra MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/lg.json b/includes/installer/i18n/lg.json
new file mode 100644 (file)
index 0000000..85b3f80
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Kizito"
+        ]
+    },
+    "mainpagetext": "MediaWiki kati ewangidwa ku sisitemu yo",
+    "mainpagedocfooter": "Okuyiga ku nkozesa ya sofutiweya owa wiki, kebera [//meta.wikimedia.org/wiki/Help:Contents Okulagirira Abakozesa].\n\n== Amagezi agakuyamba okutandika ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lukalala lw'eby'enteekateeka yo]\n* [//www.mediawiki.org/wiki/Manual:FAQ Ebiter'okubuuzibwa ku MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Wewandise ofunenga amawulire aga email ag'ebifa ku MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/li.json b/includes/installer/i18n/li.json
new file mode 100644 (file)
index 0000000..524067f
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki software succesvol geïnsjtalleerd.'''",
+    "mainpagedocfooter": "Raodpleeg de [//meta.wikimedia.org/wiki/NL_Help:Inhoudsopgave handjleiding] veur informatie euver 't gebroek van de wikisoftware.\n\n== Mieë hölp ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lies mit instellinge]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki VGV (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki mailinglies veur nuuj versies]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/lo.json b/includes/installer/i18n/lo.json
new file mode 100644 (file)
index 0000000..4cb70cc
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''ຕິດຕັ້ງມີເດຍວິກິນີ້ສຳເລັດແລ້ວ.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/lt.json b/includes/installer/i18n/lt.json
new file mode 100644 (file)
index 0000000..85618b0
--- /dev/null
@@ -0,0 +1,83 @@
+{
+    "@metadata": {
+        "authors": [
+            "Eitvys200",
+            "Mantak111"
+        ]
+    },
+    "config-desc": "MediaWiki diegimas",
+    "config-title": "MediaWiki $1 diegimas",
+    "config-information": "Informacija",
+    "config-your-language": "Jūsų kalba:",
+    "config-wiki-language": "Viki kalba:",
+    "config-back": "← Atgal",
+    "config-continue": "Toliau →",
+    "config-page-language": "Kalba",
+    "config-page-welcome": "Sveiki atvykę į MediaWiki!",
+    "config-page-dbconnect": "Prisijungti prie duomenų bazės",
+    "config-page-dbsettings": "Duomenų bazės nustatymai",
+    "config-page-name": "Vardas",
+    "config-page-options": "Parinktys",
+    "config-page-install": "Įdiegti",
+    "config-page-complete": "Baigta!",
+    "config-page-restart": "Iš naujo paleiskite diegimą",
+    "config-page-readme": "Perskaityk manę",
+    "config-page-copying": "Kopijuojama",
+    "config-page-upgradedoc": "Atnaujinama",
+    "config-restart": "Taip, paleiskite jį iš naujo",
+    "config-env-php": "PHP $1 yra įdiegtas.",
+    "config-env-php-toolow": "PHP $1 įdiegta.\nTačiau, MediaWiki reikia PHP $2 ar naujesnės.",
+    "config-db-type": "Duomenų bazės tipas:",
+    "config-db-host": "Duomenų bazės serveris:",
+    "config-db-name": "Duomenų bazės pavadinimas:",
+    "config-db-name-oracle": "Duomenų bazės schema:",
+    "config-db-username": "Duomenų bazės vartotojo vardas:",
+    "config-db-password": "Duomenų bazės slaptažodis:",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-db-port": "Duomenų bazės prievadas:",
+    "config-db-schema": "MediaWiki schema:",
+    "config-header-mysql": "MySQL nustatymai",
+    "config-header-postgres": "PostgreSQL nustatymai",
+    "config-header-sqlite": "SQLite nustatymai",
+    "config-header-oracle": "Oracle nustatymai",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "Viki pavadinimas:",
+    "config-site-name-blank": "Įveskite svetainės pavadinimą.",
+    "config-project-namespace": "Projekto pavadinimas:",
+    "config-ns-generic": "Projektas",
+    "config-ns-site-name": "Toks pat kaip viki pavadinimas: $1",
+    "config-ns-other-default": "ManoWiki",
+    "config-admin-box": "Administratoriaus paskyra",
+    "config-admin-name": "Jūsų vardas:",
+    "config-admin-password": "Slaptažodis:",
+    "config-admin-password-confirm": "Slaptažodis dar kartą:",
+    "config-admin-name-blank": "Įveskite administratoriaus vartotojo vardą.",
+    "config-admin-password-blank": "Įvesti administratoriaus paskyros slaptažodį.",
+    "config-admin-password-same": "Slaptažodis turi būti ne toks pat, kaip vartotojo vardas.",
+    "config-admin-password-mismatch": "Įvesti slaptažodžiai nesutampa.",
+    "config-admin-email": "El. pašto adresas:",
+    "config-optional-continue": "Paklausti daugiau klausimų.",
+    "config-optional-skip": "Man jau nuobodu, tiesiog įdiekite viki.",
+    "config-profile": "Vartotojo teisių paskyra:",
+    "config-profile-wiki": "Tradicinė viki",
+    "config-profile-private": "Privati viki",
+    "config-license-pd": "Viešas Domenas",
+    "config-email-settings": "El. pašto nustatymai",
+    "config-upload-enable": "Įgalinti failų įkėlimus",
+    "config-logo": "Logotipo URL:",
+    "config-cc-again": "Pasirinkti dar kartą...",
+    "config-extensions": "Plėtiniai",
+    "config-install-step-done": "atlikta",
+    "config-install-step-failed": "nepavyko",
+    "config-install-schema": "Kuriama schema",
+    "config-install-tables": "Kuriamos lentelės",
+    "config-install-stats": "Inicijuojamos statistikos",
+    "config-install-keys": "Generuojami slapti raktai",
+    "config-install-done": "'''Sveikiname!'''\nJūs sėkmingai įdiegėte MediaWiki.\n\nĮdiegimo programa sukūrė <code>LocalSettings.php</code> failą.\nJame yra visos jūsų konfigūracijos.\n\nJums reikės atsisiųsti ir įdėti jį į savo wiki įdiegimo bazę (pačiame kataloge, kaip index.php). Atsisiuntimas turėtų prasidėti automatiškai.\n\nJei atsisiuntimas nebuvo pasiūlytas, arba jį atšaukėte, galite iš naujo atsisiųsti paspaudę žemiau esančią nuorodą:\n\n$3\n\n'''Pastaba:''' Jei jūs to nepadarysite dabar, tada šis sukurtas konfigūracijos failas nebus galimas vėliau, jei išeisite iš įdiegimo be atsisiuntimo.\n\nKai baigsite, jūs galėsite '''[$2 įeiti į savo wiki]'''.",
+    "config-download-localsettings": "Atsisiųsti <code>LocalSettings.php</code>",
+    "config-help": "pagalba",
+    "mainpagetext": "'''MediaWiki sėkmingai įdiegta.'''",
+    "mainpagedocfooter": "Informacijos apie wiki programinės įrangos naudojimą, ieškokite [//meta.wikimedia.org/wiki/Help:Contents žinyne].\n\n== Pradžiai ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Konfigūracijos nustatymų sąrašas]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki DUK]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki pranešimai paštu apie naujas versijas]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/lv.json b/includes/installer/i18n/lv.json
new file mode 100644 (file)
index 0000000..529a148
--- /dev/null
@@ -0,0 +1,23 @@
+{
+    "@metadata": {
+        "authors": [
+            "GreenZeb"
+        ]
+    },
+    "config-back": "← Atpakaļ",
+    "config-continue": "Turpināt →",
+    "config-page-language": "Valoda",
+    "config-page-welcome": "Laipni lūdzam MediaWiki!",
+    "config-page-dbconnect": "Savienoties ar datubāzi",
+    "config-page-upgrade": "Atjaunināt pašreizējo instalāciju",
+    "config-page-dbsettings": "Datubāzes iestatījumi",
+    "config-page-name": "Vārds",
+    "config-page-options": "Iespējas",
+    "config-page-install": "Instalēt",
+    "config-page-complete": "Pabeigts!",
+    "config-page-restart": "Pārstartēt instalāciju",
+    "config-page-readme": "Lasīt mani",
+    "config-page-releasenotes": "Informācija par laidienu",
+    "mainpagetext": "'''MediaWiki veiksmīgi ieinstalēts'''",
+    "mainpagedocfooter": "Izlasi [//meta.wikimedia.org/wiki/Help:Contents Lietotāja pamācību], lai iegūtu vairāk informācijas par Wiki programmatūras lietošanu.\n\n== Pirmie soļi ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Konfigurācijas iespēju saraksts]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki J&A]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Parakstīties uz paziņojumiem par jaunām MediaWiki versijām]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/lzh.json b/includes/installer/i18n/lzh.json
new file mode 100644 (file)
index 0000000..cf85646
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''共筆臺已立'''",
+    "mainpagedocfooter": "欲識維基,見[//meta.wikimedia.org/wiki/Help:Contents User's Guide]\n\n== 始 ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/lzz.json b/includes/installer/i18n/lzz.json
new file mode 100644 (file)
index 0000000..4163035
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Bombola"
+        ]
+    },
+    "mainpagetext": "'''Mediawiki dido k'ai ik'idu.'''",
+    "mainpagedocfooter": "Vik'i şeni muç'o ixmarinen ya mutxanepe oguru şeni [//meta.wikimedia.org/wiki/Help:Contents oxmaruşi rexberis] o3'k'edit.\n\n== Ağani na gyoç’k’u maxmarepe ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Ok'iduşi ayarepeşi liste]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki P'anda Na-k'itxu K'itxalape]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-mailepeşiş liste]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/mai.json b/includes/installer/i18n/mai.json
new file mode 100644 (file)
index 0000000..771b6fa
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Umeshberma"
+        ]
+    },
+    "mainpagetext": "'''मीडियाविकी नीक जकाँ प्रस्थापित भेल।'''",
+    "mainpagedocfooter": "सम्पर्क करू [//meta.wikimedia.org/wiki/Help:Contents User's Guide] विकी तंत्रांशक प्रयोगक जानकारी लेल।\n\n==प्रारम्भ कोना करी==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/mdf.json b/includes/installer/i18n/mdf.json
new file mode 100644 (file)
index 0000000..12ed5c5
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''МедиаВикить арафтозь лац.'''",
+    "mainpagedocfooter": "Ванк [//meta.wikimedia.org/wiki/Help:Contents Ветямовал Тиинди] тяса ули кода содамс Вики програпнень эрявикснень колга.\n\n== Эрявикс сюлмафксне ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Васьфневи арафнематнень кярькссь]\n* [//www.mediawiki.org/wiki/Manual:FAQ МедиаВикить Сидеста Кеподеви Кизефксне]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce МедиаВикить од верзиятнень колга кулянь пачфтема]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/mg.json b/includes/installer/i18n/mg.json
new file mode 100644 (file)
index 0000000..789474c
--- /dev/null
@@ -0,0 +1,53 @@
+{
+    "@metadata": {
+        "authors": [
+            "Jagwar"
+        ]
+    },
+    "config-session-error": "Hadisoana teo am-panombohana ny fidirana : $1",
+    "config-your-language": "Ny fiteninao :",
+    "config-wiki-language": "Fiteny ho ampiasain'ny wiki :",
+    "config-back": "← Miverina",
+    "config-continue": "Manohy →",
+    "config-page-language": "Fiteny",
+    "config-page-welcome": "Tonga soa eto amin'i MediaWiki !",
+    "config-page-dbconnect": "Hiditra eo amin'i banky angona",
+    "config-page-name": "Anarana",
+    "config-page-readme": "Vakio aho",
+    "config-page-copying": "Hala-tahaka",
+    "config-page-upgradedoc": "Fanavaozina",
+    "config-page-existingwiki": "Wiki efa misy",
+    "config-help-restart": "Tianao hofafana avokoa ve ny data voaangona natsofokao ary hamerina ny fizotran'ny fametrahana ?",
+    "config-restart": "Eny, avereno atao",
+    "config-db-username": "Anaram-pikamban'ny banky angona :",
+    "config-db-password": "Tenimiafin'ny banky angona :",
+    "config-header-mysql": "Parametatr'i MySQL",
+    "config-header-sqlite": "Parametatr'i SQLite",
+    "config-header-oracle": "Parametatr'i Oracle",
+    "config-mysql-innodb": "innoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-ns-generic": "Tetikasa",
+    "config-ns-other": "Hafa (lazao)",
+    "config-admin-name": "Ny anaranao :",
+    "config-admin-password": "Tenimiafina :",
+    "config-admin-email": "Adiresy imailaka :",
+    "config-profile-wiki": "Wiki tsotra",
+    "config-profile-no-anon": "Mila mamorona kaonty",
+    "config-profile-fishbowl": "Mpanova mahazo alalana ihany",
+    "config-profile-private": "Wiki tsy sarababem-bahoaka",
+    "config-license": "Zom-pamorona ary lisansa :",
+    "config-license-none": "Tsy misy lisansa any an-tongom-pejy",
+    "config-email-user": "Avela mifandefa imailaka ny mpikambana",
+    "config-email-user-help": "Hahafahan'ny mpikambana mifandefa imailaka raha omen'ny mpikambana alalana ao amin'ny safidiny.",
+    "config-upload-deleted": "Petra-drakitra ho an'ny rakitra voafafa :",
+    "config-extensions": "Fanitarana",
+    "config-install-step-done": "vita",
+    "config-install-step-failed": "hadisoana",
+    "config-install-user": "Famoronana mpapiasan'ny banky angona",
+    "config-install-tables": "Famoronana tabilao",
+    "config-install-stats": "Fanombohana ny statistika",
+    "config-install-keys": "Fanamboarana lakile miafina",
+    "config-help": "fanoroana",
+    "mainpagetext": "'''Tafajoro soa aman-tsara ny rindrankajy Wiki.'''",
+    "mainpagedocfooter": "Vangio ny [//meta.wikimedia.org/wiki/Aide:Contenu Fanoroana ho an'ny mpampiasa] ra te hitady fanoroana momba ny fampiasan'ity rindrankajy ity.\n\n== Hanomboka amin'ny MediaWiki ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lisitra ny paramètre de configuration]\n* [//www.mediawiki.org/wiki/Manual:FAQ/fr FAQ momba ny MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Resaka momba ny fizaràn'ny MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/mhr.json b/includes/installer/i18n/mhr.json
new file mode 100644 (file)
index 0000000..ee25ee9
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki сай шындыме.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/min.json b/includes/installer/i18n/min.json
new file mode 100644 (file)
index 0000000..bde2fc5
--- /dev/null
@@ -0,0 +1,10 @@
+{
+    "@metadata": {
+        "authors": [
+            "Iwan Novirion",
+            "Luthfi94"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki alah tapasang jo sukses'''.",
+    "mainpagedocfooter": "Konsultasian [//meta.wikimedia.org/wiki/Help:Contents/min Panduan Panggunoan] untuak informasi caro panggunoan parangkaik lunak wiki.\n\n== Mamulai panggunoan ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings/id Daftar pangaturan konfigurasi]\n* [//www.mediawiki.org/wiki/Manual:FAQ/id Daftar patanyoan nan acok diajukan manganai MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Milis rilis MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Palokalan MediaWiki untuak bahaso Sanak]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/mk.json b/includes/installer/i18n/mk.json
new file mode 100644 (file)
index 0000000..d5aa56f
--- /dev/null
@@ -0,0 +1,311 @@
+{
+    "@metadata": {
+        "authors": [
+            "Bjankuloski06",
+            "아라"
+        ]
+    },
+    "config-desc": "Инсталатор на МедијаВики",
+    "config-title": "Инсталатор на МедијаВики $1",
+    "config-information": "Информации",
+    "config-localsettings-upgrade": "Востановена е податотека <code>LocalSettings.php</code>.\nЗа да ја надградите инсталцијава, внесете ја вредноста на <code>$wgUpgradeKey</code> во полето подолу.\nТоа е го најдете во <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Утврдено е присуството на податотеката „<code>LocalSettings.php</code>“.\nЗа да ја надградите инсталацијата, пуштете ја „<code>update.php</code>“ наместо горенаведената.",
+    "config-localsettings-key": "Надградбен клуч:",
+    "config-localsettings-badkey": "Клучот што го наведовте е погрешен",
+    "config-upgrade-key-missing": "Востановена е постоечка инсталација на МедијаВики.\nЗа да ја надградите, вметнете го следниов ред на дното од вашата страница <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "Постоечката страница <code>LocalSettings.php</code> е нецелосна.\nНе е поставена променливата $1.\nИзменете ја страницата <code>LocalSettings.php</code> така што ќе ѝ зададете вредност на променливата, па стиснете на „{{int:Config-continue}}“.",
+    "config-localsettings-connection-error": "Се појави грешка при поврзувањето со базата користејќи ги поставките назначени во <code>LocalSettings.php</code> или <code>AdminSettings.php</code>. Исправете ги овие поставки и обидете се повторно.\n\n$1",
+    "config-session-error": "Грешка при започнување на сесијата: $1",
+    "config-session-expired": "Вашите сесиски податоци истекоа.\nПоставките на сесиите траат $1.\nНивниот рок можете да го зголемите со задавање на <code>session.gc_maxlifetime</code> во php.ini.\nПочнете ја инсталацијата одново.",
+    "config-no-session": "Вашите сесиски податоци се изгубени!\nПогледајте во php.ini дали <code>session.save_path</code> е поставен во правилна папка.",
+    "config-your-language": "Вашиот јазик:",
+    "config-your-language-help": "Одберете на кој јазик да се одвива инсталацијата.",
+    "config-wiki-language": "Јазик на викито:",
+    "config-wiki-language-help": "Одберете на кој јазик ќе бидат содржините на викито.",
+    "config-back": "← Назад",
+    "config-continue": "Продолжи →",
+    "config-page-language": "Јазик",
+    "config-page-welcome": "Добредојдовте на МедијаВики!",
+    "config-page-dbconnect": "Поврзување со базата",
+    "config-page-upgrade": "Надградба на постоечката инсталација",
+    "config-page-dbsettings": "Нагодувања на базата",
+    "config-page-name": "Назив",
+    "config-page-options": "Поставки",
+    "config-page-install": "Инсталирај",
+    "config-page-complete": "Готово!",
+    "config-page-restart": "Пушти ја инсталацијата одново",
+    "config-page-readme": "Прочитај ме",
+    "config-page-releasenotes": "Белешки за изданието",
+    "config-page-copying": "Копирање",
+    "config-page-upgradedoc": "Надградба",
+    "config-page-existingwiki": "Постоечко вики",
+    "config-help-restart": "Дали сакате да ги исчистите сите зачувани податоци што ги внесовте и да ја започнете инсталацијата одново?",
+    "config-restart": "Да, почни одново",
+    "config-welcome": "=== Проверки на околината ===\nСега ќе се извршиме основни проверки за да се востанови дали околината е погодна за инсталирање на МедијаВики. Не заборавајте да ги приложите овие информации ако барате помош со довршување на инсталацијата.",
+    "config-copyright": "=== Авторски права и услови ===\n\n$1\n\nОва е слободна програмска опрема (free software); можете да го редистрибуирате и/или менувате согласно условите на ГНУ-овата општа јавна лиценца (GNU General Public License) на Фондацијата за слободна програмска опрема (Free Software Foundation); верзија 2 или било која понова верзија на лиценцата (по ваш избор).\n\nОвој програм се нуди со надеж дека ќе биде корисен, но '''без никаква гаранција'''; дури ни подразбраната гаранција за '''продажна способност''' или '''погодност за определена цел'''.\nПовеќе информации ќе најдете во текстот на ГНУ-овата општа јавна лиценца.\n\nБи требало да имате добиено <doclink href=Copying>примерок од ГНУ-овата општа јавна лиценца</doclink> заедно со програмов; ако немате добиено, тогаш пишете ни на Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. или [http://www.gnu.org/copyleft/gpl.html прочитајте ја тука].",
+    "config-sidebar": "* [//www.mediawiki.org Домашна страница на МедијаВики]\n* [//www.mediawiki.org/wiki/Help:Contents Водич за корисници]\n* [//www.mediawiki.org/wiki/Manual:Contents Водич за администратори]\n* [//www.mediawiki.org/wiki/Manual:FAQ ЧПП]\n----\n* <doclink href=Readme>Прочитај ме</doclink>\n* <doclink href=ReleaseNotes>Белешки за изданието</doclink>\n* <doclink href=Copying>Копирање</doclink>\n* <doclink href=UpgradeDoc>Надградување</doclink>",
+    "config-env-good": "Околината е проверена.\nМожете да го инсталирате МедијаВики.",
+    "config-env-bad": "Околината е проверена.\nНе можете да го инсталирате МедијаВики.",
+    "config-env-php": "PHP $1 е инсталиран.",
+    "config-env-php-toolow": "PHP $1 е инсталиран.\nМеѓутоа, МедијаВики бара PHP $2 или поново.",
+    "config-unicode-using-utf8": "Со utf8_normalize.so за уникодна нормализација од Брајон Вибер (Brion Vibber).",
+    "config-unicode-using-intl": "Со додатокот [http://pecl.php.net/intl intl PECL] за уникодна нормализација.",
+    "config-unicode-pure-php-warning": "'''Предупредување''': Додатокот [http://pecl.php.net/intl intl PECL] не е достапен за врши уникодна нормализација, враќајќи се на бавна примена на чист PHP.\n\nАко имате високопрометно мрежно место, тогаш ќе треба да прочитате повеќе за [//www.mediawiki.org/wiki/Unicode_normalization_considerations уникодната нормализација].",
+    "config-unicode-update-warning": "'''Предупредување''': Инсталираната верзија на обвивката за уникодна нормализација користи постара верзија на библиотеката на [http://site.icu-project.org/ проектот ICU].\nЗа да користите Уникод, ќе треба да направите [//www.mediawiki.org/wiki/Unicode_normalization_considerations надградба].",
+    "config-no-db": "Не можев да пронајдам соодветен двигател за базата на податоци! Ќе треба да инсталирате двигател за базата на податоци за PHP.\nПоддржани се следниве типови на бази $1.\n\nАко сте на заедничко (споделено) вдомување, побарајте му на вдомителот да инсталира соодветен двигател за базата.\nАко вие самите го составивте ова PHP, сменете ги поставките така што ќе овозможите клиент на базата - на пр. со кодот <code>./configure --with-mysql</code>.\nАко инсталиравте PHP од пакет на Debian или Ubuntu, тогаш ќе треба да го инсталирате и модулот php5-mysql.",
+    "config-outdated-sqlite": "'''Предупредување''': имате SQLite $1. Најстарата допуштена верзија е $2. Затоа, SQLite ќе биде недостапен.",
+    "config-no-fts3": "'''Предупредување''': SQLite iе составен без модулот [//sqlite.org/fts3.html FTS3] - за оваа база нема да има можност за пребарување.",
+    "config-register-globals": "'''Предупредување: Можноста <code>[http://php.net/register_globals register_globals]</code> за PHP е овозможена.'''\n'''Оневозможете ја ако е можно.'''\nМедијаВики ќе работи, но опслужувачот ви е изложен на безбедносни ризици.",
+    "config-magic-quotes-runtime": "'''Кобно: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] е активно!'''\nОваа можност непредвидливо го расипува вносот на податоци.\nОваа можност мора да е исклучена. Во спротивно нема да можете да го инсталирате и користите МедијаВики.",
+    "config-magic-quotes-sybase": "'''Кобно: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] е активно!'''\nОваа можност непредвидливо го расипува вносот на податоци.\nОваа можност мора да е исклучена. Во спротивно нема да можете да го инсталирате и користите МедијаВики.",
+    "config-mbstring": "'''Кобно: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] е активно!'''\nОваа можност предизвикува грешки и може непредвидиво да го расипува вносот на податоци.\nОваа можност мора да е исклучена. Во спротивно нема да можете да го инсталирате и користите МедијаВики.",
+    "config-ze1": "'''Кобно: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] е активно!'''\nОваа можност предизвикува ужасни грешки во МедијаВики.\nОваа можност мора да е исклучена. Во спротивно нема да можете да го инсталирате и користите МедијаВики.",
+    "config-safe-mode": "'''Предупредување:''' [http://www.php.net/features.safe-mode безбедниот режим] на PHP е активен.\nОва може да предизвика проблеми, особено ако користите подигања и поддршка за <code>math</code>.",
+    "config-xml-bad": "XML-модулот за PHP недостасува.\nМедијаВики има потреба од функции во овој модул и нема да работи со овие поставки.\nАко работите со Mandrake, инсталирајте го php-xml пакетот.",
+    "config-pcre": "Недостасува модулот за поддршка на PCRE.\nМедијаВики не може да работи без функции за регуларни изрази соодветни на Perl.",
+    "config-pcre-no-utf8": "'''Фатално''': PCRE-модулот на PHP е составен без поддршка за PCRE_UTF8.\nМедијаВики бара поддршка за UTF-8 за да може да работи правилно.",
+    "config-memory-raised": "<code>memory_limit</code> за PHP изнесува $1, зголемен на $2.",
+    "config-memory-bad": "'''Предупредување:''' <code>memory_limit</code> за PHP изнесува $1.\nОва е веројатно премалку.\nИнсталацијата може да не успее!",
+    "config-ctype": "'''Фатална грешка''': PHP мора да се состави со поддршка за [http://www.php.net/manual/en/ctype.installation.php додатокот Ctype].",
+    "config-json": "'''Кобно:''' PHP беше срочен без поддршка од JSON.\nЌе мора да го инсталирате додатокот за JSON во PHP, или додатокот [http://pecl.php.net/package/jsonc PECL jsonc] пред да го инсталирате МедијаВики.\n* Додатокот за PHP е вклучен во верзиите 5 и 6 на Linux (од Red Hat Enterprise) (CentOS), но мора да се активира во <code>/etc/php.ini</code> или <code>/etc/php.d/json.ini</code>.\n* Некои варијанти на Linux излезени по мај 2013 г. не го содржат додатокот за PHP, туку го пакуваат додатокот PECL како <code>php5-json</code> или <code>php-pecl-jsonc</code>.",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] е инсталиран",
+    "config-apc": "[http://www.php.net/apc APC] е инсталиран",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] е инсталиран",
+    "config-no-cache": "'''Предупредување:''' Не можев да го најдам [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] или [http://www.iis.net/download/WinCacheForPhp WinCache].\nКеширањето на објекти не е овозможено.",
+    "config-mod-security": "'''Предупредување''': на вашиот опслужувач има овозможено [http://modsecurity.org/ mod_security]. Ако не е поставено како што треба, ова може да предизвика проблеми кај МедијаВики и други програми што им овозможуваат на корисниците да објавуваат произволни содржини.\nПогледнете ја [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>.\nАко овозможите подигање, тогаш ќе биде овозможена минијатуризација на сликите.",
+    "config-gd": "Утврдив дека има вградена GD графичка библиотека.\nАко овозможите подигање, тогаш ќе биде овозможена минијатураизација на сликите.",
+    "config-no-scaling": "Не можев да пронајдам GD-библиотека или ImageMagick.\nМинијатуризацијата на сликите ќе биде оневозможена.",
+    "config-no-uri": "'''Грешка:''' Не можев да го утврдам тековниот URI.\nИнсталацијата е откажана.",
+    "config-no-cli-uri": "'''Предупредување''': Нема наведено --scriptpath. Ќе се користи основниот: <code>$1</code>.",
+    "config-using-server": "Користите опслужувач под името „<nowiki>$1</nowiki>“.",
+    "config-using-uri": "Користите опслужувач со URL-адреса „<nowiki>$1$2</nowiki>“.",
+    "config-uploads-not-safe": "'''Предупредување:''' Вашата матична папка за подигање <code>$1</code> е подложна на извршување (пуштање) на произволни скрипти.\nИако МедијаВики врши безбедносни проверки на сите подигнати податотеки, ве советуваме [//www.mediawiki.org/wiki/Manual:Security#Upload_security да ја затворите оваа безбедносна дупка] пред да овозможите подигање.",
+    "config-no-cli-uploads-check": "'''Предупредување:''' Вашата основна папка за подигања (<code>$1</code>) не е проверена дали е подложна\nпроизволно извршување на скрипти во текот на инсталацијата на посредникот на повикувачко ниво (CLI).",
+    "config-brokenlibxml": "Вашиот систем има комбинација од PHP и libxml2 верзии и затоа има грешки и може да предизвика скриено расипување на податоците кај МедијаВики и други мрежни програми.\nНадградете го на PHP 5.2.9 и libxml2 2.7.3 или нивни понови верзии! ПРЕКИНУВАМ ([//bugs.php.net/bug.php?id=45996 грешката е заведена во PHP]).",
+    "config-using531": "МедијаВики не може да се користи со PHP $1 поради грешка кај упатните параметри за <code>__call()</code>.\nЗа да го решите проблемот, надградете го на PHP 5.3.2 или понова верзија, или пак користете го постариот PHP 5.3.0.",
+    "config-suhosin-max-value-length": "Suhosin е инсталиран и ја ограничува должината на параметарот GET на $1 бајти. Делот ResourceLoader на МедијаВики ќе ја заобиколува ова граница, но со тоа ќе се влоши делотворноста. Ако е воопшто можно, на <code>suhosin.get.max_value_length</code> треба да го наместите на 1024 или повеќе во <code>php.ini</code>, и да му ја зададете истата вредност на <code>$wgResourceLoaderMaxQueryLength</code> во <code>LocalSettings.php</code>.",
+    "config-db-type": "Тип на база:",
+    "config-db-host": "Домаќин на базата:",
+    "config-db-host-help": "Ако вашата база е на друг опслужувач, тогаш тука внесете го името на домаќинот или IP-адресата.\n\nАко користите заедничко (споделено) вдомување, тогаш вашиот вдомител треба да го наведе точното име на домаќинот во неговата документација.\n\nАко инсталирате на опслужувач на Windows и користите MySQL, можноста „localhost“ може да не функционира за опслужувачкото име. Во тој случај, обидете се со внесување на „127.0.0.1“ како локална IP-адреса.\n\nАко користите PostgreSQL, оставете го полево празно за да се поврзете преку Unix-приклучок.",
+    "config-db-host-oracle": "TNS на базата:",
+    "config-db-host-oracle-help": "Внесете важечко [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm локално име за поврзување]. На оваа инсталација мора да ѝ биде видлива податотеката tnsnames.ora.<br />Ако користите клиентски библиотеки 10g или понови, тогаш можете да го користите и методот на иметнување на [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
+    "config-db-wiki-settings": "Идентификувај го викиво",
+    "config-db-name": "Име на базата:",
+    "config-db-name-help": "Одберете име што ќе го претставува вашето вики.\nИмето не смее да содржи празни места.\n\nАко користите заедничко (споделено) вдомување, тогаш вашиот вдомител ќе ви даде конкретно име на база за користење, или пак ќе ви даде да создавате бази преку контролната табла.",
+    "config-db-name-oracle": "Шема на базата:",
+    "config-db-account-oracle-warn": "Постојат три поддржани сценарија за инсталирање на Oracle како базен услужник:\n\nАко сакате да создадете сметка на базата како дел од постапката за инсталација, наведете сметка со SYSDBA-улога како сметка за базата што ќе се инсталира и наведете ги саканите податоци за сметката за мрежен пристап. Во друг случај, можете да создадете сметка за мрежен пристап рачно и да ја наведете само таа сметка (ако има дозволи за создавање на шематски објекти) или пак да наведете две различни сметки, една со привилегии за создавање, а друга (ограничена) за мрежен пристап.\n\nСкриптата за создавање сметка со задолжителни привилегии ќе ја најдете во папката „maintenance/oracle/“ од оваа инсталација. Имајте на ум дека ако користите ограничена сметка ќе ги оневозможите сите функции за одржување со основната сметка.",
+    "config-db-install-account": "Корисничка смета за инсталација",
+    "config-db-username": "Корисничко име за базата:",
+    "config-db-password": "Лозинка за базата:",
+    "config-db-password-empty": "Внесете лозинка за новиот корисник на базата: $1.\nИако може да се создаваат корисници без лозинка, тоа не е безбедно.",
+    "config-db-install-username": "Внесете корисничко име што ќе се користи за поврзување со базата во текот на инсталацијата. Ова не е корисничкото име од сметката на МедијаВики, туку посебно корисничко име за вашата база на податоци.",
+    "config-db-install-password": "Внесете клозинка што ќе се користи за поврзување со базата во текот на инсталацијата. Ова не е лозинката од сметката на МедијаВики, туку посебна лозинка за вашата база на податоци.",
+    "config-db-install-help": "Внесете го корисничкото име и лозинката што ќе се користи за поврзување со базата на податоци во текот на инсталацијата.",
+    "config-db-account-lock": "Користи го истото корисничко име и лозинка за редовна работа",
+    "config-db-wiki-account": "Корисничко име за редовна работа",
+    "config-db-wiki-help": "Внесете корисничко име и лозинка што ќе се користат за поврзување со базата на податоци во текот на редовната работа со викито.\nАко сметката не постои, а инсталационата сметка има доволно привилегии, тогаш оваа корисничка сметка ќе биде создадена со минималните привилегии потребни за работа со викито.",
+    "config-db-prefix": "Префикс на табелата на базата:",
+    "config-db-prefix-help": "Ако треба да делите една база на податоци со повеќе викија, или со МедијаВики и друг мрежен програм, тогаш можете да додадете префикс на сите називи на табелите за да спречите проблематични ситуации.\nНе користете празни простори.\n\nОва поле обично се остава празно.",
+    "config-db-charset": "Збир знаци за базата",
+    "config-charset-mysql5-binary": "Бинарен за MySQL 4.1/5.0",
+    "config-charset-mysql5": "UTF-8 за MySQL 4.1/5.0",
+    "config-charset-mysql4": "Назадно-соодветен UTF-8 за MySQL 4.0",
+    "config-charset-help": "'''ПРЕДУПРЕДУВАЊЕ:''' Ако користите '''назадно-соодветен UTF-8''' во MySQL 4.1+, а потоа направите резервен примерок на базата со <code>mysqldump</code>, ова може да ги опустоши сите не-ASCII знаци, и со тоа неповратно да ја расипе целата зачувана резерва!\n\nВо '''бинарен режим''', во базата МедијаВики го складира UTF-8 текстот во бинарни полиња.\nОва е поефикансно отколку  UTF-8 режимот на MySQL бидејќи ви овозможува да го користите целиот спектар на уникодни знаци.\nВо '''UTF-8 режим''', MySQL ќе знае на кој збир знаци припаѓаат вашите податоци, и може соодветно да ги претстави и претвори,\nно нема да ви дозволи да складирате знаци над [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Основната повеќејазична рамнина].",
+    "config-mysql-old": "Се бара MySQL $1 или поново, а вие имате $2.",
+    "config-db-port": "Порта на базата:",
+    "config-db-schema": "Шема за МедијаВики",
+    "config-db-schema-help": "Оваа шема обично по правило ќе работи нормално.\nСменете ја само ако знаете дека треба да се смени.",
+    "config-pg-test-error": "Не можам да се поврзам со базата '''$1''': $2",
+    "config-sqlite-dir": "Папка на SQLite-податоци:",
+    "config-sqlite-dir-help": "SQLite ги складира сите податоци во една податотека.\n\nПапката што ќе ја наведете мора да е запислива од мрежниот опслужувач во текот на инсталацијата.\n\nТаа '''не''' смее да биде достапна преку интернет, и затоа не ја ставаме кајшто ви се наоѓаат PHP-податотеките.\n\nИнсталаторот воедно ќе создаде податотека <code>.htaccess</code>, но ако таа не функционира како што треба, тогаш некој ќе може да ви влезе во вашата необработена (сирова) база на податоци.\nТука спаѓаат необработени кориснички податоци (е-поштенски адреси, хеширани лозинки) како и избришани ревизии и други податоци за викито до кои се има ограничен пристап.\n\nСе препорачува целата база да ја сместите некаде, како на пр. <code>/var/lib/mediawiki/вашетовики</code>.",
+    "config-oracle-def-ts": "Стандарден таблеарен простор:",
+    "config-oracle-temp-ts": "Привремен табеларен простор:",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-support-info": "МедијаВики ги поддржува следниве системи на бази на податоци:\n\n$1\n\nАко системот што сакате да го користите не е наведен подолу, тогаш проследете ја горенаведената врска со инструкции за да овозможите поддршка за тој систем.",
+    "config-support-mysql": "* $1 е главната цел на МедијаВики и најдобро се поддржува ([http://www.php.net/manual/en/mysql.installation.php како се составува PHP со поддршка за MySQL])",
+    "config-support-postgres": "* $1 е популарен систем на бази на податоци со отворен код кој претставува алтернатива на MySQL ([http://www.php.net/manual/en/pgsql.installation.php како да составите PHP со поддршка за PostgreSQL]). Може сè уште да има некои грешки. па затоа не се препорачува за употреба во производна средина.",
+    "config-support-sqlite": "* $1 е лесен систем за бази на податоци кој е многу добро поддржан. ([http://www.php.net/manual/en/pdo.installation.php Како да составите PHP со поддршка за SQLite], користи PDO)",
+    "config-support-oracle": "* $1 е база на податоци на комерцијално претпријатие. ([http://www.php.net/manual/en/oci8.installation.php Како да составите PHP со поддршка за OCI8])",
+    "config-header-mysql": "Нагодувања на MySQL",
+    "config-header-postgres": "Нагодувања на PostgreSQL",
+    "config-header-sqlite": "Нагодувања на SQLite",
+    "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": "Неважечки TNS „$1“.\nКористете или „TNS Name“ или низата „Easy Connect“ ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Методи на именување за Oracle])",
+    "config-invalid-db-name": "Неважечко име на базата „$1“.\nКористете само ASCII-букви (a-z, A-Z), бројки (0-9), долни црти (_) и цртички (-).",
+    "config-invalid-db-prefix": "Неважечки префикс за базата „$1“.\nКористете само ASCII-букви (a-z, A-Z), бројки (0-9), долни црти (_) и цртички (-).",
+    "config-connection-error": "$1.\n\nПроверете го долунаведениот домаќин, корисничко име и лозинка и обидете се повторно.",
+    "config-invalid-schema": "Неважечка шема за МедијаВики „$1“.\nКористете само букви, бројки и долни црти.",
+    "config-db-sys-create-oracle": "Инсталаторот поддржува само употреба на SYSDBA-сметка за создавање на нова сметка.",
+    "config-db-sys-user-exists-oracle": "Корисничката сметка „$1“ веќе постои. SYSDBA служи само за создавање на нова сметка!",
+    "config-postgres-old": "Се бара PostgreSQL $1 или поново, а вие имате $2.",
+    "config-sqlite-name-help": "Одберете име кое ќе го претставува вашето вики.\nНе користете празни простори и црти.\nОва ќе се користи за податотечното име на SQLite-податоците.",
+    "config-sqlite-parent-unwritable-group": "Не можам да ја создадам папката <code><nowiki>$1</nowiki></code> бидејќи мрежниот опслужувач не може да запише во матичната папка <code><nowiki>$2</nowiki></code>.\n\nИнсталаторот го утврди корисникот под кој работи вашиот мрежен опслужувач.\nЗа да продолжите, наместете да може да запишува во папката <code><nowiki>$3</nowiki></code>.\nНа Unix/Linux систем направете го следново:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Не можам да ја создадам папката <code><nowiki>$1</nowiki></code> бидејќи мрежниот опслужувач не може да запише во матичната папка <code><nowiki>$2</nowiki></code>.\n\nИнсталаторот не можеше го утврди корисникот под кој работи вашиот мрежен опслужувач.\nЗа да продолжите, наместете тој (и други!) да може глобално да запишува во папката <code><nowiki>$3</nowiki></code>\nНа Unix/Linux систем направете го следново:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Грешка при создавањето на податочната папка „$1“.\nПроверете каде се наоѓа и обидете се повторно.",
+    "config-sqlite-dir-unwritable": "Не можам да запишам во папката „$1“.\nВо дозволите за неа, овозможете му на мрежниот опслужувач да запишува во неа и обидете се повторно.",
+    "config-sqlite-connection-error": "$1.\n\nПроверете ја податочната папка и името на базата, и обидете се повторно.",
+    "config-sqlite-readonly": "Податотеката <code>$1</code> е незапислива.",
+    "config-sqlite-cant-create-db": "Не можев да ја создадам податотеката <code>$1</code> за базата.",
+    "config-sqlite-fts3-downgrade": "PHP нема поддршка за FTS3 — ја поништувам надградбата за табелите",
+    "config-can-upgrade": "Во оваа база има табели на МедијаВики.\nЗа да ги надградите на МедијаВики $1, кликнете на '''Продолжи'''.",
+    "config-upgrade-done": "Надградбата заврши.\n\nСега можете да [$1 почнете да го користите вашето вики].\n\nАко сакате да ја пресоздадете вашата податотека <code>LocalSettings.php</code>, тогаш кликнете на копчето подолу.\nОва '''не се препорачува''' освен во случај на проблеми со викито.",
+    "config-upgrade-done-no-regenerate": "Надградбата заврши.\n\nСега можете да [$1 почнете да го користите викито].",
+    "config-regenerate": "Пресоздај LocalSettings.php →",
+    "config-show-table-status": "Барањето <code>SHOW TABLE STATUS</code> не успеа!",
+    "config-unknown-collation": "'''Предупредување:''' Базата корисни непрепознаена упатна споредба.",
+    "config-db-web-account": "Сметка на базата за мрежен пристап",
+    "config-db-web-help": "Одберете корисничко име и лозинка што ќе ги користи мрежниот опслужувач за поврзување со опслужувачот на базта на податоци во текот на редовната работа со викито.",
+    "config-db-web-account-same": "Користи ја истата сметка од инсталацијата",
+    "config-db-web-create": "Создај ја сметката ако веќе не постои",
+    "config-db-web-no-create-privs": "Сметката што ја назначивте за инсталација нема доволно привилегии за да може да создаде сметка.\nТука мора да назначите постоечка сметка.",
+    "config-mysql-engine": "Складишен погон:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''Предупредување''': Го одбравте MyISAM како складишен погон за MySQL. Но тој не се препорачува за МедијаВики бидејќи:\n* одвај поддржува едновременост поради заклучување на табелите\n* поподложен на расипување од другите погони\n* кодната база на МедијаВики не секогаш може да работи со MyISAM како што треба\n\nАко вашата инсталација на MySQL поддржува InnoDB, тогаш сериозно препорачуваме да го користите него наместо MyISAM.\nАко вашата инсталација на MySQL не поддржува InnoDB, веројатно дошло време за надградба.",
+    "config-mysql-only-myisam-dep": "'''Предупредување:''' MyISAM е единствениот достапен складишен погон за MySQL, што не се препорачува за употреба со МедијаВики, бидејќи:\n* речиси не поддржува истовремено извршување на задачите поради заклучувањето на табелите\n* поподложен е на расипувања од другите погони\n* кодната база на МедијаВИки не секогаш работи исправно со MyISAM\nВашата инсталација на MySQL не поддржува InnoDB. Можеби е време да ја надградите.",
+    "config-mysql-engine-help": "'''InnoDB''' речиси секогаш е најдобар избор, бидејќи има добра поддршка за едновременост.\n\n'''MyISAM''' може да е побрз кај инсталациите наменети за само еден корисник или незаписни инсталации (само читање).\nБазите на податоци од MyISAM почесто се расипуваат од базите на InnoDB.",
+    "config-mysql-charset": "Збир знаци за базата:",
+    "config-mysql-binary": "Бинарен",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "Во '''бинарен режим''', во базата на податоци МедијаВики складира UTF-8 текст во бинарни полиња.\nОва е поефикасно отколку  TF-8 режимот на MySQL, и ви овозможува да ја користите целата палета на уникодни знаци.\n\nВо '''UTF-8 режим''', MySQL ќе знае на кој збир знаци припаѓаат вашите податоци, и може соодветно да ги претстави и претвори, но нема да ви дозволи да складиратезнаци над [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Основната повеќејазична рамнина].",
+    "config-site-name": "Име на викито:",
+    "config-site-name-help": "Ова ќе се појавува во заглавната лента на прелистувачот и на разни други места.",
+    "config-site-name-blank": "Внесете име на мрежното место.",
+    "config-project-namespace": "Проектен именски простор:",
+    "config-ns-generic": "Проект",
+    "config-ns-site-name": "Исто име како викито: $1",
+    "config-ns-other": "Друго (наведете)",
+    "config-ns-other-default": "МоеВики",
+    "config-project-namespace-help": "По примерот на Википедија, многу викија ги чуваат страниците со правила на посебно место од самите содржини, т.е. во „'''проектен именски простор'''“.\nСите наслови на страниците во овој именски простор почнуваат со извесна претставка, којшто можете да го укажете тука.\nПо традиција претставката произлегува од името на викито, но не смее да содржи интерпункциски знаци како „#“ или „:“.",
+    "config-ns-invalid": "Назначениот именски простор „<nowiki>$1</nowiki>“ е неважечки.\nНазначете друг проектен именски простор.",
+    "config-ns-conflict": "Наведениот именски простор „<nowiki>$1</nowiki>“ се коси со основниот именски простор на МедијаВики.\nНаведете друг именски простор за проектот.",
+    "config-admin-box": "Администратоска сметка",
+    "config-admin-name": "Вашето име:",
+    "config-admin-password": "Лозинка:",
+    "config-admin-password-confirm": "Пак лозинката:",
+    "config-admin-help": "Тука внесете го вашето корисничко име, на пр. „Петар Петровски“.\nОва име ќесе користи за најава во викито.",
+    "config-admin-name-blank": "Внесете администраторско корисничко име.",
+    "config-admin-name-invalid": "Назначенотго корисничко име „<nowiki>$1</nowiki>“ е неважечко.\nНазначете друго.",
+    "config-admin-password-blank": "Внесете лозинка за администраторската сметка",
+    "config-admin-password-same": "Лозинката не може да биде иста со корисничкото име.",
+    "config-admin-password-mismatch": "Лозинките што ги внесовте не се совпаѓаат.",
+    "config-admin-email": "Е-поштенска адреса:",
+    "config-admin-email-help": "Тука внесете е-поштенска адреса за да можете да добивате е-пошта од други корисници на викито, да ја менувате лозинката, и да бидете известувани за промени во страниците на вашиот список на набљудувања. Можете и да го оставите празно.",
+    "config-admin-error-user": "Се појави внатрешна грешка при создавањето на администраторот со име „<nowiki>$1</nowiki>“.",
+    "config-admin-error-password": "Се појави внатрешна грешка при задавање на лозинката за администраторот „<nowiki>$1</nowiki>“: <pre>$2</pre>",
+    "config-admin-error-bademail": "Внесовте неважечка е-поштенска адреса",
+    "config-subscribe": "Претплатете се на [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce release поштенскиот список за известувања].",
+    "config-subscribe-help": "Ова е нископрометен поштенски список кој се користи за соопштувања во врска со изданија, вклучувајќи важни безбедносни соопштенија.\nТреба да се претплатите и да ја надградувате вашата инсталација на МедијаВики кога излегуваат нови верзии.",
+    "config-subscribe-noemail": "Се обидовте да се претплатите на поштенскиот список со известувања за нови изданија без да наведете е-пошта.\nНаведете е-поштенска адреса ако сакате да се претплатите на списокот.",
+    "config-almost-done": "Уште малку сте готови!\nСега можете да ги прескокнете преостанатите поставувања и веднаш да го инсталирате викито.",
+    "config-optional-continue": "Постави ми повеќе прашања.",
+    "config-optional-skip": "Веќе ми здосади, дај само инсталирај го викито.",
+    "config-profile": "Профил на кориснички права:",
+    "config-profile-wiki": "Отворено вики",
+    "config-profile-no-anon": "Задолжително отворање сметка",
+    "config-profile-fishbowl": "Само овластени уредници",
+    "config-profile-private": "Приватно вики",
+    "config-profile-help": "Викијата функционираат најдобро кога имаат што повеќе уредници.\nВо МедијаВики лесно се проверуваат скорешните промени, и лесно се исправа (технички: „враќа“) штетата направена од неупатени или злонамерни корисници.\n\nМногумина имаат најдено најразлични полезни примени за МедијаВики, но понекогаш не е лесно да убедите некого во предностите на вики-концептот.\nЗначи имате избор.\n\n'''{{int:config-profile-wiki}}''' — модел според кој секој може да уредува, дури и без најавување.\nАко имате вики со '''задолжително отворање на сметка''', тогаш добивате повеќе контрола, но ова може даги одврати спонтаните учесници.\n\n'''{{int:config-profile-fishbowl}}''' — може да уредуваат само уредници што имаат добиено дозвола за тоа, но јавноста може да ги гледа страниците, вклучувајќи ја нивната историја.\n'''{{int:config-profile-private}}''' — страниците се видливи и уредливи само за овластени корисници.\n\nПо инсталацијата имате на избор и посложени кориснички права и поставки. Погледајте во [//www.mediawiki.org/wiki/Manual:User_rights прирачникот].",
+    "config-license": "Авторски права и лиценца:",
+    "config-license-none": "Без подножје за лиценца",
+    "config-license-cc-by-sa": "Криејтив комонс НаведиИзвор СподелиПодИстиУслови",
+    "config-license-cc-by": "Криејтив комонс НаведиИзвор",
+    "config-license-cc-by-nc-sa": "Криејтив комонс НаведиИзвор-Некомерцијално-СподелиПодИстиУслови",
+    "config-license-cc-0": "Криејтив комонс Нула (јавна сопственост)",
+    "config-license-gfdl": "ГНУ-ова лиценца за слободна документација 1.3 или понова",
+    "config-license-pd": "Јавна сопственост",
+    "config-license-cc-choose": "Одберете друга лиценца на Криејтив комонс по ваш избор",
+    "config-license-help": "Многу јавни викија ги ставаат сите придонеси под [http://freedomdefined.org/Definition слободна лиценца].\nСо ова се создава атмосфера на општа сопственост и поттикнува долгорочно учество.\nОва не е неопходно за викија на поединечни физички или правни лица.\n\nАко сакате да користите текст од Википедија, и сакате Википедија да прифаќа текст прекопиран од вашето вики, тогаш треба да ја одберете лиценцата '''Криејтив комонс НаведиИзвор СподелиПодИстиУслови'''.\n\nГНУ-овата лиценца за слободна документација (ГЛСД) е старата лиценца на Википедија.\nОваа лиценца сè уште важи, но е тешка за разбирање.\nИсто така треба да се има на ум дека пренамената на содржините под ГЛСД не е лесна.",
+    "config-email-settings": "Нагодувања за е-пошта",
+    "config-enable-email": "Овозможи излезна е-пошта",
+    "config-enable-email-help": "Ако сакате да работи е-поштата, [http://www.php.net/manual/en/mail.configuration.php поштенските нагодувања на PHP] треба да се правилно наместени.\nАко воопшто не сакате никакви функции за е-пошта, тогаш можете да ги оневозможите тука.",
+    "config-email-user": "Овозможи е-пошта од корисник до корисник",
+    "config-email-user-help": "Дозволи сите корисници да можат да си праќаат е-пошта ако ја имаат овозможено во нагодувањата.",
+    "config-email-usertalk": "Овозможи известувања за промени во кориснички страници за разговор",
+    "config-email-usertalk-help": "Овозможи корисниците да добиваат известувања за промени во нивните кориснички страници за разговор ако ги имаат овозможено во нагодувањата.",
+    "config-email-watchlist": "Овозможи известувања за список на набљудувања",
+    "config-email-watchlist-help": "Овозможи корисниците да добиваат известувања за нивните набљудувани страници ако ги имаат овозможено во нагодувањата.",
+    "config-email-auth": "Овозможи потврдување на е-пошта",
+    "config-email-auth-help": "Ако оваа можност е вклучена, тогаш корисниците ќе мора да ја потврдат нивната е-поштенска адреса преку врска испратена до нив кога ја укажуваат или менуваат е-поштенската адреса.\nСамо корисници со потврдена е-пошта можат да добиваат е-пошта од други корисници или да ги менуваат писмата за известување.\nОваа можност е '''препорачана''' за јавни викија поради можни злоупотреби на е-поштенската функција.",
+    "config-email-sender": "Повратна е-поштенска адреса:",
+    "config-email-sender-help": "Внесете ја е-поштенската адреса што ќе се користи како повратна адреса за излезна е-пошта.\nТаму ќе се испраќаат вратените (непримени) писма.\nМногу поштенски опслужувачи бараат барем делот за доменско име да биде важечки.",
+    "config-upload-settings": "Подигање на слики и податотеки",
+    "config-upload-enable": "Овозможи подигање на податотеки",
+    "config-upload-help": "Подигањето на податотеки потенцијално го изложуваат вашиот опслужувач на безбедносни ризици.\nЗа повеќе информации, прочитајте го [//www.mediawiki.org/wiki/Manual:Security поглавието за безбедност] во прирачникот.\n\nЗа да овозможите подигање на податотеки, сменете го режимот на потпапката <code>images</code> во основната папка на МедијаВики, за да му овозможите на мрежниот опслужувач да запишува во неа.\nПотоа овозможете ја оваа функција.",
+    "config-upload-deleted": "Папка за избришаните податотеки:",
+    "config-upload-deleted-help": "Одберете во која папка да се архивираат избришаните податотеки.\nНајдобро би било ако таа не е достапна преку интернет.",
+    "config-logo": "URL за логото:",
+    "config-logo-help": "Матичното руво на МедијаВики има простор за лого од 135x160 пиксели над страничната лента.\n\nМожете да употребите <code>$wgStylePath</code> или <code>$wgScriptPath</code> ако вашето лого е релативно на тие патеки.\n\nАко не сакате да имате лого, тогаш оставете го ова поле празно.",
+    "config-instantcommons": "Овозможи Instant Commons",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] е функција која им овозможува на викијата да користат слики, звучни записи и други мултимедијални содржини од [//commons.wikimedia.org/ Заедничката Ризница].\nЗа да може ова да работи, МедијаВики бара пристап до интернет.\n\nЗа повеќе информации за оваа функција и напатствија за нејзино поставување на вики (сите други освен Ризницата), коносултирајте го [//mediawiki.org/wiki/Manual:$wgForeignFileRepos прирачникот].",
+    "config-cc-error": "Изборникот на лиценци од Криејтив комонс не даде резултати.\nВнесете го името на лиценцата рачно.",
+    "config-cc-again": "Одберете повторно...",
+    "config-cc-not-chosen": "Одберете ја саканата лиценца од Криејтив комонс и стиснете на „продолжи“.",
+    "config-advanced-settings": "Напредни нагодувања",
+    "config-cache-options": "Нагодувања за кеширање на објекти:",
+    "config-cache-help": "Кеширањето на објекти се користи за зголемување на брзината на МедијаВики со кеширање на често употребуваните податоци.\nОва многу се препорачува на средни до големи викија, но од тоа ќе имаат полза и малите викија.",
+    "config-cache-none": "Без кеширање (не се остранува ниедна функција, но може да влијае на брзината кај поголеми викија)",
+    "config-cache-accel": "Кеширање на PHP-објекти (APC, XCache или WinCache)",
+    "config-cache-memcached": "Користи Memcached (бара дополнително поставување и нагодување)",
+    "config-memcached-servers": "Memcached-опслужувачи:",
+    "config-memcached-help": "Список на IP-адреси за употреба во Memcached.\nТреба да се наведе по една во секој ред, како и портата што ќе се користи. На пример:\n 127.0.0.1:11211\n 192.168.1.25:1234",
+    "config-memcache-needservers": "Го одбравте Memcached како ваш ваш тип на скришно памтење (кеш), но не наведовте опслужувач(и)",
+    "config-memcache-badip": "Внесовте неважечка IP-адреса за Memcached: $1",
+    "config-memcache-noport": "Не ја наведовте портата за опслужувачот на Memcached: $1.\nАко не знаете која порта треба да се користи, основната е 11211",
+    "config-memcache-badport": "Бројките за портата на Memcached треба да бидат помеѓу $1 и $2",
+    "config-extensions": "Додатоци",
+    "config-extensions-help": "Во вашата папка <code>./extensions</code> беа востановени горенаведените додатоци.\n\nЗа ова може да треба дополнително нагодување, но можете да ги овозможите сега",
+    "config-install-alreadydone": "'''Предупредување:''' Изгледа дека веќе го имате инсталирано МедијаВики и сега сакате да го инсталирате повторно.\nПродолжете на следната страница.",
+    "config-install-begin": "Стискајќи на „{{int:config-continue}}“ ќе ја започнете инсталацијата на МедијаВики.\nАко сакате да направите измени во досегашното, стиснете на „{{int:config-back}}“.",
+    "config-install-step-done": "готово",
+    "config-install-step-failed": "не успеа",
+    "config-install-extensions": "Вклучувам додатоци",
+    "config-install-database": "Ја поставувам базата на податоци",
+    "config-install-schema": "Создавам шема",
+    "config-install-pg-schema-not-exist": "PostgreSQL-шемата не постои",
+    "config-install-pg-schema-failed": "Создавањето натабелите не успеа.\nПроверете дали корисникот „$1“ може да запишува во шемата „$2“.",
+    "config-install-pg-commit": "Спроведување на промени",
+    "config-install-pg-plpgsql": "Проверувам јазик PL/pgSQL",
+    "config-pg-no-plpgsql": "Ќе треба да го инсталирате јазикот PL/pgSQL во базата $1",
+    "config-pg-no-create-privs": "Сметката што ја наведовте за инсталацијата нема доволно привилегии за да создаде друга сметка.",
+    "config-pg-not-in-role": "Сметката што ја наведовте за мрежниот корисник веќе постои.\nСметката што ја наведовте за инсталација не е суперкорисник и не ѝ припаѓа на улогата на мрежниот корисник, па затоа не може да создава објекти во негова  сопственост.\n\nМедијаВики налага дека табелите мора да се во сопственост на мрежниот корисник. Наведете друга мрежна сметка, или стиснете на „назад“ и наведете соодветно привилегиран корисник за инталацијата.",
+    "config-install-user": "Создавам корисник за базата",
+    "config-install-user-alreadyexists": "Корисникот „$1“ веќе постои",
+    "config-install-user-create-failed": "Создавањето на корисникот „$1“ не успеа: $2",
+    "config-install-user-grant-failed": "Доделувањето на дозвола на корисникот „$1“ не успеа: $2",
+    "config-install-user-missing": "Наведениот корисник „$1“ не постои.",
+    "config-install-user-missing-create": "Наведениот корисник „$1“ не постои.\nАко сакате да го создадете, штиклирајте ја можноста „создај сметка“.",
+    "config-install-tables": "Создавам табели",
+    "config-install-tables-exist": "'''Предупредување''': Изгледа дека табелите за МедијаВики веќе постојат.\nГо прескокнувам создавањето.",
+    "config-install-tables-failed": "'''Грешка''': Создавањето на табелата не успеа поради следнава грешка: $1",
+    "config-install-interwiki": "Ги пополнувам основно зададените меѓувики-табели",
+    "config-install-interwiki-list": "Не можев да ја пронајдам податотеката <code>interwiki.list</code>.",
+    "config-install-interwiki-exists": "'''Предупредување''': Табелата со интервикија веќе содржи ставки.\nГо прескокнувам основно-зададениот список.",
+    "config-install-stats": "Ги подготвувам статистиките",
+    "config-install-keys": "Создавање на тајни клучеви",
+    "config-insecure-keys": "'''Предупредување:''' {{PLURAL:$2|Безбедносниот клуч $1 создаден во текот на инсталацијата не е сосем безбеден|Безбедносните клучеви $1 создадени во текот на инсталацијата не се сосем безбедни}}. Ви препорачуваме да {{PLURAL:$2|го|ги}} смените рачно.",
+    "config-install-sysop": "Создавање на администраторска корисничка сметка",
+    "config-install-subscribe-fail": "Не можам да ве претплатам на известувањето mediawiki-announce: $1",
+    "config-install-subscribe-notpossible": "cURL не е инсталиран, а allow_url_fopen не е достапно.",
+    "config-install-mainpage": "Создавам главна страница со стандардна содржина",
+    "config-install-extension-tables": "Изработка на табели за овозможени додатоци",
+    "config-install-mainpage-failed": "Не можев да вметнам главна страница: $1",
+    "config-install-done": "'''Честитаме!'''\nУспешно го инсталиравте МедијаВики.\n\nИнсталаторот создаде податотека <code>LocalSettings.php</code>.\nТаму се содржат сите ваши нагодувања.\n\nЌе треба да ја преземете и да ја ставите во основата на инсталацијата (истата папка во која се наоѓа index.php). Преземањето треба да е започнато автоматски.\n\nАко не ви е понудено преземање, или пак ако сте го откажале, можете да го почнете одново стискајќи на следнава врска:\n\n$3\n\n'''Напомена''': Ако ова не го направите сега, податотеката со поставки повеќе нема да биде на достапна.\n\nОткога ќе завршите со тоа, можете да '''[$2 влезете на вашето вики]'''.",
+    "config-download-localsettings": "Преземи го <code>LocalSettings.php</code>",
+    "config-help": "помош",
+    "config-nofile": "Податотеката „$1“ не е пронајдена. Да не е избришана?",
+    "config-extension-link": "Дали сте знаеле дека вашето вики поддржува [//www.mediawiki.org/wiki/Manual:Extensions додатоци]?\n\nМожете да ги прелистате [//www.mediawiki.org/wiki/Category:Extensions_by_category по категории] или да ја посетите [//www.mediawiki.org/wiki/Extension_Matrix матрицата], каде ќе најдете полн список на додатоци.",
+    "mainpagetext": "'''МедијаВики е успешно инсталиран.'''",
+    "mainpagedocfooter": "Погледнете го [//meta.wikimedia.org/wiki/Help:Contents Упатството за корисници] за подетални иформации како се користи вики-програмот.\n\n==Од каде да почнете==\n* [//meta.wikimedia.org/wiki/Manual:Configuration_settings Список на нагодувања]\n* [//meta.wikimedia.org/wiki/Manual:FAQ ЧПП (често поставувани прашања) за МедијаВики].\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Поштенски список на МедијаВики за нови верзии]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Локализирајте го МедијаВики на вашиот јазик]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ml.json b/includes/installer/i18n/ml.json
new file mode 100644 (file)
index 0000000..05f43c6
--- /dev/null
@@ -0,0 +1,121 @@
+{
+    "@metadata": {
+        "authors": [
+            "Praveenp",
+            "Sadik Khalid"
+        ]
+    },
+    "config-desc": "മീഡിയവിക്കി ഇൻസ്റ്റോളർ",
+    "config-title": "മീഡിയവിക്കി $1 ഇൻസ്റ്റലേഷൻ",
+    "config-information": "വിവരങ്ങൾ",
+    "config-localsettings-upgrade": "'''അറിയിപ്പ്''': ഒരു <code>LocalSettings.php</code> ഫയൽ കാണുന്നു.\nസോഫ്റ്റ്‌വേർ അപ്‌ഗ്രേഡ് ചെയ്യുക സാദ്ധ്യമാണ്.\nദയവായി പെട്ടിയിൽ <code>$wgUpgradeKey</code> എന്നതിന്റെ വില നൽകുക.",
+    "config-localsettings-key": "അപ്‌ഗ്രേഡ് ചാവി:",
+    "config-localsettings-badkey": "താങ്കൾ നൽകിയ ചാവി തെറ്റാണ്",
+    "config-session-error": "സെഷൻ തുടങ്ങുന്നതിൽ പിഴവ്: $1",
+    "config-your-language": "താങ്കളുടെ ഭാഷ:",
+    "config-your-language-help": "ഇൻസ്റ്റലേഷൻ പ്രക്രിയയിൽ ഉപയോഗിക്കേണ്ട ഭാഷ തിരഞ്ഞെടുക്കുക.",
+    "config-wiki-language": "വിക്കി ഭാഷ:",
+    "config-wiki-language-help": "വിക്കിയിൽ പ്രധാനമായി ഉപയോഗിക്കേണ്ട ഭാഷ തിരഞ്ഞെടുക്കുക.",
+    "config-back": "← പിന്നിലേയ്ക്ക്",
+    "config-continue": "തുടരുക →",
+    "config-page-language": "ഭാഷ",
+    "config-page-welcome": "മീഡിയവിക്കിയിലേയ്ക്ക് സ്വാഗതം!",
+    "config-page-dbconnect": "ഡേറ്റാബേസുമായി ബന്ധപ്പെടുക",
+    "config-page-upgrade": "നിലവിലുള്ള ഇൻസ്റ്റലേഷൻ അപ്‌ഗ്രേഡ് ചെയ്യുക",
+    "config-page-dbsettings": "ഡേറ്റാബേസ് സജ്ജീകരണങ്ങൾ",
+    "config-page-name": "പേര്",
+    "config-page-options": "ഐച്ഛികങ്ങൾ",
+    "config-page-install": "ഇൻസ്റ്റോൾ",
+    "config-page-complete": "സമ്പൂർണ്ണം!",
+    "config-page-restart": "ഇൻസ്റ്റലേഷൻ അടച്ച ശേഷം പുനർപ്രവർത്തിപ്പിക്കുക",
+    "config-page-readme": "ഇത് വായിക്കൂ",
+    "config-page-releasenotes": "പ്രകാശന കുറിപ്പുകൾ",
+    "config-page-copying": "പകർത്തൽ",
+    "config-page-upgradedoc": "അപ്‌ഗ്രേഡിങ്",
+    "config-help-restart": "ഇതുവരെ ഉൾപ്പെടുത്തിയ എല്ലാവിവരങ്ങളും ഒഴിവാക്കാനും ഇൻസ്റ്റലേഷൻ പ്രക്രിയ നിർത്തി-വീണ്ടുമാരംഭിക്കാനും താങ്കളാഗ്രഹിക്കുന്നുണ്ടോ?",
+    "config-restart": "അതെ, പുനർപ്രവർത്തിപ്പിക്കുക",
+    "config-sidebar": "* [//www.mediawiki.org മീഡിയവിക്കി പ്രധാനതാൾ]\n* [//www.mediawiki.org/wiki/Help:Contents ഉപയോക്തൃസഹായി]\n* [//www.mediawiki.org/wiki/Manual:Contents കാര്യനിർവഹണസഹായി]\n* [//www.mediawiki.org/wiki/Manual:FAQ പതിവുചോദ്യങ്ങൾ]",
+    "config-env-php": "പി.എച്ച്.പി. $1 ഇൻസ്റ്റോൾ ചെയ്തിട്ടുണ്ട്.",
+    "config-no-db": "അനുയോജ്യമായ ഡേറ്റാബേസ് ഡ്രൈവർ കണ്ടെത്താനായില്ല!",
+    "config-memory-raised": "പി.എച്ച്.പി.യുടെ <code>memory_limit</code> $1 ആണ്, $2 ആയി ഉയർത്തിയിരിക്കുന്നു.",
+    "config-memory-bad": "'''മുന്നറിയിപ്പ്:''' പി.എച്ച്.പി.യുടെ <code>memory_limit</code> $1 ആണ്.\nഇത് മിക്കവാറും വളരെ കുറവാണ്.\nഇൻസ്റ്റലേഷൻ പരാജയപ്പെട്ടേക്കാം!",
+    "config-db-type": "ഡേറ്റാബേസ് തരം:",
+    "config-db-host": "ഡേറ്റാബേസ് ഹോസ്റ്റ്:",
+    "config-db-name": "ഡേറ്റാബേസിന്റെ പേര്:",
+    "config-db-name-oracle": "ഡേറ്റാബേസ് സ്കീമ:",
+    "config-db-install-account": "ഇൻസ്റ്റലേഷനുള്ള ഉപയോക്തൃ അംഗത്വം",
+    "config-db-username": "ഡേറ്റാബേസ് ഉപയോക്തൃനാമം:",
+    "config-db-password": "ഡേറ്റാബേസ് രഹസ്യവാക്ക്:",
+    "config-mysql-old": "മൈഎസ്‌ക്യൂഎൽ $1 അഥവാ അതിലും പുതിയത് ആവശ്യമാണ്, താങ്കളുടെ പക്കൽ ഉള്ളത് $2 ആണ്.",
+    "config-db-port": "ഡേറ്റാബേസ് പോർട്ട്:",
+    "config-db-schema": "മീഡിയവിക്കിയ്ക്കായുള്ള സ്കീമ",
+    "config-support-info": "മീഡിയവിക്കി താഴെ പറയുന്ന ഡേറ്റാബേസ് സിസ്റ്റംസ് പിന്തുണയ്ക്കുന്നു:\n\n$1\n\nതാങ്കൾ ഉപയോഗിക്കാനാഗ്രഹിക്കുന്ന ഡേറ്റാബേസ് സിസ്റ്റം പട്ടികയിലില്ലെങ്കിൽ, ദയവായി പിന്തുണ സജ്ജമാക്കാനായി മുകളിൽ നൽകിയിട്ടുള്ള ലിങ്കിലെ നിർദ്ദേശങ്ങൾ ചെയ്യുക.",
+    "config-header-mysql": "മൈഎസ്‌ക്യൂഎൽ സജ്ജീകരണങ്ങൾ",
+    "config-invalid-db-type": "അസാധുവായ ഡേറ്റാബേസ് തരം",
+    "config-missing-db-name": "\"ഡേറ്റാബേസിന്റെ പേരി\"ന് ഒരു വില നിർബന്ധമായും നൽകിയിരിക്കണം",
+    "config-connection-error": "$1.\n\nതാഴെ നൽകിയിരിക്കുന്ന ഹോസ്റ്റ്, ഉപയോക്തൃനാമം, രഹസ്യവാക്ക് എന്നിവ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.",
+    "config-regenerate": "LocalSettings.php പുനഃസൃഷ്ടിക്കുക →",
+    "config-mysql-engine": "സ്റ്റോറേജ് എൻജിൻ:",
+    "config-site-name": "വിക്കിയുടെ പേര്:",
+    "config-site-name-help": "ഇത് ബ്രൗസറിന്റെ ടൈറ്റിൽ ബാറിലും മറ്റനേകം ഇടങ്ങളിലും പ്രദർശിപ്പിക്കപ്പെടും.",
+    "config-site-name-blank": "സൈറ്റിന്റെ പേര് നൽകുക.",
+    "config-project-namespace": "പദ്ധതി നാമമേഖല:",
+    "config-ns-generic": "പദ്ധതി",
+    "config-ns-site-name": "വിക്കിയുടെ പേര് തന്നെ: $1",
+    "config-ns-other": "ഇതരം (വ്യക്തമാക്കുക)",
+    "config-ns-other-default": "എന്റെ‌വിക്കി",
+    "config-admin-box": "കാര്യനിർവാഹക അംഗത്വം",
+    "config-admin-name": "താങ്കളുടെ പേര്:",
+    "config-admin-password": "രഹസ്യവാക്ക്:",
+    "config-admin-password-confirm": "രഹസ്യവാക്ക് ഒരിക്കൽക്കൂടി:",
+    "config-admin-help": "ഇവിടെ താങ്കളുടെ ഇച്ഛാനുസരണമുള്ള ഉപയോക്തൃനാമം നൽകുക, ഉദാഹരണം \"ശശി കൊട്ടാരത്തിൽ\".\nഈ പേരായിരിക്കണം വിക്കിയിൽ പ്രവേശിക്കാൻ താങ്കൾ ഉപയോഗിക്കേണ്ടത്.",
+    "config-admin-name-blank": "ഒരു കാര്യനിർവാഹക ഉപയോക്തൃനാമം നൽകുക.",
+    "config-admin-name-invalid": "നൽകിയിട്ടുള്ള ഉപയോക്തൃനാമം \"<nowiki>$1</nowiki>\" അസാധുവാണ്.\nമറ്റൊരു ഉപയോക്തൃനാമം നൽകുക.",
+    "config-admin-password-blank": "കാര്യനിർവാഹക അംഗത്വത്തിനുള്ള രഹസ്യവാക്ക് നൽകുക.",
+    "config-admin-password-same": "രഹസ്യവാക്കും ഉപയോക്തൃനാമവും ഒന്നാകരുത്.",
+    "config-admin-password-mismatch": "താങ്കൾ നൽകിയ രഹസ്യവാക്കുകൾ രണ്ടും തമ്മിൽ യോജിക്കുന്നില്ല.",
+    "config-admin-email": "ഇമെയിൽ വിലാസം:",
+    "config-admin-error-user": "\"<nowiki>$1</nowiki>\" എന്ന പേരിലുള്ള കാര്യനിർവഹണ അംഗത്വ നിർമ്മിതിയ്ക്കിടെ ആന്തരികമായ പിഴവുണ്ടായി.",
+    "config-admin-error-password": "\"<nowiki>$1</nowiki>\" എന്ന പേരിലുള്ള കാര്യനിർവാഹക അംഗത്വത്തിനു രഹസ്യവാക്ക് സജ്ജീകരിച്ചപ്പോൾ ആന്തരികമായ പിഴവുണ്ടായി: <pre>$2</pre>",
+    "config-subscribe": "[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce പ്രകാശന അറിയിപ്പ് മെയിലിങ് ലിസ്റ്റിൽ] വരിക്കാരാകുക.",
+    "config-subscribe-help": "പുറത്തിറക്കൽ അറിയിപ്പുകളും, പ്രധാന സുരക്ഷാ അറിയിപ്പുകളും പ്രസിദ്ധീകരിക്കുന്ന വളരെ എഴുത്തുകളൊന്നും ഉണ്ടാകാറില്ലാത്ത മെയിലിങ് ലിസ്റ്റ് ആണിത്.\nപുതിയ പതിപ്പുകൾ പുറത്ത് വരുന്നതനുസരിച്ച് അവയെക്കുറിച്ചറിയാനും മീഡിയവിക്കി ഇൻസ്റ്റലേഷൻ പുതുക്കാനും ഇതിന്റെ വരിക്കാരൻ/വരിക്കാരി ആവുക.",
+    "config-almost-done": "മിക്കവാറും പൂർത്തിയായിരിക്കുന്നു!\nബാക്കിയുള്ളവ അവഗണിച്ച് വിക്കി ഇൻസ്റ്റോൾ ചെയ്യാവുന്നതാണ്.",
+    "config-optional-continue": "കൂടുതൽ ചോദ്യങ്ങൾ ചോദിക്കൂ.",
+    "config-optional-skip": "എനിക്ക് മടുത്തു, ഒന്ന് ഇൻസ്റ്റോൾ ചെയ്ത് തീർക്ക്.",
+    "config-profile-wiki": "പരമ്പരാഗത വിക്കി",
+    "config-profile-no-anon": "അംഗത്വ സൃഷ്ടി ചെയ്യേണ്ടതുണ്ട്",
+    "config-profile-fishbowl": "അനുവാദമുള്ളവർ മാത്രം തിരുത്തുക",
+    "config-profile-private": "സ്വകാര്യ വിക്കി",
+    "config-license": "പകർപ്പവകാശവും അനുമതിയും:",
+    "config-license-cc-by-sa": "ക്രിയേറ്റീവ് കോമൺസ് ആട്രിബ്യൂഷൻ ഷെയർ എലൈക്",
+    "config-license-cc-by-nc-sa": "ക്രിയേറ്റീവ് കോമൺസ് ആട്രിബ്യൂഷൻ നോൺ-കൊമേഴ്സ്യൽ ഷെയർ എലൈക്",
+    "config-license-pd": "പൊതുസഞ്ചയം",
+    "config-email-settings": "ഇമെയിൽ സജ്ജീകരണങ്ങൾ",
+    "config-enable-email-help": "ഇമെയിൽ പ്രവർത്തിക്കണമെങ്കിൽ, [http://www.php.net/manual/en/mail.configuration.php PHP's മെയിൽ സജ്ജീകരണങ്ങൾ] ശരിയായി ക്രമീകരിക്കേണ്ടതുണ്ട്.\nഇമെയിൽ സൗകര്യം ആവശ്യമില്ലെങ്കിൽ, ഇവിടെത്തന്നെ അത് നിർജ്ജീവമാക്കാം.",
+    "config-email-user": "ഉപയോക്താക്കൾ തമ്മിലുള്ള ഇമെയിൽ പ്രവർത്തനസജ്ജമാക്കുക",
+    "config-email-user-help": "സ്വന്തം ക്രമീകരണങ്ങളിൽ ഇമെയിൽ സജ്ജമാക്കിയിട്ടുണ്ടെങ്കിൽ ഉപയോക്താക്കളെ മറ്റുള്ളവർക്ക് ഇമെയിൽ അയയ്ക്കാൻ അനുവദിക്കുക.",
+    "config-email-usertalk": "ഉപയോക്തൃസംവാദം താളിൽ മാറ്റങ്ങളുണ്ടായാൽ അറിയിക്കുക",
+    "config-email-watchlist": "ശ്രദ്ധിക്കുന്നവയിൽ മാറ്റം വന്നാൽ അറിയിക്കുക",
+    "config-email-auth": "ഇമെയിലിന്റെ സാധുതാപരിശോധന സജ്ജമാക്കുക",
+    "config-email-sender": "മറുപടിയ്ക്കുള്ള ഇമെയിൽ വിലാസം:",
+    "config-upload-settings": "ചിത്രങ്ങളും പ്രമാണങ്ങളും അപ്‌ലോഡ് ചെയ്യൽ",
+    "config-upload-enable": "പ്രമാണ അപ്‌ലോഡുകൾ സജ്ജമാക്കുക",
+    "config-upload-deleted": "മായ്ക്കപ്പെട്ട ഫയലുകൾക്കുള്ള ഡയറക്റ്ററി:",
+    "config-logo": "ലോഗോയുടെ യൂ.ആർ.എൽ.:",
+    "config-logo-help": "മീഡിയവിക്കിയിൽ സ്വതേയുള്ള ദൃശ്യരൂപത്തിൽ 135x160 പിക്സലുള്ള ലോഗോ മുകളിൽ ഇടത് മൂലയിൽ കാണാം.\nഅനുയോജ്യമായ വലിപ്പമുള്ള ഒരു ചിത്രം അപ്‌ലോഡ് ചെയ്തിട്ട്, അതിന്റെ യൂ.ആർ.എൽ. ഇവിടെ നൽകുക.\n\nതാങ്കൾക്ക് ലോഗോ ആവശ്യമില്ലെങ്കിൽ, ഈ പെട്ടി ശൂന്യമായിടുക.",
+    "config-cc-again": "ഒന്നുകൂടി എടുക്കൂ...",
+    "config-advanced-settings": "വിപുലീകൃത ക്രമീകരണങ്ങൾ",
+    "config-extensions": "അനുബന്ധങ്ങൾ",
+    "config-install-step-done": "ചെയ്തു കഴിഞ്ഞു",
+    "config-install-step-failed": "പരാജയപ്പെട്ടു",
+    "config-install-extensions": "അനുബന്ധങ്ങൾ ഉൾപ്പെടുത്തുന്നു",
+    "config-install-database": "ഡേറ്റാബേസ് സജ്ജമാക്കുന്നു",
+    "config-install-pg-commit": "മാറ്റങ്ങൾ സ്വീകരിക്കുന്നു",
+    "config-install-user": "ഡേറ്റാബേസ് ഉപയോക്താവിനെ സൃഷ്ടിക്കുന്നു",
+    "config-install-sysop": "കാര്യനിർവാഹക അംഗത്വം സൃഷ്ടിക്കുന്നു",
+    "config-install-mainpage": "സ്വാഭാവിക ഉള്ളടക്കത്തോടുകൂടി പ്രധാനതാൾ സൃഷ്ടിക്കുന്നു",
+    "config-install-mainpage-failed": "പ്രധാന താൾ ഉൾപ്പെടുത്താൻ കഴിഞ്ഞില്ല: $1",
+    "config-install-done": "'''അഭിനന്ദനങ്ങൾ!'''\nതാങ്കൾ വിജയകരമായി മീഡിയവിക്കി സജ്ജീകരിച്ചിരിക്കുന്നു.\n\nഇൻസ്റ്റോളർ താങ്കളുടെ എല്ലാ ക്രമീകരണങ്ങളുമടങ്ങുന്ന <code>LocalSettings.php</code> ഫയൽ സൃഷ്ടിച്ചിട്ടുണ്ട്.\n\nപ്രസ്തുത പ്രമാണം ഡൗൺലോഡ് ചെയ്ത് താങ്കളുടെ വിക്കി സജ്ജീകരണത്തിന്റെ അടിസ്ഥാന ഡയറക്റ്ററിയിൽ ഇടേണ്ടതാണ് (index.php കിടക്കുന്ന അതേ ഡയറക്റ്ററിയിൽ). ഡൗൺലോഡിങ്ങ് സ്വയം ആരംഭിക്കുന്നതാണ്. ഡൗൺലോഡിങ്ങ് സ്വയം തുടങ്ങാതിരിക്കുകയോ, താങ്കൾ റദ്ദാക്കുകയോ ചെയ്ത പക്ഷം താഴെ കാണുന്ന കണ്ണിയിൽ ഞെക്കുക:\n$3\n\n'''ശ്രദ്ധിക്കുക''': താങ്കൾ ഇപ്പോൾ ചെയ്തില്ലെങ്കിൽ, ഫയൽ എടുക്കാതെ ഇൻസ്റ്റലേഷൻ പ്രക്രിയയിൽ നിന്ന് പുറത്തിറങ്ങിയാൽ, സൃഷ്ടിക്കപ്പെട്ട ക്രമീകരണങ്ങളടങ്ങുന്ന പ്രമാണം പിന്നീട് ലഭ്യമായിരിക്കില്ല.\n\nമുകളിൽ പറഞ്ഞ പ്രകാരം ചെയ്തു കഴിഞ്ഞാൽ, താങ്കൾക്ക് '''[$2 വിക്കിയിൽ പ്രവേശിക്കാവുന്നതാണ്]'''.",
+    "mainpagetext": "'''മീഡിയവിക്കി വിജയകരമായി സജ്ജീകരിച്ചിരിക്കുന്നു.'''",
+    "mainpagedocfooter": "വിക്കി സോഫ്റ്റ്‌വെയർ ഉപയോഗിക്കുന്നതിനെ കുറിച്ചുള്ള വിശദാംശങ്ങൾക്ക്  [//meta.wikimedia.org/wiki/Help:Contents സോഫ്റ്റ്‌വെയർ സഹായി] കാണുക.\n\n== പ്രാരംഭസഹായികൾ ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings ക്രമീകരണങ്ങളുടെ പട്ടിക]\n* [//www.mediawiki.org/wiki/Manual:FAQ മീഡിയവിക്കി പതിവുചോദ്യങ്ങൾ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce മീഡിയവിക്കി പ്രകാശന മെയിലിങ് ലിസ്റ്റ്]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/mn.json b/includes/installer/i18n/mn.json
new file mode 100644 (file)
index 0000000..091cea6
--- /dev/null
@@ -0,0 +1,10 @@
+{
+    "@metadata": {
+        "authors": [
+            "Chinneeb"
+        ]
+    },
+    "config-page-language": "Хэл",
+    "mainpagetext": "'''МедиаВики амжилттай суулаа.'''",
+    "mainpagedocfooter": "Вики программыг хэрэглэх талаар заавар авахын тулд [//meta.wikimedia.org/wiki/Help:Contents хэрэглэгчийн гарын авлага]-г үзнэ үү.\n\n== Эхлэх ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Тохиргоо]\n* [//www.mediawiki.org/wiki/Manual:FAQ МедиаВикигийн тогтмол тавигддаг асуултууд]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce МедиаВикигийн мэдээний мэйл явуулах жагсаалт]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/mr.json b/includes/installer/i18n/mr.json
new file mode 100644 (file)
index 0000000..a1ed0d9
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''मीडियाविकीचे इन्स्टॉलेशन पूर्ण.'''",
+    "mainpagedocfooter": "विकी सॉफ्टवेअर वापरण्याकरिता [//meta.wikimedia.org/wiki/Help:Contents यूजर गाईड] पहा.\n\n== सुरुवात ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings कॉन्फिगरेशन सेटींगची यादी]\n* [//www.mediawiki.org/wiki/Manual:FAQ मीडियाविकी नेहमी विचारले जाणारे प्रश्न]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce मीडियाविकि मेलिंग लिस्ट]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ms.json b/includes/installer/i18n/ms.json
new file mode 100644 (file)
index 0000000..88beae9
--- /dev/null
@@ -0,0 +1,84 @@
+{
+    "@metadata": {
+        "authors": [
+            "Anakmalaysia",
+            "Pizza1016"
+        ]
+    },
+    "config-desc": "Pemasang MediaWiki",
+    "config-title": "Pasangan MediaWiki $1",
+    "config-information": "Maklumat",
+    "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 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.",
+    "config-back": "← Undur",
+    "config-continue": "Teruskan →",
+    "config-page-language": "Bahasa",
+    "config-page-welcome": "Selamat datang ke MediaWiki!",
+    "config-page-dbconnect": "Bersambung dengan pangkalan data",
+    "config-page-upgrade": "Naik taraf pemasangan sedia ada",
+    "config-page-dbsettings": "Tetapan pangkalan data",
+    "config-page-name": "Nama",
+    "config-page-options": "Pilihan",
+    "config-page-install": "Pasang",
+    "config-page-complete": "Selesai!",
+    "config-page-restart": "Mulakan semula pemasangan",
+    "config-page-readme": "Baca saya",
+    "config-page-releasenotes": "Catatan keluaran",
+    "config-page-copying": "Sedang menyalin",
+    "config-page-upgradedoc": "Sedang menaik taraf",
+    "config-page-existingwiki": "Wiki sedia ada",
+    "config-env-php": "PHP $1 dipasang.",
+    "config-env-php-toolow": "PHP $1 dipasang.\nBagaimanapun, MediaWiki memerlukan PHP $2 ke atas.",
+    "config-unicode-using-utf8": "utf8_normalize.so oleh Brion Vibber digunakan untuk penormalan Unicode.",
+    "config-unicode-using-intl": "[http://pecl.php.net/intl Sambungan intl PECL] digunakan untuk penormalan Unicode.",
+    "config-db-charset": "Peranggu aksara pangkalan data",
+    "config-header-mysql": "Keutamaan MySQL",
+    "config-header-postgres": "Keutamaan PostgreSQL",
+    "config-header-sqlite": "Keutamaan SQLite",
+    "config-header-oracle": "Keutamaan Oracle",
+    "config-invalid-db-type": "Jenis pangkalan data tidak sah",
+    "config-db-web-account-same": "Gunakan akaun yang sama seperti dalam pemasangan",
+    "config-db-web-create": "Ciptakan akaun jika belum wujud",
+    "config-mysql-engine": "Enjin storan:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-charset": "Peranggu aksara pangkalan data:",
+    "config-mysql-binary": "Perduaan",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "Nama wiki:",
+    "config-site-name-help": "Ini akan dipaparkan pada bar tajuk perisian pelayar dan tempat-tempat lain yang berkenaan.",
+    "config-site-name-blank": "Isikan nama tapak.",
+    "config-project-namespace": "Ruang nama projek:",
+    "config-ns-generic": "Projek",
+    "config-ns-site-name": "Sama dengan nama wiki: $1",
+    "config-ns-other": "Lain-lain (nyatakan)",
+    "config-ns-other-default": "MyWiki",
+    "config-admin-box": "Akaun penyelia",
+    "config-admin-name": "Nama kamu:",
+    "config-admin-password": "Kata laluan:",
+    "config-admin-password-confirm": "Kata laluan lagi:",
+    "config-admin-password-mismatch": "Kata-kata laluan yang kamu berikan tidak sepadan.",
+    "config-admin-email": "Alamat e-mel:",
+    "config-admin-error-bademail": "Kamu telah memberikan alamat e-mel yang tidak betul.",
+    "config-optional-skip": "Saya sudah bosan, pasangkanlah wiki sahaja.",
+    "config-license": "Hak cipta dan lesen:",
+    "config-license-none": "Tiada pengaki lesen",
+    "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
+    "config-license-cc-by": "Creative Commons Attribution",
+    "config-license-cc-by-nc-sa": "Creative Commons Attribution Non-Commercial Share Alike",
+    "config-license-cc-0": "Creative Commons Zero (Domain Awam)",
+    "config-license-gfdl": "Lesen Dokumentasi Bebas GNU 1.3 atau ke atas",
+    "config-license-pd": "Domain Awam",
+    "config-email-settings": "Tetapan e-mel",
+    "config-install-step-done": "siap",
+    "config-install-step-failed": "gagal",
+    "config-install-user-alreadyexists": "Pengguna \"$1\" sudah wujud",
+    "config-help": "bantuan",
+    "mainpagetext": "'''MediaWiki telah berjaya dipasang.'''",
+    "mainpagedocfooter": "Sila rujuk [//meta.wikimedia.org/wiki/Help:Contents Panduan Penggunaan] untuk maklumat mengenai penggunaan perisian wiki ini.\n\n== Permulaan ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Senarai tetapan konfigurasi]\n* [//www.mediawiki.org/wiki/Manual:FAQ Soalan Lazim MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Senarai surat keluaran MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Terjemahkan MediaWiki ke dalam bahasa anda]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/mt.json b/includes/installer/i18n/mt.json
new file mode 100644 (file)
index 0000000..2aedc5d
--- /dev/null
@@ -0,0 +1,89 @@
+{
+    "@metadata": {
+        "authors": [
+            "Chrisportelli"
+        ]
+    },
+    "config-title": "Installazzjoni ta' MediaWiki $1",
+    "config-information": "Informazzjoni",
+    "config-localsettings-key": "Ċavetta tal-aġġornament:",
+    "config-localsettings-badkey": "Iċ-ċavetta li tajt hija ħażina.",
+    "config-your-language": "Il-lingwa tiegħek:",
+    "config-your-language-help": "Agħżel lingwa li tixtieq tuża' matul il-proċess ta' installazzjoni.",
+    "config-wiki-language": "Lingwi tal-wiki:",
+    "config-wiki-language-help": "Agħżel il-lingwa li l-wiki se tkun l-aktar użata fil-wiki.",
+    "config-back": "← Lura",
+    "config-continue": "Kompli →",
+    "config-page-language": "Lingwa",
+    "config-page-welcome": "Merħba fuq MediaWiki!",
+    "config-page-dbconnect": "Aqbad mad-databażi",
+    "config-page-upgrade": "Aġġorna l-installazzjoni eżistenti",
+    "config-page-dbsettings": "Impostazzjonijiet tad-databażi",
+    "config-page-name": "Isem",
+    "config-page-options": "Għażliet",
+    "config-page-install": "Installa",
+    "config-page-complete": "Lesta!",
+    "config-page-restart": "Erġa' ibda l-installazzjoni",
+    "config-page-readme": "Aqrani",
+    "config-page-releasenotes": "Noti tal-verżjoni",
+    "config-page-upgradedoc": "Aġġornament",
+    "config-page-existingwiki": "Wiki eżistenti",
+    "config-restart": "Iva, erġa' ibda",
+    "config-env-php": "PHP $1 huwa installat.",
+    "config-db-wiki-settings": "Identifika din il-wiki",
+    "config-db-name": "Isem tad-databażi:",
+    "config-db-install-account": "Kont tal-utent għall-installazzjoni",
+    "config-db-username": "Isem tal-utent tad-databażi:",
+    "config-db-password": "Password tad-databażi:",
+    "config-db-port": "Port tad-databażi:",
+    "config-db-schema": "Skema għal MediaWiki:",
+    "config-db-web-create": "Oħloq il-kont jekk għadu ma jeżistix",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-charset": "Sett ta' karattri tad-databażi:",
+    "config-mysql-binary": "Binarju",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "Isem tal-wiki:",
+    "config-site-name-help": "Dan se jidher fil-barra tat-titlu tal-browżer u f'diversi postijiet oħra.",
+    "config-site-name-blank": "Daħħal isem tas-sit.",
+    "config-project-namespace": "Spazju tal-isem tal-proġett:",
+    "config-ns-generic": "Proġett",
+    "config-ns-site-name": "L-istess bħall-isem tal-wiki: $1",
+    "config-ns-other": "Oħrajn (speċifika)",
+    "config-ns-other-default": "MyWiki",
+    "config-ns-invalid": "L-ispazju speċifikat \"<nowiki>$1</nowiki>\" huwa ħażin.\nSpeċifika spazju tal-isem tal-proġett differenti.",
+    "config-ns-conflict": "L-ispazju speċifikat \"<nowiki>$1</nowiki>\" joħloq kunflitt ma' spazju tal-isem ieħor tal-MediaWiki.\nSpeċifika spazju tal-isem tal-proġett differenti.",
+    "config-admin-box": "Kont tal-amministratur",
+    "config-admin-name": "Ismek:",
+    "config-admin-password": "Password:",
+    "config-admin-password-confirm": "Erġa' daħħal il-password:",
+    "config-admin-help": "Daħħal l-isem tal-utent preferit hawnhekk, per eżempju \"Joe Borg\".\nDan huwa l-isem li se tuża' kull darba li tidħol fil-wiki.",
+    "config-admin-name-blank": "Daħħal isem tal-utent għall-amministratur.",
+    "config-admin-name-invalid": "L-isem tal-utent speċifikat \"<nowiki>$1</nowiki>\" huwa ħażin.\nSpeċifika isem tal-utent differenti.",
+    "config-admin-password-blank": "Daħħal password għall-kont tal-amministratur.",
+    "config-admin-password-same": "Il-password ma tistax tkun l-istess bħall-isem tal-utent.",
+    "config-admin-password-mismatch": "Il-passwords li daħħalt ma jaqblux.",
+    "config-admin-email": "Indirizz elettroniku:",
+    "config-admin-error-bademail": "Daħħalt indirizz elettroniku ħażin.",
+    "config-almost-done": "Kważi lest!\nJekk trid tista' taqbeż il-parti li jmiss tal-konfigurazzjoni u sempliċiment tinstalla l-wiki.",
+    "config-optional-continue": "Staqsini aktar mistoqsijiet.",
+    "config-optional-skip": "Xbajt diġà, installa l-wiki.",
+    "config-profile-wiki": "Wiki tradizzjonali",
+    "config-profile-no-anon": "Huwa obbligatorju l-ħolqien tal-kont",
+    "config-profile-fishbowl": "Edituri awtorizzati biss",
+    "config-profile-private": "Wiki privata",
+    "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
+    "config-license-cc-by": "Creative Commons Attribution",
+    "config-license-cc-by-nc-sa": "Creative Commons Attribution Non-Commercial Share Alike",
+    "config-license-cc-0": "Creative Commons Zero (dominju pubbliku)",
+    "config-license-pd": "Dominju pubbliku",
+    "config-license-cc-choose": "Agħżel waħda mil-liċenzji tal-Creative Commons",
+    "config-upload-deleted": "Direttorju għall-fajls imħassra:",
+    "config-upload-deleted-help": "Agħżel direttorju fejn iżżomm fajls imħassra.\nIdealment, dan m'għandux ikun aċċessibbli mill-web.",
+    "config-logo": "URL tal-logo:",
+    "config-download-localsettings": "Niżżel <code>LocalSettings.php</code>",
+    "config-help": "għajnuna",
+    "config-nofile": "Il-fajl \"$1\" ma setax jinstab. Dan ġie mħassar?",
+    "mainpagetext": "'''MediaWiki ġie installat b'suċċess.'''",
+    "mainpagedocfooter": "Ikkonsulta l-[//meta.wikimedia.org/wiki/Help:Contents Gwida għall-utenti] sabiex tikseb iktar informazzjoni dwar kif tuża' s-softwer tal-wiki.\n\n== Biex tibda ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista ta' preferenzi għall-konfigurazzjoni]\n* [//www.mediawiki.org/wiki/Manual:FAQ Mistoqsijiet rikorrenti fuq il-MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Il-lista tal-posta tħabbar 'l MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/my.json b/includes/installer/i18n/my.json
new file mode 100644 (file)
index 0000000..0ffbf17
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "@metadata": {
+        "authors": [
+            "Lionslayer"
+        ]
+    },
+    "mainpagetext": "'''မီဒီယာဝီကီကို အောင်မြင်စွာ သွင်းပြီးပါပြီ။'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/myv.json b/includes/installer/i18n/myv.json
new file mode 100644 (file)
index 0000000..792c4ef
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "@metadata": {
+        "authors": [
+            "Botuzhaleny-sodamo"
+        ]
+    },
+    "config-page-language": "Кель",
+    "config-page-name": "Лемезэ",
+    "config-page-readme": "Ловномак",
+    "config-admin-name": "Леметь:",
+    "config-admin-password": "Совамо валот:",
+    "config-admin-password-confirm": "Совамо валот одов:",
+    "config-admin-email": "Е-сёрма паргот:",
+    "config-install-step-done": "теезь",
+    "mainpagetext": "'''МедияВикинь тевс аравтомазо парсте лиссь.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/mzn.json b/includes/installer/i18n/mzn.json
new file mode 100644 (file)
index 0000000..b24592d
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "@metadata": {
+        "authors": [
+            "محک"
+        ]
+    },
+    "config-help": "راهنما"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/nah.json b/includes/installer/i18n/nah.json
new file mode 100644 (file)
index 0000000..7a7a6d3
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaHuiqui cualli ōmotlahtlāli.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/nan.json b/includes/installer/i18n/nan.json
new file mode 100644 (file)
index 0000000..8ffe289
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Ianbu"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki已經裝好矣。'''",
+    "mainpagedocfooter": "請查看[//meta.wikimedia.org/wiki/Help:Contents 用者說明書]的資料通使用wiki 軟體\n\n== 入門 ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings 配置的設定]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki時常問答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki的公布列單]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/nb.json b/includes/installer/i18n/nb.json
new file mode 100644 (file)
index 0000000..d243baf
--- /dev/null
@@ -0,0 +1,264 @@
+{
+    "@metadata": {
+        "authors": [
+            "Event",
+            "Nghtwlkr",
+            "아라"
+        ]
+    },
+    "config-desc": "Installasjonsprogrammet for MediaWiki",
+    "config-title": "Installasjon av MediaWiki $1",
+    "config-information": "Informasjon",
+    "config-localsettings-upgrade": "En <code>LocalSettings.php</code>-fil har blitt oppdaget.\nFor å oppgradere denne installasjonen, skriv inn verdien av <code>$wgUpgradeKey</code> i boksen nedenfor.\nDu finner denne i <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Filen ''<code>LocalSettings.php</code>'' er funnet.\nFor å oppgradere denne installasjonen, vennligst kjør ''update.php'' i stedet",
+    "config-localsettings-key": "Oppgraderingsnøkkel:",
+    "config-localsettings-badkey": "Nøkkelen du oppga er feil.",
+    "config-upgrade-key-missing": "En eksisterende installasjon av MediaWiki er funnet.\nFor å oppgradere denne installasjonen, vær vennlig å legge til følgende linje helt til slutt i din ''<code>LocalSettings.php</code>''-fil:\n\n$1",
+    "config-localsettings-incomplete": "Den eksisterende ''<code>LocalSettings.php</code>'' ser ut til å være ufullstendig.\nVariabelen $1 har ingen verdi.\nVær vennlig å endre ''<code>LocalSettings.php</code>'' slik at variabelen får en verdi, og klikk ''{{int:Config-continue}}''.",
+    "config-localsettings-connection-error": "Det ble funnet en feil ved tilknytning av databasen med innstillingene i ''<code>LocalSettings.php</code>'' eller ''<code>AdminSettings.php</code>''. Vær vennlig å rette opp disse innstillingene og prøv igjen.\n\n$1",
+    "config-session-error": "Feil under oppstart av økt: $1",
+    "config-session-expired": "Dine øktdata ser ut til å ha utløpt.\nØkter er konfigurert for en levetid på $1.\nDu kan øke dette ved å sette <code>session.gc_maxlifetime</code> i php.ini.\nStart installasjonsprosessen på nytt.",
+    "config-no-session": "Dine øktdata ble tapt!\nSjekk din php.ini og sørg for at <code>session.save_path</code> er satt til en passende mappe.",
+    "config-your-language": "Ditt språk:",
+    "config-your-language-help": "Velg et språk å bruke under installasjonsprosessen.",
+    "config-wiki-language": "Wikispråk:",
+    "config-wiki-language-help": "Velg språket som wikien hovedsakelig vil bli skrevet i.",
+    "config-back": "← Tilbake",
+    "config-continue": "Fortsett →",
+    "config-page-language": "Språk",
+    "config-page-welcome": "Velkommen til MediaWiki!",
+    "config-page-dbconnect": "Koble til database",
+    "config-page-upgrade": "Oppgrader eksisterende innstallasjon",
+    "config-page-dbsettings": "Databaseinnstillinger",
+    "config-page-name": "Navn",
+    "config-page-options": "Valg",
+    "config-page-install": "Installer",
+    "config-page-complete": "Ferdig!",
+    "config-page-restart": "Start installasjonen på nytt",
+    "config-page-readme": "Les meg",
+    "config-page-releasenotes": "Utgivelsesnotat",
+    "config-page-copying": "Kopiering",
+    "config-page-upgradedoc": "Oppgradering",
+    "config-page-existingwiki": "Eksisterende wiki",
+    "config-help-restart": "Ønsker du å fjerne alle lagrede data som du har skrevet inn og starte installasjonsprosessen på nytt?",
+    "config-restart": "Ja, start på nytt",
+    "config-welcome": "=== Miljøsjekker ===\nGrunnleggende sjekker utføres for å se om dette miljøet er egnet for en MediaWiki-installasjon.\nDu bør oppgi resultatene fra disse sjekkene om du trenger hjelp under installasjonen.",
+    "config-copyright": "=== Opphavsrett og vilkår ===\n\n$1\n\nMediaWiki er fri programvare; du kan redistribuere det og/eller modifisere det under betingelsene i GNU General Public License som publisert av Free Software Foundation; enten versjon 2 av lisensen, eller (etter eget valg) enhver senere versjon.\n\nDette programmet er distribuert i håp om at det vil være nyttig, men '''uten noen garanti'''; ikke engang implisitt garanti av '''salgbarhet''' eller '''egnethet for et bestemt formål'''.\nSe GNU General Public License for flere detaljer.\n\nDu skal ha mottatt <doclink href=Copying>en kopi av GNU General Public License</doclink> sammen med dette programmet; hvis ikke, skriv til Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA eller [http://www.gnu.org/copyleft/gpl.html les det på nettet].",
+    "config-sidebar": "* [//www.mediawiki.org MediaWiki hjem]\n* [//www.mediawiki.org/wiki/Help:Contents Brukerguide]\n* [//www.mediawiki.org/wiki/Manual:Contents Administratorguide]\n* [//www.mediawiki.org/wiki/Manual:FAQ OSS]\n----\n* <doclink href=Readme>Les meg</doclink>\n* <doclink href=ReleaseNotes>Utgivelsesnotater</doclink>\n* <doclink href=Copying>Kopiering</doclink>\n* <doclink href=UpgradeDoc>Oppgradering</doclink>",
+    "config-env-good": "Miljøet har blitt sjekket.\nDu kan installere MediaWiki.",
+    "config-env-bad": "Miljøet har blitt sjekket.\nDu kan installere MediaWiki.",
+    "config-env-php": "PHP $1 er innstallert.",
+    "config-env-php-toolow": "PHP $1 er installert.\nMediaWiki krever imidlertid PHP $2 eller høyere.",
+    "config-unicode-using-utf8": "Bruker Brion Vibbers utf8_normalize.so for Unicode-normalisering.",
+    "config-unicode-using-intl": "Bruker [http://pecl.php.net/intl intl PECL-utvidelsen] for Unicode-normalisering.",
+    "config-unicode-pure-php-warning": "'''Advarsel''': [http://pecl.php.net/intl intl PECL-utvidelsen] er ikke tilgjengelig for å håndtere Unicode-normaliseringen, faller tilbake til en langsommere ren-PHP-implementasjon.\nOm du kjører et nettsted med høy trafikk bør du lese litt om [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode-normalisering].",
+    "config-unicode-update-warning": "'''Advarsel''': Den installerte versjonen av Unicode-normalisereren bruker en eldre versjon av [http://site.icu-project.org/ ICU-prosjektets] bibliotek.\nDu bør [//www.mediawiki.org/wiki/Unicode_normalization_considerations oppgradere] om du er bekymret for å bruke Unicode.",
+    "config-no-db": "Fant ikke en passende databasedriver! Du må installere en databasedriver for PHP.\nFølgende databasetyper er støttet: $1\n\nOm du er på delt vertsskap, spør din vertsleverandør om å installere en passende databasedriver.\nOm du kompilerte PHP selv, rekonfigirer den med en aktivert databaseklient, for eksempel ved å bruke <code>./configure --with-mysql</code>.\nOm du installerte PHP fra en Debian- eller Ubuntu-pakke må du også installere modulen php5-mysql.",
+    "config-outdated-sqlite": "'''Advarsel''': Du har SQLite $1, som er en eldre versjon enn minimumskravet SQLite $2. SQLite vil ikke være tilgjengelig.",
+    "config-no-fts3": "'''Advarsel''': SQLite er kompilert uten [//sqlite.org/fts3.html FTS3-modulen], søkefunksjoner vil ikke være tilgjengelig på dette bakstykket.",
+    "config-register-globals": "'''Advarsel: PHPs <code>[http://php.net/register_globals register_globals]</code>-alternativ er aktivert.'''\n'''Deaktiver det om du kan.'''\nMediaWiki vil fungere, men tjeneren din er utsatt for potensielle sikkerhetssårbarheter.",
+    "config-magic-quotes-runtime": "'''Kritisk: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] er aktiv!'''\nDette alternativet ødelegger inndata på en uforutsigbar måte.\nDu kan ikke installere eller bruke MediaWiki med mindre dette alternativet deaktiveres.",
+    "config-magic-quotes-sybase": "'''Kritisk: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] er aktiv!'''\nDette alternativet ødelegger inndata på en uforutsigbar måte.\nDu kan ikke installere eller bruke MediaWiki med mindre dette alternativet deaktiveres.",
+    "config-mbstring": "'''Kritisk: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] er aktiv!'''\nDette alternativet fører til feil og kan ødelegge data på en uforutsigbar måte.\nDu kan ikke installere eller bruke MediaWiki med mindre dette alternativet deaktiveres.",
+    "config-ze1": "'''Kritisk: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] er aktiv!'''\nDette alternativet fører til horrible feil med MediaWiki.\nDu kan ikke installere eller bruke MediaWiki med mindre dette alternativet deaktiveres.",
+    "config-safe-mode": "'''Advarsel:''' PHPs [http://www.php.net/features.safe-mode safe mode] er aktiv.\nDet kan føre til problem, spesielt hvis du bruker støtte for filopplastinger og <code>math</code>.",
+    "config-xml-bad": "PHPs XML-modul mangler.\nMediaWiki krever funksjonene i denne modulen og vil ikke virke i denne konfigurasjonen.\nHvis du kjører Mandrak, installer pakken php-xml.",
+    "config-pcre": "PCRE-støttemodulen ser ut til å mangle.\nMediaWiki krever funksjonene for de Perl-kompatible regulære uttrykkene for å virke.",
+    "config-pcre-no-utf8": "'''Fatal''': PHPs PCRE modul ser ut til å være kompilert uten PCRE_UTF8-støtte.\nMediaWiki krever UTF-8-støtte for å fungere riktig.",
+    "config-memory-raised": "PHPs <code>memory_limit</code> er $1, økt til $2.",
+    "config-memory-bad": "'''Advarsel:''' PHPs <code>memory_limit</code> er $1.\nDette er sannsynligvis for lavt.\nInstallasjonen kan mislykkes!",
+    "config-ctype": "'''Fatal feil''': PHP må kompileres med støtte for [http://www.php.net/manual/en/ctype.installation.php Ctype-utvidelsen].",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] er innstallert",
+    "config-apc": "[http://www.php.net/apc APC] er innstallert",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] er installert",
+    "config-no-cache": "'''Advarsel:''' Kunne ikke finne [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] eller [http://www.iis.net/download/WinCacheForPhp WinCache].\nObjekthurtiglagring er ikke aktivert.",
+    "config-mod-security": "'''Advarsel''': Din web-tjener har [http://modsecurity.org/ mod_security] påslått. Hvis denne er feilinnstilt, kan det gi problemer for MediaWiki eller annen programvare som tillater brukere å poste vilkårlig innhold.\nSjekk [http://modsecurity.org/documentation/ mod_security-dokumentasjonen] eller ta kontakt med din nettleverandør hvis du opplever tilfeldige feil.",
+    "config-diff3-bad": "GNU diff3 ikke funnet.",
+    "config-imagemagick": "Fant ImageMagick: <code>$1</code>.\nBildeminiatyrisering vil aktiveres om du aktiverer opplastinger.",
+    "config-gd": "Fant innebygd GD-grafikkbibliotek.\nBildeminiatyrisering vil aktiveres om du aktiverer opplastinger.",
+    "config-no-scaling": "Kunne ikke finne GD-bibliotek eller ImageMagick.\nBildeminiatyrisering vil være deaktivert.",
+    "config-no-uri": "'''Feil:''' Kunne ikke bestemme gjeldende URI.\nInstallasjon avbrutt.",
+    "config-no-cli-uri": "'''Advarsel''': Ingen --scriptpath er angitt; bruker standard: <code>$1</code>.",
+    "config-using-server": "Bruker servernavnet  \"<nowiki>$1</nowiki>\".",
+    "config-using-uri": "Bruker server-URL \"<nowiki>$1$2</nowiki>\".",
+    "config-uploads-not-safe": "'''Advarsel:''' Din standardmappe for opplastinger <code>$1</code> er sårbar for kjøring av vilkårlige skript.\nSelv om MediaWiki sjekker alle opplastede filer for sikkerhetstrusler er det sterkt anbefalt å [//www.mediawiki.org/wiki/Manual:Security#Upload_security lukke denne sikkerhetssårbarheten] før du aktiverer opplastinger.",
+    "config-no-cli-uploads-check": "'''Advarsel:''' Din standard-katalog for opplastinger (<code>$1</code>) er ikke kontrollert for sårbarhet overfor vilkårlig skript-kjøring under CLI-installasjonen.",
+    "config-brokenlibxml": "Ditt system har en kombinasjon av PHP- og libxml2-versjoner som er feilaktige og kan forårsake skjult dataødeleggelse i MediaWiki og andre web-applikasjoner.\nOppgrader til PHP 5.2.9 eller nyere og libxml 2 2.7.3 eller nyere ([//bugs.php.net/bug.php?id=45996 Feil-liste for PHP]).\nInstallasjon abortert.",
+    "config-using531": "MediaWiki kan ikke brukes med PHP $1 på grunn av en feil med referanseparametere til <code>__call()</code>.\nOppgrader til PHP 5.3.2 eller høyere, eller nedgrader til PHP 5.3.0 for å løse dette.\nInstallasjonen avbrutt.",
+    "config-suhosin-max-value-length": "Suhosin er installert og begrenser GET-parameterlengder til $1 bytes. MediaWiki's ResourceLoader-komponent klarer å komme rundt denne begrensningen, med med redusert ytelse. På mulig bør du sette <code>suhosin.get.max_value_length</code> til minst 1024 i <code>php.ini</code>, og sette <code>$wgResourceLoaderMaxQueryLength</code> til samme verdi i LocalSettings.php.",
+    "config-db-type": "Databasetype:",
+    "config-db-host": "Databasevert:",
+    "config-db-host-help": "Hvis databasen kjører på en annen tjenermaskin, skriv inn vertsnavnet eller IP-adressen her.\n\nHvis du bruker et webhotell, vil du kunne be om aktuelt vertsnavn fra din leverandør.\n\nHvis du installerer på en Windowstjener og bruker MySQL, kan det hende at «localhost» ikke brukes som tjenernavn. Hvis så er tilfelle, prøv «127.0.0.1» som lokal IP-adresse.\n\nHvis du bruker PostgreSQL, la dette feltet være blankt slik at koplingen gjøres via en \"Unix socket\".",
+    "config-db-host-oracle": "Database TNS:",
+    "config-db-host-oracle-help": "Skriv inn et gyldig [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name]; en tnsnames.ora-fil må være synlig for installasjonsprosessen.<br />Hvis du bruker klientbibliotek 10g eller nyere kan du også bruke navngivingsmetoden [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
+    "config-db-wiki-settings": "Identifiser denne wikien",
+    "config-db-name": "Databasenavn:",
+    "config-db-name-help": "Velg et navn som identifiserer wikien din.\nDet bør ikke inneholde mellomrom.\n\nHvis du bruker en delt nettvert vil verten din enten gi deg et spesifikt databasenavn å bruke, eller la deg opprette databaser via kontrollpanelet.",
+    "config-db-name-oracle": "Databaseskjema:",
+    "config-db-account-oracle-warn": "Det finnes tre mulig fremgangsmåter for å installere Oracle som database:\n\nHvis du ønsker å opprette en databasekonto som del av installasjonsprosessen, oppgi da en konto med SYSDBA-rolle som databasekonto for installasjonen og angi påkrevd autentiseringsinformasjon for web-aksesskontoen. Ellers kan du enten opprette web-aksesskontoen manuelt eller kun oppgi den kontoen (hvis den har påkrevede tillatelser for å opprette skjemeobjektene) , alternativt oppgi to ulike kontoer, en med opprettelsesprivilegier (create) og en begrenset konto for web-aksess.\n\nSkript for å opprette en konto med påkrevde privilegier finnes i \"maintenance/oracle/\"-folderen av denne installasjonen. Husk at det å bruke en begrenset konto vil blokkere all vedlikeholdsfunksjonalitet med standard konto.",
+    "config-db-install-account": "Brukerkonto for installasjon",
+    "config-db-username": "Databasebrukernavn:",
+    "config-db-password": "Databasepassord:",
+    "config-db-password-empty": "Skriv inn et passord for den nye databasebrukeren: $1.\nDet er mulig å opprette brukere uten passord, men dette er ikke sikkert.",
+    "config-db-install-username": "Skriv inn brukernavnet som vil bli brukt til å koble til databasen under installasjonsprosessen.\nDette er ikke brukernavnet på MediaWiki-kontoen; dette er brukernavnet for databasen din.",
+    "config-db-install-password": "Skriv inn passordet som vil bli brukt til å koble til databasen under installasjonsprosessen.\nDette er ikke passordet på MediaWiki-kontoen; dette er passordet for databasen din.",
+    "config-db-install-help": "Skriv inn brukernavnet og passordet som vil bli brukt for å koble til databasen under installasjonsprosessen.",
+    "config-db-account-lock": "Bruk det samme brukernavnet og passordet under normal drift",
+    "config-db-wiki-account": "Brukerkonto for normal drift",
+    "config-db-wiki-help": "Skriv inn brukernavnet og passordet som vil bli brukt til å koble til databasen under normal wikidrift.\nHvis kontoen ikke finnes, og installasjonskontoen har tilstrekkelige privilegier, vil denne brukerkontoen bli opprettet med et minimum av privilegier, tilstrekkelig for å operere wikien.",
+    "config-db-prefix": "Databasetabellprefiks:",
+    "config-db-prefix-help": "Hvis du trenger å dele en database mellom flere wikier, eller mellom MediaWiki og andre nettapplikasjoner, kan du velge å legge til et prefiks til alle tabellnavnene for å unngå konflikter.\nIkke bruk mellomrom.\n\nDette feltet er vanligvis tomt.",
+    "config-db-charset": "Databasetegnsett",
+    "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 bakoverkompatibel UTF-8",
+    "config-charset-help": "'''Advarsel:''' Hvis du bruker '''bakoverkompatibel UTF-8''' på MySQL 4.1+, og deretter sikkerhetskopierer databasen med <code>mysqldump</code> kan det ødelegge alle ikke-ASCII tegn og irreversibelt ødelegge dine sikkerhetskopier!\n\nI '''binary mode''' lagrer MediaWiki UTF-8 tekst til databasen i binærfelt.\nDette er mer effektivt enn MySQLs UTF-8 modus og tillater deg å bruke hele spekteret av Unicode-tegn.\nI '''UTF-8 mode''' vil MySQL vite hvilket tegnsett dataene dine er i og kan presentere og konvertere det på en riktig måte,\nmen det vil ikke la deg lagre tegn over «[//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes the Basic Multilingual Plane]».",
+    "config-mysql-old": "MySQL $1 eller senere kreves, du har $2.",
+    "config-db-port": "Databaseport:",
+    "config-db-schema": "Skjema for MediaWiki",
+    "config-db-schema-help": "Dette skjemaet er som regel riktig.\nBare endre det hvis du vet at du trenger det.",
+    "config-pg-test-error": "Får ikke kontakt med database '''$1''': $2",
+    "config-sqlite-dir": "SQLite datamappe:",
+    "config-sqlite-dir-help": "SQLite lagrer alle data i en enkelt fil.\n\nMappen du oppgir må være skrivbar for nettjeneren under installasjonen.\n\nDen bør '''ikke''' være tilgjengelig fra nettet, dette er grunnen til at vi ikke legger det der PHP-filene dine er.\n\nInstallasjonsprogrammet vil skrive en <code>.htaccess</code>-fil sammen med det, men om det mislykkes kan noen få tilgang til din råe database. Dette inkluderer rå brukerdata (e-postadresser, hashede passord) samt slettede revisjoner og andre begrensede data på wikien.\n\nVurder å plassere databasen et helt annet sted, for eksempel i <code>/var/lib/mediawiki/yourwiki</code>.",
+    "config-oracle-def-ts": "Standard tabellrom:",
+    "config-oracle-temp-ts": "Midlertidig tabellrom:",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-support-info": "MediaWiki støtter følgende databasesystem:\n\n$1\n\nHvis du ikke ser databasesystemet du prøver å bruke i listen nedenfor, følg instruksjonene det er lenket til over for å aktivere støtte.",
+    "config-support-mysql": "* $1 er det primære målet for MediaWiki og er best støttet ([http://www.php.net/manual/en/mysql.installation.php hvordan kompilere PHP med MySQL-støtte])",
+    "config-support-postgres": "* $1 er et populært åpen kildekode-databasesystem som er et alternativ til MySQL ([http://www.php.net/manual/en/pgsql.installation.php hvordan kompilere PHP med PostgreSQL-støtte]). Det kan være noen små utestående feil og det anbefales ikke for bruk i et produksjonsmiljø.",
+    "config-support-sqlite": "* $1 er et lettvekts-databasesystem som er veldig godt støttet. ([http://www.php.net/manual/en/pdo.installation.php hvordan kompilere PHP med SQLite-støtte], bruker PDO)",
+    "config-support-oracle": "* $1 er en kommersiell bedriftsdatabase. ([http://www.php.net/manual/en/oci8.installation.php Hvordan kompilere PHP med OCI8-støtte])",
+    "config-header-mysql": "MySQL-innstillinger",
+    "config-header-postgres": "PostgreSQL-innstillinger",
+    "config-header-sqlite": "SQLite-innstillinger",
+    "config-header-oracle": "Oracle-innstillinger",
+    "config-invalid-db-type": "Ugyldig databasetype",
+    "config-missing-db-name": "Du må skrive inn en verdi for «Databasenavn»",
+    "config-missing-db-host": "Du må skrive inn en verdi for «Databasevert»",
+    "config-missing-db-server-oracle": "Du må skrive inn en verdi for «Database TNS»",
+    "config-invalid-db-server-oracle": "Ugyldig database-TNS «$1».\nBruk bare ASCII-bokstaver (a-z, A-Z), tall (0-9) og undestreker (_) og punktum (.).",
+    "config-invalid-db-name": "Ugyldig databasenavn «$1».\nBruk bare ASCII-bokstaver (a-z, A-Z), tall (0-9), undestreker (_) og bindestreker (-).",
+    "config-invalid-db-prefix": "Ugyldig databaseprefiks «$1».\nBruk bare ASCII-bokstaver (a-z, A-Z), tall (0-9), undestreker (_) og bindestreker (-).",
+    "config-connection-error": "$1.\n\nSjekk verten, brukernavnet og passordet nedenfor og prøv igjen.",
+    "config-invalid-schema": "Ugyldig skjema for MediaWiki «$1».\nBruk bare ASCII-bokstaver (a-z, A-Z), tall (0-9) og undestreker (_).",
+    "config-db-sys-create-oracle": "Installasjonsprogrammet støtter kun bruk av en SYSDBA-konto for opprettelse av en ny konto.",
+    "config-db-sys-user-exists-oracle": "Brukerkontoen «$1» finnes allerede. SYSDBA kan kun brukes for oppretting av nye kontoer!",
+    "config-postgres-old": "PostgreSQL $1 eller senere kreves, du har $2.",
+    "config-sqlite-name-help": "Velg et navn som identifiserer wikien din.\nIkke bruk mellomrom eller bindestreker.\nDette vil bli brukt til SQLite-datafilnavnet.",
+    "config-sqlite-parent-unwritable-group": "Kan ikke opprette datamappen <code><nowiki>$1</nowiki></code> fordi foreldremappen <code><nowiki>$2</nowiki></code> ikke er skrivbar for nettjeneren.\n\nInstallasjonsprogrammet har bestemt brukeren nettjeneren din kjører som.\nGjør <code><nowiki>$3</nowiki></code>-mappen skrivbar for denne for å fortsette.\nPå et Unix/Linux-system, gjør:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Kan ikke opprette datamappen <code><nowiki>$1</nowiki></code> fordi foreldremappen <code><nowiki>$2</nowiki></code> ikke er skrivbar for nettjeneren.\n\nInstallasjonsprogrammet kunne ikke bestemme brukeren nettjeneren din kjører som.\nGjør <code><nowiki>$3</nowiki></code>-mappen globalt skrivbar for denne (og andre!) for å fortsette.\nPå et Unix/Linux-system, gjør:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Feil under oppretting av datamappen «$1».\nSjekk plasseringen og prøv igjen.",
+    "config-sqlite-dir-unwritable": "Kan ikke skrive til mappen «$1».\nEndre dens tilganger slik at nettjeneren kan skrive til den og prøv igjen.",
+    "config-sqlite-connection-error": "$1.\n\nSjekk datamappen og databasenavnet nedenfor og prøv igjen.",
+    "config-sqlite-readonly": "Filen <code>$1</code> er ikke skrivbar.",
+    "config-sqlite-cant-create-db": "Kunne ikke opprette databasefilen <code>$1</code>.",
+    "config-sqlite-fts3-downgrade": "PHP mangler FTS3-støtte, nedgraderer tabeller",
+    "config-can-upgrade": "Det er MediaWiki-tabeller i denne databasen.\nFor å oppgradere dem til MediaWiki $1, klikk '''Fortsett'''.",
+    "config-upgrade-done": "Oppgradering fullført.\n\nDu kan nå [$1 begynne å bruke wikien din].\n\nHvis du ønsker å regenerere <code>LocalSettings.php</code>-filen din, klikk på knappen nedenfor.\nDette er '''ikke anbefalt''' med mindre du har problemer med wikien din.",
+    "config-upgrade-done-no-regenerate": "Oppgradering fullført.\n\nDu kan nå [$1 begynne å bruke wikien din].",
+    "config-regenerate": "Regenerer LocalSettings.php →",
+    "config-show-table-status": "<code>SHOW TABLE STATUS</code> etterspørselen mislyktes!",
+    "config-unknown-collation": "'''Advarsel:''' Databasen bruker en ukjent sortering.",
+    "config-db-web-account": "Databasekonto for nettilgang",
+    "config-db-web-help": "Velg brukernavnet og passordet som nettjeneren skal bruke for å koble til databasetjeneren under ordinær drift av wikien.",
+    "config-db-web-account-same": "Bruk samme konto som for installasjonen",
+    "config-db-web-create": "Opprett kontoen om den ikke finnes allerede",
+    "config-db-web-no-create-privs": "Kontoen du oppga for installasjonen har ikke nok privilegier til å opprette en konto.\nKontoen du oppgir her må finnes allerede.",
+    "config-mysql-engine": "Lagringsmotor:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-engine-help": "'''InnoDB''' er nesten alltid det beste alternativet siden den har god støtte for samtidighet («concurrency»).\n\n'''MyISAM''' kan være raskere i enbruker- eller les-bare-installasjoner.\nMyISAM-databaser har en tendens til å bli ødelagt oftere enn InnoDB-databaser.",
+    "config-mysql-charset": "Databasetegnsett:",
+    "config-mysql-binary": "Binær",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "I '''binary mode''' lagrer MediaWiki UTF-8 tekst til databasen i binærfelt.\nDette er mer effektivt enn MySQLs UTF-8 modus og tillater deg å bruke hele spekteret av Unicode-tegn.\n\nI '''UTF-8 mode''' vil MySQL vite hvilket tegnsett dataene dine er i og kan presentere og konvertere det på en riktig måte,\nmen det vil ikke la deg lagre tegn over «[//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes the Basic Multilingual Plane]».",
+    "config-site-name": "Navn på wiki:",
+    "config-site-name-help": "Dette vil vises i tittellinjen i nettleseren og diverse andre steder.",
+    "config-site-name-blank": "Skriv inn et nettstedsnavn.",
+    "config-project-namespace": "Prosjektnavnerom:",
+    "config-ns-generic": "Prosjekt",
+    "config-ns-site-name": "Samme som wikinavnet: $1",
+    "config-ns-other": "Annet (spesifiser)",
+    "config-ns-other-default": "MyWiki",
+    "config-project-namespace-help": "Etter Wikipedias eksempel holder mange wikier deres sider med retningslinjer atskilt fra sine innholdssider, i et «'''prosjektnavnerom'''».\nAlle sidetitler i dette navnerommet starter med et gitt prefiks som du kan angi her.\nTradisjonelt er dette prefikset avledet fra navnet på wikien, men det kan ikke innholde punkttegn som «#» eller «:».",
+    "config-ns-invalid": "Det angitte navnerommet «<nowiki>$1</nowiki>» er ugyldig.\nAngi et annet prosjektnavnerom.",
+    "config-ns-conflict": "Det angitte navnerommet «<nowiki>$1</nowiki>» er i konflikt med et standard MediaWiki-navnerom.\nAngi et annet prosjekt-navnerom.",
+    "config-admin-box": "Administratorkonto",
+    "config-admin-name": "Ditt navn:",
+    "config-admin-password": "Passord:",
+    "config-admin-password-confirm": "Passord igjen:",
+    "config-admin-help": "Skriv inn ditt ønskede brukernavn her, for eksempel «Joe Bloggs».\nDette er navnet du vil bruke for å logge inn på denne wikien.",
+    "config-admin-name-blank": "Skriv inn et administratorbrukernavn.",
+    "config-admin-name-invalid": "Det angitte brukernavnet «<nowiki>$1</nowiki>» er ugyldig.\nAngi et annet brukernavn.",
+    "config-admin-password-blank": "Skriv inn et passord for administratorkontoen.",
+    "config-admin-password-same": "Passordet skal ikke være det samme som brukernavnet.",
+    "config-admin-password-mismatch": "De to passordene du skrev inn samsvarte ikke.",
+    "config-admin-email": "E-postadresse:",
+    "config-admin-email-help": "Skriv inn en e-postadresse her for at du skal kunne motta e-post fra andre brukere på wikien, tilbakestille passordet ditt, og bli varslet om endringer på sider på overvåkningslisten din. Du kan la dette feltet stå tomt.",
+    "config-admin-error-user": "Intern feil ved opprettelse av en admin med navnet «<nowiki>$1</nowiki>».",
+    "config-admin-error-password": "Intern feil ved opprettelse av passord for admin «<nowiki>$1</nowiki>»: <pre>$2</pre>",
+    "config-admin-error-bademail": "Du har skrevet inn en ugyldig e-postadresse.",
+    "config-subscribe": "Abonner på [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce e-postlisten for utgivelsesannonseringer].",
+    "config-subscribe-help": "Dette er en lav-volums e-postliste brukt til utgivelsesannonseringer, herunder viktige sikkerhetsannonseringer.\nDu bør abonnere på den og oppdatere MediaWikiinstallasjonen din når nye versjoner kommer ut.",
+    "config-almost-done": "Du er nesten ferdig!\nDu kan hoppe over de resterende konfigurasjonene og installere wikien nå.",
+    "config-optional-continue": "Spør meg flere spørsmål.",
+    "config-optional-skip": "Jeg er lei, bare installer wikien.",
+    "config-profile": "Brukerrettighetsprofil:",
+    "config-profile-wiki": "Tradisjonell wiki",
+    "config-profile-no-anon": "Kontoopprettelse påkrevd",
+    "config-profile-fishbowl": "Kun autoriserte bidragsytere",
+    "config-profile-private": "Privat wiki",
+    "config-profile-help": "Wikier fungerer best når du lar så mange mennesker som mulig redigere den.\nI MediaWiki er det lett å revidere siste endringer og tilbakestille eventuell skade som er gjort av naive eller ondsinnede brukere.\n\nImidlertid har mange funnet at MediaWiki er nyttig i mange roller, og av og til er det ikke lett å overbevise alle om fordelene med wikimåten.\nSå du har valget.\n\nEn '''{{int:config-profile-wiki}}''' tillater alle å redigere, selv uten å logge inn.\nEn wiki med '''{{int:config-profile-no-anon}}''' tilbyr ekstra ansvarlighet, men kan avskrekke tilfeldige bidragsytere.\n\n'''{{int:config-profile-fishbowl}}'''-scenariet tillater godkjente brukere å redigere, mens publikum kan se sider, og også historikken.\nEn '''{{int:config-profile-private}}''' tillater kun godkjente brukere å se sider, den samme gruppen som får lov til å redigere dem.\n\nMer komplekse konfigurasjoner av brukerrettigheter er tilgjengelig etter installasjon, se det [//www.mediawiki.org/wiki/Manual:User_rights relevante manualavsnittet].",
+    "config-license": "Opphavsrett og lisens:",
+    "config-license-none": "Ingen lisensbunntekst",
+    "config-license-cc-by-sa": "Creative Commons Navngivelse Del på samme vilkår",
+    "config-license-cc-by": "Creative Commons Attribution",
+    "config-license-cc-by-nc-sa": "Creative Commons Navngivelse Ikke-kommersiell Del på samme vilkår",
+    "config-license-cc-0": "Creative Commons Zero",
+    "config-license-pd": "Offentlig rom",
+    "config-license-cc-choose": "Velg en egendefinert Creative Commons-lisens",
+    "config-email-settings": "E-postinnstillinger",
+    "config-enable-email": "Aktiver utgående e-post",
+    "config-enable-email-help": "Hvis du vil at e-post skal virke må [http://www.php.net/manual/en/mail.configuration.php PHPs e-postinnstillinger] bli konfigurert riktig.\nHvis du ikke ønsker noen e-postfunksjoner kan du deaktivere dem her.",
+    "config-email-user": "Aktiver e-post mellom brukere",
+    "config-email-user-help": "Tillat alle brukere å sende hverandre e-post hvis de har aktivert det i deres innstillinger.",
+    "config-email-usertalk": "Aktiver brukerdiskusjonssidevarsler",
+    "config-email-usertalk-help": "Tillat brukere å motta varsler ved endringer på deres brukerdiskusjonsside hvis de har aktivert dette i deres innstillinger.",
+    "config-email-watchlist": "Aktiver overvåkningslistevarsler",
+    "config-email-watchlist-help": "Tillat brukere å motta varsler ved endringer på deres overvåkede sider hvis de har aktivert dette i deres innstillinger.",
+    "config-email-auth": "Aktiver e-postautentisering",
+    "config-email-auth-help": "Om dette alternativet er aktivert må brukere bekrefte sin e-postadresse ved å bruke en lenke som blir sendt til dem når de setter eller endrer adressen sin.\nKun autentiserte e-postadresser kan motta e-post fra andre brukere eller endringsvarsel.\nÅ sette dette valget er '''anbefalt''' for offentlige wikier på grunn av potensiell misbruk av e-postfunksjonene.",
+    "config-email-sender": "Svar-e-postadresse:",
+    "config-email-sender-help": "Skriv inn e-postadressen som skal brukes som svar-adresse ved utgående e-post.\nDet er hit returmeldinger vil bli sendt.\nMange e-posttjenere krever at minst domenenavnet må være gyldig.",
+    "config-upload-settings": "Bilde- og filopplastinger",
+    "config-upload-enable": "Aktiver filopplastinger",
+    "config-upload-help": "Filopplastinger kan potensielt utsette tjeneren din for sikkerhetsrisikoer.\nFor mer informasjon, les [//www.mediawiki.org/wiki/Manual:Security sikkerhetsseksjonen] i manualen.\n\nFor å aktivere filopplastinger, endre modusen i <code>images</code>-undermappen i MediaWikis rotmappe slik at nettjeneren kan skrive til den.\nAktiver så dette alternativet.",
+    "config-upload-deleted": "Mappe for slettede filer:",
+    "config-upload-deleted-help": "Velg en mappe for å arkivere slettede filer.\nIdeelt burde ikke denne være tilgjengelig for nettet.",
+    "config-logo": "Logo-URL:",
+    "config-logo-help": "MediaWikis standarddrakt inkluderer plass til en 135x160 pikslers logo i øvre venstre hjørne.\nLast opp et bilde i passende størrelse og skriv inn nettadressen her.\n\nHvis du ikke ønsker en logo, la denne boksen være tom.",
+    "config-instantcommons": "Aktiver Instant Commons",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] er en funksjon som gjør det mulig for wikier å bruke bilder, lyder og andre media funnet på nettstedet [//commons.wikimedia.org/ Wikimedia Commons].\nFor å gjøre dette krever MediaWiki tilgang til internett.\n\nFor mer informasjon om denne funksjonen, inklusive instruksjoner om hvordan man setter opp dette for andre wikier enn Wikimedia Commons, konsulter [//mediawiki.org/wiki/Manual:$wgForeignFileRepos manualen].",
+    "config-cc-again": "Velg igjen...",
+    "config-cc-not-chosen": "Velg hvilken Creative Commons-lisens du ønsker og klikk «fortsett».",
+    "config-advanced-settings": "Avansert konfigurasjon",
+    "config-extensions": "Utvidelser",
+    "config-install-step-done": "ferdig",
+    "config-install-step-failed": "mislyktes",
+    "config-install-extensions": "Inkludert utvidelser",
+    "config-install-database": "Setter opp database",
+    "config-install-user": "Oppretter databasebruker",
+    "config-install-user-alreadyexists": "Brukeren «$1» finnes allerede",
+    "config-install-user-create-failed": "Opprettelse av brukeren «$1» mislyktes: $2",
+    "config-install-user-grant-failed": "Å gi tillatelse til brukeren «$1» mislyktes: $2",
+    "config-install-tables": "Oppretter tabeller",
+    "config-install-mainpage-failed": "Kunne ikke sette inn hovedside: $1",
+    "config-download-localsettings": "Last ned <code>LocalSettings.php</code>",
+    "config-help": "hjelp",
+    "config-nofile": "Filen \"$1\" ble ikke funnet. Kan den være blitt slettet?",
+    "mainpagetext": "'''MediaWiki-programvaren er nå installert.'''",
+    "mainpagedocfooter": "Se [//meta.wikimedia.org/wiki/Help:Contents brukerveiledningen] for informasjon om hvordan du bruker wiki-programvaren.\n\n==Å starte==\n*[//www.mediawiki.org/wiki/Manual:Configuration_settings Oppsettsliste]\n*[//www.mediawiki.org/wiki/Manual:FAQ Ofte stilte spørsmål]\n*[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-postliste]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/nds-nl.json b/includes/installer/i18n/nds-nl.json
new file mode 100644 (file)
index 0000000..8970d66
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Servien"
+        ]
+    },
+    "mainpagetext": "'''’t Installeren van de MediaWiki programmatuur is succesvol.'''",
+    "mainpagedocfooter": "Bekiek de [//meta.wikimedia.org/wiki/Help:Contents haandleiding] veur informasie over t gebruuk van de wikiprogrammatuur.\n\n== Meer hulpe ==\n* [//www.mediawiki.org/wiki/Help:Configuration_settings Lieste mit instellingen]\n* [//www.mediawiki.org/wiki/Help:FAQ MediaWiki-vragen die vake esteld wörden]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki-postlieste veur nieje versies]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Maak MediaWiki beschikbaor in joew taal]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/nds.json b/includes/installer/i18n/nds.json
new file mode 100644 (file)
index 0000000..e6878e6
--- /dev/null
@@ -0,0 +1,14 @@
+{
+    "@metadata": {
+        "authors": [
+            "Joachim Mos"
+        ]
+    },
+    "config-page-name": "Naam",
+    "config-ns-generic": "Projekt",
+    "config-admin-name": "Dien Naam:",
+    "config-admin-password": "Passwoord:",
+    "config-help": "Hülp",
+    "mainpagetext": "'''De MediaWiki-Software is mit Spood installeert worrn.'''",
+    "mainpagedocfooter": "Kiek de [//meta.wikimedia.org/wiki/MediaWiki_localisation Dokumentatschoon för dat Anpassen vun de Brukerböversiet]\nun dat [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Brukerhandbook] för Hülp to de Bruuk un Konfiguratschoon."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ne.json b/includes/installer/i18n/ne.json
new file mode 100644 (file)
index 0000000..dfeb32c
--- /dev/null
@@ -0,0 +1,10 @@
+{
+    "@metadata": {
+        "authors": [
+            "Bhawani Gautam",
+            "RajeshPandey"
+        ]
+    },
+    "mainpagetext": "'''मीडिया सफलतापूर्वक कम्प्यूटरमा स्थापित भयो ।'''",
+    "mainpagedocfooter": " विकी अनुप्रयोग कसरी प्रयोग गर्ने भन्ने जानकारीको लागि  [//meta.wikimedia.org/wiki/Help:Contents प्रयोगकर्ता सहायता] हेर्नुहोस्\n\n== सुरू गर्नको लागि  ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings विन्यास सेटिङ्ग सूची]\n* [//www.mediawiki.org/wiki/Manual:FAQ मेडियाविकि सामान्य प्रश्नका उत्तरहरु]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce मेडियाविकि सुचना मेलिङ्ग सूची]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/nl-informal.json b/includes/installer/i18n/nl-informal.json
new file mode 100644 (file)
index 0000000..0a5096c
--- /dev/null
@@ -0,0 +1,79 @@
+{
+    "@metadata": {
+        "authors": [
+            "Siebrand"
+        ]
+    },
+    "config-localsettings-badkey": "De sleutel die je hebt opgegeven is onjuist",
+    "config-upgrade-key-missing": "Er is een bestaande installatie van MediaWiki aangetroffen.\nPlaats de volgende regel onderaan je <code>LocalSettings.php</code> om deze installatie bij te werken:\n\n$1",
+    "config-session-expired": "Je sessiegegevens zijn verlopen.\nSessies zijn ingesteld om een levensduur van $1 te hebben.\nJe kunt deze wijzigen via de instelling <code>session.gc_maxlifetime</code> in php.ini.\nBegin het installatieproces opnieuw.",
+    "config-no-session": "Je sessiegegevens zijn verloren gegaan.\nControleer je php.ini en zorg dat er een juiste map is ingesteld voor <code>session.save_path</code>.",
+    "config-your-language": "Jouw taal:",
+    "config-help-restart": "Wil je alle opgeslagen gegevens die je hebt ingevoerd wissen en het installatieproces opnieuw starten?",
+    "config-welcome": "=== Controle omgeving ===\nEr worden een aantal basiscontroles uitgevoerd met als doel vast te stellen of deze omgeving geschikt is voor een installatie van MediaWiki.\nAls je hulp nodig hebt bij de installatie, lever deze gegevens dan ook aan.",
+    "config-copyright": "=== Auteursrechten en voorwaarden ===\n\n$1\n\nDit programma is vrije software. Je mag het verder verspreiden en/of aanpassen in overeenstemming met de voorwaarden van de GNU General Public License zoals uitgegeven door de Free Software Foundation; ofwel versie 2 van de Licentie of - naar eigen keuze - enige latere versie.\n\nDit programma wordt verspreid in de hoop dat het nuttig is, maar '''zonder enige garantie''', zelfs zonder de impliciete garantie van '''verkoopbaarheid''' of '''geschiktheid voor een bepaald doel'''.\nZie de GNU General Public License voor meer informatie.\n\nSamen met dit programma hoor je een <doclink href=Copying>exemplaar van de GNU General Public License</doclink> ontvangen te hebben; zo niet, schrijf dan aan de Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, Verenigde Staten. Of [http://www.gnu.org/copyleft/gpl.html lees de licentie online].",
+    "config-env-good": "De omgeving is gecontroleerd.\nJe kunt MediaWiki installeren.",
+    "config-env-bad": "De omgeving is gecontroleerd.\nJe kunt MediaWiki niet installeren.",
+    "config-unicode-pure-php-warning": "'''Waarschuwing''': de [http://pecl.php.net/intl PECL-extensie intl] is niet beschikbaar om de Unicodenormalisatie af te handelen en daarom wordt de langzame PHP-implementatie gebruikt.\nAls je MediaWiki voor een website met veel verkeer installeert, lees je dan in over [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicodenormalisatie].",
+    "config-unicode-update-warning": "'''Waarschuwing''': de geïnstalleerde versie van de Unicodenormalisatiewrapper maakt gebruik van een oudere versie van [http://site.icu-project.org/ de bibliotheek van het ICU-project].\nJe moet [//www.mediawiki.org/wiki/Unicode_normalization_considerations bijwerken] als Unicode voor jou van belang is.",
+    "config-no-db": "Het was niet mogelijk een geschikte databasedriver te vinden voor PHP.\nJe moet een databasedriver installeren voor PHP.\nDe volgende databases worden ondersteund: $1.\n\nAls je op een gedeelde omgeving zit, vraag dan aan je hostingprovider een geschikte databasedriver te installeren.\nAls je PHP zelf hebt gecompileerd, wijzig dan je instellingen zodat een databasedriver wordt geactiveerd, bijvoorbeeld via <code>./configure --with-mysql</code>.\nAls je PHP hebt geïnstalleerd via een Debian- of Ubuntu-package, installeer dan ook de module php5-mysql.",
+    "config-outdated-sqlite": "''' Waarschuwing:''' je gebruikt SQLite $1. SQLite is niet beschikbaar omdat de minimaal vereiste versie $2 is.",
+    "config-register-globals": "'''Waarschuwing: de PHP-optie <code>[http://php.net/register_globals register_globals]</code> is ingeschakeld.'''\n'''Schakel deze uit als dat mogelijk is.'''\nMediaWiki kan ermee werken, maar je server is dan meer kwetsbaar voor beveiligingslekken.",
+    "config-magic-quotes-runtime": "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] is actief!'''\nDeze instelling zorgt voor gegevenscorruptie.\nJe kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
+    "config-magic-quotes-sybase": "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_sybase] is actief!'''\nDeze instelling zorgt voor gegevenscorruptie.\nJe kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
+    "config-mbstring": "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] is actief!'''\nDeze instelling zorgt voor gegevenscorruptie.\nJe kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
+    "config-ze1": "'''Onherstelbare fout: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] is actief!'''\nDeze instelling zorgt voor grote problemen in MediaWiki.\nJe kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
+    "config-xml-bad": "De XML-module van PHP ontbreekt.\nMediaWiki heeft de functies van deze module nodig en werkt niet zonder deze module.\nAls je gebruik maakt van Mandrake, installeer dan het package php-xml.",
+    "config-mod-security": "'''Waarschuwing:''' je webserver heeft de module [http://modsecurity.org/ mod_security] ingeschakeld. Als deze onjuist is ingesteld, kan dit problemen geven in combinatie met MediaWiki of andere software die gebruikers in staat stelt willekeurige inhoud te posten.\nLees de [http://modsecurity.org/documentation/ documentatie over mod_security] of neem contact op met de helpdesk van je provider als je tegen problemen aanloopt.",
+    "config-imagemagick": "ImageMagick aangetroffen: <code>$1</code>.\nHet aanmaken van miniaturen van afbeeldingen wordt ingeschakeld als je uploaden inschakelt.",
+    "config-gd": "Ingebouwde GD grafische bibliotheek aangetroffen.\nHet aanmaken van miniaturen van afbeeldingen wordt ingeschakeld als je uploaden inschakelt.",
+    "config-uploads-not-safe": "'''Waarschuwing:''' je uploadmap <code>$1</code> kan gebruikt worden voor het arbitrair uitvoeren van scripts.\nHoewel MediaWiki alle toegevoegde bestanden controleert op bedreigingen, is het zeer aan te bevelen het [//www.mediawiki.org/wiki/Manual:Security#Upload_security beveiligingslek te verhelpen] alvorens uploads in te schakelen.",
+    "config-no-cli-uploads-check": "''Waarschuwing:'' je standaardmap voor uploads (<code>$1</code>) wordt niet gecontroleerd op kwetsbaarheden voor het uitvoeren van willekeurige scripts gedurende de CLI-installatie.",
+    "config-brokenlibxml": "Je systeem heeft een combinatie van PHP- en libxml2-versies geïnstalleerd die is foutgevoelig is en kan leiden tot onzichtbare beschadiging van gegevens in MediaWiki en andere webapplicaties.\nUpgrade naar PHP 5.2.9 of hoger en libxml2 2.7.3 of hoger([//bugs.php.net/bug.php?id=45996 bij PHP gerapporteerde fout]).\nDe installatie wordt afgebroken.",
+    "config-db-host-help": "Als je databaseserver een andere server is, voer dan de hostnaam of het IP-adres hier in.\n\nAls je gebruik maakt van gedeelde webhosting, hoort je provider je de juiste hostnaam te hebben verstrekt.\n\nAls je MediaWiki op een Windowsserver installeert en MySQL gebruikt, dan werkt \"localhost\" mogelijk niet als servernaam.\nAls het inderdaad niet werkt, probeer dan \"127.0.0.1\" te gebruiken als lokaal IP-adres.\n\nAls je PostgreSQL gebruikt, laat dit veld dan leeg om via een Unix-socket te verbinden.",
+    "config-db-host-oracle-help": "Voer een geldige [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name] in; een tnsnames.ora-bestand moet zichtbaar zijn voor deze installatie.<br />Als je gebruik maakt van clientlibraries 10g of een latere versie, kan je ook gebruik maken van de naamgevingsmethode [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
+    "config-db-name-help": "Kies een naam die je wiki identificeert.\nEr mogen geen spaties gebruikt worden.\nAls je gebruik maakt van gedeelde webhosting, dan hoort je provider ofwel jou een te gebruiken databasenaam gegeven te hebben, of je aangegeven te hebben hoe je databases kunt aanmaken.",
+    "config-db-account-oracle-warn": "Er zijn drie ondersteunde scenario's voor het installeren van Oracle als databasebackend:\n\nAls je een databasegebruiker wilt aanmaken als onderdeel van het installatieproces, geef dan de gegevens op van een databasegebruiker in met de rol SYSDBA voor de installatie en voer de gewenste aanmeldgegevens in voor de gebruiker met webtoegang. Je kunt ook de gebruiker met webtoegang handmatig aanmaken en alleen van die gebruiker de aanmeldgegevens opgeven als deze de vereiste rechten heeft om schemaobjecten aan te maken. Als laatste is het mogelijk om aanmeldgegevens van twee verschillende gebruikers op te geven; een met de rechten om schemaobjecten aan te maken, en een met alleen webtoegang.\n\nEen script voor het aanmaken van een gebruiker met de vereiste rechten is te vinden in de map \"maintenance/oracle/\" van deze installatie. Onthoud dat het gebruiken van een gebruiker met beperkte rechten alle mogelijkheden om beheerscripts uit te voeren met de standaard gebruiker onmogelijk maakt.",
+    "config-db-prefix-help": "Als je een database moet gebruiken voor meerdere wiki's, of voor MediaWiki en een andere applicatie, dan kan je ervoor kiezen om een voorvoegsel toe te voegen aan de tabelnamen om conflicten te voorkomen.\nGebruik geen spaties.\n\nDit veld wordt meestal leeg gelaten.",
+    "config-charset-help": "'''Waarschuwing:''' als je '''achterwaarts compatibel met UTF-8''' gebruikt met MySQL 4.1+ en een back-up van de database maakt met <code>mysqldump</code>, dan kunnen alle niet-ASCII-tekens in je back-ups onherstelbaar beschadigd raken.\n\nIn '''binaire modus''' slaat MediaWiki tekst in UTF-8 op in binaire databasevelden.\nDit is efficiënter dan de UTF-8-modus van MySQL en stelt je in staat de volledige reeks Unicode-tekens te gebruiken.\nIn '''UTF-8-modus''' kent MySQL de tekenset van je gegevens en kan de databaseserver ze juist weergeven en converteren.\nHet is dan niet mogelijk tekens op te slaan die de \"[//nl.wikipedia.org/wiki/Lijst_van_Unicode-subbereiken#Basic_Multilingual_Plane Basic Multilingual Plane]\" te boven gaan.",
+    "config-mysql-old": "Je moet MySQL $1 of later gebruiken.\nJij gebruikt $2.",
+    "config-db-schema-help": "Dit schema klopt meestal.\nWijzig het alleen als je weet dat dit nodig is.",
+    "config-sqlite-dir-help": "SQLite slaat alle gegevens op in een enkel bestand.\n\nDe map die je opgeeft moet beschrijfbaar zijn voor de webserver tijdens de installatie.\n\nDeze mag '''niet toegankelijk''' zijn via het web en het bestand mag dus niet tussen de PHP-bestanden staan.\n\nHet installatieprogramma schrijft het bestand <code>.htaccess</code> weg met het databasebestand, maar als dat niet werkt kan iemand zich toegang tot het ruwe databasebestand verschaffen.\nOok de gebruikersgegevens (e-mailadressen, wachtwoordhashes) en verwijderde versies en overige gegevens met beperkte toegang via MediaWiki zijn dan onbeschermd.\n\nOverweeg om de database op een totaal andere plaats neer te zetten, bijvoorbeeld in <code>/var/lib/mediawiki/yourwiki</code>.",
+    "config-support-info": "MediaWiki ondersteunt de volgende databasesystemen:\n\n$1\n\nAls je het databasesysteem dat je wilt gebruiken niet in de lijst terugvindt, volg dan de handleiding waarnaar hierboven wordt verwezen om ondersteuning toe te voegen.",
+    "config-missing-db-name": "Je moet een waarde opgeven voor \"Databasenaam\"",
+    "config-missing-db-host": "Je moet een waarde invoeren voor \"Databaseserver\"",
+    "config-missing-db-server-oracle": "Je moet een waarde opgeven voor \"Database-TNS\"",
+    "config-postgres-old": "PostgreSQL $1 of hoger is vereist.\nJij gebruikt $2.",
+    "config-sqlite-name-help": "Kies een naam die je wiki identificeert.\nGebruik geen spaties of koppeltekens.\nDeze naam wordt gebruikt voor het gegevensbestand van SQLite.",
+    "config-upgrade-done": "Het bijwerken is afgerond.\n\nJe kunt [$1 je wiki nu gebruiken].\n\nAls je je <code>LocalSettings.php</code> opnieuw wilt aanmaken, klik dan op de knop hieronder.\nDit is '''niet aan te raden''' tenzij je problemen hebt met je wiki.",
+    "config-upgrade-done-no-regenerate": "Het bijwerken is afgerond.\n\nJe kunt nu [$1 je wiki gebruiken].",
+    "config-db-web-no-create-privs": "De gebruiker die je hebt opgegeven voor de installatie heeft niet voldoende rechten om een gebruiker aan te maken.\nDe gebruiker die je hier opgeeft moet al bestaan.",
+    "config-mysql-myisam-dep": "'''Waarschuwing''': je hebt MyISAM geselecteerd als opslagengine voor MySQL. Dit is niet aan te raden voor MediaWiki omdat:\n* het nauwelijks ondersteuning biedt voor gebruik door meerdere gebruikers tegelijkertijd door het locken van tabellen;\n* het meer vatbaar is voor corruptie dan andere engines;\n* de code van MediaWiki niet alstijd omgaat met MyISAM zoals dat zou moeten.\n\nAls je installatie van MySQL InnoDB ondersteunt, gebruik dat dan vooral.\nAls je installatie van MySQL geen ondersteuning heeft voor InnoDB, denk dan na over upgraden.",
+    "config-mysql-charset-help": "In '''binaire modus''' slaat MediaWiki tekst in UTF-8 op in binaire databasevelden.\nDit is efficiënter dan de UTF-8-modus van MySQL en stelt je in staat de volledige reeks Unicodetekens te gebruiken.\n\nIn '''UTF-8-modus''' kent MySQL de tekenset van je gegevens en kan de databaseserver ze juist weergeven en converteren.\nHet is dat niet mogelijk tekens op te slaan die de \"[//nl.wikipedia.org/wiki/Lijst_van_Unicode-subbereiken#Basic_Multilingual_Plane Basic Multilingual Plane]\" te boven gaan.",
+    "config-project-namespace-help": "In het kielzog van Wikipedia beheren veel wiki's hun beleidspagina's apart van hun inhoudelijke pagina's in een \"'''projectnaamruimte'''\".\nAlle paginanamen in deze naamruimte beginnen met een bepaald voorvoegsel dat je hier kunt opgeven.\nDit voorvoegsel wordt meestal afgeleid van de naam van de wiki, maar het kan geen bijzondere tekens bevatten als \"#\" of \":\".",
+    "config-admin-name": "Je naam:",
+    "config-admin-password-mismatch": "De twee door jou ingevoerde wachtwoorden komen niet overeen.",
+    "config-admin-email-help": "Voer hier een e-mailadres in om e-mail te kunnen ontvangen van andere gebruikers op de wiki, je wachtwoord opnieuw in te kunnen stellen en op de hoogte te worden gehouden van wijzigingen van pagina's op uw volglijst. Je kunt het veld leeg laten.",
+    "config-admin-error-bademail": "Je hebt een ongeldig e-mailadres opgegeven",
+    "config-subscribe-help": "Dit is een mailinglijst met een laag volume voor aankondigingen van nieuwe versies, inclusief belangrijke aankondigingen met betrekking tot beveiliging.\nAbonneer jezelf erop en werk je MediaWiki-installatie bij als er nieuwe versies uitkomen.",
+    "config-subscribe-noemail": "Je hebt geprobeerd je te abonneren op de mailinglijst voor release-aankondigingen zonder een e-mailadres op te geven.\nGeef een e-mailadres op als je je wilt abonneren op de mailinglijst.",
+    "config-almost-done": "Je bent bijna klaar!\nAls je wilt kan je de overige instellingen overslaan en de wiki nu installeren.",
+    "config-profile-help": "Wiki's werken het beste als ze door zoveel mogelijk gebruikers worden bewerkt.\nIn MediaWiki is het eenvoudig om de recente wijzigingen te controleren en eventuele foutieve of kwaadwillende bewerkingen terug te draaien.\n\nDaarnaast vinden velen MediaWiki goed inzetbaar in vele andere rollen, en soms is het niet handig om helemaal \"op de wikimanier\" te werken.\nDaarom biedt dit installatieprogramma je de volgende keuzes voor de basisinstelling van gebruikersvrijheden:\n\nEen '''{{int:config-profile-wiki}}''' staat iedereen toe te bewerken, zonder zelfs aan te melden.\nEen wiki met '''{{int:config-profile-no-anon}}\" biedt extra verantwoordelijkheid, maar kan afschrikken toevallige gebruikers afschrikken.\n\nHet scenario '''{{int:config-profile-fishbowl}}''' laat gebruikers waarvoor dat is ingesteld bewerkt, maar andere gebruikers kunnen alleen pagina's bekijken, inclusief de bewerkingsgeschiedenis.\nIn een '''{{int:config-profile-private}}''' kunnen alleen goedgekeurde gebruikers pagina's bekijken en bewerken.\n\nMeer complexe instellingen voor gebruikersrechten zijn te maken na de installatie; hierover is meer te lezen in de [//www.mediawiki.org/wiki/Manual:User_rights handleiding].",
+    "config-license-help": "In veel openbare wiki's zijn alle bijdragen beschikbaar onder een [http://freedomdefined.org/Definition vrije licentie].\nDit helpt bij het creëren van een gevoel van gemeenschappelijk eigendom en stimuleert bijdragen op lange termijn.\nDit is over het algemeen niet nodig is voor een particuliere of zakelijke wiki.\n\nAls je teksten uit Wikipedia wilt kunnen gebruiken en je wilt het mogelijk maken teksten uit je wiki naar Wikipedia te kopiëren, kies dan de licentie '''Creative Commons Naamsvermelding-Gelijk delen'''.\n\nDe GNU Free Documentation License is de oude licentie voor inhoud uit Wikipedia.\nDit is nog steeds een geldige licentie, maar deze licentie is lastig te begrijpen.\nHet is ook lastig inhoud te hergebruiken onder de GFDL.",
+    "config-enable-email-help": "Als je wilt dat e-mailen mogelijk is, dan moeten de [http://www.php.net/manual/en/mail.configuration.php e-mailinstellingen van PHP] correct zijn.\nAls je niet wilt dat e-mailen mogelijk is, dan kan je de instellingen hier uitschakelen.",
+    "config-upload-help": "Het toestaan van het uploaden van bestanden stelt je server mogelijk bloot aan beveiligingsrisico's.\nEr is meer [//www.mediawiki.org/wiki/Manual:Security informatie over beveiliging] beschikbaar in de handleiding.\n\nOm het bestandsuploads mogelijk te maken kan je de rechten op de submap <code>images</code> onder de hoofdmap van MediaWiki aanpassen, zodat de webserver erin kan schrijven.\nDaarmee wordt deze functie ingeschakeld.",
+    "config-logo-help": "Het standaarduiterlijk van MediaWiki bevat ruimte voor een logo van 135x160 pixels boven het menu.\nUpload een afbeelding met de juiste afmetingen en voer de URL hier in.\n\nAls je geen logo wilt gebruiken, kan je dit veld leeg laten.",
+    "config-cc-not-chosen": "Kies de Creative Commonslicentie die je wilt gebruiken en klik op \"doorgaan\".",
+    "config-memcache-needservers": "Je hebt Memcached geselecteerd als je cache, maar je hebt geen servers opgegeven.",
+    "config-memcache-badip": "Je hebt een ongeldig IP-adres ingevoerd voor Memcached: $1.",
+    "config-memcache-noport": "Je hebt geen poort opgegeven voor de Memcachedserver: $1.\nDe standaardpoort is 11211.",
+    "config-extensions-help": "De bovenstaande uitbreidingen zijn aangetroffen in de map <code>./extensions</code>.\n\nMogelijk moet je aanvullende instellingen maken, maar je kunt deze uitbreidingen nu inschakelen.",
+    "config-install-alreadydone": "'''Waarschuwing:''' het lijkt alsof je MediaWiki al hebt geïnstalleerd en probeert het programma opnieuw te installeren.\nGa door naar de volgende pagina.",
+    "config-install-begin": "Als je nu op \"{{int:config-continue}}\" klikt, begint de installatie van MediaWiki.\nAls je nog wijzigingen wilt maken, klik dan op \"Terug\".",
+    "config-pg-no-plpgsql": "Je moet de taal PL/pgSQL installeren in de database $1",
+    "config-pg-no-create-privs": "De gebruiker die je hebt opgegeven door de installatie heeft niet voldoende rechten om een gebruiker aan te maken.",
+    "config-pg-not-in-role": "De gebruiker die je hebt opgegeven voor de webgebruiker bestaat al.\nDe gebruiker die je hebt opgegeven voor installatie is geen superuser en geen lid van de rol van de webgebruiker, en kan het dus geen objecten aanmaken die van de webgebruiker zijn.\n\nMediaWiki vereist momenteel dat de tabellen van de webgebruiker zijn. Geef een andere webgebruikersnaam op, of klik op \"terug\" en geef een gebruiker op die voldoende installatierechten heeft.",
+    "config-install-user-missing-create": "De opgegeven gebruiker \"$1\" bestaat niet.\nKlik op \"registreren\" onderaan als je de gebruiker wilt aanmaken.",
+    "config-install-done": "'''Gefeliciteerd!'''\nJe hebt MediaWiki met geïnstalleerd.\n\nHet installatieprogramma heeft het bestand <code>LocalSettings.php</code> aangemaakt.\nDit bevat al je instellingen.\n\nJe moet het bestand downloaden en in de hoofdmap van uw wikiinstallatie plaatsten; in dezelfde map als index.php.\nDe download moet je automatisch zijn aangeboden.\n\nAls de download niet is aangeboden of als je de download hebt geannuleerd, dan kan je de download opnieuw starten door op de onderstaande koppeling te klikken:\n\n$3\n\n'''Let op''': als je dit niet nu doet, dan het is bestand als u later de installatieprocedure afsluit zonder het bestand te downloaden niet meer beschikbaar.\n\nNa het plaatsen van het bestand met instellingen kan je '''[$2 je wiki betreden]'''.",
+    "mainpagedocfooter": "Raadpleeg de [//meta.wikimedia.org/wiki/NL_Help:Inhoudsopgave handleiding] voor informatie over het gebruik van de wikisoftware.\n\n== Meer hulp over MediaWiki ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lijst met instellingen]\n* [//www.mediawiki.org/wiki/Manual:FAQ Veelgestelde vragen (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglijst voor aankondigingen van nieuwe versies]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Maak MediaWiki beschikbaar in jouw taal]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/nl.json b/includes/installer/i18n/nl.json
new file mode 100644 (file)
index 0000000..3f8367a
--- /dev/null
@@ -0,0 +1,315 @@
+{
+    "@metadata": {
+        "authors": [
+            "Catrope",
+            "McDutchie",
+            "Purodha",
+            "SPQRobin",
+            "Siebrand",
+            "Tjcool007",
+            "아라"
+        ]
+    },
+    "config-desc": "Het installatieprogramma voor MediaWiki",
+    "config-title": "Installatie MediaWiki $1",
+    "config-information": "Gegevens",
+    "config-localsettings-upgrade": "Er is een bestaand instellingenbestand <code>LocalSettings.php</code> gevonden.\nVoer de waarde van <code>$wgUpgradeKey</code> in in onderstaande invoerveld om deze installatie bij te werken.\nDe instelling is terug te vinden in <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Het bestand <code>LocalSettings.php</code> is al aanwezig.\nVoer <code>update.php</code> uit om deze installatie bij te werken.",
+    "config-localsettings-key": "Upgradesleutel:",
+    "config-localsettings-badkey": "De sleutel die u hebt opgegeven is onjuist",
+    "config-upgrade-key-missing": "Er is een bestaande installatie van MediaWiki aangetroffen.\nPlaats de volgende regel onderaan uw <code>LocalSettings.php</code> om deze installatie bij te werken:\n\n$1",
+    "config-localsettings-incomplete": "De bestaande inhoud van <code>LocalSettings.php</code> lijkt incompleet.\nDe variabele $1 is niet ingesteld.\nWijzig <code>LocalSettings.php</code> zodat deze variabele is ingesteld en klik op \"{{int:Config-continue}}\".",
+    "config-localsettings-connection-error": "Er is een fout opgetreden tijdens het verbinden van de database met de instellingen uit <code>LocalSettings.php</code> of <code>AdminSettings.php</code>. Los het probleem met de instellingen op en probeer het daarna opnieuw.\n\n$1",
+    "config-session-error": "Fout bij het begin van de sessie: $1",
+    "config-session-expired": "Uw sessiegegevens zijn verlopen.\nSessies zijn ingesteld om een levensduur van $1 te hebben.\nU kunt deze wijzigen via de instelling <code>session.gc_maxlifetime</code> in php.ini.\nBegin het installatieproces opnieuw.",
+    "config-no-session": "Uw sessiegegevens zijn verloren gegaan.\nControleer uw php.ini en zorg dat er een juiste map is ingesteld voor <code>session.save_path</code>.",
+    "config-your-language": "Uw taal:",
+    "config-your-language-help": "Selecteer een taal om tijdens het installatieproces te gebruiken.",
+    "config-wiki-language": "Wikitaal:",
+    "config-wiki-language-help": "Selecteer de taal waar de wiki voornamelijk in wordt geschreven.",
+    "config-back": "← Terug",
+    "config-continue": "Doorgaan →",
+    "config-page-language": "Taal",
+    "config-page-welcome": "Welkom bij MediaWiki!",
+    "config-page-dbconnect": "Verbinding maken met database",
+    "config-page-upgrade": "Bestaande installatie bijwerken",
+    "config-page-dbsettings": "Databaseinstellingen",
+    "config-page-name": "Naam",
+    "config-page-options": "Opties",
+    "config-page-install": "Installeren",
+    "config-page-complete": "Voltooid!",
+    "config-page-restart": "Installatie herstarten",
+    "config-page-readme": "Lees mij",
+    "config-page-releasenotes": "Release notes",
+    "config-page-copying": "Kopiëren",
+    "config-page-upgradedoc": "Bijwerken",
+    "config-page-existingwiki": "Bestaande wiki",
+    "config-help-restart": "Wilt u alle opgeslagen gegevens die u hebt ingevoerd wissen en het installatieproces opnieuw starten?",
+    "config-restart": "Ja, opnieuw starten",
+    "config-welcome": "=== Controle omgeving ===\nEr worden een aantal basiscontroles uitgevoerd met als doel vast te stellen of deze omgeving geschikt is voor een installatie van MediaWiki.\nAls u hulp nodig hebt bij de installatie, lever deze gegevens dan ook aan.",
+    "config-copyright": "=== Auteursrechten en voorwaarden ===\n\n$1\n\nDit programma is vrije software. U mag het verder verspreiden en/of aanpassen in overeenstemming met de voorwaarden van de GNU General Public License zoals uitgegeven door de Free Software Foundation; ofwel versie 2 van de Licentie of - naar uw keuze - enige latere versie.\n\nDit programma wordt verspreid in de hoop dat het nuttig is, maar '''zonder enige garantie''', zelfs zonder de impliciete garantie van '''verkoopbaarheid''' of '''geschiktheid voor een bepaald doel'''.\nZie de GNU General Public License voor meer informatie.\n\nSamen met dit programma hoort u een <doclink href=Copying>exemplaar van de GNU General Public License</doclink> ontvangen te hebben; zo niet, schrijf dan aan de Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, Verenigde Staten. Of [http://www.gnu.org/copyleft/gpl.html lees de licentie online].",
+    "config-sidebar": "* [//www.mediawiki.org MediaWiki thuispagina]\n* [//www.mediawiki.org/wiki/Help:Contents Gebruikershandleiding] (Engelstalig)\n* [//www.mediawiki.org/wiki/Manual:Contents Beheerdershandleiding] (Engelstalig)\n* [//www.mediawiki.org/wiki/Manual:FAQ Veel gestelde vragen] (Engelstalig)\n----\n* <doclink href=Readme>Leesmij</doclink> (Engelstalig)\n* <doclink href=ReleaseNotes>Release notes</doclink> (Engelstalig)\n* <doclink href=Copying>Kopiëren</doclink> (Engelstalig)\n* <doclink href=UpgradeDoc>Versie bijwerken</doclink> (Engelstalig)",
+    "config-env-good": "De omgeving is gecontroleerd.\nU kunt MediaWiki installeren.",
+    "config-env-bad": "De omgeving is gecontroleerd.\nU kunt MediaWiki niet installeren.",
+    "config-env-php": "PHP $1 is op dit moment geïnstalleerd.",
+    "config-env-php-toolow": "PHP $1 is geïnstalleerd.\nMediaWiki heeft PHP $2 of hoger nodig om correct te kunnen werken.",
+    "config-unicode-using-utf8": "Voor Unicode-normalisatie wordt utf8_normalize.so van Brion Vibber gebruikt.",
+    "config-unicode-using-intl": "Voor Unicode-normalisatie wordt de [http://pecl.php.net/intl PECL-extensie intl] gebruikt.",
+    "config-unicode-pure-php-warning": "'''Waarschuwing''': de [http://pecl.php.net/intl PECL-extensie intl] is niet beschikbaar om de Unicodenormalisatie af te handelen en daarom wordt de langzame PHP-implementatie gebruikt.\nAls u MediaWiki voor een website met veel verkeer installeert, lees u dan in over [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicodenormalisatie].",
+    "config-unicode-update-warning": "'''Waarschuwing''': de geïnstalleerde versie van de Unicodenormalisatiewrapper maakt gebruik van een oudere versie van [http://site.icu-project.org/ de bibliotheek van het ICU-project].\nU moet [//www.mediawiki.org/wiki/Unicode_normalization_considerations bijwerken] als Unicode voor u van belang is.",
+    "config-no-db": "Het was niet mogelijk een geschikte databasedriver te vinden voor PHP.\nU moet een databasedriver installeren voor PHP.\nDe volgende databases worden ondersteund: $1.\n\nAls u op een gedeelde omgeving zit, vraag dan aan uw hostingprovider een geschikte databasedriver te installeren.\nAls u PHP zelf hebt gecompileerd, wijzig dan uw instellingen zodat een databasedriver wordt geactiveerd, bijvoorbeeld via <code>./configure --with-mysql</code>.\nAls u PHP hebt geïnstalleerd via een Debian- of Ubuntu-package, installeer dan ook de module php5-mysql.",
+    "config-outdated-sqlite": "''' Waarschuwing:''' u gebruikt SQLite $1. SQLite is niet beschikbaar omdat de minimaal vereiste versie $2 is.",
+    "config-no-fts3": "'''Waarschuwing''': SQLite is gecompileerd zonder de module [//sqlite.org/fts3.html FTS3]; er zijn geen zoekfuncties niet beschikbaar.",
+    "config-register-globals": "'''Waarschuwing: de PHP-optie <code>[http://php.net/register_globals register_globals]</code> is ingeschakeld.'''\n'''Schakel deze uit als dat mogelijk is.'''\nMediaWiki kan ermee werken, maar uw server is dan meer kwetsbaar voor beveiligingslekken.",
+    "config-magic-quotes-runtime": "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] is actief!'''\nDeze instelling zorgt voor gegevenscorruptie.\nU kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
+    "config-magic-quotes-sybase": "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_sybase] is actief!'''\nDeze instelling zorgt voor gegevenscorruptie.\nU kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
+    "config-mbstring": "'''Onherstelbare fout: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] is actief!'''\nDeze instelling zorgt voor gegevenscorruptie.\nU kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
+    "config-ze1": "'''Onherstelbare fout: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] is actief!'''\nDeze instelling zorgt voor grote problemen in MediaWiki.\nU kunt MediaWiki niet installeren tenzij deze instelling is uitgeschakeld.",
+    "config-safe-mode": "'''Waarschuwing:'''\n'''PHP's [http://www.php.net/features.safe-mode veilige modus] is actief.'''\nDit kan problemen veroorzaken, vooral bij het uploaden van bestanden en ondersteuning van <code>math</code>.",
+    "config-xml-bad": "De XML-module van PHP ontbreekt.\nMediaWiki heeft de functies van deze module nodig en werkt niet zonder deze module.\nAls u gebruik maakt van Mandrake, installeer dan het package php-xml.",
+    "config-pcre": "De ondersteuningsmodule PCRE lijkt te missen.\nMediaWiki vereist dat de met Perl compatibele reguliere expressies werken.",
+    "config-pcre-no-utf8": "'''Fataal:''' de module PRCE van PHP lijkt te zijn gecompileerd zonder ondersteuning voor PCRE_UTF8.\nMediaWiki heeft ondersteuning voor UTF-8 nodig om correct te kunnen werken.",
+    "config-memory-raised": "PHP's <code>memory_limit</code> is $1 en is verhoogd tot $2.",
+    "config-memory-bad": "'''Waarschuwing:''' PHP's <code>memory_limit</code> is $1.\nDit is waarschijnlijk te laag.\nDe installatie kan mislukken!",
+    "config-ctype": "'''Fataal:''' PHP moet gecompileerd zijn met ondersteuning voor de [http://www.php.net/manual/en/ctype.installation.php extensie Ctype].",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] is op dit moment geïnstalleerd",
+    "config-apc": "[http://www.php.net/apc APC] is op dit moment geïnstalleerd",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] is op dit moment geïnstalleerd",
+    "config-no-cache": "'''Waarschuwing:''' [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] of [http://www.iis.net/download/WinCacheForPhp WinCache] is niet aangetroffen.\nHet cachen van objecten is niet ingeschakeld.",
+    "config-mod-security": "'''Waarschuwing:''' uw webserver heeft de module [http://modsecurity.org/ mod_security] ingeschakeld. Als deze onjuist is ingesteld, kan dit problemen geven in combinatie met MediaWiki of andere software die gebruikers in staat stelt willekeurige inhoud te posten.\nLees de [http://modsecurity.org/documentation/ documentatie over mod_security] of neem contact op met de helpdesk van uw provider als u tegen problemen aanloopt.",
+    "config-diff3-bad": "GNU diff3 niet aangetroffen.",
+    "config-git": "Versiecontrolesoftware git is aangetroffen: <code>$1</code>",
+    "config-git-bad": "Geen git versiecontrolesoftware aangetroffen.",
+    "config-imagemagick": "ImageMagick aangetroffen: <code>$1</code>.\nHet aanmaken van miniaturen van afbeeldingen wordt ingeschakeld als u uploaden inschakelt.",
+    "config-gd": "Ingebouwde GD grafische bibliotheek aangetroffen.\nHet aanmaken van miniaturen van afbeeldingen wordt ingeschakeld als u uploaden inschakelt.",
+    "config-no-scaling": "De GD-bibliotheek en ImageMagick zijn niet aangetroffen.\nHet maken van miniaturen van afbeeldingen wordt uitgeschakeld.",
+    "config-no-uri": "'''Fout:''' de huidige URI kon niet vastgesteld worden.\nDe installatie is afgebroken.",
+    "config-no-cli-uri": "'''Waarschuwing:''' de parameter ==scriptpath is niet opgegeven. De standaardwaarde wordt gebruikt: <code>$1</code>.",
+    "config-using-server": "De servernaam \"<nowiki>$1</nowiki>\" wordt gebruikt.",
+    "config-using-uri": "De server-URL \"<nowiki>$1$2</nowiki>\" wordt gebruikt.",
+    "config-uploads-not-safe": "'''Waarschuwing:''' uw uploadmap <code>$1</code> kan gebruikt worden voor het arbitrair uitvoeren van scripts.\nHoewel MediaWiki alle toegevoegde bestanden controleert op bedreigingen, is het zeer aan te bevelen het [//www.mediawiki.org/wiki/Manual:Security#Upload_security beveiligingslek te verhelpen] alvorens uploads in te schakelen.",
+    "config-no-cli-uploads-check": "''Waarschuwing:'' uw standaardmap voor uploads (<code>$1</code>) wordt niet gecontroleerd op kwetsbaarheden voor het uitvoeren van willekeurige scripts gedurende de CLI-installatie.",
+    "config-brokenlibxml": "Uw systeem heeft een combinatie van PHP- en libxml2-versies geïnstalleerd die is foutgevoelig is en kan leiden tot onzichtbare beschadiging van gegevens in MediaWiki en andere webapplicaties.\nUpgrade naar PHP 5.2.9 of hoger en libxml2 2.7.3 of hoger([//bugs.php.net/bug.php?id=45996 bij PHP gerapporteerde fout]).\nDe installatie wordt afgebroken.",
+    "config-using531": "PHP $1 is niet compatibel met MediaWiki vanwege een fout met betrekking tot referentieparameters met <code>__call()</code>.\nWerk uw PHP bij naar PHP 5.3.2 of hoger of werk bij naar de lagere versie PHP 5.3.0 om dit op te lossen.\nDe installatie wordt afgebroken.",
+    "config-suhosin-max-value-length": "Suhosin is geïnstalleerd en beperkt de GET-parameter <code>length</code> tot $1 bytes.\nDe ResourceLoader van MediaWiki omzeilt deze beperking, maar dat is slecht voor de prestaties.\nAls het mogelijk is, moet u de waarde \"<code>suhosin.get.max_value_length</code>\" in <code>php.ini</code> instellen op 1024 of hoger en <code>$wgResourceLoaderMaxQueryLength</code> in LocalSettings.php op dezelfde waarde instellen.",
+    "config-db-type": "Databasetype:",
+    "config-db-host": "Databasehost:",
+    "config-db-host-help": "Als uw databaseserver een andere server is, voer dan de hostnaam of het IP-adres hier in.\n\nAls u gebruik maakt van gedeelde webhosting, hoort uw provider u de juiste hostnaam te hebben verstrekt.\n\nAls u MediaWiki op een Windowsserver installeert en MySQL gebruikt, dan werkt \"localhost\" mogelijk niet als servernaam.\nAls het inderdaad niet werkt, probeer dan \"127.0.0.1\" te gebruiken als lokaal IP-adres.\n\nAls u PostgreSQL gebruikt, laat dit veld dan leeg om via een Unix-socket te verbinden.",
+    "config-db-host-oracle": "Database-TNS:",
+    "config-db-host-oracle-help": "Voer een geldige [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name] in; een tnsnames.ora-bestand moet zichtbaar zijn voor deze installatie.<br />Als u gebruik maakt van clientlibraries 10g of een latere versie, kunt u ook gebruik maken van de naamgevingsmethode [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
+    "config-db-wiki-settings": "Identificeer deze wiki",
+    "config-db-name": "Databasenaam:",
+    "config-db-name-help": "Kies een naam die uw wiki identificeert.\nEr mogen geen spaties gebruikt worden.\nAls u gebruik maakt van gedeelde webhosting, dan hoort uw provider ofwel u een te gebruiken databasenaam gegeven te hebben, of u aangegeven te hebben hoe u databases kunt aanmaken.",
+    "config-db-name-oracle": "Databaseschema:",
+    "config-db-account-oracle-warn": "Er zijn drie ondersteunde scenario's voor het installeren van Oracle als databasebackend:\n\nAls u een databasegebruiker wilt aanmaken als onderdeel van het installatieproces, geef dan de gegevens op van een databasegebruiker in met de rol SYSDBA voor de installatie en voer de gewenste aanmeldgegevens in voor de gebruiker met webtoegang. U kunt ook de gebruiker met webtoegang handmatig aanmaken en alleen van die gebruiker de aanmeldgegevens opgeven als deze de vereiste rechten heeft om schemaobjecten aan te maken. Als laatste is het mogelijk om aanmeldgegevens van twee verschillende gebruikers op te geven; een met de rechten om schemaobjecten aan te maken, en een met alleen webtoegang.\n\nEen script voor het aanmaken van een gebruiker met de vereiste rechten is te vinden in de map \"maintenance/oracle/\" van deze installatie. Onthoud dat het gebruiken van een gebruiker met beperkte rechten alle mogelijkheden om beheerscripts uit te voeren met de standaard gebruiker onmogelijk maakt.",
+    "config-db-install-account": "Gebruiker voor installatie",
+    "config-db-username": "Gebruikersnaam voor database:",
+    "config-db-password": "Wachtwoord voor database:",
+    "config-db-password-empty": "Voer een wachtwoord in voor de nieuwe databasegebruiker: $1.\nHoewel het wellicht mogelijk is gebruikers aan te maken zonder wachtwoord, is dit niet veilig.",
+    "config-db-install-username": "Voer de gebruikersnaam in die gebruikt moet worden om te verbinden met de database tijdens het installatieproces. Dit is niet de gebruikersnaam van de MediaWikigebruiker. Dit is de gebruikersnaam voor de database.",
+    "config-db-install-password": "Voer het wachtwoord in dat gebruikt moet worden om te verbinden met de database tijdens het installatieproces. Dit is niet het wachtwoord van de MediaWikigebruiker. Dit is het wachtwoord voor de database.",
+    "config-db-install-help": "Voer de gebruikersnaam en het wachtwoord in die worden gebruikt voor de databaseverbinding tijdens het installatieproces.",
+    "config-db-account-lock": "Dezelfde gebruiker en wachwoord gebruiken na de installatie",
+    "config-db-wiki-account": "Gebruiker voor na de installatie",
+    "config-db-wiki-help": "Voer de gebruikersnaam en het wachtwoord in die gebruikt worden om verbinding te maken met de database na de installatie.\nAls de gebruiker niet bestaat en de gebruiker die tijdens de installatie gebruikt wordt voldoende rechten heeft, wordt deze gebruiker aangemaakt met de minimaal benodigde rechten voor het laten werken van de wiki.",
+    "config-db-prefix": "Databasetabelvoorvoegsel:",
+    "config-db-prefix-help": "Als u een database moet gebruiken voor meerdere wiki's, of voor MediaWiki en een andere applicatie, dan kunt u ervoor kiezen om een voorvoegsel toe te voegen aan de tabelnamen om conflicten te voorkomen.\nGebruik geen spaties.\n\nDit veld wordt meestal leeg gelaten.",
+    "config-db-charset": "Tekenset voor de database",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binair",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 UTF-8-compatibel",
+    "config-charset-help": "'''Waarschuwing:''' als u '''achterwaarts compatibel met UTF-8''' gebruikt met MySQL 4.1+ en een back-up van de database maakt met <code>mysqldump</code>, dan kunnen alle niet-ASCII-tekens in uw back-ups onherstelbaar beschadigd raken.\n\nIn '''binaire modus''' slaat MediaWiki tekst in UTF-8 op in binaire databasevelden.\nDit is efficiënter dan de UTF-8-modus van MySQL en stelt u in staat de volledige reeks Unicode-tekens te gebruiken.\nIn '''UTF-8-modus''' kent MySQL de tekenset van uw gegevens en kan de databaseserver ze juist weergeven en converteren.\nHet is dan niet mogelijk tekens op te slaan die de \"[//nl.wikipedia.org/wiki/Lijst_van_Unicode-subbereiken#Basic_Multilingual_Plane Basic Multilingual Plane]\" te boven gaan.",
+    "config-mysql-old": "U moet MySQL $1 of later gebruiken.\nU gebruikt $2.",
+    "config-db-port": "Databasepoort:",
+    "config-db-schema": "Schema voor MediaWiki",
+    "config-db-schema-help": "Dit schema klopt meestal.\nWijzig het alleen als u weet dat dit nodig is.",
+    "config-pg-test-error": "Kan geen verbinding maken met database '''$1''': $2",
+    "config-sqlite-dir": "Gegevensmap voor SQLite:",
+    "config-sqlite-dir-help": "SQLite slaat alle gegevens op in een enkel bestand.\n\nDe map die u opgeeft moet beschrijfbaar zijn voor de webserver tijdens de installatie.\n\nDeze mag '''niet toegankelijk''' zijn via het web en het bestand mag dus niet tussen de PHP-bestanden staan.\n\nHet installatieprogramma schrijft het bestand <code>.htaccess</code> weg met het databasebestand, maar als dat niet werkt kan iemand zich toegang tot het ruwe databasebestand verschaffen.\nOok de gebruikersgegevens (e-mailadressen, wachtwoordhashes) en verwijderde versies en overige gegevens met beperkte toegang via MediaWiki zijn dan onbeschermd.\n\nOverweeg om de database op een totaal andere plaats neer te zetten, bijvoorbeeld in <code>/var/lib/mediawiki/yourwiki</code>.",
+    "config-oracle-def-ts": "Standaard tablespace:",
+    "config-oracle-temp-ts": "Tijdelijke tablespace:",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-support-info": "MediaWiki ondersteunt de volgende databasesystemen:\n\n$1\n\nAls u het databasesysteem dat u wilt gebruiken niet in de lijst terugvindt, volg dan de handleiding waarnaar hierboven wordt verwezen om ondersteuning toe te voegen.",
+    "config-support-mysql": "* $1 is het primaire databasesysteem voor voor MediaWiki en wordt het best ondersteund ([http://www.php.net/manual/en/mysql.installation.php hoe PHP gecompileerd moet zijn met ondersteuning voor MySQL])",
+    "config-support-postgres": "* $1 is een populair open source databasesysteem als alternatief voor MySQL ([http://www.php.net/manual/en/pgsql.installation.php hoe PHP gecompileerd moet zijn met ondersteuning voor PostgreSQL]). Het is mogelijk dat er een aantal bekende problemen zijn met MediaWiki in combinatie met deze database en daarom wordt PostgreSQL niet aanbevolen voor een productieomgeving.",
+    "config-support-sqlite": "* $1 is een zeer goed ondersteund lichtgewicht databasesysteem ([http://www.php.net/manual/en/pdo.installation.php hoe PHP gecompileerd zijn met ondersteuning voor SQLite]; gebruikt PDO)",
+    "config-support-oracle": "* $1 is een commerciële data voor grote bedrijven ([http://www.php.net/manual/en/oci8.installation.php PHP compileren met ondersteuning voor OCI8]).",
+    "config-header-mysql": "MySQL-instellingen",
+    "config-header-postgres": "PostgreSQL-instellingen",
+    "config-header-sqlite": "SQLite-instellingen",
+    "config-header-oracle": "Oracle-instellingen",
+    "config-invalid-db-type": "Ongeldig databasetype",
+    "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-TNS \"$1\".\nGebruik \"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\".\nGebruik alleen letters (a-z, A-Z), cijfers (0-9) en liggende streepjes (_) en streepjes (-).",
+    "config-invalid-db-prefix": "Ongeldig databasevoorvoegsel \"$1\".\nGebruik alleen letters (a-z, A-Z), cijfers (0-9) en liggende streepjes (_) en streepjes (-).",
+    "config-connection-error": "$1.\n\nControleer de host, gebruikersnaam en wachtwoord en probeer het opnieuw.",
+    "config-invalid-schema": "Ongeldig schema voor MediaWiki \"$1\".\nGebruik alleen letters (a-z, A-Z), cijfers (0-9) en liggende streepjes (_).",
+    "config-db-sys-create-oracle": "Het installatieprogramma biedt alleen de mogelijkheid een nieuwe gebruiker aan te maken met de SYSDBA-gebruiker.",
+    "config-db-sys-user-exists-oracle": "De gebruiker \"$1\" bestaat al. SYSDBA kan alleen gebruikt worden voor het aanmaken van een nieuwe gebruiker!",
+    "config-postgres-old": "PostgreSQL $1 of hoger is vereist.\nU gebruikt $2.",
+    "config-sqlite-name-help": "Kies een naam die uw wiki identificeert.\nGebruik geen spaties of koppeltekens.\nDeze naam wordt gebruikt voor het gegevensbestand van SQLite.",
+    "config-sqlite-parent-unwritable-group": "Het was niet mogelijk de gegevensmap <code><nowiki>$1</nowiki></code> te maken omdat in de bovenliggende map <code><nowiki>$2</nowiki></code> niet geschreven mag worden door de webserver.\n\nHet installatieprogramma heeft vast kunnen stellen onder welke gebruiker de webserver draait.\nMaak de map <code><nowiki>$3</nowiki></code> beschrijfbaar om door te kunnen gaan.\nVoer op een Linux-systeem de volgende opdrachten uit:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Het was niet mogelijk de gegevensmap <code><nowiki>$1</nowiki></code> te maken omdat in de bovenliggende map <code><nowiki>$2</nowiki></code> niet geschreven mag worden door de webserver.\n\nHet installatieprogramma heeft niet vast kunnen stellen onder welke gebruiker de webserver draait.\nMaak de map <code><nowiki>$3</nowiki></code> beschrijfbaar voor de webserver (en anderen!) om door te kunnen gaan.\nVoer op een Linux-systeem de volgende opdrachten uit:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Er is een fout opgetreden tijdens het aanmaken van de gegevensmap \"$1\".\nControleer de locatie en probeer het opnieuw.",
+    "config-sqlite-dir-unwritable": "Het was niet mogelijk in de map \"$1\" te schrijven.\nWijzig de rechten zodat de webserver erin kan schrijven en probeer het opnieuw.",
+    "config-sqlite-connection-error": "$1.\n\nControleer de map voor gegevens en de databasenaam hieronder en probeer het opnieuw.",
+    "config-sqlite-readonly": "Er kan niet naar bestand <code>$1</code> worden geschreven.",
+    "config-sqlite-cant-create-db": "Het was niet mogelijk het databasebestand <code>$1</code> aan te maken.",
+    "config-sqlite-fts3-downgrade": "PHP heeft geen ondersteuning voor FTS3.\nDe tabellen worden gedowngrade.",
+    "config-can-upgrade": "Er staan al tabellen voor MediaWiki in deze database.\nKlik op '''Doorgaan''' om ze bij te werken naar MediaWiki $1.",
+    "config-upgrade-done": "Het bijwerken is afgerond.\n\nUw kunt [$1 uw wiki nu gebruiken].\n\nAls u uw <code>LocalSettings.php</code> opnieuw wilt aanmaken, klik dan op de knop hieronder.\nDit is '''niet aan te raden''' tenzij u problemen hebt met uw wiki.",
+    "config-upgrade-done-no-regenerate": "Het bijwerken is afgerond.\n\nU kunt nu [$1 uw wiki gebruiken].",
+    "config-regenerate": "LocalSettings.php opnieuw aanmaken →",
+    "config-show-table-status": "Het uitvoeren van <code>SHOW TABLE STATUS</code> is mislukt!",
+    "config-unknown-collation": "'''Waarschuwing:''' de database gebruikt een collatie die niet wordt herkend.",
+    "config-db-web-account": "Databasegebruiker voor webtoegang",
+    "config-db-web-help": "Selecteer de gebruikersnaam en het wachtwoord die de webserver gebruikt om verbinding te maken met de databaseserver na de installatie.",
+    "config-db-web-account-same": "Dezelfde gebruiker gebruiken als voor de installatie",
+    "config-db-web-create": "Maak de gebruiker aan als deze nog niet bestaat",
+    "config-db-web-no-create-privs": "De gebruiker die u hebt opgegeven voor de installatie heeft niet voldoende rechten om een gebruiker aan te maken.\nDe gebruiker die u hier opgeeft moet al bestaan.",
+    "config-mysql-engine": "Opslagmethode:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''Waarschuwing''': u hebt MyISAM geselecteerd als opslagengine voor MySQL. Dit is niet aan te raden voor MediaWiki omdat:\n* het nauwelijks ondersteuning biedt voor gebruik door meerdere gebruikers tegelijkertijd door het locken van tabellen;\n* het meer vatbaar is voor corruptie dan andere engines;\n* de code van MediaWiki niet alstijd omgaat met MyISAM zoals dat zou moeten.\n\nAls uw installatie van MySQL InnoDB ondersteunt, gebruik dat dan vooral.\nAls uw installatie van MySQL geen ondersteuning heeft voor InnoDB, denk dan na over upgraden.",
+    "config-mysql-only-myisam-dep": "'''Waarschuwing:''' MyISAM is enige beschikbare opslagmethode voor MySQL, en deze wordt niet aangeraden voor gebruik met MediaWiki, omdat:\n* er nauwelijks ondersteuning is voor meerdere gelijktijdige transacties omdat tabellen op slot gezet worden;\n* tabellen makkelijker stuk kunnen gaan;\n* de code van MediaWiki niet altijd op de juiste wijze omgaat met MyISAM.\n\nUw installatie van MySQL heeft geen ondersteuning voor InnoDB. We raden u aan om een meer recente versie te gebruiken.",
+    "config-mysql-engine-help": "'''InnoDB''' is vrijwel altijd de beste instelling, omdat deze goed omgaat met meerdere verzoeken tegelijkertijd.\n\n'''MyISAM''' is bij een zeer beperkt aantal gebruikers mogelijk sneller, of als de wiki alleen-lezen is.\nMyISAM-databases raken vaker corrupt dan InnoDB-databases.",
+    "config-mysql-charset": "Tekenset voor de database:",
+    "config-mysql-binary": "Binair",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "In '''binaire modus''' slaat MediaWiki tekst in UTF-8 op in binaire databasevelden.\nDit is efficiënter dan de UTF-8-modus van MySQL en stelt u in staat de volledige reeks Unicodetekens te gebruiken.\n\nIn '''UTF-8-modus''' kent MySQL de tekenset van uw gegevens en kan de databaseserver ze juist weergeven en converteren.\nHet is dat niet mogelijk tekens op te slaan die de \"[//nl.wikipedia.org/wiki/Lijst_van_Unicode-subbereiken#Basic_Multilingual_Plane Basic Multilingual Plane]\" te boven gaan.",
+    "config-site-name": "Naam van de wiki:",
+    "config-site-name-help": "Deze naam verschijnt in de titelbalk van browsers en op andere plaatsen.",
+    "config-site-name-blank": "Geef een naam op voor de site.",
+    "config-project-namespace": "Projectnaamruimte:",
+    "config-ns-generic": "Project",
+    "config-ns-site-name": "Zelfde als de wiki: $1",
+    "config-ns-other": "Andere (geef aan welke)",
+    "config-ns-other-default": "MijnWiki",
+    "config-project-namespace-help": "In het kielzog van Wikipedia beheren veel wiki's hun beleidspagina's apart van hun inhoudelijke pagina's in een \"'''projectnaamruimte'''\".\nAlle paginanamen in deze naamruimte beginnen met een bepaald voorvoegsel dat u hier kunt opgeven.\nDit voorvoegsel wordt meestal afgeleid van de naam van de wiki, maar het kan geen bijzondere tekens bevatten als \"#\" of \":\".",
+    "config-ns-invalid": "De opgegeven naamruimte \"<nowiki>$1</nowiki>\" is ongeldig.\nGeef een andere naamruimte op.",
+    "config-ns-conflict": "De opgegeven naamruimte \"<nowiki>$1</nowiki>\" conflicteert met een standaard naamruimte in MediaWiki.\nGeef een andere naam op voor de projectnaamruimte.",
+    "config-admin-box": "Beheerdersgebruiker",
+    "config-admin-name": "Uw naam:",
+    "config-admin-password": "Wachtwoord:",
+    "config-admin-password-confirm": "Wachtwoord opnieuw:",
+    "config-admin-help": "Voer de gebruikersnaam hier in, bijvoorbeeld \"Jan Jansen\".\nDit is de naam die wordt gebruikt om aan de melden bij de wiki.",
+    "config-admin-name-blank": "Geef een gebruikersnaam op voor de beheerder.",
+    "config-admin-name-invalid": "De opgegeven gebruikersnaam \"<nowiki>$1</nowiki>\" is ongeldig.\nKies een andere gebruikersnaam.",
+    "config-admin-password-blank": "Voer een wachtwoord voor de beheerder in.",
+    "config-admin-password-same": "Het wachtwoord mag niet hetzelfde zijn als de gebruikersnaam.",
+    "config-admin-password-mismatch": "De twee door u ingevoerde wachtwoorden komen niet overeen.",
+    "config-admin-email": "E-mailadres:",
+    "config-admin-email-help": "Voer hier een e-mailadres in om e-mail te kunnen ontvangen van andere gebruikers op de wiki, uw wachtwoord opnieuw in te kunnen stellen en op de hoogte te worden gehouden van wijzigingen van pagina's op uw volglijst. U kunt het veld leeg laten.",
+    "config-admin-error-user": "Interne fout bij het aanmaken van een beheerder met de naam \"<nowiki>$1</nowiki>\".",
+    "config-admin-error-password": "Interne fout bij het instellen van een wachtwoord voor de bejeerder \"<nowiki>$1</nowiki>\": <pre>$2</pre>",
+    "config-admin-error-bademail": "U hebt een ongeldig e-mailadres opgegeven",
+    "config-subscribe": "Abonneren op de [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce mailinglijst releaseaankondigen].",
+    "config-subscribe-help": "Dit is een mailinglijst met een laag volume voor aankondigingen van nieuwe versies, inclusief belangrijke aankondigingen met betrekking tot beveiliging.\nAbonneer uzelf erop en werk uw MediaWiki-installatie bij als er nieuwe versies uitkomen.",
+    "config-subscribe-noemail": "U hebt geprobeerd zich te abonneren op de mailinglijst voor release-aankondigingen zonder een e-mailadres op te geven.\nGeef een e-mailadres op als u zich wilt abonneren op de mailinglijst.",
+    "config-almost-done": "U bent bijna klaar!\nAls u wilt kunt u de overige instellingen overslaan en de wiki nu installeren.",
+    "config-optional-continue": "Stel me meer vragen.",
+    "config-optional-skip": "Laat dat maar, installeer gewoon de wiki.",
+    "config-profile": "Gebruikersrechtenprofiel:",
+    "config-profile-wiki": "Open wiki",
+    "config-profile-no-anon": "Gebruiker aanmaken verplicht",
+    "config-profile-fishbowl": "Alleen voor geautoriseerde bewerkers",
+    "config-profile-private": "Privéwiki",
+    "config-profile-help": "Wiki's werken het beste als ze door zoveel mogelijk gebruikers worden bewerkt.\nIn MediaWiki is het eenvoudig om de recente wijzigingen te controleren en eventuele foutieve of kwaadwillende bewerkingen terug te draaien.\n\nDaarnaast vinden velen MediaWiki goed inzetbaar in vele andere rollen, en soms is het niet handig om helemaal \"op de wikimanier\" te werken.\nDaarom biedt dit installatieprogramma u de volgende keuzes voor de basisinstelling van gebruikersvrijheden:\n\nHet profiel '''{{int:config-profile-wiki}}''' staat iedereen toe te bewerken, zonder zelfs aan te melden.\nEen wiki met '''{{int:config-profile-no-anon}}\" biedt extra verantwoordelijkheid, maar kan afschrikken toevallige gebruikers afschrikken.\n\nHet scenario '''{{int:config-profile-fishbowl}}''' laat gebruikers waarvoor dat is ingesteld bewerkt, maar andere gebruikers kunnen alleen pagina's bekijken, inclusief de bewerkingsgeschiedenis.\nIn een '''{{int:config-profile-private}}''' kunnen alleen goedgekeurde gebruikers pagina's bekijken en bewerken.\n\nMeer complexe instellingen voor gebruikersrechten zijn te maken na de installatie; hierover is meer te lezen in de [//www.mediawiki.org/wiki/Manual:User_rights handleiding].",
+    "config-license": "Auteursrechten en licentie:",
+    "config-license-none": "Geen licentie in de voettekst",
+    "config-license-cc-by-sa": "Creative Commons Naamsvermelding-Gelijk delen",
+    "config-license-cc-by": "Creative Commons Naamsvermelding",
+    "config-license-cc-by-nc-sa": "Creative Commons Naamsvermelding-Niet Commercieel-Gelijk delen",
+    "config-license-cc-0": "Creative Commons Zero (Publiek domein)",
+    "config-license-gfdl": "GNU Free Documentation License 1.3 of hoger",
+    "config-license-pd": "Publiek domein",
+    "config-license-cc-choose": "Een Creative Commons-licentie selecteren",
+    "config-license-help": "In veel openbare wiki's zijn alle bijdragen beschikbaar onder een [http://freedomdefined.org/Definition vrije licentie].\nDit helpt bij het creëren van een gevoel van gemeenschappelijk eigendom en stimuleert bijdragen op lange termijn.\nDit is over het algemeen niet nodig is voor een particuliere of zakelijke wiki.\n\nAls u teksten uit Wikipedia wilt kunnen gebruiken en u wilt het mogelijk maken teksten uit uw wiki naar Wikipedia te kopiëren, kies dan de licentie '''Creative Commons Naamsvermelding-Gelijk delen'''.\n\nDe GNU Free Documentation License is de oude licentie voor inhoud uit Wikipedia.\nDit is nog steeds een geldige licentie, maar deze licentie is lastig te begrijpen.\nHet is ook lastig inhoud te hergebruiken onder de GFDL.",
+    "config-email-settings": "E-mailinstellingen",
+    "config-enable-email": "Uitgaande e-mail inschakelen",
+    "config-enable-email-help": "Als u wilt dat e-mailen mogelijk is, dan moeten de [http://www.php.net/manual/en/mail.configuration.php e-mailinstellingen van PHP] correct zijn.\nAls u niet wilt dat e-mailen mogelijk is, dan kunt u de instellingen hier uitschakelen.",
+    "config-email-user": "E-mail tussen gebruikers inschakelen",
+    "config-email-user-help": "Gebruikers toestaan e-mail aan elkaar te verzenden als dit in de voorkeuren is ingesteld.",
+    "config-email-usertalk": "Gebruikersoverlegmeldingen inschakelen",
+    "config-email-usertalk-help": "Gebruikers toestaan meldingen te ontvangen bij wijzigingen op de eigen overlegpagina, als dit in de voorkeuren is ingesteld.",
+    "config-email-watchlist": "Volglijstmeldingen inschakelen",
+    "config-email-watchlist-help": "Gebruikers toestaan meldingen te ontvangen bij wijzigingen van pagina's op hun volglijst, als dit in de voorkeuren is ingesteld.",
+    "config-email-auth": "E-mailbevestiging inschakelen",
+    "config-email-auth-help": "Als deze instelling actief is, moeten gebruikers hun e-mailadres bevestigen via een verwijziging die ze per e-mail wordt toegezonden.\nAlleen bevestigde e-mailadressen kunnen e-mail ontvangen van andere gebruikers of wijzigingsnotificaties ontvangen.\nHet inschakelen van deze instelling wordt '''aangeraden''' voor openbare wiki's vanwege de mogelijkheden voor misbruik van e-mailmogelijkheden.",
+    "config-email-sender": "E-mailadres voor antwoorden:",
+    "config-email-sender-help": "Voer het e-mailadres in dat u wilt gebruiken als antwoordadres voor uitgaande e-mail.\nAls een e-mail niet bezorgd kan worden, wordt dat op dit e-mailadres gemeld.\nVeel mailservers vereisen dat tenminste het domein bestaat.",
+    "config-upload-settings": "Afbeeldingen en bestanden uploaden",
+    "config-upload-enable": "Uploaden van bestanden inschakelen",
+    "config-upload-help": "Het toestaan van het uploaden van bestanden stelt uw server mogelijk bloot aan beveiligingsrisico's.\nEr is meer [//www.mediawiki.org/wiki/Manual:Security informatie over beveiliging] beschikbaar in de handleiding.\n\nOm het bestandsuploads mogelijk te maken kunt u de rechten op de submap <code>images</code> onder de hoofdmap van MediaWiki aanpassen, zodat de webserver erin kan schrijven.\nDaarmee wordt deze functie ingeschakeld.",
+    "config-upload-deleted": "Map voor verwijderde bestanden:",
+    "config-upload-deleted-help": "Kies een map waarin verwijderde bestanden gearchiveerd kunnen worden.\nIdealiter is deze map niet via het web te benaderen.",
+    "config-logo": "URL voor logo:",
+    "config-logo-help": "Het standaarduiterlijk van MediaWiki bevat ruimte voor een logo van 135x160 pixels boven het menu.\nUpload een afbeelding met de juiste afmetingen en voer de URL hier in.\n\nU kunt <code>$wgStylePath</code> of <code>$wgScriptPath</code> gebruiken als uw logo relatief is aan een van deze paden.\n\nAls u geen logo wilt gebruiken, kunt u dit veld leeg laten.",
+    "config-instantcommons": "Instant Commons inschakelen",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] is functie die het mogelijk maakt om afbeeldingen, geluidsbestanden en andere mediabestanden te gebruiken van de website [//commons.wikimedia.org/ Wikimedia Commons].\nHiervoor heeft MediaWiki toegang nodig tot Internet.\n\nMeer informatie over deze functie en hoe deze in te stellen voor andere wiki's dan Wikimedia Commons is te vinden in de [//mediawiki.org/wiki/Manual:$wgForeignFileRepos handleiding].",
+    "config-cc-error": "De licentiekiezer van Creative Commons heeft geen resultaat opgeleverd.\nVoer de licentie handmatig in.",
+    "config-cc-again": "Opnieuw kiezen...",
+    "config-cc-not-chosen": "Kies de Creative Commonslicentie die u wilt gebruiken en klik op \"doorgaan\".",
+    "config-advanced-settings": "Gevorderde instellingen",
+    "config-cache-options": "Instellingen voor het cachen van objecten:",
+    "config-cache-help": "Het cachen van objecten wordt gebruikt om de snelheid van MediaWiki te verbeteren door vaak gebruikte gegevens te bewaren.\nMiddelgrote tot grote websites wordt geadviseerd dit in te schakelen en ook kleine sites merken de voordelen.",
+    "config-cache-none": "Niets cachen.\nEr gaat geen functionaliteit verloren, maar dit kan invloed hebben op de prestaties.",
+    "config-cache-accel": "Cachen van objecten via PHP (APC, XCache of WinCache)",
+    "config-cache-memcached": "Memcached gebruiken (dit vereist aanvullende instellingen)",
+    "config-memcached-servers": "Memcachedservers:",
+    "config-memcached-help": "Lijst met IP-adressen te gebruiken voor Memcached.\nEén IP-adres per regel met een poortnummer.\nBijvoorbeeld:\n 127.0.0.1:11211\n 192.168.1.25:1234",
+    "config-memcache-needservers": "U hebt Memcached geselecteerd als uw cache, maar u hebt geen servers opgegeven.",
+    "config-memcache-badip": "U hebt een ongeldig IP-adres ingevoerd voor Memcached: $1.",
+    "config-memcache-noport": "U hebt geen poort opgegeven voor de Memcachedserver: $1.\nDe standaardpoort is 11211.",
+    "config-memcache-badport": "Poortnummers voor Memcached moeten tussen $1 en $2 liggen.",
+    "config-extensions": "Uitbreidingen",
+    "config-extensions-help": "De bovenstaande uitbreidingen zijn aangetroffen in de map <code>./extensions</code>.\n\nMogelijk moet u aanvullende instellingen maken, maar u kunt deze uitbreidingen nu inschakelen.",
+    "config-install-alreadydone": "'''Waarschuwing:''' het lijkt alsof u MediaWiki al hebt geïnstalleerd en probeert het programma opnieuw te installeren.\nGa door naar de volgende pagina.",
+    "config-install-begin": "Als u nu op \"{{int:config-continue}}\" klikt, begint de installatie van MediaWiki.\nAls u nog wijzigingen wilt maken, klik dan op \"{{int:config-back}}\".",
+    "config-install-step-done": "afgerond",
+    "config-install-step-failed": "mislukt",
+    "config-install-extensions": "Inclusief uitbreidingen",
+    "config-install-database": "Database inrichten",
+    "config-install-schema": "Het schema wordt aangemaakt",
+    "config-install-pg-schema-not-exist": "Het schema voor PostgreSQL bestaat niet",
+    "config-install-pg-schema-failed": "Het aanmaken van de tabellen is mislukt.\nZorg dat de gebruiker \"$1\" in het schema \"$2\" mag schrijven.",
+    "config-install-pg-commit": "Wijzigingen worden doorgevoerd",
+    "config-install-pg-plpgsql": "Controle op de taal PL/pgSQL",
+    "config-pg-no-plpgsql": "U moet de taal PL/pgSQL installeren in de database $1",
+    "config-pg-no-create-privs": "De gebruiker die u hebt opgegeven door de installatie heeft niet voldoende rechten om een gebruiker aan te maken.",
+    "config-pg-not-in-role": "De gebruiker die u hebt opgegeven voor de webgebruiker bestaat al.\nDe gebruiker die u hebt opgegeven voor installatie is geen superuser en geen lid van de rol van de webgebruiker, en kan het dus geen objecten aanmaken die van de webgebruiker zijn.\n\nMediaWiki vereist momenteel dat de tabellen van de webgebruiker zijn. Geef een andere webgebruikersnaam op, of klik op \"terug\" en geef een gebruiker op die voldoende installatierechten heeft.",
+    "config-install-user": "Databasegebruiker aan het aanmaken",
+    "config-install-user-alreadyexists": "Gebruiker \"$1\" bestaat al",
+    "config-install-user-create-failed": "Het aanmaken van de gebruiker \"$1\" is mislukt: $2",
+    "config-install-user-grant-failed": "Het geven van rechten aan gebruiker \"$1\" is mislukt: $2",
+    "config-install-user-missing": "De opgegeven gebruiker \"$1\" bestaat niet.",
+    "config-install-user-missing-create": "De opgegeven gebruiker \"$1\" bestaat niet.\nKlik op \"registreren\" onderaan als u de gebruiker wilt aanmaken.",
+    "config-install-tables": "Tabellen aanmaken",
+    "config-install-tables-exist": "'''Waarschuwing''': de MediaWikitabellen lijken al te bestaan.\nHet aanmaken wordt overgeslagen.",
+    "config-install-tables-failed": "'''Fout''': het aanmaken van een tabel is mislukt met de volgende foutmelding: $1",
+    "config-install-interwiki": "Bezig met het vullen van de interwikitabel",
+    "config-install-interwiki-list": "Het bestand <code>interwiki.list</code> is niet aangetroffen",
+    "config-install-interwiki-exists": "'''Waarschuwing''': de interwikitabel heeft al inhoud.\nDe standaardlijst wordt overgeslagen.",
+    "config-install-stats": "Statistieken initialiseren",
+    "config-install-keys": "Bezig met aanmaken van geheime sleutels",
+    "config-insecure-keys": "'''Waarschuwing:''' De {{PLURAL:$2|sleutel die is aangemaakt|sleutels die zijn aangemaakt}} ($1) tijdens de installatie {{PLURAL:$2|is|zijn}} niet volledig veilig. Overweeg deze handmatig te wijzigen.",
+    "config-install-sysop": "Gebruiker voor beheerder aanmaken",
+    "config-install-subscribe-fail": "Het is niet mogelijk te abonneren op mediawiki-announce: $1",
+    "config-install-subscribe-notpossible": "cURL is niet geïnstalleerd en <code>allow_url_fopen</code> is niet beschikbaar.",
+    "config-install-mainpage": "Hoofdpagina aanmaken met standaard inhoud",
+    "config-install-extension-tables": "Tabellen voor ingeschakelde uitbreidingen worden aangemaakt",
+    "config-install-mainpage-failed": "Het was niet mogelijk de hoofdpagina in te voegen: $1",
+    "config-install-done": "'''Gefeliciteerd!'''\nU hebt MediaWiki met geïnstalleerd.\n\nHet installatieprogramma heeft het bestand <code>LocalSettings.php</code> aangemaakt.\nDit bevat al uw instellingen.\n\nU moet het bestand downloaden en in de hoofdmap van uw wiki-installatie plaatsten; in dezelfde map als index.php.\nDe download moet u automatisch zijn aangeboden.\n\nAls de download niet is aangeboden of als u de download hebt geannuleerd, dan kunt u de download opnieuw starten door op de onderstaande koppeling te klikken:\n\n$3\n\n'''Let op''': als u dit niet nu doet, dan het is bestand als u later de installatieprocedure afsluit zonder het bestand te downloaden niet meer beschikbaar.\n\nNa het plaatsen van het bestand met instellingen kunt u '''[$2 uw wiki betreden]'''.",
+    "config-download-localsettings": "<code>LocalSettings.php</code> downloaden",
+    "config-help": "hulp",
+    "config-nofile": "Het bestand \"$1\" is niet gevonden. Is het verwijderd?",
+    "config-extension-link": "Weet u dat u [//www.mediawiki.org/wiki/Manual:Extensions uitbreidingen] kunt gebruiken voor uw wiki?\nU kunt [//www.mediawiki.org/wiki/Category:Extensions_by_category uitbreidingen op categorie] bekijken of ga naar de [//www.mediawiki.org/wiki/Extension_Matrix Uitbreidingenmatrix] om de volledige lijst met uitbreidingen te bekijken.",
+    "mainpagetext": "'''De installatie van MediaWiki is geslaagd.'''",
+    "mainpagedocfooter": "Raadpleeg de [//meta.wikimedia.org/wiki/NL_Help:Inhoudsopgave handleiding] voor informatie over het gebruik van de wikisoftware.\n\n== Meer hulp over MediaWiki ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lijst met instellingen]\n* [//www.mediawiki.org/wiki/Manual:FAQ Veelgestelde vragen (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailinglijst voor aankondigingen van nieuwe versies]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Maak MediaWiki beschikbaar in uw taal]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/nn.json b/includes/installer/i18n/nn.json
new file mode 100644 (file)
index 0000000..9940723
--- /dev/null
@@ -0,0 +1,41 @@
+{
+    "@metadata": {
+        "authors": [
+            "Harald Khan",
+            "Nghtwlkr"
+        ]
+    },
+    "config-your-language": "Språket ditt:",
+    "config-wiki-language": "Wikispråk:",
+    "config-back": "← Attende",
+    "config-continue": "Hald fram →",
+    "config-page-language": "Språk",
+    "config-memory-raised": "PHPs <code>memory_limit</code> er $1, auka til $2.",
+    "config-memory-bad": "'''Advarsel:''' PHPs <code>memory_limit</code> er $1.\nDette er sannsynlegvis for lågt.\nInstallasjonen kan mislukkast!",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] er innstallert",
+    "config-apc": "[http://www.php.net/apc APC] er innstallert",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] er installert",
+    "config-db-name": "Databasenamn:",
+    "config-db-username": "Databasebrukarnamn:",
+    "config-db-password": "Databasepassord:",
+    "config-db-charset": "Databaseteiknsett",
+    "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 bakoverkompatibel UTF-8",
+    "config-mysql-old": "MySQL $1 eller seinare krevst, du har $2.",
+    "config-db-port": "Databaseport:",
+    "config-db-schema": "Skjema for MediaWiki",
+    "config-header-mysql": "MySQL-innstillingar",
+    "config-header-postgres": "PostgreSQL-innstillingar",
+    "config-header-sqlite": "SQLite-innstillingar",
+    "config-header-oracle": "Oracle-innstillingar",
+    "config-invalid-db-type": "Ugyldig databasetype",
+    "config-invalid-db-name": "Ugyldig databasenamn «$1».\nBerre bruk ASCII-bokstavar (a-z, A-Z), tal (0-9) og undestrekar (_).",
+    "config-invalid-db-prefix": "Ugyldig databaseprefiks «$1».\nBerre bruk ASCII-bokstavar (a-z, A-Z), tal (0-9) og undestrekar (_).",
+    "config-invalid-schema": "Ugyldig skjema for MediaWiki «$1».\nBerre bruk ASCII-bokstavar (a-z, A-Z), tal (0-9) og undestrekar (_).",
+    "config-postgres-old": "PostgreSQL $1 eller seinare krevst, du har $2.",
+    "config-email-settings": "E-postinnstillingar",
+    "config-logo": "Logo-URL:",
+    "mainpagetext": "'''MediaWiki er no installert.'''",
+    "mainpagedocfooter": "Sjå [//meta.wikimedia.org/wiki/Help:Contents brukarmanualen] for informasjon om bruk og oppsettshjelp for wikiprogramvara.\n\n==Kome i gang==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Liste over oppsettsinnstillingar]\n* [//www.mediawiki.org/wiki/Manual:FAQ Spørsmål og svar om MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-postliste med informasjon om nye MediaWiki-versjonar]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/no.json b/includes/installer/i18n/no.json
new file mode 100644 (file)
index 0000000..bb9e376
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki-programvaren er nå installert.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/oc.json b/includes/installer/i18n/oc.json
new file mode 100644 (file)
index 0000000..f4f088d
--- /dev/null
@@ -0,0 +1,61 @@
+{
+    "@metadata": {
+        "authors": [
+            "Cedric31"
+        ]
+    },
+    "config-desc": "Lo programa d’installacion de MediaWiki",
+    "config-title": "Installacion de MediaWiki $1",
+    "config-information": "Informacions",
+    "config-localsettings-key": "Clau de mesa a jorn :",
+    "config-localsettings-badkey": "La clau qu'avètz provesida es incorrècta",
+    "config-session-error": "Error al moment de l'aviada de la sesilha : $1",
+    "config-your-language": "Vòstra lenga :",
+    "config-wiki-language": "Lenga del wiki :",
+    "config-back": "← Retorn",
+    "config-continue": "Contunhar →",
+    "config-page-language": "Lenga",
+    "config-page-welcome": "Benvenguda sus MediaWiki !",
+    "config-page-dbconnect": "Se connectar a la banca de donadas",
+    "config-page-dbsettings": "Paramètres de la banca de donadas",
+    "config-page-name": "Nom",
+    "config-page-options": "Opcions",
+    "config-page-install": "Installar",
+    "config-page-complete": "Acabat !",
+    "config-page-restart": "Reaviar l’installacion",
+    "config-page-readme": "Legissètz-me",
+    "config-page-releasenotes": "Nòtas de version",
+    "config-page-copying": "Còpia",
+    "config-page-upgradedoc": "Mesa a jorn",
+    "config-page-existingwiki": "Wiki existent",
+    "config-restart": "Òc, lo reaviar",
+    "config-env-php": "PHP $1 es installat.",
+    "config-db-host-oracle": "Nom TNS de la banca de donadas :",
+    "config-db-wiki-settings": "Identificar aqueste wiki",
+    "config-db-name": "Nom de la banca de donadas :",
+    "config-db-name-oracle": "Esquèma de banca de donadas :",
+    "config-db-install-account": "Compte d'utilizaire per l'installacion",
+    "config-db-username": "Nom d'utilizaire de la banca de donadas :",
+    "config-db-password": "Senhal de la banca de donadas :",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binari",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 retrocompatible UTF-8",
+    "config-db-port": "Pòrt de la banca de donadas :",
+    "config-db-schema": "Esquèma per MediaWiki",
+    "config-header-mysql": "Paramètres de MySQL",
+    "config-header-postgres": "Paramètres de PostgreSQL",
+    "config-header-sqlite": "Paramètres de SQLite",
+    "config-header-oracle": "Paramètres d’Oracle",
+    "config-mysql-engine": "Motor d'emmagazinatge :",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-binary": "Binari",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "Nom del wiki :",
+    "config-ns-generic": "Projècte",
+    "config-ns-other-default": "MonWiki",
+    "config-admin-name": "Vòstre nom :",
+    "config-admin-password": "Senhal :",
+    "mainpagetext": "'''MediaWiki es estat installat amb succès.'''",
+    "mainpagedocfooter": "Consultatz lo [//meta.wikimedia.org/wiki/Ajuda:Contengut Guida de l'utilizaire] per mai d'entresenhas sus l'utilizacion d'aqueste logicial.\n\n== Començar amb MediaWiki ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista dels paramètres de configuracion]\n* [//www.mediawiki.org/wiki/Manual:FAQ/fr FAQ MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussions de las parucions de MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/or.json b/includes/installer/i18n/or.json
new file mode 100644 (file)
index 0000000..e945ace
--- /dev/null
@@ -0,0 +1,13 @@
+{
+    "@metadata": {
+        "authors": [
+            "Jnanaranjan Sahu"
+        ]
+    },
+    "config-back": "← ପଛକୁ",
+    "config-continue": "ଚାଲୁରଖିବେ →",
+    "config-page-language": "ଭାଷା",
+    "config-page-welcome": "ମେଡିଆଉଇକିକୁ ଆପଣଙ୍କୁ ସ୍ଵାଗତ",
+    "config-page-name": "ନାମ",
+    "config-page-options": "ପସନ୍ଦସମୂହ"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/os.json b/includes/installer/i18n/os.json
new file mode 100644 (file)
index 0000000..f8dc150
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Amikeco"
+        ]
+    },
+    "config-page-language": "Æвзаг",
+    "mainpagetext": "'''Вики-скрипт «MediaWiki» æнтыстджынæй æвæрд æрцыд.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/pa.json b/includes/installer/i18n/pa.json
new file mode 100644 (file)
index 0000000..db646cb
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''ਮੀਡਿਆਵਿਕਿ ਠੀਕ ਤਰ੍ਹਾਂ ਇੰਸਟਾਲ ਹੋ ਗਿਆ ਹੈ।'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/pam.json b/includes/installer/i18n/pam.json
new file mode 100644 (file)
index 0000000..7383ed4
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Melaus ing pamipalyari ning MediaWiki.'''",
+    "mainpagedocfooter": "Basan me ing [//meta.wikimedia.org/wiki/Help:Contents User's Guide] para king impormasiun keng pamangamit ning wiki software.\n\n== Pamagumpisa ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/pcd.json b/includes/installer/i18n/pcd.json
new file mode 100644 (file)
index 0000000..9927354
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki o té instalé aveuc victoère.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/pdc.json b/includes/installer/i18n/pdc.json
new file mode 100644 (file)
index 0000000..e653a6c
--- /dev/null
@@ -0,0 +1,13 @@
+{
+    "@metadata": {
+        "authors": [
+            "Xqt"
+        ]
+    },
+    "config-continue": "Weider →",
+    "config-page-language": "Schprooch",
+    "config-admin-password": "Paesswatt:",
+    "config-install-step-done": "geduh",
+    "config-help": "Hilf",
+    "mainpagedocfooter": "Hilf fer's Yuuse unn Konfiguriere vun de Wiki-Software kansch finne im [//meta.wikimedia.org/wiki/Help:Contents Handbuch fer Yuuser].\n\n== Hilf zum Schtaerte ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lischt vun Gnepp zum Konfiguriere]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Eposchde-Lischt fer neie MediaWiki-Versione]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/pl.json b/includes/installer/i18n/pl.json
new file mode 100644 (file)
index 0000000..ecfaa43
--- /dev/null
@@ -0,0 +1,314 @@
+{
+    "@metadata": {
+        "authors": [
+            "Beau",
+            "BeginaFelicysym",
+            "Chrumps",
+            "Holek",
+            "Matma Rex",
+            "Michał Roszka",
+            "Saper",
+            "Sp5uhe",
+            "Woytecr",
+            "아라"
+        ]
+    },
+    "config-desc": "Instalator MediaWiki",
+    "config-title": "Instalacja MediaWiki $1",
+    "config-information": "Informacja",
+    "config-localsettings-upgrade": "Plik <code>LocalSettings.php</code> istnieje.\nAby oprogramowanie zostało zaktualizowane musisz wstawić wartość <code>$wgUpgradeKey</code> w poniższe pole.\nOdnajdziesz ją w <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Wykryto obecność pliku <code>LocalSettings.php</code>.\nAktualizację należy wykonać poprzez uruchomienie <code>update.php</code>",
+    "config-localsettings-key": "Klucz aktualizacji",
+    "config-localsettings-badkey": "Podany klucz jest nieprawidłowy",
+    "config-upgrade-key-missing": "Wykryto zainstalowane wcześniej MediaWiki.\nJeśli chcesz je zaktualizować dodaj na koniec pliku <code>LocalSettings.php</code> poniższą linię tekstu.\n\n$1",
+    "config-localsettings-incomplete": "Istniejący plik <code>LocalSettings.php</code> wygląda na niekompletny.\nBrak wartości zmiennej $1.\nZmień plik <code>LocalSettings.php</code>, tak by zawierał deklarację wartości tej zmiennej, a następnie kliknij „{{int:Config-continue}}”.",
+    "config-localsettings-connection-error": "Wystąpił błąd podczas łączenia z bazą danych z wykorzystaniem danych z <code>LocalSettings.php</code> lub <code>AdminSettings.php</code>.\nPopraw ustawienia i spróbuj ponownie.\n\n$1",
+    "config-session-error": "Błąd uruchomienia sesji – $1",
+    "config-session-expired": "Wygląda na to, że Twoja sesja wygasła.\nCzas życia sesji został skonfigurowany na $1.\nMożesz go wydłużyć zmieniając <code>session.gc_maxlifetime</code> w pliku php.ini.\nUruchom ponownie proces instalacji.",
+    "config-no-session": "Dane sesji zostały utracone.\nSprawdź plik php.ini i upewnij się, że <code>session.save_path</code> wskazuje na odpowiedni katalog.",
+    "config-your-language": "Język",
+    "config-your-language-help": "Wybierz język używany podczas procesu instalacji.",
+    "config-wiki-language": "Język wiki",
+    "config-wiki-language-help": "Wybierz język, w którym będzie tworzona większość treści wiki",
+    "config-back": "← Wstecz",
+    "config-continue": "Dalej →",
+    "config-page-language": "Język",
+    "config-page-welcome": "Witamy w MediaWiki!",
+    "config-page-dbconnect": "Połączenie z bazą danych",
+    "config-page-upgrade": "Uaktualnienie istniejącej instalacji",
+    "config-page-dbsettings": "Ustawienia bazy danych",
+    "config-page-name": "Nazwa",
+    "config-page-options": "Opcje",
+    "config-page-install": "Instaluj",
+    "config-page-complete": "Zakończono!",
+    "config-page-restart": "Rozpoczęcie instalacji od nowa",
+    "config-page-readme": "Podstawowe informacje",
+    "config-page-releasenotes": "Informacje o wersji",
+    "config-page-copying": "Kopiowanie",
+    "config-page-upgradedoc": "Uaktualnienie",
+    "config-page-existingwiki": "Istniejąca wiki",
+    "config-help-restart": "Czy chcesz usunąć wszystkie zapisane dane i uruchomić ponownie proces instalacji?",
+    "config-restart": "Tak, zacznij od nowa",
+    "config-welcome": "=== Sprawdzenie środowiska instalacji ===\nTeraz zostaną wykonane podstawowe testy sprawdzające czy to środowisko jest odpowiednie dla instalacji MediaWiki.\nJeśli potrzebujesz pomocy podczas instalacji, załącz wyniki tych testów.",
+    "config-copyright": "=== Prawa autorskie i warunki użytkowania ===\n\n$1\n\nTo oprogramowanie jest wolne; możesz je rozprowadzać dalej i modyfikować zgodnie z warunkami licencji GNU General Public License opublikowanej przez Free Software Foundation w wersji 2 tej licencji lub (według Twojego wyboru) którejś z późniejszych jej wersji.\n\nNiniejsze oprogramowanie jest rozpowszechniane w nadziei, że będzie użyteczne, ale '''bez żadnej gwarancji'''; nawet bez domniemanej gwarancji '''handlowej''' lub '''przydatności do określonego celu'''.\nZobacz treść licencji GNU General Public License, aby uzyskać więcej szczegółów.\n\nRazem z oprogramowaniem powinieneś otrzymać <doclink href=Copying>kopię licencji GNU General Public License</doclink>. Jeśli jej nie otrzymałeś, napisz do Free Software Foundation, Inc, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. lub [http://www.gnu.org/copyleft/gpl.html przeczytaj ją online].",
+    "config-sidebar": "* [//www.mediawiki.org Strona domowa MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents Podręcznik użytkownika]\n* [//www.mediawiki.org/wiki/Manual:Contents Podręcznik administratora]\n* [//www.mediawiki.org/wiki/Manual:FAQ Odpowiedzi na często zadawane pytania]\n----\n* <doclink href=Readme>Przeczytaj to</doclink>\n* <doclink href=ReleaseNotes>Informacje o tej wersji</doclink>\n* <doclink href=Copying>Kopiowanie</doclink>\n* <doclink href=UpgradeDoc>Aktualizacja</doclink>",
+    "config-env-good": "Środowisko oprogramowania zostało sprawdzone.\nMożesz teraz zainstalować MediaWiki.",
+    "config-env-bad": "Środowisko oprogramowania zostało sprawdzone.\nNie możesz zainstalować MediaWiki.",
+    "config-env-php": "Zainstalowane jest PHP w wersji $1.",
+    "config-env-php-toolow": "Zainstalowane jest PHP $1.\nJednak MediaWiki wymaga PHP $2 lub nowszego.",
+    "config-unicode-using-utf8": "Korzystanie z normalizacji Unicode utf8_normalize.so napisanej przez Brion Vibbera.",
+    "config-unicode-using-intl": "Korzystanie z [http://pecl.php.net/intl rozszerzenia intl PECL] do normalizacji Unicode.",
+    "config-unicode-pure-php-warning": "'''Uwaga!''' [http://pecl.php.net/intl Rozszerzenie intl PECL] do obsługi normalizacji Unicode nie jest dostępne. Użyta zostanie mało wydajna zwykła implementacja w PHP.\nJeśli prowadzisz stronę o dużym natężeniu ruchu, powinieneś zapoznać się z informacjami o [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalizacji Unicode].",
+    "config-unicode-update-warning": "'''Uwaga''' – zainstalowana wersja normalizacji Unicode korzysta z nieaktualnej biblioteki [http://site.icu-project.org/ projektu ICU].\nPowinieneś [//www.mediawiki.org/wiki/Unicode_normalization_considerations zrobić aktualizację] jeśli chcesz korzystać w pełni z Unicode.",
+    "config-no-db": "Nie można odnaleźć właściwego sterownika bazy danych! Musisz zainstalować sterownik bazy danych dla PHP.\nMożna użyć następujących typów baz danych: $1.\n\nJeżeli korzystasz ze współdzielonego hostingu, zwróć się do administratora o zainstalowanie odpowiedniego sterownika bazy danych.\nJeśli skompilowałeś PHP samodzielnie, skonfiguruj je ponownie z włączonym klientem bazy danych, na przykład za pomocą polecenia <code>./configure --with-mysql</code>.\nJeśli zainstalowałeś PHP jako pakiet Debiana lub Ubuntu, musisz również zainstalować moduł php5-mysql.",
+    "config-outdated-sqlite": "'''Ostrzeżenie''': masz SQLite  $1, która jest niższa od minimalnej wymaganej wersji  $2 . SQLite będzie niedostępne.",
+    "config-no-fts3": "'''Uwaga''' – SQLite został skompilowany bez [//sqlite.org/fts3.html modułu FTS3] – funkcje wyszukiwania nie będą dostępne.",
+    "config-register-globals": "'''Uwaga –  w konfiguracji PHP włączona jest opcja <code>[http://php.net/register_globals register_globals]</code>.'''\n'''Jeśli możesz, wyłącz ją.'''\nMediaWiki będzie działać, ale Twój serwer może być narażony potencjalnymi lukami w zabezpieczeniach.",
+    "config-magic-quotes-runtime": "'''Błąd krytyczny – włączono [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]!'''\nTa opcja powoduje nieprzewidywalne uszkodzenia wprowadzanych danych.\nZainstalować lub korzystać z MediaWiki można pod warunkiem, że ta opcja jest wyłączona.",
+    "config-magic-quotes-sybase": "'''Błąd krytyczny – włączono [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]!'''\nTa opcja powoduje nieprzewidywalne uszkodzenia wprowadzanych danych.\nZainstalować lub korzystać z MediaWiki można pod warunkiem, że ta opcja jest wyłączona.",
+    "config-mbstring": "'''Błąd krytyczny – włączono [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]!'''\nTa opcja powoduje błędy i może wywołać nieprzewidywalne uszkodzenia wprowadzanych danych.\nZainstalować lub korzystać z MediaWiki można pod warunkiem, że ta opcja jest wyłączona.",
+    "config-ze1": "'''Błąd krytyczny – włączono [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]!'''\nTa opcja powoduje okropne błędy podczas korzystania z MediaWiki.\nZainstalować lub korzystać z MediaWiki można wyłącznie wtedy, gdy ta opcja jest wyłączona.",
+    "config-safe-mode": "'''Ostrzeżenie''' – uaktywniono [http://www.php.net/features.safe-mode tryb awaryjny] PHP.\nOpcja ta może powodować problemy, szczególnie w przypadku korzystania z przesyłania plików i używania znacznika <code>math</code>.",
+    "config-xml-bad": "Brak modułu XML dla PHP.\nMediaWiki wymaga funkcji z tego modułu i nie może działać w tej konfiguracji.\nJeśli korzystasz z Mandrake, zainstaluj pakiet php-xml.",
+    "config-pcre": "Wygląda na to, że brak modułu PCRE.\nMediaWiki do pracy wymaga funkcji obsługi wyrażeń regularnych kompatybilnej z Perlem.",
+    "config-pcre-no-utf8": "'''Błąd krytyczny''' – wydaje się, że moduł PCRE w PHP został skompilowany bez wsparcia dla UTF‐8.\nMediaWiki wymaga wsparcia dla UTF‐8 do prawidłowego działania.",
+    "config-memory-raised": "PHP <code>memory_limit</code> było ustawione na $1, zostanie zwiększone do $2.",
+    "config-memory-bad": "'''Uwaga:''' PHP <code>memory_limit</code> jest ustawione na $1.\nTo jest prawdopodobnie zbyt mało.\nInstalacja może się nie udać!",
+    "config-ctype": "''' Krytyczny ''': PHP musi być skompilowany z obsługą [http://www.php.net/manual/en/ctype.installation.php rozszerzenia Ctype].",
+    "config-xcache": "[Http://trac.lighttpd.net/xcache/ XCache] jest zainstalowany",
+    "config-apc": "[Http://www.php.net/apc APC] jest zainstalowany",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] jest zainstalowany",
+    "config-no-cache": "'''Uwaga:''' Pamięć podręczna dla kodu MediaWiki nie będzie uruchomiona., gdyż nie ma żadnego z następujących narzędzi: [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] lub [http://www.iis.net/download/WinCacheForPhp WinCache].",
+    "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.\nSprawdź 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 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.\nInstalacja została przerwana.",
+    "config-no-cli-uri": "''' Ostrzeżenie ''': nie wskazano --scriptpath,  użycie wartości domyślnej: <code>$1</code> .",
+    "config-using-server": "„<nowiki>$1</nowiki>“ jest adresem serwera, na którym instalowana jest wiki.",
+    "config-using-uri": "Wiki będzie zainstalowana pod adresem \"<nowiki>$1$2</nowiki>\".",
+    "config-uploads-not-safe": "'''Uwaga''' – domyślny katalog do którego zapisywane są przesyłane pliki <code>$1</code> jest podatny na wykonanie dowolnego skryptu.\nChociaż MediaWiki sprawdza wszystkie przesłane pliki pod kątem bezpieczeństwa, zaleca się jednak, aby [//www.mediawiki.org/wiki/Manual:Security#Upload_security zamknąć tę lukę w zabezpieczeniach] przed włączeniem przesyłania plików.",
+    "config-no-cli-uploads-check": "'''Ostrzeżenie:''' Katalog domyślny przesyłanych plików ( <code>$1</code> ) nie jest sprawdzona względem luki\n wykonania dowolnego skryptu podczas instalacji CLI w zabezpieczeniach.",
+    "config-brokenlibxml": "Twój system jest kombinacją wersji PHP i libxml2, które zawierają błędy mogące powodować ukryte uszkodzenia danych w MediaWiki i innych aplikacjach sieci web.\nWykonaj aktualizację PHP do wersji 5.2.9 lub późniejszej oraz libxml2 do wersji 2.7.3 lub późniejszej ([//bugs.php.net/bug.php?id=45996 błąd w PHP]).\nInstalacja 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>.\nUaktualnij do PHP 5.3.2 lub nowszego. Możesz również cofnąć wersję do PHP 5.3.0, aby naprawić ten błąd.\nInstalacja została przerwana.",
+    "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.\nJeś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.\n\nJeśli korzystasz ze współdzielonego hostingu, operator serwera powinien podać Ci prawidłową nazwę serwera w swojej dokumentacji.\n\nJeśli instalujesz oprogramowanie na serwerze Windowsowym i korzystasz z MySQL, użycie „localhost” może nie zadziałać jako nazwa hosta. Jeśli wystąpi ten problem użyj „127.0.0.1” jako lokalnego adresu IP.\n\nJeżeli korzystasz z PostgreSQL, pozostaw to pole puste, aby połączyć się poprzez gniazdo Unix‐a.",
+    "config-db-host-oracle": "Nazwa instancji bazy danych (TNS):",
+    "config-db-host-oracle-help": "Wprowadź prawidłową [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm nazwę połączenia lokalnego]. Plik „tnsnames.ora” musi być widoczny dla instalatora.<br />Jeśli używasz biblioteki klienckiej 10g lub nowszej możesz również skorzystać z metody nazw [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm łatwego łączenia].",
+    "config-db-wiki-settings": "Zidentyfikuj tę wiki",
+    "config-db-name": "Nazwa bazy danych",
+    "config-db-name-help": "Wybierz nazwę, która zidentyfikuje Twoją wiki.\nNie może ona zawierać spacji.\n\nJeśli korzystasz ze współdzielonego hostingu, dostawca usługi hostingowej może wymagać użycia konkretnej nazwy bazy danych lub pozwalać na tworzenie baz danych za pośrednictwem panelu użytkownika.",
+    "config-db-name-oracle": "Nazwa schematu bazy danych:",
+    "config-db-account-oracle-warn": "Bazę danych Oracle można przygotować do pracy z MediaWiki na trzy sposoby:\n\nMożesz utworzyć konto użytkownika bazy danych podczas instalacji MediaWiki. Wówczas należy podać nazwę i hasło użytkownika z rolą SYSDBA w celu użycia go przez instalator do utworzenia nowe konta użytkownika, z którego korzystać będzie MediaWiki.\n\nMożesz również skorzystać z konta użytkownika bazy danych utworzonego bezpośrednio w Oracle i wówczas wystarczy podać tylko nazwę i hasło tego użytkownika. Konto z rolą SYSDBA nie będzie potrzebne, jednak konto użytkownika powinno mieć uprawnienia do utworzenia obiektów w schemacie bazy danych. Możesz też podać dwa konta - konto dla instalatora, z pomocą którego zostaną obiekty w schemacie bazy danych i drugie konto, z którego będzie MediaWiki korzystać będzie do pracy.\n\nW podkatalogu \"maintenance/oracle\" znajduje się skrypt do tworzenia konta użytkownika. Korzystanie z konta użytkownika z ograniczonymi uprawnieniami spowoduje wyłączenie funkcji związanych z aktualizacją oprogramowania MediaWiki.",
+    "config-db-install-account": "Konto użytkownika dla instalatora",
+    "config-db-username": "Nazwa użytkownika bazy danych",
+    "config-db-password": "Hasło bazy danych",
+    "config-db-password-empty": "Wprowadź hasło dla nowego użytkownika bazy danych: $1.\nChoć istnieje możliwość tworzenia użytkowników bez hasła, nie jest to bezpieczne.",
+    "config-db-install-username": "Wprowadź nazwę użytkownika, który będzie używany do łączenia się z bazą danych podczas procesu instalacji.\nNie jest to nazwa konta MediaWiki, a użytkownika bazy danych.",
+    "config-db-install-password": "Wprowadź hasło, które będzie wykorzystywane do łączenia się z bazą danych w procesie instalacji.\nTo nie jest hasło konta MediaWiki, lecz hasło do bazy danych.",
+    "config-db-install-help": "Podaj nazwę użytkownika i jego hasło, które zostaną użyte do połączenia z bazą danych w czasie procesu instalacji.",
+    "config-db-account-lock": "Użyj tej samej nazwy użytkownika i hasła w czasie normalnej pracy.",
+    "config-db-wiki-account": "Konto użytkownika do normalnej pracy",
+    "config-db-wiki-help": "Wprowadź nazwę użytkownika i hasło, które będą używane do połączenia z bazą danych podczas normalnej pracy wiki.\nJeśli konto nie istnieje, a konto instalacji ma wystarczające uprawnienia, to zostanie utworzone konto użytkownika z minimalnymi uprawnieniami wymaganymi do działania wiki.",
+    "config-db-prefix": "Przedrostek tabel bazy danych",
+    "config-db-prefix-help": "Jeśli zachodzi potrzeba współdzielenia jednej bazy danych między wieloma wiki, lub między MediaWiki i inną aplikacją sieciową, można dodać przedrostek do wszystkich nazw tabel w celu uniknięcia konfliktów.\nNie należy używać spacji.\n\nTo pole zwykle pozostawiane jest puste.",
+    "config-db-charset": "Zestaw znaków bazy danych",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binarny",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 kompatybilny wstecz UTF-8",
+    "config-charset-help": "'''Ostrzeżenie:''' W przypadku użycia opcji '''UTF-8 zgodnego ze starszymi wersjami''' podczas korzystania z wersji MySQL nowszych niż 4.1 kopie zapasowe wykonane przy użyciu programu <code>mysqldump</code> będą bezużyteczne - wszystkie znaki inne niż ASCII zostaną zapisane nieprawidłowo.\n\nW '''trybie binarnym''', MediaWiki zapisuje tekst UTF-8 do bazy danych w polach binarnych.\nTo jest bardziej wydajne niż tryb UTF-8 w MySQL i pozwala na używanie pełnego zakresu znaków Unicode.\nW ''' trybie UTF-8''', MySQL będzie wiedzieć, w jakim zestawie znaków są dane i umożliwia ich prezentowanie i odpowiednią konwersję, ale nie pozwoli Ci przechowywać znaków spoza [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes podstawowej płaszczyzny wielojęzyczności].",
+    "config-mysql-old": "Wymagany jest MySQL $1 lub nowszy; korzystasz z $2.",
+    "config-db-port": "Numer portu TCP dla połączeń do bazy danych",
+    "config-db-schema": "Nazwa schematu bazy danych, z którego ma korzystać MediaWiki",
+    "config-db-schema-help": "Zaproponowana nazwa schematu jest odpowiednia dla większości sytuacji i przeważnie nie trzeba jej zmieniać.",
+    "config-pg-test-error": "Nie można połączyć się z bazą danych''' $1 ''': $2",
+    "config-sqlite-dir": "Katalog danych SQLite",
+    "config-sqlite-dir-help": "SQLite przechowuje wszystkie dane w pojedynczym pliku.\n\nWskazany katalog musi być dostępny do zapisu przez webserver podczas instalacji.\n\nPowinien '''nie''' być dostępny za z sieci web, dlatego nie umieszczamy ich tam, gdzie znajdują się pliki PHP.\n\nInstalator zapisze plik <code>.htaccess</code> obokniego, ale jeśli to zawiedzie, ktoś może uzyskać dostęp do nieprzetworzonej bazy danych.\nZawiera ona nieopracowane dane użytkownika (adresy e-mail, zahaszowane hasła) jak również usunięte wersje oraz inne dane o ograniczonym dostępie na wiki.\n\nWarto rozważyć umieszczenie w bazie danych zupełnie gdzie indziej, na przykład w <code>/var/lib/mediawiki/yourwiki</code> .",
+    "config-oracle-def-ts": "Domyślna przestrzeń tabel",
+    "config-oracle-temp-ts": "Przestrzeń tabel tymczasowych",
+    "config-support-info": "MediaWiki może współpracować z następującymi systemami baz danych:\n\n$1\n\nPoniżej wyświetlone są systemy baz danych gotowe do użycia. Jeżeli poniżej brakuje bazy danych, z której chcesz skorzystać, oznacza to, że brakuje odpowiedniego oprogramowania lub zostało ono niepoprawnie skonfigurowane. Powyżej znajdziesz odnośniki do dokumentacji, która pomoże w konfiguracji odpowiednich komponentów.",
+    "config-support-mysql": "* $1 jest bazą danych, na której rozwijane jest oprogramowanie MediaWiki. Ewentualne błędy w współpracy z bazą danych są odnajdowane i naprawiane dość szybko. ([http://www.php.net/manual/en/mysql.installation.php zobacz, jak skompilować PHP ze wsparciem dla MySQL])",
+    "config-support-postgres": "* $1 jest popularnym systemem baz danych, często stosowanym zamiast MySQL  ([http://www.php.net/manual/en/pgsql.installation.php Zobacz, jak skompilować PHP ze wsparciem dla PostgreSQL]). Z powodu możliwości wystąpienia drobnych błędów, nie jest zalecana do wymagających wdrożeń.",
+    "config-support-sqlite": "* $1 jest niewielkim systemem bazy danych, z którym MediaWiki bardzo dobrze współpracuje. ([http://www.php.net/manual/en/pdo.installation.php Jak skompilować PHP ze wsparciem dla SQLite], korzystając z PDO)",
+    "config-support-oracle": "* $1 jest komercyjną profesjonalną bazą danych. ([http://www.php.net/manual/en/oci8.installation.php Jak skompilować PHP ze wsparciem dla OCI8])",
+    "config-header-mysql": "Ustawienia MySQL",
+    "config-header-postgres": "Ustawienia PostgreSQL",
+    "config-header-sqlite": "Ustawienia SQLite",
+    "config-header-oracle": "Ustawienia Oracle",
+    "config-invalid-db-type": "Nieprawidłowy typ bazy danych",
+    "config-missing-db-name": "Należy wpisać wartość w polu „Nazwa bazy danych”",
+    "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”.\nUż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”.\nUż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”.\nUżywaj wyłącznie liter ASCII (a-z, A-Z), cyfr (0-9), podkreślenia (_) lub znaku odejmowania (-).",
+    "config-connection-error": "$1.\n\nSprawdź adres serwera, nazwę użytkownika i hasło, a następnie spróbuj ponownie.",
+    "config-invalid-schema": "Nieprawidłowa nazwa schematu dla MediaWiki „$1”.\nNazwa może zawierać wyłącznie liter ASCII (a-z, A-Z), cyfr (0-9) i podkreślenia (_).",
+    "config-db-sys-create-oracle": "Instalator może wykorzystać wyłącznie konto SYSDBA do tworzenia nowych kont użytkowników.",
+    "config-db-sys-user-exists-oracle": "Konto użytkownika „$1“ już istnieje. SYSDBA można użyć tylko do utworzenia nowego konta!",
+    "config-postgres-old": "Korzystasz z wersji $2 oprogramowania PostgreSQL, a potrzebna jest wersja co najmniej $1.",
+    "config-sqlite-name-help": "Wybierz nazwę, która będzie identyfikować Twoją wiki.\nNie wolno używać spacji ani myślników.\nZostanie ona użyta jako nazwa pliku danych SQLite.",
+    "config-sqlite-parent-unwritable-group": "Nie można utworzyć katalogu danych <code><nowiki>$1</nowiki></code> , ponieważ katalog nadrzędny <code><nowiki>$2</nowiki></code> nie jest dostępny do zapisu przez webserwer.\n\nInstalator nie może określić, jako kttóry użytkownik działa webserwer.\nZezwól by katalog <code><nowiki>$3</nowiki></code> był dostępny do zapisu przez niego, aby przejść dalej.\nW systemie Unix/Linux wykonaj:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Nie można utworzyć katalogu danych <code><nowiki>$1</nowiki></code> , ponieważ katalog nadrzędny <code><nowiki>$2</nowiki></code> nie jest dostępny do zapisu przez webserwer.\n\nInstalator nie może określić, jako kttóry użytkownik działa webserwer.\nZezwól by katalog <code><nowiki>$3</nowiki></code> był globalnie modyfikowalny przez niego (i innych!) aby przejść dalej.\nW systemie Unix/Linux wykonaj:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Błąd podczas tworzenia katalogu dla danych „$1”.\nSprawdź lokalizację i spróbuj ponownie.",
+    "config-sqlite-dir-unwritable": "Nie można zapisać do katalogu „$1”.\nZmień uprawnienia dostępu do katalogu tak, aby serwer WWW mógł pisać do niego, a następnie spróbuj ponownie.",
+    "config-sqlite-connection-error": "$1.\n\nSprawdź katalog danych oraz nazwę bazy danych, a następnie spróbuj ponownie.",
+    "config-sqlite-readonly": "Plik <code>$1</code> nie jest zapisywalny.",
+    "config-sqlite-cant-create-db": "Nie można utworzyć pliku bazy danych <code>$1</code>.",
+    "config-sqlite-fts3-downgrade": "Brak wsparcia FTS3 dla PHP. Tabele zostały cofnięte",
+    "config-can-upgrade": "W bazie danych są już tabele MediaWiki.\nAby uaktualnić je do MediaWiki $1, kliknij '''Dalej'''.",
+    "config-upgrade-done": "Uaktualnienie kompletne.\n\nMożna teraz [ $1  rozpocząć korzystanie z wiki].\n\nJeśli chcesz ponownie wygenerować plik <code>LocalSettings.php</code>, kliknij przycisk poniżej.\nJest to '''nie zalecane''', chyba że występują problemy z twoją wiki.",
+    "config-upgrade-done-no-regenerate": "Aktualizacja zakończona.\n\nMożesz wreszcie [$1 zacząć korzystać ze swojej wiki].",
+    "config-regenerate": "Ponowne generowanie LocalSettings.php →",
+    "config-show-table-status": "Zapytanie „<code>SHOW TABLE STATUS</code>” nie powiodło się!",
+    "config-unknown-collation": "'''Uwaga''' – bazy danych używa nierozpoznanej metody porównywania.",
+    "config-db-web-account": "Konto bazy danych dla dostępu przez WWW",
+    "config-db-web-help": "Wybierz nazwę użytkownika i hasło, z których korzystać będzie serwer WWW do łączenia się z serwerem baz danych, podczas zwykłej pracy z wiki.",
+    "config-db-web-account-same": "Użyj tego samego konta, co dla instalacji",
+    "config-db-web-create": "Utwórz konto, jeśli jeszcze nie istnieje",
+    "config-db-web-no-create-privs": "Konto podane do wykonania instalacji nie ma wystarczających uprawnień, aby utworzyć nowe konto.\nKonto, które wskazałeś tutaj musi już istnieć.",
+    "config-mysql-engine": "Silnik przechowywania",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''Ostrzeżenie''': wybrano MyISIAM jako silnik  składowania danych MySQL, co nie jest zalecane do użytku w MediaWiki, ponieważ:\n * ledwo obsługuje współbieżnośći ze względu na blokowanie tabel\n * jest bardziej podatna na uszkodzenie niż inne silniki\n * kod źródłowy MediaWiki nie zawsze obsługuje MyISAM tak, jak powinien\n\nJeśli instalacja MySQL obsługuje InnoDB, jest wysoce zalecane, by to je wybrać.\nJeś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ż:\n* słabo obsługuje współbieżność z powodu blokowania tabel\n* jest bardziej skłonny do uszkodzeń niż inne silniki\n* kod MediaWiki nie zawsze traktuje MyISAM jak powinien\n\nTwoja 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.\n\n'''MyISAM''' może być szybsze w instalacjach pojedynczego użytkownika lub tylko do odczytu.\nBazy danych MyISAM mają tendencję do ulegania uszkodzeniom częściej niż bazy InnoDB.",
+    "config-mysql-charset": "Zestaw znaków bazy danych",
+    "config-mysql-binary": "binarny",
+    "config-mysql-utf8": "UTF‐8",
+    "config-mysql-charset-help": "W '''trybie binarnym''', MediaWiki zapisuje tekst UTF-8 do bazy danych w polach binarnych.\nJest on bardziej wydajny niż tryb UTF-8 w MySQL i pozwala na używanie znaków pełnego zakresu Unicode.\n\nW '''trybie UTF-8''', MySQL będzie znać zestaw znaków w jakim zakodowano dane, można też przedstawić i przekonwertuj je odpowiednio, ale nie pozwoli Ci przechowywać znaków spoza [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes podstawowej płaszczyzny wielojęzyczności].",
+    "config-site-name": "Nazwa wiki",
+    "config-site-name-help": "Ten napis pojawi się w pasku tytułowym przeglądarki oraz w różnych innych miejscach.",
+    "config-site-name-blank": "Wprowadź nazwę witryny.",
+    "config-project-namespace": "Przestrzeń nazw projektu",
+    "config-ns-generic": "Projekt",
+    "config-ns-site-name": "Taka sama jak nazwa wiki $1",
+    "config-ns-other": "Inna (należy określić)",
+    "config-ns-other-default": "MojaWiki",
+    "config-project-namespace-help": "Według przykładu Wikipedii wiele wiki przechowuje swoje strony zasad oddzielnie od stron z zawartością, w \"'''przestrzeni nazw projektu'''\".\nWszystkie tytuły stron w tej przestrzeni nazw zaczynają się od pewnego przedrostka, który można tutaj określić.\nTradycyjnie ten przedrostek wywodzi się od nazwy wiki, ale nie może zawierać pewnych znaków przestankowych takich jak \"#\" lub \":\".",
+    "config-ns-invalid": "Podana przestrzeń nazw „<nowiki>$1</nowiki>” jest nieprawidłowa.\nPodaj inną przestrzeń nazw projektu.",
+    "config-ns-conflict": "Określona przestrzeń nazw \"<nowiki>$1</nowiki>\" powoduje konflikt z domyślną przestrzenią nazw MediaWiki.\nWskaż inną przestrzeń nazw projektu.",
+    "config-admin-box": "Konto administratora",
+    "config-admin-name": "Administrator",
+    "config-admin-password": "Hasło",
+    "config-admin-password-confirm": "Hasło powtórnie",
+    "config-admin-help": "Wprowadź preferowaną nazwę użytkownika, na przykład „Jan Kowalski”.\nTej nazwy będziesz używać do logowania się do wiki.",
+    "config-admin-name-blank": "Wpisz nazwę użytkownika, który będzie administratorem.",
+    "config-admin-name-invalid": "Podana nazwa użytkownika „<nowiki>$1</nowiki>” jest nieprawidłowa.\nPodaj inną nazwę.",
+    "config-admin-password-blank": "Wprowadź hasło dla konta administratora.",
+    "config-admin-password-same": "Hasło nie może być takie samo jak nazwa użytkownika.",
+    "config-admin-password-mismatch": "Wprowadzone dwa hasła różnią się między sobą.",
+    "config-admin-email": "Adres e‐mail",
+    "config-admin-email-help": "Wpisz adres e‐mail, aby mieć możliwość odbierania e‐maili od innych użytkowników wiki, zresetowania hasła oraz otrzymywania powiadomień o zmianach na stronach z listy obserwowanych. Możesz pozostawić to pole niewypełnione.",
+    "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ł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.\nPowinieneś 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.\nProszę podać adres e-mail, jeśli chcesz subskrybować listę wysyłkową.",
+    "config-almost-done": "To już prawie koniec!\nMożesz pominąć pozostałe czynności konfiguracyjne i zainstalować wiki.",
+    "config-optional-continue": "Zadaj mi więcej pytań.",
+    "config-optional-skip": "Jestem już znudzony, po prostu zainstaluj wiki.",
+    "config-profile": "Profil uprawnień użytkowników",
+    "config-profile-wiki": "Otwarte wiki",
+    "config-profile-no-anon": "Wymagane utworzenie konta",
+    "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.\nW MediaWiki, można łatwo sprawdzić ostatnie zmiany i wycofać szkody, które są spowodowane przez naiwnych lub złośliwych użytkowników.\n\nJednakż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.\n\nUstawienie '''{{int:config-profile-wiki}}''' pozwala każdemu na edycję, nawet bez logowania się.\nWiki z '''{{int:config-profile-no-anon}}''' zawiera dodatkowe możliwości ale może powstrzymywać potencjalnych edytorów.\n\nScenariusz '''{{int:config-profile-fishbowl}}''' umożliwia zatwierdzonym użytkownikom edycję, ale wyświetlanie stron jest powszechnie dostępne, włącznie z historią.\nUstawienie '''{{int:config-profile-private}}'' ' pozwala na wyświetlanie stron tylko zatwierdzonym użytkownikom, ta sama grupa może je edytować.\n\nBardziej 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",
+    "config-license-cc-by": "Creative Commons – za podaniem autora",
+    "config-license-cc-by-nc-sa": "Creative Commons – za uznaniem autora, bez użycia komercyjnego, na tych samych zasadach",
+    "config-license-cc-0": "Creative Commons – zero (domena publiczna)",
+    "config-license-gfdl": "GNU licencja wolnej dokumentacji 1.3 lub nowsza",
+    "config-license-pd": "Domena publiczna",
+    "config-license-cc-choose": "Wybierz własną licencję Creative Commons",
+    "config-license-help": "Wiele publicznych wiki umieszcza wszystkie dopisane treści na [http://freedomdefined.org/Definition wolnej licencji].\nTo pomaga tworzyć poczucie wspólnoty i zachęca do długoterminowego wkładu.\nNie jest to zazwyczaj konieczne w prywatnych lub firmowych wiki.\n\nJeśli chcesz móc użyć tekstu z Wikipedii i chcesz Wikipedia mogła zaakceptować tekst skopiowany z twojej wiki, należy wybrać '''Creative Commons Attribution Share Alike'''.\n\nWikipedia używała poprzednio GNU Free Documentation License.\nGFDL jest poprawną licencję, ale trudno ją zrozumieć.\nTrudno także ponowne użyć zawartości na licencji GFDL.",
+    "config-email-settings": "Ustawienia e-maili",
+    "config-enable-email": "Włącz wychodzące wiadomości e–mail",
+    "config-enable-email-help": "Jeśli chcesz, aby działał e-mail, [http://www.php.net/manual/en/mail.configuration.php Ustawienia poczty PHP] muszą być poprawnie wprowadzone.\nJeśli nie chcesz jakichś funkcji poczty e-mail, można je wyłączyć tutaj.",
+    "config-email-user": "Włącz możliwość przesyłania e‐maili pomiędzy użytkownikami",
+    "config-email-user-help": "Zezwalaj użytkownikom na wysyłanie wzajemnie e‐maili, jeśli będą mieć włączoną tę funkcję w swoich preferencjach.",
+    "config-email-usertalk": "Włącz powiadamianie o zmianach na stronie dyskusji użytkownika",
+    "config-email-usertalk-help": "Pozwól użytkownikom otrzymywać powiadomienia o zmianach na stronie dyskusji użytkownika, jeśli będą mieć włączoną tę funkcję w swoich preferencjach.",
+    "config-email-watchlist": "Włącz powiadomienie o zmianach stron obserwowanych",
+    "config-email-watchlist-help": "Pozwól użytkownikom otrzymywać powiadomienia o zmianach na stronach obserwowanych, jeśli będą mieć włączoną tę funkcję w swoich preferencjach.",
+    "config-email-auth": "Włącz uwierzytelnianie e‐mailem",
+    "config-email-auth-help": "Jeśli ta opcja jest włączona, użytkownicy będą musieli potwierdzić swoje adresy e-mail przy użyciu wysłanego do nich łącza, gdy będą je ustawiać lub zmieniać.\nTylko uwierzytelnione adresy e-mail mogą otrzymywać wiadomości od innych użytkowników lub mailowe powiadomienia o zmianach.\nUstawienie tej opcji jest'''zalecane''' na publicznych wiki ze względu na potencjalne nadużycia funkcji poczty e-mail.",
+    "config-email-sender": "Zwrotny adres e‐mail",
+    "config-email-sender-help": "Wprowadź adres e-mail używany jako adres zwrotny wiadomości wychodzących.\nTo tam będą wysyłane szturchnięcia.\nWiele serwerów poczty wymaga, by co najmniej część nazwy domeny była prawidłowa.",
+    "config-upload-settings": "Przesyłanie obrazków i plików",
+    "config-upload-enable": "Włącz przesyłanie plików na serwer",
+    "config-upload-help": "Przesyłanie plików potencjalnie wystawia serwer na zagrożenia.\nWięcej informacji na ten temat można znaleźć w [//www.mediawiki.org/wiki/Manual:Security sekcji zabezpieczeń] podręcznika.\n\nAby włączyć przesyłanie plików, zmień właściwości podkatalogu <code>images</code> katalogu głównego MediaWiki tak, aby serwer sieci web mógł zapisywać do niego.\nNastępnie włącz tę opcję.",
+    "config-upload-deleted": "Katalog dla usuniętych plików",
+    "config-upload-deleted-help": "Wybierz katalog, w którym będzie archiwum usuniętych plików.\nNajlepiej, aby nie był on dostępny z internetu.",
+    "config-logo": "Adres URL logo",
+    "config-logo-help": "Domyślny motyw MediaWiki zawiera miejsce na logo wielkości 135 x 160 pikseli powyżej menu na pasku bocznym.\nPrześlij obrazek o odpowiednim rozmiarze, a następnie wpisz jego URL tutaj.\n\nMożesz użyć <code>$wgStylePath</code> lub <code>$wgScriptPath</code> jeżeli twoje logo jest relatywne do tych ścieżek.\n\nJeś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].\nAby to zrobić, MediaWiki wymaga dostępu do internetu.\n\nAby uzyskać więcej informacji na temat tej funkcji, w tym instrukcje dotyczące sposobu ustawiania go na wiki innych niż Wikimedia Commons, sprawdź w [//mediawiki.org/wiki/Manual:$wgForeignFileRepos podręczniku].",
+    "config-cc-error": "Wybieranie licencji Creative Commons nie dało wyniku.\nWpisz nazwę licencji ręcznie.",
+    "config-cc-again": "Wybierz jeszcze raz...",
+    "config-cc-not-chosen": "Wybierz którą chcesz licencję Creative Commons i kliknij „Dalej”.",
+    "config-advanced-settings": "Konfiguracja zaawansowana",
+    "config-cache-options": "Ustawienia buforowania obiektów",
+    "config-cache-help": "Buforowanie obiekto jest używane aby przyspieszyć MediaWiki przez trzymanie w pamięci podręcznej często używanych danych.\nŚrednie oraz duże witryny są wysoce zachęcane by je włączyć, a małe witryny także dostrzegą korzyści.",
+    "config-cache-none": "Brak buforowania (wszystkie funkcje będą działać, ale mogą wystąpić kłopoty z wydajnością na dużych witrynach wiki)",
+    "config-cache-accel": "Buforowania obiektów PHP (APC, XCache lub WinCache)",
+    "config-cache-memcached": "Użyj Memcached (wymaga dodatkowej instalacji i konfiguracji)",
+    "config-memcached-servers": "Serwery Memcached:",
+    "config-memcached-help": "Lista adresów IP do wykorzystania przez Memcached.\nAdresy powinny być umieszczane po jednym w linii i określać również wykorzystywany port. Na przykład:\n 127.0.0.1:11211\n 192.168.1.25:1234",
+    "config-memcache-needservers": "Został wybrany Memcached jako typ pamięci podręcznej, ale nie określono żadnych serwerów.",
+    "config-memcache-badip": "Wprowadzono nieprawidłowy adres IP dla Memcached:  $1.",
+    "config-memcache-noport": "Nie określono portu dla serwera Memcached:  $1.\nJeśli nie znasz numeru portu, wartością domyślną jest 11211.",
+    "config-memcache-badport": "Numery portu Memcached powinny zawierać się pomiędzy $1 i $2.",
+    "config-extensions": "Rozszerzenia",
+    "config-extensions-help": "Rozszerzenia wyżej wymienione zostały wykryte w katalogu <code>./extensions</code>.\n\nMogą 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.\nPrzejdź do następnej strony.",
+    "config-install-begin": "Po naciśnięciu \"{{int:config-continue}}\", rozpocznie się instalacja MediaWiki.\nJeś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",
+    "config-install-database": "Konfigurowanie bazy danych",
+    "config-install-schema": "Tworzenie schematu",
+    "config-install-pg-schema-not-exist": "Schemat PostgreSQL nie istnieje.",
+    "config-install-pg-schema-failed": "Utworzenie tabel nie powiodło się.\nUpewnij się, że użytkownik „$1” może zapisywać do schematu „$2”.",
+    "config-install-pg-commit": "Zatwierdzanie zmian",
+    "config-install-pg-plpgsql": "Sprawdzanie języka PL/pgSQL",
+    "config-pg-no-plpgsql": "Musisz zainstalować język PL/pgSQL w bazie danych $1",
+    "config-pg-no-create-privs": "Konto, które zostało określone dla instalacji nie ma wystarczających uprawnień, aby utworzyć konto.",
+    "config-pg-not-in-role": "Konto określone dla użytkownika sieci już istnieje.\nKonto określone dla instalacji nie ma uprawnień administratora ani nie jest przynależy do roli użytkownika sieci web, więc nie można utworzyć obiektów stanowiących własność użytkownika sieci.\n\nMediaWiki wymaga obecnie, by tabele były własnością konta zwykłego użytkownika. Podaj inną nazwę konta użytkownika, lub kliknij przycisk \"Wstecz\" i podaj nazwę konta użytkownika instalatora, które posiada odpowiednie uprawnienia.",
+    "config-install-user": "Tworzenie użytkownika bazy danych",
+    "config-install-user-alreadyexists": "Konto użytkownika „$1“ już istnieje",
+    "config-install-user-create-failed": "Tworzenie użytkownika \"$1\" nie powiodło się: $2",
+    "config-install-user-grant-failed": "Przyznanie uprawnień użytkownikowi „$1” nie powiodło się – $2",
+    "config-install-user-missing": "Nie istnieje konto użytkownika „$1“.",
+    "config-install-user-missing-create": "Określony użytkownik \"$1\" nie istnieje.\nKliknij poniższe pole wyboru „utwórz konto\" jeśli chcesz go utworzyć.",
+    "config-install-tables": "Tworzenie tabel",
+    "config-install-tables-exist": "'''Uwaga''' – wygląda na to, że tabele MediaWiki już istnieją.\nPomijam tworzenie tabel.",
+    "config-install-tables-failed": "'''Błąd''' – tworzenie tabeli nie powiodło się z powodu błędu – $1",
+    "config-install-interwiki": "Wypełnianie tabeli domyślnymi interwiki",
+    "config-install-interwiki-list": "Nie można odnaleźć pliku <code>interwiki.list</code>.",
+    "config-install-interwiki-exists": "'''Uwaga''' – wygląda na to, że tabela interwiki ma już jakieś wpisy.\nTworzenie domyślnej listy pominięto.",
+    "config-install-stats": "Inicjowanie statystyki",
+    "config-install-keys": "Generowanie tajnych kluczy",
+    "config-insecure-keys": "'''Ostrzeżenie:''' {{PLURAL:$2|Klucz bezpieczeństwa|Klucze bezpieczeństwa|Klucze bezpieczeństwa}} ($1) utworzone podczas instalacji {{PLURAL:$2|utworzony podczas instalacji nie jest|utworzone podczas instalacji nie są|utworzone podczas instalacji nie są}} w pełni bezpieczne. Być może warto wygenerować {{PLURAL:$2|własny klucz|własne klucze|własne klucze}}.",
+    "config-install-sysop": "Tworzenie konta administratora",
+    "config-install-subscribe-fail": "Nie można zapisać na listę „mediawiki-announce“ – $1",
+    "config-install-subscribe-notpossible": "cURL nie jest zainstalowany, więc allow_url_fopen nie jest dostępne.",
+    "config-install-mainpage": "Tworzenie strony głównej z domyślną zawartością",
+    "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!'''\nUdało Ci się zainstalować MediaWiki.\n\nInstalator wygenerował plik konfiguracyjny <code>LocalSettings.php</code>.\n\nMusisz go pobrać i umieścić w katalogu głównym Twojej instalacji wiki (tym samym katalogu co index.php). Pobieranie powinno zacząć się automatycznie.\n\nJeżeli pobieranie nie zostało zaproponowane lub jeśli użytkownik je anulował, można ponownie uruchomić pobranie klikając poniższe łącze:\n\n$3\n\n'''Uwaga''': Jeśli nie zrobisz tego teraz, wygenerowany plik konfiguracyjny nie będzie już dostępny po zakończeniu instalacji.\n\nPo 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]?\n\nMoż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.\n\n== Na początek ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings/pl Lista ustawień konfiguracyjnych]\n* [//www.mediawiki.org/wiki/Manual:FAQ/pl MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Komunikaty o nowych wersjach MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Przetłumacz MediaWiki na swój język]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/pms.json b/includes/installer/i18n/pms.json
new file mode 100644 (file)
index 0000000..e112561
--- /dev/null
@@ -0,0 +1,304 @@
+{
+    "@metadata": {
+        "authors": [
+            "Borichèt",
+            "Dragonòt",
+            "Krinkle",
+            "아라"
+        ]
+    },
+    "config-desc": "L'instalador për mediaWiki",
+    "config-title": "Anstalassion ëd MediaWiki $1",
+    "config-information": "Anformassion",
+    "config-localsettings-upgrade": "A l'é stàit trovà n'archivi <code>LocalSettings.php</code>.\nPër agiorné cost'anstalassion, ch'a anserissa ël valor ëd <code>$wgUpgradeKey</code> ant la casela sì-sota.\nA la trovrà an LocalSetting.php.",
+    "config-localsettings-cli-upgrade": "N'archivi <code>LocalSettings.php</code> a l'é stàit trovà.\nPër agiorné sta instalassion, për piasì fà anvece giré <code>update.php</code>",
+    "config-localsettings-key": "Ciav d'agiornament:",
+    "config-localsettings-badkey": "La ciav ch'it l'has dàit a l'é pa giusta.",
+    "config-upgrade-key-missing": "A l'é stàita trovà n'istalassion esistenta ëd MediaWiki.\nPër agiorné soa istalassion, për piasì ch'a buta la linia sì-sota al fond ëd sò <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "L'esistent <code>LocalSettings.php</code> a smija esse ancomplet.\nLa variàbil $1 a l'é nen ampostà.\nPër piasì, ch'a modìfica <code>LocalSettings.php</code> ëd fasson che costa variàbil a sia ampostà, e ch'a sgnaca «{{int:Config-continue}}».",
+    "config-localsettings-connection-error": "A l'é ancapitaje n'eror an colegand-se a la base ëd dàit an dovrand j'ampostassion specificà an <code>LocalSettings.php</code> o <code>AdminSettings.php</code>. Për piasì, ch'a coregia cost'ampostassion e ch'a preuva torna.\n\n$1",
+    "config-session-error": "Eror an fasend parte la session: $1",
+    "config-session-expired": "Ij sò dat ëd session a smijo scadù.\nLe session a son configurà për na durà ëd $1.\nA peul aumenté sòn an ampostand <code>session.gc_maxlifetime</code> an php.ini.\nCh'a anandia torna ël process d'instalassion.",
+    "config-no-session": "Ij sò dat ëd session a son përdù!\nCh'a contròla sò php.ini e ch'as sigura che <code>session.save_path</code> a sia ampostà ant ël dossié giust.",
+    "config-your-language": "Toa lenga:",
+    "config-your-language-help": "Selessioné na lenga da dovré durant ël process d'instalassion.",
+    "config-wiki-language": "Lenga dla Wiki:",
+    "config-wiki-language-help": "Selession-a la lenga dont la wiki a sarà prevalentement scrivùa.",
+    "config-back": "← André",
+    "config-continue": "Continua →",
+    "config-page-language": "Lenga",
+    "config-page-welcome": "Bin  ëvnù a MediaWiki!",
+    "config-page-dbconnect": "Coleghesse a la base ëd dàit",
+    "config-page-upgrade": "Agiorné l'instalassion esistenta",
+    "config-page-dbsettings": "Ampostassion dla base ëd dàit",
+    "config-page-name": "Nòm",
+    "config-page-options": "Opsion",
+    "config-page-install": "Instala",
+    "config-page-complete": "Completa!",
+    "config-page-restart": "Fé torna parte l'instalassion",
+    "config-page-readme": "Lesme",
+    "config-page-releasenotes": "Nòte ëd publicassion",
+    "config-page-copying": "Copié",
+    "config-page-upgradedoc": "Agiorné",
+    "config-page-existingwiki": "Wiki esistenta",
+    "config-help-restart": "Veul-lo scancelé tùit ij dat salvà ch'a l'ha anserì e anandié torna ël process d'instalassion?",
+    "config-restart": "É!, felo torna parte",
+    "config-welcome": "=== Contròj d'ambient ===\nDle verìfiche ëd base a son fàite për vëdde se st'ambient a va bin për l'instalassion ëd MediaWiki.\nS'a l'ha da manca d'agiut durant l'anstalassion, a dovrìa fornì j'arzultà dë sti contròj.",
+    "config-copyright": "=== Drit d'Autor e Condission ===\n\n$1\n\nCost-sì a l'é un programa lìber e a gràtis: a peul ridistribuilo e/o modifichelo sota le condission dla licensa pùblica general GNU com publicà da la Free Software Foundation; la version 2 dla Licensa, o (a toa sèrnìa) qualsëssìa version pi recenta.\n\nCost programa a l'é distribuì ant la speransa ch'a sia ùtil, ma '''sensa gnun-e garansìe'''; sensa gnanca la garansia implìssita ëd '''comersiabilità''' o '''d'esse adat a un but particolar'''.\n\nA dovrìa avèj arseivù <doclink href=Copying>na còpia ëd la licensa pùblica general GNU</doclink> ansema a sto programa; dësnò, ch'a scriva a la Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA opura [http://www.gnu.org/copyleft/gpl.html ch'a la lesa an linia].",
+    "config-sidebar": "* [//www.mediawiki.org Intrada MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents Guida dl'Utent]\n* [//www.mediawiki.org/wiki/Manual:Contents Guida dl'Aministrator]\n* [//www.mediawiki.org/wiki/Manual:FAQ Soens an ciamo]\n----\n* <doclink href=Readme>Ch'am lesa</doclink>\n* <doclink href=ReleaseNotes>Nòte ëd publicassion</doclink>\n* <doclink href=Copying>Còpia</doclink>\n* <doclink href=UpgradeDoc>Agiornament</doclink>",
+    "config-env-good": "L'ambient a l'é stàit controlà.\nIt peule instalé MediaWiki.",
+    "config-env-bad": "L'ambient a l'é stàit controlà.\nIt peule pa instalé MediaWiki.",
+    "config-env-php": "PHP $1 a l'é instalà.",
+    "config-env-php-toolow": "PHP $1 a l'é instalà.\nAnt tùit ij cas, MediaWiki a ciama PHP $2 o pi neuv.",
+    "config-unicode-using-utf8": "As deuvra utf8_normalize.so ëd Brion Vibber për la normalisassion Unicode.",
+    "config-unicode-using-intl": "As deuvra l'[http://pecl.php.net/intl estension intl PECL] për la normalisassion Unicode.",
+    "config-unicode-pure-php-warning": "'''Avis:''' L'[http://pecl.php.net/intl estension intl PECL] a l'é pa disponìbil për gestì la normalisassion Unicode, da già che l'implementassion an PHP pur a faliss për lentëssa.\nS'a gestiss un sit a àut tràfich, a dovrìa lese cheicòs an sla [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalisassion Unicode].",
+    "config-unicode-update-warning": "'''Avis:''' La version instalà dlë spassiador ëd normalisassion Unicode a deuvra na version veja ëd la librarìa dël [http://site.icu-project.org/ proget ICU].\nA dovrìa fé n'[//www.mediawiki.org/wiki/Unicode_normalization_considerations agiornament] s'a l'é anteressà a dovré Unicode.",
+    "config-no-db": "Impossìbil trové un pilòta ëd base ëd dàit bon! A dev instalé un pilòta ëd base ëd dàit për PHP.\nLe sòrt ëd database ch'a ven-o a son apogià: $1.\n\nS'a l'é ansima a 'n servissi partagià, ch'a ciama a sò fornidor ëd servissi d'instalé un pilòta ëd base ëd dàit compatìbil.\nS'a l'é compilasse PHP chiel-midem, ch'a lo configura torna con un client ëd base ëd dàit abilità, për esempi an dovrand <code>./configure --with-mysql</code>.\nS'a l'ha instalà PHP dai pachèt Debian o Ubuntu, antlora a dev ëdcò istalé ël mòdul php5-mysql.",
+    "config-outdated-sqlite": "'''Avis''': chiel a l'ha SQLite $1, che a l'é pi vej che la version mìnima dont a-i é damanca $2. SQLite a sarà pa disponìbil.",
+    "config-no-fts3": "'''Avis''': SQLite a l'é compilà sensa ël mòdul [//sqlite.org/fts3.html FTS3], le funsion d'arserca a saran pa disponìbij su cost motor.",
+    "config-register-globals": "'''Avis: L'opsion <code>[http://php.net/register_globals register_globals]</code> ëd PHP a l'é abilità.'''\n'''Ch'a la disabìlita s'a peul.'''\nMediaWiki a marcërà, ma sò servent a l'é espòst a 'd possìbij vunerabilità ëd sicurëssa.",
+    "config-magic-quotes-runtime": "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] a l'é ativ!'''\nCosta opsion a danegia ij dat d'intrada an manera pa prevedìbil.\nA peul pa instalé o dovré MediaWiki se st'opsion a l'é pa disabilità.",
+    "config-magic-quotes-sybase": "'''Fatal: [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] a l'é ativ!'''\nCosta opsion a danegia ij dat d'intrada an manera pa prevedìbil.\nA peul pa instalé o dovré MediaWiki se st'opsion a l'é pa disabilità.",
+    "config-mbstring": "'''Fatal: [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] a l'é ativ!'''\nCosta opsion a càusa d'eror e a peul danegié ij dat d'intrada an manera pa prevedìbil.\nA peul pa instalé o dovré MediaWiki se st'opsion a l'é pa disabilità.",
+    "config-ze1": "'''Fatal: [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] a l'é ativ!'''\nCosta opsion a càusa dij bigat afros con MediaWiki.\nA peul pa instalé o dovré MediaWiki se st'opsion a l'é pa disabilità.",
+    "config-safe-mode": "'''Avis:''' [http://www.php.net/features.safe-mode Safe mode] ëd PHP a l'é ativ.\nA peul causé ëd problema, dzortut s'as deuvro ël cariament d'archivi e ël manteniment ëd <code>math</code>.",
+    "config-xml-bad": "Mòdul XML ed PHP mancant.\nMediaWiki a l'ha da manca dle funsion an sto mòdul e a travajërà pa an costa configurassion.\nS'a fa giré mandrake, ch'a instala ël pachet php-xml.",
+    "config-pcre": "A smija che ël mòdul d'apògg PCRE a sia mancant.\nMediaWiki a l'ha da manca dle funsion d'espression regolar Perl-compatìbij për marcé.",
+    "config-pcre-no-utf8": "'''Fatal''': ël mòdul PCRE ëd PHP a smija esse compilà sensa l'apògg PCRE_UTF8.\nMediaWiki a ciama l'apògg d'UTF8 për marcé për da bin.",
+    "config-memory-raised": "<code>memory_limit</code> ëd PHP a l'é $1, aussà a $2.",
+    "config-memory-bad": "'''Avis:''' <code>memory_limit</code> ëd PHP a l'é $1.\nSossì a l'é probabilment tròp bass.\nL'instalassion a peul falì!",
+    "config-ctype": "'''Fatal''': PHP a dev esse compilà con l'apògg për l'[http://www.php.net/manual/en/ctype.installation.php extension Ctype].",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] a l'é instalà",
+    "config-apc": "[http://www.php.net/apc APC] a l'é instalà",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache]  a l'é instalà",
+    "config-no-cache": "'''Avis:''' As treuva pa [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] o [http://www.iis.net/download/WinCacheForPhp WinCache]. Ël buté d'oget an memòria local a l'é pa abilità.",
+    "config-mod-security": "'''Avis''': Sò servent për l'aragnà a l'ha [http://modsecurity.org/ mod_security] abilità. Se mal configurà, a peul causé dij problema për MediaWiki o d'àutri programa ch'a përmëtto a j'utent dë spedì un contnù qualsëssìa.\nCh'a fasa arferiment a la [http://modsecurity.org/documentation/ mod_security documentassion] o ch'a contata l'echip ëd sò servissi s'a-j rivo dj'eror casuaj.",
+    "config-diff3-bad": "GNU diff3 pa trovà.",
+    "config-imagemagick": "Trovà ImageMagick: <code>$1</code>.\nLa miniaturisassion ëd figure a sarà abilità s'it abìlite le carie.",
+    "config-gd": "Trovà la librarìa gràfica antëgrà GD.\nLa miniaturisassion ëd figure a sarà abilità s'a abìlita ij cariament.",
+    "config-no-scaling": "As treuva pa la librarìa GD o ImageMagick.\nLa miniaturisassion ëd figure a sarà disabilità.",
+    "config-no-uri": "'''Eror:''' As peul pa determiné l'URI corenta.\nInstalassion abortìa.",
+    "config-no-cli-uri": "'''Avis''': pa gnun --scriptpath specificà, a sarà dovrà ël predefinì: <code>$1</code>.",
+    "config-using-server": "Utilisassion dël nòm ëd servent \"<nowiki>$1</nowiki>\".",
+    "config-using-uri": "Utilisassion ëd l'anliura ëd servent «<nowiki>$1$2</nowiki>».",
+    "config-uploads-not-safe": "'''Avis:''' Sò dossié stàndard për carié <code>$1</code> a l'é vulneràbil a l'esecussion ëd qualsëssìa senari.\nBele che MediaWiki a contròla j'aspet ëd sicurëssa ëd tùit j'archivi carià, a l'é motobin arcomandà ëd [//www.mediawiki.org/wiki/Manual:Security#Upload_security saré ës përtus ëd sicurëssa] prima d'abilité ij cariament.",
+    "config-no-cli-uploads-check": "'''Avis:''' Toa cartela predefinìa për j-amportassion (<code>$1</code>) a l'é nen controlà a propòsit ëd la vulnerabilità\nd'esecussion ëd senari arbitrari durant l'istalassion CLI.",
+    "config-brokenlibxml": "Sò sistema a l'ha na combinassion ëd version PHP e libxml2 che a l'ha dij bigat e a peul provoché la corussion ëd dat ëstërmà an MediaWiki e d'àutre aplicassion për l'aragnà.\nCh'a agiorna a PHP 5.2.9 o pi neuv e libxml2 2.7.3 o pi neuv ([//bugs.php.net/bug.php?id=45996 bug filed with PHP]).\nIstalassion abortìa.",
+    "config-using531": "MediaWiki a peul pa esse dovrà con PHP $1 a motiv d'un bigat ch'a ìmplica ij paràmetr d'arferiment a <code>__call()</code>.\nCh'a agiorna a PHP 5.3.2 o pi neuv, o ch'a torna andré a PHP 5.3.0 për arzòlve ës problema.\nIstalassion abortìa.",
+    "config-suhosin-max-value-length": "Suhosin a l'é instalà e a lìmita la longheur dël paràmetr GET a $1 byte. Ël component ResourceLoader ëd MediaWiki a travajerà an rispetand ës lìmit, ma sòn a degraderà le prestassion. Se possìbil, a dovrìa amposté suhosin.get.max_value_lenght a 1024 o pi àut an <code>php.ini</code>, e amposté <code>$wgResourceLoaderMaxQueryLength</code> al midem valor an LocalSettings.php .",
+    "config-db-type": "Sòrt ëd base ëd dàit:",
+    "config-db-host": "Ospitant ëd la base ëd dàit:",
+    "config-db-host-help": "Se sò servent ëd base ëd dàit a l'é su un servent diferent, ch'a anserissa ambelessì ël nòm dl'ospitant o l'adrëssa IP.\n\nS'a deuvra n'ospitalità partagià, sò fornidor d'ospitalità a dovrìa deje ël nòm dl'ospitant giust ant soa documentassion.\n\nSe a anstala su un servent Windows e a deuvra MySQL, dovré «localhost» a podrìa funsioné nen com nòm dël servent. S'a marcia nen, ch'a preuva «127.0.0.1» com adrëssa IP local.\n\nS'a deuvra PostgresSQL, ch'a lassa sto camp bianch për coleghesse a travers un socket UNIX.",
+    "config-db-host-oracle": "TNS dla base ëd dàit:",
+    "config-db-host-oracle-help": "Anserì un [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm nòm ëd conession local] bon; n'archivi tnsnames.ora a dev esse visìbil da costa anstalassion..<br />S'a deuvra le librarìe cliente 10g o pi neuve a peul ëdcò dovré ël métod ëd nominassion [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
+    "config-db-wiki-settings": "Identìfica sta wiki",
+    "config-db-name": "Nòm dla base ëd dàit:",
+    "config-db-name-help": "Ch'a serna un nòm ch'a identìfica soa wiki.\nA dovrìa conten-e gnun ëspassi.\n\nS'a deuvra n'ospitalità partagià, sò fornidor ëd l'ospitalità a-j darà un nòm ëd base ëd dàit specìfich da dovré o a lassrà ch'a lo crea via un panel ëd contròl.",
+    "config-db-name-oracle": "Schema dla base ëd dàit:",
+    "config-db-account-oracle-warn": "A-i é tre possibilità mantnùe për istalé Oracle tanme terminal ëd base ëd dàit:\n\nS'a veul creé un cont ëd base ëd dàit com part dël process d'istalassion, për piasì ch'a fornissa un cont con ël ròl SYSDBA com cont ëd base ëd dàit për l'istalassion e ch'a specìfica le credensiaj vorsùe për ël cont d'acess an sl'aragnà, dësnò a peul ëdcò creé ël cont d'acess an sl'aragnà manualment e mach fornì col cont (se a l'ha ij përmess necessari për creé j'oget dë schema) o fornì doi cont diferent, un con ij privilegi ëd creé e un limità për l'acess an sla Ragnà.\n\nIj senari për creé un cont con ij privilegi necessari a peul esse trovà ant la cartela «manutension/oracol/» ëd costa istalassion. Ch'a ten-a da ment che dovrand un cont limità a disabiliterà tute le funsion ëd manutension con ël cont predefinì.",
+    "config-db-install-account": "Cont d'utent për l'instalassion.",
+    "config-db-username": "Nòm d'utent dla base ëd dàit:",
+    "config-db-password": "Ciav dla base ëd dàit:",
+    "config-db-password-empty": "Për piasì, ch'a anserissa na ciav për ël neuv utent ëd base ëd dàit: $1.\nCon tut ch'a sia possìbil creé d'utent sensa ciav, a l'é pa na ròba sigura.",
+    "config-db-install-username": "Ch'a nserissa lë stranòm che a sarà dovrà për coleghesse a la base ëd dàit durant ël process d'istalassion.\nCost-sì a l'é nen lë stranòm dël cont MediaWiki; a l'é lë stranòm për soa base ëd dàit.",
+    "config-db-install-password": "Ch'a anserissa la ciav che a sarà dovrà për coleghesse a la base ëd dàit durant ël process d'istalassion.\nCosta-sì a l'é nen la ciav dël cont MediaWiki; a l'é la ciav për soa base ëd dàit.",
+    "config-db-install-help": "Ch'a anserissa lë stranòm d'utent e la ciav che a saran dovrà për coleghesse a la base ëd dàit durant ël process d'instalassion.",
+    "config-db-account-lock": "Dovré ij midem stranòm d'utent e ciav durant j'operassion normaj",
+    "config-db-wiki-account": "Cont d'utent për j'operassion normaj",
+    "config-db-wiki-help": "Ch'a anseriss lë stranòm d'utent e la ciav che a saran dovrà për coleghesse a la base ëd dàit durant j'operassion normaj dla wiki.\nS'ël cont a esist pa, e ël cont d'instalassion a l'ha ij privilegi ch'a-i van, sto cont utent a sarà creà con ij privilegi mìnin për fé marcé la wiki.",
+    "config-db-prefix": "Prefiss dle tàule dla base ëd dàit:",
+    "config-db-prefix-help": "S'a l'ha dabzògn ëd partagé na base ëd dàit an tra vàire wiki, o tra MediaWiki e n'àutra aplicassion dl'aragnà, a peul serne ëd gionté un prefiss a tùit ij nòm ëd le tàule për evité ëd conflit.\nCh'a deuvra pa dë spassi.\n\nCost camp a l'é lassà normalment veuid.",
+    "config-db-charset": "Ansema dij caràter dla base ëd dàit",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binari",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 compatìbil a l'andaré con UTF-8",
+    "config-charset-help": "'''Avis:''' S'a deuvra '''UTF-8 compatìbil a l'andaré''' su MySQL 4.1+, e peui a fa na còpia con <code>mysqldump</code>, a podrìa scancelé tùit ij caràter nen-ASCII, dësbland sensa speranse soe còpie!\n\nAn '''manera binaria''', MediaWiki a memorisa ël test UTF-8 an dij camp binari ant la base ëd dàit.\nSossì a l'é pi eficient che la manera UTF-8 ëd MySQL, e a përmët ëd dovré tut l'ansema ëd caràter Unicode.\nAn '''manera UTF-8''', MySQL a arconòss an che ansema ëd caràter a son ij sò dat, e a peul presenteje e convertije apropriatament, ma a-j lassrà pa memorisé ij caràter dzora al [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes pian multilenghe ëd base].",
+    "config-mysql-old": "A-i é da manca ëd MySQL $1 o pi recent, chiel a l'ha $2.",
+    "config-db-port": "Porta dla base ëd dàit:",
+    "config-db-schema": "Schema për MediaWiki",
+    "config-db-schema-help": "Lë schema sì-sota a l'é ëd sòlit giust.\nCh'a lo cangia mach s'a sa ch'a n'ha da manca.",
+    "config-pg-test-error": "Impossìbil coleghesse a la base ëd dàit '''$1'''; $2",
+    "config-sqlite-dir": "Dossié dij dat SQLite:",
+    "config-sqlite-dir-help": "SQLite a memorisa tùit ij dat ant n'archivi ùnich.\n\nËl dossié che chiel a forniss a dev esse scrivìbil dal servent durant l'instalassion.\n\nA dovrìa '''pa''' esse acessìbil da l'aragnà, sossì a l'é për sòn ch'i l'oma pa butalo andova a-i son ij sò file PHP.\n\nL'instalador a scriverà n'archivi <code>.htaccess</code> ansema con chiel, ma se lòn a faliss quaidun a peul intré an soa base ëd dàit originaria.\nLòn a comprend ij dat brut ëd l'utent (adrëssa ëd pòsta eletrònica, ciav tërbola) e ëdcò le revision scancelà e d'àutri dat segret ëd la wiki.\n\nCh'a consìdera ëd buté la base ëd dàit tuta antrega da n'àutra part, për esempi an <code>/var/lib/mediawiki/yourwiki</code>.",
+    "config-oracle-def-ts": "Spassi dla tàula dë stàndard:",
+    "config-oracle-temp-ts": "Spassi dla tàula temporani:",
+    "config-support-info": "MediaWiki a manten ij sistema ëd base ëd dàit sì-dapress:\n\n$1\n\nS'a vëd pa listà sì-sota ël sistema ëd base ëd dàit ch'a preuva a dovré, antlora va andaré a j'istrussion dl'anliura sì-dzora për abilité ël manteniment.",
+    "config-support-mysql": "* $1 e l'é l'obietiv primari për MediaWiki e a l'é mej mantnù ([http://www.php.net/manual/en/mysql.installation.php com compilé PHP con ël manteniment MySQL])",
+    "config-support-postgres": "* $1 e l'é un sistema ëd base ëd dàit popolar a sorgiss duverta com alternativa a MySQL ([http://www.php.net/manual/en/pgsql.installation.php com compilé PHP con ël manteniment ëd PostgreSQL]). A peulo ess-ie chèich cit bigat, e a l'é nen arcomandà ëd dovrelo an n'ambient ëd produssion.",
+    "config-support-sqlite": "* $1 e l'é un sistema ëd base ëd dàit leger che a l'é motobin bin mantnù ([http://www.php.net/manual/en/pdo.installation.php com compilé PHP con ël manteniment ëd SQLite], a deuvra PDO)",
+    "config-support-oracle": "* $1 a l'é na base ëd dàit comersial për j'amprèise. ([http://www.php.net/manual/en/oci8.installation.php Com compilé PHP con ël manteniment OCI8])",
+    "config-header-mysql": "Ampostassion MySQL",
+    "config-header-postgres": "Ampostassion PostgreSQL",
+    "config-header-sqlite": "Ampostassion SQLite",
+    "config-header-oracle": "Ampostassion Oracle",
+    "config-invalid-db-type": "Sòrt ëd ëd base ëd dàit pa bon-a",
+    "config-missing-db-name": "A dev buteje un valor për \"Nòm ëd la base ëd dàit\"",
+    "config-missing-db-host": "A dev buteje un valor për \"l'òspit ëd la base ëd dàit\"",
+    "config-missing-db-server-oracle": "A dev buteje un valor për \"TNS ëd la base ëd dat\"",
+    "config-invalid-db-server-oracle": "TNS ëd la base ëd dat pa bon \"$1\".\nDovré mach dle litre ASCII (a-z, A-Z), nùmer (0-9), sotlignadure (_) e pontin (.).",
+    "config-invalid-db-name": "Nòm ëd la base ëd dàit pa bon \"$1\".\nDovré mach litre ASCII (a-z, A-Z), nùmer (0-9), sotlignadure (_) e tratin (-).",
+    "config-invalid-db-prefix": "Prefiss dla base ëd dàit pa bon \"$1\".\nDovré mach litre ASCII (a-z, A-Z), nùmer (0-9), sotlignadure (_) e tratin (-).",
+    "config-connection-error": "$1.\n\nControla l'ospitant, lë stranòm d'utent e la ciav sì-sota e prové torna.",
+    "config-invalid-schema": "Schema pa bon për MediaWiki \"$1\".\nDovré mach litre ASCII (a-z, A-Z), nùmer (0-9) e sotlignadure (_).",
+    "config-db-sys-create-oracle": "L'istalador a arconòss mach ij cont SYSDBA durant la creassion d'un cont neuv.",
+    "config-db-sys-user-exists-oracle": "Ël cont utent \"$1\" a esist già. SYSDBA a peul mach esse dovrà për creé un cont neuv!",
+    "config-postgres-old": "A-i é da manca ëd PostgreSQL $1 o pi recent, chiel a l'ha $2.",
+    "config-sqlite-name-help": "Serne un nòm ch'a identìfica soa wiki.\nDovré nì dë spassi nì ëd tratin.\nSòn a sarà dovrà për ël nòm ëd l'archivi ëd dat SQLite.",
+    "config-sqlite-parent-unwritable-group": "As peul pa creesse ël dossié ëd dat <code><nowiki>$1</nowiki></code>, përchè ël dossié a mont <code><nowiki>$2</nowiki></code> a l'é pa scrivìbil dal servent.\n\nL'instalador a l'ha determinà sota che utent a gira sò servent.\nFé an manera che ël dossié <code><nowiki>$3</nowiki></code> a sia scrivìbil da chiel për continué.\nSu un sistema Unix/Linux buté:\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "As peul pa creesse ël dossié ëd dat <code><nowiki>$1</nowiki></code>, përchè ël dossié a mont <code><nowiki>$2</nowiki></code> a l'é pa scrivìbil dal servent.\n\nL'instalador a peul pa determiné l'utent sota ël qual a gira sò servent.\nFé an manera che ël dossié <code><nowiki>$3</nowiki></code> a sia scrivìbil globalment da chiel (e da d'àutri) për continué.\nSu un sistema Unix/Linux buté:\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Eror an creand ël dossié ëd dat \"$1\".\nCh'a contròla la locassion e ch'a preuva torna.",
+    "config-sqlite-dir-unwritable": "As peul pa scrivse an sël dossié \"$1\".\nModifiché ij sò përmess an manera che ël servent a peula scrivje ansima, e prové torna.",
+    "config-sqlite-connection-error": "$1.\n\nControlé ël dossié ëd dat e ël nòm ëd la base ëd dàit ambelessì-sota e prové torna.",
+    "config-sqlite-readonly": "L'archivi <code>$1</code> a l'é nen scrivìbil.",
+    "config-sqlite-cant-create-db": "As peul pa cresse l'archivi ëd base ëd dàit <code>$1</code>.",
+    "config-sqlite-fts3-downgrade": "PHP a l'ha pa ël supòrt ëd FTS3, le tàule a son degradà",
+    "config-can-upgrade": "A-i é dle tàule MediaWiki an costa base ëd dàit.\nPër agiorneje a MediaWiki $1, ch'a sgnaca su '''Continué'''.",
+    "config-upgrade-done": "Agiornament completà.\n\nAdess a peule [$1 ancaminé a dovré soa wiki].\n\nS'a veul generé torna sò archivi <code>LocalSettings.php</code>, ch'a sgnaca ël boton sì-sota.\nSòn a l'è '''pa arcomandà''' gavà ch'a rancontra dij problema con soa wiki.",
+    "config-upgrade-done-no-regenerate": "Agiornament complet.\n\nIt peule adess [$1 ancaminé a dovré toa wiki].",
+    "config-regenerate": "Generé torna LocalSettings.php →",
+    "config-show-table-status": "Arcesta <code>SHOW TABLE STATUS</code> falìa!",
+    "config-unknown-collation": "'''Avis:''' La base ëd dàit a deuvra na classificassion pa arconossùa.",
+    "config-db-web-account": "Cont dla base ëd dàit për l'acess a l'aragnà",
+    "config-db-web-help": "Ch'a selession-a lë stranòm d'utent e la ciav che ël servent ëd l'aragnà a dovrërà për coleghesse al servent dle base ëd dàit, durant j'operassion ordinarie dla wiki.",
+    "config-db-web-account-same": "Ch'a deuvra ël midem cont com për l'istalassion",
+    "config-db-web-create": "Crea ël cont se a esist pa anco'",
+    "config-db-web-no-create-privs": "Ël cont ch'a l'ha specificà për l'instalassion a l'ha pa basta 'd privilegi për creé un cont.\nËl cont ch'a spessìfica ambelessì a dev già esiste.",
+    "config-mysql-engine": "Motor ëd memorisassion:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''Avis''': A l'ha selessionà MyISAM com motor ëd memorisassion për MySQL, che a l'é pa arcomandà da dovré con MediaWiki, përchè:\n* a sopòrta a pen-a la contemporanità për via ëd saradure ëd tàula\n* a l'é pi soget a la corussion che j'àutri motor\n* ël còdes bas ëd MediaWiki pa sempe a gestiss MyISAM com a dovrìa\n\nSe soa istalassion MySQL a manten InnoDB, a l'é fortement arcomandà ch'a serna pitòst col-lì.\nSe soa istalassion MySQL a manten nen InnoDB, a peul esse ch'a sia ël moment ëd n'agiornament.",
+    "config-mysql-engine-help": "'''InnoDB''' a l'é scasi sempe la mej opsion, da già ch'a l'ha un bon manteniment dla concorensa.\n\n'''MyISAM''' a peul esse pi lest an instalassion për n'utent sol o mach an letura.\nLa base ëd dàit MyISAM a tira a corompse pi 'd soens che la base ëd dàit InnoDB.",
+    "config-mysql-charset": "Ansem ëd caràter dla base ëd dàit:",
+    "config-mysql-binary": "Binari",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "An '''manera binaria''', MediaWiki a memorisa ël test UTF-8 ant la base ëd dàit an camp binari.\nSòn a l'é pi eficient che la manera UTF-8 ëd MySQL, e a-j përmët ëd dovré l'ansema antregh ëd caràter Unicode.\n\nAn '''manera UTF-8''', MySQL a conossrà an che ansem ëd caràter a son ij sò dat, e a peul presenteje e convertije apropriatament, ma a-j lassa pa memorisé ij caràter ëdzora al [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes pian multilenghìstich ëd base].",
+    "config-site-name": "Nòm ëd la wiki:",
+    "config-site-name-help": "Sòn a comparirà ant la bara dël tìtol dël navigador e an vàire d'àutri pòst.",
+    "config-site-name-blank": "Ch'a buta un nòm ëd sit.",
+    "config-project-namespace": "Spassi nominal dël proget:",
+    "config-ns-generic": "Proget",
+    "config-ns-site-name": "Midem com ël nom dla wiki: $1",
+    "config-ns-other": "Àutr (specìfica)",
+    "config-ns-other-default": "MyWiki",
+    "config-project-namespace-help": "Andasend daré a l'esempi ëd Wikipedia, vàire wiki a manten-o soe pàgine ëd regolament separà da soe pàgine ëd contnù, ant në \"'''spassi nominal ëd proget'''\".\nTùit ij tìtoj ëd pàgina ant cost ëspassi nominal a parto con un sert prefiss, che a peul specifiché ambelessì.\nTradissionalment, sto prefiss a l'é derivà dal nòm ëd la wiki, ma a peul pa conten-e caràter ëd pontegiatura coma \"#\" o \":\".",
+    "config-ns-invalid": "Lë spassi nominal specificà \"<nowiki>$1</nowiki>\" a l'é pa bon.\nSpecìfica në spassi nominal ëd proget diferent.",
+    "config-ns-conflict": "Lë spassi nominal specificà \"<nowiki>$1</nowiki>\" a và contra në spassi nominal predefinì ëd MediaWiki.\nSpecìfica në spassi nominal ëd proget diferent.",
+    "config-admin-box": "Cont ëd l'Aministrator",
+    "config-admin-name": "Tò nòm:",
+    "config-admin-password": "Ciav:",
+    "config-admin-password-confirm": "Buté torna la ciav:",
+    "config-admin-help": "Ch'a butà ambelessì tò stranòm d'utent preferì, për esempi \"Gioann Scriv\".\nCost-sì a l'é lë stranòm ch'a dovrërà për intré ant la wiki.",
+    "config-admin-name-blank": "Ch'a anserissa në stranòm d'aministrator.",
+    "config-admin-name-invalid": "Ël nòm utent specificà \"<nowiki>$1</nowiki>\" a l'é pa bon.\nSpecìfica un nòm utent diferent.",
+    "config-admin-password-blank": "Ch'a anserissa na ciav për ël cont d'aministrator.",
+    "config-admin-password-same": "La ciav a dev nen esse l'istessa ëd lë stranòm d'utent.",
+    "config-admin-password-mismatch": "Le doe ciav che a l'ha scrivù a son diferente antra 'd lor.",
+    "config-admin-email": "Adrëssa ëd pòsta eletrònica:",
+    "config-admin-email-help": "Ch'a anserissa ambelessì n'adrëssa ëd pòsta eletrònica për përmëtt-je d'arsèive ëd mëssagi da d'àutri utent an sla wiki, riamposté soa ciav, e esse anformà dle modìfiche a le pàgine ch'a ten sot-euj. A peule lassé ës camp veuid.",
+    "config-admin-error-user": "Eror antern an creand n'aministrator con lë stranòm \"<nowiki>$1</nowiki>\".",
+    "config-admin-error-password": "Eror antern an ampostand na ciav për l'admin \"<nowiki>$1</nowiki>\": <pre>$2</pre>",
+    "config-admin-error-bademail": "A l'ha butà n'adrëssa ëd pòsta eletrònica pa bon-a.",
+    "config-subscribe": "Ch'a sot-scriva la [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce lista ëd discussion ëd j'anonsi ëd publicassion].",
+    "config-subscribe-help": "Costa a l'é na lista ëd discussion a bass tràfich dovrà për j'anonsi ëd publicassion, comprèis d'amportant anonsi ëd sicurëssa.\nA dovrìa sot-ëscrivla e agiorné soa instalassion mediaWiki quand che ëd version neuve a rivo.",
+    "config-subscribe-noemail": "A l'ha provà a abonesse a la lista ëd difusion dij comunicà sensa dé n'adrëssa ëd pòsta eletrònica.\nPër piasì, ch'a fornissa n'adrëssa ëd pòsta eletrònica s'a veul abonesse a la lista ëd pòsta.",
+    "config-almost-done": "A l'ha bele che fàit!\nA peul adess sauté la configurassion rimanenta e instalé dlongh la wiki.",
+    "config-optional-continue": "Ciameme d'àutre chestion.",
+    "config-optional-skip": "I son già anojà, instala mach la wiki.",
+    "config-profile": "Profil dij drit d'utent:",
+    "config-profile-wiki": "Wiki duverta",
+    "config-profile-no-anon": "A venta creé un cont",
+    "config-profile-fishbowl": "Mach editor autorisà",
+    "config-profile-private": "Wiki privà",
+    "config-profile-help": "Le wiki a marcio mej quand ch'a lassa che pì përsone possìbij a-j modìfico.\nAn MediaWiki, a l'é bel fé revisioné j'ùltime modìfiche, e buté andré qualsëssìa dann che a sia fàit da dj'utent noviss o malissios.\n\nAn tùit ij cas, an tanti a l'han trovà che MediaWiki a sia ùtil ant na gran varietà ëd manere, e dle vire a l'é pa bel fé convince cheidun dij vantagi dla wiki.\nParèj a l'ha doe possibilità.\n\nËl model '''{{int:config-profile-wiki}}''' a përmët a chicassìa ëd modifiché, bele sensa intré ant ël sistema.\nNa wiki con  '''{{int:config-profile-no-anon}}''' a dà pì 'd contròl, ma a peul slontané dij contributor ocasionaj.\n\nËl senari '''{{int:config-profile-fishbowl}}''' a përmët a j'utent aprovà ëd modifiché, ma ël pùblich a peul vëdde le pàgine, comprèisa la stòria.\nUn '''{{int:config-profile-private}}''' a përmët mach a j'utent aprovà ëd vëdde le pàgine, con la midema partìa ch'a peul modifiché.\n\nConfigurassion ëd drit d'utent pi complicà a son disponìbij apress l'instalassion, vëdde la [//www.mediawiki.org/wiki/Manual:User_rights pàgina a pòsta dël manual].",
+    "config-license": "Drit d'autor e licensa",
+    "config-license-none": "Gnun-a licensa an nòta an bass",
+    "config-license-cc-by-sa": "Creative Commons atribussion an part uguaj",
+    "config-license-cc-by": "Creative Commons Attribution",
+    "config-license-cc-by-nc-sa": "Creative Commons atribussion nen comersial an part uguaj",
+    "config-license-cc-0": "Creative Commons Zero (domini pùblich)",
+    "config-license-gfdl": "Licensa GNU Free Documentation 1.3 o pi neuva",
+    "config-license-pd": "Domini Pùblich",
+    "config-license-cc-choose": "Selessioné na licensa Creative Commons përsonalisà",
+    "config-license-help": "Vàire wiki pùbliche a buto tute le contribussion sota na [http://freedomdefined.org/Definition licensa lìbera]. Sòn a giuta a creé un sens d'apartenensa a la comunità e a ancoragia ëd contribussion ëd longa durà.\nA l'é generalment nen necessari për na wiki privà o d'asienda.\n\nS'a veul podèj dovré dij test da Wikipedia, e a veul che Wikipedia a aceta dij test copià da soa wiki, a dovrìa serne '''Creative Commons Attribution Share Alike'''.\n\nWikipedia prima a dovrava la GNU Free Documentation License.\nLa GDFL a l'é anco' na licensa bon-a, ma a l'é malfé da capila.\nA l'é ëdcò mal fé riutilisé dël contnù licensià sota la GDFL.",
+    "config-email-settings": "Ampostassion ëd pòsta eletrònica",
+    "config-enable-email": "Abilité ij mëssagi ëd pòsta eletrònica an surtìa",
+    "config-enable-email-help": "S'a veul che la pòsta eletrònica a marcia, j'[http://www.php.net/manual/en/mail.configuration.php ampostassion ëd pòsta eletrònica PHP] a devo esse configurà për da bin.\nS'a veul pa 'd funsion ëd pòsta eletrònica, a dev disabiliteje ambelessì.",
+    "config-email-user": "Abilité ij mëssagi ëd pòsta eletrònica da utent a utent",
+    "config-email-user-help": "A përmët a tùit j'utent ëd mandesse ëd mëssagi ëd pòsta eletrònica se lor a l'han abilità sòn an soe preferense.",
+    "config-email-usertalk": "Abilité notìfica dle pàgine ëd discussion dj'utent",
+    "config-email-usertalk-help": "A përmët a j'utent d'arsèive na notìfica dle modìfiche dle pàgine ëd discussion d'utent, s'a l'han abilitalo ant soe preferense.",
+    "config-email-watchlist": "Abilité la notìfica ëd lòn ch'as ten sot euj",
+    "config-email-watchlist-help": "A përmët a j'utent d'arsèive dle notificassion a propòsit dle pàgine ch'a ten-o sot euj s'a l'han abilitalo ant soe preferense.",
+    "config-email-auth": "Abilité l'autenticassion për pòsta eletrònica",
+    "config-email-auth-help": "Se st'opsion a l'é abilità, j'utent a devo confirmé soe adrësse ëd pòsta eletrònica an dovrand un colegament mandà a lor quand ch'a l'han ampostala o cambiala.\nMach j'adrësse ëd pòsta eletrònica autenticà a peulo arsèive ëd mëssagi da j'àutri utent o cangé adrëssa ëd notìfica.\nAmposté st'opsion a l'é '''arcomandà''' për le wiki pùbliche a càusa ëd possìbij abus ëd le funsion ëd pòsta eletrònica.",
+    "config-email-sender": "Adrëssa ëd pòsta eletrònica ëd ritorn:",
+    "config-email-sender-help": "Ch'a anserissa l'adrëssa ëd pòsta eletrònica da dovré com adrëssa d'artorn dij mëssagi an surtìa.\nAmbelessì a l'é andova j'arspòste a saran mandà.\nMotobin ëd servent ëd pòsta a ciamo che almanch la part dël nòm ëd domini a sia bon-a.",
+    "config-upload-settings": "Cariament ëd figure e archivi",
+    "config-upload-enable": "Abilité ël cariament d'archivi",
+    "config-upload-help": "Carié d'archivi potensialment a espon sò servent a d'arzigh ëd sicurëssa.\nPer pi d'anformassion, ch'a lesa la [//www.mediawiki.org/wiki/Manual:Security session ëd sicurëssa] d'ës manual.\n\nPër abilité ël cariament d'archivi, ch'a modìfica la manera dël sot-dossié dle <code>figure</code> sota al dossié rèis ëd MediaWiki an manera che ël servent dl'aragnà a peussa scrivlo.\nPeui ch'a abìlita costa opsion.",
+    "config-upload-deleted": "Dossié për j'archivi scancelà:",
+    "config-upload-deleted-help": "ch'a serna un dossié andova goerné j'archivi scancelà.\nIdealment, sòn a dovrìa pa esse acessìbil an sl'aragnà.",
+    "config-logo": "Anliura dla marca:",
+    "config-logo-help": "La pel dë stàndard ëd MediaWiki a comprend lë spassi për na marca ëd 135x160 pontin dzora la lista dla bara lateral.\nCh'a dëscaria na figura ëd la dimension aproprià, e ch'a anserissa l'anliura ambelessì.\n\nS'a veul gnun-e marche, ch'a lassa ës camp bianch.",
+    "config-instantcommons": "Abìlita Instant Commons",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] a l'é na funsion ch'a përmët a le wiki ëd dovré dle figure, dij son e d'àutri mojen trovà an sël sit [//commons.wikimedia.org/ Wikimedia Commons].\nPër dovré sossì, MediaWiki a l'ha da manca dl'acess a la ragnà.\n\nPër pi d'anformassion su sta funsion, comprèise j'istrussion ëd com ampostela për wiki diferente da Wikimedia Commons, ch'a consulta [//mediawiki.org/wiki/Manual:$wgForeignFileRepos ël manual].",
+    "config-cc-error": "La selession ëd la licensa Creative Commons a l'ha dàit gnun arzultà.\nCh'a anserissa ël nòm dla licensa a man.",
+    "config-cc-again": "Torna cheuje...",
+    "config-cc-not-chosen": "Sern che licensa Creative Commons it veule e sgnaca \"anans\".",
+    "config-advanced-settings": "Configurassion avansà",
+    "config-cache-options": "Ampostassion për la memorisassion local d'oget:",
+    "config-cache-help": "La memorisassion loca d'oget a l'é dovrà për amelioré l'andi ëd MediaWiki an butant an local dij dat dovrà 'd soens.\nIj sit da mesan a gròss a son motobin ancoragià a abilité sòn, e ij sit cit a l'avran ëdcò dij benefissi.",
+    "config-cache-none": "Gnun-a memorisassion local (gnun-a funsionalità gavà, ma l'andi a peul esse anfluensà an sij sit ëd wiki gròsse)",
+    "config-cache-accel": "Memorisassion local d'oget PHP (APC, XCache o WinCache)",
+    "config-cache-memcached": "Dovré Memcached (a ciama n'ampostassion e na configurassion adissionaj)",
+    "config-memcached-servers": "Servent Memcached:",
+    "config-memcached-help": "Lista d'adrësse IP da dovré për Memcached.\nA dovrìa specifichene un-a për linia e specifiché la pòrta da dovré. Për esempi:\n127.0.0.1:11211\n192.168.1.25:11211",
+    "config-memcache-needservers": "A l'ha selessionà Memcached com soa sòrt ëd memorisassion local ma a l'ha specificà gnun servent.",
+    "config-memcache-badip": "It l'ha anserì n'adrëssa IP pa bon-a për Memcached: $1.",
+    "config-memcache-noport": "A l'ha pa specificà na pòrta da dovré për ël servent Memcached: $1.\nS'a conòsse nen la pòrta, cola predefinìa a l'é 11211.",
+    "config-memcache-badport": "Ij nùmer ëd pòrta ëd Memcached a dovrìo esse tra $1 e $2.",
+    "config-extensions": "Estension",
+    "config-extensions-help": "J'estension listà dì-sota a son ëstàite trovà ant sò dossié <code>./extensions</code>.\n\nA peulo avèj da manca ëd configurassion adissionaj, ma a peul abiliteje adess",
+    "config-install-alreadydone": "'''Avis''' A smija ch'a l'abie già instalà MediaWiki e ch'a preuva a instalelo torna.\nPër piasì, ch'a vada a la pàgina ch'a-i ven.",
+    "config-install-begin": "An sgnacand su «{{int:config-continue}}», a anandiërà l'istalassion ëd MediaWiki.\nS'a veul anco' fé dle modìfiche, ch'a sgnaca su «{{int:config-back}}».",
+    "config-install-step-done": "fàit",
+    "config-install-step-failed": "falì",
+    "config-install-extensions": "Comprende j'estension",
+    "config-install-database": "Creassion ëd la base ëd dàit",
+    "config-install-schema": "Creassion dë schema",
+    "config-install-pg-schema-not-exist": "Lë schema postgreSQL a esist pa.",
+    "config-install-pg-schema-failed": "Creassion dle tàule falìa.\nSigurte che l'utent \"$1\" a peussa scrive lë schema \"$2\".",
+    "config-install-pg-commit": "Salvé ij cambi.",
+    "config-install-pg-plpgsql": "Contròl dël langagi PL/pgSQL",
+    "config-pg-no-plpgsql": "A dev istalé ël langage PL/pgSQL ant la base ëd dàit $1",
+    "config-pg-no-create-privs": "Ël cont ch'a l'ha specificà për l'istalassion a l'ha pa basta 'd privilegi për creé un cont.",
+    "config-pg-not-in-role": "Ël cont ch'a l'ha specificà për l'utent ëd la ragnà a esist già.\nËl cont ch'a l'has specificà për l'istalassion a l'é pa un superutent e a l'é pa un mémber dla partìa dj'utent dla Ragnà, parèj a peul pa creé dj'oget ch'a apartenent a l'utent dla Ragnà.\n\nMediaWiki al moment a ciama che le tàule a sia possedùe da n'utent dla Ragnà. Për piasì, ch'a specìfica n'àutr nòm ëd cont dla Ragnà, o ch'a sgnaca ansima a \"andré\" e ch'a specìfica n'utent ch'a l'ha ij privilegi ch'a basto për l'anstalassion.",
+    "config-install-user": "Creassion ëd n'utent ëd la base ëd dàit",
+    "config-install-user-alreadyexists": "L'utent \"$1\" a esist già",
+    "config-install-user-create-failed": "Faliment ant la creassion ëd l'utent «$1»: $2",
+    "config-install-user-grant-failed": "Falì a dé ij përmess a l'utent \"$1\": $2",
+    "config-install-user-missing": "L'utent specificà \"$1\" a esist pa.",
+    "config-install-user-missing-create": "L'utent specificà «$1» a esist pa.\nPër piasì, ch'a selession-a la casela «cont da creé» sì-sota s'a veul creelo.",
+    "config-install-tables": "Creassion dle tàule",
+    "config-install-tables-exist": "'''Avis''': A smija che le tàule ëd mediaWiki a esisto già.\nSauté la creassion.",
+    "config-install-tables-failed": "'''Eror''': Creassion ëd le tàule falìa con l'eror sì-dapress: $1",
+    "config-install-interwiki": "Ampiniment dë stàndard ëd le tàule dj'anliure interwiki",
+    "config-install-interwiki-list": "As peul pa trovesse l'archivi <code>interwiki.list</code>.",
+    "config-install-interwiki-exists": "'''Avis''': La tàula interwiki a smija ch'a l'abia già dj'element.\nPër stàndard, la lista a sarà sautà.",
+    "config-install-stats": "Inissialisassion dle statìstiche",
+    "config-install-keys": "Generassion ëd le ciav segrete",
+    "config-insecure-keys": "'''Avis:''' {{PLURAL:$2|Na ciav sigura|Dle ciav sigure}} ($1) generà durant l'istalassion {{PLURAL:$2|a l'é|a son}} pa completament sigure. Ch'a consìdera ëd modifiche{{PLURAL:$2|la|je}} manualment.",
+    "config-install-sysop": "Creassion dël cont ëd l'utent aministrator",
+    "config-install-subscribe-fail": "As peul pa sot-scrivse mediawiki-announce: $1",
+    "config-install-subscribe-notpossible": "cURL a l'é pa istalà e allow_url_fopen a l'é pa disponìbil.",
+    "config-install-mainpage": "Creassion ëd la pàgina prinsipal con un contnù predefinì",
+    "config-install-extension-tables": "Creassion ëd tàule për j'estension abilità",
+    "config-install-mainpage-failed": "As peul pa inserisse la pàgina prinsipal: $1",
+    "config-install-done": "'''Congratulassion!'''\nA l'ha instalà për da bin mediaWiki.\n\nL'instalador a l'ha generà n'archivi <code>LocalSettings.php</code>.\nA conten tuta soa configurassion.\n\nA dovrà dëscarielo e butelo ant la bas ëd l'instalassion ëd soa wiki (ël midem dossié d'index.php). La dëscaria a dovrìa esse ancaminà automaticament.\n\nSe la dëscaria a l'é pa disponìbil, o s'a l'ha scancelala, a peul torna ancaminé la dëscaria an sgnacand an sla liura sì-sota:\n\n$3\n\n'''Nòta''': S'a lo fa nen adess, cost archivi ëd configurassion generà a sarà pa disponìbil për chiel pi tard s'a chita l'instalassion sensa dëscarielo.\n\nQuand che a l'é stàit fàit, a peul '''[$2 intré an soa wiki]'''.",
+    "config-download-localsettings": "Dëscarié <code>LocalSettings.php</code>",
+    "config-help": "agiut",
+    "config-nofile": "L'archivi «$1» as treuva nen. A l'é stàit ëscancelà?",
+    "mainpagetext": "'''MediaWiki a l'é staita anstalà a la përfession.'''",
+    "mainpagedocfooter": "Che a varda la [//meta.wikimedia.org/wiki/Help:Contents User's Guide] për avèj dj'anformassion ant sël coma dovré ël programa dla wiki.\n\n== Për anandiesse a travajé ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista dij paràmeter ëd configurassion]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki Chestion frequente]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista ëd discussion an sla distribussion ëd MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Localisa MediaWiki për toa lenga]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/pnt.json b/includes/installer/i18n/pnt.json
new file mode 100644 (file)
index 0000000..d137156
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "@metadata": {
+        "authors": [
+            "Sinopeus"
+        ]
+    },
+    "mainpagetext": "'''To λογισμικόν MediaWiki εθέκεν.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/prg.json b/includes/installer/i18n/prg.json
new file mode 100644 (file)
index 0000000..58c28fc
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Nertiks"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki's instalaciōni izpalla.'''",
+    "mainpagedocfooter": "Wīdais [//meta.wikimedia.org/wiki/Help:Contents przewodnik użytkownika] kāi gaūlai infōrmaciōnei ezze wiki prōgramijas tērpausnan.\n\n== En pagaūseņu ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ps.json b/includes/installer/i18n/ps.json
new file mode 100644 (file)
index 0000000..62c5d39
--- /dev/null
@@ -0,0 +1,46 @@
+{
+    "@metadata": {
+        "authors": [
+            "Ahmed-Najib-Biabani-Ibrahimkhel"
+        ]
+    },
+    "config-information": "مالومات",
+    "config-your-language": "ستاسې ژبه:",
+    "config-wiki-language": "د ويکي ژبه:",
+    "config-page-language": "ژبه",
+    "config-page-welcome": "مېډياويکي ته ښه راغلاست!",
+    "config-page-name": "نوم",
+    "config-page-options": "خوښنې",
+    "config-page-install": "لگول",
+    "config-page-complete": "بشپړ!",
+    "config-env-php": "د $1 PHP نصب شو.",
+    "config-db-type": "د توکبنسټ ډول:",
+    "config-db-host": "د توکبنسټ کوربه:",
+    "config-db-host-oracle": "د توکبنسټ TNS:",
+    "config-db-name": "د توکبنسټ نوم:",
+    "config-db-username": "د توکبنسټ کارن-نوم:",
+    "config-db-password": "د توکبنسټ پټنوم:",
+    "config-header-mysql": "د MySQL امستنې",
+    "config-header-postgres": "د PostgreSQL امستنې",
+    "config-header-sqlite": "د SQLite امستنې",
+    "config-header-oracle": "د اورېکل امستنې",
+    "config-sqlite-readonly": "د <code>$1</code> دوتنه د ليکلو وړ نه ده.",
+    "config-sqlite-cant-create-db": "د توکبنسټ دوتنه <code>$1</code> جوړه نه شوه.",
+    "config-site-name": "د ويکي نوم:",
+    "config-site-name-blank": "د وېبځي نوم وليکۍ.",
+    "config-project-namespace": "د پروژې نوم-تشيال:",
+    "config-ns-generic": "پروژه",
+    "config-admin-box": "د پازوال گڼون",
+    "config-admin-name": "ستاسې نوم:",
+    "config-admin-password": "پټنوم:",
+    "config-admin-password-confirm": "پټنوم يو ځل بيا:",
+    "config-admin-email": "برېښليک پته:",
+    "config-profile-wiki": "پرانيستې ويکي",
+    "config-license-pd": "ټولگړی شپول",
+    "config-email-settings": "د برېښليک امستنې",
+    "config-install-step-done": "ترسره شو",
+    "config-install-tables": "لښتيالونه جوړول",
+    "config-help": "لارښود",
+    "mainpagetext": "'''MediaWiki په برياليتوب سره نصب شو.'''",
+    "mainpagedocfooter": "د ويکي ساوترې د کارولو د  مالوماتو په اړه [//meta.wikimedia.org/wiki/Help:Contents د کارن لارښود] سره سلا وکړۍ.\n\n== پيلول ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings د امستنو د سازونې لړليک]\n* [//www.mediawiki.org/wiki/Manual:FAQ د ميډياويکي ډېرځليزې پوښتنې]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce د مېډياويکي د برېښليکونو لړليک]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources خپلې ژبې لپاره MediaWiki ځايتابول]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/pt-br.json b/includes/installer/i18n/pt-br.json
new file mode 100644 (file)
index 0000000..8d7aec5
--- /dev/null
@@ -0,0 +1,78 @@
+{
+    "@metadata": {
+        "authors": [
+            "Cainamarques",
+            "Giro720",
+            "Gustavo",
+            "Luckas",
+            "Marcionunes",
+            "555"
+        ]
+    },
+    "config-desc": "O instalador do MediaWiki",
+    "config-title": "Instalação do MediaWiki $1",
+    "config-information": "Informações",
+    "config-localsettings-upgrade": "Foi detectada a existência do arquivo <code>LocalSettings.php</code>.\nPara atualizar esta instalação, insira no box abaixo o valor de <code>$wgUpgradeKey</code>.\nEssa informação pode ser encontrada no arquivo <code>LocalSettings.php</code>",
+    "config-localsettings-cli-upgrade": "Foi detectada a existência do arquivo <code><code>LocalSettings.php</code></code>.\nAtualize esta instalação executando o arquivo <code>update.php</code>",
+    "config-localsettings-key": "Chave de atualização:",
+    "config-localsettings-badkey": "A chave fornecida está incorreta.",
+    "config-upgrade-key-missing": "Foi detectada uma instalação existente do MediaWiki.\nPara atualizar esta instalação, insira a seguinte linha na parte inferior do seu <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "O arquivo <code>LocalSettings.php</code> parece incompleto.\nA variável $1 não está definida.\nAltere seu <code>LocalSettings.php</code> com a definição dessa variável e clique em \"{{int:Config-continue}}\".",
+    "config-localsettings-connection-error": "Ocorreu um erro ao conectar ao banco de dados através das configurações presentes ou no <code>LocalSettings.php</code> ou no <code>AdminSettings.php</code>. Corrija essas configurações e tente novamente.\n\n$1",
+    "config-session-error": "Erro ao iniciar a sessão: $1",
+    "config-session-expired": "Os seus dados de sessão parecem ter expirado.\nAs sessões estão configuradas para uma duração de $1.\nVocê pode aumentar esta duração configurando <code>session.gc_maxlifetime</code> no php.ini.\nReinicie o processo de instalação.",
+    "config-no-session": "Os seus dados de sessão foram perdidos!\nVerifique o seu php.ini e certifique-se de que em <code>session.save_path</code> está definido um diretório apropriado.",
+    "config-your-language": "Seu idioma:",
+    "config-your-language-help": "Selecione o idioma que será usado durante o processo de instalação.",
+    "config-wiki-language": "Idioma do wiki:",
+    "config-wiki-language-help": "Selecione o idioma em que o wiki será predominantemente escrito.",
+    "config-back": "← Voltar",
+    "config-continue": "Continuar →",
+    "config-page-language": "Idioma",
+    "config-page-welcome": "Bem-vindo(a) ao MediaWiki!",
+    "config-page-dbconnect": "Conectar ao banco de dados",
+    "config-page-upgrade": "Atualizar a instalação existente",
+    "config-page-dbsettings": "Configurações do banco de dados",
+    "config-page-name": "Nome",
+    "config-page-options": "Opções",
+    "config-page-install": "Instalar",
+    "config-page-complete": "Concluído!",
+    "config-page-restart": "Reiniciar a instalação",
+    "config-page-readme": "Leia-me",
+    "config-page-releasenotes": "Notas de lançamento",
+    "config-page-copying": "Copiando",
+    "config-page-upgradedoc": "Atualizando",
+    "config-page-existingwiki": "Wiki existente",
+    "config-help-restart": "Deseja limpar todos os dados salvos que você introduziu e reiniciar o processo de instalação?",
+    "config-restart": "Sim, reiniciar",
+    "config-welcome": "=== Verificações de ambiente ===\nSão realizadas verificações básicas para determinar se este ambiente é apropriado para a instalação do MediaWiki.\nLembre-se de incluir estas informações se for procurar por suporte para a conclusão da instalação.",
+    "config-copyright": "=== Direitos autorais e Termos de uso ===\n\n$1\n\nEste programa é software livre; você 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.\n\nEste programa é 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'''.\nConsulte a licença GNU General Public License para mais detalhes.\n\nEm conjunto com este programa você deve ter recebido <doclink href=Copying>uma cópia da licença GNU General Public License</doclink>; se não a recebeu, peça-a por escrito para Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ou [http://www.gnu.org/copyleft/gpl.html leia-a na internet].",
+    "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki Página principal do MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents Manual de uso]\n* [//www.mediawiki.org/wiki/Manual:Contents Manual administrativo]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Leia-me</doclink>\n* <doclink href=ReleaseNotes>Notas de lançamento</doclink>\n* <doclink href=Copying>Licença</doclink>\n* <doclink href=UpgradeDoc>Como fazer upgrade</doclink>",
+    "config-env-good": "O ambiente foi verificado.\nVocê pode instalar o MediaWiki.",
+    "config-env-bad": "O ambiente foi verificado.\nVocê não pode instalar o MediaWiki.",
+    "config-env-php": "O PHP $1 está instalado.",
+    "config-unicode-using-utf8": "Usando o utf8_normalize.so, de Brion Vibber, para a normalização Unicode.",
+    "config-unicode-using-intl": "Usando a [http://pecl.php.net/intl extensão intl PECL] para a normalização Unicode.",
+    "config-unicode-pure-php-warning": "'''Aviso''': A [http://pecl.php.net/intl extensão intl PECL] não está disponível para efetuar a normalização Unicode sendo usada, em seu lugar, a lenta implementação de PHP puro.\nSe o seu site tem um alto volume de tráfego, informe-se sobre a [//www.mediawiki.org/wiki/Unicode_normalization_considerations normalização Unicode].",
+    "config-no-db": "Não foi possível encontrar um driver de banco de dados adequado! É necessário instalar um driver de banco de dados para o PHP.\nSão suportados os seguintes tipos de bancos de dados: $1.\n\nSe estiver em uma hospedagem partilhada, peça à sua empresa de hospedagem para instalar um driver de banco de dados adequado.\nSe você mesmo tiver compilado o PHP, reconfigure-o com um cliente de banco de dados ativado usando, por exemplo, <code>./configure --with-mysql</code>.\nSe você instalou o PHP a partir de um pacote do Debian ou do Ubuntu, instale também o módulo php5-mysql.",
+    "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á ativada.'''\n' ' 'Desative-a, se puder.'''\nO MediaWiki funcionará mesmo assim, mas o seu servidor ficará exposto a potenciais vulnerabilidades de segurança.",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-binary": "Binary",
+    "config-mysql-utf8": "UTF-8",
+    "config-ns-generic": "Projeto",
+    "config-admin-box": "Conta de administrador",
+    "config-admin-name": "Seu nome:",
+    "config-admin-password": "Senha:",
+    "config-license-pd": "Domínio público",
+    "config-logo-help": "Faça o upload de uma imagem de tamanho adequado e insira seu URL aqui.\n\nVocê pode usar <code>$wgStylePath</code> ou <code>$wgScriptPath</code> se o seu logotipo for associado a esses diretórios.",
+    "config-advanced-settings": "Configuração avançada",
+    "config-extensions": "Extensões",
+    "config-install-step-done": "feito",
+    "config-help": "ajuda",
+    "mainpagetext": "'''MediaWiki instalado com sucesso.'''",
+    "mainpagedocfooter": "Consulte o [//meta.wikimedia.org/wiki/Help:Contents Manual de Usuário] para informações de como usar o software wiki.\n\n== Começando ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de opções de configuração]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ do MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discussão com avisos de novas versões do MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Traduza o MediaWiki para seu idioma]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/pt.json b/includes/installer/i18n/pt.json
new file mode 100644 (file)
index 0000000..2a5164e
--- /dev/null
@@ -0,0 +1,313 @@
+{
+    "@metadata": {
+        "authors": [
+            "Crazymadlover",
+            "Hamilton Abreu",
+            "Luckas",
+            "Mormegil",
+            "Platonides",
+            "SandroHc",
+            "Waldir",
+            "아라",
+            "555"
+        ]
+    },
+    "config-desc": "O instalador do MediaWiki",
+    "config-title": "Instalação MediaWiki $1",
+    "config-information": "Informação",
+    "config-localsettings-upgrade": "Foi detectado um ficheiro <code>LocalSettings.php</code>.\nPara atualizar esta instalação, por favor introduza o valor de <code>$wgUpgradeKey</code> na caixa abaixo.\nEncontra este valor no <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Foi detectada a existência de um ficheiro <code>LocalSettings.php</code>.\nPara 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.\nPara atualizar esta instalação, por favor coloque a seguinte linha no final do seu <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "O ficheiro <code>LocalSettings.php</code> existente parece estar incompleto.\nA variável $1 não está definida.\nPor favor defina esta variável no <code>LocalSettings.php</code> e clique \"{{int:Config-continue}}\".",
+    "config-localsettings-connection-error": "Ocorreu um erro ao ligar à base de dados usando as configurações especificadas no <code>LocalSettings.php</code> ou <code>AdminSettings.php</code>. Por favor corrija essas configurações e tente novamente.\n\n$1",
+    "config-session-error": "Erro ao iniciar a sessão: $1",
+    "config-session-expired": "Os seus dados de sessão parecem ter expirado.\nAs sessões estão configuradas para uma duração de $1.\nPode aumentar esta duração configurando <code>session.gc_maxlifetime</code> no php.ini.\nReinicie o processo de instalação.",
+    "config-no-session": "Os seus dados de sessão foram perdidos!\nVerifique 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": "Selecione a língua que será usada durante o processo de instalação.",
+    "config-wiki-language": "Língua da wiki:",
+    "config-wiki-language-help": "Selecione a língua que será predominante na wiki.",
+    "config-back": "← Voltar",
+    "config-continue": "Continuar →",
+    "config-page-language": "Língua",
+    "config-page-welcome": "Bem-vindo(a) ao MediaWiki!",
+    "config-page-dbconnect": "Ligar à base de dados",
+    "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",
+    "config-page-install": "Instalar",
+    "config-page-complete": "Terminado!",
+    "config-page-restart": "Reiniciar a instalação",
+    "config-page-readme": "Leia-me",
+    "config-page-releasenotes": "Notas de lançamento",
+    "config-page-copying": "A copiar",
+    "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",
+    "config-welcome": "=== Verificações do ambiente ===\nSão realizadas verificações básicas para determinar se este ambiente é apropriado para instalação do MediaWiki.\nSe necessitar de pedir ajuda durante a instalação, deve fornecer os resultados destas verificações.",
+    "config-copyright": "=== Direitos de autor e Condições de uso ===\n\n$1\n\nEste programa é 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.\n\nEste programa é 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'''.\nConsulte a licença GNU General Public License para mais detalhes.\n\nEm conjunto com este programa deve ter recebido <doclink href=Copying>uma cópia da licença GNU General Public License</doclink>; se não a recebeu, peça-a por escrito a Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA ou [http://www.gnu.org/copyleft/gpl.html leia-a na internet].",
+    "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki/pt Página principal do MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents/pt Ajuda]\n* [//www.mediawiki.org/wiki/Manual:Contents/pt Manual técnico]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Leia-me</doclink>\n* <doclink href=ReleaseNotes>Notas de lançamento</doclink>\n* <doclink href=Copying>Cópia</doclink>\n* <doclink href=UpgradeDoc>Atualização</doclink>",
+    "config-env-good": "O ambiente foi verificado.\nPode instalar o MediaWiki.",
+    "config-env-bad": "O ambiente foi verificado.\nNão pode instalar o MediaWiki.",
+    "config-env-php": "O PHP $1 está instalado.",
+    "config-env-php-toolow": "O PHP $1 está instalado.\nNo entanto, o MediaWiki requer o PHP $2 ou superior.",
+    "config-unicode-using-utf8": "A usar o utf8_normalize.so, por Brion Vibber, 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 efetuar a normalização Unicode. Irá recorrer-se à implementação em PHP puro, que é mais lenta.\nSe o seu site tem alto volume de tráfego, devia informar-se um pouco sobre a [//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/ projeto ICU].\nDevia [//www.mediawiki.org/wiki/Unicode_normalization_considerations atualizá-la] se tem quaisquer preocupações sobre o uso do Unicode.",
+    "config-no-db": "Não foi possível encontrar um controlador ''(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.\n\nSe usa alojamento partilhado, peça ao fornecedor do alojamento para instalar um controlador apropriado.\nSe foi você quem compilou o PHP, reconfigure-o com um cliente de base de dados ativado; por exemplo, usando <code>./configure --with-mysql</code>.\nSe instalou o PHP a partir de um pacote Debian ou Ubuntu, então precisa de instalar também 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á ativada.'''\n'''Desative-a, se puder.'''\nO 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á ativada!'''\nEsta opção causa corrupção dos dados de entrada, de uma forma imprevisível.\nNã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!'''\nEsta opção causa corrupção dos dados de entrada, de uma forma imprevisível.\nNã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!'''\nEsta opção causa erros e pode corromper os dados de uma forma imprevisível.\nNã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!'''\nEsta opção causa problemas significativos no MediaWiki.\nNã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.\nEste 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.\nO MediaWiki necessita de funções deste módulo e não funcionará com esta configuração.\nSe está a executar o Mandrake, instale o pacote php-xml.",
+    "config-pcre": "Parece faltar o módulo de suporte PCRE.\nPara funcionar, o MediaWiki necessita das funções de expressões regulares compatíveis com Perl.",
+    "config-pcre-no-utf8": "'''Fatal''': O módulo PCRE do PHP parece ter sido compilado sem suporte PCRE_UTF8.\nO MediaWiki necessita do suporte UTF-8 para funcionar corretamente.",
+    "config-memory-raised": "A configuração <code>memory_limit</code> do PHP era $1; foi aumentada para $2.",
+    "config-memory-bad": "'''Aviso:''' A configuração <code>memory_limit</code> do PHP é $1.\nIsto é provavelmente demasiado baixo.\nA instalação poderá falhar!",
+    "config-ctype": "'''Fatal''': O PHP tem de ser compilado com suporte para a [http://www.php.net/manual/en/ctype.installation.php extensão Ctype].",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] instalada",
+    "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].\nA 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.\nConsulte 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>.\nSe possibilitar uploads, a miniaturização de imagens será ativada.",
+    "config-gd": "Foi encontrada a biblioteca gráfica GD.\nSe possibilitar uploads, a miniaturização de imagens será ativada.",
+    "config-no-scaling": "Não foi encontrada a biblioteca gráfica GD nem o ImageMagick.\nA miniaturização de imagens será desativada.",
+    "config-no-uri": "'''Erro:''' Não foi possível determinar a URI atual.\nA 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 diretório por omissão para uploads <code>$1</code>, está vulnerável à execução arbitrária de scripts.\nEmbora 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 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.\nAtualize 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]).\nInstalação interrompida.",
+    "config-using531": "O MediaWiki não pode ser usado com o PHP $1 devido a um problema que envolve parâmetros de referência para <code>__call()</code>.\nPara resolver este problema, atualize o PHP para a versão 5.3.2 ou posterior, ou reverta-o para a 5.3.0.\nInstalação interrompida.",
+    "config-suhosin-max-value-length": "O Suhosin está instalado e limita a $1 bytes o comprimento do parâmetro GET. O componente ResourceLoader do MediaWiki pode tornear este limite, mas prejudicando o desempenho. Se lhe for possível, deve atribuir o valor 1024 ou maior ao parâmetro <code>suhosin.get.max_value_length</code> no ficheiro <code>php.ini</code>, e definir o mesmo valor para <code>$wgResourceLoaderMaxQueryLength</code> no ficheiro LocalSettings.php.",
+    "config-db-type": "Tipo da base de dados:",
+    "config-db-host": "Servidor da base de dados:",
+    "config-db-host-help": "Se a base de dados estiver num servidor separado, introduza aqui o nome ou o endereço IP desse servidor.\n\nSe estiver a usar um servidor partilhado, o fornecedor do alojamento deve fornecer o nome do servidor na documentação.\n\nSe está a fazer a instalação num servidor Windows com MySQL, usar como nome do servidor \"localhost\" poderá não funcionar. Se não funcionar, tente usar \"127.0.0.1\" como endereço IP local.\n\nSe estiver a usar PostgreSQL, deixe este campo em branco para fazer a ligação através de um socket Unix.",
+    "config-db-host-oracle": "TNS (Transparent Network Substrate) da base de dados:",
+    "config-db-host-oracle-help": "Introduza um [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Nome Local de Ligação] válido; tem de estar visível para esta instalação um ficheiro tnsnames.ora.<br />Se está a usar bibliotecas cliente versão 10g ou posterior, também pode usar o método [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Ligação Fácil] de atribuição do nome.",
+    "config-db-wiki-settings": "Identifique esta wiki",
+    "config-db-name": "Nome da base de dados:",
+    "config-db-name-help": "Escolha um nome para identificar a sua wiki.\nO nome não deve conter espaços.\n\nSe estiver a usar um servidor partilhado, o fornecedor do alojamento deve poder fornecer-lhe o nome de uma base de dados que possa usar, ou permite-lhe criar bases de dados através de um painel de controle.",
+    "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:\n\nSe 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.\n\nExiste 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:",
+    "config-db-password-empty": "Introduza a palavra-chave do novo utilizador da base de dados: $1.\nEmbora seja possível criar utilizadores sem palavra-chave, fazê-lo não é seguro.",
+    "config-db-install-username": "Introduza o nome de utilizador que será usado para aceder à base de dados durante o processo de instalação. Este utilizador não é o do MediaWiki; é o utilizador da base de dados.",
+    "config-db-install-password": "Introduza a palavra-chave do utilizador que será usado para aceder à base de dados durante o processo de instalação. Esta palavra-chave não é a do utilizador do MediaWiki; é a palavra-chave do utilizador da base de dados.",
+    "config-db-install-help": "Introduza o nome de utilizador e a palavra-chave que serão usados para aceder à base de dados durante o processo de instalação.",
+    "config-db-account-lock": "Usar o mesmo nome de utilizador e palavra-chave durante a operação normal",
+    "config-db-wiki-account": "Conta de utilizador para a operação normal",
+    "config-db-wiki-help": "Introduza o nome de utilizador e a palavra-chave que serão usados para aceder à base de dados durante a operação normal da wiki.\nSe o utilizador não existir na base de dados, mas a conta de instalação tiver privilégios suficientes, o utilizador que introduzir será criado na base de dados com os privilégios mínimos necessários para a operação normal da wiki.",
+    "config-db-prefix": "Prefixo para as tabelas da base de dados:",
+    "config-db-prefix-help": "Se necessitar de partilhar uma só base de dados entre várias wikis, ou entre o MediaWiki e outra aplicação, pode escolher adicionar um prefixo ao nome de todas as tabelas desta instalação, para evitar conflitos.\nNão use espaços.\n\nNormalmente, este campo deve ficar vazio.",
+    "config-db-charset": "Conjunto de caracteres da base de dados",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 backwards-compatible UTF-8",
+    "config-charset-help": "'''Aviso:''' Se usar '''backwards-compatible UTF-8''' (\"UTF-8 compatível com versões anteriores\") no MySQL 4.1+, e depois fizer cópias de segurança da base de dados usando <code>mysqldump</code>, poderá destruir todos os caracteres que não fazem parte do conjunto ASCII, corrompendo assim, de forma irreversível, as suas cópias de segurança!\n\nNo modo '''binary''' (\"binário\"), o MediaWiki armazena o texto UTF-8 na base de dados em campos binários.\nIsto é mais eficiente do que o modo UTF-8 do MySQL e permite que sejam usados todos os caracteres Unicode.\nNo modo '''UTF-8''', o MySQL saberá em que conjunto de caracteres os seus dados estão e pode apresentá-los e convertê-los da forma mais adequada,\nmas não lhe permitirá armazenar caracteres acima do [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Plano Multilingue Básico].",
+    "config-mysql-old": "É necessário o MySQL $1 ou posterior; tem a versão $2.",
+    "config-db-port": "Porta da base de dados:",
+    "config-db-schema": "Esquema ''(schema)'' do MediaWiki",
+    "config-db-schema-help": "Normalmente, este esquema estará correto.\nAltere-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": "Diretório de dados do SQLite:",
+    "config-sqlite-dir-help": "O SQLite armazena todos os dados num único ficheiro.\n\nDurante a instalação, o servidor de internet precisa de ter permissão de escrita no diretório que especificar.\n\nEste diretório '''não''' deve poder ser acedido diretamente da internet, por isso está a ser colocado onde estão os seus ficheiros PHP.\n\nJuntamente 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.\nIsto 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.\n\nConsidere 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:",
+    "config-oracle-temp-ts": "Tablespace temporário:",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-support-info": "O MediaWiki suporta as seguintes plataformas de base de dados:\n\n$1\n\nSe 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)",
+    "config-support-oracle": "* $1 é uma base de dados de uma empresa comercial. ([http://www.php.net/manual/en/oci8.installation.php How to compile PHP with OCI8 support])",
+    "config-header-mysql": "Definições MySQL",
+    "config-header-postgres": "Definições PostgreSQL",
+    "config-header-sqlite": "Definições SQLite",
+    "config-header-oracle": "Definições Oracle",
+    "config-invalid-db-type": "O tipo de base de dados é inválido",
+    "config-missing-db-name": "Tem de introduzir um valor para \"Nome da base de dados\"",
+    "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.\nUse só letras (a-z, A-Z), algarismos (0-9), sublinhados (_) e pontos (.) dos caracteres ASCII.",
+    "config-invalid-db-name": "O nome da base de dados, \"$1\",  é inválido.\nUse 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.\nUse só letras (a-z, A-Z), algarismos (0-9), sublinhados (_) e hífens (-) dos caracteres ASCII.",
+    "config-connection-error": "$1.\n\nVerifique o servidor, o nome do utilizador e a palavra-chave abaixo e tente novamente.",
+    "config-invalid-schema": "O esquema ''(schema)'' do MediaWiki, \"$1\", é inválido.\nUse só letras (a-z, A-Z), algarismos (0-9) e sublinhados (_) dos caracteres ASCII.",
+    "config-db-sys-create-oracle": "O instalador só permite criar uma conta nova usando uma conta SYSDBA.",
+    "config-db-sys-user-exists-oracle": "A conta \"$1\" já existe. A conta SYSDBA só pode criar uma conta nova!",
+    "config-postgres-old": "É necessário o PostgreSQL $1 ou posterior; tem a versão $2.",
+    "config-sqlite-name-help": "Escolha o nome que identificará a sua wiki.\nNão use espaços ou hífens.\nEste nome será usado como nome do ficheiro de dados do SQLite.",
+    "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>.\n\nO instalador determinou em que nome de utilizador o seu servidor de internet está a correr.\nPara continuar, configure o diretório <code><nowiki>$3</nowiki></code> para poder ser escrito por este utilizador.\nPara fazê-lo em sistemas Unix ou Linux, use:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "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\nNão foi possível determinar em que nome de utilizador o seu servidor de internet está a correr.\nPara continuar, configure o diretório <code><nowiki>$3</nowiki></code> para que este possa ser globalmente escrito por esse utilizador (e por outros!).\nPara fazê-lo em sistemas Unix ou Linux, use:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Ocorreu um erro ao criar o diretório de dados \"$1\".\nVerifique a localização e tente novamente.",
+    "config-sqlite-dir-unwritable": "Não foi possível escrever no diretório \"$1\".\nAltere as permissões para que ele possa ser escrito pelo servidor de internet e tente novamente.",
+    "config-sqlite-connection-error": "$1.\n\nVerifique 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.\nPara atualizá-las para o MediaWiki $1, clique '''Continuar'''.",
+    "config-upgrade-done": "Atualização terminada.\n\nAgora pode [$1 começar a usar a sua wiki].\n\nSe quiser regenerar o seu ficheiro <code>LocalSettings.php</code>, clique o botão abaixo.\nEsta operação '''não é recomendada''' a menos que esteja a ter problemas com a sua wiki.",
+    "config-upgrade-done-no-regenerate": "Atualização terminada.\n\nAgora pode [$1 começar a usar a sua wiki].",
+    "config-regenerate": "Regenerar o LocalSettings.php →",
+    "config-show-table-status": "A consulta <code>SHOW TABLE STATUS</code> falhou!",
+    "config-unknown-collation": "'''Aviso:''' A base de dados está a utilizar uma colação ''(collation)'' desconhecida.",
+    "config-db-web-account": "Conta na base de dados para acesso pela internet",
+    "config-db-web-help": "Selecione o nome de utilizador e a palavra-chave que o servidor de internet irá utilizar para aceder ao servidor da base de dados, durante a operação normal da wiki.",
+    "config-db-web-account-same": "Usar a mesma conta usada na instalação",
+    "config-db-web-create": "Criar a conta se ainda não existir",
+    "config-db-web-no-create-privs": "A conta que especificou para a instalação não tem privilégios suficientes para criar uma conta.\nA 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''': Selecionou o MyISAM para motor de armazenamento do MySQL, uma combinação desaconselhada para usar com o MediaWiki porque:\n* praticamente não permite acessos simultâneos, devido aos bloqueios de tabelas\n* o MyISAM é mais suscetível a perdas da integridade dos dados do que outros motores\n* o código do MediaWiki não trabalha devidamente com o MyISAM\n\nSe a sua instalação do MySQL suporta InnoDB, é altamente recomendado que o escolha em vez do MyISAM.\nSe 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)''.\n\n'''MyISAM''' pode ser mais rápido no modo de utilizador único ou em instalações somente para leitura.\nAs bases de dados MyISAM tendem a ficar corrompidas com maior frequência do que as bases de dados InnoDB.",
+    "config-mysql-charset": "Conjunto de caracteres da base de dados:",
+    "config-mysql-binary": "Binary",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "No modo '''binary''' (\"binário\"), o MediaWiki armazena o texto UTF-8 na base de dados em campos binários.\nIsto é mais eficiente do que o modo UTF-8 do MySQL e permite que sejam usados todos os caracteres Unicode.\n\nNo modo '''UTF-8''', o MySQL saberá em que conjunto de caracteres os seus dados estão e pode apresentá-los e convertê-los da forma mais adequada,\nmas não lhe permitirá armazenar caracteres acima do [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Plano Multilingue Básico].",
+    "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 projeto:",
+    "config-ns-generic": "Projeto",
+    "config-ns-site-name": "O mesmo que o nome da wiki: $1",
+    "config-ns-other": "Outro (especifique)",
+    "config-ns-other-default": "AMinhaWiki",
+    "config-project-namespace-help": "Seguindo o exemplo da Wikipedia, muitas wikis mantêm as páginas das suas normas e políticas, separadas das páginas de conteúdo, num \"'''espaço nominal do projeto'''\".\nTodos os nomes das páginas neste espaço nominal começam com um determinado prefixo, que pode especificar aqui.\nTradicionalmente, 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.\nIntroduza 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.\nEspecifique um espaço nominal do projeto diferente.",
+    "config-admin-box": "Conta de administrador",
+    "config-admin-name": "O seu nome:",
+    "config-admin-password": "Palavra-chave:",
+    "config-admin-password-confirm": "Repita a palavra-chave:",
+    "config-admin-help": "Introduza aqui o seu nome de utilizador preferido, por exemplo, \"João Beltrão\".\nEste é o nome que irá utilizar para entrar na wiki.",
+    "config-admin-name-blank": "Introduza um nome de utilizador para administrador.",
+    "config-admin-name-invalid": "O nome de utilizador especificado \"<nowiki>$1</nowiki>\" é inválido.\nIntroduza um nome de utilizador diferente.",
+    "config-admin-password-blank": "Introduza uma palavra-chave para a conta de administrador.",
+    "config-admin-password-same": "A palavra-chave tem de ser diferente do nome de utilizador.",
+    "config-admin-password-mismatch": "As duas palavras-chave que introduziu não coincidem.",
+    "config-admin-email": "Correio electrónico:",
+    "config-admin-email-help": "Introduza aqui um correio electrónico que lhe permita receber mensagens de outros utilizadores da wiki, reiniciar a sua palavra-chave e receber notificações de alterações às suas páginas vigiadas. Pode deixar o campo vazio.",
+    "config-admin-error-user": "Ocorreu um erro interno ao criar um administrador com o nome \"<nowiki>$1</nowiki>\".",
+    "config-admin-error-password": "Ocorreu um erro interno ao definir uma palavra-chave para o administrador \"<nowiki>$1</nowiki>\": <pre>$2</pre>",
+    "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.\nDeve 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.\nPara subscrever esta lista de divulgação tem de fornecer um endereço de correio electrónico.",
+    "config-almost-done": "Está quase a terminar!\nAgora pode saltar as configurações restantes e instalar já a wiki.",
+    "config-optional-continue": "Faz-me mais perguntas.",
+    "config-optional-skip": "Já estou aborrecido, instala lá a wiki.",
+    "config-profile": "Perfil de permissões:",
+    "config-profile-wiki": "Wiki tradicional",
+    "config-profile-no-anon": "Criação de conta exigida",
+    "config-profile-fishbowl": "Somente utilizadores autorizados",
+    "config-profile-private": "Wiki privada",
+    "config-profile-help": "As wikis funcionam melhor quando se deixa tantas pessoas editá-las quanto possível.\nNo MediaWiki, é fácil rever as alterações recentes e reverter quaisquer estragos causados por utilizadores novatos ou maliciosos.\n\nNo entanto, muitas pessoas consideram o MediaWiki útil de variadas formas e nem sempre é fácil convencer todas as pessoas dos benefícios desta filosofia wiki.\nPor isso pode optar.\n\nUma '''{{int:config-profile-wiki}}''' permite que todos a editem, sem sequer necessitar de autenticação.\nUma wiki com '''{{int:config-profile-no-anon}}''' atribui mais responsabilidade, mas pode afastar os colaboradores ocasionais.\n\nUm cenário '''{{int:config-profile-fishbowl}}''' permite que os utilizadores aprovados editem, mas que o público visione as páginas, incluindo o historial das mesmas.\nUma '''{{int:config-profile-private}}''' só permite que os utilizadores aprovados visionem as páginas e as editem.\n\nApós a instalação, estarão disponíveis mais configurações de privilégios. Consulte [//www.mediawiki.org/wiki/Manual:User_rights a entrada relevante no Manual].",
+    "config-license": "Direitos de autor e licença:",
+    "config-license-none": "Sem rodapé com a licença",
+    "config-license-cc-by-sa": "Creative Commons - Atribuição - Partilha nos Mesmos Termos",
+    "config-license-cc-by": "Creative Commons - Atribuição",
+    "config-license-cc-by-nc-sa": "Creative Commons - Atribuição - Uso Não Comercial - Partilha nos Mesmos Termos",
+    "config-license-cc-0": "Creative Commons Zero (Domínio Público)",
+    "config-license-gfdl": "GNU Free Documentation License 1.3 ou posterior",
+    "config-license-pd": "Domínio Público",
+    "config-license-cc-choose": "Selecione uma licença personalizada Creative Commons",
+    "config-license-help": "Muitas wikis de acesso público licenciam todas as colaborações com uma [http://freedomdefined.org/Definition licença livre].\nIsto ajuda a criar um sentido de propriedade da comunidade e encoraja as colaborações a longo prazo.\nTal não é geralmente necessário nas wikis privadas ou corporativas.\n\nSe pretende que seja possível usar textos da Wikipédia na sua wiki e que seja possível a Wikipédia aceitar textos copiados da sua wiki, deve escolher a licença Creative Commons - Atribuição - Partilha nos Mesmos Termos.\n\nA licença anterior da Wikipédia era a licença GNU Free Documentation License.\nA GFDL é uma licença válida, mas de difícil compreensão.\nTambém é difícil reutilizar conteúdos licenciados com a GFDL.",
+    "config-email-settings": "Definições do correio electrónico",
+    "config-enable-email": "Ativar mensagens eletrónicas de saída",
+    "config-enable-email-help": "Se quer que o correio eletrónico funcione, as [http://www.php.net/manual/en/mail.configuration.php definições de correio eletrónico do PHP] têm de estar configuradas corretamente.\nSe não pretende viabilizar qualquer funcionalidade de correio eletrónico, pode desativá-lo aqui.",
+    "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.\nSó os endereços de correio eletrónico autenticados podem receber mensagens eletrónicas dos outros utilizadores ou alterar as mensagens de notificação.\nÉ '''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.\nÉ para este endereço que serão enviadas as mensagens que não podem ser entregues.\nMuitos servidores de correio electrónico exigem que pelo menos a parte do nome do domínio seja válida. \\",
+    "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.\nPara mais informações, leia a [//www.mediawiki.org/wiki/Manual:Security seção sobre segurança] do Manual Técnico.\n\nPara 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.\nDepois 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.\nO 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.\nColoque na wiki uma imagem com estas dimensões e introduza aqui a URL dessa imagem.\n\nSe não pretende usar um logótipo, deixe este campo em branco.",
+    "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].\nPara poder usá-los, o MediaWiki necessita de acesso à internet.\n\nPara mais informações sobre esta funcionalidade, incluindo instruções sobre como configurá-la para usar outras wikis em vez da Wikimedia Commons, consulte o [//mediawiki.org/wiki/Manual:$wgForeignFileRepos Manual Técnico].",
+    "config-cc-error": "O auxiliar de escolha de licenças da Creative Commons não produziu resultados.\nIntroduza 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": "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.\nSites 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 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.\nDeve-se colocar um por linha e indicar a porta a utilizar. Por exemplo:\n 127.0.0.1:11211\n 192.168.1.25:1234",
+    "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.\nSe 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 diretório <code>./extensions</code>.\n\nEstas 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.\nPasse para a próxima página, por favor.",
+    "config-install-begin": "Ao clicar \"{{int:config-continue}}\", vai iniciar a instalação do MediaWiki.\nSe quiser fazer mais alterações, clique Voltar.",
+    "config-install-step-done": "terminado",
+    "config-install-step-failed": "falhou",
+    "config-install-extensions": "A incluir as extensões",
+    "config-install-database": "A preparar a base de dados",
+    "config-install-schema": "A criar o esquema (''schema'') da base de dados",
+    "config-install-pg-schema-not-exist": "O esquema ''(schema)'' PostgreSQL não existe",
+    "config-install-pg-schema-failed": "A criação das tabelas falhou.\nCertifique-se de que o utilizador \"$1\" pode escrever no esquema ''(schema)'' \"$2\".",
+    "config-install-pg-commit": "A gravar as alterações",
+    "config-install-pg-plpgsql": "A verificar a presença da linguagem PL/pgSQL",
+    "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.\nA 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.\n\nO 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",
+    "config-install-user-alreadyexists": "O utilizador \"$1\" já existe",
+    "config-install-user-create-failed": "A criação do utilizador \"$1\" falhou: $2",
+    "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.\nMarque 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.\nA criação das tabelas será saltada.",
+    "config-install-tables-failed": "'''Erro''': A criação das tabelas falhou com o seguinte erro: $1",
+    "config-install-interwiki": "A preencher a tabela padrão de interwikis",
+    "config-install-interwiki-list": "Não foi possível encontrar o ficheiro <code>interwiki.list</code>.",
+    "config-install-interwiki-exists": "'''Aviso''': A tabela de interwikis parece já conter entradas.\nO preenchimento padrão desta tabela será saltado.",
+    "config-install-stats": "A inicializar as estatísticas",
+    "config-install-keys": "A gerar as chaves secretas",
+    "config-insecure-keys": "'''Warning:''' {{PLURAL:$2|A chave segura|As chaves seguras}} ($1) {{PLURAL:$2|gerada durante a instalação não é completamente segura|geradas durante a instalação não são completamente seguras}}. Considere a possibilidade de {{PLURAL:$2|alterá-la|alterá-las}} manualmente.",
+    "config-install-sysop": "A criar a conta de administrador",
+    "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 ativadas",
+    "config-install-mainpage-failed": "Não foi possível inserir a página principal: $1",
+    "config-install-done": "'''Parabéns!'''\nTerminou a instalação do MediaWiki.\n\nO instalador gerou um ficheiro <code>LocalSettings.php</code>.\nEste ficheiro contém todas as configurações.\n\nPrecisa 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.\n\nSe o download não foi iniciado, ou se o cancelou, pode recomeçá-lo clicando o link abaixo:\n\n$3\n\n'''Nota''': Se não fizer isto agora, o ficheiro que foi gerado deixará de estar disponível quando sair do processo de instalação.\n\nDepois de terminar o passo anterior, pode '''[$2 entrar na wiki]'''.",
+    "config-download-localsettings": "Download do <code>LocalSettings.php</code>",
+    "config-help": "ajuda",
+    "config-nofile": "Não foi possível encontrar o ficheiro \"$1\". Terá sido apagado?",
+    "mainpagetext": "'''MediaWiki instalado com sucesso.'''",
+    "mainpagedocfooter": "Consulte o [//meta.wikimedia.org/wiki/Help:Contents Guia de Utilizadores] para informações sobre o uso do software wiki.\n\n== Onde começar ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista de opções de configuração]\n* [//www.mediawiki.org/wiki/Manual:FAQ Perguntas e respostas frequentes sobre o MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Subscreva a lista de divulgação de novas versões do MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/qqq.json b/includes/installer/i18n/qqq.json
new file mode 100644 (file)
index 0000000..0663853
--- /dev/null
@@ -0,0 +1,188 @@
+{
+    "@metadata": {
+        "authors": [
+            "Amire80",
+            "Dani",
+            "EugeneZelenko",
+            "Kghbln",
+            "McDutchie",
+            "Mormegil",
+            "Nemo bis",
+            "Nike",
+            "Platonides",
+            "Purodha",
+            "Raymond",
+            "SPQRobin",
+            "Shirayuki",
+            "Siebrand",
+            "Umherirrender",
+            "Waldir"
+        ]
+    },
+    "config-desc": "Short description of the installer.",
+    "config-title": "Parameters:\n* $1 is the version of MediaWiki that is being installed.",
+    "config-information": "{{Identical|Information}}",
+    "config-localsettings-upgrade": "{{doc-important|Do not translate <code>LocalSettings.php</code> and <code>$wgUpgradeKey</code>.}}",
+    "config-localsettings-cli-upgrade": "{{doc-important|Do not translate the <code>LocalSettings.php</code> and the <code>update.php</code> parts.}}",
+    "config-upgrade-key-missing": "Used in info box. Parameters:\n* $1 - the upgrade key, enclosed in <code><nowiki><pre></nowikI></code> tag.",
+    "config-localsettings-incomplete": "{{doc-important|Do not translate <code>LocalSettings.php</code> and <code><nowiki>{{int:Config-continue}}</nowiki><code>.}}\nParameters:\n* $1 - name of variable (any one of required variables or installer-specific global variables)",
+    "config-localsettings-connection-error": "{{doc-important|Do not translate <code>LocalSettings.php</code>.}}\nUsed as error message. Parameters:\n* $1 - (probably empty string)",
+    "config-session-error": "Parameters:\n* $1 is the error that was encountered with the session.",
+    "config-session-expired": "Parameters:\n* $1 is the configured session lifetime.",
+    "config-no-session": "{{doc-important|Do not translate <code>php.ini</code> and <code>session.save_path</code>.}}\nUsed as error message.",
+    "config-back": "{{Identical|Back}}",
+    "config-continue": "{{Identical|Continue}}",
+    "config-page-language": "{{Identical|Language}}",
+    "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.",
+    "config-copyright": "This message follows {{msg-mw|config-env-good}}.\n\nParameters:\n* $1 - copyright and author list",
+    "config-sidebar": "Maximum width for words is 24 characters. Only visible part of the translation counts to this limit.",
+    "config-env-php": "Parameters:\n* $1 - the version of PHP that has been installed\nSee also:\n* {{msg-mw|config-env-php-toolow}}",
+    "config-env-php-toolow": "Parameters:\n* $1 - the version of PHP that has been installed\n* $2 - minimum PHP version number\nSee also:\n* {{msg-mw|config-env-php}}",
+    "config-unicode-pure-php-warning": "PECL is the name of a group producing standard pieces of software for PHP, and intl is the name of their library handling some aspects of internationalization.",
+    "config-unicode-update-warning": "ICU is a body producing standard software tools for support of Unicode and other internationalization aspects. This message warns the system administrator installing MediaWiki that the server's software is not up-to-date and MediaWiki will have problems handling some characters.",
+    "config-no-db": "{{doc-important|Do not translate \"<code>./configure --with-mysqli</code>\" and \"<code>php5-mysql</code>\".}}\nParameters:\n* $1 is comma separated list of database types supported by MediaWiki.",
+    "config-outdated-sqlite": "Used as warning. Parameters:\n* $1 - the version of SQLite that has been installed\n* $2 - minimum version",
+    "config-no-fts3": "A \"[[:wikipedia:Front and back ends|backend]]\" is a system or component that ordinary users don't interact with directly and don't need to know about, and that is responsible for a distinct task or service - for example, a storage back-end is a generic system for storing data which other applications can use. Possible alternatives for back-end are \"system\" or \"service\", or (depending on context and language) even leave it untranslated.",
+    "config-magic-quotes-runtime": "{{Related|Config-fatal}}",
+    "config-magic-quotes-sybase": "{{Related|Config-fatal}}",
+    "config-mbstring": "{{Related|Config-fatal}}",
+    "config-ze1": "{{Related|Config-fatal}}",
+    "config-pcre": "PCRE is an initialism for \"Perl-compatible regular expression\". Perl is programming language whose [[:w:regular expression|regular expression]] syntax is popular and used in other languages using a library called PCRE.",
+    "config-pcre-old": "Parameters:\n* $1 - minimum PCRE version number\n* $2 - the installed version of [[wikipedia:PCRE|PCRE]]\n{{Related|Config-fatal}}",
+    "config-pcre-no-utf8": "PCRE is a name of a programmers' library for supporting regular expressions. It can probably be translated without change.\n{{Related|Config-fatal}}",
+    "config-memory-raised": "Parameters:\n* $1 is the configured <code>memory_limit</code>.\n* $2 is the value to which <code>memory_limit</code> was raised.",
+    "config-memory-bad": "Parameters:\n* $1 is the configured <code>memory_limit</code>.",
+    "config-ctype": "Message if support for [http://www.php.net/manual/en/ctype.installation.php Ctype] is missing from PHP",
+    "config-json": "Message if support for [[wikipedia:JSON|JSON]] is missing from PHP.\n* \"[[wikipedia:Red Hat Enterprise Linux|Red Hat Enterprise Linux]]\" (RHEL) and \"[[wikipedia:CentOS|CentOS]]\" refer to two almost-identical Linux distributions. \"5 and 6\" refers to version 5 or 6 of either distribution. Because RHEL 7 likely will not include the PHP extension, do not translate as \"5 or newer\".\n* \"The [http://www.php.net/json PHP extension]\" is the JSON extension included with PHP 5.2 and newer.\n* \"The [http://pecl.php.net/package/jsonc PECL extension]\" is based on the PHP extension, though excludes code some distributions have found unacceptable (see [[bugzilla:47431]]).",
+    "config-xcache": "Message indicates if this program is available",
+    "config-apc": "Message indicates if this program is available",
+    "config-wincache": "Message indicates if this program is available",
+    "config-git": "Message if Git version control software is available.\nParameter:\n* $1 is the <code>Git</code> executable file name.",
+    "config-git-bad": "Message if Git version control software is not found.",
+    "config-imagemagick": "$1 is ImageMagick's <code>convert</code> executable file name.\n\nAdd dir=\"ltr\" to the <nowiki><code></nowiki> for right-to-left languages.",
+    "config-no-cli-uri": "Parameters:\n* $1 is the default value for scriptpath.",
+    "config-using-server": "Used as a part of environment check result. Parameters:\n* $1 - default server name",
+    "config-using-uri": "Used as a part of environment check result. Parameters:\n* $1 - server name\n* $2 - script path",
+    "config-uploads-not-safe": "Used as a part of environment check result. Parameters:\n* $1 - name of directory for images: <code>$IP/images/</code>",
+    "config-no-cli-uploads-check": "CLI = [[w:Command-line interface|command-line interface]] (i.e. the installer runs as a command-line script, not using HTML interface via an internet browser)",
+    "config-using531": "Used as error message. Parameters:\n* $1 - the version of PHP that has been installed",
+    "config-suhosin-max-value-length": "{{doc-important|Do not translate \"length\", \"suhosin.get.max_value_length\", \"php.ini\", \"$wgResourceLoaderMaxQueryLength\" and \"LocalSettings.php\".}}\nMessage shown when PHP parameter <code>suhosin.get.max_value_length</code> is between 0 and 1023 (that max value is hard set in MediaWiki software).",
+    "config-db-host-help": "{{doc-singularthey}}",
+    "config-db-host-oracle": "TNS = [[:wikipedia:Transparent Network Substrate|Transparent Network Substrate]] (<== wikipedia link)",
+    "config-db-host-oracle-help": "See also:\n* {{msg-mw|Config-invalid-db-server-oracle}}",
+    "config-db-wiki-settings": "This is more acurate: \"Enter identifying or distinguishing data for this wiki\" since a MySQL database can host tables of several wikis.",
+    "config-db-account-oracle-warn": "A \"[[:wikipedia:Front and back ends|backend]]\" is a system or component that ordinary users don't interact with directly and don't need to know about, and that is responsible for a distinct task or service - for example, a storage back-end is a generic system for storing data which other applications can use. Possible alternatives for back-end are \"system\" or \"service\", or (depending on context and language) even leave it untranslated.",
+    "config-db-password-empty": "Used as error message. Parameters:\n* $1 - database username",
+    "config-db-account-lock": "It might be easier to translate ''normal operation'' as \"also after the installation process\"",
+    "config-mysql-old": "Used as error message. Parameters:\n* $1 - minimum version\n* $2 - the version of MySQL that has been installed",
+    "config-pg-test-error": "* $1 - database name\n* $2 - error message",
+    "config-sqlite-dir-help": "{{doc-important|Do not translate <code>.htaccess</code> and <code>/var/lib/mediawiki/yourwiki</code>.}}\nUsed in help box.",
+    "config-type-mysql": "\"Or compatible\" refers to several database systems that are compatible with MySQL, as explained in {{msg-mw|config-dbsupport-mysql}}, and thus also work with this choice of database type.",
+    "config-type-postgres": "{{optional}}",
+    "config-type-sqlite": "{{optional}}",
+    "config-type-oracle": "{{optional}}",
+    "config-type-mssql": "{{optional}}",
+    "config-header-mssql": "Used as a section heading on the installer form, inside of a fieldset",
+    "config-support-info": "Parameters:\n* $1 - a list of DBMSs that MediaWiki supports, composed with config-dbsupport-* messages.",
+    "config-support-mysql": "Parameters:\n* $1 - a link to the MySQL home page having the anchor text \"MySQL\".",
+    "config-support-postgres": "Parameters:\n* $1 - a link to the PostgreSQL home page having the anchor text \"PostgreSQL\".",
+    "config-support-sqlite": "Parameters:\n* $1 - a link to the SQLite home page having the anchor text \"SQLite\".",
+    "config-support-oracle": "Parameters:\n* $1 - a link to the Oracle home page, the anchor text of which is \"Oracle\".",
+    "config-dbsupport-mysql": "Used in {{msg-mw|config-support-info}}.",
+    "config-dbsupport-postgres": "Used in {{msg-mw|config-support-info}}.",
+    "config-dbsupport-sqlite": "Used in {{msg-mw|config-support-info}}.",
+    "config-dbsupport-oracle": "Used in {{msg-mw|config-support-info}}.",
+    "config-invalid-db-server-oracle": "Used as error message. Parameters:\n* $1 - database server name\nSee also:\n* {{msg-mw|Config-db-host-oracle-help}}",
+    "config-support-mssql": "Parameters:\n* $1 - a link to the Microsoft SQL Server home page, the anchor text of which is \"Microsoft SQL Server\".",
+    "config-invalid-db-name": "Used as error message. Parameters:\n* $1 - database name\nSee also:\n* {{msg-mw|Config-invalid-db-prefix}}",
+    "config-invalid-db-prefix": "Used as error message. Parameters:\n* $1 - database prefix\nSee also:\n* {{msg-mw|Config-invalid-db-name}}",
+    "config-connection-error": "$1 is the external error from the database, such as \"DB connection error: Access denied for user 'dba'@'localhost' (using password: YES) (localhost).\"\n\nIf you're translating this message to a right-to-left language, consider writing <nowiki><div dir=\"ltr\">$1.</div></nowiki>. (When the bidi features for HTML5 will be implemented in the browsers, it will probably be a good idea to write it as <nowiki><div dir=\"auto\">$1.</div></nowiki>.)",
+    "config-invalid-schema": "*$1 - schema name",
+    "config-db-sys-user-exists-oracle": "Used as error message. Parameters:\n* $1 - database username",
+    "config-postgres-old": "Used as error message. Used as warning. Parameters:\n* $1 - minimum version\n* $2 - the version of PostgreSQL that has been installed",
+    "config-mssql-old": "Used as an error message. Parameters:\n* $1 - minimum version\n* $2 - the version of Microsoft SQL Server that has been installed",
+    "config-sqlite-parent-unwritable-group": "Used as SQLite error message. Parameters:\n* $1 - data directory\n* $2 - \"dirname\" part of $1\n* $3 - \"basename\" part of $1\n* $4 - web server's primary group name\nSee also:\n* {{msg-mw|Config-sqlite-parent-unwritable-nogroup}}",
+    "config-sqlite-parent-unwritable-nogroup": "Used as SQLite error message. Parameters:\n* $1 - data directory\n* $2 - \"dirname\" part of $1\n* $3 - \"basename\" part of $1\nSee also:\n* {{msg-mw|Config-sqlite-parent-unwritable-group}}",
+    "config-sqlite-mkdir-error": "Used as SQLite error message. Parameters:\n* $1 - data directory name",
+    "config-sqlite-dir-unwritable": "webserver refers to a software like Apache or Lighttpd.",
+    "config-sqlite-connection-error": "Used as SQLite error message. Parameters:\n* $1 - error message which SQLite server returned",
+    "config-sqlite-readonly": "Used as SQLite error message. Parameters:\n* $1 - filename",
+    "config-sqlite-cant-create-db": "Used as SQLite error message. Parameters:\n* $1 - filename",
+    "config-mssql-auth": "radio button label",
+    "config-mssql-install-auth": "Used as the help text for the \"Authentication type\" radio button when typing in database settings for installation",
+    "config-mssql-web-auth": "Used as the help text for the \"Authentication type\" radio button when typing in database settings for normal wiki usage",
+    "config-mssql-sqlauth": "Radio button",
+    "config-mssql-windowsauth": "Radio button. The official term is \"Integrated Windows Authentication\" but Microsoft itself uses \"Windows Authentication\" elsewhere in Microsoft SQL Server as a synonym.",
+    "config-can-upgrade": "Parameters:\n* $1 - Version or Revision indicator.",
+    "config-upgrade-done": "Used as success message. Parameters:\n* $1 - full URL of index.php\nSee also:\n* {{msg-mw|config-upgrade-done-no-regenerate}}",
+    "config-upgrade-done-no-regenerate": "Used as success message. Parameters:\n* $1 - full URL of index.php\nSee also:\n* {{msg-mw|config-upgrade-done}}",
+    "config-regenerate": "This message appears in a button after LocalSettings.php is generated and downloaded at the end of the MediaWiki installation process.",
+    "config-show-table-status": "{{doc-important|\"<code>SHOW TABLE STATUS</code>\" is a MySQL command. Do not translate this.}}",
+    "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.\n\nSee also:\n* {{msg-mw|Config-ns-site-name}}\n* {{msg-mw|Config-ns-other}}\n{{Identical|Project}}",
+    "config-ns-site-name": "Used as label for \"namespace type\" radio button. Parameters:\n* $1 - wiki name\nSee also:\n* {{msg-mw|Config-ns-generic}}\n* {{msg-mw|Config-ns-other}}",
+    "config-ns-other": "Used as label for \"namespace type\" radio button.\n\nThis message is followed by the input box which enables to '''specify''' a namespace name.\n\nSee also:\n* {{msg-mw|Config-ns-site-name}}\n* {{msg-mw|Config-ns-generic}}",
+    "config-ns-invalid": "Used as error message. Parameters:\n* $1 - namespace name\nSee also:\n* {{msg-mw|Config-ns-conflict}}",
+    "config-ns-conflict": "Used as error message. Parameters:\n* $1 - namespace name\nSee also:\n* {{msg-mw|Config-ns-invalid}}",
+    "config-admin-name": "{{Identical|Your name}}",
+    "config-admin-password": "{{Identical|Password}}",
+    "config-admin-name-invalid": "Used as error message. Parameters:\n* $1 - username of administrator",
+    "config-admin-email": "{{Identical|E-mail address}}",
+    "config-admin-error-user": "Used as error message. Parameters:\n* $1 - username of administrator\nSee also:\n* {{msg-mw|Config-admin-error-password}}",
+    "config-admin-error-password": "Used as error message. Parameters:\n* $1 - username of administrator\n* $2 - error message\nSee also:\n* {{msg-mw|Config-admin-error-user}}",
+    "config-subscribe": "Used as label for the installer checkbox",
+    "config-subscribe-help": "\"Low-volume\" in this context means that there will be few e-mails to that mailing list per time period.",
+    "config-profile-help": "Messages referenced:\n* {{msg-mw|config-profile-wiki}}\n* {{msg-mw|config-profile-no-anon}}\n* {{msg-mw|config-profile-fishbowl}}\n* {{msg-mw|config-profile-private}}",
+    "config-email-settings": "{{Identical|E-mail setting}}",
+    "config-email-user": "{{Identical|Enable user-to-user e-mail}}",
+    "config-upload-help": "The word \"mode\" here refers to the access rights given to various user groups when attempting to create and store files and/or subdiretories in the said directory on the server. It also refers to the <code>mode</code> command used to maipulate said right mask under Unix, Linux, and similar operating systems. A less operating-system-centric translation is fine.",
+    "config-logo-help": "",
+    "config-instantcommons": "Used as label for the checkbox.\n\nThe help message for this checkbox is:\n* {{msg-mw|Config-instantcommons-help}}",
+    "config-instantcommons-help": "Used as help message for the checkbox which is labeled {{msg-mw|config-instantcommons}}.",
+    "config-cc-not-chosen": "{{doc-important|Do not translate the \"<code>proceed</code>\" part.}}\nThis message refers to a block of HTML being embedded into the installer page. It comes from the Creative Commons Web site. The block is in the English language. It is a scripted license chooser. When an individual license has been selected, it asks you to click \"proceed\" so as to return to the MediaWiki installer page.",
+    "config-memcached-servers": "{{doc-important|Do not translate \"memcached\".}}\n{{Identical|Memcached server}}",
+    "config-memcache-badip": "Used as error message. Parameters:\n* $1 - IP address for Memcached\nSee also:\n* {{msg-mw|Config-memcache-noport}}\n* {{msg-mw|Config-memcache-badport}}",
+    "config-memcache-noport": "Used as error message. Parameters:\n* $1 - Memcached server name\nSee also:\n* {{msg-mw|Config-memcache-badip}}\n* {{msg-mw|Config-memcache-badport}}",
+    "config-memcache-badport": "Used as error message. Parameters:\n* $1 - 1 (hard-coded)\n* $2 - 65535 (hard-coded)\nSee also:\n* {{msg-mw|Config-memcache-badip}}\n* {{msg-mw|Config-memcache-noport}}",
+    "config-extensions": "{{Identical|Extension}}",
+    "config-extensions-help": "{{doc-important|Do not translate <code>./extensions</code>.}}\nUsed in help box.",
+    "config-install-step-done": "{{Identical|Done}}",
+    "config-install-step-failed": "{{Identical|Failed}}",
+    "config-install-database": "*{{msg-mw|Config-install-database}}\n*{{msg-mw|Config-install-tables}}\n*{{msg-mw|Config-install-schema}}\n*{{msg-mw|Config-install-user}}\n*{{msg-mw|Config-install-interwiki}}\n*{{msg-mw|Config-install-stats}}\n*{{msg-mw|Config-install-keys}}\n*{{msg-mw|Config-install-sysop}}\n*{{msg-mw|Config-install-mainpage}}",
+    "config-install-schema": "*{{msg-mw|Config-install-database}}\n*{{msg-mw|Config-install-tables}}\n*{{msg-mw|Config-install-schema}}\n*{{msg-mw|Config-install-user}}\n*{{msg-mw|Config-install-interwiki}}\n*{{msg-mw|Config-install-stats}}\n*{{msg-mw|Config-install-keys}}\n*{{msg-mw|Config-install-sysop}}\n*{{msg-mw|Config-install-mainpage}}",
+    "config-install-pg-schema-failed": "Parameters:\n* $1 = database user name (usernames in the database are unrelated to wiki user names)\n* $2 =",
+    "config-pg-no-plpgsql": "Used as error message. Parameters:\n* $1 - database name",
+    "config-install-user": "Message indicates that the user is being created\n\nSee also:\n*{{msg-mw|Config-install-database}}\n*{{msg-mw|Config-install-tables}}\n*{{msg-mw|Config-install-schema}}\n*{{msg-mw|Config-install-user}}\n*{{msg-mw|Config-install-interwiki}}\n*{{msg-mw|Config-install-stats}}\n*{{msg-mw|Config-install-keys}}\n*{{msg-mw|Config-install-sysop}}\n*{{msg-mw|Config-install-mainpage}}",
+    "config-install-user-alreadyexists": "Used as warning. Parameters:\n* $1 - database username",
+    "config-install-user-create-failed": "Used as MySQL warning and as PostgreSQL error. Parameters:\n* $1 - database username\n* $2 - detailed warning/error message",
+    "config-install-user-grant-failed": "Parameters:\n* $1 is the database username for which granting rights failed\n* $2 is the error message",
+    "config-install-user-missing": "Used as PostgreSQL error message. Parameters:\n* $1 - database username\nSee also:\n* {{msg-mw|Config-install-user-missing-create}}",
+    "config-install-user-missing-create": "Used as PostgreSQL error message. Parameters:\n* $1 - database username\nSee also:\n* {{msg-mw|Config-install-user-missing}}",
+    "config-install-tables": "Message indicates that the tables are being created\n\nSee also:\n*{{msg-mw|Config-install-database}}\n*{{msg-mw|Config-install-tables}}\n*{{msg-mw|Config-install-schema}}\n*{{msg-mw|Config-install-user}}\n*{{msg-mw|Config-install-interwiki}}\n*{{msg-mw|Config-install-stats}}\n*{{msg-mw|Config-install-keys}}\n*{{msg-mw|Config-install-sysop}}\n*{{msg-mw|Config-install-mainpage}}",
+    "config-install-tables-failed": "Used as PostgreSQL error message. Parameters:\n* $1 - detailed error message",
+    "config-install-interwiki": "Message indicates that the interwikitables are being populated\n\nSee also:\n*{{msg-mw|Config-install-database}}\n*{{msg-mw|Config-install-tables}}\n*{{msg-mw|Config-install-schema}}\n*{{msg-mw|Config-install-user}}\n*{{msg-mw|Config-install-interwiki}}\n*{{msg-mw|Config-install-stats}}\n*{{msg-mw|Config-install-keys}}\n*{{msg-mw|Config-install-sysop}}\n*{{msg-mw|Config-install-mainpage}}",
+    "config-install-interwiki-list": "{{doc-important|Do not translate <code>interwiki.list</code>.}}\nUsed as error message.",
+    "config-install-stats": "*{{msg-mw|Config-install-database}}\n*{{msg-mw|Config-install-tables}}\n*{{msg-mw|Config-install-schema}}\n*{{msg-mw|Config-install-user}}\n*{{msg-mw|Config-install-interwiki}}\n*{{msg-mw|Config-install-stats}}\n*{{msg-mw|Config-install-keys}}\n*{{msg-mw|Config-install-sysop}}\n*{{msg-mw|Config-install-mainpage}}",
+    "config-install-keys": "*{{msg-mw|Config-install-database}}\n*{{msg-mw|Config-install-tables}}\n*{{msg-mw|Config-install-schema}}\n*{{msg-mw|Config-install-user}}\n*{{msg-mw|Config-install-interwiki}}\n*{{msg-mw|Config-install-stats}}\n*{{msg-mw|Config-install-keys}}\n*{{msg-mw|Config-install-sysop}}\n*{{msg-mw|Config-install-mainpage}}",
+    "config-insecure-keys": "Parameters:\n* $1 - A list of names of the secret keys that were generated.\n* $2 - the number of items in the list $1, to be used with PLURAL.",
+    "config-install-sysop": "Message indicates that the administrator user account is being created\n\nSee also:\n*{{msg-mw|Config-install-database}}\n*{{msg-mw|Config-install-tables}}\n*{{msg-mw|Config-install-schema}}\n*{{msg-mw|Config-install-user}}\n*{{msg-mw|Config-install-interwiki}}\n*{{msg-mw|Config-install-stats}}\n*{{msg-mw|Config-install-keys}}\n*{{msg-mw|Config-install-sysop}}\n*{{msg-mw|Config-install-mainpage}}",
+    "config-install-subscribe-fail": "{{doc-important|\"mediawiki-announce\" is the name of a mailing list and should not be translated.}}",
+    "config-install-mainpage": "*{{msg-mw|Config-install-database}}\n*{{msg-mw|Config-install-tables}}\n*{{msg-mw|Config-install-schema}}\n*{{msg-mw|Config-install-user}}\n*{{msg-mw|Config-install-interwiki}}\n*{{msg-mw|Config-install-stats}}\n*{{msg-mw|Config-install-keys}}\n*{{msg-mw|Config-install-sysop}}\n*{{msg-mw|Config-install-mainpage}}",
+    "config-install-mainpage-failed": "Used as error message. Parameters:\n* $1 - detailed error message",
+    "config-install-done": "Parameters:\n* $1 is the URL to LocalSettings download\n* $2 is a link to the wiki.\n* $3 is a download link with attached download icon. The config-download-localsettings message will be used as the link text.",
+    "config-download-localsettings": "The link text used in the download link in config-install-done.",
+    "config-help": "This is used in help boxes.\n{{Identical|Help}}",
+    "config-nofile": "Used as failure message. Parameters:\n* $1 - filename",
+    "config-extension-link": "Shown on last page of installation to inform about possible extensions.",
+    "mainpagetext": "Along with {{msg-mw|mainpagedocfooter}}, the text you will see on the Main Page when your wiki is installed.",
+    "mainpagedocfooter": "Along with {{msg-mw|mainpagetext}}, the text you will see on the Main Page when your wiki is installed.\nThis might be a good place to put information about <nowiki>{{GRAMMAR:}}</nowiki>. See [[{{NAMESPACE}}:{{BASEPAGENAME}}/fi]] for an example. For languages having grammatical distinctions and not having an appropriate <nowiki>{{GRAMMAR:}}</nowiki> software available, a suggestion to check and possibly amend the messages having <nowiki>{{SITENAME}}</nowiki> may be valuable. See [[{{NAMESPACE}}:{{BASEPAGENAME}}/ksh]] for an example."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/qu.json b/includes/installer/i18n/qu.json
new file mode 100644 (file)
index 0000000..186feb2
--- /dev/null
@@ -0,0 +1,20 @@
+{
+    "@metadata": {
+        "authors": [
+            "AlimanRuna"
+        ]
+    },
+    "config-desc": "MediaWiki tiyachiq",
+    "config-title": "MediaWiki $1 tiyachiy",
+    "config-information": "Willay",
+    "config-your-language": "Rimayniyki:",
+    "config-wiki-language": "Wiki rimay:",
+    "config-back": "← Ñawpaqman",
+    "config-extensions": "Mast'ariykuna",
+    "config-install-step-done": "rurasqañam",
+    "config-install-step-failed": "manam aypasqachu",
+    "config-help": "yanapay",
+    "config-nofile": "\"$1\" sutiyuq willañiqiqa manam tarisqachu. Qullusqachu?",
+    "mainpagetext": "'''MediaWiki nisqa llamp'u kaqqa aypaylla takyachisqañam.'''",
+    "mainpagedocfooter": "Wiki llamp'u kaqmanta willasunaykipaqqa [//meta.wikimedia.org/wiki/Help:Contents Ruraqpaq yanapana] ''(User's Guide)'' sutiyuq p'anqata qhaway.\n\n== Qallarichkaspa ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Kunphigurasyun churanamanta sutisuyu]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki nisqamanta pasaq tapuykuna]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki kachaykuy e-chaski sutisuyu]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources MediaWiki nisqata qampa rimaykiman t'ikray]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/rgn.json b/includes/installer/i18n/rgn.json
new file mode 100644 (file)
index 0000000..7c3d7aa
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''L'instalaziòn d'MediaWiki l'è andêda ben'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/rm.json b/includes/installer/i18n/rm.json
new file mode 100644 (file)
index 0000000..c8f5dde
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Gion-andri"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki è vegnì installà cun success.'''",
+    "mainpagedocfooter": "Consultai il [//meta.wikimedia.org/wiki/Help:Contents manual per utilisaders] per infurmaziuns davart l'utilisaziun da questa software da wiki.\n\n== Cumenzar ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Glista da las opziuns per la configuraziun]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Glista da mail da MediaWiki cun annunzias da novas versiuns]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ro.json b/includes/installer/i18n/ro.json
new file mode 100644 (file)
index 0000000..a002c84
--- /dev/null
@@ -0,0 +1,134 @@
+{
+    "@metadata": {
+        "authors": [
+            "Firilacroco",
+            "Minisarm",
+            "Stelistcristi"
+        ]
+    },
+    "config-desc": "Programul de instalare pentru MediaWiki",
+    "config-title": "Instalarea MediaWiki $1",
+    "config-information": "Informații",
+    "config-localsettings-key": "Cheie de actualizare:",
+    "config-localsettings-badkey": "Cheia furnizată este incorectă.",
+    "config-session-error": "Eroare la pornirea sesiunii: $1",
+    "config-your-language": "Limba ta:",
+    "config-your-language-help": "Alege o limbă pentru a o utiliza în timpul procesului de instalare.",
+    "config-wiki-language": "Limbă wiki:",
+    "config-wiki-language-help": "Alege limba în care wiki-ul va fi scris predominant.",
+    "config-back": "← Înapoi",
+    "config-continue": "Continuă →",
+    "config-page-language": "Limbă",
+    "config-page-welcome": "Bun venit la MediaWiki!",
+    "config-page-dbconnect": "Conectează la baza de date",
+    "config-page-upgrade": "Extinde instalarea existentă",
+    "config-page-dbsettings": "Setări ale bazei de date",
+    "config-page-name": "Nume",
+    "config-page-options": "Opţiuni",
+    "config-page-install": "Instalare",
+    "config-page-complete": "Finalizat!",
+    "config-page-restart": "Reporneşte instalarea",
+    "config-page-readme": "Citeşte-mă",
+    "config-page-releasenotes": "Note de lansare",
+    "config-page-copying": "Copiere",
+    "config-page-upgradedoc": "Actualizare",
+    "config-page-existingwiki": "Wiki existent",
+    "config-restart": "Da, repornește.",
+    "config-env-php": "PHP $1 este instalat.",
+    "config-env-php-toolow": "PHP $1 este instalat.\nTotuși, MediaWiki necesită PHP $2 sau mai nou.",
+    "config-db-type": "Tipul bazei de date:",
+    "config-db-host": "Gazdă bază de date:",
+    "config-db-host-oracle": "Baza de date TNS:",
+    "config-db-wiki-settings": "Identificați acest wiki",
+    "config-db-name": "Numele bazei de date:",
+    "config-db-name-oracle": "Schema bazei de date:",
+    "config-db-username": "Nume de utilizator pentru baza de date:",
+    "config-db-password": "Parola bazei de date:",
+    "config-db-prefix": "Prefixul tabelelor din baza de date:",
+    "config-db-charset": "Setul de caractere al bazei de date",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binar",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-db-port": "Portul bazei de date:",
+    "config-db-schema": "Schema pentru MediaWiki:",
+    "config-sqlite-dir": "Director de date SQLite:",
+    "config-oracle-def-ts": "Spațiu de stocare („tablespace”) implicit:",
+    "config-oracle-temp-ts": "Spațiu de stocare („tablespace”) temporar:",
+    "config-header-mysql": "Setările MySQL",
+    "config-header-postgres": "Setări PostgreSQL",
+    "config-header-sqlite": "Setări SQLite",
+    "config-header-oracle": "Setări Oracle",
+    "config-invalid-db-type": "Tip de bază de date incorect",
+    "config-missing-db-name": "Trebuie să introduci o valoare pentru „Numele bazei de date”",
+    "config-connection-error": "$1.\n\nVerificați gazda, numele de utilizator și parola și reîncercați.",
+    "config-upgrade-done-no-regenerate": "Actualizare completă.\n\nAcum puteți [$1 începe să vă folosiți wikiul].",
+    "config-regenerate": "Regenerare LocalSettings.php →",
+    "config-unknown-collation": "AVERTISMENT: Baza de date folosește o colaționare nerecunoscută.",
+    "config-db-web-account": "Contul bazei de date pentru accesul web.",
+    "config-db-web-create": "Creați contul dacă nu există deja",
+    "config-mysql-engine": "Motor de stocare:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-charset": "Setul de caractere al bazei de date:",
+    "config-mysql-binary": "Binar",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "Numele wikiului:",
+    "config-site-name-blank": "Introduceți un nume pentru sit.",
+    "config-project-namespace": "Spațiul de nume al proiectului:",
+    "config-ns-generic": "Proiect",
+    "config-ns-site-name": "Același nume ca al wikiului: $1",
+    "config-ns-other": "Altul (specificați)",
+    "config-ns-other-default": "MyWiki",
+    "config-admin-box": "Cont de administrator",
+    "config-admin-name": "Numele dumneavoastră:",
+    "config-admin-password": "Parolă:",
+    "config-admin-password-confirm": "Parola, din nou:",
+    "config-admin-password-blank": "Introduceți o parolă pentru contul de administrator.",
+    "config-admin-password-same": "Parola trebuie să difere de numele de utilizator.",
+    "config-admin-password-mismatch": "Cele două parole introduse nu corespund.",
+    "config-admin-email": "Adresa de e-mail:",
+    "config-admin-error-bademail": "Ați introdus o adresă de e-mail incorectă.",
+    "config-almost-done": "Sunteți aproape gata!\nPuteți sări peste configurarea rămasă și să instalați wikiul chiar acum.",
+    "config-optional-continue": "Adresează-mi mai multe întrebări.",
+    "config-optional-skip": "Sunt deja plictisit, doar instalează wikiul.",
+    "config-profile": "Profilul drepturilor de utilizator:",
+    "config-profile-wiki": "Wiki tradițional",
+    "config-profile-no-anon": "Crearea de cont este necesară",
+    "config-profile-fishbowl": "Doar editorii autorizați",
+    "config-profile-private": "Wiki privat",
+    "config-license": "Drepturi de autor și licență:",
+    "config-license-none": "Fără licență în subsolul paginii",
+    "config-license-cc-by-sa": "Creative Commons Atribuire și distribuire în condiții identice",
+    "config-license-cc-by": "Creative Commons Atribuire",
+    "config-license-cc-by-nc-sa": "Creative Commons Atribuire, necomercial și distribuire în condiții identice",
+    "config-license-cc-0": "Creative Commons Zero (domeniu public)",
+    "config-license-gfdl": "Licența GNU pentru Documentare Liberă 1.3 sau ulterioară",
+    "config-license-pd": "Domeniu public",
+    "config-license-cc-choose": "Alegeți o licență Creative Commons personalizată",
+    "config-email-settings": "Setări pentru e-mail",
+    "config-email-usertalk": "Activați notificările pentru pagina de discuții a utilizatorului",
+    "config-upload-deleted": "Director pentru fișierele șterse:",
+    "config-logo": "Adresa URL a siglei:",
+    "config-cc-again": "Alegeți din nou...",
+    "config-advanced-settings": "Configurare avansată",
+    "config-cache-options": "Parametrii pentru stocarea temporară a obiectelor:",
+    "config-extensions": "Extensii",
+    "config-install-step-done": "realizat",
+    "config-install-step-failed": "eșuat",
+    "config-install-extensions": "Se includ extensiile",
+    "config-install-database": "Se creează baza de date",
+    "config-install-schema": "Se creează schema",
+    "config-install-pg-schema-not-exist": "Schema PostgreSQL nu există.",
+    "config-install-pg-commit": "Se validează modificările",
+    "config-install-user": "Se creează utilizatorul pentru baza de date",
+    "config-install-user-alreadyexists": "Utilizatorul „$1” există deja",
+    "config-install-user-create-failed": "Crearea utilizatorului „$1” a eșuat: $2",
+    "config-install-tables": "Se creează tabelele",
+    "config-install-stats": "Se inițializează statisticile",
+    "config-install-keys": "Se generează cheile secrete",
+    "config-install-sysop": "Se creează contul de administrator",
+    "config-install-mainpage-failed": "Nu s-a putut insera pagina principală: $1",
+    "config-download-localsettings": "Descarcă <code>LocalSettings.php</code>",
+    "config-help": "ajutor",
+    "mainpagetext": "'''Programul Wiki a fost instalat cu succes.'''",
+    "mainpagedocfooter": "Consultați [//meta.wikimedia.org/wiki/Help:Contents Ghidul utilizatorului (en)] pentru informații despre utilizarea software-ului wiki.\n\n== Primii pași ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista parametrilor configurabili (en)]\n* [//www.mediawiki.org/wiki/Manual:FAQ Întrebări frecvente despre MediaWiki (en)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista de discuții a MediaWiki (en)]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/roa-tara.json b/includes/installer/i18n/roa-tara.json
new file mode 100644 (file)
index 0000000..5ce04cb
--- /dev/null
@@ -0,0 +1,56 @@
+{
+    "@metadata": {
+        "authors": [
+            "Joetaras"
+        ]
+    },
+    "config-desc": "'U 'nstallatore de MediaUicchi",
+    "config-title": "Installazzione de MediaUicchi $1",
+    "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",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 backwards-compatible UTF-8",
+    "config-db-port": "Porte d'u database:",
+    "config-db-schema": "Scheme pe MediaUicchi:",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-admin-email": "Indirizze e-mail:",
+    "config-install-step-done": "fatte",
+    "config-install-step-failed": "fallite",
+    "config-install-extensions": "'Ngludenne le estenziune",
+    "config-install-database": "Stoche a 'mboste l'archivije",
+    "config-install-schema": "Stoche a creje 'u scheme",
+    "config-install-pg-schema-not-exist": "'U scheme PostgreSQL non g'esiste.",
+    "config-help": "ajute",
+    "mainpagetext": "'''MediaUicchi ha state 'nstallete.'''",
+    "mainpagedocfooter": "Vè vide [//meta.wikimedia.org/wiki/Help:Contents User's Guide] pe l'mbormaziune sus a cumme s'ause 'u softuer wiki.\n\n== Pe accumenzà ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Liste pe le configuraziune]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ de MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Elenghe d'a poste de MediaUicchi]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Localizzazzione de MediaUicchi pa lènga toje]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ru.json b/includes/installer/i18n/ru.json
new file mode 100644 (file)
index 0000000..6e79935
--- /dev/null
@@ -0,0 +1,323 @@
+{
+    "@metadata": {
+        "authors": [
+            "Adata80",
+            "DCamer",
+            "Eleferen",
+            "Express2000",
+            "KPu3uC B Poccuu",
+            "Kaganer",
+            "Krinkle",
+            "Lockal",
+            "MaxSem",
+            "Okras",
+            "Yuriy Apostol",
+            "Александр Сигачёв",
+            "Сrower",
+            "아라"
+        ]
+    },
+    "config-desc": "Инсталлятор MediaWiki",
+    "config-title": "Установка MediaWiki $1",
+    "config-information": "Информация",
+    "config-localsettings-upgrade": "Обнаружен файл <code>LocalSettings.php</code>.\nДля обновления этой установки, пожалуйста, введите значение <code>$wgUpgradeKey</code>.\nЕго можно найти в файле <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Обнаружен файл <code>LocalSettings.php</code>.\nДля обновления этой установки, пожалуйста, запустите <code>update.php</code>",
+    "config-localsettings-key": "Ключ обновления:",
+    "config-localsettings-badkey": "Вы указали неправильный ключ",
+    "config-upgrade-key-missing": "Обнаружена существующая установленная копия MediaWiki.\nЧтобы обновить обнаруженную установку, пожалуйста, добавьте следующую строку в конец вашего файла <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "Похоже, что существующий файл <code>LocalSettings.php</code> не является полными.\nНе установлена переменная $1.\nПожалуйста, измените <code>LocalSettings.php</code> так, чтобы значение этой переменной было задано, затем нажмите «{{int:Config-continue}}».",
+    "config-localsettings-connection-error": "Произошла ошибка при подключении к базе данных с помощью настроек, указанных в <code>LocalSettings.php</code> или <code>AdminSettings.php</code>. Пожалуйста, исправьте эти настройки и повторите попытку.\n\n$1",
+    "config-session-error": "Ошибка при запуске сессии: $1",
+    "config-session-expired": "Ваша сессия истекла.\nСессии настроены на длительность $1.\nВы её можете увеличить, изменив <code>session.gc_maxlifetime</code> в php.ini.\nПерезапустите процесс установки.",
+    "config-no-session": "Данные сессии потеряны!\nПроверьте ваш php.ini и убедитесь, что <code>session.save_path</code> установлен в соответствующий каталог.",
+    "config-your-language": "Ваш язык:",
+    "config-your-language-help": "Выберите язык, на котором будет происходить процесс установки.",
+    "config-wiki-language": "Язык, который будет использовать вики:",
+    "config-wiki-language-help": "Выберите язык, на котором будут отображаться вики.",
+    "config-back": "← Назад",
+    "config-continue": "Далее →",
+    "config-page-language": "Язык",
+    "config-page-welcome": "Добро пожаловать в MediaWiki!",
+    "config-page-dbconnect": "Подключение к базе данных",
+    "config-page-upgrade": "Обновление существующей установки",
+    "config-page-dbsettings": "Настройки базы данных",
+    "config-page-name": "Название",
+    "config-page-options": "Настройки",
+    "config-page-install": "Установка",
+    "config-page-complete": "Готово!",
+    "config-page-restart": "Начать установку заново",
+    "config-page-readme": "Прочти меня",
+    "config-page-releasenotes": "Информация о версии",
+    "config-page-copying": "Лицензия",
+    "config-page-upgradedoc": "Обновление",
+    "config-page-existingwiki": "Существующая вики",
+    "config-help-restart": "Вы хотите удалить все сохранённые данные, которые вы ввели, и запустить процесс установки заново?",
+    "config-restart": "Да, начать заново",
+    "config-welcome": "=== Проверка окружения ===\nБудут проведены базовые проверки с целью определить, подходит ли данная система для установки MediaWiki.\nНе забудьте включить эту информацию, если вам потребуется помощь для завершения установки.",
+    "config-copyright": "=== Авторские права и условия ===\n\n$1\n\nMediaWiki является свободным программным обеспечением, которое вы можете распространять и/или изменять в соответствии с условиями лицензии GNU General Public License, опубликованной фондом свободного программного обеспечения; второй версии, либо любой более поздней версии.\n\nMediaWiki распространяется в надежде, что она будет полезной, но '''без каких-либо гарантий''', даже без подразумеваемых гарантий '''коммерческой ценности''' или '''пригодности для определённой цели'''. См. лицензию GNU General Public License для более подробной информации.\n\nВы должны были получить <doclink href=Copying>копию GNU General Public License</doclink> вместе с этой программой, если нет, то напишите Free Software Foundation, Inc., по адресу: 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA или [http://www.gnu.org/licenses/old-licenses/gpl-2.0.html прочтите её онлайн].",
+    "config-sidebar": "* [//www.mediawiki.org Сайт MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents/ru Справка для пользователей]\n* [//www.mediawiki.org/wiki/Manual:Contents/ru Справка для администраторов]\n* [//www.mediawiki.org/wiki/Manual:FAQ/ru FAQ]\n----\n* <doclink href=Readme>Readme-файл</doclink>\n* <doclink href=ReleaseNotes>Информация о выпуске</doclink>\n* <doclink href=Copying>Лицензия</doclink>\n* <doclink href=UpgradeDoc>Обновление</doclink>",
+    "config-env-good": "Проверка внешней среды была успешно проведена.\nВы можете установить MediaWiki.",
+    "config-env-bad": "Была проведена проверка внешней среды.\nВы не можете установить MediaWiki.",
+    "config-env-php": "Установленная версия PHP: $1.",
+    "config-env-php-toolow": "Найден PHP $1, тогда как MediaWiki требуется PHP версии $2 или выше.",
+    "config-unicode-using-utf8": "Использовать Brion Vibber utf8_normalize.so для нормализации Юникода.",
+    "config-unicode-using-intl": "Будет использовано [http://pecl.php.net/intl расширение «intl» для PECL] для нормализации Юникода.",
+    "config-unicode-pure-php-warning": "'''Внимание!''': [http://pecl.php.net/intl расширение intl из PECL] недоступно для нормализации Юникода, будет использоваться медленная реализация на чистом PHP.\nЕсли ваш сайт работает под высокой нагрузкой, вам следует больше узнать о [//www.mediawiki.org/wiki/Unicode_normalization_considerations нормализации Юникода].",
+    "config-unicode-update-warning": "'''Предупреждение''': установленная версия обёртки нормализации Юникода использует старую версию библиотеки [http://site.icu-project.org/ проекта ICU].\nВы должны [//www.mediawiki.org/wiki/Unicode_normalization_considerations обновить версию], если хотите полноценно использовать Юникод.",
+    "config-no-db": "Не найдено поддержки баз данных! Вам необходимо установить драйвера базы данных для PHP.\nПоддерживаются следующие базы данных: $1.\n\nЕсли вы используете виртуальный хостинг, обратитесь к своему хостинг-провайдеру с просьбой установить подходящий драйвер базы данных.\nЕсли вы скомпилировали PHP сами, сконфигурируйте его снова с включенным клиентом базы данных, например, с помощью <code>./configure --with-mysql</code>.\nЕсли вы установили PHP из пакетов Debian или Ubuntu, то вам также необходимо установить модуль 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> включена.'''\n'''Отключите её, если это возможно.'''\nMediaWiki будет работать, но это снизит безопасность сервера и увеличит риск проникновения извне.",
+    "config-magic-quotes-runtime": "'''Проблема: включена опция PHP [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]!'''\nЭто приводит к непредсказуемой порче вводимых данных.\nУстановка и использование MediaWiki без выключения этой опции невозможно.",
+    "config-magic-quotes-sybase": "'''Проблема: включена опция PHP [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]!'''\nЭто приводит к непредсказуемой порче вводимых данных.\nУстановка и использование MediaWiki без выключения этой опции невозможно.",
+    "config-mbstring": "'''Проблема: включена опция PHP [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]!'''\nЭто приводит к ошибкам и непредсказуемой порче вводимых данных.\nУстановка и использование MediaWiki без выключения этой опции невозможно.",
+    "config-ze1": "'''Проблема: включена опция PHP [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]!'''\nЭто приводит к катастрофическим сбоям в MediaWiki.\nУстановка и использование MediaWiki без выключения этой опции невозможно.",
+    "config-safe-mode": "'''Предупреждение:''' PHP работает в [http://www.php.net/features.safe-mode «безопасном режиме»].\nЭто может привести к проблемам, особенно с загрузкой файлов и вставкой математических формул.",
+    "config-xml-bad": "XML-модуль РНР отсутствует.\nMediaWiki не будет работать в этой конфигурации, так как требуется функционал этого модуля.\nЕсли вы работаете в Mandrake, установите PHP XML-пакет.",
+    "config-pcre": "Модуль поддержки PCRE не найден.\nДля работы MediaWiki требуется поддержка Perl-совместимых регулярных выражений.",
+    "config-pcre-no-utf8": "'''Фатальная ошибка'''. Модуль PCRE для PHP, похоже, собран без поддержки PCRE_UTF8.\nMediaWiki требует поддержки UTF-8 для корректной работы.",
+    "config-memory-raised": "Ограничение на доступную PHP память (<code>memory_limit</code>) поднято с $1 до $2.",
+    "config-memory-bad": "'''Внимание:''' размер PHP <code>memory_limit</code> составляет $1.\nВероятно, этого слишком мало.\nУстановка может потерпеть неудачу!",
+    "config-ctype": "'''Фатальная ошибка:''' PHP должен быть скомпилирован с поддержкой [http://www.php.net/manual/ru/ctype.installation.php расширения Ctype].",
+    "config-json": "'''Фатальная ошибка:''' PHP был скомпилирован без поддержка JSON.\nВам необходимо установить либо расширение PHP JSON, либо расширение [http://pecl.php.net/package/jsonc PECL jsonc] перед установкой MediaWiki.\n* PHP-расширение входит в состав Red Hat Enterprise Linux (CentOS) 5 и 6, хотя должна быть включено в <code>/etc/php.ini</code> или <code>/etc/php.d/json.ini</code>.\n* Некоторые дистрибутивы Linux, выпущенные после мая 2013 года, не включают расширение PHP, вместо того, чтобы упаковывать расширение PECL как <code>php5-json</code> или <code>php-pecl-jsonc</code>.",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] установлен",
+    "config-apc": "[http://www.php.net/apc APC] установлен",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] установлен",
+    "config-no-cache": "'''Внимание:''' Не найдены [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] или [http://www.iis.net/download/WinCacheForPhp WinCache].\nКэширование объектов будет отключено.",
+    "config-mod-security": "'''Внимание''': на вашем веб-сервере включен [http://modsecurity.org/ mod_security]. При неправильной настройке он может вызывать проблемы для MediaWiki или другого ПО, позволяющего пользователям отправлять на сервер произвольный текст.\nОбратитесь к [http://modsecurity.org/documentation/ документации mod_security] или в поддержку вашего хостера, если при работе возникают непонятные ошибки.",
+    "config-diff3-bad": "GNU diff3 не найден.",
+    "config-git": "Найдена система контроля версий Git: <code>$1</code>.",
+    "config-git-bad": "Программное обеспечение по управлению версиями Git не найдено.",
+    "config-imagemagick": "Обнаружен ImageMagick: <code>$1</code>.\nВозможно отображение миниатюр изображений, если вы разрешите закачки файлов.",
+    "config-gd": "Найдена встроенная графическая библиотека GD.\nВозможность использования миниатюр изображений будет включена, если вы включите их загрузку.",
+    "config-no-scaling": "Не удалось найти встроенную библиотеку GD или ImageMagick.\nВозможность использования миниатюр изображений будет отключена.",
+    "config-no-uri": "'''Ошибка:''' Не могу определить текущий URI.\nУстановка прервана.",
+    "config-no-cli-uri": "'''Предупреждение''': нет задан параметр --scriptpath, используется по умолчанию: <code>$1</code> .",
+    "config-using-server": "Используется имя сервера «<nowiki>$1</nowiki>».",
+    "config-using-uri": "Используется имя сервера \"<nowiki>$1$2</nowiki>\".",
+    "config-uploads-not-safe": "'''Внимание:''' директория, используемая по умолчанию для загрузок (<code>$1</code>) уязвима к выполнению произвольных скриптов.\nХотя MediaWiki проверяет все загружаемые файлы на наличие угроз, настоятельно рекомендуется [//www.mediawiki.org/wiki/Manual:Security#Upload_security закрыть данную уязвимость] перед включением загрузки файлов.",
+    "config-no-cli-uploads-check": "'''Предупреждение:''' каталог для загрузки по умолчанию ( <code>$1</code> ) не проверялся на уязвимости\n на выполнение произвольного сценария во время установки CLI.",
+    "config-brokenlibxml": "В вашей системе имеется сочетание версий PHP и libxml2, могущее привести к скрытым повреждениям данных в MediaWiki и других веб-приложениях.\nОбновите PHP до версии 5.2.9 или старше и libxml2 до 2.7.3 или старше ([//bugs.php.net/bug.php?id=45996 сведения об ошибке]).\nУстановка прервана.",
+    "config-using531": "PHP $1 не совместим с MediaWiki из-за ошибки с параметрами-ссылками при вызовах <code>__call()</code>.\nОбновитесь до PHP 5.3.2 и выше, или откатитесь до PHP 5.3.0, чтобы избежать этой проблемы.\nУстановка прервана.",
+    "config-suhosin-max-value-length": "Suhosin установлен и ограничивает параметр GET <code>length</code> до $1 байт. Компонент MediaWiki ResourceLoader будет обходить это ограничение, но это снизит производительность. Если это возможно, следует установить <code>suhosin.get.max_value_length</code> в значение 1024 или выше в <code>php.ini</code>, а также установить для <code>$wgResourceLoaderMaxQueryLength</code> такое же значение в LocalSettings.php.",
+    "config-db-type": "Тип базы данных:",
+    "config-db-host": "Хост базы данных:",
+    "config-db-host-help": "Если сервер базы данных находится на другом сервере, введите здесь его имя хоста или IP-адрес.\n\nЕсли вы используете виртуальный хостинг, ваш провайдер должен указать правильное имя хоста в своей документации.\n\nЕсли вы устанавливаете систему на сервере под Windows и используете MySQL, имя сервера «localhost» может не работать. В этом случае попробуйте указать 127.0.0.1 локальный  IP-адрес.\n\nЕсли вы используете PostgreSQL, оставьте это поле пустым для подключения через сокет Unix.",
+    "config-db-host-oracle": "TNS базы данных:",
+    "config-db-host-oracle-help": "Введите действительный [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name]; файл tnsnames.ora должен быть видимым для этой инсталляции. <br />При использовании клиентских библиотек версии 10g и старше также возможно использовать метод именования [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
+    "config-db-wiki-settings": "Идентификация этой вики",
+    "config-db-name": "Имя базы данных:",
+    "config-db-name-help": "Выберите название-идентификатор для вашей вики.\nОно не должно содержать пробелов.\n\nЕсли вы используете виртуальный хостинг, провайдер или выдаст вам конкретное имя базы данных, или позволит создавать базы данных с помощью панели управления.",
+    "config-db-name-oracle": "Схема базы данных:",
+    "config-db-account-oracle-warn": "Поддерживаются три сценария установки Oracle в качестве базы данных:\n\nЕсли вы хотите создать учётную запись базы данных в процессе установки, пожалуйста, укажите учётную запись роли SYSDBA для установки и укажите желаемые полномочия учётной записи с веб-доступом. вы также можете учётную запись с веб-доступом вручную и указать только её (если у неё есть необходимые разрешения на создание объектов схемы) или указать две учётные записи, одну с правами создания объектов, а другую с ограничениями для веб-доступа.\n\nСценарий для создания учётной записи с необходимыми привилегиями можно найти в папке «maintenance/oracle/» этой программы установки. Имейте в виду, что использование ограниченной учётной записи приведёт к отключению всех возможностей обслуживания с учётной записи по умолчанию.",
+    "config-db-install-account": "Учётная запись для установки",
+    "config-db-username": "Имя пользователя базы данных:",
+    "config-db-password": "Пароль базы данных:",
+    "config-db-password-empty": "Пожалуйста, введите пароль для нового пользователя базы данных «$1».\nХотя и возможно создание пользователей без паролей, это небезопасно.",
+    "config-db-install-username": "Введите имя пользователя, которое будет использоваться для подключения к базе данных в процессе установки.\nЭто не имя пользователя MediaWiki, это имя пользователя для базы данных.",
+    "config-db-install-password": "Введите пароль, который будет использоваться для подключения к базе данных в процессе установки.\nЭто не пароль пользователя MediaWiki, это пароль для базы данных.",
+    "config-db-install-help": "Введите имя пользователя и пароль, которые будут использоваться для подключения к базе данных во время процесса установки.",
+    "config-db-account-lock": "Использовать то же имя пользователя и пароль для обычной работы",
+    "config-db-wiki-account": "Учётная запись для обычной работы",
+    "config-db-wiki-help": "Введите имя пользователя и пароль, которые будут использоваться для подключения к базе данных во время обычной работы вики.\nЕсли такой учётной записи не существует, а установочная учётная запись имеет достаточно привилегий, то обычная учётная запись будет создана с минимально необходимыми для работы вики привилегиями.",
+    "config-db-prefix": "Префикс таблиц базы данных:",
+    "config-db-prefix-help": "Если вам нужно делить одну базу данных между несколькими вики, или между MediaWiki и другими веб-приложениями, вы можете добавить префикс для всех имён таблиц.\nНе используйте пробелы.\n\nЭто поле обычно остаётся пустым.",
+    "config-db-charset": "Набор символов базы данных",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 бинарная",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 обратно совместимая с UTF-8",
+    "config-charset-help": "'''Внимание.''' Если вы используете '''обратно совместый UTF-8''' на MySQL 4.1+ и создаёте резервные копии базы данных с помощью <code>mysqldump</code>, то все не-ASCII символы могут быть искажены, а резервная копия окажется негодной!\n\nВ '''бинарном режиме''' MediaWiki хранит юникодный текст в базе в виде двоичных полей.\nЭто более эффективно, чем MySQL в режиме UTF-8, позволяет использовать полный набор символов Юникода.\nВ '''режиме UTF-8''' MySQL будет знать к какому набору символу относятся ваши данные, сможет представлять и преобразовать их надлежащим образом (буква Ё окажется при сортировке после буквы Е, а не после буквы Я, как в бинарном режиме),\nно не позволит вам сохранять символы, выходящие за пределы [//ru.wikipedia.org/wiki/Символы,_представленные_в_Юникоде#.D0.91.D0.B0.D0.B7.D0.BE.D0.B2.D0.B0.D1.8F_.D0.BC.D0.BD.D0.BE.D0.B3.D0.BE.D1.8F.D0.B7.D1.8B.D0.BA.D0.BE.D0.B2.D0.B0.D1.8F_.D0.BF.D0.BB.D0.BE.D1.81.D0.BA.D0.BE.D1.81.D1.82.D1.8C BMP].",
+    "config-mysql-old": "Необходим MySQL $1 или более поздняя версия. У вас установлен MySQL $2.",
+    "config-db-port": "Порт базы данных:",
+    "config-db-schema": "Схема для MediaWiki",
+    "config-db-schema-help": "Эта схема обычно работают хорошо.\nИзменяйте её только если знаете, что вам это нужно.",
+    "config-pg-test-error": "Не удаётся подключиться к базе данных '''$1''': $2",
+    "config-sqlite-dir": "Директория данных SQLite:",
+    "config-sqlite-dir-help": "SQLite хранит все данные в одном файле.\n\nДиректория, которую вы должны указать, должна быть доступна для записи веб-сервером во время установки.\n\nОна '''не должна''' быть доступна через Интернет, поэтому не должна совпадать с той, где хранятся PHP файлы.\n\nУстановщик запишет в эту директорию файл <code>.htaccess</code>, но если это не сработает, кто-нибудь может получить доступ ко всей базе данных.\nВ этой базе находится в том числе и информация о пользователях (адреса электронной почты, хэши паролей), а также удалённые страницы и другие секретные данные о вики.\n\nПо возможности, расположите базу данных где-нибудь в стороне, например, в <code>/var/lib/mediawiki/yourwiki</code>.",
+    "config-oracle-def-ts": "Пространство таблиц по умолчанию:",
+    "config-oracle-temp-ts": "Временное пространство таблиц:",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-support-info": "MediaWiki поддерживает следующие СУБД:\n\n$1\n\nЕсли вы не видите своей системы хранения данных в этом списке, следуйте инструкциям, на которые есть ссылка выше, чтобы получить поддержку.",
+    "config-support-mysql": "* $1 — основная база данных для MediaWiki, и лучше поддерживается ([http://www.php.net/manual/en/mysql.installation.php инструкция, как собрать PHP с поддержкой MySQL])",
+    "config-support-postgres": "* $1 — популярная открытая СУБД, альтернатива MySQL ([http://www.php.net/manual/en/pgsql.installation.php инструкция, как собрать PHP с поддержкой PostgreSQL]). Могут встречаться небольшие неисправленные ошибки, не рекомендуется для использования в рабочей системе.",
+    "config-support-sqlite": "* $1 — это легковесная система баз данных, имеющая очень хорошую поддержку. ([http://www.php.net/manual/en/pdo.installation.php инструкция, как собрать PHP с поддержкой SQLite], работающей посредством PDO)",
+    "config-support-oracle": "* $1 — это коммерческая база данных масштаба предприятия. ([http://www.php.net/manual/en/oci8.installation.php Как собрать PHP с поддержкой OCI8])",
+    "config-header-mysql": "Настройки MySQL",
+    "config-header-postgres": "Настройки PostgreSQL",
+    "config-header-sqlite": "Настройки SQLite",
+    "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": "Неверное TNS базы данных «$1».\nИспользуйте либо «TNS Name», либо строку «Easy Connect» ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Методы наименования Oracle])",
+    "config-invalid-db-name": "Неверное имя базы данных «$1».\nИспользуйте только ASCII-символы (a-z, A-Z), цифры (0-9), знак подчёркивания (_) и дефис(-).",
+    "config-invalid-db-prefix": "Неверный префикс базы данных «$1».\nИспользуйте только буквы ASCII (a-z, A-Z), цифры (0-9), знак подчёркивания (_) и дефис (-).",
+    "config-connection-error": "$1.\n\nПроверьте хост, имя пользователя и пароль и попробуйте ещё раз.",
+    "config-invalid-schema": "Неправильная схема для MediaWiki «$1».\nИспользуйте только ASCII символы (a-z, A-Z), цифры(0-9) и знаки подчёркивания(_).",
+    "config-db-sys-create-oracle": "Программа установки поддерживает только использование SYSDBA для создания новой учётной записи.",
+    "config-db-sys-user-exists-oracle": "Учётная запись «$1». SYSDBA может использоваться только для создания новой учётной записи!",
+    "config-postgres-old": "Необходим PostgreSQL $1 или более поздняя версия. У вас установлен PostgreSQL $2.",
+    "config-sqlite-name-help": "Выберите имя-идентификатор для вашей вики.\nНе используйте дефисы и пробелы.\nЭта строка будет использоваться в имени файла SQLite.",
+    "config-sqlite-parent-unwritable-group": "Не удалось создать директорию данных <nowiki><code>$1</code></nowiki>, так как у веб-сервера нет прав записи в родительскую директорию <nowiki><code>$2</code></nowiki>.\n\nУстановщик определил пользователя, под которым работает веб-сервер.\nСделайте директорию <nowiki><code>$3</code></nowiki> доступной для записи и продолжите.\nВ Unix/Linux системе выполните:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Не удалось создать директорию для данных <code><nowiki>$1</nowiki></code>, так как у веб-сервера нет прав на запись в родительскую директорию <code><nowiki>$2</nowiki></code>.\n\nПрограмма установки не смогла определить пользователя, под которым работает веб-сервер.\nДля продолжения сделайте каталог <code><nowiki>$3</nowiki></code> глобально доступным для записи серверу (и другим).\nВ Unix/Linux сделайте:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Ошибка при создании директории для данных «$1».\nПроверьте расположение и повторите попытку.",
+    "config-sqlite-dir-unwritable": "Невозможно произвести запись в каталог «$1».\nИзмените настройки доступа так, чтобы веб-сервер мог записывать в этот каталог, и попробуйте ещё раз.",
+    "config-sqlite-connection-error": "$1.\n\nПроверьте название базы данных и директорию с данными и попробуйте ещё раз.",
+    "config-sqlite-readonly": "Файл <code>$1</code> недоступен для записи.",
+    "config-sqlite-cant-create-db": "Не удаётся создать файл базы данных <code>$1</code> .",
+    "config-sqlite-fts3-downgrade": "У PHP отсутствует поддержка FTS3 — сбрасываем таблицы",
+    "config-can-upgrade": "В базе данных найдены таблицы MediaWiki.\nЧтобы обновить их до MediaWiki $1, нажмите на кнопку '''«Продолжить»'''.",
+    "config-upgrade-done": "Обновление завершено.\n\nТеперь вы можете [$1 начать использовать вики].\n\nЕсли вы хотите повторно создать файл <code>LocalSettings.php</code>, нажмите на кнопку ниже.\nЭто действие '''не рекомендуется''', если у вас не возникло проблем при установке.",
+    "config-upgrade-done-no-regenerate": "Обновление завершено.\n\nТеперь вы можете [$1 начать работу с вики].",
+    "config-regenerate": "Создать LocalSettings.php заново →",
+    "config-show-table-status": "Запрос «<code>SHOW TABLE STATUS</code>» не выполнен!",
+    "config-unknown-collation": "'''Внимание:''' База данных использует нераспознанные правила сортировки.",
+    "config-db-web-account": "Учётная запись для доступа к базе данных из веб-сервера",
+    "config-db-web-help": "Выберите имя пользователя и пароль, которые веб-сервер будет использовать для подключения к серверу базы данных при обычной работе вики.",
+    "config-db-web-account-same": "Использовать ту же учётную запись, что и для установки",
+    "config-db-web-create": "Создать учётную запись, если она ещё не существует",
+    "config-db-web-no-create-privs": "Учётная запись, указанная вами для установки, не обладает достаточными правами для создания учётной записи.\nУказанная здесь учётная запись уже должна существовать.",
+    "config-mysql-engine": "Движок базы данных:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "''' Внимание.''' Вы выбрали механизм MyISAM для хранения данных MySQL. Он не рекомендуется к использованию по следующим причинам:\n* он слабо поддерживает параллелизм из-за табличных блокировок;\n* более склонен к потере данных, по сравнению с другими механизмами;\n* код MediaWiki не всегда учитывает особенности MyISAM должным образом.\n\nЕсли ваша установка MySQL поддерживает InnoDB, настоятельно рекомендуется выбрать этот механизм.\nЕсли ваша установка MySQL не поддерживает InnoDB, возможно, настало время обновиться.",
+    "config-mysql-only-myisam-dep": "'''Предупреждение:''' MyISAM является единственной доступной системой хранения данных для MySQL, которая, однако, не рекомендуется для использования с MediaWiki, потому что:\n * он слабо поддерживает параллелизм из-за блокировки таблиц\n * она больше других систем подвержена повреждению\n * кодовая база MediaWiki не всегда обрабатывает MyISAM так, как следует\n\nВаша MySQL не поддерживает InnoDB, так что, возможно, настало время для обновления.",
+    "config-mysql-engine-help": "'''InnoDB''' почти всегда предпочтительнее, так как он лучше справляется с параллельным доступом.\n\n'''MyISAM''' может оказаться быстрее для вики с одним пользователем или с минимальным количеством поступающих правок, однако базы данных на нём портятся чаще, чем на InnoDB.",
+    "config-mysql-charset": "Набор символов (кодовая таблица) базы данных:",
+    "config-mysql-binary": "Двоичный",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "В '''двоичном режиме''' MediaWiki хранит UTF-8 текст в бинарных полях базы данных.\nЭто более эффективно, чем ''UTF-8 режим'' MySQL, и позволяет использовать полный набор символов Unicode.\n\nВ '''режиме UTF-8''' MySQL будет знать в какой кодировке находятся Ваши данные и может отображать и преобразовывать их соответствующим образом, но это не позволит вам хранить символы выше [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Базовой Многоязыковой Плоскости].",
+    "config-site-name": "Название вики:",
+    "config-site-name-help": "Название будет отображаться в заголовке окна браузера и в некоторых других местах вики.",
+    "config-site-name-blank": "Введите название сайта.",
+    "config-project-namespace": "Пространство имён проекта:",
+    "config-ns-generic": "Проект",
+    "config-ns-site-name": "То же, что имя вики: $1",
+    "config-ns-other": "Другое (укажите)",
+    "config-ns-other-default": "MyWiki",
+    "config-project-namespace-help": "Следуя примеру Википедии, многие вики хранят свои страницы правил отдельно от страниц основного содержания, в так называемом '''«пространстве имён проекта»'''.\nВсе названия страниц в этом пространстве имён начинается с определённого префикса, который вы можете задать здесь.\nОбычно, этот префикс происходит от имени вики, но он не может содержать знаки препинания, символы «#» или «:».",
+    "config-ns-invalid": "Указанное пространство имён <nowiki>$1</nowiki> недопустимо.\nУкажите другое пространство имён проекта.",
+    "config-ns-conflict": "Указанное пространство имён «<nowiki>$1</nowiki>» конфликтует со стандартным пространством имён MediaWiki.\nУкажите другое пространство имён проекта.",
+    "config-admin-box": "Учётная запись администратора",
+    "config-admin-name": "Имя:",
+    "config-admin-password": "Пароль:",
+    "config-admin-password-confirm": "Пароль ещё раз:",
+    "config-admin-help": "Введите ваше имя пользователя здесь, например, «Иван Иванов».\nЭто имя будет использоваться для входа в вики.",
+    "config-admin-name-blank": "Введите имя пользователя администратора.",
+    "config-admin-name-invalid": "Указанное имя пользователя «<nowiki>$1</nowiki>» недопустимо.\nУкажите другое имя пользователя.",
+    "config-admin-password-blank": "Введите пароль для учётной записи администратора.",
+    "config-admin-password-same": "Пароль не должен быть таким же, как имя пользователя.",
+    "config-admin-password-mismatch": "Введённые вами пароли не совпадают.",
+    "config-admin-email": "Адрес электронной почты:",
+    "config-admin-email-help": "Введите адрес электронной почты, чтобы получать сообщения от других пользователей вики, иметь возможность восстановить пароль, а также получать уведомления об изменениях страниц из списка наблюдения. Вы можете оставить это поле пустым.",
+    "config-admin-error-user": "Внутренняя ошибка при создании учётной записи администратора с именем «<nowiki>$1</nowiki>».",
+    "config-admin-error-password": "Внутренняя ошибка при установке пароля для учётной записи администратора «<nowiki>$1</nowiki>»: <pre>$2</pre>",
+    "config-admin-error-bademail": "Вы ввели неправильный адрес электронной почты",
+    "config-subscribe": "Подписаться на [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce рассылку новостей о появлении новых версий MediaWiki].",
+    "config-subscribe-help": "Это список рассылки с малым числом сообщений, используется для анонса новых выпусков и сообщений о проблемах с безопасностью.\nВам следует подписаться на него и обновлять движок MediaWiki, по мере выхода новых версий.",
+    "config-subscribe-noemail": "Вы попытались подписаться на список рассылки уведомлений о новых выпусках без указания адреса электронной почты.\nУкажите адрес электронной почты, если вы хотите подписаться на список рассылки.",
+    "config-almost-done": "Вы почти у цели!\nОстальные настройки можно пропустить и приступить к установке вики.",
+    "config-optional-continue": "Произвести тонкую настройку",
+    "config-optional-skip": "Хватит, установить вики",
+    "config-profile": "Профиль прав прользователей:",
+    "config-profile-wiki": "Открытая вики",
+    "config-profile-no-anon": "Требуется создание учётной записи",
+    "config-profile-fishbowl": "Только для авторизованных редакторов",
+    "config-profile-private": "Закрытая вики",
+    "config-profile-help": "Вики-технология лучше всего работает, когда вы позволяете редактировать сайт максимально широкому кругу лиц.\nВ MediaWiki легко просмотреть последних изменений и, при необходимости, откатить любой ущерб сделанный злоумышленниками или наивными пользователями.\n\nОднако, движок MediaWiki можно использовать и иными способами, и не далеко не всех удаётся убедить в преимуществах открытой вики-работы.\nТак что в вас есть выбор.\n\nМодель '''«{{int:config-profile-wiki}}»''' позволяет всем править страницы даже не регистрируясь на сайте. Конфигурация '''{{int:config-profile-no-anon}}''' обеспечивает дополнительный учёт, но может отсечь случайных участников.\n\nСценарий '''«{{int:config-profile-fishbowl}}»''' разрешает редактирование только определённым участникам, но общедоступным остаётся просмотр страниц, в том числе просмотр истории изменения. В режиме '''«{{int:config-profile-private}}»''' просмотр страниц разрешён только определённым пользователям, какая-то их часть может иметь также права на редактирование.\n\nБолее сложные схемы разграничения прав можно настроить после установки, см. [//www.mediawiki.org/wiki/Manual:User_rights соответствующее руководство].",
+    "config-license": "Авторские права и лицензии:",
+    "config-license-none": "Не указывать лицензию в колонтитуле внизу страницы",
+    "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
+    "config-license-cc-by": "Creative Commons Attribution",
+    "config-license-cc-by-nc-sa": "Creative Commons Attribution Non-Commercial Share Alike",
+    "config-license-cc-0": "Creative Commons Zero (общественное достояние)",
+    "config-license-gfdl": "GNU Free Documentation License 1.3 или более поздняя",
+    "config-license-pd": "Общественное достояние",
+    "config-license-cc-choose": "Выберите одну из лицензий Creative Commons",
+    "config-license-help": "Многие общедоступные вики разрешают использовать свои материалы на условиях [http://freedomdefined.org/Definition/Ru свободных лицензий].\nЭто помогает созданию чувства общности, стимулирует долгосрочное участие.\nНо в этом нет необходимости для частных или корпоративных вики.\n\nЕсли вы хотите использовать тексты из Википедии или хотите, что в Википедию можно было копировать тексты из вашей вики, вам следует выбрать '''Creative Commons Attribution Share Alike'''.\n\nВикипедия ранее использовала лицензию GNU Free Documentation License.\nGFDL может быть использована, но она сложна для понимания и осложняет повторное использование материалов.",
+    "config-email-settings": "Настройки электронной почты",
+    "config-enable-email": "Включить исходящие e-mail",
+    "config-enable-email-help": "Если вы хотите, чтобы электронная почта работала, необходимо выполнить [http://www.php.net/manual/en/mail.configuration.php соответствующие настройки PHP].\nЕсли вы не хотите использовать возможности электронной почты в вики, вы можете её отключить.",
+    "config-email-user": "Включить электронную почту от участника к участнику",
+    "config-email-user-help": "Разрешить всем пользователям отправлять друг другу электронные письма, если выставлена соответствующая настройка в профиле.",
+    "config-email-usertalk": "Включить уведомления пользователей о сообщениях на их странице обсуждения",
+    "config-email-usertalk-help": "Разрешить пользователям получать уведомления об изменениях своих страниц обсуждения, если они разрешат это в своих настройках.",
+    "config-email-watchlist": "Включить уведомление на электронную почту об изменении списка наблюдения",
+    "config-email-watchlist-help": "Разрешить пользователям получать уведомления об отслеживаемых ими страницах, если они разрешили это в своих настройках.",
+    "config-email-auth": "Включить аутентификацию через электронную почту",
+    "config-email-auth-help": "Если эта опция включена, пользователи должны подтвердить свой адрес электронной почты перейдя по ссылке, которая отправляется на e-mail. Подтверждение требуется каждый раз при смене электронного ящика в настройках пользователя.\nТолько прошедшие проверку подлинности адреса электронной почты, могут получать электронные письма от других пользователей или изменять уведомления, отправляемые по электронной почте.\nВключение этой опции '''рекомендуется'''  для открытых вики в целях пресечения потенциальных злоупотреблений возможностями электронной почты.",
+    "config-email-sender": "Обратный адрес электронной почты:",
+    "config-email-sender-help": "Введите адрес электронной почты для использования в качестве обратного адреса исходящей электронной почты.\nНа него будут отправляться отказы.\nМногие почтовые серверы требуют, чтобы по крайней мере доменное имя в нём было правильным.",
+    "config-upload-settings": "Загрузка изображений и файлов",
+    "config-upload-enable": "Разрешить загрузку файлов",
+    "config-upload-help": "Разрешение загрузки файлов, потенциально, может привести к угрозе безопасности сервера.\nДля получения дополнительной информации, прочтите в руководстве [//www.mediawiki.org/wiki/Manual:Security раздел, посвящённый безопасности].\n\nЧтобы разрешить загрузку файлов, необходимо изменить права на каталог <code>images</code>, в корневой директории MediaWiki так, чтобы веб-сервер мог записывать в него файлы.\nЗатем включите эту опцию.",
+    "config-upload-deleted": "Директория для удалённых файлов:",
+    "config-upload-deleted-help": "Выберите каталог, в котором будут храниться архивы удалённых файлов.\nВ идеальном случае, в этот каталог не должно быть доступа из сети Интернет.",
+    "config-logo": "URL логотипа:",
+    "config-logo-help": "Стандартная тема оформления MediaWiki содержит над боковой панелью пространство для логотипа размером 135x160 пикселей.\nЗагрузите изображение соответствующего размера, и введите его URL здесь.\n\nВы можете использовать <code>$wgStylePath</code> или <code>$wgScriptPath</code>, если ваш логотип находится относительно к этим путям.\n\nЕсли вам не нужен логотип, оставьте это поле пустым.",
+    "config-instantcommons": "Включить Instant Commons",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] — это функция, позволяющая использовать изображения, звуки и другие медиафайлы с Викисклада ([//commons.wikimedia.org/ Wikimedia Commons]).\nДля работы этой функции MediaWiki необходим доступ к Интернету.\n\nДополнительную информацию об Instant Commons, в том числе указания о том, как её настроить для других вики, отличных от Викисклада, можно найти в [//mediawiki.org/wiki/Manual:$wgForeignFileRepos руководстве].",
+    "config-cc-error": "Механизм выбора лицензии Creative Commons не вернул результата.\nВведите название лицензии вручную.",
+    "config-cc-again": "Выберите ещё раз…",
+    "config-cc-not-chosen": "Выберите, какую лицензию Creative Commons Вы хотите использовать, и нажмите кнопку \"Продолжить\".",
+    "config-advanced-settings": "Дополнительные настройки",
+    "config-cache-options": "Параметры кэширования объектов:",
+    "config-cache-help": "Кэширование объектов используется для повышения скорости MediaWiki путем кэширования часто используемых данных.\nДля средних и больших сайтов кеширование настоятельно рекомендуется включать, а для небольших сайтов кеширование может показать преимущество.",
+    "config-cache-none": "Без кэширования (никакой функционал не теряется, но крупные вики-сайты могут работать медленнее)",
+    "config-cache-accel": "PHP кэширование объектов (APC, XCache или WinCache)",
+    "config-cache-memcached": "Использовать Memcached (требует дополнительной настройки)",
+    "config-memcached-servers": "Сервера Memcached:",
+    "config-memcached-help": "Список IP-адресов, используемых Memcached.\nПеречислите по одному адресу на строку с указанием портов. Например:\n 127.0.0.1:11211\n 192.168.1.25:1234",
+    "config-memcache-needservers": "Вы выбрали тип кэширования Memcached, но не задали адреса серверов.",
+    "config-memcache-badip": "Вы ввели неверный IP-адрес для Memcached: $1.",
+    "config-memcache-noport": "Не указан порт для сервера Memcached: $1.\nЕсли вы не знаете порт, по умолчанию используется 11211.",
+    "config-memcache-badport": "Номера портов Memcached должны лежать в пределах от $1 до $2.",
+    "config-extensions": "Расширения",
+    "config-extensions-help": "Расширения MediaWiki, перечисленные выше, были найдены в каталоге <code>./extensions</code>.\n\nОни могут потребовать дополнительные настройки, но их можно включить прямо сейчас",
+    "config-install-alreadydone": "'''Предупреждение:''' Вы, кажется, уже устанавливали MediaWiki и пытаетесь произвести повторную установку.\nПожалуйста, перейдите на следующую страницу.",
+    "config-install-begin": "Нажав «{{int:config-continue}}», вы начнёте установку MediaWiki.\nЕсли вы хотите внести изменения, нажмите «{{int:config-back}}».",
+    "config-install-step-done": "выполнено",
+    "config-install-step-failed": "не удалось",
+    "config-install-extensions": "В том числе расширения",
+    "config-install-database": "Настройка базы данных",
+    "config-install-schema": "Создание схемы",
+    "config-install-pg-schema-not-exist": "Схемы PostgreSQL не существует",
+    "config-install-pg-schema-failed": "Не удалось создать таблицы.\nУбедитесь в том, что пользователь «$1» может писать в схему «$2».",
+    "config-install-pg-commit": "Внесение изменений",
+    "config-install-pg-plpgsql": "Проверка языка PL/pgSQL",
+    "config-pg-no-plpgsql": "Вам необходимо установить поддержку языка PL/pgSQL для базы данных $1",
+    "config-pg-no-create-privs": "Учётная запись, указанная для установки, не обладает достаточными привилегиями для создания учётной записи.",
+    "config-pg-not-in-role": "Указанная учётная запись веб-пользователя уже существует.\nУказанная для установки учётная запись не является записью суперпользователя, и не относится к роли веб-пользователя, поэтому не получается создать объекты, принадлежащие веб-пользователю.\n\nMediaWiki в настоящее время требует, чтобы владельцем таблиц был веб-пользователь. Пожалуйста, укажите другое имя учётной записи для веб, или нажмите кнопку «назад» и укажите пользователя с достаточными для установки правами.",
+    "config-install-user": "Создание базы данных пользователей",
+    "config-install-user-alreadyexists": "Участник «$1» уже существует",
+    "config-install-user-create-failed": "Не получилось создать участника «$1»: $2",
+    "config-install-user-grant-failed": "Ошибка предоставления прав пользователю «$1»: $2",
+    "config-install-user-missing": "Указанного пользователя «$1» не существует.",
+    "config-install-user-missing-create": "Указанного пользователя «$1» не существует.\nПожалуйста поставьте ниже отметку «Создать учётную запись», если вы хотите создать его.",
+    "config-install-tables": "Создание таблиц",
+    "config-install-tables-exist": "'''Предупреждение''': таблицы MediaWiki, возможно, уже существуют.\nПропуск повторного создания.",
+    "config-install-tables-failed": "'''Ошибка''': Таблица не может быть создана из-за ошибки: $1",
+    "config-install-interwiki": "Заполнение таблицы интервики значениями по умолчанию",
+    "config-install-interwiki-list": "Не удалось найти файл <code>interwiki.list</code>.",
+    "config-install-interwiki-exists": "'''Предупреждение''': в интервики-таблице, кажется, уже есть записи.\nСоздание стандартного списка пропущено.",
+    "config-install-stats": "Статистика инициализации",
+    "config-install-keys": "Создание секретных ключей",
+    "config-insecure-keys": "'''Предупреждение.''' {{PLURAL:$2|Ключ безопасности $1, созданный во время установки, недостаточно надёжен|Ключи безопасности $1, созданные во время установки, недостаточно надёжны}}. Рассмотрите возможность {{PLURAL:$2|его|их}} изменения вручную.",
+    "config-install-sysop": "Создание учётной записи администратора",
+    "config-install-subscribe-fail": "Не удаётся подписаться на mediawiki-announce: $1",
+    "config-install-subscribe-notpossible": "cURL не установлен и не доступна опция allow_url_fopen.",
+    "config-install-mainpage": "Создание главной страницы с содержимым по умолчанию",
+    "config-install-extension-tables": "Создание таблиц для включённых расширений",
+    "config-install-mainpage-failed": "Не удаётся вставить главную страницу: $1",
+    "config-install-done": "'''Поздравляем!'''\nВы успешно установили MediaWiki.\n\nВо время установки был создан файл <code>LocalSettings.php</code>.\nОн содержит всю конфигурации вики.\n\nВам необходимо скачать его и положить в корневую директорию вашей вики (ту же директорию, где находится файл index.php). Его загрузка должна начаться автоматически.\n\nЕсли автоматическая загрузка не началась или вы её отменили, вы можете скачать по ссылке ниже:\n\n$3\n\n'''Примечание''': Если вы не сделаете этого сейчас, то сгенерированный файл конфигурации не будет доступен вам в дальнейшем, если вы выйдете из установки, не скачивая его.\n\nПо окончании действий, описанных выше, вы сможете '''[$2 войти в вашу вики]'''.",
+    "config-download-localsettings": "Загрузить <code>LocalSettings.php</code>",
+    "config-help": "справка",
+    "config-nofile": "Файл \"$1\" не удается найти. Он был удален?",
+    "config-extension-link": "Знаете ли вы, что ваш вики-проект поддерживает [//www.mediawiki.org/wiki/Manual:Extensions расширения]?\n\nВы можете просмотреть [//www.mediawiki.org/wiki/Category:Extensions_by_category расширения по категориям] или [//www.mediawiki.org/wiki/Extension_Matrix матрицу расширений], чтобы увидеть их полный список.",
+    "mainpagetext": "'''Вики-движок «MediaWiki» успешно установлен.'''",
+    "mainpagedocfooter": "Информацию по работе с этой вики можно найти в [//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 справочном руководстве].\n\n== Некоторые полезные ресурсы ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Список возможных настроек];\n* [//www.mediawiki.org/wiki/Manual:FAQ Часто задаваемые вопросы и ответы по MediaWiki];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Рассылка уведомлений о выходе новых версий MediaWiki].\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Перевод MediaWiki на свой язык]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/rue.json b/includes/installer/i18n/rue.json
new file mode 100644 (file)
index 0000000..92a1c38
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Gazeb"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki была успішно наіншталована.'''",
+    "mainpagedocfooter": "[//meta.wikimedia.org/wiki/Help:Contents Мануял хоснователя] Вам порадить, як хосновати MediaWiki.\n\n== Про початок ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Наставлїня конфіґурації]\n* [//www.mediawiki.org/wiki/Manual:FAQ Часты вопросы о MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Розосыланя повідомлїнь про новы верзії MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/sa.json b/includes/installer/i18n/sa.json
new file mode 100644 (file)
index 0000000..5ef4773
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "@metadata": {
+        "authors": [
+            "Hemant wikikosh1"
+        ]
+    },
+    "mainpagetext": "मीडियाविकि तु सफलतया अन्तःस्थापितमस्ति"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/sah.json b/includes/installer/i18n/sah.json
new file mode 100644 (file)
index 0000000..e12c769
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''«MediaWiki» сөпкө туруорулунна.'''",
+    "mainpagedocfooter": "Биики программатын туһунан [//meta.wikimedia.org/wiki/Help:Contents справочникка] көрүөххүн сөп.\n\n== Саҕаланыыта ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Конфигурация уларытыытын параметрдара]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki релизтарын почтовай испииһэгэ]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/sc.json b/includes/installer/i18n/sc.json
new file mode 100644 (file)
index 0000000..adf7b5d
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "@metadata": {
+        "authors": [
+            "Andria"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki est stadu installadu in modu currègidu.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/scn.json b/includes/installer/i18n/scn.json
new file mode 100644 (file)
index 0000000..fa92a40
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Nstallazzioni di MediaWiki cumplitata currettamenti.'''",
+    "mainpagedocfooter": "Pi favuri taliari [//meta.wikimedia.org/wiki/Help:Contents Guida utenti] pi aiutu supra l'usu e la cunfigurazzioni di stu software wiki.\n\n== P'accuminzari ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Alencu di mpustazzioni di cunfigurazzioni]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailing list dî rilassi di MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/sco.json b/includes/installer/i18n/sco.json
new file mode 100644 (file)
index 0000000..ddff751
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki haes been installit wi speed.'''",
+    "mainpagedocfooter": "Aks the [//meta.wikimedia.org/wiki/Help:Contents Uiser's Manual] for speirins aboot using the wiki saftware.\n\n== Gettin startit ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settins leet]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki releese mailin leet]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/sdc.json b/includes/installer/i18n/sdc.json
new file mode 100644 (file)
index 0000000..8fb65a7
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Isthallazioni di MediaWiki accabadda currentementi.'''",
+    "mainpagedocfooter": "Cunsultha la [//meta.wikimedia.org/wiki/Aggiuddu:Summàriu Ghia utenti] pa maggiori infuimmazioni i l'usu di chisthu software wiki.\n\n== Pa ischuminzà ==\nLi sighenti cullegamenti so in linga ingrese:\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Impusthazioni di cunfigurazioni]\n* [//www.mediawiki.org/wiki/Manual:FAQ Prigonti friquenti i MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailing list annùnzii MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/sei.json b/includes/installer/i18n/sei.json
new file mode 100644 (file)
index 0000000..3d46a56
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki coccebj installöx successua zo mii.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/sh.json b/includes/installer/i18n/sh.json
new file mode 100644 (file)
index 0000000..c372fa4
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "OC Ripper"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki softver is uspješno instaliran.'''",
+    "mainpagedocfooter": "Kontaktirajte [//meta.wikimedia.org/wiki/Help:Contents uputstva za korisnike] za informacije o upotrebi wiki programa.\n\n== Početak ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista postavki]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki najčešće postavljana pitanja]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Lista E-Mail adresa MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/shi.json b/includes/installer/i18n/shi.json
new file mode 100644 (file)
index 0000000..09bbf18
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Dalinanir"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki tǧizn (tsrbk) bla tamukrist.'''",
+    "mainpagedocfooter": "Ẓr taǧttnn  [//meta.wikimedia.org/wiki/Aide:Contenu Guide de l’utilisateur] bac ad tawit inɣmisn yaḍn f manik sa tswwurt asɣẓan ad.\n\n== Izwir d MediaWiki ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Umuɣ n iɣwwarn n usgadda ]\n* [//www.mediawiki.org/wiki/Manual:FAQ/fr Isqqsitn f MidyWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Umuɣ n imsgdaln f imbḍitn n MidyaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/si.json b/includes/installer/i18n/si.json
new file mode 100644 (file)
index 0000000..f4b1dc1
--- /dev/null
@@ -0,0 +1,141 @@
+{
+    "@metadata": {
+        "authors": [
+            "Singhalawap",
+            "පසිඳු කාවින්ද"
+        ]
+    },
+    "config-desc": "මාධ්‍යවිකි සඳහා වූ ස්ථාපකය",
+    "config-title": "මාධ්‍යවිකි $1 ස්ථාපනය",
+    "config-information": "තොරතුරු",
+    "config-localsettings-key": "උසස්කිරීම් යතුර:",
+    "config-localsettings-badkey": "ඔබ ඉදිරිපත් කෙරූ යතුර වැරදිය.",
+    "config-session-error": "සැසිය ඇරඹීමේ දෝෂය: $1",
+    "config-your-language": "ඔබේ භාෂාව:",
+    "config-wiki-language": "විකි භාෂාව:",
+    "config-back": "← ආපසු",
+    "config-continue": "ඉදිරියට →",
+    "config-page-language": "භාෂාව",
+    "config-page-welcome": "මාධ්‍යවිකි වෙත පිළිගනිමු!",
+    "config-page-dbconnect": "දත්ත සංචිතයට සම්බන්ධ කරන්න",
+    "config-page-upgrade": "පවත්නා ස්ථාපනය උසස් කරන්න",
+    "config-page-dbsettings": "දත්ත සංචිත සැකසුම්",
+    "config-page-name": "නම",
+    "config-page-options": "විකල්ප",
+    "config-page-install": "ස්ථාපනය",
+    "config-page-complete": "සම්පූර්ණයි!",
+    "config-page-restart": "ස්ථාපනය යළි අරඹන්න",
+    "config-page-readme": "මාව කියවන්න",
+    "config-page-releasenotes": "නිකුතු සටහන්",
+    "config-page-copying": "පිටපත් කරමින්",
+    "config-page-upgradedoc": "උසස් කරමින්",
+    "config-page-existingwiki": "පවත්නා විකිය",
+    "config-env-php": "PHP $1 ස්ථාපිතයි.",
+    "config-db-type": "දත්ත සංචිත වර්ගය:",
+    "config-db-host": "දත්ත සංචිත ධාරක:",
+    "config-db-wiki-settings": "මෙම විකිය හඳුනා ගන්න",
+    "config-db-name": "දත්ත සංචිතයේ නම:",
+    "config-db-name-oracle": "දත්ත සංචිත සංක්ෂිප්ත නිරූපණය:",
+    "config-db-install-account": "ස්ථාපනය සඳහා පරිශීලක ගිණුම",
+    "config-db-username": "දත්ත සංචිතයේ පරිශීලක නාමය:",
+    "config-db-password": "දත්ත සංචිතයේ මුරපදය:",
+    "config-db-wiki-account": "සාමාන්‍ය ක්‍රියාකාරිත්වය සඳහා පරිශීලක ගිණුම",
+    "config-db-prefix": "දත්ත සංචිත වගු උපසර්ගය:",
+    "config-db-charset": "දත්ත සංචිත අක්ෂර කට්ටලය",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 ද්විමය",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 ආපස්සට-ගැළපෙන UTF-8",
+    "config-db-port": "දත්ත සංචිතයේ කවුළුව:",
+    "config-db-schema": "මාධ්‍යවිකි සඳහා සංක්ෂිප්ත නිරූපණය:",
+    "config-pg-test-error": "'''$1''' දත්ත සංචිතය වෙත සම්බන්ධ විය නොහැක: $2",
+    "config-sqlite-dir": "SQLite දත්ත නාමවලිය:",
+    "config-oracle-def-ts": "සාමාන්‍ය වගු අවකාශය:",
+    "config-oracle-temp-ts": "තාවකාලික වගු අවකාශය:",
+    "config-header-mysql": "MySQL සැකසුම්",
+    "config-header-postgres": "PostgreSQL සැකසුම්",
+    "config-header-sqlite": "SQLite සැකසුම්",
+    "config-header-oracle": "ඔරකල් සැකසුම්",
+    "config-invalid-db-type": "වලංගු නොවන දත්ත සංචිත වර්ගය",
+    "config-missing-db-name": "\"දත්ත සංචිත නාමය\" සඳහා ඔබ විසින් අගයක් දිය යුතු වේ",
+    "config-missing-db-host": "\"දත්ත සංචිත ධාරකය\" සඳහා ඔබ විසින් අගයක් දිය යුතු වේ",
+    "config-missing-db-server-oracle": "\"දත්ත සංචිත TNS\" සඳහා ඔබ විසින් අගයක් දිය යුතු වේ",
+    "config-regenerate": "නැවත ජනිත කරන්න LocalSettings.php →",
+    "config-db-web-account": "ජාල ප්‍රවේශනය සඳහා දත්ත සංචිත ගිණුම",
+    "config-mysql-engine": "ආචයන එන්ජිම:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-binary": "ද්විමය",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "විකියෙහි නම:",
+    "config-site-name-blank": "අඩවි නාමයක් යොදන්න.",
+    "config-project-namespace": "ව්‍යාපෘතියේ නාමඅවකාශය:",
+    "config-ns-generic": "ව්‍යාපෘතිය",
+    "config-ns-site-name": "විකියෙහි නම ලෙසම: $1",
+    "config-ns-other": "වෙනත් (විශේෂණය කරන්න)",
+    "config-ns-other-default": "මගේවිකිය",
+    "config-admin-box": "පරිපාලක ගිණුම",
+    "config-admin-name": "ඔබේ නම:",
+    "config-admin-password": "මුරපදය:",
+    "config-admin-password-confirm": "මුරපදය නැවතත්:",
+    "config-admin-name-blank": "පරිපාලක පරිශීලක නාමය යොදන්න.",
+    "config-admin-password-blank": "පරිපාලක ගිණුම සඳහා මුරපදය යොදන්න.",
+    "config-admin-password-same": "මුරපදය හා පරිශීලක නාමය එක සමාන නොවිය යුතුය.",
+    "config-admin-password-mismatch": "ඔබ ඇතුළු කල මුරපද දෙක නොගැලපේ.",
+    "config-admin-email": "විද්‍යුත්-තැපැල් ලිපිනය:",
+    "config-admin-error-bademail": "ඔබ විසින් වලංගු නොවන විද්‍යුත්-ලිපිනයක් යොදා ඇත.",
+    "config-optional-continue": "මගෙන් තව ප්‍රශ්ණ අහන්න.",
+    "config-optional-skip": "මම දැනටමත් කම්මැලි වී ඇත, විකිය ස්ථාපනය කරන්න.",
+    "config-profile": "පරිශීලක හිමිකම් පැතිකඩ:",
+    "config-profile-wiki": "සාම්ප්‍රදායික විකිය",
+    "config-profile-no-anon": "ගිණුම් තැනීම අවශ්‍යයි",
+    "config-profile-fishbowl": "අවසරලත් සංස්කාරකවරුන් පමණි",
+    "config-profile-private": "පුද්ගලික විකිය",
+    "config-license": "කතුහිමිකම සහ බලපත්‍රය:",
+    "config-license-none": "බලපත්‍ර පාද තලයක් නොමැත",
+    "config-license-cc-by-sa": "නිර්මාණාත්මක පොදුජන ආරෝපණය හුවමාරුවට සමානව",
+    "config-license-cc-by": "නිර්මාණාත්මක පොදුජන ආරෝපණය",
+    "config-license-cc-by-nc-sa": "නිර්මාණාත්මක පොදුජන ආරෝපණය වාණිජ්‍ය-නොවන හුවමාරුවට සමානව",
+    "config-license-pd": "පොදු වසම",
+    "config-email-settings": "විද්‍යුත්-තැපැල් සැකසුම්",
+    "config-enable-email": "පිටතට යොමු වූ විද්‍යුත්-තැපෑල සක්‍රිය කරන්න",
+    "config-email-user": "පරිශීලක-වෙත-පරිශීලක විද්‍යුත්-තැපෑල සක්‍රිය කරන්න",
+    "config-email-usertalk": "පරිශීලක කතාබහ පිටු නිවේදනය සක්‍රිය කරන්න",
+    "config-email-watchlist": "මුරලැයිස්තු නිවේදනය සක්‍රිය කරන්න",
+    "config-email-auth": "විද්‍යුත්-තැපැල් සහතික කිරීම සක්‍රිය කරන්න",
+    "config-email-sender": "ප්‍රත්‍යාගමන විද්‍යුත්-තැපැල් ලිපිනය:",
+    "config-upload-settings": "පින්තූර සහ ගොනු උඩුගත කිරීම්",
+    "config-upload-enable": "ගොනු උඩුගත කිරීම් සක්‍රිය කරන්න",
+    "config-upload-deleted": "මැකූ ගොනු සඳහා නාමාවලිය:",
+    "config-logo": "ලාංඡනයේ URL:",
+    "config-instantcommons": "ක්ෂණික කොමන්ස් සක්‍රිය කරන්න",
+    "config-cc-again": "නැවත ඇහිඳගන්න...",
+    "config-advanced-settings": "උසස් වින්‍යාසගතකෙරුම",
+    "config-cache-options": "වස්තු කෑෂය සඳහා සැකසුම්:",
+    "config-memcached-servers": "මතකකෑෂිත සර්වරයන්:",
+    "config-extensions": "විස්තීර්ණ",
+    "config-install-step-done": "සිදුකලා",
+    "config-install-step-failed": "අසාර්ථකයි",
+    "config-install-extensions": "විස්තීර්ණ අඩංගු කරමින්",
+    "config-install-database": "දත්ත සංචිතය සකසමින්",
+    "config-install-schema": "සංක්ෂිප්ත නිරූපණය තනමින්",
+    "config-install-pg-schema-not-exist": "PostgreSQL සංක්ෂිප්ත නිරූපණය නොපවතියි.",
+    "config-install-pg-commit": "වෙනස්කම් ප්‍රයාපනය කරමින්",
+    "config-install-pg-plpgsql": "PL/pgSQL භාෂාව සඳහා පරික්ෂා කරමින්",
+    "config-install-user": "දත්ත සංචිත පරිශීලක තනමින්",
+    "config-install-user-alreadyexists": "\"$1\" පරිශීලක දැනටමත් පවතී",
+    "config-install-user-create-failed": "\"$1\" පරිශීලක තැනීම අසාර්ථකයි: $2",
+    "config-install-user-missing": "විශේෂණය කෙරූ \"$1\" පරිශීලකයා නොපවතියි.",
+    "config-install-tables": "වගු තනමින්",
+    "config-install-interwiki": "සාමාන්‍ය අන්තර්විකි වගුව ගහනය කරමින්",
+    "config-install-interwiki-list": "<code>interwiki.list</code> ගොනුව කියවිය නොහැක.",
+    "config-install-stats": "සංඛ්‍යානය අරඹමින්",
+    "config-install-keys": "රහස් යතුරු ජනිත කරමින්",
+    "config-install-sysop": "පරිපාලක පරිශීලක ගිණුම තනමින්",
+    "config-install-mainpage": "සාමාන්‍ය අන්තර්ගතය සමඟින් ප්‍රධාන පිටුව තනමින්",
+    "config-install-mainpage-failed": "ප්‍රධාන පිටුව ඇතුල් කල නොහැක: $1",
+    "config-download-localsettings": "<code>LocalSettings.php</code> බාගන්න",
+    "config-help": "උදව්",
+    "config-nofile": "\"$1\" ගොනුව සොයාගත නොහැක. එක මැකිලා ගියාවත්ද?",
+    "mainpagetext": "'''මීඩියාවිකි සාර්ථක ලෙස ස්ථාපනය කරන ලදි.'''",
+    "mainpagedocfooter": "විකි මෘදුකාංග භාවිතා කිරීම පිළිබඳ තොරතුරු සඳහා  [//meta.wikimedia.org/wiki/Help:Contents පරිශීලකයන් සඳහා නියමුව] හදාරන්න.\n\n== ඇරඹුම ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings වින්‍යාස සැකසුම්]\n* [//www.mediawiki.org/wiki/Manual:FAQ මීඩියාවිකි නිති-විමසන-පැන]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce මීඩියාවිකි නිකුතුව තැපැල් ලැයිස්තුව]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/sk.json b/includes/installer/i18n/sk.json
new file mode 100644 (file)
index 0000000..d98409e
--- /dev/null
@@ -0,0 +1,16 @@
+{
+    "@metadata": {
+        "authors": [
+            "Kusavica"
+        ]
+    },
+    "config-your-language": "Váš jazyk:",
+    "config-wiki-language": "Wiki jazyk:",
+    "config-back": "← Späť",
+    "config-continue": "Pokračovať →",
+    "config-page-language": "Jazyk",
+    "config-download-localsettings": "Stiahnuť <code>LocalSettings.php</code>",
+    "config-nofile": "Súbor \"$1\" sa nenašiel. Bol zmazaný?",
+    "mainpagetext": "'''Softvér MediaWiki bol úspešne nainštalovaný.'''",
+    "mainpagedocfooter": "Informácie ako používať wiki softvér nájdete v [//meta.wikimedia.org/wiki/Help:Contents Používateľskej príručke].\n\n== Začíname ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Zoznam konfiguračných nastavení]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce mailing list nových verzií MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/sl.json b/includes/installer/i18n/sl.json
new file mode 100644 (file)
index 0000000..b5afd87
--- /dev/null
@@ -0,0 +1,172 @@
+{
+    "@metadata": {
+        "authors": [
+            "Dbc334",
+            "Eleassar"
+        ]
+    },
+    "config-desc": "Namestitveni program za MediaWiki",
+    "config-title": "Namestitev MediaWiki $1",
+    "config-information": "Informacije",
+    "config-localsettings-cli-upgrade": "Zaznana je bila datoteka <code>LocalSettings.php</code>.\nZa nadgradnjo te namestitve zaženite <code>update.php</code>",
+    "config-localsettings-key": "Nadgraditveni ključ:",
+    "config-localsettings-badkey": "Naveden ključ je napačen.",
+    "config-upgrade-key-missing": "Zaznana je bila obstoječa namestitev MediaWiki.\nZa nadgradnjo te namestitve vstavite naslednjo vrstico na dno vaše <code>LocalSettings.php</code>:\n\n$1",
+    "config-session-error": "Napaka pri začenjanju seje: $1",
+    "config-session-expired": "Kot kaže, so vaši podatki seje potekli.\nSeje so konfigurirane za dobo $1.\nTo lahko povečate tako, da nastavite <code>session.gc_maxlifetime</code> v php.ini.\nPonovno zaženite postopek namestitve.",
+    "config-no-session": "Vaši podatki seje so bili izgubljeni!\nPreverite vaš php.ini in se prepričajte, da je <code>session.save_path</code> nastavljena na ustrezno mapo.",
+    "config-your-language": "Vaš jezik:",
+    "config-your-language-help": "Izberite jezik, ki bo uporabljen med postopkom namestitve.",
+    "config-wiki-language": "Jezik wikija:",
+    "config-wiki-language-help": "Izberite jezik, v katerem bo wiki večinoma pisan.",
+    "config-back": "← Nazaj",
+    "config-continue": "Nadaljuj →",
+    "config-page-language": "Jezik",
+    "config-page-welcome": "Dobrodošli na MediaWiki!",
+    "config-page-dbconnect": "Vzpostavi povezavo z zbirko podatkov",
+    "config-page-upgrade": "Nadgradi obstoječo namestitev",
+    "config-page-dbsettings": "Nastavitve zbirke podatkov",
+    "config-page-name": "Ime",
+    "config-page-options": "Možnosti",
+    "config-page-install": "Namesti",
+    "config-page-complete": "Končano!",
+    "config-page-restart": "Ponovno zaženi namestitev",
+    "config-page-readme": "Beri me",
+    "config-page-releasenotes": "Opombe ob izidu",
+    "config-page-copying": "Kopiranje",
+    "config-page-upgradedoc": "Nadgrajevanje",
+    "config-page-existingwiki": "Obstoječ wiki",
+    "config-help-restart": "Želite počistiti vse shranjene podatke, ki ste jih vnesti, in ponovno začeti s postopkom namestitve?",
+    "config-restart": "Da, ponovno zaženi",
+    "config-welcome": "=== Pregledi okolja ===\nIzvedli bomo osnovne preglede, da vidimo, če je okolje primerno za namestitev MediaWiki.\nPosredujte rezultate teh pregledov, če med namestitvijo potrebujete pomoč.",
+    "config-sidebar": "* [//www.mediawiki.org Domača stran MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents Vodnik za uporabnike]\n* [//www.mediawiki.org/wiki/Manual:Contents Vodnik za administratorje]\n* [//www.mediawiki.org/wiki/Manual:FAQ Pogosto zastavljena vprašanja]\n----\n* <doclink href=Readme>Beri me</doclink>\n* <doclink href=ReleaseNotes>Opombe ob izidu</doclink>\n* <doclink href=Copying>Kopiranje</doclink>\n* <doclink href=UpgradeDoc>Nadgrajevanje</doclink>",
+    "config-env-good": "Okolje je pregledano.\nLahko namestite MediaWiki.",
+    "config-env-bad": "Okolje je pregledano.\nNe morete namestiti MediaWiki.",
+    "config-env-php": "Nameščen je PHP $1.",
+    "config-env-php-toolow": "Nameščen je PHP $1.\nVendar pa MediaWiki zahteva PHP $2 ali višji.",
+    "config-unicode-using-utf8": "Uporaba utf8_normalize.so Briona Vibberja za normalizacijo unikoda.",
+    "config-unicode-using-intl": "Uporaba [http://pecl.php.net/intl razširitve PECL intl] za normalizacijo unikoda.",
+    "config-memory-raised": "PHP-jev <code>memory_limit</code> je $1, dvignjen na $2.",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] je nameščen",
+    "config-apc": "[http://www.php.net/apc APC] je nameščen",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] je nameščen",
+    "config-diff3-bad": "GNU diff3 ni bilo mogoče najti.",
+    "config-db-type": "Vrsta zbirke podatkov:",
+    "config-db-host": "Gostitelj zbirke podatkov:",
+    "config-db-host-oracle": "TNS zbirke podatkov:",
+    "config-db-wiki-settings": "Prepoznaj ta wiki:",
+    "config-db-name": "Ime zbirke podatkov:",
+    "config-db-name-oracle": "Shema zbirke podatkov:",
+    "config-db-username": "Uporabniško ime zbirke podatkov:",
+    "config-db-password": "Geslo zbirke podatkov:",
+    "config-db-prefix": "Predpona tabel zbirke podatkov:",
+    "config-db-charset": "Nabor znakov zbirke podatkov",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 dvojiško",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 nazaj združljiv UTF-8",
+    "config-mysql-old": "Potreben je MySQL $1 ali novejši; vi imate $2.",
+    "config-db-port": "Vrata zbirke podatkov:",
+    "config-db-schema": "Shema MediaWiki",
+    "config-db-schema-help": "Ta shema je po navadi v redu.\nSpremenite jo samo, če veste, da jo morate.",
+    "config-sqlite-dir": "Mapa podatkov SQLite:",
+    "config-support-info": "MediaWiki podpira naslednje sisteme zbirk podatkov:\n\n$1\n\nČe zgoraj ne vidite navedenega sistema zbirk podatkov, ki ga poskušate uporabiti, sledite navodilom na spodnji povezavi, da omogočite podporo.",
+    "config-header-mysql": "Nastavitve MySQL",
+    "config-header-postgres": "Nastavitve PostgreSQL",
+    "config-header-sqlite": "Nastavitve SQLite",
+    "config-header-oracle": "Nastavitve Oracle",
+    "config-invalid-db-type": "Neveljavna vrsta zbirke podatkov",
+    "config-missing-db-name": "Vnesti morate vrednost za »Ime zbirke podatkov«",
+    "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«.\nUporabite 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«.\nUporabljajte samo črke ASCII (a-z, A-Z), številke (0-9), podčrtaje (_) in vezaje (-).",
+    "config-invalid-db-prefix": "Neveljavna predpona zbirke podatkov »$1«.\nUporabljajte samo črke ASCII (a-z, A-Z), številke (0-9), podčrtaje (_) in vezaje (-).",
+    "config-connection-error": "$1.\n\nPreverite gostitelja, uporabniško ime in geslo spodaj ter poskusite znova.",
+    "config-postgres-old": "Potreben je PostgreSQL $1 ali novejši; vi imate $2.",
+    "config-sqlite-connection-error": "$1.\n\nPreverite mapo podatkov in ime zbirke podatkov spodaj ter poskusite znova.",
+    "config-sqlite-readonly": "Datoteka <code>$1</code> ni zapisljiva.",
+    "config-sqlite-cant-create-db": "Ne morem ustvariti datoteke zbirke podatkov <code>$1</code>.",
+    "config-upgrade-done-no-regenerate": "Nadgradnja je končana.\n\nSedaj lahko [$1 začnete uporabljati vaš wiki].",
+    "config-regenerate": "Ponovno ustvari LocalSettings.php →",
+    "config-show-table-status": "Poizvedba <code>SHOW TABLE STATUS</code> ni uspela!",
+    "config-unknown-collation": "'''Opozorilo:''' Zbirke podatkov uporablja neprepoznano razvrščanje znakov.",
+    "config-db-web-account": "Račun zbirke podatkov za spletni dostop",
+    "config-db-web-account-same": "Uporabi enak račun kot za namestitev",
+    "config-db-web-create": "Ustvari račun, če že ne obstaja",
+    "config-mysql-engine": "Pogon skladiščenja:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-charset": "Nabor znakov zbirke podatkov:",
+    "config-mysql-binary": "Dvojiško",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "Ime wikija:",
+    "config-site-name-help": "To bo prikazano v naslovni vrstici brskalnika in na drugih različnih mestih.",
+    "config-site-name-blank": "Vnesite ime strani.",
+    "config-project-namespace": "Imenski prostor projekta:",
+    "config-ns-generic": "Projekt",
+    "config-ns-site-name": "Enako kot ime wikija: $1",
+    "config-ns-other": "Drugo (navedite)",
+    "config-ns-other-default": "MojWiki",
+    "config-ns-invalid": "Naveden imenski prostor »<nowiki>$1</nowiki>« ni veljaven.\nDoločite drug imenski prostor projekta.",
+    "config-ns-conflict": "Naveden imenski prostor »<nowiki>$1</nowiki>« je v sporu s privzetim imenskim prostorom MediaWiki.\nDoločite drug imenski prostor projekta.",
+    "config-admin-box": "Administratorski račun",
+    "config-admin-name": "Vaše ime:",
+    "config-admin-password": "Geslo:",
+    "config-admin-password-confirm": "Geslo, ponovno:",
+    "config-admin-help": "Tukaj vnesite želeno uporabniško ime, na primer »Janez Blog«.\nTo je ime, ki ga boste uporabljali za prijavo v wiki.",
+    "config-admin-name-blank": "Vnesite uporabniško ime administratorja.",
+    "config-admin-name-invalid": "Navedeno uporabniško ime »<nowiki>$1</nowiki>« ni veljavno.\nDoločite drugo uporabniško ime.",
+    "config-admin-password-blank": "Vnesite geslo za administratorski račun.",
+    "config-admin-password-same": "Geslo ne sme biti enako kot uporabniško ime.",
+    "config-admin-password-mismatch": "Vneseni gesli se ne ujemata.",
+    "config-admin-email": "E-poštni naslov:",
+    "config-admin-error-user": "Med ustvarjanjem administratorja »<nowiki>$1</nowiki>« je prišlo do notranje napake.",
+    "config-admin-error-password": "Med nastavljanjem gesla za administratorja »<nowiki>$1</nowiki>« je prišlo do notranje napake: <pre>$2</pre>",
+    "config-admin-error-bademail": "Vnesli ste neveljaven e-poštni naslov.",
+    "config-subscribe": "Naročite se na [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce poštni seznam obvestil o izdajah].",
+    "config-almost-done": "Skoraj ste že končali!\nPreostalo konfiguriranje lahko zdaj preskočite in wiki takoj namestite.",
+    "config-optional-continue": "Zastavi mi več vprašanj.",
+    "config-optional-skip": "Se že dolgočasim; samo namesti wiki.",
+    "config-profile": "Profil uporabniških pravic:",
+    "config-profile-wiki": "Odprti wiki",
+    "config-profile-no-anon": "Zahtevano je ustvarjanje računa",
+    "config-profile-fishbowl": "Samo pooblaščeni urejevalci",
+    "config-profile-private": "Zasebni wiki",
+    "config-license": "Avtorske pravice in licenca:",
+    "config-license-none": "Brez noge dovoljenja",
+    "config-license-cc-by-sa": "Creative Commons Priznanje avtorstva-Deljenje pod enakimi pogoji",
+    "config-license-cc-by": "Creative Commons Priznanje avtorstva",
+    "config-license-cc-by-nc-sa": "Creative Commons Priznanje avtorstva-Nekomercialno-Deljenje pod enakimi pogoji",
+    "config-license-cc-0": "Creative Commons Zero (javna last)",
+    "config-license-pd": "Javna last",
+    "config-license-cc-choose": "Izberite dovoljenje Creative Commons po meri",
+    "config-email-settings": "Nastavitve e-pošte",
+    "config-enable-email": "Omogoči odhodno e-pošto",
+    "config-email-user": "Omogoči e-pošto med uporabniki",
+    "config-email-auth": "Omogoči overitev preko e-pošte",
+    "config-email-sender": "E-poštni naslov za vrnjeno pošto:",
+    "config-upload-settings": "Nalaganje slike in datotek",
+    "config-upload-enable": "Omogoči nalaganje datotek",
+    "config-upload-deleted": "Mapa za izbrisane datoteke:",
+    "config-upload-deleted-help": "Izberite mapo za arhiviranje izbrisanih datotek.\nNajbolje je, da mapa ni dostopna preko spleta.",
+    "config-logo": "URL logotipa:",
+    "config-cc-error": "Izbirnik dovoljenja Creative Commons ni vrnil nobenih rezultatov.\nVnesite ime dovoljenja ročno.",
+    "config-cc-again": "Izberi ponovno ...",
+    "config-cc-not-chosen": "Izberite licenco Creative Commons, ki jo želite uporabiti, in kliknite »proceed«.",
+    "config-advanced-settings": "Napredna konfiguracija",
+    "config-cache-accel": "Predpomnjenje predmetov PHP (APC, XCache ali WinCache)",
+    "config-cache-memcached": "Uporabi Memcached (zahteva dodatno namestitev in konfiguracijo)",
+    "config-memcached-servers": "Strežniki Memcached:",
+    "config-memcache-badip": "Vnesli ste neveljaven IP-naslov za Memcached: $1",
+    "config-extensions": "Razširitve",
+    "config-install-step-done": "končano",
+    "config-install-step-failed": "spodletelo",
+    "config-install-database": "Vzpostavljanje zbirke podatkov",
+    "config-install-pg-schema-not-exist": "Shema PostgreSQL ne obstaja.",
+    "config-install-user-alreadyexists": "Uporabnik »$1« že obstaja",
+    "config-install-tables": "Ustvarjanje tabel",
+    "config-download-localsettings": "Prenesi <code>LocalSettings.php</code>",
+    "config-help": "pomoč",
+    "mainpagetext": "'''Programje MediaWiki je bilo uspešno nameščeno.'''",
+    "mainpagedocfooter": "Oglejte si [//meta.wikimedia.org/wiki/Help:Contents Uporabniški priročnik] za informacije o uporabi programja wiki.\n\n== Kako začeti ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Seznam konfiguracijskih nastavitev]\n* [//www.mediawiki.org/wiki/Manual:FAQ Poogsto zastavljena vprašanja MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Poštni seznam izdaj MediaWiki]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Prevedite MediaWiki v svoj jezik]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/sli.json b/includes/installer/i18n/sli.json
new file mode 100644 (file)
index 0000000..4f82151
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Äberlausitzer"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki wourde erfolgreich installiert.'''",
+    "mainpagedocfooter": "Hilfe zur Benutzung und Konfiguration der Wiki-Software fendest du eim [//meta.wikimedia.org/wiki/Help:Contents Benutzerhandbichl].\n\n== Stoarthilfa ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Liste der Konfigurationsvariablen]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki-FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailingliste neuer MediaWiki-Versionen]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/so.json b/includes/installer/i18n/so.json
new file mode 100644 (file)
index 0000000..0344c5a
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Maax"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki Si fiican oo kuugu install gareeyay.'''",
+    "mainpagedocfooter": "Meeshaan ka akhriso sidii aad u isticmaali leheed brogramka wiki [//meta.wikimedia.org/wiki/Help:Contents User's Guide]  .\n== Bilaaw ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/sq.json b/includes/installer/i18n/sq.json
new file mode 100644 (file)
index 0000000..a9ef652
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki software u instalua me sukses.'''",
+    "mainpagedocfooter": "Për më shumë informata rreth përdorimit të softwerit wiki , ju lutem shikoni [//meta.wikimedia.org/wiki/Help:Contents dokumentacionin përkatës].\n\n== Sa për fillim==\n* [//www.mediawiki.org/wiki/Help:Configuration_settings Parazgjedhjet e MediaWiki-t]\n* [//www.mediawiki.org/wiki/Help:FAQ Pyetjet e shpeshta rreth MediaWiki-t]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Njoftime rreth MediaWiki-t]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/sr-ec.json b/includes/installer/i18n/sr-ec.json
new file mode 100644 (file)
index 0000000..87a119a
--- /dev/null
@@ -0,0 +1,38 @@
+{
+    "@metadata": {
+        "authors": [
+            "Rancher",
+            "Михајло Анђелковић"
+        ]
+    },
+    "config-session-error": "Грешка при започињању сесије: $1",
+    "config-session-expired": "Ваши подаци о сесији су истекли.\nСесије су подешене да трају $1.\nЊихов рок можете повећати постављањем <code>session.gc_maxlifetime</code> у php.ini.\nПоново покрените инсталацију.",
+    "config-no-session": "Ваши подаци о сесији су изгубљени!\nПроверите Ваш php.ini и обезбедите да је <code>session.save_path</code> постављен на одговарајући директоријум.",
+    "config-your-language": "Ваш језик:",
+    "config-your-language-help": "Изаберите језик који желите да користите током инсталације.",
+    "config-wiki-language": "Језик викија:",
+    "config-wiki-language-help": "Изаберите језик на ком ће бити садржај викија.",
+    "config-back": "← Назад",
+    "config-continue": "Настави →",
+    "config-page-language": "Језик",
+    "config-page-welcome": "Добро дошли на МедијаВики!",
+    "config-page-dbconnect": "Повезивање са базом података",
+    "config-page-upgrade": "Надоградња постојеће инсталације",
+    "config-page-dbsettings": "Подешавања базе података",
+    "config-page-name": "Назив",
+    "config-page-options": "Поставке",
+    "config-page-install": "Инсталирај",
+    "config-page-complete": "Завршено!",
+    "config-page-restart": "Поновно покретање инсталације",
+    "config-page-copying": "Умножавање",
+    "config-page-upgradedoc": "Надоградња",
+    "config-page-existingwiki": "Постојећи вики",
+    "config-help-restart": "Желите ли да обришете све сачуване податке које сте унели и поново покренете инсталацију?",
+    "config-restart": "Да, покрени поново",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "mainpagetext": "'''Медијавики је успешно инсталиран.'''",
+    "mainpagedocfooter": "Погледајте [//meta.wikimedia.org/wiki/Help:Contents кориснички водич] за коришћење програма.\n\n== Увод ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Помоћ у вези са подешавањима]\n* [//www.mediawiki.org/wiki/Manual:FAQ Често постављена питања]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Дописна листа о издањима Медијавикија]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/sr-el.json b/includes/installer/i18n/sr-el.json
new file mode 100644 (file)
index 0000000..ef1c320
--- /dev/null
@@ -0,0 +1,35 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "config-session-error": "Greška pri započinjanju sesije: $1",
+    "config-session-expired": "Vaši podaci o sesiji su istekli.\nSesije su podešene da traju $1.\nNjihov rok možete povećati postavljanjem <code>session.gc_maxlifetime</code> u php.ini.\nPonovo pokrenite instalaciju.",
+    "config-no-session": "Vaši podaci o sesiji su izgubljeni!\nProverite Vaš php.ini i obezbedite da je <code>session.save_path</code> postavljen na odgovarajući direktorijum.",
+    "config-your-language": "Vaš jezik:",
+    "config-your-language-help": "Izaberite jezik koji želite da koristite tokom instalacije.",
+    "config-wiki-language": "Jezik vikija:",
+    "config-wiki-language-help": "Izaberite jezik na kom će biti sadržaj vikija.",
+    "config-back": "← Nazad",
+    "config-continue": "Nastavi →",
+    "config-page-language": "Jezik",
+    "config-page-welcome": "Dobro došli na MedijaViki!",
+    "config-page-dbconnect": "Povezivanje sa bazom podataka",
+    "config-page-upgrade": "Nadogradnja postojeće instalacije",
+    "config-page-dbsettings": "Podešavanja baze podataka",
+    "config-page-name": "Naziv",
+    "config-page-options": "Postavke",
+    "config-page-install": "Instaliraj",
+    "config-page-complete": "Završeno!",
+    "config-page-restart": "Ponovno pokretanje instalacije",
+    "config-page-copying": "Umnožavanje",
+    "config-page-upgradedoc": "Nadogradnja",
+    "config-page-existingwiki": "Postojeći viki",
+    "config-help-restart": "Želite li da obrišete sve sačuvane podatke koje ste uneli i ponovo pokrenete instalaciju?",
+    "config-restart": "Da, pokreni ponovo",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "mainpagetext": "'''MedijaViki je uspešno instaliran.'''",
+    "mainpagedocfooter": "Molimo vidite [//meta.wikimedia.org/wiki/Help:Contents korisnički vodič] za informacije o upotrebi viki softvera.\n\n== Za početak ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Pomoć u vezi sa podešavanjima]\n* [//www.mediawiki.org/wiki/Manual:FAQ Najčešće postavljena pitanja]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mejling lista o izdanjima MedijaVikija]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/srn.json b/includes/installer/i18n/srn.json
new file mode 100644 (file)
index 0000000..a535dcb
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki seti kon bun.'''",
+    "mainpagedocfooter": "Luku na ini a [//meta.wikimedia.org/wiki/Help:Yepi yepibuku] fu si fa fu kebrouki a wikisoftware.\n\n== Moro yepi ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Den seti]\n* [//www.mediawiki.org/wiki/Manual:FAQ Sani di ben aksi furu (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Boskopu grupu gi nyun meki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ss.json b/includes/installer/i18n/ss.json
new file mode 100644 (file)
index 0000000..ab02e91
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''i-MediaWiki seyifakeke ngalokuphelele.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/stq.json b/includes/installer/i18n/stq.json
new file mode 100644 (file)
index 0000000..abee1ef
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Maartenvdbent"
+        ]
+    },
+    "mainpagetext": "'''Ju MediaWiki Software wuude mäd Ärfoulch installierd.'''",
+    "mainpagedocfooter": "Sjuch ju [//meta.wikimedia.org/wiki/MediaWiki_localization Dokumentation tou de Anpaasenge fon dän Benutseruurfläche] un dät [//meta.wikimedia.org/wiki/Help:Contents Benutserhondbouk] foar Hälpe tou ju Benutsenge un Konfiguration."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/su.json b/includes/installer/i18n/su.json
new file mode 100644 (file)
index 0000000..920e7ab
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''''Software'' MediaWiki geus diinstal.'''",
+    "mainpagedocfooter": "Mangga tingal ''[//meta.wikimedia.org/wiki/MediaWiki_localisation documentation on customizing the interface]'' jeung [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide Tungtunan Pamaké] pikeun pitulung maké jeung konfigurasi."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/sv.json b/includes/installer/i18n/sv.json
new file mode 100644 (file)
index 0000000..48f9c68
--- /dev/null
@@ -0,0 +1,199 @@
+{
+    "@metadata": {
+        "authors": [
+            "Jopparn",
+            "Skalman",
+            "WikiPhoenix"
+        ]
+    },
+    "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.\nFör att uppgradera den här installationen, vänligen ange värdet för <code>$wgUpgradeKey</code> i rutan nedan.\nDu hittar den i <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "En <code>LocalSettings.php</code>-fil har upptäckts.\nFö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.\nFör att uppgradera installationen, lägg till följande rad i slutet av din <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "De befintliga <code>LocalSettings.php</code> verkar vara ofullständig.\nVariabeln $1 är inte inställd.\nÄ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.",
+    "config-wiki-language": "Wikispråk:",
+    "config-wiki-language-help": "Välj det språk som wikin främst kommer att skrivas i.",
+    "config-back": "← Tillbaka",
+    "config-continue": "Fortsätt →",
+    "config-page-language": "Språk",
+    "config-page-welcome": "Välkommen till MediaWiki!",
+    "config-page-dbconnect": "Anslut till databas",
+    "config-page-upgrade": "Uppgradera existerande installation",
+    "config-page-dbsettings": "Databasinställningar",
+    "config-page-name": "Namn",
+    "config-page-options": "Alternativ",
+    "config-page-install": "Installera",
+    "config-page-complete": "Slutfört!",
+    "config-page-restart": "Starta om installationen",
+    "config-page-readme": "Läs mig",
+    "config-page-releasenotes": "Utgivningsanteckningar",
+    "config-page-copying": "Kopiering",
+    "config-page-upgradedoc": "Uppgradering",
+    "config-page-existingwiki": "Befintlig wiki",
+    "config-help-restart": "Vill du rensa all sparad data som du har skrivit in och starta om installationen?",
+    "config-restart": "Ja, starta om",
+    "config-sidebar": "* [//www.mediawiki.org MediaWikis hemsida]\n* [//www.mediawiki.org/wiki/Help:Contents Användarguide]\n* [//www.mediawiki.org/wiki/Manual:Contents Administratörguide]\n* [//www.mediawiki.org/wiki/Manual:FAQ Frågor och svar]\n----\n* <doclink href=Readme>Läs mig</doclink>\n* <doclink href=ReleaseNotes>Utgivningsanteckningar</doclink>\n* <doclink href=Copying>Kopiering</doclink>\n* <doclink href=UpgradeDoc>Uppgradering</doclink>",
+    "config-env-good": "Miljön har kontrollerats.\nDu kan installera MediaWiki.",
+    "config-env-bad": "Miljön har kontrollerats.\nDu kan inte installera MediaWiki.",
+    "config-env-php": "PHP $1 är installerad.",
+    "config-env-php-toolow": "PHP $1 är installerad.\nMediaWiki 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.'''\n'''Inaktivera den om du kan.'''\nMediaWiki 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.\nDet 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.\nMediaWiki kräver funktioner i denna modul och kommer inte att fungera i den här konfigurationen.\nOm 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.\nDetta är förmodligen för lågt.\nInstallationen 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.\nInstallationen 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.\nÄ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",
+    "config-header-oracle": "Oracle-inställningar",
+    "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.\nAnvänd bara ASCII-bokstäver (a-z, A-Z), siffror (0-9), understreck (_) och bindestreck (-).",
+    "config-invalid-db-prefix": "\"$1\" är ett ogiltigt databasprefix.\nAnvänd bara ASCII-bokstäver (a-z, A-Z), siffror (0-9), understreck (_) och bindestreck (-).",
+    "config-connection-error": "$1.\n\nKontrollera värden, användarnamnet och lösenordet nedan och försök igen",
+    "config-invalid-schema": "\"$1\" är ett ogiltigt schema för MediaWiki.\nAnvä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.\nAnvänd inte mellanslag eller bindestreck.\nDetta 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.\nFör att uppgradera dem till MediaWiki $1, klicka på '''Fortsätt'''.",
+    "config-upgrade-done": "Uppgraderingen slutfördes.\n\nDu kan nu [$1 börja använda din wiki].\n\nOm du vill förnya din <code>LocalSettings.php</code>-fil, klicka på knappen nedan.\nDetta '''rekommenderas inte''' om du har problem med din wiki.",
+    "config-upgrade-done-no-regenerate": "Uppgraderingen slutfördes.\n\nDu 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:",
+    "config-mysql-binary": "Binär",
+    "config-mysql-utf8": "UTF-8",
+    "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.\nAnge 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.\nAnge ett annat namnrymd för projektet.",
+    "config-admin-box": "Administratörskonto",
+    "config-admin-name": "Ditt namn:",
+    "config-admin-password": "Lösenord:",
+    "config-admin-password-confirm": "Lösenord igen:",
+    "config-admin-help": "Skriv in ditt föredragna användarnamn här, t.ex. \"Joe Bloggs\".\nDetta är namnet du kommer att använda för att logga in på wikin.",
+    "config-admin-name-blank": "Ange ett användarnamn för administratörskontot.",
+    "config-admin-name-invalid": "Det angivna användarnamnet \"<nowiki>$1</nowiki>\" är ogiltigt.\nAnge ett annat användarnamn.",
+    "config-admin-password-blank": "Ange ett lösenord för administratörskontot.",
+    "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!\nDu 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:",
+    "config-license-none": "Ingen licenssidfot",
+    "config-license-cc-by-sa": "Creative Commons Erkännande Dela Lika",
+    "config-license-cc-by": "Creative Commons Erkännande",
+    "config-license-cc-by-nc-sa": "Creative Commons Erkännande Icke-Kommersiell Dela Lika",
+    "config-license-cc-0": "Creative Commons Zero (allmän egendom)",
+    "config-license-gfdl": "GNU Free Documentation License 1.3 eller senare",
+    "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.\nAnge 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.\nVänligen fortsätt till nästa sida.",
+    "config-install-begin": "Genom att trycka på \"{{int:config-continue}}\", påbörjar du installationen av MediaWiki.\nOm 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.\nVä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.\nHoppar ö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!'''\nDu har installerat MediaWiki.\n\nInstallationsprogrammet har genererat filen <code>LocalSettings.php</code>.\nDet innehåller alla dina konfigurationer.\n\nDu kommer att behöva ladda ned den och placera den i botten av din wiki-installation (samma mapp som index.php). Nedladdningen borde ha startats automatiskt.\n\nOm ingen nedladdning erbjöds, eller om du har avbrutit det kan du starta om nedladdningen genom att klicka på länken nedan:\n\n$3\n\n'''OBS''': Om du inte gör detta nu, kommer denna genererade konfigurationsfil inte vara tillgänglig för dig senare om du avslutar installationen utan att ladda ned den.\n\nNär det är klart, kan du '''[$2 gå in på din wiki]'''.",
+    "config-download-localsettings": "Ladda ned <code>LocalSettings.php</code>",
+    "config-help": "hjälp",
+    "config-nofile": "Filen \"$1\" kunde inte hittas. Har den tagits bort?",
+    "mainpagetext": "'''MediaWiki har installerats utan problem.'''",
+    "mainpagedocfooter": "Information om hur wiki-programvaran används finns i [//meta.wikimedia.org/wiki/Help:Contents användarguiden].\n\n== Att komma igång ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista över konfigurationsinställningar]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mail list]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Lokalisera MediaWiki för ditt språk]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/sw.json b/includes/installer/i18n/sw.json
new file mode 100644 (file)
index 0000000..44dfedf
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Lloffiwr"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki imefanikiwa kuingizwa.'''",
+    "mainpagedocfooter": "Shauriana na [//meta.wikimedia.org/wiki/Help:Contents Mwongozo wa Mtumiaji] kwa habari juu ya utumiaji wa bidhaa pepe ya wiki.\n\n== Msaada wa kianzio ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Orodha ya mipangilio ya msingi]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ ya MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Orodha ya utoaji wa habari za MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/szl.json b/includes/installer/i18n/szl.json
new file mode 100644 (file)
index 0000000..1ecd8c5
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Djpalar"
+        ]
+    },
+    "mainpagetext": "'''Sztalowańy MediaWiki śe udoło.'''",
+    "mainpagedocfooter": "Uobezdrzij [//meta.wikimedia.org/wiki/Help:Contents przewodńik sprowjacza], kaj sům informacyje uo dźołańu uoprogramowańo MediaWiki.\n\n== Na sztart ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lista sztalowań konfiguracyje]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Komuńikaty uo nowych wersyjach MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ta.json b/includes/installer/i18n/ta.json
new file mode 100644 (file)
index 0000000..6904e87
--- /dev/null
@@ -0,0 +1,90 @@
+{
+    "@metadata": {
+        "authors": [
+            "Karthi.dr",
+            "TRYPPN",
+            "மதனாஹரன்"
+        ]
+    },
+    "config-title": "மீடியாவிக்கி $1 நிறுவுதல்",
+    "config-information": "தகவல்",
+    "config-localsettings-key": "தரமுயர்த்தல் குறியீடு:",
+    "config-localsettings-badkey": "நீங்கள் தந்த குறியீடு தவறானது.",
+    "config-your-language": "தங்களது மொழி:",
+    "config-your-language-help": "நிறுவல் செயன்முறையின்போது பயன்படுத்துவதற்கு ஒரு மொழியைத் தெரிவு செய்யவும்.",
+    "config-wiki-language": "விக்கி மொழி:",
+    "config-back": "← முந்தைய",
+    "config-continue": "தொடரவும் →",
+    "config-page-language": "மொழி",
+    "config-page-welcome": "மீடியாவிக்கிக்கு வருக !",
+    "config-page-dbconnect": "தரவுத் தளத்துடன் தொடர்பு கொள்ளவும்",
+    "config-page-dbsettings": "தரவுத் தள அமைப்புகள்",
+    "config-page-name": "பெயர்",
+    "config-page-options": "விருப்பத்தேர்வுகள்",
+    "config-page-install": "நிறுவு",
+    "config-page-complete": "நிறைவு!",
+    "config-page-restart": "நிறுவலை மீண்டும் தொடங்கவும்",
+    "config-page-readme": "இதைப் படி",
+    "config-page-releasenotes": "வெளியீட்டு குறிப்புகள்",
+    "config-page-copying": "நகலெடுக்கப்படுகிறது",
+    "config-page-upgradedoc": "தரமுயர்த்தப்படுகிறது",
+    "config-page-existingwiki": "இருக்கின்ற விக்கி",
+    "config-restart": "ஆம், மறுமுறை துவங்கு",
+    "config-sidebar": "* [//www.mediawiki.org மீடியாவிக்கி முகப்பு]\n* [//www.mediawiki.org/wiki/Help:Contents பயனரின் கையேடு]\n* [//www.mediawiki.org/wiki/Manual:Contents மேலாளரின் கையேடு]\n* [//www.mediawiki.org/wiki/Manual:FAQ அகேகே]\n----\n* <doclink href=Readme>என்னை வாசிக்கவும்</doclink>\n* <doclink href=ReleaseNotes>வெளியீட்டுக் குறிப்புகள்</doclink>\n* <doclink href=Copying>படியெடுத்தல்</doclink>\n* <doclink href=UpgradeDoc>நிகழ்நிலைப்படுத்தல்</doclink>",
+    "config-db-type": "தரவுத்தள வகை:",
+    "config-db-wiki-settings": "இந்த விக்கியைக் கண்டுபிடி",
+    "config-db-name": "தரவுதளப் பெயர்:",
+    "config-db-install-account": "நிறுவலுக்கான பயனர் கணக்கு",
+    "config-db-username": "தரவுத்தள பயனர்பெயர்:",
+    "config-db-password": "தரவுத்தள கடவுச்சொல்:",
+    "config-db-prefix": "தரவுத் தள வரிசைப் பட்டியல் முன்னொட்டு:",
+    "config-db-charset": "தரவுத் தள வரியுருத் தொகுதி",
+    "config-invalid-db-type": "செல்லாத தரவுத்தள வகை",
+    "config-upgrade-done-no-regenerate": "தரமுயர்த்தல் முழுமையடைந்தது.\nநீங்கள் தற்போது [$1 உங்கள் விக்கியைப் பயன்படுத்தத் துவங்கலாம்].",
+    "config-db-web-account": "வலை அணுகலுக்கான தரவுத் தளக் கணக்கு",
+    "config-mysql-engine": "சேமிப்பு இயந்திரம்:",
+    "config-mysql-charset": "தரவுத் தள வரியுருத் தொகுதி:",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "விக்கியின் பெயர்:",
+    "config-site-name-blank": "ஒரு தளத்தின் பெயரை உள்ளிடுக.",
+    "config-ns-generic": "திட்டம்",
+    "config-ns-other": "ஏனையவை (குறிப்பிடவும்)",
+    "config-admin-box": "நிருவாகி கணக்கு",
+    "config-admin-name": "தங்களது பெயர்:",
+    "config-admin-password": "கடவுச்சொல்:",
+    "config-admin-password-confirm": "கடவுச்சொல் மறுமுறையும்:",
+    "config-admin-name-blank": "நிருவாக அணுக்கம் உள்ள பயனர் பெயரை இடுக.",
+    "config-admin-password-blank": "நிருவாகி கணக்குக்கு கடவுச்சொல் ஒன்றை உள்ளிடவும்.",
+    "config-admin-password-same": "பயனர் பெயரையே கடவுச்சொல்லாக வைத்துக் கொள்ள முடியாது.",
+    "config-admin-password-mismatch": "நீங்கள் பதிந்த கடவுச்சொற்கள் ஒன்றுக்கொன்று பொருந்தவில்லை.",
+    "config-admin-email": "மின்னஞ்சல் முகவரி:",
+    "config-admin-error-bademail": "நீங்கள் செல்லாத ஒரு மின்னஞ்சல் முகவரியைத் தந்துள்ளீர்கள்.",
+    "config-optional-continue": "என்னை இன்னும் அதிகமாக வினவு.",
+    "config-optional-skip": "நான் ஏற்கனவே சோர்வடைந்துள்ளேன், விக்கியை மட்டும் உருவாக்கு.",
+    "config-profile": "பயனர் உரிமைகள் சுயவிவரம்:",
+    "config-profile-wiki": "பாரம்பரிய விக்கி",
+    "config-profile-no-anon": "கணக்கு உருவாக்குதல் அவசியம்",
+    "config-profile-private": "தனியார் விக்கி",
+    "config-license": "பதிப்புரிமை மற்றும் உரிமம்:",
+    "config-license-pd": "பொதுக்களம்",
+    "config-email-settings": "மின்னஞ்சல் அமைப்புகள்",
+    "config-email-user": "பயனர்-பயனர் மின்னஞ்சலைச் செயற்படுத்தவும்",
+    "config-email-usertalk": "பயனர் பேச்சுப் பக்க அறிவிப்பைச் செயற்படுத்தவும்",
+    "config-email-watchlist": "கவனிப்புப் பட்டியல் அறிவிப்பைச் செயற்படுத்தவும்",
+    "config-upload-settings": "படிமம் மற்றும் கோப்பு பதிவேற்றங்கள்",
+    "config-upload-enable": "கோப்புப் பதிவேற்றங்களைச் செயற்படுத்தவும்",
+    "config-upload-deleted": "அழித்த கோப்புகளுக்கான அடைவு:",
+    "config-logo": "அடையாளச் சின்ன உரலி:",
+    "config-extensions": "நீட்சிகள்",
+    "config-install-step-done": "முடிந்தது",
+    "config-install-step-failed": "தோல்வியுற்றது",
+    "config-install-user": "தரவுத் தளப் பயனரை உருவாக்குகிறது",
+    "config-install-user-alreadyexists": "பயனர் \"$1\" ஏற்கனவே உள்ளது",
+    "config-install-tables": "வரிசைப் பட்டியல்களை உருவாக்குகிறது",
+    "config-install-mainpage": "இயல்புநிலை உள்ளடக்கத்துடன் முதற்பக்கத்தை உருவாக்குகிறது",
+    "config-install-extension-tables": "செயற்படுத்தப்பட்ட நீட்சிகளுக்கு வரிசைப் பட்டியல்களை உருவாக்குகிறது",
+    "config-download-localsettings": "<code>LocalSettings.php</code>ஐத் தரவிறக்கவும்",
+    "config-help": "உதவி",
+    "mainpagetext": "'''விக்கி மென்பொருள் வெற்றிகரமாக உள்ளிடப்பட்டது.'''",
+    "mainpagedocfooter": "விக்கி மென்பொருளைப் பயன்படுத்துவது தொடர்பாக [//meta.wikimedia.org/wiki/Help:Contents பயனர் வழிகாட்டியைப்] பார்க்க.\n\n== தொடக்கப்படிகள் ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings அமைப்புக்களை மாற்றம் செய்தல்]\n* [//www.mediawiki.org/wiki/Manual:FAQ மிடியாவிக்கி பொதுவான கேள்விகள்]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce மீடியாவிக்கி வெளியீடு மின்னஞ்சல் பட்டியல்]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/tcy.json b/includes/installer/i18n/tcy.json
new file mode 100644 (file)
index 0000000..cabe4e8
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''ಮೀಡಿಯವಿಕಿ ಯಶಸ್ವಿಯಾದ್ ಇನ್’ಸ್ಟಾಲ್ ಆಂಡ್.'''",
+    "mainpagedocfooter": "ವಿಕಿ ತಂತ್ರಾಂಶನ್ ಉಪಗೋಗ ಮನ್ಪುನ ಬಗ್ಗೆ ಮಾಹಿತಿಗ್ [//meta.wikimedia.org/wiki/Help:Contents ಸದಸ್ಯೆರ್ನ ನಿರ್ದೇಶನ ಪುಟ] ತೂಲೆ.\n\n== ಎಂಚ ಶುರು ಮಲ್ಪುನಿ ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ ಮೀಡಿಯವಿಕಿ FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/te.json b/includes/installer/i18n/te.json
new file mode 100644 (file)
index 0000000..c916986
--- /dev/null
@@ -0,0 +1,57 @@
+{
+    "@metadata": {
+        "authors": [
+            "Veeven"
+        ]
+    },
+    "config-desc": "మీడియావికీ కొరకై స్థాపకి",
+    "config-title": "మీడియావికీ $1స్థాపన",
+    "config-information": "సమాచారం",
+    "config-your-language": "మీ భాష:",
+    "config-wiki-language": "వికీ భాష:",
+    "config-back": "← వెనక్కి",
+    "config-continue": "కొనసాగించు →",
+    "config-page-language": "భాష",
+    "config-page-welcome": "మీడియావికీకి స్వాగతం!",
+    "config-page-dbsettings": "డాటాబేసు అమరికలు",
+    "config-page-name": "పేరు",
+    "config-page-options": "ఎంపికలు",
+    "config-page-install": "స్థాపించు",
+    "config-page-complete": "పూర్తయ్యింది!",
+    "config-page-readme": "నన్ను చదవండి",
+    "config-page-releasenotes": "విడుదల విశేషాలు",
+    "config-db-type": "డాటాబేసు రకం:",
+    "config-db-name": "డాటాబేసు పేరు:",
+    "config-db-install-account": "స్థాపనకి వాడుకరి ఖాతా",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-header-mysql": "MySQL అమరికలు",
+    "config-header-postgres": "PostgreSQL అమరికలు",
+    "config-header-sqlite": "SQLite అమరికలు",
+    "config-header-oracle": "Oracle అమరికలు",
+    "config-invalid-db-type": "తప్పుడు డాటాబేసు రకం",
+    "config-connection-error": "$1.\n\nక్రింది హోస్టు, వాడుకరిపేరు మరియు సంకేతపదాలను ఒకసారి సరిచూసుకుని అప్పుడు ప్రయత్నించండి.",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-utf8": "UTF-8",
+    "config-site-name": "వికీ యొక్క పేరు:",
+    "config-ns-other": "ఇతర (ఇవ్వండి)",
+    "config-ns-other-default": "నావికీ",
+    "config-admin-name": "మీ పేరు:",
+    "config-admin-password": "సంకేతపదం:",
+    "config-admin-password-confirm": "సంకేతపదం మళ్ళీ:",
+    "config-admin-email": "ఈ-మెయిలు చిరునామా:",
+    "config-optional-continue": "నన్ను మరిన్ని ప్రశ్నలు అడుగు.",
+    "config-profile-wiki": "సంప్రదాయ వికీ",
+    "config-profile-no-anon": "ఖాతా సృష్టింపు తప్పనిసరి",
+    "config-profile-private": "అంతరంగిక వికీ",
+    "config-license": "కాపీహక్కులు మరియు లైసెన్సు:",
+    "config-license-pd": "సార్వజనీనం",
+    "config-email-settings": "ఈ-మెయిల్ అమరికలు",
+    "config-upload-deleted": "తొలగించిన దస్త్రాల కొరకు సంచయం:",
+    "config-advanced-settings": "ఉన్నత స్వరూపణం",
+    "config-install-step-done": "పూర్తయింది",
+    "config-install-step-failed": "విఫలమైంది",
+    "config-help": "సహాయం",
+    "mainpagetext": "'''మీడియా వికీని విజయవంతంగా ప్రతిష్టించాం.'''",
+    "mainpagedocfooter": "వికీ సాఫ్టువేరును వాడటనికి కావలిసిన సమాచారం కోసం [//meta.wikimedia.org/wiki/Help:Contents వాడుకరుల గైడు]ను సందర్శించండి.\n\n== మొదలు పెట్టండి ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings మీడియావికీ పనితీరు, అమరిక మార్చుకునేందుకు వీలుకల్పించే చిహ్నాల జాబితా]\n* [//www.mediawiki.org/wiki/Manual:FAQ మీడియావికీపై తరుచుగా అడిగే ప్రశ్నలు]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce మీడియావికీ సాఫ్టువేరు కొత్త వెర్షను విడుదలల గురించి తెలిపే మెయిలింగు లిస్టు]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/tet.json b/includes/installer/i18n/tet.json
new file mode 100644 (file)
index 0000000..b2622bd
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "MF-Warburg"
+        ]
+    },
+    "config-page-language": "Lian",
+    "config-page-name": "Naran"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/tg-cyrl.json b/includes/installer/i18n/tg-cyrl.json
new file mode 100644 (file)
index 0000000..d60885b
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Нармафзори МедиаВики бо муваффақият насб шуд.'''",
+    "mainpagedocfooter": "Аз [//meta.wikimedia.org/wiki/Help:Contents Роҳнамои Корбарон] барои истифодаи нармафзори вики кӯмак бигиред.\n\n== Оғоз ба кор ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Феҳристи танзимоти пайгирбандӣ]\n* [//www.mediawiki.org/wiki/Manual:FAQ Пурсишҳои МедиаВики]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Феҳристи ройномаҳои нусхаҳои МедиаВики]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/tg-latn.json b/includes/installer/i18n/tg-latn.json
new file mode 100644 (file)
index 0000000..ca94e92
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Liangent"
+        ]
+    },
+    "mainpagetext": "'''Narmafzori MediaViki bo muvaffaqijat nasb şud.'''",
+    "mainpagedocfooter": "Az [//meta.wikimedia.org/wiki/Help:Contents Rohnamoi Korbaron] baroi istifodai narmafzori viki kūmak bigired.\n\n== Oƣoz ba kor ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Fehristi tanzimoti pajgirbandī]\n* [//www.mediawiki.org/wiki/Manual:FAQ Pursişhoi MediaViki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Fehristi rojnomahoi nusxahoi MediaViki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/th.json b/includes/installer/i18n/th.json
new file mode 100644 (file)
index 0000000..5b4dd80
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Korrawit"
+        ]
+    },
+    "mainpagetext": "'''ติดตั้งซอฟต์แวร์มีเดียวิกิเรียบร้อย'''",
+    "mainpagedocfooter": "ศึกษา[//meta.wikimedia.org/wiki/Help:Contents คู่มือการใช้งาน] สำหรับเริ่มต้นใช้งานซอฟต์แวร์วิกิ\n\n== เริ่มต้น ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings รายการการปรับแต่งระบบ] (ภาษาอังกฤษ)\n* [//www.mediawiki.org/wiki/Manual:FAQ คำถามที่ถามบ่อยในมีเดียวิกิ] (ภาษาอังกฤษ)\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce เมลลิงลิสต์ของมีเดียวิกิ]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/tk.json b/includes/installer/i18n/tk.json
new file mode 100644 (file)
index 0000000..4b0ddfc
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Hanberke"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki şowlulyk bilen guruldy.'''",
+    "mainpagedocfooter": "Wiki programmasynyň ulanylyşy hakynda maglumat almak üçin [//meta.wikimedia.org/wiki/Help:Contents ulanyjy gollanmasyna] serediň.\n\n== Öwrenjeler ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Konfigurasiýa sazlamalary]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki SSS]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-poçta sanawy]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/tl.json b/includes/installer/i18n/tl.json
new file mode 100644 (file)
index 0000000..93b0d8c
--- /dev/null
@@ -0,0 +1,307 @@
+{
+    "@metadata": {
+        "authors": [
+            "AnakngAraw",
+            "Sky Harbor",
+            "아라"
+        ]
+    },
+    "config-desc": "Ang tagapagluklok para sa MediaWiki",
+    "config-title": "Instalasyong $1 ng MediaWiki",
+    "config-information": "Kabatiran",
+    "config-localsettings-upgrade": "Napansin ang isang talaksang <code>LocalSettings.php</code>.\nUpang maitaas ang uri ng pagluluklok na ito, paki ipasok ang halaga ng <code>$wgUpgradeKey</code> sa loob ng kahong nasa ibaba.\nMatatagpuan mo ito sa loob ng <code>LocalSettings.php</code>.",
+    "config-localsettings-cli-upgrade": "Napansin ang isang talaksan ng <code>LocalSettings.php</code>.\nUpang isapanahon ang pagtatalagang ito, mangyaring patakbuhin sa halip ang <code>update.php</code>",
+    "config-localsettings-key": "Susi ng pagsasapanahon:",
+    "config-localsettings-badkey": "Hindi tama ang susing ibinigay mo.",
+    "config-upgrade-key-missing": "Napansin ang isang umiiral na pagtatalaga ng MediaWiki.\nUpang isapanahon ang katalagahang ito, mangyaring ilagay ang sumusunod na guhit sa ilalim ng iyong <code>LocalSettings.php</code>:\n\n$1",
+    "config-localsettings-incomplete": "Lumilitaw na hindi pa buo ang umiiral na <code>LocalSettings.php</code>.\nAng pabagu-bagong $1 ay hindi nakatakda.\nMangyaring baguhin ang  <code>LocalSettings.php</code> upang ang maitakda ang pagpapabagu-bagong ito, at pindutin ang \"{{int:Config-continue}}\".",
+    "config-localsettings-connection-error": "Isang kamalian ang nakatagpo noong kumakabit sa kalipunan ng dato na ginagamit ang tinukoy na mga katakdaan sa loob ng <code>LocalSettings.php</code> o\n<code>AdminSettings.php</code>. Paki kumpunihin ang mga katakdaang ito at subukang muli.\n\n$1",
+    "config-session-error": "Kamalian sa pagsisimula ng sesyon: $1",
+    "config-session-expired": "Tila nagwakas na ang inilaan sa iyong panahon ng dato.\nAng inilaang mga panahon ay iniayos para sa isang panahon ng buhay na $1.\nMapapataas mo ito sa pamamagitan ng pagtatakda ng <code>session.gc_maxlifetime</code> sa loob ng php.ini.\nMuling simulan ang proseso ng pagluluklok.",
+    "config-no-session": "Nawala ang iyong datos ng sesyon!\nSuriin ang iyong php.ini at tiyakin na ang <code>session.save_path</code> ay nakatakda sa angkop na direktoryo.",
+    "config-your-language": "Ang wika mo:",
+    "config-your-language-help": "Pumili ng isang wikang gagamitin habang isinasagawa ang pagtatalaga.",
+    "config-wiki-language": "Wika ng Wiki:",
+    "config-wiki-language-help": "Piliin ang wika kung saan mangingibabaw na isusulat ang wiki.",
+    "config-back": "← Bumalik",
+    "config-continue": "Magpatuloy →",
+    "config-page-language": "Wika",
+    "config-page-welcome": "Maligayang pagdating sa MediaWiki!",
+    "config-page-dbconnect": "Umugnay sa kalipunan ng datos",
+    "config-page-upgrade": "Itaas ng uri ang umiiral na pagkakatalaga",
+    "config-page-dbsettings": "Mga katakdaan ng kalipunan ng datos",
+    "config-page-name": "Pangalan",
+    "config-page-options": "Mga mapipili",
+    "config-page-install": "Italaga",
+    "config-page-complete": "Buo na!",
+    "config-page-restart": "Simulan muli ang pag-iinstala",
+    "config-page-readme": "Basahin ako",
+    "config-page-releasenotes": "Pakawalan ang mga tala",
+    "config-page-copying": "Kinokopya",
+    "config-page-upgradedoc": "Itinataas ang uri",
+    "config-page-existingwiki": "Umiiral na wiki",
+    "config-help-restart": "Nais mo bang hawiin ang lahat ng nasagip na datong ipinasok mo at muling simulan ang proseso ng pagluluklok?",
+    "config-restart": "Oo, muling simulan ito",
+    "config-welcome": "=== Pagsusuring pangkapaligiran ===\nIsinasagawa ang payak na mga pagsusuri upang makita kung ang kapaligirang ito ay angkop para sa pagluluklok ng MediaWiki.\nDapat mong ibigay ang mga kinalabasan ng mga pagsusuring ito kung kailangan mo ng tulong habang nagluluklok.",
+    "config-copyright": "=== Karapatang-ari at Tadhana ===\n\n$1\n\nAng programang ito ay malayang software; maaari mo itong ipamahagi at/o baguhin sa ilalim ng mga tadhana ng Pangkalahatang Pampublikong Lisensiyang GNU ayon sa pagkakalathala ng Free Software Foundation; na maaaring bersyong 2 ng Lisensiya, o (kung nais mo) anumang susunod na bersyon.\n\nIpinamamahagi ang programang ito na umaasang magiging gamitin, subaliut '''walang anumang katiyakan'''; na walang pahiwatig ng '''pagiging mabenta''' o '''kaangkupan para sa isang tiyak na layunin'''.\nTingnan ang Pangkalahatang Pampublikong Lisensiyang GNU para sa mas maraming detalye.\n\nDapat nakatanggap ka ng <doclink href=Copying>isang sipi ng Pangkalahatang Pampublikong Lisensiyang GNU</doclink> kasama ng programang ito; kung hindi, sumulat sa Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA, o [http://www.gnu.org/licenses//gpl.html basahin ito sa Internet].",
+    "config-sidebar": "* [//www.mediawiki.org Tahanan ng MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents Gabay ng Tagagamit]\n* [//www.mediawiki.org/wiki/Manual:Contents Gabay ng Tagapangasiwa]\n* [//www.mediawiki.org/wiki/Manual:FAQ Mga Malimit Itanong]\n----\n* <doclink href=Readme>Basahin ako</doclink>\n* <doclink href=ReleaseNotes>Mga tala ng paglalabas</doclink>\n* <doclink href=Copying>Pagkopya</doclink>\n* <doclink href=UpgradeDoc>Pagsasapanahon</doclink>",
+    "config-env-good": "Nasuri na ang kapaligiran.\nMailuluklok mo ang MediaWiki.",
+    "config-env-bad": "Nasuri na ang kapaligiran.\nHindi mo mailuklok ang MediaWiki.",
+    "config-env-php": "Naitalaga ang PHP na $1.",
+    "config-env-php-toolow": "Naitalaga ang PHP $1.\nSubalit, nangangailangan ang MediaWiki ng PHP $2 o mas mataas pa.",
+    "config-unicode-using-utf8": "Ginagamit ang utf8_normalize.so ni Brion Vibber para sa pagpapanormal ng Unikodigo.",
+    "config-unicode-using-intl": "Ginagamit ang [http://pecl.php.net/intl intl dugtong na PECL] para sa pagsasanormal ng Unikodigo.",
+    "config-unicode-pure-php-warning": "'''Babala''': Ang [http://pecl.php.net/intl dugtong ng internasyunal na PECL] ay hindi makukuha upang makapanghawak ng pagpapanormal ng Unikodigo, na babagsak na pabalik sa mabagal na pagsasakatuparan ng dalisay na PHP.\nKapag nagpapatakbo ka ng isang pook na mataas ang trapiko, dapat kang bumasa ng kaunti hinggil sa [//www.mediawiki.org/wiki/Unicode_normalization_considerations pagpapanormal ng Unikodigo].",
+    "config-unicode-update-warning": "'''Babala''': Ang nakaluklok na bersiyon ng pambalot ng pagpapanormal ng Unikodigo ay gumagamit ng isang mas matandang bersiyon ng aklatan ng [http://site.icu-project.org/ proyekto ng ICU].\nDapat kang [//www.mediawiki.org/wiki/Unicode_normalization_considerations magtaas ng uri] kung may pag-aalala ka hinggil sa paggamit ng Unikodigo.",
+    "config-no-db": "Hindi matagpuan ang isang angkop na tagapagmaneho ng kalipunan ng datos! Kailangan mong magluklok ng isang tagapagmaneho ng kalipunan ng dato para sa PHP.\nTinatangkilik ang sumusunod na mga uri ng kalipunan ng dato: $1.\n\nKung ikaw ay nasa isang pinagsasaluhang pagpapasinaya, hilingin sa iyong tagapagbigay ng pagpapasinaya na iluklok ang isang angkop na tagapagmaneho ng kalipunan ng dato.\nKung ikaw mismo ang nangalap ng PHP, muling isaayos ito na pinagagana ang isang kliyente ng kalipunan ng dato, halimbawa na ang paggamit ng <code>./configure --with-mysql</code>.\nKung iniluklok mo ang PHP mula sa isang pakete ng Debian o Ubuntu, kung gayon kailangan mo ring magluklok ng modyul na php5-mysql.",
+    "config-outdated-sqlite": "'''Babala''': mayroong kang $1 ng SQLite, na mas mababa kaysa sa pinaka mababang kailangang bersiyon na $2. Magiging hindi makukuha ang SQLite.",
+    "config-no-fts3": "'''Warning''': Ang SQLite ay hindi itinala at tinipon na wala ang [//sqlite.org/fts3.html modulong FTS3], ang mga tampok na panghanap ay magiging hindi makukuha sa ibabaw ng panlikod na dulong ito.",
+    "config-register-globals": "'''Babala: Ang mapipili na <code>[http://php.net/register_globals register_globals]</code> ng PHP ay pinagagana.'''\n'''Huwag paganahin kung kaya mo.'''\nAandar ang MediaWiki, subalit ang tagapaghain mo ay nakalantad sa maaaring maganap na mga kahinaang pangkatiwasayan.",
+    "config-magic-quotes-runtime": "'''Malubha: Masigla ang [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]!'''\nAng piniling ito ay hindi mahuhulaan na pipinsala sa lahok na dato.\nHindi mo maaaring iluklok o gamitin ang MediaWiki maliban na lamang kung hindi na gumagana ang pinili na ito.",
+    "config-magic-quotes-sybase": "'''Malubha: Masigla ang [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase]!'''\nHindi mahuhulaan na sinisira ng napiling ito ang lahok na dato.\nHindi mo maaaring iluklok o gamitin ang MediaWiki maliban na lamang kung hindi na pinagagana ang napiling ito.",
+    "config-mbstring": "'''Malubha: Masigla ang [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]!'''\nAng napiling ito ay nagdurulot ng mga kamalian at maaaring sumira nang hindi nahuhulaan ang dato.\nHindi mo maaaring iluklok o gamitin ang MediaWiki maliban na lamang kung hindi na pinagagana ang napiling ito.",
+    "config-ze1": "'''Malubha: Masigla ang [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]!'''\nAng napiling ito ay nagsasanhi ng karima-rimarim na mga sira sa MediaWiki.\nHindi mo maaaring iluklok o gamitin ang MediaWiki maliban na lamang kung hindi na pinagagana ang napiling ito.",
+    "config-safe-mode": "'''Babala:''' Masigla ang [http://www.php.net/features.safe-mode safe mode] ng PHP.\nMaaari itong magdulot ng mga suliranin, partikular na kung gumagamit ng mga ikinargang paitaas na talaksan at ng suporta sa <code>math</code>.",
+    "config-xml-bad": "Nawawala ang modulong XML ng PHP.\nNangangailangan ang MediaWiki ng mga tungkulin sa loob ng modulong ito at hindi aandar sa loob ng ganitong pagkakaayos.\nKung pinapatakbo mo ang Mandrake, iluklok ang pakete ng php-xml.",
+    "config-pcre": "Tila nawawala ang modyul na pangsuporta ng PCRE.\nNangangailangan ang MediaWiki ng nakaukol sa Perl na mga tungkulin ng karaniwang pagsasaad upang gumana.",
+    "config-pcre-no-utf8": "'''Malubha''': Tila tinipon ang modyul na PCRE ng PHP na wala ang suporta ng PCRE_UTF8.\nNangangailangan ang MediaWiki ng suporta ng UTF-8 upang maging tama ang pag-andar.",
+    "config-memory-raised": "Ang <code>hangganan_ng_alaala</code> ng PHP ay $1, itinaas sa $2.",
+    "config-memory-bad": "'''Babala:''' Ang <code>hangganan_ng_alaala</code> ng PHP ay $1.\nIto ay maaaring napakababa.\nMaaaring mabigo ang pagluluklok!",
+    "config-ctype": "'''Maluba''': Dapat na tipunin ang PHP na mayroong suporta para sa [http://www.php.net/manual/en/ctype.installation.php dugtong Ctype].",
+    "config-xcache": "Ininstala na ang [http://xcache.lighttpd.net/ XCache]",
+    "config-apc": "Ininstala na ang [http://www.php.net/apc APC]",
+    "config-wincache": "Ininstala na ang [http://www.iis.net/download/WinCacheForPhp WinCache]",
+    "config-no-cache": "'''Babala:''' Hindi mahanap ang [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] o [http://www.iis.net/download/WinCacheForPhp WinCache].\nHindi pinapagana ang pagbabaon ng mga bagay.",
+    "config-mod-security": "'''Babala''': Ang tagapaghain mo ng sangkasaputan ay pinagana na mayroong [http://modsecurity.org/ mod_security]. Kung mali ang kaayusan, makapagdurulot ito ng mga suliranin para sa MediaWiki o ibang mga sopwer na nagpapahintulot sa mga tagagamit na magpaskil ng hindi makatwirang nilalaman.\nSumangguni sa [http://modsecurity.org/documentation/ mod_security kasulatan] o makipag-ugnayan sa suporta ng iyong tagapagpasinaya kapag nakatagpo ng alin mang mga kamalian.",
+    "config-diff3-bad": "Hindi natagpuan ang GNU diff3.",
+    "config-imagemagick": "Natagpuan ang ImageMagick: <code>$1</code>.\nPapaganahin ang pagkakagyat ng larawan kapag pinagana mo ang mga pagkakargang paitaas.",
+    "config-gd": "Natagpuan ang pinasadyang nakapaloob na grapiks ng GD.\nPapaganahin ang pagkakagyat ng larawan kapag pinagana mo ang mga pagkakargang paitaas.",
+    "config-no-scaling": "Hindi matagpuan ang aklatang GD o ImageMagick.\nHindi papaganahin ang pagkakagyat ng larawan.",
+    "config-no-uri": "'''Kamalian:''' Hindi matukoy ang kasalukuyang URI.\nPinigilan ang pag-iinstala.",
+    "config-no-cli-uri": "'''Babala''': Walang tinukoy na --landas ng panitik, ginagamit ang likas na katakdaan: <code>$1</code>.",
+    "config-using-server": "Ginagamit ang pangalan ng tagapaghain na \"<nowiki>$1</nowiki>\".",
+    "config-using-uri": "Ginagamit ang URL ng tagapaghain na \"<nowiki>$1$2</nowiki>\".",
+    "config-uploads-not-safe": "'''Babala:''' Ang iyong likas na nakatakdang direktoryo para sa paitaas na mga pagkakarga na <code>$1</code> ay may kahinaan laban sa pagsasagawa ng mga panitiki na hindi makatwiran. Bagaman sinisiyasat ng MediaWiki ang lahat ng paitaas na naikargang mga talaksan para sa mga panganib na pangkatiwasayan, mataas na iminumungkahi na [//www.mediawiki.org/wiki/Manual:Security#Upload_security isara ang kahinaang ito na pangkatiwasayan] bago paganahin ang paitaas na mga pagkakarga.",
+    "config-no-cli-uploads-check": "'''Babala:''' Ang iyong likas na nakatakdang direktoryo para sa paitaas na mga pagkakarga (<code>$1</code>) ay hindi nasuri para sa kahinaan laban sa pagsasagawa ng panitik na hindi makatwiran habang iniluluklok ang Ugnayang Mukha ng Guhit ng Kaataasan o Command-Line Interface (CLI).",
+    "config-brokenlibxml": "Ang sistema mo ay mayroong isang pagsasama ng mga bersiyon ng PHP at libxml2 na maaaring masurot at maaaring makapagsanhi ng pagkasira ng datong nakakubli sa loob ng MediaWiki at iba pang mga aplikasyon ng sangkasaputan.\nMagtaas ng uri upang maging PHP 5.2.9 o mas lalong huli at libxml2 2.7.3 o mas lalong huli ([//bugs.php.net/bug.php?id=45996 isinalansan ang surot o ''bug'' na mayroong PHP]). Binigo ang pagluluklok.",
+    "config-using531": "Hindi maaaring gamitin ang MediaWiki na kapiling ang PHP na $1 dahil sa isang surot na kinasasangkutan ng mga parametrong pangsangguni sa <code>__call()</code>. Magtaas ng uri upang maging PHP 5.3.2 o mas mataas, o magbaba ng uri upang maging PHP 5.3.0 upang malutas ito. Binigo ang pagluluklok.",
+    "config-suhosin-max-value-length": "Nakaluklok ang Suhosin at hinahanggahan ang haba ng parametro ng GET sa $1 mga byte. Ang sangkap na ResourceLoader ng MediaWiki ay gagana sa paligid ng hangganang ito, subalit pasasamain nito ang pagganap. Kung talagang maaari, dapat mong itakda ang <code>suhosin.get.max_value_length</code> upang maging 1024 o mas mataas sa loob ng <code>php.ini</code>, at itakda ang <code>$wgResourceLoaderMaxQueryLength</code> sa katulad na halaga sa loob ng LocalSettings.php.",
+    "config-db-type": "Uri ng kalipunan ng datos:",
+    "config-db-host": "Tagapagpasinaya ng kalipunan ng datos:",
+    "config-db-host-help": "Kung ang iyong tagapaghain ng kalipunan ng dato ay nasa ibabaw ng isang ibang tagapaghain, ipasok ang pangalan ng tagapagpasinaya o tirahan ng IP dito.\n\nKung gumagamit ka ng pinagsasaluhang pagpapasinaya ng sangkasaputan, dapat ibigay sa iyo ng iyong tagapagbigay ng pagpapasinaya ang tamang pangalan ng tagapagpasinaya sa loob ng kanilang kasulatan.\n\nKapag nagluluklok ka sa ibabaw ng isang tagapaghain ng Windows at gumagamit ng MySQL, maaaring hindi gumana ang paggamit ng \"localhost\" para sa pangalan ng tagapaghain. Kung hindi, subukan ang \"127.0.0.1\" para sa katutubong tirahan ng IP.\n\nKapag gumagamit ka ng PostgreSQL, iwanang walang laman ang hanay na ito upang kumabit sa pamamagitan ng bokilya ng Unix.",
+    "config-db-host-oracle": "TNS ng kalipunan ng dato:",
+    "config-db-host-oracle-help": "Magpasok ng isang katanggap-tanggap na [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Katutubong Pangalan ng Pagkabit]; dapat na nakikita ang isang talaksan ng tnsnames.ora sa pagluluklok na ito.<br />Kung gumagamit ka ng mga aklatan ng kliyente na 10g o mas bago, maaari mo ring gamitin ang pamamaraan ng pagpapangalan ng [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Maginhawang Pagkabit].",
+    "config-db-wiki-settings": "Kilalanin ang wiking ito",
+    "config-db-name": "Pangalan ng kalipunan ng dato:",
+    "config-db-name-help": "Pumili ng isang pangalan na pangkilala sa wiki mo.\nHindi ito dapat maglaman ng mga patlang.\n\nKung gumagamit ka ng pinagsasaluhang pagpapasinaya ng sangkasaputan, ang iyong tagapagbigay ng pagpapasinaya ay maaaring bigyan ka ng isang tiyak na pangalan ng kalipunan ng datong gagamitin o papayagan kang lumikha ng mga kalipunan ng dato sa pamamagitan ng isang entrepanyong pantaban.",
+    "config-db-name-oracle": "Balangkas ng kalipunan ng dato:",
+    "config-db-account-oracle-warn": "Mayroong tatlong tinatangkilik na tagpo para sa pagluluklok ng Oracle bilang panlikurang hulihan ng kalipunan ng dato:\n\nKung nais mong lumikha ng akawnt ng kalipunan ng dato bilang bahagi ng proseso ng pagluluklok, paki magbigay ng isang akawnt na mayroong gampanin ng SYSDBA bilang akawnt ng kalipunan ng dato para sa pagluluklok at tukuyin ang ninanais na mga kredensiyal para sa akawnt ng pagpunta sa sangkasaputan, o di kaya ay maaaring kinakamay na lumikha ng akawnt ng pagpunta sa sangkasaputan at ibigay lamang ang akawnt na iyan (kung mayroong ito ng kinakailangang mga pahintulot upang malikha ang mga bagay na pampagpapanukala) o magbigay ng dalawang magkaibang mga akawnt, isang mayroong pribilehiyo ng paglikha at isang may pagbabawal para sa pagpunta sa sangkasaputan.\n\nAng panitik sa paglikha ng isang akawnt na mayroon ng kinakailangang mga pribilehiyo ay matatagpuan sa loob ng direktoryong \"maintenance/oracle/\" ng pagluluklok na ito. Pakatandaan na ang paggamit ng isang akawnt na may pagbabawal ay hindi magpapagana isa lahat ng mga kakayahang pampananatili sa piling ng likas na nakatakdang akawnt.",
+    "config-db-install-account": "Akawnt ng tagagamit para sa pagluluklok",
+    "config-db-username": "Pangalang pangtagagamit ng kalipunan ng dato:",
+    "config-db-password": "Hudyat sa kalipunan ng dato:",
+    "config-db-password-empty": "Paki magpasok ng isang hudyat para sa bagong tagagamit ng kalipunan ng dato: $1.\nHabang maging maaari na makalikha ng mga tagagamit na walang mga hudyat, hindi ito ligtas.",
+    "config-db-install-username": "Ipasok ang pangalan ng tagagamit na gagamitin upang kumabit sa kalipunan ng dato habang isinasagawa ang pagluluklok.\nHindi ito ang pangalan ng tagagamit ng akawnt ng MediaWiki; ito ang pangalan ng tagagamit para sa iyong kalipunan ng dato.",
+    "config-db-install-password": "Ipasok ang hudyat na gagamitin upang kumabit sa kalipunan ng dato habang isinasagawa ang pagluluklok.\nHindi ito ang hudyat para sa akawnt ng MediaWiki; ito ang hudyat para sa iyong kalipunan ng dato.",
+    "config-db-install-help": "Ipasok ang pangalan ng tagagamit at hudyat na gagamitin upang umugnay sa kalipunan ng dato habang isinasagawa ang pagluluklok.",
+    "config-db-account-lock": "Gamitin ang gayun ding pangalan ng tagagamit at hudyat habang nasa normal na operasyon",
+    "config-db-wiki-account": "Akawnt ng tagagamit para sa pangkaraniwang pagpapaandar",
+    "config-db-wiki-help": "Ipasok ang pangalan ng tagagamit at hudyat na gagamitin upang kumabit sa kalipunan ng dato habang nasa karaniwang pagtakbo ng wiki.\nKung hindi umiiral ang akawnt, at ang akawnt ng pagluluklok ay mayroong sapat na mga pribilehiyo, ang akawnt na ito ng tagagamit ay lilikhain na mayroong pinaka mababang mga pribilehiyo na kailangan upang mapatakbo ang wiki.",
+    "config-db-prefix": "Unlapi ng talahanayan ng kalipunan ng dato:",
+    "config-db-prefix-help": "Kung kailangan mong ibahagi ang isang kalipunan ng dato sa pagitan ng maramihang mga wiki, o sa pagitan ng MediaWiki at ibang aplikasyon ng kasaputan, maaaring piliin mo na magdagdag ng isang unlapi sa lahat ng mga pangalan ng talahanayan upang maiwasan ang mga salungatan.\nHuwag gumamit ng mga patlang.\n\nAng hanay na ito ay karaniwang iniiwanang walang laman.",
+    "config-db-charset": "Pangkat ng panitik ng kalipunan ng dato",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binaryo",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 paurong-kabagay UTF-8",
+    "config-charset-help": "'''Babala:''' Kapag ginamit mo ang '''backwards-compatible UTF-8''' o \"nauukol na pabalik na UTF-8\" sa MySQL 4.1+, at may kasunod na pagtatabi ng pansalong kopya ng kalipunan ng dato na mayroong <code>mysqldump</code>, maaaring wasakin nito ang lahat ng mga panitik na hindi ASCII, na hindi na mababawi pa ang mga pansalong kopya.\n\nSa '''gawi na nakahalo sa dalawa (binaryo)''', itinatabi ng MediaWiki ang tekstong UTF-8 sa kalipunan ng dato sa loob ng mga kahanayang binaryo.\nMas kapaki-pakinabang ito kaysa sa gawi na UTF-8 ng MySQL, at nagpapahintulot sa iyo na gamitin ang buong kasaklawan ng mga panitik na Unikodigo.\nSa '''gawi ng UTF-8''', malalaman ng MySQL kung anong pangkat ng panitik ang kinapapalooban ng iyong dato, at may kaangkupang maihaharap at mapapalitan ito, ngunit hindi ka nito papayagan na mag-imbak ng mga panitik sa ibabaw ng [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] o Saligang Patag na Kayas na Pangmaramihang Wika.",
+    "config-mysql-old": "Hindi kailangan ang MySQL na $1 o mas bago, mayroon kang $2.",
+    "config-db-port": "Daungan ng kalipunan ng dato:",
+    "config-db-schema": "Panukala para sa MediaWiki",
+    "config-db-schema-help": "Ang nasa itaas na panukala ay pangkaraniwang magiging maayos.\nBaguhin lamang ito kung alam mong kinakailangan.",
+    "config-pg-test-error": "Hindi makakabit sa kalipunan ng dato na '''$1''': $2",
+    "config-sqlite-dir": "Direktoryo ng dato ng SQLite:",
+    "config-sqlite-dir-help": "Iniimbak ng SQLite ang lahat ng dato sa loob ng isang nag-iisang talaksan.\n\nAng ibibigay mong direktoryo ay dapat na maging masusulatan ng tagapaghain ng kasaputan habang nagluluklok.\n\n'''Hindi''' ito dapat na mapuntahan sa pamamagitan ng kasaputan, ito ang dahilan kung bakit hindi namin ito inilalagay sa kung nasaan ang iyong mga talaksan ng PHP.\n\nAng tagapagluklok ay magsusulat ng isang talaksang <code>.htaccess</code> na kasama ito, subalit kapag nabigo iyon mayroong isang tao na maaaring makakuha ng pagka nakakapunta sa iyong hilaw na kalipunan ng dato.\nKasama riyan ang hilaw na dato ng tagagamit (mga tirahan ng e-liham, pinaghalong mga hudyat) pati na ang nabura nang mga pagbabago at iba pang may pagbabawal na dato sa ibabaw ng wiki.\n\nIsaalang-alang ang paglalagay na magkakasama ang kalipunan ng dato sa ibang lugar, halimbawa na ang sa loob ng <code>/var/lib/mediawiki/yourwiki</code>.",
+    "config-oracle-def-ts": "Likas na nakatakdang puwang ng talahanayan:",
+    "config-oracle-temp-ts": "Pansamantalang puwang ng talahanayan:",
+    "config-type-mysql": "MySQL",
+    "config-type-postgres": "PostgreSQL",
+    "config-type-sqlite": "SQLite",
+    "config-type-oracle": "Oracle",
+    "config-support-info": "Sinusuportahan ng MediaWiki ang sumusunod na mga sistema ng kalipunan ng dato:\n\n$1\n\nKung hindi mo makita ang sistema ng kalipunan ng dato na sinusubukan mong gamitin na nakatala sa ibaba, kung gayon ay sundi ang mga tagubilin na nakakawing sa itaas upang mapagana ang suporta,",
+    "config-support-mysql": "* Ang $1 ay ang pangunahing puntirya para sa MediaWiki at ang pinaka sinusuportahan ([http://www.php.net/manual/en/mysql.installation.php paano magtipon ng PHP na mayroong suporta ng MySQL])",
+    "config-support-postgres": "* Ang $1 ay isang bantog na sistema ng kalipunan ng dato na bukas ang pinagmulan na panghalili sa MySQL ([http://www.php.net/manual/en/pgsql.installation.php paano magtipon ng PHP na mayroong suporta ng PostgreSQL]). Maaaring mayroong ilang hindi pangunahing mga surot na natitira pa, at hindi iminumungkahi para gamitin sa loob ng isang kapaligiran ng produksiyon.",
+    "config-support-sqlite": "Ang $1 ay isang magaan ang timbang na sistema ng kalipunan ng dato na sinusuportahan nang napaka mainam. ([http://www.php.net/manual/en/pdo.installation.php Paano magtipon ng PHP na mayroong suporta ng SQLite], gumagamit ng PDO)",
+    "config-support-oracle": "* Ang $1 ay isang kalipunan ng dato ng kasigasigang pangkalakal. ([http://www.php.net/manual/en/oci8.installation.php Paano magtipunan ng PHP na mayroong suporta ng OCI8])",
+    "config-header-mysql": "Mga katakdaan ng MySQL",
+    "config-header-postgres": "Mga katakdaan ng PostgreSQL",
+    "config-header-sqlite": "Mga katakdaan ng SQLite",
+    "config-header-oracle": "Mga katakdaan ng Oracle",
+    "config-invalid-db-type": "Hindi tanggap na uri ng kalipunan ng dato",
+    "config-missing-db-name": "Dapat kang magpasok ng isang halaga para sa \"Pangalan ng kalipunan ng dato\"",
+    "config-missing-db-host": "Dapat kang magpasok ng isang halaga para sa \"Tagapagpasinaya ng kalipunan ng dato\"",
+    "config-missing-db-server-oracle": "Dapat kang magpasok ng isang halaga para sa \"TNS ng kalipunan ng dato\"",
+    "config-invalid-db-server-oracle": "Hindi katanggap-tanggap na pangalan ng TNSng kalipunan ng dato na \"$1\".\nGumamit lamang ng mga titik ng ASCII (a-z, A-Z), mga bilang (0-9), mga salungguhit (_) at mga tuldok (.).",
+    "config-invalid-db-name": "Hindi tanggap na pangalan ng kalipunan ng dato na \"$1\".\nGumamit lamang ng mga titik ng ASCII (a-z, A-Z), mga bilang (0-9), mga salungguhit (_) at mga gitling (-).",
+    "config-invalid-db-prefix": "Hindi tanggap na unlapi ng kalipunan ng dato na \"$1\".\nGamitin lamang ang mga titik na ASCII (a-z, A-Z), mga bilang (0-9), mga salungguhit (_) at mga gitling (-).",
+    "config-connection-error": "$1.\n\nSuriin ang punong-abala, pangalan ng tagagamit at hudyat na nasa ibaba at subukan ulit.",
+    "config-invalid-schema": "Hindi katanggap-tanggap na panukala para sa \"$1\" ng MediaWiki.\nGumamit lamang ng mga titik ng ASCII (a-z, A-Z), mga bilang (0-9), at mga salungguhit (_).",
+    "config-db-sys-create-oracle": "Ang panluklok ay tumatangkilik lamang sa paggamit ng isang akawnt ng SYSDBA para sa paglikha ng isang bagong akawnt.",
+    "config-db-sys-user-exists-oracle": "Umiiral na ang akawnt ng tagagamit na \"$1\". Magagamit lamang ang SYSDBA para sa paglikha ng isang bagong akawnt!",
+    "config-postgres-old": "Kailangan ang PostgreSQL $1 o mas bago, mayroon kang $2.",
+    "config-sqlite-name-help": "Pumili ng isang pangalan na pangkilala na wiki mo.\nHuwag gumamit ng mga puwang o mga gitling.\nGagamitin ito para sa pangalan ng talaksan ng dato ng SQLite.",
+    "config-sqlite-parent-unwritable-group": "Hindi malikha ang direktoryo ng dato na <code><nowiki>$1</nowiki></code>, sapagkat ang magulang na direktoryong <code><nowiki>$2</nowiki></code> ay hindi masulatan ng tagapaghain ng kasaputan.\n\nNapag-alaman ng tagapagluklok kung sinong tagagamit ang kinatatakbuhan ng iyong tagapaghain ng kasaputan.\nGawing nasusulatan nito ang <code><nowiki>$3</nowiki></code> ng direktoryo upang makapagpatuloy.\nIto ang gawin sa ibabaw ng isang sistema ng Unix/Linux:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Hindi malikha ang direktoryo ng dato na <code><nowiki>$1</nowiki></code>, sapagkat ang magulang na direktoryong <code><nowiki>$2</nowiki></code> ay hindi masulatan ng tagapaghain ng kasaputan.\n\nHindi malaman ng tagapagluklok kung sinong tagagamit ang kinatatakbuhan ng iyong tagapaghain ng kasaputan.\nGawing nasusulatan nito (at ng mga iba pa) ang <code><nowiki>$3</nowiki></code> ng direktoryo upang makapagpatuloy.\nIto ang gawin sa ibabaw ng isang sistema ng Unix/Linux:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Kamalian sa paglikha ng direktoryo ng datong \"$1\".\nSuriin ang kinalalagyan at subukang muli.",
+    "config-sqlite-dir-unwritable": "Hindi nagawang magsulat sa direktoryong \"$1\".\nBaguhin ang mga kapahintulutan nito upang makapagsulat dito ang tagapaghain ng sapot, at subukang muli.",
+    "config-sqlite-connection-error": "$1.\n\nSurrin ang direktoryo ng dato at pangalan ng kalipunan ng datong nasa ibaba at subukan uli.",
+    "config-sqlite-readonly": "Ang talaksang <code>$1</code> ay hindi maisusulat.",
+    "config-sqlite-cant-create-db": "Hindi malikha ang talaksang <code>$1</code> ng kalipunan ng dato.",
+    "config-sqlite-fts3-downgrade": "Nawawala ang suportang FTS3 ng PHP, ibinababa ang uri ng mga talahanayan",
+    "config-can-upgrade": "Mayroong mga talahanayan ng MediaWiki sa loob ng kalipunan ng datong ito.\nUpang maitaas ang uri ng mga ito upang maging MediaWiki na $1, pindutin ang '''Magpatuloy'''.",
+    "config-upgrade-done": "Buo na ang pagtataas ng uri.\n\nMaaari mo na ngayong [$1 gamitin ang iyong wiki].\n\nKung nais mong muling likhain ang iyong talaksang <code>LocalSettings.php</code>, lagitikin ang pindutang nasa ibaba.\n'''Hindi minumungkahi''' ito maliban na lamang kung nagkakaroon ka ng mga suliranin sa piling ng wiki mo.",
+    "config-upgrade-done-no-regenerate": "Buo na ang pagsasapanahon.\n\nMaaari ka na ngayong [$1 magsimula sa paggamit ng wiki mo].",
+    "config-regenerate": "Muling likhain ang LocalSettings.php →",
+    "config-show-table-status": "Nabigo ang pagtatanong na IPAKITA ANG KALAGAYAN NG TALAHANAYAN!",
+    "config-unknown-collation": "'''Babala:''' Ang kalipunan ng dato ay gumagagamit ng hindi nakikilalang pag-iipon.",
+    "config-db-web-account": "Akawnt ng kalipunan ng dato para sa pagpunta sa web",
+    "config-db-web-help": "Piliin ang pangalan ng tagagamit at hudyat na gagamitin ng tagapaghain ng web upang umugnay sa tagapaghain ng kalipunan ng dato, habang nasa pangkaraniwang pagtakbo ng wiki.",
+    "config-db-web-account-same": "Gamitin ang gayun din akawnt katulad ng sa pagluluklok",
+    "config-db-web-create": "Likhain ang akawnt kung hindi pa ito umiiral",
+    "config-db-web-no-create-privs": "Ang tinukoy mong akawnt na iluluklok ay walang sapat na mga pribilehiyo upang makalikha ng isang akawnt.\nAng akawnt na tutukuyin mo rito ay umiiral na dapat.",
+    "config-mysql-engine": "Makinang imbakan:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''Babala''': Pinili mo ang MyISAM bilang makinang imbakan para sa MySQL, na hindi iminumungkahi para gamitin sa MediaWiki, sapagkat:\n* bahagya lamang itong sumusuporta ng pagkakasundu-sundo dahil sa pagkakandado ng talahanayan\n* mas malaki ang pagkakataon na kapitan ng sira kaysa sa ibang mga makina\n* ang himpilang kodigo ng MediaWiki ay hindi palaging humahawak ng MyISAM ayon sa nararapat\n\nKung ang iyong nakaluklok na MySQL ay sumusuporta ng InnoDB, higit na iminumungkahi na piliin mo iyon sa halip.\nKung ang iyong nakaluklok na MySQL ay hindi sumusuporta ng InnoDB, marahil ay panahon na para sa isang pagtataas ng uri.",
+    "config-mysql-engine-help": "Ang '''InnoDB''' ay ang halos palaging pinaka mainam na mapipili, dahil mayroon itong mabuting suporta ng pagkakasundu-sundo.\n\nMaaaring mas mabilis ang '''MyISAM''' sa mga pagluluklok na pang-isahang tagagamit o mababasa lamang.\nMay gawi ang mga kalipunan ng dato ng MyISAM na masira nang mas madalas kaysa sa mga kalipunan ng dato ng InnoDB.",
+    "config-mysql-charset": "Pangkat ng panitik ng kalipunan ng dato:",
+    "config-mysql-binary": "Binaryo",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "Sa '''gawi na binaryo''', iniimbak ng MediaWiki ang tekstong UTF-8 sa kalipunan ng dato sa loob ng mga hanay na binaryo.\nMas kapaki-pakinabang ito kaysa sa gawi na UTF-8 ng MySQL, at nagpapahintulot sa iyo upang magamit ang buong kasaklawan ng mga panitik ng Unikodigo.\n\nSa ''gawi na UTF-8''', malalaman ng MySQL kung sa anong pangkat ng panitik nakapaloob ang iyong dato, at angkop na makakapagharap at makapapagpalit nito, subalit hindi ka nito papayagan na mag-imbak ng mga panitik na nasa itaas ng [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane] o Saligang Tapyas na Pangmaramihang Wika.",
+    "config-site-name": "Pangalan ng wiki:",
+    "config-site-name-help": "Lilitaw ito sa bareta ng pamagat ng pantingin-tingin at sa samu't saring ibang mga lugar.",
+    "config-site-name-blank": "Magpasok ng isang pangalan ng sityo.",
+    "config-project-namespace": "Puwang na pampangalan ng proyekto:",
+    "config-ns-generic": "Proyekto",
+    "config-ns-site-name": "Katulad ng sa pangalan ng wiki: $1",
+    "config-ns-other": "Iba pa (tukuyin)",
+    "config-ns-other-default": "Wiki Ko",
+    "config-project-namespace-help": "Bilang pagsunod sa halimbawa ng Wikipedia, maraming mga wiki ang nagpapanatili ng kanilang mga pahina ng patakaran na nakahiwalay magmula sa kanilang mga pahina ng nilalaman, na nasa loob ng isang \"'''puwang na pampangalan ng proyekto'''\".\nAng lahat ng mga pamagat ng pahina na nasa loob ng puwang ng pangalang ito ay nagsisimula na mayroong isang partikular na unlapi, na maaari mong tukuyin dito.\nSa nakaugalian, ang unlaping ito ay hinango mula sa pangalan ng wiki, subalit hindi ito maaaring maglaman ng mga panitik ng palabantasan na katulad ng \"#\" o \":\".",
+    "config-ns-invalid": "Ang tinukoy na puwang ng pangalan na \"<nowiki>$1</nowiki>\" ay hindi katanggap-tanggap.\nTumukoy ng isang ibang puwang ng pangalan ng proyekto.",
+    "config-ns-conflict": "Ang tinukoy na puwang ng pangalan na \"<nowiki>$1</nowiki>\" ay sumasalungat sa isang likas na nakatakdang puwang ng pangalan ng MediaWiki.\nTumukoy ng isang ibang puwang ng pangalan ng proyekto.",
+    "config-admin-box": "Akawnt ng tagapangasiwa",
+    "config-admin-name": "Pangalan mo:",
+    "config-admin-password": "Hudyat:",
+    "config-admin-password-confirm": "Hudyat uli:",
+    "config-admin-help": "Ipasok dito ang mas ninanais mong pangalan ng tagagamit, bilang halimbawa na ang \"Joe Bloggs\".\nIto ang pangalang gagamitin mo upang lumagdang papasok sa wiki.",
+    "config-admin-name-blank": "Magpasok ng isang pangalan ng tagagamit na tagapangasiwa.",
+    "config-admin-name-invalid": "Ang tinukoy na pangalan ng tagagamit na \"<nowiki>$1</nowiki>\" ay hindi tanggap.\nTumukoy ng ibang pangalan ng tagagamit.",
+    "config-admin-password-blank": "Magpasok ng isang hudyat para sa akawnt ng tagapangasiwa.",
+    "config-admin-password-same": "Ang hudyat ay hindi dapat na katulad ng pangalan ng tagagamit.",
+    "config-admin-password-mismatch": "Hindi magkatugma ang ipinasok mong dalawang mga hudyat.",
+    "config-admin-email": "Tirahan ng e-liham:",
+    "config-admin-email-help": "Magpasok dito ng isang tirahan ng e-liham upang mapahintulutan kang makatanggap ng e-liham mula sa iba pang mga tagagamit sa ibabaw ng wiki, itakdang muli ang hudyat mo, at mapabatiran ng mga pagbabago sa mga pahinang nasa ibabaw ng iyong tala ng mga binabantayan. Maiiwanan mo na walang laman ang hanay na ito.",
+    "config-admin-error-user": "Panloob na kamalian kapag nililikha ang isang tagapangasiwa na may pangalang \"<nowiki>$1</nowiki>\".",
+    "config-admin-error-password": "Panloob na kamalian kapag nagtatakda ng isang hudyat na para sa tagapangasiwang \"<nowiki>$1</nowiki>\": <pre>$2</pre>",
+    "config-admin-error-bademail": "Nagpasok ka ng isang hindi katanggap-tanggap na tirahan ng e-liham.",
+    "config-subscribe": "Tumanggap mula sa [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce talaan ng mga pinadadalhan ng mga nilalabas na mga pabatid].",
+    "config-subscribe-help": "Isang itong tala ng pagliliham na mababa ang dami na ginagamit para sa pagpapakawala ng mga pahayag, kabilang na ang mahahalagang mga pahayag na pangkatiwasayan. Dapat kang magpasipi nito at isapanahon ang iyong nakaluklok na MediaWiki kapag lumalabas ang bagong mga bersiyon.",
+    "config-subscribe-noemail": "Sinubukan mong magpasipi sa tala ng nililihaman ng pagpapakawala ng mga pahayag na hindi nagbibigay ng isang tirahan ng -eliham. Paki magbigay ng isang tirahan ng e-liham kung nais mong magpasipi sa listahan ng pagliliham.",
+    "config-almost-done": "Halos tapos ka na!\nMaaari mo ngayong laktawan ang natitira pang pag-aayos at iluklok na ang wiki ngayon.",
+    "config-optional-continue": "Magtanong sa akin ng marami pang mga tanong.",
+    "config-optional-skip": "Naiinip na ako, basta iluklok na lang ang wiki.",
+    "config-profile": "Balangkas ng mga karapatan ng tagagamit:",
+    "config-profile-wiki": "Tradisyonal na wiki",
+    "config-profile-no-anon": "Kailangan ang paglikha ng akawnt",
+    "config-profile-fishbowl": "Pinahintulutang mga patnugot lamang",
+    "config-profile-private": "Pribadong wiki",
+    "config-profile-help": "Pinaka mahusay ang pagtakbo ng mga Wiki kapag pinapahintulutan mo ang pinaka maraming mga tao na makapamatnugot ng mga ito hanggang sa maaari.\nSa loob ng MediaWiki, maginhawang masusuring muli ang kamakailang mga pagbabago, at mapanauli sa dati ang anumang nasira na nagawa ng isang walang muwang o may masamang hangarin na mga tagagamit.\n\nSubalit, marami ang nakatagpo na nagagamit ang MediaWiki sa loob ng malawak na sari-saring mga gampanin, at kung minsan ay hindi madaling makumbinsi ang lahat ng mga tao hinggil sa kapakinabangan ng kaparaanan ng wiki.\nKung kaya't nasa iyo ang pagpili.\n\nAng isang '''{{int:config-profile-wiki}}''' ay nagpapahintulot sa sinuman upang makapagbago, na hindi kailangan ang paglagdang papasok.\nAng isang wiki na mayroong '''{{int:config-profile-no-anon}}''' ay nagbibigay ng karagdagang pananagutan, subalit maaaring pumigil sa nagkataon lamang na mga tagapag-ambag.\n\nAng tagpo na '''{{int:config-profile-fishbowl}}''' ay nagpapahintulot lamang sa pinayagang mga tagagamit na makatingin ng mga pahina, na kapiling ang pangkat na pinayagang  makapamatnugot.\nAng isang '''{{int:config-profile-private}}''' ay nagpapahintulot lamang sa pinayagang mga tagagamit na makatingin ng mga pahina, na kapiling ang pangkat na pinayagang makapamatnugot.\n\nAng mas masasalimuot na mga kaayusan ng mga karapatan ng tagagamit ay makukuha pagkaraan ng pagluluklok, tingnan ang [//www.mediawiki.org/wiki/Manual:User_rights may kaugnayang kinamay na lahok].",
+    "config-license": "Karapatang-ari at lisensiya:",
+    "config-license-none": "Walang talababa ng lisensiya",
+    "config-license-cc-by-sa": "Malikhaing Pangkaraniwang Pagtukoy Pamamahaging Magkatulad",
+    "config-license-cc-by": "Atribusyon ng Creative Commons",
+    "config-license-cc-by-nc-sa": "Malikhaing Pangkaraniwang Pagtukoy Hindi-Pangkalakal Pamamahaging Magkatulad",
+    "config-license-cc-0": "Sero na Creative Commons (Nasasakop ng Madla)",
+    "config-license-gfdl": "Lisensiyang 1.3 ng Malayang Dokumentasyon ng GNU o mas lalong huli",
+    "config-license-pd": "Nasasakupan ng Madla",
+    "config-license-cc-choose": "Pumili ng isang pasadyang Lisensiya ng Malikhaing mga Pangkaraniwan",
+    "config-license-help": "Maraming mga pangmadlang wiki ang naglalagay ng lahat ng mga ambag sa ilalim ng [http://freedomdefined.org/Definition lisensiyang malaya].\nNakakatulong ito sa paglikha ng isang diwa ng pagmamay-ari ng pamayanan at nakapanghihikayat ng ambag na pangmahabang panahon.\nSa pangkalahatan, hindi kailangan ang isang wiking pribado o pangsamahan.\n\nKung nais mong magamit ang teksto magmula sa Wikipedia, at nais mong makatanggap ang Wikipedia ng tekstong kinopya magmula sa wiki mo, dapat mong piliin ang '''Creative Commons Attribution Share Alike''' (Pagbanggit na Pinagsasaluhang Magkatulad ng Malikhaing Pangkaraniwan).\n\nDating ginamit ng Wikipedia ang Lisensiya ng Kasulatang Malaya ng GNU (GNU Free Documentation License o GFDL).\nIsang katanggap-tanggap na lisensiya ang GFDL, subalit mahirap itong maunawaan.\nMahirap din ang paggamit na muli ng nilalaman na nasa ilalim ng GFDL.",
+    "config-email-settings": "Mga katakdaan ng e-liham",
+    "config-enable-email": "Paganahin ang palabas na e-liham",
+    "config-enable-email-help": "Kung nais mong gumana ang e-liham, ang mga katakdaan ng liham ng [http://www.php.net/manual/en/mail.configuration.php PHP] ay kailangang maging wasto ang pagkakaayos.\nKung ayaw mo nang anumang mga katampukan ng e-liham, maaari mong huwag paganahin ang mga ito rito.",
+    "config-email-user": "Paganahin ang tagagamit-sa-tagagamit na e-liham",
+    "config-email-user-help": "Payagan ang lahat ng mga tagagamit na magpadala ng e-liham sa bawat isa kapag pinagana nila ito sa kanilang mga nais.",
+    "config-email-usertalk": "Paganahin ang pabatid na pampahina ng usapan ng tagagamit",
+    "config-email-usertalk-help": "Payagan ang mga tagagamit na tumanggap ng mga pabatid sa mga pagbabago ng pahina ng usapan ng tagagamit, kapag pinagana nila ito sa kanilang mga nais.",
+    "config-email-watchlist": "Paganahin ang pabatid ng talaan ng bantayan",
+    "config-email-watchlist-help": "Payagan ang mga tagagamit na tumanggap ng mga pabatid tungkol sa kanilang binabantayang mga pahina kapag pinagana nila ito sa kanilang mga nais.",
+    "config-email-auth": "Paganahin ang pagpapatunay ng e-liham",
+    "config-email-auth-help": "Kapag pinagagana ang mapipiling ito, dapat tiyakin ng mga tagagamit ang kanilang tirahan ng e-liham na ginagamit ang isang kawing na ipinadala sa kanila tuwing itinatakda o binabago nila ito.\nTanging napatunayang mga tirahan ng e-liham lamang ang makakatanggap ng mga e-liham magmula sa ibang mga tagagamit o makakapagbago ng mga e-liham ng pagpapabatid.\n'''Iminumungkahi''' ang mapipiling katakdaan na ito para sa mga wiking pangmadla dahil sa maaaring mangyaring pagmamalabis ng mga katampukan ng e-liham.",
+    "config-email-sender": "Pabalik na tirahan ng e-liham:",
+    "config-email-sender-help": "Ipasok ang tirahan ng e-liham na gagamitin bilang tirahang pagsasaulian ng e-liham na papalabas.\nDito ang kung saan ipapadala ang mga pagtalbog.\nMaraming mga tagapaghain ng liham ang nangangailangan ng kahit na bahagi lamang ng pangalan ng nasasakupan upang maging katanggap-tanggap.",
+    "config-upload-settings": "Mga pagkakarga ng mga larawan at talaksan",
+    "config-upload-enable": "Paganahin ang pagkakarga ng talaksan",
+    "config-upload-help": "Ang paitaas na mga pagkakarga ng mga talaksan ay maaaring makapaglantad ng iyong tagapaghain sa mga panganib na pangkatiwasayan.\nPara sa mas marami pang kabatiran, basahin ang [//www.mediawiki.org/wiki/Manual:Security seksiyon ng katiwasayan] sa loob ng gabay.\n\nUpang mapagana ang paitaas na mga pagkakarga ng talaksan, baguhin ang gawi roon sa subdirektoryo ng <code>mga imahe</code> sa ilalim ng ugat na direktoryo ng MediaWiki upang ang tagapaghain ng kasaputan ay makapagsulat dito.\nPagkaraan ay paganahin ang pipiliing ito.",
+    "config-upload-deleted": "Direktoryo para sa binurang mga talaksan:",
+    "config-upload-deleted-help": "Pumili ng isang direktoryong pagsusupnayan ng naburang mga talaksan.\nIdeyal na dapat itong  hindi mapupuntahan mula sa web.",
+    "config-logo": "URL ng logo:",
+    "config-logo-help": "Ang likas na nakatakdang pabalat ng MediaWiki ay nagsasama ng puwang para sa isang logong 135x160 ang piksel na nasa itaas ng menu ng panggilid na bareta.\nMagkargang papaitaas ng isang imahe na mayroong naaangkop na sukat, at ipasok dito ang URL.\n\nKung ayaw mo ng isang logo, iwanang walang laman ang kahong ito.",
+    "config-instantcommons": "Paganahin ang Mga Pangkaraniwang Biglaan",
+    "config-instantcommons-help": "Ang [//www.mediawiki.org/wiki/InstantCommons Instant Commons] ay isang tampok na nagpapahintulot sa mga wiki upang gumamit ng mga imahe, mga tunog at iba pang mga midyang matatagpuan sa pook ng [//commons.wikimedia.org/ Wikimedia Commons].\nUpang magawa ito, nangangailangan ang MediaWiki ng pagka nakakapunta sa Internet.\n\nPara sa mas marami pang kabatiran hinggil sa tampok na ito, kabilang na ang mga tagubilin sa kung paano ito itakda para sa mga wiki na bukod pa kaysa sa Wikimedia Commons, sumangguni sa [//mediawiki.org/wiki/Manual:$wgForeignFileRepos gabay].",
+    "config-cc-error": "Hindi nagbigay ng resulta ang pampili ng lisensiya ng Malikhaing Pangkaraniwan.\nIpasok na kinakamay ang pangalan ng lisensiya.",
+    "config-cc-again": "Pumili uli...",
+    "config-cc-not-chosen": "Piliin kung anong lisensiya ng Malikhaing mga Pangkaraniwan ang nais mo at pindutin ang \"magpatuloy\".",
+    "config-advanced-settings": "Mas masulong na pagkakaayos",
+    "config-cache-options": "Mga katakdaan para sa pagtatago ng bagay:",
+    "config-cache-help": "Ang pagtatago ng bagay ay ginagamit upang mapainam ang tulin ng MediaWiki sa pamamagitan ng pagtatago ng madalas gamiting dato.\nAng mga pook na bahagya hanggang malalaki ang sukat ay labis na hinihikayat na paganahin ito, at ang mga pook na maliliit ay makakakita rin ng mga kapakinabangan.",
+    "config-cache-none": "Walang pagtatago (tinanggal ang katungkulan, subalit maaaring maapektuhan ang tulin sa mas malalaking mga pook ng wiki)",
+    "config-cache-accel": "Pagtatago ng bagay ng PHP (APC, XCache o WinCache)",
+    "config-cache-memcached": "Gamitin ang Pagtatago sa Alaala (Memcached) (nangangailangan ng karagdagang kaayusan ng pagkakahanda at pagsasaayos)",
+    "config-memcached-servers": "Mga tagapaghaing itinago sa alaala:",
+    "config-memcached-help": "Listahan ng mga tirahan ng IP na gagamitin para sa Memcached o Itinagong Alaala.\nDapat na tukuyin na isa sa bawat guhit at tukuyin ang daungang gagamitin. Bilang halimbawa:\n 127.0.0.1:11211\n 192.168.1.25:1234",
+    "config-memcache-needservers": "Pinili mo ang Memcached bilang uri mo ng taguan ngunit hindi tumukoy ng anumang mga tagapaghain.",
+    "config-memcache-badip": "Nagpasok ka ng isang hindi tanggap na tirahan ng IP para sa Memcached: $1.",
+    "config-memcache-noport": "Hindi ka tumukoy ng isang daungan na gagamitin para sa tagapaghain ng Memcached: $1.\nKung hindi mo alam ang daungan, ang likas na nakatakda ay 11211.",
+    "config-memcache-badport": "Ang bilang ng daungan ng Memcached ay dapat na nasa pagitan ng $1 at $2.",
+    "config-extensions": "Mga dugtong",
+    "config-extensions-help": "Ang mga dugtong na nakalista sa ibabaw ay napansin sa loob ng iyong direktoryo ng <code>./extensions</code>.\n\nMaaaring mangailangan ang mga ito ng karagdagang kaayusan, subalit mapapagana mo ngayon ang mga ito",
+    "config-install-alreadydone": "'''Babala:''' Tila nailuklok mo na ang MediaWiki at tinatangka mong iluklok ito ulit.\nPaki magpatuloy sa susunod na pahina.",
+    "config-install-begin": "Sa pamamagitan ng pagpindot sa \"{{int:config-continue}}\", sisimulan mo ang pagluluklok ng MediaWiki.\nKung nais mo paring gumawa ng mga pagbabago, paki pindutin ang bumalik.",
+    "config-install-step-done": "nagawa na",
+    "config-install-step-failed": "nabigo",
+    "config-install-extensions": "Isinasama ang mga karugtong",
+    "config-install-database": "Inihahanda ang kalipunan ng dato",
+    "config-install-schema": "Nililikha ang panukala",
+    "config-install-pg-schema-not-exist": "Hindi umiiral ang panukala ng PostgreSQL.",
+    "config-install-pg-schema-failed": "Nabigo ang paglikha ng mga talahanayan.\nTiyakin na ang tagagamit na \"$1\" ay maaaring makasulat sa balangkas na \"$2\".",
+    "config-install-pg-commit": "Isinasagawa ang mga pagbabago",
+    "config-install-pg-plpgsql": "Sumusuri ng wikang PL/pgSQL",
+    "config-pg-no-plpgsql": "Kailangan mong magtalaga ng wikang PL/pgSQL sa loob ng kalipunan ng datong $1",
+    "config-pg-no-create-privs": "Ang tinukoy mong akawnt para sa pagtatalaga ay walang sapat na mga pribilehiyo upang makalikha ng isang akawnt.",
+    "config-pg-not-in-role": "Umiiral na ang akawnt na tinukoy mo para sa tagagamit ng sangkasaputan.\nAng tinukoy mong akawnt para sa pagluluklok ay hindi isang tagagamit na super at hindi isang kasapi sa gampanin ng tagagamit ng sangkasaputan, kung kaya't hindi nito nagawang makalikha ng mga bagay na pag-aari ng tagagamit ng sangkasaputan.\n\nSa kasalukuyan, nangangailangan ang MediaWiki na ang mga talahanayan ay maging pag-aari ng tagagamit ng sangkasaputan. Paki tumukoy ng isa pang pangalan ng akawnt na pangsangkasaputan, o pindutin ang \"bumalik\" at tumukoy ng isang tagagamit na may kaangkupang pribilehiyo ng pagluluklok.",
+    "config-install-user": "Nililikha ang tagagamit ng kalipunan ng dato",
+    "config-install-user-alreadyexists": "Umiiral na ang tagagamit na \"$1\"",
+    "config-install-user-create-failed": "Nabigo ang paglikha ng tagagamit na \"$1\": $2",
+    "config-install-user-grant-failed": "Nabigo ang pagbibigay ng pahintulot sa tagagamit na \"$1\": $2",
+    "config-install-user-missing": "Hindi umiiral ang tinukoy na tagagamit na si \"$1\".",
+    "config-install-user-missing-create": "Hindi umiiral ang tinukoy na tagagamit na si \"$1\".\nPaki lagitikin ang nasa ibabang kahong natsetsekan na \"likhain ang akawnt\" kung nais mong likhain ito.",
+    "config-install-tables": "Nililikha ang mga talahanayan",
+    "config-install-tables-exist": "'''Babala''': Tila umiiral na ang mga talahanayan ng MediaWiki.\nNilalaktawan ang paglikha.",
+    "config-install-tables-failed": "'''Kamalian''': Nabigo ang paglikha ng talahanayan na may sumusunod na kamalian: $1",
+    "config-install-interwiki": "Nilalagyan ng laman ang likas na nakatakdang talahanayan ng interwiki",
+    "config-install-interwiki-list": "Hindi matagpuan ang talaksang <code>interwiki.list</code>.",
+    "config-install-interwiki-exists": "'''Babala''': Tila may mga laman na ang talahanayan ng interwiki.\nNilalaktawan ang likas na nakatakdang talaan.",
+    "config-install-stats": "Sinisimulan ang estadistika",
+    "config-install-keys": "Ginagawa ang lihim na mga susi",
+    "config-insecure-keys": "'''Babala:''' Nalikha ang {{PLURAL:$2|A secure key|ligtas na mga susi}} ($1) habang ang pagluluklok {{PLURAL:$2|ay|ay}} hindi pa lubos na ligtas. Isaalang-alang ang kinakamay na pagbago {{PLURAL:$2|nito|ng mga ito}}.",
+    "config-install-sysop": "Nililikha ang akawnt ng tagagamit na tagapangasiwa",
+    "config-install-subscribe-fail": "Hindi nagawang magpasipi mula sa mediawiki-announce: $1",
+    "config-install-subscribe-notpossible": "Hindi nakalagak ang cURL at hindi makukuha ang allow_url_fopen",
+    "config-install-mainpage": "Nililikha ang pangunahing pahina na may likas na nakatakdang nilalaman",
+    "config-install-extension-tables": "Nililikha ang mga talahanayan para sa pinagaganang mga dugtong",
+    "config-install-mainpage-failed": "Hindi maisingit ang pangunahing pahina: $1",
+    "config-install-done": "'''Maligayang bati!'''\nMatagumpay mong nailuklok ang MediaWiki.\n\nAng tagapagluklok ay nakagawa ng isang talaksan ng <code>LocalSettings.php</code>.\nNaglalaman ito ng lahat ng iyong mga pagsasaayos.\n\nKailangan mo itong ikargang paibaba at ilagay ito sa lipon ng iyong pagluluklok ng wiki (katulad ng direktoryo ng index.php).  Ang pagkakargang paibaba ay dapat na kusang magsimula.\n\nKung ang pagkakargang paibaba ay hindi inialok, o kung hindi mo ito itinuloy, maaari mong muling simulan ang pagkakargang paibaba sa pamamagitan ng pagpindot sa kawing na nasa ibaba:\n\n$3\n\n'''Paunawa''': Kapag hindi mo ito ginawa ngayon, ang nagawang talaksang ito ng pagkakaayos ay hindi mo na makukuha mamaya kapag lumabas ka mula sa pagluluklok na hindi ikinakarga itong paibaba.\n\nKapag nagawa na iyan, maaari ka nang '''[$2 pumasok sa wiki mo]'''.",
+    "config-download-localsettings": "Ikargang paibaba ang <code>LocalSettings.php</code>",
+    "config-help": "saklolo",
+    "config-nofile": "Hindi matagpuan ang talaksang \"$1\". Binura na ba ito?",
+    "mainpagetext": "'''Matagumpay na ininstala ang MediaWiki.'''",
+    "mainpagedocfooter": "Silipin ang [//meta.wikimedia.org/wiki/Help:Contents Patnubay sa Tagagamit] (''\"User's Guide\"'') para sa kaalaman sa paggamit ng wiking ''software''.\n\n== Pagsisimula ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Tala ng mga nakatakdang kumpigurasyon]\n* [//www.mediawiki.org/wiki/Manual:FAQ Mga malimit itanong sa MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Tala ng mga pinadadalhan ng liham ng MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/tly.json b/includes/installer/i18n/tly.json
new file mode 100644 (file)
index 0000000..f8e1bcd
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "@metadata": {
+        "authors": [
+            "Erdemaslancan"
+        ]
+    },
+    "config-page-options": "Кукон"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/tr.json b/includes/installer/i18n/tr.json
new file mode 100644 (file)
index 0000000..ec5a6b0
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki başarı ile kuruldu.'''",
+    "mainpagedocfooter": "Viki yazılımının kullanımı hakkında bilgi almak için [//meta.wikimedia.org/wiki/Help:Contents kullanıcı rehberine] bakınız.\n\n== Yeni Başlayanlar ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Yapılandırma ayarlarının listesi]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki SSS]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki e-posta listesi]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/tt-cyrl.json b/includes/installer/i18n/tt-cyrl.json
new file mode 100644 (file)
index 0000000..c9f4fcd
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "KhayR"
+        ]
+    },
+    "mainpagetext": "«MediaWiki» уңышлы куелды.",
+    "mainpagedocfooter": "Бу вики турында мәгълүматны [//meta.wikimedia.org/wiki/Ярдәм:Эчтәлек биредә] табып була.\n\n== Кайбер файдалы ресурслар ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Көйләнмәләр исемлеге (инг.)];\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki турында еш бирелгән сораулар һәм җаваплар (инг.)];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki'ның яңа версияләре турында хәбәрләр яздырып алу]."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/tt-latn.json b/includes/installer/i18n/tt-latn.json
new file mode 100644 (file)
index 0000000..21d9590
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Don Alessandro"
+        ]
+    },
+    "mainpagetext": "«MediaWiki» uñışlı quyıldı.",
+    "mainpagedocfooter": "Bu wiki turında mäğlümatnı [//meta.wikimedia.org/wiki/Yärdäm:Eçtälek biredä] tabıp bula.\n\n== Qayber faydalı resurslar ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Köylänmälär isemlege (ing.)];\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki turında yış birelgän sorawlar häm cawaplar (ing.)];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki'nıñ yaña versiäläre turında xäbärlär yazdırıp alu]."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/udm.json b/includes/installer/i18n/udm.json
new file mode 100644 (file)
index 0000000..28cd049
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "@metadata": {
+        "authors": [
+            "Andrewboltachev"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki движок азинлыко пуктэмын.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ug-arab.json b/includes/installer/i18n/ug-arab.json
new file mode 100644 (file)
index 0000000..f7a8843
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Sahran"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki مۇۋەپپەقىيەتلىك قاچىلاندى.'''",
+    "mainpagedocfooter": "[//meta.wikimedia.org/wiki/Help:Contents ئىشلەتكۈچى قوللانمىسى] نى زىيارەت قىلىپ wiki يۇمشاق دېتالىنى ئىشلىتىش ئۇچۇرىغا ئېرىشىڭ.\n\n== دەسلەپكى ساۋات ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings سەپلىمە تەڭشەك تىزىملىكى]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki كۆپ ئۇچرايدىغان مەسىلىلەرگە جاۋاب]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki تارقاتقان ئېلخەت تىزىملىكى]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/uk.json b/includes/installer/i18n/uk.json
new file mode 100644 (file)
index 0000000..dd96f35
--- /dev/null
@@ -0,0 +1,314 @@
+{
+    "@metadata": {
+        "authors": [
+            "AS",
+            "Ahonc",
+            "Alex Khimich",
+            "Andriykopanytsia",
+            "Base",
+            "Diemon.ukr",
+            "Ата",
+            "Тест",
+            "아라"
+        ]
+    },
+    "config-desc": "Інсталятор MediaWiki",
+    "config-title": "Встановлення MediaWiki $1",
+    "config-information": "Інформація",
+    "config-localsettings-upgrade": "'''Увага''': було виявлено файл <code>LocalSettings.php</code>.\nВаше програмне забезпечення може бути оновлено.\nБудь-ласка, перемістіть файл <code>LocalSettings.php</code> в іншу безпечну директорію, а потім знову запустіть програму установки.",
+    "config-localsettings-cli-upgrade": "Виявлено файл <code>LocalSettings.php</code>.\nЩоб оновити наявну установку, запустіть <code>update.php</code>",
+    "config-localsettings-key": "Ключ оновлення:",
+    "config-localsettings-badkey": "Ви вказали неправильний ключ.",
+    "config-upgrade-key-missing": "Виявлено наявну установку MediaWiki.\nДля оновлення цієї установки, будь ласка, вставте такий рядок в кінець вашого <code>LocalSettings.php</code>:\n$1",
+    "config-localsettings-incomplete": "Існуючий файл <code>LocalSettings.php</code> виявився неповним.\nНе вказано змінну $1.\nБудь ласка, змініть <code>LocalSettings.php</code> так, щоб цю змінну було задано, і натисніть \"{{int:Config-continue}}\".",
+    "config-localsettings-connection-error": "Сталася помилка при підключення до бази даних з допомогою налаштувань на сторінці <code>LocalSettings.php</code> чи <code>AdminSettings.php</code>. Будь ласка, виплавте ці налаштування і спробуйте знову.\n\n$1",
+    "config-session-error": "Помилка початку сесії: $1",
+    "config-session-expired": "Час Вашої сесії минув.\nЗадана тривалість сесії — $1.\nВи можете збільшити її, змінивши <code>session.gc_maxlifetime</code> у php.ini.\nПерезапустіть процес встановлення.",
+    "config-no-session": "Дані сесії було втрачено!\nПеревірте Ваш php.ini і переконайтесь, що <code>session.save_path</code> встановлено у відповідну папку.",
+    "config-your-language": "Ваша мова:",
+    "config-your-language-help": "Оберіть мову для використання в процесі установки.",
+    "config-wiki-language": "Мова для вікі:",
+    "config-wiki-language-help": "Виберіть мову, якою буде відображатися вікі.",
+    "config-back": "← Назад",
+    "config-continue": "Далі →",
+    "config-page-language": "Мова",
+    "config-page-welcome": "Ласкаво просимо на MediaWiki!",
+    "config-page-dbconnect": "Підключення до бази даних",
+    "config-page-upgrade": "Оновлення існуючої установки",
+    "config-page-dbsettings": "Налаштування бази даних",
+    "config-page-name": "Назва",
+    "config-page-options": "Параметри",
+    "config-page-install": "Установка",
+    "config-page-complete": "Готово!",
+    "config-page-restart": "Перезапустити установку",
+    "config-page-readme": "Прочитай мене",
+    "config-page-releasenotes": "Інформація про версію",
+    "config-page-copying": "Копіювання",
+    "config-page-upgradedoc": "Оновлення",
+    "config-page-existingwiki": "Існуюча вікі",
+    "config-help-restart": "Ви бажаєте видалити всі введені та збережені вами дані і запустити процес установки спочатку?",
+    "config-restart": "Так, перезапустити установку",
+    "config-welcome": "=== Перевірка оточення ===\nБудуть проведені базові перевірки, щоб виявити, чи можлива установка MediaWiki у даній системі.\nНе забудьте включити цю інформацію, якщо ви звернетеся по підтримку, як завершити установку.",
+    "config-copyright": "=== Авторське право і умови ===\n\n$1\n\nЦя програма є вільним програмним забезпеченням; Ви можете розповсюджувати та/або змінювати її під ліцензією GNU General Public License, опублікованою Фондом вільного програмного забезпечення; версією 2 цієї ліцензії або будь-якою пізнішою на Ваш вибір.\n\nЦя програма поширюється з надією на те, що вона буде корисною, однак '''без жодних гарантій'''; навіть без неявної гарантії '''комерційної цінності''' або '''придатності для певних цілей'''.\nДив. GNU General Public License для детальної інформації.\n\nВи повинні були отримати <doclink href=Copying>копію GNU General Public License</doclink> разом із цією програмою; якщо ж ні, зверніться до Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. або [http://www.gnu.org/copyleft/gpl.html ознайомтесь з нею онлайн].",
+    "config-sidebar": "* [//www.mediawiki.org Сайт MediaWiki]\n* [//www.mediawiki.org/wiki/Help:Contents Посібник користувача]\n* [//www.mediawiki.org/wiki/Manual:Contents Посібник адміністратора]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ]\n----\n* <doclink href=Readme>Read me</doclink>\n* <doclink href=ReleaseNotes>Інформація про випуск</doclink>\n* <doclink href=Copying>Ліцензія</doclink>\n* <doclink href=UpgradeDoc>Оновлення</doclink>",
+    "config-env-good": "Перевірку середовища успішно завершено.\nВи можете встановити MediaWiki.",
+    "config-env-bad": "Було проведено перевірку середовища. Ви не можете встановити MediaWiki.",
+    "config-env-php": "Встановлено версію PHP: $1.",
+    "config-env-php-toolow": "Встановлено PHP $1.\nНатомість MediaWiki вимагає PHP $2 і вище.",
+    "config-unicode-using-utf8": "Використовувати utf8_normalize.so Брайона Віббера для нормалізації Юнікоду.",
+    "config-unicode-using-intl": "Використовувати [http://pecl.php.net/intl міжнародне розширення PECL] для нормалізації Юнікоду.",
+    "config-unicode-pure-php-warning": "'''Увага''': [http://pecl.php.net/intl міжнародне розширення PECL] не може провести нормалізацію Юнікоду.\nЯкщо ваш сайт має високий трафік, вам варто почитати про [//www.mediawiki.org/wiki/Unicode_normalization_considerations нормалізацію Юнікоду].",
+    "config-unicode-update-warning": "'''Увага''': Встановлена версія обгортки нормалізації Юнікоду використовує стару версію бібліотеки [http://site.icu-project.org/ проекту ICU].\nВи маєте [//www.mediawiki.org/wiki/Unicode_normalization_considerations оновити версію], якщо плануєте повноцінно використовувати Юнікод.",
+    "config-no-db": "Не вдалося знайти відповідний драйвер бази даних! Вам необхідно встановити драйвер бази даних для PHP. Підтримуються такі типи баз даних: $1.\n\nЯкщо ви користуєтесь віртуальним хостингом, попросіть вашого хостинг-провайдера інсталювати відповідний драйвер бази даних.\nЯкщо ви скомпілювали PHP самостійно, переналаштуйте його з включенням клієнта бази даних, наприклад за допомогою <code>./configure --with-mysql</code>.\nЯкщо установлено PHP з пакетів Debian або Ubuntu, тоді ви також повинні встановити 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> увімкнена.'''\n'''Вимкніть її, якщо це можливо.'''\nMediaWiki буде працювати, але Ваш сервер буде більш вразливим до потенційного проникнення зовні.",
+    "config-magic-quotes-runtime": "'''Проблема: Опція PHP [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime] увімкнена!'''\nЦя опція призводить до непередбачуваного пошкодження даних.\nВи не можете встановити і використовувати MediaWiki, поки не буде вимкнено цю опцію.",
+    "config-magic-quotes-sybase": "'''Проблема: Опція PHP [http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-sybase magic_quotes_sybase] увімкнена!'''\nЦя опція призводить до непередбачуваного пошкодження даних.\nВи не можете встановити і використовувати MediaWiki, поки не буде вимкнено цю опцію.",
+    "config-mbstring": "'''Проблема: Опція PHP [http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload] увімкнена!'''\nЦя опція призводить до непередбачуваного пошкодження даних.\nВи не можете встановити і використовувати MediaWiki, поки не буде вимкнено цю опцію.",
+    "config-ze1": "'''Проблема: Опція PHP [http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode] увімкнена!'''\nЦя опція призводить до непередбачуваного пошкодження даних.\nВи не можете встановити і використовувати MediaWiki, поки не буде вимкнено цю опцію.",
+    "config-safe-mode": "'''Увага:''' Опція PHP [http://www.php.net/features.safe-mode «безпечний режим»] увімкнена.\nЦе може спричинити проблеми, зокрема із завантаженням файлів та вставкою математичних формул.",
+    "config-xml-bad": "XML-модуть PHP відсутній.\nMediaWiki необхідні його функції, без цього модуля вона працювати не буде.\nЯкщо Ви використовуєте Mandrake, встановіть php-xml пакет.",
+    "config-pcre": "Модуть підтримку PCRE не знайдено.\nДля роботи MediaWiki необхідна підтримка Perl-сумісних регулярних виразів.",
+    "config-pcre-no-utf8": "'''Помилка''': PCRE-модуть PHP, вочевидь, було зібрано без підтримки PCRE_UTF8.\nMediaWiki вимагає підтримку UTF-8 для коректної роботи.",
+    "config-memory-raised": "Обмеження пам'яті PHP (<code>memory_limit</code>) $1, піднято до $2.",
+    "config-memory-bad": "'''Увага:''' Розмір пам'яті PHP (<code>memory_limit</code>) становить $1.\nІмовірно, це замало.\nВстановлення може не вдатись!",
+    "config-ctype": "'''Помилка''': PHP має бути зібраним з підтримкою [http://www.php.net/manual/en/ctype.installation.php розширення Ctype].",
+    "config-json": "'''Fatal:''' PHP був скомпільований без підтримки JSON.\nВам потрібно встановити або розширення PHP JSON або розширення[http://pecl.php.net/package/jsonc PECL jsonc] перед встановлення Медіавікі.\n* Розширення PHP включено у Red Hat Enterprise Linux (CentOS) 5 та 6, хоча має бути доступним у  <code>/etc/php.ini</code> або <code>/etc/php.d/json.ini</code>.\n* Деякі дистрибутиви Лінукса, випущені після травня 2013, пропустили розширення PHP, натомість упакували розширення  PECL як <code>php5-json</code> або <code>php-pecl-jsonc</code>.",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache] встановлено",
+    "config-apc": "[http://www.php.net/apc APC] встановлено",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache] встановлено",
+    "config-no-cache": "'''Увага:''' Не вдалося знайти [http://www.php.net/apc APC], [http://xcache.lighttpd.net/ XCache] чи [http://www.iis.net/download/WinCacheForPhp WinCache].\nКешування об'єктів не ввімкнено.",
+    "config-mod-security": "'''Увага''': на Вашому веб-сервері увімкнено [http://modsecurity.org/ mod_security]. У разі неправильних налаштувать, він може викликати проблеми MediaWiki або іншого ПЗ, яке дозволяє користувачам надсилати довільний вміст.\nЗверніться до [http://modsecurity.org/documentation/ документації mod_security] або підтримки Вашого хостера, якщо під час роботи виникають незрозумілі помилки.",
+    "config-diff3-bad": "GNU diff3 не знайдено.",
+    "config-git": "Знайшов програму управління версіями Git: <code>$1</code>.",
+    "config-git-bad": "Програму управління версіями Git  не знайдено.",
+    "config-imagemagick": "Виявлено ImageMagick: <code>$1</code>.\nБуде ввімкнуто відображення мініатюр, якщо ви дозволите завантаження файлів.",
+    "config-gd": "Виявлено вбудовано графічну бібліотеку GD.\nБуде ввімкнуто відображення мініатюр, якщо ви дозволите завантаження файлів.",
+    "config-no-scaling": "Не вдалося виявити бібліотеку GD чи ImageMagick.\nВідображення мініатюр буде вимкнено.",
+    "config-no-uri": "'''Помилка:''' Не вдалося визначити поточний URI.\nВстановлення перервано.",
+    "config-no-cli-uri": "'''Увага''': Не задано параметр --scriptpath, використовується за замовчуванням: <code>$1</code>.",
+    "config-using-server": "Використовується ім'я сервера \"<nowiki>$1</nowiki>\".",
+    "config-using-uri": "Використовується URL сервера \"<nowiki>$1$2</nowiki>\".",
+    "config-uploads-not-safe": "'''Увага:''' Ваша типова папка для завантажень <code>$1</code> вразлива до виконання довільних скриптів.\nХоча MediaWiki перевіряє усі завантажені файли на наявність загроз, наполегливо рекомендується [//www.mediawiki.org/wiki/Manual:Security#Upload_security закрити дану вразливість] перед тим, як дозволяти завантаження файлів.",
+    "config-no-cli-uploads-check": "'''Увага:''' Ваша типова папка для завантажень (<code>$1</code>) не перевірялась на вразливість до виконання довільних скриптів під час встановлення CLI.",
+    "config-brokenlibxml": "У Вашій системі невдале поєднання версій PHP і libxml2, яке може спричинити пошкодження прихованих даних у MediaWiki та інших веб-застосунках.\nОновіть PHP до версії 5.2.9 або пізнішої і libxml2 до 2.7.3 або пізнішої ([//bugs.php.net/bug.php?id=45996 відомості про помилку]).\nВстановлення перервано.",
+    "config-using531": "MediaWiki не можна використовувати разом з PHP $1 через помилку з параметрами-посиланнями <code>__call()</code>.\nОновіть PHP до версії 5.3.2 і вище або відкотіть до PHP 5.3.0 щоб уникнути цієї проблеми.\nВстановлення скасовано.",
+    "config-suhosin-max-value-length": "Suhosin встановлено і обмежує параметра GET  <code>length</code> до $1 байта. Компонент MediaWiki ResourceLoader буде обходити це обмеження, однак це зменшить продуктивність. Якщо це можливо, Вам варто встановити значення <code>suhosin.get.max_value_length</code> як 1024 і більше у <code>php.ini</code> і встановити таке ж значення <code>$wgResourceLoaderMaxQueryLength</code> у LocalSettings.php .",
+    "config-db-type": "Тип бази даних:",
+    "config-db-host": "Хост бази даних:",
+    "config-db-host-help": "Якщо сервер бази даних знаходиться на іншому сервері, введіть тут ім'я хосту і IP адресу.\n\nЯкщо Ви використовуєте віртуальний хостинг, Ваш хостинг-провайдер має надати Вам правильне ім'я хосту у його документації.\n\nЯкщо у Вас сервер із Windows Ви використовуєте MySQL, параметр \"localhost\" може не працювати для імені сервера. Якщо не працює, використайте \"127.0.0.1\" як локальну IP-адресу.\n\nЯкщо Ви використовуєте PostgreSQL, залиште це поле пустим, щоб під'єднатись через сокет Unix.",
+    "config-db-host-oracle": "TNS бази даних:",
+    "config-db-host-oracle-help": "Введіть допустиме [http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm Local Connect Name]; файл tnsnames.ora має бути видимим для цієї інсталяції. <br />Якщо Ви використовуєте бібліотеки 10g чи новіші, можна також використовувати метод іменування [http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm Easy Connect].",
+    "config-db-wiki-settings": "Ідентифікувати цю вікі",
+    "config-db-name": "Назва бази даних:",
+    "config-db-name-help": "Виберіть назву, що ідентифікує Вашу вікі.\nВона не повинна містити пробілів.\n\nЯкщо Ви використовуєте віртуальний хостинг, Ваш хостинг-провайдер або надасть Вам конкретну назву бази даних, або дозволить створювати бази даних з допомогою панелі управління.",
+    "config-db-name-oracle": "Схема бази даних:",
+    "config-db-account-oracle-warn": "Є три підтримувані сценарії установки Oracle:\n\nЯкщо Ви хочете створити обліковий запис бази даних у процесі встановлення, будь ласка, вкажіть обліковий запис ролі SYSDBA для установки і бажані повноваження для облікового запису з веб-доступом. В протилежному випадку Ви можете або створити обліковий запис з веб-доступом вручну і вказати тільки цей обліковий запис (якщо він має необхідні дозволи на створення об'єктів-схем), або вказати два різні облікові записи, з яких в одного будуть права на створення, а в другого, обмеженого — права веб-доступу.\n\nСкрипт для створення облікового запису з необхідними повноваженнями можна знайти у папці \"maintenance/oracle/\" цієї інсталяції. Майте на увазі, що використання обмеженого облікового запису вимкне можливість використання технічного обслуговування з облікового запису за замовчуванням.",
+    "config-db-install-account": "Обліковий запис користувача для встановлення",
+    "config-db-username": "Ім'я користувача бази даних:",
+    "config-db-password": "Пароль бази даних:",
+    "config-db-password-empty": "Будь ласка, введіть пароль для нового користувача бази даних: $1.\nХоча можна створювати користувачів без паролів, це не є безпечним.",
+    "config-db-install-username": "Введіть ім'я користувача, яке буде використано для підключення до бази даних під час процесу встановлення.\nЦе не ім'я користувача облікового запису MediaWiki; це ім'я користувача для Вашої бази даних.",
+    "config-db-install-password": "Введіть пароль, який буде використано для підключення до бази даних під час процесу встановлення.\nЦе не пароль облікового запису MediaWiki; це пароль для Вашої бази даних.",
+    "config-db-install-help": "Введіть ім'я користувача і пароль, які буде використано для підключення до бази даних у процесі встановлення.",
+    "config-db-account-lock": "Використовувати ті ж ім'я користувача і пароль і для звичайної роботи",
+    "config-db-wiki-account": "Обліковий запис користувача для звичайної роботи",
+    "config-db-wiki-help": "Введіть ім'я користувача і пароль, які будуть використовуватись для з'єднання з базою даних під час звичайної роботи.\nЯкщо обліковий запис не існує, а в облікового запису інсталяції є достатні повноваження, цей обліковий запис користувача буде створено з мінімальними правами, що необхідні для роботи з вікі.",
+    "config-db-prefix": "Префікс таблиць бази даних:",
+    "config-db-prefix-help": "Якщо треба ділити одну базу даних між декількома вікі або між MediaWiki та іншим веб-застосунком, Ви можете додати префікс до усіх назв таблиць для уникнення конфліктів.\nНе використовуйте пробіли.\n\nЦе поле зазвичай залишають пустим.",
+    "config-db-charset": "Кодування бази даних",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 binary",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 зворотно сумісна з UTF-8",
+    "config-charset-help": "'''Увага:''' Якщо Ви використовуєте '''зворотно сумісну UTF-8''' на MySQL 4.1+ і створюєте резервні копії бази даних з допомогою <code>mysqldump</code>, це може викривити усі не-ASCII символи, незворотно пошкодивши резервні копії!\n\nУ '''бінарному режимі''' MediaWiki зберігає текст UTF-8 у базі даних з бінарними полями.\nЦе більш ефективно, ніж UTF-8 режим MySQL, і дозволяє використовувати увесь набір символів Юнікоду.\nУ '''режимі UTF-8''' MySQL буде знати, якого символу стосуються Ваші дані, і могтиме відображати та конвертувати їх належним чином,\nале не дозволятиме зберігати символи, що виходять за межі [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+    "config-mysql-old": "Необхідна MySQL $1 або пізніша, а у Вас $2.",
+    "config-db-port": "Порт бази даних:",
+    "config-db-schema": "Схема для MediaWiki",
+    "config-db-schema-help": "Ця схема зазвичай працює добре.\nЗмінюйте її тільки якщо знаєте, що Вам це потрібно.",
+    "config-pg-test-error": "Не вдається підключитися до бази даних '''$1''': $2",
+    "config-sqlite-dir": "Папка даних SQLite:",
+    "config-sqlite-dir-help": "SQLite зберігає усі дані в єдиному файлі.\n\nПапка, яку Ви вказуєте, має бути доступна серверу для запису під час встановлення.\n\nВона '''не''' повинна бути доступна через інтернет, тому ми і не поміщуємо її туди, де Ваші файли PHP.\n\nІнсталятор пропише у неї файл <code>.htaccess</code>, але якщо це не спрацює, хтось може отримати доступ до Вашої вихідної бази даних, яка містить вихідні дані користувача (адреси електронної пошти, хеші паролів), а також видалені версії та інші обмежені дані на вікі.\n\nЗа можливості розташуйте базу даних десь окремо, наприклад в <code>/var/lib/mediawiki/yourwiki</code>.",
+    "config-oracle-def-ts": "Простір таблиць за замовчуванням:",
+    "config-oracle-temp-ts": "Тимчасовий простір таблиць:",
+    "config-support-info": "MediaWiki підтримує таки системи баз даних:\n\n$1\n\nЯкщо Ви не бачите серед перерахованих систему баз даних, яку використовуєте, виконайте вказівки, вказані вище, щоб увімкнути підтримку.",
+    "config-support-mysql": "* $1 є основною для MediaWiki і найкраще підтримується ([http://www.php.net/manual/en/mysql.installation.php як зібрати PHP з допомогою MySQL])",
+    "config-support-postgres": "* $1 — популярна відкрита СУБД, альтернатива MySQL ([http://www.php.net/manual/en/pgsql.installation.php як зібрати PHP з допомогою PostgreSQL]). Можуть зустрічатись деякі невеликі невиправлені помилки, не рекомендується використовувати у робочій системі.",
+    "config-support-sqlite": "* $1 — легка система баз даних, яка дуже добре підтримується. ([http://www.php.net/manual/en/pdo.installation.php Як зібрати PHP з допомогою SQLite], що використовує PDO)",
+    "config-support-oracle": "* $1 — комерційна база даних масштабу підприємства. ([http://www.php.net/manual/en/oci8.installation.php Як зібрати PHP з підтримкою OCI8])",
+    "config-header-mysql": "Налаштування MySQL",
+    "config-header-postgres": "Налаштування PostgreSQL",
+    "config-header-sqlite": "Налаштування SQLite",
+    "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": "Неприпустиме TNS бази даних \"$1\".\nВикористовуйте \"TNS Name\" або рядок \"Easy Connect\"  ([http://docs.oracle.com/cd/E11882_01/network.112/e10836/naming.htm Методи найменування Oracle])",
+    "config-invalid-db-name": "Неприпустима назва бази даних \"$1\".\nВикористовуйте тільки ASCII букви (a-z, A-Z), цифри (0-9), знаки підкреслення (_) і дефіси (-).",
+    "config-invalid-db-prefix": "Неприпустимий префікс бази даних \"$1\".\nВикористовуйте тільки ASCII букви (a-z, A-Z), цифри (0-9), знаки підкреслення (_) і дефіси (-).",
+    "config-connection-error": "$1.\n\nПеревірте хост, ім'я користувача та пароль і спробуйте ще раз.",
+    "config-invalid-schema": "Неприпустима схема для MediaWiki \"$1\".\nВикористовуйте тільки ASCII букви (a-z, A-Z), цифри (0-9) і знаки підкреслення(_).",
+    "config-db-sys-create-oracle": "Інсталятор підтримує лише використання облікового запису SYSDBA для створення нового облікового запису.",
+    "config-db-sys-user-exists-oracle": "Обліковий запис користувача \"$1\" уже існує. SYSDBA використовується лише для створення новий облікових записів!",
+    "config-postgres-old": "Необхідна PostgreSQL $1 або пізніша, а у Вас $2.",
+    "config-sqlite-name-help": "Виберіть назву, що ідентифікує Вашу вікі.\nНе використовуйте пробіли і дефіси.\nЦе буде використовуватись у назві файлу даних SQLite.",
+    "config-sqlite-parent-unwritable-group": "Не можна створити папку даних <code><nowiki>$1</nowiki></code>, оскільки батьківська папка <code><nowiki>$2</nowiki></code> не доступна веб-серверу для запису.\n\nІнсталятор виявив, під яким користувачем працює Ваш сервер.\nЗробіть папку <code><nowiki>$3</nowiki></code> доступною для запису, щоб продовжити.\nВ ОС Unix/Linux виконайте:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "Не можна створити папку даних <code><nowiki>$1</nowiki></code>, оскільки батьківська папка <code><nowiki>$2</nowiki></code> не доступна веб-серверу для запису.\n\nІнсталятор не зміг виявити, під яким користувачем працює Ваш сервер.\nЗробіть папку <code><nowiki>$3</nowiki></code> доступною для запису серверу (і всім!) глобально, щоб продовжити.\nВ ОС Unix/Linux виконайте:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "Помилка при створенні папки даних \"$1\".\nПеревірте розташування і спробуйте знову.",
+    "config-sqlite-dir-unwritable": "Не можливо записати до папки \"$1\".\nЗмініть налаштування доступу так, щоб веб-сервер міг писати до неї, і спробуйте ще раз.",
+    "config-sqlite-connection-error": "$1.\n\nПеревірте папку даних і назву бази даних нижче та спробуйте знову.",
+    "config-sqlite-readonly": "Файл <code>$1</code> недоступний для запису.",
+    "config-sqlite-cant-create-db": "Не вдалося створити файл бази даних <code>$1</code>.",
+    "config-sqlite-fts3-downgrade": "У PHP немає підтримки FTS3, скидаю таблиці",
+    "config-can-upgrade": "У цій базі даних є таблиці MediaWiki.\nЩоб оновити їх до MediaWiki $1, натисніть '''Продовжити'''.",
+    "config-upgrade-done": "Оновлення завершено.\n\nВи можете зараз [$1 починати використовувати свою вікі].\n\nЯкщо Ви хочете повторно згенерувати файл <code>LocalSettings.php</code>, натисніть на кнопку нижче.\nЦе '''не рекомендується''', якщо тільки у Вас не виникли проблеми з Вашою вікі.",
+    "config-upgrade-done-no-regenerate": "Оновлення завершено.\n\nВи можете зараз [$1 починати використовувати свою вікі].",
+    "config-regenerate": "Повторно згенерувати LocalSettings.php →",
+    "config-show-table-status": "Запит <code>SHOW TABLE STATUS</code> не виконано!",
+    "config-unknown-collation": "'''Увага:''' База даних використовує нерозпізнане сортування.",
+    "config-db-web-account": "Обліковий запис бази даних для інтернет-доступу",
+    "config-db-web-help": "Оберіть ім'я користувача і пароль, які веб-сервер буде використовувати для з'єднання із сервером бази даних під час звичайної роботи вікі.",
+    "config-db-web-account-same": "Використати той же обліковий запис для встановлення",
+    "config-db-web-create": "Створити обліковий запис, якщо його ще не існує",
+    "config-db-web-no-create-privs": "Обліковий запис, вказаний Вами для встановлення, не має достатніх повноважень для створення облікового запису.\nОбліковий запис, який Ви вказуєте тут, уже повинен існувати.",
+    "config-mysql-engine": "Двигун бази даних:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''Увага''': Ви обрали MyISAM для зберігання даних MySQL, що не рекомендовано для роботи з MediaWiki, оскільки:\n* він слабко підтримує паралелізм через блокування таблиць\n* він більш схильний до ушкоджень, ніж інші двигуни\n* база коду MediaWiki не завжди працює з MyISAM так, як мала б.\n\nЯкщо Ваша інсталяція MySQL підтримує InnoDB, дуже рекомендується вибрати цей двигун.\nЯкщо Ваша інсталяція MySQL не підтримує InnoDB, можливо настав час її оновити.",
+    "config-mysql-only-myisam-dep": "\"'Зауваження:\"' MyISAM є єдиним механізмом для зберігання MySQL, який не рекомендується для використання з MediaWiki, оскільки:\n* слабо підтримує паралелізм через блокування таблиць\n* більш схильний до пошкоджень, ніж інші двигуни\n* код MediaWiki не завжди розглядає MyISAM, як повинен\n\nТвоє встановлення MySQL не підтримує InnoDB, можливо, потрібно оновити.",
+    "config-mysql-engine-help": "'''InnoDB''' є завжди кращим вибором, оскільки краще підтримує паралельний доступ.\n\n'''MyISAM''' може бути швидшим для одного користувача або в інсталяціях read-only.\nБази даних MyISAM схильні псуватись частіше, ніж бази InnoDB.",
+    "config-mysql-charset": "Кодування бази даних:",
+    "config-mysql-binary": "Двійкове",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "У '''бінарному режимі''' MediaWiki зберігає текст UTF-8 у базі даних з бінарними полями.\nЦе більш ефективно, ніж UTF-8 режим MySQL, і дозволяє використовувати увесь набір символів Юнікоду.\n\nУ '''режимі UTF-8''' MySQL буде знати, якого символу стосуються Ваші дані, і могтиме відображати та конвертувати їх належним чином, але не дозволятиме зберігати символи, що виходять за межі [//en.wikipedia.org/wiki/Mapping_of_Unicode_character_planes Basic Multilingual Plane].",
+    "config-site-name": "Назва вікі:",
+    "config-site-name-help": "Це буде відображатись у заголовку вікна браузера та у деяких інших місцях.",
+    "config-site-name-blank": "Введіть назву сайту.",
+    "config-project-namespace": "Простір назв проекту:",
+    "config-ns-generic": "Проект",
+    "config-ns-site-name": "Те ж саме, що й назва вікі: $1",
+    "config-ns-other": "Інше (вкажіть)",
+    "config-ns-other-default": "MyWiki",
+    "config-project-namespace-help": "За прикладом Вікіпедії, чимало вікі тримають свої сторінки правил окремо від сторінок основного вмісту, у \"'''просторі імен проекту'''\".\nУсі назви сторінок у цьому просторі імен починаються з певного префікса, який Ви можете вказати тут.\nТрадиційно цей префікс виводиться з назви вікі, але не може містити знаки пунктуація, як-то \"#\" чи \":\".",
+    "config-ns-invalid": "Вказаний простір імен \"<nowiki>$1</nowiki>\" не припустимий.\nВкажіть інший простір імен проекту.",
+    "config-ns-conflict": "Вказаний простір імен \"<nowiki>$1</nowiki>\" конфліктує зі стандартним простором імен MediaWiki.\nВкажіть інший простір імен проекту.",
+    "config-admin-box": "Обліковий запис адміністратора",
+    "config-admin-name": "Ваше ім'я:",
+    "config-admin-password": "Пароль:",
+    "config-admin-password-confirm": "Пароль ще раз:",
+    "config-admin-help": "Введіть бажане ім'я користувача тут, наприклад \"Павло НЛО\".\nЦе ім'я ви будете використовувати про вході у вікі.",
+    "config-admin-name-blank": "Введіть ім'я користувача адміністратора.",
+    "config-admin-name-invalid": "Вказане ім'я користувача \"<nowiki>$1</nowiki>\" не припустиме.\nВкажіть інше ім'я користувача.",
+    "config-admin-password-blank": "Введіть пароль до облікового запису адміністратора.",
+    "config-admin-password-same": "Пароль не може бути таким же, як ім'я користувача.",
+    "config-admin-password-mismatch": "Два введені вами паролі не збігаються.",
+    "config-admin-email": "Адреса електронної пошти:",
+    "config-admin-email-help": "Введіть адресу електронної пошти, щоб мати змогу отримувати електронну пошту від інших користувачів у вікі, відновити пароль і отримувати повідомлення про зміни, внесені до сторінок у Вашому списку спостереження. Ви можете залишити це поле пустим.",
+    "config-admin-error-user": "Внутрішня помилка під час створення адміністратора з ім'ям \"<nowiki>$1</nowiki>\".",
+    "config-admin-error-password": "Внутрішня помилка під час встановлення пароля для адміністратора \"<nowiki>$1</nowiki>\":<pre>$2</pre>",
+    "config-admin-error-bademail": "Ви ввели недопустиму адресу електронної пошти.",
+    "config-subscribe": "Підписатися на [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce розсилку анонсів нових версій MediaWiki].",
+    "config-subscribe-help": "Це список розсилки з малим обсягом повідомлень, що використовується для анонсування релізів, а також важливих повідомлень про безпеку.\nВам варто підписати і оновлювати інсталяцію MediaWiki, коли з'являтимуться нові версії.",
+    "config-subscribe-noemail": "Ви намагались підписатись на розсилку анонсів релізів, не вказавши адреси електронної пошти.\nБудь ласка, вкажіть адресу електронної пошти, якщо хочете підписатись на розсилку.",
+    "config-almost-done": "Майже готово!\nВи можете зараз пропустити налаштування, що залишилось, і встановити вікі прямо зараз.",
+    "config-optional-continue": "Запитуйте ще.",
+    "config-optional-skip": "Це вже втомлює, просто встановити вікі.",
+    "config-profile": "Профіль прав користувача:",
+    "config-profile-wiki": "Відкрита вікі",
+    "config-profile-no-anon": "Необхідно створити обліковий запис",
+    "config-profile-fishbowl": "Тільки для авторизованих редакторів",
+    "config-profile-private": "Приватна вікі",
+    "config-profile-help": "Вікі краще працюють, коли Ви дозволяєте їх редагувати якомога ширшому колу людей.\nУ MediaWiki легко переглядати останні зміни і відкочувати будь-яку шкоду, спричинену недосвідченими або зловмисними користувачами.\n\nОдначе, MediaWiki може бути корисна по-різному, й інколи важко переконати у вигідності відкритої вікі-роботи.\nТож у Вас є вибір.\n\nМодель '''{{int:config-profile-wiki}}''' дозволяє редагувати будь-кому, навіть без входження в систему.\nВікі з вимогою \"'''{{int:config-profile-no-anon}}'''\" дає певний облік, але може відвернути випадкових дописувачів.\nСпосіб \"'''{{int:config-profile-fishbowl}}'''\" дозволяє редагувати підтвердженим користувачам, а переглядати сторінки і історію можуть усі.\n'''{{int:config-profile-private}}''' дозволяє переглядати сторінки і редагувати лише підтвердженим користувачам.\n\nДетальніші конфігурації прав користувачів доступні після встановлення, див. [//www.mediawiki.org/wiki/Manual:User_rights відповідний розділ посібника].",
+    "config-license": "Авторські права і ліцензія:",
+    "config-license-none": "Без ліцензії у нижньому колонтитулі",
+    "config-license-cc-by-sa": "Creative Commons Attribution Share Alike",
+    "config-license-cc-by": "Creative Commons Attribution",
+    "config-license-cc-by-nc-sa": "Creative Commons Attribution Non-Commercial Share Alike",
+    "config-license-cc-0": "Creative Commons Zero (Суспільне надбання)",
+    "config-license-gfdl": "GNU Free Documentation License 1.3 або пізніша",
+    "config-license-pd": "Суспільне надбання (Public Domain)",
+    "config-license-cc-choose": "Виберіть одну з ліцензій Creative Commons",
+    "config-license-help": "Чимало загальнодоступних вікі публікують увесь свій вміст під [http://freedomdefined.org/Definition вільною ліцензією]. Це розвиває відчуття спільної власності і заохочує довготривалу участь. У загальному випадку для приватної чи корпоративної вікі у цьому немає необхідності.\n\nЯкщо Ви хочете мати змогу використовувати текст з Вікіпедії і дати Вікіпедії змогу використовувати текст, скопійований з Вашої вікі, вам необхідно обрати '''Creative Commons Attribution Share Alike'''.\n\nРаніше Вікіпедія використовувала GNU Free Documentation License.\nGFDL — допустима ліцензія, але у ній важко розібратися, а контент під GFDL важко використовувати повторно.",
+    "config-email-settings": "Налаштування електронної пошти",
+    "config-enable-email": "Увімкнути вихідну електронну пошту",
+    "config-enable-email-help": "Якщо Ви хочете, що електронна пошта працювала, необхідно виставити коректні [http://www.php.net/manual/en/mail.configuration.php налаштування пошти у PHP].\nЯкщо Вам не потрібні жодні можливості електронної пошти у вікі, можете тут їх відключити.",
+    "config-email-user": "Увімкнути електронну пошту користувач-користувачеві",
+    "config-email-user-help": "Дозволити усім користувачам надсилати один одному електронну пошту, якщо вони увімкнули цю можливість у своїх налаштуваннях.",
+    "config-email-usertalk": "Увімкнути сповіщення про повідомлення на сторінці обговорення користувача",
+    "config-email-usertalk-help": "Дозволити користувачам отримувати сповіщення про зміни на своїй сторінці обговорення, якщо вони увімкнули цю можливість у своїх налаштуваннях.",
+    "config-email-watchlist": "Увімкнути сповіщення про зміни у списку спостереження",
+    "config-email-watchlist-help": "Дозволити користувачам отримувати сповіщення про сторінки з їхнього списку спостереження, якщо вони увімкнули цю можливість у своїх налаштуваннях.",
+    "config-email-auth": "Увімкнути автентифікацію через електронну пошту",
+    "config-email-auth-help": "Якщо ця опція увімкнена, користувачам треба підтвердити свою адресу електронної пошти з допомогою надісланого їм посилання, коли вони встановлюють чи змінюють її.\nТільки автентифіковані адреси електронної пошти отримують листи від інших користувачів або змінювати поштові сповіщення.\nУвімкнення цієї опції '''рекомендується''' загальнодоступним вікі через можливі зловживання функціями електронної пошти.",
+    "config-email-sender": "Зворотна адреса електронної пошти:",
+    "config-email-sender-help": "Введіть адресу електронної пошти, що буде використовуватись як зворотна адреса для вихідної пошти.\nНа неї будуть надсилатись відмови.\nЧимало поштових серверів вимагають, щоб принаймні доменне ім'я було допустимим.",
+    "config-upload-settings": "Завантаження зображень і файлів",
+    "config-upload-enable": "Дозволити завантаження файлів",
+    "config-upload-help": "Завантаження файлів підставляє Ваш сервер під потенційні загрози.\nДетальнішу інформацію можна почитати у посібнику, [//www.mediawiki.org/wiki/Manual:Security розділ про безпеку].\n\nЩоб дозволити завантаження файлів, змініть режим підпапки <code>images</code> у кореневій папці MediaWiki так, щоб сервер міг у неї записувати.\nПотім увімкніть цю опцію.",
+    "config-upload-deleted": "Каталог для вилучених файлів:",
+    "config-upload-deleted-help": "Оберіть папку для архівації видалених файлів.\nВ ідеалі, вона не має бути доступною через інтернет.",
+    "config-logo": "URL логотипу:",
+    "config-logo-help": "Стандартна схема оформлення MediaWiki містить вільне для логотипу місце над бічною панеллю розміром 135x160 пікселів.\n\nЗавантажте зображення відповідного розміру і введіть тут його URL.\n\nВи можете використати <code>$wgStylePath</code> або <code>$wgScriptPath</code>, якщо ваш логотип пов'язаний з цими шляхами.\n\nЯкщо Вам не потрібен логотип, залиште це поле пустим.",
+    "config-instantcommons": "Увімкнути Instant Commons",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons Instant Commons] це функція, що дозволяє вікі використовувати зображення, звуки та інші медіа, розміщені на [//commons.wikimedia.org/ Вікісховищі].\nДля цього MediaWiki необхідний доступ до інтернету.\n\nДодаткову інформацію стосовно цієї функції, включаючи інструкції, як її увімкнути у вікі, відмінних від Вікісховища, дивіться у [//mediawiki.org/wiki/Manual:$wgForeignFileRepos посібнику].",
+    "config-cc-error": "Механізм вибору ліцензії Creative Commons не дав результатів.\nВведіть назву ліцензії вручну.",
+    "config-cc-again": "Виберіть знову ...",
+    "config-cc-not-chosen": "Оберіть, яку ліцензію Creative Commons Ви хочете використовувати, і натисніть \"продовжити\".",
+    "config-advanced-settings": "Розширені налаштування",
+    "config-cache-options": "Налаштування кешування об'єктів:",
+    "config-cache-help": "Кешування об'єктів використовується для покращення швидкодії MediaWiki методом кешування часто використовуваних даних.\nЗаохочується увімкнення цієї можливості для середніх і великих сайтів, малі сайти також можуть відчути її перевагу.",
+    "config-cache-none": "Без кешування (жодні функції не втрачаються, але впливає на швидкодію великих вікі-сайтів)",
+    "config-cache-accel": "PHP кешування об'єктів (APC, XCache чи WinCache)",
+    "config-cache-memcached": "Використовувати Memcached (вимагає додаткової установки і налаштування)",
+    "config-memcached-servers": "Сервери Memcached:",
+    "config-memcached-help": "Список IP-адрес, що викоритовує Memcached.\nВкажіть по одному в рядку, разом з портами. Наприклад:\n 127.0.0.1:11211\n 192.168.1.25:1234",
+    "config-memcache-needservers": "Ви обрали тип кешування Memcached, але не вказали ніяких серверів.",
+    "config-memcache-badip": "Ви ввели недопустиму IP-адресу для Memcached: $1.",
+    "config-memcache-noport": "Ви не вказали порт для сервера Memcached: $1.\nЯкщо Ви його не знаєте, за замовчуванням використовується 11211.",
+    "config-memcache-badport": "Номери портів Memcached повинні лежати в межах від $1 до $2.",
+    "config-extensions": "Розширення",
+    "config-extensions-help": "Розширення, перераховані вище, були знайдені у папці <code>./extensions</code>.\n\nВони можуть потребувати додаткових налаштувань, але Ви можете увімкнути їх зараз.",
+    "config-install-alreadydone": "'''Увага:''' Здається, Ви вже встановлювали MediaWiki і зараз намагаєтесь встановити її знову.\nБудь ласка, перейдіть на наступну сторінку.",
+    "config-install-begin": "Натискаючи \"{{int:config-continue}}\", Ви розпочинаєте встановлення MediaWiki.\nЯкщо Ви все ще хочете внести зміни, натисніть \"{{int:config-back}}\".",
+    "config-install-step-done": "виконано",
+    "config-install-step-failed": "не вдалося",
+    "config-install-extensions": "У тому числі розширення",
+    "config-install-database": "Налаштування бази даних",
+    "config-install-schema": "Створення схеми",
+    "config-install-pg-schema-not-exist": "Схеми PostgreSQL не існує.",
+    "config-install-pg-schema-failed": "Не вдалось створити таблиці.\nПереконайтесь, що користувач \"$1\" може писати до схеми \"$2\".",
+    "config-install-pg-commit": "Внесення змін",
+    "config-install-pg-plpgsql": "Перевірка мови PL/pgSQL",
+    "config-pg-no-plpgsql": "Вам необхідно встановити мову PL/pgSQL у базі даних $1",
+    "config-pg-no-create-privs": "Обліковий запис, вказаний для встановлення, має недостатньо прав для створення облікового запису.",
+    "config-pg-not-in-role": "Обліковий запис, який Ви вказали для веб-користувача, уже існує.\nОбліковий запис, який Ви вказали для встановлення не є суперюзером і не відноситься до ролі веб-користувача, тому неможливо створити об'єкти, що належать веб-користувачеві.\n\nУ даний час MediaWiki вимагає, щоб усі таблиці належали веб-користувачу. Будь ласка, вкажіть інше ім'я облікового запису або натисніть \"Назад\" та вкажіть користувача з достатніми правами.",
+    "config-install-user": "Створення користувача бази даних",
+    "config-install-user-alreadyexists": "Користувач \"$1\" уже існує",
+    "config-install-user-create-failed": "Не вдалося створити користувача \"$1\": $2",
+    "config-install-user-grant-failed": "Не вдалося надати права користувачеві \"$1\": $2",
+    "config-install-user-missing": "Зазначеного користувача \"$1\" не існує.",
+    "config-install-user-missing-create": "Зазначеного користувача \"$1\" не існує.\nБудь ласка, поставте галочку \"Створити обліковий запис\", якщо хочете його створити.",
+    "config-install-tables": "Створення таблиць",
+    "config-install-tables-exist": "'''Увага''': Таблиці MediaWiki уже, здається, існують.\nПропуск створення.",
+    "config-install-tables-failed": "'''Помилка''': Не вдалося створити таблицю внаслідок такої помилки: $1",
+    "config-install-interwiki": "Заповнення таблиці інтервікі значеннями за замовчуванням",
+    "config-install-interwiki-list": "Не вдалося знайти файл <code>interwiki.list</code>.",
+    "config-install-interwiki-exists": "'''Увага''': Таблиця інтервікі уже, здається, має записи.\nСтворення стандартного списку пропускається.",
+    "config-install-stats": "Ініціалізація статистики",
+    "config-install-keys": "Генерація секретних ключів",
+    "config-insecure-keys": "'''Увага:''' {{PLURAL:$2|Секретний ключ|Секретні ключі}} ($1), {{PLURAL:$2|згенерований в процесі встановлення, недостатньо надійний|згенеровані в процесі встановлення, недостатньо надійні}}. Розгляньте можливість {{PLURAL:$2|його|їх}} заміни вручку.",
+    "config-install-sysop": "Створення облікового запису адміністратора",
+    "config-install-subscribe-fail": "Не можливо підписатись на mediawiki-announce: $1",
+    "config-install-subscribe-notpossible": "cURL не встановлено і опція allow_url_fopen не доступна.",
+    "config-install-mainpage": "Створення головної сторінки із вмістом за замовчуванням",
+    "config-install-extension-tables": "Створення таблиць для увімкнених розширень",
+    "config-install-mainpage-failed": "Не вдається вставити головну сторінку: $1",
+    "config-install-done": "'''Вітаємо!'''\nВи успішно встановили MediaWiki.\n\nІнсталятор згенерував файл <code>LocalSettings.php</code>, який містить усі Ваші налаштування.\n\nВам необхідно завантажити його і помістити у кореневу папку Вашої вікі (туди ж, де index.php). Завантаження мало початись автоматично.\n\nЯкщо завантаження не почалось або Ви його скасували, можете заново його почати, натиснувши на посилання внизу:\n\n$3\n\n'''Примітка''': Якщо Ви не зробите цього зараз, цей файл не буде доступним пізніше, коли Ви вийдете з встановлення, не скачавши його.\n\nПісля виконання дій, описаних вище, Ви зможете '''[$2 увійти у свою вікі]'''.",
+    "config-download-localsettings": "Завантажити <code>LocalSettings.php</code>",
+    "config-help": "допомога",
+    "config-nofile": "Файл \"$1\" не знайдено. Його видалено?",
+    "config-extension-link": "Чи знаєте ви, що ваше вікі підтримує [//www.mediawiki.org/wiki/Manual:Extensions розширення]?\n\nВи можете переглядати [//www.mediawiki.org/wiki/Category:Extensions_by_category розширення по категорії] або в [//www.mediawiki.org/wiki/Extension_Matrix матрицю розширень] щоб побачити повний список розширень.",
+    "mainpagetext": "Програмне забезпечення «MediaWiki» успішно встановлене.",
+    "mainpagedocfooter": "Інформацію про роботу з цією вікі можна знайти в [//meta.wikimedia.org/wiki/Help:Contents посібнику користувача].\n\n== Деякі корисні ресурси ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Список налаштувань];\n* [//www.mediawiki.org/wiki/Manual:FAQ Часті питання з приводу MediaWiki];\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Розсилка повідомлень про появу нових версій MediaWiki];\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources Локалізуйте MediaWiki своєю мовою]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/ur.json b/includes/installer/i18n/ur.json
new file mode 100644 (file)
index 0000000..0837465
--- /dev/null
@@ -0,0 +1,34 @@
+{
+    "@metadata": {
+        "authors": [
+            "Noor2020",
+            "පසිඳු කාවින්ද"
+        ]
+    },
+    "config-information": "معلومات",
+    "config-git": "Git ورژن کنٹرول مصنع لطیف ملا: <code>$1</code> ۔",
+    "config-git-bad": "GIT ورژن کنٹرول مصنع لطیف نہيں ملا ۔",
+    "config-mysql-only-myisam-dep": "' ' تنبیہ: ' '[[MyISAM|مائ اسام]] واحد دستیاب 'ذخیرہ جاتی انجن' ہے جو مائی ایس کیو ایل کے لیے ہے ، جو کہ ناموزوں ہے میڈیا وکی کے لیے ،کیوں کہ :\n* یہ ہموار قطاروں کی سہولت بمشکل فراہم کرتا ہے\n* یہ دوسرے انجنوں کے مقابلے  زیادہ بگڑ جاتا ہے\n* میڈیا وکی کوڈ بیس ہمیشہ سنبھال نہيں پاتا مائی اسام کو ۔\n\nآپ کا مائی ایس کیو ایل کا نصب ہمیشہ اننو ڈی بی کی سہولت نہيں دے سکتا ، ہو سکتا ہے یہ مزید ترقیاتی کام چاہے",
+    "config-profile-fishbowl": "صرف مجاز ایڈیٹرز",
+    "config-license-pd": "پبلک ڈومین",
+    "config-email-settings": "ای میل کی ترتیبات",
+    "config-email-user-help": "تمام صارفین ای میل بھیجنے کیلئے ایک دوسرے اگر وہ یہ ان کی ترجیحات میں فعال ہے کی اجازت دیتے ہیں.",
+    "config-email-usertalk": "صارف بات صفحہ کی اطلاع فعال",
+    "config-email-usertalk-help": "اگر وہ یہ ان کی ترجیحات میں فعال ہے صارف بات صفحہ تبدیلی پر اطلاعات حاصل کرنے کے لئے صارفین کی اجازت دیں.",
+    "config-email-watchlist": "دیکھنی والی فہرست کی اطلاع فعال",
+    "config-email-auth": "فعال ای میل کی تصدیق",
+    "config-email-sender": "ای میل ایڈریس پر واپس:",
+    "config-upload-deleted": "ڈائرکٹری خارج کردہ فائلوں کے لیے:",
+    "config-advanced-settings": "اعلی درجے کی ترتیب",
+    "config-cache-options": "اعتراض کیش کے لئے ترتیب دینا:",
+    "config-extensions": "ملانے",
+    "config-install-step-done": "کیا کیا",
+    "config-install-step-failed": "میں ناکام رہے",
+    "config-install-extensions": "سمیت ملانے",
+    "config-install-database": "ڈیٹا بیس کی ترتیب",
+    "config-install-pg-commit": "تبدیلیوں کے ارتکاب",
+    "config-install-keys": "خفیہ چابیاں پیدا",
+    "config-install-sysop": "منتظم کے صارف کے اکاؤنٹ کی تشکیل",
+    "config-install-mainpage": "پہلے سے طے شدہ مواد کے ساتھ سب سے کامیاب کی تشکیل",
+    "mainpagetext": "'''میڈیاوکی کو کامیابی سے چالو کردیا گیا ہے۔.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/uz.json b/includes/installer/i18n/uz.json
new file mode 100644 (file)
index 0000000..f3f8f07
--- /dev/null
@@ -0,0 +1,10 @@
+{
+    "@metadata": {
+        "authors": [
+            "Sociologist"
+        ]
+    },
+    "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.\n\n== Dastlabki qadamlar ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Moslamalar ro'yxati]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki haqida ko'p so'raladigan savollar]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki yangi versiyasi chiqqanda xabar berish ro'yxati]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/vec.json b/includes/installer/i18n/vec.json
new file mode 100644 (file)
index 0000000..8031239
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Vajotwo"
+        ]
+    },
+    "mainpagetext": "'''Instałasion de MediaWiki conpletà coretamente.'''",
+    "mainpagedocfooter": "Varda ła [//meta.wikimedia.org/wiki/Aiuto:Sommario Guida utente] par majori informasion so l'uso de sto software wiki.\n\n== Par scumisiar ==\n\nI seguenti cołegamenti i xé en łengua inglese:\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Inpostasion de configurasion]\n* [//www.mediawiki.org/wiki/Manual:FAQ Domande frequenti so MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailing list anunsi MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/vep.json b/includes/installer/i18n/vep.json
new file mode 100644 (file)
index 0000000..71fcf34
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Игорь Бродский"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki-likutim om seižutadud jügedusita.'''",
+    "mainpagedocfooter": "Kc. [//meta.wikimedia.org/wiki/Help:Kävutajan abukirj], miše sada informacijad wikin kävutamižes.\n\n== Erased tarbhaižed resursad ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Järgendusiden nimikirjutez]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce počtnimikirjutez]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/vi.json b/includes/installer/i18n/vi.json
new file mode 100644 (file)
index 0000000..340b643
--- /dev/null
@@ -0,0 +1,17 @@
+{
+    "@metadata": {
+        "authors": [
+            "පසිඳු කාවින්ද"
+        ]
+    },
+    "config-information": "Thông tin",
+    "config-page-language": "Ngôn ngữ",
+    "config-page-name": "Tên",
+    "config-page-options": "Tùy chọn",
+    "config-ns-generic": "Dự án",
+    "config-admin-password": "Mật khẩu:",
+    "config-admin-email": "Địa chỉ thư điện tử:",
+    "config-help": "Trợ giúp",
+    "mainpagetext": "'''MediaWiki đã được cài đặt thành công.'''",
+    "mainpagedocfooter": "Xin đọc [//meta.wikimedia.org/wiki/Help:Contents Hướng dẫn sử dụng] để biết thêm thông tin về cách sử dụng phần mềm wiki.\n\n== Để bắt đầu ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Danh sách các thiết lập cấu hình]\n* [//www.mediawiki.org/wiki/Manual:FAQ Các câu hỏi thường gặp MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Danh sách gửi thư về việc phát hành MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/vo.json b/includes/installer/i18n/vo.json
new file mode 100644 (file)
index 0000000..050adae
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''El MediaWiki pestiton benosekiko.'''",
+    "mainpagedocfooter": "Konsultolös [//meta.wikimedia.org/wiki/Help:Contents Gebanageidian] ad tuvön nünis dö geb programema vükik.\n\n== Nüdugot ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Parametalised]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki: SSP]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Potalised tefü fomams nulik ela MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/vro.json b/includes/installer/i18n/vro.json
new file mode 100644 (file)
index 0000000..a9c7a8e
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki tarkvara paika säet.'''",
+    "mainpagedocfooter": "Vikitarkvara pruukmisõ kotsilõ loeq mano:\n* [//meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide MediaWiki pruukmisoppus (inglüse keelen)].\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Säädmiisi oppus (inglüse keelen)]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki kõgõ küsütümbäq küsümiseq (inglüse keelen)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce E-postilist, minka andas teedäq MediaWiki vahtsist kujõst]."
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/wa.json b/includes/installer/i18n/wa.json
new file mode 100644 (file)
index 0000000..576d2db
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "@metadata": {
+        "authors": [
+            "Srtxg"
+        ]
+    },
+    "mainpagetext": "'''Li programe MediaWiki a stî astalé a l' idêye.'''"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/war.json b/includes/installer/i18n/war.json
new file mode 100644 (file)
index 0000000..3c9f1b4
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Harvzsf"
+        ]
+    },
+    "mainpagetext": "'''Malinamposon an pag-instalar han MediaWiki.'''",
+    "mainpagedocfooter": "Kitaa an [//meta.wikimedia.org/wiki/Help:Contents User's Guide] para hin impormasyon ha paggamit han wiki nga softweyr.\n\n== Ha pagtikang==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/wo.json b/includes/installer/i18n/wo.json
new file mode 100644 (file)
index 0000000..44ffdf7
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''Campug MediaWiki gi sotti na . '''",
+    "mainpagedocfooter": "Saytul [//meta.wikimedia.org/wiki/Ndimbal:Ndefu Gindikaayu jëfandikukat bi] ngir yeneeni xibaar ci jëfandiku gu tëriin gi.\n\n== Tambali ak MediaWiki ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Limu jumtukaayi kocc-koccal gi]\n* [//www.mediawiki.org/wiki/Manual:FAQ FAQ MediaWiki]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Limu waxtaan ci liy-génn ci MediaWiki]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/wuu.json b/includes/installer/i18n/wuu.json
new file mode 100644 (file)
index 0000000..e7467bf
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Wu-chinese.com"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki安装成功哉!'''",
+    "mainpagedocfooter": "请访问[//meta.wikimedia.org/wiki/Help:Contents 用户手册]以获得使用此维基软件个信息!\n\n== 入门 ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置设置列表]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki 常见问题解答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 发布邮件列表]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/xal.json b/includes/installer/i18n/xal.json
new file mode 100644 (file)
index 0000000..9fe1a42
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Huuchin"
+        ]
+    },
+    "mainpagetext": "Йовудта Mediawiki гүүлһүдә тәвллһн.'''",
+    "mainpagedocfooter": "Тер бики закллһна теткүл ю кеһәд олзлх туск [//meta.wikimedia.org/wiki/Help:Contents көтлвр] дастн.\n\n== Туста заавр ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Көгүдә бүрткл]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki туск ЮмБи]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki шинҗллһнә бүрткл]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/yi.json b/includes/installer/i18n/yi.json
new file mode 100644 (file)
index 0000000..d1f27be
--- /dev/null
@@ -0,0 +1,32 @@
+{
+    "@metadata": {
+        "authors": [
+            "פוילישער",
+            "පසිඳු කාවින්ද"
+        ]
+    },
+    "config-desc": "דער אינסטאלירער פאר מעדיעוויקי",
+    "config-title": "מעדיעוויקי $1 אינסטאלירונג",
+    "config-information": "אינפֿארמאציע",
+    "config-wiki-language": "ווקי שפראך:",
+    "config-back": "→ צוריק",
+    "config-continue": "פֿארזעצן ←",
+    "config-page-language": "שפראַך",
+    "config-page-name": "נאָמען",
+    "config-page-options": "ברירות",
+    "config-db-type": "דאטנבאזע טיפ:",
+    "config-db-name": "דאטנבאזע נאָמען:",
+    "config-project-namespace": "פראיעקט נאָמענטייל:",
+    "config-ns-generic": "פראיעקט",
+    "config-admin-name": "אײַער נאָמען:",
+    "config-admin-password": "פאַסווארט:",
+    "config-admin-password-mismatch": "די צוויי פאסוועטרט איר האט איינגעגעבן שטימען נישט.",
+    "config-admin-email": "בליצפּאָסט אַדרעס:",
+    "config-install-tables": "שאפן טאבעלעס",
+    "config-install-tables-exist": "'''ווארענונג''': זעט אויס אז די מעדיעוויקי טאבעלעס עקזיסטירן שוין.\nאיבערהיפן שאפֿן.",
+    "config-download-localsettings": "אראפלאדן <code>LocalSettings.php</code>",
+    "config-help": "הילף",
+    "config-nofile": "מ'האט נישט געקענט טרעפן די טעקע \"$1\". צי האט מען זי אויסגעמעקט?",
+    "mainpagetext": "'''מעדיעוויקי אינסטאלירט מיט דערפאלג.'''",
+    "mainpagedocfooter": "גיט זיך אן עצה מיט [//meta.wikimedia.org/wiki/Help:Contents באניצער'ס וועגווײַזער] פֿאר אינפֿארמאציע וויאזוי זיך באנוצן מיט וויקי ווייכוואַרג.\n\n== נוצליכע וועבלינקען פֿאַר אנהייבערס ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings רשימה פון קאנפֿיגוראציעס]\n* [//www.mediawiki.org/wiki/Manual:FAQ אפֿט געפֿרעגטע שאלות]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce מעדיעוויקי באפֿרײַאונג פאסטליסטע]* [//www.mediawiki.org/wiki/Localisation#Translation_resources איבערזעצן מעדיעוויקי אין אײַער שפראך]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/yo.json b/includes/installer/i18n/yo.json
new file mode 100644 (file)
index 0000000..a575159
--- /dev/null
@@ -0,0 +1,9 @@
+{
+    "@metadata": {
+        "authors": [
+            "Demmy"
+        ]
+    },
+    "mainpagetext": "'''MediaWiki ti jẹ́ gbígbékọ́sínú láyọrísírere.'''",
+    "mainpagedocfooter": "Ẹ ṣàbẹ̀wò sí [//meta.wikimedia.org/wiki/Help:Contents User's Guide] fún ìfitólétí nípa líló atòlànà wíkì.\n\n== Láti bẹ̀rẹ̀ ==\n*  [//www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/yue.json b/includes/installer/i18n/yue.json
new file mode 100644 (file)
index 0000000..18dbc25
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''MediaWiki已經裝好。'''",
+    "mainpagedocfooter": "參閱[//meta.wikimedia.org/wiki/Help:Contents 用戶指引](英),裏面有資料講點用wiki軟件。\n\n==開始使用==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings 配置設定清單](英)\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki 常見問題](英)\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈郵件名單](英)"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/zea.json b/includes/installer/i18n/zea.json
new file mode 100644 (file)
index 0000000..14b15a6
--- /dev/null
@@ -0,0 +1,7 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagetext": "'''De installaotie van MediaWiki is geslaegd.'''",
+    "mainpagedocfooter": "Raedpleeg de [//meta.wikimedia.org/wiki/ZEA_Ulpe:Inhoudsopgaeve andleidieng] voe informatie over 't gebruuk van de wikisoftware.\n\n== Meer ulpe over MediaWiki ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings Lieste mie instelliengen]\n* [//www.mediawiki.org/wiki/Manual:FAQ Veehestelde vraehen (FAQ)]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Mailienglieste voe ankondigiengen van nieuwe versies]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/zh-hans.json b/includes/installer/i18n/zh-hans.json
new file mode 100644 (file)
index 0000000..06c7646
--- /dev/null
@@ -0,0 +1,315 @@
+{
+    "@metadata": {
+        "authors": [
+            "Anthony Fok",
+            "Cwek",
+            "Hydra",
+            "Hzy980512",
+            "Liangent",
+            "Makecat",
+            "PhiLiP",
+            "Xiaomingyan",
+            "Yfdyh000",
+            "乌拉跨氪",
+            "阿pp",
+            "아라"
+        ]
+    },
+    "config-desc": "MediaWiki安装程序",
+    "config-title": "MediaWiki $1配置",
+    "config-information": "信息",
+    "config-localsettings-upgrade": "已检测到<code>LocalSettings.php</code>文件。要升级该配置,请在下面的框中输入<code>$wgUpgradeKey</code>的值。您可以在<code>LocalSettings.php</code>中找到它。",
+    "config-localsettings-cli-upgrade": "已检测到<code>LocalSettings.php</code>文件。要升级该配置,请直接运行<code>update.php</code>。",
+    "config-localsettings-key": "升级密钥:",
+    "config-localsettings-badkey": "您提供的密钥不正确。",
+    "config-upgrade-key-missing": "检测到MediaWiki的配置已经存在。若要升级该配置,请将下面一行文本添加到<code>LocalSettings.php</code>的底部:\n\n$1",
+    "config-localsettings-incomplete": "当前的<code>LocalSettings.php</code>可能并不完整,因为变量$1没有设置。请在<code>LocalSettings.php</code>设置该变量,并单击“{{int:Config-continue}}”。",
+    "config-localsettings-connection-error": "在使用<code>LocalSettings.php</code>或<code>AdminSettings.php</code>中指定的设置连接数据库时发生错误。请修复相应设置并重试。\n\n$1",
+    "config-session-error": "启动会话出错:$1",
+    "config-session-expired": "您的会话数据可能已经过期,当前会话的使用期限被设定为$1。您可以在php.ini中设置<code>session.gc_maxlifetime</code>来延长此期限,并重新启动本配置程序。",
+    "config-no-session": "您的会话数据丢失了!请检查php.ini并确保<code>session.save_path</code>被设置为适当的目录。",
+    "config-your-language": "您使用的语言:",
+    "config-your-language-help": "选择在安装过程中使用的语言。",
+    "config-wiki-language": "Wiki使用的语言:",
+    "config-wiki-language-help": "选择将要安装的wiki在多数情况下使用的语言。",
+    "config-back": "← 后退",
+    "config-continue": "继续 →",
+    "config-page-language": "语言",
+    "config-page-welcome": "欢迎使用MediaWiki!",
+    "config-page-dbconnect": "连接到数据库",
+    "config-page-upgrade": "升级当前配置",
+    "config-page-dbsettings": "数据库设置",
+    "config-page-name": "名称",
+    "config-page-options": "选项",
+    "config-page-install": "安装",
+    "config-page-complete": "完成!",
+    "config-page-restart": "重新开始安装",
+    "config-page-readme": "自述",
+    "config-page-releasenotes": "发布说明",
+    "config-page-copying": "复制",
+    "config-page-upgradedoc": "更新",
+    "config-page-existingwiki": "已有wiki",
+    "config-help-restart": "是否要清除所有已输入且保存的数据,并重新启动安装过程吗?",
+    "config-restart": "是的,重启吧",
+    "config-welcome": "=== 环境检查 ===\n对当前环境是否适合安装MediaWiki作基本的检查。如果您在安装过程中需要帮助,请提供这些检查的结果。",
+    "config-copyright": "=== 版权和条款 ===\n\n$1\n\n本程序为自由软件;您可依据自由软件基金会所发表的GNU通用公共授权条款规定,就本程序再为发布与/或修改;无论您依据的是本授权的第二版或(您自行选择的)任一日后发行的版本。\n\n本程序是基于使用目的而加以发布,然而'''不负任何担保责任''';亦无对'''适售性'''或'''特定目的适用性'''所为的默示性担保。详情请参照GNU通用公共授权。\n\n您应已收到附随于本程序的<doclink href=\"Copying\">GNU通用公共授权的副本</doclink>;如果没有,请写信至自由软件基金会:59 Temple Place - Suite 330, Boston, Ma 02111-1307, USA,或[http://www.gnu.org/copyleft/gpl.html 在线阅读]。",
+    "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki/zh-hans MediaWiki首页]\n* [//www.mediawiki.org/wiki/Help:Contents/zh-hans 用户指南]\n* [//www.mediawiki.org/wiki/Manual:Contents 管理员指南]\n* [//www.mediawiki.org/wiki/Manual:FAQ/zh-hans 常见问题解答]\n----\n* <doclink href=Readme>自述文件</doclink>\n* <doclink href=ReleaseNotes>发行说明</doclink>\n* <doclink href=Copying>协议副本</doclink>\n* <doclink href=UpgradeDoc>升级</doclink>",
+    "config-env-good": "环境检查已经完成。您可以安装MediaWiki。",
+    "config-env-bad": "环境检查已经完成。您不能安装MediaWiki。",
+    "config-env-php": "PHP $1已安装。",
+    "config-env-php-toolow": "已安装PHP $1;但是,MediaWiki需要PHP $2或更高版本。",
+    "config-unicode-using-utf8": "使用Brion Vibber的utf8_normalize.so实现Unicode正常化。",
+    "config-unicode-using-intl": "使用[http://pecl.php.net/intl intl PECL扩展]实现Unicode正常化。",
+    "config-unicode-pure-php-warning": "'''警告:'''因为尚未安装 [http://pecl.php.net/intl intl PECL 扩展]以处理 Unicode 正常化,故只能退而采用运行较慢的纯 PHP 实现的方法。\n如果您运行着一个高流量的站点,请参阅 [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode 正常化]一文。",
+    "config-unicode-update-warning": "'''警告''':Unicode正常化封装器的已安装版本使用了旧版本的[http://site.icu-project.org/ ICU项目]库。如果您需要使用Unicode,请将其[//www.mediawiki.org/wiki/Unicode_normalization_considerations 升级]。",
+    "config-no-db": "找不到合适的数据库驱动!您需要为PHP安装数据库驱动。目前支持以下数据库:$1。\n\n如果您正在使用共享主机,请向您的主机提供商申请安装合适的数据库驱动。如果您通过自行编译安装的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>选项被启用。请尽量禁用该功能,'''虽然不会影响MediaWiki的运行,但您的服务器会被暴露给潜在的安全漏洞。",
+    "config-magic-quotes-runtime": "'''毁灭性错误:[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]已启用!'''\n此选项会无法预测地破坏输入的数据,请将其禁用,否则您将不能安装或使用MediaWiki。",
+    "config-magic-quotes-sybase": "'''毁灭性错误:[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_sybase]已启用!'''\n此选项会无法预测地破坏输入的数据,请将其禁用,否则您将不能安装或使用MediaWiki。",
+    "config-mbstring": "'''毁灭性错误:[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]已启用!'''\n此选项会导致错误并不可预测地破坏数据,请将其禁用,否则您将不能安装或使用MediaWiki。",
+    "config-ze1": "'''毁灭性错误:[http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]已启用!'''\n此选项将导致MediaWiki出现极其严重的故障,请将其禁用,否则您将不能安装或使用MediaWiki。",
+    "config-safe-mode": "'''警告:'''PHP的[http://www.php.net/features.safe-mode 安全模式]已启用。它可能会导致一些问题,尤其在对文件上传和数学公式<code>math</code>的支持方面。",
+    "config-xml-bad": "缺少PHP的XML模块。MediaWiki需要使用该模块提供的函数,在当前配置下将无法工作。如果您正在使用Mandrake Linux,请安装php-xml包。",
+    "config-pcre": "可能缺少PCRE的支持模块。MediaWiki的运行需要兼容于Perl的正则表达式函数。",
+    "config-pcre-no-utf8": "'''毁灭性错误''':PHP的PCRE模块在编译时可能没有包含PCRE_UTF8支持。MediaWiki需要UTF-8支持才能正常工作。",
+    "config-memory-raised": "PHP的内存使用上限<code>memory_limit</code>为$1,自动提升到$2。",
+    "config-memory-bad": "'''警告:'''PHP的内存使用上限<code>memory_limit</code>为$1。该设定可能过低,并导致安装失败!",
+    "config-ctype": "'''毁灭性错误''':PHP必须有[http://www.php.net/manual/en/ctype.installation.php Ctype 扩展]来支持编译。",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache]已安装",
+    "config-apc": "[http://www.php.net/apc APC]已安装",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache]已安装",
+    "config-no-cache": "'''警告:'''找不到[http://www.php.net/apc APC]、[http://xcache.lighttpd.net/ XCache]或[http://www.iis.net/download/WinCacheForPhp WinCache],无法启用对象缓存。\nObject 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。缩略图功能将不可用。",
+    "config-no-uri": "'''错误:'''无法确定当前的URI。安装已中断。",
+    "config-no-cli-uri": "'''警告''':未指定--scriptpath参数,使用默认值:<code>$1</code>。",
+    "config-using-server": "使用服务器名“<nowiki>$1</nowiki>”。",
+    "config-using-uri": "使用服务器URL“<nowiki>$1$2</nowiki>”。",
+    "config-uploads-not-safe": "'''警告:'''您的默认上传目录<code>$1</code>存在允许执行任意脚本的漏洞。尽管MediaWiki会对所有已上传的文件进行安全检查,但我们仍然强烈建议您在启用上传功能前[//www.mediawiki.org/wiki/Manual:Security#Upload_security 关闭该安全漏洞]。",
+    "config-no-cli-uploads-check": "'''警告''':在CLI安装过程中,没有对您的默认上传目录(<code>$1</code>)进行执行任意脚本的漏洞检查。",
+    "config-brokenlibxml": "您的系统安装的PHP和libxml2版本组合存在故障,并可能在MediaWiki和其他web应用程序中造成隐藏的数据损坏。请将PHP升级到5.2.9或以上,libxml2升级到2.7.3或以上([//bugs.php.net/bug.php?id=45996 PHP的故障报告])。安装已中断。",
+    "config-using531": "由于函数<code>__call()</code>的引用参数存在故障,PHP $1和MediaWiki无法兼容。请升级到PHP 5.3.2或更高版本,或降级到PHP 5.3.0以修复该问题。安装已中断。",
+    "config-suhosin-max-value-length": "Suhosin已经安装并将GET请求的参数长度限制在$1字节。MediaWiki的ResourceLoader部件可以在此限制下正常工作,但其性能会被降低。如果可能,请在<code>php.ini</code>中将<code>suhosin.get.max_value_length</code>设为1024或更高值,并在LocalSettings.php中将<code>$wgResourceLoaderMaxQueryLength</code>设为同一值。",
+    "config-db-type": "数据库类型:",
+    "config-db-host": "数据库主机:",
+    "config-db-host-help": "如果您的数据库在别的服务器上,请在这里输入它的域名或IP地址。\n\n如果您在使用共享网站套餐,您的网站商应该已在他们的控制面板中给您数据库信息了。\n\n如果您在Windows中安装并且使用MySQL,“localhost”可能无效。如果确实无效,请输入“127.0.0.1”作为IP地址。\n\n如果您在使用PostgreSQL,并且要用Unix socket来连接,请留空。",
+    "config-db-host-oracle": "数据库透明网络底层(TNS):",
+    "config-db-host-oracle-help": "请输入合法的[http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm 本地连接名],并确保tnsnames.ora文件对本安装程序可见。<br />如果您使用的客户端库为10g或更新的版本,您还可以使用[http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm 简单连接名方法](easy connect naming method)。",
+    "config-db-wiki-settings": "标识本wiki",
+    "config-db-name": "数据库名称:",
+    "config-db-name-help": "请输入一个可以标识您的wiki的名称。请勿使用空格。\n\n如果您正在使用共享web主机,您的主机提供商或会给您指定一个数据库名称,或会让您通过控制面板创建数据库。",
+    "config-db-name-oracle": "数据库模式:",
+    "config-db-account-oracle-warn": "现有三种已支持方案可以将Oracle设置为后端数据库:\n\n如果您希望在安装过程中创建数据库帐户,请为安装程序提供具有SYSDBA角色的数据库帐户,并为web访问帐户指定所需身份证明;否则您可以手动创建web访问的账户并仅须提供该帐户(确保帐户已有创建方案对象(schema object)的所需权限);或提供两个不同的帐户,其一具有创建权限,另一则被限制为web访问。\n\n具有所需权限账户的创建脚本存放于本程序的“maintenance/oracle/”目录下。请注意,使用受限制的帐户将禁用默认帐户的所有维护性功能。",
+    "config-db-install-account": "用于安装的用户帐号",
+    "config-db-username": "数据库用户名:",
+    "config-db-password": "数据库密码:",
+    "config-db-password-empty": "请为新数据库用户$1输入密码。尽管您可以创建不使用密码的用户,但这样做并不安全。",
+    "config-db-install-username": "请输入在安装过程中用于连接数据库的用户名。请勿输入MediaWiki帐号的用户名,请输入您数据库的用户名。",
+    "config-db-install-password": "请输入在安装过程中用于连接数据库的密码。请勿输入MediaWiki帐号的密码,请输入您数据库的密码。",
+    "config-db-install-help": "请输入在安装过程中用于连接数据库的用户名和密码。",
+    "config-db-account-lock": "在普通操作中使用相同的用户名和密码",
+    "config-db-wiki-account": "用于普通操作的用户帐号",
+    "config-db-wiki-help": "输入在普通的wiki操作中(安装完成后)将用于连接数据库的用户名和密码。如果该帐号并不存在,而安装帐号具有足够的权限,该用户帐号会被自动创建,并被赋予足以运行此wiki的最低权限。",
+    "config-db-prefix": "数据库表前缀:",
+    "config-db-prefix-help": "如果您需要在多个wiki之间(或在MediaWiki与其他web应用程序之间)共享一个数据库,您可以通过添加前缀的方式来避免出现表名称的冲突。请勿使用空格。\n\n此字段通常可留空。",
+    "config-db-charset": "数据库字符集",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 二进制",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 UTF-8(向后兼容)",
+    "config-charset-help": "'''警告:'''如果您在MySQL 4.1+中使用'''向后兼容的UTF-8'''字符集,并在之后使用<code>mysqldump</code>备份了数据库,则可能损坏所有的非ASCII字符,从而不可逆地破坏您的备份!\n\n在'''二进制模式'''下,MediaWiki会将UTF-8编码的文本存于数据库的二进制字段中。相对于MySQL的UTF-8模式,这种方法效率更高,并允许您使用全范围的Unicode字符。\n\n在'''UTF-8模式'''下,MySQL将知道您数据使用的字符集,并能适当地提供和转换内容。但这样做您将无法在数据库中存储[//zh.wikipedia.org/wiki/基本多文种平面 基本多文种平面]以外的字符。",
+    "config-mysql-old": "需要MySQL $1或更新的版本,您的版本为$2。",
+    "config-db-port": "数据库端口:",
+    "config-db-schema": "MediaWiki的数据库模式",
+    "config-db-schema-help": "此数据库模式通常是正确的,请在有明确需求时才改动之。",
+    "config-pg-test-error": "无法连接到数据库'''$1''':$2",
+    "config-sqlite-dir": "SQLite数据目录:",
+    "config-sqlite-dir-help": "SQLite会将所有的数据存储于单一文件中。\n\n您所提供的目录必须在安装过程中对网页服务器可写。\n\n该目录'''不应'''允许通过web访问,因此我们不会将数据文件和PHP文件放在一起。\n\n安装程序在创建数据文件时,亦会在相同目录下创建<code>.htaccess</code>以控制权限。假若此等控制失效,则可能会将您的数据文件暴露于公共空间,让他人可以获取用户数据(电子邮件地址、杂凑后的密码)、被删除的版本以及其他在wiki上被限制访问的数据。\n\n请考虑将数据库统一放置在某处,如<code>/var/lib/mediawiki/yourwiki</code>下。",
+    "config-oracle-def-ts": "默认表空间:",
+    "config-oracle-temp-ts": "临时表空间:",
+    "config-support-info": "MediaWiki支持以下数据库系统:\n\n$1\n\n如果您在下面列出的数据库系统中没有找到您希望使用的系统,请根据上方链向的指引启用支持。",
+    "config-support-mysql": "* $1是MediaWiki的首选数据库,对它的支持最为完备([http://www.php.net/manual/en/mysql.installation.php 如何将对MySQL的支持编译进PHP中])",
+    "config-support-postgres": "* $1是一种流行的开源数据库系统,可作为MySQL的替代([http://www.php.net/manual/en/pgsql.installation.php 如何将对PostgreSQL的支持编译进PHP中])。本程序中可能依然存在一些小而明显的错误,因此并不建议在生产环境中使用该数据库系统。",
+    "config-support-sqlite": "* $1是一种轻量级的数据库系统,能被良好地支持。([http://www.php.net/manual/en/pdo.installation.php 如何将对SQLite的支持编译进PHP中],须使用PDO)",
+    "config-support-oracle": "* $1是一种商用企业级的数据库。([http://www.php.net/manual/en/oci8.installation.php 如何将对OCI8的支持编译进PHP中])",
+    "config-header-mysql": "MySQL设置",
+    "config-header-postgres": "PostgreSQL设置",
+    "config-header-sqlite": "SQLite设置",
+    "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": "无效的数据库TNS“$1”。请只使用ASCII字母(a-z、A-Z)、数字(0-9)、下划线(_)和点号(.)。",
+    "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。\n\n请检查下列的主机、用户名和密码设置后重试。",
+    "config-invalid-schema": "无效的MediaWiki数据库模式“$1”。请只使用ASCII字母(a-z、A-Z)、数字(0-9)和下划线(_)。",
+    "config-db-sys-create-oracle": "安装程序仅支持使用SYSDBA帐户创建新帐户。",
+    "config-db-sys-user-exists-oracle": "用户帐户“$1”已经存在。SYSDBA仅可用于创建新帐户!",
+    "config-postgres-old": "需要PostgreSQL $1或更新的版本,您的版本为$2。",
+    "config-sqlite-name-help": "请为您的wiki指定一个用于标识的名称。请勿使用空格或连字号,该名称将被用作SQLite的数据文件名。",
+    "config-sqlite-parent-unwritable-group": "由于父目录<code><nowiki>$2</nowiki></code>对网页服务器不可写,无法创建数据目录<code><nowiki>$1</nowiki></code>。\n\n安装程序已确定您网页服务器所使用的用户。请将<code><nowiki>$3</nowiki></code>目录设为对该用户可写以继续安装过程。在Unix/Linux系统中,您可以逐行输入下列命令:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "由于父目录<code><nowiki>$2</nowiki></code>对网页服务器不可写,无法创建数据目录<code><nowiki>$1</nowiki></code>。\n\n安装程序无法确定您网页服务器所使用的用户。请将<code><nowiki>$3</nowiki></code>目录设为全局可写(对所有用户)以继续安装过程。在Unix/Linux系统中,您可以逐行输入下列命令:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "创建数据目录“$1”时发生错误。请检查路径后重试。",
+    "config-sqlite-dir-unwritable": "无法写入目录“$1”。请修改该目录的权限,使其对网页服务器可写后重试。",
+    "config-sqlite-connection-error": "$1。\n\n请检查下列的数据目录和数据库名称后重试。",
+    "config-sqlite-readonly": "文件<code>$1</code>不可写。",
+    "config-sqlite-cant-create-db": "无法创建数据文件<code>$1</code>。",
+    "config-sqlite-fts3-downgrade": "PHP缺少FTS3支持,正在降级数据表",
+    "config-can-upgrade": "在数据库中发现了MediaWiki的数据表。要将它们升级至MediaWiki $1,请点击'''继续'''。",
+    "config-upgrade-done": "升级完成。\n\n现在您可以[$1 开始使用您的wiki]了。\n\n如果您需要重新生成<code>LocalSettings.php</code>文件,请点击下面的按钮。除非您的wiki出现了问题,我们'''不推荐'''您执行此操作。",
+    "config-upgrade-done-no-regenerate": "升级完成。\n\n现在您可以[$1 开始使用您的wiki]了。",
+    "config-regenerate": "重新生成LocalSettings.php →",
+    "config-show-table-status": "<code>SHOW TABLE STATUS</code>语句执行失败!",
+    "config-unknown-collation": "'''警告:'''数据库使用了无法识别的整理。",
+    "config-db-web-account": "供网页访问使用的数据库帐号",
+    "config-db-web-help": "请指定在wiki执行普通操作时,网页服务器用于连接数据库服务器的用户名和密码。",
+    "config-db-web-account-same": "使用和安装程序相同的帐号",
+    "config-db-web-create": "如果帐号不存在,则自动创建",
+    "config-db-web-no-create-privs": "您指定给安装程序的帐号缺少创建帐号的权限,因此您指定的帐号必须已经存在。",
+    "config-mysql-engine": "存储引擎:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''警告''':您选择了MyISAM作为MySQL的存储引擎,MediaWiki并不推荐您这么做,因为:\n* 它仅能通过表锁定来勉强支持并发\n* 与其他引擎相比,它更容易被损坏\n* MediaWiki代码库并不总会去处理MyISAM\n\n如果您的MySQL程序支持InnoDB,我们高度推荐您使用该引擎替代MyISAM。\n如果您的MySQL程序不支持InnoDB,请考虑升级。",
+    "config-mysql-only-myisam-dep": "''''警告:'''MyISAM是MySQL唯一可用的存储引擎,但不适合用于MediaWiki,是由于:\n*由于只支持表级锁定,几乎不支持并发。\n*它比其他引擎更容易损坏。\n*MediaWiki代码不能总是按照预设地操作MyISAM。\n\n你的MySQL不支持InnoDB,是时候升级了。",
+    "config-mysql-engine-help": "'''InnoDB'''通常是最佳选项,因为它对并发操作有着良好的支持。\n\n'''MyISAM'''在单用户或只读环境下可能会有更快的性能表现。但MyISAM数据库出错的概率一般要大于InnoDB数据库。",
+    "config-mysql-charset": "数据库字符集:",
+    "config-mysql-binary": "二进制",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "在'''二进制模式'''下,MediaWiki会将UTF-8编码的文本存于数据库的二进制字段中。相对于MySQL的UTF-8模式,这种方法效率更高,并允许您使用全范围的Unicode字符。\n\n在'''UTF-8模式'''下,MySQL将知道您数据使用的字符集,并能适当地提供和转换内容。但这样做您将无法在数据库中存储[//zh.wikipedia.org/wiki/基本多文种平面 基本多文种平面]以外的字符。",
+    "config-site-name": "Wiki的名称:",
+    "config-site-name-help": "填入的内容会出现在浏览器的标题栏以及其他多处位置中。",
+    "config-site-name-blank": "输入网站的名称。",
+    "config-project-namespace": "项目名字空间:",
+    "config-ns-generic": "项目",
+    "config-ns-site-name": "与wiki名称相同:$1",
+    "config-ns-other": "其他(自定义)",
+    "config-ns-other-default": "我的Wiki",
+    "config-project-namespace-help": "依循维基百科形成的惯例,许多wiki将他们的方针页面存放在与内容页面不同的“'''项目名字空间'''”中。所有位于该名字空间下的页面标题都会被冠以固定的前缀,您可以在此处指定这一前缀。传统上,这一前缀应与wiki的命名保持一致,但请勿在其中使用标点符号,如“#”或“:”。",
+    "config-ns-invalid": "指定的名字空间“<nowiki>$1</nowiki>”无效,请为项目名字空间指定其他名称。",
+    "config-ns-conflict": "指定的名字空间“<nowiki>$1</nowiki>”与默认的MediaWiki名字空间冲突。请指定一个不同的项目名字空间。",
+    "config-admin-box": "管理员帐号",
+    "config-admin-name": "您的名字:",
+    "config-admin-password": "密码:",
+    "config-admin-password-confirm": "确认密码:",
+    "config-admin-help": "在此输入您想使用的用户名,例如“乔帮主”。您将使用该名称登录本wiki。",
+    "config-admin-name-blank": "输入管理员的用户名。",
+    "config-admin-name-invalid": "指定的用户名“<nowiki>$1</nowiki>”无效,请指定其他用户名。",
+    "config-admin-password-blank": "输入管理员帐号的密码。",
+    "config-admin-password-same": "密码不能和用户名相同。",
+    "config-admin-password-mismatch": "两次输入的密码并不相同。",
+    "config-admin-email": "电子邮件地址:",
+    "config-admin-email-help": "输入电子邮件地址后,您可以收到此wiki上其他用户发来的电子邮件,并能重置您的密码,还可在监视列表中页面被更改时收到邮件通知。您可以将此字段留空。",
+    "config-admin-error-user": "在创建用户名为“<nowiki>$1</nowiki>”的管理员帐号时发生内部错误。",
+    "config-admin-error-password": "在为管理员“<nowiki>$1</nowiki>”设置密码时发生内部错误:<pre>$2</pre>",
+    "config-admin-error-bademail": "您输入了无效的电子邮件地址。",
+    "config-subscribe": "订阅[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce 发行公告邮件列表]。",
+    "config-subscribe-help": "此低流量的邮件列表仅用于发行公告,其中包括重要安全公告。请订阅该列表以便在新的版本推出时升级您的MediaWiki。",
+    "config-subscribe-noemail": "您选择了订阅发行公告邮件列表,但没有提供电子邮件地址。请提供一个电子邮件地址以订阅邮件列表。",
+    "config-almost-done": "您几乎已经完成了!现在您可以跳过剩下的配置流程并立即安装wiki。",
+    "config-optional-continue": "多问我一些问题吧。",
+    "config-optional-skip": "我已经不耐烦了,赶紧安装我的wiki。",
+    "config-profile": "用户权限配置:",
+    "config-profile-wiki": "开放的wiki",
+    "config-profile-no-anon": "需要注册帐号",
+    "config-profile-fishbowl": "编辑受限",
+    "config-profile-private": "非公开wiki",
+    "config-profile-help": "如果您允许尽量多的人编写wiki,网站上的内容会更加丰富。在MediaWiki中,您可以轻松地审查最近更改,并轻易回退掉新手或破坏者造成的损害。\n\n然而,许多人觉得让MediaWiki存在多种角色将更加好用;同时,要说服所有人都愿以wiki的方式作贡献并非一件易事。因此,您可以有以下选择:\n\n'''{{int:config-profile-wiki}}'''允许包括未登录用户在内的所有人编辑。'''{{int:config-profile-no-anon}}'''的wiki需要额外的注册流程,这有可能会阻碍随意贡献者。\n\n'''{{int:config-profile-fishbowl}}'''模式只允许获批准的用户编辑,但对公众开放页面浏览(包括历史记录)。'''{{int:config-profile-private}}'''则只允许获批准的用户浏览、编辑页面。\n\n安装完成后,您还可以对用户权限进行更多、更复杂的配置,参见[//www.mediawiki.org/wiki/Manual:User_rights 相关的使用手册]。",
+    "config-license": "版权和许可证:",
+    "config-license-none": "页脚无许可证",
+    "config-license-cc-by-sa": "知识共享署名-相同方式分享",
+    "config-license-cc-by": "知识共享署名",
+    "config-license-cc-by-nc-sa": "知识共享署名-非商业性使用-相同方式共享",
+    "config-license-cc-0": "知识共享Zero(公有领域)",
+    "config-license-gfdl": "GNU自由文档许可证1.3或更高版本",
+    "config-license-pd": "公有领域",
+    "config-license-cc-choose": "选择自定义的知识共享许可证",
+    "config-license-help": "许多公共wiki会以[http://freedomdefined.org/Definition 自由许可证]的方式释放出编者的所有贡献。这有助于构建社区的主人翁意识,并能鼓励长期贡献。对于非公共wiki或公司wiki,这并非必要条件。\n\n如果您希望使用来自维基百科的内容,并希望维基百科能接受复制自您的wiki的内容,请选择'''知识共享署名-相同方式共享'''。\n\nGNU自由文档许可证是维基百科曾经使用过的许可证,并迄今有效。然而,该许可证难以理解,并会增加重用内容的难度。",
+    "config-email-settings": "电子邮件设置",
+    "config-enable-email": "启用出站电子邮件",
+    "config-enable-email-help": "如果您希望使用电子邮件功能,请正确配置[http://www.php.net/manual/en/mail.configuration.php PHP的邮件设定]。如果您不需要任何电子邮件功能,请在此处禁用它。",
+    "config-email-user": "启用用户到用户的电子邮件",
+    "config-email-user-help": "允许所有用户互发邮件,假若他们启用了该功能。",
+    "config-email-usertalk": "启用用户讨论页通知",
+    "config-email-usertalk-help": "允许用户收到用户讨论页被修改的通知,假若他们启用了该功能。",
+    "config-email-watchlist": "启用监视列表通知",
+    "config-email-watchlist-help": "允许用户收到与其监视列表有关的通知,假若他们启用了该功能。",
+    "config-email-auth": "启用电子邮件身份验证",
+    "config-email-auth-help": "如果启用此选项,在用户设置或修改电子邮件地址时,就会收到一封邮件,内含确认电子地址的链接。只有经过身份验证的电子邮件地址,才能收到来自其他用户的电子邮件,或任何修改通知的邮件。'''建议'''公开wiki启用本选项,以防对电子邮件功能的滥用。",
+    "config-email-sender": "回复电子邮件地址:",
+    "config-email-sender-help": "输入要用来发送出站电子邮件的地址,该地址将会收到被拒收的邮件。许多邮件服务器要求域名部分必须有效。",
+    "config-upload-settings": "图像和文件上传",
+    "config-upload-enable": "启用文件上传",
+    "config-upload-help": "文件上传可能会将您的服务器暴露在安全风险下。有关更多的信息,请参阅手册的[//www.mediawiki.org/wiki/Manual:Security 安全部分]。\n\n要启用文件上传,请先将MediaWiki根目录下的<code>images</code>子目录更改为对web服务器可写,然后再启用此选项。",
+    "config-upload-deleted": "已删除文件的目录:",
+    "config-upload-deleted-help": "指定用于存放被删除文件的目录。理想情况下,该目录不应能通过web访问。",
+    "config-logo": "标志URL:",
+    "config-logo-help": "在MediaWiki的默认外观中,左侧栏菜单之上有一块135x160像素的标志区。请上传一幅相应大小的图像,并在此输入URL。\n\n你可以用<code>$wgStylePath</code>或<code>$wgScriptPath</code>来表示相对于这些位置的路径。\n\n如果您不希望使用标志,请将本处留空。",
+    "config-instantcommons": "启用即时共享资源",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons 即时共享资源]可以让wiki使用来自[//commons.wikimedia.org/ 维基共享资源]网站的图像、音频和其他媒体文件。要启用该功能,MediaWiki必须能够访问互联网。\n\n有关此功能的详细信息,包括如何将其他wiki网站设为具有类似共享功能的方法,请参考[//mediawiki.org/wiki/Manual:$wgForeignFileRepos 手册]。",
+    "config-cc-error": "知识共享许可证挑选器无法找到结果,请手动输入许可证的名称。",
+    "config-cc-again": "重新挑选……",
+    "config-cc-not-chosen": "选择您希望使用的知识共享许可证,并点击“继续”。",
+    "config-advanced-settings": "高级设置",
+    "config-cache-options": "对象缓存设置:",
+    "config-cache-help": "对象缓存可通过缓存频繁使用的数据来提高MediaWiki的速度。高度推荐中到大型的网站启用该功能,小型网站亦能从其中受益。",
+    "config-cache-none": "无缓存(不影响功能,但对较大型的wiki网站会有速度影响)",
+    "config-cache-accel": "PHP对象缓存(APC、XCache或WinCache)",
+    "config-cache-memcached": "使用Memcached(需要另外安装并配置)",
+    "config-memcached-servers": "Memcached服务器:",
+    "config-memcached-help": "用于Memcached的IP地址列表。请保持每行一条,并指定要使用的端口。例如:\n127.0.0.1:11211\n192.168.1.25:1234",
+    "config-memcache-needservers": "您选择了Memcached作为您的缓存,但并未指定任何服务器。",
+    "config-memcache-badip": "您为Memcached输入了无效的IP地址:$1。",
+    "config-memcache-noport": "您没有指定Memcached服务器的端口:$1。如果您不清楚端口是多少,默认值为11211。",
+    "config-memcache-badport": "Memcached的端口号应该在$1到$2之间。",
+    "config-extensions": "扩展",
+    "config-extensions-help": "已在您的<code>./extensions</code>目录中发现下列扩展。\n\n您可能要对它们进行额外的配置,但您现在可以启用它们。",
+    "config-install-alreadydone": "'''警告:'''您似乎已经安装了MediaWiki,并试图重新安装它。请前往下一个页面。",
+    "config-install-begin": "点击“{{int:config-continue}}”后,您将开始安装MediaWiki。如果您还想对配置作一些修改,请点击“{{int:config-back}}”。",
+    "config-install-step-done": "完成",
+    "config-install-step-failed": "失败",
+    "config-install-extensions": "正在启用扩展",
+    "config-install-database": "正在配置数据库",
+    "config-install-schema": "创建架构",
+    "config-install-pg-schema-not-exist": "PostgreSQL 架构不存在",
+    "config-install-pg-schema-failed": "创建数据表失败。请确保用户“$1”拥有写入模式“$2”的权限。",
+    "config-install-pg-commit": "正在提交更改",
+    "config-install-pg-plpgsql": "正在检查PL/pgSQL语言",
+    "config-pg-no-plpgsql": "您需要为数据库$1安装PL/pgSQL语言",
+    "config-pg-no-create-privs": "为安装程序指定的帐号缺少创建帐号的权限。",
+    "config-pg-not-in-role": "您指定为web用户的帐户已经存在。\n您给本程序指定的帐户不是超级用户,也不是web用户角色的成员,所以它不能创建web用户所拥有的对象。\n\nMediaWiki当前需要使用由web用户所有的表。请指定另一个web帐户名称,或点击“后退”并指定具有适当权限的安装用户。",
+    "config-install-user": "正在创建数据库用户",
+    "config-install-user-alreadyexists": "用户“$1”已存在",
+    "config-install-user-create-failed": "创建用户“$1”失败:$2",
+    "config-install-user-grant-failed": "授予用户“$1”权限失败:$2",
+    "config-install-user-missing": "指定的用户“$1”不存在。",
+    "config-install-user-missing-create": "指定的用户“$1”不存在。如果您想要创建一名,请点选“创建帐户”下面的复选框。",
+    "config-install-tables": "正在创建数据表",
+    "config-install-tables-exist": "'''警告''':MediaWiki的数据表似乎已经存在,跳过创建。",
+    "config-install-tables-failed": "'''错误''':创建数据表出错,下为错误信息:$1",
+    "config-install-interwiki": "正在填充默认的跨wiki数据表",
+    "config-install-interwiki-list": "找不到文件<code>interwiki.list</code>。",
+    "config-install-interwiki-exists": "'''警告''':跨wiki数据表似乎已有内容,跳过默认列表。",
+    "config-install-stats": "初始化统计",
+    "config-install-keys": "生成密钥中",
+    "config-insecure-keys": "'''警告''':在安装过程中生成的{{PLURAL:$2|安全密钥|安全密钥}}($1){{PLURAL:$2|并|并}}不一定安全。请考虑手动更改{{PLURAL:$2|它|它们}}。",
+    "config-install-sysop": "正在创建管理员用户帐号",
+    "config-install-subscribe-fail": "无法订阅mediawiki-announce:$1",
+    "config-install-subscribe-notpossible": "没有安装cURL,allow_url_fopen也不可用。",
+    "config-install-mainpage": "正在创建显示默认内容的首页",
+    "config-install-extension-tables": "正在为已启用扩展创建数据表",
+    "config-install-mainpage-failed": "无法插入首页:$1",
+    "config-install-done": "'''恭喜!'''\n您已经成功地安装了MediaWiki。\n\n安装程序已经生成了<code>LocalSettings.php</code>文件,其中包含了您所有的配置。\n\n您需要下载该文件,并将其放在您wiki的根目录(index.php的同级目录)中。稍后下载将自动开始。\n\n如果浏览器没有提示您下载,或者您取消了下载,您可以点击下面的链接重新开始下载:\n\n$3\n\n'''注意''':如果您现在不完成本步骤,而是没有下载便退出了安装过程,此后您将无法获得自动生成的配置文件。\n\n当本步骤完成后,您可以 '''[$2 进入您的wiki]'''。",
+    "config-download-localsettings": "下载<code>LocalSettings.php</code>",
+    "config-help": "帮助",
+    "config-nofile": "找不到文件“$1”。它是否已被删除?",
+    "mainpagetext": "'''已成功安装MediaWiki。'''",
+    "mainpagedocfooter": "请查阅[//meta.wikimedia.org/wiki/Help:Contents 用户指南]以获取使用本wiki软件的信息!\n\n== 入门 ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki配置设置列表]\n* [//www.mediawiki.org/wiki/Manual:FAQ/zh-hans MediaWiki常见问题]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki发布邮件列表]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources 本地化MediaWiki到您的语言]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/zh-hant.json b/includes/installer/i18n/zh-hant.json
new file mode 100644 (file)
index 0000000..355e807
--- /dev/null
@@ -0,0 +1,308 @@
+{
+    "@metadata": {
+        "authors": [
+            "Anthony Fok",
+            "Hzy980512",
+            "Justincheng12345",
+            "Liangent",
+            "Mark85296341",
+            "Simon Shek",
+            "아라"
+        ]
+    },
+    "config-desc": "MediaWiki安裝程序",
+    "config-title": "MediaWiki $1配置",
+    "config-information": "資訊",
+    "config-localsettings-upgrade": "已檢測到<code>LocalSettings.php</code>文件。要升級該配置,請在下面的框中輸入<code>$wgUpgradeKey</code>的值。您可以在<code>LocalSettings.php</code>中找到它。",
+    "config-localsettings-cli-upgrade": "已檢測到<code>LocalSettings.php</code>文件。要升級該配置,請直接執行<code>update.php</code>。",
+    "config-localsettings-key": "升級密鑰:",
+    "config-localsettings-badkey": "您提供的密鑰不正確。",
+    "config-upgrade-key-missing": "檢測到MediaWiki的配置已經存在。若要升級該配置,請將下面一行文本添加到<code>LocalSettings.php</code>的底部:\n\n$1",
+    "config-localsettings-incomplete": "當前的<code>LocalSettings.php</code>可能並不完整,因為變量$1沒有設置。請在<code>LocalSettings.php</code>設置該變量,並單擊“{{int:Config-continue}}”。",
+    "config-localsettings-connection-error": "在使用<code>LocalSettings.php</code>或<code>AdminSettings.php</code>中指定的設置連接數據庫時發生錯誤。請修復相應設置並重試。\n\n$1",
+    "config-session-error": "啟動會話出錯:$1",
+    "config-session-expired": "您的會話數據可能已經過期,當前會話的使用期限被設定為$1。您可以在php.ini中設置<code>session.gc_maxlifetime</code>來延長此期限,並重新啟動本配置程序。",
+    "config-no-session": "您的會話數據丟失了!請檢查php.ini並確保<code>session.save_path</code>被設置為適當的目錄。",
+    "config-your-language": "您的語言:",
+    "config-your-language-help": "選擇一個要使用的語言在安裝過程中。",
+    "config-wiki-language": "Wiki 語言:",
+    "config-wiki-language-help": "選擇將要安裝的wiki在多數情況下使用的語言。",
+    "config-back": "←返回",
+    "config-continue": "繼續→",
+    "config-page-language": "語言",
+    "config-page-welcome": "歡迎您來到 MediaWiki!",
+    "config-page-dbconnect": "連接到資料庫",
+    "config-page-upgrade": "升級現有的安裝",
+    "config-page-dbsettings": "資料庫設定",
+    "config-page-name": "名稱",
+    "config-page-options": "選項",
+    "config-page-install": "安裝",
+    "config-page-complete": "完成!",
+    "config-page-restart": "重新安裝",
+    "config-page-readme": "讀我",
+    "config-page-releasenotes": "發布說明",
+    "config-page-copying": "複製",
+    "config-page-upgradedoc": "升級",
+    "config-page-existingwiki": "已有wiki",
+    "config-help-restart": "是否要清除所有已輸入且保存的數據,並重新啟動安裝過程嗎?",
+    "config-restart": "是的,重新啟動",
+    "config-welcome": "=== 環境檢查 ===\n對當前環境是否適合安裝MediaWiki作基本的檢查。如果您在安裝過程中需要幫助,請提供這些檢查的結果。",
+    "config-copyright": "=== 版權和條款 ===\n\n$1\n\n本程序為自由軟件;您可依據自由軟件基金會所發表的GNU通用公共授權條款規定,就本程序再為發布與/或修改;無論您依據的是本授權的第二版或(您自行選擇的)任一日後發行的版本。\n\n本程序是基於使用目的而加以發布,然而'''不負任何擔保責任''';亦無對'''適售性'''或'''特定目的適用性'''所為的默示性擔保。詳情請參照GNU通用公共授權。\n\n您應已收到附隨於本程序的<doclink href=\"Copying\">GNU通用公共授權的副本</doclink>;如果沒有,請寫信至自由軟件基金會:59 Temple Place - Suite 330, Boston, Ma 02111-1307, USA,或[http://www.gnu.org/copyleft/gpl.html 在線閱讀]。",
+    "config-sidebar": "* [//www.mediawiki.org/wiki/MediaWiki/zh-hans MediaWiki首頁]\n* [//www.mediawiki.org/wiki/Help:Contents/zh-hans 用戶指南]\n* [//www.mediawiki.org/wiki/Manual:Contents 管理員指南]\n* [//www.mediawiki.org/wiki/Manual:FAQ/zh-hans 常見問題解答]\n----\n* <doclink href=Readme>自述文件</doclink>\n* <doclink href=ReleaseNotes>發行說明</doclink>\n* <doclink href=Copying>協議副本</doclink>\n* <doclink href=UpgradeDoc>升級</doclink>",
+    "config-env-good": "環境檢查已經完成。您可以安裝MediaWiki。",
+    "config-env-bad": "環境檢查已經完成。您不能安裝MediaWiki。",
+    "config-env-php": "PHP $1 已安裝。",
+    "config-env-php-toolow": "已安裝 PHP $1;但是,MediaWiki 需要 PHP $2 或更高版本。",
+    "config-unicode-using-utf8": "將使用 Brion Vibber 的 utf8_normalize.so 以實作 Unicode 正規化。",
+    "config-unicode-using-intl": "將使用 [http://pecl.php.net/intl intl PECL 延伸函式庫]以實作 Unicode 正規化。",
+    "config-unicode-pure-php-warning": "'''警告:'''因為尚未安裝 [http://pecl.php.net/intl intl PECL 延伸函式庫]以處理 Unicode 正規化,故只能退而採用較慢的純 PHP 實作。如果您運行着一個高流量的網站,請參閱 [//www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode 正規化]一文。",
+    "config-unicode-update-warning": "'''警告''':Unicode正常化封裝器的已安裝版本使用了舊版本的[http://site.icu-project.org/ ICU項目]庫。如果您需要使用Unicode,請將其[//www.mediawiki.org/wiki/Unicode_normalization_considerations 升級]。",
+    "config-no-db": "找不到合適的數據庫驅動!您需要為PHP安裝數據庫驅動。目前支持以下數據庫:$1。\n\n如果您正在使用共享主機,請向您的主機提供商申請安裝合適的數據庫驅動。如果您通過自行編譯安裝的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>選項被啟用。請盡量禁用該功能,'''雖然不會影響MediaWiki的運行,但您的服務器會被暴露給潛在的安全漏洞。",
+    "config-magic-quotes-runtime": "'''致命錯誤:[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_runtime]被啟用!'''\n此選項會無法預測地破壞輸入的數據,請將其禁用,否則您將不能安裝或使用MediaWiki。",
+    "config-magic-quotes-sybase": "'''致命錯誤:[http://www.php.net/manual/en/ref.info.php#ini.magic-quotes-runtime magic_quotes_sybase]被啟用!'''\n此選項會無法預測地破壞輸入的數據,請將其禁用,否則您將不能安裝或使用MediaWiki。",
+    "config-mbstring": "'''致命錯誤:[http://www.php.net/manual/en/ref.mbstring.php#mbstring.overload mbstring.func_overload]被啟用!'''\n此選項會導致錯誤並不可預測地破壞數據,請將其禁用,否則您將不能安裝或使用MediaWiki。",
+    "config-ze1": "'''致命錯誤:[http://www.php.net/manual/en/ini.core.php zend.ze1_compatibility_mode]被啟用!'''\n此選項將導致MediaWiki出現極其嚴重的故障,請將其禁用,否則您將不能安裝或使用MediaWiki。",
+    "config-safe-mode": "'''警告:'''PHP的[http://www.php.net/features.safe-mode 安全模式]已啟用。它可能會導致一些問題,尤其在對文件上傳和數學公式<code>math</code>的支持方面。",
+    "config-xml-bad": "缺少PHP的XML模塊。MediaWiki需要使用該模塊提供的函數,在當前配置下將無法工作。如果您正在使用Mandrake Linux,請安裝php-xml包。",
+    "config-pcre": "可能缺少PCRE的支持模塊。MediaWiki的運行需要兼容於Perl的正則表達式函數。",
+    "config-pcre-no-utf8": "'''致命錯誤''':PHP的PCRE模塊在編譯時可能沒有包含PCRE_UTF8支持。MediaWiki需要UTF-8支持才能正常工作。",
+    "config-memory-raised": "PHP的內存使用上限<code>memory_limit</code>為$1,自動提升到$2。",
+    "config-memory-bad": "'''警告:'''PHP的內存使用上限<code>memory_limit</code>為$1。該設定可能過低,並導致安裝失敗!",
+    "config-ctype": "'''毀滅性錯誤''':PHP必須有[http://www.php.net/manual/en/ctype.installation.php Ctype 擴展]來支持編譯。",
+    "config-xcache": "[http://xcache.lighttpd.net/ XCache]已安裝",
+    "config-apc": "[http://www.php.net/apc APC]已安裝",
+    "config-wincache": "[http://www.iis.net/download/WinCacheForPhp WinCache]已安裝",
+    "config-no-cache": "'''警告:'''找不到[http://www.php.net/apc APC]、[http://xcache.lighttpd.net/ XCache]或[http://www.iis.net/download/WinCacheForPhp WinCache],無法啟用對象緩存。\nObject 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。縮略圖功能將不可用。",
+    "config-no-uri": "'''錯誤:'''無法確定當前的URI。安裝已中斷。",
+    "config-no-cli-uri": "'''警告''':未指定--scriptpath參數,使用默認值:<code>$1</code>。",
+    "config-using-server": "使用服務器名“<nowiki>$1</nowiki>”。",
+    "config-using-uri": "使用服務器URL“<nowiki>$1$2</nowiki>”。",
+    "config-uploads-not-safe": "'''警告:'''您的默認上傳目錄<code>$1</code>存在允許執行任意腳本的漏洞。儘管MediaWiki會對所有已上傳的文件進行安全檢查,但我們仍然強烈建議您在啟用上傳功能前[//www.mediawiki.org/wiki/Manual:Security#Upload_security 關閉該安全漏洞]。",
+    "config-no-cli-uploads-check": "'''警告''':在CLI安裝過程中,沒有對您的默認上傳目錄(<code>$1</code>)進行執行任意腳本的漏洞檢查。",
+    "config-brokenlibxml": "您的系統安裝的PHP和libxml2版本組合存在故障,並可能在MediaWiki和其他web應用程序中造成隱藏的數據損壞。請將PHP升級到5.2.9或以上,libxml2升級到2.7.3或以上([//bugs.php.net/bug.php?id=45996 PHP的故障報告])。安裝已中斷。",
+    "config-using531": "由於函數<code>__call()</code>的引用參數存在故障,PHP $1和MediaWiki無法兼容。請升級到PHP 5.3.2或更高版本,或降級到PHP 5.3.0以修復該問題。安裝已中斷。",
+    "config-suhosin-max-value-length": "Suhosin已經安裝並將GET請求的參數長度限制在$1字節。MediaWiki的ResourceLoader部件可以在此限制下正常工作,但其性能會被降低。如果可能,請在<code>php.ini</code>中將<code>suhosin.get.max_value_length</code>設為1024或更高值,並在LocalSettings.php中將<code>$wgResourceLoaderMaxQueryLength</code>設為同一值。",
+    "config-db-type": "資料庫類型:",
+    "config-db-host": "資料庫主機:",
+    "config-db-host-help": "如果您的數據庫在別的服務器上,請在這裡輸入它的域名或IP地址。\n\n如果您在使用共享網站套餐,您的網站商應該已在他們的控制面板中給您數據庫信息了。\n\n如果您在Windows中安裝並且使用MySQL,“localhost”可能無效。如果確實無效,請輸入“127.0.0.1”作為IP地址。\n\n如果您在使用PostgreSQL,並且要用Unix socket來連接,請留空。",
+    "config-db-host-oracle": "資料庫的 TNS:",
+    "config-db-host-oracle-help": "請輸入合法的[http://download.oracle.com/docs/cd/B28359_01/network.111/b28317/tnsnames.htm 本地連接名],並確保tnsnames.ora文件對本安裝程序可見。<br />如果您使用的客戶端庫為10g或更新的版本,您還可以使用[http://download.oracle.com/docs/cd/E11882_01/network.112/e10836/naming.htm 簡單連接名方法](easy connect naming method)。",
+    "config-db-wiki-settings": "識別這個 Wiki",
+    "config-db-name": "資料庫名稱:",
+    "config-db-name-help": "請輸入一個可以標識您的wiki的名稱。請勿使用空格。\n\n如果您正在使用共享web主機,您的主機提供商或會給您指定一個數據庫名稱,或會讓您通過控制面板創建數據庫。",
+    "config-db-name-oracle": "資料庫架構:",
+    "config-db-account-oracle-warn": "現有三種已支持方案可以將Oracle設置為後端數據庫:\n\n如果您希望在安裝過程中創建數據庫帳戶,請為安裝程序提供具有SYSDBA角色的數據庫帳戶,並為web訪問帳戶指定所需身份證明;否則您可以手動創建web訪問的賬戶並僅須提供該帳戶(確保帳戶已有創建方案對象(schema object)的所需權限);或提供兩個不同的帳戶,其一具有創建權限,另一則被限制為web訪問。\n\n具有所需權限賬戶的創建腳本存放於本程序的“maintenance/oracle/”目錄下。請注意,使用受限制的帳戶將禁用默認帳戶的所有維護性功能。",
+    "config-db-install-account": "用於安裝的用戶帳號",
+    "config-db-username": "資料庫使用者名稱:",
+    "config-db-password": "資料庫密碼:",
+    "config-db-password-empty": "請為新數據庫用戶$1輸入密碼。儘管您可以創建不使用密碼的用戶,但這樣做並不安全。",
+    "config-db-install-username": "請輸入在安裝過程中用於連接數據庫的用戶名。請勿輸入MediaWiki帳號的用戶名,請輸入您數據庫的用戶名。",
+    "config-db-install-password": "請輸入在安裝過程中用於連接數據庫的密碼。請勿輸入MediaWiki帳號的密碼,請輸入您數據庫的密碼。",
+    "config-db-install-help": "請輸入在安裝過程中用於連接數據庫的用戶名和密碼。",
+    "config-db-account-lock": "在普通操作中使用相同的用戶名和密碼",
+    "config-db-wiki-account": "用於普通操作的用戶帳號",
+    "config-db-wiki-help": "輸入在普通的wiki操作中(安裝完成後)將用於連接數據庫的用戶名和密碼。如果該帳號並不存在,而安裝帳號具有足夠的權限,該用戶帳號會被自動創建,並被賦予足以運行此wiki的最低權限。",
+    "config-db-prefix": "數據庫表前綴:",
+    "config-db-prefix-help": "如果您需要在多個wiki之間(或在MediaWiki與其他web應用程序之間)共享一個數據庫,您可以通過添加前綴的方式來避免出現表名稱的衝突。請勿使用空格。\n\n此字段通常可留空。",
+    "config-db-charset": "數據庫字符集",
+    "config-charset-mysql5-binary": "MySQL 4.1/5.0 二進制",
+    "config-charset-mysql5": "MySQL 4.1/5.0 UTF-8",
+    "config-charset-mysql4": "MySQL 4.0 UTF-8(向後兼容)",
+    "config-charset-help": "'''警告:'''如果您在MySQL 4.1+中使用'''向後兼容的UTF-8'''字符集,並在之後使用<code>mysqldump</code>備份了數據庫,則可能損壞所有的非ASCII字符,從而不可逆地破壞您的備份!\n\n在'''二進制模式'''下,MediaWiki會將UTF-8編碼的文本存於數據庫的二進制字段中。相對於MySQL的UTF-8模式,這種方法效率更高,並允許您使用全範圍的Unicode字符。\n\n在'''UTF-8模式'''下,MySQL將知道您數據使用的字符集,並能適當地提供和轉換內容。但這樣做您將無法在數據庫中存儲[//zh.wikipedia.org/wiki/基本多文種平面 基本多文種平面]以外的字符。",
+    "config-mysql-old": "需要MySQL $1或更新的版本,您的版本為$2。",
+    "config-db-port": "數據庫端口:",
+    "config-db-schema": "MediaWiki的數據庫模式",
+    "config-db-schema-help": "此數據庫模式通常是正確的,請在有明確需求時才改動之。",
+    "config-pg-test-error": "無法連接到數據庫'''$1''':$2",
+    "config-sqlite-dir": "SQLite 的資料目錄:",
+    "config-sqlite-dir-help": "SQLite會將所有的數據存儲於單一文件中。\n\n您所提供的目錄必須在安裝過程中對網頁服務器可寫。\n\n該目錄'''不應'''允許通過web訪問,因此我們不會將數據文件和PHP文件放在一起。\n\n安裝程序在創建數據文件時,亦會在相同目錄下創建<code>.htaccess</code>以控制權限。假若此等控制失效,則可能會將您的數據文件暴露於公共空間,讓他人可以獲取用戶數據(電子郵件地址、雜湊後的密碼)、被刪除的版本以及其他在wiki上被限制訪問的數據。\n\n請考慮將數據庫統一放置在某處,如<code>/var/lib/mediawiki/yourwiki</code>下。",
+    "config-oracle-def-ts": "默認表空間:",
+    "config-oracle-temp-ts": "臨時表空間:",
+    "config-support-info": "MediaWiki支持以下數據庫系統:\n\n$1\n\n如果您在下面列出的數據庫系統中沒有找到您希望使用的系統,請根據上方鏈向的指引啟用支持。",
+    "config-support-mysql": "* $1是MediaWiki的首選數據庫,對它的支持最為完備([http://www.php.net/manual/en/mysql.installation.php 如何將對MySQL的支持編譯進PHP中])",
+    "config-support-postgres": "* $1是一種流行的開源數據庫系統,可作為MySQL的替代([http://www.php.net/manual/en/pgsql.installation.php 如何將對PostgreSQL的支持編譯進PHP中])。本程序中可能依然存在一些小而明顯的錯誤,因此並不建議在生產環境中使用該數據庫系統。",
+    "config-support-sqlite": "* $1是一種輕量級的數據庫系統,能被良好地支持。([http://www.php.net/manual/en/pdo.installation.php 如何將對SQLite的支持編譯進PHP中],須使用PDO)",
+    "config-support-oracle": "* $1是一種商用企業級的數據庫。([http://www.php.net/manual/en/oci8.installation.php 如何將對OCI8的支持編譯進PHP中])",
+    "config-header-mysql": "MySQL 的設定",
+    "config-header-postgres": "PostgreSQL設置",
+    "config-header-sqlite": "SQLite 的設定",
+    "config-header-oracle": "甲骨文設定",
+    "config-invalid-db-type": "無效的資料庫類型",
+    "config-missing-db-name": "您必須為“數據庫名稱”輸入內容",
+    "config-missing-db-host": "您必須為“數據庫主機”輸入內容",
+    "config-missing-db-server-oracle": "您必須為“數據庫透明網絡底層(TNS)”輸入內容",
+    "config-invalid-db-server-oracle": "無效的數據庫TNS「$1」。\n請只使用「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。\n\n請檢查下列的主機、用戶名和密碼設置後重試。",
+    "config-invalid-schema": "無效的MediaWiki數據庫模式“$1”。請只使用ASCII字母(a-z、A-Z)、數字(0-9)和下劃線(_)。",
+    "config-db-sys-create-oracle": "安裝程序僅支持使用SYSDBA帳戶創建新帳戶。",
+    "config-db-sys-user-exists-oracle": "用戶帳戶“$1”已經存在。SYSDBA僅可用於創建新帳戶!",
+    "config-postgres-old": "需要PostgreSQL $1或更新的版本,您的版本為$2。",
+    "config-sqlite-name-help": "請為您的wiki指定一個用於標識的名稱。請勿使用空格或連字號,該名稱將被用作SQLite的數據文件名。",
+    "config-sqlite-parent-unwritable-group": "由於父目錄<code><nowiki>$2</nowiki></code>對網頁服務器不可寫,無法創建數據目錄<code><nowiki>$1</nowiki></code>。\n\n安裝程序已確定您網頁服務器所使用的用戶。請將<code><nowiki>$3</nowiki></code>目錄設為對該用戶可寫以繼續安裝過程。在Unix/Linux系統中,您可以逐行輸入下列命令:\n\n<pre>cd $2\nmkdir $3\nchgrp $4 $3\nchmod g+w $3</pre>",
+    "config-sqlite-parent-unwritable-nogroup": "由於父目錄<code><nowiki>$2</nowiki></code>對網頁服務器不可寫,無法創建數據目錄<code><nowiki>$1</nowiki></code>。\n\n安裝程序無法確定您網頁服務器所使用的用戶。請將<code><nowiki>$3</nowiki></code>目錄設為全局可寫(對所有用戶)以繼續安裝過程。在Unix/Linux系統中,您可以逐行輸入下列命令:\n\n<pre>cd $2\nmkdir $3\nchmod a+w $3</pre>",
+    "config-sqlite-mkdir-error": "創建數據目錄“$1”時發生錯誤。請檢查路徑後重試。",
+    "config-sqlite-dir-unwritable": "無法寫入目錄“$1”。請修改該目錄的權限,使其對網頁服務器可寫後重試。",
+    "config-sqlite-connection-error": "$1。\n\n請檢查下列的數據目錄和數據庫名稱後重試。",
+    "config-sqlite-readonly": "文件<code>$1</code>不可寫。",
+    "config-sqlite-cant-create-db": "無法創建數據文件<code>$1</code>。",
+    "config-sqlite-fts3-downgrade": "PHP缺少FTS3支持,正在降級數據表",
+    "config-can-upgrade": "在數據庫中發現了MediaWiki的數據表。要將它們升級至MediaWiki $1,請點擊'''繼續'''。",
+    "config-upgrade-done": "升級完成。\n\n現在您可以[$1 開始使用您的wiki]了。\n\n如果您需要重新生成<code>LocalSettings.php</code>文件,請點擊下面的按鈕。除非您的wiki出現了問題,我們'''不推薦'''您執行此操作。",
+    "config-upgrade-done-no-regenerate": "升級完成。\n\n現在您可以[$1 開始使用您的wiki]了。",
+    "config-regenerate": "重新生成LocalSettings.php →",
+    "config-show-table-status": "查詢<code>SHOW TABLE STATUS</code>失敗!",
+    "config-unknown-collation": "'''警告:'''數據庫使用了無法識別的整理。",
+    "config-db-web-account": "供網頁訪問使用的數據庫帳號",
+    "config-db-web-help": "請指定在wiki執行普通操作時,網頁服務器用於連接數據庫服務器的用戶名和密碼。",
+    "config-db-web-account-same": "使用和安裝程序相同的帳號",
+    "config-db-web-create": "建立帳號,如果它不存在",
+    "config-db-web-no-create-privs": "您指定給安裝程序的帳號缺少創建帳號的權限,因此您指定的帳號必須已經存在。",
+    "config-mysql-engine": "存儲引擎:",
+    "config-mysql-innodb": "InnoDB",
+    "config-mysql-myisam": "MyISAM",
+    "config-mysql-myisam-dep": "'''警告''':您選擇了MyISAM作為MySQL的存儲引擎,MediaWiki並不推薦您這麼做,因為:\n* 它僅能通過表鎖定來勉強支持並發\n* 與其他引擎相比,它更容易被損壞\n* MediaWiki代碼庫並不總會去處理MyISAM\n\n如果您的MySQL程序支持InnoDB,我們高度推薦您使用該引擎替代MyISAM。\n如果您的MySQL程序不支持InnoDB,請考慮升級。",
+    "config-mysql-engine-help": "'''InnoDB'''通常是最佳選項,因為它對並發操作有着良好的支持。\n\n'''MyISAM'''在單用戶或只讀環境下可能會有更快的性能表現。但MyISAM數據庫出錯的概率一般要大於InnoDB數據庫。",
+    "config-mysql-charset": "資料庫字符集:",
+    "config-mysql-binary": "二進制",
+    "config-mysql-utf8": "UTF-8",
+    "config-mysql-charset-help": "在'''二進制模式'''下,MediaWiki會將UTF-8編碼的文本存於數據庫的二進制字段中。相對於MySQL的UTF-8模式,這種方法效率更高,並允許您使用全範圍的Unicode字符。\n\n在'''UTF-8模式'''下,MySQL將知道您數據使用的字符集,並能適當地提供和轉換內容。但這樣做您將無法在數據庫中存儲[//zh.wikipedia.org/wiki/基本多文種平面 基本多文種平面]以外的字符。",
+    "config-site-name": "Wiki的名稱:",
+    "config-site-name-help": "填入的內容會出現在瀏覽器的標題欄以及其他多處位置中。",
+    "config-site-name-blank": "輸入站點名稱。",
+    "config-project-namespace": "項目名字空間:",
+    "config-ns-generic": "項目",
+    "config-ns-site-name": "與wiki名稱相同:$1",
+    "config-ns-other": "其他(請註明)",
+    "config-ns-other-default": "我的Wiki",
+    "config-project-namespace-help": "依循維基百科形成的慣例,許多wiki將他們的方針頁面存放在與內容頁面不同的“'''項目名字空間'''”中。所有位於該名字空間下的頁面標題都會被冠以固定的前綴,您可以在此處指定這一前綴。傳統上,這一前綴應與wiki的命名保持一致,但請勿在其中使用標點符號,如“#”或“:”。",
+    "config-ns-invalid": "指定的名字空間“<nowiki>$1</nowiki>”無效,請為項目名字空間指定其他名稱。",
+    "config-ns-conflict": "指定的名字空間“<nowiki>$1</nowiki>”與默認的MediaWiki名字空間衝突。請指定一個不同的項目名字空間。",
+    "config-admin-box": "管理員帳號",
+    "config-admin-name": "您的名字:",
+    "config-admin-password": "密碼:",
+    "config-admin-password-confirm": "再次輸入密碼:",
+    "config-admin-help": "在此輸入您想使用的用戶名,例如“喬幫主”。您將使用該名稱登錄本wiki。",
+    "config-admin-name-blank": "輸入管理員的使用者名稱。",
+    "config-admin-name-invalid": "指定的用戶名“<nowiki>$1</nowiki>”無效,請指定其他用戶名。",
+    "config-admin-password-blank": "輸入管理員帳號密碼。",
+    "config-admin-password-same": "密碼不能與使用者名稱相同。",
+    "config-admin-password-mismatch": "兩次輸入的密碼並不相同。",
+    "config-admin-email": "電郵地址:",
+    "config-admin-email-help": "輸入電子郵件地址後,您可以收到此wiki上其他用戶發來的電子郵件,並能重置您的密碼,還可在監視列表中頁面被更改時收到郵件通知。您可以將此字段留空。",
+    "config-admin-error-user": "在創建用戶名為“<nowiki>$1</nowiki>”的管理員帳號時發生內部錯誤。",
+    "config-admin-error-password": "在為管理員“<nowiki>$1</nowiki>”設置密碼時發生內部錯誤:<pre>$2</pre>",
+    "config-admin-error-bademail": "你輸入了一個無效的電子郵件地址。",
+    "config-subscribe": "訂閱[https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce 發行公告郵件列表]。",
+    "config-subscribe-help": "此低流量的郵件列表僅用於發行公告,其中包括重要安全公告。請訂閱該列表以便在新的版本推出時升級您的MediaWiki。",
+    "config-subscribe-noemail": "您選擇了訂閱發行公告郵件列表,但沒有提供電子郵件地址。請提供一個電子郵件地址以訂閱郵件列表。",
+    "config-almost-done": "您幾乎已經完成了!現在您可以跳過剩下的配置流程並立即安裝wiki。",
+    "config-optional-continue": "多問我一些問題吧。",
+    "config-optional-skip": "我已經不耐煩了,趕緊安裝我的wiki。",
+    "config-profile": "用戶權限配置:",
+    "config-profile-wiki": "開放的wiki",
+    "config-profile-no-anon": "需要註冊帳號",
+    "config-profile-fishbowl": "編輯受限",
+    "config-profile-private": "非公開wiki",
+    "config-profile-help": "如果您允許盡量多的人編寫wiki,網站上的內容會更加豐富。在MediaWiki中,您可以輕鬆地審查最近更改,並輕易回退掉新手或破壞者造成的損害。\n\n然而,許多人覺得讓MediaWiki存在多種角色將更加好用;同時,要說服所有人都願以wiki的方式作貢獻並非一件易事。因此,您可以有以下選擇:\n\n'''{{int:config-profile-wiki}}'''允許包括未登錄用戶在內的所有人編輯。'''{{int:config-profile-no-anon}}'''的wiki需要額外的註冊流程,這有可能會阻礙隨意貢獻者。\n\n'''{{int:config-profile-fishbowl}}'''模式只允許獲批准的用戶編輯,但對公眾開放頁面瀏覽(包括歷史記錄)。'''{{int:config-profile-private}}'''則只允許獲批准的用戶瀏覽、編輯頁面。\n\n安裝完成後,您還可以對用戶權限進行更多、更複雜的配置,參見[//www.mediawiki.org/wiki/Manual:User_rights 相關的使用手冊]。",
+    "config-license": "版權和許可證:",
+    "config-license-none": "頁腳無許可證",
+    "config-license-cc-by-sa": "知識共享署名-相同方式分享",
+    "config-license-cc-by": "知識共享署名",
+    "config-license-cc-by-nc-sa": "知識共享署名-非商業性使用-相同方式共享",
+    "config-license-cc-0": "知識共享Zero(公有領域)",
+    "config-license-gfdl": "GNU自由文檔許可證1.3或更高版本",
+    "config-license-pd": "公共領域",
+    "config-license-cc-choose": "選擇自定義的知識共享許可證",
+    "config-license-help": "許多公共wiki會以[http://freedomdefined.org/Definition 自由許可證]的方式釋放出編者的所有貢獻。這有助於構建社區的主人翁意識,並能鼓勵長期貢獻。對於非公共wiki或公司wiki,這並非必要條件。\n\n如果您希望使用來自維基百科的內容,並希望維基百科能接受複製自您的wiki的內容,請選擇'''知識共享署名-相同方式共享'''。\n\nGNU自由文檔許可證是維基百科曾經使用過的許可證,並迄今有效。然而,該許可證難以理解,並會增加重用內容的難度。",
+    "config-email-settings": "E-mail 設定",
+    "config-enable-email": "啟用出站電子郵件",
+    "config-enable-email-help": "如果您希望使用電子郵件功能,請正確配置[http://www.php.net/manual/en/mail.configuration.php PHP的郵件設定]。如果您不需要任何電子郵件功能,請在此處禁用它。",
+    "config-email-user": "啟用用戶到用戶的電子郵件",
+    "config-email-user-help": "允許所有用戶互發郵件,假若他們啟用了該功能。",
+    "config-email-usertalk": "啟用用戶討論頁通知",
+    "config-email-usertalk-help": "允許用戶收到用戶討論頁被修改的通知,假若他們啟用了該功能。",
+    "config-email-watchlist": "啟用監視列表通知",
+    "config-email-watchlist-help": "允許用戶收到與其監視列表有關的通知,假若他們啟用了該功能。",
+    "config-email-auth": "啟用電子郵件認證",
+    "config-email-auth-help": "如果啟用此選項,在用戶設置或修改電子郵件地址時,就會收到一封郵件,內含確認電子地址的鏈接。只有經過身份驗證的電子郵件地址,才能收到來自其他用戶的電子郵件,或任何修改通知的郵件。'''建議'''公開wiki啟用本選項,以防對電子郵件功能的濫用。",
+    "config-email-sender": "返回電子郵件地址:",
+    "config-email-sender-help": "輸入要用來發送出站電子郵件的地址,該地址將會收到被拒收的郵件。許多郵件服務器要求域名部分必須有效。",
+    "config-upload-settings": "圖片和檔案上傳",
+    "config-upload-enable": "啟用檔案上傳",
+    "config-upload-help": "文件上傳可能會將您的服務器暴露在安全風險下。有關更多的信息,請參閱手冊的[//www.mediawiki.org/wiki/Manual:Security 安全部分]。\n\n要啟用文件上傳,請先將MediaWiki根目錄下的<code>images</code>子目錄更改為對web服務器可寫,然後再啟用此選項。",
+    "config-upload-deleted": "已刪除文件的目錄:",
+    "config-upload-deleted-help": "指定用於存放被刪除文件的目錄。理想情況下,該目錄不應能通過web訪問。",
+    "config-logo": "標誌URL:",
+    "config-logo-help": "在MediaWiki的默認外觀中,左側欄菜單之上有一塊135x160像素的標誌區。請上傳一幅相應大小的圖像,並在此輸入URL。\n\n如果您不希望使用標誌,請將本處留空。",
+    "config-instantcommons": "啟用即時共享資源",
+    "config-instantcommons-help": "[//www.mediawiki.org/wiki/InstantCommons 即時共享資源]可以讓wiki使用來自[//commons.wikimedia.org/ 維基共享資源]網站的圖像、音頻和其他媒體文件。要啟用該功能,MediaWiki必須能夠訪問互聯網。\n\n有關此功能的詳細信息,包括如何將其他wiki網站設為具有類似共享功能的方法,請參考[//mediawiki.org/wiki/Manual:$wgForeignFileRepos 手冊]。",
+    "config-cc-error": "知識共享許可證挑選器無法找到結果,請手動輸入許可證的名稱。",
+    "config-cc-again": "重新選取......",
+    "config-cc-not-chosen": "選擇您希望使用的知識共享許可證,並點擊“繼續”。",
+    "config-advanced-settings": "進階配置",
+    "config-cache-options": "對象緩存設置:",
+    "config-cache-help": "對象緩存可通過緩存頻繁使用的數據來提高MediaWiki的速度。高度推薦中到大型的網站啟用該功能,小型網站亦能從其中受益。",
+    "config-cache-none": "無緩存(不影響功能,但對較大型的wiki網站會有速度影響)",
+    "config-cache-accel": "PHP對象緩存(APC、XCache或WinCache)",
+    "config-cache-memcached": "使用Memcached(需要另外安裝並配置)",
+    "config-memcached-servers": "Memcached服務器:",
+    "config-memcached-help": "用於Memcached的IP地址列表。請保持每行一條,並指定要使用的端口。例如:\n127.0.0.1:11211\n192.168.1.25:1234",
+    "config-memcache-needservers": "您選擇了Memcached作為您的緩存,但並未指定任何服務器。",
+    "config-memcache-badip": "您為Memcached輸入了無效的IP地址:$1。",
+    "config-memcache-noport": "您沒有指定Memcached服務器的端口:$1。如果您不清楚端口是多少,默認值為11211。",
+    "config-memcache-badport": "Memcached的端口號應該在$1到$2之間。",
+    "config-extensions": "擴充套件",
+    "config-extensions-help": "已在您的<code>./extensions</code>目錄中發現下列擴展。\n\n您可能要對它們進行額外的配置,但您現在可以啟用它們。",
+    "config-install-alreadydone": "'''警告:'''您似乎已經安裝了MediaWiki,並試圖重新安裝它。請前往下一個頁面。",
+    "config-install-begin": "點擊“{{int:config-continue}}”後,您將開始安裝MediaWiki。如果您還想對配置作一些修改,請點擊後退。",
+    "config-install-step-done": "完成",
+    "config-install-step-failed": "失敗",
+    "config-install-extensions": "正在啟用擴展",
+    "config-install-database": "正在配置數據庫",
+    "config-install-schema": "創建架構",
+    "config-install-pg-schema-not-exist": "PostgreSQL 架構不存在",
+    "config-install-pg-schema-failed": "創建數據表失敗。請確保用戶“$1”擁有寫入模式“$2”的權限。",
+    "config-install-pg-commit": "提交更改",
+    "config-install-pg-plpgsql": "正在檢查PL/pgSQL語言",
+    "config-pg-no-plpgsql": "您需要為數據庫$1安裝PL/pgSQL語言",
+    "config-pg-no-create-privs": "為安裝程序指定的帳號缺少創建帳號的權限。",
+    "config-pg-not-in-role": "您指定為web用戶的帳戶已經存在。\n您給本程序指定的帳戶不是超級用戶,也不是web用戶角色的成員,所以它不能創建web用戶所擁有的對象。\n\nMediaWiki當前需要使用由web用戶所有的表。請指定另一個web帳戶名稱,或點擊“後退”並指定具有適當權限的安裝用戶。",
+    "config-install-user": "正在創建數據庫用戶",
+    "config-install-user-alreadyexists": "用戶“$1”已存在",
+    "config-install-user-create-failed": "創建用戶“$1”失敗:$2",
+    "config-install-user-grant-failed": "授予用戶“$1”權限失敗:$2",
+    "config-install-user-missing": "指定的用戶“$1”不存在。",
+    "config-install-user-missing-create": "指定的用戶“$1”不存在。如果您想要創建一名,請點選“創建帳戶”下面的複選框。",
+    "config-install-tables": "正在創建數據表",
+    "config-install-tables-exist": "'''警告''':MediaWiki的數據表似乎已經存在,跳過創建。",
+    "config-install-tables-failed": "'''錯誤''':創建數據表出錯,下為錯誤信息:$1",
+    "config-install-interwiki": "正在填充默認的跨wiki數據表",
+    "config-install-interwiki-list": "找不到文件<code>interwiki.list</code>。",
+    "config-install-interwiki-exists": "'''警告''':跨wiki數據表似乎已有內容,跳過默認列表。",
+    "config-install-stats": "初始化統計",
+    "config-install-keys": "生成密鑰中",
+    "config-insecure-keys": "'''警告''':在安裝過程中生成的{{PLURAL:$2|安全密鑰|安全密鑰}}($1){{PLURAL:$2|並|並}}不一定安全。請考慮手動更改{{PLURAL:$2|它|它們}}。",
+    "config-install-sysop": "正在創建管理員用戶帳號",
+    "config-install-subscribe-fail": "無法訂閱mediawiki-announce:$1",
+    "config-install-subscribe-notpossible": "沒有安裝cURL,allow_url_fopen也不可用。",
+    "config-install-mainpage": "正在創建顯示默認內容的首頁",
+    "config-install-extension-tables": "正在為已啟用擴展創建數據表",
+    "config-install-mainpage-failed": "無法插入首頁:$1",
+    "config-install-done": "'''恭喜!'''\n您已經成功地安裝了MediaWiki。\n\n安裝程序已經生成了<code>LocalSettings.php</code>文件,其中包含了您所有的配置。\n\n您需要下載該文件,並將其放在您wiki的根目錄(index.php的同級目錄)中。稍後下載將自動開始。\n\n如果瀏覽器沒有提示您下載,或者您取消了下載,您可以點擊下面的鏈接重新開始下載:\n\n$3\n\n'''注意''':如果您現在不完成本步驟,而是沒有下載便退出了安裝過程,此後您將無法獲得自動生成的配置文件。\n\n當本步驟完成後,您可以 '''[$2 進入您的wiki]'''。",
+    "config-download-localsettings": "下載<code>LocalSettings.php</code>",
+    "config-help": "說明",
+    "mainpagetext": "'''已成功安裝MediaWiki。'''",
+    "mainpagedocfooter": "請參閱[//meta.wikimedia.org/wiki/Help:Contents 用戶手冊]以獲得使用此wiki軟體的訊息!\n\n== 入門 ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki配置設定清單]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki常見問題解答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki發佈郵件清單]\n* [//www.mediawiki.org/wiki/Localisation#Translation_resources MediaWiki界面本地化]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/zh-hk.json b/includes/installer/i18n/zh-hk.json
new file mode 100644 (file)
index 0000000..e8ed310
--- /dev/null
@@ -0,0 +1,8 @@
+{
+    "@metadata": {
+        "authors": [
+            "Mark85296341"
+        ]
+    },
+    "mainpagedocfooter": "請參閱[//meta.wikimedia.org/wiki/Help:Contents 用戶手冊]以獲得使用此 wiki 軟件的訊息!\n\n== 入門 ==\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置設定清單]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki 常見問題解答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈郵件清單]"
+}
\ No newline at end of file
diff --git a/includes/installer/i18n/zh-tw.json b/includes/installer/i18n/zh-tw.json
new file mode 100644 (file)
index 0000000..881001d
--- /dev/null
@@ -0,0 +1,6 @@
+{
+    "@metadata": {
+        "authors": []
+    },
+    "mainpagedocfooter": "請參閱 [//meta.wikimedia.org/wiki/Help:Contents 使用者手冊] 以獲得使用此 wiki 軟體的訊息!\n\n== 入門 ==\n\n* [//www.mediawiki.org/wiki/Manual:Configuration_settings MediaWiki 配置設定清單]\n* [//www.mediawiki.org/wiki/Manual:FAQ MediaWiki 常見問題解答]\n* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki 發佈郵件清單]"
+}
\ No newline at end of file
diff --git a/includes/job/Job.php b/includes/job/Job.php
deleted file mode 100644 (file)
index 5fc1e06..0000000
+++ /dev/null
@@ -1,330 +0,0 @@
-<?php
-/**
- * Job queue task base 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
- * 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
- * @defgroup JobQueue JobQueue
- */
-
-/**
- * Class to both describe a background job and handle jobs.
- * The queue aspects of this class are now deprecated.
- * Using the class to push jobs onto queues is deprecated (use JobSpecification).
- *
- * @ingroup JobQueue
- */
-abstract class Job implements IJobSpecification {
-       /** @var string */
-       public $command;
-
-       /** @var array|bool Array of job parameters or false if none */
-       public $params;
-
-       /** @var array Additional queue metadata */
-       public $metadata = array();
-
-       /** @var Title */
-       protected $title;
-
-       /** @var bool Expensive jobs may set this to true */
-       protected $removeDuplicates;
-
-       /** @var string Text for error that occurred last */
-       protected $error;
-
-       /*-------------------------------------------------------------------------
-        * Abstract functions
-        *------------------------------------------------------------------------*/
-
-       /**
-        * Run the job
-        * @return bool Success
-        */
-       abstract public function run();
-
-       /*-------------------------------------------------------------------------
-        * Static functions
-        *------------------------------------------------------------------------*/
-
-       /**
-        * Create the appropriate object to handle a specific job
-        *
-        * @param string $command Job command
-        * @param Title $title Associated title
-        * @param array|bool $params Job parameters
-        * @throws MWException
-        * @return Job
-        */
-       public static function factory( $command, Title $title, $params = false ) {
-               global $wgJobClasses;
-               if ( isset( $wgJobClasses[$command] ) ) {
-                       $class = $wgJobClasses[$command];
-
-                       return new $class( $title, $params );
-               }
-               throw new MWException( "Invalid job command `{$command}`" );
-       }
-
-       /**
-        * Batch-insert a group of jobs into the queue.
-        * This will be wrapped in a transaction with a forced commit.
-        *
-        * This may add duplicate at insert time, but they will be
-        * removed later on, when the first one is popped.
-        *
-        * @param array $jobs of Job objects
-        * @return bool
-        * @deprecated since 1.21
-        */
-       public static function batchInsert( $jobs ) {
-               return JobQueueGroup::singleton()->push( $jobs );
-       }
-
-       /**
-        * Insert a group of jobs into the queue.
-        *
-        * Same as batchInsert() but does not commit and can thus
-        * be rolled-back as part of a larger transaction. However,
-        * large batches of jobs can cause slave lag.
-        *
-        * @param array $jobs of Job objects
-        * @return bool
-        * @deprecated since 1.21
-        */
-       public static function safeBatchInsert( $jobs ) {
-               return JobQueueGroup::singleton()->push( $jobs, JobQueue::QOS_ATOMIC );
-       }
-
-       /**
-        * Pop a job of a certain type.  This tries less hard than pop() to
-        * actually find a job; it may be adversely affected by concurrent job
-        * runners.
-        *
-        * @param $type string
-        * @return Job|bool Returns false if there are no jobs
-        * @deprecated since 1.21
-        */
-       public static function pop_type( $type ) {
-               return JobQueueGroup::singleton()->get( $type )->pop();
-       }
-
-       /**
-        * Pop a job off the front of the queue.
-        * This is subject to $wgJobTypesExcludedFromDefaultQueue.
-        *
-        * @return Job|bool False if there are no jobs
-        * @deprecated since 1.21
-        */
-       public static function pop() {
-               return JobQueueGroup::singleton()->pop();
-       }
-
-       /*-------------------------------------------------------------------------
-        * Non-static functions
-        *------------------------------------------------------------------------*/
-
-       /**
-        * @param $command
-        * @param $title
-        * @param $params array|bool
-        */
-       public function __construct( $command, $title, $params = false ) {
-               $this->command = $command;
-               $this->title = $title;
-               $this->params = $params;
-
-               // expensive jobs may set this to true
-               $this->removeDuplicates = false;
-       }
-
-       /**
-        * @return string
-        */
-       public function getType() {
-               return $this->command;
-       }
-
-       /**
-        * @return Title
-        */
-       public function getTitle() {
-               return $this->title;
-       }
-
-       /**
-        * @return array
-        */
-       public function getParams() {
-               return $this->params;
-       }
-
-       /**
-        * @return int|null UNIX timestamp to delay running this job until, otherwise null
-        * @since 1.22
-        */
-       public function getReleaseTimestamp() {
-               return isset( $this->params['jobReleaseTimestamp'] )
-                       ? wfTimestampOrNull( TS_UNIX, $this->params['jobReleaseTimestamp'] )
-                       : null;
-       }
-
-       /**
-        * @return bool Whether only one of each identical set of jobs should be run
-        */
-       public function ignoreDuplicates() {
-               return $this->removeDuplicates;
-       }
-
-       /**
-        * @return bool Whether this job can be retried on failure by job runners
-        * @since 1.21
-        */
-       public function allowRetries() {
-               return true;
-       }
-
-       /**
-        * @return integer Number of actually "work items" handled in this job
-        * @see $wgJobBackoffThrottling
-        * @since 1.23
-        */
-       public function workItemCount() {
-               return 1;
-       }
-
-       /**
-        * Subclasses may need to override this to make duplication detection work.
-        * The resulting map conveys everything that makes the job unique. This is
-        * only checked if ignoreDuplicates() returns true, meaning that duplicate
-        * jobs are supposed to be ignored.
-        *
-        * @return array Map of key/values
-        * @since 1.21
-        */
-       public function getDeduplicationInfo() {
-               $info = array(
-                       'type' => $this->getType(),
-                       'namespace' => $this->getTitle()->getNamespace(),
-                       'title' => $this->getTitle()->getDBkey(),
-                       'params' => $this->getParams()
-               );
-               if ( is_array( $info['params'] ) ) {
-                       // Identical jobs with different "root" jobs should count as duplicates
-                       unset( $info['params']['rootJobSignature'] );
-                       unset( $info['params']['rootJobTimestamp'] );
-                       // Likewise for jobs with different delay times
-                       unset( $info['params']['jobReleaseTimestamp'] );
-               }
-
-               return $info;
-       }
-
-       /**
-        * @see JobQueue::deduplicateRootJob()
-        * @param string $key A key that identifies the task
-        * @return array Map of:
-        *   - rootJobSignature : hash (e.g. SHA1) that identifies the task
-        *   - rootJobTimestamp : TS_MW timestamp of this instance of the task
-        * @since 1.21
-        */
-       public static function newRootJobParams( $key ) {
-               return array(
-                       'rootJobSignature' => sha1( $key ),
-                       'rootJobTimestamp' => wfTimestampNow()
-               );
-       }
-
-       /**
-        * @see JobQueue::deduplicateRootJob()
-        * @return array
-        * @since 1.21
-        */
-       public function getRootJobParams() {
-               return array(
-                       'rootJobSignature' => isset( $this->params['rootJobSignature'] )
-                               ? $this->params['rootJobSignature']
-                               : null,
-                       'rootJobTimestamp' => isset( $this->params['rootJobTimestamp'] )
-                               ? $this->params['rootJobTimestamp']
-                               : null
-               );
-       }
-
-       /**
-        * @see JobQueue::deduplicateRootJob()
-        * @return bool
-        * @since 1.22
-        */
-       public function hasRootJobParams() {
-               return isset( $this->params['rootJobSignature'] )
-                       && isset( $this->params['rootJobTimestamp'] );
-       }
-
-       /**
-        * Insert a single job into the queue.
-        * @return bool true on success
-        * @deprecated since 1.21
-        */
-       public function insert() {
-               return JobQueueGroup::singleton()->push( $this );
-       }
-
-       /**
-        * @return string
-        */
-       public function toString() {
-               $paramString = '';
-               if ( $this->params ) {
-                       foreach ( $this->params as $key => $value ) {
-                               if ( $paramString != '' ) {
-                                       $paramString .= ' ';
-                               }
-                               if ( is_array( $value ) ) {
-                                       $value = "array(" . count( $value ) . ")";
-                               } elseif ( is_object( $value ) && !method_exists( $value, '__toString' ) ) {
-                                       $value = "object(" . get_class( $value ) . ")";
-                               }
-                               $value = (string)$value;
-                               if ( mb_strlen( $value ) > 1024 ) {
-                                       $value = "string(" . mb_strlen( $value ) . ")";
-                               }
-
-                               $paramString .= "$key=$value";
-                       }
-               }
-
-               if ( is_object( $this->title ) ) {
-                       $s = "{$this->command} " . $this->title->getPrefixedDBkey();
-                       if ( $paramString !== '' ) {
-                               $s .= ' ' . $paramString;
-                       }
-
-                       return $s;
-               } else {
-                       return "{$this->command} $paramString";
-               }
-       }
-
-       protected function setLastError( $error ) {
-               $this->error = $error;
-       }
-
-       public function getLastError() {
-               return $this->error;
-       }
-}
diff --git a/includes/job/JobQueue.php b/includes/job/JobQueue.php
deleted file mode 100644 (file)
index a537861..0000000
+++ /dev/null
@@ -1,745 +0,0 @@
-<?php
-/**
- * Job queue base 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
- * 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
- * @defgroup JobQueue JobQueue
- * @author Aaron Schulz
- */
-
-/**
- * Class to handle enqueueing and running of background jobs
- *
- * @ingroup JobQueue
- * @since 1.21
- */
-abstract class JobQueue {
-       /** @var string Wiki ID */
-       protected $wiki;
-
-       /** @var string Job type */
-       protected $type;
-
-       /** @var string Job priority for pop() */
-       protected $order;
-
-       /** @var int Time to live in seconds */
-       protected $claimTTL;
-
-       /** @var int Maximum number of times to try a job */
-       protected $maxTries;
-
-       /** @var bool Allow delayed jobs */
-       protected $checkDelay;
-
-       /** @var BagOStuff */
-       protected $dupCache;
-
-       const QOS_ATOMIC = 1; // integer; "all-or-nothing" job insertions
-
-       const ROOTJOB_TTL = 2419200; // integer; seconds to remember root jobs (28 days)
-
-       /**
-        * @param array $params
-        * @throws MWException
-        */
-       protected function __construct( array $params ) {
-               $this->wiki = $params['wiki'];
-               $this->type = $params['type'];
-               $this->claimTTL = isset( $params['claimTTL'] ) ? $params['claimTTL'] : 0;
-               $this->maxTries = isset( $params['maxTries'] ) ? $params['maxTries'] : 3;
-               if ( isset( $params['order'] ) && $params['order'] !== 'any' ) {
-                       $this->order = $params['order'];
-               } else {
-                       $this->order = $this->optimalOrder();
-               }
-               if ( !in_array( $this->order, $this->supportedOrders() ) ) {
-                       throw new MWException( __CLASS__ . " does not support '{$this->order}' order." );
-               }
-               $this->checkDelay = !empty( $params['checkDelay'] );
-               if ( $this->checkDelay && !$this->supportsDelayedJobs() ) {
-                       throw new MWException( __CLASS__ . " does not support delayed jobs." );
-               }
-               $this->dupCache = wfGetCache( CACHE_ANYTHING );
-       }
-
-       /**
-        * Get a job queue object of the specified type.
-        * $params includes:
-        *   - class      : What job class to use (determines job type)
-        *   - wiki       : wiki ID of the wiki the jobs are for (defaults to current wiki)
-        *   - type       : The name of the job types this queue handles
-        *   - order      : Order that pop() selects jobs, one of "fifo", "timestamp" or "random".
-        *                  If "fifo" is used, the queue will effectively be FIFO. Note that job
-        *                  completion will not appear to be exactly FIFO if there are multiple
-        *                  job runners since jobs can take different times to finish once popped.
-        *                  If "timestamp" is used, the queue will at least be loosely ordered
-        *                  by timestamp, allowing for some jobs to be popped off out of order.
-        *                  If "random" is used, pop() will pick jobs in random order.
-        *                  Note that it may only be weakly random (e.g. a lottery of the oldest X).
-        *                  If "any" is choosen, the queue will use whatever order is the fastest.
-        *                  This might be useful for improving concurrency for job acquisition.
-        *   - claimTTL   : If supported, the queue will recycle jobs that have been popped
-        *                  but not acknowledged as completed after this many seconds. Recycling
-        *                  of jobs simple means re-inserting them into the queue. Jobs can be
-        *                  attempted up to three times before being discarded.
-        *   - checkDelay : If supported, respect Job::getReleaseTimestamp() in the push functions.
-        *                  This lets delayed jobs wait in a staging area until a given timestamp is
-        *                  reached, at which point they will enter the queue. If this is not enabled
-        *                  or not supported, an exception will be thrown on delayed job insertion.
-        *
-        * Queue classes should throw an exception if they do not support the options given.
-        *
-        * @param array $params
-        * @return JobQueue
-        * @throws MWException
-        */
-       final public static function factory( array $params ) {
-               $class = $params['class'];
-               if ( !class_exists( $class ) ) {
-                       throw new MWException( "Invalid job queue class '$class'." );
-               }
-               $obj = new $class( $params );
-               if ( !( $obj instanceof self ) ) {
-                       throw new MWException( "Class '$class' is not a " . __CLASS__ . " class." );
-               }
-
-               return $obj;
-       }
-
-       /**
-        * @return string Wiki ID
-        */
-       final public function getWiki() {
-               return $this->wiki;
-       }
-
-       /**
-        * @return string Job type that this queue handles
-        */
-       final public function getType() {
-               return $this->type;
-       }
-
-       /**
-        * @return string One of (random, timestamp, fifo, undefined)
-        */
-       final public function getOrder() {
-               return $this->order;
-       }
-
-       /**
-        * @return bool Whether delayed jobs are enabled
-        * @since 1.22
-        */
-       final public function delayedJobsEnabled() {
-               return $this->checkDelay;
-       }
-
-       /**
-        * Get the allowed queue orders for configuration validation
-        *
-        * @return array Subset of (random, timestamp, fifo, undefined)
-        */
-       abstract protected function supportedOrders();
-
-       /**
-        * Get the default queue order to use if configuration does not specify one
-        *
-        * @return string One of (random, timestamp, fifo, undefined)
-        */
-       abstract protected function optimalOrder();
-
-       /**
-        * Find out if delayed jobs are supported for configuration validation
-        *
-        * @return bool Whether delayed jobs are supported
-        */
-       protected function supportsDelayedJobs() {
-               return false; // not implemented
-       }
-
-       /**
-        * Quickly check if the queue has no available (unacquired, non-delayed) jobs.
-        * Queue classes should use caching if they are any slower without memcached.
-        *
-        * If caching is used, this might return false when there are actually no jobs.
-        * If pop() is called and returns false then it should correct the cache. Also,
-        * calling flushCaches() first prevents this. However, this affect is typically
-        * not distinguishable from the race condition between isEmpty() and pop().
-        *
-        * @return bool
-        * @throws JobQueueError
-        */
-       final public function isEmpty() {
-               wfProfileIn( __METHOD__ );
-               $res = $this->doIsEmpty();
-               wfProfileOut( __METHOD__ );
-
-               return $res;
-       }
-
-       /**
-        * @see JobQueue::isEmpty()
-        * @return bool
-        */
-       abstract protected function doIsEmpty();
-
-       /**
-        * Get the number of available (unacquired, non-delayed) jobs in the queue.
-        * Queue classes should use caching if they are any slower without memcached.
-        *
-        * If caching is used, this number might be out of date for a minute.
-        *
-        * @return int
-        * @throws JobQueueError
-        */
-       final public function getSize() {
-               wfProfileIn( __METHOD__ );
-               $res = $this->doGetSize();
-               wfProfileOut( __METHOD__ );
-
-               return $res;
-       }
-
-       /**
-        * @see JobQueue::getSize()
-        * @return int
-        */
-       abstract protected function doGetSize();
-
-       /**
-        * Get the number of acquired jobs (these are temporarily out of the queue).
-        * Queue classes should use caching if they are any slower without memcached.
-        *
-        * If caching is used, this number might be out of date for a minute.
-        *
-        * @return int
-        * @throws JobQueueError
-        */
-       final public function getAcquiredCount() {
-               wfProfileIn( __METHOD__ );
-               $res = $this->doGetAcquiredCount();
-               wfProfileOut( __METHOD__ );
-
-               return $res;
-       }
-
-       /**
-        * @see JobQueue::getAcquiredCount()
-        * @return int
-        */
-       abstract protected function doGetAcquiredCount();
-
-       /**
-        * Get the number of delayed jobs (these are temporarily out of the queue).
-        * Queue classes should use caching if they are any slower without memcached.
-        *
-        * If caching is used, this number might be out of date for a minute.
-        *
-        * @return int
-        * @throws JobQueueError
-        * @since 1.22
-        */
-       final public function getDelayedCount() {
-               wfProfileIn( __METHOD__ );
-               $res = $this->doGetDelayedCount();
-               wfProfileOut( __METHOD__ );
-
-               return $res;
-       }
-
-       /**
-        * @see JobQueue::getDelayedCount()
-        * @return int
-        */
-       protected function doGetDelayedCount() {
-               return 0; // not implemented
-       }
-
-       /**
-        * Get the number of acquired jobs that can no longer be attempted.
-        * Queue classes should use caching if they are any slower without memcached.
-        *
-        * If caching is used, this number might be out of date for a minute.
-        *
-        * @return int
-        * @throws JobQueueError
-        */
-       final public function getAbandonedCount() {
-               wfProfileIn( __METHOD__ );
-               $res = $this->doGetAbandonedCount();
-               wfProfileOut( __METHOD__ );
-
-               return $res;
-       }
-
-       /**
-        * @see JobQueue::getAbandonedCount()
-        * @return int
-        */
-       protected function doGetAbandonedCount() {
-               return 0; // not implemented
-       }
-
-       /**
-        * Push one or more jobs into the queue.
-        * This does not require $wgJobClasses to be set for the given job type.
-        * Outside callers should use JobQueueGroup::push() instead of this function.
-        *
-        * @param Job|array $jobs A single job or an array of Jobs
-        * @param int $flags Bitfield (supports JobQueue::QOS_ATOMIC)
-        * @return bool Returns false on failure
-        * @throws JobQueueError
-        */
-       final public function push( $jobs, $flags = 0 ) {
-               return $this->batchPush( is_array( $jobs ) ? $jobs : array( $jobs ), $flags );
-       }
-
-       /**
-        * Push a batch of jobs into the queue.
-        * This does not require $wgJobClasses to be set for the given job type.
-        * Outside callers should use JobQueueGroup::push() instead of this function.
-        *
-        * @param array $jobs List of Jobs
-        * @param int $flags Bitfield (supports JobQueue::QOS_ATOMIC)
-        * @throws MWException
-        * @return bool Returns false on failure
-        */
-       final public function batchPush( array $jobs, $flags = 0 ) {
-               if ( !count( $jobs ) ) {
-                       return true; // nothing to do
-               }
-
-               foreach ( $jobs as $job ) {
-                       if ( $job->getType() !== $this->type ) {
-                               throw new MWException(
-                                       "Got '{$job->getType()}' job; expected a '{$this->type}' job." );
-                       } elseif ( $job->getReleaseTimestamp() && !$this->checkDelay ) {
-                               throw new MWException(
-                                       "Got delayed '{$job->getType()}' job; delays are not supported." );
-                       }
-               }
-
-               wfProfileIn( __METHOD__ );
-               $ok = $this->doBatchPush( $jobs, $flags );
-               wfProfileOut( __METHOD__ );
-
-               return $ok;
-       }
-
-       /**
-        * @see JobQueue::batchPush()
-        * @param array $jobs
-        * @param $flags
-        * @return bool
-        */
-       abstract protected function doBatchPush( array $jobs, $flags );
-
-       /**
-        * Pop a job off of the queue.
-        * This requires $wgJobClasses to be set for the given job type.
-        * Outside callers should use JobQueueGroup::pop() instead of this function.
-        *
-        * @throws MWException
-        * @return Job|bool Returns false if there are no jobs
-        */
-       final public function pop() {
-               global $wgJobClasses;
-
-               if ( $this->wiki !== wfWikiID() ) {
-                       throw new MWException( "Cannot pop '{$this->type}' job off foreign wiki queue." );
-               } elseif ( !isset( $wgJobClasses[$this->type] ) ) {
-                       // Do not pop jobs if there is no class for the queue type
-                       throw new MWException( "Unrecognized job type '{$this->type}'." );
-               }
-
-               wfProfileIn( __METHOD__ );
-               $job = $this->doPop();
-               wfProfileOut( __METHOD__ );
-
-               // Flag this job as an old duplicate based on its "root" job...
-               try {
-                       if ( $job && $this->isRootJobOldDuplicate( $job ) ) {
-                               JobQueue::incrStats( 'job-pop-duplicate', $this->type );
-                               $job = DuplicateJob::newFromJob( $job ); // convert to a no-op
-                       }
-               } catch ( MWException $e ) {
-                       // don't lose jobs over this
-               }
-
-               return $job;
-       }
-
-       /**
-        * @see JobQueue::pop()
-        * @return Job
-        */
-       abstract protected function doPop();
-
-       /**
-        * Acknowledge that a job was completed.
-        *
-        * This does nothing for certain queue classes or if "claimTTL" is not set.
-        * Outside callers should use JobQueueGroup::ack() instead of this function.
-        *
-        * @param Job $job
-        * @throws MWException
-        * @return bool
-        */
-       final public function ack( Job $job ) {
-               if ( $job->getType() !== $this->type ) {
-                       throw new MWException( "Got '{$job->getType()}' job; expected '{$this->type}'." );
-               }
-               wfProfileIn( __METHOD__ );
-               $ok = $this->doAck( $job );
-               wfProfileOut( __METHOD__ );
-
-               return $ok;
-       }
-
-       /**
-        * @see JobQueue::ack()
-        * @param Job $job
-        * @return bool
-        */
-       abstract protected function doAck( Job $job );
-
-       /**
-        * Register the "root job" of a given job into the queue for de-duplication.
-        * This should only be called right *after* all the new jobs have been inserted.
-        * This is used to turn older, duplicate, job entries into no-ops. The root job
-        * information will remain in the registry until it simply falls out of cache.
-        *
-        * This requires that $job has two special fields in the "params" array:
-        *   - rootJobSignature : hash (e.g. SHA1) that identifies the task
-        *   - rootJobTimestamp : TS_MW timestamp of this instance of the task
-        *
-        * A "root job" is a conceptual job that consist of potentially many smaller jobs
-        * that are actually inserted into the queue. For example, "refreshLinks" jobs are
-        * spawned when a template is edited. One can think of the task as "update links
-        * of pages that use template X" and an instance of that task as a "root job".
-        * However, what actually goes into the queue are range and leaf job subtypes.
-        * Since these jobs include things like page ID ranges and DB master positions,
-        * and can morph into smaller jobs recursively, simple duplicate detection
-        * for individual jobs being identical (like that of job_sha1) is not useful.
-        *
-        * In the case of "refreshLinks", if these jobs are still in the queue when the template
-        * is edited again, we want all of these old refreshLinks jobs for that template to become
-        * no-ops. This can greatly reduce server load, since refreshLinks jobs involves parsing.
-        * Essentially, the new batch of jobs belong to a new "root job" and the older ones to a
-        * previous "root job" for the same task of "update links of pages that use template X".
-        *
-        * This does nothing for certain queue classes.
-        *
-        * @param Job $job
-        * @throws MWException
-        * @return bool
-        */
-       final public function deduplicateRootJob( Job $job ) {
-               if ( $job->getType() !== $this->type ) {
-                       throw new MWException( "Got '{$job->getType()}' job; expected '{$this->type}'." );
-               }
-               wfProfileIn( __METHOD__ );
-               $ok = $this->doDeduplicateRootJob( $job );
-               wfProfileOut( __METHOD__ );
-
-               return $ok;
-       }
-
-       /**
-        * @see JobQueue::deduplicateRootJob()
-        * @param Job $job
-        * @throws MWException
-        * @return bool
-        */
-       protected function doDeduplicateRootJob( Job $job ) {
-               if ( !$job->hasRootJobParams() ) {
-                       throw new MWException( "Cannot register root job; missing parameters." );
-               }
-               $params = $job->getRootJobParams();
-
-               $key = $this->getRootJobCacheKey( $params['rootJobSignature'] );
-               // Callers should call batchInsert() and then this function so that if the insert
-               // fails, the de-duplication registration will be aborted. Since the insert is
-               // deferred till "transaction idle", do the same here, so that the ordering is
-               // maintained. Having only the de-duplication registration succeed would cause
-               // jobs to become no-ops without any actual jobs that made them redundant.
-               $timestamp = $this->dupCache->get( $key ); // current last timestamp of this job
-               if ( $timestamp && $timestamp >= $params['rootJobTimestamp'] ) {
-                       return true; // a newer version of this root job was enqueued
-               }
-
-               // Update the timestamp of the last root job started at the location...
-               return $this->dupCache->set( $key, $params['rootJobTimestamp'], JobQueueDB::ROOTJOB_TTL );
-       }
-
-       /**
-        * Check if the "root" job of a given job has been superseded by a newer one
-        *
-        * @param Job $job
-        * @throws MWException
-        * @return bool
-        */
-       final protected function isRootJobOldDuplicate( Job $job ) {
-               if ( $job->getType() !== $this->type ) {
-                       throw new MWException( "Got '{$job->getType()}' job; expected '{$this->type}'." );
-               }
-               wfProfileIn( __METHOD__ );
-               $isDuplicate = $this->doIsRootJobOldDuplicate( $job );
-               wfProfileOut( __METHOD__ );
-
-               return $isDuplicate;
-       }
-
-       /**
-        * @see JobQueue::isRootJobOldDuplicate()
-        * @param Job $job
-        * @return bool
-        */
-       protected function doIsRootJobOldDuplicate( Job $job ) {
-               if ( !$job->hasRootJobParams() ) {
-                       return false; // job has no de-deplication info
-               }
-               $params = $job->getRootJobParams();
-
-               $key = $this->getRootJobCacheKey( $params['rootJobSignature'] );
-               // Get the last time this root job was enqueued
-               $timestamp = $this->dupCache->get( $key );
-
-               // Check if a new root job was started at the location after this one's...
-               return ( $timestamp && $timestamp > $params['rootJobTimestamp'] );
-       }
-
-       /**
-        * @param string $signature Hash identifier of the root job
-        * @return string
-        */
-       protected function getRootJobCacheKey( $signature ) {
-               list( $db, $prefix ) = wfSplitWikiID( $this->wiki );
-
-               return wfForeignMemcKey( $db, $prefix, 'jobqueue', $this->type, 'rootjob', $signature );
-       }
-
-       /**
-        * Deleted all unclaimed and delayed jobs from the queue
-        *
-        * @return bool Success
-        * @throws JobQueueError
-        * @since 1.22
-        */
-       final public function delete() {
-               wfProfileIn( __METHOD__ );
-               $res = $this->doDelete();
-               wfProfileOut( __METHOD__ );
-
-               return $res;
-       }
-
-       /**
-        * @see JobQueue::delete()
-        * @throws MWException
-        * @return bool Success
-        */
-       protected function doDelete() {
-               throw new MWException( "This method is not implemented." );
-       }
-
-       /**
-        * Wait for any slaves or backup servers to catch up.
-        *
-        * This does nothing for certain queue classes.
-        *
-        * @return void
-        * @throws JobQueueError
-        */
-       final public function waitForBackups() {
-               wfProfileIn( __METHOD__ );
-               $this->doWaitForBackups();
-               wfProfileOut( __METHOD__ );
-       }
-
-       /**
-        * @see JobQueue::waitForBackups()
-        * @return void
-        */
-       protected function doWaitForBackups() {
-       }
-
-       /**
-        * Return a map of task names to task definition maps.
-        * A "task" is a fast periodic queue maintenance action.
-        * Mutually exclusive tasks must implement their own locking in the callback.
-        *
-        * Each task value is an associative array with:
-        *   - name     : the name of the task
-        *   - callback : a PHP callable that performs the task
-        *   - period   : the period in seconds corresponding to the task frequency
-        *
-        * @return array
-        */
-       final public function getPeriodicTasks() {
-               $tasks = $this->doGetPeriodicTasks();
-               foreach ( $tasks as $name => &$def ) {
-                       $def['name'] = $name;
-               }
-
-               return $tasks;
-       }
-
-       /**
-        * @see JobQueue::getPeriodicTasks()
-        * @return array
-        */
-       protected function doGetPeriodicTasks() {
-               return array();
-       }
-
-       /**
-        * Clear any process and persistent caches
-        *
-        * @return void
-        */
-       final public function flushCaches() {
-               wfProfileIn( __METHOD__ );
-               $this->doFlushCaches();
-               wfProfileOut( __METHOD__ );
-       }
-
-       /**
-        * @see JobQueue::flushCaches()
-        * @return void
-        */
-       protected function doFlushCaches() {
-       }
-
-       /**
-        * Get an iterator to traverse over all available jobs in this queue.
-        * This does not include jobs that are currently acquired or delayed.
-        * Note: results may be stale if the queue is concurrently modified.
-        *
-        * @return Iterator
-        * @throws JobQueueError
-        */
-       abstract public function getAllQueuedJobs();
-
-       /**
-        * Get an iterator to traverse over all delayed jobs in this queue.
-        * Note: results may be stale if the queue is concurrently modified.
-        *
-        * @return Iterator
-        * @throws JobQueueError
-        * @since 1.22
-        */
-       public function getAllDelayedJobs() {
-               return new ArrayIterator( array() ); // not implemented
-       }
-
-       /**
-        * Do not use this function outside of JobQueue/JobQueueGroup
-        *
-        * @return string
-        * @since 1.22
-        */
-       public function getCoalesceLocationInternal() {
-               return null;
-       }
-
-       /**
-        * Check whether each of the given queues are empty.
-        * This is used for batching checks for queues stored at the same place.
-        *
-        * @param array $types List of queues types
-        * @return array|null (list of non-empty queue types) or null if unsupported
-        * @throws MWException
-        * @since 1.22
-        */
-       final public function getSiblingQueuesWithJobs( array $types ) {
-               $section = new ProfileSection( __METHOD__ );
-
-               return $this->doGetSiblingQueuesWithJobs( $types );
-       }
-
-       /**
-        * @see JobQueue::getSiblingQueuesWithJobs()
-        * @param array $types List of queues types
-        * @return array|null (list of queue types) or null if unsupported
-        */
-       protected function doGetSiblingQueuesWithJobs( array $types ) {
-               return null; // not supported
-       }
-
-       /**
-        * Check the size of each of the given queues.
-        * For queues not served by the same store as this one, 0 is returned.
-        * This is used for batching checks for queues stored at the same place.
-        *
-        * @param array $types List of queues types
-        * @return array|null (job type => whether queue is empty) or null if unsupported
-        * @throws MWException
-        * @since 1.22
-        */
-       final public function getSiblingQueueSizes( array $types ) {
-               $section = new ProfileSection( __METHOD__ );
-
-               return $this->doGetSiblingQueueSizes( $types );
-       }
-
-       /**
-        * @see JobQueue::getSiblingQueuesSize()
-        * @param array $types List of queues types
-        * @return array|null (list of queue types) or null if unsupported
-        */
-       protected function doGetSiblingQueueSizes( array $types ) {
-               return null; // not supported
-       }
-
-       /**
-        * Call wfIncrStats() for the queue overall and for the queue type
-        *
-        * @param string $key Event type
-        * @param string $type Job type
-        * @param int $delta
-        * @since 1.22
-        */
-       public static function incrStats( $key, $type, $delta = 1 ) {
-               wfIncrStats( $key, $delta );
-               wfIncrStats( "{$key}-{$type}", $delta );
-       }
-
-       /**
-        * Namespace the queue with a key to isolate it for testing
-        *
-        * @param string $key
-        * @return void
-        * @throws MWException
-        */
-       public function setTestingPrefix( $key ) {
-               throw new MWException( "Queue namespacing not supported for this queue type." );
-       }
-}
-
-/**
- * @ingroup JobQueue
- * @since 1.22
- */
-class JobQueueError extends MWException {
-}
-
-class JobQueueConnectionError extends JobQueueError {
-}
diff --git a/includes/job/JobQueueDB.php b/includes/job/JobQueueDB.php
deleted file mode 100644 (file)
index 6097d31..0000000
+++ /dev/null
@@ -1,848 +0,0 @@
-<?php
-/**
- * Database-backed job queue 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Aaron Schulz
- */
-
-/**
- * Class to handle job queues stored in the DB
- *
- * @ingroup JobQueue
- * @since 1.21
- */
-class JobQueueDB extends JobQueue {
-       const CACHE_TTL_SHORT = 30; // integer; seconds to cache info without re-validating
-       const CACHE_TTL_LONG = 300; // integer; seconds to cache info that is kept up to date
-       const MAX_AGE_PRUNE = 604800; // integer; seconds a job can live once claimed
-       const MAX_JOB_RANDOM = 2147483647; // integer; 2^31 - 1, used for job_random
-       const MAX_OFFSET = 255; // integer; maximum number of rows to skip
-
-       /** @var BagOStuff */
-       protected $cache;
-
-       /** @var bool|string Name of an external DB cluster. False if not set */
-       protected $cluster = false;
-
-       /**
-        * Additional parameters include:
-        *   - cluster : The name of an external cluster registered via LBFactory.
-        *               If not specified, the primary DB cluster for the wiki will be used.
-        *               This can be overridden with a custom cluster so that DB handles will
-        *               be retrieved via LBFactory::getExternalLB() and getConnection().
-        * @param array $params
-        */
-       protected function __construct( array $params ) {
-               global $wgMemc;
-
-               parent::__construct( $params );
-
-               $this->cluster = isset( $params['cluster'] ) ? $params['cluster'] : false;
-               // Make sure that we don't use the SQL cache, which would be harmful
-               $this->cache = ( $wgMemc instanceof SqlBagOStuff ) ? new EmptyBagOStuff() : $wgMemc;
-       }
-
-       protected function supportedOrders() {
-               return array( 'random', 'timestamp', 'fifo' );
-       }
-
-       protected function optimalOrder() {
-               return 'random';
-       }
-
-       /**
-        * @see JobQueue::doIsEmpty()
-        * @return bool
-        */
-       protected function doIsEmpty() {
-               $key = $this->getCacheKey( 'empty' );
-
-               $isEmpty = $this->cache->get( $key );
-               if ( $isEmpty === 'true' ) {
-                       return true;
-               } elseif ( $isEmpty === 'false' ) {
-                       return false;
-               }
-
-               $dbr = $this->getSlaveDB();
-               try {
-                       $found = $dbr->selectField( // unclaimed job
-                               'job', '1', array( 'job_cmd' => $this->type, 'job_token' => '' ), __METHOD__
-                       );
-               } catch ( DBError $e ) {
-                       $this->throwDBException( $e );
-               }
-               $this->cache->add( $key, $found ? 'false' : 'true', self::CACHE_TTL_LONG );
-
-               return !$found;
-       }
-
-       /**
-        * @see JobQueue::doGetSize()
-        * @return int
-        */
-       protected function doGetSize() {
-               $key = $this->getCacheKey( 'size' );
-
-               $size = $this->cache->get( $key );
-               if ( is_int( $size ) ) {
-                       return $size;
-               }
-
-               try {
-                       $dbr = $this->getSlaveDB();
-                       $size = (int)$dbr->selectField( 'job', 'COUNT(*)',
-                               array( 'job_cmd' => $this->type, 'job_token' => '' ),
-                               __METHOD__
-                       );
-               } catch ( DBError $e ) {
-                       $this->throwDBException( $e );
-               }
-               $this->cache->set( $key, $size, self::CACHE_TTL_SHORT );
-
-               return $size;
-       }
-
-       /**
-        * @see JobQueue::doGetAcquiredCount()
-        * @return int
-        */
-       protected function doGetAcquiredCount() {
-               if ( $this->claimTTL <= 0 ) {
-                       return 0; // no acknowledgements
-               }
-
-               $key = $this->getCacheKey( 'acquiredcount' );
-
-               $count = $this->cache->get( $key );
-               if ( is_int( $count ) ) {
-                       return $count;
-               }
-
-               $dbr = $this->getSlaveDB();
-               try {
-                       $count = (int)$dbr->selectField( 'job', 'COUNT(*)',
-                               array( 'job_cmd' => $this->type, "job_token != {$dbr->addQuotes( '' )}" ),
-                               __METHOD__
-                       );
-               } catch ( DBError $e ) {
-                       $this->throwDBException( $e );
-               }
-               $this->cache->set( $key, $count, self::CACHE_TTL_SHORT );
-
-               return $count;
-       }
-
-       /**
-        * @see JobQueue::doGetAbandonedCount()
-        * @return int
-        * @throws MWException
-        */
-       protected function doGetAbandonedCount() {
-               global $wgMemc;
-
-               if ( $this->claimTTL <= 0 ) {
-                       return 0; // no acknowledgements
-               }
-
-               $key = $this->getCacheKey( 'abandonedcount' );
-
-               $count = $wgMemc->get( $key );
-               if ( is_int( $count ) ) {
-                       return $count;
-               }
-
-               $dbr = $this->getSlaveDB();
-               try {
-                       $count = (int)$dbr->selectField( 'job', 'COUNT(*)',
-                               array(
-                                       'job_cmd' => $this->type,
-                                       "job_token != {$dbr->addQuotes( '' )}",
-                                       "job_attempts >= " . $dbr->addQuotes( $this->maxTries )
-                               ),
-                               __METHOD__
-                       );
-               } catch ( DBError $e ) {
-                       $this->throwDBException( $e );
-               }
-               $wgMemc->set( $key, $count, self::CACHE_TTL_SHORT );
-
-               return $count;
-       }
-
-       /**
-        * @see JobQueue::doBatchPush()
-        * @param array $jobs
-        * @param $flags
-        * @throws DBError|Exception
-        * @return bool
-        */
-       protected function doBatchPush( array $jobs, $flags ) {
-               $dbw = $this->getMasterDB();
-
-               $that = $this;
-               $method = __METHOD__;
-               $dbw->onTransactionIdle(
-                       function () use ( $dbw, $that, $jobs, $flags, $method ) {
-                               $that->doBatchPushInternal( $dbw, $jobs, $flags, $method );
-                       }
-               );
-
-               return true;
-       }
-
-       /**
-        * This function should *not* be called outside of JobQueueDB
-        *
-        * @param IDatabase $dbw
-        * @param array $jobs
-        * @param int $flags
-        * @param string $method
-        * @throws DBError
-        * @return bool
-        */
-       public function doBatchPushInternal( IDatabase $dbw, array $jobs, $flags, $method ) {
-               if ( !count( $jobs ) ) {
-                       return true;
-               }
-
-               $rowSet = array(); // (sha1 => job) map for jobs that are de-duplicated
-               $rowList = array(); // list of jobs for jobs that are are not de-duplicated
-               foreach ( $jobs as $job ) {
-                       $row = $this->insertFields( $job );
-                       if ( $job->ignoreDuplicates() ) {
-                               $rowSet[$row['job_sha1']] = $row;
-                       } else {
-                               $rowList[] = $row;
-                       }
-               }
-
-               if ( $flags & self::QOS_ATOMIC ) {
-                       $dbw->begin( $method ); // wrap all the job additions in one transaction
-               }
-               try {
-                       // Strip out any duplicate jobs that are already in the queue...
-                       if ( count( $rowSet ) ) {
-                               $res = $dbw->select( 'job', 'job_sha1',
-                                       array(
-                                               // No job_type condition since it's part of the job_sha1 hash
-                                               'job_sha1' => array_keys( $rowSet ),
-                                               'job_token' => '' // unclaimed
-                                       ),
-                                       $method
-                               );
-                               foreach ( $res as $row ) {
-                                       wfDebug( "Job with hash '{$row->job_sha1}' is a duplicate.\n" );
-                                       unset( $rowSet[$row->job_sha1] ); // already enqueued
-                               }
-                       }
-                       // Build the full list of job rows to insert
-                       $rows = array_merge( $rowList, array_values( $rowSet ) );
-                       // Insert the job rows in chunks to avoid slave lag...
-                       foreach ( array_chunk( $rows, 50 ) as $rowBatch ) {
-                               $dbw->insert( 'job', $rowBatch, $method );
-                       }
-                       JobQueue::incrStats( 'job-insert', $this->type, count( $rows ) );
-                       JobQueue::incrStats(
-                               'job-insert-duplicate',
-                               $this->type,
-                               count( $rowSet ) + count( $rowList ) - count( $rows )
-                       );
-               } catch ( DBError $e ) {
-                       if ( $flags & self::QOS_ATOMIC ) {
-                               $dbw->rollback( $method );
-                       }
-                       throw $e;
-               }
-               if ( $flags & self::QOS_ATOMIC ) {
-                       $dbw->commit( $method );
-               }
-
-               $this->cache->set( $this->getCacheKey( 'empty' ), 'false', JobQueueDB::CACHE_TTL_LONG );
-
-               return true;
-       }
-
-       /**
-        * @see JobQueue::doPop()
-        * @return Job|bool
-        */
-       protected function doPop() {
-               if ( $this->cache->get( $this->getCacheKey( 'empty' ) ) === 'true' ) {
-                       return false; // queue is empty
-               }
-
-               $dbw = $this->getMasterDB();
-               try {
-                       $dbw->commit( __METHOD__, 'flush' ); // flush existing transaction
-                       $autoTrx = $dbw->getFlag( DBO_TRX ); // get current setting
-                       $dbw->clearFlag( DBO_TRX ); // make each query its own transaction
-                       $scopedReset = new ScopedCallback( function () use ( $dbw, $autoTrx ) {
-                               $dbw->setFlag( $autoTrx ? DBO_TRX : 0 ); // restore old setting
-                       } );
-
-                       $uuid = wfRandomString( 32 ); // pop attempt
-                       $job = false; // job popped off
-                       do { // retry when our row is invalid or deleted as a duplicate
-                               // Try to reserve a row in the DB...
-                               if ( in_array( $this->order, array( 'fifo', 'timestamp' ) ) ) {
-                                       $row = $this->claimOldest( $uuid );
-                               } else { // random first
-                                       $rand = mt_rand( 0, self::MAX_JOB_RANDOM ); // encourage concurrent UPDATEs
-                                       $gte = (bool)mt_rand( 0, 1 ); // find rows with rand before/after $rand
-                                       $row = $this->claimRandom( $uuid, $rand, $gte );
-                               }
-                               // Check if we found a row to reserve...
-                               if ( !$row ) {
-                                       $this->cache->set( $this->getCacheKey( 'empty' ), 'true', self::CACHE_TTL_LONG );
-                                       break; // nothing to do
-                               }
-                               JobQueue::incrStats( 'job-pop', $this->type );
-                               // Get the job object from the row...
-                               $title = Title::makeTitleSafe( $row->job_namespace, $row->job_title );
-                               if ( !$title ) {
-                                       $dbw->delete( 'job', array( 'job_id' => $row->job_id ), __METHOD__ );
-                                       wfDebug( "Row has invalid title '{$row->job_title}'." );
-                                       continue; // try again
-                               }
-                               $job = Job::factory( $row->job_cmd, $title,
-                                       self::extractBlob( $row->job_params ), $row->job_id );
-                               $job->metadata['id'] = $row->job_id;
-                               break; // done
-                       } while ( true );
-               } catch ( DBError $e ) {
-                       $this->throwDBException( $e );
-               }
-
-               return $job;
-       }
-
-       /**
-        * Reserve a row with a single UPDATE without holding row locks over RTTs...
-        *
-        * @param string $uuid 32 char hex string
-        * @param $rand integer Random unsigned integer (31 bits)
-        * @param bool $gte Search for job_random >= $random (otherwise job_random <= $random)
-        * @return stdClass|bool Row|false
-        */
-       protected function claimRandom( $uuid, $rand, $gte ) {
-               $dbw = $this->getMasterDB();
-               // Check cache to see if the queue has <= OFFSET items
-               $tinyQueue = $this->cache->get( $this->getCacheKey( 'small' ) );
-
-               $row = false; // the row acquired
-               $invertedDirection = false; // whether one job_random direction was already scanned
-               // This uses a replication safe method for acquiring jobs. One could use UPDATE+LIMIT
-               // instead, but that either uses ORDER BY (in which case it deadlocks in MySQL) or is
-               // not replication safe. Due to http://bugs.mysql.com/bug.php?id=6980, subqueries cannot
-               // be used here with MySQL.
-               do {
-                       if ( $tinyQueue ) { // queue has <= MAX_OFFSET rows
-                               // For small queues, using OFFSET will overshoot and return no rows more often.
-                               // Instead, this uses job_random to pick a row (possibly checking both directions).
-                               $ineq = $gte ? '>=' : '<=';
-                               $dir = $gte ? 'ASC' : 'DESC';
-                               $row = $dbw->selectRow( 'job', self::selectFields(), // find a random job
-                                       array(
-                                               'job_cmd' => $this->type,
-                                               'job_token' => '', // unclaimed
-                                               "job_random {$ineq} {$dbw->addQuotes( $rand )}" ),
-                                       __METHOD__,
-                                       array( 'ORDER BY' => "job_random {$dir}" )
-                               );
-                               if ( !$row && !$invertedDirection ) {
-                                       $gte = !$gte;
-                                       $invertedDirection = true;
-                                       continue; // try the other direction
-                               }
-                       } else { // table *may* have >= MAX_OFFSET rows
-                               // Bug 42614: "ORDER BY job_random" with a job_random inequality causes high CPU
-                               // in MySQL if there are many rows for some reason. This uses a small OFFSET
-                               // instead of job_random for reducing excess claim retries.
-                               $row = $dbw->selectRow( 'job', self::selectFields(), // find a random job
-                                       array(
-                                               'job_cmd' => $this->type,
-                                               'job_token' => '', // unclaimed
-                                       ),
-                                       __METHOD__,
-                                       array( 'OFFSET' => mt_rand( 0, self::MAX_OFFSET ) )
-                               );
-                               if ( !$row ) {
-                                       $tinyQueue = true; // we know the queue must have <= MAX_OFFSET rows
-                                       $this->cache->set( $this->getCacheKey( 'small' ), 1, 30 );
-                                       continue; // use job_random
-                               }
-                       }
-
-                       if ( $row ) { // claim the job
-                               $dbw->update( 'job', // update by PK
-                                       array(
-                                               'job_token' => $uuid,
-                                               'job_token_timestamp' => $dbw->timestamp(),
-                                               'job_attempts = job_attempts+1' ),
-                                       array( 'job_cmd' => $this->type, 'job_id' => $row->job_id, 'job_token' => '' ),
-                                       __METHOD__
-                               );
-                               // This might get raced out by another runner when claiming the previously
-                               // selected row. The use of job_random should minimize this problem, however.
-                               if ( !$dbw->affectedRows() ) {
-                                       $row = false; // raced out
-                               }
-                       } else {
-                               break; // nothing to do
-                       }
-               } while ( !$row );
-
-               return $row;
-       }
-
-       /**
-        * Reserve a row with a single UPDATE without holding row locks over RTTs...
-        *
-        * @param string $uuid 32 char hex string
-        * @return stdClass|bool Row|false
-        */
-       protected function claimOldest( $uuid ) {
-               $dbw = $this->getMasterDB();
-
-               $row = false; // the row acquired
-               do {
-                       if ( $dbw->getType() === 'mysql' ) {
-                               // Per http://bugs.mysql.com/bug.php?id=6980, we can't use subqueries on the
-                               // same table being changed in an UPDATE query in MySQL (gives Error: 1093).
-                               // Oracle and Postgre have no such limitation. However, MySQL offers an
-                               // alternative here by supporting ORDER BY + LIMIT for UPDATE queries.
-                               $dbw->query( "UPDATE {$dbw->tableName( 'job' )} " .
-                                       "SET " .
-                                               "job_token = {$dbw->addQuotes( $uuid ) }, " .
-                                               "job_token_timestamp = {$dbw->addQuotes( $dbw->timestamp() )}, " .
-                                               "job_attempts = job_attempts+1 " .
-                                       "WHERE ( " .
-                                               "job_cmd = {$dbw->addQuotes( $this->type )} " .
-                                               "AND job_token = {$dbw->addQuotes( '' )} " .
-                                       ") ORDER BY job_id ASC LIMIT 1",
-                                       __METHOD__
-                               );
-                       } else {
-                               // Use a subquery to find the job, within an UPDATE to claim it.
-                               // This uses as much of the DB wrapper functions as possible.
-                               $dbw->update( 'job',
-                                       array(
-                                               'job_token' => $uuid,
-                                               'job_token_timestamp' => $dbw->timestamp(),
-                                               'job_attempts = job_attempts+1' ),
-                                       array( 'job_id = (' .
-                                               $dbw->selectSQLText( 'job', 'job_id',
-                                                       array( 'job_cmd' => $this->type, 'job_token' => '' ),
-                                                       __METHOD__,
-                                                       array( 'ORDER BY' => 'job_id ASC', 'LIMIT' => 1 ) ) .
-                                               ')'
-                                       ),
-                                       __METHOD__
-                               );
-                       }
-                       // Fetch any row that we just reserved...
-                       if ( $dbw->affectedRows() ) {
-                               $row = $dbw->selectRow( 'job', self::selectFields(),
-                                       array( 'job_cmd' => $this->type, 'job_token' => $uuid ), __METHOD__
-                               );
-                               if ( !$row ) { // raced out by duplicate job removal
-                                       wfDebug( "Row deleted as duplicate by another process." );
-                               }
-                       } else {
-                               break; // nothing to do
-                       }
-               } while ( !$row );
-
-               return $row;
-       }
-
-       /**
-        * @see JobQueue::doAck()
-        * @param Job $job
-        * @throws MWException
-        * @return Job|bool
-        */
-       protected function doAck( Job $job ) {
-               if ( !isset( $job->metadata['id'] ) ) {
-                       throw new MWException( "Job of type '{$job->getType()}' has no ID." );
-               }
-
-               $dbw = $this->getMasterDB();
-               try {
-                       $dbw->commit( __METHOD__, 'flush' ); // flush existing transaction
-                       $autoTrx = $dbw->getFlag( DBO_TRX ); // get current setting
-                       $dbw->clearFlag( DBO_TRX ); // make each query its own transaction
-                       $scopedReset = new ScopedCallback( function () use ( $dbw, $autoTrx ) {
-                               $dbw->setFlag( $autoTrx ? DBO_TRX : 0 ); // restore old setting
-                       } );
-
-                       // Delete a row with a single DELETE without holding row locks over RTTs...
-                       $dbw->delete( 'job',
-                               array( 'job_cmd' => $this->type, 'job_id' => $job->metadata['id'] ), __METHOD__ );
-               } catch ( DBError $e ) {
-                       $this->throwDBException( $e );
-               }
-
-               return true;
-       }
-
-       /**
-        * @see JobQueue::doDeduplicateRootJob()
-        * @param Job $job
-        * @throws MWException
-        * @return bool
-        */
-       protected function doDeduplicateRootJob( Job $job ) {
-               $params = $job->getParams();
-               if ( !isset( $params['rootJobSignature'] ) ) {
-                       throw new MWException( "Cannot register root job; missing 'rootJobSignature'." );
-               } elseif ( !isset( $params['rootJobTimestamp'] ) ) {
-                       throw new MWException( "Cannot register root job; missing 'rootJobTimestamp'." );
-               }
-               $key = $this->getRootJobCacheKey( $params['rootJobSignature'] );
-               // Callers should call batchInsert() and then this function so that if the insert
-               // fails, the de-duplication registration will be aborted. Since the insert is
-               // deferred till "transaction idle", do the same here, so that the ordering is
-               // maintained. Having only the de-duplication registration succeed would cause
-               // jobs to become no-ops without any actual jobs that made them redundant.
-               $dbw = $this->getMasterDB();
-               $cache = $this->dupCache;
-               $dbw->onTransactionIdle( function () use ( $cache, $params, $key, $dbw ) {
-                       $timestamp = $cache->get( $key ); // current last timestamp of this job
-                       if ( $timestamp && $timestamp >= $params['rootJobTimestamp'] ) {
-                               return true; // a newer version of this root job was enqueued
-                       }
-
-                       // Update the timestamp of the last root job started at the location...
-                       return $cache->set( $key, $params['rootJobTimestamp'], JobQueueDB::ROOTJOB_TTL );
-               } );
-
-               return true;
-       }
-
-       /**
-        * @see JobQueue::doDelete()
-        * @return bool
-        */
-       protected function doDelete() {
-               $dbw = $this->getMasterDB();
-               try {
-                       $dbw->delete( 'job', array( 'job_cmd' => $this->type ) );
-               } catch ( DBError $e ) {
-                       $this->throwDBException( $e );
-               }
-
-               return true;
-       }
-
-       /**
-        * @see JobQueue::doWaitForBackups()
-        * @return void
-        */
-       protected function doWaitForBackups() {
-               wfWaitForSlaves();
-       }
-
-       /**
-        * @return array
-        */
-       protected function doGetPeriodicTasks() {
-               return array(
-                       'recycleAndDeleteStaleJobs' => array(
-                               'callback' => array( $this, 'recycleAndDeleteStaleJobs' ),
-                               'period' => ceil( $this->claimTTL / 2 )
-                       )
-               );
-       }
-
-       /**
-        * @return void
-        */
-       protected function doFlushCaches() {
-               foreach ( array( 'empty', 'size', 'acquiredcount' ) as $type ) {
-                       $this->cache->delete( $this->getCacheKey( $type ) );
-               }
-       }
-
-       /**
-        * @see JobQueue::getAllQueuedJobs()
-        * @return Iterator
-        */
-       public function getAllQueuedJobs() {
-               $dbr = $this->getSlaveDB();
-               try {
-                       return new MappedIterator(
-                               $dbr->select( 'job', self::selectFields(),
-                                       array( 'job_cmd' => $this->getType(), 'job_token' => '' ) ),
-                               function ( $row ) use ( $dbr ) {
-                                       $job = Job::factory(
-                                               $row->job_cmd,
-                                               Title::makeTitle( $row->job_namespace, $row->job_title ),
-                                               strlen( $row->job_params ) ? unserialize( $row->job_params ) : false
-                                       );
-                                       $job->metadata['id'] = $row->job_id;
-                                       return $job;
-                               }
-                       );
-               } catch ( DBError $e ) {
-                       $this->throwDBException( $e );
-               }
-       }
-
-       public function getCoalesceLocationInternal() {
-               return $this->cluster
-                       ? "DBCluster:{$this->cluster}:{$this->wiki}"
-                       : "LBFactory:{$this->wiki}";
-       }
-
-       protected function doGetSiblingQueuesWithJobs( array $types ) {
-               $dbr = $this->getSlaveDB();
-               $res = $dbr->select( 'job', 'DISTINCT job_cmd',
-                       array( 'job_cmd' => $types ), __METHOD__ );
-
-               $types = array();
-               foreach ( $res as $row ) {
-                       $types[] = $row->job_cmd;
-               }
-
-               return $types;
-       }
-
-       protected function doGetSiblingQueueSizes( array $types ) {
-               $dbr = $this->getSlaveDB();
-               $res = $dbr->select( 'job', array( 'job_cmd', 'COUNT(*) AS count' ),
-                       array( 'job_cmd' => $types ), __METHOD__, array( 'GROUP BY' => 'job_cmd' ) );
-
-               $sizes = array();
-               foreach ( $res as $row ) {
-                       $sizes[$row->job_cmd] = (int)$row->count;
-               }
-
-               return $sizes;
-       }
-
-       /**
-        * Recycle or destroy any jobs that have been claimed for too long
-        *
-        * @return int Number of jobs recycled/deleted
-        */
-       public function recycleAndDeleteStaleJobs() {
-               $now = time();
-               $count = 0; // affected rows
-               $dbw = $this->getMasterDB();
-
-               try {
-                       if ( !$dbw->lock( "jobqueue-recycle-{$this->type}", __METHOD__, 1 ) ) {
-                               return $count; // already in progress
-                       }
-
-                       // Remove claims on jobs acquired for too long if enabled...
-                       if ( $this->claimTTL > 0 ) {
-                               $claimCutoff = $dbw->timestamp( $now - $this->claimTTL );
-                               // Get the IDs of jobs that have be claimed but not finished after too long.
-                               // These jobs can be recycled into the queue by expiring the claim. Selecting
-                               // the IDs first means that the UPDATE can be done by primary key (less deadlocks).
-                               $res = $dbw->select( 'job', 'job_id',
-                                       array(
-                                               'job_cmd' => $this->type,
-                                               "job_token != {$dbw->addQuotes( '' )}", // was acquired
-                                               "job_token_timestamp < {$dbw->addQuotes( $claimCutoff )}", // stale
-                                               "job_attempts < {$dbw->addQuotes( $this->maxTries )}" ), // retries left
-                                       __METHOD__
-                               );
-                               $ids = array_map(
-                                       function ( $o ) {
-                                               return $o->job_id;
-                                       }, iterator_to_array( $res )
-                               );
-                               if ( count( $ids ) ) {
-                                       // Reset job_token for these jobs so that other runners will pick them up.
-                                       // Set the timestamp to the current time, as it is useful to now that the job
-                                       // was already tried before (the timestamp becomes the "released" time).
-                                       $dbw->update( 'job',
-                                               array(
-                                                       'job_token' => '',
-                                                       'job_token_timestamp' => $dbw->timestamp( $now ) ), // time of release
-                                               array(
-                                                       'job_id' => $ids ),
-                                               __METHOD__
-                                       );
-                                       $count += $dbw->affectedRows();
-                                       JobQueue::incrStats( 'job-recycle', $this->type, $dbw->affectedRows() );
-                                       $this->cache->set( $this->getCacheKey( 'empty' ), 'false', self::CACHE_TTL_LONG );
-                               }
-                       }
-
-                       // Just destroy any stale jobs...
-                       $pruneCutoff = $dbw->timestamp( $now - self::MAX_AGE_PRUNE );
-                       $conds = array(
-                               'job_cmd' => $this->type,
-                               "job_token != {$dbw->addQuotes( '' )}", // was acquired
-                               "job_token_timestamp < {$dbw->addQuotes( $pruneCutoff )}" // stale
-                       );
-                       if ( $this->claimTTL > 0 ) { // only prune jobs attempted too many times...
-                               $conds[] = "job_attempts >= {$dbw->addQuotes( $this->maxTries )}";
-                       }
-                       // Get the IDs of jobs that are considered stale and should be removed. Selecting
-                       // the IDs first means that the UPDATE can be done by primary key (less deadlocks).
-                       $res = $dbw->select( 'job', 'job_id', $conds, __METHOD__ );
-                       $ids = array_map(
-                               function ( $o ) {
-                                       return $o->job_id;
-                               }, iterator_to_array( $res )
-                       );
-                       if ( count( $ids ) ) {
-                               $dbw->delete( 'job', array( 'job_id' => $ids ), __METHOD__ );
-                               $count += $dbw->affectedRows();
-                               JobQueue::incrStats( 'job-abandon', $this->type, $dbw->affectedRows() );
-                       }
-
-                       $dbw->unlock( "jobqueue-recycle-{$this->type}", __METHOD__ );
-               } catch ( DBError $e ) {
-                       $this->throwDBException( $e );
-               }
-
-               return $count;
-       }
-
-       /**
-        * @param IJobSpecification $job
-        * @return array
-        */
-       protected function insertFields( IJobSpecification $job ) {
-               $dbw = $this->getMasterDB();
-
-               return array(
-                       // Fields that describe the nature of the job
-                       'job_cmd' => $job->getType(),
-                       'job_namespace' => $job->getTitle()->getNamespace(),
-                       'job_title' => $job->getTitle()->getDBkey(),
-                       'job_params' => self::makeBlob( $job->getParams() ),
-                       // Additional job metadata
-                       'job_id' => $dbw->nextSequenceValue( 'job_job_id_seq' ),
-                       'job_timestamp' => $dbw->timestamp(),
-                       'job_sha1' => wfBaseConvert(
-                               sha1( serialize( $job->getDeduplicationInfo() ) ),
-                               16, 36, 31
-                       ),
-                       'job_random' => mt_rand( 0, self::MAX_JOB_RANDOM )
-               );
-       }
-
-       /**
-        * @throws JobQueueConnectionError
-        * @return DBConnRef
-        */
-       protected function getSlaveDB() {
-               try {
-                       return $this->getDB( DB_SLAVE );
-               } catch ( DBConnectionError $e ) {
-                       throw new JobQueueConnectionError( "DBConnectionError:" . $e->getMessage() );
-               }
-       }
-
-       /**
-        * @throws JobQueueConnectionError
-        * @return DBConnRef
-        */
-       protected function getMasterDB() {
-               try {
-                       return $this->getDB( DB_MASTER );
-               } catch ( DBConnectionError $e ) {
-                       throw new JobQueueConnectionError( "DBConnectionError:" . $e->getMessage() );
-               }
-       }
-
-       /**
-        * @param $index integer (DB_SLAVE/DB_MASTER)
-        * @return DBConnRef
-        */
-       protected function getDB( $index ) {
-               $lb = ( $this->cluster !== false )
-                       ? wfGetLBFactory()->getExternalLB( $this->cluster, $this->wiki )
-                       : wfGetLB( $this->wiki );
-
-               return $lb->getConnectionRef( $index, array(), $this->wiki );
-       }
-
-       /**
-        * @param $property
-        * @return string
-        */
-       private function getCacheKey( $property ) {
-               list( $db, $prefix ) = wfSplitWikiID( $this->wiki );
-               $cluster = is_string( $this->cluster ) ? $this->cluster : 'main';
-
-               return wfForeignMemcKey( $db, $prefix, 'jobqueue', $cluster, $this->type, $property );
-       }
-
-       /**
-        * @param $params
-        * @return string
-        */
-       protected static function makeBlob( $params ) {
-               if ( $params !== false ) {
-                       return serialize( $params );
-               } else {
-                       return '';
-               }
-       }
-
-       /**
-        * @param $blob
-        * @return bool|mixed
-        */
-       protected static function extractBlob( $blob ) {
-               if ( (string)$blob !== '' ) {
-                       return unserialize( $blob );
-               } else {
-                       return false;
-               }
-       }
-
-       /**
-        * @param DBError $e
-        * @throws JobQueueError
-        */
-       protected function throwDBException( DBError $e ) {
-               throw new JobQueueError( get_class( $e ) . ": " . $e->getMessage() );
-       }
-
-       /**
-        * Return the list of job fields that should be selected.
-        * @since 1.23
-        * @return array
-        */
-       public static function selectFields() {
-               return array(
-                       'job_id',
-                       'job_cmd',
-                       'job_namespace',
-                       'job_title',
-                       'job_timestamp',
-                       'job_params',
-                       'job_random',
-                       'job_attempts',
-                       'job_token',
-                       'job_token_timestamp',
-                       'job_sha1',
-               );
-       }
-}
diff --git a/includes/job/JobQueueFederated.php b/includes/job/JobQueueFederated.php
deleted file mode 100644 (file)
index 9502148..0000000
+++ /dev/null
@@ -1,553 +0,0 @@
-<?php
-/**
- * Job queue code for federated queues.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Aaron Schulz
- */
-
-/**
- * Class to handle enqueueing and running of background jobs for federated queues
- *
- * This class allows for queues to be partitioned into smaller queues.
- * A partition is defined by the configuration for a JobQueue instance.
- * For example, one can set $wgJobTypeConf['refreshLinks'] to point to a
- * JobQueueFederated instance, which itself would consist of three JobQueueRedis
- * instances, each using their own redis server. This would allow for the jobs
- * to be split (evenly or based on weights) accross multiple servers if a single
- * server becomes impractical or expensive. Different JobQueue classes can be mixed.
- *
- * The basic queue configuration (e.g. "order", "claimTTL") of a federated queue
- * is inherited by the partition queues. Additional configuration defines what
- * section each wiki is in, what partition queues each section uses (and their weight),
- * and the JobQueue configuration for each partition. Some sections might only need a
- * single queue partition, like the sections for groups of small wikis.
- *
- * If used for performance, then $wgMainCacheType should be set to memcached/redis.
- * Note that "fifo" cannot be used for the ordering, since the data is distributed.
- * One can still use "timestamp" instead, as in "roughly timestamp ordered". Also,
- * queue classes used by this should ignore down servers (with TTL) to avoid slowness.
- *
- * @ingroup JobQueue
- * @since 1.22
- */
-class JobQueueFederated extends JobQueue {
-       /** @var array (partition name => weight) reverse sorted by weight */
-       protected $partitionMap = array();
-
-       /** @var array (partition name => JobQueue) reverse sorted by weight */
-       protected $partitionQueues = array();
-
-       /** @var HashRing */
-       protected $partitionPushRing;
-
-       /** @var BagOStuff */
-       protected $cache;
-
-       /** @var int Maximum number of partitions to try */
-       protected $maxPartitionsTry;
-
-       const CACHE_TTL_SHORT = 30; // integer; seconds to cache info without re-validating
-       const CACHE_TTL_LONG = 300; // integer; seconds to cache info that is kept up to date
-
-       /**
-        * @params include:
-        *  - sectionsByWiki      : A map of wiki IDs to section names.
-        *                          Wikis will default to using the section "default".
-        *  - partitionsBySection : Map of section names to maps of (partition name => weight).
-        *                          A section called 'default' must be defined if not all wikis
-        *                          have explicitly defined sections.
-        *  - configByPartition   : Map of queue partition names to configuration arrays.
-        *                          These configuration arrays are passed to JobQueue::factory().
-        *                          The options set here are overriden by those passed to this
-        *                          the federated queue itself (e.g. 'order' and 'claimTTL').
-        *  - partitionsNoPush    : List of partition names that can handle pop() but not push().
-        *                          This can be used to migrate away from a certain partition.
-        *  - maxPartitionsTry    : Maximum number of times to attempt job insertion using
-        *                          different partition queues. This improves availability
-        *                          during failure, at the cost of added latency and somewhat
-        *                          less reliable job de-duplication mechanisms.
-        * @param array $params
-        * @throws MWException
-        */
-       protected function __construct( array $params ) {
-               parent::__construct( $params );
-               $section = isset( $params['sectionsByWiki'][$this->wiki] )
-                       ? $params['sectionsByWiki'][$this->wiki]
-                       : 'default';
-               if ( !isset( $params['partitionsBySection'][$section] ) ) {
-                       throw new MWException( "No configuration for section '$section'." );
-               }
-               $this->maxPartitionsTry = isset( $params['maxPartitionsTry'] )
-                       ? $params['maxPartitionsTry']
-                       : 2;
-               // Get the full partition map
-               $this->partitionMap = $params['partitionsBySection'][$section];
-               arsort( $this->partitionMap, SORT_NUMERIC );
-               // Get the partitions jobs can actually be pushed to
-               $partitionPushMap = $this->partitionMap;
-               if ( isset( $params['partitionsNoPush'] ) ) {
-                       foreach ( $params['partitionsNoPush'] as $partition ) {
-                               unset( $partitionPushMap[$partition] );
-                       }
-               }
-               // Get the config to pass to merge into each partition queue config
-               $baseConfig = $params;
-               foreach ( array( 'class', 'sectionsByWiki', 'maxPartitionsTry',
-                       'partitionsBySection', 'configByPartition', 'partitionsNoPush' ) as $o
-               ) {
-                       unset( $baseConfig[$o] ); // partition queue doesn't care about this
-               }
-               // Get the partition queue objects
-               foreach ( $this->partitionMap as $partition => $w ) {
-                       if ( !isset( $params['configByPartition'][$partition] ) ) {
-                               throw new MWException( "No configuration for partition '$partition'." );
-                       }
-                       $this->partitionQueues[$partition] = JobQueue::factory(
-                               $baseConfig + $params['configByPartition'][$partition] );
-               }
-               // Get the ring of partitions to push jobs into
-               $this->partitionPushRing = new HashRing( $partitionPushMap );
-               // Aggregate cache some per-queue values if there are multiple partition queues
-               $this->cache = count( $this->partitionMap ) > 1 ? wfGetMainCache() : new EmptyBagOStuff();
-       }
-
-       protected function supportedOrders() {
-               // No FIFO due to partitioning, though "rough timestamp order" is supported
-               return array( 'undefined', 'random', 'timestamp' );
-       }
-
-       protected function optimalOrder() {
-               return 'undefined'; // defer to the partitions
-       }
-
-       protected function supportsDelayedJobs() {
-               return true; // defer checks to the partitions
-       }
-
-       protected function doIsEmpty() {
-               $key = $this->getCacheKey( 'empty' );
-
-               $isEmpty = $this->cache->get( $key );
-               if ( $isEmpty === 'true' ) {
-                       return true;
-               } elseif ( $isEmpty === 'false' ) {
-                       return false;
-               }
-
-               $empty = true;
-               $failed = 0;
-               foreach ( $this->partitionQueues as $queue ) {
-                       try {
-                               $empty = $empty && $queue->doIsEmpty();
-                       } catch ( JobQueueError $e ) {
-                               ++$failed;
-                               MWExceptionHandler::logException( $e );
-                       }
-               }
-               $this->throwErrorIfAllPartitionsDown( $failed );
-
-               $this->cache->add( $key, $empty ? 'true' : 'false', self::CACHE_TTL_LONG );
-               return $empty;
-       }
-
-       protected function doGetSize() {
-               return $this->getCrossPartitionSum( 'size', 'doGetSize' );
-       }
-
-       protected function doGetAcquiredCount() {
-               return $this->getCrossPartitionSum( 'acquiredcount', 'doGetAcquiredCount' );
-       }
-
-       protected function doGetDelayedCount() {
-               return $this->getCrossPartitionSum( 'delayedcount', 'doGetDelayedCount' );
-       }
-
-       protected function doGetAbandonedCount() {
-               return $this->getCrossPartitionSum( 'abandonedcount', 'doGetAbandonedCount' );
-       }
-
-       /**
-        * @param string $type
-        * @param string $method
-        * @return int
-        */
-       protected function getCrossPartitionSum( $type, $method ) {
-               $key = $this->getCacheKey( $type );
-
-               $count = $this->cache->get( $key );
-               if ( is_int( $count ) ) {
-                       return $count;
-               }
-
-               $failed = 0;
-               foreach ( $this->partitionQueues as $queue ) {
-                       try {
-                               $count += $queue->$method();
-                       } catch ( JobQueueError $e ) {
-                               ++$failed;
-                               MWExceptionHandler::logException( $e );
-                       }
-               }
-               $this->throwErrorIfAllPartitionsDown( $failed );
-
-               $this->cache->set( $key, $count, self::CACHE_TTL_SHORT );
-
-               return $count;
-       }
-
-       protected function doBatchPush( array $jobs, $flags ) {
-               // Local ring variable that may be changed to point to a new ring on failure
-               $partitionRing = $this->partitionPushRing;
-               // Try to insert the jobs and update $partitionsTry on any failures.
-               // Retry to insert any remaning jobs again, ignoring the bad partitions.
-               $jobsLeft = $jobs;
-               for ( $i = $this->maxPartitionsTry; $i > 0 && count( $jobsLeft ); --$i ) {
-                       $jobsLeft = $this->tryJobInsertions( $jobsLeft, $partitionRing, $flags );
-               }
-               if ( count( $jobsLeft ) ) {
-                       throw new JobQueueError(
-                               "Could not insert job(s), {$this->maxPartitionsTry} partitions tried." );
-               }
-
-               return true;
-       }
-
-       /**
-        * @param array $jobs
-        * @param HashRing $partitionRing
-        * @param int $flags
-        * @throws JobQueueError
-        * @return array List of Job object that could not be inserted
-        */
-       protected function tryJobInsertions( array $jobs, HashRing &$partitionRing, $flags ) {
-               $jobsLeft = array();
-
-               // Because jobs are spread across partitions, per-job de-duplication needs
-               // to use a consistent hash to avoid allowing duplicate jobs per partition.
-               // When inserting a batch of de-duplicated jobs, QOS_ATOMIC is disregarded.
-               $uJobsByPartition = array(); // (partition name => job list)
-               /** @var Job $job */
-               foreach ( $jobs as $key => $job ) {
-                       if ( $job->ignoreDuplicates() ) {
-                               $sha1 = sha1( serialize( $job->getDeduplicationInfo() ) );
-                               $uJobsByPartition[$partitionRing->getLocation( $sha1 )][] = $job;
-                               unset( $jobs[$key] );
-                       }
-               }
-               // Get the batches of jobs that are not de-duplicated
-               if ( $flags & self::QOS_ATOMIC ) {
-                       $nuJobBatches = array( $jobs ); // all or nothing
-               } else {
-                       // Split the jobs into batches and spread them out over servers if there
-                       // are many jobs. This helps keep the partitions even. Otherwise, send all
-                       // the jobs to a single partition queue to avoids the extra connections.
-                       $nuJobBatches = array_chunk( $jobs, 300 );
-               }
-
-               // Insert the de-duplicated jobs into the queues...
-               foreach ( $uJobsByPartition as $partition => $jobBatch ) {
-                       /** @var JobQueue $queue */
-                       $queue = $this->partitionQueues[$partition];
-                       try {
-                               $ok = $queue->doBatchPush( $jobBatch, $flags | self::QOS_ATOMIC );
-                       } catch ( JobQueueError $e ) {
-                               $ok = false;
-                               MWExceptionHandler::logException( $e );
-                       }
-                       if ( $ok ) {
-                               $key = $this->getCacheKey( 'empty' );
-                               $this->cache->set( $key, 'false', JobQueueDB::CACHE_TTL_LONG );
-                       } else {
-                               $partitionRing = $partitionRing->newWithoutLocation( $partition ); // blacklist
-                               if ( !$partitionRing ) {
-                                       throw new JobQueueError( "Could not insert job(s), no partitions available." );
-                               }
-                               $jobsLeft = array_merge( $jobsLeft, $jobBatch ); // not inserted
-                       }
-               }
-
-               // Insert the jobs that are not de-duplicated into the queues...
-               foreach ( $nuJobBatches as $jobBatch ) {
-                       $partition = ArrayUtils::pickRandom( $partitionRing->getLocationWeights() );
-                       $queue = $this->partitionQueues[$partition];
-                       try {
-                               $ok = $queue->doBatchPush( $jobBatch, $flags | self::QOS_ATOMIC );
-                       } catch ( JobQueueError $e ) {
-                               $ok = false;
-                               MWExceptionHandler::logException( $e );
-                       }
-                       if ( $ok ) {
-                               $key = $this->getCacheKey( 'empty' );
-                               $this->cache->set( $key, 'false', JobQueueDB::CACHE_TTL_LONG );
-                       } else {
-                               $partitionRing = $partitionRing->newWithoutLocation( $partition ); // blacklist
-                               if ( !$partitionRing ) {
-                                       throw new JobQueueError( "Could not insert job(s), no partitions available." );
-                               }
-                               $jobsLeft = array_merge( $jobsLeft, $jobBatch ); // not inserted
-                       }
-               }
-
-               return $jobsLeft;
-       }
-
-       protected function doPop() {
-               $key = $this->getCacheKey( 'empty' );
-
-               $isEmpty = $this->cache->get( $key );
-               if ( $isEmpty === 'true' ) {
-                       return false;
-               }
-
-               $partitionsTry = $this->partitionMap; // (partition => weight)
-
-               $failed = 0;
-               while ( count( $partitionsTry ) ) {
-                       $partition = ArrayUtils::pickRandom( $partitionsTry );
-                       if ( $partition === false ) {
-                               break; // all partitions at 0 weight
-                       }
-
-                       /** @var JobQueue $queue */
-                       $queue = $this->partitionQueues[$partition];
-                       try {
-                               $job = $queue->pop();
-                       } catch ( JobQueueError $e ) {
-                               ++$failed;
-                               MWExceptionHandler::logException( $e );
-                               $job = false;
-                       }
-                       if ( $job ) {
-                               $job->metadata['QueuePartition'] = $partition;
-
-                               return $job;
-                       } else {
-                               unset( $partitionsTry[$partition] ); // blacklist partition
-                       }
-               }
-               $this->throwErrorIfAllPartitionsDown( $failed );
-
-               $this->cache->set( $key, 'true', JobQueueDB::CACHE_TTL_LONG );
-
-               return false;
-       }
-
-       protected function doAck( Job $job ) {
-               if ( !isset( $job->metadata['QueuePartition'] ) ) {
-                       throw new MWException( "The given job has no defined partition name." );
-               }
-
-               return $this->partitionQueues[$job->metadata['QueuePartition']]->ack( $job );
-       }
-
-       protected function doIsRootJobOldDuplicate( Job $job ) {
-               $params = $job->getRootJobParams();
-               $partitions = $this->partitionPushRing->getLocations( $params['rootJobSignature'], 2 );
-               try {
-                       return $this->partitionQueues[$partitions[0]]->doIsRootJobOldDuplicate( $job );
-               } catch ( JobQueueError $e ) {
-                       if ( isset( $partitions[1] ) ) { // check fallback partition
-                               return $this->partitionQueues[$partitions[1]]->doIsRootJobOldDuplicate( $job );
-                       }
-               }
-
-               return false;
-       }
-
-       protected function doDeduplicateRootJob( Job $job ) {
-               $params = $job->getRootJobParams();
-               $partitions = $this->partitionPushRing->getLocations( $params['rootJobSignature'], 2 );
-               try {
-                       return $this->partitionQueues[$partitions[0]]->doDeduplicateRootJob( $job );
-               } catch ( JobQueueError $e ) {
-                       if ( isset( $partitions[1] ) ) { // check fallback partition
-                               return $this->partitionQueues[$partitions[1]]->doDeduplicateRootJob( $job );
-                       }
-               }
-
-               return false;
-       }
-
-       protected function doDelete() {
-               $failed = 0;
-               /** @var JobQueue $queue */
-               foreach ( $this->partitionQueues as $queue ) {
-                       try {
-                               $queue->doDelete();
-                       } catch ( JobQueueError $e ) {
-                               ++$failed;
-                               MWExceptionHandler::logException( $e );
-                       }
-               }
-               $this->throwErrorIfAllPartitionsDown( $failed );
-               return true;
-       }
-
-       protected function doWaitForBackups() {
-               $failed = 0;
-               /** @var JobQueue $queue */
-               foreach ( $this->partitionQueues as $queue ) {
-                       try {
-                               $queue->waitForBackups();
-                       } catch ( JobQueueError $e ) {
-                               ++$failed;
-                               MWExceptionHandler::logException( $e );
-                       }
-               }
-               $this->throwErrorIfAllPartitionsDown( $failed );
-       }
-
-       protected function doGetPeriodicTasks() {
-               $tasks = array();
-               /** @var JobQueue $queue */
-               foreach ( $this->partitionQueues as $partition => $queue ) {
-                       foreach ( $queue->getPeriodicTasks() as $task => $def ) {
-                               $tasks["{$partition}:{$task}"] = $def;
-                       }
-               }
-
-               return $tasks;
-       }
-
-       protected function doFlushCaches() {
-               static $types = array(
-                       'empty',
-                       'size',
-                       'acquiredcount',
-                       'delayedcount',
-                       'abandonedcount'
-               );
-
-               foreach ( $types as $type ) {
-                       $this->cache->delete( $this->getCacheKey( $type ) );
-               }
-
-               /** @var JobQueue $queue */
-               foreach ( $this->partitionQueues as $queue ) {
-                       $queue->doFlushCaches();
-               }
-       }
-
-       public function getAllQueuedJobs() {
-               $iterator = new AppendIterator();
-
-               /** @var JobQueue $queue */
-               foreach ( $this->partitionQueues as $queue ) {
-                       $iterator->append( $queue->getAllQueuedJobs() );
-               }
-
-               return $iterator;
-       }
-
-       public function getAllDelayedJobs() {
-               $iterator = new AppendIterator();
-
-               /** @var JobQueue $queue */
-               foreach ( $this->partitionQueues as $queue ) {
-                       $iterator->append( $queue->getAllDelayedJobs() );
-               }
-
-               return $iterator;
-       }
-
-       public function getCoalesceLocationInternal() {
-               return "JobQueueFederated:wiki:{$this->wiki}" .
-                       sha1( serialize( array_keys( $this->partitionMap ) ) );
-       }
-
-       protected function doGetSiblingQueuesWithJobs( array $types ) {
-               $result = array();
-
-               $failed = 0;
-               /** @var JobQueue $queue */
-               foreach ( $this->partitionQueues as $queue ) {
-                       try {
-                               $nonEmpty = $queue->doGetSiblingQueuesWithJobs( $types );
-                               if ( is_array( $nonEmpty ) ) {
-                                       $result = array_unique( array_merge( $result, $nonEmpty ) );
-                               } else {
-                                       return null; // not supported on all partitions; bail
-                               }
-                               if ( count( $result ) == count( $types ) ) {
-                                       break; // short-circuit
-                               }
-                       } catch ( JobQueueError $e ) {
-                               ++$failed;
-                               MWExceptionHandler::logException( $e );
-                       }
-               }
-               $this->throwErrorIfAllPartitionsDown( $failed );
-
-               return array_values( $result );
-       }
-
-       protected function doGetSiblingQueueSizes( array $types ) {
-               $result = array();
-               $failed = 0;
-               /** @var JobQueue $queue */
-               foreach ( $this->partitionQueues as $queue ) {
-                       try {
-                               $sizes = $queue->doGetSiblingQueueSizes( $types );
-                               if ( is_array( $sizes ) ) {
-                                       foreach ( $sizes as $type => $size ) {
-                                               $result[$type] = isset( $result[$type] ) ? $result[$type] + $size : $size;
-                                       }
-                               } else {
-                                       return null; // not supported on all partitions; bail
-                               }
-                       } catch ( JobQueueError $e ) {
-                               ++$failed;
-                               MWExceptionHandler::logException( $e );
-                       }
-               }
-               $this->throwErrorIfAllPartitionsDown( $failed );
-
-               return $result;
-       }
-
-       /**
-        * Throw an error if no partitions available
-        *
-        * @param int $down The number of up partitions down
-        * @return void
-        * @throws JobQueueError
-        */
-       protected function throwErrorIfAllPartitionsDown( $down ) {
-               if ( $down >= count( $this->partitionQueues ) ) {
-                       throw new JobQueueError( 'No queue partitions available.' );
-               }
-       }
-
-       public function setTestingPrefix( $key ) {
-               /** @var JobQueue $queue */
-               foreach ( $this->partitionQueues as $queue ) {
-                       $queue->setTestingPrefix( $key );
-               }
-       }
-
-       /**
-        * @param $property
-        * @return string
-        */
-       private function getCacheKey( $property ) {
-               list( $db, $prefix ) = wfSplitWikiID( $this->wiki );
-
-               return wfForeignMemcKey( $db, $prefix, 'jobqueue', $this->type, $property );
-       }
-}
diff --git a/includes/job/JobQueueGroup.php b/includes/job/JobQueueGroup.php
deleted file mode 100644 (file)
index 90742ce..0000000
+++ /dev/null
@@ -1,417 +0,0 @@
-<?php
-/**
- * Job queue base 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Aaron Schulz
- */
-
-/**
- * Class to handle enqueueing of background jobs
- *
- * @ingroup JobQueue
- * @since 1.21
- */
-class JobQueueGroup {
-       /** @var array */
-       protected static $instances = array();
-
-       /** @var ProcessCacheLRU */
-       protected $cache;
-
-       /** @var string Wiki ID */
-       protected $wiki;
-
-       /** @var array Map of (bucket => (queue => JobQueue, types => list of types) */
-       protected $coalescedQueues;
-
-       const TYPE_DEFAULT = 1; // integer; jobs popped by default
-       const TYPE_ANY = 2; // integer; any job
-
-       const USE_CACHE = 1; // integer; use process or persistent cache
-
-       const PROC_CACHE_TTL = 15; // integer; seconds
-
-       const CACHE_VERSION = 1; // integer; cache version
-
-       /**
-        * @param string $wiki Wiki ID
-        */
-       protected function __construct( $wiki ) {
-               $this->wiki = $wiki;
-               $this->cache = new ProcessCacheLRU( 10 );
-       }
-
-       /**
-        * @param bool|string $wiki Wiki ID
-        * @return JobQueueGroup
-        */
-       public static function singleton( $wiki = false ) {
-               $wiki = ( $wiki === false ) ? wfWikiID() : $wiki;
-               if ( !isset( self::$instances[$wiki] ) ) {
-                       self::$instances[$wiki] = new self( $wiki );
-               }
-
-               return self::$instances[$wiki];
-       }
-
-       /**
-        * Destroy the singleton instances
-        *
-        * @return void
-        */
-       public static function destroySingletons() {
-               self::$instances = array();
-       }
-
-       /**
-        * Get the job queue object for a given queue type
-        *
-        * @param string $type
-        * @return JobQueue
-        */
-       public function get( $type ) {
-               global $wgJobTypeConf;
-
-               $conf = array( 'wiki' => $this->wiki, 'type' => $type );
-               if ( isset( $wgJobTypeConf[$type] ) ) {
-                       $conf = $conf + $wgJobTypeConf[$type];
-               } else {
-                       $conf = $conf + $wgJobTypeConf['default'];
-               }
-
-               return JobQueue::factory( $conf );
-       }
-
-       /**
-        * Insert jobs into the respective queues of with the belong.
-        *
-        * This inserts the jobs into the queue specified by $wgJobTypeConf
-        * and updates the aggregate job queue information cache as needed.
-        *
-        * @param Job|array $jobs A single Job or a list of Jobs
-        * @throws MWException
-        * @return bool
-        */
-       public function push( $jobs ) {
-               $jobs = is_array( $jobs ) ? $jobs : array( $jobs );
-               if ( !count( $jobs ) ) {
-                       return true;
-               }
-
-               $jobsByType = array(); // (job type => list of jobs)
-               foreach ( $jobs as $job ) {
-                       if ( $job instanceof IJobSpecification ) {
-                               $jobsByType[$job->getType()][] = $job;
-                       } else {
-                               throw new MWException( "Attempted to push a non-Job object into a queue." );
-                       }
-               }
-
-               $ok = true;
-               foreach ( $jobsByType as $type => $jobs ) {
-                       if ( $this->get( $type )->push( $jobs ) ) {
-                               JobQueueAggregator::singleton()->notifyQueueNonEmpty( $this->wiki, $type );
-                       } else {
-                               $ok = false;
-                       }
-               }
-
-               if ( $this->cache->has( 'queues-ready', 'list' ) ) {
-                       $list = $this->cache->get( 'queues-ready', 'list' );
-                       if ( count( array_diff( array_keys( $jobsByType ), $list ) ) ) {
-                               $this->cache->clear( 'queues-ready' );
-                       }
-               }
-
-               return $ok;
-       }
-
-       /**
-        * Pop a job off one of the job queues
-        *
-        * This pops a job off a queue as specified by $wgJobTypeConf and
-        * updates the aggregate job queue information cache as needed.
-        *
-        * @param int|string $qtype JobQueueGroup::TYPE_* constant or job type string
-        * @param int $flags Bitfield of JobQueueGroup::USE_* constants
-        * @param array $blacklist List of job types to ignore
-        * @return Job|bool Returns false on failure
-        */
-       public function pop( $qtype = self::TYPE_DEFAULT, $flags = 0, array $blacklist = array() ) {
-               $job = false;
-
-               if ( is_string( $qtype ) ) { // specific job type
-                       if ( !in_array( $qtype, $blacklist ) ) {
-                               $job = $this->get( $qtype )->pop();
-                               if ( !$job ) {
-                                       JobQueueAggregator::singleton()->notifyQueueEmpty( $this->wiki, $qtype );
-                               }
-                       }
-               } else { // any job in the "default" jobs types
-                       if ( $flags & self::USE_CACHE ) {
-                               if ( !$this->cache->has( 'queues-ready', 'list', self::PROC_CACHE_TTL ) ) {
-                                       $this->cache->set( 'queues-ready', 'list', $this->getQueuesWithJobs() );
-                               }
-                               $types = $this->cache->get( 'queues-ready', 'list' );
-                       } else {
-                               $types = $this->getQueuesWithJobs();
-                       }
-
-                       if ( $qtype == self::TYPE_DEFAULT ) {
-                               $types = array_intersect( $types, $this->getDefaultQueueTypes() );
-                       }
-
-                       $types = array_diff( $types, $blacklist ); // avoid selected types
-                       shuffle( $types ); // avoid starvation
-
-                       foreach ( $types as $type ) { // for each queue...
-                               $job = $this->get( $type )->pop();
-                               if ( $job ) { // found
-                                       break;
-                               } else { // not found
-                                       JobQueueAggregator::singleton()->notifyQueueEmpty( $this->wiki, $type );
-                                       $this->cache->clear( 'queues-ready' );
-                               }
-                       }
-               }
-
-               return $job;
-       }
-
-       /**
-        * Acknowledge that a job was completed
-        *
-        * @param Job $job
-        * @return bool
-        */
-       public function ack( Job $job ) {
-               return $this->get( $job->getType() )->ack( $job );
-       }
-
-       /**
-        * Register the "root job" of a given job into the queue for de-duplication.
-        * This should only be called right *after* all the new jobs have been inserted.
-        *
-        * @param Job $job
-        * @return bool
-        */
-       public function deduplicateRootJob( Job $job ) {
-               return $this->get( $job->getType() )->deduplicateRootJob( $job );
-       }
-
-       /**
-        * Wait for any slaves or backup queue servers to catch up.
-        *
-        * This does nothing for certain queue classes.
-        *
-        * @return void
-        * @throws MWException
-        */
-       public function waitForBackups() {
-               global $wgJobTypeConf;
-
-               wfProfileIn( __METHOD__ );
-               // Try to avoid doing this more than once per queue storage medium
-               foreach ( $wgJobTypeConf as $type => $conf ) {
-                       $this->get( $type )->waitForBackups();
-               }
-               wfProfileOut( __METHOD__ );
-       }
-
-       /**
-        * Get the list of queue types
-        *
-        * @return array List of strings
-        */
-       public function getQueueTypes() {
-               return array_keys( $this->getCachedConfigVar( 'wgJobClasses' ) );
-       }
-
-       /**
-        * Get the list of default queue types
-        *
-        * @return array List of strings
-        */
-       public function getDefaultQueueTypes() {
-               global $wgJobTypesExcludedFromDefaultQueue;
-
-               return array_diff( $this->getQueueTypes(), $wgJobTypesExcludedFromDefaultQueue );
-       }
-
-       /**
-        * Get the list of job types that have non-empty queues
-        *
-        * @return array List of job types that have non-empty queues
-        */
-       public function getQueuesWithJobs() {
-               $types = array();
-               foreach ( $this->getCoalescedQueues() as $info ) {
-                       $nonEmpty = $info['queue']->getSiblingQueuesWithJobs( $this->getQueueTypes() );
-                       if ( is_array( $nonEmpty ) ) { // batching features supported
-                               $types = array_merge( $types, $nonEmpty );
-                       } else { // we have to go through the queues in the bucket one-by-one
-                               foreach ( $info['types'] as $type ) {
-                                       if ( !$this->get( $type )->isEmpty() ) {
-                                               $types[] = $type;
-                                       }
-                               }
-                       }
-               }
-
-               return $types;
-       }
-
-       /**
-        * Get the size of the queus for a list of job types
-        *
-        * @return array Map of (job type => size)
-        */
-       public function getQueueSizes() {
-               $sizeMap = array();
-               foreach ( $this->getCoalescedQueues() as $info ) {
-                       $sizes = $info['queue']->getSiblingQueueSizes( $this->getQueueTypes() );
-                       if ( is_array( $sizes ) ) { // batching features supported
-                               $sizeMap = $sizeMap + $sizes;
-                       } else { // we have to go through the queues in the bucket one-by-one
-                               foreach ( $info['types'] as $type ) {
-                                       $sizeMap[$type] = $this->get( $type )->getSize();
-                               }
-                       }
-               }
-
-               return $sizeMap;
-       }
-
-       /**
-        * @return array
-        */
-       protected function getCoalescedQueues() {
-               global $wgJobTypeConf;
-
-               if ( $this->coalescedQueues === null ) {
-                       $this->coalescedQueues = array();
-                       foreach ( $wgJobTypeConf as $type => $conf ) {
-                               $queue = JobQueue::factory(
-                                       array( 'wiki' => $this->wiki, 'type' => 'null' ) + $conf );
-                               $loc = $queue->getCoalesceLocationInternal();
-                               if ( !isset( $this->coalescedQueues[$loc] ) ) {
-                                       $this->coalescedQueues[$loc]['queue'] = $queue;
-                                       $this->coalescedQueues[$loc]['types'] = array();
-                               }
-                               if ( $type === 'default' ) {
-                                       $this->coalescedQueues[$loc]['types'] = array_merge(
-                                               $this->coalescedQueues[$loc]['types'],
-                                               array_diff( $this->getQueueTypes(), array_keys( $wgJobTypeConf ) )
-                                       );
-                               } else {
-                                       $this->coalescedQueues[$loc]['types'][] = $type;
-                               }
-                       }
-               }
-
-               return $this->coalescedQueues;
-       }
-
-       /**
-        * Execute any due periodic queue maintenance tasks for all queues.
-        *
-        * A task is "due" if the time ellapsed since the last run is greater than
-        * the defined run period. Concurrent calls to this function will cause tasks
-        * to be attempted twice, so they may need their own methods of mutual exclusion.
-        *
-        * @return int Number of tasks run
-        */
-       public function executeReadyPeriodicTasks() {
-               global $wgMemc;
-
-               list( $db, $prefix ) = wfSplitWikiID( $this->wiki );
-               $key = wfForeignMemcKey( $db, $prefix, 'jobqueuegroup', 'taskruns', 'v1' );
-               $lastRuns = $wgMemc->get( $key ); // (queue => task => UNIX timestamp)
-
-               $count = 0;
-               $tasksRun = array(); // (queue => task => UNIX timestamp)
-               foreach ( $this->getQueueTypes() as $type ) {
-                       $queue = $this->get( $type );
-                       foreach ( $queue->getPeriodicTasks() as $task => $definition ) {
-                               if ( $definition['period'] <= 0 ) {
-                                       continue; // disabled
-                               } elseif ( !isset( $lastRuns[$type][$task] )
-                                       || $lastRuns[$type][$task] < ( time() - $definition['period'] )
-                               ) {
-                                       try {
-                                               if ( call_user_func( $definition['callback'] ) !== null ) {
-                                                       $tasksRun[$type][$task] = time();
-                                                       ++$count;
-                                               }
-                                       } catch ( JobQueueError $e ) {
-                                               MWExceptionHandler::logException( $e );
-                                       }
-                               }
-                       }
-                       // The tasks may have recycled jobs or release delayed jobs into the queue
-                       if ( isset( $tasksRun[$type] ) && !$queue->isEmpty() ) {
-                               JobQueueAggregator::singleton()->notifyQueueNonEmpty( $this->wiki, $type );
-                       }
-               }
-
-               $wgMemc->merge( $key, function ( $cache, $key, $lastRuns ) use ( $tasksRun ) {
-                       if ( is_array( $lastRuns ) ) {
-                               foreach ( $tasksRun as $type => $tasks ) {
-                                       foreach ( $tasks as $task => $timestamp ) {
-                                               if ( !isset( $lastRuns[$type][$task] )
-                                                       || $timestamp > $lastRuns[$type][$task]
-                                               ) {
-                                                       $lastRuns[$type][$task] = $timestamp;
-                                               }
-                                       }
-                               }
-                       } else {
-                               $lastRuns = $tasksRun;
-                       }
-
-                       return $lastRuns;
-               } );
-
-               return $count;
-       }
-
-       /**
-        * @param $name string
-        * @return mixed
-        */
-       private function getCachedConfigVar( $name ) {
-               global $wgConf, $wgMemc;
-
-               if ( $this->wiki === wfWikiID() ) {
-                       return $GLOBALS[$name]; // common case
-               } else {
-                       list( $db, $prefix ) = wfSplitWikiID( $this->wiki );
-                       $key = wfForeignMemcKey( $db, $prefix, 'configvalue', $name );
-                       $value = $wgMemc->get( $key ); // ('v' => ...) or false
-                       if ( is_array( $value ) ) {
-                               return $value['v'];
-                       } else {
-                               $value = $wgConf->getConfig( $this->wiki, $name );
-                               $wgMemc->set( $key, array( 'v' => $value ), 86400 + mt_rand( 0, 86400 ) );
-
-                               return $value;
-                       }
-               }
-       }
-}
diff --git a/includes/job/JobQueueRedis.php b/includes/job/JobQueueRedis.php
deleted file mode 100644 (file)
index c785cb2..0000000
+++ /dev/null
@@ -1,874 +0,0 @@
-<?php
-/**
- * Redis-backed job queue 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Aaron Schulz
- */
-
-/**
- * Class to handle job queues stored in Redis
- *
- * This is faster, less resource intensive, queue that JobQueueDB.
- * All data for a queue using this class is placed into one redis server.
- *
- * There are eight main redis keys used to track jobs:
- *   - l-unclaimed  : A list of job IDs used for ready unclaimed jobs
- *   - z-claimed    : A sorted set of (job ID, UNIX timestamp as score) used for job retries
- *   - z-abandoned  : A sorted set of (job ID, UNIX timestamp as score) used for broken jobs
- *   - z-delayed    : A sorted set of (job ID, UNIX timestamp as score) used for delayed jobs
- *   - h-idBySha1   : A hash of (SHA1 => job ID) for unclaimed jobs used for de-duplication
- *   - h-sha1ById   : A hash of (job ID => SHA1) for unclaimed jobs used for de-duplication
- *   - h-attempts   : A hash of (job ID => attempt count) used for job claiming/retries
- *   - h-data       : A hash of (job ID => serialized blobs) for job storage
- * A job ID can be in only one of z-delayed, l-unclaimed, z-claimed, and z-abandoned.
- * If an ID appears in any of those lists, it should have a h-data entry for its ID.
- * If a job has a SHA1 de-duplication value and its ID is in l-unclaimed or z-delayed, then
- * there should be no other such jobs with that SHA1. Every h-idBySha1 entry has an h-sha1ById
- * entry and every h-sha1ById must refer to an ID that is l-unclaimed. If a job has its
- * ID in z-claimed or z-abandoned, then it must also have an h-attempts entry for its ID.
- *
- * Additionally, "rootjob:* keys track "root jobs" used for additional de-duplication.
- * Aside from root job keys, all keys have no expiry, and are only removed when jobs are run.
- * All the keys are prefixed with the relevant wiki ID information.
- *
- * This class requires Redis 2.6 as it makes use Lua scripts for fast atomic operations.
- * Additionally, it should be noted that redis has different persistence modes, such
- * as rdb snapshots, journaling, and no persistent. Appropriate configuration should be
- * made on the servers based on what queues are using it and what tolerance they have.
- *
- * @ingroup JobQueue
- * @ingroup Redis
- * @since 1.22
- */
-class JobQueueRedis extends JobQueue {
-       /** @var RedisConnectionPool */
-       protected $redisPool;
-
-       /** @var string Server address */
-       protected $server;
-
-       /** @var string Compression method to use */
-       protected $compression;
-
-       const MAX_AGE_PRUNE = 604800; // integer; seconds a job can live once claimed (7 days)
-
-       /** @var string Key to prefix the queue keys with (used for testing) */
-       protected $key;
-
-       /**
-        * @var null|int maximum seconds between execution of periodic tasks.  Used to speed up
-        * testing but should otherwise be left unset.
-        */
-       protected $maximumPeriodicTaskSeconds;
-
-       /**
-        * @params include:
-        *   - redisConfig : An array of parameters to RedisConnectionPool::__construct().
-        *                   Note that the serializer option is ignored as "none" is always used.
-        *   - redisServer : A hostname/port combination or the absolute path of a UNIX socket.
-        *                   If a hostname is specified but no port, the standard port number
-        *                   6379 will be used. Required.
-        *   - compression : The type of compression to use; one of (none,gzip).
-        *   - maximumPeriodicTaskSeconds : Maximum seconds between check periodic tasks.  Set to
-        *                   force faster execution of periodic tasks for inegration tests that
-        *                   rely on checkDelay.  Without this the integration tests are very very
-        *                   slow.  This really shouldn't be set in production.
-        * @param array $params
-        */
-       public function __construct( array $params ) {
-               parent::__construct( $params );
-               $params['redisConfig']['serializer'] = 'none'; // make it easy to use Lua
-               $this->server = $params['redisServer'];
-               $this->compression = isset( $params['compression'] ) ? $params['compression'] : 'none';
-               $this->redisPool = RedisConnectionPool::singleton( $params['redisConfig'] );
-               $this->maximumPeriodicTaskSeconds = isset( $params['maximumPeriodicTaskSeconds'] ) ?
-                       $params['maximumPeriodicTaskSeconds'] : null;
-       }
-
-       protected function supportedOrders() {
-               return array( 'timestamp', 'fifo' );
-       }
-
-       protected function optimalOrder() {
-               return 'fifo';
-       }
-
-       protected function supportsDelayedJobs() {
-               return true;
-       }
-
-       /**
-        * @see JobQueue::doIsEmpty()
-        * @return bool
-        * @throws MWException
-        */
-       protected function doIsEmpty() {
-               return $this->doGetSize() == 0;
-       }
-
-       /**
-        * @see JobQueue::doGetSize()
-        * @return int
-        * @throws MWException
-        */
-       protected function doGetSize() {
-               $conn = $this->getConnection();
-               try {
-                       return $conn->lSize( $this->getQueueKey( 'l-unclaimed' ) );
-               } catch ( RedisException $e ) {
-                       $this->throwRedisException( $conn, $e );
-               }
-       }
-
-       /**
-        * @see JobQueue::doGetAcquiredCount()
-        * @return int
-        * @throws JobQueueError
-        */
-       protected function doGetAcquiredCount() {
-               if ( $this->claimTTL <= 0 ) {
-                       return 0; // no acknowledgements
-               }
-               $conn = $this->getConnection();
-               try {
-                       $conn->multi( Redis::PIPELINE );
-                       $conn->zSize( $this->getQueueKey( 'z-claimed' ) );
-                       $conn->zSize( $this->getQueueKey( 'z-abandoned' ) );
-
-                       return array_sum( $conn->exec() );
-               } catch ( RedisException $e ) {
-                       $this->throwRedisException( $conn, $e );
-               }
-       }
-
-       /**
-        * @see JobQueue::doGetDelayedCount()
-        * @return int
-        * @throws JobQueueError
-        */
-       protected function doGetDelayedCount() {
-               if ( !$this->checkDelay ) {
-                       return 0; // no delayed jobs
-               }
-               $conn = $this->getConnection();
-               try {
-                       return $conn->zSize( $this->getQueueKey( 'z-delayed' ) );
-               } catch ( RedisException $e ) {
-                       $this->throwRedisException( $conn, $e );
-               }
-       }
-
-       /**
-        * @see JobQueue::doGetAbandonedCount()
-        * @return int
-        * @throws JobQueueError
-        */
-       protected function doGetAbandonedCount() {
-               if ( $this->claimTTL <= 0 ) {
-                       return 0; // no acknowledgements
-               }
-               $conn = $this->getConnection();
-               try {
-                       return $conn->zSize( $this->getQueueKey( 'z-abandoned' ) );
-               } catch ( RedisException $e ) {
-                       $this->throwRedisException( $conn, $e );
-               }
-       }
-
-       /**
-        * @see JobQueue::doBatchPush()
-        * @param array $jobs
-        * @param $flags
-        * @return bool
-        * @throws JobQueueError
-        */
-       protected function doBatchPush( array $jobs, $flags ) {
-               // Convert the jobs into field maps (de-duplicated against each other)
-               $items = array(); // (job ID => job fields map)
-               foreach ( $jobs as $job ) {
-                       $item = $this->getNewJobFields( $job );
-                       if ( strlen( $item['sha1'] ) ) { // hash identifier => de-duplicate
-                               $items[$item['sha1']] = $item;
-                       } else {
-                               $items[$item['uuid']] = $item;
-                       }
-               }
-
-               if ( !count( $items ) ) {
-                       return true; // nothing to do
-               }
-
-               $conn = $this->getConnection();
-               try {
-                       // Actually push the non-duplicate jobs into the queue...
-                       if ( $flags & self::QOS_ATOMIC ) {
-                               $batches = array( $items ); // all or nothing
-                       } else {
-                               $batches = array_chunk( $items, 500 ); // avoid tying up the server
-                       }
-                       $failed = 0;
-                       $pushed = 0;
-                       foreach ( $batches as $itemBatch ) {
-                               $added = $this->pushBlobs( $conn, $itemBatch );
-                               if ( is_int( $added ) ) {
-                                       $pushed += $added;
-                               } else {
-                                       $failed += count( $itemBatch );
-                               }
-                       }
-                       if ( $failed > 0 ) {
-                               wfDebugLog( 'JobQueueRedis', "Could not insert {$failed} {$this->type} job(s)." );
-
-                               return false;
-                       }
-                       JobQueue::incrStats( 'job-insert', $this->type, count( $items ) );
-                       JobQueue::incrStats( 'job-insert-duplicate', $this->type,
-                               count( $items ) - $failed - $pushed );
-               } catch ( RedisException $e ) {
-                       $this->throwRedisException( $conn, $e );
-               }
-
-               return true;
-       }
-
-       /**
-        * @param RedisConnRef $conn
-        * @param array $items List of results from JobQueueRedis::getNewJobFields()
-        * @return int Number of jobs inserted (duplicates are ignored)
-        * @throws RedisException
-        */
-       protected function pushBlobs( RedisConnRef $conn, array $items ) {
-               $args = array(); // ([id, sha1, rtime, blob [, id, sha1, rtime, blob ... ] ] )
-               foreach ( $items as $item ) {
-                       $args[] = (string)$item['uuid'];
-                       $args[] = (string)$item['sha1'];
-                       $args[] = (string)$item['rtimestamp'];
-                       $args[] = (string)$this->serialize( $item );
-               }
-               static $script =
-<<<LUA
-               local kUnclaimed, kSha1ById, kIdBySha1, kDelayed, kData = unpack(KEYS)
-               if #ARGV % 4 ~= 0 then return redis.error_reply('Unmatched arguments') end
-               local pushed = 0
-               for i = 1,#ARGV,4 do
-                       local id,sha1,rtimestamp,blob = ARGV[i],ARGV[i+1],ARGV[i+2],ARGV[i+3]
-                       if sha1 == '' or redis.call('hExists',kIdBySha1,sha1) == 0 then
-                               if 1*rtimestamp > 0 then
-                                       -- Insert into delayed queue (release time as score)
-                                       redis.call('zAdd',kDelayed,rtimestamp,id)
-                               else
-                                       -- Insert into unclaimed queue
-                                       redis.call('lPush',kUnclaimed,id)
-                               end
-                               if sha1 ~= '' then
-                                       redis.call('hSet',kSha1ById,id,sha1)
-                                       redis.call('hSet',kIdBySha1,sha1,id)
-                               end
-                               redis.call('hSet',kData,id,blob)
-                               pushed = pushed + 1
-                       end
-               end
-               return pushed
-LUA;
-               return $conn->luaEval( $script,
-                       array_merge(
-                               array(
-                                       $this->getQueueKey( 'l-unclaimed' ), # KEYS[1]
-                                       $this->getQueueKey( 'h-sha1ById' ), # KEYS[2]
-                                       $this->getQueueKey( 'h-idBySha1' ), # KEYS[3]
-                                       $this->getQueueKey( 'z-delayed' ), # KEYS[4]
-                                       $this->getQueueKey( 'h-data' ), # KEYS[5]
-                               ),
-                               $args
-                       ),
-                       5 # number of first argument(s) that are keys
-               );
-       }
-
-       /**
-        * @see JobQueue::doPop()
-        * @return Job|bool
-        * @throws JobQueueError
-        */
-       protected function doPop() {
-               $job = false;
-
-               // Push ready delayed jobs into the queue every 10 jobs to spread the load.
-               // This is also done as a periodic task, but we don't want too much done at once.
-               if ( $this->checkDelay && mt_rand( 0, 9 ) == 0 ) {
-                       $this->recyclePruneAndUndelayJobs();
-               }
-
-               $conn = $this->getConnection();
-               try {
-                       do {
-                               if ( $this->claimTTL > 0 ) {
-                                       // Keep the claimed job list down for high-traffic queues
-                                       if ( mt_rand( 0, 99 ) == 0 ) {
-                                               $this->recyclePruneAndUndelayJobs();
-                                       }
-                                       $blob = $this->popAndAcquireBlob( $conn );
-                               } else {
-                                       $blob = $this->popAndDeleteBlob( $conn );
-                               }
-                               if ( $blob === false ) {
-                                       break; // no jobs; nothing to do
-                               }
-
-                               JobQueue::incrStats( 'job-pop', $this->type );
-                               $item = $this->unserialize( $blob );
-                               if ( $item === false ) {
-                                       wfDebugLog( 'JobQueueRedis', "Could not unserialize {$this->type} job." );
-                                       continue;
-                               }
-
-                               // If $item is invalid, recyclePruneAndUndelayJobs() will cleanup as needed
-                               $job = $this->getJobFromFields( $item ); // may be false
-                       } while ( !$job ); // job may be false if invalid
-               } catch ( RedisException $e ) {
-                       $this->throwRedisException( $conn, $e );
-               }
-
-               return $job;
-       }
-
-       /**
-        * @param RedisConnRef $conn
-        * @return array serialized string or false
-        * @throws RedisException
-        */
-       protected function popAndDeleteBlob( RedisConnRef $conn ) {
-               static $script =
-<<<LUA
-               local kUnclaimed, kSha1ById, kIdBySha1, kData = unpack(KEYS)
-               -- Pop an item off the queue
-               local id = redis.call('rpop',kUnclaimed)
-               if not id then return false end
-               -- Get the job data and remove it
-               local item = redis.call('hGet',kData,id)
-               redis.call('hDel',kData,id)
-               -- Allow new duplicates of this job
-               local sha1 = redis.call('hGet',kSha1ById,id)
-               if sha1 then redis.call('hDel',kIdBySha1,sha1) end
-               redis.call('hDel',kSha1ById,id)
-               -- Return the job data
-               return item
-LUA;
-               return $conn->luaEval( $script,
-                       array(
-                               $this->getQueueKey( 'l-unclaimed' ), # KEYS[1]
-                               $this->getQueueKey( 'h-sha1ById' ), # KEYS[2]
-                               $this->getQueueKey( 'h-idBySha1' ), # KEYS[3]
-                               $this->getQueueKey( 'h-data' ), # KEYS[4]
-                       ),
-                       4 # number of first argument(s) that are keys
-               );
-       }
-
-       /**
-        * @param RedisConnRef $conn
-        * @return array serialized string or false
-        * @throws RedisException
-        */
-       protected function popAndAcquireBlob( RedisConnRef $conn ) {
-               static $script =
-<<<LUA
-               local kUnclaimed, kSha1ById, kIdBySha1, kClaimed, kAttempts, kData = unpack(KEYS)
-               -- Pop an item off the queue
-               local id = redis.call('rPop',kUnclaimed)
-               if not id then return false end
-               -- Allow new duplicates of this job
-               local sha1 = redis.call('hGet',kSha1ById,id)
-               if sha1 then redis.call('hDel',kIdBySha1,sha1) end
-               redis.call('hDel',kSha1ById,id)
-               -- Mark the jobs as claimed and return it
-               redis.call('zAdd',kClaimed,ARGV[1],id)
-               redis.call('hIncrBy',kAttempts,id,1)
-               return redis.call('hGet',kData,id)
-LUA;
-               return $conn->luaEval( $script,
-                       array(
-                               $this->getQueueKey( 'l-unclaimed' ), # KEYS[1]
-                               $this->getQueueKey( 'h-sha1ById' ), # KEYS[2]
-                               $this->getQueueKey( 'h-idBySha1' ), # KEYS[3]
-                               $this->getQueueKey( 'z-claimed' ), # KEYS[4]
-                               $this->getQueueKey( 'h-attempts' ), # KEYS[5]
-                               $this->getQueueKey( 'h-data' ), # KEYS[6]
-                               time(), # ARGV[1] (injected to be replication-safe)
-                       ),
-                       6 # number of first argument(s) that are keys
-               );
-       }
-
-       /**
-        * @see JobQueue::doAck()
-        * @param Job $job
-        * @return Job|bool
-        * @throws MWException|JobQueueError
-        */
-       protected function doAck( Job $job ) {
-               if ( !isset( $job->metadata['uuid'] ) ) {
-                       throw new MWException( "Job of type '{$job->getType()}' has no UUID." );
-               }
-               if ( $this->claimTTL > 0 ) {
-                       $conn = $this->getConnection();
-                       try {
-                               static $script =
-<<<LUA
-                               local kClaimed, kAttempts, kData = unpack(KEYS)
-                               -- Unmark the job as claimed
-                               redis.call('zRem',kClaimed,ARGV[1])
-                               redis.call('hDel',kAttempts,ARGV[1])
-                               -- Delete the job data itself
-                               return redis.call('hDel',kData,ARGV[1])
-LUA;
-                               $res = $conn->luaEval( $script,
-                                       array(
-                                               $this->getQueueKey( 'z-claimed' ), # KEYS[1]
-                                               $this->getQueueKey( 'h-attempts' ), # KEYS[2]
-                                               $this->getQueueKey( 'h-data' ), # KEYS[3]
-                                               $job->metadata['uuid'] # ARGV[1]
-                                       ),
-                                       3 # number of first argument(s) that are keys
-                               );
-
-                               if ( !$res ) {
-                                       wfDebugLog( 'JobQueueRedis', "Could not acknowledge {$this->type} job." );
-
-                                       return false;
-                               }
-                       } catch ( RedisException $e ) {
-                               $this->throwRedisException( $conn, $e );
-                       }
-               }
-
-               return true;
-       }
-
-       /**
-        * @see JobQueue::doDeduplicateRootJob()
-        * @param Job $job
-        * @return bool
-        * @throws MWException|JobQueueError
-        */
-       protected function doDeduplicateRootJob( Job $job ) {
-               if ( !$job->hasRootJobParams() ) {
-                       throw new MWException( "Cannot register root job; missing parameters." );
-               }
-               $params = $job->getRootJobParams();
-
-               $key = $this->getRootJobCacheKey( $params['rootJobSignature'] );
-
-               $conn = $this->getConnection();
-               try {
-                       $timestamp = $conn->get( $key ); // current last timestamp of this job
-                       if ( $timestamp && $timestamp >= $params['rootJobTimestamp'] ) {
-                               return true; // a newer version of this root job was enqueued
-                       }
-
-                       // Update the timestamp of the last root job started at the location...
-                       return $conn->set( $key, $params['rootJobTimestamp'], self::ROOTJOB_TTL ); // 2 weeks
-               } catch ( RedisException $e ) {
-                       $this->throwRedisException( $conn, $e );
-               }
-       }
-
-       /**
-        * @see JobQueue::doIsRootJobOldDuplicate()
-        * @param Job $job
-        * @return bool
-        * @throws JobQueueError
-        */
-       protected function doIsRootJobOldDuplicate( Job $job ) {
-               if ( !$job->hasRootJobParams() ) {
-                       return false; // job has no de-deplication info
-               }
-               $params = $job->getRootJobParams();
-
-               $conn = $this->getConnection();
-               try {
-                       // Get the last time this root job was enqueued
-                       $timestamp = $conn->get( $this->getRootJobCacheKey( $params['rootJobSignature'] ) );
-               } catch ( RedisException $e ) {
-                       $this->throwRedisException( $conn, $e );
-               }
-
-               // Check if a new root job was started at the location after this one's...
-               return ( $timestamp && $timestamp > $params['rootJobTimestamp'] );
-       }
-
-       /**
-        * @see JobQueue::doDelete()
-        * @return bool
-        * @throws JobQueueError
-        */
-       protected function doDelete() {
-               static $props = array( 'l-unclaimed', 'z-claimed', 'z-abandoned',
-                       'z-delayed', 'h-idBySha1', 'h-sha1ById', 'h-attempts', 'h-data' );
-
-               $conn = $this->getConnection();
-               try {
-                       $keys = array();
-                       foreach ( $props as $prop ) {
-                               $keys[] = $this->getQueueKey( $prop );
-                       }
-
-                       return ( $conn->delete( $keys ) !== false );
-               } catch ( RedisException $e ) {
-                       $this->throwRedisException( $conn, $e );
-               }
-       }
-
-       /**
-        * @see JobQueue::getAllQueuedJobs()
-        * @return Iterator
-        */
-       public function getAllQueuedJobs() {
-               $conn = $this->getConnection();
-               try {
-                       $that = $this;
-
-                       return new MappedIterator(
-                               $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( $conn, $e );
-               }
-       }
-
-       /**
-        * @see JobQueue::getAllQueuedJobs()
-        * @return Iterator
-        */
-       public function getAllDelayedJobs() {
-               $conn = $this->getConnection();
-               try {
-                       $that = $this;
-
-                       return new MappedIterator( // delayed jobs
-                               $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( $conn, $e );
-               }
-       }
-
-       public function getCoalesceLocationInternal() {
-               return "RedisServer:" . $this->server;
-       }
-
-       protected function doGetSiblingQueuesWithJobs( array $types ) {
-               return array_keys( array_filter( $this->doGetSiblingQueueSizes( $types ) ) );
-       }
-
-       protected function doGetSiblingQueueSizes( array $types ) {
-               $sizes = array(); // (type => size)
-               $types = array_values( $types ); // reindex
-               $conn = $this->getConnection();
-               try {
-                       $conn->multi( Redis::PIPELINE );
-                       foreach ( $types as $type ) {
-                               $conn->lSize( $this->getQueueKey( 'l-unclaimed', $type ) );
-                       }
-                       $res = $conn->exec();
-                       if ( is_array( $res ) ) {
-                               foreach ( $res as $i => $size ) {
-                                       $sizes[$types[$i]] = $size;
-                               }
-                       }
-               } catch ( RedisException $e ) {
-                       $this->throwRedisException( $conn, $e );
-               }
-
-               return $sizes;
-       }
-
-       /**
-        * This function should not be called outside JobQueueRedis
-        *
-        * @param $uid string
-        * @param $conn RedisConnRef
-        * @return Job|bool Returns false if the job does not exist
-        * @throws MWException|JobQueueError
-        */
-       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'." );
-                       }
-                       $title = Title::makeTitle( $item['namespace'], $item['title'] );
-                       $job = Job::factory( $item['type'], $title, $item['params'] );
-                       $job->metadata['uuid'] = $item['uuid'];
-
-                       return $job;
-               } catch ( RedisException $e ) {
-                       $this->throwRedisException( $conn, $e );
-               }
-       }
-
-       /**
-        * Recycle or destroy any jobs that have been claimed for too long
-        * and release any ready delayed jobs into the queue
-        *
-        * @return int Number of jobs recycled/deleted/undelayed
-        * @throws MWException|JobQueueError
-        */
-       public function recyclePruneAndUndelayJobs() {
-               $count = 0;
-               // For each job item that can be retried, we need to add it back to the
-               // main queue and remove it from the list of currenty claimed job items.
-               // For those that cannot, they are marked as dead and kept around for
-               // investigation and manual job restoration but are eventually deleted.
-               $conn = $this->getConnection();
-               try {
-                       $now = time();
-                       static $script =
-<<<LUA
-                       local kClaimed, kAttempts, kUnclaimed, kData, kAbandoned, kDelayed = unpack(KEYS)
-                       local released,abandoned,pruned,undelayed = 0,0,0,0
-                       -- Get all non-dead jobs that have an expired claim on them.
-                       -- The score for each item is the last claim timestamp (UNIX).
-                       local staleClaims = redis.call('zRangeByScore',kClaimed,0,ARGV[1])
-                       for k,id in ipairs(staleClaims) do
-                               local timestamp = redis.call('zScore',kClaimed,id)
-                               local attempts = redis.call('hGet',kAttempts,id)
-                               if attempts < ARGV[3] then
-                                       -- Claim expired and retries left: re-enqueue the job
-                                       redis.call('lPush',kUnclaimed,id)
-                                       redis.call('hIncrBy',kAttempts,id,1)
-                                       released = released + 1
-                               else
-                                       -- Claim expired and no retries left: mark the job as dead
-                                       redis.call('zAdd',kAbandoned,timestamp,id)
-                                       abandoned = abandoned + 1
-                               end
-                               redis.call('zRem',kClaimed,id)
-                       end
-                       -- Get all of the dead jobs that have been marked as dead for too long.
-                       -- The score for each item is the last claim timestamp (UNIX).
-                       local deadClaims = redis.call('zRangeByScore',kAbandoned,0,ARGV[2])
-                       for k,id in ipairs(deadClaims) do
-                               -- Stale and out of retries: remove any traces of the job
-                               redis.call('zRem',kAbandoned,id)
-                               redis.call('hDel',kAttempts,id)
-                               redis.call('hDel',kData,id)
-                               pruned = pruned + 1
-                       end
-                       -- Get the list of ready delayed jobs, sorted by readiness (UNIX timestamp)
-                       local ids = redis.call('zRangeByScore',kDelayed,0,ARGV[4])
-                       -- Migrate the jobs from the "delayed" set to the "unclaimed" list
-                       for k,id in ipairs(ids) do
-                               redis.call('lPush',kUnclaimed,id)
-                               redis.call('zRem',kDelayed,id)
-                       end
-                       undelayed = #ids
-                       return {released,abandoned,pruned,undelayed}
-LUA;
-                       $res = $conn->luaEval( $script,
-                               array(
-                                       $this->getQueueKey( 'z-claimed' ), # KEYS[1]
-                                       $this->getQueueKey( 'h-attempts' ), # KEYS[2]
-                                       $this->getQueueKey( 'l-unclaimed' ), # KEYS[3]
-                                       $this->getQueueKey( 'h-data' ), # KEYS[4]
-                                       $this->getQueueKey( 'z-abandoned' ), # KEYS[5]
-                                       $this->getQueueKey( 'z-delayed' ), # KEYS[6]
-                                       $now - $this->claimTTL, # ARGV[1]
-                                       $now - self::MAX_AGE_PRUNE, # ARGV[2]
-                                       $this->maxTries, # ARGV[3]
-                                       $now # ARGV[4]
-                               ),
-                               6 # number of first argument(s) that are keys
-                       );
-                       if ( $res ) {
-                               list( $released, $abandoned, $pruned, $undelayed ) = $res;
-                               $count += $released + $pruned + $undelayed;
-                               JobQueue::incrStats( 'job-recycle', $this->type, $released );
-                               JobQueue::incrStats( 'job-abandon', $this->type, $abandoned );
-                       }
-               } catch ( RedisException $e ) {
-                       $this->throwRedisException( $conn, $e );
-               }
-
-               return $count;
-       }
-
-       /**
-        * @return array
-        */
-       protected function doGetPeriodicTasks() {
-               $periods = array( 3600 ); // standard cleanup (useful on config change)
-               if ( $this->claimTTL > 0 ) {
-                       $periods[] = ceil( $this->claimTTL / 2 ); // avoid bad timing
-               }
-               if ( $this->checkDelay ) {
-                       $periods[] = 300; // 5 minutes
-               }
-               $period = min( $periods );
-               $period = max( $period, 30 ); // sanity
-               // Support override for faster testing
-               if ( $this->maximumPeriodicTaskSeconds !== null ) {
-                       $period = min( $period, $this->maximumPeriodicTaskSeconds );
-               }
-               return array(
-                       'recyclePruneAndUndelayJobs' => array(
-                               'callback' => array( $this, 'recyclePruneAndUndelayJobs' ),
-                               'period'   => $period,
-                       )
-               );
-       }
-
-       /**
-        * @param IJobSpecification $job
-        * @return array
-        */
-       protected function getNewJobFields( IJobSpecification $job ) {
-               return array(
-                       // Fields that describe the nature of the job
-                       'type' => $job->getType(),
-                       'namespace' => $job->getTitle()->getNamespace(),
-                       'title' => $job->getTitle()->getDBkey(),
-                       'params' => $job->getParams(),
-                       // Some jobs cannot run until a "release timestamp"
-                       'rtimestamp' => $job->getReleaseTimestamp() ?: 0,
-                       // Additional job metadata
-                       'uuid' => UIDGenerator::newRawUUIDv4( UIDGenerator::QUICK_RAND ),
-                       'sha1' => $job->ignoreDuplicates()
-                               ? wfBaseConvert( sha1( serialize( $job->getDeduplicationInfo() ) ), 16, 36, 31 )
-                               : '',
-                       'timestamp' => time() // UNIX timestamp
-               );
-       }
-
-       /**
-        * @param $fields array
-        * @return Job|bool
-        */
-       protected function getJobFromFields( array $fields ) {
-               $title = Title::makeTitleSafe( $fields['namespace'], $fields['title'] );
-               if ( $title ) {
-                       $job = Job::factory( $fields['type'], $title, $fields['params'] );
-                       $job->metadata['uuid'] = $fields['uuid'];
-
-                       return $job;
-               }
-
-               return false;
-       }
-
-       /**
-        * @param array $fields
-        * @return string Serialized and possibly compressed version of $fields
-        */
-       protected function serialize( array $fields ) {
-               $blob = serialize( $fields );
-               if ( $this->compression === 'gzip'
-                       && strlen( $blob ) >= 1024
-                       && function_exists( 'gzdeflate' )
-               ) {
-                       $object = (object)array( 'blob' => gzdeflate( $blob ), 'enc' => 'gzip' );
-                       $blobz = serialize( $object );
-
-                       return ( strlen( $blobz ) < strlen( $blob ) ) ? $blobz : $blob;
-               } else {
-                       return $blob;
-               }
-       }
-
-       /**
-        * @param string $blob
-        * @return array|bool Unserialized version of $blob or false
-        */
-       protected function unserialize( $blob ) {
-               $fields = unserialize( $blob );
-               if ( is_object( $fields ) ) {
-                       if ( $fields->enc === 'gzip' && function_exists( 'gzinflate' ) ) {
-                               $fields = unserialize( gzinflate( $fields->blob ) );
-                       } else {
-                               $fields = false;
-                       }
-               }
-
-               return is_array( $fields ) ? $fields : false;
-       }
-
-       /**
-        * Get a connection to the server that handles all sub-queues for this queue
-        *
-        * @return RedisConnRef
-        * @throws JobQueueConnectionError
-        */
-       protected function getConnection() {
-               $conn = $this->redisPool->getConnection( $this->server );
-               if ( !$conn ) {
-                       throw new JobQueueConnectionError( "Unable to connect to redis server." );
-               }
-
-               return $conn;
-       }
-
-       /**
-        * @param $conn RedisConnRef
-        * @param $e RedisException
-        * @throws JobQueueError
-        */
-       protected function throwRedisException( RedisConnRef $conn, $e ) {
-               $this->redisPool->handleError( $conn, $e );
-               throw new JobQueueError( "Redis server error: {$e->getMessage()}\n" );
-       }
-
-       /**
-        * @param $prop string
-        * @param $type string|null
-        * @return string
-        */
-       private function getQueueKey( $prop, $type = null ) {
-               $type = is_string( $type ) ? $type : $this->type;
-               list( $db, $prefix ) = wfSplitWikiID( $this->wiki );
-               if ( strlen( $this->key ) ) { // namespaced queue (for testing)
-                       return wfForeignMemcKey( $db, $prefix, 'jobqueue', $type, $this->key, $prop );
-               } else {
-                       return wfForeignMemcKey( $db, $prefix, 'jobqueue', $type, $prop );
-               }
-       }
-
-       /**
-        * @param $key string
-        * @return void
-        */
-       public function setTestingPrefix( $key ) {
-               $this->key = $key;
-       }
-}
diff --git a/includes/job/JobSpecification.php b/includes/job/JobSpecification.php
deleted file mode 100644 (file)
index e074e5c..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-<?php
-/**
- * Job queue task description base 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
- * 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 JobQueue
- */
-
-/**
- * Job queue task description interface
- *
- * @ingroup JobQueue
- * @since 1.23
- */
-interface IJobSpecification {
-       /**
-        * @return string Job type
-        */
-       public function getType();
-
-       /**
-        * @return array
-        */
-       public function getParams();
-
-       /**
-        * @return int|null UNIX timestamp to delay running this job until, otherwise null
-        */
-       public function getReleaseTimestamp();
-
-       /**
-        * @return bool Whether only one of each identical set of jobs should be run
-        */
-       public function ignoreDuplicates();
-
-       /**
-        * Subclasses may need to override this to make duplication detection work.
-        * The resulting map conveys everything that makes the job unique. This is
-        * only checked if ignoreDuplicates() returns true, meaning that duplicate
-        * jobs are supposed to be ignored.
-        *
-        * @return array Map of key/values
-        */
-       public function getDeduplicationInfo();
-
-       /**
-        * @return Title Descriptive title (this can simply be informative)
-        */
-       public function getTitle();
-}
-
-/**
- * Job queue task description base code
- *
- * Example usage:
- * <code>
- * $job = new JobSpecification(
- *             'null',
- *             array( 'lives' => 1, 'usleep' => 100, 'pi' => 3.141569 ),
- *             array( 'removeDuplicates' => 1 ),
- *             Title::makeTitle( NS_SPECIAL, 'nullity' )
- * );
- * JobQueueGroup::singleton()->push( $job )
- * </code>
- *
- * @ingroup JobQueue
- * @since 1.23
- */
-class JobSpecification implements IJobSpecification {
-       /** @var string */
-       protected $type;
-
-       /** @var array Array of job parameters or false if none */
-       protected $params;
-
-       /** @var Title */
-       protected $title;
-
-       /** @var bool Expensive jobs may set this to true */
-       protected $ignoreDuplicates;
-
-       /**
-        * @param string $type
-        * @param array $params Map of key/values
-        * @param array $opts Map of key/values
-        * @param Title $title Optional descriptive title
-        */
-       public function __construct(
-               $type, array $params, array $opts = array(), Title $title = null
-       ) {
-               $this->validateParams( $params );
-
-               $this->type = $type;
-               $this->params = $params;
-               $this->title = $title ?: Title::newMainPage();
-               $this->ignoreDuplicates = !empty( $opts['removeDuplicates'] );
-       }
-
-       /**
-        * @param array $params
-        */
-       protected function validateParams( array $params ) {
-               foreach ( $params as $p => $v ) {
-                       if ( is_array( $v ) ) {
-                               $this->validateParams( $v );
-                       } elseif ( !is_scalar( $v ) && $v !== null ) {
-                               throw new UnexpectedValueException( 'Job parameters are not JSON serializable.' );
-                       }
-               }
-       }
-
-       /**
-        * @return string
-        */
-       public function getType() {
-               return $this->type;
-       }
-
-       /**
-        * @return Title
-        */
-       public function getTitle() {
-               return $this->title;
-       }
-
-       /**
-        * @return array
-        */
-       public function getParams() {
-               return $this->params;
-       }
-
-       /**
-        * @return int|null UNIX timestamp to delay running this job until, otherwise null
-        */
-       public function getReleaseTimestamp() {
-               return isset( $this->params['jobReleaseTimestamp'] )
-                       ? wfTimestampOrNull( TS_UNIX, $this->params['jobReleaseTimestamp'] )
-                       : null;
-       }
-
-       /**
-        * @return bool Whether only one of each identical set of jobs should be run
-        */
-       public function ignoreDuplicates() {
-               return $this->ignoreDuplicates;
-       }
-
-       /**
-        * Subclasses may need to override this to make duplication detection work.
-        * The resulting map conveys everything that makes the job unique. This is
-        * only checked if ignoreDuplicates() returns true, meaning that duplicate
-        * jobs are supposed to be ignored.
-        *
-        * @return array Map of key/values
-        */
-       public function getDeduplicationInfo() {
-               $info = array(
-                       'type' => $this->getType(),
-                       'namespace' => $this->getTitle()->getNamespace(),
-                       'title' => $this->getTitle()->getDBkey(),
-                       'params' => $this->getParams()
-               );
-               if ( is_array( $info['params'] ) ) {
-                       // Identical jobs with different "root" jobs should count as duplicates
-                       unset( $info['params']['rootJobSignature'] );
-                       unset( $info['params']['rootJobTimestamp'] );
-                       // Likewise for jobs with different delay times
-                       unset( $info['params']['jobReleaseTimestamp'] );
-               }
-
-               return $info;
-       }
-}
diff --git a/includes/job/README b/includes/job/README
deleted file mode 100644 (file)
index c11d5a7..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*!
-\ingroup JobQueue
-\page jobqueue_design Job queue design
-
-Notes on the Job queuing system architecture.
-
-\section intro Introduction
-
-The data model consist of the following main components:
-* The Job object represents a particular deferred task that happens in the
-  background. All jobs subclass the Job object and put the main logic in the
-  function called run().
-* The JobQueue object represents a particular queue of jobs of a certain type.
-  For example there may be a queue for email jobs and a queue for squid purge
-  jobs.
-
-\section jobqueue Job queues
-
-Each job type has its own queue and is associated to a storage medium. One
-queue might save its jobs in redis while another one uses would use a database.
-
-Storage medium are defined in a queue class. Before using it, you must
-define in $wgJobTypeConf a mapping of the job type to a queue class.
-
-The factory class JobQueueGroup provides helper functions:
-- getting the queue for a given job
-- route new job insertions to the proper queue
-
-The following queue classes are available:
-* JobQueueDB (stores jobs in the `job` table in a database)
-* JobQueueRedis (stores jobs in a redis server)
-
-All queue classes support some basic operations (though some may be no-ops):
-* enqueueing a batch of jobs
-* dequeueing a single job
-* acknowledging a job is completed
-* checking if the queue is empty
-
-Some queue classes (like JobQueueDB) may dequeue jobs in random order while other
-queues might dequeue jobs in exact FIFO order. Callers should thus not assume jobs
-are executed in FIFO order.
-
-Also note that not all queue classes will have the same reliability guarantees.
-In-memory queues may lose data when restarted depending on snapshot and journal
-settings (including journal fsync() frequency).  Some queue types may totally remove
-jobs when dequeued while leaving the ack() function as a no-op; if a job is
-dequeued by a job runner, which crashes before completion, the job will be
-lost. Some jobs, like purging squid caches after a template change, may not
-require durable queues, whereas other jobs might be more important.
-
-\section aggregator Job queue aggregator
-
-The aggregators are used by nextJobDB.php, which is a script that will return a
-random ready queue (on any wiki in the farm) that can be used with runJobs.php.
-This can be used in conjunction with any scripts that handle wiki farm job queues.
-Note that $wgLocalDatabases defines what wikis are in the wiki farm.
-
-Since each job type has its own queue, and wiki-farms may have many wikis,
-there might be a large number of queues to keep track of. To avoid wasting
-large amounts of time polling empty queues, aggregators exists to keep track
-of which queues are ready.
-
-The following queue aggregator classes are available:
-* JobQueueAggregatorMemc (uses $wgMemc to track ready queues)
-* JobQueueAggregatorRedis (uses a redis server to track ready queues)
-
-Some aggregators cache data for a few minutes while others may be always up to date.
-This can be an important factor for jobs that need a low pickup time (or latency).
-
-\section jobs Jobs
-
-Callers should also try to make jobs maintain correctness when executed twice.
-This is useful for queues that actually implement ack(), since they may recycle
-dequeued but un-acknowledged jobs back into the queue to be attempted again. If
-a runner dequeues a job, runs it, but then crashes before calling ack(), the
-job may be returned to the queue and run a second time. Jobs like cache purging can
-happen several times without any correctness problems. However, a pathological case
-would be if a bug causes the problem to systematically keep repeating. For example,
-a job may always throw a DB error at the end of run(). This problem is trickier to
-solve and more obnoxious for things like email jobs, for example. For such jobs,
-it might be useful to use a queue that does not retry jobs.
diff --git a/includes/job/aggregator/JobQueueAggregator.php b/includes/job/aggregator/JobQueueAggregator.php
deleted file mode 100644 (file)
index 8600eed..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-<?php
-/**
- * Job queue aggregator 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
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Aaron Schulz
- */
-
-/**
- * Class to handle tracking information about all queues
- *
- * @ingroup JobQueue
- * @since 1.21
- */
-abstract class JobQueueAggregator {
-       /** @var JobQueueAggregator */
-       protected static $instance = null;
-
-       /**
-        * @param array $params
-        */
-       protected function __construct( array $params ) {
-       }
-
-       /**
-        * @throws MWException
-        * @return JobQueueAggregator
-        */
-       final public static function singleton() {
-               global $wgJobQueueAggregator;
-
-               if ( !isset( self::$instance ) ) {
-                       $class = $wgJobQueueAggregator['class'];
-                       $obj = new $class( $wgJobQueueAggregator );
-                       if ( !( $obj instanceof JobQueueAggregator ) ) {
-                               throw new MWException( "Class '$class' is not a JobQueueAggregator class." );
-                       }
-                       self::$instance = $obj;
-               }
-
-               return self::$instance;
-       }
-
-       /**
-        * Destroy the singleton instance
-        *
-        * @return void
-        */
-       final public static function destroySingleton() {
-               self::$instance = null;
-       }
-
-       /**
-        * Mark a queue as being empty
-        *
-        * @param string $wiki
-        * @param string $type
-        * @return bool Success
-        */
-       final public function notifyQueueEmpty( $wiki, $type ) {
-               wfProfileIn( __METHOD__ );
-               $ok = $this->doNotifyQueueEmpty( $wiki, $type );
-               wfProfileOut( __METHOD__ );
-
-               return $ok;
-       }
-
-       /**
-        * @see JobQueueAggregator::notifyQueueEmpty()
-        */
-       abstract protected function doNotifyQueueEmpty( $wiki, $type );
-
-       /**
-        * Mark a queue as being non-empty
-        *
-        * @param string $wiki
-        * @param string $type
-        * @return bool Success
-        */
-       final public function notifyQueueNonEmpty( $wiki, $type ) {
-               wfProfileIn( __METHOD__ );
-               $ok = $this->doNotifyQueueNonEmpty( $wiki, $type );
-               wfProfileOut( __METHOD__ );
-
-               return $ok;
-       }
-
-       /**
-        * @see JobQueueAggregator::notifyQueueNonEmpty()
-        */
-       abstract protected function doNotifyQueueNonEmpty( $wiki, $type );
-
-       /**
-        * Get the list of all of the queues with jobs
-        *
-        * @return array (job type => (list of wiki IDs))
-        */
-       final public function getAllReadyWikiQueues() {
-               wfProfileIn( __METHOD__ );
-               $res = $this->doGetAllReadyWikiQueues();
-               wfProfileOut( __METHOD__ );
-
-               return $res;
-       }
-
-       /**
-        * @see JobQueueAggregator::getAllReadyWikiQueues()
-        */
-       abstract protected function doGetAllReadyWikiQueues();
-
-       /**
-        * Purge all of the aggregator information
-        *
-        * @return bool Success
-        */
-       final public function purge() {
-               wfProfileIn( __METHOD__ );
-               $res = $this->doPurge();
-               wfProfileOut( __METHOD__ );
-
-               return $res;
-       }
-
-       /**
-        * @see JobQueueAggregator::purge()
-        */
-       abstract protected function doPurge();
-
-       /**
-        * Get all databases that have a pending job.
-        * This poll all the queues and is this expensive.
-        *
-        * @return array (job type => (list of wiki IDs))
-        */
-       protected function findPendingWikiQueues() {
-               global $wgLocalDatabases;
-
-               $pendingDBs = array(); // (job type => (db list))
-               foreach ( $wgLocalDatabases as $db ) {
-                       foreach ( JobQueueGroup::singleton( $db )->getQueuesWithJobs() as $type ) {
-                               $pendingDBs[$type][] = $db;
-                       }
-               }
-
-               return $pendingDBs;
-       }
-}
diff --git a/includes/job/aggregator/JobQueueAggregatorMemc.php b/includes/job/aggregator/JobQueueAggregatorMemc.php
deleted file mode 100644 (file)
index d733a42..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-<?php
-/**
- * Job queue aggregator code that uses BagOStuff.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Aaron Schulz
- */
-
-/**
- * Class to handle tracking information about all queues using BagOStuff
- *
- * @ingroup JobQueue
- * @since 1.21
- */
-class JobQueueAggregatorMemc extends JobQueueAggregator {
-       /** @var BagOStuff */
-       protected $cache;
-
-       protected $cacheTTL; // integer; seconds
-
-       /**
-        * @params include:
-        *   - objectCache : Name of an object cache registered in $wgObjectCaches.
-        *                   This defaults to the one specified by $wgMainCacheType.
-        *   - cacheTTL    : Seconds to cache the aggregate data before regenerating.
-        * @param array $params
-        */
-       protected function __construct( array $params ) {
-               parent::__construct( $params );
-               $this->cache = isset( $params['objectCache'] )
-                       ? wfGetCache( $params['objectCache'] )
-                       : wfGetMainCache();
-               $this->cacheTTL = isset( $params['cacheTTL'] ) ? $params['cacheTTL'] : 180; // 3 min
-       }
-
-       /**
-        * @see JobQueueAggregator::doNotifyQueueEmpty()
-        */
-       protected function doNotifyQueueEmpty( $wiki, $type ) {
-               $key = $this->getReadyQueueCacheKey();
-               // Delist the queue from the "ready queue" list
-               if ( $this->cache->add( "$key:lock", 1, 60 ) ) { // lock
-                       $curInfo = $this->cache->get( $key );
-                       if ( is_array( $curInfo ) && isset( $curInfo['pendingDBs'][$type] ) ) {
-                               if ( in_array( $wiki, $curInfo['pendingDBs'][$type] ) ) {
-                                       $curInfo['pendingDBs'][$type] = array_diff(
-                                               $curInfo['pendingDBs'][$type], array( $wiki ) );
-                                       $this->cache->set( $key, $curInfo );
-                               }
-                       }
-                       $this->cache->delete( "$key:lock" ); // unlock
-               }
-
-               return true;
-       }
-
-       /**
-        * @see JobQueueAggregator::doNotifyQueueNonEmpty()
-        */
-       protected function doNotifyQueueNonEmpty( $wiki, $type ) {
-               return true; // updated periodically
-       }
-
-       /**
-        * @see JobQueueAggregator::doAllGetReadyWikiQueues()
-        */
-       protected function doGetAllReadyWikiQueues() {
-               $key = $this->getReadyQueueCacheKey();
-               // If the cache entry wasn't present, is stale, or in .1% of cases otherwise,
-               // regenerate the cache. Use any available stale cache if another process is
-               // currently regenerating the pending DB information.
-               $pendingDbInfo = $this->cache->get( $key );
-               if ( !is_array( $pendingDbInfo )
-                       || ( time() - $pendingDbInfo['timestamp'] ) > $this->cacheTTL
-                       || mt_rand( 0, 999 ) == 0
-               ) {
-                       if ( $this->cache->add( "$key:rebuild", 1, 1800 ) ) { // lock
-                               $pendingDbInfo = array(
-                                       'pendingDBs' => $this->findPendingWikiQueues(),
-                                       'timestamp' => time()
-                               );
-                               for ( $attempts = 1; $attempts <= 25; ++$attempts ) {
-                                       if ( $this->cache->add( "$key:lock", 1, 60 ) ) { // lock
-                                               $this->cache->set( $key, $pendingDbInfo );
-                                               $this->cache->delete( "$key:lock" ); // unlock
-                                               break;
-                                       }
-                               }
-                               $this->cache->delete( "$key:rebuild" ); // unlock
-                       }
-               }
-
-               return is_array( $pendingDbInfo )
-                       ? $pendingDbInfo['pendingDBs']
-                       : array(); // cache is both empty and locked
-       }
-
-       /**
-        * @see JobQueueAggregator::doPurge()
-        */
-       protected function doPurge() {
-               return $this->cache->delete( $this->getReadyQueueCacheKey() );
-       }
-
-       /**
-        * @return string
-        */
-       private function getReadyQueueCacheKey() {
-               return "jobqueue:aggregator:ready-queues:v1"; // global
-       }
-}
diff --git a/includes/job/aggregator/JobQueueAggregatorRedis.php b/includes/job/aggregator/JobQueueAggregatorRedis.php
deleted file mode 100644 (file)
index 2aec3c9..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-<?php
-/**
- * Job queue aggregator code that uses PhpRedis.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- * http://www.gnu.org/copyleft/gpl.html
- *
- * @file
- * @author Aaron Schulz
- */
-
-/**
- * Class to handle tracking information about all queues using PhpRedis
- *
- * @ingroup JobQueue
- * @ingroup Redis
- * @since 1.21
- */
-class JobQueueAggregatorRedis extends JobQueueAggregator {
-       /** @var RedisConnectionPool */
-       protected $redisPool;
-
-       /** @var array List of Redis server addresses */
-       protected $servers;
-
-       /**
-        * @params include:
-        *   - redisConfig  : An array of parameters to RedisConnectionPool::__construct().
-        *   - redisServers : Array of server entries, the first being the primary and the
-        *                    others being fallback servers. Each entry is either a hostname/port
-        *                    combination or the absolute path of a UNIX socket.
-        *                    If a hostname is specified but no port, the standard port number
-        *                    6379 will be used. Required.
-        * @param array $params
-        */
-       protected function __construct( array $params ) {
-               parent::__construct( $params );
-               $this->servers = isset( $params['redisServers'] )
-                       ? $params['redisServers']
-                       : array( $params['redisServer'] ); // b/c
-               $this->redisPool = RedisConnectionPool::singleton( $params['redisConfig'] );
-       }
-
-       protected function doNotifyQueueEmpty( $wiki, $type ) {
-               $conn = $this->getConnection();
-               if ( !$conn ) {
-                       return false;
-               }
-               try {
-                       $conn->hDel( $this->getReadyQueueKey(), $this->encQueueName( $type, $wiki ) );
-
-                       return true;
-               } catch ( RedisException $e ) {
-                       $this->handleException( $conn, $e );
-
-                       return false;
-               }
-       }
-
-       protected function doNotifyQueueNonEmpty( $wiki, $type ) {
-               $conn = $this->getConnection();
-               if ( !$conn ) {
-                       return false;
-               }
-               try {
-                       $conn->hSet( $this->getReadyQueueKey(), $this->encQueueName( $type, $wiki ), time() );
-
-                       return true;
-               } catch ( RedisException $e ) {
-                       $this->handleException( $conn, $e );
-
-                       return false;
-               }
-       }
-
-       protected function doGetAllReadyWikiQueues() {
-               $conn = $this->getConnection();
-               if ( !$conn ) {
-                       return array();
-               }
-               try {
-                       $conn->multi( Redis::PIPELINE );
-                       $conn->exists( $this->getReadyQueueKey() );
-                       $conn->hGetAll( $this->getReadyQueueKey() );
-                       list( $exists, $map ) = $conn->exec();
-
-                       if ( $exists ) { // cache hit
-                               $pendingDBs = array(); // (type => list of wikis)
-                               foreach ( $map as $key => $time ) {
-                                       list( $type, $wiki ) = $this->dencQueueName( $key );
-                                       $pendingDBs[$type][] = $wiki;
-                               }
-                       } else { // cache miss
-                               // Avoid duplicated effort
-                               $rand = wfRandomString( 32 );
-                               $conn->multi( Redis::MULTI );
-                               $conn->setex( "{$rand}:lock", 3600, 1 );
-                               $conn->renamenx( "{$rand}:lock", $this->getReadyQueueKey() . ":lock" );
-                               if ( $conn->exec() !== array( true, true ) ) { // lock
-                                       $conn->delete( "{$rand}:lock" );
-                                       return array(); // already in progress
-                               }
-
-                               $pendingDBs = $this->findPendingWikiQueues(); // (type => list of wikis)
-
-                               $conn->delete( $this->getReadyQueueKey() . ":lock" ); // unlock
-
-                               $now = time();
-                               $map = array();
-                               foreach ( $pendingDBs as $type => $wikis ) {
-                                       foreach ( $wikis as $wiki ) {
-                                               $map[$this->encQueueName( $type, $wiki )] = $now;
-                                       }
-                               }
-                               $conn->hMSet( $this->getReadyQueueKey(), $map );
-                       }
-
-                       return $pendingDBs;
-               } catch ( RedisException $e ) {
-                       $this->handleException( $conn, $e );
-
-                       return array();
-               }
-       }
-
-       protected function doPurge() {
-               $conn = $this->getConnection();
-               if ( !$conn ) {
-                       return false;
-               }
-               try {
-                       $conn->delete( $this->getReadyQueueKey() );
-               } catch ( RedisException $e ) {
-                       $this->handleException( $conn, $e );
-
-                       return false;
-               }
-
-               return true;
-       }
-
-       /**
-        * Get a connection to the server that handles all sub-queues for this queue
-        *
-        * @return RedisConnRef|bool Returns false on failure
-        * @throws MWException
-        */
-       protected function getConnection() {
-               $conn = false;
-               foreach ( $this->servers as $server ) {
-                       $conn = $this->redisPool->getConnection( $server );
-                       if ( $conn ) {
-                               break;
-                       }
-               }
-
-               return $conn;
-       }
-
-       /**
-        * @param RedisConnRef $conn
-        * @param RedisException $e
-        * @return void
-        */
-       protected function handleException( RedisConnRef $conn, $e ) {
-               $this->redisPool->handleError( $conn, $e );
-       }
-
-       /**
-        * @return string
-        */
-       private function getReadyQueueKey() {
-               return "jobqueue:aggregator:h-ready-queues:v1"; // global
-       }
-
-       /**
-        * @param string $type
-        * @param string $wiki
-        * @return string
-        */
-       private function encQueueName( $type, $wiki ) {
-               return rawurlencode( $type ) . '/' . rawurlencode( $wiki );
-       }
-
-       /**
-        * @param string $name
-        * @return string
-        */
-       private function dencQueueName( $name ) {
-               list( $type, $wiki ) = explode( '/', $name, 2 );
-
-               return array( rawurldecode( $type ), rawurldecode( $wiki ) );
-       }
-}
diff --git a/includes/job/jobs/AssembleUploadChunksJob.php b/includes/job/jobs/AssembleUploadChunksJob.php
deleted file mode 100644 (file)
index 19b0558..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-<?php
-/**
- * Assemble the segments of a chunked upload.
- *
- * 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 Upload
- */
-
-/**
- * Assemble the segments of a chunked upload.
- *
- * @ingroup Upload
- */
-class AssembleUploadChunksJob extends Job {
-       public function __construct( $title, $params ) {
-               parent::__construct( 'AssembleUploadChunks', $title, $params );
-               $this->removeDuplicates = true;
-       }
-
-       public function run() {
-               $scope = RequestContext::importScopedSession( $this->params['session'] );
-               $context = RequestContext::getMain();
-               try {
-                       $user = $context->getUser();
-                       if ( !$user->isLoggedIn() ) {
-                               $this->setLastError( "Could not load the author user from session." );
-
-                               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() )
-                       );
-
-                       $upload = new UploadFromChunks( $user );
-                       $upload->continueChunks(
-                               $this->params['filename'],
-                               $this->params['filekey'],
-                               $context->getRequest()
-                       );
-
-                       // Combine all of the chunks into a local file and upload that to a new stash file
-                       $status = $upload->concatenateChunks();
-                       if ( !$status->isGood() ) {
-                               UploadBase::setSessionStatus(
-                                       $this->params['filekey'],
-                                       array( 'result' => 'Failure', 'stage' => 'assembling', 'status' => $status )
-                               );
-                               $this->setLastError( $status->getWikiText() );
-
-                               return false;
-                       }
-
-                       // We have a new filekey for the fully concatenated file
-                       $newFileKey = $upload->getLocalFile()->getFileKey();
-
-                       // Remove the old stash file row and first chunk file
-                       $upload->stash->removeFileNoAuth( $this->params['filekey'] );
-
-                       // Build the image info array while we have the local reference handy
-                       $apiMain = new ApiMain(); // dummy object (XXX)
-                       $imageInfo = $upload->getImageInfo( $apiMain->getResult() );
-
-                       // Cleanup any temporary local file
-                       $upload->cleanupTempFile();
-
-                       // Cache the info so the user doesn't have to wait forever to get the final info
-                       UploadBase::setSessionStatus(
-                               $this->params['filekey'],
-                               array(
-                                       'result' => 'Success',
-                                       'stage' => 'assembling',
-                                       'filekey' => $newFileKey,
-                                       'imageinfo' => $imageInfo,
-                                       'status' => Status::newGood()
-                               )
-                       );
-               } catch ( MWException $e ) {
-                       UploadBase::setSessionStatus(
-                               $this->params['filekey'],
-                               array(
-                                       'result' => 'Failure',
-                                       'stage' => 'assembling',
-                                       'status' => Status::newFatal( 'api-error-stashfailed' )
-                               )
-                       );
-                       $this->setLastError( get_class( $e ) . ": " . $e->getText() );
-
-                       return false;
-               }
-
-               return true;
-       }
-
-       public function getDeduplicationInfo() {
-               $info = parent::getDeduplicationInfo();
-               if ( is_array( $info['params'] ) ) {
-                       $info['params'] = array( 'filekey' => $info['params']['filekey'] );
-               }
-
-               return $info;
-       }
-
-       public function allowRetries() {
-               return false;
-       }
-}
diff --git a/includes/job/jobs/DoubleRedirectJob.php b/includes/job/jobs/DoubleRedirectJob.php
deleted file mode 100644 (file)
index 94b56ef..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-<?php
-/**
- * Job to fix double redirects after moving a page.
- *
- * 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 JobQueue
- */
-
-/**
- * Job to fix double redirects after moving a page
- *
- * @ingroup JobQueue
- */
-class DoubleRedirectJob extends Job {
-       /** @var string Reason for the change, 'maintenance' or 'move'. Suffix fo
-        *    message key 'double-redirect-fixed-'.
-        */
-       private $reason;
-
-       /** @var Title The title which has changed, redirects pointing to this
-        *    title are fixed
-        */
-       private $redirTitle;
-
-       /** @var User */
-       private static $user;
-
-       /**
-        * Insert jobs into the job queue to fix redirects to the given title
-        * @param string $reason the reason for the fix, see message
-        *   "double-redirect-fixed-<reason>"
-        * @param $redirTitle Title: the title which has changed, redirects
-        *   pointing to this title are fixed
-        * @param bool $destTitle Not used
-        */
-       public static function fixRedirects( $reason, $redirTitle, $destTitle = false ) {
-               # Need to use the master to get the redirect table updated in the same transaction
-               $dbw = wfGetDB( DB_MASTER );
-               $res = $dbw->select(
-                       array( 'redirect', 'page' ),
-                       array( 'page_namespace', 'page_title' ),
-                       array(
-                               'page_id = rd_from',
-                               'rd_namespace' => $redirTitle->getNamespace(),
-                               'rd_title' => $redirTitle->getDBkey()
-                       ), __METHOD__ );
-               if ( !$res->numRows() ) {
-                       return;
-               }
-               $jobs = array();
-               foreach ( $res as $row ) {
-                       $title = Title::makeTitle( $row->page_namespace, $row->page_title );
-                       if ( !$title ) {
-                               continue;
-                       }
-
-                       $jobs[] = new self( $title, array(
-                               'reason' => $reason,
-                               'redirTitle' => $redirTitle->getPrefixedDBkey() ) );
-                       # Avoid excessive memory usage
-                       if ( count( $jobs ) > 10000 ) {
-                               JobQueueGroup::singleton()->push( $jobs );
-                               $jobs = array();
-                       }
-               }
-               JobQueueGroup::singleton()->push( $jobs );
-       }
-
-       /**
-        * @param Title $title
-        * @param array|bool $params
-        * @param int $id
-        */
-       function __construct( $title, $params = false ) {
-               parent::__construct( 'fixDoubleRedirect', $title, $params );
-               $this->reason = $params['reason'];
-               $this->redirTitle = Title::newFromText( $params['redirTitle'] );
-       }
-
-       /**
-        * @return bool
-        */
-       function run() {
-               if ( !$this->redirTitle ) {
-                       $this->setLastError( 'Invalid title' );
-
-                       return false;
-               }
-
-               $targetRev = Revision::newFromTitle( $this->title, false, Revision::READ_LATEST );
-               if ( !$targetRev ) {
-                       wfDebug( __METHOD__ . ": target redirect already deleted, ignoring\n" );
-
-                       return true;
-               }
-               $content = $targetRev->getContent();
-               $currentDest = $content ? $content->getRedirectTarget() : null;
-               if ( !$currentDest || !$currentDest->equals( $this->redirTitle ) ) {
-                       wfDebug( __METHOD__ . ": Redirect has changed since the job was queued\n" );
-
-                       return true;
-               }
-
-               // Check for a suppression tag (used e.g. in periodically archived discussions)
-               $mw = MagicWord::get( 'staticredirect' );
-               if ( $content->matchMagicWord( $mw ) ) {
-                       wfDebug( __METHOD__ . ": skipping: suppressed with __STATICREDIRECT__\n" );
-
-                       return true;
-               }
-
-               // Find the current final destination
-               $newTitle = self::getFinalDestination( $this->redirTitle );
-               if ( !$newTitle ) {
-                       wfDebug( __METHOD__ .
-                               ": skipping: single redirect, circular redirect or invalid redirect destination\n" );
-
-                       return true;
-               }
-               if ( $newTitle->equals( $this->redirTitle ) ) {
-                       // The redirect is already right, no need to change it
-                       // This can happen if the page was moved back (say after vandalism)
-                       wfDebug( __METHOD__ . " : skipping, already good\n" );
-               }
-
-               // Preserve fragment (bug 14904)
-               $newTitle = Title::makeTitle( $newTitle->getNamespace(), $newTitle->getDBkey(),
-                       $currentDest->getFragment(), $newTitle->getInterwiki() );
-
-               // Fix the text
-               $newContent = $content->updateRedirect( $newTitle );
-
-               if ( $newContent->equals( $content ) ) {
-                       $this->setLastError( 'Content unchanged???' );
-
-                       return false;
-               }
-
-               $user = $this->getUser();
-               if ( !$user ) {
-                       $this->setLastError( 'Invalid user' );
-
-                       return false;
-               }
-
-               // Save it
-               global $wgUser;
-               $oldUser = $wgUser;
-               $wgUser = $user;
-               $article = WikiPage::factory( $this->title );
-
-               // Messages: double-redirect-fixed-move, double-redirect-fixed-maintenance
-               $reason = wfMessage( 'double-redirect-fixed-' . $this->reason,
-                       $this->redirTitle->getPrefixedText(), $newTitle->getPrefixedText()
-               )->inContentLanguage()->text();
-               $article->doEditContent( $newContent, $reason, EDIT_UPDATE | EDIT_SUPPRESS_RC, false, $user );
-               $wgUser = $oldUser;
-
-               return true;
-       }
-
-       /**
-        * Get the final destination of a redirect
-        *
-        * @param $title Title
-        *
-        * @return bool if the specified title is not a redirect, or if it is a circular redirect
-        */
-       public static function getFinalDestination( $title ) {
-               $dbw = wfGetDB( DB_MASTER );
-
-               // Circular redirect check
-               $seenTitles = array();
-               $dest = false;
-
-               while ( true ) {
-                       $titleText = $title->getPrefixedDBkey();
-                       if ( isset( $seenTitles[$titleText] ) ) {
-                               wfDebug( __METHOD__, "Circular redirect detected, aborting\n" );
-
-                               return false;
-                       }
-                       $seenTitles[$titleText] = true;
-
-                       if ( $title->isExternal() ) {
-                               // If the target is interwiki, we have to break early (bug 40352).
-                               // Otherwise it will look up a row in the local page table
-                               // with the namespace/page of the interwiki target which can cause
-                               // unexpected results (e.g. X -> foo:Bar -> Bar -> .. )
-                               break;
-                       }
-
-                       $row = $dbw->selectRow(
-                               array( 'redirect', 'page' ),
-                               array( 'rd_namespace', 'rd_title', 'rd_interwiki' ),
-                               array(
-                                       'rd_from=page_id',
-                                       'page_namespace' => $title->getNamespace(),
-                                       'page_title' => $title->getDBkey()
-                               ), __METHOD__ );
-                       if ( !$row ) {
-                               # No redirect from here, chain terminates
-                               break;
-                       } else {
-                               $dest = $title = Title::makeTitle(
-                                       $row->rd_namespace,
-                                       $row->rd_title,
-                                       '',
-                                       $row->rd_interwiki
-                               );
-                       }
-               }
-
-               return $dest;
-       }
-
-       /**
-        * Get a user object for doing edits, from a request-lifetime cache
-        * False will be returned if the user name specified in the
-        * 'double-redirect-fixer' message is invalid.
-        *
-        * @return User|bool
-        */
-       function getUser() {
-               if ( !self::$user ) {
-                       $username = wfMessage( 'double-redirect-fixer' )->inContentLanguage()->text();
-                       self::$user = User::newFromName( $username );
-                       # User::newFromName() can return false on a badly configured wiki.
-                       if ( self::$user && !self::$user->isLoggedIn() ) {
-                               self::$user->addToDatabase();
-                       }
-               }
-
-               return self::$user;
-       }
-}
diff --git a/includes/job/jobs/DuplicateJob.php b/includes/job/jobs/DuplicateJob.php
deleted file mode 100644 (file)
index b0a6ef7..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-/**
- * No-op job that does nothing.
- *
- * 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 Cache
- */
-
-/**
- * No-op job that does nothing. Used to represent duplicates.
- *
- * @ingroup JobQueue
- */
-final class DuplicateJob extends Job {
-       /**
-        * Callers should use DuplicateJob::newFromJob() instead
-        *
-        * @param Title $title
-        * @param array $params job parameters
-        */
-       function __construct( $title, $params ) {
-               parent::__construct( 'duplicate', $title, $params );
-       }
-
-       /**
-        * Get a duplicate no-op version of a job
-        *
-        * @param Job $job
-        * @return Job
-        */
-       public static function newFromJob( Job $job ) {
-               $djob = new self( $job->getTitle(), $job->getParams() );
-               $djob->command = $job->getType();
-               $djob->params = is_array( $djob->params ) ? $djob->params : array();
-               $djob->params = array( 'isDuplicate' => true ) + $djob->params;
-               $djob->metadata = $job->metadata;
-
-               return $djob;
-       }
-
-       public function run() {
-               return true;
-       }
-}
diff --git a/includes/job/jobs/EmaillingJob.php b/includes/job/jobs/EmaillingJob.php
deleted file mode 100644 (file)
index df8ae63..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-/**
- * Old job for notification emails.
- *
- * 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 JobQueue
- */
-
-/**
- * Old job used for sending single notification emails;
- * kept for backwards-compatibility
- *
- * @ingroup JobQueue
- */
-class EmaillingJob extends Job {
-       function __construct( $title, $params ) {
-               parent::__construct( 'sendMail', Title::newMainPage(), $params );
-       }
-
-       function run() {
-               $status = UserMailer::send(
-                       $this->params['to'],
-                       $this->params['from'],
-                       $this->params['subj'],
-                       $this->params['body'],
-                       $this->params['replyto']
-               );
-
-               return $status->isOK();
-       }
-}
diff --git a/includes/job/jobs/EnotifNotifyJob.php b/includes/job/jobs/EnotifNotifyJob.php
deleted file mode 100644 (file)
index 1ed99a5..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-/**
- * Job for notification emails.
- *
- * 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 JobQueue
- */
-
-/**
- * Job for email notification mails
- *
- * @ingroup JobQueue
- */
-class EnotifNotifyJob extends Job {
-       function __construct( $title, $params ) {
-               parent::__construct( 'enotifNotify', $title, $params );
-       }
-
-       function run() {
-               $enotif = new EmailNotification();
-               // Get the user from ID (rename safe). Anons are 0, so defer to name.
-               if ( isset( $this->params['editorID'] ) && $this->params['editorID'] ) {
-                       $editor = User::newFromId( $this->params['editorID'] );
-               // B/C, only the name might be given.
-               } else {
-                       # @todo FIXME: newFromName could return false on a badly configured wiki.
-                       $editor = User::newFromName( $this->params['editor'], false );
-               }
-               $enotif->actuallyNotifyOnPageChange(
-                       $editor,
-                       $this->title,
-                       $this->params['timestamp'],
-                       $this->params['summary'],
-                       $this->params['minorEdit'],
-                       $this->params['oldid'],
-                       $this->params['watchers'],
-                       $this->params['pageStatus']
-               );
-
-               return true;
-       }
-}
diff --git a/includes/job/jobs/HTMLCacheUpdateJob.php b/includes/job/jobs/HTMLCacheUpdateJob.php
deleted file mode 100644 (file)
index a7c5dc0..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-<?php
-/**
- * HTML cache invalidation of all pages linking to a given title.
- *
- * 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 Cache
- */
-
-/**
- * Job to purge the cache for all pages that link to or use another page or file
- *
- * This job comes in a few variants:
- *   - a) Recursive jobs to purge caches for backlink pages for a given title.
- *        These jobs have have (recursive:true,table:<table>) set.
- *   - b) Jobs to purge caches for a set of titles (the job title is ignored).
- *           These jobs have have (pages:(<page ID>:(<namespace>,<title>),...) set.
- *
- * @ingroup JobQueue
- */
-class HTMLCacheUpdateJob extends Job {
-       function __construct( $title, $params = '' ) {
-               parent::__construct( 'htmlCacheUpdate', $title, $params );
-               // Base backlink purge jobs can be de-duplicated
-               $this->removeDuplicates = ( !isset( $params['range'] ) && !isset( $params['pages'] ) );
-       }
-
-       function run() {
-               global $wgUpdateRowsPerJob, $wgUpdateRowsPerQuery, $wgMaxBacklinksInvalidate;
-
-               static $expected = array( 'recursive', 'pages' ); // new jobs have one of these
-
-               $oldRangeJob = false;
-               if ( !array_intersect( array_keys( $this->params ), $expected ) ) {
-                       // B/C for older job params formats that lack these fields:
-                       // a) base jobs with just ("table") and b) range jobs with ("table","start","end")
-                       if ( isset( $this->params['start'] ) && isset( $this->params['end'] ) ) {
-                               $oldRangeJob = true;
-                       } else {
-                               $this->params['recursive'] = true; // base job
-                       }
-               }
-
-               // Job to purge all (or a range of) backlink pages for a page
-               if ( !empty( $this->params['recursive'] ) ) {
-                       // @TODO: try to use delayed jobs if possible?
-                       if ( !isset( $this->params['range'] ) && $wgMaxBacklinksInvalidate !== false ) {
-                               $numRows = $this->title->getBacklinkCache()->getNumLinks(
-                                       $this->params['table'], $wgMaxBacklinksInvalidate );
-                               if ( $numRows > $wgMaxBacklinksInvalidate ) {
-                                       return true;
-                               }
-                       }
-                       // Convert this into no more than $wgUpdateRowsPerJob HTMLCacheUpdateJob per-title
-                       // jobs and possibly a recursive HTMLCacheUpdateJob job for the rest of the backlinks
-                       $jobs = BacklinkJobUtils::partitionBacklinkJob(
-                               $this,
-                               $wgUpdateRowsPerJob,
-                               $wgUpdateRowsPerQuery, // jobs-per-title
-                               // Carry over information for de-duplication
-                               array( 'params' => $this->getRootJobParams() )
-                       );
-                       JobQueueGroup::singleton()->push( $jobs );
-               // Job to purge pages for for a set of titles
-               } elseif ( isset( $this->params['pages'] ) ) {
-                       $this->invalidateTitles( $this->params['pages'] );
-               // B/C for job to purge a range of backlink pages for a given page
-               } elseif ( $oldRangeJob ) {
-                       $titleArray = $this->title->getBacklinkCache()->getLinks(
-                               $this->params['table'], $this->params['start'], $this->params['end'] );
-
-                       $pages = array(); // same format BacklinkJobUtils uses
-                       foreach ( $titleArray as $tl ) {
-                               $pages[$tl->getArticleId()] = array( $tl->getNamespace(), $tl->getDbKey() );
-                       }
-
-                       $jobs = array();
-                       foreach ( array_chunk( $pages, $wgUpdateRowsPerJob ) as $pageChunk ) {
-                               $jobs[] = new HTMLCacheUpdateJob( $this->title,
-                                       array(
-                                               'table' => $this->params['table'],
-                                               'pages' => $pageChunk
-                                       ) + $this->getRootJobParams() // carry over information for de-duplication
-                               );
-                       }
-                       JobQueueGroup::singleton()->push( $jobs );
-               }
-
-               return true;
-       }
-
-       /**
-        * @param array $pages Map of (page ID => (namespace, DB key)) entries
-        */
-       protected function invalidateTitles( array $pages ) {
-               global $wgUpdateRowsPerQuery, $wgUseFileCache, $wgUseSquid;
-
-               // Get all page IDs in this query into an array
-               $pageIds = array_keys( $pages );
-               if ( !$pageIds ) {
-                       return;
-               }
-
-               $dbw = wfGetDB( DB_MASTER );
-
-               // The page_touched field will need to be bumped for these pages.
-               // Only bump it to the present time if no "rootJobTimestamp" was known.
-               // If it is known, it can be used instead, which avoids invalidating output
-               // that was in fact generated *after* the relevant dependency change time
-               // (e.g. template edit). This is particularily useful since refreshLinks jobs
-               // save back parser output and usually run along side htmlCacheUpdate jobs;
-               // their saved output would be invalidated by using the current timestamp.
-               if ( isset( $this->params['rootJobTimestamp'] ) ) {
-                       $touchTimestamp = $this->params['rootJobTimestamp'];
-               } else {
-                       $touchTimestamp = wfTimestampNow();
-               }
-
-               // Update page_touched (skipping pages already touched since the root job).
-               // Check $wgUpdateRowsPerQuery for sanity; batch jobs are sized by that already.
-               foreach ( array_chunk( $pageIds, $wgUpdateRowsPerQuery ) as $batch ) {
-                       $dbw->update( 'page',
-                               array( 'page_touched' => $dbw->timestamp( $touchTimestamp ) ),
-                               array( 'page_id' => $batch,
-                                       // don't invalidated pages that were already invalidated
-                                       "page_touched < " . $dbw->addQuotes( $dbw->timestamp( $touchTimestamp ) )
-                               ),
-                               __METHOD__
-                       );
-               }
-               // Get the list of affected pages (races only mean something else did the purge)
-               $titleArray = TitleArray::newFromResult( $dbw->select(
-                       'page',
-                       array( 'page_namespace', 'page_title' ),
-                       array( 'page_id' => $pageIds, 'page_touched' => $dbw->timestamp( $touchTimestamp ) ),
-                       __METHOD__
-               ) );
-
-               // Update squid
-               if ( $wgUseSquid ) {
-                       $u = SquidUpdate::newFromTitles( $titleArray );
-                       $u->doUpdate();
-               }
-
-               // Update file cache
-               if ( $wgUseFileCache ) {
-                       foreach ( $titleArray as $title ) {
-                               HTMLFileCache::clearFileCache( $title );
-                       }
-               }
-       }
-
-       public function workItemCount() {
-               return isset( $this->params['pages'] ) ? count( $this->params['pages'] ) : 1;
-       }
-}
diff --git a/includes/job/jobs/NullJob.php b/includes/job/jobs/NullJob.php
deleted file mode 100644 (file)
index b2d6a9a..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-/**
- * Degenerate job that does nothing.
- *
- * 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 Cache
- */
-
-/**
- * Degenerate job that does nothing, but can optionally replace itself
- * in the queue and/or sleep for a brief time period. These can be used
- * to represent "no-op" jobs or test lock contention and performance.
- *
- * @par Example:
- * Inserting a null job in the configured job queue:
- * @code
- * $ php maintenance/eval.php
- * > $queue = JobQueueGroup::singleton();
- * > $job = new NullJob( Title::newMainPage(), array( 'lives' => 10 ) );
- * > $queue->push( $job );
- * @endcode
- * You can then confirm the job has been enqueued by using the showJobs.php
- * maintenance utility:
- * @code
- * $ php maintenance/showJobs.php --group
- * null: 1 queue; 0 claimed (0 active, 0 abandoned)
- * $
- * @endcode
- *
- * @ingroup JobQueue
- */
-class NullJob extends Job {
-       /**
-        * @param Title $title
-        * @param array $params job parameters (lives, usleep)
-        */
-       function __construct( $title, $params ) {
-               parent::__construct( 'null', $title, $params );
-               if ( !isset( $this->params['lives'] ) ) {
-                       $this->params['lives'] = 1;
-               }
-               if ( !isset( $this->params['usleep'] ) ) {
-                       $this->params['usleep'] = 0;
-               }
-               $this->removeDuplicates = !empty( $this->params['removeDuplicates'] );
-       }
-
-       public function run() {
-               if ( $this->params['usleep'] > 0 ) {
-                       usleep( $this->params['usleep'] );
-               }
-               if ( $this->params['lives'] > 1 ) {
-                       $params = $this->params;
-                       $params['lives']--;
-                       $job = new self( $this->title, $params );
-                       JobQueueGroup::singleton()->push( $job );
-               }
-
-               return true;
-       }
-}
diff --git a/includes/job/jobs/PublishStashedFileJob.php b/includes/job/jobs/PublishStashedFileJob.php
deleted file mode 100644 (file)
index d7667f3..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-<?php
-/**
- * Upload a file from the upload stash into the local file repo.
- *
- * 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 Upload
- */
-
-/**
- * Upload a file from the upload stash into the local file repo.
- *
- * @ingroup Upload
- */
-class PublishStashedFileJob extends Job {
-       public function __construct( $title, $params ) {
-               parent::__construct( 'PublishStashedFile', $title, $params );
-               $this->removeDuplicates = true;
-       }
-
-       public function run() {
-               $scope = RequestContext::importScopedSession( $this->params['session'] );
-               $context = RequestContext::getMain();
-               try {
-                       $user = $context->getUser();
-                       if ( !$user->isLoggedIn() ) {
-                               $this->setLastError( "Could not load the author user from session." );
-
-                               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() )
-                       );
-
-                       $upload = new UploadFromStash( $user );
-                       // @todo initialize() causes a GET, ideally we could frontload the antivirus
-                       // checks and anything else to the stash stage (which includes concatenation and
-                       // the local file is thus already there). That way, instead of GET+PUT, there could
-                       // just be a COPY operation from the stash to the public zone.
-                       $upload->initialize( $this->params['filekey'], $this->params['filename'] );
-
-                       // Check if the local file checks out (this is generally a no-op)
-                       $verification = $upload->verifyUpload();
-                       if ( $verification['status'] !== UploadBase::OK ) {
-                               $status = Status::newFatal( 'verification-error' );
-                               $status->value = array( 'verification' => $verification );
-                               UploadBase::setSessionStatus(
-                                       $this->params['filekey'],
-                                       array( 'result' => 'Failure', 'stage' => 'publish', 'status' => $status )
-                               );
-                               $this->setLastError( "Could not verify upload." );
-
-                               return false;
-                       }
-
-                       // Upload the stashed file to a permanent location
-                       $status = $upload->performUpload(
-                               $this->params['comment'],
-                               $this->params['text'],
-                               $this->params['watch'],
-                               $user
-                       );
-                       if ( !$status->isGood() ) {
-                               UploadBase::setSessionStatus(
-                                       $this->params['filekey'],
-                                       array( 'result' => 'Failure', 'stage' => 'publish', 'status' => $status )
-                               );
-                               $this->setLastError( $status->getWikiText() );
-
-                               return false;
-                       }
-
-                       // Build the image info array while we have the local reference handy
-                       $apiMain = new ApiMain(); // dummy object (XXX)
-                       $imageInfo = $upload->getImageInfo( $apiMain->getResult() );
-
-                       // Cleanup any temporary local file
-                       $upload->cleanupTempFile();
-
-                       // Cache the info so the user doesn't have to wait forever to get the final info
-                       UploadBase::setSessionStatus(
-                               $this->params['filekey'],
-                               array(
-                                       'result' => 'Success',
-                                       'stage' => 'publish',
-                                       'filename' => $upload->getLocalFile()->getName(),
-                                       'imageinfo' => $imageInfo,
-                                       'status' => Status::newGood()
-                               )
-                       );
-               } catch ( MWException $e ) {
-                       UploadBase::setSessionStatus(
-                               $this->params['filekey'],
-                               array(
-                                       'result' => 'Failure',
-                                       'stage' => 'publish',
-                                       'status' => Status::newFatal( 'api-error-publishfailed' )
-                               )
-                       );
-                       $this->setLastError( get_class( $e ) . ": " . $e->getText() );
-
-                       return false;
-               }
-
-               return true;
-       }
-
-       public function getDeduplicationInfo() {
-               $info = parent::getDeduplicationInfo();
-               if ( is_array( $info['params'] ) ) {
-                       $info['params'] = array( 'filekey' => $info['params']['filekey'] );
-               }
-
-               return $info;
-       }
-
-       public function allowRetries() {
-               return false;
-       }
-}
diff --git a/includes/job/jobs/RefreshLinksJob.php b/includes/job/jobs/RefreshLinksJob.php
deleted file mode 100644 (file)
index 3bcb4fc..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-<?php
-/**
- * Job to update link tables for pages
- *
- * 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 JobQueue
- */
-
-/**
- * Job to update link tables for pages
- *
- * This job comes in a few variants:
- *   - a) Recursive jobs to update links for backlink pages for a given title.
- *        These jobs have have (recursive:true,table:<table>) set.
- *   - b) Jobs to update links for a set of pages (the job title is ignored).
- *           These jobs have have (pages:(<page ID>:(<namespace>,<title>),...) set.
- *   - c) Jobs to update links for a single page (the job title)
- *        These jobs need no extra fields set.
- *
- * @ingroup JobQueue
- */
-class RefreshLinksJob extends Job {
-       const PARSE_THRESHOLD_SEC = 1.0;
-
-       function __construct( $title, $params = '' ) {
-               parent::__construct( 'refreshLinks', $title, $params );
-               // Base backlink update jobs and per-title update jobs can be de-duplicated.
-               // If template A changes twice before any jobs run, a clean queue will have:
-               //              (A base, A base)
-               // The second job is ignored by the queue on insertion.
-               // Suppose, many pages use template A, and that template itself uses template B.
-               // An edit to both will first create two base jobs. A clean FIFO queue will have:
-               //              (A base, B base)
-               // When these jobs run, the queue will have per-title and remnant partition jobs:
-               //              (titleX,titleY,titleZ,...,A remnant,titleM,titleN,titleO,...,B remnant)
-               // Some these jobs will be the same, and will automatically be ignored by
-               // the queue upon insertion. Some title jobs will run before the duplicate is
-               // inserted, so the work will still be done twice in those cases. More titles
-               // can be de-duplicated as the remnant jobs continue to be broken down. This
-               // works best when $wgUpdateRowsPerJob, and either the pages have few backlinks
-               // and/or the backlink sets for pages A and B are almost identical.
-               $this->removeDuplicates = !isset( $params['range'] )
-                       && ( !isset( $params['pages'] ) || count( $params['pages'] ) == 1 );
-       }
-
-       function run() {
-               global $wgUpdateRowsPerJob;
-
-               // Job to update all (or a range of) backlink pages for a page
-               if ( !empty( $this->params['recursive'] ) ) {
-                       // Carry over information for de-duplication
-                       $extraParams = $this->getRootJobParams();
-                       // Avoid slave lag when fetching templates.
-                       // When the outermost job is run, we know that the caller that enqueued it must have
-                       // committed the relevant changes to the DB by now. At that point, record the master
-                       // position and pass it along as the job recursively breaks into smaller range jobs.
-                       // Hopefully, when leaf jobs are popped, the slaves will have reached that position.
-                       if ( isset( $this->params['masterPos'] ) ) {
-                               $extraParams['masterPos'] = $this->params['masterPos'];
-                       } elseif ( wfGetLB()->getServerCount() > 1 ) {
-                               $extraParams['masterPos'] = wfGetLB()->getMasterPos();
-                       } else {
-                               $extraParams['masterPos'] = false;
-                       }
-                       // Convert this into no more than $wgUpdateRowsPerJob RefreshLinks per-title
-                       // jobs and possibly a recursive RefreshLinks job for the rest of the backlinks
-                       $jobs = BacklinkJobUtils::partitionBacklinkJob(
-                               $this,
-                               $wgUpdateRowsPerJob,
-                               1, // job-per-title
-                               array( 'params' => $extraParams )
-                       );
-                       JobQueueGroup::singleton()->push( $jobs );
-               // Job to update link tables for for a set of titles
-               } elseif ( isset( $this->params['pages'] ) ) {
-                       foreach ( $this->params['pages'] as $pageId => $nsAndKey ) {
-                               list( $ns, $dbKey ) = $nsAndKey;
-                               $this->runForTitle( Title::makeTitleSafe( $ns, $dbKey ) );
-                       }
-               // Job to update link tables for a given title
-               } else {
-                       $this->runForTitle( $this->title );
-               }
-
-               return true;
-       }
-
-       protected function runForTitle( Title $title = null ) {
-               $linkCache = LinkCache::singleton();
-               $linkCache->clear();
-
-               if ( is_null( $title ) ) {
-                       $this->setLastError( "refreshLinks: Invalid title" );
-                       return false;
-               }
-
-               // Wait for the DB of the current/next slave DB handle to catch up to the master.
-               // This way, we get the correct page_latest for templates or files that just changed
-               // milliseconds ago, having triggered this job to begin with.
-               if ( isset( $this->params['masterPos'] ) && $this->params['masterPos'] !== false ) {
-                       wfGetLB()->waitFor( $this->params['masterPos'] );
-               }
-
-               $page = WikiPage::factory( $title );
-
-               // Fetch the current revision...
-               $revision = Revision::newFromTitle( $title, false, Revision::READ_NORMAL );
-               if ( !$revision ) {
-                       $this->setLastError( "refreshLinks: Article not found {$title->getPrefixedDBkey()}" );
-                       return false; // XXX: what if it was just deleted?
-               }
-               $content = $revision->getContent( Revision::RAW );
-               if ( !$content ) {
-                       // If there is no content, pretend the content is empty
-                       $content = $revision->getContentHandler()->makeEmptyContent();
-               }
-
-               $parserOutput = false;
-               $parserOptions = $page->makeParserOptions( 'canonical' );
-               // If page_touched changed after this root job (with a good slave lag skew factor),
-               // then it is likely that any views of the pages already resulted in re-parses which
-               // are now in cache. This can be reused to avoid expensive parsing in some cases.
-               if ( isset( $this->params['rootJobTimestamp'] ) ) {
-                       $skewedTimestamp = wfTimestamp( TS_UNIX, $this->params['rootJobTimestamp'] ) + 5;
-                       if ( $page->getLinksTimestamp() > wfTimestamp( TS_MW, $skewedTimestamp ) ) {
-                               // Something already updated the backlinks since this job was made
-                               return true;
-                       }
-                       if ( $page->getTouched() > wfTimestamp( TS_MW, $skewedTimestamp ) ) {
-                               $parserOutput = ParserCache::singleton()->getDirty( $page, $parserOptions );
-                               if ( $parserOutput && $parserOutput->getCacheTime() <= $skewedTimestamp ) {
-                                       $parserOutput = false; // too stale
-                               }
-                       }
-               }
-               // Fetch the current revision and parse it if necessary...
-               if ( $parserOutput == false ) {
-                       $start = microtime( true );
-                       // Revision ID must be passed to the parser output to get revision variables correct
-                       $parserOutput = $content->getParserOutput(
-                               $title, $revision->getId(), $parserOptions, false );
-                       $ellapsed = microtime( true ) - $start;
-                       // If it took a long time to render, then save this back to the cache to avoid
-                       // wasted CPU by other apaches or job runners. We don't want to always save to
-                       // cache as this cause cause high cache I/O and LRU churn when a template changes.
-                       if ( $ellapsed >= self::PARSE_THRESHOLD_SEC
-                               && $page->isParserCacheUsed( $parserOptions, $revision->getId() )
-                               && $parserOutput->isCacheable()
-                       ) {
-                               $ctime = wfTimestamp( TS_MW, (int)$start ); // cache time
-                               ParserCache::singleton()->save( $parserOutput, $page, $parserOptions, $ctime );
-                       }
-               }
-
-               $updates = $content->getSecondaryDataUpdates( $title, null, false, $parserOutput );
-               DataUpdate::runUpdates( $updates );
-
-               InfoAction::invalidateCache( $title );
-
-               return true;
-       }
-
-       public function getDeduplicationInfo() {
-               $info = parent::getDeduplicationInfo();
-               if ( is_array( $info['params'] ) ) {
-                       // Don't let highly unique "masterPos" values ruin duplicate detection
-                       unset( $info['params']['masterPos'] );
-                       // For per-pages jobs, the job title is that of the template that changed
-                       // (or similar), so remove that since it ruins duplicate detection
-                       if ( isset( $info['pages'] ) ) {
-                               unset( $info['namespace'] );
-                               unset( $info['title'] );
-                       }
-               }
-
-               return $info;
-       }
-
-       public function workItemCount() {
-               return isset( $this->params['pages'] ) ? count( $this->params['pages'] ) : 1;
-       }
-}
diff --git a/includes/job/jobs/RefreshLinksJob2.php b/includes/job/jobs/RefreshLinksJob2.php
deleted file mode 100644 (file)
index 77e3b3f..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-<?php
-/**
- * Job to update links for a given title.
- *
- * 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 JobQueue
- */
-
-/**
- * Background job to update links for titles in certain backlink range by page ID.
- * Newer version for high use templates. This is deprecated by RefreshLinksPartitionJob.
- *
- * @ingroup JobQueue
- * @deprecated 1.23
- */
-class RefreshLinksJob2 extends Job {
-       function __construct( $title, $params ) {
-               parent::__construct( 'refreshLinks2', $title, $params );
-               // Base jobs for large templates can easily be de-duplicated
-               $this->removeDuplicates = !isset( $params['start'] ) && !isset( $params['end'] );
-       }
-
-       /**
-        * Run a refreshLinks2 job
-        * @return boolean success
-        */
-       function run() {
-               global $wgUpdateRowsPerJob;
-
-               $linkCache = LinkCache::singleton();
-               $linkCache->clear();
-
-               if ( is_null( $this->title ) ) {
-                       $this->error = "refreshLinks2: Invalid title";
-                       return false;
-               }
-
-               // Back compat for pre-r94435 jobs
-               $table = isset( $this->params['table'] ) ? $this->params['table'] : 'templatelinks';
-
-               // Avoid slave lag when fetching templates.
-               // When the outermost job is run, we know that the caller that enqueued it must have
-               // committed the relevant changes to the DB by now. At that point, record the master
-               // position and pass it along as the job recursively breaks into smaller range jobs.
-               // Hopefully, when leaf jobs are popped, the slaves will have reached that position.
-               if ( isset( $this->params['masterPos'] ) ) {
-                       $masterPos = $this->params['masterPos'];
-               } elseif ( wfGetLB()->getServerCount() > 1 ) {
-                       $masterPos = wfGetLB()->getMasterPos();
-               } else {
-                       $masterPos = false;
-               }
-
-               $tbc = $this->title->getBacklinkCache();
-
-               $jobs = array(); // jobs to insert
-               if ( isset( $this->params['start'] ) && isset( $this->params['end'] ) ) {
-                       # This is a partition job to trigger the insertion of leaf jobs...
-                       $jobs = array_merge( $jobs, $this->getSingleTitleJobs( $table, $masterPos ) );
-               } else {
-                       # This is a base job to trigger the insertion of partitioned jobs...
-                       if ( $tbc->getNumLinks( $table, $wgUpdateRowsPerJob + 1 ) <= $wgUpdateRowsPerJob ) {
-                               # Just directly insert the single per-title jobs
-                               $jobs = array_merge( $jobs, $this->getSingleTitleJobs( $table, $masterPos ) );
-                       } else {
-                               # Insert the partition jobs to make per-title jobs
-                               foreach ( $tbc->partition( $table, $wgUpdateRowsPerJob ) as $batch ) {
-                                       list( $start, $end ) = $batch;
-                                       $jobs[] = new RefreshLinksJob2( $this->title,
-                                               array(
-                                                       'table' => $table,
-                                                       'start' => $start,
-                                                       'end' => $end,
-                                                       'masterPos' => $masterPos,
-                                               ) + $this->getRootJobParams() // carry over information for de-duplication
-                                       );
-                               }
-                       }
-               }
-
-               if ( count( $jobs ) ) {
-                       JobQueueGroup::singleton()->push( $jobs );
-               }
-
-               return true;
-       }
-
-       /**
-        * @param $table string
-        * @param $masterPos mixed
-        * @return Array
-        */
-       protected function getSingleTitleJobs( $table, $masterPos ) {
-               # The "start"/"end" fields are not set for the base jobs
-               $start = isset( $this->params['start'] ) ? $this->params['start'] : false;
-               $end = isset( $this->params['end'] ) ? $this->params['end'] : false;
-               $titles = $this->title->getBacklinkCache()->getLinks( $table, $start, $end );
-               # Convert into single page refresh links jobs.
-               # This handles well when in sapi mode and is useful in any case for job
-               # de-duplication. If many pages use template A, and that template itself
-               # uses template B, then an edit to both will create many duplicate jobs.
-               # Roughly speaking, for each page, one of the "RefreshLinksJob" jobs will
-               # get run first, and when it does, it will remove the duplicates. Of course,
-               # one page could have its job popped when the other page's job is still
-               # buried within the logic of a refreshLinks2 job.
-               $jobs = array();
-               foreach ( $titles as $title ) {
-                       $jobs[] = new RefreshLinksJob( $title,
-                               array( 'masterPos' => $masterPos ) + $this->getRootJobParams()
-                       ); // carry over information for de-duplication
-               }
-               return $jobs;
-       }
-
-       /**
-        * @return Array
-        */
-       public function getDeduplicationInfo() {
-               $info = parent::getDeduplicationInfo();
-               // Don't let highly unique "masterPos" values ruin duplicate detection
-               if ( is_array( $info['params'] ) ) {
-                       unset( $info['params']['masterPos'] );
-               }
-               return $info;
-       }
-}
diff --git a/includes/job/jobs/UploadFromUrlJob.php b/includes/job/jobs/UploadFromUrlJob.php
deleted file mode 100644 (file)
index 2cdac57..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-<?php
-/**
- * Job for asynchronous upload-by-url.
- *
- * 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 JobQueue
- */
-
-/**
- * Job for asynchronous upload-by-url.
- *
- * This job is in fact an interface to UploadFromUrl, which is designed such
- * that it does not require any globals. If it does, fix it elsewhere, do not
- * add globals in here.
- *
- * @ingroup JobQueue
- */
-class UploadFromUrlJob extends Job {
-       const SESSION_KEYNAME = 'wsUploadFromUrlJobData';
-
-       /** @var UploadFromUrl */
-       public $upload;
-
-       /** @var User */
-       protected $user;
-
-       public function __construct( $title, $params ) {
-               parent::__construct( 'uploadFromUrl', $title, $params );
-       }
-
-       public function run() {
-               global $wgCopyUploadAsyncTimeout;
-               # Initialize this object and the upload object
-               $this->upload = new UploadFromUrl();
-               $this->upload->initialize(
-                       $this->title->getText(),
-                       $this->params['url'],
-                       false
-               );
-               $this->user = User::newFromName( $this->params['userName'] );
-
-               # Fetch the file
-               $opts = array();
-               if ( $wgCopyUploadAsyncTimeout ) {
-                       $opts['timeout'] = $wgCopyUploadAsyncTimeout;
-               }
-               $status = $this->upload->fetchFile( $opts );
-               if ( !$status->isOk() ) {
-                       $this->leaveMessage( $status );
-
-                       return true;
-               }
-
-               # Verify upload
-               $result = $this->upload->verifyUpload();
-               if ( $result['status'] != UploadBase::OK ) {
-                       $status = $this->upload->convertVerifyErrorToStatus( $result );
-                       $this->leaveMessage( $status );
-
-                       return true;
-               }
-
-               # Check warnings
-               if ( !$this->params['ignoreWarnings'] ) {
-                       $warnings = $this->upload->checkWarnings();
-                       if ( $warnings ) {
-
-                               # Stash the upload
-                               $key = $this->upload->stashFile();
-
-                               // @todo FIXME: This has been broken for a while.
-                               // User::leaveUserMessage() does not exist.
-                               if ( $this->params['leaveMessage'] ) {
-                                       $this->user->leaveUserMessage(
-                                               wfMessage( 'upload-warning-subj' )->text(),
-                                               wfMessage( 'upload-warning-msg',
-                                                       $key,
-                                                       $this->params['url'] )->text()
-                                       );
-                               } else {
-                                       wfSetupSession( $this->params['sessionId'] );
-                                       $this->storeResultInSession( 'Warning',
-                                               'warnings', $warnings );
-                                       session_write_close();
-                               }
-
-                               return true;
-                       }
-               }
-
-               # Perform the upload
-               $status = $this->upload->performUpload(
-                       $this->params['comment'],
-                       $this->params['pageText'],
-                       $this->params['watch'],
-                       $this->user
-               );
-               $this->leaveMessage( $status );
-
-               return true;
-       }
-
-       /**
-        * Leave a message on the user talk page or in the session according to
-        * $params['leaveMessage'].
-        *
-        * @param Status $status
-        */
-       protected function leaveMessage( $status ) {
-               if ( $this->params['leaveMessage'] ) {
-                       if ( $status->isGood() ) {
-                               // @todo FIXME: user->leaveUserMessage does not exist.
-                               $this->user->leaveUserMessage( wfMessage( 'upload-success-subj' )->text(),
-                                       wfMessage( 'upload-success-msg',
-                                               $this->upload->getTitle()->getText(),
-                                               $this->params['url']
-                                       )->text() );
-                       } else {
-                               // @todo FIXME: user->leaveUserMessage does not exist.
-                               $this->user->leaveUserMessage( wfMessage( 'upload-failure-subj' )->text(),
-                                       wfMessage( 'upload-failure-msg',
-                                               $status->getWikiText(),
-                                               $this->params['url']
-                                       )->text() );
-                       }
-               } else {
-                       wfSetupSession( $this->params['sessionId'] );
-                       if ( $status->isOk() ) {
-                               $this->storeResultInSession( 'Success',
-                                       'filename', $this->upload->getLocalFile()->getName() );
-                       } else {
-                               $this->storeResultInSession( 'Failure',
-                                       'errors', $status->getErrorsArray() );
-                       }
-                       session_write_close();
-               }
-       }
-
-       /**
-        * Store a result in the session data. Note that the caller is responsible
-        * for appropriate session_start and session_write_close calls.
-        *
-        * @param string $result the result (Success|Warning|Failure)
-        * @param string $dataKey the key of the extra data
-        * @param mixed $dataValue The extra data itself
-        */
-       protected function storeResultInSession( $result, $dataKey, $dataValue ) {
-               $session =& self::getSessionData( $this->params['sessionKey'] );
-               $session['result'] = $result;
-               $session[$dataKey] = $dataValue;
-       }
-
-       /**
-        * Initialize the session data. Sets the intial result to queued.
-        */
-       public function initializeSessionData() {
-               $session =& self::getSessionData( $this->params['sessionKey'] );
-               $$session['result'] = 'Queued';
-       }
-
-       /**
-        * @param $key
-        * @return mixed
-        */
-       public static function &getSessionData( $key ) {
-               if ( !isset( $_SESSION[self::SESSION_KEYNAME][$key] ) ) {
-                       $_SESSION[self::SESSION_KEYNAME][$key] = array();
-               }
-
-               return $_SESSION[self::SESSION_KEYNAME][$key];
-       }
-}
diff --git a/includes/job/utils/BacklinkJobUtils.php b/includes/job/utils/BacklinkJobUtils.php
deleted file mode 100644 (file)
index c8e5df6..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-/**
- * Job to update links for a given title.
- *
- * 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 JobQueue
- * @author Aaron Schulz
- */
-
-/**
- * Class with Backlink related Job helper methods
- *
- * @ingroup JobQueue
- * @since 1.23
- */
-class BacklinkJobUtils {
-       /**
-        * Break down $job into approximately ($bSize/$cSize) leaf jobs and a single partition
-        * job that covers the remaining backlink range (if needed). Jobs for the first $bSize
-        * titles are collated ($cSize per job) into leaf jobs to do actual work. All the
-        * resulting jobs are of the same class as $job. No partition job is returned if the
-        * range covered by $job was less than $bSize, as the leaf jobs have full coverage.
-        *
-        * The leaf jobs have the 'pages' param set to a (<page ID>:(<namespace>,<DB key>),...)
-        * map so that the run() function knows what pages to act on. The leaf jobs will keep
-        * the same job title as the parent job (e.g. $job).
-        *
-        * The partition jobs have the 'range' parameter set to a map of the format
-        * (start:<integer>, end:<integer>, batchSize:<integer>, subranges:((<start>,<end>),...)),
-        * the 'table' parameter set to that of $job, and the 'recursive' parameter set to true.
-        * This method can be called on the resulting job to repeat the process again.
-        *
-        * The job provided ($job) must have the 'recursive' parameter set to true and the 'table'
-        * parameter must be set to a backlink table. The job title will be used as the title to
-        * find backlinks for. Any 'range' parameter must follow the same format as mentioned above.
-        * This should be managed by recursive calls to this method.
-        *
-        * The first jobs return are always the leaf jobs. This lets the caller use push() to
-        * put them directly into the queue and works well if the queue is FIFO. In such a queue,
-        * the leaf jobs have to get finished first before anything can resolve the next partition
-        * job, which keeps the queue very small.
-        *
-        * $opts includes:
-        *   - params : extra job parameters to include in each job
-        *
-        * @param Job $job
-        * @param int $bSize BacklinkCache partition size; usually $wgUpdateRowsPerJob
-        * @param int $cSize Max titles per leaf job; Usually 1 or a modest value
-        * @param array $opts Optional parameter map
-        * @return Job[] List of Job objects
-        */
-       public static function partitionBacklinkJob( Job $job, $bSize, $cSize, $opts = array() ) {
-               $class = get_class( $job );
-               $title = $job->getTitle();
-               $params = $job->getParams();
-
-               if ( isset( $params['pages'] ) || empty( $params['recursive'] ) ) {
-                       $ranges = array(); // sanity; this is a leaf node
-                       wfWarn( __METHOD__ . " called on {$job->getType()} leaf job (explosive recursion)." );
-               } elseif ( isset( $params['range'] ) ) {
-                       // This is a range job to trigger the insertion of partitioned/title jobs...
-                       $ranges = $params['range']['subranges'];
-                       $realBSize = $params['range']['batchSize'];
-               } else {
-                       // This is a base job to trigger the insertion of partitioned jobs...
-                       $ranges = $title->getBacklinkCache()->partition( $params['table'], $bSize );
-                       $realBSize = $bSize;
-               }
-
-               $extraParams = isset( $opts['params'] ) ? $opts['params'] : array();
-
-               $jobs = array();
-               // Combine the first range (of size $bSize) backlinks into leaf jobs
-               if ( isset( $ranges[0] ) ) {
-                       list( $start, $end ) = $ranges[0];
-                       $titles = $title->getBacklinkCache()->getLinks( $params['table'], $start, $end );
-                       foreach ( array_chunk( iterator_to_array( $titles ), $cSize ) as $titleBatch ) {
-                               $pages = array();
-                               foreach ( $titleBatch as $tl ) {
-                                       $pages[$tl->getArticleId()] = array( $tl->getNamespace(), $tl->getDBKey() );
-                               }
-                               $jobs[] = new $class(
-                                       $title, // maintain parent job title
-                                       array( 'pages' => $pages ) + $extraParams
-                               );
-                       }
-               }
-               // Take all of the remaining ranges and build a partition job from it
-               if ( isset( $ranges[1] ) ) {
-                       $jobs[] = new $class(
-                               $title, // maintain parent job title
-                               array(
-                                       'recursive'     => true,
-                                       'table'         => $params['table'],
-                                       'range'         => array(
-                                               'start'     => $ranges[1][0],
-                                               'end'       => $ranges[count( $ranges ) - 1][1],
-                                               'batchSize' => $realBSize,
-                                               'subranges' => array_slice( $ranges, 1 )
-                                       ),
-                               ) + $extraParams
-                       );
-               }
-
-               return $jobs;
-       }
-}
diff --git a/includes/jobqueue/Job.php b/includes/jobqueue/Job.php
new file mode 100644 (file)
index 0000000..5fc1e06
--- /dev/null
@@ -0,0 +1,330 @@
+<?php
+/**
+ * Job queue task base 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
+ * 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
+ * @defgroup JobQueue JobQueue
+ */
+
+/**
+ * Class to both describe a background job and handle jobs.
+ * The queue aspects of this class are now deprecated.
+ * Using the class to push jobs onto queues is deprecated (use JobSpecification).
+ *
+ * @ingroup JobQueue
+ */
+abstract class Job implements IJobSpecification {
+       /** @var string */
+       public $command;
+
+       /** @var array|bool Array of job parameters or false if none */
+       public $params;
+
+       /** @var array Additional queue metadata */
+       public $metadata = array();
+
+       /** @var Title */
+       protected $title;
+
+       /** @var bool Expensive jobs may set this to true */
+       protected $removeDuplicates;
+
+       /** @var string Text for error that occurred last */
+       protected $error;
+
+       /*-------------------------------------------------------------------------
+        * Abstract functions
+        *------------------------------------------------------------------------*/
+
+       /**
+        * Run the job
+        * @return bool Success
+        */
+       abstract public function run();
+
+       /*-------------------------------------------------------------------------
+        * Static functions
+        *------------------------------------------------------------------------*/
+
+       /**
+        * Create the appropriate object to handle a specific job
+        *
+        * @param string $command Job command
+        * @param Title $title Associated title
+        * @param array|bool $params Job parameters
+        * @throws MWException
+        * @return Job
+        */
+       public static function factory( $command, Title $title, $params = false ) {
+               global $wgJobClasses;
+               if ( isset( $wgJobClasses[$command] ) ) {
+                       $class = $wgJobClasses[$command];
+
+                       return new $class( $title, $params );
+               }
+               throw new MWException( "Invalid job command `{$command}`" );
+       }
+
+       /**
+        * Batch-insert a group of jobs into the queue.
+        * This will be wrapped in a transaction with a forced commit.
+        *
+        * This may add duplicate at insert time, but they will be
+        * removed later on, when the first one is popped.
+        *
+        * @param array $jobs of Job objects
+        * @return bool
+        * @deprecated since 1.21
+        */
+       public static function batchInsert( $jobs ) {
+               return JobQueueGroup::singleton()->push( $jobs );
+       }
+
+       /**
+        * Insert a group of jobs into the queue.
+        *
+        * Same as batchInsert() but does not commit and can thus
+        * be rolled-back as part of a larger transaction. However,
+        * large batches of jobs can cause slave lag.
+        *
+        * @param array $jobs of Job objects
+        * @return bool
+        * @deprecated since 1.21
+        */
+       public static function safeBatchInsert( $jobs ) {
+               return JobQueueGroup::singleton()->push( $jobs, JobQueue::QOS_ATOMIC );
+       }
+
+       /**
+        * Pop a job of a certain type.  This tries less hard than pop() to
+        * actually find a job; it may be adversely affected by concurrent job
+        * runners.
+        *
+        * @param $type string
+        * @return Job|bool Returns false if there are no jobs
+        * @deprecated since 1.21
+        */
+       public static function pop_type( $type ) {
+               return JobQueueGroup::singleton()->get( $type )->pop();
+       }
+
+       /**
+        * Pop a job off the front of the queue.
+        * This is subject to $wgJobTypesExcludedFromDefaultQueue.
+        *
+        * @return Job|bool False if there are no jobs
+        * @deprecated since 1.21
+        */
+       public static function pop() {
+               return JobQueueGroup::singleton()->pop();
+       }
+
+       /*-------------------------------------------------------------------------
+        * Non-static functions
+        *------------------------------------------------------------------------*/
+
+       /**
+        * @param $command
+        * @param $title
+        * @param $params array|bool
+        */
+       public function __construct( $command, $title, $params = false ) {
+               $this->command = $command;
+               $this->title = $title;
+               $this->params = $params;
+
+               // expensive jobs may set this to true
+               $this->removeDuplicates = false;
+       }
+
+       /**
+        * @return string
+        */
+       public function getType() {
+               return $this->command;
+       }
+
+       /**
+        * @return Title
+        */
+       public function getTitle() {
+               return $this->title;
+       }
+
+       /**
+        * @return array
+        */
+       public function getParams() {
+               return $this->params;
+       }
+
+       /**
+        * @return int|null UNIX timestamp to delay running this job until, otherwise null
+        * @since 1.22
+        */
+       public function getReleaseTimestamp() {
+               return isset( $this->params['jobReleaseTimestamp'] )
+                       ? wfTimestampOrNull( TS_UNIX, $this->params['jobReleaseTimestamp'] )
+                       : null;
+       }
+
+       /**
+        * @return bool Whether only one of each identical set of jobs should be run
+        */
+       public function ignoreDuplicates() {
+               return $this->removeDuplicates;
+       }
+
+       /**
+        * @return bool Whether this job can be retried on failure by job runners
+        * @since 1.21
+        */
+       public function allowRetries() {
+               return true;
+       }
+
+       /**
+        * @return integer Number of actually "work items" handled in this job
+        * @see $wgJobBackoffThrottling
+        * @since 1.23
+        */
+       public function workItemCount() {
+               return 1;
+       }
+
+       /**
+        * Subclasses may need to override this to make duplication detection work.
+        * The resulting map conveys everything that makes the job unique. This is
+        * only checked if ignoreDuplicates() returns true, meaning that duplicate
+        * jobs are supposed to be ignored.
+        *
+        * @return array Map of key/values
+        * @since 1.21
+        */
+       public function getDeduplicationInfo() {
+               $info = array(
+                       'type' => $this->getType(),
+                       'namespace' => $this->getTitle()->getNamespace(),
+                       'title' => $this->getTitle()->getDBkey(),
+                       'params' => $this->getParams()
+               );
+               if ( is_array( $info['params'] ) ) {
+                       // Identical jobs with different "root" jobs should count as duplicates
+                       unset( $info['params']['rootJobSignature'] );
+                       unset( $info['params']['rootJobTimestamp'] );
+                       // Likewise for jobs with different delay times
+                       unset( $info['params']['jobReleaseTimestamp'] );
+               }
+
+               return $info;
+       }
+
+       /**
+        * @see JobQueue::deduplicateRootJob()
+        * @param string $key A key that identifies the task
+        * @return array Map of:
+        *   - rootJobSignature : hash (e.g. SHA1) that identifies the task
+        *   - rootJobTimestamp : TS_MW timestamp of this instance of the task
+        * @since 1.21
+        */
+       public static function newRootJobParams( $key ) {
+               return array(
+                       'rootJobSignature' => sha1( $key ),
+                       'rootJobTimestamp' => wfTimestampNow()
+               );
+       }
+
+       /**
+        * @see JobQueue::deduplicateRootJob()
+        * @return array
+        * @since 1.21
+        */
+       public function getRootJobParams() {
+               return array(
+                       'rootJobSignature' => isset( $this->params['rootJobSignature'] )
+                               ? $this->params['rootJobSignature']
+                               : null,
+                       'rootJobTimestamp' => isset( $this->params['rootJobTimestamp'] )
+                               ? $this->params['rootJobTimestamp']
+                               : null
+               );
+       }
+
+       /**
+        * @see JobQueue::deduplicateRootJob()
+        * @return bool
+        * @since 1.22
+        */
+       public function hasRootJobParams() {
+               return isset( $this->params['rootJobSignature'] )
+                       && isset( $this->params['rootJobTimestamp'] );
+       }
+
+       /**
+        * Insert a single job into the queue.
+        * @return bool true on success
+        * @deprecated since 1.21
+        */
+       public function insert() {
+               return JobQueueGroup::singleton()->push( $this );
+       }
+
+       /**
+        * @return string
+        */
+       public function toString() {
+               $paramString = '';
+               if ( $this->params ) {
+                       foreach ( $this->params as $key => $value ) {
+                               if ( $paramString != '' ) {
+                                       $paramString .= ' ';
+                               }
+                               if ( is_array( $value ) ) {
+                                       $value = "array(" . count( $value ) . ")";
+                               } elseif ( is_object( $value ) && !method_exists( $value, '__toString' ) ) {
+                                       $value = "object(" . get_class( $value ) . ")";
+                               }
+                               $value = (string)$value;
+                               if ( mb_strlen( $value ) > 1024 ) {
+                                       $value = "string(" . mb_strlen( $value ) . ")";
+                               }
+
+                               $paramString .= "$key=$value";
+                       }
+               }
+
+               if ( is_object( $this->title ) ) {
+                       $s = "{$this->command} " . $this->title->getPrefixedDBkey();
+                       if ( $paramString !== '' ) {
+                               $s .= ' ' . $paramString;
+                       }
+
+                       return $s;
+               } else {
+                       return "{$this->command} $paramString";
+               }
+       }
+
+       protected function setLastError( $error ) {
+               $this->error = $error;
+       }
+
+       public function getLastError() {
+               return $this->error;
+       }
+}
diff --git a/includes/jobqueue/JobQueue.php b/includes/jobqueue/JobQueue.php
new file mode 100644 (file)
index 0000000..a537861
--- /dev/null
@@ -0,0 +1,745 @@
+<?php
+/**
+ * Job queue base 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
+ * 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
+ * @defgroup JobQueue JobQueue
+ * @author Aaron Schulz
+ */
+
+/**
+ * Class to handle enqueueing and running of background jobs
+ *
+ * @ingroup JobQueue
+ * @since 1.21
+ */
+abstract class JobQueue {
+       /** @var string Wiki ID */
+       protected $wiki;
+
+       /** @var string Job type */
+       protected $type;
+
+       /** @var string Job priority for pop() */
+       protected $order;
+
+       /** @var int Time to live in seconds */
+       protected $claimTTL;
+
+       /** @var int Maximum number of times to try a job */
+       protected $maxTries;
+
+       /** @var bool Allow delayed jobs */
+       protected $checkDelay;
+
+       /** @var BagOStuff */
+       protected $dupCache;
+
+       const QOS_ATOMIC = 1; // integer; "all-or-nothing" job insertions
+
+       const ROOTJOB_TTL = 2419200; // integer; seconds to remember root jobs (28 days)
+
+       /**
+        * @param array $params
+        * @throws MWException
+        */
+       protected function __construct( array $params ) {
+               $this->wiki = $params['wiki'];
+               $this->type = $params['type'];
+               $this->claimTTL = isset( $params['claimTTL'] ) ? $params['claimTTL'] : 0;
+               $this->maxTries = isset( $params['maxTries'] ) ? $params['maxTries'] : 3;
+               if ( isset( $params['order'] ) && $params['order'] !== 'any' ) {
+                       $this->order = $params['order'];
+               } else {
+                       $this->order = $this->optimalOrder();
+               }
+               if ( !in_array( $this->order, $this->supportedOrders() ) ) {
+                       throw new MWException( __CLASS__ . " does not support '{$this->order}' order." );
+               }
+               $this->checkDelay = !empty( $params['checkDelay'] );
+               if ( $this->checkDelay && !$this->supportsDelayedJobs() ) {
+                       throw new MWException( __CLASS__ . " does not support delayed jobs." );
+               }
+               $this->dupCache = wfGetCache( CACHE_ANYTHING );
+       }
+
+       /**
+        * Get a job queue object of the specified type.
+        * $params includes:
+        *   - class      : What job class to use (determines job type)
+        *   - wiki       : wiki ID of the wiki the jobs are for (defaults to current wiki)
+        *   - type       : The name of the job types this queue handles
+        *   - order      : Order that pop() selects jobs, one of "fifo", "timestamp" or "random".
+        *                  If "fifo" is used, the queue will effectively be FIFO. Note that job
+        *                  completion will not appear to be exactly FIFO if there are multiple
+        *                  job runners since jobs can take different times to finish once popped.
+        *                  If "timestamp" is used, the queue will at least be loosely ordered
+        *                  by timestamp, allowing for some jobs to be popped off out of order.
+        *                  If "random" is used, pop() will pick jobs in random order.
+        *                  Note that it may only be weakly random (e.g. a lottery of the oldest X).
+        *                  If "any" is choosen, the queue will use whatever order is the fastest.
+        *                  This might be useful for improving concurrency for job acquisition.
+        *   - claimTTL   : If supported, the queue will recycle jobs that have been popped
+        *                  but not acknowledged as completed after this many seconds. Recycling
+        *                  of jobs simple means re-inserting them into the queue. Jobs can be
+        *                  attempted up to three times before being discarded.
+        *   - checkDelay : If supported, respect Job::getReleaseTimestamp() in the push functions.
+        *                  This lets delayed jobs wait in a staging area until a given timestamp is
+        *                  reached, at which point they will enter the queue. If this is not enabled
+        *                  or not supported, an exception will be thrown on delayed job insertion.
+        *
+        * Queue classes should throw an exception if they do not support the options given.
+        *
+        * @param array $params
+        * @return JobQueue
+        * @throws MWException
+        */
+       final public static function factory( array $params ) {
+               $class = $params['class'];
+               if ( !class_exists( $class ) ) {
+                       throw new MWException( "Invalid job queue class '$class'." );
+               }
+               $obj = new $class( $params );
+               if ( !( $obj instanceof self ) ) {
+                       throw new MWException( "Class '$class' is not a " . __CLASS__ . " class." );
+               }
+
+               return $obj;
+       }
+
+       /**
+        * @return string Wiki ID
+        */
+       final public function getWiki() {
+               return $this->wiki;
+       }
+
+       /**
+        * @return string Job type that this queue handles
+        */
+       final public function getType() {
+               return $this->type;
+       }
+
+       /**
+        * @return string One of (random, timestamp, fifo, undefined)
+        */
+       final public function getOrder() {
+               return $this->order;
+       }
+
+       /**
+        * @return bool Whether delayed jobs are enabled
+        * @since 1.22
+        */
+       final public function delayedJobsEnabled() {
+               return $this->checkDelay;
+       }
+
+       /**
+        * Get the allowed queue orders for configuration validation
+        *
+        * @return array Subset of (random, timestamp, fifo, undefined)
+        */
+       abstract protected function supportedOrders();
+
+       /**
+        * Get the default queue order to use if configuration does not specify one
+        *
+        * @return string One of (random, timestamp, fifo, undefined)
+        */
+       abstract protected function optimalOrder();
+
+       /**
+        * Find out if delayed jobs are supported for configuration validation
+        *
+        * @return bool Whether delayed jobs are supported
+        */
+       protected function supportsDelayedJobs() {
+               return false; // not implemented
+       }
+
+       /**
+        * Quickly check if the queue has no available (unacquired, non-delayed) jobs.
+        * Queue classes should use caching if they are any slower without memcached.
+        *
+        * If caching is used, this might return false when there are actually no jobs.
+        * If pop() is called and returns false then it should correct the cache. Also,
+        * calling flushCaches() first prevents this. However, this affect is typically
+        * not distinguishable from the race condition between isEmpty() and pop().
+        *
+        * @return bool
+        * @throws JobQueueError
+        */
+       final public function isEmpty() {
+               wfProfileIn( __METHOD__ );
+               $res = $this->doIsEmpty();
+               wfProfileOut( __METHOD__ );
+
+               return $res;
+       }
+
+       /**
+        * @see JobQueue::isEmpty()
+        * @return bool
+        */
+       abstract protected function doIsEmpty();
+
+       /**
+        * Get the number of available (unacquired, non-delayed) jobs in the queue.
+        * Queue classes should use caching if they are any slower without memcached.
+        *
+        * If caching is used, this number might be out of date for a minute.
+        *
+        * @return int
+        * @throws JobQueueError
+        */
+       final public function getSize() {
+               wfProfileIn( __METHOD__ );
+               $res = $this->doGetSize();
+               wfProfileOut( __METHOD__ );
+
+               return $res;
+       }
+
+       /**
+        * @see JobQueue::getSize()
+        * @return int
+        */
+       abstract protected function doGetSize();
+
+       /**
+        * Get the number of acquired jobs (these are temporarily out of the queue).
+        * Queue classes should use caching if they are any slower without memcached.
+        *
+        * If caching is used, this number might be out of date for a minute.
+        *
+        * @return int
+        * @throws JobQueueError
+        */
+       final public function getAcquiredCount() {
+               wfProfileIn( __METHOD__ );
+               $res = $this->doGetAcquiredCount();
+               wfProfileOut( __METHOD__ );
+
+               return $res;
+       }
+
+       /**
+        * @see JobQueue::getAcquiredCount()
+        * @return int
+        */
+       abstract protected function doGetAcquiredCount();
+
+       /**
+        * Get the number of delayed jobs (these are temporarily out of the queue).
+        * Queue classes should use caching if they are any slower without memcached.
+        *
+        * If caching is used, this number might be out of date for a minute.
+        *
+        * @return int
+        * @throws JobQueueError
+        * @since 1.22
+        */
+       final public function getDelayedCount() {
+               wfProfileIn( __METHOD__ );
+               $res = $this->doGetDelayedCount();
+               wfProfileOut( __METHOD__ );
+
+               return $res;
+       }
+
+       /**
+        * @see JobQueue::getDelayedCount()
+        * @return int
+        */
+       protected function doGetDelayedCount() {
+               return 0; // not implemented
+       }
+
+       /**
+        * Get the number of acquired jobs that can no longer be attempted.
+        * Queue classes should use caching if they are any slower without memcached.
+        *
+        * If caching is used, this number might be out of date for a minute.
+        *
+        * @return int
+        * @throws JobQueueError
+        */
+       final public function getAbandonedCount() {
+               wfProfileIn( __METHOD__ );
+               $res = $this->doGetAbandonedCount();
+               wfProfileOut( __METHOD__ );
+
+               return $res;
+       }
+
+       /**
+        * @see JobQueue::getAbandonedCount()
+        * @return int
+        */
+       protected function doGetAbandonedCount() {
+               return 0; // not implemented
+       }
+
+       /**
+        * Push one or more jobs into the queue.
+        * This does not require $wgJobClasses to be set for the given job type.
+        * Outside callers should use JobQueueGroup::push() instead of this function.
+        *
+        * @param Job|array $jobs A single job or an array of Jobs
+        * @param int $flags Bitfield (supports JobQueue::QOS_ATOMIC)
+        * @return bool Returns false on failure
+        * @throws JobQueueError
+        */
+       final public function push( $jobs, $flags = 0 ) {
+               return $this->batchPush( is_array( $jobs ) ? $jobs : array( $jobs ), $flags );
+       }
+
+       /**
+        * Push a batch of jobs into the queue.
+        * This does not require $wgJobClasses to be set for the given job type.
+        * Outside callers should use JobQueueGroup::push() instead of this function.
+        *
+        * @param array $jobs List of Jobs
+        * @param int $flags Bitfield (supports JobQueue::QOS_ATOMIC)
+        * @throws MWException
+        * @return bool Returns false on failure
+        */
+       final public function batchPush( array $jobs, $flags = 0 ) {
+               if ( !count( $jobs ) ) {
+                       return true; // nothing to do
+               }
+
+               foreach ( $jobs as $job ) {
+                       if ( $job->getType() !== $this->type ) {
+                               throw new MWException(
+                                       "Got '{$job->getType()}' job; expected a '{$this->type}' job." );
+                       } elseif ( $job->getReleaseTimestamp() && !$this->checkDelay ) {
+                               throw new MWException(
+                                       "Got delayed '{$job->getType()}' job; delays are not supported." );
+                       }
+               }
+
+               wfProfileIn( __METHOD__ );
+               $ok = $this->doBatchPush( $jobs, $flags );
+               wfProfileOut( __METHOD__ );
+
+               return $ok;
+       }
+
+       /**
+        * @see JobQueue::batchPush()
+        * @param array $jobs
+        * @param $flags
+        * @return bool
+        */
+       abstract protected function doBatchPush( array $jobs, $flags );
+
+       /**
+        * Pop a job off of the queue.
+        * This requires $wgJobClasses to be set for the given job type.
+        * Outside callers should use JobQueueGroup::pop() instead of this function.
+        *
+        * @throws MWException
+        * @return Job|bool Returns false if there are no jobs
+        */
+       final public function pop() {
+               global $wgJobClasses;
+
+               if ( $this->wiki !== wfWikiID() ) {
+                       throw new MWException( "Cannot pop '{$this->type}' job off foreign wiki queue." );
+               } elseif ( !isset( $wgJobClasses[$this->type] ) ) {
+                       // Do not pop jobs if there is no class for the queue type
+                       throw new MWException( "Unrecognized job type '{$this->type}'." );
+               }
+
+               wfProfileIn( __METHOD__ );
+               $job = $this->doPop();
+               wfProfileOut( __METHOD__ );
+
+               // Flag this job as an old duplicate based on its "root" job...
+               try {
+                       if ( $job && $this->isRootJobOldDuplicate( $job ) ) {
+                               JobQueue::incrStats( 'job-pop-duplicate', $this->type );
+                               $job = DuplicateJob::newFromJob( $job ); // convert to a no-op
+                       }
+               } catch ( MWException $e ) {
+                       // don't lose jobs over this
+               }
+
+               return $job;
+       }
+
+       /**
+        * @see JobQueue::pop()
+        * @return Job
+        */
+       abstract protected function doPop();
+
+       /**
+        * Acknowledge that a job was completed.
+        *
+        * This does nothing for certain queue classes or if "claimTTL" is not set.
+        * Outside callers should use JobQueueGroup::ack() instead of this function.
+        *
+        * @param Job $job
+        * @throws MWException
+        * @return bool
+        */
+       final public function ack( Job $job ) {
+               if ( $job->getType() !== $this->type ) {
+                       throw new MWException( "Got '{$job->getType()}' job; expected '{$this->type}'." );
+               }
+               wfProfileIn( __METHOD__ );
+               $ok = $this->doAck( $job );
+               wfProfileOut( __METHOD__ );
+
+               return $ok;
+       }
+
+       /**
+        * @see JobQueue::ack()
+        * @param Job $job
+        * @return bool
+        */
+       abstract protected function doAck( Job $job );
+
+       /**
+        * Register the "root job" of a given job into the queue for de-duplication.
+        * This should only be called right *after* all the new jobs have been inserted.
+        * This is used to turn older, duplicate, job entries into no-ops. The root job
+        * information will remain in the registry until it simply falls out of cache.
+        *
+        * This requires that $job has two special fields in the "params" array:
+        *   - rootJobSignature : hash (e.g. SHA1) that identifies the task
+        *   - rootJobTimestamp : TS_MW timestamp of this instance of the task
+        *
+        * A "root job" is a conceptual job that consist of potentially many smaller jobs
+        * that are actually inserted into the queue. For example, "refreshLinks" jobs are
+        * spawned when a template is edited. One can think of the task as "update links
+        * of pages that use template X" and an instance of that task as a "root job".
+        * However, what actually goes into the queue are range and leaf job subtypes.
+        * Since these jobs include things like page ID ranges and DB master positions,
+        * and can morph into smaller jobs recursively, simple duplicate detection
+        * for individual jobs being identical (like that of job_sha1) is not useful.
+        *
+        * In the case of "refreshLinks", if these jobs are still in the queue when the template
+        * is edited again, we want all of these old refreshLinks jobs for that template to become
+        * no-ops. This can greatly reduce server load, since refreshLinks jobs involves parsing.
+        * Essentially, the new batch of jobs belong to a new "root job" and the older ones to a
+        * previous "root job" for the same task of "update links of pages that use template X".
+        *
+        * This does nothing for certain queue classes.
+        *
+        * @param Job $job
+        * @throws MWException
+        * @return bool
+        */
+       final public function deduplicateRootJob( Job $job ) {
+               if ( $job->getType() !== $this->type ) {
+                       throw new MWException( "Got '{$job->getType()}' job; expected '{$this->type}'." );
+               }
+               wfProfileIn( __METHOD__ );
+               $ok = $this->doDeduplicateRootJob( $job );
+               wfProfileOut( __METHOD__ );
+
+               return $ok;
+       }
+
+       /**
+        * @see JobQueue::deduplicateRootJob()
+        * @param Job $job
+        * @throws MWException
+        * @return bool
+        */
+       protected function doDeduplicateRootJob( Job $job ) {
+               if ( !$job->hasRootJobParams() ) {
+                       throw new MWException( "Cannot register root job; missing parameters." );
+               }
+               $params = $job->getRootJobParams();
+
+               $key = $this->getRootJobCacheKey( $params['rootJobSignature'] );
+               // Callers should call batchInsert() and then this function so that if the insert
+               // fails, the de-duplication registration will be aborted. Since the insert is
+               // deferred till "transaction idle", do the same here, so that the ordering is
+               // maintained. Having only the de-duplication registration succeed would cause
+               // jobs to become no-ops without any actual jobs that made them redundant.
+               $timestamp = $this->dupCache->get( $key ); // current last timestamp of this job
+               if ( $timestamp && $timestamp >= $params['rootJobTimestamp'] ) {
+                       return true; // a newer version of this root job was enqueued
+               }
+
+               // Update the timestamp of the last root job started at the location...
+               return $this->dupCache->set( $key, $params['rootJobTimestamp'], JobQueueDB::ROOTJOB_TTL );
+       }
+
+       /**
+        * Check if the "root" job of a given job has been superseded by a newer one
+        *
+        * @param Job $job
+        * @throws MWException
+        * @return bool
+        */
+       final protected function isRootJobOldDuplicate( Job $job ) {
+               if ( $job->getType() !== $this->type ) {
+                       throw new MWException( "Got '{$job->getType()}' job; expected '{$this->type}'." );
+               }
+               wfProfileIn( __METHOD__ );
+               $isDuplicate = $this->doIsRootJobOldDuplicate( $job );
+               wfProfileOut( __METHOD__ );
+
+               return $isDuplicate;
+       }
+
+       /**
+        * @see JobQueue::isRootJobOldDuplicate()
+        * @param Job $job
+        * @return bool
+        */
+       protected function doIsRootJobOldDuplicate( Job $job ) {
+               if ( !$job->hasRootJobParams() ) {
+                       return false; // job has no de-deplication info
+               }
+               $params = $job->getRootJobParams();
+
+               $key = $this->getRootJobCacheKey( $params['rootJobSignature'] );
+               // Get the last time this root job was enqueued
+               $timestamp = $this->dupCache->get( $key );
+
+               // Check if a new root job was started at the location after this one's...
+               return ( $timestamp && $timestamp > $params['rootJobTimestamp'] );
+       }
+
+       /**
+        * @param string $signature Hash identifier of the root job
+        * @return string
+        */
+       protected function getRootJobCacheKey( $signature ) {
+               list( $db, $prefix ) = wfSplitWikiID( $this->wiki );
+
+               return wfForeignMemcKey( $db, $prefix, 'jobqueue', $this->type, 'rootjob', $signature );
+       }
+
+       /**
+        * Deleted all unclaimed and delayed jobs from the queue
+        *
+        * @return bool Success
+        * @throws JobQueueError
+        * @since 1.22
+        */
+       final public function delete() {
+               wfProfileIn( __METHOD__ );
+               $res = $this->doDelete();
+               wfProfileOut( __METHOD__ );
+
+               return $res;
+       }
+
+       /**
+        * @see JobQueue::delete()
+        * @throws MWException
+        * @return bool Success
+        */
+       protected function doDelete() {
+               throw new MWException( "This method is not implemented." );
+       }
+
+       /**
+        * Wait for any slaves or backup servers to catch up.
+        *
+        * This does nothing for certain queue classes.
+        *
+        * @return void
+        * @throws JobQueueError
+        */
+       final public function waitForBackups() {
+               wfProfileIn( __METHOD__ );
+               $this->doWaitForBackups();
+               wfProfileOut( __METHOD__ );
+       }
+
+       /**
+        * @see JobQueue::waitForBackups()
+        * @return void
+        */
+       protected function doWaitForBackups() {
+       }
+
+       /**
+        * Return a map of task names to task definition maps.
+        * A "task" is a fast periodic queue maintenance action.
+        * Mutually exclusive tasks must implement their own locking in the callback.
+        *
+        * Each task value is an associative array with:
+        *   - name     : the name of the task
+        *   - callback : a PHP callable that performs the task
+        *   - period   : the period in seconds corresponding to the task frequency
+        *
+        * @return array
+        */
+       final public function getPeriodicTasks() {
+               $tasks = $this->doGetPeriodicTasks();
+               foreach ( $tasks as $name => &$def ) {
+                       $def['name'] = $name;
+               }
+
+               return $tasks;
+       }
+
+       /**
+        * @see JobQueue::getPeriodicTasks()
+        * @return array
+        */
+       protected function doGetPeriodicTasks() {
+               return array();
+       }
+
+       /**
+        * Clear any process and persistent caches
+        *
+        * @return void
+        */
+       final public function flushCaches() {
+               wfProfileIn( __METHOD__ );
+               $this->doFlushCaches();
+               wfProfileOut( __METHOD__ );
+       }
+
+       /**
+        * @see JobQueue::flushCaches()
+        * @return void
+        */
+       protected function doFlushCaches() {
+       }
+
+       /**
+        * Get an iterator to traverse over all available jobs in this queue.
+        * This does not include jobs that are currently acquired or delayed.
+        * Note: results may be stale if the queue is concurrently modified.
+        *
+        * @return Iterator
+        * @throws JobQueueError
+        */
+       abstract public function getAllQueuedJobs();
+
+       /**
+        * Get an iterator to traverse over all delayed jobs in this queue.
+        * Note: results may be stale if the queue is concurrently modified.
+        *
+        * @return Iterator
+        * @throws JobQueueError
+        * @since 1.22
+        */
+       public function getAllDelayedJobs() {
+               return new ArrayIterator( array() ); // not implemented
+       }
+
+       /**
+        * Do not use this function outside of JobQueue/JobQueueGroup
+        *
+        * @return string
+        * @since 1.22
+        */
+       public function getCoalesceLocationInternal() {
+               return null;
+       }
+
+       /**
+        * Check whether each of the given queues are empty.
+        * This is used for batching checks for queues stored at the same place.
+        *
+        * @param array $types List of queues types
+        * @return array|null (list of non-empty queue types) or null if unsupported
+        * @throws MWException
+        * @since 1.22
+        */
+       final public function getSiblingQueuesWithJobs( array $types ) {
+               $section = new ProfileSection( __METHOD__ );
+
+               return $this->doGetSiblingQueuesWithJobs( $types );
+       }
+
+       /**
+        * @see JobQueue::getSiblingQueuesWithJobs()
+        * @param array $types List of queues types
+        * @return array|null (list of queue types) or null if unsupported
+        */
+       protected function doGetSiblingQueuesWithJobs( array $types ) {
+               return null; // not supported
+       }
+
+       /**
+        * Check the size of each of the given queues.
+        * For queues not served by the same store as this one, 0 is returned.
+        * This is used for batching checks for queues stored at the same place.
+        *
+        * @param array $types List of queues types
+        * @return array|null (job type => whether queue is empty) or null if unsupported
+        * @throws MWException
+        * @since 1.22
+        */
+       final public function getSiblingQueueSizes( array $types ) {
+               $section = new ProfileSection( __METHOD__ );
+
+               return $this->doGetSiblingQueueSizes( $types );
+       }
+
+       /**
+        * @see JobQueue::getSiblingQueuesSize()
+        * @param array $types List of queues types
+        * @return array|null (list of queue types) or null if unsupported
+        */
+       protected function doGetSiblingQueueSizes( array $types ) {
+               return null; // not supported
+       }
+
+       /**
+        * Call wfIncrStats() for the queue overall and for the queue type
+        *
+        * @param string $key Event type
+        * @param string $type Job type
+        * @param int $delta
+        * @since 1.22
+        */
+       public static function incrStats( $key, $type, $delta = 1 ) {
+               wfIncrStats( $key, $delta );
+               wfIncrStats( "{$key}-{$type}", $delta );
+       }
+
+       /**
+        * Namespace the queue with a key to isolate it for testing
+        *
+        * @param string $key
+        * @return void
+        * @throws MWException
+        */
+       public function setTestingPrefix( $key ) {
+               throw new MWException( "Queue namespacing not supported for this queue type." );
+       }
+}
+
+/**
+ * @ingroup JobQueue
+ * @since 1.22
+ */
+class JobQueueError extends MWException {
+}
+
+class JobQueueConnectionError extends JobQueueError {
+}
diff --git a/includes/jobqueue/JobQueueDB.php b/includes/jobqueue/JobQueueDB.php
new file mode 100644 (file)
index 0000000..6097d31
--- /dev/null
@@ -0,0 +1,848 @@
+<?php
+/**
+ * Database-backed job queue 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Aaron Schulz
+ */
+
+/**
+ * Class to handle job queues stored in the DB
+ *
+ * @ingroup JobQueue
+ * @since 1.21
+ */
+class JobQueueDB extends JobQueue {
+       const CACHE_TTL_SHORT = 30; // integer; seconds to cache info without re-validating
+       const CACHE_TTL_LONG = 300; // integer; seconds to cache info that is kept up to date
+       const MAX_AGE_PRUNE = 604800; // integer; seconds a job can live once claimed
+       const MAX_JOB_RANDOM = 2147483647; // integer; 2^31 - 1, used for job_random
+       const MAX_OFFSET = 255; // integer; maximum number of rows to skip
+
+       /** @var BagOStuff */
+       protected $cache;
+
+       /** @var bool|string Name of an external DB cluster. False if not set */
+       protected $cluster = false;
+
+       /**
+        * Additional parameters include:
+        *   - cluster : The name of an external cluster registered via LBFactory.
+        *               If not specified, the primary DB cluster for the wiki will be used.
+        *               This can be overridden with a custom cluster so that DB handles will
+        *               be retrieved via LBFactory::getExternalLB() and getConnection().
+        * @param array $params
+        */
+       protected function __construct( array $params ) {
+               global $wgMemc;
+
+               parent::__construct( $params );
+
+               $this->cluster = isset( $params['cluster'] ) ? $params['cluster'] : false;
+               // Make sure that we don't use the SQL cache, which would be harmful
+               $this->cache = ( $wgMemc instanceof SqlBagOStuff ) ? new EmptyBagOStuff() : $wgMemc;
+       }
+
+       protected function supportedOrders() {
+               return array( 'random', 'timestamp', 'fifo' );
+       }
+
+       protected function optimalOrder() {
+               return 'random';
+       }
+
+       /**
+        * @see JobQueue::doIsEmpty()
+        * @return bool
+        */
+       protected function doIsEmpty() {
+               $key = $this->getCacheKey( 'empty' );
+
+               $isEmpty = $this->cache->get( $key );
+               if ( $isEmpty === 'true' ) {
+                       return true;
+               } elseif ( $isEmpty === 'false' ) {
+                       return false;
+               }
+
+               $dbr = $this->getSlaveDB();
+               try {
+                       $found = $dbr->selectField( // unclaimed job
+                               'job', '1', array( 'job_cmd' => $this->type, 'job_token' => '' ), __METHOD__
+                       );
+               } catch ( DBError $e ) {
+                       $this->throwDBException( $e );
+               }
+               $this->cache->add( $key, $found ? 'false' : 'true', self::CACHE_TTL_LONG );
+
+               return !$found;
+       }
+
+       /**
+        * @see JobQueue::doGetSize()
+        * @return int
+        */
+       protected function doGetSize() {
+               $key = $this->getCacheKey( 'size' );
+
+               $size = $this->cache->get( $key );
+               if ( is_int( $size ) ) {
+                       return $size;
+               }
+
+               try {
+                       $dbr = $this->getSlaveDB();
+                       $size = (int)$dbr->selectField( 'job', 'COUNT(*)',
+                               array( 'job_cmd' => $this->type, 'job_token' => '' ),
+                               __METHOD__
+                       );
+               } catch ( DBError $e ) {
+                       $this->throwDBException( $e );
+               }
+               $this->cache->set( $key, $size, self::CACHE_TTL_SHORT );
+
+               return $size;
+       }
+
+       /**
+        * @see JobQueue::doGetAcquiredCount()
+        * @return int
+        */
+       protected function doGetAcquiredCount() {
+               if ( $this->claimTTL <= 0 ) {
+                       return 0; // no acknowledgements
+               }
+
+               $key = $this->getCacheKey( 'acquiredcount' );
+
+               $count = $this->cache->get( $key );
+               if ( is_int( $count ) ) {
+                       return $count;
+               }
+
+               $dbr = $this->getSlaveDB();
+               try {
+                       $count = (int)$dbr->selectField( 'job', 'COUNT(*)',
+                               array( 'job_cmd' => $this->type, "job_token != {$dbr->addQuotes( '' )}" ),
+                               __METHOD__
+                       );
+               } catch ( DBError $e ) {
+                       $this->throwDBException( $e );
+               }
+               $this->cache->set( $key, $count, self::CACHE_TTL_SHORT );
+
+               return $count;
+       }
+
+       /**
+        * @see JobQueue::doGetAbandonedCount()
+        * @return int
+        * @throws MWException
+        */
+       protected function doGetAbandonedCount() {
+               global $wgMemc;
+
+               if ( $this->claimTTL <= 0 ) {
+                       return 0; // no acknowledgements
+               }
+
+               $key = $this->getCacheKey( 'abandonedcount' );
+
+               $count = $wgMemc->get( $key );
+               if ( is_int( $count ) ) {
+                       return $count;
+               }
+
+               $dbr = $this->getSlaveDB();
+               try {
+                       $count = (int)$dbr->selectField( 'job', 'COUNT(*)',
+                               array(
+                                       'job_cmd' => $this->type,
+                                       "job_token != {$dbr->addQuotes( '' )}",
+                                       "job_attempts >= " . $dbr->addQuotes( $this->maxTries )
+                               ),
+                               __METHOD__
+                       );
+               } catch ( DBError $e ) {
+                       $this->throwDBException( $e );
+               }
+               $wgMemc->set( $key, $count, self::CACHE_TTL_SHORT );
+
+               return $count;
+       }
+
+       /**
+        * @see JobQueue::doBatchPush()
+        * @param array $jobs
+        * @param $flags
+        * @throws DBError|Exception
+        * @return bool
+        */
+       protected function doBatchPush( array $jobs, $flags ) {
+               $dbw = $this->getMasterDB();
+
+               $that = $this;
+               $method = __METHOD__;
+               $dbw->onTransactionIdle(
+                       function () use ( $dbw, $that, $jobs, $flags, $method ) {
+                               $that->doBatchPushInternal( $dbw, $jobs, $flags, $method );
+                       }
+               );
+
+               return true;
+       }
+
+       /**
+        * This function should *not* be called outside of JobQueueDB
+        *
+        * @param IDatabase $dbw
+        * @param array $jobs
+        * @param int $flags
+        * @param string $method
+        * @throws DBError
+        * @return bool
+        */
+       public function doBatchPushInternal( IDatabase $dbw, array $jobs, $flags, $method ) {
+               if ( !count( $jobs ) ) {
+                       return true;
+               }
+
+               $rowSet = array(); // (sha1 => job) map for jobs that are de-duplicated
+               $rowList = array(); // list of jobs for jobs that are are not de-duplicated
+               foreach ( $jobs as $job ) {
+                       $row = $this->insertFields( $job );
+                       if ( $job->ignoreDuplicates() ) {
+                               $rowSet[$row['job_sha1']] = $row;
+                       } else {
+                               $rowList[] = $row;
+                       }
+               }
+
+               if ( $flags & self::QOS_ATOMIC ) {
+                       $dbw->begin( $method ); // wrap all the job additions in one transaction
+               }
+               try {
+                       // Strip out any duplicate jobs that are already in the queue...
+                       if ( count( $rowSet ) ) {
+                               $res = $dbw->select( 'job', 'job_sha1',
+                                       array(
+                                               // No job_type condition since it's part of the job_sha1 hash
+                                               'job_sha1' => array_keys( $rowSet ),
+                                               'job_token' => '' // unclaimed
+                                       ),
+                                       $method
+                               );
+                               foreach ( $res as $row ) {
+                                       wfDebug( "Job with hash '{$row->job_sha1}' is a duplicate.\n" );
+                                       unset( $rowSet[$row->job_sha1] ); // already enqueued
+                               }
+                       }
+                       // Build the full list of job rows to insert
+                       $rows = array_merge( $rowList, array_values( $rowSet ) );
+                       // Insert the job rows in chunks to avoid slave lag...
+                       foreach ( array_chunk( $rows, 50 ) as $rowBatch ) {
+                               $dbw->insert( 'job', $rowBatch, $method );
+                       }
+                       JobQueue::incrStats( 'job-insert', $this->type, count( $rows ) );
+                       JobQueue::incrStats(
+                               'job-insert-duplicate',
+                               $this->type,
+                               count( $rowSet ) + count( $rowList ) - count( $rows )
+                       );
+               } catch ( DBError $e ) {
+                       if ( $flags & self::QOS_ATOMIC ) {
+                               $dbw->rollback( $method );
+                       }
+                       throw $e;
+               }
+               if ( $flags & self::QOS_ATOMIC ) {
+                       $dbw->commit( $method );
+               }
+
+               $this->cache->set( $this->getCacheKey( 'empty' ), 'false', JobQueueDB::CACHE_TTL_LONG );
+
+               return true;
+       }
+
+       /**
+        * @see JobQueue::doPop()
+        * @return Job|bool
+        */
+       protected function doPop() {
+               if ( $this->cache->get( $this->getCacheKey( 'empty' ) ) === 'true' ) {
+                       return false; // queue is empty
+               }
+
+               $dbw = $this->getMasterDB();
+               try {
+                       $dbw->commit( __METHOD__, 'flush' ); // flush existing transaction
+                       $autoTrx = $dbw->getFlag( DBO_TRX ); // get current setting
+                       $dbw->clearFlag( DBO_TRX ); // make each query its own transaction
+                       $scopedReset = new ScopedCallback( function () use ( $dbw, $autoTrx ) {
+                               $dbw->setFlag( $autoTrx ? DBO_TRX : 0 ); // restore old setting
+                       } );
+
+                       $uuid = wfRandomString( 32 ); // pop attempt
+                       $job = false; // job popped off
+                       do { // retry when our row is invalid or deleted as a duplicate
+                               // Try to reserve a row in the DB...
+                               if ( in_array( $this->order, array( 'fifo', 'timestamp' ) ) ) {
+                                       $row = $this->claimOldest( $uuid );
+                               } else { // random first
+                                       $rand = mt_rand( 0, self::MAX_JOB_RANDOM ); // encourage concurrent UPDATEs
+                                       $gte = (bool)mt_rand( 0, 1 ); // find rows with rand before/after $rand
+                                       $row = $this->claimRandom( $uuid, $rand, $gte );
+                               }
+                               // Check if we found a row to reserve...
+                               if ( !$row ) {
+                                       $this->cache->set( $this->getCacheKey( 'empty' ), 'true', self::CACHE_TTL_LONG );
+                                       break; // nothing to do
+                               }
+                               JobQueue::incrStats( 'job-pop', $this->type );
+                               // Get the job object from the row...
+                               $title = Title::makeTitleSafe( $row->job_namespace, $row->job_title );
+                               if ( !$title ) {
+                                       $dbw->delete( 'job', array( 'job_id' => $row->job_id ), __METHOD__ );
+                                       wfDebug( "Row has invalid title '{$row->job_title}'." );
+                                       continue; // try again
+                               }
+                               $job = Job::factory( $row->job_cmd, $title,
+                                       self::extractBlob( $row->job_params ), $row->job_id );
+                               $job->metadata['id'] = $row->job_id;
+                               break; // done
+                       } while ( true );
+               } catch ( DBError $e ) {
+                       $this->throwDBException( $e );
+               }
+
+               return $job;
+       }
+
+       /**
+        * Reserve a row with a single UPDATE without holding row locks over RTTs...
+        *
+        * @param string $uuid 32 char hex string
+        * @param $rand integer Random unsigned integer (31 bits)
+        * @param bool $gte Search for job_random >= $random (otherwise job_random <= $random)
+        * @return stdClass|bool Row|false
+        */
+       protected function claimRandom( $uuid, $rand, $gte ) {
+               $dbw = $this->getMasterDB();
+               // Check cache to see if the queue has <= OFFSET items
+               $tinyQueue = $this->cache->get( $this->getCacheKey( 'small' ) );
+
+               $row = false; // the row acquired
+               $invertedDirection = false; // whether one job_random direction was already scanned
+               // This uses a replication safe method for acquiring jobs. One could use UPDATE+LIMIT
+               // instead, but that either uses ORDER BY (in which case it deadlocks in MySQL) or is
+               // not replication safe. Due to http://bugs.mysql.com/bug.php?id=6980, subqueries cannot
+               // be used here with MySQL.
+               do {
+                       if ( $tinyQueue ) { // queue has <= MAX_OFFSET rows
+                               // For small queues, using OFFSET will overshoot and return no rows more often.
+                               // Instead, this uses job_random to pick a row (possibly checking both directions).
+                               $ineq = $gte ? '>=' : '<=';
+                               $dir = $gte ? 'ASC' : 'DESC';
+                               $row = $dbw->selectRow( 'job', self::selectFields(), // find a random job
+                                       array(
+                                               'job_cmd' => $this->type,
+                                               'job_token' => '', // unclaimed
+                                               "job_random {$ineq} {$dbw->addQuotes( $rand )}" ),
+                                       __METHOD__,
+                                       array( 'ORDER BY' => "job_random {$dir}" )
+                               );
+                               if ( !$row && !$invertedDirection ) {
+                                       $gte = !$gte;
+                                       $invertedDirection = true;
+                                       continue; // try the other direction
+                               }
+                       } else { // table *may* have >= MAX_OFFSET rows
+                               // Bug 42614: "ORDER BY job_random" with a job_random inequality causes high CPU
+                               // in MySQL if there are many rows for some reason. This uses a small OFFSET
+                               // instead of job_random for reducing excess claim retries.
+                               $row = $dbw->selectRow( 'job', self::selectFields(), // find a random job
+                                       array(
+                                               'job_cmd' => $this->type,
+                                               'job_token' => '', // unclaimed
+                                       ),
+                                       __METHOD__,
+                                       array( 'OFFSET' => mt_rand( 0, self::MAX_OFFSET ) )
+                               );
+                               if ( !$row ) {
+                                       $tinyQueue = true; // we know the queue must have <= MAX_OFFSET rows
+                                       $this->cache->set( $this->getCacheKey( 'small' ), 1, 30 );
+                                       continue; // use job_random
+                               }
+                       }
+
+                       if ( $row ) { // claim the job
+                               $dbw->update( 'job', // update by PK
+                                       array(
+                                               'job_token' => $uuid,
+                                               'job_token_timestamp' => $dbw->timestamp(),
+                                               'job_attempts = job_attempts+1' ),
+                                       array( 'job_cmd' => $this->type, 'job_id' => $row->job_id, 'job_token' => '' ),
+                                       __METHOD__
+                               );
+                               // This might get raced out by another runner when claiming the previously
+                               // selected row. The use of job_random should minimize this problem, however.
+                               if ( !$dbw->affectedRows() ) {
+                                       $row = false; // raced out
+                               }
+                       } else {
+                               break; // nothing to do
+                       }
+               } while ( !$row );
+
+               return $row;
+       }
+
+       /**
+        * Reserve a row with a single UPDATE without holding row locks over RTTs...
+        *
+        * @param string $uuid 32 char hex string
+        * @return stdClass|bool Row|false
+        */
+       protected function claimOldest( $uuid ) {
+               $dbw = $this->getMasterDB();
+
+               $row = false; // the row acquired
+               do {
+                       if ( $dbw->getType() === 'mysql' ) {
+                               // Per http://bugs.mysql.com/bug.php?id=6980, we can't use subqueries on the
+                               // same table being changed in an UPDATE query in MySQL (gives Error: 1093).
+                               // Oracle and Postgre have no such limitation. However, MySQL offers an
+                               // alternative here by supporting ORDER BY + LIMIT for UPDATE queries.
+                               $dbw->query( "UPDATE {$dbw->tableName( 'job' )} " .
+                                       "SET " .
+                                               "job_token = {$dbw->addQuotes( $uuid ) }, " .
+                                               "job_token_timestamp = {$dbw->addQuotes( $dbw->timestamp() )}, " .
+                                               "job_attempts = job_attempts+1 " .
+                                       "WHERE ( " .
+                                               "job_cmd = {$dbw->addQuotes( $this->type )} " .
+                                               "AND job_token = {$dbw->addQuotes( '' )} " .
+                                       ") ORDER BY job_id ASC LIMIT 1",
+                                       __METHOD__
+                               );
+                       } else {
+                               // Use a subquery to find the job, within an UPDATE to claim it.
+                               // This uses as much of the DB wrapper functions as possible.
+                               $dbw->update( 'job',
+                                       array(
+                                               'job_token' => $uuid,
+                                               'job_token_timestamp' => $dbw->timestamp(),
+                                               'job_attempts = job_attempts+1' ),
+                                       array( 'job_id = (' .
+                                               $dbw->selectSQLText( 'job', 'job_id',
+                                                       array( 'job_cmd' => $this->type, 'job_token' => '' ),
+                                                       __METHOD__,
+                                                       array( 'ORDER BY' => 'job_id ASC', 'LIMIT' => 1 ) ) .
+                                               ')'
+                                       ),
+                                       __METHOD__
+                               );
+                       }
+                       // Fetch any row that we just reserved...
+                       if ( $dbw->affectedRows() ) {
+                               $row = $dbw->selectRow( 'job', self::selectFields(),
+                                       array( 'job_cmd' => $this->type, 'job_token' => $uuid ), __METHOD__
+                               );
+                               if ( !$row ) { // raced out by duplicate job removal
+                                       wfDebug( "Row deleted as duplicate by another process." );
+                               }
+                       } else {
+                               break; // nothing to do
+                       }
+               } while ( !$row );
+
+               return $row;
+       }
+
+       /**
+        * @see JobQueue::doAck()
+        * @param Job $job
+        * @throws MWException
+        * @return Job|bool
+        */
+       protected function doAck( Job $job ) {
+               if ( !isset( $job->metadata['id'] ) ) {
+                       throw new MWException( "Job of type '{$job->getType()}' has no ID." );
+               }
+
+               $dbw = $this->getMasterDB();
+               try {
+                       $dbw->commit( __METHOD__, 'flush' ); // flush existing transaction
+                       $autoTrx = $dbw->getFlag( DBO_TRX ); // get current setting
+                       $dbw->clearFlag( DBO_TRX ); // make each query its own transaction
+                       $scopedReset = new ScopedCallback( function () use ( $dbw, $autoTrx ) {
+                               $dbw->setFlag( $autoTrx ? DBO_TRX : 0 ); // restore old setting
+                       } );
+
+                       // Delete a row with a single DELETE without holding row locks over RTTs...
+                       $dbw->delete( 'job',
+                               array( 'job_cmd' => $this->type, 'job_id' => $job->metadata['id'] ), __METHOD__ );
+               } catch ( DBError $e ) {
+                       $this->throwDBException( $e );
+               }
+
+               return true;
+       }
+
+       /**
+        * @see JobQueue::doDeduplicateRootJob()
+        * @param Job $job
+        * @throws MWException
+        * @return bool
+        */
+       protected function doDeduplicateRootJob( Job $job ) {
+               $params = $job->getParams();
+               if ( !isset( $params['rootJobSignature'] ) ) {
+                       throw new MWException( "Cannot register root job; missing 'rootJobSignature'." );
+               } elseif ( !isset( $params['rootJobTimestamp'] ) ) {
+                       throw new MWException( "Cannot register root job; missing 'rootJobTimestamp'." );
+               }
+               $key = $this->getRootJobCacheKey( $params['rootJobSignature'] );
+               // Callers should call batchInsert() and then this function so that if the insert
+               // fails, the de-duplication registration will be aborted. Since the insert is
+               // deferred till "transaction idle", do the same here, so that the ordering is
+               // maintained. Having only the de-duplication registration succeed would cause
+               // jobs to become no-ops without any actual jobs that made them redundant.
+               $dbw = $this->getMasterDB();
+               $cache = $this->dupCache;
+               $dbw->onTransactionIdle( function () use ( $cache, $params, $key, $dbw ) {
+                       $timestamp = $cache->get( $key ); // current last timestamp of this job
+                       if ( $timestamp && $timestamp >= $params['rootJobTimestamp'] ) {
+                               return true; // a newer version of this root job was enqueued
+                       }
+
+                       // Update the timestamp of the last root job started at the location...
+                       return $cache->set( $key, $params['rootJobTimestamp'], JobQueueDB::ROOTJOB_TTL );
+               } );
+
+               return true;
+       }
+
+       /**
+        * @see JobQueue::doDelete()
+        * @return bool
+        */
+       protected function doDelete() {
+               $dbw = $this->getMasterDB();
+               try {
+                       $dbw->delete( 'job', array( 'job_cmd' => $this->type ) );
+               } catch ( DBError $e ) {
+                       $this->throwDBException( $e );
+               }
+
+               return true;
+       }
+
+       /**
+        * @see JobQueue::doWaitForBackups()
+        * @return void
+        */
+       protected function doWaitForBackups() {
+               wfWaitForSlaves();
+       }
+
+       /**
+        * @return array
+        */
+       protected function doGetPeriodicTasks() {
+               return array(
+                       'recycleAndDeleteStaleJobs' => array(
+                               'callback' => array( $this, 'recycleAndDeleteStaleJobs' ),
+                               'period' => ceil( $this->claimTTL / 2 )
+                       )
+               );
+       }
+
+       /**
+        * @return void
+        */
+       protected function doFlushCaches() {
+               foreach ( array( 'empty', 'size', 'acquiredcount' ) as $type ) {
+                       $this->cache->delete( $this->getCacheKey( $type ) );
+               }
+       }
+
+       /**
+        * @see JobQueue::getAllQueuedJobs()
+        * @return Iterator
+        */
+       public function getAllQueuedJobs() {
+               $dbr = $this->getSlaveDB();
+               try {
+                       return new MappedIterator(
+                               $dbr->select( 'job', self::selectFields(),
+                                       array( 'job_cmd' => $this->getType(), 'job_token' => '' ) ),
+                               function ( $row ) use ( $dbr ) {
+                                       $job = Job::factory(
+                                               $row->job_cmd,
+                                               Title::makeTitle( $row->job_namespace, $row->job_title ),
+                                               strlen( $row->job_params ) ? unserialize( $row->job_params ) : false
+                                       );
+                                       $job->metadata['id'] = $row->job_id;
+                                       return $job;
+                               }
+                       );
+               } catch ( DBError $e ) {
+                       $this->throwDBException( $e );
+               }
+       }
+
+       public function getCoalesceLocationInternal() {
+               return $this->cluster
+                       ? "DBCluster:{$this->cluster}:{$this->wiki}"
+                       : "LBFactory:{$this->wiki}";
+       }
+
+       protected function doGetSiblingQueuesWithJobs( array $types ) {
+               $dbr = $this->getSlaveDB();
+               $res = $dbr->select( 'job', 'DISTINCT job_cmd',
+                       array( 'job_cmd' => $types ), __METHOD__ );
+
+               $types = array();
+               foreach ( $res as $row ) {
+                       $types[] = $row->job_cmd;
+               }
+
+               return $types;
+       }
+
+       protected function doGetSiblingQueueSizes( array $types ) {
+               $dbr = $this->getSlaveDB();
+               $res = $dbr->select( 'job', array( 'job_cmd', 'COUNT(*) AS count' ),
+                       array( 'job_cmd' => $types ), __METHOD__, array( 'GROUP BY' => 'job_cmd' ) );
+
+               $sizes = array();
+               foreach ( $res as $row ) {
+                       $sizes[$row->job_cmd] = (int)$row->count;
+               }
+
+               return $sizes;
+       }
+
+       /**
+        * Recycle or destroy any jobs that have been claimed for too long
+        *
+        * @return int Number of jobs recycled/deleted
+        */
+       public function recycleAndDeleteStaleJobs() {
+               $now = time();
+               $count = 0; // affected rows
+               $dbw = $this->getMasterDB();
+
+               try {
+                       if ( !$dbw->lock( "jobqueue-recycle-{$this->type}", __METHOD__, 1 ) ) {
+                               return $count; // already in progress
+                       }
+
+                       // Remove claims on jobs acquired for too long if enabled...
+                       if ( $this->claimTTL > 0 ) {
+                               $claimCutoff = $dbw->timestamp( $now - $this->claimTTL );
+                               // Get the IDs of jobs that have be claimed but not finished after too long.
+                               // These jobs can be recycled into the queue by expiring the claim. Selecting
+                               // the IDs first means that the UPDATE can be done by primary key (less deadlocks).
+                               $res = $dbw->select( 'job', 'job_id',
+                                       array(
+                                               'job_cmd' => $this->type,
+                                               "job_token != {$dbw->addQuotes( '' )}", // was acquired
+                                               "job_token_timestamp < {$dbw->addQuotes( $claimCutoff )}", // stale
+                                               "job_attempts < {$dbw->addQuotes( $this->maxTries )}" ), // retries left
+                                       __METHOD__
+                               );
+                               $ids = array_map(
+                                       function ( $o ) {
+                                               return $o->job_id;
+                                       }, iterator_to_array( $res )
+                               );
+                               if ( count( $ids ) ) {
+                                       // Reset job_token for these jobs so that other runners will pick them up.
+                                       // Set the timestamp to the current time, as it is useful to now that the job
+                                       // was already tried before (the timestamp becomes the "released" time).
+                                       $dbw->update( 'job',
+                                               array(
+                                                       'job_token' => '',
+                                                       'job_token_timestamp' => $dbw->timestamp( $now ) ), // time of release
+                                               array(
+                                                       'job_id' => $ids ),
+                                               __METHOD__
+                                       );
+                                       $count += $dbw->affectedRows();
+                                       JobQueue::incrStats( 'job-recycle', $this->type, $dbw->affectedRows() );
+                                       $this->cache->set( $this->getCacheKey( 'empty' ), 'false', self::CACHE_TTL_LONG );
+                               }
+                       }
+
+                       // Just destroy any stale jobs...
+                       $pruneCutoff = $dbw->timestamp( $now - self::MAX_AGE_PRUNE );
+                       $conds = array(
+                               'job_cmd' => $this->type,
+                               "job_token != {$dbw->addQuotes( '' )}", // was acquired
+                               "job_token_timestamp < {$dbw->addQuotes( $pruneCutoff )}" // stale
+                       );
+                       if ( $this->claimTTL > 0 ) { // only prune jobs attempted too many times...
+                               $conds[] = "job_attempts >= {$dbw->addQuotes( $this->maxTries )}";
+                       }
+                       // Get the IDs of jobs that are considered stale and should be removed. Selecting
+                       // the IDs first means that the UPDATE can be done by primary key (less deadlocks).
+                       $res = $dbw->select( 'job', 'job_id', $conds, __METHOD__ );
+                       $ids = array_map(
+                               function ( $o ) {
+                                       return $o->job_id;
+                               }, iterator_to_array( $res )
+                       );
+                       if ( count( $ids ) ) {
+                               $dbw->delete( 'job', array( 'job_id' => $ids ), __METHOD__ );
+                               $count += $dbw->affectedRows();
+                               JobQueue::incrStats( 'job-abandon', $this->type, $dbw->affectedRows() );
+                       }
+
+                       $dbw->unlock( "jobqueue-recycle-{$this->type}", __METHOD__ );
+               } catch ( DBError $e ) {
+                       $this->throwDBException( $e );
+               }
+
+               return $count;
+       }
+
+       /**
+        * @param IJobSpecification $job
+        * @return array
+        */
+       protected function insertFields( IJobSpecification $job ) {
+               $dbw = $this->getMasterDB();
+
+               return array(
+                       // Fields that describe the nature of the job
+                       'job_cmd' => $job->getType(),
+                       'job_namespace' => $job->getTitle()->getNamespace(),
+                       'job_title' => $job->getTitle()->getDBkey(),
+                       'job_params' => self::makeBlob( $job->getParams() ),
+                       // Additional job metadata
+                       'job_id' => $dbw->nextSequenceValue( 'job_job_id_seq' ),
+                       'job_timestamp' => $dbw->timestamp(),
+                       'job_sha1' => wfBaseConvert(
+                               sha1( serialize( $job->getDeduplicationInfo() ) ),
+                               16, 36, 31
+                       ),
+                       'job_random' => mt_rand( 0, self::MAX_JOB_RANDOM )
+               );
+       }
+
+       /**
+        * @throws JobQueueConnectionError
+        * @return DBConnRef
+        */
+       protected function getSlaveDB() {
+               try {
+                       return $this->getDB( DB_SLAVE );
+               } catch ( DBConnectionError $e ) {
+                       throw new JobQueueConnectionError( "DBConnectionError:" . $e->getMessage() );
+               }
+       }
+
+       /**
+        * @throws JobQueueConnectionError
+        * @return DBConnRef
+        */
+       protected function getMasterDB() {
+               try {
+                       return $this->getDB( DB_MASTER );
+               } catch ( DBConnectionError $e ) {
+                       throw new JobQueueConnectionError( "DBConnectionError:" . $e->getMessage() );
+               }
+       }
+
+       /**
+        * @param $index integer (DB_SLAVE/DB_MASTER)
+        * @return DBConnRef
+        */
+       protected function getDB( $index ) {
+               $lb = ( $this->cluster !== false )
+                       ? wfGetLBFactory()->getExternalLB( $this->cluster, $this->wiki )
+                       : wfGetLB( $this->wiki );
+
+               return $lb->getConnectionRef( $index, array(), $this->wiki );
+       }
+
+       /**
+        * @param $property
+        * @return string
+        */
+       private function getCacheKey( $property ) {
+               list( $db, $prefix ) = wfSplitWikiID( $this->wiki );
+               $cluster = is_string( $this->cluster ) ? $this->cluster : 'main';
+
+               return wfForeignMemcKey( $db, $prefix, 'jobqueue', $cluster, $this->type, $property );
+       }
+
+       /**
+        * @param $params
+        * @return string
+        */
+       protected static function makeBlob( $params ) {
+               if ( $params !== false ) {
+                       return serialize( $params );
+               } else {
+                       return '';
+               }
+       }
+
+       /**
+        * @param $blob
+        * @return bool|mixed
+        */
+       protected static function extractBlob( $blob ) {
+               if ( (string)$blob !== '' ) {
+                       return unserialize( $blob );
+               } else {
+                       return false;
+               }
+       }
+
+       /**
+        * @param DBError $e
+        * @throws JobQueueError
+        */
+       protected function throwDBException( DBError $e ) {
+               throw new JobQueueError( get_class( $e ) . ": " . $e->getMessage() );
+       }
+
+       /**
+        * Return the list of job fields that should be selected.
+        * @since 1.23
+        * @return array
+        */
+       public static function selectFields() {
+               return array(
+                       'job_id',
+                       'job_cmd',
+                       'job_namespace',
+                       'job_title',
+                       'job_timestamp',
+                       'job_params',
+                       'job_random',
+                       'job_attempts',
+                       'job_token',
+                       'job_token_timestamp',
+                       'job_sha1',
+               );
+       }
+}
diff --git a/includes/jobqueue/JobQueueFederated.php b/includes/jobqueue/JobQueueFederated.php
new file mode 100644 (file)
index 0000000..9502148
--- /dev/null
@@ -0,0 +1,553 @@
+<?php
+/**
+ * Job queue code for federated queues.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Aaron Schulz
+ */
+
+/**
+ * Class to handle enqueueing and running of background jobs for federated queues
+ *
+ * This class allows for queues to be partitioned into smaller queues.
+ * A partition is defined by the configuration for a JobQueue instance.
+ * For example, one can set $wgJobTypeConf['refreshLinks'] to point to a
+ * JobQueueFederated instance, which itself would consist of three JobQueueRedis
+ * instances, each using their own redis server. This would allow for the jobs
+ * to be split (evenly or based on weights) accross multiple servers if a single
+ * server becomes impractical or expensive. Different JobQueue classes can be mixed.
+ *
+ * The basic queue configuration (e.g. "order", "claimTTL") of a federated queue
+ * is inherited by the partition queues. Additional configuration defines what
+ * section each wiki is in, what partition queues each section uses (and their weight),
+ * and the JobQueue configuration for each partition. Some sections might only need a
+ * single queue partition, like the sections for groups of small wikis.
+ *
+ * If used for performance, then $wgMainCacheType should be set to memcached/redis.
+ * Note that "fifo" cannot be used for the ordering, since the data is distributed.
+ * One can still use "timestamp" instead, as in "roughly timestamp ordered". Also,
+ * queue classes used by this should ignore down servers (with TTL) to avoid slowness.
+ *
+ * @ingroup JobQueue
+ * @since 1.22
+ */
+class JobQueueFederated extends JobQueue {
+       /** @var array (partition name => weight) reverse sorted by weight */
+       protected $partitionMap = array();
+
+       /** @var array (partition name => JobQueue) reverse sorted by weight */
+       protected $partitionQueues = array();
+
+       /** @var HashRing */
+       protected $partitionPushRing;
+
+       /** @var BagOStuff */
+       protected $cache;
+
+       /** @var int Maximum number of partitions to try */
+       protected $maxPartitionsTry;
+
+       const CACHE_TTL_SHORT = 30; // integer; seconds to cache info without re-validating
+       const CACHE_TTL_LONG = 300; // integer; seconds to cache info that is kept up to date
+
+       /**
+        * @params include:
+        *  - sectionsByWiki      : A map of wiki IDs to section names.
+        *                          Wikis will default to using the section "default".
+        *  - partitionsBySection : Map of section names to maps of (partition name => weight).
+        *                          A section called 'default' must be defined if not all wikis
+        *                          have explicitly defined sections.
+        *  - configByPartition   : Map of queue partition names to configuration arrays.
+        *                          These configuration arrays are passed to JobQueue::factory().
+        *                          The options set here are overriden by those passed to this
+        *                          the federated queue itself (e.g. 'order' and 'claimTTL').
+        *  - partitionsNoPush    : List of partition names that can handle pop() but not push().
+        *                          This can be used to migrate away from a certain partition.
+        *  - maxPartitionsTry    : Maximum number of times to attempt job insertion using
+        *                          different partition queues. This improves availability
+        *                          during failure, at the cost of added latency and somewhat
+        *                          less reliable job de-duplication mechanisms.
+        * @param array $params
+        * @throws MWException
+        */
+       protected function __construct( array $params ) {
+               parent::__construct( $params );
+               $section = isset( $params['sectionsByWiki'][$this->wiki] )
+                       ? $params['sectionsByWiki'][$this->wiki]
+                       : 'default';
+               if ( !isset( $params['partitionsBySection'][$section] ) ) {
+                       throw new MWException( "No configuration for section '$section'." );
+               }
+               $this->maxPartitionsTry = isset( $params['maxPartitionsTry'] )
+                       ? $params['maxPartitionsTry']
+                       : 2;
+               // Get the full partition map
+               $this->partitionMap = $params['partitionsBySection'][$section];
+               arsort( $this->partitionMap, SORT_NUMERIC );
+               // Get the partitions jobs can actually be pushed to
+               $partitionPushMap = $this->partitionMap;
+               if ( isset( $params['partitionsNoPush'] ) ) {
+                       foreach ( $params['partitionsNoPush'] as $partition ) {
+                               unset( $partitionPushMap[$partition] );
+                       }
+               }
+               // Get the config to pass to merge into each partition queue config
+               $baseConfig = $params;
+               foreach ( array( 'class', 'sectionsByWiki', 'maxPartitionsTry',
+                       'partitionsBySection', 'configByPartition', 'partitionsNoPush' ) as $o
+               ) {
+                       unset( $baseConfig[$o] ); // partition queue doesn't care about this
+               }
+               // Get the partition queue objects
+               foreach ( $this->partitionMap as $partition => $w ) {
+                       if ( !isset( $params['configByPartition'][$partition] ) ) {
+                               throw new MWException( "No configuration for partition '$partition'." );
+                       }
+                       $this->partitionQueues[$partition] = JobQueue::factory(
+                               $baseConfig + $params['configByPartition'][$partition] );
+               }
+               // Get the ring of partitions to push jobs into
+               $this->partitionPushRing = new HashRing( $partitionPushMap );
+               // Aggregate cache some per-queue values if there are multiple partition queues
+               $this->cache = count( $this->partitionMap ) > 1 ? wfGetMainCache() : new EmptyBagOStuff();
+       }
+
+       protected function supportedOrders() {
+               // No FIFO due to partitioning, though "rough timestamp order" is supported
+               return array( 'undefined', 'random', 'timestamp' );
+       }
+
+       protected function optimalOrder() {
+               return 'undefined'; // defer to the partitions
+       }
+
+       protected function supportsDelayedJobs() {
+               return true; // defer checks to the partitions
+       }
+
+       protected function doIsEmpty() {
+               $key = $this->getCacheKey( 'empty' );
+
+               $isEmpty = $this->cache->get( $key );
+               if ( $isEmpty === 'true' ) {
+                       return true;
+               } elseif ( $isEmpty === 'false' ) {
+                       return false;
+               }
+
+               $empty = true;
+               $failed = 0;
+               foreach ( $this->partitionQueues as $queue ) {
+                       try {
+                               $empty = $empty && $queue->doIsEmpty();
+                       } catch ( JobQueueError $e ) {
+                               ++$failed;
+                               MWExceptionHandler::logException( $e );
+                       }
+               }
+               $this->throwErrorIfAllPartitionsDown( $failed );
+
+               $this->cache->add( $key, $empty ? 'true' : 'false', self::CACHE_TTL_LONG );
+               return $empty;
+       }
+
+       protected function doGetSize() {
+               return $this->getCrossPartitionSum( 'size', 'doGetSize' );
+       }
+
+       protected function doGetAcquiredCount() {
+               return $this->getCrossPartitionSum( 'acquiredcount', 'doGetAcquiredCount' );
+       }
+
+       protected function doGetDelayedCount() {
+               return $this->getCrossPartitionSum( 'delayedcount', 'doGetDelayedCount' );
+       }
+
+       protected function doGetAbandonedCount() {
+               return $this->getCrossPartitionSum( 'abandonedcount', 'doGetAbandonedCount' );
+       }
+
+       /**
+        * @param string $type
+        * @param string $method
+        * @return int
+        */
+       protected function getCrossPartitionSum( $type, $method ) {
+               $key = $this->getCacheKey( $type );
+
+               $count = $this->cache->get( $key );
+               if ( is_int( $count ) ) {
+                       return $count;
+               }
+
+               $failed = 0;
+               foreach ( $this->partitionQueues as $queue ) {
+                       try {
+                               $count += $queue->$method();
+                       } catch ( JobQueueError $e ) {
+                               ++$failed;
+                               MWExceptionHandler::logException( $e );
+                       }
+               }
+               $this->throwErrorIfAllPartitionsDown( $failed );
+
+               $this->cache->set( $key, $count, self::CACHE_TTL_SHORT );
+
+               return $count;
+       }
+
+       protected function doBatchPush( array $jobs, $flags ) {
+               // Local ring variable that may be changed to point to a new ring on failure
+               $partitionRing = $this->partitionPushRing;
+               // Try to insert the jobs and update $partitionsTry on any failures.
+               // Retry to insert any remaning jobs again, ignoring the bad partitions.
+               $jobsLeft = $jobs;
+               for ( $i = $this->maxPartitionsTry; $i > 0 && count( $jobsLeft ); --$i ) {
+                       $jobsLeft = $this->tryJobInsertions( $jobsLeft, $partitionRing, $flags );
+               }
+               if ( count( $jobsLeft ) ) {
+                       throw new JobQueueError(
+                               "Could not insert job(s), {$this->maxPartitionsTry} partitions tried." );
+               }
+
+               return true;
+       }
+
+       /**
+        * @param array $jobs
+        * @param HashRing $partitionRing
+        * @param int $flags
+        * @throws JobQueueError
+        * @return array List of Job object that could not be inserted
+        */
+       protected function tryJobInsertions( array $jobs, HashRing &$partitionRing, $flags ) {
+               $jobsLeft = array();
+
+               // Because jobs are spread across partitions, per-job de-duplication needs
+               // to use a consistent hash to avoid allowing duplicate jobs per partition.
+               // When inserting a batch of de-duplicated jobs, QOS_ATOMIC is disregarded.
+               $uJobsByPartition = array(); // (partition name => job list)
+               /** @var Job $job */
+               foreach ( $jobs as $key => $job ) {
+                       if ( $job->ignoreDuplicates() ) {
+                               $sha1 = sha1( serialize( $job->getDeduplicationInfo() ) );
+                               $uJobsByPartition[$partitionRing->getLocation( $sha1 )][] = $job;
+                               unset( $jobs[$key] );
+                       }
+               }
+               // Get the batches of jobs that are not de-duplicated
+               if ( $flags & self::QOS_ATOMIC ) {
+                       $nuJobBatches = array( $jobs ); // all or nothing
+               } else {
+                       // Split the jobs into batches and spread them out over servers if there
+                       // are many jobs. This helps keep the partitions even. Otherwise, send all
+                       // the jobs to a single partition queue to avoids the extra connections.
+                       $nuJobBatches = array_chunk( $jobs, 300 );
+               }
+
+               // Insert the de-duplicated jobs into the queues...
+               foreach ( $uJobsByPartition as $partition => $jobBatch ) {
+                       /** @var JobQueue $queue */
+                       $queue = $this->partitionQueues[$partition];
+                       try {
+                               $ok = $queue->doBatchPush( $jobBatch, $flags | self::QOS_ATOMIC );
+                       } catch ( JobQueueError $e ) {
+                               $ok = false;
+                               MWExceptionHandler::logException( $e );
+                       }
+                       if ( $ok ) {
+                               $key = $this->getCacheKey( 'empty' );
+                               $this->cache->set( $key, 'false', JobQueueDB::CACHE_TTL_LONG );
+                       } else {
+                               $partitionRing = $partitionRing->newWithoutLocation( $partition ); // blacklist
+                               if ( !$partitionRing ) {
+                                       throw new JobQueueError( "Could not insert job(s), no partitions available." );
+                               }
+                               $jobsLeft = array_merge( $jobsLeft, $jobBatch ); // not inserted
+                       }
+               }
+
+               // Insert the jobs that are not de-duplicated into the queues...
+               foreach ( $nuJobBatches as $jobBatch ) {
+                       $partition = ArrayUtils::pickRandom( $partitionRing->getLocationWeights() );
+                       $queue = $this->partitionQueues[$partition];
+                       try {
+                               $ok = $queue->doBatchPush( $jobBatch, $flags | self::QOS_ATOMIC );
+                       } catch ( JobQueueError $e ) {
+                               $ok = false;
+                               MWExceptionHandler::logException( $e );
+                       }
+                       if ( $ok ) {
+                               $key = $this->getCacheKey( 'empty' );
+                               $this->cache->set( $key, 'false', JobQueueDB::CACHE_TTL_LONG );
+                       } else {
+                               $partitionRing = $partitionRing->newWithoutLocation( $partition ); // blacklist
+                               if ( !$partitionRing ) {
+                                       throw new JobQueueError( "Could not insert job(s), no partitions available." );
+                               }
+                               $jobsLeft = array_merge( $jobsLeft, $jobBatch ); // not inserted
+                       }
+               }
+
+               return $jobsLeft;
+       }
+
+       protected function doPop() {
+               $key = $this->getCacheKey( 'empty' );
+
+               $isEmpty = $this->cache->get( $key );
+               if ( $isEmpty === 'true' ) {
+                       return false;
+               }
+
+               $partitionsTry = $this->partitionMap; // (partition => weight)
+
+               $failed = 0;
+               while ( count( $partitionsTry ) ) {
+                       $partition = ArrayUtils::pickRandom( $partitionsTry );
+                       if ( $partition === false ) {
+                               break; // all partitions at 0 weight
+                       }
+
+                       /** @var JobQueue $queue */
+                       $queue = $this->partitionQueues[$partition];
+                       try {
+                               $job = $queue->pop();
+                       } catch ( JobQueueError $e ) {
+                               ++$failed;
+                               MWExceptionHandler::logException( $e );
+                               $job = false;
+                       }
+                       if ( $job ) {
+                               $job->metadata['QueuePartition'] = $partition;
+
+                               return $job;
+                       } else {
+                               unset( $partitionsTry[$partition] ); // blacklist partition
+                       }
+               }
+               $this->throwErrorIfAllPartitionsDown( $failed );
+
+               $this->cache->set( $key, 'true', JobQueueDB::CACHE_TTL_LONG );
+
+               return false;
+       }
+
+       protected function doAck( Job $job ) {
+               if ( !isset( $job->metadata['QueuePartition'] ) ) {
+                       throw new MWException( "The given job has no defined partition name." );
+               }
+
+               return $this->partitionQueues[$job->metadata['QueuePartition']]->ack( $job );
+       }
+
+       protected function doIsRootJobOldDuplicate( Job $job ) {
+               $params = $job->getRootJobParams();
+               $partitions = $this->partitionPushRing->getLocations( $params['rootJobSignature'], 2 );
+               try {
+                       return $this->partitionQueues[$partitions[0]]->doIsRootJobOldDuplicate( $job );
+               } catch ( JobQueueError $e ) {
+                       if ( isset( $partitions[1] ) ) { // check fallback partition
+                               return $this->partitionQueues[$partitions[1]]->doIsRootJobOldDuplicate( $job );
+                       }
+               }
+
+               return false;
+       }
+
+       protected function doDeduplicateRootJob( Job $job ) {
+               $params = $job->getRootJobParams();
+               $partitions = $this->partitionPushRing->getLocations( $params['rootJobSignature'], 2 );
+               try {
+                       return $this->partitionQueues[$partitions[0]]->doDeduplicateRootJob( $job );
+               } catch ( JobQueueError $e ) {
+                       if ( isset( $partitions[1] ) ) { // check fallback partition
+                               return $this->partitionQueues[$partitions[1]]->doDeduplicateRootJob( $job );
+                       }
+               }
+
+               return false;
+       }
+
+       protected function doDelete() {
+               $failed = 0;
+               /** @var JobQueue $queue */
+               foreach ( $this->partitionQueues as $queue ) {
+                       try {
+                               $queue->doDelete();
+                       } catch ( JobQueueError $e ) {
+                               ++$failed;
+                               MWExceptionHandler::logException( $e );
+                       }
+               }
+               $this->throwErrorIfAllPartitionsDown( $failed );
+               return true;
+       }
+
+       protected function doWaitForBackups() {
+               $failed = 0;
+               /** @var JobQueue $queue */
+               foreach ( $this->partitionQueues as $queue ) {
+                       try {
+                               $queue->waitForBackups();
+                       } catch ( JobQueueError $e ) {
+                               ++$failed;
+                               MWExceptionHandler::logException( $e );
+                       }
+               }
+               $this->throwErrorIfAllPartitionsDown( $failed );
+       }
+
+       protected function doGetPeriodicTasks() {
+               $tasks = array();
+               /** @var JobQueue $queue */
+               foreach ( $this->partitionQueues as $partition => $queue ) {
+                       foreach ( $queue->getPeriodicTasks() as $task => $def ) {
+                               $tasks["{$partition}:{$task}"] = $def;
+                       }
+               }
+
+               return $tasks;
+       }
+
+       protected function doFlushCaches() {
+               static $types = array(
+                       'empty',
+                       'size',
+                       'acquiredcount',
+                       'delayedcount',
+                       'abandonedcount'
+               );
+
+               foreach ( $types as $type ) {
+                       $this->cache->delete( $this->getCacheKey( $type ) );
+               }
+
+               /** @var JobQueue $queue */
+               foreach ( $this->partitionQueues as $queue ) {
+                       $queue->doFlushCaches();
+               }
+       }
+
+       public function getAllQueuedJobs() {
+               $iterator = new AppendIterator();
+
+               /** @var JobQueue $queue */
+               foreach ( $this->partitionQueues as $queue ) {
+                       $iterator->append( $queue->getAllQueuedJobs() );
+               }
+
+               return $iterator;
+       }
+
+       public function getAllDelayedJobs() {
+               $iterator = new AppendIterator();
+
+               /** @var JobQueue $queue */
+               foreach ( $this->partitionQueues as $queue ) {
+                       $iterator->append( $queue->getAllDelayedJobs() );
+               }
+
+               return $iterator;
+       }
+
+       public function getCoalesceLocationInternal() {
+               return "JobQueueFederated:wiki:{$this->wiki}" .
+                       sha1( serialize( array_keys( $this->partitionMap ) ) );
+       }
+
+       protected function doGetSiblingQueuesWithJobs( array $types ) {
+               $result = array();
+
+               $failed = 0;
+               /** @var JobQueue $queue */
+               foreach ( $this->partitionQueues as $queue ) {
+                       try {
+                               $nonEmpty = $queue->doGetSiblingQueuesWithJobs( $types );
+                               if ( is_array( $nonEmpty ) ) {
+                                       $result = array_unique( array_merge( $result, $nonEmpty ) );
+                               } else {
+                                       return null; // not supported on all partitions; bail
+                               }
+                               if ( count( $result ) == count( $types ) ) {
+                                       break; // short-circuit
+                               }
+                       } catch ( JobQueueError $e ) {
+                               ++$failed;
+                               MWExceptionHandler::logException( $e );
+                       }
+               }
+               $this->throwErrorIfAllPartitionsDown( $failed );
+
+               return array_values( $result );
+       }
+
+       protected function doGetSiblingQueueSizes( array $types ) {
+               $result = array();
+               $failed = 0;
+               /** @var JobQueue $queue */
+               foreach ( $this->partitionQueues as $queue ) {
+                       try {
+                               $sizes = $queue->doGetSiblingQueueSizes( $types );
+                               if ( is_array( $sizes ) ) {
+                                       foreach ( $sizes as $type => $size ) {
+                                               $result[$type] = isset( $result[$type] ) ? $result[$type] + $size : $size;
+                                       }
+                               } else {
+                                       return null; // not supported on all partitions; bail
+                               }
+                       } catch ( JobQueueError $e ) {
+                               ++$failed;
+                               MWExceptionHandler::logException( $e );
+                       }
+               }
+               $this->throwErrorIfAllPartitionsDown( $failed );
+
+               return $result;
+       }
+
+       /**
+        * Throw an error if no partitions available
+        *
+        * @param int $down The number of up partitions down
+        * @return void
+        * @throws JobQueueError
+        */
+       protected function throwErrorIfAllPartitionsDown( $down ) {
+               if ( $down >= count( $this->partitionQueues ) ) {
+                       throw new JobQueueError( 'No queue partitions available.' );
+               }
+       }
+
+       public function setTestingPrefix( $key ) {
+               /** @var JobQueue $queue */
+               foreach ( $this->partitionQueues as $queue ) {
+                       $queue->setTestingPrefix( $key );
+               }
+       }
+
+       /**
+        * @param $property
+        * @return string
+        */
+       private function getCacheKey( $property ) {
+               list( $db, $prefix ) = wfSplitWikiID( $this->wiki );
+
+               return wfForeignMemcKey( $db, $prefix, 'jobqueue', $this->type, $property );
+       }
+}
diff --git a/includes/jobqueue/JobQueueGroup.php b/includes/jobqueue/JobQueueGroup.php
new file mode 100644 (file)
index 0000000..90742ce
--- /dev/null
@@ -0,0 +1,417 @@
+<?php
+/**
+ * Job queue base 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Aaron Schulz
+ */
+
+/**
+ * Class to handle enqueueing of background jobs
+ *
+ * @ingroup JobQueue
+ * @since 1.21
+ */
+class JobQueueGroup {
+       /** @var array */
+       protected static $instances = array();
+
+       /** @var ProcessCacheLRU */
+       protected $cache;
+
+       /** @var string Wiki ID */
+       protected $wiki;
+
+       /** @var array Map of (bucket => (queue => JobQueue, types => list of types) */
+       protected $coalescedQueues;
+
+       const TYPE_DEFAULT = 1; // integer; jobs popped by default
+       const TYPE_ANY = 2; // integer; any job
+
+       const USE_CACHE = 1; // integer; use process or persistent cache
+
+       const PROC_CACHE_TTL = 15; // integer; seconds
+
+       const CACHE_VERSION = 1; // integer; cache version
+
+       /**
+        * @param string $wiki Wiki ID
+        */
+       protected function __construct( $wiki ) {
+               $this->wiki = $wiki;
+               $this->cache = new ProcessCacheLRU( 10 );
+       }
+
+       /**
+        * @param bool|string $wiki Wiki ID
+        * @return JobQueueGroup
+        */
+       public static function singleton( $wiki = false ) {
+               $wiki = ( $wiki === false ) ? wfWikiID() : $wiki;
+               if ( !isset( self::$instances[$wiki] ) ) {
+                       self::$instances[$wiki] = new self( $wiki );
+               }
+
+               return self::$instances[$wiki];
+       }
+
+       /**
+        * Destroy the singleton instances
+        *
+        * @return void
+        */
+       public static function destroySingletons() {
+               self::$instances = array();
+       }
+
+       /**
+        * Get the job queue object for a given queue type
+        *
+        * @param string $type
+        * @return JobQueue
+        */
+       public function get( $type ) {
+               global $wgJobTypeConf;
+
+               $conf = array( 'wiki' => $this->wiki, 'type' => $type );
+               if ( isset( $wgJobTypeConf[$type] ) ) {
+                       $conf = $conf + $wgJobTypeConf[$type];
+               } else {
+                       $conf = $conf + $wgJobTypeConf['default'];
+               }
+
+               return JobQueue::factory( $conf );
+       }
+
+       /**
+        * Insert jobs into the respective queues of with the belong.
+        *
+        * This inserts the jobs into the queue specified by $wgJobTypeConf
+        * and updates the aggregate job queue information cache as needed.
+        *
+        * @param Job|array $jobs A single Job or a list of Jobs
+        * @throws MWException
+        * @return bool
+        */
+       public function push( $jobs ) {
+               $jobs = is_array( $jobs ) ? $jobs : array( $jobs );
+               if ( !count( $jobs ) ) {
+                       return true;
+               }
+
+               $jobsByType = array(); // (job type => list of jobs)
+               foreach ( $jobs as $job ) {
+                       if ( $job instanceof IJobSpecification ) {
+                               $jobsByType[$job->getType()][] = $job;
+                       } else {
+                               throw new MWException( "Attempted to push a non-Job object into a queue." );
+                       }
+               }
+
+               $ok = true;
+               foreach ( $jobsByType as $type => $jobs ) {
+                       if ( $this->get( $type )->push( $jobs ) ) {
+                               JobQueueAggregator::singleton()->notifyQueueNonEmpty( $this->wiki, $type );
+                       } else {
+                               $ok = false;
+                       }
+               }
+
+               if ( $this->cache->has( 'queues-ready', 'list' ) ) {
+                       $list = $this->cache->get( 'queues-ready', 'list' );
+                       if ( count( array_diff( array_keys( $jobsByType ), $list ) ) ) {
+                               $this->cache->clear( 'queues-ready' );
+                       }
+               }
+
+               return $ok;
+       }
+
+       /**
+        * Pop a job off one of the job queues
+        *
+        * This pops a job off a queue as specified by $wgJobTypeConf and
+        * updates the aggregate job queue information cache as needed.
+        *
+        * @param int|string $qtype JobQueueGroup::TYPE_* constant or job type string
+        * @param int $flags Bitfield of JobQueueGroup::USE_* constants
+        * @param array $blacklist List of job types to ignore
+        * @return Job|bool Returns false on failure
+        */
+       public function pop( $qtype = self::TYPE_DEFAULT, $flags = 0, array $blacklist = array() ) {
+               $job = false;
+
+               if ( is_string( $qtype ) ) { // specific job type
+                       if ( !in_array( $qtype, $blacklist ) ) {
+                               $job = $this->get( $qtype )->pop();
+                               if ( !$job ) {
+                                       JobQueueAggregator::singleton()->notifyQueueEmpty( $this->wiki, $qtype );
+                               }
+                       }
+               } else { // any job in the "default" jobs types
+                       if ( $flags & self::USE_CACHE ) {
+                               if ( !$this->cache->has( 'queues-ready', 'list', self::PROC_CACHE_TTL ) ) {
+                                       $this->cache->set( 'queues-ready', 'list', $this->getQueuesWithJobs() );
+                               }
+                               $types = $this->cache->get( 'queues-ready', 'list' );
+                       } else {
+                               $types = $this->getQueuesWithJobs();
+                       }
+
+                       if ( $qtype == self::TYPE_DEFAULT ) {
+                               $types = array_intersect( $types, $this->getDefaultQueueTypes() );
+                       }
+
+                       $types = array_diff( $types, $blacklist ); // avoid selected types
+                       shuffle( $types ); // avoid starvation
+
+                       foreach ( $types as $type ) { // for each queue...
+                               $job = $this->get( $type )->pop();
+                               if ( $job ) { // found
+                                       break;
+                               } else { // not found
+                                       JobQueueAggregator::singleton()->notifyQueueEmpty( $this->wiki, $type );
+                                       $this->cache->clear( 'queues-ready' );
+                               }
+                       }
+               }
+
+               return $job;
+       }
+
+       /**
+        * Acknowledge that a job was completed
+        *
+        * @param Job $job
+        * @return bool
+        */
+       public function ack( Job $job ) {
+               return $this->get( $job->getType() )->ack( $job );
+       }
+
+       /**
+        * Register the "root job" of a given job into the queue for de-duplication.
+        * This should only be called right *after* all the new jobs have been inserted.
+        *
+        * @param Job $job
+        * @return bool
+        */
+       public function deduplicateRootJob( Job $job ) {
+               return $this->get( $job->getType() )->deduplicateRootJob( $job );
+       }
+
+       /**
+        * Wait for any slaves or backup queue servers to catch up.
+        *
+        * This does nothing for certain queue classes.
+        *
+        * @return void
+        * @throws MWException
+        */
+       public function waitForBackups() {
+               global $wgJobTypeConf;
+
+               wfProfileIn( __METHOD__ );
+               // Try to avoid doing this more than once per queue storage medium
+               foreach ( $wgJobTypeConf as $type => $conf ) {
+                       $this->get( $type )->waitForBackups();
+               }
+               wfProfileOut( __METHOD__ );
+       }
+
+       /**
+        * Get the list of queue types
+        *
+        * @return array List of strings
+        */
+       public function getQueueTypes() {
+               return array_keys( $this->getCachedConfigVar( 'wgJobClasses' ) );
+       }
+
+       /**
+        * Get the list of default queue types
+        *
+        * @return array List of strings
+        */
+       public function getDefaultQueueTypes() {
+               global $wgJobTypesExcludedFromDefaultQueue;
+
+               return array_diff( $this->getQueueTypes(), $wgJobTypesExcludedFromDefaultQueue );
+       }
+
+       /**
+        * Get the list of job types that have non-empty queues
+        *
+        * @return array List of job types that have non-empty queues
+        */
+       public function getQueuesWithJobs() {
+               $types = array();
+               foreach ( $this->getCoalescedQueues() as $info ) {
+                       $nonEmpty = $info['queue']->getSiblingQueuesWithJobs( $this->getQueueTypes() );
+                       if ( is_array( $nonEmpty ) ) { // batching features supported
+                               $types = array_merge( $types, $nonEmpty );
+                       } else { // we have to go through the queues in the bucket one-by-one
+                               foreach ( $info['types'] as $type ) {
+                                       if ( !$this->get( $type )->isEmpty() ) {
+                                               $types[] = $type;
+                                       }
+                               }
+                       }
+               }
+
+               return $types;
+       }
+
+       /**
+        * Get the size of the queus for a list of job types
+        *
+        * @return array Map of (job type => size)
+        */
+       public function getQueueSizes() {
+               $sizeMap = array();
+               foreach ( $this->getCoalescedQueues() as $info ) {
+                       $sizes = $info['queue']->getSiblingQueueSizes( $this->getQueueTypes() );
+                       if ( is_array( $sizes ) ) { // batching features supported
+                               $sizeMap = $sizeMap + $sizes;
+                       } else { // we have to go through the queues in the bucket one-by-one
+                               foreach ( $info['types'] as $type ) {
+                                       $sizeMap[$type] = $this->get( $type )->getSize();
+                               }
+                       }
+               }
+
+               return $sizeMap;
+       }
+
+       /**
+        * @return array
+        */
+       protected function getCoalescedQueues() {
+               global $wgJobTypeConf;
+
+               if ( $this->coalescedQueues === null ) {
+                       $this->coalescedQueues = array();
+                       foreach ( $wgJobTypeConf as $type => $conf ) {
+                               $queue = JobQueue::factory(
+                                       array( 'wiki' => $this->wiki, 'type' => 'null' ) + $conf );
+                               $loc = $queue->getCoalesceLocationInternal();
+                               if ( !isset( $this->coalescedQueues[$loc] ) ) {
+                                       $this->coalescedQueues[$loc]['queue'] = $queue;
+                                       $this->coalescedQueues[$loc]['types'] = array();
+                               }
+                               if ( $type === 'default' ) {
+                                       $this->coalescedQueues[$loc]['types'] = array_merge(
+                                               $this->coalescedQueues[$loc]['types'],
+                                               array_diff( $this->getQueueTypes(), array_keys( $wgJobTypeConf ) )
+                                       );
+                               } else {
+                                       $this->coalescedQueues[$loc]['types'][] = $type;
+                               }
+                       }
+               }
+
+               return $this->coalescedQueues;
+       }
+
+       /**
+        * Execute any due periodic queue maintenance tasks for all queues.
+        *
+        * A task is "due" if the time ellapsed since the last run is greater than
+        * the defined run period. Concurrent calls to this function will cause tasks
+        * to be attempted twice, so they may need their own methods of mutual exclusion.
+        *
+        * @return int Number of tasks run
+        */
+       public function executeReadyPeriodicTasks() {
+               global $wgMemc;
+
+               list( $db, $prefix ) = wfSplitWikiID( $this->wiki );
+               $key = wfForeignMemcKey( $db, $prefix, 'jobqueuegroup', 'taskruns', 'v1' );
+               $lastRuns = $wgMemc->get( $key ); // (queue => task => UNIX timestamp)
+
+               $count = 0;
+               $tasksRun = array(); // (queue => task => UNIX timestamp)
+               foreach ( $this->getQueueTypes() as $type ) {
+                       $queue = $this->get( $type );
+                       foreach ( $queue->getPeriodicTasks() as $task => $definition ) {
+                               if ( $definition['period'] <= 0 ) {
+                                       continue; // disabled
+                               } elseif ( !isset( $lastRuns[$type][$task] )
+                                       || $lastRuns[$type][$task] < ( time() - $definition['period'] )
+                               ) {
+                                       try {
+                                               if ( call_user_func( $definition['callback'] ) !== null ) {
+                                                       $tasksRun[$type][$task] = time();
+                                                       ++$count;
+                                               }
+                                       } catch ( JobQueueError $e ) {
+                                               MWExceptionHandler::logException( $e );
+                                       }
+                               }
+                       }
+                       // The tasks may have recycled jobs or release delayed jobs into the queue
+                       if ( isset( $tasksRun[$type] ) && !$queue->isEmpty() ) {
+                               JobQueueAggregator::singleton()->notifyQueueNonEmpty( $this->wiki, $type );
+                       }
+               }
+
+               $wgMemc->merge( $key, function ( $cache, $key, $lastRuns ) use ( $tasksRun ) {
+                       if ( is_array( $lastRuns ) ) {
+                               foreach ( $tasksRun as $type => $tasks ) {
+                                       foreach ( $tasks as $task => $timestamp ) {
+                                               if ( !isset( $lastRuns[$type][$task] )
+                                                       || $timestamp > $lastRuns[$type][$task]
+                                               ) {
+                                                       $lastRuns[$type][$task] = $timestamp;
+                                               }
+                                       }
+                               }
+                       } else {
+                               $lastRuns = $tasksRun;
+                       }
+
+                       return $lastRuns;
+               } );
+
+               return $count;
+       }
+
+       /**
+        * @param $name string
+        * @return mixed
+        */
+       private function getCachedConfigVar( $name ) {
+               global $wgConf, $wgMemc;
+
+               if ( $this->wiki === wfWikiID() ) {
+                       return $GLOBALS[$name]; // common case
+               } else {
+                       list( $db, $prefix ) = wfSplitWikiID( $this->wiki );
+                       $key = wfForeignMemcKey( $db, $prefix, 'configvalue', $name );
+                       $value = $wgMemc->get( $key ); // ('v' => ...) or false
+                       if ( is_array( $value ) ) {
+                               return $value['v'];
+                       } else {
+                               $value = $wgConf->getConfig( $this->wiki, $name );
+                               $wgMemc->set( $key, array( 'v' => $value ), 86400 + mt_rand( 0, 86400 ) );
+
+                               return $value;
+                       }
+               }
+       }
+}
diff --git a/includes/jobqueue/JobQueueRedis.php b/includes/jobqueue/JobQueueRedis.php
new file mode 100644 (file)
index 0000000..c785cb2
--- /dev/null
@@ -0,0 +1,874 @@
+<?php
+/**
+ * Redis-backed job queue 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Aaron Schulz
+ */
+
+/**
+ * Class to handle job queues stored in Redis
+ *
+ * This is faster, less resource intensive, queue that JobQueueDB.
+ * All data for a queue using this class is placed into one redis server.
+ *
+ * There are eight main redis keys used to track jobs:
+ *   - l-unclaimed  : A list of job IDs used for ready unclaimed jobs
+ *   - z-claimed    : A sorted set of (job ID, UNIX timestamp as score) used for job retries
+ *   - z-abandoned  : A sorted set of (job ID, UNIX timestamp as score) used for broken jobs
+ *   - z-delayed    : A sorted set of (job ID, UNIX timestamp as score) used for delayed jobs
+ *   - h-idBySha1   : A hash of (SHA1 => job ID) for unclaimed jobs used for de-duplication
+ *   - h-sha1ById   : A hash of (job ID => SHA1) for unclaimed jobs used for de-duplication
+ *   - h-attempts   : A hash of (job ID => attempt count) used for job claiming/retries
+ *   - h-data       : A hash of (job ID => serialized blobs) for job storage
+ * A job ID can be in only one of z-delayed, l-unclaimed, z-claimed, and z-abandoned.
+ * If an ID appears in any of those lists, it should have a h-data entry for its ID.
+ * If a job has a SHA1 de-duplication value and its ID is in l-unclaimed or z-delayed, then
+ * there should be no other such jobs with that SHA1. Every h-idBySha1 entry has an h-sha1ById
+ * entry and every h-sha1ById must refer to an ID that is l-unclaimed. If a job has its
+ * ID in z-claimed or z-abandoned, then it must also have an h-attempts entry for its ID.
+ *
+ * Additionally, "rootjob:* keys track "root jobs" used for additional de-duplication.
+ * Aside from root job keys, all keys have no expiry, and are only removed when jobs are run.
+ * All the keys are prefixed with the relevant wiki ID information.
+ *
+ * This class requires Redis 2.6 as it makes use Lua scripts for fast atomic operations.
+ * Additionally, it should be noted that redis has different persistence modes, such
+ * as rdb snapshots, journaling, and no persistent. Appropriate configuration should be
+ * made on the servers based on what queues are using it and what tolerance they have.
+ *
+ * @ingroup JobQueue
+ * @ingroup Redis
+ * @since 1.22
+ */
+class JobQueueRedis extends JobQueue {
+       /** @var RedisConnectionPool */
+       protected $redisPool;
+
+       /** @var string Server address */
+       protected $server;
+
+       /** @var string Compression method to use */
+       protected $compression;
+
+       const MAX_AGE_PRUNE = 604800; // integer; seconds a job can live once claimed (7 days)
+
+       /** @var string Key to prefix the queue keys with (used for testing) */
+       protected $key;
+
+       /**
+        * @var null|int maximum seconds between execution of periodic tasks.  Used to speed up
+        * testing but should otherwise be left unset.
+        */
+       protected $maximumPeriodicTaskSeconds;
+
+       /**
+        * @params include:
+        *   - redisConfig : An array of parameters to RedisConnectionPool::__construct().
+        *                   Note that the serializer option is ignored as "none" is always used.
+        *   - redisServer : A hostname/port combination or the absolute path of a UNIX socket.
+        *                   If a hostname is specified but no port, the standard port number
+        *                   6379 will be used. Required.
+        *   - compression : The type of compression to use; one of (none,gzip).
+        *   - maximumPeriodicTaskSeconds : Maximum seconds between check periodic tasks.  Set to
+        *                   force faster execution of periodic tasks for inegration tests that
+        *                   rely on checkDelay.  Without this the integration tests are very very
+        *                   slow.  This really shouldn't be set in production.
+        * @param array $params
+        */
+       public function __construct( array $params ) {
+               parent::__construct( $params );
+               $params['redisConfig']['serializer'] = 'none'; // make it easy to use Lua
+               $this->server = $params['redisServer'];
+               $this->compression = isset( $params['compression'] ) ? $params['compression'] : 'none';
+               $this->redisPool = RedisConnectionPool::singleton( $params['redisConfig'] );
+               $this->maximumPeriodicTaskSeconds = isset( $params['maximumPeriodicTaskSeconds'] ) ?
+                       $params['maximumPeriodicTaskSeconds'] : null;
+       }
+
+       protected function supportedOrders() {
+               return array( 'timestamp', 'fifo' );
+       }
+
+       protected function optimalOrder() {
+               return 'fifo';
+       }
+
+       protected function supportsDelayedJobs() {
+               return true;
+       }
+
+       /**
+        * @see JobQueue::doIsEmpty()
+        * @return bool
+        * @throws MWException
+        */
+       protected function doIsEmpty() {
+               return $this->doGetSize() == 0;
+       }
+
+       /**
+        * @see JobQueue::doGetSize()
+        * @return int
+        * @throws MWException
+        */
+       protected function doGetSize() {
+               $conn = $this->getConnection();
+               try {
+                       return $conn->lSize( $this->getQueueKey( 'l-unclaimed' ) );
+               } catch ( RedisException $e ) {
+                       $this->throwRedisException( $conn, $e );
+               }
+       }
+
+       /**
+        * @see JobQueue::doGetAcquiredCount()
+        * @return int
+        * @throws JobQueueError
+        */
+       protected function doGetAcquiredCount() {
+               if ( $this->claimTTL <= 0 ) {
+                       return 0; // no acknowledgements
+               }
+               $conn = $this->getConnection();
+               try {
+                       $conn->multi( Redis::PIPELINE );
+                       $conn->zSize( $this->getQueueKey( 'z-claimed' ) );
+                       $conn->zSize( $this->getQueueKey( 'z-abandoned' ) );
+
+                       return array_sum( $conn->exec() );
+               } catch ( RedisException $e ) {
+                       $this->throwRedisException( $conn, $e );
+               }
+       }
+
+       /**
+        * @see JobQueue::doGetDelayedCount()
+        * @return int
+        * @throws JobQueueError
+        */
+       protected function doGetDelayedCount() {
+               if ( !$this->checkDelay ) {
+                       return 0; // no delayed jobs
+               }
+               $conn = $this->getConnection();
+               try {
+                       return $conn->zSize( $this->getQueueKey( 'z-delayed' ) );
+               } catch ( RedisException $e ) {
+                       $this->throwRedisException( $conn, $e );
+               }
+       }
+
+       /**
+        * @see JobQueue::doGetAbandonedCount()
+        * @return int
+        * @throws JobQueueError
+        */
+       protected function doGetAbandonedCount() {
+               if ( $this->claimTTL <= 0 ) {
+                       return 0; // no acknowledgements
+               }
+               $conn = $this->getConnection();
+               try {
+                       return $conn->zSize( $this->getQueueKey( 'z-abandoned' ) );
+               } catch ( RedisException $e ) {
+                       $this->throwRedisException( $conn, $e );
+               }
+       }
+
+       /**
+        * @see JobQueue::doBatchPush()
+        * @param array $jobs
+        * @param $flags
+        * @return bool
+        * @throws JobQueueError
+        */
+       protected function doBatchPush( array $jobs, $flags ) {
+               // Convert the jobs into field maps (de-duplicated against each other)
+               $items = array(); // (job ID => job fields map)
+               foreach ( $jobs as $job ) {
+                       $item = $this->getNewJobFields( $job );
+                       if ( strlen( $item['sha1'] ) ) { // hash identifier => de-duplicate
+                               $items[$item['sha1']] = $item;
+                       } else {
+                               $items[$item['uuid']] = $item;
+                       }
+               }
+
+               if ( !count( $items ) ) {
+                       return true; // nothing to do
+               }
+
+               $conn = $this->getConnection();
+               try {
+                       // Actually push the non-duplicate jobs into the queue...
+                       if ( $flags & self::QOS_ATOMIC ) {
+                               $batches = array( $items ); // all or nothing
+                       } else {
+                               $batches = array_chunk( $items, 500 ); // avoid tying up the server
+                       }
+                       $failed = 0;
+                       $pushed = 0;
+                       foreach ( $batches as $itemBatch ) {
+                               $added = $this->pushBlobs( $conn, $itemBatch );
+                               if ( is_int( $added ) ) {
+                                       $pushed += $added;
+                               } else {
+                                       $failed += count( $itemBatch );
+                               }
+                       }
+                       if ( $failed > 0 ) {
+                               wfDebugLog( 'JobQueueRedis', "Could not insert {$failed} {$this->type} job(s)." );
+
+                               return false;
+                       }
+                       JobQueue::incrStats( 'job-insert', $this->type, count( $items ) );
+                       JobQueue::incrStats( 'job-insert-duplicate', $this->type,
+                               count( $items ) - $failed - $pushed );
+               } catch ( RedisException $e ) {
+                       $this->throwRedisException( $conn, $e );
+               }
+
+               return true;
+       }
+
+       /**
+        * @param RedisConnRef $conn
+        * @param array $items List of results from JobQueueRedis::getNewJobFields()
+        * @return int Number of jobs inserted (duplicates are ignored)
+        * @throws RedisException
+        */
+       protected function pushBlobs( RedisConnRef $conn, array $items ) {
+               $args = array(); // ([id, sha1, rtime, blob [, id, sha1, rtime, blob ... ] ] )
+               foreach ( $items as $item ) {
+                       $args[] = (string)$item['uuid'];
+                       $args[] = (string)$item['sha1'];
+                       $args[] = (string)$item['rtimestamp'];
+                       $args[] = (string)$this->serialize( $item );
+               }
+               static $script =
+<<<LUA
+               local kUnclaimed, kSha1ById, kIdBySha1, kDelayed, kData = unpack(KEYS)
+               if #ARGV % 4 ~= 0 then return redis.error_reply('Unmatched arguments') end
+               local pushed = 0
+               for i = 1,#ARGV,4 do
+                       local id,sha1,rtimestamp,blob = ARGV[i],ARGV[i+1],ARGV[i+2],ARGV[i+3]
+                       if sha1 == '' or redis.call('hExists',kIdBySha1,sha1) == 0 then
+                               if 1*rtimestamp > 0 then
+                                       -- Insert into delayed queue (release time as score)
+                                       redis.call('zAdd',kDelayed,rtimestamp,id)
+                               else
+                                       -- Insert into unclaimed queue
+                                       redis.call('lPush',kUnclaimed,id)
+                               end
+                               if sha1 ~= '' then
+                                       redis.call('hSet',kSha1ById,id,sha1)
+                                       redis.call('hSet',kIdBySha1,sha1,id)
+                               end
+                               redis.call('hSet',kData,id,blob)
+                               pushed = pushed + 1
+                       end
+               end
+               return pushed
+LUA;
+               return $conn->luaEval( $script,
+                       array_merge(
+                               array(
+                                       $this->getQueueKey( 'l-unclaimed' ), # KEYS[1]
+                                       $this->getQueueKey( 'h-sha1ById' ), # KEYS[2]
+                                       $this->getQueueKey( 'h-idBySha1' ), # KEYS[3]
+                                       $this->getQueueKey( 'z-delayed' ), # KEYS[4]
+                                       $this->getQueueKey( 'h-data' ), # KEYS[5]
+                               ),
+                               $args
+                       ),
+                       5 # number of first argument(s) that are keys
+               );
+       }
+
+       /**
+        * @see JobQueue::doPop()
+        * @return Job|bool
+        * @throws JobQueueError
+        */
+       protected function doPop() {
+               $job = false;
+
+               // Push ready delayed jobs into the queue every 10 jobs to spread the load.
+               // This is also done as a periodic task, but we don't want too much done at once.
+               if ( $this->checkDelay && mt_rand( 0, 9 ) == 0 ) {
+                       $this->recyclePruneAndUndelayJobs();
+               }
+
+               $conn = $this->getConnection();
+               try {
+                       do {
+                               if ( $this->claimTTL > 0 ) {
+                                       // Keep the claimed job list down for high-traffic queues
+                                       if ( mt_rand( 0, 99 ) == 0 ) {
+                                               $this->recyclePruneAndUndelayJobs();
+                                       }
+                                       $blob = $this->popAndAcquireBlob( $conn );
+                               } else {
+                                       $blob = $this->popAndDeleteBlob( $conn );
+                               }
+                               if ( $blob === false ) {
+                                       break; // no jobs; nothing to do
+                               }
+
+                               JobQueue::incrStats( 'job-pop', $this->type );
+                               $item = $this->unserialize( $blob );
+                               if ( $item === false ) {
+                                       wfDebugLog( 'JobQueueRedis', "Could not unserialize {$this->type} job." );
+                                       continue;
+                               }
+
+                               // If $item is invalid, recyclePruneAndUndelayJobs() will cleanup as needed
+                               $job = $this->getJobFromFields( $item ); // may be false
+                       } while ( !$job ); // job may be false if invalid
+               } catch ( RedisException $e ) {
+                       $this->throwRedisException( $conn, $e );
+               }
+
+               return $job;
+       }
+
+       /**
+        * @param RedisConnRef $conn
+        * @return array serialized string or false
+        * @throws RedisException
+        */
+       protected function popAndDeleteBlob( RedisConnRef $conn ) {
+               static $script =
+<<<LUA
+               local kUnclaimed, kSha1ById, kIdBySha1, kData = unpack(KEYS)
+               -- Pop an item off the queue
+               local id = redis.call('rpop',kUnclaimed)
+               if not id then return false end
+               -- Get the job data and remove it
+               local item = redis.call('hGet',kData,id)
+               redis.call('hDel',kData,id)
+               -- Allow new duplicates of this job
+               local sha1 = redis.call('hGet',kSha1ById,id)
+               if sha1 then redis.call('hDel',kIdBySha1,sha1) end
+               redis.call('hDel',kSha1ById,id)
+               -- Return the job data
+               return item
+LUA;
+               return $conn->luaEval( $script,
+                       array(
+                               $this->getQueueKey( 'l-unclaimed' ), # KEYS[1]
+                               $this->getQueueKey( 'h-sha1ById' ), # KEYS[2]
+                               $this->getQueueKey( 'h-idBySha1' ), # KEYS[3]
+                               $this->getQueueKey( 'h-data' ), # KEYS[4]
+                       ),
+                       4 # number of first argument(s) that are keys
+               );
+       }
+
+       /**
+        * @param RedisConnRef $conn
+        * @return array serialized string or false
+        * @throws RedisException
+        */
+       protected function popAndAcquireBlob( RedisConnRef $conn ) {
+               static $script =
+<<<LUA
+               local kUnclaimed, kSha1ById, kIdBySha1, kClaimed, kAttempts, kData = unpack(KEYS)
+               -- Pop an item off the queue
+               local id = redis.call('rPop',kUnclaimed)
+               if not id then return false end
+               -- Allow new duplicates of this job
+               local sha1 = redis.call('hGet',kSha1ById,id)
+               if sha1 then redis.call('hDel',kIdBySha1,sha1) end
+               redis.call('hDel',kSha1ById,id)
+               -- Mark the jobs as claimed and return it
+               redis.call('zAdd',kClaimed,ARGV[1],id)
+               redis.call('hIncrBy',kAttempts,id,1)
+               return redis.call('hGet',kData,id)
+LUA;
+               return $conn->luaEval( $script,
+                       array(
+                               $this->getQueueKey( 'l-unclaimed' ), # KEYS[1]
+                               $this->getQueueKey( 'h-sha1ById' ), # KEYS[2]
+                               $this->getQueueKey( 'h-idBySha1' ), # KEYS[3]
+                               $this->getQueueKey( 'z-claimed' ), # KEYS[4]
+                               $this->getQueueKey( 'h-attempts' ), # KEYS[5]
+                               $this->getQueueKey( 'h-data' ), # KEYS[6]
+                               time(), # ARGV[1] (injected to be replication-safe)
+                       ),
+                       6 # number of first argument(s) that are keys
+               );
+       }
+
+       /**
+        * @see JobQueue::doAck()
+        * @param Job $job
+        * @return Job|bool
+        * @throws MWException|JobQueueError
+        */
+       protected function doAck( Job $job ) {
+               if ( !isset( $job->metadata['uuid'] ) ) {
+                       throw new MWException( "Job of type '{$job->getType()}' has no UUID." );
+               }
+               if ( $this->claimTTL > 0 ) {
+                       $conn = $this->getConnection();
+                       try {
+                               static $script =
+<<<LUA
+                               local kClaimed, kAttempts, kData = unpack(KEYS)
+                               -- Unmark the job as claimed
+                               redis.call('zRem',kClaimed,ARGV[1])
+                               redis.call('hDel',kAttempts,ARGV[1])
+                               -- Delete the job data itself
+                               return redis.call('hDel',kData,ARGV[1])
+LUA;
+                               $res = $conn->luaEval( $script,
+                                       array(
+                                               $this->getQueueKey( 'z-claimed' ), # KEYS[1]
+                                               $this->getQueueKey( 'h-attempts' ), # KEYS[2]
+                                               $this->getQueueKey( 'h-data' ), # KEYS[3]
+                                               $job->metadata['uuid'] # ARGV[1]
+                                       ),
+                                       3 # number of first argument(s) that are keys
+                               );
+
+                               if ( !$res ) {
+                                       wfDebugLog( 'JobQueueRedis', "Could not acknowledge {$this->type} job." );
+
+                                       return false;
+                               }
+                       } catch ( RedisException $e ) {
+                               $this->throwRedisException( $conn, $e );
+                       }
+               }
+
+               return true;
+       }
+
+       /**
+        * @see JobQueue::doDeduplicateRootJob()
+        * @param Job $job
+        * @return bool
+        * @throws MWException|JobQueueError
+        */
+       protected function doDeduplicateRootJob( Job $job ) {
+               if ( !$job->hasRootJobParams() ) {
+                       throw new MWException( "Cannot register root job; missing parameters." );
+               }
+               $params = $job->getRootJobParams();
+
+               $key = $this->getRootJobCacheKey( $params['rootJobSignature'] );
+
+               $conn = $this->getConnection();
+               try {
+                       $timestamp = $conn->get( $key ); // current last timestamp of this job
+                       if ( $timestamp && $timestamp >= $params['rootJobTimestamp'] ) {
+                               return true; // a newer version of this root job was enqueued
+                       }
+
+                       // Update the timestamp of the last root job started at the location...
+                       return $conn->set( $key, $params['rootJobTimestamp'], self::ROOTJOB_TTL ); // 2 weeks
+               } catch ( RedisException $e ) {
+                       $this->throwRedisException( $conn, $e );
+               }
+       }
+
+       /**
+        * @see JobQueue::doIsRootJobOldDuplicate()
+        * @param Job $job
+        * @return bool
+        * @throws JobQueueError
+        */
+       protected function doIsRootJobOldDuplicate( Job $job ) {
+               if ( !$job->hasRootJobParams() ) {
+                       return false; // job has no de-deplication info
+               }
+               $params = $job->getRootJobParams();
+
+               $conn = $this->getConnection();
+               try {
+                       // Get the last time this root job was enqueued
+                       $timestamp = $conn->get( $this->getRootJobCacheKey( $params['rootJobSignature'] ) );
+               } catch ( RedisException $e ) {
+                       $this->throwRedisException( $conn, $e );
+               }
+
+               // Check if a new root job was started at the location after this one's...
+               return ( $timestamp && $timestamp > $params['rootJobTimestamp'] );
+       }
+
+       /**
+        * @see JobQueue::doDelete()
+        * @return bool
+        * @throws JobQueueError
+        */
+       protected function doDelete() {
+               static $props = array( 'l-unclaimed', 'z-claimed', 'z-abandoned',
+                       'z-delayed', 'h-idBySha1', 'h-sha1ById', 'h-attempts', 'h-data' );
+
+               $conn = $this->getConnection();
+               try {
+                       $keys = array();
+                       foreach ( $props as $prop ) {
+                               $keys[] = $this->getQueueKey( $prop );
+                       }
+
+                       return ( $conn->delete( $keys ) !== false );
+               } catch ( RedisException $e ) {
+                       $this->throwRedisException( $conn, $e );
+               }
+       }
+
+       /**
+        * @see JobQueue::getAllQueuedJobs()
+        * @return Iterator
+        */
+       public function getAllQueuedJobs() {
+               $conn = $this->getConnection();
+               try {
+                       $that = $this;
+
+                       return new MappedIterator(
+                               $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( $conn, $e );
+               }
+       }
+
+       /**
+        * @see JobQueue::getAllQueuedJobs()
+        * @return Iterator
+        */
+       public function getAllDelayedJobs() {
+               $conn = $this->getConnection();
+               try {
+                       $that = $this;
+
+                       return new MappedIterator( // delayed jobs
+                               $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( $conn, $e );
+               }
+       }
+
+       public function getCoalesceLocationInternal() {
+               return "RedisServer:" . $this->server;
+       }
+
+       protected function doGetSiblingQueuesWithJobs( array $types ) {
+               return array_keys( array_filter( $this->doGetSiblingQueueSizes( $types ) ) );
+       }
+
+       protected function doGetSiblingQueueSizes( array $types ) {
+               $sizes = array(); // (type => size)
+               $types = array_values( $types ); // reindex
+               $conn = $this->getConnection();
+               try {
+                       $conn->multi( Redis::PIPELINE );
+                       foreach ( $types as $type ) {
+                               $conn->lSize( $this->getQueueKey( 'l-unclaimed', $type ) );
+                       }
+                       $res = $conn->exec();
+                       if ( is_array( $res ) ) {
+                               foreach ( $res as $i => $size ) {
+                                       $sizes[$types[$i]] = $size;
+                               }
+                       }
+               } catch ( RedisException $e ) {
+                       $this->throwRedisException( $conn, $e );
+               }
+
+               return $sizes;
+       }
+
+       /**
+        * This function should not be called outside JobQueueRedis
+        *
+        * @param $uid string
+        * @param $conn RedisConnRef
+        * @return Job|bool Returns false if the job does not exist
+        * @throws MWException|JobQueueError
+        */
+       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'." );
+                       }
+                       $title = Title::makeTitle( $item['namespace'], $item['title'] );
+                       $job = Job::factory( $item['type'], $title, $item['params'] );
+                       $job->metadata['uuid'] = $item['uuid'];
+
+                       return $job;
+               } catch ( RedisException $e ) {
+                       $this->throwRedisException( $conn, $e );
+               }
+       }
+
+       /**
+        * Recycle or destroy any jobs that have been claimed for too long
+        * and release any ready delayed jobs into the queue
+        *
+        * @return int Number of jobs recycled/deleted/undelayed
+        * @throws MWException|JobQueueError
+        */
+       public function recyclePruneAndUndelayJobs() {
+               $count = 0;
+               // For each job item that can be retried, we need to add it back to the
+               // main queue and remove it from the list of currenty claimed job items.
+               // For those that cannot, they are marked as dead and kept around for
+               // investigation and manual job restoration but are eventually deleted.
+               $conn = $this->getConnection();
+               try {
+                       $now = time();
+                       static $script =
+<<<LUA
+                       local kClaimed, kAttempts, kUnclaimed, kData, kAbandoned, kDelayed = unpack(KEYS)
+                       local released,abandoned,pruned,undelayed = 0,0,0,0
+                       -- Get all non-dead jobs that have an expired claim on them.
+                       -- The score for each item is the last claim timestamp (UNIX).
+                       local staleClaims = redis.call('zRangeByScore',kClaimed,0,ARGV[1])
+                       for k,id in ipairs(staleClaims) do
+                               local timestamp = redis.call('zScore',kClaimed,id)
+                               local attempts = redis.call('hGet',kAttempts,id)
+                               if attempts < ARGV[3] then
+                                       -- Claim expired and retries left: re-enqueue the job
+                                       redis.call('lPush',kUnclaimed,id)
+                                       redis.call('hIncrBy',kAttempts,id,1)
+                                       released = released + 1
+                               else
+                                       -- Claim expired and no retries left: mark the job as dead
+                                       redis.call('zAdd',kAbandoned,timestamp,id)
+                                       abandoned = abandoned + 1
+                               end
+                               redis.call('zRem',kClaimed,id)
+                       end
+                       -- Get all of the dead jobs that have been marked as dead for too long.
+                       -- The score for each item is the last claim timestamp (UNIX).
+                       local deadClaims = redis.call('zRangeByScore',kAbandoned,0,ARGV[2])
+                       for k,id in ipairs(deadClaims) do
+                               -- Stale and out of retries: remove any traces of the job
+                               redis.call('zRem',kAbandoned,id)
+                               redis.call('hDel',kAttempts,id)
+                               redis.call('hDel',kData,id)
+                               pruned = pruned + 1
+                       end
+                       -- Get the list of ready delayed jobs, sorted by readiness (UNIX timestamp)
+                       local ids = redis.call('zRangeByScore',kDelayed,0,ARGV[4])
+                       -- Migrate the jobs from the "delayed" set to the "unclaimed" list
+                       for k,id in ipairs(ids) do
+                               redis.call('lPush',kUnclaimed,id)
+                               redis.call('zRem',kDelayed,id)
+                       end
+                       undelayed = #ids
+                       return {released,abandoned,pruned,undelayed}
+LUA;
+                       $res = $conn->luaEval( $script,
+                               array(
+                                       $this->getQueueKey( 'z-claimed' ), # KEYS[1]
+                                       $this->getQueueKey( 'h-attempts' ), # KEYS[2]
+                                       $this->getQueueKey( 'l-unclaimed' ), # KEYS[3]
+                                       $this->getQueueKey( 'h-data' ), # KEYS[4]
+                                       $this->getQueueKey( 'z-abandoned' ), # KEYS[5]
+                                       $this->getQueueKey( 'z-delayed' ), # KEYS[6]
+                                       $now - $this->claimTTL, # ARGV[1]
+                                       $now - self::MAX_AGE_PRUNE, # ARGV[2]
+                                       $this->maxTries, # ARGV[3]
+                                       $now # ARGV[4]
+                               ),
+                               6 # number of first argument(s) that are keys
+                       );
+                       if ( $res ) {
+                               list( $released, $abandoned, $pruned, $undelayed ) = $res;
+                               $count += $released + $pruned + $undelayed;
+                               JobQueue::incrStats( 'job-recycle', $this->type, $released );
+                               JobQueue::incrStats( 'job-abandon', $this->type, $abandoned );
+                       }
+               } catch ( RedisException $e ) {
+                       $this->throwRedisException( $conn, $e );
+               }
+
+               return $count;
+       }
+
+       /**
+        * @return array
+        */
+       protected function doGetPeriodicTasks() {
+               $periods = array( 3600 ); // standard cleanup (useful on config change)
+               if ( $this->claimTTL > 0 ) {
+                       $periods[] = ceil( $this->claimTTL / 2 ); // avoid bad timing
+               }
+               if ( $this->checkDelay ) {
+                       $periods[] = 300; // 5 minutes
+               }
+               $period = min( $periods );
+               $period = max( $period, 30 ); // sanity
+               // Support override for faster testing
+               if ( $this->maximumPeriodicTaskSeconds !== null ) {
+                       $period = min( $period, $this->maximumPeriodicTaskSeconds );
+               }
+               return array(
+                       'recyclePruneAndUndelayJobs' => array(
+                               'callback' => array( $this, 'recyclePruneAndUndelayJobs' ),
+                               'period'   => $period,
+                       )
+               );
+       }
+
+       /**
+        * @param IJobSpecification $job
+        * @return array
+        */
+       protected function getNewJobFields( IJobSpecification $job ) {
+               return array(
+                       // Fields that describe the nature of the job
+                       'type' => $job->getType(),
+                       'namespace' => $job->getTitle()->getNamespace(),
+                       'title' => $job->getTitle()->getDBkey(),
+                       'params' => $job->getParams(),
+                       // Some jobs cannot run until a "release timestamp"
+                       'rtimestamp' => $job->getReleaseTimestamp() ?: 0,
+                       // Additional job metadata
+                       'uuid' => UIDGenerator::newRawUUIDv4( UIDGenerator::QUICK_RAND ),
+                       'sha1' => $job->ignoreDuplicates()
+                               ? wfBaseConvert( sha1( serialize( $job->getDeduplicationInfo() ) ), 16, 36, 31 )
+                               : '',
+                       'timestamp' => time() // UNIX timestamp
+               );
+       }
+
+       /**
+        * @param $fields array
+        * @return Job|bool
+        */
+       protected function getJobFromFields( array $fields ) {
+               $title = Title::makeTitleSafe( $fields['namespace'], $fields['title'] );
+               if ( $title ) {
+                       $job = Job::factory( $fields['type'], $title, $fields['params'] );
+                       $job->metadata['uuid'] = $fields['uuid'];
+
+                       return $job;
+               }
+
+               return false;
+       }
+
+       /**
+        * @param array $fields
+        * @return string Serialized and possibly compressed version of $fields
+        */
+       protected function serialize( array $fields ) {
+               $blob = serialize( $fields );
+               if ( $this->compression === 'gzip'
+                       && strlen( $blob ) >= 1024
+                       && function_exists( 'gzdeflate' )
+               ) {
+                       $object = (object)array( 'blob' => gzdeflate( $blob ), 'enc' => 'gzip' );
+                       $blobz = serialize( $object );
+
+                       return ( strlen( $blobz ) < strlen( $blob ) ) ? $blobz : $blob;
+               } else {
+                       return $blob;
+               }
+       }
+
+       /**
+        * @param string $blob
+        * @return array|bool Unserialized version of $blob or false
+        */
+       protected function unserialize( $blob ) {
+               $fields = unserialize( $blob );
+               if ( is_object( $fields ) ) {
+                       if ( $fields->enc === 'gzip' && function_exists( 'gzinflate' ) ) {
+                               $fields = unserialize( gzinflate( $fields->blob ) );
+                       } else {
+                               $fields = false;
+                       }
+               }
+
+               return is_array( $fields ) ? $fields : false;
+       }
+
+       /**
+        * Get a connection to the server that handles all sub-queues for this queue
+        *
+        * @return RedisConnRef
+        * @throws JobQueueConnectionError
+        */
+       protected function getConnection() {
+               $conn = $this->redisPool->getConnection( $this->server );
+               if ( !$conn ) {
+                       throw new JobQueueConnectionError( "Unable to connect to redis server." );
+               }
+
+               return $conn;
+       }
+
+       /**
+        * @param $conn RedisConnRef
+        * @param $e RedisException
+        * @throws JobQueueError
+        */
+       protected function throwRedisException( RedisConnRef $conn, $e ) {
+               $this->redisPool->handleError( $conn, $e );
+               throw new JobQueueError( "Redis server error: {$e->getMessage()}\n" );
+       }
+
+       /**
+        * @param $prop string
+        * @param $type string|null
+        * @return string
+        */
+       private function getQueueKey( $prop, $type = null ) {
+               $type = is_string( $type ) ? $type : $this->type;
+               list( $db, $prefix ) = wfSplitWikiID( $this->wiki );
+               if ( strlen( $this->key ) ) { // namespaced queue (for testing)
+                       return wfForeignMemcKey( $db, $prefix, 'jobqueue', $type, $this->key, $prop );
+               } else {
+                       return wfForeignMemcKey( $db, $prefix, 'jobqueue', $type, $prop );
+               }
+       }
+
+       /**
+        * @param $key string
+        * @return void
+        */
+       public function setTestingPrefix( $key ) {
+               $this->key = $key;
+       }
+}
diff --git a/includes/jobqueue/JobSpecification.php b/includes/jobqueue/JobSpecification.php
new file mode 100644 (file)
index 0000000..9fa7747
--- /dev/null
@@ -0,0 +1,189 @@
+<?php
+/**
+ * Job queue task description base 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
+ * 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 JobQueue
+ */
+
+/**
+ * Job queue task description interface
+ *
+ * @ingroup JobQueue
+ * @since 1.23
+ */
+interface IJobSpecification {
+       /**
+        * @return string Job type
+        */
+       public function getType();
+
+       /**
+        * @return array
+        */
+       public function getParams();
+
+       /**
+        * @return int|null UNIX timestamp to delay running this job until, otherwise null
+        */
+       public function getReleaseTimestamp();
+
+       /**
+        * @return bool Whether only one of each identical set of jobs should be run
+        */
+       public function ignoreDuplicates();
+
+       /**
+        * Subclasses may need to override this to make duplication detection work.
+        * The resulting map conveys everything that makes the job unique. This is
+        * only checked if ignoreDuplicates() returns true, meaning that duplicate
+        * jobs are supposed to be ignored.
+        *
+        * @return array Map of key/values
+        */
+       public function getDeduplicationInfo();
+
+       /**
+        * @return Title Descriptive title (this can simply be informative)
+        */
+       public function getTitle();
+}
+
+/**
+ * Job queue task description base code
+ *
+ * Example usage:
+ * <code>
+ * $job = new JobSpecification(
+ *             'null',
+ *             array( 'lives' => 1, 'usleep' => 100, 'pi' => 3.141569 ),
+ *             array( 'removeDuplicates' => 1 ),
+ *             Title::makeTitle( NS_SPECIAL, 'nullity' )
+ * );
+ * JobQueueGroup::singleton()->push( $job )
+ * </code>
+ *
+ * @ingroup JobQueue
+ * @since 1.23
+ */
+class JobSpecification implements IJobSpecification {
+       /** @var string */
+       protected $type;
+
+       /** @var array Array of job parameters or false if none */
+       protected $params;
+
+       /** @var Title */
+       protected $title;
+
+       /** @var bool Expensive jobs may set this to true */
+       protected $ignoreDuplicates;
+
+       /**
+        * @param string $type
+        * @param array $params Map of key/values
+        * @param array $opts Map of key/values
+        * @param Title $title Optional descriptive title
+        */
+       public function __construct(
+               $type, array $params, array $opts = array(), Title $title = null
+       ) {
+               $this->validateParams( $params );
+
+               $this->type = $type;
+               $this->params = $params;
+               $this->title = $title ?: Title::newMainPage();
+               $this->ignoreDuplicates = !empty( $opts['removeDuplicates'] );
+       }
+
+       /**
+        * @param array $params
+        */
+       protected function validateParams( array $params ) {
+               foreach ( $params as $p => $v ) {
+                       if ( is_array( $v ) ) {
+                               $this->validateParams( $v );
+                       } elseif ( !is_scalar( $v ) && $v !== null ) {
+                               throw new UnexpectedValueException( "Job parameter $p is not JSON serializable." );
+                       }
+               }
+       }
+
+       /**
+        * @return string
+        */
+       public function getType() {
+               return $this->type;
+       }
+
+       /**
+        * @return Title
+        */
+       public function getTitle() {
+               return $this->title;
+       }
+
+       /**
+        * @return array
+        */
+       public function getParams() {
+               return $this->params;
+       }
+
+       /**
+        * @return int|null UNIX timestamp to delay running this job until, otherwise null
+        */
+       public function getReleaseTimestamp() {
+               return isset( $this->params['jobReleaseTimestamp'] )
+                       ? wfTimestampOrNull( TS_UNIX, $this->params['jobReleaseTimestamp'] )
+                       : null;
+       }
+
+       /**
+        * @return bool Whether only one of each identical set of jobs should be run
+        */
+       public function ignoreDuplicates() {
+               return $this->ignoreDuplicates;
+       }
+
+       /**
+        * Subclasses may need to override this to make duplication detection work.
+        * The resulting map conveys everything that makes the job unique. This is
+        * only checked if ignoreDuplicates() returns true, meaning that duplicate
+        * jobs are supposed to be ignored.
+        *
+        * @return array Map of key/values
+        */
+       public function getDeduplicationInfo() {
+               $info = array(
+                       'type' => $this->getType(),
+                       'namespace' => $this->getTitle()->getNamespace(),
+                       'title' => $this->getTitle()->getDBkey(),
+                       'params' => $this->getParams()
+               );
+               if ( is_array( $info['params'] ) ) {
+                       // Identical jobs with different "root" jobs should count as duplicates
+                       unset( $info['params']['rootJobSignature'] );
+                       unset( $info['params']['rootJobTimestamp'] );
+                       // Likewise for jobs with different delay times
+                       unset( $info['params']['jobReleaseTimestamp'] );
+               }
+
+               return $info;
+       }
+}
diff --git a/includes/jobqueue/README b/includes/jobqueue/README
new file mode 100644 (file)
index 0000000..c11d5a7
--- /dev/null
@@ -0,0 +1,81 @@
+/*!
+\ingroup JobQueue
+\page jobqueue_design Job queue design
+
+Notes on the Job queuing system architecture.
+
+\section intro Introduction
+
+The data model consist of the following main components:
+* The Job object represents a particular deferred task that happens in the
+  background. All jobs subclass the Job object and put the main logic in the
+  function called run().
+* The JobQueue object represents a particular queue of jobs of a certain type.
+  For example there may be a queue for email jobs and a queue for squid purge
+  jobs.
+
+\section jobqueue Job queues
+
+Each job type has its own queue and is associated to a storage medium. One
+queue might save its jobs in redis while another one uses would use a database.
+
+Storage medium are defined in a queue class. Before using it, you must
+define in $wgJobTypeConf a mapping of the job type to a queue class.
+
+The factory class JobQueueGroup provides helper functions:
+- getting the queue for a given job
+- route new job insertions to the proper queue
+
+The following queue classes are available:
+* JobQueueDB (stores jobs in the `job` table in a database)
+* JobQueueRedis (stores jobs in a redis server)
+
+All queue classes support some basic operations (though some may be no-ops):
+* enqueueing a batch of jobs
+* dequeueing a single job
+* acknowledging a job is completed
+* checking if the queue is empty
+
+Some queue classes (like JobQueueDB) may dequeue jobs in random order while other
+queues might dequeue jobs in exact FIFO order. Callers should thus not assume jobs
+are executed in FIFO order.
+
+Also note that not all queue classes will have the same reliability guarantees.
+In-memory queues may lose data when restarted depending on snapshot and journal
+settings (including journal fsync() frequency).  Some queue types may totally remove
+jobs when dequeued while leaving the ack() function as a no-op; if a job is
+dequeued by a job runner, which crashes before completion, the job will be
+lost. Some jobs, like purging squid caches after a template change, may not
+require durable queues, whereas other jobs might be more important.
+
+\section aggregator Job queue aggregator
+
+The aggregators are used by nextJobDB.php, which is a script that will return a
+random ready queue (on any wiki in the farm) that can be used with runJobs.php.
+This can be used in conjunction with any scripts that handle wiki farm job queues.
+Note that $wgLocalDatabases defines what wikis are in the wiki farm.
+
+Since each job type has its own queue, and wiki-farms may have many wikis,
+there might be a large number of queues to keep track of. To avoid wasting
+large amounts of time polling empty queues, aggregators exists to keep track
+of which queues are ready.
+
+The following queue aggregator classes are available:
+* JobQueueAggregatorMemc (uses $wgMemc to track ready queues)
+* JobQueueAggregatorRedis (uses a redis server to track ready queues)
+
+Some aggregators cache data for a few minutes while others may be always up to date.
+This can be an important factor for jobs that need a low pickup time (or latency).
+
+\section jobs Jobs
+
+Callers should also try to make jobs maintain correctness when executed twice.
+This is useful for queues that actually implement ack(), since they may recycle
+dequeued but un-acknowledged jobs back into the queue to be attempted again. If
+a runner dequeues a job, runs it, but then crashes before calling ack(), the
+job may be returned to the queue and run a second time. Jobs like cache purging can
+happen several times without any correctness problems. However, a pathological case
+would be if a bug causes the problem to systematically keep repeating. For example,
+a job may always throw a DB error at the end of run(). This problem is trickier to
+solve and more obnoxious for things like email jobs, for example. For such jobs,
+it might be useful to use a queue that does not retry jobs.
diff --git a/includes/jobqueue/aggregator/JobQueueAggregator.php b/includes/jobqueue/aggregator/JobQueueAggregator.php
new file mode 100644 (file)
index 0000000..8600eed
--- /dev/null
@@ -0,0 +1,162 @@
+<?php
+/**
+ * Job queue aggregator 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Aaron Schulz
+ */
+
+/**
+ * Class to handle tracking information about all queues
+ *
+ * @ingroup JobQueue
+ * @since 1.21
+ */
+abstract class JobQueueAggregator {
+       /** @var JobQueueAggregator */
+       protected static $instance = null;
+
+       /**
+        * @param array $params
+        */
+       protected function __construct( array $params ) {
+       }
+
+       /**
+        * @throws MWException
+        * @return JobQueueAggregator
+        */
+       final public static function singleton() {
+               global $wgJobQueueAggregator;
+
+               if ( !isset( self::$instance ) ) {
+                       $class = $wgJobQueueAggregator['class'];
+                       $obj = new $class( $wgJobQueueAggregator );
+                       if ( !( $obj instanceof JobQueueAggregator ) ) {
+                               throw new MWException( "Class '$class' is not a JobQueueAggregator class." );
+                       }
+                       self::$instance = $obj;
+               }
+
+               return self::$instance;
+       }
+
+       /**
+        * Destroy the singleton instance
+        *
+        * @return void
+        */
+       final public static function destroySingleton() {
+               self::$instance = null;
+       }
+
+       /**
+        * Mark a queue as being empty
+        *
+        * @param string $wiki
+        * @param string $type
+        * @return bool Success
+        */
+       final public function notifyQueueEmpty( $wiki, $type ) {
+               wfProfileIn( __METHOD__ );
+               $ok = $this->doNotifyQueueEmpty( $wiki, $type );
+               wfProfileOut( __METHOD__ );
+
+               return $ok;
+       }
+
+       /**
+        * @see JobQueueAggregator::notifyQueueEmpty()
+        */
+       abstract protected function doNotifyQueueEmpty( $wiki, $type );
+
+       /**
+        * Mark a queue as being non-empty
+        *
+        * @param string $wiki
+        * @param string $type
+        * @return bool Success
+        */
+       final public function notifyQueueNonEmpty( $wiki, $type ) {
+               wfProfileIn( __METHOD__ );
+               $ok = $this->doNotifyQueueNonEmpty( $wiki, $type );
+               wfProfileOut( __METHOD__ );
+
+               return $ok;
+       }
+
+       /**
+        * @see JobQueueAggregator::notifyQueueNonEmpty()
+        */
+       abstract protected function doNotifyQueueNonEmpty( $wiki, $type );
+
+       /**
+        * Get the list of all of the queues with jobs
+        *
+        * @return array (job type => (list of wiki IDs))
+        */
+       final public function getAllReadyWikiQueues() {
+               wfProfileIn( __METHOD__ );
+               $res = $this->doGetAllReadyWikiQueues();
+               wfProfileOut( __METHOD__ );
+
+               return $res;
+       }
+
+       /**
+        * @see JobQueueAggregator::getAllReadyWikiQueues()
+        */
+       abstract protected function doGetAllReadyWikiQueues();
+
+       /**
+        * Purge all of the aggregator information
+        *
+        * @return bool Success
+        */
+       final public function purge() {
+               wfProfileIn( __METHOD__ );
+               $res = $this->doPurge();
+               wfProfileOut( __METHOD__ );
+
+               return $res;
+       }
+
+       /**
+        * @see JobQueueAggregator::purge()
+        */
+       abstract protected function doPurge();
+
+       /**
+        * Get all databases that have a pending job.
+        * This poll all the queues and is this expensive.
+        *
+        * @return array (job type => (list of wiki IDs))
+        */
+       protected function findPendingWikiQueues() {
+               global $wgLocalDatabases;
+
+               $pendingDBs = array(); // (job type => (db list))
+               foreach ( $wgLocalDatabases as $db ) {
+                       foreach ( JobQueueGroup::singleton( $db )->getQueuesWithJobs() as $type ) {
+                               $pendingDBs[$type][] = $db;
+                       }
+               }
+
+               return $pendingDBs;
+       }
+}
diff --git a/includes/jobqueue/aggregator/JobQueueAggregatorMemc.php b/includes/jobqueue/aggregator/JobQueueAggregatorMemc.php
new file mode 100644 (file)
index 0000000..d733a42
--- /dev/null
@@ -0,0 +1,126 @@
+<?php
+/**
+ * Job queue aggregator code that uses BagOStuff.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Aaron Schulz
+ */
+
+/**
+ * Class to handle tracking information about all queues using BagOStuff
+ *
+ * @ingroup JobQueue
+ * @since 1.21
+ */
+class JobQueueAggregatorMemc extends JobQueueAggregator {
+       /** @var BagOStuff */
+       protected $cache;
+
+       protected $cacheTTL; // integer; seconds
+
+       /**
+        * @params include:
+        *   - objectCache : Name of an object cache registered in $wgObjectCaches.
+        *                   This defaults to the one specified by $wgMainCacheType.
+        *   - cacheTTL    : Seconds to cache the aggregate data before regenerating.
+        * @param array $params
+        */
+       protected function __construct( array $params ) {
+               parent::__construct( $params );
+               $this->cache = isset( $params['objectCache'] )
+                       ? wfGetCache( $params['objectCache'] )
+                       : wfGetMainCache();
+               $this->cacheTTL = isset( $params['cacheTTL'] ) ? $params['cacheTTL'] : 180; // 3 min
+       }
+
+       /**
+        * @see JobQueueAggregator::doNotifyQueueEmpty()
+        */
+       protected function doNotifyQueueEmpty( $wiki, $type ) {
+               $key = $this->getReadyQueueCacheKey();
+               // Delist the queue from the "ready queue" list
+               if ( $this->cache->add( "$key:lock", 1, 60 ) ) { // lock
+                       $curInfo = $this->cache->get( $key );
+                       if ( is_array( $curInfo ) && isset( $curInfo['pendingDBs'][$type] ) ) {
+                               if ( in_array( $wiki, $curInfo['pendingDBs'][$type] ) ) {
+                                       $curInfo['pendingDBs'][$type] = array_diff(
+                                               $curInfo['pendingDBs'][$type], array( $wiki ) );
+                                       $this->cache->set( $key, $curInfo );
+                               }
+                       }
+                       $this->cache->delete( "$key:lock" ); // unlock
+               }
+
+               return true;
+       }
+
+       /**
+        * @see JobQueueAggregator::doNotifyQueueNonEmpty()
+        */
+       protected function doNotifyQueueNonEmpty( $wiki, $type ) {
+               return true; // updated periodically
+       }
+
+       /**
+        * @see JobQueueAggregator::doAllGetReadyWikiQueues()
+        */
+       protected function doGetAllReadyWikiQueues() {
+               $key = $this->getReadyQueueCacheKey();
+               // If the cache entry wasn't present, is stale, or in .1% of cases otherwise,
+               // regenerate the cache. Use any available stale cache if another process is
+               // currently regenerating the pending DB information.
+               $pendingDbInfo = $this->cache->get( $key );
+               if ( !is_array( $pendingDbInfo )
+                       || ( time() - $pendingDbInfo['timestamp'] ) > $this->cacheTTL
+                       || mt_rand( 0, 999 ) == 0
+               ) {
+                       if ( $this->cache->add( "$key:rebuild", 1, 1800 ) ) { // lock
+                               $pendingDbInfo = array(
+                                       'pendingDBs' => $this->findPendingWikiQueues(),
+                                       'timestamp' => time()
+                               );
+                               for ( $attempts = 1; $attempts <= 25; ++$attempts ) {
+                                       if ( $this->cache->add( "$key:lock", 1, 60 ) ) { // lock
+                                               $this->cache->set( $key, $pendingDbInfo );
+                                               $this->cache->delete( "$key:lock" ); // unlock
+                                               break;
+                                       }
+                               }
+                               $this->cache->delete( "$key:rebuild" ); // unlock
+                       }
+               }
+
+               return is_array( $pendingDbInfo )
+                       ? $pendingDbInfo['pendingDBs']
+                       : array(); // cache is both empty and locked
+       }
+
+       /**
+        * @see JobQueueAggregator::doPurge()
+        */
+       protected function doPurge() {
+               return $this->cache->delete( $this->getReadyQueueCacheKey() );
+       }
+
+       /**
+        * @return string
+        */
+       private function getReadyQueueCacheKey() {
+               return "jobqueue:aggregator:ready-queues:v1"; // global
+       }
+}
diff --git a/includes/jobqueue/aggregator/JobQueueAggregatorRedis.php b/includes/jobqueue/aggregator/JobQueueAggregatorRedis.php
new file mode 100644 (file)
index 0000000..2aec3c9
--- /dev/null
@@ -0,0 +1,206 @@
+<?php
+/**
+ * Job queue aggregator code that uses PhpRedis.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * http://www.gnu.org/copyleft/gpl.html
+ *
+ * @file
+ * @author Aaron Schulz
+ */
+
+/**
+ * Class to handle tracking information about all queues using PhpRedis
+ *
+ * @ingroup JobQueue
+ * @ingroup Redis
+ * @since 1.21
+ */
+class JobQueueAggregatorRedis extends JobQueueAggregator {
+       /** @var RedisConnectionPool */
+       protected $redisPool;
+
+       /** @var array List of Redis server addresses */
+       protected $servers;
+
+       /**
+        * @params include:
+        *   - redisConfig  : An array of parameters to RedisConnectionPool::__construct().
+        *   - redisServers : Array of server entries, the first being the primary and the
+        *                    others being fallback servers. Each entry is either a hostname/port
+        *                    combination or the absolute path of a UNIX socket.
+        *                    If a hostname is specified but no port, the standard port number
+        *                    6379 will be used. Required.
+        * @param array $params
+        */
+       protected function __construct( array $params ) {
+               parent::__construct( $params );
+               $this->servers = isset( $params['redisServers'] )
+                       ? $params['redisServers']
+                       : array( $params['redisServer'] ); // b/c
+               $this->redisPool = RedisConnectionPool::singleton( $params['redisConfig'] );
+       }
+
+       protected function doNotifyQueueEmpty( $wiki, $type ) {
+               $conn = $this->getConnection();
+               if ( !$conn ) {
+                       return false;
+               }
+               try {
+                       $conn->hDel( $this->getReadyQueueKey(), $this->encQueueName( $type, $wiki ) );
+
+                       return true;
+               } catch ( RedisException $e ) {
+                       $this->handleException( $conn, $e );
+
+                       return false;
+               }
+       }
+
+       protected function doNotifyQueueNonEmpty( $wiki, $type ) {
+               $conn = $this->getConnection();
+               if ( !$conn ) {
+                       return false;
+               }
+               try {
+                       $conn->hSet( $this->getReadyQueueKey(), $this->encQueueName( $type, $wiki ), time() );
+
+                       return true;
+               } catch ( RedisException $e ) {
+                       $this->handleException( $conn, $e );
+
+                       return false;
+               }
+       }
+
+       protected function doGetAllReadyWikiQueues() {
+               $conn = $this->getConnection();
+               if ( !$conn ) {
+                       return array();
+               }
+               try {
+                       $conn->multi( Redis::PIPELINE );
+                       $conn->exists( $this->getReadyQueueKey() );
+                       $conn->hGetAll( $this->getReadyQueueKey() );
+                       list( $exists, $map ) = $conn->exec();
+
+                       if ( $exists ) { // cache hit
+                               $pendingDBs = array(); // (type => list of wikis)
+                               foreach ( $map as $key => $time ) {
+                                       list( $type, $wiki ) = $this->dencQueueName( $key );
+                                       $pendingDBs[$type][] = $wiki;
+                               }
+                       } else { // cache miss
+                               // Avoid duplicated effort
+                               $rand = wfRandomString( 32 );
+                               $conn->multi( Redis::MULTI );
+                               $conn->setex( "{$rand}:lock", 3600, 1 );
+                               $conn->renamenx( "{$rand}:lock", $this->getReadyQueueKey() . ":lock" );
+                               if ( $conn->exec() !== array( true, true ) ) { // lock
+                                       $conn->delete( "{$rand}:lock" );
+                                       return array(); // already in progress
+                               }
+
+                               $pendingDBs = $this->findPendingWikiQueues(); // (type => list of wikis)
+
+                               $conn->delete( $this->getReadyQueueKey() . ":lock" ); // unlock
+
+                               $now = time();
+                               $map = array();
+                               foreach ( $pendingDBs as $type => $wikis ) {
+                                       foreach ( $wikis as $wiki ) {
+                                               $map[$this->encQueueName( $type, $wiki )] = $now;
+                                       }
+                               }
+                               $conn->hMSet( $this->getReadyQueueKey(), $map );
+                       }
+
+                       return $pendingDBs;
+               } catch ( RedisException $e ) {
+                       $this->handleException( $conn, $e );
+
+                       return array();
+               }
+       }
+
+       protected function doPurge() {
+               $conn = $this->getConnection();
+               if ( !$conn ) {
+                       return false;
+               }
+               try {
+                       $conn->delete( $this->getReadyQueueKey() );
+               } catch ( RedisException $e ) {
+                       $this->handleException( $conn, $e );
+
+                       return false;
+               }
+
+               return true;
+       }
+
+       /**
+        * Get a connection to the server that handles all sub-queues for this queue
+        *
+        * @return RedisConnRef|bool Returns false on failure
+        * @throws MWException
+        */
+       protected function getConnection() {
+               $conn = false;
+               foreach ( $this->servers as $server ) {
+                       $conn = $this->redisPool->getConnection( $server );
+                       if ( $conn ) {
+                               break;
+                       }
+               }
+
+               return $conn;
+       }
+
+       /**
+        * @param RedisConnRef $conn
+        * @param RedisException $e
+        * @return void
+        */
+       protected function handleException( RedisConnRef $conn, $e ) {
+               $this->redisPool->handleError( $conn, $e );
+       }
+
+       /**
+        * @return string
+        */
+       private function getReadyQueueKey() {
+               return "jobqueue:aggregator:h-ready-queues:v1"; // global
+       }
+
+       /**
+        * @param string $type
+        * @param string $wiki
+        * @return string
+        */
+       private function encQueueName( $type, $wiki ) {
+               return rawurlencode( $type ) . '/' . rawurlencode( $wiki );
+       }
+
+       /**
+        * @param string $name
+        * @return string
+        */
+       private function dencQueueName( $name ) {
+               list( $type, $wiki ) = explode( '/', $name, 2 );
+
+               return array( rawurldecode( $type ), rawurldecode( $wiki ) );
+       }
+}
diff --git a/includes/jobqueue/jobs/AssembleUploadChunksJob.php b/includes/jobqueue/jobs/AssembleUploadChunksJob.php
new file mode 100644 (file)
index 0000000..19b0558
--- /dev/null
@@ -0,0 +1,134 @@
+<?php
+/**
+ * Assemble the segments of a chunked upload.
+ *
+ * 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 Upload
+ */
+
+/**
+ * Assemble the segments of a chunked upload.
+ *
+ * @ingroup Upload
+ */
+class AssembleUploadChunksJob extends Job {
+       public function __construct( $title, $params ) {
+               parent::__construct( 'AssembleUploadChunks', $title, $params );
+               $this->removeDuplicates = true;
+       }
+
+       public function run() {
+               $scope = RequestContext::importScopedSession( $this->params['session'] );
+               $context = RequestContext::getMain();
+               try {
+                       $user = $context->getUser();
+                       if ( !$user->isLoggedIn() ) {
+                               $this->setLastError( "Could not load the author user from session." );
+
+                               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() )
+                       );
+
+                       $upload = new UploadFromChunks( $user );
+                       $upload->continueChunks(
+                               $this->params['filename'],
+                               $this->params['filekey'],
+                               $context->getRequest()
+                       );
+
+                       // Combine all of the chunks into a local file and upload that to a new stash file
+                       $status = $upload->concatenateChunks();
+                       if ( !$status->isGood() ) {
+                               UploadBase::setSessionStatus(
+                                       $this->params['filekey'],
+                                       array( 'result' => 'Failure', 'stage' => 'assembling', 'status' => $status )
+                               );
+                               $this->setLastError( $status->getWikiText() );
+
+                               return false;
+                       }
+
+                       // We have a new filekey for the fully concatenated file
+                       $newFileKey = $upload->getLocalFile()->getFileKey();
+
+                       // Remove the old stash file row and first chunk file
+                       $upload->stash->removeFileNoAuth( $this->params['filekey'] );
+
+                       // Build the image info array while we have the local reference handy
+                       $apiMain = new ApiMain(); // dummy object (XXX)
+                       $imageInfo = $upload->getImageInfo( $apiMain->getResult() );
+
+                       // Cleanup any temporary local file
+                       $upload->cleanupTempFile();
+
+                       // Cache the info so the user doesn't have to wait forever to get the final info
+                       UploadBase::setSessionStatus(
+                               $this->params['filekey'],
+                               array(
+                                       'result' => 'Success',
+                                       'stage' => 'assembling',
+                                       'filekey' => $newFileKey,
+                                       'imageinfo' => $imageInfo,
+                                       'status' => Status::newGood()
+                               )
+                       );
+               } catch ( MWException $e ) {
+                       UploadBase::setSessionStatus(
+                               $this->params['filekey'],
+                               array(
+                                       'result' => 'Failure',
+                                       'stage' => 'assembling',
+                                       'status' => Status::newFatal( 'api-error-stashfailed' )
+                               )
+                       );
+                       $this->setLastError( get_class( $e ) . ": " . $e->getText() );
+
+                       return false;
+               }
+
+               return true;
+       }
+
+       public function getDeduplicationInfo() {
+               $info = parent::getDeduplicationInfo();
+               if ( is_array( $info['params'] ) ) {
+                       $info['params'] = array( 'filekey' => $info['params']['filekey'] );
+               }
+
+               return $info;
+       }
+
+       public function allowRetries() {
+               return false;
+       }
+}
diff --git a/includes/jobqueue/jobs/DoubleRedirectJob.php b/includes/jobqueue/jobs/DoubleRedirectJob.php
new file mode 100644 (file)
index 0000000..94b56ef
--- /dev/null
@@ -0,0 +1,251 @@
+<?php
+/**
+ * Job to fix double redirects after moving a page.
+ *
+ * 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 JobQueue
+ */
+
+/**
+ * Job to fix double redirects after moving a page
+ *
+ * @ingroup JobQueue
+ */
+class DoubleRedirectJob extends Job {
+       /** @var string Reason for the change, 'maintenance' or 'move'. Suffix fo
+        *    message key 'double-redirect-fixed-'.
+        */
+       private $reason;
+
+       /** @var Title The title which has changed, redirects pointing to this
+        *    title are fixed
+        */
+       private $redirTitle;
+
+       /** @var User */
+       private static $user;
+
+       /**
+        * Insert jobs into the job queue to fix redirects to the given title
+        * @param string $reason the reason for the fix, see message
+        *   "double-redirect-fixed-<reason>"
+        * @param $redirTitle Title: the title which has changed, redirects
+        *   pointing to this title are fixed
+        * @param bool $destTitle Not used
+        */
+       public static function fixRedirects( $reason, $redirTitle, $destTitle = false ) {
+               # Need to use the master to get the redirect table updated in the same transaction
+               $dbw = wfGetDB( DB_MASTER );
+               $res = $dbw->select(
+                       array( 'redirect', 'page' ),
+                       array( 'page_namespace', 'page_title' ),
+                       array(
+                               'page_id = rd_from',
+                               'rd_namespace' => $redirTitle->getNamespace(),
+                               'rd_title' => $redirTitle->getDBkey()
+                       ), __METHOD__ );
+               if ( !$res->numRows() ) {
+                       return;
+               }
+               $jobs = array();
+               foreach ( $res as $row ) {
+                       $title = Title::makeTitle( $row->page_namespace, $row->page_title );
+                       if ( !$title ) {
+                               continue;
+                       }
+
+                       $jobs[] = new self( $title, array(
+                               'reason' => $reason,
+                               'redirTitle' => $redirTitle->getPrefixedDBkey() ) );
+                       # Avoid excessive memory usage
+                       if ( count( $jobs ) > 10000 ) {
+                               JobQueueGroup::singleton()->push( $jobs );
+                               $jobs = array();
+                       }
+               }
+               JobQueueGroup::singleton()->push( $jobs );
+       }
+
+       /**
+        * @param Title $title
+        * @param array|bool $params
+        * @param int $id
+        */
+       function __construct( $title, $params = false ) {
+               parent::__construct( 'fixDoubleRedirect', $title, $params );
+               $this->reason = $params['reason'];
+               $this->redirTitle = Title::newFromText( $params['redirTitle'] );
+       }
+
+       /**
+        * @return bool
+        */
+       function run() {
+               if ( !$this->redirTitle ) {
+                       $this->setLastError( 'Invalid title' );
+
+                       return false;
+               }
+
+               $targetRev = Revision::newFromTitle( $this->title, false, Revision::READ_LATEST );
+               if ( !$targetRev ) {
+                       wfDebug( __METHOD__ . ": target redirect already deleted, ignoring\n" );
+
+                       return true;
+               }
+               $content = $targetRev->getContent();
+               $currentDest = $content ? $content->getRedirectTarget() : null;
+               if ( !$currentDest || !$currentDest->equals( $this->redirTitle ) ) {
+                       wfDebug( __METHOD__ . ": Redirect has changed since the job was queued\n" );
+
+                       return true;
+               }
+
+               // Check for a suppression tag (used e.g. in periodically archived discussions)
+               $mw = MagicWord::get( 'staticredirect' );
+               if ( $content->matchMagicWord( $mw ) ) {
+                       wfDebug( __METHOD__ . ": skipping: suppressed with __STATICREDIRECT__\n" );
+
+                       return true;
+               }
+
+               // Find the current final destination
+               $newTitle = self::getFinalDestination( $this->redirTitle );
+               if ( !$newTitle ) {
+                       wfDebug( __METHOD__ .
+                               ": skipping: single redirect, circular redirect or invalid redirect destination\n" );
+
+                       return true;
+               }
+               if ( $newTitle->equals( $this->redirTitle ) ) {
+                       // The redirect is already right, no need to change it
+                       // This can happen if the page was moved back (say after vandalism)
+                       wfDebug( __METHOD__ . " : skipping, already good\n" );
+               }
+
+               // Preserve fragment (bug 14904)
+               $newTitle = Title::makeTitle( $newTitle->getNamespace(), $newTitle->getDBkey(),
+                       $currentDest->getFragment(), $newTitle->getInterwiki() );
+
+               // Fix the text
+               $newContent = $content->updateRedirect( $newTitle );
+
+               if ( $newContent->equals( $content ) ) {
+                       $this->setLastError( 'Content unchanged???' );
+
+                       return false;
+               }
+
+               $user = $this->getUser();
+               if ( !$user ) {
+                       $this->setLastError( 'Invalid user' );
+
+                       return false;
+               }
+
+               // Save it
+               global $wgUser;
+               $oldUser = $wgUser;
+               $wgUser = $user;
+               $article = WikiPage::factory( $this->title );
+
+               // Messages: double-redirect-fixed-move, double-redirect-fixed-maintenance
+               $reason = wfMessage( 'double-redirect-fixed-' . $this->reason,
+                       $this->redirTitle->getPrefixedText(), $newTitle->getPrefixedText()
+               )->inContentLanguage()->text();
+               $article->doEditContent( $newContent, $reason, EDIT_UPDATE | EDIT_SUPPRESS_RC, false, $user );
+               $wgUser = $oldUser;
+
+               return true;
+       }
+
+       /**
+        * Get the final destination of a redirect
+        *
+        * @param $title Title
+        *
+        * @return bool if the specified title is not a redirect, or if it is a circular redirect
+        */
+       public static function getFinalDestination( $title ) {
+               $dbw = wfGetDB( DB_MASTER );
+
+               // Circular redirect check
+               $seenTitles = array();
+               $dest = false;
+
+               while ( true ) {
+                       $titleText = $title->getPrefixedDBkey();
+                       if ( isset( $seenTitles[$titleText] ) ) {
+                               wfDebug( __METHOD__, "Circular redirect detected, aborting\n" );
+
+                               return false;
+                       }
+                       $seenTitles[$titleText] = true;
+
+                       if ( $title->isExternal() ) {
+                               // If the target is interwiki, we have to break early (bug 40352).
+                               // Otherwise it will look up a row in the local page table
+                               // with the namespace/page of the interwiki target which can cause
+                               // unexpected results (e.g. X -> foo:Bar -> Bar -> .. )
+                               break;
+                       }
+
+                       $row = $dbw->selectRow(
+                               array( 'redirect', 'page' ),
+                               array( 'rd_namespace', 'rd_title', 'rd_interwiki' ),
+                               array(
+                                       'rd_from=page_id',
+                                       'page_namespace' => $title->getNamespace(),
+                                       'page_title' => $title->getDBkey()
+                               ), __METHOD__ );
+                       if ( !$row ) {
+                               # No redirect from here, chain terminates
+                               break;
+                       } else {
+                               $dest = $title = Title::makeTitle(
+                                       $row->rd_namespace,
+                                       $row->rd_title,
+                                       '',
+                                       $row->rd_interwiki
+                               );
+                       }
+               }
+
+               return $dest;
+       }
+
+       /**
+        * Get a user object for doing edits, from a request-lifetime cache
+        * False will be returned if the user name specified in the
+        * 'double-redirect-fixer' message is invalid.
+        *
+        * @return User|bool
+        */
+       function getUser() {
+               if ( !self::$user ) {
+                       $username = wfMessage( 'double-redirect-fixer' )->inContentLanguage()->text();
+                       self::$user = User::newFromName( $username );
+                       # User::newFromName() can return false on a badly configured wiki.
+                       if ( self::$user && !self::$user->isLoggedIn() ) {
+                               self::$user->addToDatabase();
+                       }
+               }
+
+               return self::$user;
+       }
+}
diff --git a/includes/jobqueue/jobs/DuplicateJob.php b/includes/jobqueue/jobs/DuplicateJob.php
new file mode 100644 (file)
index 0000000..b0a6ef7
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+/**
+ * No-op job that does nothing.
+ *
+ * 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 Cache
+ */
+
+/**
+ * No-op job that does nothing. Used to represent duplicates.
+ *
+ * @ingroup JobQueue
+ */
+final class DuplicateJob extends Job {
+       /**
+        * Callers should use DuplicateJob::newFromJob() instead
+        *
+        * @param Title $title
+        * @param array $params job parameters
+        */
+       function __construct( $title, $params ) {
+               parent::__construct( 'duplicate', $title, $params );
+       }
+
+       /**
+        * Get a duplicate no-op version of a job
+        *
+        * @param Job $job
+        * @return Job
+        */
+       public static function newFromJob( Job $job ) {
+               $djob = new self( $job->getTitle(), $job->getParams() );
+               $djob->command = $job->getType();
+               $djob->params = is_array( $djob->params ) ? $djob->params : array();
+               $djob->params = array( 'isDuplicate' => true ) + $djob->params;
+               $djob->metadata = $job->metadata;
+
+               return $djob;
+       }
+
+       public function run() {
+               return true;
+       }
+}
diff --git a/includes/jobqueue/jobs/EmaillingJob.php b/includes/jobqueue/jobs/EmaillingJob.php
new file mode 100644 (file)
index 0000000..df8ae63
--- /dev/null
@@ -0,0 +1,46 @@
+<?php
+/**
+ * Old job for notification emails.
+ *
+ * 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 JobQueue
+ */
+
+/**
+ * Old job used for sending single notification emails;
+ * kept for backwards-compatibility
+ *
+ * @ingroup JobQueue
+ */
+class EmaillingJob extends Job {
+       function __construct( $title, $params ) {
+               parent::__construct( 'sendMail', Title::newMainPage(), $params );
+       }
+
+       function run() {
+               $status = UserMailer::send(
+                       $this->params['to'],
+                       $this->params['from'],
+                       $this->params['subj'],
+                       $this->params['body'],
+                       $this->params['replyto']
+               );
+
+               return $status->isOK();
+       }
+}
diff --git a/includes/jobqueue/jobs/EnotifNotifyJob.php b/includes/jobqueue/jobs/EnotifNotifyJob.php
new file mode 100644 (file)
index 0000000..1ed99a5
--- /dev/null
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Job for notification emails.
+ *
+ * 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 JobQueue
+ */
+
+/**
+ * Job for email notification mails
+ *
+ * @ingroup JobQueue
+ */
+class EnotifNotifyJob extends Job {
+       function __construct( $title, $params ) {
+               parent::__construct( 'enotifNotify', $title, $params );
+       }
+
+       function run() {
+               $enotif = new EmailNotification();
+               // Get the user from ID (rename safe). Anons are 0, so defer to name.
+               if ( isset( $this->params['editorID'] ) && $this->params['editorID'] ) {
+                       $editor = User::newFromId( $this->params['editorID'] );
+               // B/C, only the name might be given.
+               } else {
+                       # @todo FIXME: newFromName could return false on a badly configured wiki.
+                       $editor = User::newFromName( $this->params['editor'], false );
+               }
+               $enotif->actuallyNotifyOnPageChange(
+                       $editor,
+                       $this->title,
+                       $this->params['timestamp'],
+                       $this->params['summary'],
+                       $this->params['minorEdit'],
+                       $this->params['oldid'],
+                       $this->params['watchers'],
+                       $this->params['pageStatus']
+               );
+
+               return true;
+       }
+}
diff --git a/includes/jobqueue/jobs/HTMLCacheUpdateJob.php b/includes/jobqueue/jobs/HTMLCacheUpdateJob.php
new file mode 100644 (file)
index 0000000..a7c5dc0
--- /dev/null
@@ -0,0 +1,170 @@
+<?php
+/**
+ * HTML cache invalidation of all pages linking to a given title.
+ *
+ * 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 Cache
+ */
+
+/**
+ * Job to purge the cache for all pages that link to or use another page or file
+ *
+ * This job comes in a few variants:
+ *   - a) Recursive jobs to purge caches for backlink pages for a given title.
+ *        These jobs have have (recursive:true,table:<table>) set.
+ *   - b) Jobs to purge caches for a set of titles (the job title is ignored).
+ *           These jobs have have (pages:(<page ID>:(<namespace>,<title>),...) set.
+ *
+ * @ingroup JobQueue
+ */
+class HTMLCacheUpdateJob extends Job {
+       function __construct( $title, $params = '' ) {
+               parent::__construct( 'htmlCacheUpdate', $title, $params );
+               // Base backlink purge jobs can be de-duplicated
+               $this->removeDuplicates = ( !isset( $params['range'] ) && !isset( $params['pages'] ) );
+       }
+
+       function run() {
+               global $wgUpdateRowsPerJob, $wgUpdateRowsPerQuery, $wgMaxBacklinksInvalidate;
+
+               static $expected = array( 'recursive', 'pages' ); // new jobs have one of these
+
+               $oldRangeJob = false;
+               if ( !array_intersect( array_keys( $this->params ), $expected ) ) {
+                       // B/C for older job params formats that lack these fields:
+                       // a) base jobs with just ("table") and b) range jobs with ("table","start","end")
+                       if ( isset( $this->params['start'] ) && isset( $this->params['end'] ) ) {
+                               $oldRangeJob = true;
+                       } else {
+                               $this->params['recursive'] = true; // base job
+                       }
+               }
+
+               // Job to purge all (or a range of) backlink pages for a page
+               if ( !empty( $this->params['recursive'] ) ) {
+                       // @TODO: try to use delayed jobs if possible?
+                       if ( !isset( $this->params['range'] ) && $wgMaxBacklinksInvalidate !== false ) {
+                               $numRows = $this->title->getBacklinkCache()->getNumLinks(
+                                       $this->params['table'], $wgMaxBacklinksInvalidate );
+                               if ( $numRows > $wgMaxBacklinksInvalidate ) {
+                                       return true;
+                               }
+                       }
+                       // Convert this into no more than $wgUpdateRowsPerJob HTMLCacheUpdateJob per-title
+                       // jobs and possibly a recursive HTMLCacheUpdateJob job for the rest of the backlinks
+                       $jobs = BacklinkJobUtils::partitionBacklinkJob(
+                               $this,
+                               $wgUpdateRowsPerJob,
+                               $wgUpdateRowsPerQuery, // jobs-per-title
+                               // Carry over information for de-duplication
+                               array( 'params' => $this->getRootJobParams() )
+                       );
+                       JobQueueGroup::singleton()->push( $jobs );
+               // Job to purge pages for for a set of titles
+               } elseif ( isset( $this->params['pages'] ) ) {
+                       $this->invalidateTitles( $this->params['pages'] );
+               // B/C for job to purge a range of backlink pages for a given page
+               } elseif ( $oldRangeJob ) {
+                       $titleArray = $this->title->getBacklinkCache()->getLinks(
+                               $this->params['table'], $this->params['start'], $this->params['end'] );
+
+                       $pages = array(); // same format BacklinkJobUtils uses
+                       foreach ( $titleArray as $tl ) {
+                               $pages[$tl->getArticleId()] = array( $tl->getNamespace(), $tl->getDbKey() );
+                       }
+
+                       $jobs = array();
+                       foreach ( array_chunk( $pages, $wgUpdateRowsPerJob ) as $pageChunk ) {
+                               $jobs[] = new HTMLCacheUpdateJob( $this->title,
+                                       array(
+                                               'table' => $this->params['table'],
+                                               'pages' => $pageChunk
+                                       ) + $this->getRootJobParams() // carry over information for de-duplication
+                               );
+                       }
+                       JobQueueGroup::singleton()->push( $jobs );
+               }
+
+               return true;
+       }
+
+       /**
+        * @param array $pages Map of (page ID => (namespace, DB key)) entries
+        */
+       protected function invalidateTitles( array $pages ) {
+               global $wgUpdateRowsPerQuery, $wgUseFileCache, $wgUseSquid;
+
+               // Get all page IDs in this query into an array
+               $pageIds = array_keys( $pages );
+               if ( !$pageIds ) {
+                       return;
+               }
+
+               $dbw = wfGetDB( DB_MASTER );
+
+               // The page_touched field will need to be bumped for these pages.
+               // Only bump it to the present time if no "rootJobTimestamp" was known.
+               // If it is known, it can be used instead, which avoids invalidating output
+               // that was in fact generated *after* the relevant dependency change time
+               // (e.g. template edit). This is particularily useful since refreshLinks jobs
+               // save back parser output and usually run along side htmlCacheUpdate jobs;
+               // their saved output would be invalidated by using the current timestamp.
+               if ( isset( $this->params['rootJobTimestamp'] ) ) {
+                       $touchTimestamp = $this->params['rootJobTimestamp'];
+               } else {
+                       $touchTimestamp = wfTimestampNow();
+               }
+
+               // Update page_touched (skipping pages already touched since the root job).
+               // Check $wgUpdateRowsPerQuery for sanity; batch jobs are sized by that already.
+               foreach ( array_chunk( $pageIds, $wgUpdateRowsPerQuery ) as $batch ) {
+                       $dbw->update( 'page',
+                               array( 'page_touched' => $dbw->timestamp( $touchTimestamp ) ),
+                               array( 'page_id' => $batch,
+                                       // don't invalidated pages that were already invalidated
+                                       "page_touched < " . $dbw->addQuotes( $dbw->timestamp( $touchTimestamp ) )
+                               ),
+                               __METHOD__
+                       );
+               }
+               // Get the list of affected pages (races only mean something else did the purge)
+               $titleArray = TitleArray::newFromResult( $dbw->select(
+                       'page',
+                       array( 'page_namespace', 'page_title' ),
+                       array( 'page_id' => $pageIds, 'page_touched' => $dbw->timestamp( $touchTimestamp ) ),
+                       __METHOD__
+               ) );
+
+               // Update squid
+               if ( $wgUseSquid ) {
+                       $u = SquidUpdate::newFromTitles( $titleArray );
+                       $u->doUpdate();
+               }
+
+               // Update file cache
+               if ( $wgUseFileCache ) {
+                       foreach ( $titleArray as $title ) {
+                               HTMLFileCache::clearFileCache( $title );
+                       }
+               }
+       }
+
+       public function workItemCount() {
+               return isset( $this->params['pages'] ) ? count( $this->params['pages'] ) : 1;
+       }
+}
diff --git a/includes/jobqueue/jobs/NullJob.php b/includes/jobqueue/jobs/NullJob.php
new file mode 100644 (file)
index 0000000..b2d6a9a
--- /dev/null
@@ -0,0 +1,76 @@
+<?php
+/**
+ * Degenerate job that does nothing.
+ *
+ * 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 Cache
+ */
+
+/**
+ * Degenerate job that does nothing, but can optionally replace itself
+ * in the queue and/or sleep for a brief time period. These can be used
+ * to represent "no-op" jobs or test lock contention and performance.
+ *
+ * @par Example:
+ * Inserting a null job in the configured job queue:
+ * @code
+ * $ php maintenance/eval.php
+ * > $queue = JobQueueGroup::singleton();
+ * > $job = new NullJob( Title::newMainPage(), array( 'lives' => 10 ) );
+ * > $queue->push( $job );
+ * @endcode
+ * You can then confirm the job has been enqueued by using the showJobs.php
+ * maintenance utility:
+ * @code
+ * $ php maintenance/showJobs.php --group
+ * null: 1 queue; 0 claimed (0 active, 0 abandoned)
+ * $
+ * @endcode
+ *
+ * @ingroup JobQueue
+ */
+class NullJob extends Job {
+       /**
+        * @param Title $title
+        * @param array $params job parameters (lives, usleep)
+        */
+       function __construct( $title, $params ) {
+               parent::__construct( 'null', $title, $params );
+               if ( !isset( $this->params['lives'] ) ) {
+                       $this->params['lives'] = 1;
+               }
+               if ( !isset( $this->params['usleep'] ) ) {
+                       $this->params['usleep'] = 0;
+               }
+               $this->removeDuplicates = !empty( $this->params['removeDuplicates'] );
+       }
+
+       public function run() {
+               if ( $this->params['usleep'] > 0 ) {
+                       usleep( $this->params['usleep'] );
+               }
+               if ( $this->params['lives'] > 1 ) {
+                       $params = $this->params;
+                       $params['lives']--;
+                       $job = new self( $this->title, $params );
+                       JobQueueGroup::singleton()->push( $job );
+               }
+
+               return true;
+       }
+}
diff --git a/includes/jobqueue/jobs/PublishStashedFileJob.php b/includes/jobqueue/jobs/PublishStashedFileJob.php
new file mode 100644 (file)
index 0000000..d7667f3
--- /dev/null
@@ -0,0 +1,147 @@
+<?php
+/**
+ * Upload a file from the upload stash into the local file repo.
+ *
+ * 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 Upload
+ */
+
+/**
+ * Upload a file from the upload stash into the local file repo.
+ *
+ * @ingroup Upload
+ */
+class PublishStashedFileJob extends Job {
+       public function __construct( $title, $params ) {
+               parent::__construct( 'PublishStashedFile', $title, $params );
+               $this->removeDuplicates = true;
+       }
+
+       public function run() {
+               $scope = RequestContext::importScopedSession( $this->params['session'] );
+               $context = RequestContext::getMain();
+               try {
+                       $user = $context->getUser();
+                       if ( !$user->isLoggedIn() ) {
+                               $this->setLastError( "Could not load the author user from session." );
+
+                               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() )
+                       );
+
+                       $upload = new UploadFromStash( $user );
+                       // @todo initialize() causes a GET, ideally we could frontload the antivirus
+                       // checks and anything else to the stash stage (which includes concatenation and
+                       // the local file is thus already there). That way, instead of GET+PUT, there could
+                       // just be a COPY operation from the stash to the public zone.
+                       $upload->initialize( $this->params['filekey'], $this->params['filename'] );
+
+                       // Check if the local file checks out (this is generally a no-op)
+                       $verification = $upload->verifyUpload();
+                       if ( $verification['status'] !== UploadBase::OK ) {
+                               $status = Status::newFatal( 'verification-error' );
+                               $status->value = array( 'verification' => $verification );
+                               UploadBase::setSessionStatus(
+                                       $this->params['filekey'],
+                                       array( 'result' => 'Failure', 'stage' => 'publish', 'status' => $status )
+                               );
+                               $this->setLastError( "Could not verify upload." );
+
+                               return false;
+                       }
+
+                       // Upload the stashed file to a permanent location
+                       $status = $upload->performUpload(
+                               $this->params['comment'],
+                               $this->params['text'],
+                               $this->params['watch'],
+                               $user
+                       );
+                       if ( !$status->isGood() ) {
+                               UploadBase::setSessionStatus(
+                                       $this->params['filekey'],
+                                       array( 'result' => 'Failure', 'stage' => 'publish', 'status' => $status )
+                               );
+                               $this->setLastError( $status->getWikiText() );
+
+                               return false;
+                       }
+
+                       // Build the image info array while we have the local reference handy
+                       $apiMain = new ApiMain(); // dummy object (XXX)
+                       $imageInfo = $upload->getImageInfo( $apiMain->getResult() );
+
+                       // Cleanup any temporary local file
+                       $upload->cleanupTempFile();
+
+                       // Cache the info so the user doesn't have to wait forever to get the final info
+                       UploadBase::setSessionStatus(
+                               $this->params['filekey'],
+                               array(
+                                       'result' => 'Success',
+                                       'stage' => 'publish',
+                                       'filename' => $upload->getLocalFile()->getName(),
+                                       'imageinfo' => $imageInfo,
+                                       'status' => Status::newGood()
+                               )
+                       );
+               } catch ( MWException $e ) {
+                       UploadBase::setSessionStatus(
+                               $this->params['filekey'],
+                               array(
+                                       'result' => 'Failure',
+                                       'stage' => 'publish',
+                                       'status' => Status::newFatal( 'api-error-publishfailed' )
+                               )
+                       );
+                       $this->setLastError( get_class( $e ) . ": " . $e->getText() );
+
+                       return false;
+               }
+
+               return true;
+       }
+
+       public function getDeduplicationInfo() {
+               $info = parent::getDeduplicationInfo();
+               if ( is_array( $info['params'] ) ) {
+                       $info['params'] = array( 'filekey' => $info['params']['filekey'] );
+               }
+
+               return $info;
+       }
+
+       public function allowRetries() {
+               return false;
+       }
+}
diff --git a/includes/jobqueue/jobs/RefreshLinksJob.php b/includes/jobqueue/jobs/RefreshLinksJob.php
new file mode 100644 (file)
index 0000000..3bcb4fc
--- /dev/null
@@ -0,0 +1,197 @@
+<?php
+/**
+ * Job to update link tables for pages
+ *
+ * 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 JobQueue
+ */
+
+/**
+ * Job to update link tables for pages
+ *
+ * This job comes in a few variants:
+ *   - a) Recursive jobs to update links for backlink pages for a given title.
+ *        These jobs have have (recursive:true,table:<table>) set.
+ *   - b) Jobs to update links for a set of pages (the job title is ignored).
+ *           These jobs have have (pages:(<page ID>:(<namespace>,<title>),...) set.
+ *   - c) Jobs to update links for a single page (the job title)
+ *        These jobs need no extra fields set.
+ *
+ * @ingroup JobQueue
+ */
+class RefreshLinksJob extends Job {
+       const PARSE_THRESHOLD_SEC = 1.0;
+
+       function __construct( $title, $params = '' ) {
+               parent::__construct( 'refreshLinks', $title, $params );
+               // Base backlink update jobs and per-title update jobs can be de-duplicated.
+               // If template A changes twice before any jobs run, a clean queue will have:
+               //              (A base, A base)
+               // The second job is ignored by the queue on insertion.
+               // Suppose, many pages use template A, and that template itself uses template B.
+               // An edit to both will first create two base jobs. A clean FIFO queue will have:
+               //              (A base, B base)
+               // When these jobs run, the queue will have per-title and remnant partition jobs:
+               //              (titleX,titleY,titleZ,...,A remnant,titleM,titleN,titleO,...,B remnant)
+               // Some these jobs will be the same, and will automatically be ignored by
+               // the queue upon insertion. Some title jobs will run before the duplicate is
+               // inserted, so the work will still be done twice in those cases. More titles
+               // can be de-duplicated as the remnant jobs continue to be broken down. This
+               // works best when $wgUpdateRowsPerJob, and either the pages have few backlinks
+               // and/or the backlink sets for pages A and B are almost identical.
+               $this->removeDuplicates = !isset( $params['range'] )
+                       && ( !isset( $params['pages'] ) || count( $params['pages'] ) == 1 );
+       }
+
+       function run() {
+               global $wgUpdateRowsPerJob;
+
+               // Job to update all (or a range of) backlink pages for a page
+               if ( !empty( $this->params['recursive'] ) ) {
+                       // Carry over information for de-duplication
+                       $extraParams = $this->getRootJobParams();
+                       // Avoid slave lag when fetching templates.
+                       // When the outermost job is run, we know that the caller that enqueued it must have
+                       // committed the relevant changes to the DB by now. At that point, record the master
+                       // position and pass it along as the job recursively breaks into smaller range jobs.
+                       // Hopefully, when leaf jobs are popped, the slaves will have reached that position.
+                       if ( isset( $this->params['masterPos'] ) ) {
+                               $extraParams['masterPos'] = $this->params['masterPos'];
+                       } elseif ( wfGetLB()->getServerCount() > 1 ) {
+                               $extraParams['masterPos'] = wfGetLB()->getMasterPos();
+                       } else {
+                               $extraParams['masterPos'] = false;
+                       }
+                       // Convert this into no more than $wgUpdateRowsPerJob RefreshLinks per-title
+                       // jobs and possibly a recursive RefreshLinks job for the rest of the backlinks
+                       $jobs = BacklinkJobUtils::partitionBacklinkJob(
+                               $this,
+                               $wgUpdateRowsPerJob,
+                               1, // job-per-title
+                               array( 'params' => $extraParams )
+                       );
+                       JobQueueGroup::singleton()->push( $jobs );
+               // Job to update link tables for for a set of titles
+               } elseif ( isset( $this->params['pages'] ) ) {
+                       foreach ( $this->params['pages'] as $pageId => $nsAndKey ) {
+                               list( $ns, $dbKey ) = $nsAndKey;
+                               $this->runForTitle( Title::makeTitleSafe( $ns, $dbKey ) );
+                       }
+               // Job to update link tables for a given title
+               } else {
+                       $this->runForTitle( $this->title );
+               }
+
+               return true;
+       }
+
+       protected function runForTitle( Title $title = null ) {
+               $linkCache = LinkCache::singleton();
+               $linkCache->clear();
+
+               if ( is_null( $title ) ) {
+                       $this->setLastError( "refreshLinks: Invalid title" );
+                       return false;
+               }
+
+               // Wait for the DB of the current/next slave DB handle to catch up to the master.
+               // This way, we get the correct page_latest for templates or files that just changed
+               // milliseconds ago, having triggered this job to begin with.
+               if ( isset( $this->params['masterPos'] ) && $this->params['masterPos'] !== false ) {
+                       wfGetLB()->waitFor( $this->params['masterPos'] );
+               }
+
+               $page = WikiPage::factory( $title );
+
+               // Fetch the current revision...
+               $revision = Revision::newFromTitle( $title, false, Revision::READ_NORMAL );
+               if ( !$revision ) {
+                       $this->setLastError( "refreshLinks: Article not found {$title->getPrefixedDBkey()}" );
+                       return false; // XXX: what if it was just deleted?
+               }
+               $content = $revision->getContent( Revision::RAW );
+               if ( !$content ) {
+                       // If there is no content, pretend the content is empty
+                       $content = $revision->getContentHandler()->makeEmptyContent();
+               }
+
+               $parserOutput = false;
+               $parserOptions = $page->makeParserOptions( 'canonical' );
+               // If page_touched changed after this root job (with a good slave lag skew factor),
+               // then it is likely that any views of the pages already resulted in re-parses which
+               // are now in cache. This can be reused to avoid expensive parsing in some cases.
+               if ( isset( $this->params['rootJobTimestamp'] ) ) {
+                       $skewedTimestamp = wfTimestamp( TS_UNIX, $this->params['rootJobTimestamp'] ) + 5;
+                       if ( $page->getLinksTimestamp() > wfTimestamp( TS_MW, $skewedTimestamp ) ) {
+                               // Something already updated the backlinks since this job was made
+                               return true;
+                       }
+                       if ( $page->getTouched() > wfTimestamp( TS_MW, $skewedTimestamp ) ) {
+                               $parserOutput = ParserCache::singleton()->getDirty( $page, $parserOptions );
+                               if ( $parserOutput && $parserOutput->getCacheTime() <= $skewedTimestamp ) {
+                                       $parserOutput = false; // too stale
+                               }
+                       }
+               }
+               // Fetch the current revision and parse it if necessary...
+               if ( $parserOutput == false ) {
+                       $start = microtime( true );
+                       // Revision ID must be passed to the parser output to get revision variables correct
+                       $parserOutput = $content->getParserOutput(
+                               $title, $revision->getId(), $parserOptions, false );
+                       $ellapsed = microtime( true ) - $start;
+                       // If it took a long time to render, then save this back to the cache to avoid
+                       // wasted CPU by other apaches or job runners. We don't want to always save to
+                       // cache as this cause cause high cache I/O and LRU churn when a template changes.
+                       if ( $ellapsed >= self::PARSE_THRESHOLD_SEC
+                               && $page->isParserCacheUsed( $parserOptions, $revision->getId() )
+                               && $parserOutput->isCacheable()
+                       ) {
+                               $ctime = wfTimestamp( TS_MW, (int)$start ); // cache time
+                               ParserCache::singleton()->save( $parserOutput, $page, $parserOptions, $ctime );
+                       }
+               }
+
+               $updates = $content->getSecondaryDataUpdates( $title, null, false, $parserOutput );
+               DataUpdate::runUpdates( $updates );
+
+               InfoAction::invalidateCache( $title );
+
+               return true;
+       }
+
+       public function getDeduplicationInfo() {
+               $info = parent::getDeduplicationInfo();
+               if ( is_array( $info['params'] ) ) {
+                       // Don't let highly unique "masterPos" values ruin duplicate detection
+                       unset( $info['params']['masterPos'] );
+                       // For per-pages jobs, the job title is that of the template that changed
+                       // (or similar), so remove that since it ruins duplicate detection
+                       if ( isset( $info['pages'] ) ) {
+                               unset( $info['namespace'] );
+                               unset( $info['title'] );
+                       }
+               }
+
+               return $info;
+       }
+
+       public function workItemCount() {
+               return isset( $this->params['pages'] ) ? count( $this->params['pages'] ) : 1;
+       }
+}
diff --git a/includes/jobqueue/jobs/RefreshLinksJob2.php b/includes/jobqueue/jobs/RefreshLinksJob2.php
new file mode 100644 (file)
index 0000000..77e3b3f
--- /dev/null
@@ -0,0 +1,141 @@
+<?php
+/**
+ * Job to update links for a given title.
+ *
+ * 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 JobQueue
+ */
+
+/**
+ * Background job to update links for titles in certain backlink range by page ID.
+ * Newer version for high use templates. This is deprecated by RefreshLinksPartitionJob.
+ *
+ * @ingroup JobQueue
+ * @deprecated 1.23
+ */
+class RefreshLinksJob2 extends Job {
+       function __construct( $title, $params ) {
+               parent::__construct( 'refreshLinks2', $title, $params );
+               // Base jobs for large templates can easily be de-duplicated
+               $this->removeDuplicates = !isset( $params['start'] ) && !isset( $params['end'] );
+       }
+
+       /**
+        * Run a refreshLinks2 job
+        * @return boolean success
+        */
+       function run() {
+               global $wgUpdateRowsPerJob;
+
+               $linkCache = LinkCache::singleton();
+               $linkCache->clear();
+
+               if ( is_null( $this->title ) ) {
+                       $this->error = "refreshLinks2: Invalid title";
+                       return false;
+               }
+
+               // Back compat for pre-r94435 jobs
+               $table = isset( $this->params['table'] ) ? $this->params['table'] : 'templatelinks';
+
+               // Avoid slave lag when fetching templates.
+               // When the outermost job is run, we know that the caller that enqueued it must have
+               // committed the relevant changes to the DB by now. At that point, record the master
+               // position and pass it along as the job recursively breaks into smaller range jobs.
+               // Hopefully, when leaf jobs are popped, the slaves will have reached that position.
+               if ( isset( $this->params['masterPos'] ) ) {
+                       $masterPos = $this->params['masterPos'];
+               } elseif ( wfGetLB()->getServerCount() > 1 ) {
+                       $masterPos = wfGetLB()->getMasterPos();
+               } else {
+                       $masterPos = false;
+               }
+
+               $tbc = $this->title->getBacklinkCache();
+
+               $jobs = array(); // jobs to insert
+               if ( isset( $this->params['start'] ) && isset( $this->params['end'] ) ) {
+                       # This is a partition job to trigger the insertion of leaf jobs...
+                       $jobs = array_merge( $jobs, $this->getSingleTitleJobs( $table, $masterPos ) );
+               } else {
+                       # This is a base job to trigger the insertion of partitioned jobs...
+                       if ( $tbc->getNumLinks( $table, $wgUpdateRowsPerJob + 1 ) <= $wgUpdateRowsPerJob ) {
+                               # Just directly insert the single per-title jobs
+                               $jobs = array_merge( $jobs, $this->getSingleTitleJobs( $table, $masterPos ) );
+                       } else {
+                               # Insert the partition jobs to make per-title jobs
+                               foreach ( $tbc->partition( $table, $wgUpdateRowsPerJob ) as $batch ) {
+                                       list( $start, $end ) = $batch;
+                                       $jobs[] = new RefreshLinksJob2( $this->title,
+                                               array(
+                                                       'table' => $table,
+                                                       'start' => $start,
+                                                       'end' => $end,
+                                                       'masterPos' => $masterPos,
+                                               ) + $this->getRootJobParams() // carry over information for de-duplication
+                                       );
+                               }
+                       }
+               }
+
+               if ( count( $jobs ) ) {
+                       JobQueueGroup::singleton()->push( $jobs );
+               }
+
+               return true;
+       }
+
+       /**
+        * @param $table string
+        * @param $masterPos mixed
+        * @return Array
+        */
+       protected function getSingleTitleJobs( $table, $masterPos ) {
+               # The "start"/"end" fields are not set for the base jobs
+               $start = isset( $this->params['start'] ) ? $this->params['start'] : false;
+               $end = isset( $this->params['end'] ) ? $this->params['end'] : false;
+               $titles = $this->title->getBacklinkCache()->getLinks( $table, $start, $end );
+               # Convert into single page refresh links jobs.
+               # This handles well when in sapi mode and is useful in any case for job
+               # de-duplication. If many pages use template A, and that template itself
+               # uses template B, then an edit to both will create many duplicate jobs.
+               # Roughly speaking, for each page, one of the "RefreshLinksJob" jobs will
+               # get run first, and when it does, it will remove the duplicates. Of course,
+               # one page could have its job popped when the other page's job is still
+               # buried within the logic of a refreshLinks2 job.
+               $jobs = array();
+               foreach ( $titles as $title ) {
+                       $jobs[] = new RefreshLinksJob( $title,
+                               array( 'masterPos' => $masterPos ) + $this->getRootJobParams()
+                       ); // carry over information for de-duplication
+               }
+               return $jobs;
+       }
+
+       /**
+        * @return Array
+        */
+       public function getDeduplicationInfo() {
+               $info = parent::getDeduplicationInfo();
+               // Don't let highly unique "masterPos" values ruin duplicate detection
+               if ( is_array( $info['params'] ) ) {
+                       unset( $info['params']['masterPos'] );
+               }
+               return $info;
+       }
+}
diff --git a/includes/jobqueue/jobs/UploadFromUrlJob.php b/includes/jobqueue/jobs/UploadFromUrlJob.php
new file mode 100644 (file)
index 0000000..2cdac57
--- /dev/null
@@ -0,0 +1,187 @@
+<?php
+/**
+ * Job for asynchronous upload-by-url.
+ *
+ * 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 JobQueue
+ */
+
+/**
+ * Job for asynchronous upload-by-url.
+ *
+ * This job is in fact an interface to UploadFromUrl, which is designed such
+ * that it does not require any globals. If it does, fix it elsewhere, do not
+ * add globals in here.
+ *
+ * @ingroup JobQueue
+ */
+class UploadFromUrlJob extends Job {
+       const SESSION_KEYNAME = 'wsUploadFromUrlJobData';
+
+       /** @var UploadFromUrl */
+       public $upload;
+
+       /** @var User */
+       protected $user;
+
+       public function __construct( $title, $params ) {
+               parent::__construct( 'uploadFromUrl', $title, $params );
+       }
+
+       public function run() {
+               global $wgCopyUploadAsyncTimeout;
+               # Initialize this object and the upload object
+               $this->upload = new UploadFromUrl();
+               $this->upload->initialize(
+                       $this->title->getText(),
+                       $this->params['url'],
+                       false
+               );
+               $this->user = User::newFromName( $this->params['userName'] );
+
+               # Fetch the file
+               $opts = array();
+               if ( $wgCopyUploadAsyncTimeout ) {
+                       $opts['timeout'] = $wgCopyUploadAsyncTimeout;
+               }
+               $status = $this->upload->fetchFile( $opts );
+               if ( !$status->isOk() ) {
+                       $this->leaveMessage( $status );
+
+                       return true;
+               }
+
+               # Verify upload
+               $result = $this->upload->verifyUpload();
+               if ( $result['status'] != UploadBase::OK ) {
+                       $status = $this->upload->convertVerifyErrorToStatus( $result );
+                       $this->leaveMessage( $status );
+
+                       return true;
+               }
+
+               # Check warnings
+               if ( !$this->params['ignoreWarnings'] ) {
+                       $warnings = $this->upload->checkWarnings();
+                       if ( $warnings ) {
+
+                               # Stash the upload
+                               $key = $this->upload->stashFile();
+
+                               // @todo FIXME: This has been broken for a while.
+                               // User::leaveUserMessage() does not exist.
+                               if ( $this->params['leaveMessage'] ) {
+                                       $this->user->leaveUserMessage(
+                                               wfMessage( 'upload-warning-subj' )->text(),
+                                               wfMessage( 'upload-warning-msg',
+                                                       $key,
+                                                       $this->params['url'] )->text()
+                                       );
+                               } else {
+                                       wfSetupSession( $this->params['sessionId'] );
+                                       $this->storeResultInSession( 'Warning',
+                                               'warnings', $warnings );
+                                       session_write_close();
+                               }
+
+                               return true;
+                       }
+               }
+
+               # Perform the upload
+               $status = $this->upload->performUpload(
+                       $this->params['comment'],
+                       $this->params['pageText'],
+                       $this->params['watch'],
+                       $this->user
+               );
+               $this->leaveMessage( $status );
+
+               return true;
+       }
+
+       /**
+        * Leave a message on the user talk page or in the session according to
+        * $params['leaveMessage'].
+        *
+        * @param Status $status
+        */
+       protected function leaveMessage( $status ) {
+               if ( $this->params['leaveMessage'] ) {
+                       if ( $status->isGood() ) {
+                               // @todo FIXME: user->leaveUserMessage does not exist.
+                               $this->user->leaveUserMessage( wfMessage( 'upload-success-subj' )->text(),
+                                       wfMessage( 'upload-success-msg',
+                                               $this->upload->getTitle()->getText(),
+                                               $this->params['url']
+                                       )->text() );
+                       } else {
+                               // @todo FIXME: user->leaveUserMessage does not exist.
+                               $this->user->leaveUserMessage( wfMessage( 'upload-failure-subj' )->text(),
+                                       wfMessage( 'upload-failure-msg',
+                                               $status->getWikiText(),
+                                               $this->params['url']
+                                       )->text() );
+                       }
+               } else {
+                       wfSetupSession( $this->params['sessionId'] );
+                       if ( $status->isOk() ) {
+                               $this->storeResultInSession( 'Success',
+                                       'filename', $this->upload->getLocalFile()->getName() );
+                       } else {
+                               $this->storeResultInSession( 'Failure',
+                                       'errors', $status->getErrorsArray() );
+                       }
+                       session_write_close();
+               }
+       }
+
+       /**
+        * Store a result in the session data. Note that the caller is responsible
+        * for appropriate session_start and session_write_close calls.
+        *
+        * @param string $result the result (Success|Warning|Failure)
+        * @param string $dataKey the key of the extra data
+        * @param mixed $dataValue The extra data itself
+        */
+       protected function storeResultInSession( $result, $dataKey, $dataValue ) {
+               $session =& self::getSessionData( $this->params['sessionKey'] );
+               $session['result'] = $result;
+               $session[$dataKey] = $dataValue;
+       }
+
+       /**
+        * Initialize the session data. Sets the intial result to queued.
+        */
+       public function initializeSessionData() {
+               $session =& self::getSessionData( $this->params['sessionKey'] );
+               $$session['result'] = 'Queued';
+       }
+
+       /**
+        * @param $key
+        * @return mixed
+        */
+       public static function &getSessionData( $key ) {
+               if ( !isset( $_SESSION[self::SESSION_KEYNAME][$key] ) ) {
+                       $_SESSION[self::SESSION_KEYNAME][$key] = array();
+               }
+
+               return $_SESSION[self::SESSION_KEYNAME][$key];
+       }
+}
diff --git a/includes/jobqueue/utils/BacklinkJobUtils.php b/includes/jobqueue/utils/BacklinkJobUtils.php
new file mode 100644 (file)
index 0000000..c8e5df6
--- /dev/null
@@ -0,0 +1,122 @@
+<?php
+/**
+ * Job to update links for a given title.
+ *
+ * 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 JobQueue
+ * @author Aaron Schulz
+ */
+
+/**
+ * Class with Backlink related Job helper methods
+ *
+ * @ingroup JobQueue
+ * @since 1.23
+ */
+class BacklinkJobUtils {
+       /**
+        * Break down $job into approximately ($bSize/$cSize) leaf jobs and a single partition
+        * job that covers the remaining backlink range (if needed). Jobs for the first $bSize
+        * titles are collated ($cSize per job) into leaf jobs to do actual work. All the
+        * resulting jobs are of the same class as $job. No partition job is returned if the
+        * range covered by $job was less than $bSize, as the leaf jobs have full coverage.
+        *
+        * The leaf jobs have the 'pages' param set to a (<page ID>:(<namespace>,<DB key>),...)
+        * map so that the run() function knows what pages to act on. The leaf jobs will keep
+        * the same job title as the parent job (e.g. $job).
+        *
+        * The partition jobs have the 'range' parameter set to a map of the format
+        * (start:<integer>, end:<integer>, batchSize:<integer>, subranges:((<start>,<end>),...)),
+        * the 'table' parameter set to that of $job, and the 'recursive' parameter set to true.
+        * This method can be called on the resulting job to repeat the process again.
+        *
+        * The job provided ($job) must have the 'recursive' parameter set to true and the 'table'
+        * parameter must be set to a backlink table. The job title will be used as the title to
+        * find backlinks for. Any 'range' parameter must follow the same format as mentioned above.
+        * This should be managed by recursive calls to this method.
+        *
+        * The first jobs return are always the leaf jobs. This lets the caller use push() to
+        * put them directly into the queue and works well if the queue is FIFO. In such a queue,
+        * the leaf jobs have to get finished first before anything can resolve the next partition
+        * job, which keeps the queue very small.
+        *
+        * $opts includes:
+        *   - params : extra job parameters to include in each job
+        *
+        * @param Job $job
+        * @param int $bSize BacklinkCache partition size; usually $wgUpdateRowsPerJob
+        * @param int $cSize Max titles per leaf job; Usually 1 or a modest value
+        * @param array $opts Optional parameter map
+        * @return Job[] List of Job objects
+        */
+       public static function partitionBacklinkJob( Job $job, $bSize, $cSize, $opts = array() ) {
+               $class = get_class( $job );
+               $title = $job->getTitle();
+               $params = $job->getParams();
+
+               if ( isset( $params['pages'] ) || empty( $params['recursive'] ) ) {
+                       $ranges = array(); // sanity; this is a leaf node
+                       wfWarn( __METHOD__ . " called on {$job->getType()} leaf job (explosive recursion)." );
+               } elseif ( isset( $params['range'] ) ) {
+                       // This is a range job to trigger the insertion of partitioned/title jobs...
+                       $ranges = $params['range']['subranges'];
+                       $realBSize = $params['range']['batchSize'];
+               } else {
+                       // This is a base job to trigger the insertion of partitioned jobs...
+                       $ranges = $title->getBacklinkCache()->partition( $params['table'], $bSize );
+                       $realBSize = $bSize;
+               }
+
+               $extraParams = isset( $opts['params'] ) ? $opts['params'] : array();
+
+               $jobs = array();
+               // Combine the first range (of size $bSize) backlinks into leaf jobs
+               if ( isset( $ranges[0] ) ) {
+                       list( $start, $end ) = $ranges[0];
+                       $titles = $title->getBacklinkCache()->getLinks( $params['table'], $start, $end );
+                       foreach ( array_chunk( iterator_to_array( $titles ), $cSize ) as $titleBatch ) {
+                               $pages = array();
+                               foreach ( $titleBatch as $tl ) {
+                                       $pages[$tl->getArticleId()] = array( $tl->getNamespace(), $tl->getDBKey() );
+                               }
+                               $jobs[] = new $class(
+                                       $title, // maintain parent job title
+                                       array( 'pages' => $pages ) + $extraParams
+                               );
+                       }
+               }
+               // Take all of the remaining ranges and build a partition job from it
+               if ( isset( $ranges[1] ) ) {
+                       $jobs[] = new $class(
+                               $title, // maintain parent job title
+                               array(
+                                       'recursive'     => true,
+                                       'table'         => $params['table'],
+                                       'range'         => array(
+                                               'start'     => $ranges[1][0],
+                                               'end'       => $ranges[count( $ranges ) - 1][1],
+                                               'batchSize' => $realBSize,
+                                               'subranges' => array_slice( $ranges, 1 )
+                                       ),
+                               ) + $extraParams
+                       );
+               }
+
+               return $jobs;
+       }
+}
index 3b79684..e3a3e2c 100644 (file)
@@ -61,23 +61,38 @@ class CSSMin {
        /**
         * Gets a list of local file paths which are referenced in a CSS style sheet
         *
+        * This function will always return an empty array if the second parameter is not given or null
+        * for backwards-compatibility.
+        *
         * @param string $source CSS data to remap
         * @param string $path File path where the source was read from (optional)
         * @return array List of local file references
         */
        public static function getLocalFileReferences( $source, $path = null ) {
+               if ( $path === null ) {
+                       return array();
+               }
+
+               $path = rtrim( $path, '/' ) . '/';
                $files = array();
+
                $rFlags = PREG_OFFSET_CAPTURE | PREG_SET_ORDER;
                if ( preg_match_all( '/' . self::URL_REGEX . '/', $source, $matches, $rFlags ) ) {
                        foreach ( $matches as $match ) {
-                               $file = ( isset( $path )
-                                       ? rtrim( $path, '/' ) . '/'
-                                       : '' ) . "{$match['file'][0]}";
+                               $url = $match['file'][0];
 
-                               // Only proceed if we can access the file
-                               if ( !is_null( $path ) && file_exists( $file ) ) {
-                                       $files[] = $file;
+                               // Skip fully-qualified and protocol-relative URLs and data URIs
+                               if ( substr( $url, 0, 2 ) === '//' || parse_url( $url, PHP_URL_SCHEME ) ) {
+                                       break;
                                }
+
+                               $file = $path . $url;
+                               // Skip non-existent files
+                               if ( file_exists( $file ) ) {
+                                       break;
+                               }
+
+                               $files[] = $file;
                        }
                }
                return $files;
@@ -240,8 +255,7 @@ class CSSMin {
                $url = $file . $query;
 
                // Skip fully-qualified and protocol-relative URLs and data URIs
-               $urlScheme = substr( $url, 0, 2 ) === '//' || parse_url( $url, PHP_URL_SCHEME );
-               if ( $urlScheme ) {
+               if ( substr( $url, 0, 2 ) === '//' || parse_url( $url, PHP_URL_SCHEME ) ) {
                        return $url;
                }
 
diff --git a/includes/libs/ProcessCacheLRU.php b/includes/libs/ProcessCacheLRU.php
new file mode 100644 (file)
index 0000000..f2d9f42
--- /dev/null
@@ -0,0 +1,132 @@
+<?php
+/**
+ * Per-process memory cache for storing items.
+ *
+ * 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 Cache
+ */
+
+/**
+ * Handles per process caching of items
+ * @ingroup Cache
+ */
+class ProcessCacheLRU {
+       /** @var Array */
+       protected $cache = array(); // (key => prop => value)
+       /** @var Array */
+       protected $cacheTimes = array(); // (key => prop => UNIX timestamp)
+
+       protected $maxCacheKeys; // integer; max entries
+
+       /**
+        * @param $maxKeys integer Maximum number of entries allowed (min 1).
+        * @throws UnexpectedValueException When $maxCacheKeys is not an int or =< 0.
+        */
+       public function __construct( $maxKeys ) {
+               if ( !is_int( $maxKeys ) || $maxKeys < 1 ) {
+                       throw new UnexpectedValueException( __METHOD__ . " must be given an integer >= 1" );
+               }
+               $this->maxCacheKeys = $maxKeys;
+       }
+
+       /**
+        * Set a property field for a cache entry.
+        * This will prune the cache if it gets too large based on LRU.
+        * If the item is already set, it will be pushed to the top of the cache.
+        *
+        * @param $key string
+        * @param $prop string
+        * @param $value mixed
+        * @return void
+        */
+       public function set( $key, $prop, $value ) {
+               if ( isset( $this->cache[$key] ) ) {
+                       $this->ping( $key ); // push to top
+               } elseif ( count( $this->cache ) >= $this->maxCacheKeys ) {
+                       reset( $this->cache );
+                       $evictKey = key( $this->cache );
+                       unset( $this->cache[$evictKey] );
+                       unset( $this->cacheTimes[$evictKey] );
+               }
+               $this->cache[$key][$prop] = $value;
+               $this->cacheTimes[$key][$prop] = time();
+       }
+
+       /**
+        * Check if a property field exists for a cache entry.
+        *
+        * @param $key string
+        * @param $prop string
+        * @param $maxAge integer Ignore items older than this many seconds (since 1.21)
+        * @return bool
+        */
+       public function has( $key, $prop, $maxAge = 0 ) {
+               if ( isset( $this->cache[$key][$prop] ) ) {
+                       return ( $maxAge <= 0 || ( time() - $this->cacheTimes[$key][$prop] ) <= $maxAge );
+               }
+
+               return false;
+       }
+
+       /**
+        * Get a property field for a cache entry.
+        * This returns null if the property is not set.
+        * If the item is already set, it will be pushed to the top of the cache.
+        *
+        * @param $key string
+        * @param $prop string
+        * @return mixed
+        */
+       public function get( $key, $prop ) {
+               if ( isset( $this->cache[$key][$prop] ) ) {
+                       $this->ping( $key ); // push to top
+                       return $this->cache[$key][$prop];
+               } else {
+                       return null;
+               }
+       }
+
+       /**
+        * Clear one or several cache entries, or all cache entries
+        *
+        * @param $keys string|Array
+        * @return void
+        */
+       public function clear( $keys = null ) {
+               if ( $keys === null ) {
+                       $this->cache = array();
+                       $this->cacheTimes = array();
+               } else {
+                       foreach ( (array)$keys as $key ) {
+                               unset( $this->cache[$key] );
+                               unset( $this->cacheTimes[$key] );
+                       }
+               }
+       }
+
+       /**
+        * Push an entry to the top of the cache
+        *
+        * @param $key string
+        */
+       protected function ping( $key ) {
+               $item = $this->cache[$key];
+               unset( $this->cache[$key] );
+               $this->cache[$key] = $item;
+       }
+}
index 3dce961..57d45ed 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /**
- * lessphp v0.4.0@261f1bd28f
+ * lessphp v0.4.0@b7cd5c79e8
  * http://leafo.net/lessphp
  *
  * LESS CSS compiler, adapted from http://lesscss.org
@@ -1011,6 +1011,39 @@ class lessc {
                return $this->lib_rgbahex($color);
        }
 
+       /**
+        * Given an url, decide whether to output a regular link or the base64-encoded contents of the file
+        *
+        * @param  array  $value either an argument list (two strings) or a single string
+        * @return string        formatted url(), either as a link or base64-encoded
+        */
+       protected function lib_data_uri($value) {
+               $mime = ($value[0] === 'list') ? $value[2][0][2] : null;
+               $url = ($value[0] === 'list') ? $value[2][1][2][0] : $value[2][0];
+
+               $fullpath = $this->findImport($url);
+
+               if($fullpath && ($fsize = filesize($fullpath)) !== false) {
+                       // IE8 can't handle data uris larger than 32KB
+                       if($fsize/1024 < 32) {
+                               if(is_null($mime)) {
+                                       if(class_exists('finfo')) { // php 5.3+
+                                               $finfo = new finfo(FILEINFO_MIME);
+                                               $mime = explode('; ', $finfo->file($fullpath));
+                                               $mime = $mime[0];
+                                       } elseif(function_exists('mime_content_type')) { // PHP 5.2
+                                               $mime = mime_content_type($fullpath);
+                                       }
+                               }
+
+                               if(!is_null($mime)) // fallback if the mime type is still unknown
+                                       $url = sprintf('data:%s;base64,%s', $mime, base64_encode(file_get_contents($fullpath)));
+                       }
+               }
+
+               return 'url("'.$url.'")';
+       }
+
        // utility func to unquote a string
        protected function lib_e($arg) {
                switch ($arg[0]) {
@@ -1234,24 +1267,44 @@ class lessc {
        }
 
        protected function lib_contrast($args) {
-               if ($args[0] != 'list' || count($args[2]) < 3) {
-                       return array(array('color', 0, 0, 0), 0);
-               }
+           $darkColor  = array('color', 0, 0, 0);
+           $lightColor = array('color', 255, 255, 255);
+           $threshold  = 0.43;
 
-               list($inputColor, $darkColor, $lightColor) = $args[2];
+           if ( $args[0] == 'list' ) {
+               $inputColor = ( isset($args[2][0]) ) ? $this->assertColor($args[2][0])  : $lightColor;
+               $darkColor  = ( isset($args[2][1]) ) ? $this->assertColor($args[2][1])  : $darkColor;
+               $lightColor = ( isset($args[2][2]) ) ? $this->assertColor($args[2][2])  : $lightColor;
+               $threshold  = ( isset($args[2][3]) ) ? $this->assertNumber($args[2][3]) : $threshold;
+           }
+           else {
+               $inputColor  = $this->assertColor($args);
+           }
 
-               $inputColor = $this->assertColor($inputColor);
-               $darkColor = $this->assertColor($darkColor);
-               $lightColor = $this->assertColor($lightColor);
-               $hsl = $this->toHSL($inputColor);
+           $inputColor = $this->coerceColor($inputColor);
+           $darkColor  = $this->coerceColor($darkColor);
+           $lightColor = $this->coerceColor($lightColor);
 
-               if ($hsl[3] > 50) {
-                       return $darkColor;
-               }
+           //Figure out which is actually light and dark!
+           if ( $this->lib_luma($darkColor) > $this->lib_luma($lightColor) ) {
+               $t  = $lightColor;
+               $lightColor = $darkColor;
+               $darkColor  = $t;
+           }
 
-               return $lightColor;
+           $inputColor_alpha = $this->lib_alpha($inputColor);
+           if ( ( $this->lib_luma($inputColor) * $inputColor_alpha) < $threshold) {
+               return $lightColor;
+           }
+           return $darkColor;
        }
 
+       protected function lib_luma($color) {
+           $color = $this->coerceColor($color);
+           return (0.2126 * $color[0] / 255) + (0.7152 * $color[1] / 255) + (0.0722 * $color[2] / 255);
+       }
+
+
        public function assertColor($value, $error = "expected color value") {
                $color = $this->coerceColor($value);
                if (is_null($color)) $this->throwError($error);
@@ -1475,8 +1528,9 @@ class lessc {
 
                        list(, $name, $args) = $value;
                        if ($name == "%") $name = "_sprintf";
+
                        $f = isset($this->libFunctions[$name]) ?
-                               $this->libFunctions[$name] : array($this, 'lib_'.$name);
+                               $this->libFunctions[$name] : array($this, 'lib_'.str_replace('-', '_', $name));
 
                        if (is_callable($f)) {
                                if ($args[0] == 'list')
@@ -2338,7 +2392,7 @@ class lessc_parser {
                        $this->throwError();
 
                // TODO report where the block was opened
-               if (!is_null($this->env->parent))
+               if ( !property_exists($this->env, 'parent') || !is_null($this->env->parent) )
                        throw new exception('parse error: unclosed block');
 
                return $this->env;
index f0f297f..ad8710c 100644 (file)
@@ -3,7 +3,7 @@
  * Contain classes to list log entries
  *
  * Copyright © 2004 Brion Vibber <brion@pobox.com>, 2008 Aaron Schulz
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index f5798e2..0e8d1de 100644 (file)
@@ -3,7 +3,7 @@
  * Contain log classes
  *
  * Copyright © 2002, 2004 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 900ece9..e27e28a 100644 (file)
@@ -3,7 +3,7 @@
  * Contain classes to list log entries
  *
  * Copyright © 2004 Brion Vibber <brion@pobox.com>, 2008 Aaron Schulz
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 1197552..e1e7992 100644 (file)
@@ -3,7 +3,7 @@
  * DjVu image handler.
  *
  * Copyright © 2006 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index ee7eff8..9ed626f 100644 (file)
@@ -80,8 +80,7 @@ class JpegHandler extends ExifBitmapHandler {
                        wfDebug( __METHOD__ . ": running jpgtran: $cmd\n" );
                        wfProfileIn( 'jpegtran' );
                        $retval = 0;
-                       // @todo FIXME Undefined variable $env
-                       $err = wfShellExecWithStderr( $cmd, $retval, $env );
+                       $err = wfShellExecWithStderr( $cmd, $retval );
                        wfProfileOut( 'jpegtran' );
                        if ( $retval !== 0 ) {
                                $this->logErrorForExternalProcess( $retval, $err, $cmd );
index ee11599..e4caf35 100644 (file)
@@ -798,4 +798,18 @@ abstract class MediaHandler {
        public function getDefaultRenderLanguage( File $file ) {
                return null;
        }
+
+       /**
+        * If its an audio file, return the length of the file. Otherwise 0.
+        *
+        * File::getLength() existed for a long time, but was calling a method
+        * that only existed in some subclasses of this class (The TMH ones).
+        *
+        * @param File $file
+        * @return float Length in seconds
+        * @since 1.23
+        */
+       public function getLength( $file ) {
+               return 0.0;
+       }
 }
index 0602986..5dc9590 100644 (file)
@@ -5,7 +5,7 @@
  * difference. Will run forever until it finds one or you kill it.
  *
  * Copyright (C) 2004 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index c5c1be5..61c315f 100644 (file)
@@ -4,7 +4,7 @@
  * http://www.cl.cam.ac.uk/~mgk25/ucs/examples/UTF-8-test.txt
  *
  * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 5a091af..f6f7dbb 100644 (file)
@@ -3,7 +3,7 @@
  * Unicode normalization routines
  *
  * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 89de929..59a64a3 100644 (file)
@@ -3,7 +3,7 @@
  * Approximate benchmark for some basic operations.
  *
  * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index f392df5..676f8f7 100644 (file)
@@ -4,7 +4,7 @@
  * and supplementary files.
  *
  * Copyright (C) 2004 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 9732d76..9ae6f23 100644 (file)
@@ -5,7 +5,7 @@
  * to test regression on mem usage (bug 28146)
  *
  * Copyright © 2004-2011 Brion Vibber <brion@wikimedia.org>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index ad913b1..7be5251 100644 (file)
@@ -4,7 +4,7 @@
  * http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
  *
  * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index e8fec93..443516b 100644 (file)
@@ -4,7 +4,7 @@
  * Should probably merge them for consistency.
  *
  * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 857943e..217142c 100644 (file)
@@ -3,7 +3,7 @@
  * Classes to cache objects in PHP accelerators, SQL database or DBA files
  *
  * Copyright © 2003-2004 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
@@ -142,7 +142,7 @@ abstract class BagOStuff {
         * @return bool success
         */
        protected function mergeViaLock( $key, closure $callback, $exptime = 0, $attempts = 10 ) {
-               if ( !$this->lock( $key, 60 ) ) {
+               if ( !$this->lock( $key, 6 ) ) {
                        return false;
                }
 
@@ -168,7 +168,7 @@ abstract class BagOStuff {
         * @param $timeout integer [optional]
         * @return bool success
         */
-       public function lock( $key, $timeout = 60 ) {
+       public function lock( $key, $timeout = 6 ) {
                $timestamp = microtime( true ); // starting UNIX timestamp
                if ( $this->add( "{$key}:lock", 1, $timeout ) ) {
                        return true;
@@ -250,8 +250,10 @@ abstract class BagOStuff {
         * @param $value mixed
         * @param $exptime int
         * @return bool success
+        * @deprecated 1.23
         */
        public function replace( $key, $value, $exptime = 0 ) {
+               wfDeprecated( __METHOD__, '1.23' );
                if ( $this->get( $key ) !== false ) {
                        return $this->set( $key, $value, $exptime );
                }
index f1644ed..87acb53 100644 (file)
@@ -107,17 +107,6 @@ class MemcachedBagOStuff extends BagOStuff {
                        $this->fixExpiry( $exptime ) );
        }
 
-       /**
-        * @param $key string
-        * @param $value int
-        * @param $exptime
-        * @return Mixed
-        */
-       public function replace( $key, $value, $exptime = 0 ) {
-               return $this->client->replace( $this->encodeKey( $key ), $value,
-                       $this->fixExpiry( $exptime ) );
-       }
-
        /**
         * Get the underlying client object. This is provided for debugging
         * purposes.
index 79c5187..d9ea54c 100644 (file)
@@ -729,7 +729,7 @@ class MWMemcached {
         * @access  private
         */
        function _connect_sock( &$sock, $host ) {
-               list( $ip, $port ) = preg_split('/:(?=\d)/' , $host );
+               list( $ip, $port ) = preg_split( '/:(?=\d)/', $host );
                $sock = false;
                $timeout = $this->_connect_timeout;
                $errno = $errstr = null;
index 0c3b228..18546d4 100644 (file)
@@ -176,17 +176,6 @@ class MemcachedPeclBagOStuff extends MemcachedBagOStuff {
                return $this->checkResult( $key, parent::add( $key, $value, $exptime ) );
        }
 
-       /**
-        * @param $key string
-        * @param $value int
-        * @param $exptime
-        * @return Mixed
-        */
-       public function replace( $key, $value, $exptime = 0 ) {
-               $this->debugLog( "replace($key)" );
-               return $this->checkResult( $key, parent::replace( $key, $value, $exptime ) );
-       }
-
        /**
         * @param $key string
         * @param $value int
index 427143c..f54726f 100644 (file)
@@ -236,37 +236,6 @@ class RedisBagOStuff extends BagOStuff {
                return $result;
        }
 
-       /**
-        * Non-atomic implementation of replace(). Could perhaps be done atomically
-        * with WATCH or scripting, but this function is rarely used.
-        */
-       public function replace( $key, $value, $expiry = 0 ) {
-               $section = new ProfileSection( __METHOD__ );
-
-               list( $server, $conn ) = $this->getConnection( $key );
-               if ( !$conn ) {
-                       return false;
-               }
-               if ( !$conn->exists( $key ) ) {
-                       return false;
-               }
-
-               $expiry = $this->convertToRelative( $expiry );
-               try {
-                       if ( !$expiry ) {
-                               $result = $conn->set( $key, $this->serialize( $value ) );
-                       } else {
-                               $result = $conn->setex( $key, $expiry, $this->serialize( $value ) );
-                       }
-               } catch ( RedisException $e ) {
-                       $result = false;
-                       $this->handleException( $conn, $e );
-               }
-
-               $this->logRequest( 'replace', $key, $server, $result );
-               return $result;
-       }
-
        /**
         * Non-atomic implementation of incr().
         *
index 67b1c66..ad6bc0f 100644 (file)
@@ -60,12 +60,12 @@ class CoreParserFunctions {
                        $parser->setFunctionHook( $func, array( __CLASS__, $func ), SFH_NO_HASH );
                }
 
-               $parser->setFunctionHook( 'namespace',  array( __CLASS__, 'mwnamespace' ), SFH_NO_HASH );
-               $parser->setFunctionHook( 'int',        array( __CLASS__, 'intFunction' ), SFH_NO_HASH );
-               $parser->setFunctionHook( 'special',    array( __CLASS__, 'special'     ) );
-               $parser->setFunctionHook( 'speciale',   array( __CLASS__, 'speciale'    ) );
-               $parser->setFunctionHook( 'tag',        array( __CLASS__, 'tagObj'      ), SFH_OBJECT_ARGS );
-               $parser->setFunctionHook( 'formatdate', array( __CLASS__, 'formatDate'  ) );
+               $parser->setFunctionHook( 'namespace', array( __CLASS__, 'mwnamespace' ), SFH_NO_HASH );
+               $parser->setFunctionHook( 'int', array( __CLASS__, 'intFunction' ), SFH_NO_HASH );
+               $parser->setFunctionHook( 'special', array( __CLASS__, 'special' ) );
+               $parser->setFunctionHook( 'speciale', array( __CLASS__, 'speciale' ) );
+               $parser->setFunctionHook( 'tag', array( __CLASS__, 'tagObj' ), SFH_OBJECT_ARGS );
+               $parser->setFunctionHook( 'formatdate', array( __CLASS__, 'formatDate' ) );
 
                if ( $wgAllowDisplayTitle ) {
                        $parser->setFunctionHook( 'displaytitle', array( __CLASS__, 'displaytitle' ), SFH_NO_HASH );
@@ -210,7 +210,7 @@ class CoreParserFunctions {
 
        static function localurle( $parser, $s = '', $arg = null ) {
                $temp = self::urlFunction( 'getLocalURL', $s, $arg );
-               if( !is_string( $temp ) ) {
+               if ( !is_string( $temp ) ) {
                        return $temp;
                } else {
                        return htmlspecialchars( $temp );
@@ -223,7 +223,7 @@ class CoreParserFunctions {
 
        static function fullurle( $parser, $s = '', $arg = null ) {
                $temp = self::urlFunction( 'getFullURL', $s, $arg );
-               if( !is_string( $temp ) ) {
+               if ( !is_string( $temp ) ) {
                        return $temp;
                } else {
                        return htmlspecialchars( $temp );
index a2eb698..cbc060a 100644 (file)
@@ -107,7 +107,7 @@ class CoreTagHooks {
         * Renders a thumbnail list of the given images, with optional captions.
         * Full syntax documented on the wiki:
         *
-        *   http://www.mediawiki.org/wiki/Help:Images#Gallery_syntax
+        *   https://www.mediawiki.org/wiki/Help:Images#Gallery_syntax
         *
         * @todo break Parser::renderImageGallery out here too.
         *
index 340f462..f2c4fbf 100644 (file)
@@ -1293,19 +1293,19 @@ class Parser {
                        if ( substr( $m[0], 0, 3 ) === 'RFC' ) {
                                $keyword = 'RFC';
                                $urlmsg = 'rfcurl';
-                               $CssClass = 'mw-magiclink-rfc';
+                               $cssClass = 'mw-magiclink-rfc';
                                $id = $m[4];
                        } elseif ( substr( $m[0], 0, 4 ) === 'PMID' ) {
                                $keyword = 'PMID';
                                $urlmsg = 'pubmedurl';
-                               $CssClass = 'mw-magiclink-pmid';
+                               $cssClass = 'mw-magiclink-pmid';
                                $id = $m[4];
                        } else {
                                throw new MWException( __METHOD__ . ': unrecognised match type "' .
                                        substr( $m[0], 0, 20 ) . '"' );
                        }
                        $url = wfMessage( $urlmsg, $id )->inContentLanguage()->text();
-                       return Linker::makeExternalLink( $url, "{$keyword} {$id}", true, $CssClass );
+                       return Linker::makeExternalLink( $url, "{$keyword} {$id}", true, $cssClass );
                } elseif ( isset( $m[5] ) && $m[5] !== '' ) {
                        # ISBN
                        $isbn = $m[5];
@@ -1684,6 +1684,7 @@ class Parser {
                wfProfileOut( __METHOD__ );
                return $s;
        }
+
        /**
         * Get the rel attribute for a particular external link.
         *
@@ -1703,6 +1704,7 @@ class Parser {
                }
                return null;
        }
+
        /**
         * Get an associative array of additional HTML attributes appropriate for a
         * particular external link.  This currently may include rel => nofollow
@@ -5922,7 +5924,7 @@ class Parser {
 
                # Strip external link markup
                # @todo FIXME: Not tolerant to blank link text
-               # I.E. [http://www.mediawiki.org] will render as [1] or something depending
+               # I.E. [https://www.mediawiki.org] will render as [1] or something depending
                # on how many empty links there are on the page - need to figure that out.
                $text = preg_replace( '/\[(?i:' . $this->mUrlProtocols . ')([^ ]+?) ([^[]+)\]/', '$2', $text );
 
index b2c9757..d1e3e58 100644 (file)
@@ -418,7 +418,7 @@ class ParserOutput extends CacheTime {
         * @note: Do not use setProperty() to set a property which is only used
         * in a context where the ParserOutput object itself is already available,
         * for example a normal page view. There is no need to save such a property
-        * in the database since it the text is already parsed. You can just hook
+        * in the database since the text is already parsed. You can just hook
         * OutputPageParserOutput and get your data out of the ParserOutput object.
         *
         * If you are writing an extension where you want to set a property in the
@@ -488,8 +488,10 @@ class ParserOutput extends CacheTime {
        }
 
        /**
-        * Adds an update job to the output. Any update jobs added to the output will eventually bexecuted in order to
-        * store any secondary information extracted from the page's content.
+        * Adds an update job to the output. Any update jobs added to the output will
+        * eventually be executed in order to store any secondary information extracted
+        * from the page's content. This is triggered by calling getSecondaryDataUpdates()
+        * and is used for forward links updates on edit and backlink updates by jobs.
         *
         * @since 1.20
         *
@@ -656,4 +658,14 @@ class ParserOutput extends CacheTime {
        function setLimitReportData( $key, $value ) {
                $this->mLimitReportData[$key] = $value;
        }
+
+       /**
+        * Save space for for serialization by removing useless values
+        */
+       function __sleep() {
+               return array_diff(
+                       array_keys( get_object_vars( $this ) ),
+                       array( 'mSecondaryDataUpdates', 'mParseStartTime' )
+               );
+       }
 }
index 6b2a874..0e7d42a 100644 (file)
@@ -1144,14 +1144,12 @@ class PPFrame_DOM implements PPFrame {
                                                || ( $flags & PPFrame::STRIP_COMMENTS )
                                        ) {
                                                $out .= '';
-                                       }
-                                       # Add a strip marker in PST mode so that pstPass2() can run some old-fashioned regexes on the result
-                                       # Not in RECOVER_COMMENTS mode (extractSections) though
-                                       elseif ( $this->parser->ot['wiki'] && !( $flags & PPFrame::RECOVER_COMMENTS ) ) {
+                                       } elseif ( $this->parser->ot['wiki'] && !( $flags & PPFrame::RECOVER_COMMENTS ) ) {
+                                               # Add a strip marker in PST mode so that pstPass2() can run some old-fashioned regexes on the result
+                                               # Not in RECOVER_COMMENTS mode (extractSections) though
                                                $out .= $this->parser->insertStripItem( $contextNode->textContent );
-                                       }
-                                       # Recover the literal comment in RECOVER_COMMENTS and pre+no-remove
-                                       else {
+                                       } else {
+                                               # Recover the literal comment in RECOVER_COMMENTS and pre+no-remove
                                                $out .= $contextNode->textContent;
                                        }
                                } elseif ( $contextNode->nodeName == 'ignore' ) {
index c2ab54e..deaf288 100644 (file)
@@ -440,9 +440,7 @@ class Preprocessor_Hash implements Preprocessor {
                                        $extNode->addChild( PPNode_Hash_Tree::newWithText( 'close', $close ) );
                                }
                                $accum->addNode( $extNode );
-                       }
-
-                       elseif ( $found == 'line-start' ) {
+                       } elseif ( $found == 'line-start' ) {
                                // Is this the start of a heading?
                                // Line break belongs before the heading element in any case
                                if ( $fakeLineStart ) {
@@ -1065,14 +1063,12 @@ class PPFrame_Hash implements PPFrame {
                                                || ( $flags & PPFrame::STRIP_COMMENTS )
                                        ) {
                                                $out .= '';
-                                       }
-                                       # Add a strip marker in PST mode so that pstPass2() can run some old-fashioned regexes on the result
-                                       # Not in RECOVER_COMMENTS mode (extractSections) though
-                                       elseif ( $this->parser->ot['wiki'] && !( $flags & PPFrame::RECOVER_COMMENTS ) ) {
+                                       } elseif ( $this->parser->ot['wiki'] && !( $flags & PPFrame::RECOVER_COMMENTS ) ) {
+                                               # Add a strip marker in PST mode so that pstPass2() can run some old-fashioned regexes on the result
+                                               # Not in RECOVER_COMMENTS mode (extractSections) though
                                                $out .= $this->parser->insertStripItem( $contextNode->firstChild->value );
-                                       }
-                                       # Recover the literal comment in RECOVER_COMMENTS and pre+no-remove
-                                       else {
+                                       } else {
+                                               # Recover the literal comment in RECOVER_COMMENTS and pre+no-remove
                                                $out .= $contextNode->firstChild->value;
                                        }
                                } elseif ( $contextNode->name == 'ignore' ) {
@@ -1389,6 +1385,7 @@ class PPTemplateFrame_Hash extends PPFrame_Hash {
                $s .= '}';
                return $s;
        }
+
        /**
         * Returns true if there are no arguments in this frame
         *
index 235a5ad..a26ef68 100644 (file)
@@ -227,15 +227,17 @@ class Profiler {
                $bit = array_pop( $this->mWorkStack );
 
                if ( !$bit ) {
-                       $this->debug( "Profiling error, !\$bit: $functionname\n" );
+                       $this->debugGroup( 'profileerror', "Profiling error, !\$bit: $functionname" );
                } else {
                        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 );
+                               if ( $bit[0] != '-total' ) {
+                                       $message = "Profile section ended by close(): {$bit[0]}";
+                                       $this->debugGroup( 'profileerror', $message );
+                                       $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->debugGroup( 'profileerror', $message );
                                $this->mStack[] = array( $message, 0, 0.0, 0, 0.0, 0 );
                        }
                        $bit[] = $time;
@@ -324,7 +326,7 @@ class Profiler {
                                        list( $method, $realtime ) = $info;
                                        $msg .= sprintf( "%d\t%.6f\t%s\n", $i, $realtime, $method );
                                }
-                               wfDebugLog( 'DBPerformance', $msg );
+                               $this->debugGroup( 'DBPerformance', $msg );
                        }
                        unset( $this->mDBTrxHoldingLocks[$name] );
                        unset( $this->mDBTrxMethodTimes[$name] );
@@ -720,6 +722,18 @@ class Profiler {
                }
        }
 
+       /**
+        * Add an entry in the debug log group
+        *
+        * @param string $group Group to send the message to
+        * @param string $s to output
+        */
+       function debugGroup( $group, $s ) {
+               if ( function_exists( 'wfDebugLog' ) ) {
+                       wfDebugLog( $group, $s );
+               }
+       }
+
        /**
         * Get the content type sent out to the client.
         * Used for profilers that output instead of store data.
index e81c6ec..e7ed6e3 100644 (file)
@@ -36,7 +36,7 @@ class ProfilerMwprof extends Profiler {
 
        // Message types
 
-       const TYPE_SINGLE  = 1;
+       const TYPE_SINGLE = 1;
        const TYPE_RUNNING = 2;
 
        /**
@@ -90,7 +90,7 @@ class ProfilerMwprof extends Profiler {
                // Check for unbalanced profileIn / profileOut calls.
                // Bad entries are logged but not sent.
                if ( $inName !== $outName ) {
-                       wfDebugLog( 'ProfilerUnbalanced', json_encode( array( $inName, $outName ) ) );
+                       $this->debugGroup( 'ProfilerUnbalanced', json_encode( array( $inName, $outName ) ) );
                        return;
                }
 
index ee92c17..7d78e36 100644 (file)
@@ -102,17 +102,18 @@ class ProfilerSimple extends Profiler {
                list( $ofname, /* $ocount */, $ortime, $octime ) = array_pop( $this->mWorkStack );
 
                if ( !$ofname ) {
-                       $this->debug( "Profiling error: $functionname\n" );
+                       $this->debugGroup( 'profileerror', "Profiling error: $functionname" );
                } else {
                        if ( $functionname == 'close' ) {
-                               $message = "Profile section ended by close(): {$ofname}";
-                               $functionname = $ofname;
-                               $this->debug( "$message\n" );
-                               $this->mCollated[$message] = $this->errorEntry;
-                       }
-                       elseif ( $ofname != $functionname ) {
+                               if ( $ofname != '-total' ) {
+                                       $message = "Profile section ended by close(): {$ofname}";
+                                       $functionname = $ofname;
+                                       $this->debugGroup( 'profileerror', $message );
+                                       $this->mCollated[$message] = $this->errorEntry;
+                               }
+                       } elseif ( $ofname != $functionname ) {
                                $message = "Profiling error: in({$ofname}), out($functionname)";
-                               $this->debug( "$message\n" );
+                               $this->debugGroup( 'profileerror', $message );
                                $this->mCollated[$message] = $this->errorEntry;
                        }
                        $elapsedcpu = $this->getTime( 'cpu' ) - $octime;
index ddbb548..22ddfb8 100644 (file)
@@ -30,7 +30,7 @@ class IRCColourfulRCFeedFormatter implements RCFeedFormatter {
         * @see RCFeedFormatter::getLine
         */
        public function getLine( array $feed, RecentChange $rc, $actionComment ) {
-               global $wgUseRCPatrol, $wgUseNPPatrol, $wgLocalInterwiki,
+               global $wgUseRCPatrol, $wgUseNPPatrol, $wgLocalInterwikis,
                        $wgCanonicalServer, $wgScript;
                $attribs = $rc->getAttributes();
                if ( $attribs['rc_type'] == RC_LOG ) {
@@ -88,8 +88,9 @@ class IRCColourfulRCFeedFormatter implements RCFeedFormatter {
                        $flag .= ( $attribs['rc_type'] == RC_NEW ? "N" : "" ) . ( $attribs['rc_minor'] ? "M" : "" ) . ( $attribs['rc_bot'] ? "B" : "" );
                }
 
-               if ( $feed['add_interwiki_prefix'] === true && $wgLocalInterwiki !== false ) {
-                       $prefix = $wgLocalInterwiki;
+               if ( $feed['add_interwiki_prefix'] === true && $wgLocalInterwikis ) {
+                       // we use the first entry in $wgLocalInterwikis in recent changes feeds
+                       $prefix = $wgLocalInterwikis[0];
                } elseif ( $feed['add_interwiki_prefix'] ) {
                        $prefix = $feed['add_interwiki_prefix'];
                } else {
index 557c1f6..12c452a 100644 (file)
 /**
  * Dynamic JavaScript and CSS resource loading system.
  *
- * Most of the documention is on the MediaWiki documentation wiki starting at:
- *    http://www.mediawiki.org/wiki/ResourceLoader
+ * Most of the documentation is on the MediaWiki documentation wiki starting at:
+ *    https://www.mediawiki.org/wiki/ResourceLoader
  */
 class ResourceLoader {
 
-       /* Protected Static Members */
+       /**
+        * @var int
+        */
        protected static $filterCacheVersion = 7;
+       /**
+        * @var array
+        */
        protected static $requiredSourceProperties = array( 'loadScript' );
 
-       /** Array: List of module name/ResourceLoaderModule object pairs */
+       /**
+        * @var array Module name/ResourceLoaderModule object pairs
+        */
        protected $modules = array();
 
-       /** Associative array mapping module name to info associative array */
+       /**
+        * @var array Associative array mapping module name to info associative array
+        */
        protected $moduleInfos = array();
 
-       /** Associative array mapping framework ids to a list of names of test suite modules */
-       /** like array( 'qunit' => array( 'mediawiki.tests.qunit.suites', 'ext.foo.tests', .. ), .. ) */
+       /**
+        * @var array Associative array mapping framework ids to a list of names of test suite modules
+        *      like array( 'qunit' => array( 'mediawiki.tests.qunit.suites', 'ext.foo.tests', .. ), .. )
+        */
        protected $testModuleNames = array();
 
-       /** array( 'source-id' => array( 'loadScript' => 'http://.../load.php' ) ) **/
+       /**
+        * @var array e.g. array( 'source-id' => array( 'loadScript' => 'http://.../load.php' ) )
+        */
        protected $sources = array();
 
-       /** @var bool */
+       /**
+        * @var bool
+        */
        protected $hasErrors = false;
 
-       /* Protected Methods */
-
        /**
-        * Loads information stored in the database about modules.
+        * Load information stored in the database about modules.
         *
         * This method grabs modules dependencies from the database and updates modules
         * objects.
@@ -64,7 +77,7 @@ class ResourceLoader {
         * performance improvement.
         *
         * @param array $modules List of module names to preload information for
-        * @param $context ResourceLoaderContext: Context to load the information within
+        * @param ResourceLoaderContext $context Context to load the information within
         */
        public function preloadModuleInfo( array $modules, ResourceLoaderContext $context ) {
                if ( !count( $modules ) ) {
@@ -122,18 +135,19 @@ class ResourceLoader {
        }
 
        /**
-        * Runs JavaScript or CSS data through a filter, caching the filtered result for future calls.
+        * Run JavaScript or CSS data through a filter, caching the filtered result for future calls.
         *
         * Available filters are:
-        *  - minify-js \see JavaScriptMinifier::minify
-        *  - minify-css \see CSSMin::minify
+        *
+        *    - minify-js \see JavaScriptMinifier::minify
+        *    - minify-css \see CSSMin::minify
         *
         * If $data is empty, only contains whitespace or the filter was unknown,
         * $data is returned unmodified.
         *
         * @param string $filter Name of filter to run
         * @param string $data Text to filter, such as JavaScript or CSS text
-        * @return String: Filtered data, or a comment containing an error message
+        * @return string Filtered data, or a comment containing an error message
         */
        protected function filter( $filter, $data ) {
                global $wgResourceLoaderMinifierStatementsOnOwnLine, $wgResourceLoaderMinifierMaxLineLength;
@@ -193,7 +207,7 @@ class ResourceLoader {
        /* Methods */
 
        /**
-        * Registers core modules and runs registration hooks.
+        * Register core modules and runs registration hooks.
         */
        public function __construct() {
                global $IP, $wgResourceModules, $wgResourceLoaderSources, $wgLoadScript, $wgEnableJavaScriptTest;
@@ -220,17 +234,17 @@ class ResourceLoader {
        }
 
        /**
-        * Registers a module with the ResourceLoader system.
+        * Register a module with the ResourceLoader system.
         *
-        * @param $name Mixed: Name of module as a string or List of name/object pairs as an array
+        * @param mixed $name Name of module as a string or List of name/object pairs as an array
         * @param array $info Module info array. For backwards compatibility with 1.17alpha,
         *   this may also be a ResourceLoaderModule object. Optional when using
         *   multiple-registration calling style.
         * @throws MWException: If a duplicate module registration is attempted
         * @throws MWException: If a module name contains illegal characters (pipes or commas)
         * @throws MWException: If something other than a ResourceLoaderModule is being registered
-        * @return Boolean: False if there were any errors, in which case one or more modules were not
-        *     registered
+        * @return boolean False if there were any errors, in which case one or more modules were
+        *   not registered
         */
        public function register( $name, $info = null ) {
                wfProfileIn( __METHOD__ );
@@ -322,8 +336,8 @@ class ResourceLoader {
         * Source properties:
         * 'loadScript': URL (either fully-qualified or protocol-relative) of load.php for this source
         *
-        * @param $id Mixed: source ID (string), or array( id1 => props1, id2 => props2, ... )
-        * @param array $properties source properties
+        * @param mixed $id Source ID (string), or array( id1 => props1, id2 => props2, ... )
+        * @param array $properties Source properties
         * @throws MWException
         */
        public function addSource( $id, $properties = null ) {
@@ -354,9 +368,9 @@ class ResourceLoader {
        }
 
        /**
-        * Get a list of module names
+        * Get a list of module names.
         *
-        * @return Array: List of module names
+        * @return array List of module names
         */
        public function getModuleNames() {
                return array_keys( $this->moduleInfos );
@@ -364,11 +378,12 @@ class ResourceLoader {
 
        /**
         * Get a list of test module names for one (or all) frameworks.
+        *
         * If the given framework id is unknkown, or if the in-object variable is not an array,
         * then it will return an empty array.
         *
-        * @param string $framework Optional. Get only the test module names for one
-        * particular framework.
+        * @param string $framework Get only the test module names for one
+        *   particular framework (optional)
         * @return Array
         */
        public function getTestModuleNames( $framework = 'all' ) {
@@ -416,18 +431,18 @@ class ResourceLoader {
        }
 
        /**
-        * Get the list of sources
+        * Get the list of sources.
         *
-        * @return Array: array( id => array of properties, .. )
+        * @return array Like array( id => array of properties, .. )
         */
        public function getSources() {
                return $this->sources;
        }
 
        /**
-        * Outputs a response to a resource load-request, including a content-type header.
+        * Output a response to a load request, including the content-type header.
         *
-        * @param $context ResourceLoaderContext: Context in which a response should be formed
+        * @param ResourceLoaderContext $context Context in which a response should be formed
         */
        public function respond( ResourceLoaderContext $context ) {
                global $wgCacheEpoch, $wgUseFileCache;
@@ -551,7 +566,7 @@ class ResourceLoader {
 
        /**
         * Send content type and last modified headers to the client.
-        * @param $context ResourceLoaderContext
+        * @param ResourceLoaderContext $context
         * @param string $mtime TS_MW timestamp to use for last-modified
         * @param bool $errors Whether there are commented-out errors in the response
         * @return void
@@ -589,8 +604,11 @@ class ResourceLoader {
        }
 
        /**
+        * Respond with 304 Last Modified if appropiate.
+        *
         * If there's an If-Modified-Since header, respond with a 304 appropriately
         * and clear out the output buffer. If the client cache is too old then do nothing.
+        *
         * @param $context ResourceLoaderContext
         * @param string $mtime The TS_MW timestamp to check the header against
         * @return bool True if 304 header sent and output handled
@@ -624,10 +642,10 @@ class ResourceLoader {
        }
 
        /**
-        * Send out code for a response from file cache if possible
+        * Send out code for a response from file cache if possible.
         *
-        * @param $fileCache ResourceFileCache: Cache object for this request URL
-        * @param $context ResourceLoaderContext: Context in which to generate a response
+        * @param ResourceFileCache $fileCache Cache object for this request URL
+        * @param ResourceLoaderContext $context Context in which to generate a response
         * @return bool If this found a cache file and handled the response
         */
        protected function tryRespondFromFileCache(
@@ -675,10 +693,11 @@ class ResourceLoader {
        }
 
        /**
-        * Generate a CSS or JS comment block. Only use this for public data,
-        * not error message details.
+        * Generate a CSS or JS comment block.
+        *
+        * Only use this for public data, not error message details.
         *
-        * @param $text string
+        * @param string $text
         * @return string
         */
        public static function makeComment( $text ) {
@@ -687,7 +706,7 @@ class ResourceLoader {
        }
 
        /**
-        * Handle exception display
+        * Handle exception display.
         *
         * @param Exception $e to be shown to the user
         * @return string sanitized text that can be returned to the user
@@ -703,7 +722,7 @@ class ResourceLoader {
        }
 
        /**
-        * Generates code for a response
+        * Generate code for a response.
         *
         * @param $context ResourceLoaderContext Context in which to generate a response
         * @param array $modules List of module objects keyed by module name
@@ -887,17 +906,15 @@ class ResourceLoader {
        /* Static Methods */
 
        /**
-        * Returns JS code to call to mw.loader.implement for a module with
-        * given properties.
+        * Return JS code that calls mw.loader.implement with given module properties.
         *
         * @param string $name Module name
-        * @param $scripts Mixed: List of URLs to JavaScript files or String of JavaScript code
-        * @param $styles Mixed: Array of CSS strings keyed by media type, or an array of lists of URLs to
-        * CSS files keyed by media type
-        * @param $messages Mixed: List of messages associated with this module. May either be an
-        *     associative array mapping message key to value, or a JSON-encoded message blob containing
-        *     the same data, wrapped in an XmlJsCode object.
-        *
+        * @param mixed $scripts List of URLs to JavaScript files or String of JavaScript code
+        * @param mixed $styles Array of CSS strings keyed by media type, or an array of lists of URLs
+        *   to CSS files keyed by media type
+        * @param mixed $messages List of messages associated with this module. May either be an
+        *   associative array mapping message key to value, or a JSON-encoded message blob containing
+        *   the same data, wrapped in an XmlJsCode object.
         * @throws MWException
         * @return string
         */
@@ -927,22 +944,24 @@ class ResourceLoader {
        /**
         * Returns JS code which, when called, will register a given list of messages.
         *
-        * @param $messages Mixed: Either an associative array mapping message key to value, or a
-        *     JSON-encoded message blob containing the same data, wrapped in an XmlJsCode object.
-        *
+        * @param mixed $messages Either an associative array mapping message key to value, or a
+        *   JSON-encoded message blob containing the same data, wrapped in an XmlJsCode object.
         * @return string
         */
        public static function makeMessageSetScript( $messages ) {
-               return Xml::encodeJsCall( 'mw.messages.set', array( (object)$messages ) );
+               return Xml::encodeJsCall(
+                       'mw.messages.set',
+                       array( (object)$messages ),
+                       ResourceLoader::inDebugMode()
+               );
        }
 
        /**
         * Combines an associative array mapping media type to CSS into a
         * single stylesheet with "@media" blocks.
         *
-        * @param array $stylePairs Array keyed by media type containing (arrays of) CSS strings.
-        *
-        * @return Array
+        * @param array $stylePairs Array keyed by media type containing (arrays of) CSS strings
+        * @return array
         */
        private static function makeCombinedStyles( array $stylePairs ) {
                $out = array();
@@ -981,16 +1000,23 @@ class ResourceLoader {
         *    - ResourceLoader::makeLoaderStateScript( array( $name => $state, ... ) ):
         *         Set the state of modules with the given names to the given states
         *
-        * @param $name string
+        * @param string $name
         * @param $state
-        *
         * @return string
         */
        public static function makeLoaderStateScript( $name, $state = null ) {
                if ( is_array( $name ) ) {
-                       return Xml::encodeJsCall( 'mw.loader.state', array( $name ) );
+                       return Xml::encodeJsCall(
+                               'mw.loader.state',
+                               array( $name ),
+                               ResourceLoader::inDebugMode()
+                       );
                } else {
-                       return Xml::encodeJsCall( 'mw.loader.state', array( $name, $state ) );
+                       return Xml::encodeJsCall(
+                               'mw.loader.state',
+                               array( $name, $state ),
+                               ResourceLoader::inDebugMode()
+                       );
                }
        }
 
@@ -1001,19 +1027,20 @@ class ResourceLoader {
         * and $group as supplied.
         *
         * @param string $name Module name
-        * @param $version Integer: Module version number as a timestamp
+        * @param int $version Module version number as a timestamp
         * @param array $dependencies List of module names on which this module depends
         * @param string $group Group which the module is in.
         * @param string $source Source of the module, or 'local' if not foreign.
         * @param string $script JavaScript code
-        *
         * @return string
         */
        public static function makeCustomLoaderScript( $name, $version, $dependencies, $group, $source, $script ) {
                $script = str_replace( "\n", "\n\t", trim( $script ) );
                return Xml::encodeJsCall(
                        "( function ( name, version, dependencies, group, source ) {\n\t$script\n} )",
-                       array( $name, $version, $dependencies, $group, $source ) );
+                       array( $name, $version, $dependencies, $group, $source ),
+                       ResourceLoader::inDebugMode()
+               );
        }
 
        /**
@@ -1034,22 +1061,28 @@ class ResourceLoader {
         *        Registers modules with the given names and parameters.
         *
         * @param string $name Module name
-        * @param $version Integer: Module version number as a timestamp
+        * @param int $version Module version number as a timestamp
         * @param array $dependencies List of module names on which this module depends
-        * @param string $group group which the module is in.
-        * @param string $source source of the module, or 'local' if not foreign
-        *
+        * @param string $group Group which the module is in
+        * @param string $source Source of the module, or 'local' if not foreign
         * @return string
         */
        public static function makeLoaderRegisterScript( $name, $version = null,
                $dependencies = null, $group = null, $source = null
        ) {
                if ( is_array( $name ) ) {
-                       return Xml::encodeJsCall( 'mw.loader.register', array( $name ) );
+                       return Xml::encodeJsCall(
+                               'mw.loader.register',
+                               array( $name ),
+                               ResourceLoader::inDebugMode()
+                       );
                } else {
                        $version = (int)$version > 1 ? (int)$version : 1;
-                       return Xml::encodeJsCall( 'mw.loader.register',
-                               array( $name, $version, $dependencies, $group, $source ) );
+                       return Xml::encodeJsCall(
+                               'mw.loader.register',
+                               array( $name, $version, $dependencies, $group, $source ),
+                               ResourceLoader::inDebugMode()
+                       );
                }
        }
 
@@ -1065,14 +1098,21 @@ class ResourceLoader {
         *
         * @param string $id source ID
         * @param array $properties source properties (see addSource())
-        *
         * @return string
         */
        public static function makeLoaderSourcesScript( $id, $properties = null ) {
                if ( is_array( $id ) ) {
-                       return Xml::encodeJsCall( 'mw.loader.addSource', array( $id ) );
+                       return Xml::encodeJsCall(
+                               'mw.loader.addSource',
+                               array( $id ),
+                               ResourceLoader::inDebugMode()
+                       );
                } else {
-                       return Xml::encodeJsCall( 'mw.loader.addSource', array( $id, $properties ) );
+                       return Xml::encodeJsCall(
+                               'mw.loader.addSource',
+                               array( $id, $properties ),
+                               ResourceLoader::inDebugMode()
+                       );
                }
        }
 
@@ -1081,7 +1121,6 @@ class ResourceLoader {
         * present.
         *
         * @param string $script JavaScript code
-        *
         * @return string
         */
        public static function makeLoaderConditionalScript( $script ) {
@@ -1093,11 +1132,14 @@ class ResourceLoader {
         * the given value.
         *
         * @param array $configuration List of configuration values keyed by variable name
-        *
         * @return string
         */
        public static function makeConfigSetScript( array $configuration ) {
-               return Xml::encodeJsCall( 'mw.config.set', array( $configuration ), ResourceLoader::inDebugMode() );
+               return Xml::encodeJsCall(
+                       'mw.config.set',
+                       array( $configuration ),
+                       ResourceLoader::inDebugMode()
+               );
        }
 
        /**
@@ -1105,7 +1147,7 @@ class ResourceLoader {
         *
         * For example, array( 'foo.bar', 'foo.baz', 'bar.baz', 'bar.quux' )
         * becomes 'foo.bar,baz|bar.baz,quux'
-        * @param array $modules of module names (strings)
+        * @param array $modules List of module names (strings)
         * @return string Packed query string
         */
        public static function makePackedModulesString( $modules ) {
index 207e96b..b4f57c1 100644 (file)
@@ -42,7 +42,8 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                        $wgEnableAPI, $wgEnableWriteAPI, $wgDBname,
                        $wgSitename, $wgFileExtensions, $wgExtensionAssetsPath,
                        $wgCookiePrefix, $wgResourceLoaderMaxQueryLength,
-                       $wgResourceLoaderStorageEnabled, $wgResourceLoaderStorageVersion;
+                       $wgResourceLoaderStorageEnabled, $wgResourceLoaderStorageVersion,
+                       $wgSearchType;
 
                $mainPage = Title::newMainPage();
 
@@ -71,6 +72,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                        'wgScriptPath' => $wgScriptPath,
                        'wgScriptExtension' => $wgScriptExtension,
                        'wgScript' => $wgScript,
+                       'wgSearchType' => $wgSearchType,
                        'wgVariantArticlePath' => $wgVariantArticlePath,
                        // Force object to avoid "empty" associative array from
                        // becoming [] instead of {} in JS (bug 34604)
@@ -149,24 +151,22 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                        // seem to do that, and custom implementations might forget. Coerce it to TS_UNIX
                        $moduleMtime = wfTimestamp( TS_UNIX, $module->getModifiedTime( $context ) );
                        $mtime = max( $moduleMtime, wfTimestamp( TS_UNIX, $wgCacheEpoch ) );
-                       // Modules without dependencies, a group or a foreign source pass two arguments (name, timestamp) to
-                       // mw.loader.register()
+
                        if ( !count( $deps ) && $group === null && $source === 'local' ) {
+                               // Modules without dependencies, a group or a foreign source pass two arguments (name, timestamp) to
+                               // mw.loader.register()
                                $registrations[] = array( $name, $mtime );
-                       }
-                       // Modules with dependencies but no group or foreign source pass three arguments
-                       // (name, timestamp, dependencies) to mw.loader.register()
-                       elseif ( $group === null && $source === 'local' ) {
+                       } elseif ( $group === null && $source === 'local' ) {
+                               // Modules with dependencies but no group or foreign source pass three arguments
+                               // (name, timestamp, dependencies) to mw.loader.register()
                                $registrations[] = array( $name, $mtime, $deps );
-                       }
-                       // Modules with a group but no foreign source pass four arguments (name, timestamp, dependencies, group)
-                       // to mw.loader.register()
-                       elseif ( $source === 'local' ) {
+                       } elseif ( $source === 'local' ) {
+                               // Modules with a group but no foreign source pass four arguments (name, timestamp, dependencies, group)
+                               // to mw.loader.register()
                                $registrations[] = array( $name, $mtime, $deps, $group );
-                       }
-                       // Modules with a foreign source pass five arguments (name, timestamp, dependencies, group, source)
-                       // to mw.loader.register()
-                       else {
+                       } else {
+                               // Modules with a foreign source pass five arguments (name, timestamp, dependencies, group, source)
+                               // to mw.loader.register()
                                $registrations[] = array( $name, $mtime, $deps, $group, $source );
                        }
                }
@@ -218,10 +218,9 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                );
                // Ensure uniform query order
                ksort( $query );
-               return  wfAppendQuery( wfScript( 'load' ), $query );
+               return wfAppendQuery( wfScript( 'load' ), $query );
        }
 
-
        /**
         * @param $context ResourceLoaderContext
         * @return string
@@ -235,8 +234,9 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                        // Startup function
                        $configuration = $this->getConfig( $context );
                        $registrations = self::getModuleRegistrations( $context );
-                       $registrations = str_replace( "\n", "\n\t", trim( $registrations ) ); // fix indentation
-                       $out .= "var startUp = function() {\n" .
+                       // Fix indentation
+                       $registrations = str_replace( "\n", "\n\t", trim( $registrations ) );
+                       $out .= "var startUp = function () {\n" .
                                "\tmw.config = new " . Xml::encodeJsCall( 'mw.Map', array( $wgLegacyJavaScriptGlobals ) ) . "\n" .
                                "\t$registrations\n" .
                                "\t" . Xml::encodeJsCall( 'mw.config.set', array( $configuration ) ) .
@@ -246,8 +246,7 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                        $scriptTag = Html::linkedScript( self::getStartupModulesUrl( $context ) );
                        $out .= "if ( isCompatible() ) {\n" .
                                "\t" . Xml::encodeJsCall( 'document.write', array( $scriptTag ) ) .
-                               "}\n" .
-                               "delete isCompatible;";
+                               "}";
                }
 
                return $out;
@@ -277,21 +276,27 @@ class ResourceLoaderStartUpModule extends ResourceLoaderModule {
                $loader = $context->getResourceLoader();
                $loader->preloadModuleInfo( $loader->getModuleNames(), $context );
 
-               $this->modifiedTime[$hash] = filemtime( "$IP/resources/startup.js" );
-               // ATTENTION!: Because of the line above, this is not going to cause
+               $time = max(
+                       wfTimestamp( TS_UNIX, $wgCacheEpoch ),
+                       filemtime( "$IP/resources/startup.js" )
+               );
+
+               // ATTENTION!: Because of the line below, this is not going to cause
                // infinite recursion - think carefully before making changes to this
                // code!
-               $time = wfTimestamp( TS_UNIX, $wgCacheEpoch );
+               // Pre-populate modifiedTime with something because the the loop over
+               // all modules below includes the the startup module (this module).
+               $this->modifiedTime[$hash] = 1;
+
                foreach ( $loader->getModuleNames() as $name ) {
                        $module = $loader->getModule( $name );
                        $time = max( $time, $module->getModifiedTime( $context ) );
                }
+
                $this->modifiedTime[$hash] = $time;
                return $this->modifiedTime[$hash];
        }
 
-       /* Methods */
-
        /**
         * @return string
         */
index 0509008..7992882 100644 (file)
@@ -687,6 +687,7 @@ class RevDel_FileItem extends RevDel_Item {
                }
                return '<span class="history-deleted">' . $link . '</span>';
        }
+
        /**
         * Generate a user tool link cluster if the current user is allowed to view it
         * @return string HTML
index debf01b..a96ade0 100644 (file)
@@ -439,6 +439,7 @@ class SearchEngine {
                $lc = $this->legalSearchChars();
                return trim( preg_replace( "/[^{$lc}]/", " ", $text ) );
        }
+
        /**
         * Load up the appropriate search engine class for the currently
         * active database backend, and return a configured instance.
@@ -561,174 +562,6 @@ class SearchEngine {
        }
 }
 
-/**
- * @ingroup Search
- */
-class SearchResultSet {
-       /**
-        * Fetch an array of regular expression fragments for matching
-        * the search terms as parsed by this engine in a text extract.
-        * STUB
-        *
-        * @return Array
-        */
-       function termMatches() {
-               return array();
-       }
-
-       function numRows() {
-               return 0;
-       }
-
-       /**
-        * Return true if results are included in this result set.
-        * STUB
-        *
-        * @return Boolean
-        */
-       function hasResults() {
-               return false;
-       }
-
-       /**
-        * Some search modes return a total hit count for the query
-        * in the entire article database. This may include pages
-        * in namespaces that would not be matched on the given
-        * settings.
-        *
-        * Return null if no total hits number is supported.
-        *
-        * @return Integer
-        */
-       function getTotalHits() {
-               return null;
-       }
-
-       /**
-        * Some search modes return a suggested alternate term if there are
-        * no exact hits. Returns true if there is one on this set.
-        *
-        * @return Boolean
-        */
-       function hasSuggestion() {
-               return false;
-       }
-
-       /**
-        * @return String: suggested query, null if none
-        */
-       function getSuggestionQuery() {
-               return null;
-       }
-
-       /**
-        * @return String: HTML highlighted suggested query, '' if none
-        */
-       function getSuggestionSnippet() {
-               return '';
-       }
-
-       /**
-        * Return information about how and from where the results were fetched,
-        * should be useful for diagnostics and debugging
-        *
-        * @return String
-        */
-       function getInfo() {
-               return null;
-       }
-
-       /**
-        * Return a result set of hits on other (multiple) wikis associated with this one
-        *
-        * @return SearchResultSet
-        */
-       function getInterwikiResults() {
-               return null;
-       }
-
-       /**
-        * Check if there are results on other wikis
-        *
-        * @return Boolean
-        */
-       function hasInterwikiResults() {
-               return $this->getInterwikiResults() != null;
-       }
-
-       /**
-        * Fetches next search result, or false.
-        * STUB
-        *
-        * @return SearchResult
-        */
-       function next() {
-               return false;
-       }
-
-       /**
-        * Frees the result set, if applicable.
-        */
-       function free() {
-               // ...
-       }
-
-       /**
-        * Did the search contain search syntax?  If so, Special:Search won't offer
-        * the user a link to a create a page named by the search string because the
-        * name would contain the search syntax.
-        */
-       public function searchContainedSyntax() {
-               return false;
-       }
-}
-
-/**
- * This class is used for different SQL-based search engines shipped with MediaWiki
- */
-class SqlSearchResultSet extends SearchResultSet {
-
-       protected $mResultSet;
-
-       function __construct( $resultSet, $terms ) {
-               $this->mResultSet = $resultSet;
-               $this->mTerms = $terms;
-       }
-
-       function termMatches() {
-               return $this->mTerms;
-       }
-
-       function numRows() {
-               if ( $this->mResultSet === false ) {
-                       return false;
-               }
-
-               return $this->mResultSet->numRows();
-       }
-
-       function next() {
-               if ( $this->mResultSet === false ) {
-                       return false;
-               }
-
-               $row = $this->mResultSet->fetchObject();
-               if ( $row === false ) {
-                       return false;
-               }
-
-               return SearchResult::newFromRow( $row );
-       }
-
-       function free() {
-               if ( $this->mResultSet === false ) {
-                       return false;
-               }
-
-               $this->mResultSet->free();
-       }
-}
-
 /**
  * @ingroup Search
  */
@@ -736,797 +569,6 @@ class SearchResultTooMany {
        # # Some search engines may bail out if too many matches are found
 }
 
-/**
- * @todo FIXME: This class is horribly factored. It would probably be better to
- * have a useful base class to which you pass some standard information, then
- * let the fancy self-highlighters extend that.
- * @ingroup Search
- */
-class SearchResult {
-
-       /**
-        * @var Revision
-        */
-       protected $mRevision = null;
-
-       /**
-        * @var File
-        */
-       protected $mImage = null;
-
-       /**
-        * @var Title
-        */
-       protected $mTitle;
-
-       /**
-        * @var String
-        */
-       protected $mText;
-
-       /**
-        * Return a new SearchResult and initializes it with a title.
-        *
-        * @param $title Title
-        * @return SearchResult
-        */
-       public static function newFromTitle( $title ) {
-               $result = new self();
-               $result->initFromTitle( $title );
-               return $result;
-       }
-       /**
-        * Return a new SearchResult and initializes it with a row.
-        *
-        * @param $row object
-        * @return SearchResult
-        */
-       public static function newFromRow( $row ) {
-               $result = new self();
-               $result->initFromRow( $row );
-               return $result;
-       }
-
-       public function __construct( $row = null ) {
-               if ( !is_null( $row ) ) {
-                       // Backwards compatibility with pre-1.17 callers
-                       $this->initFromRow( $row );
-               }
-       }
-
-       /**
-        * Initialize from a database row. Makes a Title and passes that to
-        * initFromTitle.
-        *
-        * @param $row object
-        */
-       protected function initFromRow( $row ) {
-               $this->initFromTitle( Title::makeTitle( $row->page_namespace, $row->page_title ) );
-       }
-
-       /**
-        * Initialize from a Title and if possible initializes a corresponding
-        * Revision and File.
-        *
-        * @param $title Title
-        */
-       protected function initFromTitle( $title ) {
-               $this->mTitle = $title;
-               if ( !is_null( $this->mTitle ) ) {
-                       $id = false;
-                       wfRunHooks( 'SearchResultInitFromTitle', array( $title, &$id ) );
-                       $this->mRevision = Revision::newFromTitle(
-                               $this->mTitle, $id, Revision::READ_NORMAL );
-                       if ( $this->mTitle->getNamespace() === NS_FILE ) {
-                               $this->mImage = wfFindFile( $this->mTitle );
-                       }
-               }
-       }
-
-       /**
-        * Check if this is result points to an invalid title
-        *
-        * @return Boolean
-        */
-       function isBrokenTitle() {
-               return is_null( $this->mTitle );
-       }
-
-       /**
-        * Check if target page is missing, happens when index is out of date
-        *
-        * @return Boolean
-        */
-       function isMissingRevision() {
-               return !$this->mRevision && !$this->mImage;
-       }
-
-       /**
-        * @return Title
-        */
-       function getTitle() {
-               return $this->mTitle;
-       }
-
-       /**
-        * Get the file for this page, if one exists
-        * @return File|null
-        */
-       function getFile() {
-               return $this->mImage;
-       }
-
-       /**
-        * @return float|null if not supported
-        */
-       function getScore() {
-               return null;
-       }
-
-       /**
-        * Lazy initialization of article text from DB
-        */
-       protected function initText() {
-               if ( !isset( $this->mText ) ) {
-                       if ( $this->mRevision != null ) {
-                               $this->mText = SearchEngine::create()
-                                       ->getTextFromContent( $this->mTitle, $this->mRevision->getContent() );
-                       } else { // TODO: can we fetch raw wikitext for commons images?
-                               $this->mText = '';
-                       }
-               }
-       }
-
-       /**
-        * @param array $terms terms to highlight
-        * @return String: highlighted text snippet, null (and not '') if not supported
-        */
-       function getTextSnippet( $terms ) {
-               global $wgAdvancedSearchHighlighting;
-               $this->initText();
-
-               // TODO: make highliter take a content object. Make ContentHandler a factory for SearchHighliter.
-               list( $contextlines, $contextchars ) = SearchEngine::userHighlightPrefs();
-               $h = new SearchHighlighter();
-               if ( $wgAdvancedSearchHighlighting ) {
-                       return $h->highlightText( $this->mText, $terms, $contextlines, $contextchars );
-               } else {
-                       return $h->highlightSimple( $this->mText, $terms, $contextlines, $contextchars );
-               }
-       }
-
-       /**
-        * @param array $terms terms to highlight
-        * @return String: highlighted title, '' if not supported
-        */
-       function getTitleSnippet( $terms ) {
-               return '';
-       }
-
-       /**
-        * @param array $terms terms to highlight
-        * @return String: highlighted redirect name (redirect to this page), '' if none or not supported
-        */
-       function getRedirectSnippet( $terms ) {
-               return '';
-       }
-
-       /**
-        * @return Title object for the redirect to this page, null if none or not supported
-        */
-       function getRedirectTitle() {
-               return null;
-       }
-
-       /**
-        * @return string highlighted relevant section name, null if none or not supported
-        */
-       function getSectionSnippet() {
-               return '';
-       }
-
-       /**
-        * @return Title object (pagename+fragment) for the section, null if none or not supported
-        */
-       function getSectionTitle() {
-               return null;
-       }
-
-       /**
-        * @return String: timestamp
-        */
-       function getTimestamp() {
-               if ( $this->mRevision ) {
-                       return $this->mRevision->getTimestamp();
-               } elseif ( $this->mImage ) {
-                       return $this->mImage->getTimestamp();
-               }
-               return '';
-       }
-
-       /**
-        * @return Integer: number of words
-        */
-       function getWordCount() {
-               $this->initText();
-               return str_word_count( $this->mText );
-       }
-
-       /**
-        * @return Integer: size in bytes
-        */
-       function getByteSize() {
-               $this->initText();
-               return strlen( $this->mText );
-       }
-
-       /**
-        * @return Boolean if hit has related articles
-        */
-       function hasRelated() {
-               return false;
-       }
-
-       /**
-        * @return String: interwiki prefix of the title (return iw even if title is broken)
-        */
-       function getInterwikiPrefix() {
-               return '';
-       }
-
-       /**
-        * @return string interwiki namespace of the title (since we likely can't resolve it locally)
-        */
-       function getInterwikiNamespaceText() {
-               return '';
-       }
-
-       /**
-        * Did this match file contents (eg: PDF/DJVU)?
-        */
-       function isFileMatch() {
-               return false;
-       }
-}
-/**
- * A SearchResultSet wrapper for SearchEngine::getNearMatch
- */
-class SearchNearMatchResultSet extends SearchResultSet {
-       private $fetched = false;
-       /**
-        * @param $match mixed Title if matched, else null
-        */
-       public function __construct( $match ) {
-               $this->result = $match;
-       }
-       public function hasResult() {
-               return (bool)$this->result;
-       }
-       public function numRows() {
-               return $this->hasResults() ? 1 : 0;
-       }
-       public function next() {
-               if ( $this->fetched || !$this->result ) {
-                       return false;
-               }
-               $this->fetched = true;
-               return SearchResult::newFromTitle( $this->result );
-       }
-}
-
-/**
- * Highlight bits of wikitext
- *
- * @ingroup Search
- */
-class SearchHighlighter {
-       var $mCleanWikitext = true;
-
-       function __construct( $cleanupWikitext = true ) {
-               $this->mCleanWikitext = $cleanupWikitext;
-       }
-
-       /**
-        * Default implementation of wikitext highlighting
-        *
-        * @param $text String
-        * @param array $terms terms to highlight (unescaped)
-        * @param $contextlines Integer
-        * @param $contextchars Integer
-        * @return String
-        */
-       public function highlightText( $text, $terms, $contextlines, $contextchars ) {
-               global $wgContLang;
-               global $wgSearchHighlightBoundaries;
-               $fname = __METHOD__;
-
-               if ( $text == '' ) {
-                       return '';
-               }
-
-               // spli text into text + templates/links/tables
-               $spat = "/(\\{\\{)|(\\[\\[[^\\]:]+:)|(\n\\{\\|)";
-               // first capture group is for detecting nested templates/links/tables/references
-               $endPatterns = array(
-                       1 => '/(\{\{)|(\}\})/', // template
-                       2 => '/(\[\[)|(\]\])/', // image
-                       3 => "/(\n\\{\\|)|(\n\\|\\})/" ); // table
-
-               // @todo FIXME: This should prolly be a hook or something
-               if ( function_exists( 'wfCite' ) ) {
-                       $spat .= '|(<ref>)'; // references via cite extension
-                       $endPatterns[4] = '/(<ref>)|(<\/ref>)/';
-               }
-               $spat .= '/';
-               $textExt = array(); // text extracts
-               $otherExt = array(); // other extracts
-               wfProfileIn( "$fname-split" );
-               $start = 0;
-               $textLen = strlen( $text );
-               $count = 0; // sequence number to maintain ordering
-               while ( $start < $textLen ) {
-                       // find start of template/image/table
-                       if ( preg_match( $spat, $text, $matches, PREG_OFFSET_CAPTURE, $start ) ) {
-                               $epat = '';
-                               foreach ( $matches as $key => $val ) {
-                                       if ( $key > 0 && $val[1] != - 1 ) {
-                                               if ( $key == 2 ) {
-                                                       // see if this is an image link
-                                                       $ns = substr( $val[0], 2, - 1 );
-                                                       if ( $wgContLang->getNsIndex( $ns ) != NS_FILE ) {
-                                                               break;
-                                                       }
-
-                                               }
-                                               $epat = $endPatterns[$key];
-                                               $this->splitAndAdd( $textExt, $count, substr( $text, $start, $val[1] - $start ) );
-                                               $start = $val[1];
-                                               break;
-                                       }
-                               }
-                               if ( $epat ) {
-                                       // find end (and detect any nested elements)
-                                       $level = 0;
-                                       $offset = $start + 1;
-                                       $found = false;
-                                       while ( preg_match( $epat, $text, $endMatches, PREG_OFFSET_CAPTURE, $offset ) ) {
-                                               if ( array_key_exists( 2, $endMatches ) ) {
-                                                       // found end
-                                                       if ( $level == 0 ) {
-                                                               $len = strlen( $endMatches[2][0] );
-                                                               $off = $endMatches[2][1];
-                                                               $this->splitAndAdd( $otherExt, $count,
-                                                                       substr( $text, $start, $off + $len - $start ) );
-                                                               $start = $off + $len;
-                                                               $found = true;
-                                                               break;
-                                                       } else {
-                                                               // end of nested element
-                                                               $level -= 1;
-                                                       }
-                                               } else {
-                                                       // nested
-                                                       $level += 1;
-                                               }
-                                               $offset = $endMatches[0][1] + strlen( $endMatches[0][0] );
-                                       }
-                                       if ( ! $found ) {
-                                               // couldn't find appropriate closing tag, skip
-                                               $this->splitAndAdd( $textExt, $count, substr( $text, $start, strlen( $matches[0][0] ) ) );
-                                               $start += strlen( $matches[0][0] );
-                                       }
-                                       continue;
-                               }
-                       }
-                       // else: add as text extract
-                       $this->splitAndAdd( $textExt, $count, substr( $text, $start ) );
-                       break;
-               }
-
-               $all = $textExt + $otherExt; // these have disjunct key sets
-
-               wfProfileOut( "$fname-split" );
-
-               // prepare regexps
-               foreach ( $terms as $index => $term ) {
-                       // manually do upper/lowercase stuff for utf-8 since PHP won't do it
-                       if ( preg_match( '/[\x80-\xff]/', $term ) ) {
-                               $terms[$index] = preg_replace_callback( '/./us', array( $this, 'caseCallback' ), $terms[$index] );
-                       } else {
-                               $terms[$index] = $term;
-                       }
-               }
-               $anyterm = implode( '|', $terms );
-               $phrase = implode( "$wgSearchHighlightBoundaries+", $terms );
-
-               // @todo FIXME: A hack to scale contextchars, a correct solution
-               // would be to have contextchars actually be char and not byte
-               // length, and do proper utf-8 substrings and lengths everywhere,
-               // but PHP is making that very hard and unclean to implement :(
-               $scale = strlen( $anyterm ) / mb_strlen( $anyterm );
-               $contextchars = intval( $contextchars * $scale );
-
-               $patPre = "(^|$wgSearchHighlightBoundaries)";
-               $patPost = "($wgSearchHighlightBoundaries|$)";
-
-               $pat1 = "/(" . $phrase . ")/ui";
-               $pat2 = "/$patPre(" . $anyterm . ")$patPost/ui";
-
-               wfProfileIn( "$fname-extract" );
-
-               $left = $contextlines;
-
-               $snippets = array();
-               $offsets = array();
-
-               // show beginning only if it contains all words
-               $first = 0;
-               $firstText = '';
-               foreach ( $textExt as $index => $line ) {
-                       if ( strlen( $line ) > 0 && $line[0] != ';' && $line[0] != ':' ) {
-                               $firstText = $this->extract( $line, 0, $contextchars * $contextlines );
-                               $first = $index;
-                               break;
-                       }
-               }
-               if ( $firstText ) {
-                       $succ = true;
-                       // check if first text contains all terms
-                       foreach ( $terms as $term ) {
-                               if ( ! preg_match( "/$patPre" . $term . "$patPost/ui", $firstText ) ) {
-                                       $succ = false;
-                                       break;
-                               }
-                       }
-                       if ( $succ ) {
-                               $snippets[$first] = $firstText;
-                               $offsets[$first] = 0;
-                       }
-               }
-               if ( ! $snippets ) {
-                       // match whole query on text
-                       $this->process( $pat1, $textExt, $left, $contextchars, $snippets, $offsets );
-                       // match whole query on templates/tables/images
-                       $this->process( $pat1, $otherExt, $left, $contextchars, $snippets, $offsets );
-                       // match any words on text
-                       $this->process( $pat2, $textExt, $left, $contextchars, $snippets, $offsets );
-                       // match any words on templates/tables/images
-                       $this->process( $pat2, $otherExt, $left, $contextchars, $snippets, $offsets );
-
-                       ksort( $snippets );
-               }
-
-               // add extra chars to each snippet to make snippets constant size
-               $extended = array();
-               if ( count( $snippets ) == 0 ) {
-                       // couldn't find the target words, just show beginning of article
-                       if ( array_key_exists( $first, $all ) ) {
-                               $targetchars = $contextchars * $contextlines;
-                               $snippets[$first] = '';
-                               $offsets[$first] = 0;
-                       }
-               } else {
-                       // if begin of the article contains the whole phrase, show only that !!
-                       if ( array_key_exists( $first, $snippets ) && preg_match( $pat1, $snippets[$first] )
-                               && $offsets[$first] < $contextchars * 2 ) {
-                               $snippets = array( $first => $snippets[$first] );
-                       }
-
-                       // calc by how much to extend existing snippets
-                       $targetchars = intval( ( $contextchars * $contextlines ) / count ( $snippets ) );
-               }
-
-               foreach ( $snippets as $index => $line ) {
-                       $extended[$index] = $line;
-                       $len = strlen( $line );
-                       if ( $len < $targetchars - 20 ) {
-                               // complete this line
-                               if ( $len < strlen( $all[$index] ) ) {
-                                       $extended[$index] = $this->extract( $all[$index], $offsets[$index], $offsets[$index] + $targetchars, $offsets[$index] );
-                                       $len = strlen( $extended[$index] );
-                               }
-
-                               // add more lines
-                               $add = $index + 1;
-                               while ( $len < $targetchars - 20
-                                               && array_key_exists( $add, $all )
-                                               && !array_key_exists( $add, $snippets ) ) {
-                                       $offsets[$add] = 0;
-                                       $tt = "\n" . $this->extract( $all[$add], 0, $targetchars - $len, $offsets[$add] );
-                                       $extended[$add] = $tt;
-                                       $len += strlen( $tt );
-                                       $add++;
-                               }
-                       }
-               }
-
-               // $snippets = array_map( 'htmlspecialchars', $extended );
-               $snippets = $extended;
-               $last = - 1;
-               $extract = '';
-               foreach ( $snippets as $index => $line ) {
-                       if ( $last == - 1 ) {
-                               $extract .= $line; // first line
-                       } elseif ( $last + 1 == $index && $offsets[$last] + strlen( $snippets[$last] ) >= strlen( $all[$last] ) ) {
-                               $extract .= " " . $line; // continous lines
-                       } else {
-                               $extract .= '<b> ... </b>' . $line;
-                       }
-
-                       $last = $index;
-               }
-               if ( $extract ) {
-                       $extract .= '<b> ... </b>';
-               }
-
-               $processed = array();
-               foreach ( $terms as $term ) {
-                       if ( ! isset( $processed[$term] ) ) {
-                               $pat3 = "/$patPre(" . $term . ")$patPost/ui"; // highlight word
-                               $extract = preg_replace( $pat3,
-                                       "\\1<span class='searchmatch'>\\2</span>\\3", $extract );
-                               $processed[$term] = true;
-                       }
-               }
-
-               wfProfileOut( "$fname-extract" );
-
-               return $extract;
-       }
-
-       /**
-        * Split text into lines and add it to extracts array
-        *
-        * @param array $extracts index -> $line
-        * @param $count Integer
-        * @param $text String
-        */
-       function splitAndAdd( &$extracts, &$count, $text ) {
-               $split = explode( "\n", $this->mCleanWikitext ? $this->removeWiki( $text ) : $text );
-               foreach ( $split as $line ) {
-                       $tt = trim( $line );
-                       if ( $tt ) {
-                               $extracts[$count++] = $tt;
-                       }
-               }
-       }
-
-       /**
-        * Do manual case conversion for non-ascii chars
-        *
-        * @param $matches Array
-        * @return string
-        */
-       function caseCallback( $matches ) {
-               global $wgContLang;
-               if ( strlen( $matches[0] ) > 1 ) {
-                       return '[' . $wgContLang->lc( $matches[0] ) . $wgContLang->uc( $matches[0] ) . ']';
-               } else {
-                       return $matches[0];
-               }
-       }
-
-       /**
-        * Extract part of the text from start to end, but by
-        * not chopping up words
-        * @param $text String
-        * @param $start Integer
-        * @param $end Integer
-        * @param $posStart Integer: (out) actual start position
-        * @param $posEnd Integer: (out) actual end position
-        * @return String
-        */
-       function extract( $text, $start, $end, &$posStart = null, &$posEnd = null ) {
-               if ( $start != 0 ) {
-                       $start = $this->position( $text, $start, 1 );
-               }
-               if ( $end >= strlen( $text ) ) {
-                       $end = strlen( $text );
-               } else {
-                       $end = $this->position( $text, $end );
-               }
-
-               if ( !is_null( $posStart ) ) {
-                       $posStart = $start;
-               }
-               if ( !is_null( $posEnd ) ) {
-                       $posEnd = $end;
-               }
-
-               if ( $end > $start ) {
-                       return substr( $text, $start, $end - $start );
-               } else {
-                       return '';
-               }
-       }
-
-       /**
-        * Find a nonletter near a point (index) in the text
-        *
-        * @param $text String
-        * @param $point Integer
-        * @param $offset Integer: offset to found index
-        * @return Integer: nearest nonletter index, or beginning of utf8 char if none
-        */
-       function position( $text, $point, $offset = 0 ) {
-               $tolerance = 10;
-               $s = max( 0, $point - $tolerance );
-               $l = min( strlen( $text ), $point + $tolerance ) - $s;
-               $m = array();
-               if ( preg_match( '/[ ,.!?~!@#$%^&*\(\)+=\-\\\|\[\]"\'<>]/', substr( $text, $s, $l ), $m, PREG_OFFSET_CAPTURE ) ) {
-                       return $m[0][1] + $s + $offset;
-               } else {
-                       // check if point is on a valid first UTF8 char
-                       $char = ord( $text[$point] );
-                       while ( $char >= 0x80 && $char < 0xc0 ) {
-                               // skip trailing bytes
-                               $point++;
-                               if ( $point >= strlen( $text ) ) {
-                                       return strlen( $text );
-                               }
-                               $char = ord( $text[$point] );
-                       }
-                       return $point;
-
-               }
-       }
-
-       /**
-        * Search extracts for a pattern, and return snippets
-        *
-        * @param string $pattern regexp for matching lines
-        * @param array $extracts extracts to search
-        * @param $linesleft Integer: number of extracts to make
-        * @param $contextchars Integer: length of snippet
-        * @param array $out map for highlighted snippets
-        * @param array $offsets map of starting points of snippets
-        * @protected
-        */
-       function process( $pattern, $extracts, &$linesleft, &$contextchars, &$out, &$offsets ) {
-               if ( $linesleft == 0 ) {
-                       return; // nothing to do
-               }
-               foreach ( $extracts as $index => $line ) {
-                       if ( array_key_exists( $index, $out ) ) {
-                               continue; // this line already highlighted
-                       }
-
-                       $m = array();
-                       if ( !preg_match( $pattern, $line, $m, PREG_OFFSET_CAPTURE ) ) {
-                               continue;
-                       }
-
-                       $offset = $m[0][1];
-                       $len = strlen( $m[0][0] );
-                       if ( $offset + $len < $contextchars ) {
-                               $begin = 0;
-                       } elseif ( $len > $contextchars ) {
-                               $begin = $offset;
-                       } else {
-                               $begin = $offset + intval( ( $len - $contextchars ) / 2 );
-                       }
-
-                       $end = $begin + $contextchars;
-
-                       $posBegin = $begin;
-                       // basic snippet from this line
-                       $out[$index] = $this->extract( $line, $begin, $end, $posBegin );
-                       $offsets[$index] = $posBegin;
-                       $linesleft--;
-                       if ( $linesleft == 0 ) {
-                               return;
-                       }
-               }
-       }
-
-       /**
-        * Basic wikitext removal
-        * @protected
-        * @return mixed
-        */
-       function removeWiki( $text ) {
-               $fname = __METHOD__;
-               wfProfileIn( $fname );
-
-               // $text = preg_replace( "/'{2,5}/", "", $text );
-               // $text = preg_replace( "/\[[a-z]+:\/\/[^ ]+ ([^]]+)\]/", "\\2", $text );
-               // $text = preg_replace( "/\[\[([^]|]+)\]\]/", "\\1", $text );
-               // $text = preg_replace( "/\[\[([^]]+\|)?([^|]]+)\]\]/", "\\2", $text );
-               // $text = preg_replace( "/\\{\\|(.*?)\\|\\}/", "", $text );
-               // $text = preg_replace( "/\\[\\[[A-Za-z_-]+:([^|]+?)\\]\\]/", "", $text );
-               $text = preg_replace( "/\\{\\{([^|]+?)\\}\\}/", "", $text );
-               $text = preg_replace( "/\\{\\{([^|]+\\|)(.*?)\\}\\}/", "\\2", $text );
-               $text = preg_replace( "/\\[\\[([^|]+?)\\]\\]/", "\\1", $text );
-               $text = preg_replace_callback( "/\\[\\[([^|]+\\|)(.*?)\\]\\]/", array( $this, 'linkReplace' ), $text );
-               // $text = preg_replace("/\\[\\[([^|]+\\|)(.*?)\\]\\]/", "\\2", $text);
-               $text = preg_replace( "/<\/?[^>]+>/", "", $text );
-               $text = preg_replace( "/'''''/", "", $text );
-               $text = preg_replace( "/('''|<\/?[iIuUbB]>)/", "", $text );
-               $text = preg_replace( "/''/", "", $text );
-
-               wfProfileOut( $fname );
-               return $text;
-       }
-
-       /**
-        * callback to replace [[target|caption]] kind of links, if
-        * the target is category or image, leave it
-        *
-        * @param $matches Array
-        */
-       function linkReplace( $matches ) {
-               $colon = strpos( $matches[1], ':' );
-               if ( $colon === false ) {
-                       return $matches[2]; // replace with caption
-               }
-               global $wgContLang;
-               $ns = substr( $matches[1], 0, $colon );
-               $index = $wgContLang->getNsIndex( $ns );
-               if ( $index !== false && ( $index == NS_FILE || $index == NS_CATEGORY ) ) {
-                       return $matches[0]; // return the whole thing
-               } else {
-                       return $matches[2];
-               }
-       }
-
-       /**
-        * Simple & fast snippet extraction, but gives completely unrelevant
-        * snippets
-        *
-        * @param $text String
-        * @param $terms Array
-        * @param $contextlines Integer
-        * @param $contextchars Integer
-        * @return String
-        */
-       public function highlightSimple( $text, $terms, $contextlines, $contextchars ) {
-               global $wgContLang;
-               $fname = __METHOD__;
-
-               $lines = explode( "\n", $text );
-
-               $terms = implode( '|', $terms );
-               $max = intval( $contextchars ) + 1;
-               $pat1 = "/(.*)($terms)(.{0,$max})/i";
-
-               $lineno = 0;
-
-               $extract = "";
-               wfProfileIn( "$fname-extract" );
-               foreach ( $lines as $line ) {
-                       if ( 0 == $contextlines ) {
-                               break;
-                       }
-                       ++$lineno;
-                       $m = array();
-                       if ( ! preg_match( $pat1, $line, $m ) ) {
-                               continue;
-                       }
-                       --$contextlines;
-                       // truncate function changes ... to relevant i18n message.
-                       $pre = $wgContLang->truncate( $m[1], - $contextchars, '...', false );
-
-                       if ( count( $m ) < 3 ) {
-                               $post = '';
-                       } else {
-                               $post = $wgContLang->truncate( $m[3], $contextchars, '...', false );
-                       }
-
-                       $found = $m[2];
-
-                       $line = htmlspecialchars( $pre . $found . $post );
-                       $pat2 = '/(' . $terms . ")/i";
-                       $line = preg_replace( $pat2, "<span class='searchmatch'>\\1</span>", $line );
-
-                       $extract .= "${line}\n";
-               }
-               wfProfileOut( "$fname-extract" );
-
-               return $extract;
-       }
-
-}
-
 /**
  * Dummy class to be used when non-supported Database engine is present.
  * @todo FIXME: Dummy class should probably try something at least mildly useful,
diff --git a/includes/search/SearchHighlighter.php b/includes/search/SearchHighlighter.php
new file mode 100644 (file)
index 0000000..4c8aea5
--- /dev/null
@@ -0,0 +1,534 @@
+<?php
+/**
+ * Basic search engine highlighting
+ *
+ * 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 Search
+ */
+
+/**
+ * Highlight bits of wikitext
+ *
+ * @ingroup Search
+ */
+class SearchHighlighter {
+       var $mCleanWikitext = true;
+
+       function __construct( $cleanupWikitext = true ) {
+               $this->mCleanWikitext = $cleanupWikitext;
+       }
+
+       /**
+        * Default implementation of wikitext highlighting
+        *
+        * @param $text String
+        * @param array $terms terms to highlight (unescaped)
+        * @param $contextlines Integer
+        * @param $contextchars Integer
+        * @return String
+        */
+       public function highlightText( $text, $terms, $contextlines, $contextchars ) {
+               global $wgContLang;
+               global $wgSearchHighlightBoundaries;
+               $fname = __METHOD__;
+
+               if ( $text == '' ) {
+                       return '';
+               }
+
+               // spli text into text + templates/links/tables
+               $spat = "/(\\{\\{)|(\\[\\[[^\\]:]+:)|(\n\\{\\|)";
+               // first capture group is for detecting nested templates/links/tables/references
+               $endPatterns = array(
+                       1 => '/(\{\{)|(\}\})/', // template
+                       2 => '/(\[\[)|(\]\])/', // image
+                       3 => "/(\n\\{\\|)|(\n\\|\\})/" ); // table
+
+               // @todo FIXME: This should prolly be a hook or something
+               if ( function_exists( 'wfCite' ) ) {
+                       $spat .= '|(<ref>)'; // references via cite extension
+                       $endPatterns[4] = '/(<ref>)|(<\/ref>)/';
+               }
+               $spat .= '/';
+               $textExt = array(); // text extracts
+               $otherExt = array(); // other extracts
+               wfProfileIn( "$fname-split" );
+               $start = 0;
+               $textLen = strlen( $text );
+               $count = 0; // sequence number to maintain ordering
+               while ( $start < $textLen ) {
+                       // find start of template/image/table
+                       if ( preg_match( $spat, $text, $matches, PREG_OFFSET_CAPTURE, $start ) ) {
+                               $epat = '';
+                               foreach ( $matches as $key => $val ) {
+                                       if ( $key > 0 && $val[1] != - 1 ) {
+                                               if ( $key == 2 ) {
+                                                       // see if this is an image link
+                                                       $ns = substr( $val[0], 2, - 1 );
+                                                       if ( $wgContLang->getNsIndex( $ns ) != NS_FILE ) {
+                                                               break;
+                                                       }
+
+                                               }
+                                               $epat = $endPatterns[$key];
+                                               $this->splitAndAdd( $textExt, $count, substr( $text, $start, $val[1] - $start ) );
+                                               $start = $val[1];
+                                               break;
+                                       }
+                               }
+                               if ( $epat ) {
+                                       // find end (and detect any nested elements)
+                                       $level = 0;
+                                       $offset = $start + 1;
+                                       $found = false;
+                                       while ( preg_match( $epat, $text, $endMatches, PREG_OFFSET_CAPTURE, $offset ) ) {
+                                               if ( array_key_exists( 2, $endMatches ) ) {
+                                                       // found end
+                                                       if ( $level == 0 ) {
+                                                               $len = strlen( $endMatches[2][0] );
+                                                               $off = $endMatches[2][1];
+                                                               $this->splitAndAdd( $otherExt, $count,
+                                                                       substr( $text, $start, $off + $len - $start ) );
+                                                               $start = $off + $len;
+                                                               $found = true;
+                                                               break;
+                                                       } else {
+                                                               // end of nested element
+                                                               $level -= 1;
+                                                       }
+                                               } else {
+                                                       // nested
+                                                       $level += 1;
+                                               }
+                                               $offset = $endMatches[0][1] + strlen( $endMatches[0][0] );
+                                       }
+                                       if ( ! $found ) {
+                                               // couldn't find appropriate closing tag, skip
+                                               $this->splitAndAdd( $textExt, $count, substr( $text, $start, strlen( $matches[0][0] ) ) );
+                                               $start += strlen( $matches[0][0] );
+                                       }
+                                       continue;
+                               }
+                       }
+                       // else: add as text extract
+                       $this->splitAndAdd( $textExt, $count, substr( $text, $start ) );
+                       break;
+               }
+
+               $all = $textExt + $otherExt; // these have disjunct key sets
+
+               wfProfileOut( "$fname-split" );
+
+               // prepare regexps
+               foreach ( $terms as $index => $term ) {
+                       // manually do upper/lowercase stuff for utf-8 since PHP won't do it
+                       if ( preg_match( '/[\x80-\xff]/', $term ) ) {
+                               $terms[$index] = preg_replace_callback( '/./us', array( $this, 'caseCallback' ), $terms[$index] );
+                       } else {
+                               $terms[$index] = $term;
+                       }
+               }
+               $anyterm = implode( '|', $terms );
+               $phrase = implode( "$wgSearchHighlightBoundaries+", $terms );
+
+               // @todo FIXME: A hack to scale contextchars, a correct solution
+               // would be to have contextchars actually be char and not byte
+               // length, and do proper utf-8 substrings and lengths everywhere,
+               // but PHP is making that very hard and unclean to implement :(
+               $scale = strlen( $anyterm ) / mb_strlen( $anyterm );
+               $contextchars = intval( $contextchars * $scale );
+
+               $patPre = "(^|$wgSearchHighlightBoundaries)";
+               $patPost = "($wgSearchHighlightBoundaries|$)";
+
+               $pat1 = "/(" . $phrase . ")/ui";
+               $pat2 = "/$patPre(" . $anyterm . ")$patPost/ui";
+
+               wfProfileIn( "$fname-extract" );
+
+               $left = $contextlines;
+
+               $snippets = array();
+               $offsets = array();
+
+               // show beginning only if it contains all words
+               $first = 0;
+               $firstText = '';
+               foreach ( $textExt as $index => $line ) {
+                       if ( strlen( $line ) > 0 && $line[0] != ';' && $line[0] != ':' ) {
+                               $firstText = $this->extract( $line, 0, $contextchars * $contextlines );
+                               $first = $index;
+                               break;
+                       }
+               }
+               if ( $firstText ) {
+                       $succ = true;
+                       // check if first text contains all terms
+                       foreach ( $terms as $term ) {
+                               if ( ! preg_match( "/$patPre" . $term . "$patPost/ui", $firstText ) ) {
+                                       $succ = false;
+                                       break;
+                               }
+                       }
+                       if ( $succ ) {
+                               $snippets[$first] = $firstText;
+                               $offsets[$first] = 0;
+                       }
+               }
+               if ( ! $snippets ) {
+                       // match whole query on text
+                       $this->process( $pat1, $textExt, $left, $contextchars, $snippets, $offsets );
+                       // match whole query on templates/tables/images
+                       $this->process( $pat1, $otherExt, $left, $contextchars, $snippets, $offsets );
+                       // match any words on text
+                       $this->process( $pat2, $textExt, $left, $contextchars, $snippets, $offsets );
+                       // match any words on templates/tables/images
+                       $this->process( $pat2, $otherExt, $left, $contextchars, $snippets, $offsets );
+
+                       ksort( $snippets );
+               }
+
+               // add extra chars to each snippet to make snippets constant size
+               $extended = array();
+               if ( count( $snippets ) == 0 ) {
+                       // couldn't find the target words, just show beginning of article
+                       if ( array_key_exists( $first, $all ) ) {
+                               $targetchars = $contextchars * $contextlines;
+                               $snippets[$first] = '';
+                               $offsets[$first] = 0;
+                       }
+               } else {
+                       // if begin of the article contains the whole phrase, show only that !!
+                       if ( array_key_exists( $first, $snippets ) && preg_match( $pat1, $snippets[$first] )
+                               && $offsets[$first] < $contextchars * 2 ) {
+                               $snippets = array( $first => $snippets[$first] );
+                       }
+
+                       // calc by how much to extend existing snippets
+                       $targetchars = intval( ( $contextchars * $contextlines ) / count ( $snippets ) );
+               }
+
+               foreach ( $snippets as $index => $line ) {
+                       $extended[$index] = $line;
+                       $len = strlen( $line );
+                       if ( $len < $targetchars - 20 ) {
+                               // complete this line
+                               if ( $len < strlen( $all[$index] ) ) {
+                                       $extended[$index] = $this->extract( $all[$index], $offsets[$index], $offsets[$index] + $targetchars, $offsets[$index] );
+                                       $len = strlen( $extended[$index] );
+                               }
+
+                               // add more lines
+                               $add = $index + 1;
+                               while ( $len < $targetchars - 20
+                                               && array_key_exists( $add, $all )
+                                               && !array_key_exists( $add, $snippets ) ) {
+                                       $offsets[$add] = 0;
+                                       $tt = "\n" . $this->extract( $all[$add], 0, $targetchars - $len, $offsets[$add] );
+                                       $extended[$add] = $tt;
+                                       $len += strlen( $tt );
+                                       $add++;
+                               }
+                       }
+               }
+
+               // $snippets = array_map( 'htmlspecialchars', $extended );
+               $snippets = $extended;
+               $last = - 1;
+               $extract = '';
+               foreach ( $snippets as $index => $line ) {
+                       if ( $last == - 1 ) {
+                               $extract .= $line; // first line
+                       } elseif ( $last + 1 == $index && $offsets[$last] + strlen( $snippets[$last] ) >= strlen( $all[$last] ) ) {
+                               $extract .= " " . $line; // continous lines
+                       } else {
+                               $extract .= '<b> ... </b>' . $line;
+                       }
+
+                       $last = $index;
+               }
+               if ( $extract ) {
+                       $extract .= '<b> ... </b>';
+               }
+
+               $processed = array();
+               foreach ( $terms as $term ) {
+                       if ( ! isset( $processed[$term] ) ) {
+                               $pat3 = "/$patPre(" . $term . ")$patPost/ui"; // highlight word
+                               $extract = preg_replace( $pat3,
+                                       "\\1<span class='searchmatch'>\\2</span>\\3", $extract );
+                               $processed[$term] = true;
+                       }
+               }
+
+               wfProfileOut( "$fname-extract" );
+
+               return $extract;
+       }
+
+       /**
+        * Split text into lines and add it to extracts array
+        *
+        * @param array $extracts index -> $line
+        * @param $count Integer
+        * @param $text String
+        */
+       function splitAndAdd( &$extracts, &$count, $text ) {
+               $split = explode( "\n", $this->mCleanWikitext ? $this->removeWiki( $text ) : $text );
+               foreach ( $split as $line ) {
+                       $tt = trim( $line );
+                       if ( $tt ) {
+                               $extracts[$count++] = $tt;
+                       }
+               }
+       }
+
+       /**
+        * Do manual case conversion for non-ascii chars
+        *
+        * @param $matches Array
+        * @return string
+        */
+       function caseCallback( $matches ) {
+               global $wgContLang;
+               if ( strlen( $matches[0] ) > 1 ) {
+                       return '[' . $wgContLang->lc( $matches[0] ) . $wgContLang->uc( $matches[0] ) . ']';
+               } else {
+                       return $matches[0];
+               }
+       }
+
+       /**
+        * Extract part of the text from start to end, but by
+        * not chopping up words
+        * @param $text String
+        * @param $start Integer
+        * @param $end Integer
+        * @param $posStart Integer: (out) actual start position
+        * @param $posEnd Integer: (out) actual end position
+        * @return String
+        */
+       function extract( $text, $start, $end, &$posStart = null, &$posEnd = null ) {
+               if ( $start != 0 ) {
+                       $start = $this->position( $text, $start, 1 );
+               }
+               if ( $end >= strlen( $text ) ) {
+                       $end = strlen( $text );
+               } else {
+                       $end = $this->position( $text, $end );
+               }
+
+               if ( !is_null( $posStart ) ) {
+                       $posStart = $start;
+               }
+               if ( !is_null( $posEnd ) ) {
+                       $posEnd = $end;
+               }
+
+               if ( $end > $start ) {
+                       return substr( $text, $start, $end - $start );
+               } else {
+                       return '';
+               }
+       }
+
+       /**
+        * Find a nonletter near a point (index) in the text
+        *
+        * @param $text String
+        * @param $point Integer
+        * @param $offset Integer: offset to found index
+        * @return Integer: nearest nonletter index, or beginning of utf8 char if none
+        */
+       function position( $text, $point, $offset = 0 ) {
+               $tolerance = 10;
+               $s = max( 0, $point - $tolerance );
+               $l = min( strlen( $text ), $point + $tolerance ) - $s;
+               $m = array();
+               if ( preg_match( '/[ ,.!?~!@#$%^&*\(\)+=\-\\\|\[\]"\'<>]/', substr( $text, $s, $l ), $m, PREG_OFFSET_CAPTURE ) ) {
+                       return $m[0][1] + $s + $offset;
+               } else {
+                       // check if point is on a valid first UTF8 char
+                       $char = ord( $text[$point] );
+                       while ( $char >= 0x80 && $char < 0xc0 ) {
+                               // skip trailing bytes
+                               $point++;
+                               if ( $point >= strlen( $text ) ) {
+                                       return strlen( $text );
+                               }
+                               $char = ord( $text[$point] );
+                       }
+                       return $point;
+
+               }
+       }
+
+       /**
+        * Search extracts for a pattern, and return snippets
+        *
+        * @param string $pattern regexp for matching lines
+        * @param array $extracts extracts to search
+        * @param $linesleft Integer: number of extracts to make
+        * @param $contextchars Integer: length of snippet
+        * @param array $out map for highlighted snippets
+        * @param array $offsets map of starting points of snippets
+        * @protected
+        */
+       function process( $pattern, $extracts, &$linesleft, &$contextchars, &$out, &$offsets ) {
+               if ( $linesleft == 0 ) {
+                       return; // nothing to do
+               }
+               foreach ( $extracts as $index => $line ) {
+                       if ( array_key_exists( $index, $out ) ) {
+                               continue; // this line already highlighted
+                       }
+
+                       $m = array();
+                       if ( !preg_match( $pattern, $line, $m, PREG_OFFSET_CAPTURE ) ) {
+                               continue;
+                       }
+
+                       $offset = $m[0][1];
+                       $len = strlen( $m[0][0] );
+                       if ( $offset + $len < $contextchars ) {
+                               $begin = 0;
+                       } elseif ( $len > $contextchars ) {
+                               $begin = $offset;
+                       } else {
+                               $begin = $offset + intval( ( $len - $contextchars ) / 2 );
+                       }
+
+                       $end = $begin + $contextchars;
+
+                       $posBegin = $begin;
+                       // basic snippet from this line
+                       $out[$index] = $this->extract( $line, $begin, $end, $posBegin );
+                       $offsets[$index] = $posBegin;
+                       $linesleft--;
+                       if ( $linesleft == 0 ) {
+                               return;
+                       }
+               }
+       }
+
+       /**
+        * Basic wikitext removal
+        * @protected
+        * @return mixed
+        */
+       function removeWiki( $text ) {
+               $fname = __METHOD__;
+               wfProfileIn( $fname );
+
+               // $text = preg_replace( "/'{2,5}/", "", $text );
+               // $text = preg_replace( "/\[[a-z]+:\/\/[^ ]+ ([^]]+)\]/", "\\2", $text );
+               // $text = preg_replace( "/\[\[([^]|]+)\]\]/", "\\1", $text );
+               // $text = preg_replace( "/\[\[([^]]+\|)?([^|]]+)\]\]/", "\\2", $text );
+               // $text = preg_replace( "/\\{\\|(.*?)\\|\\}/", "", $text );
+               // $text = preg_replace( "/\\[\\[[A-Za-z_-]+:([^|]+?)\\]\\]/", "", $text );
+               $text = preg_replace( "/\\{\\{([^|]+?)\\}\\}/", "", $text );
+               $text = preg_replace( "/\\{\\{([^|]+\\|)(.*?)\\}\\}/", "\\2", $text );
+               $text = preg_replace( "/\\[\\[([^|]+?)\\]\\]/", "\\1", $text );
+               $text = preg_replace_callback( "/\\[\\[([^|]+\\|)(.*?)\\]\\]/", array( $this, 'linkReplace' ), $text );
+               // $text = preg_replace("/\\[\\[([^|]+\\|)(.*?)\\]\\]/", "\\2", $text);
+               $text = preg_replace( "/<\/?[^>]+>/", "", $text );
+               $text = preg_replace( "/'''''/", "", $text );
+               $text = preg_replace( "/('''|<\/?[iIuUbB]>)/", "", $text );
+               $text = preg_replace( "/''/", "", $text );
+
+               wfProfileOut( $fname );
+               return $text;
+       }
+
+       /**
+        * callback to replace [[target|caption]] kind of links, if
+        * the target is category or image, leave it
+        *
+        * @param $matches Array
+        */
+       function linkReplace( $matches ) {
+               $colon = strpos( $matches[1], ':' );
+               if ( $colon === false ) {
+                       return $matches[2]; // replace with caption
+               }
+               global $wgContLang;
+               $ns = substr( $matches[1], 0, $colon );
+               $index = $wgContLang->getNsIndex( $ns );
+               if ( $index !== false && ( $index == NS_FILE || $index == NS_CATEGORY ) ) {
+                       return $matches[0]; // return the whole thing
+               } else {
+                       return $matches[2];
+               }
+       }
+
+       /**
+        * Simple & fast snippet extraction, but gives completely unrelevant
+        * snippets
+        *
+        * @param $text String
+        * @param $terms Array
+        * @param $contextlines Integer
+        * @param $contextchars Integer
+        * @return String
+        */
+       public function highlightSimple( $text, $terms, $contextlines, $contextchars ) {
+               global $wgContLang;
+               $fname = __METHOD__;
+
+               $lines = explode( "\n", $text );
+
+               $terms = implode( '|', $terms );
+               $max = intval( $contextchars ) + 1;
+               $pat1 = "/(.*)($terms)(.{0,$max})/i";
+
+               $lineno = 0;
+
+               $extract = "";
+               wfProfileIn( "$fname-extract" );
+               foreach ( $lines as $line ) {
+                       if ( 0 == $contextlines ) {
+                               break;
+                       }
+                       ++$lineno;
+                       $m = array();
+                       if ( ! preg_match( $pat1, $line, $m ) ) {
+                               continue;
+                       }
+                       --$contextlines;
+                       // truncate function changes ... to relevant i18n message.
+                       $pre = $wgContLang->truncate( $m[1], - $contextchars, '...', false );
+
+                       if ( count( $m ) < 3 ) {
+                               $post = '';
+                       } else {
+                               $post = $wgContLang->truncate( $m[3], $contextchars, '...', false );
+                       }
+
+                       $found = $m[2];
+
+                       $line = htmlspecialchars( $pre . $found . $post );
+                       $pat2 = '/(' . $terms . ")/i";
+                       $line = preg_replace( $pat2, "<span class='searchmatch'>\\1</span>", $line );
+
+                       $extract .= "${line}\n";
+               }
+               wfProfileOut( "$fname-extract" );
+
+               return $extract;
+       }
+}
index aec6a01..c3edf51 100644 (file)
@@ -3,7 +3,7 @@
  * MySQL search engine
  *
  * Copyright (C) 2004 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index cea17d2..2603161 100644 (file)
@@ -3,7 +3,7 @@
  * Oracle search engine
  *
  * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
@@ -230,6 +230,7 @@ class SearchOracle extends SearchDatabase {
                $t = preg_replace( '/([-&|])/', '\\\\$1', $t );
                return $t;
        }
+
        /**
         * Create or update the search index record for the given page.
         * Title and text should be pre-processed.
index c9f5466..142e5fd 100644 (file)
@@ -3,7 +3,7 @@
  * PostgreSQL search engine
  *
  * Copyright © 2006-2007 Greg Sabino Mullane <greg@turnstep.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
@@ -140,8 +140,8 @@ class SearchPostgres extends SearchDatabase {
                $searchstring = $this->parseQuery( $term );
 
                ## We need a separate query here so gin does not complain about empty searches
-               $SQL = "SELECT to_tsquery($searchstring)";
-               $res = $this->db->query( $SQL );
+               $sql = "SELECT to_tsquery($searchstring)";
+               $res = $this->db->query( $sql );
                if ( !$res ) {
                        ## TODO: Better output (example to catch: one 'two)
                        die( "Sorry, that was not a valid search string. Please go back and try again" );
@@ -196,10 +196,10 @@ class SearchPostgres extends SearchDatabase {
 
        function update( $pageid, $title, $text ) {
                ## We don't want to index older revisions
-               $SQL = "UPDATE pagecontent SET textvector = NULL WHERE old_id IN " .
+               $sql = "UPDATE pagecontent SET textvector = NULL WHERE old_id IN " .
                                "(SELECT rev_text_id FROM revision WHERE rev_page = " . intval( $pageid ) .
                                " ORDER BY rev_text_id DESC OFFSET 1)";
-               $this->db->query( $SQL );
+               $this->db->query( $sql );
                return true;
        }
 
@@ -217,6 +217,7 @@ class PostgresSearchResult extends SearchResult {
                parent::__construct( $row );
                $this->score = $row->score;
        }
+
        function getScore() {
                return $this->score;
        }
diff --git a/includes/search/SearchResult.php b/includes/search/SearchResult.php
new file mode 100644 (file)
index 0000000..153590a
--- /dev/null
@@ -0,0 +1,274 @@
+<?php
+/**
+ * Search engine result
+ *
+ * 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 Search
+ */
+
+/**
+ * @todo FIXME: This class is horribly factored. It would probably be better to
+ * have a useful base class to which you pass some standard information, then
+ * let the fancy self-highlighters extend that.
+ * @ingroup Search
+ */
+class SearchResult {
+
+       /**
+        * @var Revision
+        */
+       protected $mRevision = null;
+
+       /**
+        * @var File
+        */
+       protected $mImage = null;
+
+       /**
+        * @var Title
+        */
+       protected $mTitle;
+
+       /**
+        * @var String
+        */
+       protected $mText;
+
+       /**
+        * Return a new SearchResult and initializes it with a title.
+        *
+        * @param $title Title
+        * @return SearchResult
+        */
+       public static function newFromTitle( $title ) {
+               $result = new self();
+               $result->initFromTitle( $title );
+               return $result;
+       }
+
+       /**
+        * Return a new SearchResult and initializes it with a row.
+        *
+        * @param $row object
+        * @return SearchResult
+        */
+       public static function newFromRow( $row ) {
+               $result = new self();
+               $result->initFromRow( $row );
+               return $result;
+       }
+
+       public function __construct( $row = null ) {
+               if ( !is_null( $row ) ) {
+                       // Backwards compatibility with pre-1.17 callers
+                       $this->initFromRow( $row );
+               }
+       }
+
+       /**
+        * Initialize from a database row. Makes a Title and passes that to
+        * initFromTitle.
+        *
+        * @param $row object
+        */
+       protected function initFromRow( $row ) {
+               $this->initFromTitle( Title::makeTitle( $row->page_namespace, $row->page_title ) );
+       }
+
+       /**
+        * Initialize from a Title and if possible initializes a corresponding
+        * Revision and File.
+        *
+        * @param $title Title
+        */
+       protected function initFromTitle( $title ) {
+               $this->mTitle = $title;
+               if ( !is_null( $this->mTitle ) ) {
+                       $id = false;
+                       wfRunHooks( 'SearchResultInitFromTitle', array( $title, &$id ) );
+                       $this->mRevision = Revision::newFromTitle(
+                               $this->mTitle, $id, Revision::READ_NORMAL );
+                       if ( $this->mTitle->getNamespace() === NS_FILE ) {
+                               $this->mImage = wfFindFile( $this->mTitle );
+                       }
+               }
+       }
+
+       /**
+        * Check if this is result points to an invalid title
+        *
+        * @return Boolean
+        */
+       function isBrokenTitle() {
+               return is_null( $this->mTitle );
+       }
+
+       /**
+        * Check if target page is missing, happens when index is out of date
+        *
+        * @return Boolean
+        */
+       function isMissingRevision() {
+               return !$this->mRevision && !$this->mImage;
+       }
+
+       /**
+        * @return Title
+        */
+       function getTitle() {
+               return $this->mTitle;
+       }
+
+       /**
+        * Get the file for this page, if one exists
+        * @return File|null
+        */
+       function getFile() {
+               return $this->mImage;
+       }
+
+       /**
+        * @return float|null if not supported
+        */
+       function getScore() {
+               return null;
+       }
+
+       /**
+        * Lazy initialization of article text from DB
+        */
+       protected function initText() {
+               if ( !isset( $this->mText ) ) {
+                       if ( $this->mRevision != null ) {
+                               $this->mText = SearchEngine::create()
+                                       ->getTextFromContent( $this->mTitle, $this->mRevision->getContent() );
+                       } else { // TODO: can we fetch raw wikitext for commons images?
+                               $this->mText = '';
+                       }
+               }
+       }
+
+       /**
+        * @param array $terms terms to highlight
+        * @return String: highlighted text snippet, null (and not '') if not supported
+        */
+       function getTextSnippet( $terms ) {
+               global $wgAdvancedSearchHighlighting;
+               $this->initText();
+
+               // TODO: make highliter take a content object. Make ContentHandler a factory for SearchHighliter.
+               list( $contextlines, $contextchars ) = SearchEngine::userHighlightPrefs();
+               $h = new SearchHighlighter();
+               if ( $wgAdvancedSearchHighlighting ) {
+                       return $h->highlightText( $this->mText, $terms, $contextlines, $contextchars );
+               } else {
+                       return $h->highlightSimple( $this->mText, $terms, $contextlines, $contextchars );
+               }
+       }
+
+       /**
+        * @return String: highlighted title, '' if not supported
+        */
+       function getTitleSnippet() {
+               return '';
+       }
+
+       /**
+        * @return String: highlighted redirect name (redirect to this page), '' if none or not supported
+        */
+       function getRedirectSnippet() {
+               return '';
+       }
+
+       /**
+        * @return Title object for the redirect to this page, null if none or not supported
+        */
+       function getRedirectTitle() {
+               return null;
+       }
+
+       /**
+        * @return string highlighted relevant section name, null if none or not supported
+        */
+       function getSectionSnippet() {
+               return '';
+       }
+
+       /**
+        * @return Title object (pagename+fragment) for the section, null if none or not supported
+        */
+       function getSectionTitle() {
+               return null;
+       }
+
+       /**
+        * @return String: timestamp
+        */
+       function getTimestamp() {
+               if ( $this->mRevision ) {
+                       return $this->mRevision->getTimestamp();
+               } elseif ( $this->mImage ) {
+                       return $this->mImage->getTimestamp();
+               }
+               return '';
+       }
+
+       /**
+        * @return Integer: number of words
+        */
+       function getWordCount() {
+               $this->initText();
+               return str_word_count( $this->mText );
+       }
+
+       /**
+        * @return Integer: size in bytes
+        */
+       function getByteSize() {
+               $this->initText();
+               return strlen( $this->mText );
+       }
+
+       /**
+        * @return Boolean if hit has related articles
+        */
+       function hasRelated() {
+               return false;
+       }
+
+       /**
+        * @return String: interwiki prefix of the title (return iw even if title is broken)
+        */
+       function getInterwikiPrefix() {
+               return '';
+       }
+
+       /**
+        * @return string interwiki namespace of the title (since we likely can't resolve it locally)
+        */
+       function getInterwikiNamespaceText() {
+               return '';
+       }
+
+       /**
+        * Did this match file contents (eg: PDF/DJVU)?
+        */
+       function isFileMatch() {
+               return false;
+       }
+}
diff --git a/includes/search/SearchResultSet.php b/includes/search/SearchResultSet.php
new file mode 100644 (file)
index 0000000..e689389
--- /dev/null
@@ -0,0 +1,211 @@
+<?php
+/**
+ * Search result sets
+ *
+ * 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 Search
+ */
+
+/**
+ * @ingroup Search
+ */
+class SearchResultSet {
+       /**
+        * Fetch an array of regular expression fragments for matching
+        * the search terms as parsed by this engine in a text extract.
+        * STUB
+        *
+        * @return Array
+        */
+       function termMatches() {
+               return array();
+       }
+
+       function numRows() {
+               return 0;
+       }
+
+       /**
+        * Return true if results are included in this result set.
+        * STUB
+        *
+        * @return Boolean
+        */
+       function hasResults() {
+               return false;
+       }
+
+       /**
+        * Some search modes return a total hit count for the query
+        * in the entire article database. This may include pages
+        * in namespaces that would not be matched on the given
+        * settings.
+        *
+        * Return null if no total hits number is supported.
+        *
+        * @return Integer
+        */
+       function getTotalHits() {
+               return null;
+       }
+
+       /**
+        * Some search modes return a suggested alternate term if there are
+        * no exact hits. Returns true if there is one on this set.
+        *
+        * @return Boolean
+        */
+       function hasSuggestion() {
+               return false;
+       }
+
+       /**
+        * @return String: suggested query, null if none
+        */
+       function getSuggestionQuery() {
+               return null;
+       }
+
+       /**
+        * @return String: HTML highlighted suggested query, '' if none
+        */
+       function getSuggestionSnippet() {
+               return '';
+       }
+
+       /**
+        * Return a result set of hits on other (multiple) wikis associated with this one
+        *
+        * @return SearchResultSet
+        */
+       function getInterwikiResults() {
+               return null;
+       }
+
+       /**
+        * Check if there are results on other wikis
+        *
+        * @return Boolean
+        */
+       function hasInterwikiResults() {
+               return $this->getInterwikiResults() != null;
+       }
+
+       /**
+        * Fetches next search result, or false.
+        * STUB
+        *
+        * @return SearchResult
+        */
+       function next() {
+               return false;
+       }
+
+       /**
+        * Frees the result set, if applicable.
+        */
+       function free() {
+               // ...
+       }
+
+       /**
+        * Did the search contain search syntax?  If so, Special:Search won't offer
+        * the user a link to a create a page named by the search string because the
+        * name would contain the search syntax.
+        */
+       public function searchContainedSyntax() {
+               return false;
+       }
+}
+
+/**
+ * This class is used for different SQL-based search engines shipped with MediaWiki
+ * @ingroup Search
+ */
+class SqlSearchResultSet extends SearchResultSet {
+
+       protected $mResultSet;
+
+       function __construct( $resultSet, $terms ) {
+               $this->mResultSet = $resultSet;
+               $this->mTerms = $terms;
+       }
+
+       function termMatches() {
+               return $this->mTerms;
+       }
+
+       function numRows() {
+               if ( $this->mResultSet === false ) {
+                       return false;
+               }
+
+               return $this->mResultSet->numRows();
+       }
+
+       function next() {
+               if ( $this->mResultSet === false ) {
+                       return false;
+               }
+
+               $row = $this->mResultSet->fetchObject();
+               if ( $row === false ) {
+                       return false;
+               }
+
+               return SearchResult::newFromRow( $row );
+       }
+
+       function free() {
+               if ( $this->mResultSet === false ) {
+                       return false;
+               }
+
+               $this->mResultSet->free();
+       }
+}
+
+/**
+ * A SearchResultSet wrapper for SearchEngine::getNearMatch
+ */
+class SearchNearMatchResultSet extends SearchResultSet {
+       private $fetched = false;
+
+       /**
+        * @param $match mixed Title if matched, else null
+        */
+       public function __construct( $match ) {
+               $this->result = $match;
+       }
+
+       public function hasResult() {
+               return (bool)$this->result;
+       }
+
+       public function numRows() {
+               return $this->hasResults() ? 1 : 0;
+       }
+
+       public function next() {
+               if ( $this->fetched || !$this->result ) {
+                       return false;
+               }
+               $this->fetched = true;
+               return SearchResult::newFromTitle( $this->result );
+       }
+}
index b0d1f95..a7c196b 100644 (file)
@@ -46,6 +46,16 @@ class SiteList extends GenericArrayObject {
         */
        protected $byGlobalId = array();
 
+       /**
+        * Navigational site identifiers alias inter-language prefixes
+        * pointing to their sites offset value.
+        *
+        * @since 1.23
+        *
+        * @var array of string
+        */
+       protected $byNavigationId = array();
+
        /**
         * @see GenericArrayObject::getObjectType
         *
@@ -75,6 +85,11 @@ class SiteList extends GenericArrayObject {
                $this->byGlobalId[$site->getGlobalId()] = $index;
                $this->byInternalId[$site->getInternalId()] = $index;
 
+               $ids = $site->getNavigationIds();
+               foreach ( $ids as $navId ) {
+                       $this->byNavigationId[$navId] = $index;
+               }
+
                return true;
        }
 
@@ -94,6 +109,11 @@ class SiteList extends GenericArrayObject {
 
                        unset( $this->byGlobalId[$site->getGlobalId()] );
                        unset( $this->byInternalId[$site->getInternalId()] );
+
+                       $ids = $site->getNavigationIds();
+                       foreach ( $ids as $navId ) {
+                               unset( $this->byNavigationId[$navId] );
+                       }
                }
 
                parent::offsetUnset( $index );
@@ -196,6 +216,43 @@ class SiteList extends GenericArrayObject {
                $this->offsetUnset( $this->byInternalId[$id] );
        }
 
+       /**
+        * Returns if the list contains the site with the provided navigational site id.
+        *
+        * @param string $id
+        *
+        * @return boolean
+        */
+       public function hasNavigationId( $id ) {
+               return array_key_exists( $id, $this->byNavigationId );
+       }
+
+       /**
+        * Returns the Site with the provided navigational site id.
+        * The site needs to exist, so if not sure, call has first.
+        *
+        * @since 1.23
+        *
+        * @param string $id
+        *
+        * @return Site
+        */
+       public function getSiteByNavigationId( $id ) {
+               return $this->offsetGet( $this->byNavigationId[$id] );
+       }
+
+       /**
+        * Removes the site with the specified navigational site id.
+        * The site needs to exist, so if not sure, call has first.
+        *
+        * @since 1.23
+        *
+        * @param string $id
+        */
+       public function removeSiteByNavigationId( $id ) {
+               $this->offsetUnset( $this->byNavigationId[$id] );
+       }
+
        /**
         * Sets a site in the list. If the site was not there,
         * it will be added. If it was, it will be updated.
@@ -240,7 +297,7 @@ class SiteList extends GenericArrayObject {
         * @var string A string uniquely identifying the version of the serialization structure,
         *             not including any sub-structures.
         */
-       const SERIAL_VERSION_ID = '2013-02-07';
+       const SERIAL_VERSION_ID = '2014-03-17';
 
        /**
         * Returns the version ID that identifies the serialization structure used by
@@ -270,6 +327,7 @@ class SiteList extends GenericArrayObject {
                        array(
                                'internalIds' => $this->byInternalId,
                                'globalIds' => $this->byGlobalId,
+                               'navigationIds' => $this->byNavigationId
                        )
                );
        }
@@ -288,6 +346,7 @@ class SiteList extends GenericArrayObject {
 
                $this->byInternalId = $serializationData['internalIds'];
                $this->byGlobalId = $serializationData['globalIds'];
+               $this->byNavigationId = $serializationData['navigationIds'];
 
                return $serializationData;
        }
index 4e2556c..888829a 100644 (file)
  * @ingroup SpecialPage
  */
 abstract class ChangesListSpecialPage extends SpecialPage {
-       var $rcSubpage, $rcOptions; // @todo Rename these, make protected
-       protected $customFilters;
+       /** @var string */
+       protected $rcSubpage;
 
-       /**
-        * The feed format to output as (either 'rss' or 'atom'), or null if no
-        * feed output was requested
-        *
-        * @var string $feedFormat
-        */
-       protected $feedFormat;
+       /** @var FormOptions */
+       protected $rcOptions;
+
+       /** @var array */
+       protected $customFilters;
 
        /**
         * Main execution point
@@ -46,19 +44,13 @@ abstract class ChangesListSpecialPage extends SpecialPage {
         */
        public function execute( $subpage ) {
                $this->rcSubpage = $subpage;
-               $this->feedFormat = $this->including() ? null : $this->getRequest()->getVal( 'feed' );
-               if ( $this->feedFormat !== 'atom' && $this->feedFormat !== 'rss' ) {
-                       $this->feedFormat = null;
-               }
 
                $this->setHeaders();
                $this->outputHeader();
                $this->addModules();
 
+               $rows = $this->getRows();
                $opts = $this->getOptions();
-               // Fetch results, prepare a batch link existence check query
-               $conds = $this->buildMainQueryConds( $opts );
-               $rows = $this->doMainQuery( $conds, $opts );
                if ( $rows === false ) {
                        if ( !$this->including() ) {
                                $this->doHeader( $opts );
@@ -67,26 +59,30 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                        return;
                }
 
-               if ( !$this->feedFormat ) {
-                       $batch = new LinkBatch;
-                       foreach ( $rows as $row ) {
-                               $batch->add( NS_USER, $row->rc_user_text );
-                               $batch->add( NS_USER_TALK, $row->rc_user_text );
-                               $batch->add( $row->rc_namespace, $row->rc_title );
-                       }
-                       $batch->execute();
-               }
-               if ( $this->feedFormat ) {
-                       list( $changesFeed, $formatter ) = $this->getFeedObject( $this->feedFormat );
-                       /** @var ChangesFeed $changesFeed */
-                       $changesFeed->execute( $formatter, $rows, $this->checkLastModified( $this->feedFormat ), $opts );
-               } else {
-                       $this->webOutput( $rows, $opts );
+               $batch = new LinkBatch;
+               foreach ( $rows as $row ) {
+                       $batch->add( NS_USER, $row->rc_user_text );
+                       $batch->add( NS_USER_TALK, $row->rc_user_text );
+                       $batch->add( $row->rc_namespace, $row->rc_title );
                }
+               $batch->execute();
+
+               $this->webOutput( $rows, $opts );
 
                $rows->free();
        }
 
+       /**
+        * Get the database result for this special page instance. Used by ApiFeedRecentChanges.
+        *
+        * @return bool|ResultWrapper Result or false
+        */
+       public function getRows() {
+               $opts = $this->getOptions();
+               $conds = $this->buildMainQueryConds( $opts );
+               return $this->doMainQuery( $conds, $opts );
+       }
+
        /**
         * Get the current FormOptions for this request
         *
@@ -461,30 +457,6 @@ abstract class ChangesListSpecialPage extends SpecialPage {
                $out->addModules( 'mediawiki.special.changeslist.legend.js' );
        }
 
-       /**
-        * Return an array with a ChangesFeed object and ChannelFeed object.
-        *
-        * This is intentionally not abstract not to require subclasses which don't
-        * use feeds functionality to implement it.
-        *
-        * @param string $feedFormat Feed's format (either 'rss' or 'atom')
-        * @return array
-        */
-       public function getFeedObject( $feedFormat ) {
-               throw new MWException( "Not implemented" );
-       }
-
-       /**
-        * Get last-modified date, for client caching. Not implemented by default
-        * (returns current time).
-        *
-        * @param string $feedFormat
-        * @return string|bool
-        */
-       public function checkLastModified( $feedFormat ) {
-               return wfTimestampNow();
-       }
-
        protected function getGroupName() {
                return 'changes';
        }
index e5ce48f..e824a61 100644 (file)
@@ -169,6 +169,7 @@ class SpecialPage {
        function isListed() {
                return $this->mListed;
        }
+
        /**
         * Set whether this page is listed in Special:Specialpages, at run-time
         * @since 1.3
@@ -178,6 +179,7 @@ class SpecialPage {
        function setListed( $listed ) {
                return wfSetVar( $this->mListed, $listed );
        }
+
        /**
         * Get or set whether this special page is listed in Special:SpecialPages
         * @since 1.6
@@ -348,7 +350,7 @@ class SpecialPage {
        function setHeaders() {
                $out = $this->getOutput();
                $out->setArticleRelated( false );
-               $out->setRobotPolicy( "noindex,nofollow" );
+               $out->setRobotPolicy( $this->getRobotPolicy() );
                $out->setPageTitle( $this->getDescription() );
        }
 
@@ -585,6 +587,17 @@ class SpecialPage {
                return $this->getContext()->getTitle();
        }
 
+       /**
+        * Return the robot policy. Derived classes that override this can change
+        * the robot policy set by setHeaders() from the default 'noindex,nofollow'.
+        *
+        * @return string
+        * @since 1.23
+        */
+       protected function getRobotPolicy() {
+               return 'noindex,nofollow';
+       }
+
        /**
         * Wrapper around wfMessage that sets the current context.
         *
index dea65f3..c4b840a 100644 (file)
@@ -50,28 +50,28 @@ class SpecialPageFactory {
        private static $list = array(
                // Maintenance Reports
                'BrokenRedirects'           => 'BrokenRedirectsPage',
-               'Deadendpages'              => 'DeadendpagesPage',
+               'Deadendpages'              => 'DeadendPagesPage',
                'DoubleRedirects'           => 'DoubleRedirectsPage',
-               'Longpages'                 => 'LongpagesPage',
-               'Ancientpages'              => 'AncientpagesPage',
-               'Lonelypages'               => 'LonelypagesPage',
+               'Longpages'                 => 'LongPagesPage',
+               'Ancientpages'              => 'AncientPagesPage',
+               'Lonelypages'               => 'LonelyPagesPage',
                'Fewestrevisions'           => 'FewestrevisionsPage',
-               'Withoutinterwiki'          => 'WithoutinterwikiPage',
+               'Withoutinterwiki'          => 'WithoutInterwikiPage',
                'Protectedpages'            => 'SpecialProtectedpages',
                'Protectedtitles'           => 'SpecialProtectedtitles',
                'Shortpages'                => 'ShortpagesPage',
-               'Uncategorizedcategories'   => 'UncategorizedcategoriesPage',
-               'Uncategorizedimages'       => 'UncategorizedimagesPage',
-               'Uncategorizedpages'        => 'UncategorizedpagesPage',
-               'Uncategorizedtemplates'    => 'UncategorizedtemplatesPage',
-               'Unusedcategories'          => 'UnusedcategoriesPage',
+               'Uncategorizedcategories'   => 'UncategorizedCategoriesPage',
+               'Uncategorizedimages'       => 'UncategorizedImagesPage',
+               'Uncategorizedpages'        => 'UncategorizedPagesPage',
+               'Uncategorizedtemplates'    => 'UncategorizedTemplatesPage',
+               'Unusedcategories'          => 'UnusedCategoriesPage',
                'Unusedimages'              => 'UnusedimagesPage',
                'Unusedtemplates'           => 'UnusedtemplatesPage',
                'Unwatchedpages'            => 'UnwatchedpagesPage',
-               'Wantedcategories'          => 'WantedcategoriesPage',
-               'Wantedfiles'               => 'WantedfilesPage',
-               'Wantedpages'               => 'WantedpagesPage',
-               'Wantedtemplates'           => 'WantedtemplatesPage',
+               'Wantedcategories'          => 'WantedCategoriesPage',
+               'Wantedfiles'               => 'WantedFilesPage',
+               'Wantedpages'               => 'WantedPagesPage',
+               'Wantedtemplates'           => 'WantedTemplatesPage',
 
                // List of pages
                'Allpages'                  => 'SpecialAllpages',
@@ -117,6 +117,7 @@ class SpecialPageFactory {
                'FileDuplicateSearch'       => 'FileDuplicateSearchPage',
                'Upload'                    => 'SpecialUpload',
                'UploadStash'               => 'SpecialUploadStash',
+               'ListDuplicatedFiles'       => 'ListDuplicatedFilesPage',
 
                // Data and tools
                'Statistics'                => 'SpecialStatistics',
@@ -127,7 +128,7 @@ class SpecialPageFactory {
 
                // Redirecting special pages
                'LinkSearch'                => 'LinkSearchPage',
-               'Randompage'                => 'Randompage',
+               'Randompage'                => 'RandomPage',
                'RandomInCategory'          => 'SpecialRandomInCategory',
                'Randomredirect'            => 'SpecialRandomredirect',
 
@@ -145,7 +146,7 @@ class SpecialPageFactory {
                'Export'                    => 'SpecialExport',
                'Import'                    => 'SpecialImport',
                'Undelete'                  => 'SpecialUndelete',
-               'Whatlinkshere'             => 'SpecialWhatlinkshere',
+               'Whatlinkshere'             => 'SpecialWhatLinksHere',
                'MergeHistory'              => 'SpecialMergeHistory',
                'ExpandTemplates'           => 'SpecialExpandTemplates',
 
@@ -165,6 +166,7 @@ class SpecialPageFactory {
                'PermanentLink'             => 'SpecialPermanentLink',
                'Redirect'                  => 'SpecialRedirect',
                'Revisiondelete'            => 'SpecialRevisionDelete',
+               'RunJobs'                   => 'SpecialRunJobs',
                'Specialpages'              => 'SpecialSpecialpages',
                'Userlogout'                => 'SpecialUserlogout',
        );
@@ -185,7 +187,7 @@ class SpecialPageFactory {
                        wfProfileIn( __METHOD__ );
 
                        if ( !$wgDisableCounters ) {
-                               self::$list['Popularpages'] = 'PopularpagesPage';
+                               self::$list['Popularpages'] = 'PopularPagesPage';
                        }
 
                        if ( !$wgDisableInternalSearch ) {
index 641c046..dd6bec2 100644 (file)
@@ -242,7 +242,7 @@ class SpecialActiveUsers extends SpecialPage {
                        array( 'activeusers-intro', $this->getLanguage()->formatNum( $wgActiveUserDays ) ) );
 
                // Occasionally merge in new updates
-               $seconds = self::mergeActiveUsers( 600 );
+               $seconds = min( self::mergeActiveUsers( 600 ), $wgActiveUserDays * 86400 );
                // Mention the level of staleness
                $out->addWikiMsg( 'cachedspecial-viewing-cached-ttl',
                        $this->getLanguage()->formatDuration( $seconds ) );
@@ -283,9 +283,15 @@ class SpecialActiveUsers extends SpecialPage {
                if ( !wfReadOnly() ) {
                        if ( !$cTime || ( time() - wfTimestamp( TS_UNIX, $cTime ) ) > $period ) {
                                $dbw = wfGetDB( DB_MASTER );
-                               self::doQueryCacheUpdate( $dbw, 2 * $period );
+                               if ( $dbw->estimateRowCount( 'recentchanges' ) <= 10000 ) {
+                                       $window = $wgActiveUserDays * 86400; // small wiki
+                               } else {
+                                       $window = $period * 2;
+                               }
+                               self::doQueryCacheUpdate( $dbw, $window );
                        }
                }
+
                return ( time() -
                        ( $cTime ? wfTimestamp( TS_UNIX, $cTime ) : $wgActiveUserDays * 86400 ) );
        }
@@ -378,7 +384,7 @@ class SpecialActiveUsers extends SpecialPage {
                        $newRows = array();
                        foreach ( $names as $name => $lastEditTime ) {
                                $newRows[] = array(
-                                       'qcc_type'  => 'activeusers',
+                                       'qcc_type' => 'activeusers',
                                        'qcc_namespace' => NS_USER,
                                        'qcc_title' => $name,
                                        'qcc_value' => wfTimestamp( TS_UNIX, $lastEditTime ),
index 71bb27a..6cef130 100644 (file)
@@ -352,7 +352,7 @@ class AllmessagesTablePager extends TablePager {
                                                'grouppath' => 'mediawiki',
                                                'query' => 'language:' . $this->getLanguage()->getCode() . '^25 ' .
                                                        'messageid:"MediaWiki:' . $value . '"^10 "' .
-                                                       $this->msg ( $value )->inLanguage ( 'en' )->plain() . '"'
+                                                       $this->msg( $value )->inLanguage( 'en' )->plain() . '"'
                                        ) ),
                                        $this->msg( 'allmessages-filter-translate' )->text()
                                );
index 1e2d557..97e7238 100644 (file)
@@ -216,6 +216,7 @@ class SpecialAllpages extends IncludableSpecialPage {
                // since generating it will cause a lot of scanning
                if ( $count > $this->maxTopLevelPages ) {
                        $this->showChunk( $namespace, $from, $to, $hideredirects );
+
                        return;
                }
 
index d19968f..79636b1 100644 (file)
@@ -125,6 +125,7 @@ class SpecialBookSources extends SpecialPage {
                $form .= '&#160;' . Xml::submitButton( $this->msg( 'booksources-go' )->text() ) . "</p>\n";
                $form .= Html::closeElement( 'form' ) . "\n";
                $form .= Html::closeElement( 'fieldset' ) . "\n";
+
                return $form;
        }
 
index 47f5b1e..0356d45 100644 (file)
@@ -141,7 +141,7 @@ class SpecialChangePassword extends FormSpecialPage {
                                ? 'resetpass-submit-loggedin'
                                : 'resetpass_submit'
                );
-               $form->addButton( 'wpCancel',  $this->msg( 'resetpass-submit-cancel' )->text() );
+               $form->addButton( 'wpCancel', $this->msg( 'resetpass-submit-cancel' )->text() );
                $form->setHeaderText( $this->msg( 'resetpass_text' )->parseAsBlock() );
                if ( $this->mPreTextMessage instanceof Message ) {
                        $form->addPreText( $this->mPreTextMessage->parseAsBlock() );
@@ -167,6 +167,7 @@ class SpecialChangePassword extends FormSpecialPage {
                        }
                        $query = $request->getVal( 'returntoquery' );
                        $this->getOutput()->redirect( $titleObj->getFullURL( $query ) );
+
                        return true;
                }
 
index 636e796..af4f852 100644 (file)
@@ -26,7 +26,6 @@
  *
  * @ingroup SpecialPage
  */
-
 class SpecialContributions extends IncludableSpecialPage {
        protected $opts;
 
@@ -66,6 +65,7 @@ class SpecialContributions extends IncludableSpecialPage {
                        if ( !$this->including() ) {
                                $out->addHTML( $this->getForm() );
                        }
+
                        return;
                }
 
@@ -323,6 +323,16 @@ class SpecialContributions extends IncludableSpecialPage {
                                array(),
                                array( 'page' => $userpage->getPrefixedText() )
                        );
+
+                       # Suppression log link (bug 59120)
+                       if ( $this->getUser()->isAllowed( 'suppressionlog' ) ) {
+                               $tools[] = Linker::linkKnown(
+                                       SpecialPage::getTitleFor( 'Log', 'suppress' ),
+                                       $this->msg( 'sp-contributions-suppresslog' )->escaped(),
+                                       array(),
+                                       array( 'offender' => $username )
+                               );
+                       }
                }
                # Uploads
                $tools[] = Linker::linkKnown(
index 63d4ec9..d781e6d 100644 (file)
@@ -27,7 +27,6 @@
  *
  * @ingroup SpecialPage
  */
-
 class SpecialCreateAccount extends SpecialRedirectToSpecial {
        function __construct() {
                parent::__construct( 'CreateAccount', 'Userlogin', 'signup', array( 'returnto', 'returntoquery', 'uselang' ) );
index d148a50..3115215 100644 (file)
@@ -276,7 +276,7 @@ class DeletedContribsPager extends IndexPager {
 class DeletedContributionsPage extends SpecialPage {
        function __construct() {
                parent::__construct( 'DeletedContributions', 'deletedhistory',
-               /*listed*/true, /*function*/false, /*file*/false );
+                       /*listed*/true, /*function*/false, /*file*/false );
        }
 
        /**
@@ -427,6 +427,15 @@ class DeletedContributionsPage extends SpecialPage {
                                                'page' => $nt->getPrefixedText()
                                        )
                                );
+                               # Suppression log link (bug 59120)
+                               if ( $this->getUser()->isAllowed( 'suppressionlog' ) ) {
+                                       $tools[] = Linker::linkKnown(
+                                               SpecialPage::getTitleFor( 'Log', 'suppress' ),
+                                               $this->msg( 'sp-contributions-suppresslog' )->escaped(),
+                                               array(),
+                                               array( 'offender' => $userObj->getName() )
+                                       );
+                               }
                        }
 
                        # Uploads
index 98d5fea..68e8703 100644 (file)
@@ -162,14 +162,14 @@ class SpecialEditWatchlist extends UnlistedSpecialPage {
                        }
 
                        if ( count( $toWatch ) > 0 ) {
-                               $this->successMessage .= ' ' . $this->msg( 'watchlistedit-raw-added'
-                               )->numParams( count( $toWatch ) )->parse();
+                               $this->successMessage .= ' ' . $this->msg( 'watchlistedit-raw-added' )
+                                       ->numParams( count( $toWatch ) )->parse();
                                $this->showTitles( $toWatch, $this->successMessage );
                        }
 
                        if ( count( $toUnwatch ) > 0 ) {
-                               $this->successMessage .= ' ' . $this->msg( 'watchlistedit-raw-removed'
-                               )->numParams( count( $toUnwatch ) )->parse();
+                               $this->successMessage .= ' ' . $this->msg( 'watchlistedit-raw-removed' )
+                                       ->numParams( count( $toUnwatch ) )->parse();
                                $this->showTitles( $toUnwatch, $this->successMessage );
                        }
                } else {
index 6695c82..c867f06 100644 (file)
@@ -143,7 +143,7 @@ class SpecialEmailUser extends UnlistedSpecialPage {
                        }
                        $out->addHTML( $this->userForm( $this->mTarget ) );
 
-                       return false;
+                       return;
                }
 
                $this->mTargetObj = $ret;
@@ -159,7 +159,7 @@ class SpecialEmailUser extends UnlistedSpecialPage {
                $form->loadData();
 
                if ( !wfRunHooks( 'EmailUserForm', array( &$form ) ) ) {
-                       return false;
+                       return;
                }
 
                $result = $form->show();
index 7241105..61925cf 100644 (file)
@@ -125,9 +125,7 @@ class SpecialExpandTemplates extends SpecialPage {
                        }
 
                        $this->showHtmlPreview( $title, $rawhtml, $out );
-
                }
-
        }
 
        /**
index e7ced52..eb1c139 100644 (file)
@@ -36,6 +36,7 @@ class SpecialFilepath extends RedirectSpecialPage {
        // implement by redirecting through Special:Redirect/file
        function getRedirect( $par ) {
                $file = $par ?: $this->getRequest()->getText( 'file' );
+
                return SpecialPage::getSafeTitleFor( 'Redirect', 'file/' . $file );
        }
 
index 2ac34eb..29722c8 100644 (file)
@@ -3,7 +3,7 @@
  * Implements Special:Import
  *
  * Copyright © 2003,2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
diff --git a/includes/specials/SpecialListDuplicatedFiles.php b/includes/specials/SpecialListDuplicatedFiles.php
new file mode 100644 (file)
index 0000000..9401fca
--- /dev/null
@@ -0,0 +1,112 @@
+<?php
+/**
+ * Implements Special:ListDuplicatedFiles
+ *
+ * Copyright © 2013 Brian Wolff
+ *
+ * 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
+ * @author Brian Wolff
+ */
+
+/**
+ * Special:ListDuplicatedFiles Lists all files where the current version is
+ *   a duplicate of the current version of some other file.
+ * @ingroup SpecialPage
+ */
+class ListDuplicatedFilesPage extends QueryPage {
+       function __construct( $name = 'ListDuplicatedFiles' ) {
+               parent::__construct( $name );
+       }
+
+       function isExpensive() {
+               return true;
+       }
+
+       function isSyndicated() {
+               return false;
+       }
+
+       /**
+        * Get all the duplicates by grouping on sha1s.
+        *
+        * A cheaper (but less useful) version of this
+        * query would be to not care how many duplicates a
+        * particular file has, and do a self-join on image table.
+        * However this version should be no more expensive then
+        * Special:MostLinked, which seems to get handled fine
+        * with however we are doing cached special pages.
+        */
+       function getQueryInfo() {
+               return array(
+                       'tables' => array( 'image' ),
+                       'fields' => array(
+                               'namespace' => NS_FILE,
+                               'title' => 'MIN(img_name)',
+                               'value' => 'count(*)'
+                       ),
+                       'options' => array(
+                               'GROUP BY' => 'img_sha1',
+                               'HAVING' => 'count(*) > 1',
+                       ),
+               );
+       }
+
+       /**
+        * Pre-fill the link cache
+        *
+        * @param DatabaseBase $db
+        * @param ResultWrapper $res
+        */
+       function preprocessResults( $db, $res ) {
+               if ( $res->numRows() > 0 ) {
+                       $linkBatch = new LinkBatch();
+
+                       foreach ( $res as $row ) {
+                               $linkBatch->add( $row->namespace, $row->title );
+                       }
+
+                       $res->seek( 0 );
+                       $linkBatch->execute();
+               }
+       }
+
+
+       /**
+        * @param Skin $skin
+        * @param object $result Result row
+        * @return string
+        */
+       function formatResult( $skin, $result ) {
+               // Future version might include a list of the first 5 duplicates
+               // perhaps separated by an "↔".
+               $image1 = Title::makeTitle( $result->namespace, $result->title );
+               $dupeSearch = SpecialPage::getTitleFor( 'FileDuplicateSearch', $image1->getDBKey() );
+
+               $msg = wfMessage( 'listduplicatedfiles-entry' )
+                       ->params( $image1->getText() )
+                       ->numParams( $result->value - 1 )
+                       ->params( $dupeSearch->getPrefixedDBKey() );
+
+               return $msg->parse();
+       }
+
+       protected function getGroupName() {
+               return 'media';
+       }
+}
index ba3e73f..9f0d127 100644 (file)
@@ -129,7 +129,7 @@ class ImageListPager extends TablePager {
                $conds = array();
 
                if ( !is_null( $this->mUserName ) ) {
-                       $conds[ $prefix . '_user_text' ] = $this->mUserName;
+                       $conds[$prefix . '_user_text'] = $this->mUserName;
                }
 
                if ( $this->mSearch !== '' ) {
@@ -215,6 +215,7 @@ class ImageListPager extends TablePager {
                // for two different tables, without reimplementing
                // the pager class.
                $qi = $this->getQueryInfoReal( $this->mTableName );
+
                return $qi;
        }
 
@@ -338,7 +339,7 @@ class ImageListPager extends TablePager {
                $topRes2 = $res2->next();
                $resultArray = array();
                for ( $i = 0; $i < $limit && $topRes1 && $topRes2; $i++ ) {
-                       if ( strcmp( $topRes1->{ $this->mIndexField }, $topRes2->{ $this->mIndexField } ) > 0 ) {
+                       if ( strcmp( $topRes1->{$this->mIndexField}, $topRes2->{$this->mIndexField} ) > 0 ) {
                                if ( !$ascending ) {
                                        $resultArray[] = $topRes1;
                                        $topRes1 = $res1->next();
@@ -364,6 +365,7 @@ class ImageListPager extends TablePager {
                        $resultArray[] = $topRes2;
                        $topRes2 = $res2->next();
                }
+
                return new FakeResultWrapper( $resultArray );
        }
 
@@ -409,6 +411,7 @@ class ImageListPager extends TablePager {
                                // If statement for paranoia
                                if ( $file ) {
                                        $thumb = $file->transform( array( 'width' => 180, 'height' => 360 ) );
+
                                        return $thumb->toHtml( array( 'desc-link' => true ) );
                                } else {
                                        return htmlspecialchars( $value );
@@ -493,6 +496,7 @@ class ImageListPager extends TablePager {
                        'checked' => $this->mShowAll,
                        'tabindex' => 4,
                ) );
+
                return Html::openElement( 'form',
                        array( 'method' => 'get', 'action' => $wgScript, 'id' => 'mw-listfiles-form' )
                ) .
index dd78c4c..50af915 100644 (file)
@@ -84,6 +84,7 @@ class MIMEsearchPage extends QueryPage {
                                ),
                        ),
                );
+
                return $qi;
        }
 
index ad6b788..0471caf 100644 (file)
@@ -23,6 +23,7 @@
  * @ingroup SpecialPage
  * @author Ævar Arnfjörð Bjarmason <avarab@gmail.com>
  */
+
 class MostrevisionsPage extends FewestrevisionsPage {
        function __construct( $name = 'Mostrevisions' ) {
                parent::__construct( $name );
index c054ef7..91ef797 100644 (file)
@@ -593,8 +593,8 @@ class MovePageForm extends UnlistedSpecialPage {
                $dbr = wfGetDB( DB_MASTER );
                if ( $this->moveSubpages && (
                        MWNamespace::hasSubpages( $nt->getNamespace() ) || (
-                               $this->moveTalk &&
-                                       MWNamespace::hasSubpages( $nt->getTalkPage()->getNamespace() )
+                               $this->moveTalk
+                                       && MWNamespace::hasSubpages( $nt->getTalkPage()->getNamespace() )
                        )
                ) ) {
                        $conds = array(
index 41119f9..9b8d52b 100644 (file)
@@ -108,6 +108,7 @@ class SpecialAllMyUploads extends RedirectSpecialPage {
 
        function getRedirect( $subpage ) {
                $this->mAddedRedirectParams['ilshowall'] = 1;
+
                return SpecialPage::getTitleFor( 'Listfiles', $this->getUser()->getName() );
        }
 }
index 37d2973..c10a618 100644 (file)
@@ -20,6 +20,7 @@
  * @file
  * @ingroup SpecialPage
  */
+
 class SpecialNewFiles extends IncludableSpecialPage {
        public function __construct() {
                parent::__construct( 'Newimages' );
index 6c2ffe9..17115e8 100644 (file)
@@ -39,6 +39,7 @@ class SpecialPermanentLink extends RedirectSpecialPage {
                        throw new ErrorPageError( 'nopagetitle', 'nopagetext' );
                }
                $this->mAddedRedirectParams['oldid'] = $subpage;
+
                return true;
        }
 }
index 4548b63..8137651 100644 (file)
@@ -203,7 +203,7 @@ class SpecialPrefixindex extends SpecialAllpages {
 
                        $n = 0;
                        if ( $res->numRows() > 0 ) {
-                               $out = Xml::openElement( 'table', array( 'id' => 'mw-prefixindex-list-table' ) );
+                               $out = Xml::openElement( 'table', array( 'class' => 'mw-prefixindex-list-table' ) );
 
                                $prefixLength = strlen( $prefix );
                                while ( ( $n < $this->maxPerPage ) && ( $s = $res->fetchObject() ) ) {
index 4e2f0e7..e877b4e 100644 (file)
@@ -207,6 +207,7 @@ class SpecialRandomInCategory extends SpecialPage {
                        $qi['conds'][] = 'cl_timestamp ' . $op . ' ' .
                                $dbr->addQuotes( $dbr->timestamp( $minClTime ) );
                }
+
                return $qi;
        }
 
@@ -229,6 +230,7 @@ class SpecialRandomInCategory extends SpecialPage {
                }
 
                $ts = ( $this->maxTimestamp - $this->minTimestamp ) * $rand + $this->minTimestamp;
+
                return intval( $ts );
        }
 
@@ -258,6 +260,7 @@ class SpecialRandomInCategory extends SpecialPage {
                if ( !$res ) {
                        throw new MWException( 'No entries in category' );
                }
+
                return array( wfTimestamp( TS_UNIX, $res->low ), wfTimestamp( TS_UNIX, $res->high ) );
        }
 
index f5a5206..2c563c6 100644 (file)
  * @ingroup SpecialPage
  */
 class SpecialRecentChanges extends ChangesListSpecialPage {
-
+       // @codingStandardsIgnoreStart Needed "useless" override to change parameters.
        public function __construct( $name = 'Recentchanges', $restriction = '' ) {
                parent::__construct( $name, $restriction );
        }
+       // @codingStandardsIgnoreEnd
 
        /**
         * Main execution point
@@ -38,10 +39,20 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
         * @param string $subpage
         */
        public function execute( $subpage ) {
+               // Backwards-compatibility: redirect to new feed URLs
+               $feedFormat = $this->getRequest()->getVal( 'feed' );
+               if ( !$this->including() && $feedFormat ) {
+                       $query = $this->getFeedQuery();
+                       $query['feedformat'] = $feedFormat === 'atom' ? 'atom' : 'rss';
+                       $this->getOutput()->redirect( wfAppendQuery( wfScript( 'api' ), $query ) );
+
+                       return;
+               }
+
                // 10 seconds server-side caching max
                $this->getOutput()->setSquidMaxage( 10 );
                // Check if the client has a cached version
-               $lastmod = $this->checkLastModified( $this->feedFormat );
+               $lastmod = $this->checkLastModified();
                if ( $lastmod === false ) {
                        return;
                }
@@ -142,8 +153,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
        }
 
        public function validateOptions( FormOptions $opts ) {
-               global $wgFeedLimit;
-               $opts->validateIntBounds( 'limit', 0, $this->feedFormat ? $wgFeedLimit : 5000 );
+               $opts->validateIntBounds( 'limit', 0, 5000 );
                parent::validateOptions( $opts );
        }
 
@@ -244,16 +254,27 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                return $rows;
        }
 
+       public function outputFeedLinks() {
+               $this->addFeedLinks( $this->getFeedQuery() );
+       }
+
        /**
-        * Output feed links.
+        * Get URL query parameters for action=feedrecentchanges API feed of current recent changes view.
+        *
+        * @return array
         */
-       public function outputFeedLinks() {
-               $feedQuery = $this->getFeedQuery();
-               if ( $feedQuery !== '' ) {
-                       $this->getOutput()->setFeedAppendQuery( $feedQuery );
-               } else {
-                       $this->getOutput()->setFeedAppendQuery( false );
+       private function getFeedQuery() {
+               global $wgFeedLimit;
+               $query = array_filter( $this->getOptions()->getAllValues(), function ( $value ) {
+                       // API handles empty parameters in a different way
+                       return $value !== '';
+               } );
+               $query['action'] = 'feedrecentchanges';
+               if ( $query['limit'] > $wgFeedLimit ) {
+                       $query['limit'] = $wgFeedLimit;
                }
+
+               return $query;
        }
 
        /**
@@ -267,7 +288,8 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
 
                $limit = $opts['limit'];
 
-               $showWatcherCount = $wgRCShowWatchingUsers && $this->getUser()->getOption( 'shownumberswatching' );
+               $showWatcherCount = $wgRCShowWatchingUsers
+                       && $this->getUser()->getOption( 'shownumberswatching' );
                $watcherCache = array();
 
                $dbr = $this->getDB();
@@ -316,7 +338,9 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
 
                if ( $rows->numRows() === 0 ) {
                        $this->getOutput()->addHtml(
-                               '<div class="mw-changeslist-empty">' . $this->msg( 'recentchanges-noresult' )->parse() . '</div>'
+                               '<div class="mw-changeslist-empty">' .
+                               $this->msg( 'recentchanges-noresult' )->parse() .
+                               '</div>'
                        );
                } else {
                        $this->getOutput()->addHTML( $rclistOutput );
@@ -465,64 +489,15 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
         * Don't use this if we are using the patrol feature, patrol changes don't
         * update the timestamp
         *
-        * @param string $feedFormat
         * @return string|bool
         */
-       public function checkLastModified( $feedFormat ) {
+       public function checkLastModified() {
                $dbr = $this->getDB();
                $lastmod = $dbr->selectField( 'recentchanges', 'MAX(rc_timestamp)', false, __METHOD__ );
-               if ( $feedFormat || !$this->getUser()->useRCPatrol() ) {
-                       if ( $lastmod && $this->getOutput()->checkLastModified( $lastmod ) ) {
-                               # Client cache fresh and headers sent, nothing more to do.
-                               return false;
-                       }
-               }
 
                return $lastmod;
        }
 
-       /**
-        * Return an array with a ChangesFeed object and ChannelFeed object.
-        *
-        * @param string $feedFormat Feed's format (either 'rss' or 'atom')
-        * @return array
-        */
-       public function getFeedObject( $feedFormat ) {
-               $changesFeed = new ChangesFeed( $feedFormat, 'rcfeed' );
-               $formatter = $changesFeed->getFeedObject(
-                       $this->msg( 'recentchanges' )->inContentLanguage()->text(),
-                       $this->msg( 'recentchanges-feed-description' )->inContentLanguage()->text(),
-                       $this->getPageTitle()->getFullURL()
-               );
-
-               return array( $changesFeed, $formatter );
-       }
-
-       /**
-        * Get the query string to append to feed link URLs.
-        *
-        * @return string
-        */
-       public function getFeedQuery() {
-               global $wgFeedLimit;
-
-               $options = $this->getOptions()->getChangedValues();
-
-               // wfArrayToCgi() omits options set to null or false
-               foreach ( $options as &$value ) {
-                       if ( $value === false ) {
-                               $value = '0';
-                       }
-               }
-               unset( $value );
-
-               if ( isset( $options['limit'] ) && $options['limit'] > $wgFeedLimit ) {
-                       $options['limit'] = $wgFeedLimit;
-               }
-
-               return wfArrayToCgi( $options );
-       }
-
        /**
         * Creates the choose namespace selection
         *
@@ -720,7 +695,7 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                        'hideliu' => 'rcshowhideliu',
                        'hidepatrolled' => 'rcshowhidepatr',
                        'hidemyself' => 'rcshowhidemine'
-                 );
+               );
 
                $showhide = array( 'show', 'hide' );
 
@@ -753,13 +728,15 @@ class SpecialRecentChanges extends ChangesListSpecialPage {
                // show from this onward link
                $timestamp = wfTimestampNow();
                $now = $lang->userTimeAndDate( $timestamp, $user );
-               $tl = $this->makeOptionsLink(
-                       $now, array( 'from' => $timestamp ), $nondefaults
-               );
-
+               $timenow = $lang->userTime( $timestamp, $user );
+               $datenow = $lang->userDate( $timestamp, $user );
                $rclinks = $this->msg( 'rclinks' )->rawParams( $cl, $dl, $lang->pipeList( $links ) )
                        ->parse();
-               $rclistfrom = $this->msg( 'rclistfrom' )->rawParams( $tl )->parse();
+               $rclistfrom = $this->makeOptionsLink(
+                       $this->msg( 'rclistfrom' )->rawParams( $now, $timenow, $datenow )->parse(),
+                       array( 'from' => $timestamp ),
+                       $nondefaults
+               );
 
                return "{$note}$rclinks<br />$rclistfrom";
        }
index 7cc8d30..526e949 100644 (file)
@@ -27,7 +27,8 @@
  * @ingroup SpecialPage
  */
 class SpecialRecentChangesLinked extends SpecialRecentChanges {
-       var $rclTargetTitle;
+       /** @var bool|Title */
+       protected $rclTargetTitle;
 
        function __construct() {
                parent::__construct( 'Recentchangeslinked' );
@@ -37,6 +38,7 @@ class SpecialRecentChangesLinked extends SpecialRecentChanges {
                $opts = parent::getDefaultOptions();
                $opts->add( 'target', '' );
                $opts->add( 'showlinkedto', false );
+
                return $opts;
        }
 
@@ -55,7 +57,9 @@ class SpecialRecentChangesLinked extends SpecialRecentChanges {
                $outputPage = $this->getOutput();
                $title = Title::newFromURL( $target );
                if ( !$title || $title->isExternal() ) {
-                       $outputPage->addHtml( '<div class="errorbox">' . $this->msg( 'allpagesbadtitle' )->parse() . '</div>' );
+                       $outputPage->addHtml( '<div class="errorbox">' . $this->msg( 'allpagesbadtitle' )
+                                       ->parse() . '</div>' );
+
                        return false;
                }
 
@@ -89,7 +93,7 @@ class SpecialRecentChangesLinked extends SpecialRecentChanges {
                                'wl_user' => $uid,
                                'wl_title=rc_title',
                                'wl_namespace=rc_namespace'
-                       ));
+                       ) );
                }
                if ( $this->getUser()->isAllowed( 'rollback' ) ) {
                        $tables[] = 'page';
@@ -105,7 +109,9 @@ class SpecialRecentChangesLinked extends SpecialRecentChanges {
                        $opts['tagfilter']
                );
 
-               if ( !wfRunHooks( 'SpecialRecentChangesQuery', array( &$conds, &$tables, &$join_conds, $opts, &$query_options, &$select ) ) ) {
+               if ( !wfRunHooks( 'SpecialRecentChangesQuery',
+                       array( &$conds, &$tables, &$join_conds, $opts, &$query_options, &$select ) )
+               ) {
                        return false;
                }
 
@@ -128,14 +134,20 @@ class SpecialRecentChangesLinked extends SpecialRecentChanges {
                }
 
                // field name prefixes for all the various tables we might want to join with
-               $prefix = array( 'pagelinks' => 'pl', 'templatelinks' => 'tl', 'categorylinks' => 'cl', 'imagelinks' => 'il' );
+               $prefix = array(
+                       'pagelinks' => 'pl',
+                       'templatelinks' => 'tl',
+                       'categorylinks' => 'cl',
+                       'imagelinks' => 'il'
+               );
 
                $subsql = array(); // SELECT statements to combine with UNION
 
                foreach ( $link_tables as $link_table ) {
                        $pfx = $prefix[$link_table];
 
-                       // imagelinks and categorylinks tables have no xx_namespace field, and have xx_to instead of xx_title
+                       // imagelinks and categorylinks tables have no xx_namespace field,
+                       // and have xx_to instead of xx_title
                        if ( $link_table == 'imagelinks' ) {
                                $link_ns = NS_FILE;
                        } elseif ( $link_table == 'categorylinks' ) {
@@ -234,17 +246,6 @@ class SpecialRecentChangesLinked extends SpecialRecentChanges {
                return $extraOpts;
        }
 
-       public function getFeedObject( $feedFormat ) {
-               $feed = new ChangesFeed( $feedFormat, false );
-               $feedObj = $feed->getFeedObject(
-                       $this->msg( 'recentchangeslinked-title', $this->getTargetTitle()->getPrefixedText() )
-                               ->inContentLanguage()->text(),
-                       $this->msg( 'recentchangeslinked-feed' )->inContentLanguage()->text(),
-                       $this->getPageTitle()->getFullURL()
-               );
-               return array( $feed, $feedObj );
-       }
-
        /**
         * @return Title
         */
@@ -257,6 +258,7 @@ class SpecialRecentChangesLinked extends SpecialRecentChanges {
                                $this->rclTargetTitle = false;
                        }
                }
+
                return $this->rclTargetTitle;
        }
 }
index 8ec6f85..4926d6d 100644 (file)
@@ -78,6 +78,7 @@ class SpecialRedirect extends FormSpecialPage {
                        return null;
                }
                $userpage = Title::makeTitle( NS_USER, $username );
+
                return $userpage->getFullURL( '', false, PROTO_CURRENT );
        }
 
@@ -89,7 +90,7 @@ class SpecialRedirect extends FormSpecialPage {
        function dispatchFile() {
                $title = Title::makeTitleSafe( NS_FILE, $this->mValue );
 
-               if ( ! $title instanceof Title ) {
+               if ( !$title instanceof Title ) {
                        return null;
                }
                $file = wfFindFile( $title );
@@ -112,6 +113,7 @@ class SpecialRedirect extends FormSpecialPage {
                                $url = $mto->getURL();
                        }
                }
+
                return $url;
        }
 
@@ -130,6 +132,7 @@ class SpecialRedirect extends FormSpecialPage {
                if ( $oldid === 0 ) {
                        return null;
                }
+
                return wfAppendQuery( wfScript( 'index' ), array(
                        'oldid' => $oldid
                ) );
@@ -149,6 +152,7 @@ class SpecialRedirect extends FormSpecialPage {
                if ( $curid === 0 ) {
                        return null;
                }
+
                return wfAppendQuery( wfScript( 'index' ), array(
                        'curid' => $curid
                ) );
@@ -165,33 +169,36 @@ class SpecialRedirect extends FormSpecialPage {
        function dispatch() {
                // the various namespaces supported by Special:Redirect
                switch ( $this->mType ) {
-               case 'user':
-                       $url = $this->dispatchUser();
-                       break;
-               case 'file':
-                       $url = $this->dispatchFile();
-                       break;
-               case 'revision':
-                       $url = $this->dispatchRevision();
-                       break;
-               case 'page':
-                       $url = $this->dispatchPage();
-                       break;
-               default:
-                       $this->getOutput()->setStatusCode( 404 );
-                       $url = null;
-                       break;
+                       case 'user':
+                               $url = $this->dispatchUser();
+                               break;
+                       case 'file':
+                               $url = $this->dispatchFile();
+                               break;
+                       case 'revision':
+                               $url = $this->dispatchRevision();
+                               break;
+                       case 'page':
+                               $url = $this->dispatchPage();
+                               break;
+                       default:
+                               $this->getOutput()->setStatusCode( 404 );
+                               $url = null;
+                               break;
                }
                if ( $url ) {
                        $this->getOutput()->redirect( $url );
+
                        return true;
                }
                if ( !is_null( $this->mValue ) ) {
                        $this->getOutput()->setStatusCode( 404 );
                        // Message: redirect-not-exists
                        $msg = $this->getMessagePrefix() . '-not-exists';
+
                        return Status::newFatal( $msg );
                }
+
                return false;
        }
 
@@ -228,6 +235,7 @@ class SpecialRedirect extends FormSpecialPage {
                if ( !empty( $this->mValue ) ) {
                        $a['value']['default'] = $this->mValue;
                }
+
                return $a;
        }
 
@@ -235,6 +243,7 @@ class SpecialRedirect extends FormSpecialPage {
                if ( !empty( $data['type'] ) && !empty( $data['value'] ) ) {
                        $this->setParameter( $data['type'] . '/' . $data['value'] );
                }
+
                /* if this returns false, will show the form */
                return $this->dispatch();
        }
index db98bea..864485c 100644 (file)
@@ -90,7 +90,7 @@ class SpecialResetTokens extends FormSpecialPage {
                                        ->rawParams( $this->msg( $tok['label-message'] )->parse() )
                                        ->params( $user->getTokenFromOption( $tok['preference'] ) )
                                        ->escaped();
-                               $tokensForForm[ $label ] = $tok['preference'];
+                               $tokensForForm[$label] = $tok['preference'];
                        }
 
                        $desc = array(
index 3599dc6..780da7c 100644 (file)
@@ -63,29 +63,34 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
         */
        static $UILabels = array(
                'revision' => array(
-                       'check-label'   => 'revdelete-hide-text',
-                       'success'               => 'revdelete-success',
-                       'failure'               => 'revdelete-failure',
+                       'check-label' => 'revdelete-hide-text',
+                       'success' => 'revdelete-success',
+                       'failure' => 'revdelete-failure',
+                       'text' => 'revdelete-text-text',
                ),
                'archive' => array(
-                       'check-label'   => 'revdelete-hide-text',
-                       'success'               => 'revdelete-success',
-                       'failure'               => 'revdelete-failure',
+                       'check-label' => 'revdelete-hide-text',
+                       'success' => 'revdelete-success',
+                       'failure' => 'revdelete-failure',
+                       'text' => 'revdelete-text-text',
                ),
                'oldimage' => array(
-                       'check-label'   => 'revdelete-hide-image',
-                       'success'               => 'revdelete-success',
-                       'failure'               => 'revdelete-failure',
+                       'check-label' => 'revdelete-hide-image',
+                       'success' => 'revdelete-success',
+                       'failure' => 'revdelete-failure',
+                       'text' => 'revdelete-text-file',
                ),
                'filearchive' => array(
-                       'check-label'   => 'revdelete-hide-image',
-                       'success'               => 'revdelete-success',
-                       'failure'               => 'revdelete-failure',
+                       'check-label' => 'revdelete-hide-image',
+                       'success' => 'revdelete-success',
+                       'failure' => 'revdelete-failure',
+                       'text' => 'revdelete-text-file',
                ),
                'logging' => array(
-                       'check-label'   => 'revdelete-hide-name',
-                       'success'               => 'logdelete-success',
-                       'failure'               => 'logdelete-failure',
+                       'check-label' => 'revdelete-hide-name',
+                       'success' => 'logdelete-success',
+                       'failure' => 'logdelete-failure',
+                       'text' => 'logdelete-text',
                ),
        );
 
@@ -132,6 +137,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                $this->token = $request->getVal( 'token' );
                if ( $this->archiveName && $this->targetObj ) {
                        $this->tryShowFile( $this->archiveName );
+
                        return;
                }
 
@@ -151,6 +157,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                # We need a target page!
                if ( is_null( $this->targetObj ) ) {
                        $output->addWikiMsg( 'undelete-header' );
+
                        return;
                }
                # Give a link to the logs/hist for this page
@@ -252,6 +259,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                $conds['log_action'] = $this->getList()->getLogAction();
                $conds['ls_field'] = RevisionDeleter::getRelationType( $this->typeName );
                $conds['ls_value'] = $this->ids;
+
                return $conds;
        }
 
@@ -266,6 +274,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                // Check if user is allowed to see this file
                if ( !$oimage->exists() ) {
                        $this->getOutput()->addWikiMsg( 'revdelete-no-file' );
+
                        return;
                }
                $user = $this->getUser();
@@ -295,6 +304,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                                Xml::submitButton( $this->msg( 'revdelete-show-file-submit' )->text() ) .
                                '</form>'
                        );
+
                        return;
                }
                $this->getOutput()->disable();
@@ -320,6 +330,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                                $this->typeName, $this->getContext(), $this->targetObj, $this->ids
                        );
                }
+
                return $this->list;
        }
 
@@ -328,7 +339,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
         * which will allow the user to choose new visibility settings.
         */
        protected function showForm() {
-               $UserAllowed = true;
+               $userAllowed = true;
 
                if ( $this->typeName == 'logging' ) {
                        $this->getOutput()->addWikiMsg( 'logdelete-selected', $this->getLanguage()->formatNum( count( $this->ids ) ) );
@@ -348,7 +359,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                                if ( !$this->submitClicked ) {
                                        throw new PermissionsError( 'suppressrevision' );
                                }
-                               $UserAllowed = false;
+                               $userAllowed = false;
                        }
                        $numRevisions++;
                        $this->getOutput()->addHTML( $item->getHTML() );
@@ -363,7 +374,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                $this->addUsageText();
 
                // Normal sysops can always see what they did, but can't always change it
-               if ( !$UserAllowed ) {
+               if ( !$userAllowed ) {
                        return;
                }
 
@@ -431,7 +442,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
         * @todo FIXME: Wikimedia-specific policy text
         */
        protected function addUsageText() {
-               $this->getOutput()->addWikiMsg( 'revdelete-text' );
+               $this->getOutput()->wrapWikiMsg( "<strong>$1</strong>\n$2", $this->typeLabels['text'], 'revdelete-text-others' );
                if ( $this->getUser()->isAllowed( 'suppressrevision' ) ) {
                        $this->getOutput()->addWikiMsg( 'revdelete-suppress-text' );
                }
@@ -462,8 +473,8 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                                $line = Xml::tags( 'td', array( 'class' => 'mw-input' ), $innerHTML );
                                $html .= "<tr>$line</tr>\n";
                        }
-               // Otherwise, use tri-state radios
                } else {
+                       // Otherwise, use tri-state radios
                        $html .= '<tr>';
                        $html .= '<th class="mw-revdel-checkbox">' . $this->msg( 'revdelete-radio-same' )->escaped() . '</th>';
                        $html .= '<th class="mw-revdel-checkbox">' . $this->msg( 'revdelete-radio-unset' )->escaped() . '</th>';
@@ -490,6 +501,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                }
 
                $html .= '</table>';
+
                return $html;
        }
 
@@ -503,6 +515,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                $token = $this->getRequest()->getVal( 'wpEditToken' );
                if ( $this->submitClicked && !$this->getUser()->matchEditToken( $token ) ) {
                        $this->getOutput()->addWikiMsg( 'sessionfailure' );
+
                        return false;
                }
                $bitParams = $this->extractBitParams();
@@ -522,11 +535,13 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                $status = $this->save( $bitParams, $comment, $this->targetObj );
                if ( $status->isGood() ) {
                        $this->success();
+
                        return true;
-               # ...otherwise, bounce back to form...
                } else {
+                       # ...otherwise, bounce back to form...
                        $this->failure( $status );
                }
+
                return false;
        }
 
@@ -568,6 +583,7 @@ class SpecialRevisionDelete extends UnlistedSpecialPage {
                if ( !isset( $bitfield[Revision::DELETED_RESTRICTED] ) ) {
                        $bitfield[Revision::DELETED_RESTRICTED] = 0;
                }
+
                return $bitfield;
        }
 
diff --git a/includes/specials/SpecialRunJobs.php b/includes/specials/SpecialRunJobs.php
new file mode 100644 (file)
index 0000000..0c45281
--- /dev/null
@@ -0,0 +1,161 @@
+<?php
+/**
+ * Implements Special:RunJobs
+ *
+ * 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
+ * @author Aaron Schulz
+ */
+
+/**
+ * Special page designed for running background tasks (internal use only)
+ *
+ * @ingroup SpecialPage
+ */
+class SpecialRunJobs extends UnlistedSpecialPage {
+       public function __construct() {
+               parent::__construct( 'RunJobs' );
+       }
+
+       public function execute( $par = '' ) {
+               $this->getOutput()->disable();
+
+               if ( wfReadOnly() ) {
+                       header( "HTTP/1.0 423 Locked" );
+                       print 'Wiki is in read-only mode';
+
+                       return;
+               } elseif ( !$this->getRequest()->wasPosted() ) {
+                       header( "HTTP/1.0 400 Bad Request" );
+                       print 'Request must be POSTed';
+
+                       return;
+               }
+
+               $optional = array( 'maxjobs' => 0 );
+               $required = array_flip( array( 'title', 'tasks', 'signature', 'sigexpiry' ) );
+
+               $params = array_intersect_key( $this->getRequest()->getValues(), $required + $optional );
+               $missing = array_diff_key( $required, $params );
+               if ( count( $missing ) ) {
+                       header( "HTTP/1.0 400 Bad Request" );
+                       print 'Missing parameters: ' . implode( ', ', array_keys( $missing ) );
+
+                       return;
+               }
+
+               $squery = $params;
+               unset( $squery['signature'] );
+               $cSig = self::getQuerySignature( $squery ); // correct signature
+               $rSig = $params['signature']; // provided signature
+
+               // Constant-time signature verification
+               // http://www.emerose.com/timing-attacks-explained
+               // @todo: make a common method for this
+               if ( !is_string( $rSig ) || strlen( $rSig ) !== strlen( $cSig ) ) {
+                       $verified = false;
+               } else {
+                       $result = 0;
+                       for ( $i = 0; $i < strlen( $cSig ); $i++ ) {
+                               $result |= ord( $cSig[$i] ) ^ ord( $rSig[$i] );
+                       }
+                       $verified = ( $result == 0 );
+               }
+               if ( !$verified || $params['sigexpiry'] < time() ) {
+                       header( "HTTP/1.0 400 Bad Request" );
+                       print 'Invalid or stale signature provided';
+
+                       return;
+               }
+
+               // Apply any default parameter values
+               $params += $optional;
+
+               // Client will usually disconnect before checking the response,
+               // but it needs to know when it is safe to disconnect. Until this
+               // reaches ignore_user_abort(), it is not safe as the jobs won't run.
+               ignore_user_abort( true ); // jobs may take a bit of time
+               header( "HTTP/1.0 202 Accepted" );
+               ob_flush();
+               flush();
+               // Once the client receives this response, it can disconnect
+
+               // Do all of the specified tasks...
+               if ( in_array( 'jobs', explode( '|', $params['tasks'] ) ) ) {
+                       self::executeJobs( (int)$params['maxjobs'] );
+               }
+       }
+
+       /**
+        * @param array $query
+        * @return string
+        */
+       public static function getQuerySignature( array $query ) {
+               global $wgSecretKey;
+
+               ksort( $query ); // stable order
+               return hash_hmac( 'sha1', wfArrayToCgi( $query ), $wgSecretKey );
+       }
+
+       /**
+        * Run jobs from the job queue
+        *
+        * @note: also called from Wiki.php
+        *
+        * @param integer $maxJobs Maximum number of jobs to run
+        * @return void
+        */
+       public static function executeJobs( $maxJobs ) {
+               $n = $maxJobs; // number of jobs to run
+               if ( $n < 1 ) {
+                       return;
+               }
+               try {
+                       $group = JobQueueGroup::singleton();
+                       $count = $group->executeReadyPeriodicTasks();
+                       if ( $count > 0 ) {
+                               wfDebugLog( 'jobqueue', "Executed $count periodic queue task(s)." );
+                       }
+
+                       do {
+                               $job = $group->pop( JobQueueGroup::TYPE_DEFAULT, JobQueueGroup::USE_CACHE );
+                               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 );
+                               }
+                       } 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.
+                       MWExceptionHandler::logException( $e );
+               }
+       }
+}
index b89522d..129f8b7 100644 (file)
@@ -179,6 +179,7 @@ class SpecialSearch extends SpecialPage {
                # If the string cannot be used to create a title
                if ( is_null( $t ) ) {
                        $this->showResults( $term );
+
                        return;
                }
                # If there's an exact or very near match, jump right there.
@@ -191,6 +192,7 @@ class SpecialSearch extends SpecialPage {
 
                if ( !is_null( $t ) ) {
                        $this->getOutput()->redirect( $t->getFullURL() );
+
                        return;
                }
                # No match, generate an edit URL
@@ -198,11 +200,12 @@ class SpecialSearch extends SpecialPage {
                if ( !is_null( $t ) ) {
                        global $wgGoToEdit;
                        wfRunHooks( 'SpecialSearchNogomatch', array( &$t ) );
-                       wfDebugLog( 'nogomatch', $t->getText(), 'private' );
+                       wfDebugLog( 'nogomatch', $t->getFullText(), 'private' );
 
                        # If the feature is enabled, go straight to the edit page
                        if ( $wgGoToEdit ) {
                                $this->getOutput()->redirect( $t->getFullURL( array( 'action' => 'edit' ) ) );
+
                                return;
                        }
                }
@@ -214,8 +217,8 @@ class SpecialSearch extends SpecialPage {
         */
        public function showResults( $term ) {
                global $wgDisableTextSearch, $wgSearchForwardUrl, $wgContLang, $wgScript;
-               wfProfileIn( __METHOD__ );
 
+               $profile = new ProfileSection( __METHOD__ );
                $search = $this->getSearchEngine();
                $search->setLimitOffset( $this->limit, $this->offset );
                $search->setNamespaces( $this->namespaces );
@@ -247,7 +250,7 @@ class SpecialSearch extends SpecialPage {
                                        Xml::closeElement( 'fieldset' )
                                );
                        }
-                       wfProfileOut( __METHOD__ );
+
                        return;
                }
 
@@ -303,7 +306,6 @@ class SpecialSearch extends SpecialPage {
 
                if ( !wfRunHooks( 'SpecialSearchResultsPrepend', array( $this, $out, $term ) ) ) {
                        # Hook requested termination
-                       wfProfileOut( __METHOD__ );
                        return;
                }
 
@@ -330,7 +332,7 @@ class SpecialSearch extends SpecialPage {
                // Sometimes the search engine knows there are too many hits
                if ( $titleMatches instanceof SearchResultTooMany ) {
                        $out->wrapWikiMsg( "==$1==\n", 'toomanymatches' );
-                       wfProfileOut( __METHOD__ );
+
                        return;
                }
 
@@ -339,8 +341,8 @@ class SpecialSearch extends SpecialPage {
                        $out->addHTML( $this->formHeader( $term, 0, 0 ) );
                        $out->addHtml( $this->getProfileForm( $this->profile, $term ) );
                        $out->addHTML( '</form>' );
+
                        // Empty query -- straight view of search form
-                       wfProfileOut( __METHOD__ );
                        return;
                }
 
@@ -430,7 +432,6 @@ class SpecialSearch extends SpecialPage {
                        $out->addHTML( "<p class='mw-search-pager-bottom'>{$prevnext}</p>\n" );
                }
                wfRunHooks( 'SpecialSearchResultsAppend', array( $this, $out, $term ) );
-               wfProfileOut( __METHOD__ );
        }
 
        /**
@@ -443,12 +444,14 @@ class SpecialSearch extends SpecialPage {
                // show direct page/create link if applicable
 
                // Check DBkey !== '' in case of fragment link only.
-               if ( is_null( $t ) || $t->getDBkey() === '' ||
-                               ( $titleMatches !== null && $titleMatches->searchContainedSyntax() ) ||
-                               ( $textMatches !== null && $textMatches->searchContainedSyntax() ) ) {
+               if ( is_null( $t ) || $t->getDBkey() === ''
+                       || ( $titleMatches !== null && $titleMatches->searchContainedSyntax() )
+                       || ( $textMatches !== null && $textMatches->searchContainedSyntax() )
+               ) {
                        // invalid title
                        // preserve the paragraph for margins etc...
                        $this->getOutput()->addHtml( '<p></p>' );
+
                        return;
                }
 
@@ -522,6 +525,7 @@ class SpecialSearch extends SpecialPage {
                                $opt['ns' . $n] = 1;
                        }
                }
+
                return $opt + $this->extraParams;
        }
 
@@ -534,16 +538,11 @@ class SpecialSearch extends SpecialPage {
         */
        protected function showMatches( &$matches ) {
                global $wgContLang;
-               wfProfileIn( __METHOD__ );
 
+               $profile = new ProfileSection( __METHOD__ );
                $terms = $wgContLang->convertForSearchResult( $matches->termMatches() );
 
-               $out = "";
-               $infoLine = $matches->getInfo();
-               if ( !is_null( $infoLine ) ) {
-                       $out .= "\n<!-- {$infoLine} -->\n";
-               }
-               $out .= "<ul class='mw-search-results'>\n";
+               $out = "<ul class='mw-search-results'>\n";
                $result = $matches->next();
                while ( $result ) {
                        $out .= $this->showHit( $result, $terms );
@@ -553,7 +552,7 @@ class SpecialSearch extends SpecialPage {
 
                // convert the whole thing to desired language variant
                $out = $wgContLang->convert( $out );
-               wfProfileOut( __METHOD__ );
+
                return $out;
        }
 
@@ -566,10 +565,9 @@ class SpecialSearch extends SpecialPage {
         * @return string
         */
        protected function showHit( $result, $terms ) {
-               wfProfileIn( __METHOD__ );
+               $profile = new ProfileSection( __METHOD__ );
 
                if ( $result->isBrokenTitle() ) {
-                       wfProfileOut( __METHOD__ );
                        return "<!-- Broken link in search result -->\n";
                }
 
@@ -584,7 +582,7 @@ class SpecialSearch extends SpecialPage {
                $link_t = clone $t;
 
                wfRunHooks( 'ShowSearchHitTitle',
-                                       array( &$link_t, &$titleSnippet, $result, $terms, $this ) );
+                       array( &$link_t, &$titleSnippet, $result, $terms, $this ) );
 
                $link = Linker::linkKnown(
                        $link_t,
@@ -595,7 +593,6 @@ class SpecialSearch extends SpecialPage {
                //This is not quite safe, but better than showing excerpts from non-readable pages
                //Note that hiding the entry entirely would screw up paging.
                if ( !$t->userCan( 'read', $this->getUser() ) ) {
-                       wfProfileOut( __METHOD__ );
                        return "<li>{$link}</li>\n";
                }
 
@@ -603,7 +600,6 @@ class SpecialSearch extends SpecialPage {
                // The least confusing at this point is to drop the result.
                // You may get less results, but... oh well. :P
                if ( $result->isMissingRevision() ) {
-                       wfProfileOut( __METHOD__ );
                        return "<!-- missing page " . htmlspecialchars( $t->getPrefixedText() ) . "-->\n";
                }
 
@@ -703,7 +699,6 @@ class SpecialSearch extends SpecialPage {
                                $thumb = $img->transform( array( 'width' => 120, 'height' => 120 ) );
                                if ( $thumb ) {
                                        $desc = $this->msg( 'parentheses' )->rawParams( $img->getShortDesc() )->escaped();
-                                       wfProfileOut( __METHOD__ );
                                        // Float doesn't seem to interact well with the bullets.
                                        // Table messes up vertical alignment of the bullets.
                                        // Bullets are therefore disabled (didn't look great anyway).
@@ -738,22 +733,20 @@ class SpecialSearch extends SpecialPage {
                                "</li>\n";
                }
 
-               wfProfileOut( __METHOD__ );
                return $html;
        }
 
        /**
         * Show results from other wikis
         *
-        * @param $matches SearchResultSet
+        * @param $matches SearchResultSet|array
         * @param $query String
         *
         * @return string
         */
        protected function showInterwiki( $matches, $query ) {
                global $wgContLang;
-               wfProfileIn( __METHOD__ );
-               $terms = $wgContLang->convertForSearchResult( $matches->termMatches() );
+               $profile = new ProfileSection( __METHOD__ );
 
                $out = "<div id='mw-search-interwiki'><div id='mw-search-interwiki-caption'>" .
                        $this->msg( 'search-interwiki-caption' )->text() . "</div>\n";
@@ -769,19 +762,27 @@ class SpecialSearch extends SpecialPage {
                        }
                }
 
-               $prev = null;
-               $result = $matches->next();
-               while ( $result ) {
-                       $out .= $this->showInterwikiHit( $result, $prev, $terms, $query, $customCaptions );
-                       $prev = $result->getInterwikiPrefix();
-                       $result = $matches->next();
+               if ( !is_array( $matches ) ) {
+                       $matches = array( $matches );
+               }
+
+               foreach ( $matches as $set ) {
+                       $prev = null;
+                       $result = $set->next();
+                       while ( $result ) {
+                               $out .= $this->showInterwikiHit( $result, $prev, $query, $customCaptions );
+                               $prev = $result->getInterwikiPrefix();
+                               $result = $set->next();
+                       }
                }
+
+
                // TODO: should support paging in a non-confusing way (not sure how though, maybe via ajax)..
                $out .= "</ul></div>\n";
 
                // convert the whole thing to desired language variant
                $out = $wgContLang->convert( $out );
-               wfProfileOut( __METHOD__ );
+
                return $out;
        }
 
@@ -790,23 +791,21 @@ class SpecialSearch extends SpecialPage {
         *
         * @param $result SearchResult
         * @param $lastInterwiki String
-        * @param $terms Array
         * @param $query String
         * @param array $customCaptions iw prefix -> caption
         *
         * @return string
         */
-       protected function showInterwikiHit( $result, $lastInterwiki, $terms, $query, $customCaptions ) {
-               wfProfileIn( __METHOD__ );
+       protected function showInterwikiHit( $result, $lastInterwiki, $query, $customCaptions ) {
+               $profile = new ProfileSection( __METHOD__ );
 
                if ( $result->isBrokenTitle() ) {
-                       wfProfileOut( __METHOD__ );
                        return "<!-- Broken link in search result -->\n";
                }
 
                $t = $result->getTitle();
 
-               $titleSnippet = $result->getTitleSnippet( $terms );
+               $titleSnippet = $result->getTitleSnippet();
 
                if ( $titleSnippet == '' ) {
                        $titleSnippet = null;
@@ -819,7 +818,7 @@ class SpecialSearch extends SpecialPage {
 
                // format redirect if any
                $redirectTitle = $result->getRedirectTitle();
-               $redirectText = $result->getRedirectSnippet( $terms );
+               $redirectText = $result->getRedirectSnippet();
                $redirect = '';
                if ( !is_null( $redirectTitle ) ) {
                        if ( $redirectText == '' ) {
@@ -860,7 +859,7 @@ class SpecialSearch extends SpecialPage {
                }
 
                $out .= "<li>{$link} {$redirect}</li>\n";
-               wfProfileOut( __METHOD__ );
+
                return $out;
        }
 
@@ -880,6 +879,7 @@ class SpecialSearch extends SpecialPage {
                } else {
                        $form = '';
                        wfRunHooks( 'SpecialSearchProfileForm', array( $this, &$form, $profile, $term, $opts ) );
+
                        return $form;
                }
        }
@@ -954,11 +954,12 @@ class SpecialSearch extends SpecialPage {
                foreach ( $opts as $key => $value ) {
                        $hidden .= Html::hidden( $key, $value );
                }
+
                // Return final output
                return Xml::openElement(
-                               'fieldset',
-                               array( 'id' => 'mw-searchoptions', 'style' => 'margin:0em;' )
-                       ) .
+                       'fieldset',
+                       array( 'id' => 'mw-searchoptions', 'style' => 'margin:0em;' )
+               ) .
                        Xml::element( 'legend', null, $this->msg( 'powersearch-legend' )->text() ) .
                        Xml::tags( 'h4', null, $this->msg( 'powersearch-ns' )->parse() ) .
                        Html::element( 'div', array( 'id' => 'mw-search-togglebox' ) ) .
@@ -1114,6 +1115,7 @@ class SpecialSearch extends SpecialPage {
                        $this->msg( 'searchbutton' )->text(),
                        array( 'class' => array( 'mw-ui-button', 'mw-ui-progressive' ) )
                ) . "\n";
+
                return $out . $this->didYouMeanHtml;
        }
 
@@ -1165,6 +1167,7 @@ class SpecialSearch extends SpecialPage {
                if ( count( $p ) > 1 ) {
                        return $wgContLang->getNsIndex( $p[0] ) == NS_FILE;
                }
+
                return false;
        }
 
@@ -1182,6 +1185,7 @@ class SpecialSearch extends SpecialPage {
                if ( count( $p ) > 1 ) {
                        return $p[0] == $allkeyword;
                }
+
                return false;
        }
 
@@ -1195,6 +1199,7 @@ class SpecialSearch extends SpecialPage {
                        $this->searchEngine = $this->searchEngineType ?
                                SearchEngine::create( $this->searchEngineType ) : SearchEngine::create();
                }
+
                return $this->searchEngine;
        }
 
index 9b50875..dffa7de 100644 (file)
@@ -40,12 +40,15 @@ class ShortPagesPage extends QueryPage {
        function getQueryInfo() {
                return array(
                        'tables' => array( 'page' ),
-                       'fields' => array( 'namespace' => 'page_namespace',
-                                       'title' => 'page_title',
-                                       'value' => 'page_len' ),
-                       'conds' => array( 'page_namespace' =>
-                                       MWNamespace::getContentNamespaces(),
-                                       'page_is_redirect' => 0 ),
+                       'fields' => array(
+                               'namespace' => 'page_namespace',
+                               'title' => 'page_title',
+                               'value' => 'page_len'
+                       ),
+                       'conds' => array(
+                               'page_namespace' => MWNamespace::getContentNamespaces(),
+                               'page_is_redirect' => 0
+                       ),
                        'options' => array( 'USE INDEX' => 'page_redirect_namespace_len' )
                );
        }
@@ -111,8 +114,8 @@ class ShortPagesPage extends QueryPage {
                $size = $this->msg( 'nbytes' )->numParams( $result->value )->escaped();
 
                return $exists
-                               ? "${hlinkInParentheses} {$dm}{$plink} {$dm}[{$size}]"
-                               : "<del>${hlinkInParentheses} {$dm}{$plink} {$dm}[{$size}]</del>";
+                       ? "${hlinkInParentheses} {$dm}{$plink} {$dm}[{$size}]"
+                       : "<del>${hlinkInParentheses} {$dm}{$plink} {$dm}[{$size}]</del>";
        }
 
        protected function getGroupName() {
index f26d1a6..c3a11f3 100644 (file)
@@ -30,7 +30,7 @@
 class SpecialStatistics extends SpecialPage {
 
        private $views, $edits, $good, $images, $total, $users,
-                       $activeUsers = 0;
+               $activeUsers = 0;
 
        public function __construct() {
                parent::__construct( 'Statistics' );
@@ -123,6 +123,7 @@ class SpecialStatistics extends SpecialPage {
                                        " $descriptionText" );
                        }
                }
+
                return Html::rawElement( 'tr', $trExtraParams,
                        Html::rawElement( 'td', array(), $text ) .
                        Html::rawElement( 'td', array( 'class' => 'mw-statistics-numbers' ), $number )
@@ -151,6 +152,7 @@ class SpecialStatistics extends SpecialPage {
                                                $this->getLanguage()->formatNum( $this->images ),
                                                array( 'class' => 'mw-statistics-files' ) );
        }
+
        private function getEditStats() {
                return Xml::openElement( 'tr' ) .
                        Xml::tags( 'th', array( 'colspan' => '2' ), $this->msg( 'statistics-header-edits' )->parse() ) .
@@ -165,6 +167,7 @@ class SpecialStatistics extends SpecialPage {
 
        private function getUserStats() {
                global $wgActiveUserDays;
+
                return Xml::openElement( 'tr' ) .
                        Xml::tags( 'th', array( 'colspan' => '2' ), $this->msg( 'statistics-header-users' )->parse() ) .
                        Xml::closeElement( 'tr' ) .
@@ -224,6 +227,7 @@ class SpecialStatistics extends SpecialPage {
                                $this->getLanguage()->formatNum( $countUsers ),
                                array( 'class' => 'statistics-group-' . Sanitizer::escapeClass( $group ) . $classZero ) );
                }
+
                return $text;
        }
 
@@ -244,36 +248,39 @@ class SpecialStatistics extends SpecialPage {
                $text = '';
                $dbr = wfGetDB( DB_SLAVE );
                $res = $dbr->select(
-                               'page',
-                               array(
-                                       'page_namespace',
-                                       'page_title',
-                                       'page_counter',
-                               ),
-                               array(
-                                       'page_is_redirect' => 0,
-                                       'page_counter > 0',
-                               ),
-                               __METHOD__,
-                               array(
-                                       'ORDER BY' => 'page_counter DESC',
-                                       'LIMIT' => 10,
-                               )
-                       );
-                       if ( $res->numRows() > 0 ) {
-                               $text .= Xml::openElement( 'tr' );
-                               $text .= Xml::tags( 'th', array( 'colspan' => '2' ), $this->msg( 'statistics-mostpopular' )->parse() );
-                               $text .= Xml::closeElement( 'tr' );
-                               foreach ( $res as $row ) {
-                                       $title = Title::makeTitleSafe( $row->page_namespace, $row->page_title );
-                                       if ( $title instanceof Title ) {
-                                               $text .= $this->formatRow( Linker::link( $title ),
-                                                               $this->getLanguage()->formatNum( $row->page_counter ) );
-
-                                       }
+                       'page',
+                       array(
+                               'page_namespace',
+                               'page_title',
+                               'page_counter',
+                       ),
+                       array(
+                               'page_is_redirect' => 0,
+                               'page_counter > 0',
+                       ),
+                       __METHOD__,
+                       array(
+                               'ORDER BY' => 'page_counter DESC',
+                               'LIMIT' => 10,
+                       )
+               );
+
+               if ( $res->numRows() > 0 ) {
+                       $text .= Xml::openElement( 'tr' );
+                       $text .= Xml::tags( 'th', array( 'colspan' => '2' ), $this->msg( 'statistics-mostpopular' )->parse() );
+                       $text .= Xml::closeElement( 'tr' );
+
+                       foreach ( $res as $row ) {
+                               $title = Title::makeTitleSafe( $row->page_namespace, $row->page_title );
+
+                               if ( $title instanceof Title ) {
+                                       $text .= $this->formatRow( Linker::link( $title ),
+                                               $this->getLanguage()->formatNum( $row->page_counter ) );
                                }
-                               $res->free();
                        }
+                       $res->free();
+               }
+
                return $text;
        }
 
index 077e7cb..b762728 100644 (file)
@@ -46,11 +46,11 @@ class SpecialTags extends SpecialPage {
 
                // Write the headers
                $html = Xml::tags( 'tr', null, Xml::tags( 'th', null, $this->msg( 'tags-tag' )->parse() ) .
-                               Xml::tags( 'th', null, $this->msg( 'tags-display-header' )->parse() ) .
-                               Xml::tags( 'th', null, $this->msg( 'tags-description-header' )->parse() ) .
-                               Xml::tags( 'th', null, $this->msg( 'tags-active-header' )->parse() ) .
-                               Xml::tags( 'th', null, $this->msg( 'tags-hitcount-header' )->parse() )
-                       );
+                       Xml::tags( 'th', null, $this->msg( 'tags-display-header' )->parse() ) .
+                       Xml::tags( 'th', null, $this->msg( 'tags-description-header' )->parse() ) .
+                       Xml::tags( 'th', null, $this->msg( 'tags-active-header' )->parse() ) .
+                       Xml::tags( 'th', null, $this->msg( 'tags-hitcount-header' )->parse() )
+               );
 
                // Used in #doTagRow()
                $this->definedTags = array_fill_keys( ChangeTags::listDefinedTags(), true );
index fbc8e91..3a2b0c6 100644 (file)
@@ -107,7 +107,6 @@ class SpecialUnblock extends SpecialPage {
                        if ( $type == Block::TYPE_AUTO && $this->type == Block::TYPE_IP ) {
                                $fields['Target']['default'] = $this->target;
                                unset( $fields['Name'] );
-
                        } else {
                                $fields['Target']['default'] = $target;
                                $fields['Target']['type'] = 'hidden';
@@ -133,11 +132,11 @@ class SpecialUnblock extends SpecialPage {
                                                break;
                                }
                        }
-
                } else {
                        $fields['Target']['default'] = $this->target;
                        unset( $fields['Name'] );
                }
+
                return $fields;
        }
 
@@ -181,6 +180,7 @@ class SpecialUnblock extends SpecialPage {
                list( $target, $type ) = SpecialBlock::getTargetAndType( $target );
                if ( $block->getType() == Block::TYPE_RANGE && $type == Block::TYPE_IP ) {
                        $range = $block->getTarget();
+
                        return array( array( 'ipb_blocked_as_range', $target, $range ) );
                }
 
index 3bfcede..17de679 100644 (file)
@@ -50,13 +50,13 @@ class UncategorizedImagesPage extends ImageQueryPage {
                return array(
                        'tables' => array( 'page', 'categorylinks' ),
                        'fields' => array( 'namespace' => 'page_namespace',
-                                       'title' => 'page_title',
-                                       'value' => 'page_title' ),
+                               'title' => 'page_title',
+                               'value' => 'page_title' ),
                        'conds' => array( 'cl_from IS NULL',
-                                       'page_namespace' => NS_FILE,
-                                       'page_is_redirect' => 0 ),
+                               'page_namespace' => NS_FILE,
+                               'page_is_redirect' => 0 ),
                        'join_conds' => array( 'categorylinks' => array(
-                                       'LEFT JOIN', 'cl_from=page_id' ) )
+                               'LEFT JOIN', 'cl_from=page_id' ) )
                );
        }
 
index 8bc9e48..c6a4215 100644 (file)
@@ -49,16 +49,21 @@ class UncategorizedPagesPage extends PageQueryPage {
        function getQueryInfo() {
                return array(
                        'tables' => array( 'page', 'categorylinks' ),
-                       'fields' => array( 'namespace' => 'page_namespace',
-                                       'title' => 'page_title',
-                                       'value' => 'page_title' ),
+                       'fields' => array(
+                               'namespace' => 'page_namespace',
+                               'title' => 'page_title',
+                               'value' => 'page_title'
+                       ),
                        // default for page_namespace is all content namespaces (if requestedNamespace is false)
                        // otherwise, page_namespace is requestedNamespace
-                       'conds' => array( 'cl_from IS NULL',
-                                       'page_namespace' => ( $this->requestedNamespace !== false ? $this->requestedNamespace : MWNamespace::getContentNamespaces() ),
-                                       'page_is_redirect' => 0 ),
-                       'join_conds' => array( 'categorylinks' => array(
-                                       'LEFT JOIN', 'cl_from = page_id' ) )
+                       'conds' => array(
+                               'cl_from IS NULL',
+                               'page_namespace' => ( $this->requestedNamespace !== false ? $this->requestedNamespace : MWNamespace::getContentNamespaces() ),
+                               'page_is_redirect' => 0
+                       ),
+                       'join_conds' => array(
+                               'categorylinks' => array( 'LEFT JOIN', 'cl_from = page_id' )
+                       )
                );
        }
 
@@ -68,6 +73,7 @@ class UncategorizedPagesPage extends PageQueryPage {
                if ( $this->requestedNamespace === false && count( MWNamespace::getContentNamespaces() ) > 1 ) {
                        return array( 'page_namespace', 'page_title' );
                }
+
                return array( 'page_title' );
        }
 
index 0dd5a0c..acfeb37 100644 (file)
@@ -58,6 +58,7 @@ class PageArchive {
         */
        public static function listAllPages() {
                $dbr = wfGetDB( DB_SLAVE );
+
                return self::listPages( $dbr, '' );
        }
 
@@ -137,7 +138,7 @@ class PageArchive {
                }
 
                $conds = array( 'ar_namespace' => $this->title->getNamespace(),
-                               'ar_title' => $this->title->getDBkey() );
+                       'ar_title' => $this->title->getDBkey() );
 
                $options = array( 'ORDER BY' => 'ar_timestamp DESC' );
 
@@ -406,6 +407,7 @@ class PageArchive {
                                ->inContentLanguage()->text();
                } else {
                        wfDebug( "Undelete: nothing undeleted...\n" );
+
                        return false;
                }
 
@@ -545,6 +547,7 @@ class PageArchive {
 
                        $status = Status::newGood( 0 );
                        $status->warning( "undelete-no-results" );
+
                        return $status;
                }
 
@@ -765,6 +768,7 @@ class SpecialUndelete extends SpecialPage {
                        if ( $user->isAllowed( 'browsearchive' ) ) {
                                $this->showSearchForm();
                        }
+
                        return;
                }
 
@@ -844,6 +848,7 @@ class SpecialUndelete extends SpecialPage {
 
                if ( $result->numRows() == 0 ) {
                        $out->addWikiMsg( 'undelete-no-results' );
+
                        return false;
                }
 
@@ -897,6 +902,7 @@ class SpecialUndelete extends SpecialPage {
 
                if ( !$rev ) {
                        $out->addWikiMsg( 'undeleterevision-missing' );
+
                        return;
                }
 
@@ -906,6 +912,7 @@ class SpecialUndelete extends SpecialPage {
                                        "<div class='mw-warning plainlinks'>\n$1\n</div>\n",
                                        'rev-deleted-text-permission'
                                );
+
                                return;
                        }
 
@@ -1269,32 +1276,31 @@ class SpecialUndelete extends SpecialPage {
                                $unsuppressBox = '';
                        }
 
-                       $table =
-                               Xml::fieldset( $this->msg( 'undelete-fieldset-title' )->text() ) .
-                                       Xml::openElement( 'table', array( 'id' => 'mw-undelete-table' ) ) .
-                                       "<tr>
-                                               <td colspan='2' class='mw-undelete-extrahelp'>" .
-                                       $this->msg( 'undeleteextrahelp' )->parseAsBlock() .
-                                       "</td>
-                               </tr>
-                               <tr>
-                                       <td class='mw-label'>" .
-                                       Xml::label( $this->msg( 'undeletecomment' )->text(), 'wpComment' ) .
-                                       "</td>
-                                       <td class='mw-input'>" .
-                                       Xml::input( 'wpComment', 50, $this->mComment, array( 'id' => 'wpComment', 'autofocus' => true ) ) .
-                                       "</td>
-                               </tr>
-                               <tr>
-                                       <td>&#160;</td>
-                                       <td class='mw-submit'>" .
-                                       Xml::submitButton( $this->msg( 'undeletebtn' )->text(), array( 'name' => 'restore', 'id' => 'mw-undelete-submit' ) ) . ' ' .
-                                       Xml::submitButton( $this->msg( 'undeleteinvert' )->text(), array( 'name' => 'invert', 'id' => 'mw-undelete-invert' ) ) .
-                                       "</td>
-                               </tr>" .
-                                       $unsuppressBox .
-                                       Xml::closeElement( 'table' ) .
-                                       Xml::closeElement( 'fieldset' );
+                       $table = Xml::fieldset( $this->msg( 'undelete-fieldset-title' )->text() ) .
+                               Xml::openElement( 'table', array( 'id' => 'mw-undelete-table' ) ) .
+                               "<tr>
+                                       <td colspan='2' class='mw-undelete-extrahelp'>" .
+                               $this->msg( 'undeleteextrahelp' )->parseAsBlock() .
+                               "</td>
+                       </tr>
+                       <tr>
+                               <td class='mw-label'>" .
+                               Xml::label( $this->msg( 'undeletecomment' )->text(), 'wpComment' ) .
+                               "</td>
+                               <td class='mw-input'>" .
+                               Xml::input( 'wpComment', 50, $this->mComment, array( 'id' => 'wpComment', 'autofocus' => true ) ) .
+                               "</td>
+                       </tr>
+                       <tr>
+                               <td>&#160;</td>
+                               <td class='mw-submit'>" .
+                               Xml::submitButton( $this->msg( 'undeletebtn' )->text(), array( 'name' => 'restore', 'id' => 'mw-undelete-submit' ) ) . ' ' .
+                               Xml::submitButton( $this->msg( 'undeleteinvert' )->text(), array( 'name' => 'invert', 'id' => 'mw-undelete-invert' ) ) .
+                               "</td>
+                       </tr>" .
+                               $unsuppressBox .
+                               Xml::closeElement( 'table' ) .
+                               Xml::closeElement( 'fieldset' );
 
                        $out->addHTML( $table );
                }
index b686a5b..c897332 100644 (file)
@@ -41,14 +41,17 @@ class UnusedCategoriesPage extends QueryPage {
        function getQueryInfo() {
                return array(
                        'tables' => array( 'page', 'categorylinks' ),
-                       'fields' => array( 'namespace' => 'page_namespace',
-                                       'title' => 'page_title',
-                                       'value' => 'page_title' ),
-                       'conds' => array( 'cl_from IS NULL',
-                                       'page_namespace' => NS_CATEGORY,
-                                       'page_is_redirect' => 0 ),
-                       'join_conds' => array( 'categorylinks' => array(
-                                       'LEFT JOIN', 'cl_to = page_title' ) )
+                       'fields' => array(
+                               'namespace' => 'page_namespace',
+                               'title' => 'page_title',
+                               'value' => 'page_title'
+                       ),
+                       'conds' => array(
+                               'cl_from IS NULL',
+                               'page_namespace' => NS_CATEGORY,
+                               'page_is_redirect' => 0
+                       ),
+                       'join_conds' => array( 'categorylinks' => array( 'LEFT JOIN', 'cl_to = page_title' ) )
                );
        }
 
@@ -67,6 +70,7 @@ class UnusedCategoriesPage extends QueryPage {
         */
        function formatResult( $skin, $result ) {
                $title = Title::makeTitle( NS_CATEGORY, $result->title );
+
                return Linker::link( $title, htmlspecialchars( $title->getText() ) );
        }
 
index d332db7..743c587 100644 (file)
@@ -47,28 +47,30 @@ class UnusedimagesPage extends ImageQueryPage {
                global $wgCountCategorizedImagesAsUsed;
                $retval = array(
                        'tables' => array( 'image', 'imagelinks' ),
-                       'fields' => array( 'namespace' => NS_FILE,
-                                       'title' => 'img_name',
-                                       'value' => 'img_timestamp',
-                                       'img_user', 'img_user_text',
-                                       'img_description' ),
+                       'fields' => array(
+                               'namespace' => NS_FILE,
+                               'title' => 'img_name',
+                               'value' => 'img_timestamp',
+                               'img_user', 'img_user_text',
+                               'img_description'
+                       ),
                        'conds' => array( 'il_to IS NULL' ),
-                       'join_conds' => array( 'imagelinks' => array(
-                                       'LEFT JOIN', 'il_to = img_name' ) )
+                       'join_conds' => array( 'imagelinks' => array( 'LEFT JOIN', 'il_to = img_name' ) )
                );
 
                if ( $wgCountCategorizedImagesAsUsed ) {
                        // Order is significant
                        $retval['tables'] = array( 'image', 'page', 'categorylinks',
-                                       'imagelinks' );
+                               'imagelinks' );
                        $retval['conds']['page_namespace'] = NS_FILE;
                        $retval['conds'][] = 'cl_from IS NULL';
                        $retval['conds'][] = 'img_name = page_title';
                        $retval['join_conds']['categorylinks'] = array(
-                                       'LEFT JOIN', 'cl_from = page_id' );
+                               'LEFT JOIN', 'cl_from = page_id' );
                        $retval['join_conds']['imagelinks'] = array(
-                                       'LEFT JOIN', 'il_to = page_title' );
+                               'LEFT JOIN', 'il_to = page_title' );
                }
+
                return $retval;
        }
 
index 1dc9f42..f7e7a31 100644 (file)
@@ -50,12 +50,16 @@ class UnusedtemplatesPage extends QueryPage {
        function getQueryInfo() {
                return array(
                        'tables' => array( 'page', 'templatelinks' ),
-                       'fields' => array( 'namespace' => 'page_namespace',
-                                       'title' => 'page_title',
-                                       'value' => 'page_title' ),
-                       'conds' => array( 'page_namespace' => NS_TEMPLATE,
-                                       'tl_from IS NULL',
-                                       'page_is_redirect' => 0 ),
+                       'fields' => array(
+                               'namespace' => 'page_namespace',
+                               'title' => 'page_title',
+                               'value' => 'page_title'
+                       ),
+                       'conds' => array(
+                               'page_namespace' => NS_TEMPLATE,
+                               'tl_from IS NULL',
+                               'page_is_redirect' => 0
+                       ),
                        'join_conds' => array( 'templatelinks' => array(
                                'LEFT JOIN', array( 'tl_title = page_title',
                                        'tl_namespace = page_namespace' ) ) )
@@ -79,6 +83,7 @@ class UnusedtemplatesPage extends QueryPage {
                        SpecialPage::getTitleFor( 'Whatlinkshere', $title->getPrefixedText() ),
                        $this->msg( 'unusedtemplateswlh' )->escaped()
                );
+
                return $this->getLanguage()->specialList( $pageLink, $wlhLink );
        }
 
index 954e3ff..ec2e7f5 100644 (file)
@@ -46,13 +46,16 @@ class UnwatchedpagesPage extends QueryPage {
        function getQueryInfo() {
                return array(
                        'tables' => array( 'page', 'watchlist' ),
-                       'fields' => array( 'namespace' => 'page_namespace',
-                                       'title' => 'page_title',
-                                       'value' => 'page_namespace' ),
-                       'conds' => array( 'wl_title IS NULL',
-                                       'page_is_redirect' => 0,
-                                       "page_namespace != '" . NS_MEDIAWIKI .
-                                       "'" ),
+                       'fields' => array(
+                               'namespace' => 'page_namespace',
+                               'title' => 'page_title',
+                               'value' => 'page_namespace'
+                       ),
+                       'conds' => array(
+                               'wl_title IS NULL',
+                               'page_is_redirect' => 0,
+                               "page_namespace != '" . NS_MEDIAWIKI . "'"
+                       ),
                        'join_conds' => array( 'watchlist' => array(
                                'LEFT JOIN', array( 'wl_title = page_title',
                                        'wl_namespace = page_namespace' ) ) )
index 27ba78e..521b361 100644 (file)
@@ -179,6 +179,7 @@ class SpecialUpload extends SpecialPage {
                        # Backwards compatibility hook
                        if ( !wfRunHooks( 'UploadForm:initial', array( &$this ) ) ) {
                                wfDebug( "Hook 'UploadForm:initial' broke output of the upload form" );
+
                                return;
                        }
                        $this->showUploadForm( $this->getUploadForm() );
@@ -206,7 +207,6 @@ class SpecialUpload extends SpecialPage {
                } else {
                        $this->getOutput()->addHTML( $form );
                }
-
        }
 
        /**
@@ -315,6 +315,7 @@ class SpecialUpload extends SpecialPage {
                $form->setSubmitText( $this->msg( 'upload-tryagain' )->escaped() );
                $this->showUploadForm( $form );
        }
+
        /**
         * Stashes the upload, shows the main form, but adds a "continue anyway button".
         * Also checks whether there are actually warnings to display.
@@ -400,6 +401,7 @@ class SpecialUpload extends SpecialPage {
                $status = $this->mUpload->fetchFile();
                if ( !$status->isOK() ) {
                        $this->showUploadError( $this->getOutput()->parse( $status->getWikiText() ) );
+
                        return;
                }
 
@@ -417,6 +419,7 @@ class SpecialUpload extends SpecialPage {
                $details = $this->mUpload->verifyUpload();
                if ( $details['status'] != UploadBase::OK ) {
                        $this->processVerificationError( $details );
+
                        return;
                }
 
@@ -425,6 +428,7 @@ class SpecialUpload extends SpecialPage {
                if ( $permErrors !== true ) {
                        $code = array_shift( $permErrors[0] );
                        $this->showRecoverableUploadError( $this->msg( $code, $permErrors[0] )->parse() );
+
                        return;
                }
 
@@ -448,6 +452,7 @@ class SpecialUpload extends SpecialPage {
                $status = $this->mUpload->performUpload( $this->mComment, $pageText, $this->mWatchthis, $this->getUser() );
                if ( !$status->isGood() ) {
                        $this->showUploadError( $this->getOutput()->parse( $status->getWikiText() ) );
+
                        return;
                }
 
@@ -499,6 +504,7 @@ class SpecialUpload extends SpecialPage {
                                $pageText = $comment;
                        }
                }
+
                return $pageText;
        }
 
@@ -628,6 +634,7 @@ class SpecialUpload extends SpecialPage {
                $success = $this->mUpload->unsaveUploadedFile();
                if ( !$success ) {
                        $this->getOutput()->showFileDeleteError( $this->mUpload->getTempPath() );
+
                        return false;
                } else {
                        return true;
@@ -706,6 +713,7 @@ class SpecialUpload extends SpecialPage {
                foreach ( $dupes as $file ) {
                        $gallery->add( $file->getTitle() );
                }
+
                return '<li>' .
                        wfMessage( 'file-exists-duplicate' )->numParams( count( $dupes ) )->parse() .
                        $gallery->toHtml() . "</li>\n";
@@ -740,8 +748,7 @@ class UploadForm extends HTMLForm {
        public function __construct( array $options = array(), IContextSource $context = null ) {
                $this->mWatch = !empty( $options['watch'] );
                $this->mForReUpload = !empty( $options['forreupload'] );
-               $this->mSessionKey = isset( $options['sessionkey'] )
-                               ? $options['sessionkey'] : '';
+               $this->mSessionKey = isset( $options['sessionkey'] ) ? $options['sessionkey'] : '';
                $this->mHideIgnoreWarning = !empty( $options['hideignorewarning'] );
                $this->mDestWarningAck = !empty( $options['destwarningack'] );
                $this->mDestFile = isset( $options['destfile'] ) ? $options['destfile'] : '';
@@ -777,7 +784,6 @@ class UploadForm extends HTMLForm {
                                $this->mSourceIds[] = $field['id'];
                        }
                }
-
        }
 
        /**
@@ -833,12 +839,13 @@ class UploadForm extends HTMLForm {
                        'section' => 'source',
                        'type' => 'file',
                        'id' => 'wpUploadFile',
+                       'radio-id' => 'wpSourceTypeFile',
                        'label-message' => 'sourcefilename',
                        'upload-type' => 'File',
                        'radio' => &$radio,
                        'help' => $this->msg( 'upload-maxfilesize',
-                               $this->getContext()->getLanguage()->formatSize( $this->mMaxUploadSize['file'] ) )
-                               ->parse() .
+                               $this->getContext()->getLanguage()->formatSize( $this->mMaxUploadSize['file'] )
+                       )->parse() .
                                $this->msg( 'word-separator' )->escaped() .
                                $this->msg( 'upload_source_file' )->escaped(),
                        'checked' => $selectedSourceType == 'file',
@@ -850,12 +857,13 @@ class UploadForm extends HTMLForm {
                                'class' => 'UploadSourceField',
                                'section' => 'source',
                                'id' => 'wpUploadFileURL',
+                               'radio-id' => 'wpSourceTypeurl',
                                'label-message' => 'sourceurl',
                                'upload-type' => 'url',
                                'radio' => &$radio,
                                'help' => $this->msg( 'upload-maxfilesize',
-                                       $this->getContext()->getLanguage()->formatSize( $this->mMaxUploadSize['url'] ) )
-                                       ->parse() .
+                                       $this->getContext()->getLanguage()->formatSize( $this->mMaxUploadSize['url'] )
+                               )->parse() .
                                        $this->msg( 'word-separator' )->escaped() .
                                        $this->msg( 'upload_source_url' )->escaped(),
                                'checked' => $selectedSourceType == 'url',
@@ -869,6 +877,7 @@ class UploadForm extends HTMLForm {
                        'default' => $this->getExtensionsMessage(),
                        'raw' => true,
                );
+
                return $descriptor;
        }
 
@@ -881,7 +890,7 @@ class UploadForm extends HTMLForm {
                # Print a list of allowed file extensions, if so configured.  We ignore
                # MIME type here, it's incomprehensible to most people and too long.
                global $wgCheckFileExtensions, $wgStrictFileExtensions,
-               $wgFileExtensions, $wgFileBlacklist;
+                  $wgFileExtensions, $wgFileBlacklist;
 
                if ( $wgCheckFileExtensions ) {
                        if ( $wgStrictFileExtensions ) {
@@ -904,6 +913,7 @@ class UploadForm extends HTMLForm {
                        # Everything is permitted.
                        $extensionsList = '';
                }
+
                return $extensionsList;
        }
 
@@ -1099,7 +1109,6 @@ class UploadForm extends HTMLForm {
        function trySubmit() {
                return false;
        }
-
 }
 
 /**
@@ -1112,23 +1121,32 @@ class UploadSourceField extends HTMLTextField {
         * @return string
         */
        function getLabelHtml( $cellAttributes = array() ) {
+               $id = $this->mParams['id'];
+               $label = Html::rawElement( 'label', array( 'for' => $id ), $this->mLabel );
+
                if ( !empty( $this->mParams['radio'] ) ) {
-                       $id = "wpSourceType{$this->mParams['upload-type']}";
+                       if ( isset( $this->mParams['radio-id'] ) ) {
+                               $radioId = $this->mParams['radio-id'];
+                       } else {
+                               // Old way. For the benefit of extensions that do not define
+                               // the 'radio-id' key.
+                               $radioId = 'wpSourceType' . $this->mParams['upload-type'];
+                       }
+
                        $attribs = array(
                                'name' => 'wpSourceType',
                                'type' => 'radio',
-                               'id' => $id,
+                               'id' => $radioId,
                                'value' => $this->mParams['upload-type'],
                        );
+
                        if ( !empty( $this->mParams['checked'] ) ) {
                                $attribs['checked'] = 'checked';
                        }
-                       $label = Html::rawElement( 'label', array( 'for' => $id ), $this->mLabel );
+
                        $label .= Html::element( 'input', $attribs );
-               } else {
-                       $id = $this->mParams['id'];
-                       $label = Html::rawElement( 'label', array( 'for' => $id ), $this->mLabel );
                }
+
                return Html::rawElement( 'td', array( 'class' => 'mw-label' ) + $cellAttributes, $label );
        }
 
index 37bfa39..16c348f 100644 (file)
@@ -66,6 +66,7 @@ class SpecialUploadStash extends UnlistedSpecialPage {
                if ( $subPage === null || $subPage === '' ) {
                        return $this->showUploads();
                }
+
                return $this->showUpload( $subPage );
        }
 
@@ -136,10 +137,11 @@ class SpecialUploadStash extends UnlistedSpecialPage {
                        $handler = $file->getHandler();
                        if ( $handler ) {
                                $params = $handler->parseParamString( $paramString );
+
                                return array( 'file' => $file, 'type' => $type, 'params' => $params );
                        } else {
                                throw new UploadStashBadPathException( 'No handler found for ' .
-                                               "mime {$file->getMimeType()} of file {$file->getPath()}" );
+                                       "mime {$file->getMimeType()} of file {$file->getPath()}" );
                        }
                }
 
@@ -204,7 +206,6 @@ class SpecialUploadStash extends UnlistedSpecialPage {
                }
 
                return $this->outputLocalFile( $thumbFile );
-
        }
 
        /**
@@ -214,9 +215,9 @@ class SpecialUploadStash extends UnlistedSpecialPage {
         * Note: We rely on NFS to have propagated the file contents to the scaler. However, we do not rely on the thumbnail being created in NFS and then
         *   propagated back to our filesystem. Instead we take the results of the HTTP request instead.
         * Note: no caching is being done here, although we are instructing the client to cache it forever.
-        * @param $file: File object
-        * @param $params: scaling parameters ( e.g. array( width => '50' ) );
-        * @param $flags: scaling flags ( see File:: constants )
+        * @param File $file
+        * @param array $params Scaling parameters ( e.g. array( width => '50' ) );
+        * @param $flags Scaling flags ( see File:: constants )
         * @throws MWException
         * @return boolean success
         */
@@ -248,16 +249,17 @@ class SpecialUploadStash extends UnlistedSpecialPage {
                );
                $req = MWHttpRequest::factory( $scalerThumbUrl, $httpOptions );
                $status = $req->execute();
-               if ( ! $status->isOK() ) {
+               if ( !$status->isOK() ) {
                        $errors = $status->getErrorsArray();
                        $errorStr = "Fetching thumbnail failed: " . print_r( $errors, 1 );
                        $errorStr .= "\nurl = $scalerThumbUrl\n";
                        throw new MWException( $errorStr );
                }
                $contentType = $req->getResponseHeader( "content-type" );
-               if ( ! $contentType ) {
+               if ( !$contentType ) {
                        throw new MWException( "Missing content-type header" );
                }
+
                return $this->outputContents( $req->getContent(), $contentType );
        }
 
@@ -273,6 +275,7 @@ class SpecialUploadStash extends UnlistedSpecialPage {
                if ( $file->getSize() > self::MAX_SERVE_BYTES ) {
                        throw new SpecialUploadStashTooLargeException();
                }
+
                return $file->getRepo()->streamFile( $file->getPath(),
                        array( 'Content-Transfer-Encoding: binary',
                                'Expires: Sun, 17-Jan-2038 19:14:07 GMT' )
@@ -294,6 +297,7 @@ class SpecialUploadStash extends UnlistedSpecialPage {
                }
                self::outputFileHeaders( $contentType, $size );
                print $content;
+
                return true;
        }
 
@@ -301,8 +305,8 @@ class SpecialUploadStash extends UnlistedSpecialPage {
         * Output headers for streaming
         * XXX unsure about encoding as binary; if we received from HTTP perhaps we should use that encoding, concatted with semicolon to mimeType as it usually is.
         * Side effect: preps PHP to write headers to STDOUT.
-        * @param string $contentType : string suitable for content-type header
-        * @param string $size: length in bytes
+        * @param string $contentType String suitable for content-type header
+        * @param string $size Length in bytes
         */
        private static function outputFileHeaders( $contentType, $size ) {
                header( "Content-Type: $contentType", true );
@@ -325,10 +329,12 @@ class SpecialUploadStash extends UnlistedSpecialPage {
                if ( isset( $formData['Clear'] ) ) {
                        $stash = RepoGroup::singleton()->getLocalRepo()->getUploadStash();
                        wfDebug( "stash has: " . print_r( $stash->listFiles(), true ) );
-                       if ( ! $stash->clear() ) {
+
+                       if ( !$stash->clear() ) {
                                return Status::newFatal( 'uploadstash-errclear' );
                        }
                }
+
                return Status::newGood();
        }
 
@@ -390,4 +396,6 @@ class SpecialUploadStash extends UnlistedSpecialPage {
        }
 }
 
-class SpecialUploadStashTooLargeException extends MWException {};
+class SpecialUploadStashTooLargeException extends MWException {
+}
+
index bbe56ec..ec7bfa4 100644 (file)
@@ -101,7 +101,7 @@ class LoginForm extends SpecialPage {
                $this->mCookieCheck = $request->getVal( 'wpCookieCheck' );
                $this->mPosted = $request->wasPosted();
                $this->mCreateaccountMail = $request->getCheck( 'wpCreateaccountMail' )
-                                                                       && $wgEnableEmail;
+                       && $wgEnableEmail;
                $this->mCreateaccount = $request->getCheck( 'wpCreateaccount' ) && !$this->mCreateaccountMail;
                $this->mLoginattempt = $request->getCheck( 'wpLoginattempt' );
                $this->mAction = $request->getVal( 'action' );
@@ -134,9 +134,10 @@ class LoginForm extends SpecialPage {
                # 2. Do not return to PasswordReset after a successful password change
                #    but goto Wiki start page (Main_Page) instead ( bug 33997 )
                $returnToTitle = Title::newFromText( $this->mReturnTo );
-               if ( is_object( $returnToTitle ) && (
-                       $returnToTitle->isSpecial( 'Userlogout' )
-                       || $returnToTitle->isSpecial( 'PasswordReset' ) ) ) {
+               if ( is_object( $returnToTitle )
+                       && ( $returnToTitle->isSpecial( 'Userlogout' )
+                               || $returnToTitle->isSpecial( 'PasswordReset' ) )
+               ) {
                        $this->mReturnTo = '';
                        $this->mReturnToQuery = '';
                }
@@ -172,8 +173,9 @@ class LoginForm extends SpecialPage {
                if ( $this->mRequest->getProtocol() !== 'https' ) {
                        $title = $this->getFullTitle();
                        $query = array(
-                               'returnto' => $this->mReturnTo,
-                               'returntoquery' => $this->mReturnToQuery,
+                               'returnto' => $this->mReturnTo !== '' ? $this->mReturnTo : null,
+                               'returntoquery' => $this->mReturnToQuery !== '' ?
+                                       $this->mReturnToQuery : null,
                                'title' => null,
                        ) + $this->mRequest->getQueryValues();
                        $url = $title->getFullURL( $query, false, PROTO_HTTPS );
@@ -182,6 +184,7 @@ class LoginForm extends SpecialPage {
                                $this->getOutput()->redirect( $url );
                                // Since we only do this redir to change proto, always vary
                                $this->getOutput()->addVaryHeader( 'X-Forwarded-Proto' );
+
                                return;
                        } else {
                                // A wiki without HTTPS login support should set $wgServer to
@@ -195,16 +198,20 @@ class LoginForm extends SpecialPage {
 
                if ( !is_null( $this->mCookieCheck ) ) {
                        $this->onCookieRedirectCheck( $this->mCookieCheck );
+
                        return;
                } elseif ( $this->mPosted ) {
                        if ( $this->mCreateaccount ) {
                                $this->addNewAccount();
+
                                return;
                        } elseif ( $this->mCreateaccountMail ) {
                                $this->addNewAccountMailPassword();
+
                                return;
                        } elseif ( ( 'submitlogin' == $this->mAction ) || $this->mLoginattempt ) {
                                $this->processLogin();
+
                                return;
                        }
                }
@@ -217,6 +224,7 @@ class LoginForm extends SpecialPage {
        function addNewAccountMailPassword() {
                if ( $this->mEmail == '' ) {
                        $this->mainLoginForm( $this->msg( 'noemailcreate' )->escaped() );
+
                        return;
                }
 
@@ -224,6 +232,7 @@ class LoginForm extends SpecialPage {
                if ( !$status->isGood() ) {
                        $error = $status->getMessage();
                        $this->mainLoginForm( $error->toString() );
+
                        return;
                }
 
@@ -260,6 +269,7 @@ class LoginForm extends SpecialPage {
                if ( !$status->isGood() ) {
                        $error = $status->getMessage();
                        $this->mainLoginForm( $error->toString() );
+
                        return false;
                }
 
@@ -323,6 +333,7 @@ class LoginForm extends SpecialPage {
                        wfRunHooks( 'AddNewAccount', array( $u, false ) );
                        $u->addNewUserLogEntry( 'create2', $this->mReason );
                }
+
                return true;
        }
 
@@ -365,6 +376,7 @@ class LoginForm extends SpecialPage {
                # Request forgery checks.
                if ( !self::getCreateaccountToken() ) {
                        self::setCreateaccountToken();
+
                        return Status::newFatal( 'nocookiesfornew' );
                }
 
@@ -386,6 +398,7 @@ class LoginForm extends SpecialPage {
                } elseif ( $creationBlock instanceof Block ) {
                        // Throws an ErrorPageError.
                        $this->userBlockedMessage( $creationBlock );
+
                        // This should never be reached.
                        return false;
                }
@@ -393,7 +406,7 @@ class LoginForm extends SpecialPage {
                # Include checks that will include GlobalBlocking (Bug 38333)
                $permErrors = $this->getPageTitle()->getUserPermissionsErrors( 'createaccount', $currentUser, true );
                if ( count( $permErrors ) ) {
-                               throw new PermissionsError( 'createaccount', $permErrors );
+                       throw new PermissionsError( 'createaccount', $permErrors );
                }
 
                $ip = $this->getRequest()->getIP();
@@ -431,6 +444,7 @@ class LoginForm extends SpecialPage {
                                if ( !is_array( $valid ) ) {
                                        $valid = array( $valid, $wgMinimalPasswordLength );
                                }
+
                                return call_user_func_array( 'Status::newFatal', $valid );
                        }
                }
@@ -462,6 +476,7 @@ class LoginForm extends SpecialPage {
                                // To return a different error code, return a Status object.
                                $abortError = new Message( 'createaccount-hook-aborted', array( $abortError ) );
                                $abortError->text();
+
                                return Status::newFatal( $abortError );
                        } else {
                                // For MediaWiki 1.23+ and updated hooks, return the Status object
@@ -492,6 +507,7 @@ class LoginForm extends SpecialPage {
                }
 
                self::clearCreateaccountToken();
+
                return $this->initUser( $u, false );
        }
 
@@ -559,6 +575,7 @@ class LoginForm extends SpecialPage {
                // If the user doesn't have a login token yet, set one.
                if ( !self::getLoginToken() ) {
                        self::setLoginToken();
+
                        return self::NEED_TOKEN;
                }
                // If the user didn't pass a login token, tell them we need one
@@ -584,6 +601,7 @@ class LoginForm extends SpecialPage {
                // will effectively be using stale data.
                if ( $this->getUser()->getName() === $this->mUsername ) {
                        wfDebug( __METHOD__ . ": already logged in as {$this->mUsername}\n" );
+
                        return self::SUCCESS;
                }
 
@@ -609,6 +627,7 @@ class LoginForm extends SpecialPage {
                $msg = null;
                if ( !wfRunHooks( 'AbortLogin', array( $u, $this->mPassword, &$abort, &$msg ) ) ) {
                        $this->mAbortLoginErrorMsg = $msg;
+
                        return $abort;
                }
 
@@ -673,6 +692,7 @@ class LoginForm extends SpecialPage {
                        $retval = self::SUCCESS;
                }
                wfRunHooks( 'LoginAuthenticateAudit', array( $u, $this->mPassword, $retval ) );
+
                return $retval;
        }
 
@@ -731,17 +751,23 @@ class LoginForm extends SpecialPage {
 
                if ( $this->getUser()->isBlockedFromCreateAccount() ) {
                        wfDebug( __METHOD__ . ": user is blocked from account creation\n" );
+
                        return self::CREATE_BLOCKED;
                }
+
                if ( !$wgAuth->autoCreate() ) {
                        return self::NOT_EXISTS;
                }
+
                if ( !$wgAuth->userExists( $user->getName() ) ) {
                        wfDebug( __METHOD__ . ": user does not exist\n" );
+
                        return self::NOT_EXISTS;
                }
+
                if ( !$wgAuth->authenticate( $user->getName(), $this->mPassword ) ) {
                        wfDebug( __METHOD__ . ": \$wgAuth->authenticate() returned false, aborting\n" );
+
                        return self::WRONG_PLUGIN_PASS;
                }
 
@@ -750,6 +776,7 @@ class LoginForm extends SpecialPage {
                        // Hook point to add extra creation throttles and blocks
                        wfDebug( "LoginForm::attemptAutoCreate: a hook blocked creation: $abortError\n" );
                        $this->mAbortLoginErrorMsg = $abortError;
+
                        return self::ABORTED;
                }
 
@@ -759,6 +786,7 @@ class LoginForm extends SpecialPage {
                if ( !$status->isOK() ) {
                        $errors = $status->getErrorsByType( 'error' );
                        $this->mAbortLoginErrorMsg = $errors[0]['message'];
+
                        return self::ABORTED;
                }
 
@@ -766,7 +794,8 @@ class LoginForm extends SpecialPage {
        }
 
        function processLogin() {
-               global $wgMemc, $wgLang, $wgSecureLogin, $wgPasswordAttemptThrottle;
+               global $wgMemc, $wgLang, $wgSecureLogin, $wgPasswordAttemptThrottle,
+                          $wgInvalidPasswordReset;
 
                switch ( $this->authenticateUserData() ) {
                        case self::SUCCESS:
@@ -807,6 +836,13 @@ class LoginForm extends SpecialPage {
                                        $this->renewSessionId();
                                        if ( $this->getUser()->getPasswordExpired() == 'soft' ) {
                                                $this->resetLoginForm( $this->msg( 'resetpass-expired-soft' ) );
+                                       } elseif ( $wgInvalidPasswordReset
+                                               && !$user->isValidPassword( $this->mPassword )
+                                       ) {
+                                               $status = $user->checkPasswordValidity( $this->mPassword );
+                                               $this->resetLoginForm(
+                                                       $status->getMessage( 'resetpass-validity-soft' )
+                                               );
                                        } else {
                                                $this->successfulLogin();
                                        }
@@ -861,8 +897,8 @@ class LoginForm extends SpecialPage {
                        case self::THROTTLED:
                                $error = $this->mAbortLoginErrorMsg ?: 'login-throttled';
                                $this->mainLoginForm( $this->msg( $error )
-                               ->params ( $this->getLanguage()->formatDuration( $wgPasswordAttemptThrottle['seconds'] ) )
-                               ->text()
+                                       ->params( $this->getLanguage()->formatDuration( $wgPasswordAttemptThrottle['seconds'] ) )
+                                       ->text()
                                );
                                break;
                        case self::USER_BLOCKED:
@@ -1124,6 +1160,7 @@ class LoginForm extends SpecialPage {
                                throw new PermissionsError( 'createaccount', $permErrors );
                        } elseif ( $user->isBlockedFromCreateAccount() ) {
                                $this->userBlockedMessage( $user->isBlockedFromCreateAccount() );
+
                                return;
                        } elseif ( wfReadOnly() ) {
                                throw new ReadOnlyError;
@@ -1315,6 +1352,7 @@ class LoginForm extends SpecialPage {
         */
        function hasSessionCookie() {
                global $wgDisableCookieCheck;
+
                return $wgDisableCookieCheck ? true : $this->getRequest()->checkSessionCookie();
        }
 
@@ -1324,6 +1362,7 @@ class LoginForm extends SpecialPage {
         */
        public static function getLoginToken() {
                global $wgRequest;
+
                return $wgRequest->getSessionData( 'wsLoginToken' );
        }
 
@@ -1351,6 +1390,7 @@ class LoginForm extends SpecialPage {
         */
        public static function getCreateaccountToken() {
                global $wgRequest;
+
                return $wgRequest->getSessionData( 'wsCreateaccountToken' );
        }
 
@@ -1433,6 +1473,7 @@ class LoginForm extends SpecialPage {
                                        $links[] = $this->makeLanguageSelectorLink( $parts[0], trim( $parts[1] ) );
                                }
                        }
+
                        return count( $links ) > 0 ? $this->msg( 'loginlanguagelabel' )->rawParams(
                                $this->getLanguage()->pipeList( $links ) )->escaped() : '';
                } else {
index a6b3602..e0878f1 100644 (file)
@@ -55,6 +55,7 @@ class UserrightsPage extends SpecialPage {
                if ( $user->getId() == 0 ) {
                        return false;
                }
+
                return !empty( $available['add'] )
                        || !empty( $available['remove'] )
                        || ( ( $this->isself || !$checkIfSelf ) &&
@@ -118,6 +119,7 @@ class UserrightsPage extends SpecialPage {
                                $out = $this->getOutput();
                                $out->wrapWikiMsg( "<div class=\"successbox\">\n$1\n</div>", 'userrights-removed-self' );
                                $out->returnToMain();
+
                                return;
                        }
 
@@ -148,6 +150,7 @@ class UserrightsPage extends SpecialPage {
                        $status = $this->fetchUser( $this->mTarget );
                        if ( !$status->isOK() ) {
                                $this->getOutput()->addWikiText( $status->getWikiText() );
+
                                return;
                        }
 
@@ -156,7 +159,6 @@ class UserrightsPage extends SpecialPage {
                                $targetUser->clearInstanceCache(); // bug 38989
                        }
 
-
                        if ( $request->getVal( 'conflictcheck-originalgroups' ) !== implode( ',', $targetUser->getGroups() ) ) {
                                $out->addWikiMsg( 'userrights-conflict' );
                        } else {
@@ -167,6 +169,7 @@ class UserrightsPage extends SpecialPage {
                                );
 
                                $out->redirect( $this->getSuccessURL() );
+
                                return;
                        }
                }
@@ -267,6 +270,7 @@ class UserrightsPage extends SpecialPage {
                if ( $newGroups != $oldGroups ) {
                        $this->addLogEntry( $user, $oldGroups, $newGroups, $reason );
                }
+
                return array( $add, $remove );
        }
 
@@ -294,6 +298,7 @@ class UserrightsPage extends SpecialPage {
                $status = $this->fetchUser( $username );
                if ( !$status->isOK() ) {
                        $this->getOutput()->addWikiText( $status->getWikiText() );
+
                        return;
                } else {
                        $user = $status->value;
@@ -487,10 +492,10 @@ class UserrightsPage extends SpecialPage {
                }
 
                $userToolLinks = Linker::userToolLinks(
-                               $user->getId(),
-                               $user->getName(),
-                               false, /* default for redContribsWhenNoEdits */
-                               Linker::TOOL_LINKS_EMAIL /* Add "send e-mail" link */
+                       $user->getId(),
+                       $user->getName(),
+                       false, /* default for redContribsWhenNoEdits */
+                       Linker::TOOL_LINKS_EMAIL /* Add "send e-mail" link */
                );
 
                $this->getOutput()->addHTML(
@@ -641,6 +646,7 @@ class UserrightsPage extends SpecialPage {
        private function canRemove( $group ) {
                // $this->changeableGroups()['remove'] doesn't work, of course. Thanks, PHP.
                $groups = $this->changeableGroups();
+
                return in_array( $group, $groups['remove'] ) || ( $this->isself && in_array( $group, $groups['remove-self'] ) );
        }
 
@@ -650,6 +656,7 @@ class UserrightsPage extends SpecialPage {
         */
        private function canAdd( $group ) {
                $groups = $this->changeableGroups();
+
                return in_array( $group, $groups['add'] ) || ( $this->isself && in_array( $group, $groups['add-self'] ) );
        }
 
index 870fa11..98b30b7 100644 (file)
@@ -255,6 +255,7 @@ class SpecialVersion extends SpecialPage {
                }
 
                wfProfileOut( __METHOD__ );
+
                return $version;
        }
 
@@ -283,6 +284,7 @@ class SpecialVersion extends SpecialPage {
                }
 
                wfProfileOut( __METHOD__ );
+
                return $v;
        }
 
@@ -323,6 +325,7 @@ class SpecialVersion extends SpecialPage {
                        preg_match( "/^(\d+\.\d+)/", $wgVersion, $versionParts );
                        $versionUrl = "https://www.mediawiki.org/wiki/MediaWiki_{$versionParts[1]}";
                }
+
                return "[$versionUrl $wgVersion]";
        }
 
@@ -396,6 +399,7 @@ class SpecialVersion extends SpecialPage {
         */
        public static function getExtensionTypeName( $type ) {
                $types = self::getExtensionTypes();
+
                return isset( $types[$type] ) ? $types[$type] : $types['other'];
        }
 
@@ -469,7 +473,7 @@ class SpecialVersion extends SpecialPage {
                                )
                        );
 
-                       array_walk( $tags, function( &$value ) {
+                       array_walk( $tags, function ( &$value ) {
                                $value = '&lt;' . htmlentities( $value ) . '&gt;';
                        } );
                        $out .= $this->listToText( $tags );
@@ -490,7 +494,7 @@ class SpecialVersion extends SpecialPage {
 
                $fhooks = $wgParser->getFunctionHooks();
                if ( count( $fhooks ) ) {
-                       $out = Html::rawElement( 'h2', array( 'class' => 'mw-headline' ) , Linker::makeExternalLink(
+                       $out = Html::rawElement( 'h2', array( 'class' => 'mw-headline' ), Linker::makeExternalLink(
                                '//www.mediawiki.org/wiki/Special:MyLanguage/Manual:Parser_functions',
                                $this->msg( 'version-parser-function-hooks' )->parse(),
                                false /* msg()->parse() already escapes */
@@ -625,7 +629,7 @@ class SpecialVersion extends SpecialPage {
                                );
                        } else {
                                $vcsVerString = Html::element( 'span',
-                                       array( 'class' => 'mw-version-ext-vcs-version'),
+                                       array( 'class' => 'mw-version-ext-vcs-version' ),
                                        "({$vcsVersion})"
                                );
                        }
@@ -633,9 +637,9 @@ class SpecialVersion extends SpecialPage {
 
                        if ( $vcsDate ) {
                                $vcsTimeString = Html::element( 'span',
-                                               array( 'class' => 'mw-version-ext-vcs-timestamp'),
-                                               $this->getLanguage()->timeanddate( $vcsDate )
-                                       );
+                                       array( 'class' => 'mw-version-ext-vcs-timestamp' ),
+                                       $this->getLanguage()->timeanddate( $vcsDate )
+                               );
                                $versionString .= " {$vcsTimeString}";
                        }
                        $versionString = Html::rawElement( 'span',
@@ -784,6 +788,7 @@ class SpecialVersion extends SpecialPage {
         */
        private function IPInfo() {
                $ip = str_replace( '--', ' - ', htmlspecialchars( $this->getRequest()->getIP() ) );
+
                return "<!-- visited from $ip -->\n<span style='display:none'>visited from $ip</span>";
        }
 
@@ -824,13 +829,11 @@ class SpecialVersion extends SpecialPage {
                                        $text = $this->msg( 'version-poweredby-others' )->text();
                                }
                                $list[] = $text;
-
                        } elseif ( substr( $item, -5 ) == ' ...]' ) {
                                $hasOthers = true;
                                $list[] = $this->getOutput()->parseInline(
                                        substr( $item, 0, -4 ) . $this->msg( 'version-poweredby-others' )->text() . "]"
                                );
-
                        } else {
                                $list[] = $this->getOutput()->parseInline( $item );
                        }
@@ -850,7 +853,7 @@ class SpecialVersion extends SpecialPage {
         * Obtains the full path of an extensions authors or credits file if
         * one exists.
         *
-        * @param string $extDir: Path to the extensions root directory
+        * @param string $extDir Path to the extensions root directory
         *
         * @since 1.23
         *
@@ -879,7 +882,7 @@ class SpecialVersion extends SpecialPage {
         * Obtains the full path of an extensions copying or license file if
         * one exists.
         *
-        * @param string $extDir: Path to the extensions root directory
+        * @param string $extDir Path to the extensions root directory
         *
         * @since 1.23
         *
@@ -924,6 +927,7 @@ class SpecialVersion extends SpecialPage {
                        if ( $sort ) {
                                sort( $list );
                        }
+
                        return $this->getLanguage()->listToText( array_map( array( __CLASS__, 'arrayToString' ), $list ) );
                }
        }
@@ -942,6 +946,7 @@ class SpecialVersion extends SpecialPage {
                }
                if ( is_object( $list ) ) {
                        $class = wfMessage( 'parentheses' )->params( get_class( $list ) )->escaped();
+
                        return $class;
                } elseif ( !is_array( $list ) ) {
                        return $list;
@@ -951,6 +956,7 @@ class SpecialVersion extends SpecialPage {
                        } else {
                                $class = $list[0];
                        }
+
                        return wfMessage( 'parentheses' )->params( "$class, {$list[1]}" )->escaped();
                }
        }
@@ -1063,6 +1069,7 @@ class SpecialVersion extends SpecialPage {
         */
        public static function getGitHeadSha1( $dir ) {
                $repo = new GitInfo( $dir );
+
                return $repo->getHeadSHA1();
        }
 
@@ -1111,11 +1118,11 @@ class SpecialVersion extends SpecialPage {
                }
 
                $out .= Html::closeElement( 'table' );
+
                return $out;
        }
 
        protected function getGroupName() {
                return 'wiki';
        }
-
 }
index 51d9af3..b8c0bb2 100644 (file)
@@ -38,9 +38,11 @@ class WantedCategoriesPage extends WantedQueryPage {
        function getQueryInfo() {
                return array(
                        'tables' => array( 'categorylinks', 'page' ),
-                       'fields' => array( 'namespace' => NS_CATEGORY,
-                                       'title' => 'cl_to',
-                                       'value' => 'COUNT(*)' ),
+                       'fields' => array(
+                               'namespace' => NS_CATEGORY,
+                               'title' => 'cl_to',
+                               'value' => 'COUNT(*)'
+                       ),
                        'conds' => array( 'page_title IS NULL' ),
                        'options' => array( 'GROUP BY' => 'cl_to' ),
                        'join_conds' => array( 'page' => array( 'LEFT JOIN',
@@ -73,7 +75,7 @@ class WantedCategoriesPage extends WantedQueryPage {
                        __METHOD__
                );
                foreach ( $categoryRes as $row ) {
-                       $this->currentCategoryCounts[ $row->cat_title ] = intval( $row->cat_pages );
+                       $this->currentCategoryCounts[$row->cat_title] = intval( $row->cat_pages );
                }
 
                // Back to start for display
@@ -104,8 +106,8 @@ class WantedCategoriesPage extends WantedQueryPage {
                } else {
                        $plink = Linker::link( $nt, $text );
 
-                       $currentValue = isset( $this->currentCategoryCounts[ $result->title ] )
-                               ? $this->currentCategoryCounts[ $result->title ]
+                       $currentValue = isset( $this->currentCategoryCounts[$result->title] )
+                               ? $this->currentCategoryCounts[$result->title]
                                : 0;
 
                        // If the category has been created or emptied since the list was refreshed, strike it
index b5c1fdb..fa68504 100644 (file)
@@ -75,9 +75,11 @@ class WantedFilesPage extends WantedQueryPage {
        function getQueryInfo() {
                return array(
                        'tables' => array( 'imagelinks', 'image' ),
-                       'fields' => array( 'namespace' => NS_FILE,
-                                       'title' => 'il_to',
-                                       'value' => 'COUNT(*)' ),
+                       'fields' => array(
+                               'namespace' => NS_FILE,
+                               'title' => 'il_to',
+                               'value' => 'COUNT(*)'
+                       ),
                        'conds' => array( 'img_name IS NULL' ),
                        'options' => array( 'GROUP BY' => 'il_to' ),
                        'join_conds' => array( 'image' =>
index acec4ea..c54d9f4 100644 (file)
@@ -69,8 +69,7 @@ class WantedPagesPage extends WantedQueryPage {
                        ),
                        'conds' => array(
                                'pg1.page_namespace IS NULL',
-                               "pl_namespace NOT IN ( '" . NS_USER .
-                                       "', '" . NS_USER_TALK . "' )",
+                               "pl_namespace NOT IN ( '" . NS_USER . "', '" . NS_USER_TALK . "' )",
                                "pg2.page_namespace != '" . NS_MEDIAWIKI . "'"
                        ),
                        'options' => array(
@@ -89,6 +88,7 @@ class WantedPagesPage extends WantedQueryPage {
                );
                // Replacement for the WantedPages::getSQL hook
                wfRunHooks( 'WantedPages::getQueryInfo', array( &$this, &$query ) );
+
                return $query;
        }
 
index d13fa03..550e2e3 100644 (file)
@@ -40,16 +40,19 @@ class WantedTemplatesPage extends WantedQueryPage {
        function getQueryInfo() {
                return array(
                        'tables' => array( 'templatelinks', 'page' ),
-                       'fields' => array( 'namespace' => 'tl_namespace',
-                                       'title' => 'tl_title',
-                                       'value' => 'COUNT(*)' ),
-                       'conds' => array( 'page_title IS NULL',
-                                       'tl_namespace' => NS_TEMPLATE ),
-                       'options' => array(
-                               'GROUP BY' => array( 'tl_namespace', 'tl_title' ) ),
+                       'fields' => array(
+                               'namespace' => 'tl_namespace',
+                               'title' => 'tl_title',
+                               'value' => 'COUNT(*)'
+                       ),
+                       'conds' => array(
+                               'page_title IS NULL',
+                               'tl_namespace' => NS_TEMPLATE
+                       ),
+                       'options' => array( 'GROUP BY' => array( 'tl_namespace', 'tl_title' ) ),
                        'join_conds' => array( 'page' => array( 'LEFT JOIN',
-                                       array( 'page_namespace = tl_namespace',
-                                               'page_title = tl_title' ) ) )
+                               array( 'page_namespace = tl_namespace',
+                                       'page_title = tl_title' ) ) )
                );
        }
 
index fbdaec4..68a514c 100644 (file)
@@ -58,6 +58,7 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                        }
 
                        $output->redirect( $title->getLocalURL() );
+
                        return;
                }
 
@@ -66,11 +67,13 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                $user = $this->getUser();
                $opts = $this->getOptions();
 
-               if ( ( $wgEnotifWatchlist || $wgShowUpdatedMarker ) && $request->getVal( 'reset' ) &&
-                       $request->wasPosted() )
-               {
+               if ( ( $wgEnotifWatchlist || $wgShowUpdatedMarker )
+                       && $request->getVal( 'reset' )
+                       && $request->wasPosted()
+               ) {
                        $user->clearAllNotifications();
                        $output->redirect( $this->getPageTitle()->getFullURL( $opts->getChangedValues() ) );
+
                        return;
                }
 
@@ -145,6 +148,7 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                // methods defined on WebRequest and removing this dependency would cause some code duplication.
                $request = new DerivativeRequest( $this->getRequest(), $params );
                $opts->fetchValuesFromRequest( $request );
+
                return $opts;
        }
 
@@ -246,7 +250,6 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                        ), LIST_OR );
                }
 
-
                ChangeTags::modifyDisplayQuery(
                        $tables,
                        $fields,
@@ -380,7 +383,8 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                if ( $opts['days'] > 0 ) {
                        $timestamp = wfTimestampNow();
                        $wlInfo = $this->msg( 'wlnote2' )->numParams( round( $opts['days'] * 24 ) )->params(
-                               $lang->userDate( $timestamp, $user ), $lang->userTime( $timestamp, $user ) )->parse() . "<br />\n";
+                               $lang->userDate( $timestamp, $user ), $lang->userTime( $timestamp, $user )
+                       )->parse() . "<br />\n";
                }
 
                $nondefaults = $opts->getChangedValues();
@@ -558,6 +562,7 @@ class SpecialWatchlist extends ChangesListSpecialPage {
                foreach ( $days as $d ) {
                        $days[$i++] = $this->daysLink( $d, $options );
                }
+
                return $this->msg( 'wlshowlast' )->rawParams(
                        $this->getLanguage()->pipeList( $hours ),
                        $this->getLanguage()->pipeList( $days ),
index 789ea76..2e07309 100644 (file)
@@ -26,7 +26,7 @@
  *
  * @ingroup SpecialPage
  */
-class SpecialWhatLinksHere extends SpecialPage {
+class SpecialWhatLinksHere extends IncludableSpecialPage {
 
        /**
         * @var FormOptions
@@ -79,6 +79,7 @@ class SpecialWhatLinksHere extends SpecialPage {
                $this->target = Title::newFromURL( $opts->getValue( 'target' ) );
                if ( !$this->target ) {
                        $out->addHTML( $this->whatlinkshereForm() );
+
                        return;
                }
 
@@ -88,9 +89,7 @@ class SpecialWhatLinksHere extends SpecialPage {
 
                $out->setPageTitle( $this->msg( 'whatlinkshere-title', $this->target->getPrefixedText() ) );
                $out->addBacklinkSubtitle( $this->target );
-
-               $this->showIndirectLinks( 0, $this->target, $opts->getValue( 'limit' ),
-                       $opts->getValue( 'from' ), $opts->getValue( 'back' ) );
+               $this->showIndirectLinks( 0, $this->target, $opts->getValue( 'limit' ), $opts->getValue( 'from' ), $opts->getValue( 'back' ) );
        }
 
        /**
@@ -160,7 +159,7 @@ class SpecialWhatLinksHere extends SpecialPage {
                        'rd_namespace' => $target->getNamespace(),
                        'rd_title' => $target->getDBkey(),
                        'rd_interwiki = ' . $dbr->addQuotes( '' ) . ' OR rd_interwiki IS NULL'
-               )));
+               ) ) );
 
                if ( $fetchlinks ) {
                        $options['ORDER BY'] = 'pl_from';
@@ -188,16 +187,18 @@ class SpecialWhatLinksHere extends SpecialPage {
 
                if ( ( !$fetchlinks || !$plRes->numRows() ) && ( $hidetrans || !$tlRes->numRows() ) && ( $hideimages || !$ilRes->numRows() ) ) {
                        if ( 0 == $level ) {
-                               $out->addHTML( $this->whatlinkshereForm() );
-
-                               // Show filters only if there are links
-                               if ( $hidelinks || $hidetrans || $hideredirs || $hideimages ) {
-                                       $out->addHTML( $this->getFilterPanel() );
+                               if ( !$this->including() ) {
+                                       $out->addHTML( $this->whatlinkshereForm() );
+
+                                       // Show filters only if there are links
+                                       if ( $hidelinks || $hidetrans || $hideredirs || $hideimages ) {
+                                               $out->addHTML( $this->getFilterPanel() );
+                                       }
+                                       $errMsg = is_int( $namespace ) ? 'nolinkshere-ns' : 'nolinkshere';
+                                       $out->addWikiMsg( $errMsg, $this->target->getPrefixedText() );
                                }
-
-                               $errMsg = is_int( $namespace ) ? 'nolinkshere-ns' : 'nolinkshere';
-                               $out->addWikiMsg( $errMsg, $this->target->getPrefixedText() );
                        }
+
                        return;
                }
 
@@ -246,14 +247,15 @@ class SpecialWhatLinksHere extends SpecialPage {
                $prevId = $from;
 
                if ( $level == 0 ) {
-                       $out->addHTML( $this->whatlinkshereForm() );
-                       $out->addHTML( $this->getFilterPanel() );
-                       $out->addWikiMsg( 'linkshere', $this->target->getPrefixedText() );
+                       if ( !$this->including() ) {
+                               $out->addHTML( $this->whatlinkshereForm() );
+                               $out->addHTML( $this->getFilterPanel() );
+                               $out->addWikiMsg( 'linkshere', $this->target->getPrefixedText() );
 
-                       $prevnext = $this->getPrevNext( $prevId, $nextId );
-                       $out->addHTML( $prevnext );
+                               $prevnext = $this->getPrevNext( $prevId, $nextId );
+                               $out->addHTML( $prevnext );
+                       }
                }
-
                $out->addHTML( $this->listStart( $level ) );
                foreach ( $rows as $row ) {
                        $nt = Title::makeTitle( $row->page_namespace, $row->page_title );
@@ -270,7 +272,9 @@ class SpecialWhatLinksHere extends SpecialPage {
                $out->addHTML( $this->listEnd() );
 
                if ( $level == 0 ) {
-                       $out->addHTML( $prevnext );
+                       if ( !$this->including() ) {
+                               $out->addHTML( $prevnext );
+                       }
                }
        }
 
@@ -412,7 +416,7 @@ class SpecialWhatLinksHere extends SpecialPage {
 
                # Target input
                $f .= Xml::inputLabel( $this->msg( 'whatlinkshere-page' )->text(), 'target',
-                               'mw-whatlinkshere-target', 40, $target );
+                       'mw-whatlinkshere-target', 40, $target );
 
                $f .= ' ';
 
@@ -467,6 +471,7 @@ class SpecialWhatLinksHere extends SpecialPage {
                        $links[] = $this->msg( "whatlinkshere-{$type}" )->rawParams(
                                $this->makeSelfLink( $msg, array_merge( $changed, $overrides ) ) )->escaped();
                }
+
                return Xml::fieldset( $this->msg( 'whatlinkshere-filters' )->text(), $this->getLanguage()->pipeList( $links ) );
        }
 
index 2ddde43..edb1558 100644 (file)
@@ -80,19 +80,23 @@ class WithoutInterwikiPage extends PageQueryPage {
        function getQueryInfo() {
                $query = array(
                        'tables' => array( 'page', 'langlinks' ),
-                       'fields' => array( 'namespace' => 'page_namespace',
-                                       'title' => 'page_title',
-                                       'value' => 'page_title' ),
-                       'conds' => array( 'll_title IS NULL',
-                                       'page_namespace' => MWNamespace::getContentNamespaces(),
-                                       'page_is_redirect' => 0 ),
-                       'join_conds' => array( 'langlinks' => array(
-                                       'LEFT JOIN', 'll_from = page_id' ) )
+                       'fields' => array(
+                               'namespace' => 'page_namespace',
+                               'title' => 'page_title',
+                               'value' => 'page_title'
+                       ),
+                       'conds' => array(
+                               'll_title IS NULL',
+                               'page_namespace' => MWNamespace::getContentNamespaces(),
+                               'page_is_redirect' => 0
+                       ),
+                       'join_conds' => array( 'langlinks' => array( 'LEFT JOIN', 'll_from = page_id' ) )
                );
                if ( $this->prefix ) {
                        $dbr = wfGetDB( DB_SLAVE );
                        $query['conds'][] = 'page_title ' . $dbr->buildLike( $this->prefix, $dbr->anyString() );
                }
+
                return $query;
        }
 
index 3f49ed3..d5b8d8b 100644 (file)
@@ -75,16 +75,21 @@ if ( !function_exists( 'session_name' ) ) {
 
                <h1>MediaWiki <?php echo htmlspecialchars( $wgVersion ) ?></h1>
                <div class='error'>
-               <p>LocalSettings.php not found.</p>
-               <p>
-               <?php
-               if ( $installerStarted ) {
-                       echo "Please <a href=\"" . htmlspecialchars( $path ) . "mw-config/index." . htmlspecialchars( $ext ) . "\"> complete the installation</a> and download LocalSettings.php.";
-               } else {
-                       echo "Please <a href=\"" . htmlspecialchars( $path ) . "mw-config/index." . htmlspecialchars( $ext ) . "\"> set up the wiki</a> first.";
-               }
-               ?>
-               </p>
+               <?php if ( !file_exists( MW_CONFIG_FILE ) ) { ?>
+                       <p>LocalSettings.php not found.</p>
+                       <p>
+                       <?php
+                       if ( $installerStarted ) {
+                               echo "Please <a href=\"" . htmlspecialchars( $path ) . "mw-config/index." . htmlspecialchars( $ext ) . "\"> complete the installation</a> and download LocalSettings.php.";
+                       } else {
+                               echo "Please <a href=\"" . htmlspecialchars( $path ) . "mw-config/index." . htmlspecialchars( $ext ) . "\"> set up the wiki</a> first.";
+                       }
+                       ?>
+                       </p>
+               <?php } else { ?>
+                       <p>LocalSettings.php not readable.</p>
+                       <p>Please correct file permissions and try again.</p>
+               <?php } ?>
 
                </div>
        </body>
index 0cb83d5..d1aef1d 100644 (file)
@@ -58,15 +58,23 @@ class UsercreateTemplate extends BaseTemplate {
                        <section class="mw-form-header">
                                <?php $this->html( 'header' ); /* extensions such as ConfirmEdit add form HTML here */ ?>
                        </section>
+                       <!-- This element is used by the mediawiki.special.userlogin.signup.js module. -->
+                       <div
+                               id="mw-createacct-status-area"
+                               <?php if ( $this->data['message'] ) { ?>
+                                       class="<?php echo $this->data['messagetype']; ?>box"
+                               <?php } else { ?>
+                                       style="display: none;"
+                               <?php } ?>
+                       >
                        <?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>
 
                        <div>
                                <label for='wpName2'>
@@ -212,7 +220,7 @@ class UsercreateTemplate extends BaseTemplate {
                                                                                echo 'checked="checked"';
                                                                        } ?>
                                                                >
-                                                               <?php $this->msg( $inputItem['msg'] ); ?>
+                                                               <?php $this->msgHtml( $inputItem['msg'] ); ?>
                                                        </label>
                                                <?php
                                                } else {
index 68097e3..29908d7 100644 (file)
@@ -146,16 +146,25 @@ class UserloginTemplate extends BaseTemplate {
 
                        <div>
                                <?php
-                               echo Html::input( 'wpLoginAttempt', $this->getMsg( 'pt-login' )->text(), 'submit', array(
+                               echo Html::input( 'wpLoginAttempt', $this->getMsg( 'pt-login-button' )->text(), 'submit', array(
                                        'id' => 'wpLoginAttempt',
                                        'tabindex' => '6',
                                        'class' => 'mw-ui-button mw-ui-big mw-ui-block mw-ui-constructive'
                                ) );
                                ?>
                        </div>
-
                        <div id="mw-userlogin-help">
-                               <?php echo $this->getMsg( 'userlogin-helplink' )->parse(); ?>
+                               <?php
+                               echo Html::element(
+                                       'a',
+                                       array(
+                                               'href' => Skin::makeInternalOrExternalUrl(
+                                                       wfMessage( 'helplogin-url' )->inContentLanguage()->text()
+                                               ),
+                                       ),
+                                       $this->getMsg( 'userlogin-helplink2' )->text()
+                               );
+                               ?>
                        </div>
                        <?php if ( $this->haveData( 'createOrLoginHref' ) ) { ?>
                                <?php if ( $this->data['loggedin'] ) { ?>
index db7a24e..d4be08c 100644 (file)
@@ -786,7 +786,7 @@ abstract class UploadBase {
                        return $this->mTitle;
                } elseif ( $blackListedExtensions ||
                                ( $wgCheckFileExtensions && $wgStrictFileExtensions &&
-                                       !$this->checkFileExtensionList( $ext, $wgFileExtensions ) ) ) {
+                                       !$this->checkFileExtension( $this->mFinalExtension, $wgFileExtensions ) ) ) {
                        $this->mBlackListedExtensions = $blackListedExtensions;
                        $this->mTitleError = self::FILETYPE_BADTYPE;
                        $this->mTitle = null;
@@ -1195,7 +1195,7 @@ abstract class UploadBase {
         */
        public static function checkSvgPICallback( $target, $data ) {
                // Don't allow external stylesheets (bug 57550)
-               if ( preg_match( '/xml-stylesheet/i', $target) ) {
+               if ( preg_match( '/xml-stylesheet/i', $target ) ) {
                        return true;
                }
                return false;
@@ -1280,7 +1280,6 @@ abstract class UploadBase {
                        return true;
                }
 
-
                foreach ( $attribs as $attrib => $value ) {
                        $stripped = $this->stripXmlNamespace( $attrib );
                        $value = strtolower( $value );
index bb5b49f..57e73da 100644 (file)
@@ -752,8 +752,7 @@ class LanguageConverter {
                        return;
                }
 
-               global $wgDisableLangConversion, $wgDisableTitleConversion, $wgRequest,
-                       $wgUser;
+               global $wgDisableLangConversion, $wgDisableTitleConversion, $wgRequest;
                $isredir = $wgRequest->getText( 'redirect', 'yes' );
                $action = $wgRequest->getText( 'action' );
                $linkconvert = $wgRequest->getText( 'linkconvert', 'yes' );
@@ -768,8 +767,7 @@ class LanguageConverter {
                                ( $isredir == 'no'
                                        || $action == 'edit'
                                        || $action == 'submit'
-                                       || $linkconvert == 'no'
-                                       || $wgUser->getOption( 'noconvertlink' ) == 1 ) ) ) {
+                                       || $linkconvert == 'no' ) ) ) {
                        return;
                }
 
index aa3e4f2..985de68 100644 (file)
@@ -54,7 +54,8 @@ class UzConverter extends LanguageConverter {
                'ф' => 'f', 'Ф' => 'F',
                'ц' => 'c', 'Ц' => 'C',
                'ў' => 'oʻ', 'Ў' => 'Oʻ',
-               'ц' => 'ts', 'Ц' => 'Ts', // note: at the beginning of a word and right after a consonant, only "s" is used
+               // note: at the beginning of a word and right after a consonant, only "s" is used
+               'ц' => 'ts', 'Ц' => 'Ts',
                'қ' => 'q', 'Қ' => 'Q',
                'ё' => 'yo', 'Ё' => 'Yo',
                'ю' => 'yu', 'Ю' => 'Yu',
@@ -69,9 +70,9 @@ class UzConverter extends LanguageConverter {
                'a' => 'а', 'A' => 'А',
                'b' => 'б', 'B' => 'Б',
                'd' => 'д', 'D' => 'Д',
-               'e' => 'е', 'E' => 'Е',
-               ' e' => ' э', ' E' => ' Э', // "э" is used at the beginning of a word instead of "e"
-               'ye' => 'е', 'Ye' => 'Е',
+               // at the beginning of a word and after a vowel, "э" is used instead of "e"
+               // (see regex below)
+               'e' => 'э', 'E' => 'Э',
                'f' => 'ф', 'F' => 'Ф',
                'g' => 'г', 'G' => 'Г',
                'g‘' => 'ғ', 'G‘' => 'Ғ', 'gʻ' => 'ғ', 'Gʻ' => 'Ғ',
@@ -112,6 +113,18 @@ class UzConverter extends LanguageConverter {
                );
        }
 
+       function translate( $text, $toVariant ) {
+               if ( $toVariant == 'uz-cyrl' ) {
+                       $text = str_replace( 'ye', 'е', $text );
+                       $text = str_replace( 'Ye', 'Е', $text );
+                       $text = str_replace( 'YE', 'Е', $text );
+                       // "е" after consonants, otherwise "э" (see above)
+                       $text = preg_replace( '/([BVGDJZYKLMNPRSTFXCWQʻ‘H])E/u', '$1Е', $text );
+                       $text = preg_replace( '/([bvgdjzyklmnprstfxcwqʻ‘h])e/ui', '$1е', $text );
+               }
+               return parent::translate( $text, $toVariant );
+       }
+
 }
 
 /**
index 2395e68..eaad3ee 100644 (file)
@@ -411,7 +411,6 @@ $1",
 'disclaimers' => 'Beunantah',
 'disclaimerpage' => 'Project:Beunantah umom',
 'edithelp' => 'Bantu andam',
-'helppage' => 'Help:Asoë',
 'mainpage' => 'Ôn Keuë',
 'mainpage-description' => 'Ôn Keuë',
 'policy-url' => 'Project:Neuatô',
@@ -591,8 +590,6 @@ Bèk tuwo neuatô [[Special:Preferences|geunalak {{SITENAME}}]] droëneuh.',
 'gotaccountlink' => 'Tamöng',
 'userlogin-resetlink' => 'Tuwo rincian tamöng droëneuh?',
 'userlogin-resetpassword-link' => 'Tuwö lageuëm rahsia?',
-'helplogin-url' => 'Help:Tamöng',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Bantu tamöng]]',
 'userlogin-loggedin' => 'Droëneuh ka neutamöng seubagoë $1. Neungui blangko di yup keu neutamöng seubagoë ureuëng ngui la’én',
 'userlogin-createanother' => 'Peudapeuta nan barô',
 'createacct-join' => 'Neupasoë keutrangan bhaih droëneuh di yup nyoë',
@@ -772,7 +769,7 @@ Alamat IP Droëneuh nakeuh $3, ngön ID neutheun nakeuh $5. Tulông peuseureuta
 'accmailtitle' => 'Lageuem rahsia ka meukirém',
 'newarticle' => '(Barô)',
 'newarticletext' => "Droëneuh ka neuseutöt peunawôt u laman nyang goh na.
-Keu neupeugöt laman nyan, neukeutik lam plôk di yup (eu [[{{MediaWiki:Helppage}}|laman beunantu]] keu haba leubèh le).
+Keu neupeugöt laman nyan, neukeutik lam plôk di yup (eu [$1 laman beunantu] keu haba leubèh le).
 Meunyö droëneuh trôk keunoë hana neusaja, neuteugön tèk '''back''' bak ''browser'''droëneuh.",
 'anontalkpagetext' => "----''Nyoe nakeuh ôn marit ureueng ngui nyang hana tamöng atawa hana geungui.''
 Saweub nyan, kamoe payah meukubah alamat IP-geuh keu meuparéksa. 
index 1b1c5d7..7f1b62c 100644 (file)
@@ -9,6 +9,7 @@
  *
  * @author Abanima
  * @author Csisc
+ * @author Kuwaity26
  * @author Malekbr
  */
 
@@ -248,7 +249,6 @@ $1',
 'disclaimers' => "Ɛadam mas'ouliya",
 'disclaimerpage' => "Project:Ɛadam mas'ouliya bsifa εamma",
 'edithelp' => 'مساعدة التحرير',
-'helppage' => 'Help:Contenu',
 'mainpage' => 'Elpage principale',
 'mainpage-description' => 'Elpage principale',
 'policy-url' => 'Project:سياسة',
@@ -637,7 +637,7 @@ $2
 كلمة السر لهذا الحساب الجديد يمكن تغييرها في صفحة ''[[Special:ChangePassword|تغيير كلمة السر]]'' عند تسجيل الدخول.",
 'newarticle' => '(جديد)',
 'newarticletext' => "لقد تبعت وصلة لصفحة لم يتم إنشائها بعد.
-لإنشاء هذه الصفحة ابدأ الكتابة في الصندوق بالأسفل (انظر في [[{{MediaWiki:Helppage}}|صفحة المساعدة]] للمزيد من المعلومات).
+لإنشاء هذه الصفحة ابدأ الكتابة في الصندوق بالأسفل (انظر في [$1 صفحة المساعدة] للمزيد من المعلومات).
 إذا كانت زيارتك لهذه الصفحة بالخطأ، اضغط على زر ''رجوع'' في متصفح الإنترنت لديك.",
 'anontalkpagetext' => "----''هذه صفحة نقاش لمستخدم مجهول لم يقم بإنشاء حساب بعد أو لا يستعمل ذلك الحساب.
 لذا فيجب علينا استعمال رقم الأيبي للتعرف عليه/عليها.
@@ -865,8 +865,6 @@ walla [{{fullurl:{{FULLPAGENAME}}|action=edit}} tbaddel essafħa hedhi]</span>',
 'revdelete-show-file-submit' => 'نعم',
 'revdelete-selected' => "'''{{PLURAL:$2|المراجعة المختارة|المراجعات المختارة}} ل[[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|حدث السجل المختار|أحداث السجل المختارة}}:'''",
-'revdelete-text' => "'''المراجعات والأحداث المحذوفة ستظل تظهر في تاريخ الصفحة والسجلات،'''
-لكن أجزاء من محتواها لن يكون مسموحا للعامة برؤيتها.",
 'revdelete-confirm' => 'الإداريون الآخرون في {{SITENAME}} سيظل بإمكانهم رؤية المحتوى المخفي ويمكنهم استرجاعه مجددا من خلال هذه الواجهة نفسها، مالم يتم وضع قيود إضافية.
 من فضلك أكد أنك تنوي فعل هذا، وأنك تفهم العواقب، وأنك تفعل هذا بالتوافق مع [[{{MediaWiki:Policy-url}}|السياسة]].',
 'revdelete-suppress-text' => "الإخفاء ينبغي أن يتم استخدامه '''فقط''' في الحالات التالية:
@@ -893,7 +891,7 @@ $1",
 'logdelete-failure' => "'''تعذر ضبط رؤية السجل:'''
 $1",
 'revdel-restore' => 'تغيير الرؤية',
-'pagehist' => 'تارÙ\8aØ® Ø§Ù\84صÙ\81حة',
+'pagehist' => 'تاريخ صفحة',
 'deletedhist' => 'التاريخ المحذوف',
 'revdelete-hide-current' => 'خطأ عند إحفاء العنصر المؤرخ في $2 $1: هذه هي المراجعة الحالية.
 لا يمكن إخفاؤها.',
index 01ed044..741ceba 100644 (file)
@@ -456,7 +456,6 @@ $1",
 'disclaimers' => 'Voorbehoud',
 'disclaimerpage' => 'Project:Voorwaardes',
 'edithelp' => 'Wysigingshulp',
-'helppage' => 'Help:Inhoud',
 'mainpage' => 'Tuisblad',
 'mainpage-description' => 'Tuisblad',
 'policy-url' => 'Project:Beleid',
@@ -653,8 +652,6 @@ Moenie vergeet om u [[Special:Preferences|voorkeure vir {{SITENAME}}]] te stel n
 'gotaccountlink' => 'Meld aan',
 'userlogin-resetlink' => 'U besonderhede vergeet?',
 'userlogin-resetpassword-link' => 'Wagwoord vergeet?',
-'helplogin-url' => 'Help:Aanmelding',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hulp met aanmelding]]',
 'userlogin-loggedin' => "U is reeds aangemeld as {{GENDER:$1|$1}}.
 Gebruik die onderstaande vorm om as 'n ander gebruiker aan te meld.",
 'userlogin-createanother' => "Skep nog 'n rekening",
@@ -904,7 +901,7 @@ Dis was moontlik geskuif of verwyder terwyl u die bladsy gelees het.",
 Die wagwoord vir hierdie nuwe gebruiker kan op die ''[[Special:ChangePassword|verander wagwoord]]''-bladsy verander word nadat ingeteken is.",
 'newarticle' => '(Nuut)',
 'newarticletext' => "Hierdie bladsy bestaan nie.
-Tik iets in die invoerboks hier onder om 'n nuwe bladsy te skep. Meer inligting is op die [[{{MediaWiki:Helppage}}|hulpbladsy]] beskikbaar.
+Tik iets in die invoerboks hier onder om 'n nuwe bladsy te skep. Meer inligting is op die [$1 hulpbladsy] beskikbaar.
 As u per ongeluk hier uitgekom het, gebruik u blaaier se '''terug'''-knoppie.",
 'anontalkpagetext' => "----''Hierdie is die besprekingsblad vir 'n anonieme gebruiker wat nog nie 'n gebruiker geskep het nie, of wat dit nie gebruik nie.
 Daarom moet ons sy/haar numeriese IP-adres vir identifikasie gebruik.
@@ -1145,8 +1142,6 @@ U kan wel hierdie verskil sien. Meer details kan in die [{{fullurl:{{#Special:Lo
 'revdelete-show-file-submit' => 'Ja',
 'revdelete-selected' => "'''Geselekteerde {{PLURAL:$2|wysiging|wysigings}} vir [[:$1]]:'''",
 'logdelete-selected' => "'''Geselekteerde {{PLURAL:$1|logboek aksie|logboek aksies}}:'''",
-'revdelete-text' => "'''Geskrapte wysigings en aksies sal in die geskiedenis en logboeke sigbaar bly, maar dele van die inhoud sal nie publiek toeganklik wees nie.'''
-Ander administrateurs van {{SITENAME}} kan steeds die verborge inhoud sien en die verwydering met behulp van die vorm ongedaan maak, tensy aanvullende beperkinge deur die stelseladministrateur opgelê is.",
 'revdelete-confirm' => 'Bevestig asseblief dat u dit wil doen, dat u die nagevolge verstaan en dat u dit doen in ooreenstemming met die [[{{MediaWiki:Policy-url}}|beleid]].',
 'revdelete-suppress-text' => "Verberging van weergawes mag '''slegs''' in die volgende gevalle gebruik word:
 * Potensieel lasterlike inligting
@@ -1595,7 +1590,7 @@ As u dit verskaf, sal dit gebruik word om erkenning vir u werk te gee.',
 'recentchanges-label-plusminus' => 'Bladsy is met die aantal grepe gewysig',
 'recentchanges-legend-heading' => "'''Sleutel:'''",
 'recentchanges-legend-newpage' => '$1 - nuwe bladsy',
-'rcnotefrom' => "Hier volg wysigings sedert '''$2''' (maksimum van '''$1''' word gewys).",
+'rcnotefrom' => 'Wysigings sedert <strong>$2</strong> (maksimum van <strong>$1</strong> word gewys).',
 'rclistfrom' => 'Vertoon wysigings vanaf $1',
 'rcshowhideminor' => '$1 klein wysigings',
 'rcshowhidebots' => '$1 robotte',
index 0fcdf7c..8957226 100644 (file)
@@ -104,7 +104,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Më ço kopje të mesazheve qi ua dërgoj të tjerëve',
 'tog-diffonly' => 'Mos e trego përmbajtjen e faqes nën ndryshimin',
 'tog-showhiddencats' => 'Trego kategoritë e mshefta',
-'tog-noconvertlink' => 'Mos lejo konvertimin e titullit vegëz',
 'tog-norollbackdiff' => 'Trego ndryshimin mbas procedurës së kthimit mbrapa',
 'tog-useeditwarning' => 'Paralajmëron mua kur unë të lë një redakto faqe me ndryshimet e para shpëtimit',
 
@@ -294,7 +293,6 @@ $1',
 'disclaimers' => 'Shfajsime',
 'disclaimerpage' => 'Project:Shfajsimet e përgjithshme',
 'edithelp' => 'Ndihmë për redaktim',
-'helppage' => 'Help:Përmbajtja',
 'mainpage' => 'Faqja kryesore',
 'mainpage-description' => 'Faqja Kryesore',
 'policy-url' => 'Project:Politika',
@@ -625,7 +623,7 @@ Ju lutemi vërtetoni adresën tuej të emailit përmjet [[Special:Preferences|pa
 Fjalëkalimi për këtë llogari mundet me u ndryshue në faqen ''[[Special:ChangePassword|ndrysho fjalëkalimin]]'' mbas kyçjes.",
 'newarticle' => '(I ri)',
 'newarticletext' => "Ke ndjekë nji vegëz për te nji faqe që nuk ekziston.
-Me krijue kët faqe, shkruej në kutinë ma poshtë (shih [[{{MediaWiki:Helppage}}|faqen e ndihmës]] për ma shum udhzime).
+Me krijue kët faqe, shkruej në kutinë ma poshtë (shih [$1 faqen e ndihmës] për ma shum udhzime).
 Nëse ke hy këtu gabimisht, klikoje sustën '''mbrapa''' në shfletues.",
 'anontalkpagetext' => "----''Kjo âsht faqe diskutimi e nji përdoruesi anonim, i cili nuk ka krijue llogari, apo nuk e përdor atê.
 Prandej përdoret adresa numerike IP e tij për me identifikue.
@@ -796,7 +794,6 @@ Shiko tek [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} regjistr
 'revdelete-no-file' => 'Skeda e dhënë nuk ekziston.',
 'revdelete-selected' => "'''{{PLURAL:$2|Versioni i zgjedhur i|Versionet e zgjedhura të}} [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Veprimi i zgjedhur në regjistër|Veprimet e zgjedhura në regjistër}}:'''",
-'revdelete-text' => "'''Përmbajtja dhe pjesët e tjera nuk janë të dukshme për të gjithë, por figurojnë në historikun e versioneve.''' Administratorët munden përmbajtjen e larguar ta shikojnë dhe restaurojnë, përveç në rastet kur një gjë e tillë është ndaluar ekstra.",
 'revdelete-legend' => 'Vendosni kufizimet për versionin:',
 'revdelete-hide-text' => 'Fshihe tekstin e versionit',
 'revdelete-hide-image' => 'Fshih përmbajtjen skedare',
index d6eb658..1fd2405 100644 (file)
@@ -270,7 +270,6 @@ $1',
 'disclaimers' => 'የኃላፊነት ማስታወቂያ',
 'disclaimerpage' => 'Project:አጠቃላይ የሕግ ነጥቦች',
 'edithelp' => 'የማረም መመሪያ',
-'helppage' => 'Help:ይዞታ',
 'mainpage' => 'ዋናው ገጽ',
 'mainpage-description' => 'ዋና ገጽ',
 'policy-url' => 'Project:መመሪያዎች',
@@ -599,7 +598,7 @@ $1ን ወይም ማንም ሌላ [[{{MediaWiki:Grouppage-sysop}}|መጋቢ]] ስ
 'accmailtitle' => 'የመግቢያ ቃል ተላከ።',
 'accmailtext' => 'የመግቢያ ቃል ለ«$1» ወደ $2 ተልኳል።',
 'newarticle' => '(አዲስ)',
-'newarticletext' => 'እርስዎ የተከተሉት መያያዣ እስካሁን ወደማይኖር ገጽ የሚወስድ ነው። ገጹን አሁን ለመፍጠር፣ ከታች በሚገኘው ሳጥን ውስጥ መተየብ ይጀምሩ። ለተጨማሪ መረጃ፣ [[{{MediaWiki:Helppage}}|የእርዳታ ገጽን]] ይመልከቱ።
+'newarticletext' => 'እርስዎ የተከተሉት መያያዣ እስካሁን ወደማይኖር ገጽ የሚወስድ ነው። ገጹን አሁን ለመፍጠር፣ ከታች በሚገኘው ሳጥን ውስጥ መተየብ ይጀምሩ። ለተጨማሪ መረጃ፣ [$1 የእርዳታ ገጽን] ይመልከቱ።
 
 ወደዚህ በስሕተት ከሆነ የመጡት፣ የቃኝውን «Back» ቁልፍ ይጫኑ።',
 'anontalkpagetext' => "----''ይኸው ገጽ ገና ያልገባ ወይም ብዕር ስም የሌለው ተጠቃሚ ውይይት ገጽ ነው። መታወቂያው በ[[ቁጥር አድራሻ]] እንዲሆን ያስፈልጋል። አንዳንዴ ግን አንድ የቁጥር አድራሻ በሁለት ወይም በብዙ ተጠቃሚዎች የጋራ ሊሆን ይችላል። ስለዚህ ለርስዎ የማይገባ ውይይት እንዳይደርስልዎ፣ [[Special:UserLogin|«መግቢያ»]] በመጫን የብዕር ስም ለማውጣት ይችላሉ።''",
index a74b167..ddabe7c 100644 (file)
@@ -166,7 +166,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Recibir copias de os correus que ninvío ta atros usuarios',
 'tog-diffonly' => "No amostrar o conteniu d'a pachina debaixo d'as esferencias",
 'tog-showhiddencats' => 'Amostrar categorías amagatas',
-'tog-noconvertlink' => 'Desactivar a conversión de titol de vinclo',
 'tog-norollbackdiff' => 'No amostrar as diferencias dimpués de revertir',
 'tog-useeditwarning' => "Alvertir-me quan salga d'una pachina d'edición sin alzar os cambios",
 
@@ -362,7 +361,6 @@ $1",
 'disclaimers' => 'Alvertencias chenerals',
 'disclaimerpage' => 'Project:Alvertencias chenerals',
 'edithelp' => 'Aduya ta editar pachinas',
-'helppage' => 'Help:Aduya',
 'mainpage' => 'Portalada',
 'mainpage-description' => 'Portalada',
 'policy-url' => 'Project:Politicas y normas',
@@ -716,9 +714,9 @@ Talment bell un l'haiga moviu u borrau entre que vusté vesitaba a pachina.",
 
 A clau ta ista nueva cuenta la puet cambiar en a pachina ''[[Special:ChangePassword|Cambiar a clau]]'' dimpués d'haber dentrato en ella.",
 'newarticle' => '(Nuevo)',
-'newarticletext' => "Ha siguito un vinclo ta una pachina que encara no existe.
-Ta creyar a pachina, prencipie a escribir en a caixa d'abaixo (mire-se l'[[{{MediaWiki:Helppage}}|aduya]] ta más información).
-Si ye plegau por error, punche o botón \"enta zaga\" d'o suyo navegador.",
+'newarticletext' => 'Ha siguito un vinclo ta una pachina que encara no existe.
+Ta creyar a pachina, prencipie a escribir en a caixa d\'abaixo (mire-se l\'[$1 aduya] ta más información).
+Si ye plegau por error, punche o botón "enta zaga" d\'o suyo navegador.',
 'anontalkpagetext' => "----''Ista ye a pachina de descusión d'un usuario anonimo que encara no ha creyato una cuenta, u no l'ha feito servir. Por ixo, hemos d'emplegar a suya adreza IP ta identificar-lo/a.
 Diferents usuarios pueden compartir una mesma adreza IP.
 Si vusté ye un usuario anonimo y creye que l'han escrito comentarios no relevants, [[Special:UserLogin/signup|creye una cuenta]] u [[Special:UserLogin/signup|identifique-se]] ta privar confusions futuras con atros usuarios anonimos.''",
@@ -916,8 +914,6 @@ Encara puet veyer a comparanza; en trobará mas detalles en o [{{fullurl:{{#Spec
 'revdelete-show-file-submit' => 'Sí',
 'revdelete-selected' => "'''{{PLURAL:$2|Versión trigata|Versions trigatas}} de [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Escaicimiento d'o rechistro trigato|Escaicimientos d'o rechistro trigatos}}:'''",
-'revdelete-text' => "'''As versions y esdevenimientos borratos encara apareixerán en o historial d'a pachina y en os rechistros, pero bellas partes d'o suyo conteniu serán inaccesibles ta o publico.'''
-Atros admenistradors de {{SITENAME}} encara podrán acceder t'o conteniu amagato y podrán desfer o borrau a traviés d'ista mesma interfaz, fueras de si s'estableixen restriccions adicionals.",
 'revdelete-confirm' => "Por favor confirme que ye mirando de fer ísto, que entiende as conseqüencias, y que lo ye fendo d'alcuerdo con [[{{MediaWiki:Policy-url}}|as politicas]].",
 'revdelete-suppress-text' => "Os borraus de versions '''nomás''' s'habrían de fer en os siguients casos:
 * Información potencialment difamatoria o libelo grieu.
index 6ba9cc1..d21aeec 100644 (file)
@@ -80,7 +80,6 @@ $messages = array(
 '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',
-'tog-noconvertlink' => 'Ne lǣt hlencena titula āwendunge',
 'tog-norollbackdiff' => 'Forlǣtan scādunge siþþan edweorc sīe gedōn',
 'tog-useeditwarning' => 'Cȳðan mē þǣr ic afare fram adihtunge tramete þe gīet hæbbe unhordoda andwendunga.',
 'tog-prefershttps' => 'Brūc ā sicore þēodednesse þā þū sī inmeldod',
@@ -288,7 +287,6 @@ $1',
 'disclaimers' => 'Ætsacunga',
 'disclaimerpage' => 'Project:Gemǣne ætsacung',
 'edithelp' => 'Help on adihtunge',
-'helppage' => 'Help:Innung',
 'mainpage' => 'Hēafodtramet',
 'mainpage-description' => 'Hēafodtramet',
 'policy-url' => 'Project:Rǣd',
@@ -418,7 +416,6 @@ Cnāw þæt sume trametas mihten gīet wesan geīwde swā þū wǣre gīet inmel
 'gotaccount' => 'Hafast þū reccinge ǣr? $1.',
 'gotaccountlink' => 'Inmeldian',
 'userlogin-resetpassword-link' => 'Forgēate þū þīn gelēafword?',
-'helplogin-url' => 'Help:Inmeldung',
 'createaccountmail' => 'Notian sceortne tīman hlētlic þafungword and sendan hit to þǣm spearcǣrenda naman þe is niðer',
 'createaccountreason' => 'Racu:',
 'badretype' => 'Þā þafungword þe write þū, bēoþ ungelīc.',
@@ -494,7 +491,7 @@ Scēawa þīne wrītunge eft, oþþe [[Special:UserLogin/signup|sciepp nīwe rec
 Þū mōst þæt þafungword andwendan for þisse nīwan reccinge on þǣm ''[[Special:ChangePassword|andwendan þafungword]]'' tramete siþþan þū inmeldie.",
 'newarticle' => '(Nīwe)',
 'newarticletext' => "Þū hæfst hlencan tō tramete þe nū gīet ne stent gefolgod.
-Tō scieppene þone tramet, onginn tō wrītenne in þǣre mearce þe is beneoþan (seoh þone [[{{MediaWiki:Helppage}}|helpes tramet]] ymb mā cȳþþu).
+Tō scieppene þone tramet, onginn tō wrītenne in þǣre mearce þe is beneoþan (seoh þone [$1 helpes tramet] ymb mā cȳþþu).
 Gif þū hider be misfēnge cōme, cnoca þīnes webbsēcendes '''on bæc''' cnæpp.",
 'usercssyoucanpreview' => "'''Rǣd:''' Brūc þone \"{{int:Forescēaƿian}}\" cnæpp tō costnienne þīne nīwan css/js wrītunge ǣr hit sīe hordod.",
 'userjsyoucanpreview' => "'''Rǣd:''' Brūc þone 'Forescēawian' cnæpp tō āfandienne þīne nīwe css/js beforan sparunge.",
index d333a51..9f839fb 100644 (file)
@@ -15,6 +15,7 @@
  * @author Alexknight12
  * @author Ali1
  * @author Alnokta
+ * @author Amire80
  * @author Antime
  * @author Arjanizary
  * @author Asaifm
@@ -524,7 +525,6 @@ $messages = array(
 'tog-ccmeonemails' => 'أرسل إلي نسخا من الرسائل الإلكترونية التي أرسلها إلى المستخدمين الآخرين',
 'tog-diffonly' => 'لا تعرض محتوى الصفحة أسفل الفرق',
 'tog-showhiddencats' => 'أظهر التصنيفات المخفية',
-'tog-noconvertlink' => 'عطل تحويل عناوين الروابط',
 'tog-norollbackdiff' => 'أزل الفرق بعد إحداث استرجاع',
 'tog-useeditwarning' => 'حذّرني عندما أغادر تحرير صفحة فيها تغييرات لم أحفظها',
 'tog-prefershttps' => 'دائما استخدم اتصالا آمنا بعد الدخول',
@@ -736,7 +736,6 @@ $1',
 'disclaimers' => 'إخلاء مسؤولية',
 'disclaimerpage' => 'Project:إخلاء مسؤولية عام',
 'edithelp' => 'مساعدة التحرير',
-'helppage' => 'Help:محتويات',
 'mainpage' => 'الصفحة الرئيسية',
 'mainpage-description' => 'الصفحة الرئيسية',
 'policy-url' => 'Project:سياسة',
@@ -938,8 +937,6 @@ $2',
 'gotaccountlink' => 'تسجيل الدخول',
 'userlogin-resetlink' => 'نسيت تفاصيل الدخول؟',
 'userlogin-resetpassword-link' => 'نسيت كلمة مرورك؟',
-'helplogin-url' => 'Help:تسجيل الدخول',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|المساعدة في تسجيل الدخول]]',
 'userlogin-loggedin' => 'أنت {{GENDER:$1|مسجل|مسجلة}} الدخول مسبقًا باسم $1. {{GENDER:$1|استخدم|استخدمي}} النموذج بالأسفل لتسجيل الدخول بحساب آخر.',
 'userlogin-createanother' => 'إنشاء حساب آخر',
 'createacct-join' => 'قم بإدخال المعلومات الخاصة بك أدناه.',
@@ -1037,9 +1034,9 @@ $2',
 'suspicious-userlogout' => 'رفض طلب خروجك لأنه يبدو كأنه أرسل عن طريق متصفح معطوب أو وسيط تخزين.',
 'createacct-another-realname-tip' => 'الاسم الحقيقي اختياري.
 إذا اخترت توفيره فسيستخدم لنسبة عمل المستخدم إليه.',
-'pt-login' => 'تسجÙ\8aÙ\84 Ø§Ù\84دخÙ\88Ù\84',
-'pt-createaccount' => 'Ø£Ù\86شئ Ø­Ø³Ø§Ø¨Ø§',
-'pt-userlogout' => 'تسجÙ\8aÙ\84 Ø§Ù\84خرÙ\88ج',
+'pt-login' => 'دخول',
+'pt-createaccount' => 'Ø¥Ù\86شاء Ø­Ø³Ø§Ø¨',
+'pt-userlogout' => 'خروج',
 
 # Email sending
 'php-mail-error-unknown' => "خطأ غير معروف في وظيفة البريد PHP's mail()",
@@ -1208,7 +1205,7 @@ $2
 'accmailtext' => "أُرسِلت كلمة سر مولدة عشوائيا ل[[User talk:$1|$1]] إلى $2. يمكن تغييرها في صفحة ''[[Special:ChangePassword|تغيير كلمة السر]]'' بعد تسجيل الدخول.",
 'newarticle' => '(جديد)',
 'newarticletext' => "لقد تبعت وصلة لصفحة لم يتم إنشائها بعد.
-لإنشاء هذه الصفحة ابدأ الكتابة في الصندوق بالأسفل (انظر في [[{{MediaWiki:Helppage}}|صفحة المساعدة]] للمزيد من المعلومات).
+لإنشاء هذه الصفحة ابدأ الكتابة في الصندوق بالأسفل (انظر في [$1 صفحة المساعدة] للمزيد من المعلومات).
 إذا كانت زيارتك لهذه الصفحة بالخطأ، اضغط على زر ''رجوع'' في متصفح الإنترنت لديك.",
 'anontalkpagetext' => "----''هذه صفحة نقاش لمستخدم مجهول لم يقم بإنشاء حساب بعد أو لا يستعمل ذلك الحساب.
 لذا فيجب علينا استعمال رقم الأيبي للتعرف عليه/عليها.
@@ -1462,8 +1459,6 @@ $2
 'revdelete-show-file-submit' => 'نعم',
 'revdelete-selected' => "'''{{PLURAL:$2|المراجعة المختارة|المراجعات المختارة}} ل[[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|حدث السجل المختار|أحداث السجل المختارة}}:'''",
-'revdelete-text' => "'''المراجعات والأحداث المحذوفة ستظل تظهر في تاريخ الصفحة والسجلات،'''
-لكن أجزاء من محتواها لن يكون مسموحا للعامة برؤيتها.",
 'revdelete-confirm' => 'الإداريون الآخرون في {{SITENAME}} سيظل بإمكانهم رؤية المحتوى المخفي ويمكنهم استرجاعه مجددا من خلال هذه الواجهة نفسها، مالم يتم وضع قيود إضافية.
 من فضلك أكد أنك تنوي فعل هذا، وأنك تفهم العواقب، وأنك تفعل هذا بالتوافق مع [[{{MediaWiki:Policy-url}}|السياسة]].',
 'revdelete-suppress-text' => "ينبغي للإخفاء أن يستخدم '''فقط''' في الحالات التالية:
@@ -1930,11 +1925,23 @@ $1",
 'rcnotefrom' => "بالأسفل التغييرات منذ '''$2''' (إلى '''$1''' معروضة).",
 'rclistfrom' => 'أظهر التغييرات بدء من $1',
 'rcshowhideminor' => '$1 التعديلات الطفيفة',
+'rcshowhideminor-show' => 'أظهر',
+'rcshowhideminor-hide' => 'أخف',
 'rcshowhidebots' => '$1 البوتات',
+'rcshowhidebots-show' => 'أظهر',
+'rcshowhidebots-hide' => 'أخف',
 'rcshowhideliu' => '$1 {{GENDER:$1|مستخدمين مسجلين|مستخدمات مسجلات|مستخدمون مسجلون}}',
+'rcshowhideliu-show' => 'أظهر',
+'rcshowhideliu-hide' => 'أخف',
 'rcshowhideanons' => '$1 المستخدمين المجهولين',
+'rcshowhideanons-show' => 'أظهر',
+'rcshowhideanons-hide' => 'أخف',
 'rcshowhidepatr' => '$1 التعديلات المراجعة',
+'rcshowhidepatr-show' => 'أظهر',
+'rcshowhidepatr-hide' => 'أخف',
 'rcshowhidemine' => '$1 تعديلاتي',
+'rcshowhidemine-show' => 'أظهر',
+'rcshowhidemine-hide' => 'أخف',
 'rclinks' => 'أظهر آخر $1 تعديل في آخر $2 يوم<br />$3',
 'diff' => 'فرق',
 'hist' => 'تاريخ',
@@ -2441,7 +2448,7 @@ $1',
 'deadendpagestext' => 'الصفحات التالية لا تصل إلى صفحات أخرى في {{SITENAME}}.',
 'protectedpages' => 'صفحات محمية',
 'protectedpages-indef' => 'عمليات الحماية غير المحددة فقط',
-'protectedpages-summary' => 'تحتوي هذه الصفحة على أسماء العناوين المحمية حالياً. لمطالعة قائمة الصفحات التي تم فرض حماية على إنشائها انظر [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'تحتوي هذه الصفحة على أسماء العناوين المحمية حالياً. لمطالعة قائمة الصفحات التي تم فرض حماية على إنشائها انظر [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'الحماية المضمنة فقط',
 'protectedpages-noredirect' => 'أخفِ التحويلات',
 'protectedpagesempty' => 'لا توجد صفحات محمية حاليا بهذه المحددات.',
@@ -2454,7 +2461,7 @@ $1',
 'protectedpages-unknown-timestamp' => 'غير معروف',
 'protectedpages-unknown-performer' => 'مستخدم غير معروف',
 'protectedtitles' => 'عناوين محمية',
-'protectedtitles-summary' => 'تحتوي هذه الصفحة على أسماء العناوين المحمية حالياً من الإنشاء. لمطالعة قائمة الصفحات التي تم إنشائها وحمايتها انظر [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'تحتوي هذه الصفحة على أسماء العناوين المحمية حالياً من الإنشاء. لمطالعة قائمة الصفحات التي تم إنشائها وحمايتها انظر [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'لا توجد عناوين محمية حاليا بهذه المحددات.',
 'listusers' => 'قائمة الأعضاء',
 'listusers-editsonly' => 'اعرض المستخدمين الذين أجروا تعديلات فقط',
@@ -2731,7 +2738,7 @@ $UNWATCHURL
 'delete-warning-toobig' => 'لهذه الصفحة تاريخ تعديل طويل، أكثر من {{PLURAL:$1||مراجعة واحدة|مراجعتين|$1 مراجعات|$1 مراجعة}}.
 قد يؤدي حذفها إلى اضطراب عمليات قاعدة البيانات في {{SITENAME}}؛
 استمر مع الحذر.',
-'deleting-backlinks-warning' => "'''تحذير:''' ترتبط صفحات أخرى بالصفحة التي أنت على وشك حذفها.",
+'deleting-backlinks-warning' => "'''تحذير:''' ترتبط [[Special:WhatLinksHere/{{FULLPAGENAME}}|صفحات أخرى]] بالصفحة التي أنت على وشك حذفها.",
 
 # Rollback
 'rollback' => 'استرجاع التعديلات',
@@ -2915,6 +2922,7 @@ $1',
 'sp-contributions-search' => 'بحث عن مساهمات',
 'sp-contributions-username' => 'عنوان أيبي أو اسم مستخدم:',
 'sp-contributions-toponly' => 'أظهر أعلى المراجعات فقط',
+'sp-contributions-newonly' => 'أظهر إنشاء الصفحات فقط',
 'sp-contributions-submit' => 'بحث',
 
 # What links here
@@ -4125,6 +4133,7 @@ $5
 # Separators for various lists, etc.
 'semicolon-separator' => '؛&#32;',
 'comma-separator' => '،&#32;',
+'quotation-marks' => '«$1»',
 
 # Multipage image navigation
 'imgmultipageprev' => '→ الصفحة السابقة',
index 3d2810c..52ba387 100644 (file)
@@ -340,7 +340,6 @@ $1',
 'disclaimers' => 'ܠܐ ܡܫܬܐܠܢܘܬܐ',
 'disclaimerpage' => 'Project:ܠܐ ܡܫܬܐܠܢܘܬܐ ܓܘܢܝܬܐ',
 'edithelp' => 'ܥܘܕܪܢܐ ܠܫܚܠܦܬܐ',
-'helppage' => 'Help:ܚܒܝܫܬ̈ܐ',
 'mainpage' => 'ܦܐܬܐ ܪܝܫܝܬܐ',
 'mainpage-description' => 'ܦܐܬܐ ܪܝܫܝܬܐ',
 'policy-url' => 'Project:ܦܘܪܢܣܐ',
@@ -456,7 +455,6 @@ $1',
 'gotaccountlink' => 'ܥܘܠ',
 'userlogin-resetlink' => 'ܐܬܢܫܝܬ ܝܕ̈ܥܬܐ ܕܥܠܠܐ؟',
 'userlogin-resetpassword-link' => 'ܢܫܬ ܡܠܬܐ ܕܥܠܠܐ؟',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|ܥܘܕܪܢܐ ܒܥܠܠܐ ܠܚܘܫܒܢܐ]]',
 'createacct-join' => 'ܐܥܠ ܝܕ̈ܥܬܐ ܕܝܠܟ ܠܬܚܬ',
 'createacct-emailrequired' => 'ܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ',
 'createaccountmail' => 'ܐܦܠܚ ܡܠܬܐ ܕܥܠܠܐ ܙܒܢܢܝܬܐ ܘܫܕܪ ܠܗ ܥܠ ܒܝܠܕܪܐ ܐܠܩܛܪܘܢܝܐ ܬܘܚܡܐ ܠܬܚܬ',
@@ -548,7 +546,7 @@ $1',
 'accmailtitle' => 'ܡܠܬܐ ܕܥܠܠܐ ܫܕܪܬ',
 'newarticle' => '(ܚܕܬܐ)',
 'newarticletext' => "ܐܬܬ ܒܬܪ ܐܣܪܐ ܕܦܐܬܐ ܕܠܐ ܐܬܬܣܝܡܬ ܥܕܡܫ.
-ܠܣܘܝܡܐ ܕܦܐܬܐ ܗܕܐ، ܫܪܝ ܠܟܬܒܬܐ ܒܣܢܕܘܩܐ ܠܬܚܬ (ܚܙܝ [[{{MediaWiki:Helppage}}|ܦܐܬܐ ܕܥܘܕܪܢܐ]] ܠܐܚܪܢܐ ܝܕ̈ܥܬܐ).
+ܠܣܘܝܡܐ ܕܦܐܬܐ ܗܕܐ، ܫܪܝ ܠܟܬܒܬܐ ܒܣܢܕܘܩܐ ܠܬܚܬ (ܚܙܝ [$1 ܦܐܬܐ ܕܥܘܕܪܢܐ] ܠܐܚܪܢܐ ܝܕ̈ܥܬܐ).
 ܐܢ ܐܬܬ ܠܗܪܟܐ ܦܘܕܐܝܬ، ܟܒܘܫ ܥܠ ܦܪܡܝܬܐ ܕ '''ܠܒܣܬܪ back''' ܒܡܦܐܬܢܐ ܕܝܠܟ.",
 'updated' => '(ܐܬܚܕܬ)',
 'note' => "'''ܡܥܝܪܢܘܬܐ:'''",
index 76efe63..6705d3e 100644 (file)
@@ -190,7 +190,6 @@ $messages = array(
 'disclaimers' => 'Tukuldungun ñi pin ley',
 'disclaimerpage' => 'Project:Katrütuwün ñi llowdüngun',
 'edithelp' => 'Kellü wirin',
-'helppage' => 'Help:Trokiñdungu',
 'mainpage' => 'Ñidol Wülngiñ',
 'mainpage-description' => 'Ñidol Wülngiñ',
 'portal' => 'Lofche ñi wülngiñ',
@@ -313,7 +312,7 @@ Tami chew küpan (IP) chillkatugeay wülngiñ ñi wirin kuyfidungu.",
 'loginreqlink' => 'Koni',
 'newarticle' => '(We)',
 'newarticletext' => 'Ngelay wirin tüfachi wülngiñ mew. 
-Pepillituam tüfachi wülngiñ, wirintuaymi nagpüle (pen [[{{MediaWiki:Helppage}}|kellu wülngiñ]] nieael doy kimdungu).
+Pepillituam tüfachi wülngiñ, wirintuaymi nagpüle (pen [$1 kellu wülngiñ] nieael doy kimdungu).
 Welule tami küpan, wiñotunge rupachi wülngiñ.',
 'noarticletext' => 'Iney no rume wirilay tüfachi wülngiñ mew. Eymi [[Special:Search/{{PAGENAME}}|pepikintuymi tüfachi üy]] kake wülngiñ mew,
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} kintuymi koneltuyelelu wirintukun],
index e7b6138..20d0d6c 100644 (file)
@@ -53,7 +53,6 @@ $messages = array(
 'tog-ccmeonemails' => 'sift liya noskha mn rasaail lbarid lelectroni likansiftha lmostkhdimin lkhrin',
 'tog-diffonly' => 'matbiynch mohtawa sfha tht lforoqat',
 'tog-showhiddencats' => 'biyn tsnifat lmkhfiya',
-'tog-noconvertlink' => 'aattl thwil anwan lwslat',
 'tog-norollbackdiff' => 'hiyd lfrq ila drt istirjaa',
 
 'underline-always' => 'Dima',
@@ -248,7 +247,6 @@ $1',
 'disclaimers' => 'Inḍaraṫ',
 'disclaimerpage' => 'Project:Inḍaraṫ ĝammin',
 'edithelp' => 'Mosaĝada',
-'helppage' => 'Help:Meḍmon',
 'mainpage' => 'Ṣ-Ṣefḫa l-owla',
 'mainpage-description' => 'Ṣ-Ṣefḫa l-owla',
 'policy-url' => 'Project:siyassa',
@@ -628,7 +626,7 @@ yqdr ikon ṫnql wlla ṫḫyyd mlli knṫi kaṫċof had ṣfḫa.',
 ṫqdr ṫbddal klmṫ s-srr dialt had l-ḫisab j-jdid f-ṣṣfḫa ṫaĝ ''[[Special:ChangePassword|bḍḍel klmṫ s-srr]]'' mn bĝdmma ṫdĥol.",
 'newarticle' => '(jdid)',
 'newarticletext' => "Ṫbeĝṫi waḫed l-lyan li kayddi le waḫed ṣ-ṣefḫa li ṫṫemḫaṫ.
-Baċ ṫsayeb had ṣ-ṣefḫa, bda ṫekṫeb fe ṣ-ṣendoq li l-ṫeḫṫ (ċof ila bġiṫi [[{{MediaWiki:Helppage}}|ṣ-ṣefḫa de l-mosaĝada]] le l-mazid de l-meĝlomaṫ).
+Baċ ṫsayeb had ṣ-ṣefḫa, bda ṫekṫeb fe ṣ-ṣendoq li l-ṫeḫṫ (ċof ila bġiṫi [$1 ṣ-ṣefḫa de l-mosaĝada] le l-mazid de l-meĝlomaṫ).
 Ila wṣelṫi hnaya ĝla ġefla, brek ĝla l-boton '''rjeĝ''' dyal n-navigaṫør internet dyalek.",
 'anontalkpagetext' => "----''hada niqaċ ṫaĝ waḫd l-mosṫĥdim anonim lli mazal ma ṣayb-ċ ċi ḫisab, wlla ma kayĥdam-ċ bih.
 dakċċi ĝlaċ raḫna ĥddamin b-ĝonwan l-IP ṛ-ṛqmi baċ nĝaṛṛfoh.
index 30c128e..57a1f11 100644 (file)
@@ -339,7 +339,6 @@ $messages = array(
 'tog-ccmeonemails' => 'ابعتلى  نسخ من رسايل الايميل اللى بابعتها لليوزرز التانيين',
 'tog-diffonly' => 'ما تبين ش محتوى الصفحة تحت الفروقات',
 'tog-showhiddencats' => 'بين التّصنيفات المستخبية',
-'tog-noconvertlink' => 'عطل تحويل عناوين الوصلات',
 'tog-norollbackdiff' => 'الغى الاختلافات بعد ما تعمل الرول باك',
 'tog-useeditwarning' => 'حذّرنى لما اسيب صفحة تعديل فيها تغييرات مش متسييڤه',
 'tog-prefershttps' => 'إستخدم  وصله متأمنه بعد الدخول',
@@ -551,7 +550,6 @@ $1',
 'disclaimers' => 'تنازل عن مسئوليه',
 'disclaimerpage' => 'Project:تنازل عن مسئوليه عمومى',
 'edithelp' => 'مساعده فى التعديل',
-'helppage' => 'Help:محتويات',
 'mainpage' => 'الصفحه الرئيسيه',
 'mainpage-description' => 'الصفحه الرئيسيه',
 'policy-url' => 'Project:سياسة',
@@ -888,7 +886,7 @@ $2',
 'newarticle' => '(جديد)',
 'newarticletext' => "انت وصلت لصفحه مابتدتش لسه.
 علشان  تبتدى الصفحة ابتدى الكتابه فى الصندوق اللى تحت.
-(بص على [[{{MediaWiki:Helppage}}|صفحة المساعده]] علشان معلومات اكتر)
+(بص على [$1 صفحة المساعده] علشان معلومات اكتر)
 لو كانت زيارتك للصفحه دى بالغلط، دوس على زرار ''رجوع'' فى متصفح الإنترنت عندك.",
 'anontalkpagetext' => "----'' صفحة النقاش دى بتاعة يوزر مجهول لسة ما فتحش لنفسه حساب أو عنده واحد بس ما بيستعملوش.
 علشان كدا لازم تستعمل رقم الأيبى علشان تتعرف عليه/عليها.
@@ -1103,8 +1101,6 @@ $2',
 'revdelete-show-file-submit' => 'ايوه',
 'revdelete-selected' => "'''{{PLURAL:$2|المراجعه المختاره|المراجعات المختاره}} بتاعة [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|حدث السجل المختار|أحداث السجل المختارة}}:'''",
-'revdelete-text' => "'''المراجعات و الاحداث الممسوحه ح تنيها تظهر فى تاريخ الصفحه و فى السجلات, بس فى اجزاء من محتواها مش ح تبقا متاحه لكل الناس .'''
-الاداريين التانيين فى  {{SITENAME}} ح يقدرو يوصول للمحتوى المخفىو كمان ممكن يرجعو المسح عن طريق نفس الواجه دى ، الا اذا اتحطت قيود اضافيه.",
 'revdelete-confirm' => 'لو سمحت اتأكدد انك ناوى تعمل كدا, و انك فاهم اللى ح يترتب على كدا, و انك بتعمل كدا بالتوافق مع مع [[{{MediaWiki:Policy-url}}|السياسه]].',
 'revdelete-suppress-text' => "الكبت لازم ييتعمل '''بس''' فى الحالات دى:
 * معلومات شخصيه مش مناسبه
index 811ae87..7533511 100644 (file)
@@ -429,7 +429,6 @@ $1',
 'disclaimers' => 'দায়লুপ্তি',
 'disclaimerpage' => 'Project:সাধাৰণ দায়লুপ্তি',
 'edithelp' => 'সম্পাদনাৰ বাবে সহায়',
-'helppage' => 'Help:সমল',
 'mainpage' => 'বেটুপাত',
 'mainpage-description' => 'বেটুপাত',
 'policy-url' => 'Project:নীতি',
@@ -628,8 +627,6 @@ $2',
 'gotaccountlink' => 'প্ৰৱেশ',
 'userlogin-resetlink' => 'আপোনাৰ প্ৰৱেশ তথ্য পাহৰিছে?',
 'userlogin-resetpassword-link' => 'আপোনাৰ গুপ্তশব্দ পাহৰিছে?',
-'helplogin-url' => 'Help:প্ৰৱেশ/লগ্‌-ইন',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|প্ৰৱেশ সম্পৰ্কীয় সাহায্য]]',
 'userlogin-loggedin' => 'আপুনি ইতিমধ্যে {{GENDER:$1|$1}} হিচাপে প্ৰৱেশ কৰিছে। তলৰ আন সদস্যৰূপে প্ৰৱেশ কৰিবলৈ তলৰ প্ৰপত্ৰ ব্যৱহাৰ কৰক।',
 'userlogin-createanother' => 'আন এটা একাউণ্ট সৃষ্টি কৰক',
 'createacct-join' => 'আপোনাৰ তথ্যসমূহ তলত লিখক।',
@@ -724,6 +721,7 @@ $2',
 'suspicious-userlogout' => 'আপোনাৰ প্ৰস্থানৰ অনুৰোধ বাতিল কৰা হৈছে কাৰণ হয়তো আপোনাৰ ব্ৰাউজাৰ অসম্পূৰ্ণ নতুবা পূৰ্বৱতী তথ্য পঠাইছে ।',
 'createacct-another-realname-tip' => "প্ৰকৃত নাম দিয়াটো বৈকল্পিক।
 আপুনি নামটো দিলে সেইটো আপোনাৰ বৰঙণিসমূহৰ বাবে স্বীকৃতি প্ৰদানত ব্যৱহাৰ কৰা হ'ব।",
+'pt-login-button' => 'প্ৰৱেশ',
 
 # Email sending
 'php-mail-error-unknown' => 'পি.এইছ.পি মেইল () কাৰ্যত অজ্ঞাত ত্ৰুটি ।',
@@ -888,7 +886,7 @@ $1ৰ দ্বাৰা এই অৱৰোধ কৰা হৈছে ।
 'newarticle' => '(নতুন)',
 'newarticletext' => "আপুনি বিচৰা প্ৰবন্ধটো বিচাৰি পোৱা নগ'ল।
 
-ইচ্ছা কৰিলে আপুনিয়েই এই প্ৰবন্ধটো লিখা আৰম্ভ কৰিব পাৰে। [[{{MediaWiki:Helppage}}|ইয়াত]] সহায় পাব।
+ইচ্ছা কৰিলে আপুনিয়েই এই প্ৰবন্ধটো লিখা আৰম্ভ কৰিব পাৰে। [$1 ইয়াত] সহায় পাব।
 
 আপুনি যদি ইয়ালৈ ভুলতে আহিছে, তেনেহলে আপোনাৰ ব্ৰাওজাৰৰ '''BACK''' বুটামত টিপা মাৰক।",
 'anontalkpagetext' => "----''এইখন আলোচনা পৃষ্ঠা বেনামী সদস্যৰ বাবে, যিয়ে নিজা একাউন্ট  সৃষ্টি কৰা নাই বা যিয়ে সেই একাউন্ট ব্যৱহাৰ নকৰে ।
@@ -1143,8 +1141,6 @@ $3 য়ে আগবঢ়োৱা ইয়াৰ কাৰণ হৈছে
 'revdelete-show-file-submit' => 'হয়',
 'revdelete-selected' => "'''[[:$1]]-ৰ {{PLURAL:$2|নিৰ্বাচিত সংশোধন|নিৰ্বাচিত সংশোধনসমূহ}}:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|টা নিৰ্বাচিত ল’গ ভৰ্তি|টা নিৰ্বাচিত ল’গ ভৰ্তি}}:'''",
-'revdelete-text' => "'''বিলোপ কৰা সংশোধনবোৰ আৰু ঘটনাবোৰ পৃষ্ঠাৰ ইতিহাস আৰু ল’গত পোৱা যাব, কিন্তু তাৰ কিছু অংশ সৰ্বসাধাৰণৰ বাবে মুকলি নহ’ব ।''' 
-{{SITENAME}} ৰ অন্য প্ৰশাসকসকলে তথাপিও লুকুৱাই থোৱা বিষয়বস্তু দেখা পাব আৰু কোনো সীমাবদ্ধতা নাথাকিলে একেটা ইণ্টাৰফে’চৰ জৰিয়তে ইয়াক পুনৰুদ্ধাৰ কৰিব পাৰিব ।",
 'revdelete-confirm' => 'অনুগ্ৰহ কৰি সাব্যস্ত কৰক যে আপুনি ইয়াৰ পৰিণাম বুজি আৰু [[{{MediaWiki:Policy-url}}|the policy]] ৰ সৈতে সহমত হৈ এই কামটো কৰিব বিচাৰিছে |',
 'revdelete-suppress-text' => "নিবাৰণ '''কেৱল''' তলত দিয়া কাৰণসমূহত ব্যৱহৃত হ’ব:
 * সম্ভাব্য ক্ষতিকাৰক তথ্য 
@@ -1284,7 +1280,7 @@ $1",
 'search-file-match' => '(ফাইলৰ বিষয়বস্তুৰ লগত মিল পোৱা গৈছে)',
 'search-suggest' => 'আপুনি $1 বুজাব খুজিছে নেকি?',
 'search-interwiki-caption' => 'সহপ্ৰকল্পসমূহ',
-'search-interwiki-default' => '$1 ফলাফলসমূহ:',
+'search-interwiki-default' => '$1 ফলাফলসমূহ:',
 'search-interwiki-more' => '(আৰু)',
 'search-relatedarticle' => 'সম্পৰ্কিত',
 'searcheverything-enable' => 'সকলো নামস্থানত অনুসন্ধান কৰক',
@@ -2443,7 +2439,7 @@ $UNWATCHURL
 'protect-locked-access' => "এই পৃষ্ঠাটোৰ সুৰক্ষা-স্তৰ সলনি কৰাৰ অনুমতি আপোনাক দিয়া হোৱা নাই ।
 '''$1''' পৃষ্ঠাখনৰ সুৰক্ষা-স্তৰৰ গাঁথনি ইয়াত আছে:",
 'protect-cascadeon' => 'এই পৃষ্ঠাটো বৰ্তমান সুৰক্ষিত কাৰণ ই {{PLURAL:$1|খন পৃষ্ঠাৰ|খন পৃষ্ঠাৰ}} অন্তৰ্গত য’ত প্ৰপাতাকাৰ সুৰক্ষা সক্ৰিয় ।
-à¦\86পà§\81নি à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাৰ à¦¸à§\81ৰà¦\95à§\8dষা à¦¸à§\8dতৰ à¦¸à¦²à¦¾à¦¬ à¦ªà¦¾à§°à§\87 à¦\95িনà§\8dতà§\81 à¦¸à¦¿ à¦ªà§\8dৰপাতাà¦\95াৰ à¦¸à§\81ৰà¦\95à§\8dষাত à¦\95à§\8bনà§\8b à¦ªà§\8dৰভাৱ à¦¨à§\87পà§\87লায ।',
+à¦\8fà¦\87 à¦ªà§\83ষà§\8dঠাৰ à¦¸à§\81ৰà¦\95à§\8dষা à¦¸à§\8dতৰ à¦¸à¦²à¦¾à¦²à§\87 à¦ªà§\8dৰপাতাà¦\95াৰ à¦¸à§\81ৰà¦\95à§\8dষাত à¦\95à§\8bনà§\8b à¦ªà§\8dৰভাৱ à¦¨à§\87পà§\87লায় ।',
 'protect-default' => 'সকলো ব্যৱহাৰকাৰীৰ বাবে',
 'protect-fallback' => 'কেৱল "$1" অনুমতি থকা ব্যৱহাৰকাৰীকহে সুযোগ দিয়া হয়',
 'protect-level-autoconfirmed' => 'কেৱল স্বয়ংনিশ্চিত ব্যৱহাৰকাৰীকহে সুযোগ দিয়া হয়',
index 19fe6a6..21830ad 100644 (file)
@@ -100,7 +100,6 @@ $messages = array(
 'tog-ccmeonemails' => "Mandame copies de los correos qu'unvio a otros usuarios",
 'tog-diffonly' => 'Nun amosar el conteníu de la páxina embaxo de les diferencies',
 'tog-showhiddencats' => 'Amosar categoríes anubríes',
-'tog-noconvertlink' => 'Desactivar la conversión del títulu del enllaz',
 'tog-norollbackdiff' => 'Desaniciar les diferencies depués de facer una restauración',
 'tog-useeditwarning' => "Avisame cuando salga d'una páxina d'edición con cambios ensin guardar",
 'tog-prefershttps' => 'Usar siempre una conexón segura en aniciando sesión',
@@ -312,7 +311,6 @@ $1",
 'disclaimers' => 'Avisu llegal',
 'disclaimerpage' => 'Project:Avisu xeneral',
 'edithelp' => "Ayuda d'edición",
-'helppage' => 'Help:Conteníu',
 'mainpage' => 'Portada',
 'mainpage-description' => 'Portada',
 'policy-url' => 'Project:Polítiques',
@@ -513,8 +511,7 @@ Nun t'escaezas de camudar les tos [[Special:Preferences|preferencies de {{SITENA
 'gotaccountlink' => 'Aniciar sesión',
 'userlogin-resetlink' => "¿Escaeció los datos d'accesu?",
 'userlogin-resetpassword-link' => '¿Escaeció la contraseña?',
-'helplogin-url' => 'Help:Aniciar sesión',
-'userlogin-helplink' => "[[{{MediaWiki:helplogin-url}}|Ayuda p'aniciar sesión]]",
+'userlogin-helplink2' => 'Ayuda del aniciu de sesión',
 'userlogin-loggedin' => "Yá anició sesión como {{GENDER:$1|$1}}.
 Utilice'l formulariu de más abaxo p'aniciar sesión como otru usuariu.",
 'userlogin-createanother' => 'Crear otra cuenta',
@@ -617,6 +614,7 @@ Por favor espera $1 enantes d'intentalo otra vuelta.",
 'createacct-another-realname-tip' => "El nome real ye opcional.
 Si decide conseñalu, va usase p'atribuir el trabayu al usuariu.",
 'pt-login' => 'Entrar',
+'pt-login-button' => 'Aniciar sesión',
 'pt-createaccount' => 'Crear una cuenta',
 'pt-userlogout' => 'Salir',
 
@@ -649,7 +647,10 @@ Pa completar l'aniciu de sesión, tien de definir una nueva contraseña equí:",
 'resetpass-temp-password' => 'Contraseña temporal:',
 'resetpass-abort-generic' => "Una estensión encaboxó'l cambiu de la contraseña.",
 'resetpass-expired' => "La so contraseña caducó. Defina una nueva contraseña p'aniciar sesión.",
-'resetpass-expired-soft' => 'La so contraseña caducó y tien de reaniciala. Escueya una contraseña nueva o calque encaboxar pa reaniciala más sero.',
+'resetpass-expired-soft' => 'La so contraseña caducó y tien de reaniciala. Escueya una contraseña nueva, o calque «{{int:resetpass-submit-cancel}}» pa reaniciala más sero.',
+'resetpass-validity-soft' => 'La so contraseña nun ye válida: $1
+
+Escueya una contraseña nueva, o calque «{{int:resetpass-submit-cancel}}» pa reaniciala más sero.',
 
 # Special:PasswordReset
 'passwordreset' => 'Reaniciar contraseña',
@@ -797,7 +798,7 @@ Seique se treslladara o desaniciara mientres víes la páxina.',
 'accmailtext' => "Unvióse a $2 una contraseña xenerada al debalu pal usuariu [[User talk:$1|$1]]. Pue camudase na páxina ''[[Special:ChangePassword|camudar contraseña]]'' depués d'aniciar sesión.",
 'newarticle' => '(Nuevu)',
 'newarticletext' => "Siguisti un enllaz a un artículu qu'inda nun esiste.
-Pa crear la páxina, empecipia a escribir nel cuadru d'embaxo (mira la [[{{MediaWiki:Helppage}}|páxina d'ayuda]] pa más información).
+Pa crear la páxina, empecipia a escribir nel cuadru d'embaxo (mira la [$1 páxina d'ayuda] pa más información).
 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.''
@@ -1046,8 +1047,10 @@ Pues ver el diff; los detalles s'alcuentren nel [{{fullurl:{{#Special:Log}}/supr
 'revdelete-show-file-submit' => 'Sí',
 'revdelete-selected' => "'''{{PLURAL:$2|Revisión seleicionada|Revisiones seleicionaes}} de [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Socesu del rexistru seleicionáu|Socesos del rexistru seleicionaos}}:'''",
-'revdelete-text' => "'''Les revisiones y socesos desaniciaos van siguir apaeciendo nel historial de la páxina y nos rexistros, pero parte del so conteníu nun va ser accesible pal públicu.'''
-Otros alministradores de {{SITENAME}} van siguir pudiendo acceder al conteníu anubríu y puen restauralu de nuevo al traviés d'esta mesma interfaz, a nun ser que s'establezan otres restricciones.",
+'revdelete-text-text' => 'Les revisiones desaniciaes inda apaecerán nel historial de la páxina, pero partes del conteníu nun sedrán accesibles al públicu.',
+'revdelete-text-file' => 'Les versiones del ficheru desaniciaes inda apaecerán nel historial del ficheru, pero partes del conteníu nun sedrán accesibles al públicu.',
+'logdelete-text' => 'Los socesos del rexistru desaniciaos inda apaecerán nos rexistros, pero partes del conteníu nun sedrán accesibles al públicu.',
+'revdelete-text-others' => "Otros alministradores de {{SITENAME}} inda tendrán accesu al conteníu anubríu y puen desfacer l'anubrimientu con esta mesma interfaz, mentanto nun se configuren otres torgues más.",
 'revdelete-confirm' => "Confirma que quies facer esto, qu'entiendes les consecuencies, y que vas facer esto d'alcuerdo [[{{MediaWiki:Policy-url}}|cola política]].",
 'revdelete-suppress-text' => "La supresión '''namái''' tendría d'usase nos casos darréu:
 * Información que pudiere ser bilordiosa
@@ -1182,7 +1185,7 @@ Se puen alcontrar más detalles nel [{{fullurl:{{#Special:Log}}/delete|page={{FU
 'search-file-match' => '(casa col conteníu del ficheru)',
 'search-suggest' => 'Quixisti dicir: $1',
 'search-interwiki-caption' => 'Proyeutos hermanos',
-'search-interwiki-default' => '$1 resultaos:',
+'search-interwiki-default' => 'Resultaos de $1:',
 'search-interwiki-more' => '(más)',
 'search-relatedarticle' => 'Rellacionáu',
 'searcheverything-enable' => 'Buscar en tolos espacios de nome',
@@ -1506,7 +1509,7 @@ Esta información sedrá pública.',
 'recentchanges-legend-heading' => "'''Lleenda:'''",
 'recentchanges-legend-newpage' => '(ver tamién la  [[Special:NewPages|llista de páxines nueves]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "Abaxo tan los cambeos dende '''$2''' (s'amuesen fasta '''$1''').",
+'rcnotefrom' => "Abaxo tan los cambeos dende <strong>$2</strong> (s'amuesen fasta <strong>$1</strong>).",
 'rclistfrom' => 'Amosar los nuevos cambios dende $1',
 'rcshowhideminor' => '$1 ediciones menores',
 'rcshowhideminor-show' => 'Amosar',
@@ -1657,6 +1660,7 @@ Deberíes revisar el historial de desaniciu del ficheru enantes de xubilu otra v
 'php-uploaddisabledtext' => 'Les xubíes de ficheros tan desactivaes en PHP.
 Por favor, comprueba la configuración de file_uploads.',
 'uploadscripted' => 'Esti ficheru contién códigu HTML o scripts que se puen interpretar equivocadamente por un navegador.',
+'uploadscriptednamespace' => "Esti ficheru SVG contién l'espaciu de nomes illegal «$1»",
 'uploadinvalidxml' => "Nun pudo interpretase'l XML del ficheru cargáu.",
 'uploadvirus' => '¡El ficheru tien un virus!
 Detalles: $1',
@@ -2029,7 +2033,7 @@ Les entraes <del>tachaes</del> tan resueltes.',
 'deadendpagestext' => 'Les páxines siguientes nun enllacien a páxina dala de {{SITENAME}}.',
 'protectedpages' => 'Páxines protexíes',
 'protectedpages-indef' => 'Namái les proteiciones permanentes',
-'protectedpages-summary' => 'Esta páxina llista les páxines esistentes que tan protexíes actualmente. Pa ver la llista de títulos que tienen torgada la creación, vea [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Esta páxina llista les páxines esistentes que tan protexíes actualmente. Pa ver la llista de títulos que tienen torgada la creación, vea [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Namái proteiciones en cascada',
 'protectedpages-noredirect' => 'Anubrir redireiciones',
 'protectedpagesempty' => 'Nun hai páxines protexíes anguaño con estos parámetros.',
@@ -2042,7 +2046,7 @@ Les entraes <del>tachaes</del> tan resueltes.',
 'protectedpages-unknown-timestamp' => 'Desconocida',
 'protectedpages-unknown-performer' => 'Usuariu desconocíu',
 'protectedtitles' => 'Títulos protexíos',
-'protectedtitles-summary' => 'Esta páxina llista los títulos que tienen torgada la creación. Pa ver una llista de les páxines esistentes protexíes, vea [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Esta páxina llista los títulos que tienen torgada la creación. Pa ver una llista de les páxines protexíes esistentes, vea [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Nun hai títulos protexíos anguaño con estos parámetros.',
 'listusers' => "Llista d'usuarios",
 'listusers-editsonly' => 'Amosar namái usuarios con ediciones',
@@ -2317,7 +2321,7 @@ Restrinxóse l'esborráu d'estes páxines pa evitar perturbaciones accidentales
 'delete-warning-toobig' => "Esta páxina tien un historial d'ediciones grande, más de $1 {{PLURAL:$1|revisión|revisiones}}.
 Esborralu pue perturbar les operaciones de la base de datos de {{SITENAME}};
 obra con precaución.",
-'deleting-backlinks-warning' => "'''Avisu:''' Otres páxines enllacen a, o trescluyen de, la páxina que ta a piques de desaniciar.",
+'deleting-backlinks-warning' => "'''Avisu:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Otres páxines]] enllacen a, o trescluyen de, la páxina que ta a piques de desaniciar.",
 
 # Rollback
 'rollback' => 'Revertir ediciones',
@@ -2494,8 +2498,10 @@ La cabera entrada del rexistru de bloqueos s'ufre darréu pa referencia:",
 'sp-contributions-blocked-notice-anon' => "Esta IP anguaño ta bloquiada.
 La cabera entrada del rexistru de bloqueos s'ufre darréu pa referencia:",
 'sp-contributions-search' => 'Buscar contribuciones',
+'sp-contributions-suppresslog' => 'collaboraciones del usuariu desaniciaes',
 '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-newonly' => 'Amosar namái les ediciones que son creaciones de páxines',
 'sp-contributions-submit' => 'Buscar',
 
 # What links here
index 8554b20..6209cc6 100644 (file)
@@ -305,7 +305,6 @@ $messages = array(
 'disclaimers' => 'Walzera',
 'disclaimerpage' => 'Project:Jadif walzereem',
 'edithelp' => 'Pomara',
-'helppage' => 'Help:Pomara',
 'mainpage' => 'Emudexo',
 'mainpage-description' => 'Emudexo',
 'policy-url' => 'Project:Policy',
@@ -584,7 +583,7 @@ Rinaf tise IP mane tir $3 ise ID elekara tir #$5. Va bate ik bane mane ko kota e
 'accmailtext' => 'Remravlem ke « $1 » al zo stakser pu $2.',
 'newarticle' => '(Warzaf)',
 'newarticletext' => "Va gluyasiki va metisu bu su vulegal.
-Ta buredura, ko vlevef bor toz geltsutel (va [[{{MediaWiki:Helppage}}|pomarabu]] ta loa giva wil).
+Ta buredura, ko vlevef bor toz geltsutel (va [$1 pomarabu] ta loa giva wil).
 Ede batlize roklason tigil, va '''back''' uzadjo ke nedisiki vulegal.",
 'anontalkpagetext' => "---- ''Vous êtes sur la page de discussion d'un utilisateur anonyme qui n'a pas encore créé un compte ou qui ne l'utilise pas. Pour cette raison, nous devons utiliser l'adresse IP numérique pour l'identifier. Une adresse de ce type peut être partagée entre plusieurs utilisateurs. Si vous êtes un utilisateur anonyme et si vous constatez que des commentaires qui ne vous concernent pas vous ont été adressés, vous pouvez [[Special:UserLogin|créer un compte ou vous connecter]] afin d'éviter toute future confusion.''",
 'noarticletext' => 'Moe batu bu mek krent dure tir.
index 628c8f3..927c0df 100644 (file)
@@ -15,6 +15,7 @@
  * @author Emperyan
  * @author Erdemaslancan
  * @author Gulmammad
+ * @author Interfase
  * @author Kaganer
  * @author Khan27
  * @author Matma Rex
@@ -204,7 +205,7 @@ $messages = array(
 'category_header' => '"$1" kateqoriyasındakı məqalələr',
 'subcategories' => 'Alt kateqoriyalar',
 'category-media-header' => '"$1" kateqoriyasında mediya',
-'category-empty' => "''Bu kateqoriyanın tərkibi hal-hazırda boşdur.''",
+'category-empty' => '"Bu kateqoriya hal-hazırda boşdur."',
 'hidden-categories' => '{{PLURAL:$1|Gizli kateqoriya|Gizli kateqoriyalar}}',
 'hidden-category-category' => 'Gizli kateqoriyalar',
 'category-subcat-count' => '{{PLURAL:$2|Bu kateqoriya yalnız aşağıdakı altkateqoriyadan ibarətdir.|Cəmi $2 kateqoriyadan {{PLURAL:$1|altkateqoriya|$1 altkateqoriya}} göstərilmişdir.}}',
@@ -225,7 +226,7 @@ $messages = array(
 'moredotdotdot' => 'Daha...',
 'morenotlisted' => 'Bu siyahı tam deyil.',
 'mypage' => 'Səhifə',
-'mytalk' => 'Danışıqlarım',
+'mytalk' => 'Müzakirə',
 'anontalk' => 'Bu IP-yə aid müzakirə',
 'navigation' => 'Naviqasiya',
 'and' => '&#32;və',
@@ -294,7 +295,7 @@ $messages = array(
 'articlepage' => 'Məqaləni nəzərdən keçir',
 'talk' => 'Müzakirə',
 'views' => 'Görünüş',
-'toolbox' => 'Alətlər qutusu',
+'toolbox' => 'Alətlər',
 'userpage' => 'İstifadəçi səhifəsini göstər',
 'projectpage' => 'Layihə səhifəsini göstər',
 'imagepage' => 'Fayl səhifəsini göstər',
@@ -331,7 +332,6 @@ $1',
 'disclaimers' => 'Məsuliyyətdən imtina',
 'disclaimerpage' => 'Project:Məsuliyyətdən imtina',
 'edithelp' => 'Redaktə kömək',
-'helppage' => 'Help:Mündəricat',
 'mainpage' => 'Ana Səhifə',
 'mainpage-description' => 'Ana Səhifə',
 'policy-url' => 'Project:Qaydalar',
@@ -352,10 +352,10 @@ Bax: [[Special:Version|Versiyalar]].',
 'pagetitle' => '$1 - {{SITENAME}}',
 'pagetitle-view-mainpage' => '{{SITENAME}}',
 'retrievedfrom' => 'Mənbə — "$1"',
-'youhavenewmessages' => 'Hal-hazırda $1 var. ($2)',
+'youhavenewmessages' => '{{PLURAL:$3|$3}} $1 var ($2).',
 'youhavenewmessagesfromusers' => '{{PLURAL:$3|Başqa bir istifadəçidən|$3 istifadəçidən}} $1 var ($2).',
-'youhavenewmessagesmanyusers' => 'Bir çox istifadəçidən $1 var ($2).',
-'newmessageslinkplural' => '{{PLURAL:$1|yeni mesajınız|yeni mesajlarınız}}',
+'youhavenewmessagesmanyusers' => 'Bir neçə istifadəçidən $1 var ($2).',
+'newmessageslinkplural' => '{{PLURAL:$1|yeni mesaj|yeni mesaj}}',
 'newmessagesdifflinkplural' => 'son {{PLURAL:$1|dəyişiklik|dəyişikliklər}}',
 'youhavenewmessagesmulti' => '"$1"da yeni mesajınız var.',
 'editsection' => 'redaktə',
@@ -427,7 +427,7 @@ Bu vəziyyət səhifənin, silinmiş bir səhifənin keçmiş versiyası olması
 
 Əgər niyə bu deyilsə, proqramda bir səhv ilə qarşılaşmış ola bilərsiniz.
 Xahiş edirik bunu bir [[Special:ListUsers/sysop|İdarəçilərə]], URL not edərək göndərin.',
-'missingarticle-rev' => '(təftiş № $1)',
+'missingarticle-rev' => '(versiya №: $1)',
 'missingarticle-diff' => '(fərq: $1, $2)',
 'readonly_lag' => 'Məlumatlar bazasının ikinci dərəcəli serveri əsas serverlə əlaqə yaradanadək məlumatlar bazası avtomatik olaraq bloklanmışdır',
 'internalerror' => 'Daxili xəta',
@@ -507,7 +507,7 @@ Siz {{SITENAME}} saytını anonim olaraq istifadə etməyə davam edə bilər v
 'userlogin-yourpassword' => 'Parol',
 'userlogin-yourpassword-ph' => 'Parolunuzu daxil edin',
 'createacct-yourpassword-ph' => 'Parol daxil edin',
-'yourpasswordagain' => 'Parolu təkrar yazın:',
+'yourpasswordagain' => 'Parolu təkrar daxil edin:',
 'createacct-yourpasswordagain' => 'Parolu təsdiqlə',
 'createacct-yourpasswordagain-ph' => 'Parolu təkrar daxil edin',
 'remembermypassword' => 'Məni bu kompyuterdə xatırla (maksimum $1 {{PLURAL:$1|gün|gün}})',
@@ -526,15 +526,13 @@ Siz {{SITENAME}} saytını anonim olaraq istifadə etməyə davam edə bilər v
 'notloggedin' => 'Daxil olmamısınız',
 'userlogin-noaccount' => 'İstifadəçi hesabınız yoxdur?',
 'userlogin-joinproject' => '{{SITENAME}} qoşulun',
-'nologin' => "İstifadəçi hesabınız yoxdur? '''$1'''.",
-'nologinlink' => 'hesab açın',
+'nologin' => 'İstifadəçi hesabınız yoxdur? $1.',
+'nologinlink' => 'Hesab yaradın',
 'createaccount' => 'Hesab aç',
-'gotaccount' => "Giriş hesabınız varsa '''$1'''.",
+'gotaccount' => "İstifadəçi hesabınız varmı? '''$1'''.",
 'gotaccountlink' => 'Daxil olun',
 'userlogin-resetlink' => 'Daxilolma məlumatlarınızı unutmusunuz?',
 'userlogin-resetpassword-link' => 'Parolu unutdunuzmu?',
-'helplogin-url' => 'Help:Sistemə daxil ol',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|daxil olma haqqında yardım alın]]',
 'userlogin-loggedin' => 'Siz artıq {{GENDER:$1|$1}} kimi daxil olmusunuz.
 Aşağıdakı formadan istifadə edərək, bağqa bir istifadəçi kimi daxil ola bilərsiniz.',
 'userlogin-createanother' => 'Başqa bir istifadəçi hesabı yarat',
@@ -626,6 +624,9 @@ Yeni cəhd etməzdən əvvəl bir qədər gözləyin.',
 'suspicious-userlogout' => 'Sizin çıxış üçün cəhdiniz uğursuz alındı. Bu, brouzerin yaxud proksi-keşləmənin düzgün işləməməsindən qaynaqlanır.',
 'createacct-another-realname-tip' => 'Gərçək adınız istəyə bağlıdır.
 Əgər gərçək adınızı göstərsəniz, çalışmalarınıza müraciət etmək üçün istifadə ediləcəkdir.',
+'pt-login' => 'Daxil ol',
+'pt-createaccount' => 'Akkaunt yarat',
+'pt-userlogout' => 'Çıxış',
 
 # Email sending
 'php-mail-error-unknown' => 'PHP-nin mail() funksiyasında naməlum xəta',
@@ -642,7 +643,7 @@ Sistemə daxil olmanı yekunlaşdırmaq üçün yeni parolu bura yazmalısınız
 'newpassword' => 'Yeni parol:',
 'retypenew' => 'Yeni parolu təkrar yazın:',
 'resetpass_submit' => 'Parol yaradın və sistemə daxil olun',
-'changepassword-success' => 'Parolunuz dəyişdirldi! Hazırda sistemə daxil olursunuz...',
+'changepassword-success' => 'Sizin parol uğurla dəyişdirildi!',
 'resetpass_forbidden' => 'Parolu dəyişmək mümkün deyil',
 'resetpass-no-info' => 'Bu səhifəni birbaşa açmaq üçün sistemə daxil olmalısınız.',
 'resetpass-submit-loggedin' => 'Parolu dəyiş',
@@ -726,7 +727,7 @@ Həmin alt səhifə ola bilsin siz səhifəyə baxan zaman silinib.',
 'accmailtext' => "[[User talk:$1|$1]] üçün təsadüfi yolla yaradılmış parol $2 ünvanına göndərildi.
 Hesabınıza daxil olduqdan sonra, parolunuzu ''[[Special:ChangePassword|parolu dəyiş]]'' səhifəsində dəyişdirə bilərsiniz.",
 'newarticle' => '(Yeni)',
-'newarticletext' => "Mövcud olmayan səhifəyə olan keçidi izlədiniz. Aşağıdakı sahəyə məzmununu yazaraq bu səhifəni '''siz''' yarada bilərsiniz. (əlavə məlumat üçün [[{{MediaWiki:Helppage}}|kömək səhifəsinə]] baxın). Əgər bu səhifəyə səhvən gəlmisinizsə sadəcə olaraq brauzerin '''geri''' düyməsinə vurun.",
+'newarticletext' => "Mövcud olmayan səhifəyə olan keçidi izlədiniz. Aşağıdakı sahəyə məzmununu yazaraq bu səhifəni '''siz''' yarada bilərsiniz. (əlavə məlumat üçün [$1 kömək səhifəsinə] baxın). Əgər bu səhifəyə səhvən gəlmisinizsə sadəcə olaraq brauzerin '''geri''' düyməsinə vurun.",
 'anontalkpagetext' => "----''Bu səhifə qeydiyyatdan keçməmiş və ya daxil olmamış anonim istifadəçiyə aid müzakirə səhifəsidir.
 Ona görə bu istifadəçini rəqəmlərdən ibarət IP ünvanı ilə müəyyən etmək məcburiyyətindəyik.
 Belə IP ünvan bir neçə fərd tərəfindən istifadədə ola bilər.
@@ -734,9 +735,8 @@ Belə IP ünvan bir neçə fərd tərəfindən istifadədə ola bilər.
 'noarticletext' => 'Hal-hazırda bu səhifə boşdur. Başqa səhifələrdə eyni adda səhifəni [[Special:Search/{{PAGENAME}}| axtara]], əlaqəli qeydlərə
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} baxa],
 və ya səhifəni [{{fullurl:{{FULLPAGENAME}}|action=edit}} redaktə]</span> edə bilərsiniz.',
-'noarticletext-nopermission' => 'Hal-hazırda bu səhifə boşdur. Başqa səhifələrdə eyni adda səhifəni [[Special:Search/{{PAGENAME}}| axtara]], əlaqəli qeydlərə
-<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} baxa],
-və ya səhifəni [{{fullurl:{{FULLPAGENAME}}|action=edit}} redaktə]</span> edə bilərsiniz.',
+'noarticletext-nopermission' => 'Hal-hazırda bu səhifə boşdur. Başqa səhifələrdə eyni adlı səhifəni [[Special:Search/{{PAGENAME}}| axtara]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} əlaqəli qeydlərə baxa],
+və ya səhifəni [{{fullurl:{{FULLPAGENAME}}|action=edit}} redaktə edə bilərsiniz]</span>, lakin sizin bu məqaləni yaratmaq hüququnuz yoxdur.',
 'userpage-userdoesnotexist' => '"<nowiki>$1</nowiki>" istifadəçi adı qeydiyyata alınmayıb.
 Əgər siz bu səhifəni yaratmaq/redaktə etmək istəyirsinizsə, xahiş edirik bunu yoxlayın.',
 'userpage-userdoesnotexist-view' => '"$1" istifadəçi hesabı qeydiyyatda deyil',
@@ -754,7 +754,7 @@ Bloklama qeydlərinin sonuncusu aşağıda göstərilmişdir:',
 '''Bu hələ yaddaşda saxlanılmayıb!'''",
 'updated' => '(yeniləndi)',
 'note' => "'''Qeyd:'''",
-'previewnote' => "'''Bu yalnız sınaq göstərişidir; dəyişikliklər hal-hazırda qeyd edilməmişdir!'''",
+'previewnote' => '<strong>Unutmayın ki, bu yalnız sınaq göstərişidir.</strong> Dəyişiklikləriniz hal-hazırda qeyd edilməmişdir!',
 'previewconflict' => 'Bu sınaq göstərişidir və yaddaşda saxlayacağınız təqdirdə mətnin redaktə səhifəsinin yuxarı hissəsində nəticənin necə olacağını göstərir.',
 'session_fail_preview' => "'''Üzr istəyirik! Sizin redaktəniz saxlanılmadı. Serverdə identifikasiyanızla bağlı problemlər yaranmışdır. Lütfən bir daha təkrar edin. Problem həll olunmazsa hesabınızdan çıxın və yenidən daxil olun.'''",
 'editing' => 'Redaktə $1',
@@ -815,6 +815,7 @@ Belə ki, bu adda səhifə artıq mövcuddur.',
 'post-expand-template-inclusion-warning' => "'''DİQQƏT!''' Daxil edilən şablonların həcmi həddindən artıq böyükdür.
 Bəzi şablonlar əlavə olunmayacaq.",
 'post-expand-template-inclusion-category' => 'Şablonun daxil olduğu səhifələrin ölçüsü böyükdür.',
+'post-expand-template-argument-warning' => '<strong>Diqqət:</strong> bu səhifədə açılma ölçüsü həddən artıq böyük olan ən azı bir şablon arqumenti var. Həmin arqumentlər buraxılıb.',
 'post-expand-template-argument-category' => 'Şablonlarda buraxılmış arqumentlərin mövcud olduğu səhifələr',
 'parser-template-loop-warning' => '[[$1]]: Şablonda düyün tapıldı',
 'parser-template-recursion-depth-warning' => '($1) Şablonda dərinlik limiti keçildi',
@@ -840,15 +841,13 @@ $3 tərəfindən verilən səbəb ''$2''",
 'revision-info' => '$2 tərəfindən yaradılmış $1 tarixli dəyişiklik',
 'previousrevision' => '←Əvvəlki versiya',
 'nextrevision' => 'Sonrakı versiya→',
-'currentrevisionlink' => 'Hal-hazırkı versiyanı göstər',
+'currentrevisionlink' => 'Hal-hazırkı versiya',
 'cur' => 'hh',
 'next' => 'sonrakı',
 'last' => 'son',
 'page_first' => 'birinci',
 'page_last' => 'sonuncu',
-'histlegend' => 'Fərqləri seçmə və göstərmə: müqayisə etmək istədiyiniz versiyaların yanındakı radio qutularına işarə qoyun və daxil etmə düyməsinə (enter+a) və ya "müqayisə et" düyməsinə vurun.
-
-Açıqlama: <strong>({{int:cur}})</strong> = hal-hazırkı versiya ilə olan fərqlər, <strong>({{int:last}})</strong> = əvvəlki versiya ilə olan fərqlər, <strong>{{int:minoreditletter}}</strong> = kiçik redaktələr.</span>',
+'histlegend' => "Fərqləri seç: müqayisə etmək istədiyiniz versiyaların yanındakı dairəyə işarə qoyun və Enter və ya '''{{int:compare-submit}}''' düyməsinə basın.<br />İzah: <strong>({{int:cur}})</strong> = hal-hazırkı versiya ilə olan fərqlər, <strong>({{int:last}})</strong> = əvvəlki versiya ilə olan fərqlər, <strong>{{int:minoreditletter}}</strong> = kiçik redaktələr.",
 'history-fieldset-title' => 'Tarixçəni nəzərdən keçir',
 'history-show-deleted' => 'Yalnız silinənlər',
 'histfirst' => 'Ən əvvəlki',
@@ -859,7 +858,7 @@ Açıqlama: <strong>({{int:cur}})</strong> = hal-hazırkı versiya ilə olan fə
 # Revision feed
 'history-feed-title' => 'Redaktə tarixçəsi',
 'history-feed-description' => 'Vikidə bu səhifənin dəyişikliklər tarixçəsi',
-'history-feed-item-nocomment' => '$1-dən $2-yə',
+'history-feed-item-nocomment' => '$1 $2-də',
 'history-feed-empty' => 'Axtardığınız səhifə mövcud deyil.
 Çox guman ki, bu səhifə silinib və ya onun adı dəyişdirilib.
 Vikidə buna bənzər səhifələri [[Special:Search|axtarmağa]] cəhd edin.',
@@ -948,6 +947,7 @@ $1",
 
 # Diffs
 'history-title' => '"$1" səhifəsinin tarixçəsi',
+'difference-title' => '"$1" səhifəsinin versiyaları arasındakı fərqlər',
 'difference-multipage' => '(Səhifələr arasında fərq)',
 'lineno' => 'Sətir $1:',
 'compareselectedversions' => 'Seçilən versiyaları müqayisə et',
@@ -969,7 +969,7 @@ $1",
 'shown-title' => 'Səhifə üçün $1 {{PLURAL:$1|nəticə|nəticəyə}} bax',
 'viewprevnext' => 'Göstər ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-exists' => "'''Bu vikidə \"[[:\$1]]\" adında səhifə mövcuddur'''",
-'searchmenu-new' => "'''Bu vikidə \"[[:\$1]]\" səhifəsini yarat!'''",
+'searchmenu-new' => '<strong>Bu vikidə "[[:$1]]" səhifəsini yarat!</strong> {{PLURAL:$2|0=|Həmçinin, axtarışınız əsasında çıxan səhifəyə baxın.|Həmçinin, axtarışınız əsasında çıxan nəticələrə baxın.}}',
 'searchprofile-articles' => 'Məqalələr',
 'searchprofile-project' => 'Kömək və Layihə səhifələri',
 'searchprofile-images' => 'Multimedia',
@@ -991,7 +991,7 @@ $1",
 'search-interwiki-more' => '(yenə)',
 'search-relatedarticle' => 'əlaqədar',
 'searcheverything-enable' => 'Ad aralığında axtar:',
-'searchrelated' => 'əlaqədar',
+'searchrelated' => 'əlaqəli',
 'searchall' => 'bütün',
 'showingresults' => "Aşağıda #'''$2''' ilə başlayan {{PLURAL:$1|'''$1'''-ə qədər}} nəticə göstərilib.",
 'showingresultsnum' => "Aşağıda #'''$2''' ilə başlayan {{PLURAL:$3|'''$3'''}} nəticə göstərilib.",
@@ -1068,7 +1068,7 @@ $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:',
-'youremail' => 'E-məktub *',
+'youremail' => 'E-məktub:',
 'username' => 'İstifadəçi adı:',
 'uid' => 'İstifadəçi ID:',
 'prefs-memberingroups' => 'Üzvü olduğu {{PLURAL:$1|qrup|qrup}}:',
@@ -1090,8 +1090,8 @@ HTML kodu yoxla.',
 'prefs-help-realname' => 'Həqiqi adınızı daxil etmək məcburi deyil.
 Bu seçimi etdiyiniz halda, adınız redaktələrinizə görə müəlliflik hüququnuzun tanınması üçün istifadə ediləcək.',
 'prefs-help-email' => 'E-poçt ünvanınızı daxil etmək məcburi deyil.
-Bu parolunuzu unutduğunuz halda Sizə yeni parol göndərməyə imkan verir.
-Həmçinin kimliyinizi gostərmədən belə, başqalarının sizinlə istifadəçi və ya istifadəçi müzakirəsi səhifələriniz vasitəsi ilə əlaqə yaratmalarını seçə bilərsiniz.',
+Bu, parolunuzu unutduğunuz halda, sizə yeni parol göndərməyə imkan verir.',
+'prefs-help-email-others' => 'Həmçinin, istifadəçi və ya müzakirə səhifənizdəki link vasitəsilə başqa istifadəçilərin sizinlə əlaqə yaratmasını seçə bilərsiniz. Bu halda sizin e-poçt ünvanınız heç kimə görünməyəcək.',
 'prefs-help-email-required' => 'Elektron ünvan tələb olunur.',
 'prefs-info' => 'Əsas məlumatlar',
 'prefs-i18n' => 'Beynəlxalqlaşdırma',
@@ -1264,18 +1264,18 @@ Həmçinin kimliyinizi gostərmədən belə, başqalarının sizinlə istifadə
 'recentchanges-label-bot' => 'Bu redaktə bot tərəfindən edilmişdir',
 'recentchanges-label-unpatrolled' => 'Bu redaktə hələ nəzərdən keçirilməmişdir',
 'recentchanges-legend-newpage' => '$1 - yeni səhifə',
-'rcnotefrom' => "Aşağıda '''$2'''-dən ('''$1'''-ə qədər) dəyişikliklər sadalanmışdır.",
+'rcnotefrom' => 'Aşağıda <strong>$2</strong>-dən bu yana olan dəyişikliklər göstərilib (<strong>$1</strong>-dən çox olmayaraq).',
 'rclistfrom' => '$1 vaxtından başlayaraq yeni dəyişiklikləri göstər',
 'rcshowhideminor' => 'Kiçik redaktələri $1',
 'rcshowhidebots' => 'Botları $1',
 'rcshowhideliu' => 'Qeydiyyatlı istifadəçiləri $1',
 'rcshowhideanons' => 'Anonim istifadəçiləri $1',
-'rcshowhidepatr' => 'Nəzarət edilən redaktələri $1',
+'rcshowhidepatr' => 'Yoxlanılmış redaktələri $1',
 'rcshowhidemine' => 'Mənim redaktələrimi $1',
 'rclinks' => 'Son $2 gün ərzindəki son $1 dəyişikliyi göstər <br />$3',
 'diff' => 'fərq',
 'hist' => 'tarixçə',
-'hide' => 'Gizlət',
+'hide' => 'Gizlə',
 'show' => 'Göstər',
 'minoreditletter' => 'k',
 'newpageletter' => 'Y',
@@ -1286,7 +1286,7 @@ Həmçinin kimliyinizi gostərmədən belə, başqalarının sizinlə istifadə
 'rc-change-size' => '$1',
 'rc-change-size-new' => '$1 üçün dəyişiklikdən sonrakı həcm: {{PLURAL:$1|bayt|bayt|bayt}}',
 'newsectionsummary' => '/* $1 */ yeni bölmə',
-'rc-enhanced-expand' => 'Detalları göstər (JavaScript istifadə edir)',
+'rc-enhanced-expand' => 'Ətraflı göstər',
 'rc-enhanced-hide' => 'Redaktələri gizlət',
 'rc-old-title' => 'Əvvəlcə "$1" kimi yaradılmış',
 
@@ -1324,7 +1324,7 @@ Məqaləyə fayl yerləşdirmək üçün aşağıdaki formalardan birini istifad
 'upload-preferred' => 'İcazə verilən fayl tipləri: $1.',
 'upload-prohibited' => 'İcazə verilməyən fayl tipləri: $1.',
 'uploadlog' => 'yükləmə qeydi',
-'uploadlogpage' => 'Yükləmə qeydi',
+'uploadlogpage' => 'Yükləmə qeydləri',
 'uploadlogpagetext' => 'Aşağıda ən yeni yükləmə jurnal qeydləri verilmişdir.',
 'filename' => 'Fayl adı',
 'filedesc' => 'Xülasə',
@@ -1358,7 +1358,7 @@ Lütfən <strong>[[:$1]]</strong> keçidini yoxlayın və bu faylı yükləmək
 [[$1|thumb]]',
 'uploadwarning' => 'Yükləmə xəbərdarlığı',
 'savefile' => 'Faylı qeyd et',
-'uploadedimage' => 'yükləndi "[[$1]]"',
+'uploadedimage' => '"[[$1]]" yükləndi',
 'overwroteimage' => '"[[$1]]"-in yeni versiyası yükləndi',
 'uploaddisabled' => 'Yükləmə baş tutmadı',
 'copyuploaddisabled' => 'URL-dən yükləmə baş tutmadı.',
@@ -1456,7 +1456,7 @@ $1',
 'filehist-help' => 'Faylın əvvəlki versiyasını görmək üçün gün/tarix bölməsindəki tarixləri tıqlayın.',
 'filehist-deleteall' => 'hamısını sil',
 'filehist-deleteone' => 'sil',
-'filehist-revert' => 'əvvəlki vəziyyətinə',
+'filehist-revert' => 'geri qaytar',
 'filehist-current' => 'indiki',
 'filehist-datetime' => 'Tarix/Vaxt',
 'filehist-thumb' => 'Kiçik şəkil',
@@ -1472,9 +1472,11 @@ $1',
 'nolinkstoimage' => 'Bu fayla keçid verən səhifə yoxdur.',
 'linkstoimage-redirect' => '$1 (fayl istiqamətləndirilir) $2',
 'sharedupload' => 'Bu fayl $1-dandır və ola bilsin ki, başqa layihələrdə də istifadə edilir.',
+'sharedupload-desc-here' => 'Bu fayl $1dandır və başqa layihələrdə də istifadə edilə bilər.
+Faylın [$2 təsvir səhifəsindəki] məlumat aşağıda göstərilib.',
 'uploadnewversion-linktext' => 'Bu faylın yeni versiyasını yüklə',
 'shared-repo-from' => '$1-dən',
-'shared-repo' => 'ümumi anbar',
+'shared-repo' => 'ümumi fayl anbarı',
 'shared-repo-name-wikimediacommons' => 'Wikimedia Commons',
 
 # File reversion
@@ -1694,7 +1696,7 @@ Fərdi hüquqlar haqqında əlavə məlumatı [[{{MediaWiki:Listgrouprights-help
 'listgrouprights-group' => 'Qrup',
 'listgrouprights-rights' => 'Hüquqlar',
 'listgrouprights-helppage' => 'Help:Qrup hüquqları',
-'listgrouprights-members' => '(üzvləri)',
+'listgrouprights-members' => '(üzvlər)',
 'listgrouprights-right-display' => '<span class="listgrouprights-granted">$1 <code>($2)</code></span>',
 'listgrouprights-right-revoked' => '<span class="listgrouprights-revoked">$1 <code>($2)</code></span>',
 'listgrouprights-addgroup' => '{{PLURAL:$2|Qrupu}} əlavə et: $1',
@@ -1708,7 +1710,7 @@ Fərdi hüquqlar haqqında əlavə məlumatı [[{{MediaWiki:Listgrouprights-help
 
 # Email user
 'mailnologin' => 'Ünvan yoxdur',
-'emailuser' => 'İstifadəçiyə e-məktub yolla',
+'emailuser' => 'İstifadəçiyə e-məktub göndər',
 'emailpage' => 'İstifadəçiyə e-məktub yolla',
 'usermailererror' => 'Elektron poçtla məlumat göndərilən zaman xəta baş vermişdir:',
 'defemailsubject' => '"$1" adlı istifadəçidən {{SITENAME}} e-məktubu',
@@ -1736,8 +1738,8 @@ Fərdi hüquqlar haqqında əlavə məlumatı [[{{MediaWiki:Listgrouprights-help
 'usermessage-template' => 'MediaWiki:İstifadəçi müzakirəsi',
 
 # Watchlist
-'watchlist' => 'İzlədiyim səhifələr',
-'mywatchlist' => 'İzlədiyim səhifələr',
+'watchlist' => 'İzləmə siyahısı',
+'mywatchlist' => 'İzləmə siyahısı',
 'watchlistfor2' => '$1 $2 üçün',
 'nowatchlist' => 'İzləmə siyahınız böşdur.',
 'watchlistanontext' => 'Lütfən, izlədiyiniz səhifələri görmək və ya redaktə etmək üçün $1.',
@@ -1753,7 +1755,7 @@ 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',
-'watchlist-details' => 'Müzakirə səhifələrini çıxmaq şərtilə {{PLURAL:$1|$1 səhifəni|$1 səhifəni}} izləyirsiniz.',
+'watchlist-details' => 'İzləmə siyahınızda, müzakirə səhifələrini çıxmaq şərtilə, {{PLURAL:$1|$1 səhifə|$1 səhifə}} var.',
 '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.",
 'watchmethod-recent' => 'yeni dəyişikliklər izlənilən səhifələr üçün yoxlanılır',
@@ -1761,7 +1763,7 @@ Fərdi hüquqlar haqqında əlavə məlumatı [[{{MediaWiki:Listgrouprights-help
 'watchlistcontains' => 'İzləmə siyahınızda $1 {{PLURAL:$1|səhifə|səhifə}} var.',
 'iteminvalidname' => "'$1' ilə bağlı problem, adı düzgün deyil...",
 'wlshowlast' => 'Bunları göstər: son $1 saatı $2 günü $3',
-'watchlist-options' => 'İzlədiyim səhifələrin nizamlamaları',
+'watchlist-options' => 'İzləmə siyahısının nizamlamaları',
 
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'İzlənilir...',
@@ -1841,7 +1843,7 @@ Sonuncu silinmələrə bax: $2.',
 
 # Protect
 'protectlogpage' => 'Mühafizə etmə qeydləri',
-'protectedarticle' => 'mühafizə edildi "[[$1]]"',
+'protectedarticle' => '"[[$1]]" səhifəsi mühafizə edildi',
 'modifiedarticleprotection' => '"[[$1]]" səhifəsi üçün mühafizə səviyyəsi dəyişildi',
 'unprotectedarticle' => 'mühafizə kənarlaşdırıldı "[[$1]]"',
 'protect-title' => '"$1" üçün mühafizə səviyyəsinin dəyişdirilməsi',
@@ -1939,12 +1941,12 @@ $1',
 'blanknamespace' => '(Ana)',
 
 # Contributions
-'contributions' => 'İstifadəçi fəaliyyəti',
+'contributions' => '{{GENDER:$1|İstifadəçinin}} fəaliyyəti',
 'contributions-title' => '$1 istifadəçi fəaliyyətləri',
 'mycontris' => 'Fəaliyyətim',
-'contribsub2' => '$1 ($2)',
+'contribsub2' => '{{GENDER:$3|$1}} ($2) adlı istifadəçinin fəaliyyəti',
 'nocontribs' => 'Bu kriteriyaya uyğun redaktələr tapılmadı',
-'uctop' => '(son)',
+'uctop' => '(hal-hazırkı)',
 'month' => 'Ay',
 'year' => 'Axtarışa bu tarixdən etibarən başla:',
 
@@ -1963,7 +1965,7 @@ Bloklama qeydlərinin sonuncusu aşağıda göstərilmişdir:',
 Bloklama qeydlərinin sonuncusu aşağıda göstərilmişdir:',
 'sp-contributions-search' => 'Fəaliyyətləri axtar',
 'sp-contributions-username' => 'IP-ünvanı və ya istifadəçi adı:',
-'sp-contributions-toponly' => 'Yalnız ən son dəyişiklikləri göstər',
+'sp-contributions-toponly' => 'Son redaktə olan dəyişiklikləri göstər',
 'sp-contributions-submit' => 'Axtar',
 
 # What links here
@@ -1971,7 +1973,7 @@ Bloklama qeydlərinin sonuncusu aşağıda göstərilmişdir:',
 'whatlinkshere-title' => '"$1" məqaləsinə keçid verən səhifələr',
 'whatlinkshere-page' => 'Səhifə:',
 'linkshere' => "'''[[:$1]]''' səhifəsinə istinad edən səhifələr:",
-'nolinkshere' => "'''[[:$1]]''' səhifəsinə keçid verən səhifə yoxdur.",
+'nolinkshere' => '<strong>[[:$1]]</strong> səhifəsinə keçid verən səhifə yoxdur.',
 'nolinkshere-ns' => "Seçilmiş ad aralığında heç bir səhifə '''[[:$1]]''' səhifəsinə keçid vermir.",
 'isredirect' => 'İstiqamətləndirmə səhifəsi',
 'istemplate' => 'daxil olmuş',
@@ -2065,13 +2067,13 @@ $1 adlı istifadəçinin bloklanma səbəbi: "$2"',
 'blocklog-showlog' => 'Bu istifadəçi daha əvvəl bloklanmışdır. Bloklama gündəliyi referans üçün aşağıda göstərilib:',
 'blocklog-showsuppresslog' => 'Bu istifadəçi daha əvvəl bloklanmışdır. Bloklama gündəliyi referans üçün aşağıda göstərilib:',
 'blocklogentry' => 'tərəfindən [[$1]] bloklandı, blok müddəti: $2 $3',
-'reblock-logentry' => '[[$1]] üçün son tarixi $2 $3 olmaq üzərə blok parametrləri dəyişdirildi',
+'reblock-logentry' => '[[$1]] üçün bloklama parametrlərini, başa çatma tarixi $2 $3 olmaqla, dəyişdirdi',
 'blocklogtext' => 'İstifadəçilərin bloklanması və blokun götürülməsi siyahısı.
 Avtomatik bloklanmış IP-ünvanlar burada göstərilmir.
 Hal-hazırkı [[Special:BlockList|qadağaların və bloklamaların siyahısı]]na bax.',
 'unblocklogentry' => '$1 üzərindəki blok götürüldü',
 'block-log-flags-anononly' => 'yalnız qeydiyyatsız istifadəçilər',
-'block-log-flags-nocreate' => 'Yeni hesab yaratma bloklanıb',
+'block-log-flags-nocreate' => 'yeni hesab yaratma bloklanıb',
 'block-log-flags-noautoblock' => 'avtobloklama qeyri-mümkündür',
 'block-log-flags-noemail' => 'E-mail bloklanıb',
 'block-log-flags-nousertalk' => 'Müzakirə səhifəsini redaktə edə bilməz.',
@@ -2243,7 +2245,7 @@ Zəhmət olmasa başqa ad seçin.',
 'tooltip-ca-unprotect' => 'Bu səhifənin mühafizəsini kənarlaşdır',
 'tooltip-ca-delete' => 'Bu səhifəni sil',
 'tooltip-ca-undelete' => 'Bu səhifəni silinmədən əvvəlki halına qaytarın',
-'tooltip-ca-move' => 'Bu səhifənin adını dəyiş',
+'tooltip-ca-move' => 'Səhifənin adını dəyiş',
 'tooltip-ca-watch' => 'Bu səhifəni izlə',
 'tooltip-ca-unwatch' => 'Bu səhifənin izlənməsini bitir',
 'tooltip-search' => '{{SITENAME}} səhifəsində axtar',
@@ -2390,7 +2392,7 @@ $1',
 'file-info-size' => '$1 × $2 piksel, fayl həcmi: $3, MIME növü: $4',
 'file-nohires' => 'Daha dəqiq versiyası yoxdur.',
 'svg-long-desc' => 'SVG fayl, nominal olaraq $1 × $2 piksel, faylın ölçüsü: $3',
-'show-big-image' => 'Daha yüksək keyfiyyətli şəkil',
+'show-big-image' => 'Faylın əsli',
 'show-big-image-preview' => 'Sınaq göstərişi ölçüsü: $1.',
 'show-big-image-other' => "Dig'r {{PLURAL:$2|nəticə|nəticələr}}: $1.",
 'show-big-image-size' => '$1 × $2 piksel',
@@ -2794,7 +2796,7 @@ Variants for Chinese language
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'hamısını',
-'namespacesall' => 'bütün',
+'namespacesall' => 'hamısı',
 'monthsall' => 'hamısı',
 
 # Email address confirmation
@@ -2869,11 +2871,11 @@ Variants for Chinese language
 # Watchlist editing tools
 'watchlisttools-view' => 'Siyahıdakı səhifələrdə edilən dəyişikliklər',
 'watchlisttools-edit' => 'İzlədiyim səhifələri göstər və redaktə et',
-'watchlisttools-raw' => 'Mətn kimi redaktə et',
+'watchlisttools-raw' => 'Adi mətn kimi redaktə et',
 
 # Core parser functions
 'unknown_extension_tag' => '"$1" Naməlum ayırma teqi',
-'duplicate-defaultsort' => '\'\'\'Diqqət:\'\'\' Ehtimal edilən "$2" klassifikasiya açarı əvvəlki "$1" klassifikasiya açarını keçərsiz edir.',
+'duplicate-defaultsort' => '<strong>Diqqət:</strong> Susmaya görə "$2" çeşidləmə açarı susmaya görə əvvəlki "$1" çeşidləmə açarını inkar edir.',
 
 # Special:Version
 'version' => 'Versiya',
@@ -2925,6 +2927,16 @@ Variants for Chinese language
 'blankpage' => 'Boş səhifə',
 'intentionallyblankpage' => 'Bu səhifə xüsusilə boşdur.',
 
+# External image whitelist
+'external_image_whitelist' => ' #Bu sətiri olduğu kimi saxlayın<pre>
+#Burada ardıcıl ifadələrin fraqmentlərini yerləşdirin (// simvolları arasında yerləşən hissələri).
+#Onlar kənar şəkillərin URL ünvanları ilə tutuşdurulacaq.
+#Uyğun gələnlər şəkil kimi, yerdə qalanlar isə şəkillərə keçid kimi göstəriləcək.
+#Sətirlərdən # simvolu ilə başlayanlar şərh hesab ediləcək.
+#Sətirlər böyük-kiçik şriftə həsass deyillər.
+
+#Ardıcıl ifadələrin fraqmentlərini bu sətirdən yuxarıda yerləşdirin. Bu sətiri olduğu kimi saxlayın.</pre>',
+
 # Special:Tags
 'tags' => 'Mümkün dəyişiklik etiketləri',
 'tag-filter' => '[[Special:Tags|Etiket]] süzgəci:',
index a382b8d..6c4e1d2 100644 (file)
@@ -330,7 +330,6 @@ $1',
 'disclaimers' => 'رد ائتمک',
 'disclaimerpage' => 'Project:عمومی رد ائتمک',
 'edithelp' => 'ديَیشیکلیک‌لر اوچون یاردیم',
-'helppage' => 'Help:ایچینده‌کیلر',
 'mainpage' => 'آنا صحیفه',
 'mainpage-description' => 'آنا صحیفه',
 'policy-url' => 'Project:قایدالار',
@@ -521,8 +520,6 @@ $2',
 'gotaccountlink' => 'گیریش',
 'userlogin-resetlink' => 'گیریش بیلگیلرینیزی اونوتموسونوز؟',
 'userlogin-resetpassword-link' => 'رمزینیزی صیفیرلایین',
-'helplogin-url' => 'Help:ایچری گیرمک',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|ایچری گیرمگه یاردیم]]',
 'createacct-join' => 'آشاغیدا بیلگیلرینیزی داخیل ائدین.',
 'createacct-emailrequired' => 'ایمیل آدرسی',
 'createacct-emailoptional' => 'ایمیل آدرسی (ایستگه باغلی)',
@@ -756,7 +753,7 @@ $2
 بو یئنی حسابین رمزی، گیرندن سونرا ''[[Special:ChangePassword|رمز دَییشدیرمه]]'' صحیفه‌سیندن دَییشیله بیلر.",
 'newarticle' => '(یئنی)',
 'newarticletext' => "مؤوجود اوْلمايان صحیفه‌‌يه اوْلان کئچیدی ایزله‌دینیز. 
-آشاغیداکی ساحه‌‌يه مظمونونو يازاراق بۇ صحیفه‌‌نی '''سیز''' يارادا بیلرسینیز. (علاوه‌‌ معلومات اۆچون [[{{MediaWiki:Helppage}}|کؤمک صحیفه‌‌سینه]] باخین). اگر بۇ صحیفه‌‌يه سهون گلمیسینیزسه ساده‌جه اوْلاراق براوزئرین '''گئری''' دۆيمه‌سینه وۇرون.",
+آشاغیداکی ساحه‌‌يه مظمونونو يازاراق بۇ صحیفه‌‌نی '''سیز''' يارادا بیلرسینیز. (علاوه‌‌ معلومات اۆچون [$1 کؤمک صحیفه‌‌سینه] باخین). اگر بۇ صحیفه‌‌يه سهون گلمیسینیزسه ساده‌جه اوْلاراق براوزئرین '''گئری''' دۆيمه‌سینه وۇرون.",
 'anontalkpagetext' => "''بو صحیفه قئیدیات‌دان کئچممیش و یا داخیل اولمامیش آنونیم ایستیفادچییه عایید موذاکیره صحیفه‌سی‌دیر.
 اونا گؤره بو ایستیفادچینی رقم‌لردن عبارت ایپ اونوانی ایله معین ائتمک مجبوریتیندییک.
 بئله ایپ اونوان بیر نئچه فرد طرفین‌دن ایستیفاده‌ده اولا بیلر.
@@ -992,8 +989,6 @@ $3 طرفین‌دن وئریلن سبب '$2",
 'revdelete-show-file-submit' => 'بلی',
 'revdelete-selected' => "[[:$1]] صحیفه‌سی‌نین {{PLURAL:$2|سئچیلمیش نوسخه لری|سئچیلمیش نوسخه لری }}:'",
 'logdelete-selected' => "'ژورنالین {{PLURAL:$1|سئچیلمیش قئیدی|سئچیلمیش قئیدلری}}:'",
-'revdelete-text' => "' 'سیلینئن رئویزیون‌لار و حادثه‌لر هله صحیفه کئچمیشینده و گونده‌لیک‌لرده گؤرونه‌جک، لاکین ترکیبین پارچا‌لاری عمومی اولا‌راق ائریشیلئمئیئجئکتیر.'
-{{SITENAME}} سایتین‌داکی دیگر ایداره‌چی‌لر گیزلی مزمونا چاتا بیلر و علاوه محدودیت‌لر آیارلانمادییسا بو اینتئرفئیس ایله گئری گتیره بیلر.",
 'revdelete-confirm' => 'خاهیش ائدیریک، بونو ائتمک ایستدیگینیزی، نتیجه‌لرینی آنلادیغینیزی، و بونو [[{{MediaWiki:Policy-url}}| پرینسیپ‌لره]] گؤره ائدیر اولدوغونوزو تسدیق ائدین.',
 'revdelete-suppress-text' => "ساخلاما 'یالنیز آشاغی‌داکی حال‌لار اوچون ایستیفاده ائدیلمه‌لی‌دیر:
 * اویگون‌سوز فردی معلومات
index 28ec8bb..ba530dd 100644 (file)
@@ -395,7 +395,6 @@ $1',
 'disclaimers' => 'Яуаплылыҡтан баш тартыу',
 'disclaimerpage' => 'Project:Яуаплылыҡтан баш тартыу',
 'edithelp' => 'Төҙәтеү белешмәһе',
-'helppage' => 'Help:Белешмә',
 'mainpage' => 'Баш бит',
 'mainpage-description' => 'Баш бит',
 'policy-url' => 'Project:Ҡағиҙәләр',
@@ -595,8 +594,6 @@ $2',
 'gotaccountlink' => 'Үҙегеҙ менән таныштырығыҙ',
 'userlogin-resetlink' => 'Танылыу мәғлүмәттәрен оноттоғоҙмо?',
 'userlogin-resetpassword-link' => 'Серһүҙҙе ҡабул итмәү',
-'helplogin-url' => 'Help:Системаға танылыу',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Help with logging in]]Системаға инеүҙә ярҙам',
 'userlogin-loggedin' => ' Һеҙ {{GENDER:$1|$1}} булараҡ индегеҙ инде. Башҡа файҙаланыусы булып инер өсөн аҫтағы ҡалыпты ҡулланығыҙ.',
 'userlogin-createanother' => 'Башҡа иҫәп яҙмаһын булдырырға',
 'createacct-join' => 'Аҫта мәғлүмәттәрегеҙҙе яҙығыҙ.',
@@ -844,7 +841,7 @@ $2
 Танылғандан һуң был иҫәп яҙмаһы өсөн серһүҙҙе ''[[Special:ChangePassword|серһүҙҙе үҙгәртеү өсөн махсус биттә үҙгәртә алаһығыҙ]]''.",
 'newarticle' => '(Яңы)',
 'newarticletext' => "Һеҙ һылтанма буйынса әлегә яһалмаған биткә күстегеҙ.
-Яңы бит яһар өсөн аҫтағы тәҙрәгә текст керетегеҙ (тулыраҡ мәғлүмәт өсөн [[{{MediaWiki:Helppage}}|ярҙам битен]] ҡарағыҙ).
+Яңы бит яһар өсөн аҫтағы тәҙрәгә текст керетегеҙ (тулыраҡ мәғлүмәт өсөн [$1 ярҙам битен] ҡарағыҙ).
 Әгәр был биткә яңылыш килеп эләккән булһағыҙ, браузерығыҙҙың '''артҡа''' төймәһенә баҫығыҙ.",
 'anontalkpagetext' => "----''Был фекер алышыу бите, иҫәп яҙыуы булдырмаған йәки уны ҡулланмаған аноним ҡатнашыусының бите.
 Шуның өсөн ҡулланыусыны таныу өсөн IP-адресы ҡулланыла.
@@ -1080,8 +1077,6 @@ $3 белдергән сәбәп: ''$2''",
 'revdelete-show-file-submit' => 'Эйе',
 'revdelete-selected' => "'''[[:$1]] битенең {{PLURAL:$2|1=һайланған версияһы|һайланған версиялары}}:'''",
 'logdelete-selected' => "'''Яҙманың {{PLURAL:$1|1=һайланған яҙыуы|һайланған яҙыуҙары}}:'''",
-'revdelete-text' => "'''Биттәрҙең юйылған версиялары һәм ваҡиғалар, бит тарихында һәм яҙмаларҙа күрһәтеләсәк, ләкин уларҙың эстәлектәренең бер өлөшө ябай ҡулланыусыларға асыҡ булмаясаҡ.'''
-{{SITENAME}} проектының хакимдәре йәшерен эстәлеккә керә һәм өҫтәмә сикләүҙәр ҡуйылған осраҡтарҙан тыш, ошо уҡ арайөҙ аша тергеҙә аласаҡтар.",
 'revdelete-confirm' => 'Зинһар, был ғәмәлде үтәргә теләүегеҙҙе, буласаҡ һөҙөмтәләрҙә аңлауығыҙҙы, [[{{MediaWiki:Policy-url}}|ҡағиҙәләр]] буйынса эшләүегеҙҙе раҫлағыҙ.',
 'revdelete-suppress-text' => "Йәшереү '''тик''' киләһе осраҡтарҙа ғына башҡарыла:
 
index 15c9513..65f0055 100644 (file)
@@ -291,7 +291,6 @@ $1",
 'disclaimers' => 'Impressum',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Huif fias Werkln',
-'helppage' => 'Help:Inhoidsvazeichnis',
 'mainpage' => 'Hoamseitn',
 'mainpage-description' => 'Hoamseitn',
 'policy-url' => 'Project:Richtlinien',
@@ -527,7 +526,7 @@ Dei IP-Adress wead in da Versionsgschicht afzoachnet.',
 Des Posswort fyr des naiche Benutzerkonto kå auf da Speziaalseiten  „[[Special:ChangePassword|Posswort ändern]]“ gändert wern.',
 'newarticle' => '(Neich)',
 'newarticletext' => 'Du bist am Link gfoigt, wos no koa Seitn gibt.
-Um de Seitn ozlegn, trog dein Text im untan Kostn ei (schaug af da [[{{MediaWiki:Helppage}}|Huifeseitn]] fia mea Infos).
+Um de Seitn ozlegn, trog dein Text im untan Kostn ei (schaug af da [$1 Huifeseitn] fia mea Infos).
 Wens a Irrtum is, dassd do bist, nach druck in Zruck-Knopf vom Brausa.',
 'anontalkpagetext' => "---- ''De Seiten werd dodazua hergnumma, am ned-ågmöiderten Benutzer Nochrichten z' hinterlossen.
 Wånnst mid de Kommentare auf derer Seiten nix åfanga kåst, is vamuatlich da friarerne Inhower vo derer IP-Adress gmoat und du kåstas ignorirn.
@@ -646,8 +645,6 @@ Du kauhstas auhschauh, waunn du wüst. Nahernte Auhgoom steengern im [{{fullurl:
 Details stehen im [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} Lösch-Logbuch].</div>',
 'rev-delundel' => 'zoagn / vastecka',
 'revdelete-nooldid-title' => 'Koa Version ogem',
-'revdelete-text' => "'''Der Inhalt oder andere Bestandteile gelöschter Versionen sind nicht mehr öffentlich einsehbar, erscheinen jedoch weiterhin als Einträge in der Versionsgeschichte.'''
-{{SITENAME}}-Administratoren können den entfernten Inhalt oder andere entfernte Bestandteile weiterhin einsehen und wiederherstellen, es sei denn, es wurde festgelegt, dass die Zugangsbeschränkungen auch für Administratoren gelten.",
 'revdel-restore' => 'Siachtborkeit endan',
 'pagehist' => 'Versiónsgschicht',
 'deletedhist' => 'Gléschde Versiónen',
index 8077ba6..c3cf10f 100644 (file)
@@ -356,7 +356,6 @@ $1',
 'disclaimers' => 'بی میاری گیان',
 'disclaimerpage' => 'Project:عمومی بی میاریگان',
 'edithelp' => 'کمک اصلاح',
-'helppage' => 'Help:محتوا',
 'mainpage' => 'صفحه اصلی',
 'mainpage-description' => 'صفحه اصلی',
 'policy-url' => 'Project:سیاست',
@@ -660,7 +659,7 @@ $2',
 کلمه رمز په نوکین حساب ته صفحه ''[[Special:ChangePassword|عوض کتن رمز]]'' وهدی که وارد بیتت تونیت بدل بیتن",
 'newarticle' => '(نوکین)',
 'newarticletext' => "شما رند چه یک لینکی په یک صفحه ی که هنو نیستند اتکگیت.
-په شر کتن صفحه، شروع کن نوشتن ته جعبه جهلی(بچار  [[{{MediaWiki:Helppage}}|صفحه کمک]]  په گیشترین اطلاعات).
+په شر کتن صفحه، شروع کن نوشتن ته جعبه جهلی(بچار  [$1 صفحه کمک]  په گیشترین اطلاعات).
 اگر شما اشتباهی ادانیت ته وتی بروزر دکمه ''Back'' بجن.",
 'anontalkpagetext' => "----'' ای صفحه بحث انت په یک ناشناس کاربری که هنگت یک حسابی شر نه کتت یا آی ا ستفاده نه کتت. اچه ما بایدن آدرس آی پی عددی په پچاه آرگ آیی استفاده کنین.
 چوشن آدرس آی پی گون چندین کاربر استفاده بیت.
@@ -835,10 +834,6 @@ Legend: (cur) = تفاوتان گون هنوکین نسخه,
 'revdelete-show-file-submit' => 'بله',
 'revdelete-selected' => "'''{{PLURAL:$2|بازبینی انتخابی|بازبینی ان انتخابی}} چه [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|رویداد آمار انتخابی|رویداد ان آمار انتخابی}}:'''",
-'revdelete-text' => "'''حذفین بازبینی آن و رویداد ان هنگت ته تاریح و آمار صفحه جاه کاینت، بله لهتی چه محتوا آيان په عام قابل دسترسی نه بنت.'''
-
-دگه مدیران ته {{SITENAME}} هنگت نوننت په پناهین محتوا دسترسیش بیت و توننت آیء چه طریق همی دستبری آی> تریننت، مگر شی که گیشین محدودیت بلیت.
-لطفا تایید کنیت که شما لوٹیت ای کارءَ انجام دهید و چه آیی نتیجه سهی گیت و ای کار هم داب په [[{{MediaWiki:Policy-url}}|سیاست]]انجام دهید",
 'revdelete-suppress-text' => "فرونشانی بایدن '''فقط''' په جهلگین موارد استفاده بیت:
 * اطلاعات نامناسب شخصی
 *: ''نشانی لوگ، شماره تلفن، شماره تامین اجتماعی و دگه.''",
index fd5b391..7095f75 100644 (file)
@@ -345,7 +345,6 @@ $1',
 '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:Kalakawan',
@@ -546,8 +545,6 @@ Dae malingaw na liwaton an saimong [[Special:Preferences|{{SITENAME}} mga kamuya
 'gotaccountlink' => 'Maglaog',
 'userlogin-resetlink' => 'Nakalingaw ka sa panlaog mong detalye?',
 'userlogin-resetpassword-link' => 'Nalingawan mo an saimong pasa-taramon?',
-'helplogin-url' => 'Help:Paglalaog',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Tabang sa paglalaog]]',
 'userlogin-loggedin' => 'Ika nakalaog na tabi bilang si {{GENDER:$1|$1}}.
 Gamita an porma sa ibaba sa paglaog bilang ibang paragamit.',
 'userlogin-createanother' => 'Magmukna nin ibang panindog',
@@ -809,7 +806,7 @@ Ini puwedeng pinagbalyo o pinagpara na habang saimong pinaghihiling an pahina.',
 'accmailtitle' => 'Napadará na an sekretong panlaog.',
 'accmailtext' => "An purak na pinagpuyos na pasa-taramon para ki [[User talk:$1|$1]] ipinagpadara na sa $2. Ini mapupuwedeng pagribayan sa ''[[Special:ChangePassword|change password]]'' na pahina matapos na ika nakalaog na.",
 'newarticle' => '(Bàgo)',
-'newarticletext' => "Ika nakapagsunod sa sarong sugpon pasiring sa sarong pahina na bako pang eksistido. Tanganing makapagmukna nin pahina, magpoon sa pagpindot sa laog nin kahon sa ibaba (hilngon an [[{{MediaWiki:Helppage}}|pahina nin katabangan]] para sa kadugangan na impormasyon).
+'newarticletext' => "Ika nakapagsunod sa sarong sugpon pasiring sa sarong pahina na bako pang eksistido. Tanganing makapagmukna nin pahina, magpoon sa pagpindot sa laog nin kahon sa ibaba (hilngon an [$1 pahina nin katabangan] para sa kadugangan na impormasyon).
 Kun ika napasalang nakadigde, i-klik an  '''ibalik''' na pindutan kan saimong kilyaw.",
 'anontalkpagetext' => "----''Ini iyo an pahina kan orolayan para an sarong dae bistadong paragamit na dae pa nakapagmukna nin panindog, o dae pa nakapaggamit kaini.
 Kaya kami kaipong gumamit nin numerikal na IP address sa pagbisto saiya.
@@ -1051,8 +1048,6 @@ Ika puwedeng makakatanaw kaining diff; mga detalye puwedeng mananagboan sa [{{fu
 'revdelete-show-file-submit' => 'Iyo tabi',
 'revdelete-selected' => "'''{{PLURAL:$2|Selected revision|Mga piniling pagbabago}} kan [[:$1]]'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Selected log event|Mga piniling talaan kan mga pangyayari}}:'''",
-'revdelete-text' => "'''Pinagpurang mga pagbabago asin mga pangyayari mahihiling pa man sa historiyang pahina asin mga talaan, pero an mga parte kan saindang laman dae puwedeng magamit kan publiko.'''
-An ibang administrador sa {{SITENAME}} puwede pa man makagamit sa pinagtagong laman asin balewalaon an pagpura kaini giraray sa paagi nin kaparehong panlaog-olay, laen lang kun may kadagdagang pangilin an inilapat.",
 'revdelete-confirm' => 'Pakikumpirma tabi na ika tuyong gumibo kaini, na saimong naintindihan an mga konsekuwensiya, asin ta ika pinaghihimo ini na uyon sa [[{{MediaWiki:Policy-url}}|an palisiya]].',
 'revdelete-suppress-text' => "An paglulubog dapat '''sana''' magagamit para sa minasunod na mga kaso:
 *Potensiyal na libeloso an impormasyon
index d9a3276..006f2da 100644 (file)
@@ -97,11 +97,11 @@ $messages = array(
 'tog-hidepatrolled' => 'Без паказу ўхваленых правак у нядаўніх змяненнях',
 'tog-newpageshidepatrolled' => 'Без паказу ўхваленых правак у пераліку новых старонак',
 'tog-extendwatchlist' => 'Паказваць усе змяненні, а не толькі апошнія',
-'tog-usenewrc' => 'Групаваць змены старонкі ў спісах апошніх зменаў і назіранняў (патрабуе JavaScript)',
+'tog-usenewrc' => 'Групаваць змены па старонках у апошніх зменах і спісе назірання',
 'tog-numberheadings' => 'Аўта-нумараваць падзагалоўкі',
-'tog-showtoolbar' => 'Паказваць рэдактарскую стужку (Яваскрыпт)',
-'tog-editondblclick' => 'Ð\9fÑ\80аÑ\9eка Ñ\81Ñ\82аÑ\80онак Ð¿Ð° Ð¿Ð°Ð´Ð²Ð¾Ð¹Ð½Ñ\8bм Ð¿Ñ\81Ñ\82Ñ\80Ñ\8bкÑ\83 (ЯваÑ\81кÑ\80Ñ\8bпÑ\82)',
-'tog-editsectiononrightclick' => 'Праўка падраздзелаў па правым пстрыку на загалоўку (Яваскрыпт)',
+'tog-showtoolbar' => 'Паказваць панэль інструментаў рэдактара',
+'tog-editondblclick' => 'Ð\9fÑ\80аÑ\9eка Ñ\81Ñ\82аÑ\80онак Ð¿Ð° Ð´Ð²Ð°Ð¹Ð½Ñ\8bм Ð¿Ñ\81Ñ\82Ñ\80Ñ\8bкÑ\83',
+'tog-editsectiononrightclick' => 'Правіць падраздзелы па правым пстрыку на загалоўку',
 'tog-rememberpassword' => 'Памятаць уваходныя даныя ў гэтым браўзеры (не даўжэй за $1 {{PLURAL:$1|дзень|дні|дзён}})',
 'tog-watchcreations' => 'Дабаўляць створаныя мною старонкі і файлы ў мой спіс назірання',
 'tog-watchdefault' => 'Дабаўляць старонкі і файлы пасля маіх правак у мой спіс назірання',
@@ -110,18 +110,18 @@ $messages = array(
 'tog-minordefault' => 'Пачынаць кожную праўку як дробную',
 'tog-previewontop' => 'Папярэдні паказ — над рэдактарскім полем',
 'tog-previewonfirst' => 'Папярэдні паказ пры першай праўцы',
-'tog-enotifwatchlistpages' => 'СлаÑ\86Ñ\8c Ð¼Ð½Ðµ Ñ\8dл.поÑ\88Ñ\82Ñ\83, ÐºÐ°Ð»Ñ\96 Ð¼Ñ\8fнÑ\8fеÑ\86Ñ\86а Ñ\81Ñ\82аÑ\80онка Ñ\9e Ð¼Ð°Ñ\96м Ñ\81пÑ\96Ñ\81е Ð½Ð°Ð·Ñ\96Ñ\80анага',
+'tog-enotifwatchlistpages' => 'СлаÑ\86Ñ\8c Ð¼Ð½Ðµ Ñ\8dл.поÑ\88Ñ\82Ñ\83, ÐºÐ°Ð»Ñ\96 Ð¼Ñ\8fнÑ\8fеÑ\86Ñ\86а Ñ\81Ñ\82аÑ\80онка Ñ\9e Ð¼Ð°Ñ\96м Ñ\81пÑ\96Ñ\81е Ð½Ð°Ð·Ñ\96Ñ\80аннÑ\8f',
 'tog-enotifusertalkpages' => 'Слаць эл.пошту пра мены ў маёй размоўнай старонцы',
-'tog-enotifminoredits' => 'СлаÑ\86Ñ\8c Ñ\8dл.поÑ\88Ñ\82Ñ\83 Ð¿Ñ\80а Ð´Ñ\80обнÑ\8bÑ\8f Ð¿Ñ\80аÑ\9eкÑ\96',
+'tog-enotifminoredits' => 'Ð\9fаведамÑ\8fÑ\86Ñ\8c Ð¼Ð½Ðµ Ð½Ð° Ñ\8dл.поÑ\88Ñ\82Ñ\83 Ð¿Ñ\80а Ð´Ñ\80обнÑ\8bÑ\8f Ð¿Ñ\80аÑ\9eкÑ\96 Ñ\81Ñ\82аÑ\80онак Ñ\96 Ñ\84айлаÑ\9e',
 'tog-enotifrevealaddr' => 'Не скрываць майго адрасу эл.пошты ў паведамленнях',
 'tog-shownumberswatching' => 'Паказваць колькасць назіральнікаў',
 'tog-oldsig' => 'Існуючы подпіс:',
 'tog-fancysig' => 'Апрацоўваць подпіс як вікі-тэкст (без аўтаматычнай спасылкі)',
-'tog-uselivepreview' => 'Жывы перадпаказ (Яваскрыпт, эксперыментальн.)',
+'tog-uselivepreview' => 'Жывы перадпаказ (эксперыментальн.)',
 'tog-forceeditsummary' => 'Папярэджваць пра пустое поле тлумачэння праўкі',
-'tog-watchlisthideown' => 'Не паказваць у назіраным сваіх правак',
-'tog-watchlisthidebots' => 'Не паказваць у назіраным правак, зробленых робатамі',
-'tog-watchlisthideminor' => 'Не паказваць у назіраным дробных правак',
+'tog-watchlisthideown' => 'Не паказваць маіх правак са спіса назірання',
+'tog-watchlisthidebots' => 'Не паказваць праўкі ботаў са спіса назірання',
+'tog-watchlisthideminor' => 'Не паказваць дробных правак са спіса назірання',
 'tog-watchlisthideliu' => 'Не паказваць правак зарэгістраваных удзельнікаў у артыкулах са спіса назірання',
 'tog-watchlisthideanons' => 'Не паказваць ананімных правак у артыкулах са спіса назірання',
 'tog-watchlisthidepatrolled' => 'Не паказваць ухваленых правак у артыкулах са спіса назірання',
@@ -130,6 +130,7 @@ $messages = array(
 'tog-showhiddencats' => 'Паказаць схаваныя катэгорыі',
 'tog-norollbackdiff' => 'Не паказваць розніцу ў выніку адкату',
 'tog-useeditwarning' => 'Папярэдзіць мяне, калі я пакідаю старонку з незахаванымі праўкамі',
+'tog-prefershttps' => 'Заўсёды выкарыстоўваць абароненае злучэнне пасля ўваходу ў сістэму',
 
 'underline-always' => 'Заўсёды',
 'underline-never' => 'Ніколі',
@@ -230,8 +231,8 @@ $messages = array(
 'newwindow' => '(адкрыецца ў новым акне)',
 'cancel' => 'Нічога',
 'moredotdotdot' => 'Яшчэ...',
-'morenotlisted' => 'Ð\91олÑ\8cÑ\88 Ð½Ñ\96Ñ\87ога Ð½Ñ\8fма...',
-'mypage' => 'УлаÑ\81наÑ\8f Ñ\81таронка',
+'morenotlisted' => 'Ð\93Ñ\8dÑ\82Ñ\8b Ñ\81пÑ\96Ñ\81 Ð½Ðµ Ð¿Ð¾Ñ\9eнÑ\8b.',
+'mypage' => 'Старонка',
 'mytalk' => 'Размовы',
 'anontalk' => 'Размова для гэтага IP',
 'navigation' => 'Навігацыя',
@@ -331,14 +332,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).
 'aboutsite' => 'Пра {{GRAMMAR:вінавальны|{{SITENAME}}}}',
 'aboutpage' => 'Project:Пра {{GRAMMAR:вінавальны|{{SITENAME}}}}',
-'copyright' => 'Матэрыял даступны на ўмовах $1.',
+'copyright' => 'Матэрыял даступны на ўмовах $1 (калі не пазначана іншае).',
 'copyrightpage' => '{{ns:project}}:Аўтарскія правы',
 'currentevents' => 'Актуальныя падзеі',
 'currentevents-url' => 'Project:Актуальныя падзеі',
 'disclaimers' => 'Адмова ад адказнасці',
 'disclaimerpage' => 'Project:Агульная адмова ад адказнасці',
 'edithelp' => 'Даведка рэдактарскага акна',
-'helppage' => 'Help:Змест',
 'mainpage' => 'Галоўная старонка',
 'mainpage-description' => 'Першая старонка',
 'policy-url' => 'Project:Арганізацыйная палітыка',
@@ -452,7 +452,8 @@ $1',
 'protectedpagetext' => 'Старонка ахоўваецца, каб нельга было яе правіць.',
 'viewsourcetext' => 'Можна бачыць і капіраваць зыходны тэкст гэтай старонкі:',
 'viewyourtext' => "Вы можаце праглядзець і скапіяваць зыходны тэкст '''вашых правак''' на гэтай старонцы:",
-'protectedinterface' => 'Старонка ахоўваецца, таму што ўваходзіць у склад інтэрфейсу гэтай праграмы.',
+'protectedinterface' => 'Старонка ўтрымлівае інтэрфейснае паведамленне праграмнага забеспячэння гэтага вікі-праекта і ахоўваецца, каб прадухіліць вандалізм.
+Каб дабавіць ці змяніць пераклады ва ўсіх вікі-праектах, калі ласка, выкарыстоўвайце сайт лакалізацыі MediaWiki [//translatewiki.net/ translatewiki.net].',
 'editinginterface' => "'''Увага:''' Вы правіце старонку, якая ўтрымлівае тэкст карыстальніцкага інтэрфейсу.
 Яе змяненне паўплывае на вонкавы выгляд праграмы для ўсіх удзельнікаў.
 Праект лакалізацыі MediaWiki: [//translatewiki.net/wiki/Main_Page?setlang=be translatewiki.net].",
@@ -464,6 +465,7 @@ $2',
 'ns-specialprotected' => 'Не дазволена правіць старонкі ў прасторы назваў {{ns:special}}.',
 'titleprotected' => "Назва засцерагаецца ад стварэння; ахова пастаўлена ўдзельнікам: [[User:$1|$1]].
 Тлумачэнне пастаноўкі пад ахову: ''$2''.",
+'exception-nologin' => 'Вы не ўвайшлі ў сістэму',
 
 # Virus scanner
 'virus-badscanner' => "Некарэктная канфігурацыя: невядомы антывірусны сканер: ''$1''",
@@ -480,6 +482,7 @@ $2',
 'yourname' => 'Імя ўдзельніка',
 'userlogin-yourname' => 'Імя ўліковага запісу',
 'userlogin-yourname-ph' => 'Увядзіце імя вашага ўліковага запісу',
+'createacct-another-username-ph' => 'Увядзіце імя карыстальніка',
 'yourpassword' => 'Пароль',
 'userlogin-yourpassword' => 'Пароль',
 'userlogin-yourpassword-ph' => 'Увядзіце ваш пароль',
@@ -500,18 +503,28 @@ $2',
 'logout' => 'Выйсці з сістэмы',
 'userlogout' => 'Выйсці з сістэмы',
 'notloggedin' => 'Не ўвайшоў',
+'userlogin-noaccount' => 'Не маеце ўліковага запісу?',
 'nologin' => 'Не маеце рахунку? $1.',
 'nologinlink' => 'Завесці рахунак',
 'createaccount' => 'Стварыць рахунак',
 'gotaccount' => "Ужо маеце рахунак? '''$1'''.",
 'gotaccountlink' => 'Увайсці ў сістэму',
 'userlogin-resetlink' => 'Забыліся даныя для ўваходу?',
+'userlogin-resetpassword-link' => 'Забылі пароль?',
+'createacct-emailrequired' => 'Адрас электроннай пошты',
+'createacct-emailoptional' => 'Адрас электроннай пошты (неабавязкова)',
+'createacct-email-ph' => 'Увядзіце ваш адрас электроннай пошты',
+'createacct-another-email-ph' => 'Увядзіце адрас электроннай пошты',
 'createaccountmail' => 'праз эл.пошту',
 'createaccountreason' => 'Прычына:',
+'createacct-reason' => 'Прычына',
+'createacct-imgcaptcha-ph' => 'Увядзіце тэкст, які вы бачыце вышэй',
+'createacct-submit' => 'Стварыць уліковы запіс',
 'badretype' => 'Уведзеныя паролі не аднолькавыя.',
 'userexists' => 'Такое імя ўдзельніка ўжо занятае.
 Калі ласка, выбярыце іншае імя.',
 'loginerror' => 'Памылка ўваходу',
+'createacct-error' => 'Памылка стварэння ўліковага запісу',
 'createaccounterror' => 'Не ўдалося стварыць рахунак: $1',
 'nocookiesnew' => 'Рахунак быў створаны, але ў сістэму вы не ўвайшлі. {{SITENAME}} карыстаецца квіткамі (кукі), каб апрацоўваць уваходы ўдзельнікаў, а гэтая функцыянальнасць адключана ў вашым браўзеры. Уключыце квіткі ў браўзеры, тады ўваходзьце са сваімі новымі імем удзельніка і паролем.',
 'nocookieslogin' => '{{SITENAME}} карыстаецца квіткамі (кукі), каб пазнаваць удзельнікаў. У вашым браўзеры квіткі не дазволены. Дазвольце іх працу і паспрабуйце ізноў.',
@@ -529,7 +542,7 @@ $2',
 'passwordtooshort' => 'Трэба, каб у паролі было найменей {{PLURAL:$1|1 знак|$1 знакаў}}.',
 'password-name-match' => 'Ваш пароль павінен адрознівацца ад імя карыстальніка.',
 'password-login-forbidden' => 'Выкарыстанне гэтага імя карыстальніка і пароля было забаронена.',
-'mailmypassword' => 'Ð\90даÑ\81лаÑ\86Ñ\8c Ð½Ð¾Ð²Ñ\8b Ð¿Ð°Ñ\80олÑ\8c Ñ\8dл.поÑ\88Ñ\82ай',
+'mailmypassword' => 'СкÑ\96нÑ\83Ñ\86Ñ\8c Ð¿Ð°Ñ\80олÑ\8c',
 'passwordremindertitle' => 'Нагаданне пра пароль ад {{SITENAME}}',
 'passwordremindertext' => 'Нехта (магчыма, што вы, з адрасу IP $1) папрасіў выслаць новы пароль для пляцоўкі {{SITENAME}} ($4). Для ўдзельніка "$2" быў створаны тымчасовы пароль: "$3".
 Калі вы хацелі менавіта гэтага, то ўвайдзіце ў сістэму і выберыце сабе новы пароль. Тымчасовы пароль будзе дзейным на працягу {{PLURAL:$5|аднаго дня|$5 дзён}}.
@@ -563,6 +576,9 @@ $2',
 'login-abort-generic' => 'Няўдалая спроба ўвайсці ў сістэму',
 'loginlanguagelabel' => 'Мова: $1',
 'suspicious-userlogout' => 'Ваш запыт на выхад быў адмоўлены, паколькі ён выглядае як накіраваны са зламанага браўзера або кэшаванне проксі-сервераў.',
+'pt-login' => 'Увайсці',
+'pt-createaccount' => 'Стварыць уліковы запіс',
+'pt-userlogout' => 'Выйсці',
 
 # Email sending
 'php-mail-error-unknown' => 'Невядомая памылка ў функцыі PHP-пошты',
@@ -570,13 +586,13 @@ $2',
 
 # Change password dialog
 'changepassword' => 'Пароль',
-'resetpass_announce' => 'Ð\92Ñ\8b Ñ\9eвайÑ\88лÑ\96 Ñ\9e Ñ\81Ñ\96Ñ\81Ñ\82Ñ\8dмÑ\83 Ð¿Ð°Ð´ Ñ\82Ñ\8bмÑ\87аÑ\81овÑ\8bм Ð¿Ð°Ñ\80олем, Ð¿Ñ\80Ñ\8bÑ\81ланÑ\8bм Ñ\8dл.поÑ\88Ñ\82ай. Ð\9aаб Ð¿Ñ\80авÑ\96лÑ\8cна Ð°Ñ\84оÑ\80мÑ\96Ñ\86Ñ\8c Ñ\83ваÑ\85од, Ð½Ð°Ð»ÐµÐ¶Ñ\8bÑ\86Ñ\8c Ð²Ñ\8bзнаÑ\87Ñ\8bÑ\86Ñ\8c Ð½Ð¾Ð²Ñ\8b Ð¿Ð°Ñ\80олÑ\8c Ð²Ð¾Ñ\81Ñ\8c Ñ\82Ñ\83Ñ\82:',
+'resetpass_announce' => 'Ð\9aаб Ð·Ð°Ð²Ñ\8fÑ\80Ñ\88Ñ\8bÑ\86Ñ\8c Ñ\83ваÑ\85од Ñ\83 Ñ\81Ñ\96Ñ\81Ñ\82Ñ\8dмÑ\83, Ð\92Ñ\8b Ð¿Ð°Ð²Ñ\96ннÑ\8b Ñ\9eÑ\81Ñ\82анавÑ\96Ñ\86Ñ\8c Ð½Ð¾Ð²Ñ\8b Ð¿Ð°Ñ\80олÑ\8c.',
 'resetpass_header' => 'Змяніць пароль рахунку',
 'oldpassword' => 'Стары пароль:',
 'newpassword' => 'Новы пароль:',
 'retypenew' => 'Новы пароль паўторна:',
 'resetpass_submit' => 'Наставіць пароль і ўвайсці',
-'changepassword-success' => 'Ваш пароль паспяхова зменены! Цяпер уваходзім...',
+'changepassword-success' => 'Ваш пароль паспяхова зменены!',
 'resetpass_forbidden' => 'Не дазволена мяняць паролі',
 'resetpass-no-info' => 'Трэба ўвайсці ў сістэму, каб звяртацца да гэтай старонкі наўпрост.',
 'resetpass-submit-loggedin' => 'Змяніць пароль',
@@ -712,7 +728,7 @@ $2
 
 Пароль на гэты новы рахунак можа быць зменены на ''[[Special:ChangePassword|адмысловай старонцы]]'' пасля ўваходу ў сістэму.",
 'newarticle' => '(Новы)',
-'newarticletext' => 'Вы перайшлі да старонкі, якой яшчэ няма, і таму трапілі сюды. Каб пачаць новую старонку, пішыце яе тэкст у ніжэйпаказаным акне рэдагавання (падрабязнасці бач у [[{{MediaWiki:Helppage}}|даведцы]]). Калі вы тут выпадкова, проста націсніце "назад" у браўзеры.',
+'newarticletext' => 'Вы перайшлі да старонкі, якой яшчэ няма, і таму трапілі сюды. Каб пачаць новую старонку, пішыце яе тэкст у ніжэйпаказаным акне рэдагавання (падрабязнасці бач у [$1 даведцы]). Калі вы тут выпадкова, проста націсніце "назад" у браўзеры.',
 '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>.',
@@ -753,6 +769,7 @@ $2
 Магчыма, прычына ў выкарыстанні вамі ананімнага проксі-сервера, праграмы якога працуюць некарэктна.'''",
 'edit_form_incomplete' => "'''Некаторыя часткі формы рэдагавання не дасягнулі сервера. Упэўніцеся, што Вашыя рэдагаванні не пашкоджаныя і паспрабуйце зноў.'''",
 'editing' => 'Правім: $1',
+'creating' => 'Стварэнне старонкі «$1»',
 'editingsection' => 'Правім $1 (раздзел)',
 'editingcomment' => 'Правім $1 (новы раздзел)',
 'editconflict' => 'Канфлікт правак: $1',
@@ -814,8 +831,8 @@ $2
 'postedit-confirmation' => 'Вашая праўка была захаваная.',
 'edit-already-exists' => 'Не ўдалося стварыць новую старонку.
 Такая ўжо існуе.',
-'editwarning-warning' => 'Ð\92Ñ\8bÑ\85ад Ð· Ð³Ñ\8dÑ\82ай Ñ\81Ñ\82аÑ\80онкÑ\96 Ð¿Ñ\80Ñ\8bвÑ\8fдзе Ð´Ð° Ñ\81Ñ\82Ñ\80аÑ\82Ñ\8b Ð¿Ñ\80авак, Ñ\8fкÑ\96Ñ\8f Ð²Ñ\8b Ð·Ñ\80абÑ\96лі. 
-Калі Вы зарэгістраваныя ў сістэме, Вы можаце адключыць гэта папярэджанне ў закладцы "Праца" Вашых настаўленняў.',
+'editwarning-warning' => 'Ð\9fеÑ\80аÑ\85од Ð½Ð° Ñ\96нÑ\88Ñ\83Ñ\8e Ñ\81Ñ\82аÑ\80онкÑ\83 Ð¼Ð¾Ð¶Ð° Ð¿Ñ\80Ñ\8bвеÑ\81Ñ\86Ñ\96 Ð´Ð° Ñ\81Ñ\82Ñ\80аÑ\82Ñ\8b Ð¿Ñ\80авак, Ð·Ñ\80обленÑ\8bÑ\85 Ð\92амі. 
+Калі Вы ўвайшлі ў сістэму, Вы можаце адключыць гэта папярэджанне ў раздзеле "{{int:prefs-editing}}" Вашых настроек.',
 
 # Content models
 'content-model-wikitext' => 'вікі-тэкст',
@@ -921,8 +938,6 @@ $2
 'revdelete-show-file-submit' => 'Так',
 'revdelete-selected' => "'''{{PLURAL:$2|Выбраная версія|Выбраныя версіі}} [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Выбраны запіс|Выбраныя запісы}} журналу:'''",
-'revdelete-text' => "'''Сцёртыя версіі і падзеі надалей будуць паказвацца ў гісторыі старонкі і ў журналах, але часткі іх зместу не будуць даступныя для публікі.'''
-Іншыя адміністратары пляцоўкі {{SITENAME}} надалей змогуць бачыць схаваны змест і аднаўляць яго праз гэты самы інтэрфейс, калі не будзе ўведзена дадатковых абмежаванняў.",
 'revdelete-confirm' => 'Пацвердзіце, што вы жадаеце гэта зрабіць, што вы разумееце наступствы, і што вы робіце гэта ў адпаведнасці з [[{{MediaWiki:Policy-url}}|арганізацыйнымі правіламі]].',
 'revdelete-suppress-text' => "Заглушэнне належыць ужываць '''выключна''' ў наступных выпадках:
 * Недапушчальная асабістая інфармацыя
@@ -1334,14 +1349,25 @@ $1",
 'recentchanges-label-bot' => 'Праўка была зробленая праграмай-робатам',
 'recentchanges-label-unpatrolled' => 'Праўка яшчэ не атрымала адзнакі ўхваленасці (за ёй не сочыць "патруль")',
 'recentchanges-legend-newpage' => '$1 - новая старонка',
-'rcnotefrom' => 'Ð\9dÑ\96жÑ\8dй Ð·Ð½Ð°Ñ\85одзÑ\8fÑ\86Ñ\86а Ð·Ð¼ÐµÐ½Ñ\8b Ð· <b>$2</b> (да <b>$1</b> Ð½Ð° Ñ\81Ñ\82аÑ\80онкÑ\83).',
+'rcnotefrom' => 'Ð\9dÑ\96жÑ\8dй Ð·Ð½Ð°Ñ\85одзÑ\8fÑ\86Ñ\86а Ð·Ð¼ÐµÐ½Ñ\8b Ð· <b>$2</b> (паказана Ð½Ðµ Ð±Ð¾Ð»Ñ\8cÑ\88 Ñ\87Ñ\8bм <b>$1</b>).',
 'rclistfrom' => 'Паказаць змены з $1',
-'rcshowhideminor' => '$1 дробных правак',
+'rcshowhideminor' => '$1 дробныя праўкі',
+'rcshowhideminor-hide' => 'Схаваць',
 'rcshowhidebots' => '$1 робатаў',
+'rcshowhidebots-show' => 'Паказаць',
+'rcshowhidebots-hide' => 'Схаваць',
 'rcshowhideliu' => '$1 пазнаных удзельнікаў',
+'rcshowhideliu-show' => 'Паказаць',
+'rcshowhideliu-hide' => 'Схаваць',
 'rcshowhideanons' => '$1 ананімных удзельнікаў',
-'rcshowhidepatr' => '$1 ухваленых правак',
-'rcshowhidemine' => '$1 ўласных правак',
+'rcshowhideanons-show' => 'Паказаць',
+'rcshowhideanons-hide' => 'Схаваць',
+'rcshowhidepatr' => '$1 ухваленыя праўкі',
+'rcshowhidepatr-show' => 'Паказаць',
+'rcshowhidepatr-hide' => 'Схаваць',
+'rcshowhidemine' => '$1 уласныя праўкі',
+'rcshowhidemine-show' => 'Паказаць',
+'rcshowhidemine-hide' => 'Схаваць',
 'rclinks' => 'Паказаць апошнія $1 змен за мінулыя $2 дзён<br />$3',
 'diff' => 'розн.',
 'hist' => 'гіст.',
@@ -1355,8 +1381,8 @@ $1",
 'rc_categories_any' => 'Усе',
 'rc-change-size-new' => '$1 {{PLURAL:$1|байт|байта|байтаў}} пасля змены',
 'newsectionsummary' => '/* $1 */ новы падраздзел',
-'rc-enhanced-expand' => 'Ð\9fаказваÑ\86Ñ\8c Ð¿Ð°Ð´Ñ\80абÑ\8fзнаÑ\81Ñ\86Ñ\96 (паÑ\82Ñ\80абÑ\83еÑ\86Ñ\86а Ð¯Ð²Ð°Ñ\81кÑ\80Ñ\8bпÑ\82)',
-'rc-enhanced-hide' => 'Не паказваць падрабязнасцяў',
+'rc-enhanced-expand' => 'Ð\9fаказаÑ\86Ñ\8c Ð¿Ð°Ð´Ñ\80абÑ\8fзнаÑ\81Ñ\86Ñ\96',
+'rc-enhanced-hide' => 'Не паказваць падрабязнасцей',
 
 # Recent changes linked
 'recentchangeslinked' => 'Звязаныя праўкі',
@@ -1584,8 +1610,7 @@ $1',
 'upload_source_file' => ' (файл на вашай машыне)',
 
 # Special:ListFiles
-'listfiles-summary' => 'Гэтая службовая старонка паказвае ўсе загружаныя файлы.
-Пры адборы па ўдзельніку, паказваюцца толькі нядаўнія загрузкі гэтага ўдзельніка.',
+'listfiles-summary' => 'Гэтая службовая старонка паказвае ўсе загружаныя файлы.',
 'listfiles_search_for' => 'Знайсці назву выявы:',
 'imgfile' => 'файл',
 'listfiles' => 'Усе файлы',
@@ -1770,6 +1795,7 @@ $1',
 'protectedpages' => 'Старонкі пад аховай',
 'protectedpages-indef' => 'Толькі бестэрміновыя аховы',
 'protectedpages-cascade' => 'Толькі каскадныя засцераганні',
+'protectedpages-noredirect' => 'Схаваць перанакіраванні',
 'protectedpagesempty' => 'Ніякія старонкі такім чынам не ахоўваюцца.',
 'protectedtitles' => 'Назвы пад аховай',
 'protectedtitlesempty' => 'Няма назваў, якія зараз бы ахоўваліся з такімі параметрамі.',
@@ -1825,6 +1851,7 @@ $1',
 'allpagesprefix' => 'Паказваць старонкі з прэфіксам:',
 'allpagesbadtitle' => 'Гэтая назва старонкі недапушчальная або ўтрымлівае між-моўны або між-вікавы прэфікс. Магчыма, у назве ёсць знак ці знакі, якія нельга ўжываць у назвах.',
 'allpages-bad-ns' => 'На {{SITENAME}} прастора назваў "$1" не падтрымліваецца.',
+'allpages-hide-redirects' => 'Схаваць перанакіраванні',
 
 # Special:Categories
 'categories' => 'Катэгорыі',
@@ -1929,12 +1956,12 @@ $1',
 'watchlistanontext' => 'Каб паглядзець ці змяніць спіс назірання, трэба $1.',
 'watchnologin' => 'Без прадстаўлення',
 'watchnologintext' => 'Каб правіць свой спіс назірання, трэба [[Special:UserLogin|ўвайсці ў сістэму]].',
-'addwatch' => 'Дадаць у назіранае',
+'addwatch' => 'Дадаць у спіс назірання',
 'addedwatchtext' => "Старонка \"[[:\$1]]\" была дададзена да [[Special:Watchlist|назіраных]] вамі.
 Змяненні, якія адбудуцца з гэтай старонкай і з Размовай пра яе, будуць паказвацца там, і старонка будзе '''вылучацца шрыфтам''' у [[Special:RecentChanges|спісе нядаўніх змяненняў]], каб лягчэй пазнаваць яе.
 
 Калі вы не пажадаеце больш назіраць за гэтай старонкай, націсніце \"Не назіраць\" у бакоўцы.",
-'removewatch' => 'Выдаліць са спісу назірання',
+'removewatch' => 'Выдаліць са спіса назірання',
 'removedwatchtext' => 'Старонка "[[:$1]]" была вынята з вашага [[Special:Watchlist|спіса назірання]].',
 'watch' => 'Назіраць',
 'watchthispage' => 'Назіраць за гэтай старонкай',
@@ -2009,8 +2036,8 @@ $UNWATCHURL
 Пацвердзіце свой намер зрабіць гэта, сваё разуменне наступстваў, і што вы робіце гэта ў адпаведнасці з [[{{MediaWiki:Policy-url}}|палітыкай (асноўнымі правіламі)]].',
 'actioncomplete' => 'Завершана аперацыя',
 'actionfailed' => 'Памылка дзеяння',
-'deletedtext' => '"$1" было выдалена.
\91аÑ\87 $2 Ð¿Ð° Ð¶Ñ\83Ñ\80нал Ð½Ñ\8fдаÑ\9eнÑ\96Ñ\85 Ð²Ñ\8bдаленнÑ\8fÑ\9e.',
+'deletedtext' => 'Старонка "$1" была выдалена.
\97апÑ\96Ñ\81Ñ\8b Ð°Ð± Ð½Ñ\8fдаÑ\9eнÑ\96Ñ\85 Ð²Ñ\8bдаленнÑ\8fÑ\85 Ð³Ð». Ñ\9e $2.',
 'dellogpage' => 'Журнал сціранняў',
 'dellogpagetext' => 'Ніжэй паказаны спіс самых нядаўніх сціранняў.',
 'deletionlog' => 'журнал сціранняў',
@@ -2139,7 +2166,7 @@ $UNWATCHURL
 'undeletedpage' => "'''$1 была адноўлена'''
 
 Праверце пералік нядаўніх сціранняў і аднаўленняў у [[Special:Log/delete|журнале сціранняў]].",
-'undelete-header' => 'Ð\91аÑ\87 Ð½Ñ\8fдаÑ\9eна Ñ\81Ñ\86Ñ\91Ñ\80Ñ\82Ñ\8bÑ\8f Ñ\81Ñ\82аÑ\80онкÑ\96 Ñ\9e [[Special:Log/delete|журнале сціранняў]].',
+'undelete-header' => 'Ð\9dÑ\8fдаÑ\9eна Ñ\81Ñ\86Ñ\91Ñ\80Ñ\82Ñ\8bÑ\8f Ñ\81Ñ\82аÑ\80онкÑ\96 Ð¼Ð¾Ð¶Ð½Ð° Ð¿Ð°Ð³Ð»Ñ\8fдзеÑ\86Ñ\8c Ñ\83 [[Special:Log/delete|журнале сціранняў]].',
 'undelete-search-title' => 'Пошук выдаленых старонак',
 'undelete-search-box' => 'Знайсці ў сцёртых старонках',
 'undelete-search-prefix' => 'Паказаць старонкі, пачынаючы з:',
@@ -2295,7 +2322,7 @@ $1',
 'blocklog-showlog' => '{{GENDER:$1|Гэты ўдзельнік ужо блакіраваўся|Гэта ўдзельніца ўжо блакіравалася}} раней.
 Ніжэй прыведзены журнал блакіровак:',
 'blocklog-showsuppresslog' => 'Гэты ўдзельнік ужо заблакаваны і скрыты. Журнал утойвання прыведзены ніжэй:',
-'blocklogentry' => 'пастаўлены блок на "[[$1]]", з часам трывання $2 $3',
+'blocklogentry' => 'паставіў блок на "[[$1]]", з часам трывання $2 $3',
 'reblock-logentry' => 'змененыя настройкі блока для [[$1]] з часам згасання $2 $3',
 'blocklogtext' => 'Журнал пастаноўкі і здымання блокаў. Аўтаматычна блакаваныя адрасы IP тут не паказваюцца. Спіс актуальных забарон і блокаў бач у [[Special:BlockList|спісе блокаў IP]].',
 'unblocklogentry' => 'зняты блок з $1',
@@ -2562,7 +2589,7 @@ $1',
 'tooltip-pt-login' => 'Уваходзіць у сістэму неабавязкова, але вас вельмі запрашаюць гэтак зрабіць.',
 'tooltip-pt-logout' => 'Выйсці з сістэмы',
 'tooltip-ca-talk' => 'Размовы пра змест гэтай старонкі',
-'tooltip-ca-edit' => 'Старонку можна правіць; ужывайце папярэдні паказ перад замацоўваннем.',
+'tooltip-ca-edit' => 'Старонку можна правіць. Перш чым запісаць свае змены, паглядзіце на вынік, націснуўшы кнопку папярэдняга прагляду.',
 'tooltip-ca-addsection' => 'Дадаць новы раздзел',
 'tooltip-ca-viewsource' => 'Гэтая старонка ахоўваецца, але можна паглядзець яе зыходны тэкст.',
 'tooltip-ca-history' => 'Ранейшыя версіі гэтай старонкі.',
@@ -3286,15 +3313,15 @@ $5
 'watchlistedit-raw-legend' => 'Правіць нефарматаваны спіс назірання',
 'watchlistedit-raw-explain' => 'Назвы старонак з ліку назіраных паказаныя ніжэй, без афармлення, адна назва на адзін радок; такім чынам, спіс можна правіць як звычайны тэкст. Па сканчэнні націсніце "{{int:Watchlistedit-raw-submit}}". Таксама гэта можна зрабіць праз [[Special:EditWatchlist|стандартны інтэрфейс]].',
 'watchlistedit-raw-titles' => 'Назвы:',
-'watchlistedit-raw-submit' => 'Абнавіць Назіранае',
+'watchlistedit-raw-submit' => 'Абнавіць спіс назірання',
 'watchlistedit-raw-done' => 'Спіс назірання абноўлены.',
 'watchlistedit-raw-added' => 'Дапісаны{{PLURAL:$1| 1 складнік|я $1 складнікаў}}:',
 'watchlistedit-raw-removed' => 'Выняты{{PLURAL:$1| 1 складнік|я $1 складнікаў}}:',
 
 # Watchlist editing tools
 'watchlisttools-view' => 'Паказаць змяненні',
-'watchlisttools-edit' => 'Паказаць назіранае',
-'watchlisttools-raw' => 'Паказаць нефарматаванае назіранае',
+'watchlisttools-edit' => 'Паказаць спіс назірання',
+'watchlisttools-raw' => 'Паказаць нефарматаваны спіс назірання',
 
 # Signatures
 'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|размовы]])',
index 412e277..a862b4a 100644 (file)
@@ -298,7 +298,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Адпраўляць мне копіі лістоў, якія я дасылаю іншым удзельнікам',
 'tog-diffonly' => 'Не паказваць зьмест старонкі пад параўнаньнем зьменаў',
 'tog-showhiddencats' => 'Паказваць схаваныя катэгорыі',
-'tog-noconvertlink' => 'Забараніць канвэртацыю назваў спасылак',
 'tog-norollbackdiff' => 'Не паказваць зьмены пасьля выкарыстаньня функцыі адкату',
 'tog-useeditwarning' => 'Папярэджваць мяне, калі я буду пакідаць старонку рэдагаваньня зь незахаванымі зьменамі',
 'tog-prefershttps' => 'Заўсёды карыстацца бясьпечным злучэньнем па ўваходзе ў сыстэму',
@@ -386,7 +385,7 @@ $messages = array(
 'category-empty' => "''Гэтая катэгорыя ня ўтрымлівае ні старонак, ні файлаў.''",
 'hidden-categories' => '{{PLURAL:$1|1=Схаваная катэгорыя|Схаваныя катэгорыі}}',
 'hidden-category-category' => 'Схаваныя катэгорыі',
-'category-subcat-count' => '{{PLURAL:$2|Гэтая катэгорыя зьмяшчае наступную падкатэгорыю.|Гэтая катэгорыя зьмяшчае {{PLURAL:$1|наступную $1 падкатэгорыю|наступныя $1 падкатэгорыі|наступныя $1 падкатэгорыяў}} з $2 агулам.}}',
+'category-subcat-count' => '{{PLURAL:$2|1=Гэтая катэгорыя зьмяшчае наступную падкатэгорыю.|Гэтая катэгорыя зьмяшчае {{PLURAL:$1|наступную $1 падкатэгорыю|наступныя $1 падкатэгорыі|наступныя $1 падкатэгорыяў}} з $2 агулам.}}',
 'category-subcat-count-limited' => 'У гэтай катэгорыі $1 {{PLURAL:$1|падкатэгорыя|падкатэгорыі|падкатэгорыяў}}.',
 'category-article-count' => '{{PLURAL:$2|1=Гэтая катэгорыя ўтрымлівае толькі адну старонку.|{{PLURAL:$1|Паказаная $1 старонка|Паказаныя $1 старонкі|Паказаныя $1 старонак}} гэтай катэгорыі з $2.}}',
 'category-article-count-limited' => 'У гэтай катэгорыі $1 {{PLURAL:$1|старонка|старонкі|старонак}}.',
@@ -510,7 +509,6 @@ $1',
 'disclaimers' => 'Адмова ад адказнасьці',
 'disclaimerpage' => 'Project:Адмова ад адказнасьці',
 'edithelp' => 'Дапамога ў рэдагаваньні',
-'helppage' => 'Help:Зьмест',
 'mainpage' => 'Галоўная старонка',
 'mainpage-description' => 'Галоўная старонка',
 'policy-url' => 'Project:Правілы',
@@ -708,8 +706,7 @@ $2',
 'gotaccountlink' => 'Увайдзіце',
 'userlogin-resetlink' => 'Забыліся на зьвесткі для ўваходу?',
 'userlogin-resetpassword-link' => 'Забылі пароль?',
-'helplogin-url' => 'Help:Уваход у сыстэму',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Дапамога па ўваходзе ў сыстэму]]',
+'userlogin-helplink2' => 'Дапамога з уваходам у сыстэму',
 'userlogin-loggedin' => 'Вы ўжо ўвайшлі як {{GENDER:$1|$1}}.
 Для ўваходу пад іншым удзельнікам скарыстайцеся формай унізе.',
 'userlogin-createanother' => 'Стварыць іншы рахунак',
@@ -802,6 +799,7 @@ $2',
 'createacct-another-realname-tip' => 'Сапраўднае імя паведамляць неабавязкова.
 Калі Вы яго пазначыце, яно будзе выкарыстоўвацца для пазначэньня Вашай працы.',
 'pt-login' => 'Увайсьці',
+'pt-login-button' => 'Увайсьці',
 'pt-createaccount' => 'Стварыць рахунак',
 'pt-userlogout' => 'Выйсьці',
 
@@ -833,7 +831,10 @@ $2',
 'resetpass-temp-password' => 'Часовы пароль:',
 'resetpass-abort-generic' => 'Зьмяненьне паролю было скасаванае пашырэньнем.',
 'resetpass-expired' => 'Тэрмін дзеяньня вашага паролю скончыўся. Калі ласка, пазначце новы пароль для ўваходу ў сыстэму.',
-'resetpass-expired-soft' => 'Тэрмін дзеяньня вашага паролю скончыўся і ён патрабуе замены. Калі ласка, абярыце новы пароль цяпер або націсьніце «Скасаваць», каб зьмяніць яго пазьней.',
+'resetpass-expired-soft' => 'Тэрмін дзеяньня вашага паролю скончыўся і ён патрабуе замены. Калі ласка, абярыце новы пароль цяпер або націсьніце «{{int:resetpass-submit-cancel}}», каб зьмяніць яго пазьней.',
+'resetpass-validity-soft' => 'Ваш пароль зьяўляецца некарэктным: $1
+
+Калі ласка, абярыце зараз новы пароль або націсьніце «{{int:resetpass-submit-cancel}}», каб скінуць яго пазьней.',
 
 # Special:PasswordReset
 'passwordreset' => 'Ачыстка паролю',
@@ -973,7 +974,7 @@ $2
 'accmailtext' => "Створаны адвольны пароль для [[User talk:$1|$1]] быў адасланы па адрасе $2. Яго можна зьмяніць на старонцы ''[[Special:ChangePassword|зьмены паролю]]'' пасьля ўваходу.",
 'newarticle' => '(Новая)',
 'newarticletext' => "Вы прыйшлі па спасылцы на старонку, якая яшчэ не існуе.
-Каб стварыць яе, напішыце тэкст у полі ніжэй (глядзіце [[{{MediaWiki:Helppage}}|старонку дапамогі]] для дадатковай інфармацыі).
+Каб стварыць яе, напішыце тэкст у полі ніжэй (глядзіце [$1 старонку дапамогі] для дадатковай інфармацыі).
 Калі Вы трапілі сюды памылкова, націсьніце '''назад''' у вашым браўзэры.",
 'anontalkpagetext' => "----''Гэта старонка гутарак ананімнага ўдзельніка, які яшчэ не стварыў сабе рахунак альбо не ўжывае яго. Таму мы вымушаныя ўжываць лічбавы IP-адрас дзеля ягонай ідэнтыфікацыі. Адзін IP-адрас можа выкарыстоўвацца некалькімі ўдзельнікамі. Калі Вы — ананімны ўдзельнік і лічыце, што атрымалі не прызначаныя Вам камэнтары, калі ласка, [[Special:UserLogin/signup|стварыце рахунак]] альбо [[Special:UserLogin|увайдзіце ў сыстэму]], каб у будучыні пазьбегнуць магчымай блытаніны зь іншымі ананімнымі ўдзельнікамі.''",
 'noarticletext' => 'Цяпер тэкст на гэтай старонцы адсутнічае.
@@ -1214,8 +1215,10 @@ $2
 'revdelete-show-file-submit' => 'Так',
 'revdelete-selected' => "'''{{PLURAL:$2|1=Выбраная вэрсія|Выбраныя вэрсіі}} старонкі [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|1=Выбраны запіс|Выбраныя запісы}} журнала:'''",
-'revdelete-text' => "'''Выдаленыя вэрсіі і падзеі будуць паказвацца ў гісторыі старонкі і журналах, але частка іх зьместу ня будзе даступная для звычайных удзельнікаў.'''
-Іншыя адміністратары {{GRAMMAR:родны|{{SITENAME}}}} будуць мець магчымасьць прагляду зьместу і аднаўленьня старонкі праз гэты інтэрфэйс, калі ня будуць уведзеныя дадатковыя абмежаваньні.",
+'revdelete-text-text' => 'Выдаленыя вэрсіі будуць па-ранейшаму бачныя ў гісторыі старонкі, але некаторыя часткі іх зьместу будуць недаступныя для ўдзельнікаў.',
+'revdelete-text-file' => 'Выдаленыя вэрсіі файла будуць па-ранейшаму бачныя ў гісторыі старонкі, але часткі іх зьместу будуць недаступныя для ўдзельнікаў.',
+'logdelete-text' => 'Выдаленыя падзеі ў журнале будуць па-ранейшаму даступныя ў журналах, але часткі іх зьместу будуць недаступныя ўдзельнікам.',
+'revdelete-text-others' => 'Іншыя адмністратары {{GRAMMAR:родны|{{SITENAME}}}} па-ранейшаму будуць мець магчымасьць пабачыць і аднавіць схаваны зьмест праз гэты ж інтэрфэйс, калі ня будуць усталяваныя дадатковыя абмежаваньні.',
 'revdelete-confirm' => 'Калі ласка, пацьвердзіце, што Вы сапраўды жадаеце зрабіць гэта, разумееце наступствы і робіце гэта ў адпаведнасьці з [[{{MediaWiki:Policy-url}}|правіламі]].',
 'revdelete-suppress-text' => "Скрываньне можа выкарыстоўвацца '''толькі''' ў наступных выпадках:
 * патэнцыйна паклёпніцкая інфармацыя
@@ -1352,7 +1355,7 @@ $1",
 'search-file-match' => '(супадае зь зьмесьцівам файла)',
 'search-suggest' => 'Магчыма, вы мелі на ўвазе: $1',
 'search-interwiki-caption' => 'Сумежныя праекты',
-'search-interwiki-default' => 'вынікі з $1:',
+'search-interwiki-default' => 'Ð\92ынікі з $1:',
 'search-interwiki-more' => '(яшчэ)',
 'search-relatedarticle' => 'Зьвязаны',
 'searcheverything-enable' => 'Шукаць ва ўсіх прасторах назваў',
@@ -1678,16 +1681,26 @@ $1",
 'recentchanges-label-plusminus' => 'Памер старонкі зьмяніўся на такую колькасьць байтаў',
 'recentchanges-legend-heading' => "'''Легенда:'''",
 'recentchanges-legend-newpage' => '(глядзіце таксама [[Special:NewPages|сьпіс новых старонак]])',
-'rcnotefrom' => "Ніжэй знаходзяцца зьмены з '''$2''' (да '''$1''' на старонку).",
+'rcnotefrom' => 'Ніжэй знаходзяцца зьмены з <strong>$2</strong> (да <strong>$1</strong> на старонку).',
 'rclistfrom' => 'Паказаць зьмены з $1',
 'rcshowhideminor' => '$1 дробныя праўкі',
 'rcshowhideminor-show' => 'Паказаць',
 'rcshowhideminor-hide' => 'Схаваць',
 'rcshowhidebots' => '$1 робатаў',
+'rcshowhidebots-show' => 'Паказаць',
+'rcshowhidebots-hide' => 'Схаваць',
 'rcshowhideliu' => '$1 зарэгістраваных карыстальнікаў',
+'rcshowhideliu-show' => 'Паказаць',
+'rcshowhideliu-hide' => 'Схаваць',
 'rcshowhideanons' => '$1 ананімаў',
+'rcshowhideanons-show' => 'Паказаць',
+'rcshowhideanons-hide' => 'Схаваць',
 'rcshowhidepatr' => '$1 патруляваныя праўкі',
+'rcshowhidepatr-show' => 'Паказаць',
+'rcshowhidepatr-hide' => 'Схаваць',
 'rcshowhidemine' => '$1 мае праўкі',
+'rcshowhidemine-show' => 'Паказаць',
+'rcshowhidemine-hide' => 'Схаваць',
 'rclinks' => 'Паказаць апошнія $1 зьменаў за мінулыя $2 дзён<br />$3',
 'diff' => 'розьн',
 'hist' => 'гіст',
@@ -1813,6 +1826,7 @@ $1",
 'uploaddisabledtext' => 'Загрузка файлаў забароненая.',
 'php-uploaddisabledtext' => 'Загрузка файлаў была адключаная ў парамэтрах канфігурацыі PHP. Калі ласка, праверце значэньне парамэтра «file_uploads».',
 'uploadscripted' => 'Гэты файл утрымлівае HTML-код альбо скрыпт, які можа памылкова апрацоўвацца браўзэрам.',
+'uploadscriptednamespace' => 'Гэты SVG-файл утрымлівае няслушную прастору назваў «$1»',
 'uploadinvalidxml' => 'Не атрымалася прааналізаваць XML у загружаным файле.',
 'uploadvirus' => 'Файл утрымлівае вірус! Падрабязнасьці: $1',
 'uploadjava' => 'Файл зьяўляецца ZIP-архівам, які зьмяшчае .class-файл Java.
@@ -2059,6 +2073,9 @@ $1',
 # List redirects
 'listredirects' => 'Сьпіс перанакіраваньняў',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Сьпіс файлаў з дублікатамі',
+
 # Unused templates
 'unusedtemplates' => 'Шаблёны, якія не выкарыстоўваюцца',
 'unusedtemplatestext' => 'На гэтай старонцы зьмешчаны сьпіс усіх старонак прасторы назваў «{{ns:template}}», якія ня ўключаныя ў іншыя старонкі.
@@ -2458,7 +2475,7 @@ $UNWATCHURL
 Выдаленьне такіх старонак было забароненае, каб пазьбегнуць праблемаў у працы {{GRAMMAR:родны|{{SITENAME}}}}.',
 'delete-warning-toobig' => 'Гэтая старонка мае доўгую гісторыю рэдагаваньняў, больш за $1 {{PLURAL:$1|вэрсію|вэрсіі|вэрсіяў}}.
 Яе выдаленьне можа выклікаць праблемы ў працы базы зьвестак {{GRAMMAR:родны|{{SITENAME}}}}; будзьце асьцярожны.',
-'deleting-backlinks-warning' => "'''Увага:''' іншыя старонкі ўключаюць або спасылаюцца на старонку, якую вы зьбіраецеся выдаліць.",
+'deleting-backlinks-warning' => "'''Увага:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|іншыя старонкі]] ўключаюць або спасылаюцца на старонку, якую вы зьбіраецеся выдаліць.",
 
 # Rollback
 'rollback' => 'Адкаціць рэдагаваньні',
@@ -2511,7 +2528,7 @@ $UNWATCHURL
 Цяперашнія налады для старонкі '''$1''':",
 'protect-locked-access' => "Вы ня маеце правоў для зьмены ўзроўню абароны старонкі.
 Цяперашнія налады для старонкі '''$1''':",
-'protect-cascadeon' => 'Гэтая старонка часова абароненая, таму што яна ўключаная ў {{PLURAL:$1|наступную старонку, якая абароненая|наступныя старонкі, якія абароненыя|наступныя старонкі, якія абароненыя}} каскаднай абаронай.
+'protect-cascadeon' => 'Гэтая старонка часова абароненая, таму што яна ўключаная ў {{PLURAL:$1|наступную старонку, якая абароненая|наступныя старонкі, якія абароненыя}} каскаднай абаронай.
 Вы можаце зьмяніць узровень абароны, але гэта не паўплывае на каскадную абарону.',
 'protect-default' => 'Дазволіць усім удзельнікам',
 'protect-fallback' => 'Дазволіць толькі ўдзельнікам з дазволам «$1»',
@@ -2637,8 +2654,10 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Гэты IP-адрас у дадзены момант заблякаваны.
 Апошні запіс з журнала блякаваньняў пададзены ніжэй для даведкі:',
 'sp-contributions-search' => 'Пошук унёску',
+'sp-contributions-suppresslog' => 'выдалены ўнёсак удзельніка',
 'sp-contributions-username' => 'IP-адрас альбо імя ўдзельніка/ўдзельніцы:',
 'sp-contributions-toponly' => 'Паказваць толькі зьмены, якія зьяўляюцца апошнімі вэрсіямі',
+'sp-contributions-newonly' => 'Паказваць толькі праўкі, якімі былі створаныя старонкі',
 'sp-contributions-submit' => 'Шукаць',
 
 # What links here
@@ -2947,6 +2966,7 @@ $2',
 'thumbnail_image-type' => 'Тып выявы не падтрымліваецца',
 'thumbnail_gd-library' => 'Няпоўная канфігурацыя бібліятэкі GD: няма функцыі $1',
 'thumbnail_image-missing' => 'Верагодна няма файла $1',
+'thumbnail_image-failure-limit' => 'Было зроблена зашмат няўдалых спробаў ($1 ці болей) сфармаваць гэтую мініятуру. Калі ласка, паспрабуйце пазьней.',
 
 # Special:Import
 'import' => 'Імпартаваць старонкі',
@@ -2996,6 +3016,7 @@ $2',
 'import-error-special' => 'Старонка «$1» не была імпартаваная, таму што яна належыць да спэцыяльнай прасторы назваў, старонкі ў якой не дазволеныя.',
 'import-error-invalid' => 'Старонка «$1» не была імпартаваная з-за няслушнасьці назвы.',
 'import-error-unserialize' => 'Не атрымалася дэсэрыялізаваць вэрсію $2 старонкі «$1». Меркавалася, што вэрсія выкарыстоўвала мадэль зьвестак $3 і была сэрыялізавана ў фармаце $4.',
+'import-error-bad-location' => 'Праўка $2, якая выкарыстоўвае мадэль зьместу $3, ня можа быць захаваная ў «$1» гэтай вікі, таму што такая мадэль не падтрымліваецца на гэтай старонцы.',
 'import-options-wrong' => '{{PLURAL:$2|1=Няслушная налада|Няслушныя налады}}: <nowiki>$1</nowiki>',
 'import-rootpage-invalid' => 'Пазначаная назва карнявой старонкі няслушная.',
 'import-rootpage-nosubpage' => 'Падстаронкі ў прасторы назваў «$1» карнявой старонкі не дазволеныя.',
@@ -3782,6 +3803,10 @@ $5
 'imgmultigo' => 'Перайсьці!',
 'imgmultigoto' => 'Перайсьці на старонку $1',
 
+# Language selector for translatable SVGs
+'img-lang-default' => '(мова па змоўчаньні)',
+'img-lang-info' => 'Паказаць гэтую выяву наступнай мовай: $1. $2',
+
 # Table pager
 'ascending_abbrev' => 'узраст.',
 'descending_abbrev' => 'зьмянш.',
@@ -4068,7 +4093,7 @@ MediaWiki распаўсюджваецца з надзеяй, што будзе
 'api-error-badtoken' => 'Унутраная памылка: няслушны ключ.',
 'api-error-copyuploaddisabled' => 'Загрузка з URL-адрасу забароненая на гэтым сэрвэры.',
 'api-error-duplicate' => 'Ужо {{PLURAL:$1|1=існуе [$2 іншы файл]|існуюць [$2 іншыя файлы]}} з такім жа зьместам.',
-'api-error-duplicate-archive' => 'Раней на сайце {{PLURAL:$1|1=ўжо быў [$2 файл]|былі [$2 файлы]}} з дакладна такім жа зьместам, але {{PLURAL:$1|1=ён быў выдалены|яны былі выдаленыя}}.',
+'api-error-duplicate-archive' => 'Раней на сайце {{PLURAL:$1|1=быў [$2 файл]|былі [$2 файлы]}} з дакладна такім жа зьместам, але {{PLURAL:$1|1=ён быў выдалены|яны былі выдаленыя}}.',
 'api-error-duplicate-archive-popup-title' => 'Дублікаты {{PLURAL:$1|1=файла, які ўжо быў выдалены|файлаў, якія ўжо былі выдаленыя}}',
 'api-error-duplicate-popup-title' => '{{PLURAL:$1|1=Ідэнтычны файл|Ідэнтычныя файлы}}',
 'api-error-empty-file' => 'Дасланы Вамі файл быў пусты.',
index 051831d..9a3bdfc 100644 (file)
@@ -490,7 +490,6 @@ $1',
 'disclaimers' => 'Условия за ползване',
 'disclaimerpage' => 'Project:Условия за ползване',
 'edithelp' => 'Помощ при редактиране',
-'helppage' => 'Help:Съдържание',
 'mainpage' => 'Начална страница',
 'mainpage-description' => 'Начална страница',
 'policy-url' => 'Project:Политика',
@@ -684,8 +683,6 @@ $2',
 'gotaccountlink' => 'Влизане',
 'userlogin-resetlink' => 'Забравени данни за влизане в системата?',
 'userlogin-resetpassword-link' => 'Забравена парола?',
-'helplogin-url' => 'Help:Влизане',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Помощ за влизане]] в системата',
 'userlogin-loggedin' => 'Вече сте влезли в системата като {{GENDER:$1|$1}}.
 Чрез формуляра по-долу можете да влезете като друг потребител.',
 'userlogin-createanother' => 'Създаване на друга сметка',
@@ -929,7 +926,7 @@ $2
 'newarticle' => '(нова)',
 'newarticletext' => 'Последвахте препратка към страница, която все още не съществува.
 За да я създадете, просто започнете да пишете в долната текстова кутия
-(вижте [[{{MediaWiki:Helppage}}|помощната страница]] за повече информация).',
+(вижте [$1 помощната страница] за повече информация).',
 'anontalkpagetext' => "----''Това е дискусионната страница на анонимен потребител, който все още няма регистрирана сметка или не я използва, затова се налага да използваме IP-адрес, за да го идентифицираме. Такъв адрес може да се споделя от няколко потребители.''
 
 ''Ако сте анонимен потребител и мислите, че тези неуместни коментари са отправени към вас, [[Special:UserLogin/signup|регистрирайте се]] или [[Special:UserLogin|влезте в системата]], за да избегнете евентуално бъдещо объркване с други анонимни потребители.''",
@@ -1155,8 +1152,6 @@ $2
 'revdelete-show-file-submit' => 'Да',
 'revdelete-selected' => "'''{{PLURAL:$2|Избрана версия|Избрани версии}} от '''$1:''''''",
 'logdelete-selected' => "'''{{PLURAL:$1|Избрано събитие|Избрани събития}}:'''",
-'revdelete-text' => "'''Изтритите версии ше се показват в историята на страницата, но тяхното съдържание ще бъде недостъпно за обикновенните потребители.'''
-Администраторите на {{SITENAME}} ще имат достъп до скритото съдържание и ще могат да го възстановят, с изключение на случаите, когато има наложено допълнително ограничение.",
 'revdelete-confirm' => 'Необходимо е да потвърдите, че велаете да извършите действието, разбирате последствията и го правите според [[{{MediaWiki:Policy-url}}|политиката]].',
 'revdelete-suppress-text' => "Премахването трябва да се използва '''само''' при следните случаи:
 *Неподходяща или неприемлива лична информация
index ba61182..6bfb14d 100644 (file)
@@ -294,7 +294,6 @@ $1',
 'disclaimers' => 'अस्विकरण',
 'disclaimerpage' => 'Project:सामान्य अस्विकरण',
 'edithelp' => 'मदद सम्पादन',
-'helppage' => 'Help:सामग्री',
 'mainpage' => 'मुख्य पन्ना',
 'mainpage-description' => 'मुख्य पन्ना',
 'policy-url' => 'Project:नीति',
@@ -487,8 +486,6 @@ $2',
 'gotaccountlink' => 'खाता में प्रवेश',
 'userlogin-resetlink' => 'का रउआ आपन प्रवेश जानकारी भूला गइल बानी?',
 'userlogin-resetpassword-link' => 'आपन गुप्तशब्द के फिर से बहाल करीं',
-'helplogin-url' => 'Help:खाता प्रवेश',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|खाता प्रवेश में सहायता]]',
 'createacct-join' => 'अपना बारे में जानकारी नीचे लिखीं',
 'createacct-another-join' => 'नयका खाता के जानकारी नीचे लिखीं',
 'createacct-emailrequired' => 'ई-मेल पता',
@@ -723,7 +720,7 @@ $2
 'accmailtitle' => 'गुप्त-शब्द भेजा गईल',
 'newarticle' => '(नया)',
 'newarticletext' => "रउआ एगो अइसन लिंक के पन्ना के अनुसरण कइले बानी जउन अभी तक उपलब्ध नइखे।
-पन्ना बनावे खातिर, नीचे के बाकस में टाईप करे के शुरु करीं (ज्यादा जानकारी खातिर देखीं [[{{MediaWiki:Helppage}}|मदद पन्ना]])।
+पन्ना बनावे खातिर, नीचे के बाकस में टाईप करे के शुरु करीं (ज्यादा जानकारी खातिर देखीं [$1 मदद पन्ना])।
 यदि रउआ अहिजा गलती से आ गईल बानी त, आपन ब्राउजर के '''back''' (बैक) बटन दबाईं",
 'noarticletext' => 'ई पन्ना मे अभी कउनो सामग्री नईखे बा ।
 रउआ अन्य पन्ना में [[Special:Search/{{PAGENAME}}|ई शीर्षक के खोज]] कर सकत बानीं',
index 71f8d24..dd24dbd 100644 (file)
@@ -377,7 +377,6 @@ $1",
 'disclaimers' => 'Panyangkalan',
 'disclaimerpage' => 'Project:Panyangkalan umum',
 'edithelp' => 'Patulung mambabak',
-'helppage' => 'Help:Isi',
 'mainpage' => 'Tungkaran Tatambaian',
 'mainpage-description' => 'Tungkaran Tatambaian',
 'policy-url' => 'Project:Kaaripan',
@@ -767,7 +766,7 @@ Pinanya ini sudah diugahakan atawa dihapus parhatan Pian maniringi tungkaran nan
 
 Katasunduk gasan pamakai hanyar nangini kawa diubah pintang tungkaran ''[[Special:ChangePassword|ubah katasunduk]]'' wayah babuat log.",
 'newarticle' => '(Hanyar)',
-'newarticletext' => "Pian maumpati sabuah tautan ka tungkaran nang baluman ada lagi. Gasan maulah tungkaran, mulai ja mangatik pada kutak di bawah (lihati [[{{MediaWiki:Helppage}}|tungkaran patulung]] gasan panjalasan labih). Amun Pian ka sia cagaran tasalah, klik picikan '''back''' di panjalajah web Pian.",
+'newarticletext' => "Pian maumpati sabuah tautan ka tungkaran nang baluman ada lagi. Gasan maulah tungkaran, mulai ja mangatik pada kutak di bawah (lihati [$1 tungkaran patulung] gasan panjalasan labih). Amun Pian ka sia cagaran tasalah, klik picikan '''back''' di panjalajah web Pian.",
 'anontalkpagetext' => "----''Ngini adalah tungkaran pamandiran gasan pamakai kada bangaran nang baluman ma-ulah akun pulang, atawa  kada mamakainya. Kami tapaksa mamakai numurik alamat IP hagan maminanduinya.
 Alamat IP nangkaini kawaai dipuruk ulih babarapa pamakai.
 Amun Pian adalah pamuruk kada bangaran wan marasa kumin nang kada pas ta ka Pian, muhun [[Special:UserLogin/signup|ulah sabuah akun]] or [[Special:UserLogin|babuat log]] hagan mahindari kabingungan awan pamuruk kada bangaran lain kaina.",
@@ -999,8 +998,6 @@ Sawagai saurang pambakal Pian kawa nang balain ini; rarincian kawa diugai dalam
 'revdelete-show-file-submit' => 'Iya-ai',
 'revdelete-selected' => "'''{{PLURAL:$2|Ralatan tapilih|Raralatan tapilih}} matan [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Log kajadian tapilih|Log kakajadian tapilih}}:'''",
-'revdelete-text' => "'''Raralatan tahapus wan kakajadian akan magun cungul dalam halam tungkaran wan log, tagal hagian matan isinya akan kada kawa diungkai umum.'''
-Pambakal lain pada {{SITENAME}} akan magun kawa maungkai isi tasungkup wan kawa mambulikakan hapusan pulang mangguna'akan antarmuha sama, kacuali ada panambahan pahalatan lain nang disetél.",
 'revdelete-confirm' => 'Muhun yakinakan bahwasa Pian handak manggawi ini, bahwasa Pian paham sabab akibat, wan bahwasa Pian manggawi ini bapandal awan [[{{MediaWiki:Policy-url}}|kaaripan]].',
 'revdelete-suppress-text' => "Panikinan parlu dipuruk gasan kakasus baumpat ini:
 * Pina kawa jadi panjalasan pitnah
index ac198f4..105fb31 100644 (file)
@@ -320,7 +320,6 @@ $1',
 'disclaimers' => 'দাবিত্যাগ',
 'disclaimerpage' => 'Project:সাধারণ দাবিত্যাগ',
 'edithelp' => 'সম্পাদনা সহায়িকা',
-'helppage' => 'Help:সূচী',
 'mainpage' => 'প্রধান পাতা',
 'mainpage-description' => 'প্রধান পাতা',
 'policy-url' => 'Project:নীতিমালা',
@@ -518,8 +517,6 @@ $2',
 'gotaccountlink' => 'প্রবেশ',
 'userlogin-resetlink' => 'আপনার লগইনের বিস্তারিত তথ্যাদি ভুলে গেছেন?',
 'userlogin-resetpassword-link' => 'শব্দচাবি ভুলে গেছেন?',
-'helplogin-url' => 'Help:প্রবেশ',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|লগইন সংক্রান্ত সাহায্য]]',
 'userlogin-loggedin' => 'আপনি বর্তমানে {{GENDER:$1|$1}} হিসাবে লগইন আছেন।
 অন্য ব্যবহারকারী নামে লগইন করতে চাইলে নিচের ফর্মটি ব্যবহার করুন।',
 'userlogin-createanother' => 'আরেকটি অ্যাকাউন্ট তৈরি করুন',
@@ -605,6 +602,10 @@ $2',
 'suspicious-userlogout' => 'আপনার প্রস্থানের অনুরোধ বাতিল হয়েছে কারণ অনুমিত যে আপনার ব্রাউজার অসম্পূর্ণ অথবা পূবর্বতী তথ্য প্রেরণ করেছে।',
 'createacct-another-realname-tip' => 'আসল নাম ঐচ্ছিক।
 আপনি যদি তা দিতে চান, তাহলে তা ব্যবহারকারীকে তাদের কাজের জন্য স্বীকৃতিদানে ব্যবহার করা হবে।',
+'pt-login' => 'প্রবেশ',
+'pt-login-button' => 'প্রবেশ',
+'pt-createaccount' => 'অ্যাকাউন্ট তৈরি করুন',
+'pt-userlogout' => 'প্রস্থান',
 
 # Email sending
 'php-mail-error-unknown' => 'পিএইচপি এর মেইল () কার্যে অজ্ঞাত ভুল',
@@ -634,7 +635,7 @@ $2',
 'resetpass-temp-password' => 'অস্থায়ী শব্দচাবি:',
 'resetpass-abort-generic' => 'শব্দচাবি পরিবর্তন একটি এক্সটেনশনের কারণে স্থগিত করা হয়েছে।',
 'resetpass-expired' => 'আপনার পাসওয়ার্ডের মেয়াদ উত্তীর্ণ হয়েছে। অনুগ্রহ করে নতুন পাসওয়ার্ড নির্ধারণ করুন।',
-'resetpass-expired-soft' => 'আপনার পাসওয়ার্ড মেয়াদ উত্তীর্ণ হয়েছে, এবং আপনাকে একটি নতুন পাসওয়ার্ড নির্ধারণ করতে হবে। অনুগ্রহ করে এখনই একটি নতুন পাসওয়ার্ড নির্ধারণ করুন অথবা পরে পরিবর্তন করতে চাইলে বাতিল বাটনে ক্লিক করুন।',
+'resetpass-expired-soft' => 'আপনার পাসওয়ার্ডের মেয়াদ উত্তীর্ণ হয়েছে এবং আপনাকে একটি নতুন পাসওয়ার্ড নির্ধারণ করতে হবে। অনুগ্রহ করে এখনই একটি নতুন পাসওয়ার্ড নির্ধারণ করুন অথবা পরে পরিবর্তন করতে চাইলে "{{int:resetpass-submit-cancel}}" বাটনে ক্লিক করুন।',
 
 # Special:PasswordReset
 'passwordreset' => 'শব্দচাবি রিসেট',
@@ -779,7 +780,7 @@ $1 নিষেধাজ্ঞা আরোপ করেছেন। নিষ
 লগ-ইন করার পর ''[[Special:ChangePassword|পাসওয়ার্ড পরিবর্তন]]'' পাতা থেকে এটি পরিবর্তন করা যাব।",
 'newarticle' => '(নতুন)',
 'newarticletext' => "আপনি এমন একটি লিংক অনুসরণ করছেন, যা নেই।
-পাতাটি তৈরি করতে, নিচের বাক্সে তা টাইপ করা শুরু করুন (আরও তথ্য জানতে [[{{MediaWiki:Helppage}}|সহায়িকা পাতা]] দেখুন)।
+পাতাটি তৈরি করতে, নিচের বাক্সে তা টাইপ করা শুরু করুন (আরও তথ্য জানতে [$1 সহায়িকা পাতা] দেখুন)।
 আপনি যদি ভুল করে এখানে এসে থাকেন, তাহলে আপনার ব্রাউজারের '''back''' বোতাম ক্লিক করুন।",
 'anontalkpagetext' => "----''এটি একটি বেনামী ব্যবহারকারীর আলাপের পাতা, যিনি এখনও কোন অ্যাকাউন্ট তৈরি করেননি, কিংবা তিনি অ্যাকাউন্টটি ব্যবহার করছেন না।
 আমরা তাই সাংখ্যিক আইপি ঠিকানা ব্যবহার করে তাঁকে শনাক্ত করছি।
@@ -1015,9 +1016,6 @@ $3-এর দেয়া কারণ হল ''$2''",
 'revdelete-show-file-submit' => 'হ্যাঁ',
 'revdelete-selected' => "'''[[:$1]] পাতার {{PLURAL:$2|নির্বাচিত সংশোধন|নির্বাচিত সংশোধনসমূহ}}:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|টি নির্বাচিত লগ-ঘটনা|টি নির্বাচিত লগ-ঘটনা}}:'''",
-'revdelete-text' => "'''মুছে ফেলা সংশোধনগুলো এবং ঘটনাগুলি এখনও পাতার ইতিহাস ও লগগুলোতে দেখাবে, কিন্তু তাদের বিষয়বস্তুর অংশবিশেষ সর্বোসাধারণের জন্য উন্মুক্ত থাকবে না।'''
-
-{{SITENAME}} এর অন্যান্য প্রশাসকগণ লুকানো এই বিষয়বস্তু দেখতে পাবেন এবং বাড়তি কোনো সীমাবদ্ধতা না থাকলে একই ইন্টারফেসের মাধ্যমে এটি পুনরুদ্ধার করতে পারবেন।",
 'revdelete-confirm' => 'অনুগ্রহ করে নিশ্চিত করুন যে আপনি এটি করতে চাচ্ছিলেন, আপনি এর ফলাফল সম্পর্কে অবগত আছেন, এবং [[{{MediaWiki:Policy-url}}|নীতিমালার]] উপর ভিত্তি করেই এই কাজটি করছেন।',
 'revdelete-suppress-text' => "নিচের বিষয়গুলোর ক্ষেত্রেই '''কেবলমাত্র'''  চাপাচাপি করা যাবে:
 * সম্ভাব্য মানহানিকর তথ্য
@@ -1150,13 +1148,14 @@ $1",
 'search-file-match' => '(নথির বিষয়বস্তু মিলে যায়)',
 'search-suggest' => 'আপনি সম্ভবত বুঝাতে চাইছেন: $1',
 'search-interwiki-caption' => 'সহপ্রকল্পসমূহ',
-'search-interwiki-default' => '$1 ফলাফলসমূহ:',
+'search-interwiki-default' => '$1 à¦¥à§\87à¦\95à§\87 à¦«à¦²à¦¾à¦«à¦²à¦¸à¦®à§\82হ:',
 'search-interwiki-more' => '(আরও)',
 'search-relatedarticle' => 'সম্পর্কিত',
 'searcheverything-enable' => 'সকল নামস্থানে অনুসন্ধান করো',
 'searchrelated' => 'সম্পর্কিত',
 'searchall' => 'সমস্ত',
 'showingresults' => "নিচে '''$2''' নং থেকে শুরু করে {{PLURAL:$1|'''1''' ফলাফল|'''$1''' ফলাফলসমূহ}} দেখানো হল।",
+'showingresultsinrange' => '#<strong>$2</strong> থেকে #<strong>$3</strong> পরিসীমার মধ্যে {{PLURAL:$1|<strong>১টি</strong> ফলাফল|<strong>$1টি</strong> ফলাফল}} নিচে দেখানো হচ্ছে।',
 'showingresultsnum' => "নিম্নে {{PLURAL:$3|'''1''' ফলাফল|'''$3''' ফলাফলসমূহ}} দেখানো হয়েছে যা শুরু হয়েছে #'''$2''' দিয়ে।",
 'showingresultsheader' => "'''$4''' এর জন্য {{PLURAL:$5|ফলাফল '''$3''' এর '''$1'''|ফলাফলসমূহ '''$3''' এর মধ্যে '''$1 - $2'''}}",
 'search-nonefound' => 'খোঁজকৃত পাতার সাথে মিলে যায় এমন কোনো ফলাফল নেই।',
@@ -1472,14 +1471,26 @@ $1",
 'recentchanges-legend-heading' => "'''ব্যাখ্যামূলক বর্ণনা:'''",
 'recentchanges-legend-newpage' => '(আরও দেখুন [[Special:NewPages|নতুন পাতার তালিকা]])',
 'recentchanges-legend-plusminus' => "(''±১২৩'')",
-'rcnotefrom' => "'''$2'''-এর পরে সংঘটিত পরিবর্তনগুলো নিচে দেখানো হল ('''$1'''টি)।",
-'rclistfrom' => '$1-এর পর সংঘটিত নতুন পরিবর্তনগুলো দেখাও।',
+'rcnotefrom' => '<strong>$2</strong>টা থেকে সংঘটিত পরিবর্তনগুলি (সর্বোচ্চ <strong>$1টি</strong> দেখানো হয়েছে)',
+'rclistfrom' => '$2, $3 তারিখের পর সংঘটিত নতুন পরিবর্তনগুলো দেখাও',
 'rcshowhideminor' => 'অনুল্লেখ্য পরিবর্তনগুলো $1',
+'rcshowhideminor-show' => 'দেখাও',
+'rcshowhideminor-hide' => 'আড়াল করো',
 'rcshowhidebots' => 'বটগুলো $1',
+'rcshowhidebots-show' => 'দেখাও',
+'rcshowhidebots-hide' => 'আড়াল করো',
 'rcshowhideliu' => 'নিবন্ধিত ব্যবহারকারীদের $1',
+'rcshowhideliu-show' => 'দেখাও',
+'rcshowhideliu-hide' => 'আড়াল করো',
 'rcshowhideanons' => 'বেনামী ব্যবহারকারীদের $1',
+'rcshowhideanons-show' => 'দেখাও',
+'rcshowhideanons-hide' => 'আড়াল করো',
 'rcshowhidepatr' => 'পরীক্ষিত সম্পাদনা $1',
+'rcshowhidepatr-show' => 'দেখাও',
+'rcshowhidepatr-hide' => 'আড়াল করো',
 'rcshowhidemine' => 'আমার সম্পাদনাগুলো $1',
+'rcshowhidemine-show' => 'দেখাও',
+'rcshowhidemine-hide' => 'আড়াল করো',
 'rclinks' => "'''প্রদর্শনের ধরন'''<br />
 * বিগত ($2) দিনের শেষ ($1)টি পরিবর্তন দেখাও
 * $3",
@@ -1605,6 +1616,7 @@ $1",
 'php-uploaddisabledtext' => 'পিএইপি -এ ফাইল আপলোড নিস্ক্রিয় রয়েছে।
 অনুগ্রহ করে file_uploads সেটিং পরীক্ষা করুন।',
 'uploadscripted' => 'এই ফাইলে এমন HTML বা স্ক্রিপ্ট কোড আছে যা একটি ওয়েব ব্রাউজার ভুল বুঝতে পারে।',
+'uploadscriptednamespace' => 'এই SVG ফাইলে অবৈধ নামস্থান "$1" রয়েছে',
 'uploadvirus' => 'এই ফাইলটিতে ভাইরাস আছে! ব্যাখ্যা: $1',
 'uploadjava' => 'এটি একটি ZIP ফরম্যাটের ফাইল, যেখানে একটি জাভা .class ফরম্যাটের ফাইল রয়েছে।
 জাভা ফাইল আপলোডের কোনো অনুমতি নেই, কারণ এই ধরনের ফাইল সিস্টেমে নিরাপত্তা ত্রুটি তৈরী করতে পারে।',
@@ -2154,6 +2166,7 @@ Maybe you want to edit the description on its [$2 file description page] there.'
 'watchmethod-list' => 'নজরে রাখা পাতাগুলিতে সাম্প্রতিক পরিবর্তন পরীক্ষা করা হচ্ছে',
 'watchlistcontains' => 'আপনার নজরতালিকায় $1 টি {{PLURAL:$1|পাতা|পাতা}} রয়েছে।',
 'iteminvalidname' => "'$1'নং আইটেমে সমস্যা, অবৈধ নাম...",
+'wlnote2' => '$3, $2 অনুসারে, সর্বশেষ {{PLURAL:$1|ঘণ্টার|<strong>$1</strong> ঘণ্টার}} পরিবর্তন নিচে দেয়া হয়েছে।',
 'wlshowlast' => 'দেখাও সর্বশেষ  $1 ঘন্টা $2 দিন $3',
 'watchlist-options' => 'নজর তালিকা পছন্দসমূহ',
 
@@ -2241,7 +2254,7 @@ $UNWATCHURL
 'delete-warning-toobig' => 'এই পাতাটির একটি বৃহৎ সম্পাদনা ইতিহাস রয়েছে, যা $1 {{PLURAL:$1|সংস্করণেরও|সংস্করণেরও}} বেশি।
 এই পাতাটি মুছে ফেললে তা {{SITENAME}} সাইটের ডেটাবেজ সমস্যার কারণ হতে পারে;
 সাবধানতার সাথে এগিয়ে যান।',
-'deleting-backlinks-warning' => "'''সতর্কীকরণ:''' আপনি যেটি মুছে ফেলতে যাচ্ছেন তা অন্যান্য পাতাসমূহের সাথে সংযুক্ত অথবা অন্তর্ভুক্ত করা আছে।",
+'deleting-backlinks-warning' => "'''সতর্কীকরণ:''' আপনি যেটি মুছে ফেলতে যাচ্ছেন তা [[Special:WhatLinksHere/{{FULLPAGENAME}}|অন্যান্য পাতাসমূহে]] সংযুক্ত অথবা অন্তর্ভুক্ত রয়েছে।",
 
 # Rollback
 'rollback' => 'সম্পাদনা ফিরিয়ে নিন',
@@ -2414,8 +2427,10 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'এই আইপি ঠিকানাটি বর্তমানে বাধাদানকৃত অবস্থায় রয়েছে।
 তথ্যসূত্র হিসেবে সাম্প্রতিক বাধাদান লগের ভুক্তিটি নিচে দেওয়া হলো:',
 'sp-contributions-search' => 'অবদানসমূহের জন্য অনুসন্ধান',
+'sp-contributions-suppresslog' => 'মুছে ফেলা ব্যবহারকারী অবদান',
 'sp-contributions-username' => 'আইপি (IP) ঠিকানা অথবা ব্যবহারকারীর নাম:',
-'sp-contributions-toponly' => 'শুধুমাত্র সেই সম্পাদনাগুলি দেখাও যেগুলো সাম্প্রতিক সংস্করণের অন্তর্ভুক্ত।',
+'sp-contributions-toponly' => 'শুধুমাত্র সেই সম্পাদনাগুলি দেখাও যেগুলো সাম্প্রতিক সংস্করণের অন্তর্ভুক্ত',
+'sp-contributions-newonly' => 'শুধুমাত্র পাতা সৃষ্টি করা সম্পাদনাগুলি দেখাও',
 'sp-contributions-submit' => 'অনুসন্ধান',
 
 # What links here
@@ -2516,7 +2531,7 @@ $1',
 'change-blocklink' => 'ব্লক অবস্থার পরিবর্তন করুন',
 'contribslink' => 'অবদান',
 'emaillink' => 'ই-মেইল পাঠাও',
-'autoblocker' => 'আপনাকে স্বয়ংক্রিয়ভাবে বাধা দেওয়া হয়েছে, কারণ আপনার আইপি ঠিকানাটি সম্প্রতি "[[User:$1|$1]]" ব্যবহার করেছেন।   $1-কে বাধাদানের কারণ: "$2"',
+'autoblocker' => 'আপনাকে স্বয়ংক্রিয়ভাবে বাধা দেওয়া হয়েছে, কারণ আপনার আইপি ঠিকানাটি সম্প্রতি "[[User:$1|$1]]" ব্যবহার করেছেন। $1-কে বাধাদানের কারণ "$2"',
 'blocklogpage' => 'বাধা দানের লগ',
 'blocklog-showlog' => 'এই ব্যবহারকারীকে পূর্বেও বাধা প্রদান করা হয়েছিলো।
 তথ্যসূত্র হিসেবে তাই পূর্বের বাধাদানের লগটি নিচে প্রদর্শন করা হচ্ছে:',
@@ -2911,7 +2926,7 @@ $2',
 'pageinfo-lasttime' => 'সর্বশেষ সম্পাদনার তারিখ',
 'pageinfo-edits' => 'সর্বমোট সম্পাদনা সংখ্যা',
 'pageinfo-authors' => 'সর্বমোট সতন্ত্র সম্পাদকের সংখ্যা',
-'pageinfo-recent-edits' => 'সরà§\8dবশà§\87ষ à¦¸à¦®à§\8dপাদনা à¦\95রা à¦¹à¦¯à¦¼à§\87à¦\9bà§\87 (শà§\87ষ $1 à¦¦à¦¿à¦¨à§\87)',
+'pageinfo-recent-edits' => 'সরà§\8dবশà§\87ষ à¦¸à¦®à§\8dপাদনা à¦\95রা à¦¹à¦¯à¦¼à§\87à¦\9bà§\87 (à¦\97ত $1)',
 'pageinfo-recent-authors' => 'সাম্প্রতিক সতন্ত্র সম্পাদকের সংখ্যা',
 'pageinfo-magic-words' => 'ম্যাজিক {{PLURAL:$1|শব্দ|শব্দসমূহ}} ($1)',
 'pageinfo-hidden-categories' => 'লুকানো {{PLURAL:$1|বিষয়শ্রেণী|বিষয়শ্রেণীসমূহ}} ($1)',
index 155e30a..905b364 100644 (file)
@@ -29,40 +29,53 @@ $digitTransformTable = array(
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'འོà½\82à¼\8bà½\90ིà½\82à¼\8bའà½\90ེà½\93à¼\8bà½\94།',
-'tog-hideminor' => 'རྩོà½\98à¼\8bསà¾\92ྲིà½\82à¼\8bà½\86ུà½\84à¼\8bà½\9aà½\82སà¼\8bསྦསà¼\8bà½\96།',
-'tog-hidepatrolled' => 'ལà¾\9fà¼\8bà½\9eིà½\96à¼\8bà½\96ྱསà¼\8bà½\94འིà¼\8bརྩོà½\98à¼\8bསà¾\92ྲིà½\82à¼\8bསྦསà¼\8bà½\96།',
-'tog-newpageshidepatrolled' => 'ཤོà½\82à¼\8bà½\84ོསà¼\8bà½\82སརà¼\8bà½\96རà¼\8bལà¾\9fà¼\8bà½\9eིà½\96à¼\8bà½\96ྱསà¼\8bà½\94འིà¼\8bརྩོà½\98à¼\8bསà¾\92ྲིà½\82à¼\8bསྦསà¼\8bà½\96།',
-'tog-extendwatchlist' => 'à½\98à½\89à½\98à¼\8bའà½\87ོà½\82à¼\8bà½\90ོà¼\8bà½\96à½\80ྲà½\98ས་ཏེ་ཉེ་ལམ་ཙམ་མིན་པར་བཟོ་བཅོས་ཡོངས་རྫོགས་སྟོན་ཅིག',
-'tog-usenewrc' => 'ཡརà¼\8bརà¾\92ྱསà¼\8bà½\85à½\93à¼\8bà½\82ྱིà¼\8bà½\89ེà¼\8bà½\96འིà¼\8bà½\96à½\9fོà¼\8bà½\96à½\85ོསà¼\8bà½\96ེà½\91à¼\8bསྤྱོà½\91à¼\8bà½\94à¼\8d(Java à½¡à½²à¼\8bà½\96རྡà¼\8bà½\86à½\91à¼\8bà½\91à½\82ོས)',
+'tog-underline' => 'འོà½\82à¼\8bà½\90ིà½\82à¼\8bà½\85à½\93à¼\8bལà¼\8bསྦྲེལà¼\8bà½\98à½\90ུà½\91།',
+'tog-hideminor' => 'à½\89ེà¼\8bà½\91ུསà¼\8bà½\80ྱིà¼\8bརྩོà½\98à¼\8bསà¾\92ྲིà½\82à¼\8bà½\82ལà¼\8bà½\86ུà½\84à¼\8bà½\82ྱིà¼\8bའà½\82ྱུརà¼\8bལྡོà½\82à¼\8bརྣà½\98སà¼\8bསྦས།',
+'tog-hidepatrolled' => 'à½\89ེà¼\8bà½\91ུསà¼\8bà½\80ྱིà¼\8bལà¾\9fà¼\8bà½\9eིà½\96à¼\8bà½\96ྱསà¼\8bà½\94འིà¼\8bརྩོà½\98à¼\8bསà¾\92ྲིà½\82à¼\8bརྣà½\98སà¼\8bསྦས།',
+'tog-newpageshidepatrolled' => 'ཤོà½\82à¼\8bà½\84ོསà¼\8bà½\82སརà¼\8bà½\96རà¼\8bལà¾\9fà¼\8bà½\9eིà½\96à¼\8bà½\96ྱསà¼\8bà½\94འིà¼\8bརྩོà½\98à¼\8bསà¾\92ྲིà½\82à¼\8bà½\80ྱིà¼\8bཤོà½\82à¼\8bà½\84ོསà¼\8bསྦས།',
+'tog-extendwatchlist' => 'ལà¾\9fà¼\8bà½\9eིà½\96à¼\8bà½\90ོà¼\8bརà¾\92ྱà¼\8bསà¾\90ྱེà½\91་ཏེ་ཉེ་ལམ་ཙམ་མིན་པར་བཟོ་བཅོས་ཡོངས་རྫོགས་སྟོན་ཅིག',
+'tog-usenewrc' => 'à½\89ེà¼\8bà½\96འིà¼\8bà½\96à½\9fོà¼\8bà½\96à½\85ོསà¼\8bà½\91à½\84à¼\8bà½\91à½\82སà¼\8bའà½\91ེà½\98སà¼\8bཤོà½\82à¼\8bà½\84ོསà¼\8bà½\80ྱིà¼\8bà½\96à½\85ོསà¼\8bའà½\82ྱུརà¼\8bརà¾\90ྱེà½\93à¼\8bà½\94སà¼\8bསྡེà¼\8bà½\9aà½\93à¼\8bà½\96à½\85ོསà¼\8bའà½\82ྱུརà¼\8bà½\95ྱིà½\93à¼\8bའà½\91ུà½\82à¼\8d',
 'tog-numberheadings' => 'རང་སྒྲིག་ཨང་རྟགས་འགོ་བརྗོད།',
-'tog-showtoolbar' => 'རྩོམ་སྒྲིག་ལག་ཆ་སྟོན།(JavaScript ཡི་བརྡ་ཆད་དགོས།)',
-'tog-editondblclick' => 'ཤོག་ངོས་རྩོམ་སྒྲིག་བྱེད་པར་ལན་གཉིས་རྡེབ།(JavaScript ཡི་བརྡ་ཆད་དགོས།)',
-'tog-rememberpassword' => 'ངའི་ནང་འཛུལ་བཤར་ལྟ་ཆས་འདི་རུ་མང་མཐའ་ཉིན $1 {{PLURAL:$1}} དྲན་པར་མཛོད།',
-'tog-watchcreations' => 'ངའི་ལྟ་ཐོའི་གྲས་སུ་གསར་བཟོ་བྱས་པ་ལ་ཤོག་ངོས་ཁ་སྣོན།',
-'tog-watchdefault' => 'ངའི་ལྟ་ཐོའི་གྲས་སུ་རྩོམ་སྒྲིག་བྱས་པ་ལ་ཤོག་ངོས་ཁ་སྣོན།',
-'tog-watchmoves' => 'ངའི་ལྟ་ཐོའི་གྲས་སུ་སྤོར་བ་ལ་ཤོག་ངོས་ཁ་སྣོན།',
-'tog-watchdeletion' => 'ངའི་ལྟ་ཐོའི་གྲས་སུ་དོར་བ་ལ་ཤོག་ངོས་ཁ་སྣོན།',
-'tog-previewontop' => 'རྩོམ་སྒྲིག་སྒྲོམ་གྱི་སྔོན་དུ་དཔེ་གཟུགས་སྟོན་པ།',
-'tog-previewonfirst' => 'ཐོག་མའི་རྩོམ་སྒྲིག་སྟེང་དུ་དཔེ་གཟུགས་སྟོན་པ།',
-'tog-enotifwatchlistpages' => 'ངའི་ལྟ་ཐོའི་ཤོག་ངོས་ལ་བཟོ་བཅོས་བྱུང་ཚེ་གློག་འཕྲིན་གཏང་རོགས།',
+'tog-showtoolbar' => 'རྩོམ་སྒྲིག་ལག་ཆ་སྟོན། (JavaScript ཡི་བརྡ་ཆད་དགོས།)',
+'tog-editondblclick' => 'ཤོག་ངོས་རྩོམ་སྒྲིག་བྱེད་པར་ལན་གཉིས་རྡེབ།',
+'tog-editsectiononrightclick' => 'དུམ་འཚམས་ཀྱི་འགོ་འརྗོད་ལ་འཐེབ་གཞོང་གཡས་པ་གནོན་ཏེ་དུམ་འཚམས་བཟོ་འཅོས་བྱེད་རོགས།',
+'tog-rememberpassword' => 'ངའི་ནང་འཛུལ་བཤར་ཆས་འདི་སྟེང་(མང་མཐར་ཉིན $1 དྲན་པར་མཛོད། )',
+'tog-watchcreations' => 'ངས་གསར་བཟོ་བྱས་པའི་ཤོག་ངོས་དང་ཡིག་ཆ་ཡར་འཇུག་བྱས་པ་རྣམས་ངའི་དགའ་འདེམས་ཐོ་ལ་སྣོན་རོགས།',
+'tog-watchdefault' => 'ངས་ཁ་སྣོན་བྱས་པའི་ཤོག་ངོས་དང་ཡིག་ཆ་རྣམས་ངའི་ལྟ་ཞིབ་ཐོ་ནང་སྣོན་རོགས།',
+'tog-watchmoves' => 'ངས་ཤོག་ངོས་དང་ཡིག་ཆ་ཕན་ཚུན་སྤོར་བ་རྣམས་ངའི་ལྟ་ཞིབ་ཐོའི་ནང་སྣོན་རོགས།',
+'tog-watchdeletion' => 'ངས་ཤོག་ངོས་དང་ཡིག་ཆ་སུབ་འདོར་བྱས་པ་རྣམས་ངའི་ལྟ་ཞིབ་ཐོའི་ནང་སྣོན་རོགས།',
+'tog-minordefault' => 'ཁ་སྣོན་རྩོམ་སྒྲིག་རྣམས་རང་འགུལ་གྱིས་རྩོམ་སྒྲིག་ཕལ་པར་རྟགས་རྒྱོབ་རོགས།',
+'tog-previewontop' => 'རྩོམ་སྒྲིག་སྒྲོམ་གྱི་སྟེང་སྔོན་ལྟའི་དཔེ་གཟུགས་སྟོན།',
+'tog-previewonfirst' => 'ཐེངས་དང་པོའི་རྩོམ་སྒྲིག་སྟེང་དུ་སྔོན་ལྟའི་དཔེ་གཟུགས་སྟོན།',
+'tog-enotifwatchlistpages' => 'ངའི་ལྟ་ཞིབ་ཐོ་ནང་གི་ཤོག་ངོས་དང་ཡིག་ཆ་རྣམས་ལ་འགྱུར་ལྡོག་བྱུང་ཚེ་ང་ལ་གློག་འཕྲིན་གཏོང་རོགས།',
 'tog-enotifusertalkpages' => 'ངའི་སྤྱོད་མིའི་གླེང་མོལ་ལ་བཟོ་བཅོས་བྱུང་ཚེ་གློག་འཕྲིན་གཏང་རོགས།',
-'tog-enotifminoredits' => 'རྩོམ་སྒྲིག་ཆུང་ཚགས་རིགས་ལའང་གློག་འཕྲིན་གཏོང་རོགས།',
+'tog-enotifminoredits' => 'རྩོམ་སྒྲིག་དང་ཡིག་ཆར་བཟོ་བཅོས་ཆུང་ཚགས་རིགས་བྱུང་ན་ཡང་གློག་འཕྲིན་གཏོང་རོགས།',
+'tog-enotifrevealaddr' => 'ངའི་གློག་འཕྲིན་ཁ་བྱང་འདི་བརྡ་ཐོའི་ཁ་བྱང་ནང་གསལ་སྟོན་བྱེད་རོགས།',
 'tog-shownumberswatching' => 'ཤོག་ངོས་ལ་ལྟ་བཞིན་པའི་སྤྱོད་མིའི་ཁ་གྲངས་སྟོན།',
 'tog-oldsig' => 'ད་ཡོད་མིང་རྟགས།',
-'tog-watchlisthideown' => 'ངའི་རྩོམ་སྒྲིག་རྣམས་ལྟ་ཐོ་ལས་སྦས་རོགས།',
-'tog-watchlisthideminor' => 'རྩོམ་སྒྲིག་ཕལ་བ་རྣམས་ལྟ་ཐོ་ལས་སྦས་རོགས།',
+'tog-fancysig' => 'མིང་རྟགས་རྣམས་ཝེ་ཁེ་ཡི་གེར་བརྩིས་རོགས། (རང་འགུལ་གྱི་སྦྲེལ་མཐུད་མེད་པ།)',
+'tog-uselivepreview' => 'འཆར་བཞིན་པའི་སྔོན་ལྟ་སྟོན་རོགས། (ཚོད་ལྟའི་ཆེད།)',
+'tog-forceeditsummary' => 'རྩོམ་སྒྲིག་ཀྱི་བསྡུས་དོན་སྟོང་པ་ནང་འཇུག་བྱེད་སྐབས་ང་ལ་དྲན་སྐུལ་བྱེད་རོགས།',
+'tog-watchlisthideown' => 'ངའི་རྩོམ་སྒྲིག་རྣམས་ལྟ་ཞིབ་ཐོ་ལས་སྦས་རོགས།',
+'tog-watchlisthidebots' => 'རང་འགུལ་འཕྱུལ་ཆས་ཀྱི་བཟོ་འཅོས་བྱས་པ་རྣམས་ངའི་ལྟ་ཞིབ་ཐོ་ལས་སྦས་རོགས།',
+'tog-watchlisthideminor' => 'རྩོམ་སྒྲིག་ཕལ་བ་རྣམས་ལྟ་ཞིབ་ཐོ་ལས་སྦས་རོགས།',
 'tog-watchlisthideliu' => 'ཐོ་འཛུལ་སྤྱོད་མིའི་རྩོམ་སྒྲིག་རྣམས་ལྟ་ཐོ་ལས་སྦས་རོགས།',
+'tog-watchlisthideanons' => 'མིང་མེད་པའི་སྤྱོད་མིས་རྩོམ་སྒྲིག་བྱས་པ་རྣམས་ལྟ་ཐོ་ལས་སྦས་རོགས།',
+'tog-watchlisthidepatrolled' => 'མྱལ་ཞིབ་བྱས་པའི་རྩོམ་སྒྲིག་རྣམས་ལྟ་ཐོ་ལས་སྦས་རོགས།',
 'tog-ccmeonemails' => 'ངས་གཞན་ལ་བཏང་བའི་གློག་འཕྲིན་གྱི་འདྲ་བཤུས་སྐུར་རོགས།',
+'tog-diffonly' => 'ཁྱད་པར་འཚོལ་སྐབས་ཤོག་ངོས་གྱི་ནང་དོན་མ་སྟོན་རོགས།',
 'tog-showhiddencats' => 'སྦས་བའི་དཀར་ཆག་སྟོན་རོགས།',
+'tog-norollbackdiff' => 'སྒྲེ་ལོག་རྒྱག་སྐབས་ཁྱད་པར་རྣམས་སྐྱུར་རོགས།',
+'tog-useeditwarning' => 'ངས་རྩོམ་སྒྲིག་ཤོག་ངོས་གང་རུང་ཐོག་བཟོ་འཅོས་རྣམས་ཉར་གཆོག་མ་བྱས་པར་འདོར་ན་ཉེན་བརྡ་གཏོང་རོགས།',
+'tog-prefershttps' => 'རྒྱན་དུ་ནང་འཛུལ་བྱས་བའི་སྐབས་བདེ་འཇགས་འབྲེལ་ལམ་བརྒྱུད་རོགས།',
 
-'underline-always' => 'à½\93à½\98à¼\8bཡà½\84à¼\8bà¼\8d',
-'underline-never' => 'à½\93à½\98à¼\8bཡà½\84à¼\8bà½\98ིà½\93།',
-'underline-default' => 'རà¾\92ྱསà¼\8bà½\96à¼\8bའà½\91ྲེà½\93à¼\8bà½\94།',
+'underline-always' => 'à½\91ུསà¼\8bརà¾\92ྱུà½\93à¼\8bà½\91ུà¼\8b',
+'underline-never' => 'à½\82à½\8fà½\93à¼\8bà½\93སà¼\8bà½\98à¼\8bà½\96ྱེà½\91།',
+'underline-default' => 'འཤརà¼\8bà½\86སà¼\8bà½\91à½\84à¼\8bརà¾\92ྱà½\96à¼\8bལà¾\97ོà½\84སà¼\8bརྣà½\98སà¼\8bརà½\84à¼\8bསོརà¼\8bà½\96à½\9eà½\82à¼\8bརོà½\82ས།',
 
 # Font style option in Special:Preferences
-'editfont-style' => 'རྩོམ་སྒྲིག་ཡིག་གཟུགས།',
-'editfont-default' => 'རà¾\92ྱསà¼\8bà½\94à¼\8bའà½\91ྲེà½\93à¼\8bà½\94།',
+'editfont-style' => 'རྩོà½\98à¼\8bསà¾\92ྲིà½\82à¼\8bà½\96à½\9fོà¼\8bའà½\85ོསà¼\8bà½\81ུལà¼\8bà½\82ྱིà¼\8bཡིà½\82à¼\8bà½\82à½\9fུà½\82སà¼\8d',
+'editfont-default' => 'འཤརà¼\8bà½\86སà¼\8bརà½\84à¼\8bསོརà¼\8bà½\96à½\9eà½\82།',
 'editfont-monospace' => 'བར་ཚད་མཉམ་པའི་ཡིག་གཟུགས།',
 'editfont-sansserif' => 'ཡིག་གཟུགས་རྭ་མེད།',
 'editfont-serif' => 'ཡིག་གཟུགས་རྭ་ཅན།',
@@ -82,18 +95,18 @@ $messages = array(
 'thu' => 'གཟའ་ཕུར་བུ།',
 'fri' => 'གཟའ་པ་སངས།',
 'sat' => 'གཟའ་སྤེན་པ།',
-'january' => 'ཟླ་དང་པོ།',
-'february' => 'ཟླ་གཉིས་པ།',
-'march' => 'ཟླ་གསུམ་པ།',
-'april' => 'ཟླ་བཞི་བ།',
-'may_long' => 'ཟྮ་ལྔ་བ།',
-'june' => 'ཟླ་དྲུག་པ།',
-'july' => 'ཟླ་བདུན་པ།',
-'august' => 'ཟླ་བརྒྱད་པ།',
-'september' => 'ཟླ་དགུ་བ།',
-'october' => 'ཟླ་བཅུ་བ།',
-'november' => 'ཟླ་བཅུ་གཅིག་པ།',
-'december' => 'ཟླ་བཅུ་གཉིས་པ།',
+'january' => 'à½\9fླà¼\8bà½\96à¼\8bà½\91à½\84à¼\8bà½\94ོà¼\8d',
+'february' => 'à½\9fླà¼\8bà½\96à¼\8bà½\82à½\89ིསà¼\8bà½\94à¼\8d',
+'march' => 'à½\9fླà¼\8bà½\96à¼\8bà½\82སུà½\98à¼\8bà½\94à¼\8d',
+'april' => 'à½\9fླà¼\8bà½\96à¼\8bà½\96à½\9eིà¼\8bà½\96à¼\8d',
+'may_long' => 'à½\9fྮà¼\8bà½\96à¼\8bལà¾\94à¼\8bà½\96à¼\8d',
+'june' => 'à½\9fླà¼\8bà½\96à¼\8bà½\91ྲུà½\82à¼\8bà½\94à¼\8d',
+'july' => 'à½\9fླà¼\8bà½\96à¼\8bà½\96à½\91ུà½\93à¼\8bà½\94à¼\8d',
+'august' => 'à½\9fླà¼\8bà½\96à¼\8bà½\96རà¾\92ྱà½\91à¼\8bà½\94à¼\8d',
+'september' => 'à½\9fླà¼\8bà½\96à¼\8bà½\91à½\82ུà¼\8bà½\96à¼\8d',
+'october' => 'à½\9fླà¼\8bà½\96à¼\8bà½\96à½\85ུà¼\8bà½\96à¼\8d',
+'november' => 'à½\9fླà¼\8bà½\96à¼\8bà½\96à½\85ུà¼\8bà½\82à½\85ིà½\82à¼\8bà½\94à¼\8d',
+'december' => 'à½\9fླà¼\8bà½\96à¼\8bà½\96à½\85ུà¼\8bà½\82à½\89ིསà¼\8bà½\94à¼\8d',
 'january-gen' => 'ཟླ་དང་པོ།',
 'february-gen' => 'ཟླ་གཉིས་པ།',
 'march-gen' => 'ཟླ་གསུམ་པ།',
@@ -106,9 +119,9 @@ $messages = array(
 'october-gen' => 'ཟླ་བཅུ་བ།',
 'november-gen' => 'ཟླ་བཅུ་གཅིག་པ།',
 'december-gen' => 'ཟླ་བཅུ་གཉིས་པ།',
-'jan' => 'ཟླ་དང་པོ།',
-'feb' => 'ཟླ་གཉིས་པ།',
-'mar' => 'ཟླ་གསུམ་པ།',
+'jan' => 'à½\9fླà¼\8bà½\96à¼\8bà½\91à½\84à¼\8bà½\94ོà¼\8d',
+'feb' => 'à½\9fླà¼\8bà½\96à¼\8bà½\82à½\89ིསà¼\8bà½\94à¼\8d',
+'mar' => 'à½\9fླà¼\8bà½\96à¼\8bà½\82སུà½\98à¼\8bà½\94à¼\8d',
 'apr' => 'ཟླ་བཞི་བ།',
 'may' => 'ཟླ་ལྔ་བ།',
 'jun' => 'ཟླ་དྲུག་པ།',
@@ -118,24 +131,45 @@ $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' => "''སྡེ་ཚན་འདིའི་ནང་དུ་བར་སྐབས་སུ་ཤོག་ངོས་སམ་ཆ་འཕྲིན་མི་འདུག ''",
+'category-empty' => '<em> སྡེ་ཚན་འདིའི་ནང་དུ་བར་སྐབས་སུ་ཤོག་ངོས་སམ་བརྙན་རིས་མི་འདུག། </em>',
 'hidden-categories' => '|སྦས་བའི་སྡེ་ཚན།|སྦས་བའི་སྡེ་ཚན།}}{{PLURAL:$1',
 'hidden-category-category' => 'སྦས་བའི་སྡེ་ཚན།',
+'category-subcat-count' => '{{PLURAL:$2|སྡེ་ཙན་འདི་ནང་ཁྱོན་སྡོམས་པས་ $2 ནས་ གཤམ་གྱི་བྱེ་བྲག་སྡེ་ཚན།{{PLURAL:$1|subcategory|$1 subcategories}}ཙམ་འདུག།}}',
 'category-subcat-count-limited' => 'སྡེ་ཚན་འདིར་གཤམ་གྱི་བྱེ་བྲག་སྡེ་ཚན་{{PLURAL:$1|subcategory|$1 subcategories}}ཡོད།',
 'category-article-count' => '{{PLURAL:$2|སྡེ་ཚན་འདིར་གཤམ་གྱི་ཤོག་ངོས་ཁོ་ན་བསྡུས་ཡོད། |The following {{PLURAL:$1|page is|$1 pages are}} in this category, out of $2 total.}}',
+'category-article-count-limited' => 'གཤམ་གྱི་{{PLURAL:$1|ཤོག་ངོས་འདི་|$1 ཤོག་ངོས་རྣམས་}}ད་གནས་སྡེ་ཚན་འདི་ནང་ཡོད།',
+'category-file-count' => '{{PLURAL:$2|སྡེ་ཚན་འདི་ནང་གཤམ་གྱི་ཡིག་ཆ་ཁོ་ན་ཡོད།|གཤམ་གྱི་ {{PLURAL:$1|ཡིག་ཆ་འདི་|$1 ཡིག་ཆ་རྣམས་}} སྡེ་ཚན་འདི་ནང་གི་,ཁྱོན་བསྡོམས་གྱི་ $2 ནས་ཡིན།}}',
+'category-file-count-limited' => 'གཤམ་གྱི་{{PLURAL:$1|ཡིག་ཆ་འདི་|$1ཡིག་ཆ་རྣམས་}}ད་གནས་སྡེ་ཚན་འདི་ནང་ཡོད།',
+'listingcontinuesabbrev' => 'མུ་འཐུད།',
+'index-category' => 'དཀར་ཆག་ཅན་གྱི་ཤོག་ངོས།',
+'noindex-category' => 'དཀར་ཆག་མེད་པའི་ཤོག་ངོས།',
+'broken-file-category' => 'ཡིག་ཆའི་སྦྲེལ་མཐུད་འབོར་བརླག་སོང་བའི་ཤོག་ངོས།',
 
 'about' => 'སྐོར།',
 'article' => 'ནང་དོན་ཤོག་ངོས།',
 'newwindow' => '(སྒེའུ་ཁུང་གསར་བར་ཕྱེ་བ།)',
 'cancel' => 'རྩིས་མེད།',
 'moredotdotdot' => 'དེ་ལས་མང་བ་་་',
-'mypage' => 'ངའི་ཤོག་ངོས།',
+'morenotlisted' => 'ཐོ་གཞུང་འདི་ཆ་ཚང་མེད།',
+'mypage' => 'ཤོག་ངོས།',
 'mytalk' => 'གཏམ་གླེང།',
 'anontalk' => 'IP གནས་ཡུལ་འདི་ལ་གླེང་མོལ།',
 'navigation' => 'ཕྱོགས་ཁྲིད།',
@@ -143,7 +177,8 @@ $messages = array(
 
 # Cologne Blue skin
 'qbfind' => 'འཚོལ་བ།',
-'qbedit' => 'རྩོམ་སྒྲིག',
+'qbbrowse' => 'བཤེར་འཚོལ།',
+'qbedit' => 'བཟོ་འཅོས།',
 'qbpageoptions' => 'ཤོག་ངོས་འདི།',
 'qbmyoptions' => 'ངའི་ཤོག་ངོས།',
 'faq' => 'རྒྱུན་ལྡན་དྲི་བ།',
@@ -153,30 +188,32 @@ $messages = array(
 'vector-action-addsection' => 'བརྗོད་གཞི་ཁ་སྣོན།',
 'vector-action-delete' => 'སུབས།',
 'vector-action-move' => 'སྤོར་བ།',
-'vector-action-protect' => 'སྲུà½\84à¼\8bསà¾\90ྱོà½\96།',
-'vector-action-undelete' => 'à½\96སུà½\96སà¼\8bà½\94à¼\8bà½\82སོà¼\8bà½\96à¼\8d',
+'vector-action-protect' => 'འà½\82ོà½\82à¼\8bསྲུà½\84།',
+'vector-action-undelete' => 'à½\98ིà¼\8bà½\96སུà½\96སà¼\8b',
 'vector-action-unprotect' => 'སྲུང་སྐྱོབ་གློད་པ།',
 'vector-view-create' => 'གསར་བཟོ།',
 'vector-view-edit' => 'རྩོམ་སྒྲིག',
 'vector-view-history' => 'ལོ་རྒྱུས་ལ་ལྟ་བ།',
 'vector-view-view' => 'ཀློག་པ།',
 'vector-view-viewsource' => 'ཁུངས་ལ་ལྟ་བ།',
-'actions' => 'བྱ་འགུལ།',
-'namespaces' => 'མིང་འགོད་ས།',
+'actions' => 'བྱ་སྤྱོད།',
+'namespaces' => 'མིང་གནས།',
+'variants' => 'འགྱུར་ཚད།',
 
+'navigation-heading' => 'ཕྱོགས་ཁྲིད་འདེམས་བྱང།',
 'errorpagetitle' => 'ནོར་འཁྲུལ།',
 'returnto' => '$1 ལ་བསྐྱར་ལོག་བྱེད་པ།',
 'tagline' => 'ཡོང་ཁུངས་{{SITENAME}}',
-'help' => 'རོà½\82སà¼\8bརà½\98།',
+'help' => 'à½\95à½\93à¼\8bà½\82ྲོà½\82ས།',
 'search' => 'འཚོལ་བ།',
-'searchbutton' => 'འà½\9aོལà¼\8bà½\96à¼\8d',
+'searchbutton' => 'འཚོལ།',
 'go' => 'སོང་།',
 'searcharticle' => 'འཚོལ།',
 'history' => 'ཤོག་ངོས་ལོ་རྒྱུས།',
 'history_short' => 'ལོ་རྒྱུས།',
 'updatedmarker' => 'ཐེངས་སྔོན་མའི་ལྟ་ཀློག་རྗེས་ཀྱི་བཟོ་བཅོས།',
-'printableversion' => 'à½\91à½\94རà¼\8bà½\90ུà½\96à¼\8bà½\94།',
-'permalink' => 'རà¾\9fà½\82à¼\8bà½\96རà¾\9fà½\93à¼\8bà½\82ྱིà¼\8bà½\91ྲà¼\8bའà½\96ྲེལ།',
+'printableversion' => 'à½\94རà¼\8bའà½\91ེà½\96སà¼\8bརུà½\84à¼\8bà½\96འིà¼\8bའà½\82ྱུར།',
+'permalink' => 'à½\96རà¾\9fà½\93à¼\8bའà½\87à½\82སà¼\8bà½\80ྱིà¼\8bསྦྲེལà¼\8bà½\98à½\90ུà½\91།',
 'print' => 'དཔར་བ།',
 'view' => 'ལྟ་བ།',
 'edit' => 'རྩོམ་སྒྲིག',
@@ -185,22 +222,23 @@ $messages = array(
 'create-this-page' => 'ཤོག་ངོས་འདི་སྐྲུན་པ།',
 'delete' => 'སུབས།',
 'deletethispage' => 'ཤོག་ངོས་འདི་འདོར་བ།',
-'undelete_short' => '{{PLURAL:$1|one edit|$1edits}} མ་འདོར་ཞིག',
+'undeletethispage' => 'ཤོག་ངོས་འདི་མི་སུབ་རོགས།',
+'undelete_short' => '{{PLURAL:$1|བཟོ་འཅོས་གཅིག་|བཟོ་འཅོས་ $1}}མ་བསུབ་རོགས།',
 'viewdeleted_short' => '{{བསུབས་པའི་རྩོམ་སྒྲིག PLURAL:$1|བསུབས་པའི་རྩོམ་སྒྲིག $1}}ལ་ལྟ་བ།',
-'protect' => 'སྲུà½\84à¼\8bà½\96།',
+'protect' => 'འà½\82ོà½\82à¼\8bསྲུà½\84།',
 'protect_change' => 'སྒྱུར་བཅོས།',
 'protectthispage' => 'ཤོག་ངོས་འདི་སྲུང་བ།',
 'unprotect' => 'སྲུང་སྐྱོབ་བཅོས་བསྒྱུར།',
 'unprotectthispage' => 'ངོ་ཤོག་འདིའི་སྲུང་སྐྱོབ་བཅོས་བསྒྱུར།',
 'newpage' => 'ཤོག་ངོས་གསར་བ།',
 'talkpage' => 'ཤོག་ངོས་འདིར་གྲོས་སྡུར།',
-'talkpagelinktext' => 'à½\82ླེà½\84à¼\8bà½\98ོལ།',
+'talkpagelinktext' => 'à½\82à½\8fà½\98à¼\8bà½\82ླེà½\84།',
 'specialpage' => 'དམིགས་གསལ་ཤོག་ངོས།',
 'personaltools' => 'སྒེར་ཀྱི་ལག་ཆ།',
 'postcomment' => 'སྡེ་ཚན་གསར་བ།',
 'articlepage' => 'ནང་དོན་ཤོག་ངོས་ལ་ལྟ་བ།',
 'talk' => 'གྲོས་བསྡུར།',
-'views' => 'à½\98à½\90ོà½\84à¼\8bརིས།',
+'views' => 'ལà¾\9fà¼\8bà½\9eིà½\96།',
 'toolbox' => 'ལག་ཆའི་སྒམ།',
 'userpage' => 'སྤྱོད་མིའི་ཤོག་ངོས་ལ་ལྟ་བ།',
 'projectpage' => 'ལས་འཆར་ཤོག་ངོས་ལ་ལྟ་བ།',
@@ -210,61 +248,82 @@ $messages = array(
 'viewhelppage' => 'རོགས་རམ་ཤོག་ངོས་ལ་ལྟ་བ།',
 'categorypage' => 'སྡེ་ཚན་ཤོག་ངོས་སྟོན་ཅིག',
 'viewtalkpage' => 'གྲོས་མོལ་ལ་ལྟ་བ།',
-'otherlanguages' => 'སྐད་རིགས་གཞན།',
+'otherlanguages' => 'སà¾\90à½\91à¼\8bརིà½\82སà¼\8bà½\82à½\9eà½\93à¼\8bà½\90ོà½\82à¼\8d',
 'redirectedfrom' => '$1 ནས་ཁ་ཕྱོགས་བསྐྱར་དུ་བཟོས་པ།',
 'redirectpagesub' => 'རིམ་འགྲེམ་ཤོག་ངོས།',
-'lastmodifiedat' => 'དྲ་ངོས་འདི་ཡི་བཟོ་བཅོས་མཐའ་མ་$1 $2 ལ་རེད།',
+'lastmodifiedat' => 'ཤོག་ངོས་འདི་ཡི་བཟོ་བཅོས་མཐའ་མ་$1 ཀྱི་ $2 ལ་རེད།',
+'viewcount' => 'ཤོགངོས་འདི་{{PLURAL:$1|ཐེངས་གཅིག་|ཐེངས་ $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).
-'aboutsite' => '{{SITENAME}}à½\84ེà½\91à¼\8bà½\80ྱི་སྐོར།',
-'aboutpage' => 'Project: ཡི་སྐོར།',
-'copyright' => 'à½\91ྲà¼\8bà½\96འིà¼\8bà½\93à½\84à¼\8bà½\91ོà½\93à¼\8b$1སྟེང་དུ་ཡོད།',
+'aboutsite' => '{{SITENAME}}ཡི་སྐོར།',
+'aboutpage' => 'Project:སྐོར།',
+'copyright' => 'à½\91ེà¼\8bà½\98ིà½\93à¼\8bà½\82ྱིà¼\8bà½\98à½\86à½\93à¼\8bའà½\82ྲེལà¼\8bཡོà½\91à¼\8bà½\93à¼\8bà½\98à¼\8bà½\82à½\8fོà½\82སà¼\8d à½\91ྲà¼\8bà½\96འིà¼\8bà½\93à½\84à¼\8bà½\91ོà½\93à¼\8b $1 སྟེང་དུ་ཡོད།',
 'copyrightpage' => '{{ns:project}}:པར་དབང་།',
-'currentevents' => 'à½\91à¼\8bལà¾\9fའིà¼\8bà½\96ྱà¼\8bà½\96།',
-'currentevents-url' => 'Project:à½\91à¼\8bལà¾\9fའིà¼\8bà½\96ྱà¼\8bà½\96།',
-'disclaimers' => 'à½\91à½\82à½\82à¼\8bà½\96ྱ།',
-'disclaimerpage' => 'Project:སྤྱིའིà¼\8bà½\91à½\82à½\82à¼\8bà½\96ྱ།',
+'currentevents' => 'à½\91à¼\8bལà¾\9fའིà¼\8bà½\91ོà½\93à¼\8bà½\82à½\93à½\91།',
+'currentevents-url' => 'Project:à½\91à¼\8bལà¾\9fའིà¼\8bà½\91ོà½\93à¼\8bà½\82à½\93à½\91།',
+'disclaimers' => 'à½\96à½\91à½\82à¼\8bསྤྲོà½\91à¼\8bའà½\91ོརà¼\8bà½\98à½\81à½\93།',
+'disclaimerpage' => 'Project:ཡོà½\84སà¼\8bà½\81ྱà½\96à¼\8bà½\80ྱིà¼\8bà½\96à½\91à½\82à¼\8bསྤྲོà½\91à¼\8bà½\81ེà¼\8bà½\91à½\96à½\84à¼\8bརྩོà½\91à¼\8bལེà½\93།',
 'edithelp' => 'རྩོམ་སྒྲིག་རོགས་རམ།',
-'helppage' => 'Help:ནང་དོན་',
-'mainpage' => 'གཙོ་ངོས།',
-'mainpage-description' => 'གཙོ་ངོས།',
+'mainpage' => 'གཙོ་གནད་ཤོག་ངོས།',
+'mainpage-description' => 'གཙོ་གནད་ཤོག་ངོས།',
 'policy-url' => 'Project: སྒྲིག་གཞི།',
-'portal' => 'ཁོངས་མི་འདུ་ར།',
-'privacy' => 'སྒེར་ཁྲིམས།',
-'privacypage' => 'Project: སྒེར་ཁྲིམས།',
+'portal' => 'ཁོངས་མི་གཞུང་སྒོ།',
+'portal-url' => 'Project:ཁོངས་མི་འདུ་རའི་གཞུང་སྒོ་',
+'privacy' => 'གསང་དོན་གན་རྒྱ།',
+'privacypage' => 'Project: གསང་དོན་གན་རྒྱ།',
 
 'badaccess' => 'ཆོག་ཆན་ལ་ནོར་འཁྲུལ།',
+'badaccess-group0' => 'ཁྱེད་ཀྱི་རེ་ཞུ་བྱས་པའི་བྱ་བ་འདི་ཁྱེད་ཉིད་ནས་ལག་ལེན་བསྟར་མི་ཆོག།',
+'badaccess-groups' => 'ཁྱེད་ཀྱི་རེ་ཞུ་བྱས་པའི་བྱ་བ་འདི་ {{PLURAL:$2|ཚོགས་པ་|ཚོགས་པ་གཅིག་}}: $1 གྱི་སྤྱིད་མི་ཚད་གཞི་ངེས་ཅན་རྣམས་ལ་ཡོད་',
+
+'versionrequired' => 'ཝེ་ཁེ་བརྒྱུད་ལམ་གྱི་འགྱུར།  MediaWiki Version $1 དེ་དགོས་འདུག།',
+'versionrequiredtext' => 'ཤོག་ངོས་འདི་བེད་སྤྱོད་པར་ཝེ་ཁེ་བརྒྱུད་ལམ་གྱི་འགྱུར་ $1 འདི་དགོས། [[Special:Version|version page]] འདིར་གཟིགས་རོགས།',
 
 'ok' => 'འགྲིག',
-'retrievedfrom' => '"$1"ལསà¼\8bརà¾\99ེà½\91à¼\8bà½\94།',
+'retrievedfrom' => '"$1"ལསà¼\8bསླརà¼\8bརà¾\99ེà½\91à¼\8bསོà½\84།',
 'youhavenewmessages' => 'ཁྱེད་ལ་འཕྲིན་གསར་$1($2)ཡོད།',
+'youhavenewmessagesmanyusers' => 'ཁྱེད་ལ་ $1 སྤྱོད་མི་མང་པོ་ཞིག་ནས་ ($2)འདུག།',
+'newmessageslinkplural' => '{{PLURAL:$1|འཕྲིན་ཐུང་གསར་པ་ཞིག་|999= འཕྲིན་ཐུང་གསར་པ།}}',
+'newmessagesdifflinkplural' => 'མཐའ་མའི་ {{PLURAL:$1|འགྱུར་བཅོས།|999=འགྱུར་བཅོས།}}',
 'youhavenewmessagesmulti' => 'ཁྱེད་ལ་ $1 སྟེང་དུ་འཕྲིན་ཡིག་འདུག',
-'editsection' => 'རྩོམ་སྒྲིག',
+'editsection' => 'རྩོམ་སྒྲིག',
 'editold' => 'རྩོམ་སྒྲིག',
 'viewsourceold' => 'ཁོངས་ལ་ལྟ་བ།',
 'editlink' => 'བཟོ་བཅོས།',
 'viewsourcelink' => 'ཁོངས་ལ་ལྟ་བ།',
-'editsectionhint' => 'རྩོམ་སྒྲིག་སྡེ་ཚན།$1',
-'toc' => 'à½\9fུརà¼\8bà½\98à½\86ན།',
+'editsectionhint' => 'རྩོམ་སྒྲིག་སྡེ་ཚན།$1',
+'toc' => 'à½\93à½\84à¼\8bà½\91ོན།',
 'showtoc' => 'སྟོན།',
 'hidetoc' => 'སྦས།',
 'collapsible-collapse' => 'རྡིབ་སྐྱོན།',
-'viewdeleted' => ' $1 ལ་ལྟའམ།',
+'collapsible-expand' => 'རྒྱ་སྐྱེད།',
+'thisisdeleted' => '$1 ལ་ལྟ་བའམ་རང་ལོགས་བྱེད་རོགས།',
+'viewdeleted' => ' $1 ལ་ལྟ་དགོས་སམ།',
+'restorelink' => '{{PLURAL:$1|བསུབས་པའི་རྩོམ་སྒྲིག|$1 བསུབས་པའི་རྩོམ་སྒྲིག}}',
+'feedlinks' => 'འདྲན་ཆས། :',
+'feed-invalid' => 'རྒྱུན་མངགས་ཡ་ལན་ཕན་མེད་རེད་འདུག།',
 'site-rss-feed' => '$1 ཡི་RSS འབྱུང་ཁུངས།',
-'site-atom-feed' => '$1 ཡི་Atom འབྱུང་ཁུངས།',
+'site-atom-feed' => '$1 ཡི་ཆ་ཤས་ཡ་ལན།',
 'page-rss-feed' => '$1 ཡི་RSS འབྱུང་ཁུངས།',
 'page-atom-feed' => '$1 ཡི་Atom འབྱུང་ཁུངས།',
-'red-link-title' => '$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' => 'རྩོà½\98à¼\8bཡིà½\82',
+'nstab-main' => 'ཤོà½\82à¼\8bà½\84ོསà¼\8d',
 'nstab-user' => 'སྤྱོད་མིའི་ཤོག་ངོས།',
-'nstab-special' => 'དམིཊ་གསལ་ཤོག་ངོས།',
+'nstab-media' => 'འཕྲིན་ལམ་ཤོག་ངོས།',
+'nstab-special' => 'ཆེད་ལས་ཤོག་ངོས།',
 'nstab-project' => 'ལས་འཆར་ཤོག་ངོས།',
 'nstab-image' => 'ཡིག་ཆ།',
 'nstab-mediawiki' => 'སྐད་ཆ།',
@@ -274,16 +333,45 @@ $messages = array(
 
 # Main script and global functions
 'nosuchaction' => 'བྱ་འགུལ་འདི་འདྲ་མེད།',
+'nosuchactiontext' => 'དྲ་ཚིགས་གཞིར་གཟུངས་ཀྱི་བྱ་བ་ཕན་མེད་རེད་འདུག།
+ཁྱེད་ཀྱི་དྲ་ཚིགས་ཁ་བྱང་འབྲི་སྟངས་ནོར་བ་ཡིན་སྲིད། ཡང་ན་དྲ་ཚིགས་ཁ་བྱང་ནོར་བ་ཞིག་ལ་སྦྲེལ་མཐུད་བྱེད་འདུག།
+{{SITENAME}} འདིར་གཉེན་ཆས་ཀྱི་ལས་རྩོལ་ཡིན་སྲིད།',
 'nosuchspecialpage' => 'དམིགས་བསལ་ཤོག་ངོས་འདི་འདྲ་ཞིག་མི་འདུག',
+'nospecialpagetext' => '<strong>ཁྱེད་ཀྱི་ལུགས་མཐུན་མིན་པའི་དམིགས་བསལ་ཤོག་ངོས་ཞིག་ལ་རེ་ཞུ་བྱས་འདུག།</strong>
+ལུགས་མཐུན་གྱི་དམིགས་བསལ་ཤོག་ངོས་རྣམས་འདིར་གཟིགས་རོགས།
+[[Special:SpecialPages|{{int:specialpages}}]]',
 
 # General errors
 'error' => 'ནོར་འཁྲུལ།',
+'databaseerror' => 'རྨང་གཞིའི་གྲངས་མཛོད་ལ་ནོར་འཁྲུལ་འདུག།',
+'databaseerror-text' => 'རྨང་གཞིའི་གྲངས་མཛོད་ལ་ནོར་འཁྲུལ་འདོན་སོང།
+འདི་ཕལ་ཆེར་གཉེན་ཆས་ཀྱི་ལས་རྩོལ་ཡིན་སྲིད།',
+'databaseerror-textcl' => 'རྨང་གཞིའི་གྲངས་མཛོད་ལ་ནོར་འཁྲུལ་འདོན་སོང།',
+'databaseerror-query' => 'འཚོལ་འདྲི། $1',
+'databaseerror-function' => 'རྩོལ་ནུས། $1',
+'databaseerror-error' => 'ནོར་སྐྱོན། $1',
+'laggedslavemode' => '<strong>ཉེན་བརྡ།</strong> ཤོག་ངོས་འདི་ཐོག་ཉེ་ཆར་གྱི་དུས་བསྟུན་ཁ་གསབ་བྱས་མེད།',
 'readonly' => 'གཞི་གྲངས་མཛོད་ཟྭ་བརྒྱབ་པ།',
+'enterlockreason' => 'བཀག་སྡོམ་བྱས་དགོས་རྐྱེན་བཀོད་རོགས དེ་མིན་བཀག་སྡོམ་འདི་དུས་ཚོད་ནམ་ཞིག་ལ་བཀྲོལ་རྒྱུ་ཡིན་མིན་སོགས་བཀོད་རོགས།',
+'readonlytext' => 'རྨང་གཞི་གྲངས་མཛོད་འདི་གནས་སྐབས་བཀག་སྡོམ་བྱས་འདུག། ཕལ་ཆེར་རྨང་གཞི་གྲངས་མཛོད་འདི་ཉར་འཚག་བྱད་བཞིན་འདུག། 
+$1 རྒྱུ་རྐྱེན་འདི་འོག་དོ་དམ་པས་བཀག་སྡོམ་བྱས་འདུག།',
+'missing-article' => 'གཞི་གྲངས་མཛོད་ནང་ཤོག་ངོས་ཀྱི་ཡི་གེ་བཙལ་ཐུབ་ཀྱི་མི་འདུག་པས། "$1" $2 
+ཕལ་ཆེར་འདི་གཤམ་ཀྱི་འགོག་རྐྱེན་ལོ་རྒྱུས་སུབ་པ་འམ་དུས་ཡོལ་ཀྱི་ཁྱད་པར་སོགས་ཀྱི་རྒྱུ་རྐྱེན་ཡིན།
+གལ་སྲིད་དེ་ལྟར་མིན་ཚེ། ཕལ་ཆེར་ཁྱེད་ཀྱི་ནོར་སྐྱོན་འཙལ་རྙེད་བྱང་བས།  [[Special:ListUsers/sysop|administrator]], དྲ་རྒྱའི་ས་ཚིགས་འདི་ཐོག་ཞུ་ཡིག་འབུལ་གནང་ཡོང་བ་མཁྱེན།',
 'internalerror' => 'ནང་ལོག་ནོར་སྐྱོན།',
 'internalerror_info' => 'ནང་ལོགས་ནོར་སྐྱོན། $1',
 'filecopyerror' => '"$1" "$2"ལ་འདྲ་བཤུ་བྱེད་མ་ཐུབ།',
+'filerenameerror' => '"$1" ནས་ "$2" བར་མིང་བརྗེ་སྒྱུར་ཐུབ་མ་སོང།',
 'filedeleteerror' => '"$1"ཟེར་བ་སུབ་མ་ཐུབ།',
-'filenotfound' => '"$1"ཟེར་བའི་ཡིག་ཆ་མ་རྙེད་པ།',
+'directorycreateerror' => 'དཀར་ཆག་ "$1" འདི་བཟོ་ཐུབ་མ་སོང།',
+'filenotfound' => '"$1" ཟེར་བའི་ཡིག་ཆ་རྙེད་ཀྱི་མིན་འདུག།',
+'fileexistserror' => 'ཡིག་ཆ་ "$1" འདི་འབྲི་ཐུབ་ཀྱིན་མི་འདུག། ཡིག་ཆ་འདི་བཞིན་འདི་སྔ་ནས་འདུག།',
+'unexpected' => 'ཡོང་མི་སྲིད་པའི་ཁྱད་ཆོས། : "$1"="$2"',
+'formerror' => 'ནོར་འཁྲུལ།:འགེངས་ཤོག་འབུལ་ཐུབ་མ་སོང།',
+'badarticleerror' => 'ཤོག་ངོས་འདི་ཐོག་ལག་བསྟར་བྱེད་ཐུབ་ཀྱི་མ་རེད།',
+'cannotdelete' => 'ཤོག་ངོས་འམ་ཡིག་ཆ་ "$1" འདི་སུབས་ཐུབ་མ་ཀྱི་མིན་འདུག། ཕལ་ཆེར་གཞན་ཞིག་གི་སུབས་ཚར་འདུག།',
+'cannotdelete-title' => 'ཤོག་ངོས་ "$1" འདི་སུབས་ཐུབ་མ་སོང།',
+'delete-hook-aborted' => 'འབྲི་སུབས་འདི་བཀག་འགོག་བྱས་སོང། རྒྱུ་རྐྱེན་བྲིས་མིན་འདུག།',
 'badtitle' => 'ཁ་བྱང་སྐྱོན་ཅན།',
 'viewsource' => 'ཁོངས་ལ་ལྟ་བ།',
 'actionthrottled' => 'བྱ་འགུལ་ཁེགས་སོང་།',
@@ -296,7 +384,7 @@ $messages = array(
 # Login and logout pages
 'yourname' => 'སྤྱོད་མིང་།',
 'yourpassword' => 'ལམ་ཡིག',
-'yourpasswordagain' => 'ལà½\98à¼\8bཡིà½\82à¼\8bསà¾\90ྱརà¼\8bà½\82à½\8fà½\82སà¼\8bà½\96ྱོས།',
+'yourpasswordagain' => 'à½\82སà½\84à¼\8bà½\96འིà¼\8bཨà½\84à¼\8bà½\84ོསà¼\8bའà½\9bིà½\93à¼\8bà½\82à½\93à½\84à¼\8bརོà½\82ས།',
 'remembermypassword' => 'ངའི་ལམ་ཡིག་འདིར་(མང་མཐའ་ཉིན $1 {{PLURAL:$1}}) དྲན་པར་བྱས།',
 'login' => 'ནང་འཛུལ།',
 'nav-login-createaccount' => 'ནང་འཛུལ། / ཐོ་འགོད།',
@@ -307,11 +395,13 @@ $messages = array(
 'notloggedin' => 'ནང་འཛུལ་བྱས་མེད།',
 'nologinlink' => 'ཐོ་ཞིག་འགོད་པ།',
 'createaccount' => 'ཐོ་འགོད།',
+'gotaccount' => '$1 སྔོན་ཚུད་ནས་རྩིས་ཁྲ་ཡོད་དམ།',
 'gotaccountlink' => 'ནང་འཛུལ།',
-'createaccountmail' => 'གློག་འཕྲིན་སྤྱད་དེ།',
+'userlogin-resetlink' => 'ཁྱེད་ཀྱི་ནང་འཛུལ་ཀྱི་ཞིབ་ཕྲའི་གནད་དོན་བརྗེད་འདུག་གམ།',
+'createaccountmail' => 'སྐབས་འཕྲལ་རང་མོས་གྱི་གསང་བའི་ཨང་གྲངས་བེད་སྤྱད་པ་དང། ལྷན་དུ་གློག་འཕྲིན་ཁ་བྱང་ངེས་གཏན་ཞིག་ལ་བསྐུར་རོགས།',
 'createaccountreason' => 'རྒྱུ་མཚན།',
 'badretype' => 'ལམ་ཡིག་གང་བཅུག་པ་ཐོ་ཐུག་མ་བྱུང་།',
-'userexists' => 'à½\98ིà½\84à¼\8bའà½\91ིà¼\8bà½\96ེà½\91à¼\8bསྤྱོà½\91à¼\8bà½\96ྱསà¼\8bà½\9fིà½\93à¼\8bà½\94སà¼\8bà½\98ིà½\84à¼\8bà½\82à½\9eà½\93à¼\8bà½\9eིà½\82à¼\8bà½\82à½\91à½\98་རོགས།',
+'userexists' => 'སྤྱོà½\91à¼\8bà½\98ིà½\84à¼\8bའà½\91ིà¼\8bསà¾\94ོà½\93à¼\8bà½\9aུà½\91à¼\8bà½\93སà¼\8bà½\96ེà½\91à¼\8bསྤྱོà½\91à¼\8bà½\96ྱསà¼\8bà½\9fིà½\93à¼\8bའà½\91ུà½\82à¼\8bà½\94སà¼\8d à½\98ིà½\84à¼\8bà½\82à½\9eà½\93à¼\8bà½\9eིà½\82à¼\8bà½\82à½\91à½\98à¼\8bà½\82à½\93à½\84་རོགས།',
 'loginerror' => 'ནང་འཛུལ་ནོར་སྐྱོན།',
 'loginsuccesstitle' => 'ནང་འཛུལ་བདེ་བར་གྲུབ།',
 'nosuchusershort' => 'སྤྱོད་མི་"$1"ཟེར་བ་མི་འདུག དག་ཆར་བསྐྱར་ཞིབ་བྱོས།',
@@ -319,17 +409,18 @@ $messages = array(
 'login-userblocked' => 'སྤྱོད་མི་འདི་བཀག་འགོག་བྱས་པས་ནང་འཛུལ་གྱི་ཆོག་མཆན་མེད།',
 'wrongpassword' => 'ལམ་ཡིག་ནོར་འདུག བསྐྱར་དུ་ཚོད་ལྟ་བྱོས།',
 'wrongpasswordempty' => 'ལམ་ཡིག་སྟོང་པ་རེད། བསྐྱར་དུ་ཚོད་ལྟ་བྱོས།',
-'mailmypassword' => 'à½\82ློà½\82à¼\8bའà½\95ྲིà½\93à¼\8bལà½\98à¼\8bཡིà½\82à¼\8bà½\82སརà¼\8bà½\96།',
+'mailmypassword' => 'à½\82སà½\84à¼\8bà½\96འིà¼\8bཨà½\84à¼\8bà½\82ྲà½\84སà¼\8bà½\96སà¾\90ྱརà¼\8bà½\96à½\9fོà¼\8bà½\82à½\93à½\84à¼\8bརོà½\82ས།',
 'loginlanguagelabel' => 'སྐད་རིགས། $1',
+'pt-login-button' => 'ནང་འཛུལ།',
 
 # Change password dialog
 'changepassword' => 'ལམ་ཡིག་བརྗེ་བ།',
-'resetpass_announce' => 'à½\81ྱེà½\91à¼\8bà½\80ྱིསà¼\8bà½\84à¼\8bà½\9aོསà¼\8bà½\96à½\8fà½\84à¼\8bà½\96འིà¼\8bà½\82à½\93སà¼\8bསà¾\90à½\96སà¼\8bལà½\98à¼\8bཡིà½\82à¼\8bལà¼\8bà½\96རà¾\9fེà½\93à¼\8bà½\93སà¼\8bà½\93à½\84à¼\8bའà½\9bུལà¼\8bà½\96ྱསà¼\8bའà½\91ུà½\82 à½\93à½\84à¼\8bའà½\9bུལà¼\8bà½\86à¼\8bà½\9aà½\84à¼\8bà½\96à¼\8bà½\96ྱེà½\91à¼\8bà½\94རà¼\8bའà½\91ིརà¼\8bà½\84ེསà¼\8bà½\94རà¼\8bà½\91ུà¼\8bལà½\98à¼\8bཡིà½\82à¼\8bà½\82སརà¼\8bà½\96à¼\8bའà½\87ུà½\82à¼\8bà½\91à½\82ོས།',
+'resetpass_announce' => 'à½\93à½\84à¼\8bའà½\9bུལà¼\8bà½\96ྱེà½\91à¼\8bà½\94རà¼\8d à½\81ྱེà½\91à¼\8bà½\80ྱིསà¼\8bà½\82སà½\84à¼\8bà½\96འིà¼\8bཨà½\84à¼\8bà½\82སརà¼\8bà½\94à¼\8bà½\9eིà½\82à¼\8bའà½\87ུà½\82à¼\8bརོà½\82ས།',
 'oldpassword' => 'ལམ་ཡིག་རྙིང་བ།',
 'newpassword' => 'ལམ་ཡིག་གསར་བ།',
 'retypenew' => 'ལམ་ཡིག་གསར་བ་བསྐྱར་འཇུག་བྱོས།',
 'resetpass_submit' => 'ལམ་ཡིག་བསྒྲིགས་ནས་ནང་འཛུལ་བྱེད་པ།',
-'changepassword-success' => 'ལà½\98à¼\8bཡིà½\82à¼\8bà½\96à½\91ེà¼\8bལེà½\82སà¼\8bà½\84à½\84à¼\8bà½\96རà¾\97ེསà¼\8bà½\9fིà½\93à¼\8d à½\91à¼\8bà½\93ིà¼\8bà½\93à½\84à¼\8bའà½\9bུལà¼\8bà½\96ྱེà½\91à¼\8bà½\96à½\9eིà½\93à¼\8bà½\94à¼\8bà¼\8bà¼\8b',
+'changepassword-success' => 'à½\81ྱེà½\91à¼\8bà½\80ྱིà¼\8bà½\82སà½\84à¼\8bà½\96འིà¼\8bཨà½\84à¼\8bà½\96རà¾\97ེà¼\8bའà½\82ྱུརà¼\8bལེà½\82སà¼\8bà½\82ྲུà½\96à¼\8bà½\96ྱུà½\84à¼\8bསོà½\84à¼\8d',
 'resetpass_forbidden' => 'ལམ་ཡིག་བརྗེ་མི་ཐུབ།',
 'resetpass-submit-loggedin' => 'ལམ་ཡིག་བརྗེ་བ།',
 'resetpass-submit-cancel' => 'རྩིས་མེད་ཐོངས།',
@@ -360,6 +451,7 @@ $messages = array(
 'headline_tip' => 'རིམ་པ། ༢ འགོ་ཕྲེང་།',
 'nowiki_sample' => 'རྣམ་བཞག་མེད་པའི་ཡི་གེ་འདྲེན་པ།',
 'nowiki_tip' => 'ཝེ་ཁེའི་རྣམ་གཞག་དོར་བ།',
+'image_tip' => 'བཙུད་འཇུག་ཡིག་ཆ།',
 'media_tip' => 'ཡིག་ཆ་སྦྲེལ་མཐུད།',
 'sig_tip' => 'མིང་རྟགས་མཉམ་དུ་ཟླ་ཚེས་ཐེལ་ཙེ།',
 'hr_tip' => 'ཐད་ཐིག ༼ཆུད་ཟོས་མེད་པར།༽',
@@ -386,6 +478,10 @@ $messages = array(
 'loginreqpagetext' => 'ཤོག་ངོས་གཞན་རྣམས་ལྟ་བར་ངེས་པར་དུ་$1བྱ་དགོས།',
 'accmailtitle' => 'ལམ་ཡིག་བཏང་ཟིན།',
 'newarticle' => '(གསར་བ)',
+'noarticletext' => 'ཤོག་ངོས་འདི་ནང་ད་གནས་ཡིག་གེ་མིན་འདུག།
+ཁྱེད་ཀྱིས་ཤོགངོས་གཞན་ཁག་ནང་ [[Special:Search/{{PAGENAME}}|ཤོག་ངོས་འདིའི་འགོ་བརྗོད་འཚོལ་རོགས།]] <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} དེ་དང་འབྲེལ་བའི་དོ་ཟླའི་ཐོར་འཚོལ་རོགས།],',
+'noarticletext-nopermission' => 'ཤོག་ངོས་འདི་ནང་ད་གནས་ཡི་གེ་མིན་འདུག།
+ཁྱེད་ཀྱིས་ཤོགངོས་གཞན་ཁག་ནང་ [[Special:Search/{{PAGENAME}}|ཤོག་ངོས་འདིའི་འགོ་བརྗོད་འཚོལ་རོགས།]] དེ་མིན་ <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} དེ་དང་འབྲེལ་བའི་དོ་ཟླའི་ཐོར་འཚོལ་རོགས།]</span> ཡིན་ནའང་ཁྱེད་ལ་ཤོག་ངོས་འདི་གསར་སྐྲུན་བྱེད་པའི་ཆོག་མཆན་མིན་འདུག།',
 'previewnote' => '"འདི་ནི་སྔོན་ལྟ་ཙམ་ཡིན་པ་ཡིད་ལ་འཇགས་རོགས། "ཁྱེད་ཀྱི་བཟོ་བཅོས་ད་དུང་ཉར་ཚགས་བྱས་མི་འདུག',
 'editing' => '$1རྩོམ་སྒྲིག་བྱེད་བཞིན་པ།',
 'editingsection' => ' $1 (སྡེ་ཚན) ལ་རྩོམ་སྒྲིག་བྱེད་བཞིན་པ།',
@@ -394,13 +490,21 @@ $messages = array(
 'templatesused' => 'ཤོག་ངོས་འདིར་སྤྱད་པའི་ {{PLURAL:$1|དཔེ་པང་།}}',
 'template-protected' => 'སྲུང་སྐྱོབ་འོག་ཡོད་པ།',
 'nocreate-loggedin' => 'ཤོག་ངོས་གསར་བཟོའི་ཆོག་མཆན་མི་འདུག',
+'permissionserrorstext-withaction' => 'གཤམ་ཀྱི་ {{PLURAL:$1|རྒྱུ་རྐྱེན་}}འོག་ཁྱེད་ལ་ $2 ཆོག་མཆན་མིན་འདུག་པས།',
 'recreate-moveddeleted-warn' => "'''ཉེན་བརྡ་:རང་གིས་སུབ་ཚར་བའི་ཤོག་ལེ་ཞིག་བསྐྱར་བཟོ་བྱེད་ཀྱི་འདུག་ '''
 ཁྱེད་རང་གལ་སྲིད་མུ་མཐུད་ཤོག་ལེ་འདི་བཟོ་ཅོས་བྱེད་འདོད་ན་སྟབས་བདེ་ཞིག་ལ་ང་ཚོས་སུབ་བཟིན་པའི་ཤོག་ལེ་འདིར་ཉར་ཡོད།",
 
+# Parser/template warnings
+'post-expand-template-inclusion-warning' => '<strong> ཉེན་བརྡ།</strong> དཔེ་དཔང་གི་ཚད་གཞི་ཧ་ཅང་ཆེན་པོ་འདུག། དཔེ་དཔང་ཁ་ཅིག་ཚུད་ཐུབ་ཀྱི་མ་རེད།',
+'post-expand-template-inclusion-category' => 'དཔེ་དཔང་གི་ཚད་གཞི་བརྒལ་བའི་ཤོག་ངོས།',
+
 # History pages
 'viewpagelogs' => 'ཤོག་ངོས་འདིའི་ཉིན་ཐོ་ལ་ལྟ་བ།',
+'currentrev-asof' => 'མཐའ་འཇུག་ཀྱི་ཞིབ་བཤེར། $1',
 'revisionasof' => '$1 ལ་བཅོས་པ།',
 'previousrevision' => ' ← བཟོ་བཅོས་སྔ་མ།',
+'nextrevision' => 'ཞིབ་བཤེར་གསར་བ་ཁག།',
+'currentrevisionlink' => 'ཉེ་བའི་ཆར་གྱི་ཞིབ་བཤེར།',
 'cur' => 'ད་ལྟ།',
 'next' => 'རྗེས་མ།',
 'last' => 'མཐའ་མ།',
@@ -417,8 +521,12 @@ $messages = array(
 'rev-delundel' => 'སྟོན། / སྦས།',
 'rev-showdeleted' => 'སྟོན།',
 'revdelete-show-file-submit' => 'ཡིན།',
+'revdelete-text-text' => 'སུབས་ཚར་པའི་ལེགས་བཅོས་རྣམས་ད་དུང་ཡང་ཤོག་ངོས་གི་ལོ་རྒྱུས་ནང་འཆར་འདུག། ཡིན་ན་འང་ནང་དོན་ཆ་ཤས་རྣམས་ལ་ཚོགས་མི་གཞན་གྱི་མཐོང་མི་ཐུབ།',
+'revdelete-text-file' => 'སུབས་ཚར་པའི་ཡིག་ཆའི་འགྱུར་འདི་ད་དུང་ཡང་ཡིག་ཆའི་ལོ་རྒྱུས་ཐོག་གསལ་བཞིན་འདུག། ཡིན་ན་འང་འདི་ནང་དོན་རྣམས་སྤྱོད་མི་གཞན་རྣམས་ཀྱི་མཐོང་མི་ཐུབ།',
+'logdelete-text' => 'སུབས་ཚར་པའི་ཐོ་འགོད་རྣམས་ད་དུང་ཡང་ཐོ་འགོད་རེའུ་མིག་ནང་འཆར་འདུག། ཡིན་ན་འང་ནང་དོན་ཆ་ཤས་རྣམས་ལ་ཚོགས་མི་གཞན་གྱི་འཛུལ་ཞུགས་བྱེད་མི་ཐུབ།',
+'revdelete-text-others' => 'ནང་དོན་ལ་ཁ་སྣོན་གྱི་བཀག་སྡོམས་བྱས་ན་མ་གཏོགས།{{SITENAME}}ནང་ཡོད་པའི་དོ་དམ་པ་གཞན་རྣམས་ནས་སྦས་སྐུང་བྱས་པའི་ནང་དོན་ལ་ད་དུང་ཡང་འཛུལ་ཞུགས་བྱེད་ལ། མ་ཟད་བསྐྱར་དུ་མི་བསུབས་པ་འཟོ་ཐུབ།',
 'revdelete-radio-same' => 'བཟོ་བཅོས་མ་བྱེད།',
-'revdelete-radio-set' => 'ཡིà½\93།',
+'revdelete-radio-set' => 'à½\98à½\84ོà½\93à¼\8bà½\98ེà½\91à¼\8bà½\80ྱི།',
 'revdel-restore' => 'བཅོས་སུ་རུང་བ།',
 'pagehist' => 'ཤོག་ངོས་ལོ་རྒྱུས།',
 'revdelete-reasonotherlist' => 'རྒྱུ་མཚན་གཞན་པ།',
@@ -432,6 +540,7 @@ $messages = array(
 
 # Diffs
 'lineno' => 'ཐིག་ཕྲེང་$1:',
+'compareselectedversions' => 'འདེམས་བཞིན་པའི་བཟོ་འཅོས་དཔར་གཞིའི་ཁྱད་པར་སྟོན།',
 'editundo' => 'ཕྱིར་འཐེན།',
 
 # Search results
@@ -440,25 +549,32 @@ $messages = array(
 'notextmatches' => 'ཤོག་ངོས་ཡིག་འབྲུ་མཚུངས་པ་མི་འདུག',
 'prevn' => 'སྔོན་མ་{{PLURAL:$1|$1}}',
 'nextn' => 'རྗེས་མ་{{PLURAL:$1|$1}}',
+'prevn-title' => 'དེ་སྔོན་ $1{{PLURAL:$1|གྲུབ་འབྲས།}}',
+'nextn-title' => 'དེ་རྗེས་ཀྱི་ $1{{PLURAL:$1|གྲུབ་འབྲས།}}',
 'shown-title' => 'མིག་སྔར་སྟོན་པ། $1{{PLURAL:$1|གྲུབ་འབྲས།}}ཤོག་ངོས་ལྟར།',
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3)ལ་ལྟ་བ།',
-'searchmenu-new' => 'ལྦེ་ཁེ་སྟེང་ལ་ཤོག་ལེ་ [[:$1]]བཟོས།',
+'searchmenu-new' => 'ཝེ་ཁི་སྟེང་ལ་ <strong>ཤོག་ངོས་གསར་པ་</strong> "[[:$1]]" བཟོས། {{PLURAL:$2|0=|ཁྱེད་ཀྱི་འཚོལ་ཞིབ་བྱས་པའི་ཤོག་ངོས་རྣམས་ལ་ཡང་གཟིགས་རོགས།.|མ་ཟད་འཚོལ་ཞིབ་བྱས་པའི་གྲུབ་འབྲས་གཞན་རྣམས་ལ་ཡང་གཟིགས་རོགས།}}',
+'searchprofile-articles' => 'ནང་དོན་ཤོག་ངོས།',
 'searchprofile-project' => 'རོགས་རམ་དང་འཆར་གཞིའི་ཤོག་ངོས་',
+'searchprofile-images' => 'སྨྱན་མང་བརྒྱུད་ལམ།',
 'searchprofile-everything' => 'ཚང་མ་',
 'searchprofile-advanced' => 'མཐོ་རིམ་',
 'searchprofile-articles-tooltip' => '$1ནང་དུ་འཚོལ་བ།',
 'searchprofile-project-tooltip' => '$1ནང་དུ་འཚོལ་བ།',
 'searchprofile-images-tooltip' => 'ཡིག་ཆ་འཚོལ་བ།',
 'searchprofile-everything-tooltip' => 'བརྗོད་དོན་ཚང་མ་འཚོལ་གཞིབ་བྱེད་(གྲོས་མེས་ཤོག་ངོས་ཡང་འཚུད་པ་)',
-'search-result-size' => '$1({{PLURAL:$2|1 word|$2 words}})',
+'searchprofile-advanced-tooltip' => 'རང་སྒྲུབ་མིང་བར་ནང་འཚོལ་རོགས།',
+'search-result-size' => '$1({{PLURAL:$2|1 ཚིག། |$2 ཚིག།}})',
 'search-redirect' => '($1རིམ་འགྲེམ།)',
 'search-section' => '(ཚན་པ $1)',
 'search-suggest' => '$1 ལ་ཟེར་བ་ཡིན་ནམ།',
 'search-interwiki-caption' => 'སྲིང་མོའི་ལས་འཆར།',
-'search-interwiki-default' => '$1ལས་རྙེད་པ།',
+'search-interwiki-default' => '$1 ནས་འབྱུང་བའི་གྲུབ་འབྲས།',
 'search-interwiki-more' => '(དེ་ལས་མང་བ།)',
 'search-relatedarticle' => 'འབྲེལ་ཡོད།',
+'searchrelated' => 'འབྲེལ་ཡོད།',
 'searchall' => 'ཚང་མ།',
+'showingresultsheader' => '{{PLURAL:$5|གྲུབ་འབྲས་ <strong>$1</strong> ཡི་<strong>$3</strong>གྲབ་འབྲས། <strong>$1 - $2</strong> ཡི་ <strong>$3</strong>}} ཆེད་དུ་ <strong>$4</strong>',
 'search-nonefound' => 'ཁྱེད་ཀྱི་འདྲི་ཞིབ་དང་མཐུན་པའི་ལན་མི་འདུག་',
 'powersearch-legend' => 'ཞིབ་ཏུ་འཚོལ་བ།',
 'powersearch-ns' => 'མིང་གནས་ནང་འཚོལ་བ།',
@@ -473,7 +589,7 @@ $messages = array(
 'prefs-personal' => 'སྤྱོད་མིའི་སྤྱི་ཁོག',
 'prefs-rc' => 'ཉེ་བའི་བཟོ་བཅོས།',
 'prefs-watchlist' => 'མཉམ་འཇོག་ཐོ།',
-'prefs-watchlist-days-max' => 'Maximum $1 {{PLURAL:$1|day|days}}',
+'prefs-watchlist-days-max' => 'མང་མཐར་ཡང་ $1 {{PLURAL:$1|ཉིན།|ཉིན།}}',
 'prefs-watchlist-edits-max' => 'མང་ཚད་ཨང་གྲངས། ༡༠༠༠',
 'prefs-resetpass' => 'ལམ་ཡིག་བརྗེ་བ།',
 'prefs-changeemail' => 'དྲ་འཕྲིན་བརྗེ་བ།',
@@ -483,16 +599,18 @@ $messages = array(
 'searchresultshead' => 'འཚོལ།',
 'stub-threshold-disabled' => 'ནུས་མེད་དུ་བཟོས་ཟིན།',
 'timezoneregion-africa' => 'ཨ་ཧྥི་རི་ཀ',
-'youremail' => 'à½\91ྲà¼\8bའà½\95ྲིà½\93à¼\8d *:',
-'username' => 'དྲ་མིང་།:',
-'uid' => 'ནང་འཛུལ་ཐོ་མིང་།',
+'youremail' => 'à½\82ློà½\82à¼\8bའà½\95ྲིà½\93à¼\8d:',
+'username' => '{{GENDER:$1|དྲ་མིང་།}}:',
+'uid' => '{{GENDER:$1|སྤྱོད་མིའི་}}ནང་འཛུལ་ཐོ་མིང་།:',
 'yourrealname' => 'དངོས་མིང་།',
 'yourlanguage' => 'སྐད་རིགས།',
 'yournick' => 'མིང་རྟགས་སོ་མ།',
-'yourgender' => 'à½\95ོà¼\8bà½\98ོ།',
-'gender-male' => 'à½\95ོ།',
-'gender-female' => 'མོ།',
+'yourgender' => 'à½\81ྱེà½\91à¼\8bལà¼\8bà½\82à½\84à¼\8bའà½\91ྲà¼\8bà½\96ྱསà¼\8bà½\93སà¼\8bའà½\96ོà½\91à¼\8bà½\91à½\82ོསà¼\8bསà½\98།',
+'gender-male' => 'à½\81ོà¼\8bརà½\84à¼\8bà½\82ིསà¼\8bà½\9dེà¼\8bà½\81ེà¼\8bརྩོà½\98à¼\8bསà¾\92ྲིà½\82à¼\8bà½\96ྱསà¼\8bསོà½\84།',
+'gender-female' => 'à½\98ོà¼\8bརà½\84à¼\8bà½\82ིསà¼\8bà½\9dེà¼\8bà½\81ེà¼\8bཤོà½\82à¼\8bà½\84ོསà¼\8bà½\90ོà½\82à¼\8bརྩོà½\98à¼\8bསà¾\92ྲིà½\82à¼\8bà½\96ྱསà¼\8bསོà½\84à¼\8d',
 'email' => 'དྲ་འཕྲིན།',
+'prefs-help-email' => 'གློག་འཕྲིན་ཁ་བྱང་ནི་རང་མོས་ཡིན། ཡིན་ན་འང་གལ་སྲིད་ཁྱེད་ཀྱི་གསང་བའི་ཨང་གྲངས་འརྗེད་པ་སོགས་བྱུང་ཚེ། གསང་བའི་ཨང་བསྐྱར་སྒྲིག་སྐབས་ངེས་པར་དུ་དགོས།',
+'prefs-help-email-others' => 'ཁྱེད་ཀྱི་ཐད་ཀར་གློག་འཕྲིན་འམ་ཡང་ན་འགྲོ་གླེང་ཤོག་ངོས་བརྒྱུད་སྤྱོད་མི་གཞན་རྣམས་ཀྱི་ཁྱེད་ལ་འབྲེལ་བ་བྱེད་ཐུབ། ཁྱེད་རང་གི་གློག་འཕྲིན་ཁ་བྱང་སྤྱོད་མི་གཞན་གྱི་འབྲེལ་བ་བྱེད་སྐབས་གསང་གཏོལ་བྱེད་མི་སྲིད།',
 'prefs-info' => 'རྨང་གཞིའི་གནས་ཚུལ།',
 'prefs-signature' => 'མིང་རྟགས།',
 
@@ -523,7 +641,7 @@ $messages = array(
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => 'ཤོག་ངོས་འདི་ཀློག་པ།',
-'action-edit' => 'ཤོà½\82à¼\8bà½\84ོསà¼\8bའà½\91ིà¼\8bརྩོà½\98à¼\8bསà¾\92ྲིà½\82à¼\8bà½\96ྱེà½\91à¼\8bà½\94།',
+'action-edit' => 'ཤོà½\82à¼\8bà½\84ོསà¼\8bའà½\91ིà¼\8bརྩོà½\98à¼\8bསà¾\92ྲིà½\82à¼\8bà½\96ྱེà½\91à¼\8bà½\91à½\84།',
 'action-createpage' => 'ཤོག་ངོས་གསར་བཟོ།',
 'action-move' => 'ཤོག་ངོས་འདི་སྤོར་ཅིག',
 'action-movefile' => 'ཡིག་ཆ་འདི་སྤོར་ཅིག',
@@ -532,20 +650,24 @@ $messages = array(
 'action-undelete' => 'ཤོག་ངོས་འདི་བསུབས་ཟིན་གསོ་བ།',
 'action-block' => 'སྤྱོད་མི་འདི་རྩོམ་སྒྲིག་ལ་ཁོག་ཅིག',
 'action-protect' => 'ཤོག་ངོས་འདིའི་སྲུང་སྐྱོབ་རིམ་པ་བསྒྱུར་བཅོས་གཏོང་བ།',
-'action-import' => 'ཤོà½\82à¼\8bà½\84ོསà¼\8bའà½\91ིà¼\8bà½\9dེà¼\8bà½\81ེà¼\8bà½\82à½\9eà½\93à¼\8bà½\93སà¼\8bà½\93à½\84à¼\8bའà½\91ྲེà½\93à¼\8bà½\96ྱེà½\91à¼\8bà½\94།',
-'action-importupload' => 'ཤོà½\82à¼\8bà½\84ོསà¼\8bའà½\91ིà¼\8bཡིà½\82à¼\8bà½\86à¼\8bཡརà¼\8bའà½\87ུà½\82à¼\8bལསà¼\8bà½\93à½\84à¼\8bའà½\91ྲེà½\93à¼\8bà½\96ྱེà½\91à¼\8bà½\94།',
+'action-import' => 'à½\9dེà¼\8bà½\81ེà¼\8bà½\82à½\9eà½\93à¼\8bà½\93སà¼\8bà½\93à½\84à¼\8bའà½\91ྲེà½\93à¼\8bà½\96ྱེà½\91à¼\8bà½\94འིà¼\8bཤོà½\82à¼\8bà½\84ོས།',
+'action-importupload' => 'ཡིà½\82à¼\8bà½\86à¼\8bཡརà¼\8bའà½\87ུà½\82à¼\8bལསà¼\8bà½\93à½\84à¼\8bའà½\91ྲེà½\93à¼\8bà½\96ྱེà½\91à¼\8bà½\94འིà¼\8bཤོà½\82à¼\8bà½\84ོས།',
 'action-unwatchedpages' => 'མ་བལྟས་ཤོག་ངོས་ཀྱི་ཐོ་ལ་ལྟ་བ།',
 'action-userrights' => 'སྤྱོད་མིའི་ཐོབ་ཐང་ཡོངས་ལ་རྩོམ་སྒྲིག་བྱེད་པ།',
 'action-userrights-interwiki' => 'ཝེ་ཁེ་གཞན་གྱི་སྤྱོད་མི་ཚོའི་སྤྱོད་མིའི་ཐོབ་ཐང་རྩོམ་སྒྲིག་བྱེད་པ།',
 
 # Recent changes
+'nchanges' => '$1 {{PLURAL:$1|འགྱུར་བཅོས།|འགྱུར་བཅོས།}}',
 'recentchanges' => 'ཉེ་བའི་བཟོ་བཅོས།',
 'recentchanges-legend' => 'ཉེ་བའི་བཟོ་བཅོས་འདེམས་ཚན།',
 'recentchanges-label-newpage' => 'རྩོམ་སྒྲིག་འདིས་ཤོག་ངོས་གསར་བ་ཞིག་བཟོས་འདུག',
 'recentchanges-label-minor' => 'འདི་ནི་རྩོམ་སྒྲིག་ཕལ་བ་ཞིག་ཡིན།',
+'recentchanges-label-bot' => 'བཟོ་འཅོས་འདི་རང་འགུལ་འཕྲུལ་ཆས་ཀྱིས་བྱས་སོང།',
+'recentchanges-label-unpatrolled' => 'རྩོམ་སྒྲིག་འདི་སྐོར་ཞིབ་བྱེད་རྒྱུ་རེད་འདུག།',
 'rclistfrom' => '$1 ལས་འགོ་བཙུགས་ཏེ་འགྱུར་བཅོས་གསར་བ་སྟོན་ཅིག',
 'rcshowhideminor' => '$1 རྩོམ་སྒྲིག་ཕལ་བ།',
-'rcshowhideliu' => 'ཐོ་འཛུལ་བྱས་པའི་སྤྱོད་མི་ $1',
+'rcshowhidebots' => '$1 རང་འགུལ་འཕྲུལ་ཆས།',
+'rcshowhideliu' => '$1 ཐོ་འགོད་སྤྱོད་མི།',
 'rcshowhideanons' => 'མིང་མེད་སྤྱོད་མི $1',
 'rcshowhidemine' => '$1ངའི་རྩོམ་སྒྲིག',
 'rclinks' => 'འདས་བའི་ཉིན་ $2 <br />$3 ནང་ཚུན་གྱི་བཟོ་བཅོས་གཞུག་མ་ $1 སྟོན་ཅིག',
@@ -555,6 +677,7 @@ $messages = array(
 'show' => 'སྟོན།',
 'minoreditletter' => 'སྒྲིག་ཆུང་།',
 'newpageletter' => 'ཤོག་གསར།',
+'boteditletter' => 'རང་འགུལ་འཕྲུལ་ཆས།',
 'rc_categories_any' => 'གང་རུང་།',
 'rc-enhanced-expand' => 'ཞིབ་ཕྲར་སྟོན།',
 'rc-enhanced-hide' => 'ཞིབ་ཕྲ་སྦས་བ།',
@@ -566,13 +689,14 @@ $messages = array(
 'recentchangeslinked-title' => '"$1" དང་འབྲེལ་བའི་འགྱུར་བཅོས།',
 'recentchangeslinked-summary' => "འདི་ནི་དམིགས་གསལ་ཤོག་ངོས་༼ཡང་ན་དམིགས་གསལ་རྣམ་གྲངས་ཀྱི་ཁོངས་མི་༽དང་འབྲེལ་བའི་ཉེ་བའི་བཟོ་བཅོས་རེད།[[Special:Watchlist|yourwatchlist]] ནང་གི་ཤོག་ངོས་རྣམས་'''ཡིག་གཟུགས་སྦོམ་པོ་'''ཡིན།",
 'recentchangeslinked-page' => 'ཤོག་ངོས་མིང་།',
+'recentchangeslinked-to' => 'ཤོག་ངོས་འདི་ཐོག་གི་བཟོ་འཅོས་རྣམས་ཤོག་ངོས་དེ་དང་འབྲེལ་བའི་འགྱུར་བ་སྟོན་རོགས།',
 
 # Upload
 'upload' => 'ཡིག་ཆ་ཡར་འཇུག',
 'uploadbtn' => 'ཡར་འཇོག',
 'reuploaddesc' => 'ཡར་འཇུག་དོར་ནས་ཡར་འཇུག་རེའུ་མིག་ཏུ་ཕྱིར་ལོག་པ།',
 'uploadnologin' => 'ནང་འཛུལ་བྱས་མེད།',
-'uploadlogpage' => 'རྩོà½\98à¼\8bཡིà½\82་ཡར་འཇུག',
+'uploadlogpage' => 'à½\89ིà½\93à¼\8bà½\90ོ་ཡར་འཇུག',
 'filename' => 'ཡིག་ཆའི་མིང་།',
 'filedesc' => 'བསྡུས་དོན།',
 'fileuploadsummary' => 'བསྡུས་དོན།:',
@@ -590,6 +714,9 @@ $messages = array(
 'uploaddisabled' => 'ཡར་འཇུག་ནུས་མེད་བཟོས་འདུག',
 'watchthisupload' => 'ཡིག་ཆ་འདི་ལ་གཟིགས།',
 
+'license' => 'གན་རྒྱ་ནང་ཞུགས་པ།',
+'license-header' => 'གན་རྒྱ་ནང་ཞུགས་པ།',
+
 # Special:ListFiles
 'imgfile' => 'བརྙན་རིས།',
 'listfiles' => 'ཡིག་ཆའི་ཐོ་གཞུང་།',
@@ -605,6 +732,7 @@ $messages = array(
 'filehist-help' => 'ཟླ་ཚེས་/དུས་ཚོད་གནུན་ཏེ་རྩོམ་ཡིག་ལ་ལྟ་བ།',
 'filehist-deleteall' => 'ཚང་མ་སུབས།',
 'filehist-deleteone' => 'གསུབས།',
+'filehist-revert' => 'ཕྱིར་ལྡོག།',
 'filehist-current' => 'ད་ལྟ།',
 'filehist-datetime' => 'ཚེས་གྲངས། / དུས་ཚོད།',
 'filehist-thumb' => 'བསྡུས་དོན།',
@@ -616,6 +744,8 @@ $messages = array(
 'filehist-missing' => 'ཡིག་ཆ་ཆད་པ།',
 'imagelinks' => 'ཡིག་ཆ་བེད་སྤྱོད་ཁུལ།',
 'linkstoimage' => '{{PLURAL:$1|pagelinks|$1pagelink}} འདི་ལ་སྦྲེལ་ཡོད།',
+'sharedupload-desc-here' => 'ཡིག་ཆ་འདི་ནས་$1 རེད་འདུག། ལས་འཆར་གཞན་ཁག་ནང་བེད་སྤྱོད་ཡོད་ངེས།
+[$2 འགྲེལ་བརྗོད་ཤོག་ངོས་]འདིའི་འགྲེལ་བརྗོད་གཤམ་དུ་འཁོད་ཡོད།',
 'shared-repo-from' => '$1 ནས།',
 
 # File deletion
@@ -633,13 +763,18 @@ $messages = array(
 'unusedtemplateswlh' => 'སྦྲེལ་མཐུད་གཞན་དག',
 
 # Random page
-'randompage' => 'རང་མོས་ཤོག་ངོས།',
+'randompage' => 'སྐམས་དོན་ཤོག་ངོས།',
+
+# Statistics
+'statistics' => 'བསྡོམས་རྩིས།',
 
 'brokenredirects-edit' => 'རྩོམ་སྒྲིག',
 'brokenredirects-delete' => 'གསུབ་པ།',
 
 # Miscellaneous special pages
-'nbytes' => '{{PLURAL:$1|ཡིག་ཚགས།}} $1',
+'nbytes' => '{{PLURAL:$1|ཡིག་ཚིགས།}} $1',
+'nmembers' => '$1 {{PLURAL:$1|ཚོགས་མི།|ཚོགས་མི།}}',
+'prefixindex' => 'སྔཽན་སྦྱོར་དང་ལྷན་དུ་ཤོག་ངོས་ཧྲིལ་པོ།',
 'shortpages' => 'ཤོག་ངོས་ཐུང་ངུ་།',
 'newpages' => 'ཤོག་ངོས་གསར་བ།',
 'newpages-username' => 'དྲ་མིང་།:',
@@ -663,15 +798,18 @@ $messages = array(
 'allarticles' => 'ཤོག་ངོས་ཆ་ཚང་།',
 'allpagessubmit' => 'སོང་།',
 
+# Special:Categories
+'categories' => 'སྡེ་ཚན།',
+
 # Special:LinkSearch
-'linksearch' => 'ཕྱི་རོལ་སྦྲེལ་མཐུད།',
+'linksearch' => 'à½\95ྱིà¼\8bརོལà¼\8bསྦྲེལà¼\8bà½\98à½\90ུà½\91à¼\8bའà½\9aོལà¼\8bà½\9eིà½\96à¼\8d',
 
 # Special:ListGroupRights
 'listgrouprights-members' => 'ཁོངས་མིའི་ཐོ་ཡིག',
 
 # Email user
 'emailuser' => 'སྤྱོད་མི་འདིར་གློག་འཕྲིན་སྐུར་བ།',
-'emailmessage' => 'སà¾\90à½\91à¼\8bà½\86།',
+'emailmessage' => 'à½\96རྡà¼\8bའà½\95ྲིà½\93།',
 
 # Watchlist
 'watchlist' => 'ལྟ་ཞིབ་ཐོ།',
@@ -709,15 +847,15 @@ $messages = array(
 'rollbacklink' => 'རྒྱབ་འགྲིལ་གཏོང་བ།',
 
 # Protect
-'protectedarticle' => 'སྲུà½\84à¼\8bསà¾\90ྱོà½\96་བྱས་ཟིན།"[[$1]]"',
+'protectedarticle' => 'འà½\82ོà½\82à¼\8bསྲུà½\84་བྱས་ཟིན།"[[$1]]"',
 'modifiedarticleprotection' => '"[[$1]]" ལ་སྲུང་སྐྱོབ་རིམ་པ་བཟོ་བཅོས་བྱས་བ།',
 'protectcomment' => 'རྒྱུ་མཚན།',
 'protectexpiry' => 'དུས་ཡུན་རྫོགས་ཚད།',
 'protect_expiry_invalid' => 'དུས་ཡུན་རྫོགས་ཚད་ནོར་བ།',
 'protect-default' => 'སྤྱོད་མི་ཡོངས་ལ་ཕྱེ་བ།',
-'protect-fallback' => '"$1" ཆོག་མཆན་དགོས།',
-'protect-level-autoconfirmed' => 'སྤྱོà½\91à¼\8bà½\98ིà¼\8bà½\82སརà¼\8bà½\96à¼\8bà½\91à½\84à¼\8bà½\90ོà¼\8bà½\98ེà½\91à¼\8bརྣà½\98སà¼\8bà½\96à½\80à½\82à¼\8bའà½\82ོà½\82',
-'protect-level-sysop' => 'དོ་དམ་པ་ཁོ་ནར།',
+'protect-fallback' => 'སྤྱོད་མི་ "$1" གྱི་ཆོག་མཆན་ཡོད་པ་ཁོ་ནར་བྱེད་དབང་ཡོད།',
+'protect-level-autoconfirmed' => 'རà½\84à¼\8bའà½\82ུལà¼\8bà½\84ོསà¼\8bའà½\9bིà½\93à¼\8bà½\96ྱསà¼\8bà½\94འིà¼\8bསྤྱོà½\91à¼\8bà½\98ིà¼\8bà½\81ོà¼\8bà½\93རà¼\8bà½\96ྱེà½\91à¼\8bà½\91à½\96à½\84à¼\8bཡོà½\91à¼\8d',
+'protect-level-sysop' => 'à½\91ོà¼\8bà½\91à½\98à¼\8bà½\94à¼\8bà½\81ོà¼\8bà½\93རà¼\8bà½\96ྱེà½\91à¼\8bà½\91à½\96à½\84à¼\8bཡོà½\91à¼\8d',
 'protect-cantedit' => 'ཁྱོད་ལ་ཤོག་ངོས་འདི་རྩོམ་སྒྲིག་གི་ཆོག་མཆན་མེད་པས་ངོས་འདི་ཡི་སྲུང་སྐྱོབ་རིམ་པ་ལ་བཟོ་བཅོས་བྱེད་མི་ཆོག',
 'restriction-type' => 'ཆོག་མཆན།',
 'restriction-level' => 'དམ་བསྒྲགས་ཚད་རིམ།',
@@ -734,10 +872,10 @@ $messages = array(
 # Namespace form on various pages
 'namespace' => 'མིང་གནས།',
 'invert' => 'གདམ་པའི་ལྡོག་ཕྱོགས།',
-'blanknamespace' => '༼གཙོ་ངོས།༽',
+'blanknamespace' => '(གཙོ་གནད།)',
 
 # Contributions
-'contributions' => 'མཐུན་འགྱུར།',
+'contributions' => '{{GENDER:$1|སྤྱོད་མི།}} མཐུན་འགྱུར།',
 'mycontris' => 'མཐུན་འགྱུར།',
 'month' => 'ཟླ་བ་འདི་ནས།',
 'year' => 'ལོ་འདི་ནས།',
@@ -750,20 +888,25 @@ $messages = array(
 'whatlinkshere-title' => '"$1" ལ སྦྲེལ་ཡོད་པའི་ཤོག་ངོས།',
 'whatlinkshere-page' => 'ཤོག་ངོས།',
 'linkshere' => "གཤམ་གྱི་ཤོག་ངོས་རྣམས་ '''[[:$1]]''': ལ་སྦྲེལ་ཡོད།",
+'nolinkshere' => '<strong>[[:$1]]</strong> ཤོག་ངོས་གཅིག་ཀྱང་སྦྲེལ་མཐུད་མི་འདུག།',
 'isimage' => 'ཡིག་རིས་སྦྲེལ་མཐུད།',
 'whatlinkshere-links' => '← སྦྲེལ་མཐུད།',
+'whatlinkshere-hideredirs' => '$1 ཁ་ཕྱོགས་བསྐྱར་སྟོན།',
 'whatlinkshere-hidelinks' => '$1 སྦྲེལ་མཐུད།',
+'whatlinkshere-hideimages' => '$1 ཡིག་ཆ་སྦྲེལ་མཐུད།',
 'whatlinkshere-filters' => 'ཡིག་ཚགས།',
 
 # Block/unblock
 'blockip' => 'སྤྱོད་མི་འགོག་སྡོམ།',
 'ipbreason' => 'རྒྱུ་མཚན།',
+'ipblocklist' => 'འགོག་སྡོམ་བྱས་པའི་སྤྱོད་མི།',
 'ipblocklist-submit' => 'འཚོལ།',
 'blocklink' => 'འགོག་པ།',
 'unblocklink' => 'བཀག་སྡོམ་གློད་པ།',
 'change-blocklink' => 'བཀག་སྡོམ་བསྒྱུར་བཅོས།',
-'contribslink' => 'à½\96ྱསà¼\8bརà¾\97ེས།',
+'contribslink' => 'à½\98à½\90ུà½\93à¼\8bའà½\82ྱུར།',
 'blocklogpage' => 'རྩོམ་ཡིག་བཀག་འགོག',
+'block-log-flags-nocreate' => 'རྩིས་ཁྲ་གསར་བཟོ་འགོག་འདུག།',
 
 # Move page
 'movearticle' => 'ཤོག་ངོས་སྤོར་བ།',
@@ -791,40 +934,40 @@ $messages = array(
 'tooltip-pt-preferences' => 'ཁྱེད་ཀྱི་ལེགས་སྒྲིག',
 'tooltip-pt-watchlist' => 'ཞུ་དག་གཏོང་བཞིན་པའི་ཤོག་ངོས།',
 'tooltip-pt-mycontris' => 'ངའི་བྱས་རྗེས་སྟོན་པ།',
-'tooltip-pt-login' => 'à½\93à½\84à¼\8bའà½\9bུལ།',
-'tooltip-pt-logout' => 'à½\95ྱིརà¼\8bའà½\96ུà½\91།',
-'tooltip-ca-talk' => 'གྲོས་མོལ།',
-'tooltip-ca-edit' => 'à½\81ྱེà½\91à¼\8bà½\80ྱིསà¼\8bà½\91ྲà¼\8bà½\84ོསà¼\8bའà½\91ིà¼\8bརྩོà½\98à¼\8bསà¾\92ྲིà½\82à¼\8bà½\96ྱེà½\91à¼\8bà½\86ོà½\82 à½\89རà¼\8bà½\9aà½\82སà¼\8bà½\96ྱེà½\91à¼\8bà½\94འིà¼\8bསà¾\94ོà½\93à¼\8bà½\91ུà¼\8bà½\98à½\90ེà½\96à¼\8bà½\82à½\85ུསà¼\8bསà¾\94ོà½\93à¼\8bà½\98à¼\8bསྤྱོà½\91་རོགས།',
+'tooltip-pt-login' => 'à½\81ྱེà½\91à¼\8bརà½\84à¼\8bà½\93à½\84à¼\8bའà½\9bུལà¼\8bà½\82à½\93à½\84à¼\8bà½\96རà¼\8bà½\91à½\82འà¼\8bà½\96སུà¼\8bà½\9eུà¼\8d à½ à½¼à½\93à¼\8bà½\80ྱà½\84à¼\8bའà½\91ིརà¼\8bའà½\82à½\93à¼\8bའà½\81ུརà¼\8bà½\96ྱེà½\91à¼\8bà½\98à½\81à½\93à¼\8bà½\98ེà½\91།',
+'tooltip-pt-logout' => 'à½\95ྱིརà¼\8bà½\91ོà½\93།',
+'tooltip-ca-talk' => 'ཤོà½\82à¼\8bà½\84ོསà¼\8bà½\80ྱིà¼\8bà½\93à½\84à¼\8bà½\91ོà½\93à¼\8bà½\82ྲོསà¼\8bà½\98ོལà¼\8d',
+'tooltip-ca-edit' => 'à½\81ྱེà½\91à¼\8bà½\80ྱིསà¼\8bཤོà½\82à¼\8bà½\84ོསà¼\8bའà½\91ིརà¼\8bརྩོà½\98à¼\8bསà¾\92ྲིà½\82à¼\8bà½\96ྱེà½\91à¼\8bà½\86ོà½\82à¼\8d à½\89རà¼\8bà½\9aà½\82སà¼\8bà½\98à¼\8bà½\96ྱེà½\91à¼\8bà½\82ོà½\84à¼\8bསà¾\94ོà½\93à¼\8bལà¾\9fའིà¼\8bà½\98à½\90ེà½\96à¼\8bà½\82à½\9eོà½\84à¼\8bà½\82à½\93ོà½\93་རོགས།',
 'tooltip-ca-addsection' => 'སྡེ་ཚན་གསར་བ་ཞིག་འགོ་འཛུགས་པ།',
-'tooltip-ca-viewsource' => 'ཤོà½\82à¼\8bà½\84ོསà¼\8bའà½\91ིà¼\8bསྲུà½\84à¼\8bསà¾\90ྱོà½\96à¼\8bའོà½\82à¼\8bཡོà½\91à¼\8d à½\81ྱེà½\91à¼\8bà½\80ྱིསà¼\8bའà½\91ིའིà¼\8bའà½\96ྱུà½\84à¼\8bà½\81ོà½\84སà¼\8bལà¾\9fà¼\8bà½\86ོà½\82',
-'tooltip-ca-history' => 'à½\96à½\9fོ་བཅོས་སྔ་མ།',
+'tooltip-ca-viewsource' => 'ཤོà½\82à¼\8bà½\84ོསà¼\8bའà½\91ིà¼\8bའà½\82ོà½\82à¼\8bསྲུà½\84à¼\8bà½\96ྱསà¼\8bཡོà½\91à¼\8d à½\81ྱེà½\91à¼\8bà½\80ྱིསà¼\8bའà½\91ིའིà¼\8bà½\81ུà½\84སà¼\8bལà¼\8bལà¾\9fà¼\8bà½\86ོà½\82à¼\8d',
+'tooltip-ca-history' => 'ཤོà½\82à¼\8bà½\84ོསà¼\8bའà½\91ིའིà¼\8bà½\96སà¾\90ྱར་བཅོས་སྔ་མ།',
 'tooltip-ca-protect' => 'ཤོག་ངོས་འདི་སྲུངས་ཤིག',
 'tooltip-ca-delete' => 'ཤོག་ངོས་འདི་དོར་ཅིག',
 'tooltip-ca-move' => 'ཤོག་ངོས་འདི་སྤོར་བ།',
 'tooltip-ca-watch' => 'ཤོག་ངོས་འདི་ཁྱོད་ཀྱི་མཉམ་འཇོག་ཐོ་རུ་འཇུག་པ།',
 'tooltip-ca-unwatch' => 'ཤོག་ངོས་འདི་མཉམ་འཇོག་ཐོ་ལས་ལེན་པ།',
-'tooltip-search' => 'ལà½\82à¼\8bà½\86à¼\8bའà½\9aོལà¼\8d',
+'tooltip-search' => 'འà½\9aོལà¼\8d {{SITENAME}}',
 'tooltip-search-go' => 'མིང་ཇི་བཞིན་པའི་ཤོག་ངོས་སྟེང་དུ་སྐྱོད་པ།',
-'tooltip-search-fulltext' => 'à½\9aིà½\82་འདི་འཚོལ།',
-'tooltip-p-logo' => 'à½\82à½\99ོà¼\8bà½\84ོས།',
-'tooltip-n-mainpage' => 'à½\82à½\99ོà¼\8bà½\84ོསà¼\8bལà¼\8bལà¾\9fà¼\8bà½\96།',
-'tooltip-n-mainpage-description' => 'à½\82à½\99ོà¼\8bà½\84ོསà¼\8bལà¼\8bལà¾\9fà¼\8bà½\96།',
-'tooltip-n-portal' => 'ལསà¼\8bའà½\86རà¼\8bསà¾\90ོརà¼\8bà½\91à½\84à¼\8bà½\81ྱེà½\91à¼\8bà½\80ྱིསà¼\8bà½\85ིà¼\8bà½\9eིà½\82à¼\8bà½\96ྱེà½\91à¼\8bà½\93ུསà¼\8bà½\94à¼\8d à½\82à½\84à¼\8bà½\91ུà¼\8bའà½\9aོལà¼\8bà½\91à½\82ོསà¼\8bà½\94།',
+'tooltip-search-fulltext' => 'ཤོà½\82à¼\8bà½\84ོསà¼\8bà½\90ོà½\82à¼\8bཡིà½\82à¼\8bརà¾\90ྱà½\84་འདི་འཚོལ།',
+'tooltip-p-logo' => 'à½\82à½\99ོà¼\8bà½\82à½\93à½\91à¼\8bཤོà½\82à¼\8bà½\84ོསà¼\8bལà¼\8bà½\82à½\9fིà½\82སà¼\8bརོà½\82ས།',
+'tooltip-n-mainpage' => 'à½\82à½\99ོà¼\8bà½\82à½\93à½\91à¼\8bཤོà½\82à¼\8bà½\84ོསà¼\8bལà¼\8bà½\82à½\9fིà½\82སà¼\8bརོà½\82ས།',
+'tooltip-n-mainpage-description' => 'à½\82à½\99ོà¼\8bà½\82à½\93à½\91à¼\8bཤོà½\82à¼\8bà½\84ོསà¼\8bལà¼\8bà½\82à½\9fིà½\82སà¼\8bརོà½\82ས།',
+'tooltip-n-portal' => 'ལསà¼\8bའà½\86རà¼\8bསà¾\90ོརà¼\8d à½\81ྱེà½\91à¼\8bà½\80ྱིསà¼\8bà½\82à½\84à¼\8bà½\96ྱེà½\91à¼\8bà½\90ུà½\96à¼\8bà½\96à½\98à¼\8d à½\82à½\84à¼\8bà½\91ུà¼\8bའà½\9aོལà¼\8bà½\91à½\82ོསà¼\8bསà½\98།',
 'tooltip-n-currentevents' => 'ཉེ་བའི་ལས་དོན་གྱི་རྒྱབ་ལྗོངས་གནས་ཚུལ་འཚོལ་བ།',
-'tooltip-n-recentchanges' => 'à½\9dེà¼\8bà½\81ེà¼\8bསà¾\9fེà½\84à¼\8bà½\82ིà¼\8bà½\89ེà¼\8bà½\96འིà¼\8bà½\96à½\9fོà¼\8bà½\96à½\85ོསà¼\8bà½\80ྱིà¼\8bà½\90ོà¼\8bà½\82à½\9eུà½\84à¼\8b།',
-'tooltip-n-randompage' => 'རà½\84à¼\8bà½\98ོསà¼\8bཤོà½\82à¼\8bà½\84ོསà¼\8bཤིà½\82à¼\8bལེà½\93à¼\8bà½\94།',
+'tooltip-n-recentchanges' => 'à½\9dེà¼\8bà½\81ེà¼\8bསà¾\9fེà½\84à¼\8bà½\82ིà¼\8bà½\89ེà¼\8bà½\86རà¼\8bà½\96à½\9fོà¼\8bà½\96à½\85ོསà¼\8bà½\80ྱིà¼\8bà½\90ོ།',
+'tooltip-n-randompage' => 'སà¾\90à½\96སà¼\8bà½\91ོà½\93à¼\8bཤོà½\82à¼\8bà½\84ོསà¼\8bཤིà½\82à¼\8bà½\95à½\96à¼\8bའà½\87ུà½\82།',
 'tooltip-n-help' => 'གང་དུ་འཚོལ་བའི་གནས།',
-'tooltip-t-whatlinkshere' => 'འà½\91ིà¼\8bལà¼\8bསྦྲེལà¼\8bà½\96འིà¼\8bà½\9dེà¼\8bà½\81ེà¼\8bཤོà½\82à¼\8bà½\84ོསà¼\8bཡོà½\84སà¼\8bརྫོà½\82ས།',
-'tooltip-t-recentchangeslinked' => 'à½\84ོསà¼\8bའà½\91ིà¼\8bà½\91à½\84à¼\8bའà½\96ྲེལà¼\8bà½\96འི་ཉེ་བའི་བཟོ་བཅོས།',
+'tooltip-t-whatlinkshere' => 'འà½\91ིརà¼\8bསྦྲེལà¼\8bཡོà½\91à¼\8bà½\94འིà¼\8bà½\9dེà¼\8bà½\81ེà¼\8bཤོà½\82à¼\8bà½\84ོསà¼\8bཧྲིལà¼\8bà½\94ོའིà¼\8bà½\90ོ།',
+'tooltip-t-recentchangeslinked' => 'ཤོà½\82à¼\8bà½\84ོསà¼\8bའà½\91ིà¼\8bà½\91à½\84à¼\8bསྤྲེལà¼\8bà½\96འིà¼\8bཤོà½\82à¼\8bà½\84ོསà¼\8bà½\82à½\9eà½\93à¼\8bà½\90ོà½\82à¼\8bà½\82ི་ཉེ་བའི་བཟོ་བཅོས།',
 'tooltip-feed-rss' => 'ཤོག་ངོས་འདིའི་RSS འབྱུང་ཁུངས།',
 'tooltip-feed-atom' => 'ཤོག་ངོས་འདིའི་Atom འབྱུང་ཁུངས།',
 'tooltip-t-contributions' => 'བཀོལ་མི་འདིའི་བྱས་རྗེས་སྟོན།',
-'tooltip-t-emailuser' => 'སྤྱོà½\91à¼\8bà½\98ིà¼\8bའà½\91ིརà¼\8bà½\91ྲà¼\8bའà½\95ྲིà½\93à¼\8bསà¾\90ུརà¼\8bà½\96།',
+'tooltip-t-emailuser' => 'སྤྱོà½\91à¼\8bà½\98ིà¼\8bའà½\91ིརà¼\8bà½\82ློà½\82à¼\8bའà½\95ྲིà½\93à¼\8bà½\96སà¾\90ུརà¼\8bརོà½\82ས།',
 'tooltip-t-upload' => 'ཡིག་ཆ་ཡར་འཇུག',
-'tooltip-t-specialpages' => 'à½\91à½\98ིà½\8aà¼\8bà½\82སལ་ཤོག་ངོས་ཀྱི་ཐོ་གཞུང་།',
-'tooltip-t-print' => 'à½\91à½\94རà¼\8bà½\90ུà½\96à¼\8bà½\94འིà¼\8bà½\98ིà¼\8bའà½\91ྲà¼\8bà½\86ོས།',
-'tooltip-t-permalink' => 'རà¾\9fà½\82à¼\8bà½\96རà¾\9fà½\93à¼\8bà½\82ྱིà¼\8bà½\91ྲà¼\8bà½\96རà¼\8bའà½\87ུà½\82à¼\8bà½\94།',
-'tooltip-ca-nstab-main' => 'à½\93à½\84à¼\8bà½\91ོà½\93à¼\8bཤོà½\82à¼\8bà½\84ོསà¼\8bལà¼\8bལà¾\9fà¼\8bà½\96།',
+'tooltip-t-specialpages' => 'à½\86ེà½\91à¼\8bལས་ཤོག་ངོས་ཀྱི་ཐོ་གཞུང་།',
+'tooltip-t-print' => 'ཤོà½\82à¼\8bà½\84ོསà¼\8bའà½\91ིའིà¼\8bà½\91à½\94རà¼\8bརུà½\84à¼\8bà½\96འིà¼\8bའà½\82ྱུར།',
+'tooltip-t-permalink' => 'à½\96à½\9fོà¼\8bའà½\85ོསà¼\8bཤོà½\82à¼\8bà½\84ོསà¼\8bའà½\91ིའིà¼\8bà½\96རà¾\9fà½\93à¼\8bའà½\87à½\82སà¼\8bà½\80ྱིà¼\8bསྦྲེལà¼\8bà½\98à½\90ུà½\91།',
+'tooltip-ca-nstab-main' => 'à½\93à½\84à¼\8bà½\91ོà½\93à¼\8bà½\80ྱིà¼\8bཤོà½\82à¼\8bà½\84ོསà¼\8bལà¼\8bà½\82à½\9fིà½\82སà¼\8bརོà½\82ས།',
 'tooltip-ca-nstab-user' => 'སྤྱོད་མིའི་ཤོག་ངོས་ལ་ལྟ་བ།',
 'tooltip-ca-nstab-special' => 'དྲ་ངོས་འདི་དམིགས་གསལ་བ་ཡིན་པས་བཟོ་བཅོས་རྒྱག་མི་ཆོག',
 'tooltip-ca-nstab-project' => 'ལས་འཆར་ཤོག་ངོས་ལ་ལྟ་བ།',
@@ -835,6 +978,9 @@ $messages = array(
 'tooltip-save' => 'བཟོ་བཅོས་ཉར་ཚགས་བྱོས།',
 'tooltip-preview' => 'ཉར་ཚགས་ཀྱི་སྔོན་དུ་བཟོ་བཅོས་ལ་བསྐྱར་ཞིབ་གནང་རོགས།',
 'tooltip-diff' => 'གང་ལ་བཟོ་བཅོས་བྱས་པའི་ཡིག་འབྲུ་སྟོན་པ།',
+'tooltip-compareselectedversions' => 'ཤོག་ངོས་འདེམས་བཞིན་བ་གཉིས་ཀྱི་བར་བཟོ་འཅོས་དཔར་གཞིའི་ཁྱད་པར་སྟོན།',
+'tooltip-rollback' => '"རྒྱབ་སྒྲིལ།" ཞེས་པ་འདིས་ཤོག་ངོས་སྟེང་གི་དེ་སྔོན་གི་རྩོམ་སྒྲིག་མཐུན་འགྱུར་རྣམས་མཐེབ་གཞོང་གནོན་ཐེངས་གཅིག་ལ་ཕྱིར་ལྡོག་བྱེད་རྒྱུ་ཡིན།',
+'tooltip-undo' => '"ཕྱིར་འཐེན།" ཞེས་པ་དེས་ཁྱེད་ཀྱི་རྩོམ་སྒྲིག་ཕྱིར་ལྡོག་པ་དང་སྔོན་འཚུད་བལྟ་ཞིབ་ཤོག་ངོས་ཁ་ཕྱེ་རྒྱུ་ཡིན། མཇུག་སྡོམ་ཀྱི་རྒྱུ་རྐྱེན་གླེང་འཇུག་རྒྱུ་ཡིན།',
 'tooltip-summary' => 'ཕྱོགས་བསྡོམས་ཐུང་ངུ་ཞིག་འབྲིས་',
 
 # Browsing diffs
@@ -842,11 +988,24 @@ $messages = array(
 'nextdiff' => 'རྩོམ་སྒྲིག་གསར་གྲས། →',
 
 # Media information
+'file-info-size' => '$1 × $2 བརྙན་རྒྱུ།, ཡིག་ཆ་ཆེ་ཆུང།: $3, རྣམ་གཞག།: $4',
 'show-big-image' => 'ཐོག་མའི་ཡིག་ཆ།',
 
 # Special:NewFiles
 'ilsubmit' => 'འཚོལ།',
 
+# Bad image list
+'bad_image_list' => 'གཤམ་གྱི་རྣམ་གཞག་ལྟར་རྗེས་སུ་འབྲང་རོགས།:
+རེའུ་མིག་ཡོད་པ་ཁོ་ན་ཆ་འཇོག་བྱེད་རྒྱ་ཡིན།',
+
+# Metadata
+'metadata' => 'རྒྱུ་གཞི་གྲངས།',
+'metadata-help' => 'ཡིག་ཆ་འདིར་ཆ་འཕྲིན་གཞན་དག་པ་ཁ་ཅིག་འདུག། ཕལ་ཆེར་གྲངས་འཛིན་དཔར་ཆས་འམ་འབེབས་ཆས་ལས་གྲངས་འཛིན་ཡོང་ཆེད་བཟོས་པ་ཡིན། 
+གལ་སྲིད་ཡིག་ཆ་འདིར་འགྱུར་བ་གཏོང་གནང་ན། དེ་སྔོན་གྱི་ལྟར་ཞིབས་ཚག་སྟོན་མི་ཐུབ།',
+'metadata-fields' => 'དཔར་རིས་ཀྱི་ནང་དོན་འདིར་ཡོད་པ་རྣམས་ནང་དོན་ཞིབ་ཕྲའི་སྐབས་སྟོན་རྒྱུ་ཡིན། དེ་མིན་རྣམས་རང་འགུལ་གྱི་འབས་ཞོགས་རྒྱུ་ཡིན།
+* བཟོ་སྐྲུན།
+* དབྱབས་གཟུགས།',
+
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'ཚང་མ།',
 'namespacesall' => 'ཡོངས་རྫོགས།',
@@ -859,11 +1018,15 @@ $messages = array(
 'table_pager_limit_submit' => 'སོང་།',
 
 # Watchlist editing tools
+'watchlisttools-view' => 'འབྲེལ་ཡོད་འགྱུར་བཅོས་ལ་གཟིགས་རོགས།',
 'watchlisttools-edit' => 'མཉམ་འཇོག་ཐོར་ལྟ་བ་དང་བསྒྱུར་བཅོས་བྱེད་པ།',
 'watchlisttools-raw' => 'ལྟ་ཐོའི་གོ་རིམ་བཅོས་སྒྲིག',
 
 # Special:SpecialPages
-'specialpages' => 'དམིགས་གསལ་ཤོག་ངོས།',
+'specialpages' => 'ཆེད་ལས་ཤོག་ངོས།',
+
+# Special:Tags
+'tag-filter' => 'འདེམས་འཚག། [[Special:Tags|Tag]]',
 
 # New logging system
 'rightsnone' => '(སྟོང་པ།)',
index 592e6bd..38e17c4 100644 (file)
@@ -278,7 +278,6 @@ $1',
 'disclaimers' => 'দাবি বেলানি',
 'disclaimerpage' => 'Project:ইজ্জু দাবি বেলানি',
 'edithelp' => 'পতানি পাংলাক',
-'helppage' => 'Help:পাংলাক',
 'mainpage' => 'পয়লা পাতা',
 'mainpage-description' => 'পয়লা পাতা',
 'policy-url' => 'Project:নীতিহান',
@@ -607,7 +606,7 @@ $2',
 লগ-ইন করানির পিসে তর নুৱা অ্যাকাউন্টর কা ''[[Special:ChangePassword|খন্তাচাবি সিলকরানি]]''র পাতাত্ব সালকরানি একরতই।",
 'newarticle' => '(নুৱা)',
 'newarticletext' => 'তি বিসারার মিলাপ অহান নেয়সে।
-তি চেইলে তলর বক্সগত বিষয়হানর বারে খানি ইকরিয়া ইতুকরে পারর বারো নিবন্ধহান অকরে পারর (আরাকউ হারপানিরকা [[{{MediaWiki:Helppage}}|পাঙলাক পাতা]] চা) পারর।
+তি চেইলে তলর বক্সগত বিষয়হানর বারে খানি ইকরিয়া ইতুকরে পারর বারো নিবন্ধহান অকরে পারর (আরাকউ হারপানিরকা [$1 পাঙলাক পাতা] চা) পারর।
 যদি হারনাপেয়া এহাত আহিয়া থার অতা ইলে ব্রাউজারর ব্যাক গুতমগত ক্লিক করিয়া আগর পাতাত আল পারর।',
 'anontalkpagetext' => "----''এহান অচিনা অতার য়্যারির পাতাহান, যেগই কোন অ্যাকাউন্ট না খুলিসে, নাইলে ব্যবহার নাকরের।
 অহানে আমি আইপি ঠিকানা (IP Address)ল অগরে দেখাদেরাঙতা।
index f8fdb42..a00db24 100644 (file)
@@ -216,7 +216,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Kas din un eilskrid eus ar posteloù a gasan da implijerien all',
 'tog-diffonly' => "Arabat diskouez danvez ar pennadoù dindan an diforc'hioù",
 'tog-showhiddencats' => 'Diskouez ar rummadoù kuzhet',
-'tog-noconvertlink' => 'Diweredekaat amdroadur an titloù',
 'tog-norollbackdiff' => 'Na ziskouez an diff goude un distaoladenn',
 'tog-useeditwarning' => 'Kas keloù din pa guitaan ur bajenn degaset kemmoù enni hep enrollañ',
 'tog-prefershttps' => "Implijout bepred ur c'hevreadur suraet pa vezit kevreet",
@@ -428,7 +427,6 @@ $1',
 'disclaimers' => 'Kemennoù',
 'disclaimerpage' => 'Project:Kemenn hollek',
 'edithelp' => 'Skoazell',
-'helppage' => 'Help:Skoazell',
 'mainpage' => 'Degemer',
 'mainpage-description' => 'Degemer',
 'policy-url' => 'Project:Reolennoù',
@@ -623,8 +621,6 @@ Na zisoñjit ket resisaat ho [[Special:Preferences|penndibaboù evit {{SITENAME}
 'gotaccountlink' => 'Kevreañ',
 'userlogin-resetlink' => "Ha disoñjet eo bet ho titouroù kevreañ ganeoc'h ?",
 'userlogin-resetpassword-link' => 'Ankouaet ho peus ho ker-tremen ?',
-'helplogin-url' => 'Help:Kevreañ',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Skoazell evit kevreañ]]',
 'userlogin-loggedin' => "Kevreet oc'h dija evel {{GENDER:$1|$1}}.
 Implijit ar furmskrid amañ dindan evit kevreañ evel un implijer all.",
 'userlogin-createanother' => 'Krouiñ ur gont all',
@@ -714,6 +710,10 @@ Gortozit $1, mar plij, a-raok esaeañ en-dro.",
 'loginlanguagelabel' => 'Yezh : $1',
 'suspicious-userlogout' => 'Distaolet eo bet ho koulenn digevreañ rak kaset e oa bet gant ur merdeer direizhet pe krubuilhadenn ur proksi, evit doare.',
 'createacct-another-realname-tip' => "Diret eo skrivañ hoc'h anv gwir. Ma skrivit anezhañ e vo implijet evit lakaat war wel ar pezh a vo bet degaset ganeoc'h.",
+'pt-login' => 'Kevreañ',
+'pt-login-button' => 'Kevreañ',
+'pt-createaccount' => 'Krouiñ ur gont',
+'pt-userlogout' => 'Digevreañ',
 
 # Email sending
 'php-mail-error-unknown' => "Fazi dianav en arc'hwel postel () PHP",
@@ -722,7 +722,7 @@ Gortozit $1, mar plij, a-raok esaeañ en-dro.",
 
 # Change password dialog
 'changepassword' => 'Kemmañ ar ger-tremen',
-'resetpass_announce' => "Enskrivet oc’h bet dre ur ger-tremen da c'hortoz kaset deoc'h dre bostel. A-benn bezañ enrollet da vat e rankit spisaat ur ger-tremen nevez amañ :",
+'resetpass_announce' => 'Evit echuiñ da gevreañ e rankit lakaat ur ger-tremen nevez.',
 'resetpass_text' => '<!-- Ouzhpennañ testenn amañ -->',
 'resetpass_header' => 'Cheñch ger-tremen ar gont',
 'oldpassword' => 'Ger-tremen kozh :',
@@ -739,6 +739,7 @@ Gortozit $1, mar plij, a-raok esaeañ en-dro.",
 'resetpass-wrong-oldpass' => "Direizh eo ar ger-tremen a-vremañ pe da c'hortoz.",
 'resetpass-temp-password' => "Ger-tremen da c'hortoz :",
 'resetpass-abort-generic' => 'Nullet eo bet kemm ar ger-tremen gant un astenn.',
+'resetpass-expired' => "Deuet eo ho ker-tremen d'e dermen. Lakait ur ger-tremen nevez, mar plij, evit kevreañ.",
 
 # Special:PasswordReset
 'passwordreset' => 'Adderaouekaat ar ger-tremen',
@@ -769,7 +770,7 @@ Mat e vefe deoc'h kevreañ ha dibab ur ger-tremen nevez bremañ. Mard eo bet gou
 Ger-tremen da c'hortoz : $2",
 'passwordreset-emailsent' => "Kaset ez eus bet ur postel deoc'h da adderaouekaat ho ker-tremen.",
 'passwordreset-emailsent-capture' => 'Ur postel evit aderaouekaat ho ker-tremen, evel diskouezet amañ dindan, zo bet kaset.',
-'passwordreset-emailerror-capture' => "Kaset ez eus bet ur postel degas da soñj evel m'emañ diskouezet amañ dindan met c'hwitet eo bet ar c'has : $1",
+'passwordreset-emailerror-capture' => "Kaset ez eus bet ur postel degas da soñj evel m'emañ diskouezet amañ dindan met c'hwitet eo bet ar gasadenn d'an {{GENDER:$2|implijer|implijerez}} : $1",
 
 # Special:ChangeEmail
 'changeemail' => "Kemmañ ar chomlec'h postel",
@@ -877,7 +878,7 @@ Moarvat ez eo bet dilerc'hiet pe dilamet abaoe ma oa bet lennet ganeoc'h.",
 'accmailtext' => "Kaset ez eus bet ur ger-tremen dargouezhek evit [[User talk:$1|$1]] da $2. Cheñchet e c'hall ar ger-tremen evit ar gont nevez-mañ bezañ war ar bajenn ''[[Special:ChangePassword|cheñch ger-tremen]]'', ur wezh kevreet.",
 'newarticle' => '(Nevez)',
 'newarticletext' => "Heuliet hoc'h eus ul liamm a gas d'ur bajenn n'eo ket bet savet evit c'hoazh.
-A-benn krouiñ ar bajenn-se, krogit da skrivañ er prenestr skridaozañ dindan (gwelet ar [[{{MediaWiki:Helppage}}|bajenn skoazell]] evit gouzout hiroc'h).
+A-benn krouiñ ar bajenn-se, krogit da skrivañ er prenestr skridaozañ dindan (gwelet ar [$1 bajenn skoazell] evit gouzout hiroc'h).
 M'emaoc'h en em gavet amañ dre fazi, klikit war bouton '''kent''' ho merdeer evit mont war ho kiz.",
 'anontalkpagetext' => "---- ''Homañ eo ar bajenn gaozeal evit un implijer(ez) dizanv n'eus ket krouet kont ebet evit c'hoazh pe na implij ket anezhi.
 Setu perak e rankomp ober gant ar chomlec'h IP niverel evit anavezout anezhañ/i.
@@ -997,7 +998,8 @@ Krouet e oa bet c'hoazh.",
 'invalid-content-data' => "n'eo ket mat roadennoù an endalc'had",
 'content-not-allowed-here' => 'N\'eo ket aotreet an endalc\'had "$1" er bajenn [[$2]]',
 'editwarning-warning' => "Mar kuitait ar bajenn-mañ e c'hallit koll ar c'hemmoù degaset ganeoc'h.
-Ma'z oc'h kevreet e c'hallit diweredekaat ar c'hemenn-diwall-mañ e rann \"Aozañ\" en ho penndibaboù.",
+Ma'z oc'h kevreet e c'hallit diweredekaat ar c'hemenn-diwall-mañ e rann \"{{int:prefs-editing}}\" en ho penndibaboù.",
+'editpage-notsupportedcontentformat-title' => "Furmad endalc'had ha n'eo ket kemeret e karg",
 
 # Content models
 'content-model-wikitext' => 'wikitestenn',
@@ -1114,12 +1116,10 @@ Gallout a ri gwelet an diforc'h-mañ ; titouroù zo war [{{fullurl:{{#Special:Lo
 'revdelete-show-file-submit' => 'Ya',
 'revdelete-selected' => "'''{{PLURAL:$2|Stumm dibabet|Stummoù dibabet}} eus [[:$1]] :'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Darvoud eus ar marilh diuzet|Darvoud eus ar marilh diuzet}} :'''",
-'revdelete-text' => "'''Derc'hel a raio ar stummoù ha darvoudoù diverket da zont war wel war istor ar bajenn hag er marilhoù, met dazrn eus ar boued n'hallo ket bezañ gwelet gant an dud.'''
-Gouest e vo merourien all {{SITENAME}} da dapout krog en testennoù kuzhet ha da ziziverkañ anezho en-dro dre an hevelep etrefas, nemet e vije bet lakaet e plas strishadurioù ouzhpenn.",
 'revdelete-confirm' => "Kadarnait eo mat an dra-se a fell deoc'h ober, e komprenit mat ar pezh a empleg, hag en grit en ur zoujañ d'ar [[{{MediaWiki:Policy-url}}|reolennoù]].",
-'revdelete-suppress-text' => "Ne zlefe an dilemel bezañ implijet '''nemet''' abalamour d'an abegoù da-heul :
+'revdelete-suppress-text' => "Ne zlefe an dilemel bezañ implijet <strong>nemet</strong> abalamour d'an abegoù da-heul :
 * Titouroù personel dizere
-*: ''chomlec'hioù, niverennoù pellgomz pe surentez sokial personel, hag all''",
+*: <em>chomlec'hioù, niverennoù pellgomz pe surentez sokial personel, hag all.</em>",
 'revdelete-legend' => 'Lakaat strishadurioù gwelet',
 'revdelete-hide-text' => 'Testenn ar stumm',
 'revdelete-hide-image' => 'Kuzhat danvez ar restr',
@@ -1206,6 +1206,8 @@ Gwiriit ne vo ket torret red istor ar bajenn gant ar c'hemm-mañ.",
 'showhideselectedversions' => 'Diskouez/Kuzhat ar stummoù diuzet',
 'editundo' => 'dizober',
 'diff-empty' => '(Disheñvelder ebet)',
+'diff-multi-sameuser' => "({{PLURAL:$1|Ur reizhadenn da c'hortoz|$1 reizhadenn da c'hortoz}} gant ar memes implijer kuzhet)",
+'diff-multi-otherusers' => "({{PLURAL:$1|Ur reizhadenn da c'hortoz|$1 reizhadenn da c'hortoz}} gant {{PLURAL:$2|un implijer all|$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}}.
 
@@ -1245,7 +1247,7 @@ Gallout a reot kavout munudoù e [{{fullurl:{{#Special:Log}}/delete|page={{FULLP
 'search-file-match' => "(klotañ a ra gant endalc'had ar restr)",
 'search-suggest' => "N'hoc'h eus ket soñjet kentoc'h e : $1",
 'search-interwiki-caption' => 'Raktresoù kar',
-'search-interwiki-default' => "$1 disoc'h :",
+'search-interwiki-default' => "Disoc'hoù eus $1 :",
 'search-interwiki-more' => "(muioc'h)",
 'search-relatedarticle' => "Disoc'hoù kar",
 'searcheverything-enable' => 'Klask en holl esaouennoù anv',
@@ -1269,6 +1271,7 @@ Gallout a reot kavout munudoù e [{{fullurl:{{#Special:Log}}/delete|page={{FULLP
 'preferences' => 'Penndibaboù',
 'mypreferences' => 'Penndibaboù',
 'prefs-edits' => 'Niver a zegasadennoù :',
+'prefsnologintext2' => '$1, mar plij, evit cheñch ho penndibaboù.',
 'prefs-skin' => 'Gwiskadur',
 'skin-preview' => 'Rakwelet',
 'datedefault' => 'Dre ziouer',
@@ -1563,11 +1566,23 @@ Ma skrivit anezhañ e vo implijet evit lakaat war wel ar pezh a vo bet degaset g
 'rcnotefrom' => "Setu aze roll ar c'hemmoù c'hoarvezet abaoe an '''$2''' ('''$1''' d'ar muiañ).",
 'rclistfrom' => "Diskouez ar c'hemmoù diwezhañ abaoe an $1.",
 'rcshowhideminor' => "$1 ar c'hemmoù dister",
+'rcshowhideminor-show' => 'Diskouez',
+'rcshowhideminor-hide' => 'Kuzhat',
 'rcshowhidebots' => '$1 ar robotoù',
+'rcshowhidebots-show' => 'Diskouez',
+'rcshowhidebots-hide' => 'Kuzhat',
 'rcshowhideliu' => '$1 an implijerien enrollet',
+'rcshowhideliu-show' => 'Diskouez',
+'rcshowhideliu-hide' => 'Kuzhat',
 'rcshowhideanons' => '$1 an implijerien dizanv',
+'rcshowhideanons-show' => 'Diskouez',
+'rcshowhideanons-hide' => 'Kuzhat',
 'rcshowhidepatr' => "$1 ar c'hemmoù gwiriet",
+'rcshowhidepatr-show' => 'Diskouez',
+'rcshowhidepatr-hide' => 'Kuzhat',
 'rcshowhidemine' => "$1 ma c'hemmoù",
+'rcshowhidemine-show' => 'Diskouez',
+'rcshowhidemine-hide' => 'Kuzhat',
 'rclinks' => "Diskouez an $1 kemm diwezhañ c'hoarvezet e-pad an $2 devezh diwezhañ<br />$3",
 'diff' => "diforc'h",
 'hist' => 'ist',
@@ -1944,6 +1959,9 @@ Marteze a-walc'h e fell deoc'h kemmañ an deskrivadur anezhi war ar [$2 bajenn d
 # List redirects
 'listredirects' => 'Roll an adkasoù',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Roll restroù gant doublennoù',
+
 # Unused templates
 'unusedtemplates' => 'Patromoù dizimplij',
 'unusedtemplatestext' => 'Rollet eo amañ an holl bajennoù zo en esaouenn anv "{{ns:template}}" ha n\'int ket implijet war pajenn ebet. Ho pet soñj da wiriañ mat hag-eñ n\'eus ket liammoù all war-du ar patromoù-se a-raok diverkañ anezho.',
@@ -2071,6 +2089,7 @@ $1 {{PLURAL:$1|rummad|rummad}}',
 'listusers' => 'Roll an implijerien',
 'listusers-editsonly' => 'Na ziskouez nemet an implijerien o deus degaset un dra bennak',
 'listusers-creationsort' => 'Renket dre urzh krouiñ',
+'listusers-desc' => 'Renkañ war ziskenn',
 'usereditcount' => '$1 {{PLURAL:$1|kemm|kemm}}',
 'usercreated' => "{{GENDER:$3|Krouet}} d'an $1 da $2",
 'newpages' => 'Pajennoù nevez',
@@ -2335,9 +2354,11 @@ Sellet ouzh $2 evit roll an diverkadennoù diwezhañ.',
 'deleteotherreason' => 'Abegoù/traoù all :',
 'deletereasonotherlist' => 'Abeg all',
 'deletereason-dropdown' => "*Abegoù diverkañ boazetañ
-** Goulenn gant saver ar pennad
+** Strob
+** Vandalerezh
 ** Gaou ouzh ar gwirioù perc'hennañ
-** Vandalerezh",
+** Goulenn gant saver ar pennad
+** Liamm torret",
 'delete-edit-reasonlist' => 'Kemmañ a ra an abegoù diverkañ',
 'delete-toobig' => 'Bras eo istor ar bajenn-mañ, ouzhpenn $1 {{PLURAL:$1|stumm|stumm}} zo. Bevennet eo bet an diverkañ pajennoù a-seurt-se kuit da zegas reuz war {{SITENAME}} dre fazi .',
 'delete-warning-toobig' => "Bras eo istor ar bajenn-mañ, ouzhpenn {{PLURAL:$1|stumm|stumm}} zo.
@@ -2618,7 +2639,7 @@ Sellit ouzh [[Special:BlockList|roll ar chomlec'hioù IP ha kontoù stanket]] ev
 'contribslink' => 'degasadennoù',
 'emaillink' => 'Kas ur postel',
 'autoblocker' => 'Emstanket rak implijet eo bet ho chomlec\'h IP gant "[[User:$1|$1]]" nevez zo.
-Setu aze an abeg(où) m\'eo bet stanket $1 : "\'\'$2\'\'"',
+Setu amañ perak $1 : "$2"',
 'blocklogpage' => 'Roll ar stankadennoù',
 'blocklog-showlog' => "Stanket eo bet an implijer-mañ c'hoazh. A-is emañ marilh ar stankadennoù, d'ho titouriñ :",
 'blocklog-showsuppresslog' => "Stanket ha kuzhet eo bet an implijer-mañ c'hoazh. A-is emañ marilh ar diverkadennoù, d'ho titouriñ :",
@@ -2853,7 +2874,7 @@ Enrollit ar bajenn war hoc'h urzhiataer ha kargit anezhi amañ.",
 'importuploaderrortemp' => "C'hwitet eo bet enporzhiañ ar restr. Mankout a ra ur restr badennek.",
 'import-parse-failure' => "Troc'h e dielfennadenn an enporzh XML",
 'import-noarticle' => 'Pajenn ebet da enporzhiañ !',
-'import-nonewrevisions' => "Enporzhiet eo bet an holl degasadennoù c'hoazh.",
+'import-nonewrevisions' => "N'eus bet enporzhiet degasadenn ebet (aze e oant dija, pe distaolet e oant bet abalamour da fazioù).",
 'xml-error-string' => '$1 war al linenn $2, bann $3 (okted $4) : $5',
 'import-upload' => 'Enporzhiañ roadennoù XML',
 'import-token-mismatch' => "Kollet eo bet roadennoù an dalc'h. Klaskit en-dro.",
@@ -3653,6 +3674,9 @@ Kadarnait mar plij e fell deoc'h krouiñ ar pennad-mañ da vat.",
 'confirm-unwatch-button' => 'Mat eo',
 'confirm-unwatch-top' => 'Lemel ar bajenn-mañ a-ziwar ho roll evezhiañ',
 
+# Separators for various lists, etc.
+'quotation-marks' => '« $1 »',
+
 # Multipage image navigation
 'imgmultipageprev' => '&larr; pajenn gent',
 'imgmultipagenext' => "pajenn war-lerc'h &rarr;",
index 795df35..700f774 100644 (file)
@@ -318,7 +318,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Pošalji mi kopije emailova koje pošaljem drugim korisnicima',
 'tog-diffonly' => 'Ne prikazuj sadržaj stranice ispod prikaza razlika',
 'tog-showhiddencats' => 'Prikaži skrivene kategorije',
-'tog-noconvertlink' => 'Onemogući konverziju naslova linkova',
 'tog-norollbackdiff' => 'Nakon vraćanja zanemari prikaz razlika',
 'tog-useeditwarning' => 'Upozori me kada napustim stranicu za izmjene bez spašenih promjena',
 'tog-prefershttps' => 'Uvijek koristi sigurnu konekciju kada sam prijavljen.',
@@ -521,7 +520,7 @@ $1',
 'pool-errorunknown' => 'Nepoznata greška',
 
 # 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).
-'aboutsite' => 'O projektu {{SITENAME}}',
+'aboutsite' => 'O {{GRAMMAR:dativ|{{SITENAME}}}}',
 'aboutpage' => 'Project:O_projektu_{{SITENAME}}',
 'copyright' => 'Sadržaj je dostupan pod licencom $1 osim ako je drugačije navedeno.',
 'copyrightpage' => '{{ns:project}}:Autorska_prava',
@@ -530,7 +529,6 @@ $1',
 'disclaimers' => 'Odricanje odgovornosti',
 'disclaimerpage' => 'Project:Uslovi korištenja, pravne napomene i odricanje odgovornosti',
 'edithelp' => 'Pomoć pri uređivanju stranice',
-'helppage' => 'Help:Sadržaj',
 'mainpage' => 'Početna strana',
 'mainpage-description' => 'Početna strana',
 'policy-url' => 'Project:Pravila',
@@ -673,7 +671,7 @@ Iz razloga "\'\'$2\'\'".',
 'invalidtitle-knownnamespace' => 'Neispravan naslov s imenskim prostorom "$2" i tekstom "$3"',
 'invalidtitle-unknownnamespace' => 'Neispravan naslov s imenskim prostorom br. $1 i tekstom "$2"',
 'exception-nologin' => 'Niste prijavljeni',
-'exception-nologin-text' => 'Ova stranica ili aktivnost zahtijeva da budete prijavljeni na ovom wikiju.',
+'exception-nologin-text' => '[[Special:Userlogin|Prijavite se]] da biste pristupili ovoj stranici ili radnji.',
 
 # Virus scanner
 'virus-badscanner' => "Loša konfiguracija: nepoznati anti-virus program: ''$1''",
@@ -721,8 +719,6 @@ Ne zaboravite da prilagodite sebi svoja [[Special:Preferences|{{SITENAME}} pode
 'gotaccountlink' => 'Prijavi se',
 'userlogin-resetlink' => 'Zaboravili ste detalje vaše prijave?',
 'userlogin-resetpassword-link' => 'Zaboravili ste šifru/lozinku?',
-'helplogin-url' => 'Help:Prijavljivanje',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoć pri prijavljivanju]]',
 'userlogin-loggedin' => 'Već ste prijavljeni kao {{GENDER:$1|$1}}.
 Koristite donji obrazac da biste se prijavili kao drugi korisnik.',
 'userlogin-createanother' => 'Napravi još jedan račun',
@@ -813,6 +809,10 @@ Molimo Vas da sačekate $1 prije nego što pokušate ponovo.',
 'suspicious-userlogout' => 'Vaš zahtjev za odjavu je odbijen jer je poslan preko pokvarenog preglednika ili keširanog proksija.',
 'createacct-another-realname-tip' => 'Pravo ime nije obavezno.
 Ako izaberete da date ime, biće korišteno za pripisivanje za vaš rad.',
+'pt-login' => 'Prijavi me',
+'pt-login-button' => 'Prijavi me',
+'pt-createaccount' => 'Napravi korisnički račun',
+'pt-userlogout' => 'Odjavi me',
 
 # Email sending
 'php-mail-error-unknown' => 'Nepoznata greška u PHP funkciji mail()',
@@ -969,7 +969,7 @@ Možda je pomjerena ili obrisana dok ste pregledavali stranicu.',
 'newarticle' => '(Novi)',
 'newarticletext' => "Došli ste na stranicu koja još nema sadržaja.
 *Ako želite unijeti sadržaj, počnite tipkati u prozor ispod ovog teksta.
-*Ako vam treba pomoć, idite na [[{{MediaWiki:Helppage}}|stranicu za pomoć]].
+*Ako vam treba pomoć, idite na [\$1 stranicu za pomoć].
 *Ako ste ovamo dospjeli slučajno, kliknite dugme \"Nazad\" (''Back'') u svom internet pregledniku.",
 'anontalkpagetext' => "----''Ovo je stranica za razgovor za anonimnog korisnika koji još nije napravio nalog ili ga ne koristi.
 Zbog toga moramo da koristimo brojčanu IP adresu kako bismo identifikovali njega ili nju.
@@ -1214,8 +1214,6 @@ Vi možete vidjeti ovu razliku; detalji se mogu vidjeti u [{{fullurl:{{#Special:
 'revdelete-show-file-submit' => 'Da',
 'revdelete-selected' => "'''{{PLURAL:$2|Odabrana revizija|Odabrane revizije}} od [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Označena stavka zapisa|Označene stavke zapisa}}:'''",
-'revdelete-text' => "'''Obrisane revizije i događaji će i dalje biti vidljivi u historiji stranice i zapisima, ali dijelovi njenog sadržaja neće biti dostupni javnosti.'''
-Drugi administratori projekta {{SITENAME}} će i dalje moći pristupiti sakrivenom sadržaju i mogu ga ponovo vratiti kroz ovaj interfejs, osim ako nisu postavljena dodatna ograničenja.",
 'revdelete-confirm' => 'Molimo potvrdite da namjeravate ovo učiniti, da razumijete posljedice i da to činite u skladu s [[{{MediaWiki:Policy-url}}|pravilima]].',
 'revdelete-suppress-text' => "Ograničenja bi trebala biti korištena '''samo''' u slijedećim slučajevima:
 * Osjetljive korisničke informacije
@@ -1661,14 +1659,26 @@ Ako izaberete da date ime, biće korišteno za pripisivanje za vaš rad.',
 'recentchanges-label-plusminus' => 'Veličina stranice promijenila se za ovoliko bajtova',
 'recentchanges-legend-heading' => "'''Legenda:'''",
 'recentchanges-legend-newpage' => '(također pogledajte [[Special:NewPages|spisak novih stranica]])',
-'rcnotefrom' => 'Ispod su izmjene od <b>$2</b> (do <b>$1</b> prikazano).',
+'rcnotefrom' => 'Ispod su izmjene od <strong>$2</strong> (do <strong>$1</strong> prikazano).',
 'rclistfrom' => 'Prikaži nove izmjene počev od $1',
 'rcshowhideminor' => '$1 male izmjene',
+'rcshowhideminor-show' => 'Pokaži',
+'rcshowhideminor-hide' => 'Sakrij',
 'rcshowhidebots' => '$1 botove',
+'rcshowhidebots-show' => 'Pokaži',
+'rcshowhidebots-hide' => 'Sakrij',
 'rcshowhideliu' => '$1 registrovanih korisnika',
+'rcshowhideliu-show' => 'Pokaži',
+'rcshowhideliu-hide' => 'Sakrij',
 'rcshowhideanons' => '$1 anonimne korisnike',
+'rcshowhideanons-show' => 'Pokaži',
+'rcshowhideanons-hide' => 'Sakrij',
 'rcshowhidepatr' => '$1 patrolirane izmjene',
+'rcshowhidepatr-show' => 'Pokaži',
+'rcshowhidepatr-hide' => 'Sakrij',
 'rcshowhidemine' => '$1 moje izmjene',
+'rcshowhidemine-show' => 'Pokaži',
+'rcshowhidemine-hide' => 'Sakrij',
 'rclinks' => 'Prikaži najskorijih $1 izmjena u posljednjih $2 dana<br />$3',
 'diff' => 'razl',
 'hist' => 'hist',
@@ -2145,7 +2155,12 @@ Svaki red sadrži veze na prvo i drugo preusmjerenje, kao i na prvu liniju tekst
 'protectedpages' => 'Zaštićene stranice',
 'protectedpages-indef' => 'Samo neograničena zaštićenja',
 'protectedpages-cascade' => 'Samo prenosive zaštite',
+'protectedpages-noredirect' => 'Sakrij preusmjerenja',
 'protectedpagesempty' => 'Trenutno nijedna stranica nije zaštićena s ovim parametrima.',
+'protectedpages-page' => 'Stranica',
+'protectedpages-expiry' => 'Ističe',
+'protectedpages-reason' => 'Razlog',
+'protectedpages-unknown-timestamp' => 'Nepoznato',
 'protectedtitles' => 'Zaštićeni naslovi',
 'protectedtitlesempty' => 'Nema naslova zaštićenih članaka sa ovim parametrima.',
 'listusers' => 'Spisak korisnika',
@@ -2698,7 +2713,7 @@ ili korisničkom imenu.',
 'contribslink' => 'doprinosi',
 'emaillink' => 'pošalji e-mail',
 'autoblocker' => 'Automatski ste blokirani jer dijelite IP adresu sa "[[User:$1|$1]]".
-Razlog za blokiranje je korisnika $1 je: \'\'$2\'\'',
+Razlog za blokiranje korisnika $1 je \'\'$2\'\'',
 'blocklogpage' => 'Evidencija blokiranja',
 'blocklog-showlog' => 'Ovaj korisnik je ranije blokiran. Zapisnik blokiranja je prikazan ispod kao referenca:',
 'blocklog-showsuppresslog' => 'Ovaj korisnik je ranije blokiran i sakriven. Zapisnik sakrivanja je prikazan ispod kao referenca:',
@@ -2891,6 +2906,7 @@ Molimo posjetite [https://www.mediawiki.org/wiki/Localisation MediaWiki lokaliza
 'allmessages-prefix' => 'Filter po prefiksu:',
 'allmessages-language' => 'Jezik:',
 'allmessages-filter-submit' => 'Idi',
+'allmessages-filter-translate' => 'Prevedi',
 
 # Thumbnails
 'thumbnail-more' => 'uvećajte',
@@ -3744,6 +3760,9 @@ Molimo Vas da potvrdite da stvarno želite da ponovo napravite ovaj članak.",
 'imgmultigo' => 'Idi!',
 'imgmultigoto' => 'Idi na stranicu $1',
 
+# Language selector for translatable SVGs
+'img-lang-go' => 'Idi',
+
 # Table pager
 'ascending_abbrev' => 'rast',
 'descending_abbrev' => 'opad',
@@ -3888,6 +3907,11 @@ Također možete [[Special:EditWatchlist|koristiti standardni uređivač]].',
 'version-hook-subscribedby' => 'Pretplaćeno od',
 'version-version' => '(Verzija $1)',
 'version-license' => 'Licenca',
+'version-ext-license' => 'Licenca',
+'version-ext-colheader-version' => 'Verzija',
+'version-ext-colheader-license' => 'Licenca',
+'version-ext-colheader-description' => 'Opis',
+'version-ext-colheader-credits' => 'Autori',
 'version-poweredby-credits' => "Ova wiki je zasnovana na '''[https://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]].',
index d86fcb9..70d3afb 100644 (file)
@@ -240,7 +240,6 @@ $messages = array(
 'tog-ccmeonemails' => "Envia'm còpia dels missatges que enviï als altres usuaris",
 'tog-diffonly' => 'Amaga el contingut de la pàgina davall de la taula de diferències',
 'tog-showhiddencats' => 'Mostra les categories ocultes',
-'tog-noconvertlink' => 'Inhabilita la conversió dels títols dels enllaços',
 'tog-norollbackdiff' => 'Omet la pàgina de diferències després de realitzar una reversió',
 'tog-useeditwarning' => "Avisa'm quan surti d'una pàgina d'edició amb canvis sense desar",
 'tog-prefershttps' => 'Utilitza sempre una connexió segura en iniciar una sessió',
@@ -453,7 +452,6 @@ $1",
 'disclaimers' => 'Avís general',
 'disclaimerpage' => 'Project:Avís general',
 'edithelp' => 'Ajuda',
-'helppage' => 'Help:Índex',
 'mainpage' => 'Pàgina principal',
 'mainpage-description' => 'Pàgina principal',
 'policy-url' => 'Project:Polítiques',
@@ -617,7 +615,7 @@ No oblideu de canviar les vostres [[Special:Preferences|preferències de {{SITEN
 'yourname' => "Nom d'usuari",
 'userlogin-yourname' => 'Usuari',
 'userlogin-yourname-ph' => "Introduïu el vostre nom d'usuari",
-'createacct-another-username-ph' => "Introdueix el nom d'usuari",
+'createacct-another-username-ph' => "Introduïu el nom d'usuari",
 'yourpassword' => 'Contrasenya',
 'userlogin-yourpassword' => 'Contrasenya',
 'userlogin-yourpassword-ph' => 'Introduïu la vostra contrasenya',
@@ -648,17 +646,15 @@ No oblideu de canviar les vostres [[Special:Preferences|preferències de {{SITEN
 'gotaccountlink' => 'Inicia una sessió',
 'userlogin-resetlink' => "Heu oblidat les vostres dades d'accés?",
 'userlogin-resetpassword-link' => 'Has oblidat la teva contrasenya?',
-'helplogin-url' => 'Help:Registrar-se',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ajuda]]',
 'userlogin-loggedin' => 'Heu iniciat una sessió com {{GENDER:$1|$1}}.
 Feu servir el formulari de sota per iniciar la sessió com un altre usuari.',
 'userlogin-createanother' => 'Crea un altre compte',
 'createacct-join' => 'Introduïu les vostres dades.',
-'createacct-another-join' => 'Introdueix la informació del nou compte a continuació:',
+'createacct-another-join' => 'Introduïu la informació del nou compte a continuació:',
 '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',
-'createacct-another-email-ph' => 'Introdueix una adreça de correu electrònic',
+'createacct-another-email-ph' => 'Introduïu una adreça de correu electrònic',
 'createaccountmail' => "Utilitza una contrasenya aleatòria temporal i envia-la a l'adreça de correu indicada",
 'createacct-realname' => 'Nom real (opcional)',
 'createaccountreason' => 'Motiu:',
@@ -737,6 +733,9 @@ Espereu $1 abans de tornar-ho a provar.",
 'suspicious-userlogout' => "S'ha denegat la vostra petició per tancar la sessió ja què sembla que va ser enviada per un navegador defectuós o un proxy cau.",
 'createacct-another-realname-tip' => "El nom real és opcional.
 Si decidiu proporcionar-lo, s'utilitzarà per a reconèixer a l'usuari el seu treball.",
+'pt-login' => 'Inicia la sessió',
+'pt-createaccount' => 'Crea un compte',
+'pt-userlogout' => 'Finalitza la sessió',
 
 # Email sending
 'php-mail-error-unknown' => 'Error desconegut en la funció mail() de PHP',
@@ -767,7 +766,7 @@ Per completar l'inici de sessió heu de definir una contrasenya nova a continuac
 'resetpass-temp-password' => 'Contrasenya temporal:',
 'resetpass-abort-generic' => 'Una extensió ha interromput el canvi de contrasenya.',
 'resetpass-expired' => 'La contrasenya ha vençut. Definiu una contrasenya nova per iniciar la sessió.',
-'resetpass-expired-soft' => 'La contrasenya ha vençut i cal restablir-la. Trieu una contrasenya nova ara, o feu clic a cancel·lat per a restablir-la més endavant.',
+'resetpass-expired-soft' => 'La contrasenya ha vençut i cal restablir-la. Trieu una contrasenya nova ara, o feu clic a «{{int:resetpass-submit-cancel}}» per a restablir-la més endavant.',
 
 # Special:PasswordReset
 'passwordreset' => 'Restablir contrasenya',
@@ -909,7 +908,7 @@ La contrasenya per aquest nou compte pot ser canviada a la pàgina de ''[[Specia
 'newarticle' => '(Nou)',
 'newarticletext' => "Heu seguit un enllaç a una pàgina que encara no existeix.
 Per a crear-la, comenceu a escriure en l'espai de sota
-(vegeu l'[[{{MediaWiki:Helppage}}|ajuda]] per a més informació).
+(vegeu l'[$1 ajuda] per a més informació).
 Si sou ací per error, simplement cliqueu al botó «Enrere» del vostre navegador.",
 'anontalkpagetext' => "----''Aquesta és la pàgina de discussió d'un usuari anònim que encara no ha creat un compte o que no fa servir el seu nom registrat. Per tant, hem de fer servir la seua adreça IP numèrica per a identificar-lo. Una adreça IP pot ser compartida per molts usuaris. Si sou un usuari anònim, i trobeu que us han adreçat comentaris inoportuns, si us plau, [[Special:UserLogin/signup|creeu-vos un compte]], o [[Special:UserLogin|entreu en el vostre compte]] si ja en teniu un, per a evitar futures confusions amb altres usuaris anònims.''",
 'noarticletext' => 'Actualment no hi ha text en aquesta pàgina.
@@ -1151,8 +1150,6 @@ funció, la revisió especificada no existeix, o bé esteu provant d'amagar l'ac
 'revdelete-show-file-submit' => 'Sí',
 'revdelete-selected' => "'''{{PLURAL:$2|Revisió seleccionada|Revisions seleccionades}} de [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Esdeveniment del registre seleccionat|Esdeveniments del registre seleccionats}}:'''",
-'revdelete-text' => "'''Les revisions esborrades es mostraran encara als historials de les pàgines i als registres, si bé part del seu contingut serà inaccessible al públic.'''
-Els altres administradors de {{SITENAME}} encara podran accedir al contingut amagat i restituir-lo de nou mitjançant aquesta mateixa interfície, si no hi ha cap altra restricció addicional.",
 'revdelete-confirm' => "Si us plau, confirmeu que és això el que desitgeu fer, que enteneu les conseqüències, i que esteu fent-ho d'acord amb [[{{MediaWiki:Policy-url}}|les polítiques acordades]].",
 'revdelete-suppress-text' => "Les supressions '''només''' han de ser portades a terme en els següents casos:
 * Informació potencialment difamatòria
@@ -1610,14 +1607,26 @@ Ha de tenir com a molt {{PLURAL:$1|un caràcter|$1 caràcters}}.',
 'recentchanges-legend-heading' => "'''Llegenda:'''",
 'recentchanges-legend-newpage' => '(vegeu també la [[Special:NewPages|llista de pàgines noves]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => 'A sota hi ha els canvis des de <b>$2</b> (es mostren fins <b>$1</b>).',
+'rcnotefrom' => 'A sota hi ha els canvis des de <strong>$2</strong> (es mostren fins <strong>$1</strong>).',
 'rclistfrom' => 'Mostra els canvis nous des de $1',
 'rcshowhideminor' => '$1 edicions menors',
+'rcshowhideminor-show' => 'Mostra',
+'rcshowhideminor-hide' => 'Amaga',
 'rcshowhidebots' => '$1 bots',
+'rcshowhidebots-show' => 'Mostra',
+'rcshowhidebots-hide' => 'Amaga',
 'rcshowhideliu' => '$1 usuaris registrats',
+'rcshowhideliu-show' => 'Mostra',
+'rcshowhideliu-hide' => 'Amaga',
 'rcshowhideanons' => '$1 usuaris anònims',
+'rcshowhideanons-show' => 'Mostra',
+'rcshowhideanons-hide' => 'Amaga',
 'rcshowhidepatr' => '$1 edicions supervisades',
+'rcshowhidepatr-show' => 'Mostra',
+'rcshowhidepatr-hide' => 'Amaga',
 'rcshowhidemine' => '$1 edicions pròpies',
+'rcshowhidemine-show' => 'Mostra',
+'rcshowhidemine-hide' => 'Amaga',
 'rclinks' => 'Mostra els darrers $1 canvis en els darrers $2 dies<br />$3',
 'diff' => 'dif',
 'hist' => 'hist',
@@ -1740,6 +1749,7 @@ Si us plau, si encara desitgeu carregar el vostre fitxer, torneu enrera i carreg
 'uploaddisabledtext' => "S'ha inhabilitat la càrrega de fitxers.",
 'php-uploaddisabledtext' => 'La càrrega de fitxer està desactivada al PHP. Comproveu les opcions del fitxer file_uploads.',
 'uploadscripted' => 'Aquest fitxer conté codi HTML o de seqüències que pot ser interpretat equivocadament per un navegador.',
+'uploadscriptednamespace' => 'Aquest fitxer SVG conté un espai de noms "$1" no autoritzat',
 'uploadinvalidxml' => "No s'ha pogut analitzar l'XML del fitxer carregat.",
 'uploadvirus' => 'El fitxer conté un virus! Detalls: $1',
 'uploadjava' => 'El fitxer és un arxiu ZIP que conté un fitxer .class de Java. No està permesa la càrrega de fitxers Java, perquè poden passar per alt les restriccions de seguretat.',
@@ -2089,7 +2099,7 @@ Les entrades <del>ratllades</del> s\'han resolt.',
 'deadendpagestext' => "Aquestes pàgines no tenen enllaços a d'altres pàgines del projecte {{SITENAME}}.",
 'protectedpages' => 'Pàgines protegides',
 'protectedpages-indef' => 'Només proteccions indefinides',
-'protectedpages-summary' => "Aquesta pàgina llista les pàgines existents que estan protegides actualment. Per consultar la llista de títols protegits per tal que no puguin crear-se'n pàgines, vegeu [[{{#special:ProtectedTitles}}]].",
+'protectedpages-summary' => "Aquesta pàgina llista les pàgines existents que estan protegides actualment. Per consultar la llista de títols protegits per tal que no puguin crear-se'n pàgines, vegeu [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
 'protectedpages-cascade' => 'Només proteccions en cascada',
 'protectedpages-noredirect' => 'Amaga redireccions',
 'protectedpagesempty' => 'No hi ha cap pàgina protegida per ara',
@@ -2102,7 +2112,7 @@ Les entrades <del>ratllades</del> s\'han resolt.',
 'protectedpages-unknown-timestamp' => 'Desconegut',
 'protectedpages-unknown-performer' => 'Usuari desconegut',
 'protectedtitles' => 'Títols protegits',
-'protectedtitles-summary' => "Aquesta pàgina llista títols protegits perquè no puguin crear-se'n pàgines. Per consultar una llista actual de pàgines protegides, vegeu [[{{#special:ProtectedPages}}]].",
+'protectedtitles-summary' => "Aquesta pàgina llista títols protegits perquè no puguin crear-se'n pàgines. Per consultar una llista actual de pàgines protegides, vegeu [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
 'protectedtitlesempty' => 'No hi ha cap títol protegit actualment amb aquests paràmetres.',
 'listusers' => "Llista d'usuaris",
 'listusers-editsonly' => 'Mostra només usuaris amb edicions',
@@ -2376,7 +2386,7 @@ Vegeu $2 per a un registre dels esborrats més recents.",
 'delete-edit-reasonlist' => "Edita els motius d'eliminació",
 'delete-toobig' => "Aquesta pàgina té un historial d'edicions molt gran, amb més de $1 {{PLURAL:$1|canvi|canvis}}. L'eliminació d'aquestes pàgines està restringida per a prevenir que hi pugui haver un desajustament seriós de la base de dades de tot el projecte {{SITENAME}} per accident.",
 'delete-warning-toobig' => "Aquesta pàgina té un historial d'edicions molt gran, amb més de $1 {{PLURAL:$1|canvi|canvis}}. Eliminar-la podria suposar un seriós desajustament de la base de dades de tot el projecte {{SITENAME}}; aneu en compte abans dur a terme l'acció.",
-'deleting-backlinks-warning' => "'''Avís:''' Altres pàgines enllacen o transclouen de la pàgina que esteu a punt de suprimir.",
+'deleting-backlinks-warning' => "'''Avís:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Altres pàgines]] enllacen o transclouen de la pàgina que esteu a punt de suprimir.",
 
 # Rollback
 'rollback' => 'Reverteix edicions',
@@ -2551,8 +2561,10 @@ Per més detalls, la última entrada del registre es mostra a continuació:",
 'sp-contributions-blocked-notice-anon' => 'En aquests moments, aquesta adreça IP es troba blocada.
 Per més detalls, la última entrada del registre es mostra a continuació:',
 'sp-contributions-search' => 'Cerca les contribucions',
+'sp-contributions-suppresslog' => "contribucions suprimides de l'usuari",
 'sp-contributions-username' => "Adreça IP o nom d'usuari:",
 'sp-contributions-toponly' => 'Mostra només revisions superiors',
+'sp-contributions-newonly' => 'Mostra només modificacions que són creacions de pàgina',
 'sp-contributions-submit' => 'Cerca',
 
 # What links here
@@ -3147,7 +3159,7 @@ Si l'executeu, podeu comprometre la seguretat del vostre sistema.",
 'file-no-thumb-animation-gif' => "''' Nota: degut a limitacions tècniques no s'animaran les miniatures d'alta resolució d'imatges GIF com aquesta.'''",
 
 # Special:NewFiles
-'newimages' => 'Galeria de nous fitxers',
+'newimages' => 'Galeria de fitxers nous',
 'imagelisttext' => "Llista {{PLURAL:$1|d'un sol fitxer|de '''$1''' fitxers ordenats $2}}.",
 'newimages-summary' => 'Aquesta pàgina especial mostra els darrers fitxers carregats.',
 'newimages-legend' => 'Nom del fitxer',
@@ -3689,9 +3701,9 @@ Confirmeu que realment voleu tornar-la a crear.",
 'recreate' => 'Torna a crear',
 
 # action=purge
-'confirm_purge_button' => 'OK',
+'confirm_purge_button' => "D'acord",
 'confirm-purge-top' => "Voleu buidar la memòria cau d'aquesta pàgina?",
-'confirm-purge-bottom' => "Purgar una pàgina força que hi aparegui la versió més actual i n'esborra la memòria cau.",
+'confirm-purge-bottom' => 'En refrescar una pàgina es neteja de la memòria cau i es força que hi aparegui la versió més actual.',
 
 # action=watch/unwatch
 'confirm-watch-button' => "D'acord",
index b9ed1ea..3adda03 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Xiaomingyan
  * @author Xqt
  * @author Yejianfei
  */
@@ -383,7 +384,6 @@ $1',
 'disclaimers' => '無負責聲明',
 'disclaimerpage' => 'Project:無負責聲明',
 'edithelp' => '修改保護',
-'helppage' => 'Help:目錄',
 'mainpage' => '頭頁',
 'mainpage-description' => '頭頁',
 'policy-url' => 'Project:政策',
@@ -549,8 +549,6 @@ Sō̤ kī só-gé̤ṳ-kó gì guāng-lī-uòng cūng-kuāng gāi-sék: $1',
 'gotaccountlink' => '躒底',
 'userlogin-resetlink' => '躒底其資料𣍐記咯?',
 'userlogin-resetpassword-link' => '密码𣍐記?',
-'helplogin-url' => 'Help: 躒底',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|幫助躒底]]',
 'createacct-join' => '敆下底輸底汝其信息。',
 'createacct-emailrequired' => '電子郵件地址',
 'createacct-emailoptional' => '電子郵件地址(愛寫就寫)',
@@ -684,7 +682,7 @@ Sō̤ kī só-gé̤ṳ-kó gì guāng-lī-uòng cūng-kuāng gāi-sék: $1',
 茲蜀萆新其賬戶其密碼會使敆用戶躒底以後著''[[Special:ChangePassword|改密碼]]''頁面𡅏改變。",
 'newarticle' => '(新)',
 'newarticletext' => '汝已經跟鏈接跟遘無存在其頁面了。
-卜想創建頁面,敆下底其框框𡅏拍字(覷蜀覷[[{{MediaWiki:Helppage}}|幫助頁面]]有無更更価其幫助)。
+卜想創建頁面,敆下底其框框𡅏拍字(覷蜀覷[$1 幫助頁面]有無更更価其幫助)。
 如果汝是無注意來遘茲蜀萆頁面,篤囇汝其瀏覽器上其「返回」按鈕。',
 'anontalkpagetext' => "''茲是未躒底其用戶討論頁面。''
 故此儂家著使數字IP來確定伊。
@@ -749,7 +747,7 @@ Sō̤ kī só-gé̤ṳ-kó gì guāng-lī-uòng cūng-kuāng gāi-sék: $1',
 說明:(伶)=共第一新其版本比並,(前)=共前蜀版本比並,~=過要修改。",
 'history-fieldset-title' => '瀏覽歷史',
 'history-show-deleted' => '囇刪掉去',
-'histfirst' => 'æ\9c\80æ\97©',
+'histfirst' => 'æ\9c\80æ\97§',
 'histlast' => '最遲',
 'historysize' => '({{PLURAL:$1|$1字節}})',
 
index 4219849..0da33fa 100644 (file)
@@ -327,7 +327,7 @@ $messages = array(
 'tog-usenewrc' => 'Лелабе дика могӀам керла чу хийцамашна (оьшу JavaScript)',
 'tog-numberheadings' => 'Ша шех хlитто терахь корташна',
 'tog-showtoolbar' => 'Гайта лакхара гӀирсан дакъа нисйеш аттон оц тадар чохь (JavaScript)',
-'tog-editondblclick' => 'Нисйе агӀонаш шозза тӀетаӀийча (JavaScript)',
+'tog-editondblclick' => 'Нисъе агӀонаш шозза тӀетаӀийча (JavaScript)',
 'tog-editsectiononrightclick' => 'Нисде дакъа шозза бакъехьар дахка тӀетаӀийча оцу кортан (JavaScript)',
 'tog-rememberpassword' => 'Даглаца сан дӀаяздар хӀокху браузеран тӀехь (цхьан $1 {{PLURAL:$1|дийнахь}})',
 'tog-watchcreations' => 'ТӀетоха ас кхоьллина агӀонаш тергаме могӀам чу',
@@ -355,7 +355,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Дlадахьийта суна исанна кехат, аса дохьуьйтуш долу кхечу декъашхошна.',
 'tog-diffonly' => 'Ма гайта агlон чулацам шина башхонца цхьатерра йолуш',
 'tog-showhiddencats' => 'Гайта къайлаха йолу категореш',
-'tog-noconvertlink' => 'Хааман хьажораг кхуллу гӀирс дӀабайа',
 'tog-norollbackdiff' => 'Юха яккхиначул тӀаьхьа ма гайта версешан башхо',
 'tog-useeditwarning' => 'Хаамбе бина хийцамаш дӀаязцабеш аса болх дӀатосучу хенахь',
 'tog-prefershttps' => 'Даима лела йе лардина системин чудалар',
@@ -470,7 +469,7 @@ $messages = array(
 # Cologne Blue skin
 'qbfind' => 'Лаха',
 'qbbrowse' => 'Хьажар',
-'qbedit' => 'Нисйé',
+'qbedit' => 'Нисъе',
 'qbpageoptions' => 'Агlо нисйар',
 'qbmyoptions' => 'Хьан нисдарш',
 'faq' => 'СиХХ',
@@ -484,7 +483,7 @@ $messages = array(
 'vector-action-undelete' => 'Меттахlоттадé',
 'vector-action-unprotect' => 'ГӀароллех къаста',
 'vector-view-create' => 'Кхоллар',
-'vector-view-edit' => 'Нисйé',
+'vector-view-edit' => 'Нисъе',
 'vector-view-history' => 'АгӀона хийцамаш',
 'vector-view-view' => 'Éшар',
 'vector-view-viewsource' => 'Билглонашка хьажа',
@@ -508,9 +507,9 @@ $messages = array(
 'permalink' => 'Даиман йолу хьажораг',
 'print' => 'Зорба тоха',
 'view' => 'Хьажа',
-'edit' => 'Нисйé',
+'edit' => 'Нисъе',
 'create' => 'Кхолла',
-'editthispage' => 'Нисйé хlара агlо',
+'editthispage' => 'Нисъе хӀъара агӀо',
 'create-this-page' => 'Кхолла хlара агlо',
 'delete' => 'ДӀаяккха',
 'deletethispage' => 'ДӀаяккха хӀара агӀо',
@@ -568,14 +567,13 @@ $1',
 'disclaimers' => 'Бехк тӀе ца эцар',
 'disclaimerpage' => 'Project:Бяхк тӀецалацар',
 'edithelp' => 'ГӀо оцу тадарна',
-'helppage' => 'Help:Чулацам',
 'mainpage' => 'Коьрта агӀо',
 'mainpage-description' => 'Коьрта агӀо',
 'policy-url' => 'Project:Бакъо',
 'portal' => 'Юкъараллин ков',
 'portal-url' => 'Project:Юкъараллин ков',
-'privacy' => 'Ð\9fолиÑ\82ика ÐºÑ\8aайлаÑ\85а',
-'privacypage' => 'Project:Ð\9fолиÑ\82ика ÐºÑ\8aайлаÑ\85а',
+'privacy' => 'Ð\9aÑ\8aайлаÑ\85а Ð¿Ð¾Ð»Ð¸Ñ\82ика',
+'privacypage' => 'Project:Ð\9aÑ\8aайлаÑ\85а Ð¿Ð¾Ð»Ð¸Ñ\82ика',
 
 'badaccess' => 'ТӀекхачарехь гӀалат',
 'badaccess-group0' => 'Шуьга кхочуш далур дац дехарца деш дерг',
@@ -594,10 +592,10 @@ $1',
 'newmessageslinkplural' => '{{PLURAL:$1|керла хаам|999=керла хаамаш}}',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|тӀаьхьара бина хийцам|999=тӀаьхьара бина хийцамаш}}',
 'youhavenewmessagesmulti' => 'Хьуна кхаьчна керла хаам оцу $1',
-'editsection' => 'нисйé',
-'editold' => 'нисйé',
+'editsection' => 'нисъе',
+'editold' => 'нисъе',
 'viewsourceold' => 'хьажа йолуш йолучу коде',
-'editlink' => 'нисйé',
+'editlink' => 'нисъе',
 'viewsourcelink' => 'хьажа йолуш йолучу коде',
 'editsectionhint' => 'Нисде дакъа: $1',
 'toc' => 'Чулацам',
@@ -625,7 +623,7 @@ $1',
 'nstab-main' => 'Яззам',
 'nstab-user' => 'Декъашхо',
 'nstab-media' => 'Медиа агӀо',
-'nstab-special' => 'Белха агlо',
+'nstab-special' => 'Белха агӀо',
 'nstab-project' => 'Проектах лаьцна',
 'nstab-image' => 'Файл',
 'nstab-mediawiki' => 'Хаам',
@@ -695,13 +693,15 @@ URL язъеш гӀалат даьлла хила мега.
 'viewsource-title' => 'Агӏона $1 дуьххьарлера йозане хьажар',
 'actionthrottled' => 'Сиххалин доза тохар',
 'actionthrottledtext' => 'Спам цахилийта хӀара дешдерг кӀезиг хенахь дукху ца дайта дихкина ду. Дехар до массийта минот яьлча гӀорта.',
-'protectedpagetext' => 'ХӀара агӀо дӀакъойлина йу рé цадаккхийта.',
+'protectedpagetext' => 'ХӀара агӀо дӀакъоьвлина ю тадарш ца дайта.',
 'viewsourcetext' => 'Хьоьга далундерг хьажар а дезахь хlокху агlон чура йоза хьаэцар:',
 'viewyourtext' => "Хьан йиш ю '''хьой нисдинчу''' дӀадолалун йозе хьажа а цуна копи ян а:",
 'protectedinterface' => 'ХӀара схьгайтарна гӀирса хаамаш латтош йолу агӀо ю. Куьйгалхошна бен иза хийца цало.',
 'editinginterface' => "'''Тергам бе:''' Ахьа таеш ю интерфейсан йоза долу агӀо програмин латторан.
 Цуна бина хийцам хьокху википедин кхечу декъашхошна гур бу.
 Хьокху хаамийн гочдар тӀетоха я хийца лела йе сайт MediaWiki [//translatewiki.net/ translatewiki.net].",
+'cascadeprotected' => 'АгӀо хийцам ца байта гӀоралла дина ю {{PLURAL:$1|хӀокху агӀона|хӀокху агӀонийн}} юкъа йогӀуш хилар бахьнехь:
+$2',
 'namespaceprotected' => 'ХӀан бакъо яц анна цӀераш чохь тадарш да «$1».',
 'customcssprotected' => 'Хьан бакъо яц хӀара CSS-агӀо тая, иза кхечу декъашхочун гӀерс болу дера.',
 'customjsprotected' => 'Хьан бакъо яц хӀара JavaScript-агӀо тая, иза кхечу декъашхочун гӀерс болу дера.',
@@ -712,9 +712,17 @@ URL язъеш гӀалат даьлла хила мега.
 'ns-specialprotected' => 'ХӀокху «{{ns:special}}» цӀерийн меттигашан агӀонаш таян йиш яц.',
 'titleprotected' => "[[Декъашхочо:$1|$1]] дихкина ишта корта болуш агӀо кхоллар.
 Гайтина бахьна: ''$2''.",
+'filereadonlyerror' => "файл хийца цатарло «$1», «$2» Ӏалаш ечехь ешаран хьолехь хилар бахьнехь.
+
+ХӀара хьал хӀоттиначу куьйгалхочо битина хаам: «''$3''».",
+'invalidtitle-knownnamespace' => 'Магийна боцу коьртамогӀа цӀерийн меттигца «$2» йоза  «$3»',
+'invalidtitle-unknownnamespace' => 'Магийна боцу коьртамогӀа ца йовза меттигца $1 «$2» йозанца',
 'exception-nologin' => 'ХӀинца а ахьа системин чохь болх беш бац',
+'exception-nologin-text' => 'Иза дан [[Special:Userlogin|системин чугӀо]].',
+'exception-nologin-text-manual' => 'АгӀо тӀекхача луш хилийта оьшу $1.',
 
 # Virus scanner
+'virus-badscanner' => "Нисяран гӀалат. Ца йовза вирусийн сканер: ''$1''",
 'virus-scanfailed' => 'сканиран гӀалат (код $1)',
 'virus-unknownscanner' => 'йозуш йоцу антивирус:',
 
@@ -736,11 +744,12 @@ URL язъеш гӀалат даьлла хила мега.
 'yourpasswordagain' => 'Юха язъе пароль:',
 'createacct-yourpasswordagain' => 'Бакъ йе пароль',
 'createacct-yourpasswordagain-ph' => 'Кхин цкъа язъе пароль',
-'remembermypassword' => 'Даглаца сан дӀаяздар хӀокху компьютеран тӀехь (цхьан $1 {{PLURAL:$1|динахь}})',
+'remembermypassword' => 'Ð\94аглаÑ\86а Ñ\81ан Ð´Ó\80аÑ\8fздаÑ\80 Ñ\85Ó\80окÑ\85Ñ\83 ÐºÐ¾Ð¼Ð¿Ñ\8cÑ\8eÑ\82еÑ\80ан Ñ\82Ó\80еÑ\85Ñ\8c (Ñ\86Ñ\85Ñ\8cан $1 {{PLURAL:$1|дийнаÑ\85Ñ\8c}})',
 'userlogin-remembermypassword' => 'Дагахь латт ве/е со',
 'userlogin-signwithsecure' => 'Ларийна цхьаьнакхетар',
 'yourdomainname' => 'Хьан машан меттиг:',
 'password-change-forbidden' => 'Хьан йиш яц хӀокху вики чохь пароль хийца.',
+'externaldberror' => 'Арахьара хаамийн базан гӀоьнца аутентификаци ечу хенахь гӀалат даьлла я хьа дӀаяздаран хийцам бан бакъонаш яц.',
 'login' => 'Системин чугӀо',
 'nav-login-createaccount' => 'Системин чугӀо / дӀаяздар кхолла',
 'loginprompt' => 'Ахьа бакъо яла еза оцу «cookies» хьайна системин чохь болхбан лаахь.',
@@ -758,8 +767,7 @@ URL язъеш гӀалат даьлла хила мега.
 'gotaccountlink' => 'Довзийта',
 'userlogin-resetlink' => 'Чуволу/йолу хаам биц бела?',
 'userlogin-resetpassword-link' => 'Пароль кхоссар?',
-'helplogin-url' => 'Help:Системин довзийтар',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Системин чудаха гӀодар]]',
+'userlogin-helplink2' => 'Системин чудахаран гӀодар',
 'userlogin-loggedin' => 'Хьо {{GENDER:$1|$1}} цӀарца чохь ву/ю.
 Лахара форманца кхин цӀарца чугӀо.',
 'userlogin-createanother' => 'Кхолла декъашхочун кхин дӀаяздар',
@@ -771,7 +779,7 @@ URL язъеш гӀалат даьлла хила мега.
 'createacct-another-email-ph' => 'ДӀаязде электронан почтан адрес',
 'createaccountmail' => 'хааман зӀене хула',
 'createacct-realname' => 'Хьан цӀе (ца язйича мега)',
-'createaccountreason' => 'Ð\91аÑ\85Ñ\8cан:',
+'createaccountreason' => 'Ð\91аÑ\85Ñ\8cна:',
 'createacct-reason' => 'Бахьна',
 'createacct-reason-ph' => 'Стен кхуллуш ду ахьа керла декъашхочун дӀаяздар',
 'createacct-captcha' => 'Кхерамзалла хьажар',
@@ -787,7 +795,9 @@ URL язъеш гӀалат даьлла хила мега.
 'loginerror' => 'Гlалат ду декъашхо вовзарехь/йовзарехь',
 'createacct-error' => 'ДӀаяздар кхуллуш гӀалат ду',
 'createaccounterror' => 'Декъашхочун дӀаяздар кхолла йиш яц: $1',
+'nocookiesnew' => 'Декъашхочун дӀаяздар ду амма системин чохь вац/яц. Декъашхой чу гӀош {{SITENAME}} «cookies» лелош ю. Хьа «cookies» лелаян магийна дац дехар до и магийтина керлачу цӀарца а паролаца а системин чугӀо.',
 'nocookieslogin' => '{{SITENAME}} лелош ю «cookies» декъашхой системин  чуболучу хенахь. Ахьа иш дӀайаьйина.',
+'nocookiesfornew' => 'Хьост хьажа йиш цахиларна декъашхочун дӀаяздар цакхоьллина. Хьажа «cookies» латина юьй такха агӀо карлаяьккхина юху гӀорта.',
 'nocookiesforlogin' => '{{int:nocookieslogin}}',
 'noname' => 'Ахьа магийтина йолу декъашхочун цӀе билгал йина яц.',
 'loginsuccesstitle' => 'Хьан пароль тӀеэца, марша догӀила Википеди чу!',
@@ -828,11 +838,18 @@ URL язъеш гӀалат даьлла хила мега.
 'login-abort-generic' => 'Сестемин довзийта тарцаделира',
 'loginlanguagelabel' => 'Мотт: $1',
 'pt-login' => 'ЧугӀо',
+'pt-login-button' => 'ЧугӀо',
 'pt-createaccount' => 'Кхолла декъашхочун дӀаяздар',
 'pt-userlogout' => 'Болх дӀаберзор',
 
+# Email sending
+'php-mail-error-unknown' => 'PHP-функцин mail() доьвзуш доцу гӀалат',
+'user-mail-no-addy' => 'Электронан адрес доцуш гӀерта электронан хаам бахьийта',
+'user-mail-no-body' => 'Баьсса я тӀех боца электронан хаам бахьийта гӀерта.',
+
 # Change password dialog
 'changepassword' => 'Хийца пароль',
+'resetpass_announce' => 'Чудахар чекх далийта хӀотта йе керла пароль.',
 'resetpass_text' => '<!-- Кхузахь язъде хьай йоза -->',
 'resetpass_header' => 'Хийца дӀаяздаран пароль',
 'oldpassword' => 'Шираелла пароль:',
@@ -840,22 +857,52 @@ URL язъеш гӀалат даьлла хила мега.
 'retypenew' => 'Юха язъйе керла пароль:',
 'resetpass_submit' => 'Пароль дӀахӀоттийна системин чугӀо',
 'changepassword-success' => 'Хьан пароль кхиамца хийцина!',
+'changepassword-throttled' => 'Хьо дукха гӀиртира.
+Дехар до, собар де $1 юха гӀортале.',
 'resetpass_forbidden' => 'Пароль хийца йиш яц',
 'resetpass-no-info' => 'ХӀара агӀо лело системин чугӀо.',
 'resetpass-submit-loggedin' => 'Хийца пароль',
 'resetpass-submit-cancel' => 'Цаоьшу',
+'resetpass-wrong-oldpass' => 'Нийса йоцу я хана йолу карара пароль. Ахьа кхиамца пароль хийцина я керла хана йолу пароль ехна хила там бу.',
+'resetpass-recycled' => 'Дехар до, хӀинца йолччул башха пароль хӀотта йе.',
+'resetpass-temp-emailed' => 'Ахьа чугӀош язйина цкъачунна электронан почте яийтина пароль. Чудахар чекхдалийта язъян еза керла пароль.',
 'resetpass-temp-password' => 'Цхьан хана пароль:',
 'resetpass-abort-generic' => 'Пароль хийцар дӀахедар',
+'resetpass-expired' => 'Хьан паролан хан чекхелла. Дехар до керла пароль хӀоттаяр.',
+'resetpass-expired-soft' => 'Хьа паролан хан чекхелла. Дехар до, харжа керла пароль я тӀетаӀе «{{int:resetpass-submit-cancel}}», и тӀехо хица.',
+'resetpass-validity-soft' => 'Хьа пароль нийса яц: $1
+
+Дехар до, харжа керла пароль я тӀетаӀе  «{{int:resetpass-submit-cancel}}», и тӀехо кхосса.',
 
 # Special:PasswordReset
 'passwordreset' => 'Пароль кхоссар',
+'passwordreset-text-one' => 'Хьай пароль кхосса, юза хӀара форма.',
 'passwordreset-text-many' => '{{PLURAL:$1|Пароль кхосса юза лахара цхьа меттиг.}}',
 'passwordreset-legend' => 'Пароль кхоссар',
+'passwordreset-disabled' => 'ХӀокху вики чохь пароль кхоссар дӀадайина ду.',
+'passwordreset-emaildisabled' => 'Электронан почтан функцеш хӀокху вики чохь дӀаяйина ю.',
 'passwordreset-username' => 'Декъашхочун цӀе:',
 'passwordreset-domain' => 'Домен:',
 'passwordreset-capture' => 'Хьажа беанчу хааме?',
+'passwordreset-capture-help' => 'Ахьа хӀара билгало хӀотта яхь хьона гур бу декъашхочо баийта чохь хана пароль йолу хаам.',
 'passwordreset-email' => 'Электронан почтан адрес:',
 'passwordreset-emailtitle' => '{{SITENAME}}: декъашхочун дӀаяздарх лаьцна хаам',
+'passwordreset-emailtext-ip' => '{{SITENAME}} ($4) проектехь цхьам я ахьа хӀокху IP-адрес $1 тӀера хьа декъашхочун пароль кхоссар дехна,
+оьцу электронан адресца дихкина ду {{PLURAL:$3|1хӀара декъашхочун дӀаяздар|хӀара декъашхочун дӀаяздар}}:
+
+$2
+
+{{PLURAL:$3|ХӀара хана пароль|ХӀара хана паролаш}} лелар ю {{PLURAL:$5|$5 дийнахь}}.
+Системин чугӀой харжа керла пароль. 
+Хьой пароль кхоссар дехна дацахь я хьалхалера пароль дага еънехь хӀума цадеш Ӏад битта хӀара хаам хьа йиш ю шира пароль лелаян.',
+'passwordreset-emailtext-user' => '{{SITENAME}} ($4) проектера декъашхочо $1 хьа декъашхочун пароль кхоссар дехна,
+оьцу электронан адресца дихкина ду {{PLURAL:$3|1хӀара декъашхочун дӀаяздар|хӀара декъашхочун дӀаяздар}}:
+
+$2
+
+{{PLURAL:$3|ХӀара хана пароль|ХӀара хана паролаш}} лелар ю {{PLURAL:$5|$5 дийнахь}}.
+Системин чугӀой харжа керла пароль. 
+Хьой пароль кхоссар дехна дацахь я хьалхалера пароль дага еънехь хӀума цадеш Ӏад битта хӀара хаам хьа йиш ю шира пароль лелаян.',
 'passwordreset-emailelement' => 'Декъашхочун цӀе: $1
 Ханна йолу пароль: $2',
 'passwordreset-emailsent' => 'Электронан хаам баийтина кхоьссинчу паролах лаьцна хаам чохь болуш.',
@@ -937,7 +984,7 @@ URL язъеш гӀалат даьлла хила мега.
 Чуваьлла/яла чул тӀехьа , кху гlирса чохь шуьга хийцалур ю ''[[Special:ChangePassword|шай пароль]]''.",
 'newarticle' => '(Kерла)',
 'newarticletext' => "Хьо веана хьажоригци хlокху агlон тlе, хlара агlо хlинца йоцаш ю.
-Нагахь иза кхолла лаахь, хlотта де лахо гуш долу корехь йоза (мадарра хьажа. [[{{MediaWiki:Helppage}}|гlон агlон чу]]).
+Нагахь иза кхолла лаахь, хlотта де лахо гуш долу корехь йоза (мадарра хьажа. [$1 гlон агlон чу]).
 Нагахь гlалат даьлла нисвелляхь кхузе, атта тlе тlаlа йе '''юха йоккхуриг''' хьай гlирса тlяхь.",
 'anontalkpagetext' => "----''ХӀара дийцаре агӀо къайлаха декъашхочуьна ю, хӀинца дӀаяздар доцу, я лелош воцуш/йоцуш.
 Цундела иза вовзийта/йовзийта лелош ду терахьца IP-адрес.
@@ -1047,6 +1094,7 @@ URL язъеш гӀалат даьлла хила мега.
 'post-expand-template-argument-category' => 'Кепашан аргументаш юкъахь йитина агӀонаш',
 'parser-template-loop-warning' => 'Карийна кепаш юкъахь хилла шад: [[$1]]',
 'parser-template-recursion-depth-warning' => 'Дозанал хьаладаьлла кӀоргенца юх юха дина кеп ($1)',
+'parser-unstrip-loop-warning' => 'ДӀачӀагӀанца pre карина',
 
 # "Undo" feature
 'undo-success' => 'Нисйинарг а тlе цалаца мега. Дехар до, хьажа цхьатерра йуй башхо, тешна хила, баккъалла иза хийцам буйте хьуна безарг, тlакха тlе таlайе «дlайазйе агlо», хийцам хlотта ба.',
@@ -1086,13 +1134,22 @@ URL язъеш гӀалат даьлла хила мега.
 'rev-deleted-comment' => '(нисдарах лаьцна хаам дӀабаьккхина)',
 'rev-deleted-user' => '(авторан цӏе дӏаяйина)',
 'rev-deleted-event' => '(дӀаяздар дӀаяьккхина)',
+'rev-deleted-user-contribs' => '[декъашхочун цӀе я IP-адрес дӀаяхина — къинхьегаман агӀонгара нисдар къайлаяьккхина]',
+'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}}/delete|page={{FULLPAGENAMEE}}}} дӀаяьхнарш йолу тептар чохь].
+Хьайна лаахь хьа йиш ю [$1 и верси хьажа].",
 'rev-deleted-text-view' => "ХӀара агӀона верси '''дӀаяьккхина''' ю.
 Бахьна далина [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дӀаяьхнарш йолу тептар чохь].",
+'rev-suppressed-text-view' => "ХӀара агӀона верси '''къайлаяьккхина''' ю.
+Бахьна далина [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дӀаяьхнарш йолу тептар чохь].",
 'rev-deleted-no-diff' => "АгӀона цхьа верси '''дӀаяьккхина''' хилар бахьнехь, хӀуна версийн башхалла хьажа цало.
 Мадарра каро мега [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} дӀаяккхаран тептар чохь].",
+'rev-suppressed-no-diff' => "Хьо хӀокху версешан башхала хьажа цало, царах цхьаъ '''дӀаяьккхина''' хилар бахьнехь.",
 'rev-delundel' => 'гайта/къайла',
 'rev-showdeleted' => 'гайта',
 'revisiondelete' => 'ДӀаяха / меттахӀотае агӀона версеш',
@@ -1102,9 +1159,7 @@ URL язъеш гӀалат даьлла хила мега.
 'revdelete-show-file-confirm' => 'Бакъалла лаьий хьуна дӀаяьккхина файлан версега хьажа «<nowiki>$1</nowiki>» $2 тӀера, $3?',
 'revdelete-show-file-submit' => 'Хlаъ',
 'revdelete-selected' => "'''АгӀона [[:$1]] {{PLURAL:$2|1=къастина верси|къастина версеш}}:'''",
-'logdelete-selected' => "'''Тептар чура {{PLURAL:$1|1=хаьржина дӀаяздар|хаьржина дӀаяздарш}}:'''",
-'revdelete-text' => "'''ДӀаяхна агӀонашан версеш а хелларш а гуш хир ду агӀона истори а тептаран а чохь, амма цара чулацам куьйгалхошна бен тӀекхочу чохь хир бац.'''
-{{SITENAME}} проектан куьйгалхойн йиш хир ю хӀокху интерфейс чухула дӀааьхинарш меттахӀотта я.",
+'logdelete-selected' => '<strong>Тептар чура {{PLURAL:$1|хаьржина дӀаяздар|хаьржина дӀаяздарш}}:</strong>',
 'revdelete-confirm' => 'Дехар до, бакъдар ахьа деш дерг [[{{MediaWiki:Policy-url}}|бакъонашца]] деш хилар.',
 'revdelete-legend' => 'Доза тохар',
 'revdelete-hide-text' => 'Къайладаккха хӀокху агӀона чура йоза',
@@ -1118,7 +1173,7 @@ URL язъеш гӀалат даьлла хила мега.
 'revdelete-radio-unset' => 'Гуш ерг',
 'revdelete-suppress' => 'Къайлабаха хаамаш куьйгалхойх а',
 'revdelete-unsuppress' => 'МеттахӀоьттина версешан дихкар къайладаккха',
-'revdelete-log' => 'Ð\91аÑ\85Ñ\8cан:',
+'revdelete-log' => 'Ð\91аÑ\85Ñ\8cна:',
 'revdelete-submit' => 'Кхочушде {{PLURAL:$1|1=къастина версин|къастина версийн}}',
 'revdelete-success' => "'''Версеш гуш хилар кхиамца хийцина.'''",
 'revdelete-failure' => "'''Версеш гуш хилар хийца йиш яц:'''
@@ -1136,7 +1191,7 @@ $1",
 ** Бита йиш йоцу шех лаьцна хаам
 ** Бакъдоцург зуламан хаам',
 'revdelete-otherreason' => 'Кхин бахьна/тӀетохар:',
-'revdelete-reasonotherlist' => 'Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cан',
+'revdelete-reasonotherlist' => 'Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cна',
 'revdelete-edit-reasonlist' => 'Бахьанин список нисяр',
 'revdelete-offender' => 'АгӀона версен автор:',
 
@@ -1160,7 +1215,7 @@ $1",
 'mergehistory-invalid-destination' => 'Юзийна агӀона нийса корта хила еза.',
 'mergehistory-autocomment' => 'Дехьа яьккхина [[:$1]] [[:$2]] чу',
 'mergehistory-comment' => 'Дехьа яьккхина [[:$1]] [[:$2]] чу: $3',
-'mergehistory-reason' => 'Ð\91аÑ\85Ñ\8cан:',
+'mergehistory-reason' => 'Ð\91аÑ\85Ñ\8cна:',
 
 # Merge log
 'mergelog' => 'Цхьаьнатохаршан тептар',
@@ -1180,6 +1235,7 @@ $1",
 'diff-empty' => '(башхалла яц)',
 'diff-multi-sameuser' => '(ца {{PLURAL:$1|гайтина юккъера цхьа верси|гайтина юккъера цхьа версеш}} оьцу декъашхочун)',
 'diff-multi-otherusers' => '(ца {{PLURAL:$1|гайтина юккъера верси|гайтина юккъера версеш}} {{PLURAL:$2|кхин цхьан декъашхочун|$2 декъашхойн}})',
+'diff-multi-manyusers' => '({{PLURAL:$1|гайтина яц $1 юккъера верси, йина|не показаны $1 юккъера версеш, йина}} {{PLURAL:$2|$2 декъашхочо|$2 декъашхоша}})',
 
 # Search results
 'searchresults' => 'Лахарна хилам',
@@ -1236,6 +1292,7 @@ $1",
 'preferences' => 'Гlирс нисбан',
 'mypreferences' => 'ГӀирс нисбан',
 'prefs-edits' => 'Нисдарши дукхалла:',
+'prefsnologintext2' => 'Оьшу $1, гӀирс дӀанисбан.',
 'prefs-skin' => 'Кечяран тема',
 'skin-preview' => 'Хьалха муха ю хьажа',
 'datedefault' => 'Iад йитарца',
@@ -1247,16 +1304,17 @@ $1",
 'prefs-rc' => 'Керла нисдарш',
 'prefs-watchlist' => 'Тергаме могӀам',
 'prefs-watchlist-days' => 'Денойн дукхалла:',
-'prefs-watchlist-days-max' => 'Къезиг  $1 {{PLURAL:$1|дена}}',
+'prefs-watchlist-days-max' => 'Къезиг $1 {{PLURAL:$1|дена}}',
 'prefs-watchlist-edits' => 'Тергаме могӀам чохь гойтучу нисдаршан максимальни дукхалла:',
 'prefs-watchlist-edits-max' => 'Уггар дукха: 1000',
 'prefs-watchlist-token' => 'Тергаме могӀанан токен:',
 'prefs-misc' => 'Кхин гlирсаш',
 'prefs-resetpass' => 'Хийца пароль',
 'prefs-changeemail' => 'Хийца электрони почт',
+'prefs-setemail' => 'Электронан почтан адрес дӀахӀоттор',
 'prefs-email' => 'Электронан почтан параметраш',
 'prefs-rendering' => 'Арахьара хатl',
-'saveprefs' => 'lалашдан',
+'saveprefs' => 'Ӏалашдан',
 'restoreprefs' => 'МеттахӀоттабе гӀирс Iад битарца',
 'prefs-editing' => 'Тадар',
 'rows' => 'МогӀанаш:',
@@ -1265,7 +1323,7 @@ $1",
 'stub-threshold' => 'Кеч яран доза <a href="#" class="stub">коьртамогӀамна хьажорагаш</a> (байташках):',
 'stub-threshold-disabled' => 'ДӀадайина',
 'recentchangesdays' => 'Керла нисдар гайта динахь:',
-'recentchangesdays-max' => 'Къезиг  $1 {{PLURAL:$1|дена}}',
+'recentchangesdays-max' => 'Къезиг $1 {{PLURAL:$1|дена}}',
 'recentchangescount' => 'Iад йитарца гойтуш долу нисдаршан дукхалла',
 'prefs-help-recentchangescount' => 'Гойту керла нисдарш, агӀонашан истори, тептарш.',
 'prefs-help-watchlist-token2' => 'Иза хьан тергаме могӀан къайла догӀа ду.
@@ -1297,7 +1355,7 @@ $1",
 'youremail' => 'Кехат яздо зlе цlе:',
 'username' => '{{GENDER:$1|Декъашхочун цӀе}}:',
 'uid' => 'Декъашхочун {{GENDER:$1|код}}:',
-'prefs-memberingroups' => '{{GENDER:$2|Тобана|Тобана}} {{PLURAL:$1|1=декъашхо|декъашхо}}:',
+'prefs-memberingroups' => '{{GENDER:$1|Тобана|Тобаншан}} {{PLURAL:$2|декъашхо|декъашхой}}:',
 'prefs-registration' => 'ДӀаяздар кхолийна хан:',
 'yourrealname' => 'Хьан бакъ цlе:',
 'yourlanguage' => 'Мотт:',
@@ -1315,6 +1373,7 @@ $1",
 'email' => 'Email',
 'prefs-help-email' => 'Электронан почтан адрес цахӀоттийча а хӀумма дац, амма иза оьшар ю, нагахь хьуна хьай пароль йицлахь.',
 'prefs-help-email-others' => 'Кхин дӀа цо кхечу декъашхошна йиш хуьлуьйту хьога электронан кехат даийта хьан агӀона чохь йолу хьажориган гӀоьнца.',
+'prefs-help-email-required' => 'Электронан почтан адрес яздан деза.',
 'prefs-info' => 'Коьрта хаам',
 'prefs-i18n' => 'Юкъардекъа мотт',
 'prefs-signature' => 'КуьгтаӀор',
@@ -1361,7 +1420,7 @@ $1",
 'group' => 'Тоба:',
 'group-user' => 'Декъашхой',
 'group-autoconfirmed' => 'Ша тӀелаьцболу декъашхой',
-'group-bot' => 'ШаболÑ\85Ñ\85ой',
+'group-bot' => 'Ð\91оÑ\82аÑ\88',
 'group-sysop' => 'Куьйгалхой',
 'group-bureaucrat' => 'Бюрократаш',
 'group-suppress' => 'Ревизораш',
@@ -1369,14 +1428,14 @@ $1",
 
 'group-user-member' => '{{GENDER:$1|декъашхо}}',
 'group-autoconfirmed-member' => '{{GENDER:$1|шашеха тӀелаьцна декъашхо}}',
-'group-bot-member' => 'шаболххо',
+'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}}:Бакъонаш йолу декъашхой',
-'grouppage-bot' => '{{ns:project}}:ШаболÑ\85Ñ\85ой',
+'grouppage-bot' => '{{ns:project}}:Ð\91оÑ\82аÑ\88',
 'grouppage-sysop' => '{{ns:project}}:Куьйгалхой',
 'grouppage-bureaucrat' => '{{ns:project}}:Бюрократаш',
 'grouppage-suppress' => '{{ns:project}}:Ревизораш',
@@ -1408,8 +1467,8 @@ $1",
 'right-bigdelete' => 'еха хийцаман истори йолу агӀонаш дӀаяхар',
 'right-deletelogentry' => 'тептар чура билгала дӀаяздарш дӀадахар а меттахӀиттадар а.',
 'right-deleterevision' => 'агӀонийн билгала версеш дӀаяхар а меттахӀиттаяр а',
-'right-deletedhistory' => 'дӀаяхна агӀонийн исторега хьажар дӀадаьккхина йоза тӀекхочехь доцуш',
-'right-deletedtext' => 'дӀадаьккхина йозане а хийцамашка а хьажар агӀонийн дӀаяхна версин юккъахь',
+'right-deletedhistory' => 'дÓ\80аÑ\8fÑ\8cÑ\85на Ð°Ð³Ó\80онийн Ð¸Ñ\81Ñ\82оÑ\80ега Ñ\85Ñ\8cажаÑ\80 Ð´Ó\80адаÑ\8cккÑ\85ина Ð¹Ð¾Ð·Ð° Ñ\82Ó\80екÑ\85оÑ\87еÑ\85Ñ\8c Ð´Ð¾Ñ\86Ñ\83Ñ\88',
+'right-deletedtext' => 'дÓ\80адаÑ\8cккÑ\85ина Ð¹Ð¾Ð·Ð°Ð½Ðµ Ð° Ñ\85ийÑ\86амаÑ\88ка Ð° Ñ\85Ñ\8cажаÑ\80 Ð°Ð³Ó\80онийн Ð´Ó\80аÑ\8fÑ\8cÑ\85на Ð²ÐµÑ\80Ñ\81ин Ñ\8eккÑ\8aаÑ\85Ñ\8c',
 'right-browsearchive' => 'дӀаяхна агӀонаш лахар',
 'right-undelete' => 'АгӀонаш меттахӀоттор',
 'right-suppressrevision' => 'куьйгалхойх хьулйина йолу агӀонийн версеш меттахӀиттаяр а хьажар а',
@@ -1472,41 +1531,54 @@ $1",
 '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 {{PLURAL:$1|хийцам|хийцамаш|хийцамаш}}',
+'nchanges' => '$1 {{PLURAL:$1|хийцам|хийцамаш}}',
+'enhancedrc-since-last-visit' => '$1 {{PLURAL:$1|тӀеххьара чудаларца}}',
 'enhancedrc-history' => 'истори',
 'recentchanges' => 'Керла нисдарш',
 'recentchanges-legend' => 'Гlирс нисбарна керла нисдарш',
 'recentchanges-summary' => 'Лахахь гайтина хене хьаьжна Википедин агӀонашкахь тӀаьхьара бина хийцамаш',
-'recentchanges-noresult' => 'Билгал йинчу хенахь цӀа хийцамаш бина бац.',
+'recentchanges-noresult' => 'Билгал йинчу хенахь цхьа хийцамаш бина бац.',
 'recentchanges-feed-description' => 'Тергам бе тlаьхьара вики хийцаман хlокху ларца.',
-'recentchanges-label-newpage' => 'Оцу нисдарца кхоллина керла агlо.',
+'recentchanges-label-newpage' => 'Оцу нисдарца кхоьллина керла агӀо.',
 'recentchanges-label-minor' => 'Хlара нисдинарг къастийна жимо долушсан',
 'recentchanges-label-bot' => 'ХӀара нисдар шаболх бечо дина',
 'recentchanges-label-unpatrolled' => 'ХӀара нисдар хӀинца цхьано патрулировать дина дац',
 'recentchanges-label-plusminus' => 'байташкахь барам хийцар',
 'recentchanges-legend-newpage' => '(хьажа кхин [[Special:NewPages|керла агӀонийн могӀа]])',
-'rcnotefrom' => "Лахахь гайтина тӀера '''$2''' хийцамаш ('''$1''' къезиг).",
+'rcnotefrom' => 'Лахахь гайтина тӀера <strong>$2</strong> (хийцамаш <strong>$1</strong> кӀезиг).',
 'rclistfrom' => 'Гайта хийцам оцу $1.',
 'rcshowhideminor' => '$1 кегийра нисдарш',
 'rcshowhideminor-show' => 'Гайта',
 'rcshowhideminor-hide' => 'Къайладаха',
-'rcshowhidebots' => '$1 шабелхалой',
+'rcshowhidebots' => '$1 боташ',
 'rcshowhidebots-show' => 'Гайта',
 'rcshowhidebots-hide' => 'Къайлабаха',
 'rcshowhideliu' => '$1 шайн цӀершца болу декъашхой',
@@ -1571,7 +1643,7 @@ $1",
 'upload-prohibited' => 'Магийна доцу файлийн тайпанаш: $1.',
 'uploadlog' => 'Чуяхаран тéптар',
 'uploadlogpage' => 'Чуяхаран тéптар',
-'uploadlogpagetext' => 'Лахахьа гойтуш бу тӀаьххьара чуяхна файлийн могӀам.
+'uploadlogpagetext' => 'Ð\9bаÑ\85аÑ\85Ñ\8cа Ð³Ð¾Ð¹Ñ\82Ñ\83Ñ\88 Ð±Ñ\83 Ñ\82Ó\80аÑ\8cÑ\85Ñ\85Ñ\8cаÑ\80а Ñ\87Ñ\83Ñ\8fÑ\8cÑ\85на Ñ\84айлийн Ð¼Ð¾Ð³Ó\80ам.
 Ишта хьажа [[Special:NewFiles|керлачу файлийн галерей]].',
 'filename' => 'Файлан цӀе',
 'filedesc' => 'Файлах лаьцна',
@@ -1586,6 +1658,17 @@ $1",
 'filetype-mime-mismatch' => 'Файлан шоръелла «.$1» оцунна MIME-тайпанца йогӀуш яц ($2).',
 'filetype-banned-type' => "'''«.$1»''' — {{PLURAL:$4|1=ца магийна файлан тайп|ца магийна файлийн тайпанаш}}.
 {{PLURAL:$3|1=Магийна файлан тайп ю|Магийна файлийн тайпанаш ю:}} $2.",
+'filetype-missing' => 'Файлан шоралла яц (масала, «.jpg»).',
+'empty-file' => 'Ахьа яхьийтина файл еса ю.',
+'file-too-large' => 'Ахьа яхьийтина файл тӀех йоккха ю.',
+'filename-tooshort' => 'Файлан цӀе тӀехь йоца ю.',
+'filetype-banned' => 'ХӀара файлийн тайп магийна яц.',
+'verification-error' => 'ХӀара файл хьаран чекх цаяьлла.',
+'illegal-filename' => 'Магийна йоцу файлан цӀе.',
+'overwrite' => 'йолуш йолу файл хийца магийна дац.',
+'unknown-error' => 'Ца довза гӀалат даьлла',
+'tmp-create-error' => 'Цатарло хана файл кхолла.',
+'tmp-write-error' => 'Хана файлан дӀаяздаран гӀалат',
 'emptyfile' => 'Ахьа чуйоккхуш йолу файл еса хийла там бу. Иза гӀалат хийла мега файлан цӀе нийса язйина йоцу дела. Дехар до хьажа бакъалла и юьй ахьа чуйоккхуш йолу файл.',
 'fileexists' => 'Иштта цӀе йолу файл йолуш ю. Дехар до, хьажа <strong>[[:$1]]</strong>, лаьий хьуна и хийца. 
 [[$1|thumb]]',
@@ -1612,8 +1695,14 @@ $1",
 'savefile' => 'ДӀаязе йе файл',
 'uploadedimage' => 'чуяьккхина «[[$1]]»',
 'overwroteimage' => 'Чуяьккхина файлан керла верси «[[$1]]»',
+'uploaddisabled' => 'Чуяккхар магийна дац',
+'copyuploaddisabled' => 'URL тӀера чуяккхар дӀадайина ду.',
+'uploadfromurl-queued' => 'Хьа чуяккхар рогӀехь ду.',
+'uploaddisabledtext' => 'Файлаш чуяхар дӀадайина ду.',
+'uploadscriptednamespace' => "ХӀокху SVG-файлан цӀерийн меттиг нийса яц '$1'",
 'upload-source' => 'ДIайолалун файл',
 'sourcefilename' => 'ДIайолалун файл:',
+'sourceurl' => 'Хьостан URL-адрес:',
 'destfilename' => 'Файлан керла цӀе:',
 'upload-maxfilesize' => 'Файлан: $1 максимальни барам',
 'upload-description' => 'Файлах лаьцна',
@@ -1635,20 +1724,54 @@ JD # Jenoptik
 MGP # Pentax
 PICT # тайп тайпан
  #</pre> <!-- битийша хlара могlа ша мабарра -->',
+'upload-success-subj' => 'Чуяккхар кхиамца чекхделира.',
+'upload-success-msg' => 'Хьа чуяккхар [$2] кхиамца чекхделира. Хиллачуьнга хьажа йиш ю кхузахь: [[:{{ns:file}}:$1]]',
+'upload-failure-subj' => 'Чуяккхаран бала',
+'upload-failure-msg' => 'Хьа чуяккхаран бала карина [$2]:
 
+$1',
+'upload-warning-subj' => 'ДӀахьедар',
+'upload-warning-msg' => 'Чуйоккхуш [$2] гӀалат даьлла. И нисдан юхагӀо [[Special:Upload/stash/$1|upload form]] чу.',
+
+'upload-proto-error' => 'Нийса йоцу протокол',
 'upload-file-error' => 'Чоьхьара гӀалат',
 'upload-unknown-size' => 'Хууш доцу барам',
 'upload-http-error' => 'Даьлла гӀалат HTTP: $1',
 
 # File backend
+'backend-fail-stream' => 'ДӀаяккха цатарло файл «$1».',
+'backend-fail-backup' => 'Таро яц файлан $1 тӀаьхьалонан копиян.',
+'backend-fail-notexists' => 'Файл $1 яц.',
+'backend-fail-hashes' => 'Башхо хьажа файлийн кэш схьаэца цаделира.',
+'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 чу яккха цаелира.',
+'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' => 'Файл $1 дӀаязъян цаелира, цуна барам $2 {{PLURAL:$2|байт}} сов хилар бахьнехь.',
 'backend-fail-readonly' => 'ХӀара «$1» хӀинца еша бен таро яц. Бахьна: «$2»',
 
+# Lock manager
+'lockmanager-notlocked' => 'БлокдӀаяккха цаелира "$1"; цуна блоктоьхна яц.',
+
+# Special:UploadStash
+'uploadstash' => 'Къайлаха чуяккхар',
+
 # HTTP errors
 'http-timed-out' => 'Хьежаран хан чекхели HTTP-жоп дехаран.',
 
 'license' => 'Бакъойалар:',
 'license-header' => 'Бакъойалар',
 'nolicense' => 'Яц',
+'license-nopreview' => '(Хьалха муха ю хьажа цало)',
 'upload_source_file' => ' (файл хьан компьютер чохь ю)',
 
 # Special:ListFiles
@@ -1657,6 +1780,7 @@ PICT # тайп тайпан
 'listfiles_search_for' => 'Лаха хIуман цIарца:',
 'imgfile' => 'файл',
 'listfiles' => 'Файлаш',
+'listfiles_thumb' => 'Жима',
 'listfiles_date' => 'Терахь',
 'listfiles_name' => 'Файлан цӀе',
 'listfiles_user' => 'Декъашхо',
@@ -1664,7 +1788,9 @@ PICT # тайп тайпан
 'listfiles_description' => 'Цуьнах лаьцна',
 'listfiles_count' => 'Верси',
 'listfiles-show-all' => 'Гайта суьртийн шира версеш',
+'listfiles-latestversion' => 'Карара верси',
 'listfiles-latestversion-yes' => 'ХӀаъ',
+'listfiles-latestversion-no' => 'ХӀахӀа',
 
 # File description page
 'file-anchor-link' => 'Файл',
@@ -1677,13 +1803,16 @@ PICT # тайп тайпан
 'filehist-datetime' => 'Терахь/Хан',
 'filehist-thumb' => 'Жима',
 'filehist-thumbtext' => 'Жимо башхо оцу $1',
+'filehist-nothumb' => 'Миниатюра яц',
 'filehist-user' => 'Декъашхо',
 'filehist-dimensions' => 'Файлан барам',
 'filehist-filesize' => 'Файлан барам',
 'filehist-comment' => 'Билгалдаккхар',
+'filehist-missing' => 'Файл яц',
 'imagelinks' => 'Файл лелор',
 'linkstoimage' => '{{PLURAL:$1|ТӀаьхьайогӀу $1 агӀо тӀетойжина|ТӀаьхьайогlу $1 агӀонаш тӀетойжина|ТӀаьхьайогӀу $1 агӀонаш тӀетойжина}} хӀокху файлан:',
 'nolinkstoimage' => 'АгӀонашчохь файл лелош яц.',
+'linkstoimage-redirect' => '$1 (файлан дӀасахьажораг) $2',
 'duplicatesoffile' => '{{PLURAL:$1|Лахара файл ю дубликат|Лахара $1 файлаш ю дубликаташ}} хӀокху файлан ([[Special:FileDuplicateSearch/$2|мадарра]]):',
 'sharedupload' => 'ХӀара хӀума оцун $1 чура ю иза хила мега лелош кхечу проекташкахь.',
 'sharedupload-desc-here' => 'ХӀара файл $1 чура ю и лело йиш ю массо проекташкахь.
@@ -1692,13 +1821,13 @@ PICT # тайп тайпан
 'filepage-nofile-link' => 'Ишта цӀе йолуш файл яц. Хьа йиш ю и [$1 чуяккха].',
 'uploadnewversion-linktext' => 'Чуяккха керла верси хӀокху файлан',
 'shared-repo-from' => '$1 чура',
-'shared-repo-name-wikimediacommons' => 'Ð\92икидlайÑ\83ллÑ\83Ñ\87е',
+'shared-repo-name-wikimediacommons' => 'Ð\92икигÑ\83лам',
 
 # File reversion
 'filerevert' => 'Тохарлера верси юхаерзор $1',
 'filerevert-legend' => 'Файлан верси юхаерзо',
 'filerevert-intro' => '<span class="plainlinks">Файл юхаерзош ю \'\'\'[[Media:$1|$1]]\'\'\' оцу [$4 верси $3, $2].</span>',
-'filerevert-comment' => 'Ð\91аÑ\85Ñ\8cан:',
+'filerevert-comment' => 'Ð\91аÑ\85Ñ\8cна:',
 'filerevert-defaultcomment' => 'Юхаерзош ю оцу $2, $1 хенахь хила верси',
 'filerevert-submit' => 'Юхаяккха',
 'filerevert-success' => "Юхаерзина файл '''[[Media:$1|$1]]''' оцу [$4 верси $3, $2].",
@@ -1708,13 +1837,13 @@ PICT # тайп тайпан
 'filedelete-legend' => 'ДӀаяккха файл',
 'filedelete-intro' => "Хьо файл '''[[Media:$1|$1]]''' дӀаяккха гӀерта цунна массо истори цхьан.",
 'filedelete-intro-old' => '<span class="plainlinks">Ахьа дӀайоккхуш ю верси \'\'\'[[Media:$1|$1]]\'\'\' цу [$4 $3, $2].</span>',
-'filedelete-comment' => 'Ð\91аÑ\85Ñ\8cан:',
+'filedelete-comment' => 'Ð\91аÑ\85Ñ\8cна:',
 'filedelete-submit' => 'ДӀаяккха',
 'filedelete-success' => '$1 дӀаяккхи.',
 'filedelete-success-old' => "Верси '''[[Media:$1|$1]]''' цу $3 $2 дӀаяьккхина.",
 'filedelete-nofile' => "'''$1''' яц.",
-'filedelete-otherreason' => 'Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cан:',
-'filedelete-reason-otherlist' => 'Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cан',
+'filedelete-otherreason' => 'Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cна:',
+'filedelete-reason-otherlist' => 'Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cна',
 'filedelete-reason-dropdown' => '* Даржина долу дӀаяккхаран баьхьанаш 
 ** Авторан бакъонаш талхор
 ** ЦхӀатера файлаш хилар',
@@ -1732,11 +1861,15 @@ PICT # тайп тайпан
 # List redirects
 'listredirects' => 'ДIасахьажоран могIам',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Файлийн могӀам дубликатшца',
+'listduplicatedfiles-entry' => 'Файлан [[:File:$1|$1]] — [[$3|{{PLURAL:$2|дубликат ю}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Лелош доцу кепаш',
 'unusedtemplatestext' => 'Кхузахь дагар йина «{{ns:template}}» цӀерийн меттиган агӀонаш, кхечу агӀонийн юкъа тоьхна йоцу.
 Диц ма делахь хьажа кеп агӀонашкахь лелош юй.',
-'unusedtemplateswlh' => 'кÑ\85ин Ñ\85Ñ\8cажоÑ\80агаÑ\88',
+'unusedtemplateswlh' => 'кхин хьажоргаш',
 
 # Random page
 'randompage' => 'Цахууш нисйелла агӀо',
@@ -1761,23 +1894,28 @@ PICT # тайп тайпан
 'statistics-files' => 'Чуйаьхна файлаш',
 'statistics-edits' => 'Нисдаран дукхалла {{grammar:genitive|{{SITENAME}}}} дlа йолайаларца',
 'statistics-edits-average' => 'Юккъера агӀонан нисдаран терахь',
+'statistics-views-total' => 'Массо хьажарш',
+'statistics-views-peredit' => 'Нисдаре хьажарш',
 'statistics-users' => '[[ВП:Дlаязвалар|Дlаязбелларш]] шаберигге декъашхой чохь болу [[Special:ListUsers|(могlам)]]',
 'statistics-users-active' => 'Жигара декъашхой',
 'statistics-users-active-desc' => 'Декъашхой, муьлха цхьа хlум дина болу, кху {{PLURAL:$1|1=тlаьххьара $1 динахь|тlаьххьара $1 дийнахь}}',
+'statistics-mostpopular' => 'Дукху хьоьжу агӀонаш',
 
 'pageswithprop' => 'АгӀонаш цхьадолу къастамашца',
 'pageswithprop-legend' => 'АгӀонаш цхьадолу къастамашца',
 'pageswithprop-text' => 'Кхузахь гойтуш ю агӀонаш цхьадолу къастамаш куьйга юху билгал даьхнарш.',
 'pageswithprop-prop' => 'Къастаман цӀе:',
+'pageswithprop-submit' => 'Лаха',
 
 'doubleredirects' => 'Шалха дIасахьажийнарш',
 'doubleredirectstext' => 'ХӀокху агӀонехь ю дӀасахьажорашан тӀе хьажийна йолу дӀасахьажораш.
 <del>ТӀехула сиз хаькхна </del>нисйина чарна.',
 'double-redirect-fixed-move' => 'АгӀон [[$1]] цӀе хийцина, хӀинца иза дӀахьажийна оцу [[$2]]',
+'double-redirect-fixer' => 'ДӀасахьажинарш нисерг',
 
 'brokenredirects' => 'ДIахаьдна долу дIасахьажораш',
 'brokenredirectstext' => 'Лахара дӀасахьажийнарш ю йоцучу агӀонийн тӀе хьажийна:',
-'brokenredirects-edit' => 'нисйé',
+'brokenredirects-edit' => 'нисъе',
 'brokenredirects-delete' => 'дӀаяккха',
 
 'withoutinterwiki' => 'Юкъарвики-хьажорагаш йоцу агӀонаш',
@@ -1788,12 +1926,15 @@ PICT # тайп тайпан
 
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|байт}}',
-'ncategories' => '$1 {{PLURAL:$1|категори|категореш|категореш}}',
-'ninterwikis' => '$1 {{PLURAL:$1|1=юкъарвики-хьажораг|юкъарвики-хьажорагаш}}',
-'nlinks' => '$1 {{PLURAL:$1|1=хьажораг|хьажорагаш}}',
-'nmembers' => '$1 {{PLURAL:$1|1=хӀума|хӀумнаш}}',
-'nimagelinks' => 'Лелош ю $1 {{PLURAL:$1|агӀоначохь|агӀонашкахь|агӀонашкахь}}',
-'ntransclusions' => 'лелош ю $1 {{PLURAL:$1|агӀоначохь|агӀонашкахь|агӀонашкахь}}',
+'ncategories' => '$1 {{PLURAL:$1|категори|категореш}}',
+'ninterwikis' => '$1 {{PLURAL:$1|1=юкъарвики-хьажораг|юкъарвики-хьажоргаш}}',
+'nlinks' => '$1 {{PLURAL:$1|1=хьажораг|хьажоргаш}}',
+'nmembers' => '$1 {{PLURAL:$1|хӀума|хӀумнаш}}',
+'nmemberschanged' => '$1 → $2 {{PLURAL:$2|хӀума|хӀумнаш}}',
+'nrevisions' => '$1 {{PLURAL:$1|верси|версеш}}',
+'nviews' => '$1 {{PLURAL:$1|хьажар}}',
+'nimagelinks' => 'Лелош ю $1 {{PLURAL:$1|агӀонгахь|агӀонашкахь}}',
+'ntransclusions' => 'лелош ю $1 {{PLURAL:$1|агӀонгахь|агӀонашкахь}}',
 'specialpage-empty' => 'Дехаро хӀумма ца елла.',
 'lonelypages' => 'Байлахь йисина агIонаш',
 'lonelypagestext' => 'Кхузахь ю {{grammar:genitive|{{SITENAME}}}} кхечу агӀонашкахь тӀе хьажийна хьажорагаш йоцу агӀонаш.',
@@ -1803,6 +1944,7 @@ PICT # тайп тайпан
 'uncategorizedtemplates' => 'Категореш йоцу кепаш',
 'unusedcategories' => 'Йаьсса категореш',
 'unusedimages' => 'Лелош доцу файлаш',
+'popularpages' => 'ГӀараяьлла агӀонаш',
 'wantedcategories' => 'Оьшуш йолу категореш',
 'wantedpages' => 'Оьшуш йолу агIонаш',
 'wantedfiles' => 'Оьшуш йолу файлаш',
@@ -1810,12 +1952,12 @@ PICT # тайп тайпан
 Кхин йоцу файлаш гойту [[:$1]] чохь',
 'wantedfiletext-nocat' => 'Лахара йоцу файлаш лело гӀерта. Оцу могӀам юкъа ца хууш файлаш кхета там бу, кхечу проекташ чохь йолу. Ишта ца хууш юкъа нийса елачарна тӀехула <del>сиз</del> хира ду.',
 'wantedtemplates' => 'Оьшуш долу кепаш',
-'mostlinked' => 'Ð\94Ñ\83ккÑ\85а Ñ\85Ñ\8cажоÑ\80агаÑ\88 Ñ\82Iе Ñ\82оÑ\8cÑ\85на Ð¹Ð¾Ð»Ñ\83 Ð°Ð³Iонаш',
+'mostlinked' => 'Ð\94Ñ\83ккÑ\85а Ñ\85Ñ\8cажоÑ\80гаÑ\88 Ñ\82Ó\80е Ñ\82оÑ\8cÑ\85на Ð¹Ð¾Ð»Ñ\83 Ð°Ð³Ó\80онаш',
 'mostlinkedcategories' => 'Дуккха тӀе хьажораш йолу категореш',
 'mostlinkedtemplates' => 'Массарел дуккха а леладо кепаш',
 'mostcategories' => 'Дуккха категореш тӀе тоьхна йолу агӀонаш',
 'mostimages' => 'Массарел дуккха лелайо файлаш',
-'mostinterwikis' => 'Ð\94Ñ\83ккÑ\85а Ñ\8eкÑ\8aаÑ\80вики Ñ\85Ñ\8cажоÑ\80агаÑ\88 Ñ\82Ó\80е Ñ\82оÑ\8cÑ\85на Ð¹Ð¾Ð»Ñ\83 Ð°Ð³Ó\80онаÑ\88',
+'mostinterwikis' => 'Дуккха юкъарвики хьажоргаш тӀе тоьхна йолу агӀонаш',
 'mostrevisions' => 'Сих сиха нисйина йолу агIонаш',
 'prefixindex' => 'Хьалха агӀонашан цӀераш хӀотто йеза',
 'prefixindex-namespace' => 'Хьалха агӀонашан цӀераш хӀотто еза («{{ns:$1}}»)',
@@ -1826,12 +1968,13 @@ PICT # тайп тайпан
 'protectedpages' => 'ГIаролла дина агIонаш',
 'protectedpages-indef' => 'Хан йоцуш гӀоралла динарш бен',
 'protectedpages-cascade' => 'Чахчарин гӀоралла бен',
+'protectedpages-noredirect' => 'Къайлаяха дӀасахьажийнарш',
 'protectedpages-timestamp' => 'Терахь/хан',
 'protectedpages-page' => 'АгӀо',
 'protectedpages-expiry' => 'Чекхйолу',
 'protectedpages-performer' => 'Декъашхо ларор',
 'protectedpages-params' => 'ГӀаролийн параметраш',
-'protectedpages-reason' => 'Ð\91аÑ\85Ñ\8cан',
+'protectedpages-reason' => 'Ð\91аÑ\85Ñ\8cна',
 'protectedpages-unknown-timestamp' => 'Хууш дац',
 'protectedpages-unknown-performer' => 'Хууш доцу декъашхо',
 'protectedtitles' => 'ГIаролла дина цIераш',
@@ -1839,6 +1982,7 @@ PICT # тайп тайпан
 'listusers-editsonly' => 'Цхаъ мукъане а хийцам бина декъашхой гайта',
 'listusers-creationsort' => 'Кхоьллина хене хьаьжна нисъяр',
 'listusers-desc' => 'Харжа къезиг хиларца',
+'usereditcount' => '$1 {{PLURAL:$1|нисдар|нисдарш}}',
 'usercreated' => '{{GENDER:$3|дӀавазвелла|дӀаязелла}} $1 $2',
 'newpages' => 'Керла агlонаш',
 'newpages-username' => 'Декъашхо:',
@@ -1853,6 +1997,7 @@ PICT # тайп тайпан
 'nopagetext' => 'Ишта агӀо яц.',
 'pager-newer-n' => '{{PLURAL:$1|алсамо керла 1|алсамо керланаш $1}}',
 'pager-older-n' => '{{PLURAL:$1|алсамо шира 1|алсамо ширниш $1}}',
+'suppress' => 'Хьулдар',
 
 # Book sources
 'booksources' => 'Жайнан хьосташ',
@@ -1885,12 +2030,17 @@ PICT # тайп тайпан
 'allpages-bad-ns' => '{{SITENAME}} кху чохь ана цlераш яц «$1».',
 'allpages-hide-redirects' => 'Къайлаяха дӀасахьажийнарш',
 
+# SpecialCachedPage
+'cachedspecial-refresh-now' => 'Хьажа тӀехьарчу версега.',
+
 # Special:Categories
 'categories' => 'Категореш',
 'categoriespagetext' => '{{PLURAL:$1|1=Лахара категореш чохь ю|Лахара категореш чохь ю}} агӀонаш я медиа-файлаш.
 Кхузахь гойтуш яц [[Special:UnusedCategories|лелош йоцу категореш]].
 Кхин дӀа [[Special:WantedCategories| хийла еза категореш]].',
 'categoriesfrom' => 'Гучé яха категореш, оцу:',
+'special-categories-sort-count' => 'нисъе дукхаллица',
+'special-categories-sort-abc' => 'нисъе абатца',
 
 # Special:DeletedContributions
 'deletedcontributions' => 'Декъашхочун дӀабяккхина къинхьегам',
@@ -1900,6 +2050,7 @@ PICT # тайп тайпан
 # Special:LinkSearch
 'linksearch' => 'Арахьара хьажораг',
 'linksearch-pat' => 'Лаха кеп:',
+'linksearch-ns' => 'ЦӀерийн ана:',
 'linksearch-ok' => 'Лаха',
 'linksearch-text' => 'Лело мега хӀоттош йолу символаш, масала, <code>*.wikipedia.org</code>.
 Лакхара даржан домен мукъа хила еза , масала<code>*.org</code><br />
@@ -1910,13 +2061,14 @@ PICT # тайп тайпан
 'listusersfrom' => 'Гучé баха декъашхой, болалуш болу тӀера:',
 'listusers-submit' => 'Гайта',
 'listusers-noresult' => 'Декъашхой цакарий.',
+'listusers-blocked' => '(блоктоьхна)',
 
 # Special:ActiveUsers
 'activeusers' => 'Жигар декъашхой могlам',
 'activeusers-intro' => 'Лахахь гойтуш бу  {{PLURAL:$1|1=тӀаьхьара $1 динахь|тӀаьхьара $1 деношкахь}} хийцамаш бина декъашхой.',
 'activeusers-count' => '{{PLURAL:$3|1=тӀаьхьарчу $3 динахь|тӀаьхьара $3 деношкахь}} $1 {{PLURAL:$1|1=нисдар|нисдарш}} дина',
 'activeusers-from' => 'Гучé баха декъашхой, болалуш болу тӀера:',
-'activeusers-hidebots' => 'Къайлабаха шабелхалой',
+'activeusers-hidebots' => 'Къайлабаха боташ',
 'activeusers-hidesysops' => 'Къайлабаха куьйгалхой',
 'activeusers-noresult' => 'Декъашхой цакарий.',
 
@@ -1930,13 +2082,17 @@ PICT # тайп тайпан
 'listgrouprights-rights' => 'Бакъонаш',
 'listgrouprights-helppage' => 'Help:Тобан бакъонаш',
 'listgrouprights-members' => '(тобан могlам)',
+'listgrouprights-addgroup' => '{{PLURAL:$2|тоба|тобанаш}} тӀетоха ло: $1',
+'listgrouprights-removegroup' => '{{PLURAL:$2|тобан чура дӀабаха|тобанаш чура дӀабаха}} ло: $1',
 'listgrouprights-addgroup-all' => 'массо тобанийн юкъатоха йиш ю',
+'listgrouprights-removegroup-all' => 'тобан чура дӀабаха ло',
 
 # Email user
 'mailnologintext' => 'Электронан кехаташ кхехьийта йиш хилийта [[Special:UserLogin|системин чугӀо]] кхин декъашхошка хаамаш кхехьийта хьа [[Special:Preferences|гӀирса чохь]] бакъалла долу электронан почтан адрес хила деза.',
 'emailuser' => 'Декъашхочун хааман кехат',
 'emailuser-title-target' => 'Декъашхочунга кехат яздар',
 'emailuser-title-notarget' => 'Декъашхочунга кехат яздар',
+'emailpage' => 'Декъашхочунга кехат яздар',
 'emailpagetext' => 'ХӀокху агӀона гӀоьнца йиш ю {{GENDER:$1|декъашхочун}} электронан почте хаам бахьийта.
 Хьоьга жоп лур ду ахьа [[Special:Preferences|хьайн гӀирса чу]] дӀаяздина долу адрес тӀе.',
 'defemailsubject' => 'Хаам {{grammar:genitive|{{SITENAME}}}} чура бу',
@@ -1948,14 +2104,20 @@ PICT # тайп тайпан
 'emailmessage' => 'Хаам:',
 'emailsend' => 'ДӀадахьийта',
 'emailccme' => 'Соьга а кхосса хааман копи.',
+'emailccsubject' => '$1: $2 бохьуьтучу хааман копи',
 'emailsent' => 'Кехат дӏадахьийтина',
 'emailsenttext' => 'Хьан электроннан хаам дӏабахьийтина.',
 'emailuserfooter' => 'ХӀара хаам бахийтинера $1 {{GENDER:$1|декъащхочо}} $2 {{GENDER:$2|декъащхочунга}} «декъашхочунга хаам» олучу функцин гӀоьнца {{SITENAME}} проектан.',
 
+# User Messenger
+'usermessage-summary' => 'Битта системан хаам.',
+'usermessage-editor' => 'Системан дӀакхачор',
+
 # Watchlist
 'watchlist' => 'Тергаме могӀам',
 'mywatchlist' => 'Тергаме могӀам',
 'watchlistfor2' => 'Цунна $1 $2',
+'nowatchlist' => 'Ха тергаме могӀа баьсса бу.',
 'watchlistanontext' => 'Тергаме могӀоме хьажа я тая кхочушде $1.',
 'watchnologin' => 'Системин чугӀо',
 'addwatch' => 'Тергаме могӀам юкъа тоха',
@@ -1966,12 +2128,14 @@ PICT # тайп тайпан
 'watch' => 'Тидам бе',
 'watchthispage' => 'Тергам бé хlокху агlон',
 'unwatch' => 'Тергамах къаста',
+'unwatchthispage' => 'ДӀадаккха терго яр',
 'notanarticle' => 'Бац яззам',
+'notvisiblerev' => 'Верси дӀаяьккхина хила',
 'watchlist-details' => 'Хьан тергаме могlамца $1 {{PLURAL:$1|агlо|агlонаш|агlонаш}} ю, дийцаре агlонаша йоцуш.',
 'wlheader-enotif' => 'Электронан почте хаамаш байтар латина ду.',
 'wlheader-showupdated' => "Хийцам бина агӀонаш '''Ӏаьржа''' шрифтцан билгальяха ю.",
 'wlnote2' => 'Лахахьа гайтина {{PLURAL:$1|тӀеххьара сахьт}} чохь бина хийцамаш $2 $3.',
-'wlshowlast' => 'Гайта тlаьххьара $1 сахьташ $2 денош $3',
+'wlshowlast' => 'Гайта тӀаьххьара $1 сахьт $2 де $3',
 'watchlist-options' => 'Тергаме могlаман гlирс нисбар',
 
 # Displayed when you click the "watch" button and it is in the process of watching
@@ -1979,6 +2143,17 @@ PICT # тайп тайпан
 'unwatching' => 'Тергаме могӀанан чура дӀаяккхар…',
 
 'enotif_reset' => 'Билгал йаь ерриге агӀонаш хьаьжна санна',
+'enotif_impersonal_salutation' => 'Декъашхо {{grammar:genitive|{{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|декъашхочо}} $2 дӀаяьккхина, хьажа $3',
+'enotif_body_intro_created' => 'Проектан «{{SITENAME}}» агӀо «$1» $PAGEEDITDATE {{gender:$2|декъашхочо}} $2 кхоьллина, карара верси ю : $3',
+'enotif_body_intro_moved' => 'Проектан «{{SITENAME}}» агӀо «$1» $PAGEEDITDATE {{gender:$2|декъашхочо}} $2 цӀе хийцина, карара верси ю : $3',
+'enotif_body_intro_restored' => 'Проектан «{{SITENAME}}» агӀо «$1» $PAGEEDITDATE {{gender:$2|декъашхочо}} $2 кхоьллина, карара верси ю : $3',
+'enotif_body_intro_changed' => 'Проектан «{{SITENAME}}» агӀо «$1» $PAGEEDITDATE {{gender:$2|декъашхочо}} $2 хийцам бина, карара верси ю : $3',
 'changed' => 'хийцина',
 
 # Delete
@@ -1999,15 +2174,15 @@ PICT # тайп тайпан
 'dellogpage' => 'ДӀадаьхнарш долу тéптар',
 'dellogpagetext' => 'Лахахь гойтуш ду дӀадахаршан тептар.',
 'deletionlog' => 'дӀадаьхнарш долу тéптар',
-'deletecomment' => 'Ð\91аÑ\85Ñ\8cан:',
-'deleteotherreason' => 'Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cан/Ñ\82lетохар:',
-'deletereasonotherlist' => 'Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cан',
+'deletecomment' => 'Ð\91аÑ\85Ñ\8cна:',
+'deleteotherreason' => 'Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cна/Ñ\82Ó\80етохар:',
+'deletereasonotherlist' => 'Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cна',
 'deletereason-dropdown' => '* Даржина долу дӀаяккхаран баьхьанаш 
 ** зулма  
 ** авторан лаамца
 ** авторан бакъонаш талхор',
 'delete-edit-reasonlist' => 'Бахьанин список нисяр',
-'deleting-backlinks-warning' => "'''ДӀахьедар.''' Ахьа дӀайоккхуш йолчун тӀе товжийна кхин агӀонаш ю.",
+'deleting-backlinks-warning' => "'''ДӀахьедар:''' Ахьа дӀайоккхуш йолчун тӀе товжийна [[Special:WhatLinksHere/{{FULLPAGENAME}}|кхин агӀонаш]] ю.",
 
 # Rollback
 'rollback' => 'Юхабаккха хийцам',
@@ -2036,7 +2211,7 @@ PICT # тайп тайпан
 'protect-title' => 'Оцунна «$1» гӀоралла дар',
 'prot_1movedto2' => '«[[$1]]» цӀе хийцина оцу «[[$2]]»',
 'protect-legend' => 'Бакъде гӀоралла дар',
-'protectcomment' => 'Ð\91аÑ\85Ñ\8cан:',
+'protectcomment' => 'Ð\91аÑ\85Ñ\8cна:',
 'protectexpiry' => 'Чекхйолу:',
 'protect_expiry_invalid' => 'Нийса йоцу хан гlаролла дlайаларехь.',
 'protect_expiry_old' => 'Хан чаккхе — хьалхалера.',
@@ -2057,7 +2232,7 @@ PICT # тайп тайпан
 'protect-othertime' => 'Кхин хан:',
 'protect-othertime-op' => 'кхин хан',
 'protect-otherreason' => 'Кхин бахьна/тӀетохар:',
-'protect-otherreason-op' => 'Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cан',
+'protect-otherreason-op' => 'Ð\9aÑ\85ин Ð±Ð°Ñ\85Ñ\8cна',
 'protect-dropdown' => '* ГӀоралла дарна баьхьаш 
 ** сих-сиха зулам дар 
 ** дуккха спам хилар
@@ -2082,10 +2257,10 @@ PICT # тайп тайпан
 'restriction-level-all' => 'массо барам',
 
 # Undelete
-'undelete' => 'ДӀаяхна агӀонашка хьажар',
-'undeletepage' => 'Ð\94Ó\80аÑ\8fÑ\85ина агӀонашка хьажар а меттахӀоттор а',
+'undelete' => 'Ð\94Ó\80аÑ\8fÑ\8cÑ\85на Ð°Ð³Ó\80онаÑ\88ка Ñ\85Ñ\8cажаÑ\80',
+'undeletepage' => 'Ð\94Ó\80аÑ\8fÑ\8cÑ\85на агӀонашка хьажар а меттахӀоттор а',
 'undeletepagetitle' => "'''Лахахь гайтина хӀокху [[:$1]] агӀона дӀаяхина версеш'''.",
-'viewdeletedpage' => 'ДӀаяхна йолу агӀонашка хьажар',
+'viewdeletedpage' => 'Ð\94Ó\80аÑ\8fÑ\8cÑ\85на Ð¹Ð¾Ð»Ñ\83 Ð°Ð³Ó\80онаÑ\88ка Ñ\85Ñ\8cажаÑ\80',
 'undelete-fieldset-title' => 'МеттахӀоттае версеш',
 'undeleteextrahelp' => "Ерриге агӀонан истори меттахӀоттая массо а билгалонаш еса а йити '''«{{int:undeletebtn}}»''' тӀетаӀае.
 ЦхӀайолу агӀонан версеш меттахӀоттая хьалха меттахӀоттош йолу версеш билгалъяьхна тӀетагӀе '''«{{int:undeletebtn}}»'''.",
@@ -2098,8 +2273,8 @@ PICT # тайп тайпан
 'undeletelink' => 'хьажа/меттахӀоттае',
 'undeleteviewlink' => 'хьажа',
 'undeleteinvert' => 'Къастае массо',
-'undeletecomment' => 'Ð\91аÑ\85Ñ\8cан:',
-'undeletedrevisions' => '$1 {{PLURAL:$1|хийцамаш|хийцамаш|хийцамаш}} меттахӀоттайина',
+'undeletecomment' => 'Ð\91аÑ\85Ñ\8cна:',
+'undeletedrevisions' => '{{PLURAL:$1|меттахӀоттайина}} $1 {{PLURAL:$1|хийцам}}',
 'undeletedfiles' => '$1 {{PLURAL:$1|файл меттахӀоттайина|файлаш меттахӀоттайина|файлаш меттахӀоттайина}}',
 'undeletedpage' => "'''МеттахӀоттайина агӀо «$1».'''
 
@@ -2142,12 +2317,14 @@ PICT # тайп тайпан
 'sp-contributions-blocked-notice-anon' => 'ХӀара IP-адрес хӀинца блоктоьхна ду.
 Лахахь гойту блоктохаршан тептар чура тӀаьхьарлера дӀаяздар:',
 'sp-contributions-search' => 'Къинхьегам лахар',
+'sp-contributions-suppresslog' => 'Декъашхочун дӀабаьккхина къинхьегам',
 'sp-contributions-username' => 'IP-адрес я декъашхочун цӀе:',
 'sp-contributions-toponly' => 'ТӀаьхьара бина хийцамаш гайта',
+'sp-contributions-newonly' => 'АгӀонаш кхоллар бен ма гайта',
 'sp-contributions-submit' => 'Лаха',
 
 # What links here
-'whatlinkshere' => 'Ð¥Ñ\8cажоÑ\80агаÑ\88 ÐºÑ\85Ñ\83зе',
+'whatlinkshere' => 'Хьажоргаш кхузе',
 'whatlinkshere-title' => 'ХӀокхунца «$1» йолу агӀонаш',
 'whatlinkshere-page' => 'Агlо:',
 'linkshere' => "ТӀаьхьайогӀу агӀонаш оцу '''[[:$1]]''': хьажорагца ю",
@@ -2158,10 +2335,10 @@ PICT # тайп тайпан
 'isimage' => 'Файлан хьажораг',
 'whatlinkshere-prev' => '{{PLURAL:$1|1=хьалхайодарг|хьалхайодарш}} $1',
 'whatlinkshere-next' => '{{PLURAL:$1|тlаьхьайогlург|тlаьхьайогlурш|тlаьхьайогlурш}} $1',
-'whatlinkshere-links' => 'â\86\90 Ñ\85Ñ\8cажоÑ\80агаÑ\88',
-'whatlinkshere-hideredirs' => '$1 дlасахьажйар',
+'whatlinkshere-links' => '← хьажоргаш',
+'whatlinkshere-hideredirs' => '$1 дӀасахьажорш',
 'whatlinkshere-hidetrans' => '$1 латораш',
-'whatlinkshere-hidelinks' => '$1 Ñ\85Ñ\8cажоÑ\80агаÑ\88',
+'whatlinkshere-hidelinks' => '$1 хьажоргаш',
 'whatlinkshere-hideimages' => '$1 файлийн хьажорагаш',
 'whatlinkshere-filters' => 'Литтарш',
 
@@ -2175,7 +2352,7 @@ PICT # тайп тайпан
 Лахахь билгалде блоктохарна бахьна.',
 'ipadressorusername' => 'IP-адрес я декъашхочун цӀе:',
 'ipbexpiry' => 'Хан чекхйолу:',
-'ipbreason' => 'Ð\91аÑ\85Ñ\8cан:',
+'ipbreason' => 'Ð\91аÑ\85Ñ\8cна:',
 'ipbreason-dropdown' => '* Белхан некъ дӀакъовлар бахьанаш:
 ** Харца хаам бар
 ** АгӀонан чураниг дӀаяккхар
@@ -2220,8 +2397,10 @@ PICT # тайп тайпан
 'blocklist-expiry' => 'Чекхйолу',
 'blocklist-by' => 'Цунна блоктоьхана куьйгалхо',
 'blocklist-params' => 'Блоктохаран параметраш',
-'blocklist-reason' => 'Ð\91аÑ\85Ñ\8cан:',
+'blocklist-reason' => 'Ð\91аÑ\85Ñ\8cна:',
 'ipblocklist-submit' => 'Лаха',
+'ipblocklist-localblock' => 'Локальни блоктохар',
+'ipblocklist-otherblocks' => '{{PLURAL:$1|Кхин блоктохар|Кхин блоктохарш}}',
 'infiniteblock' => 'хан чаккхе йоцуш',
 'expiringblock' => 'чекхйолу $1 $2',
 'anononlyblock' => 'цӀе хьулйина декъашхойн бен',
@@ -2229,10 +2408,13 @@ PICT # тайп тайпан
 'createaccountblock' => 'цамагдо керла дӀаяздарш кхоллар',
 'emailblock' => 'цамаго кехаташ кхехӀита',
 'blocklist-nousertalk' => 'шин дийцаре агӀо тая лууш дац',
+'ipblocklist-empty' => 'Блоктохаран могӀам баьсса бу.',
+'ipblocklist-no-results' => 'И адрес блоктоьхна дац.',
 'blocklink' => 'блоктоха',
 'unblocklink' => 'дӀаякхаблок',
 'change-blocklink' => 'хийцам бе блоктохарна',
 'contribslink' => 'къинхьегам',
+'emaillink' => 'дӀадахьийта кехат',
 'blocklogpage' => 'Блоктоьхарш болу тептар',
 'blocklog-showlog' => '{{GENDER:$1|ХӀокху декъашхочун хьалхо блоктоьхна хила}}.
 Лахахь гойту блоктохарш долу тептар:',
@@ -2247,6 +2429,7 @@ PICT # тайп тайпан
 'block-log-flags-nousertalk' => 'шин дийцаре агӀо тая лууш дац',
 'block-log-flags-hiddenname' => 'декъашхочун цӀе къайлаяьккхина',
 'ipb-needreblock' => 'ХӀара $1 {{GENDER:$1|блоктоьхна ву|блоктоьхна ю}}. Лаьий хьуна блоктохаран параметраш хийца?',
+'ipb-otherblocks-header' => '{{PLURAL:$1|Кхин блоктохар|Кхин блоктохарш}}',
 'unblock-hideuser' => 'Декъашхочун тӀера блокдӀаяккха хьа таро яц, цуна цӀе хьулйина хилар бахьанехь.',
 
 # Move page
@@ -2305,7 +2488,7 @@ PICT # тайп тайпан
 'movesubpage' => '{{PLURAL:$1|1=Бухара агӀо|Бухара агӀонаш}}',
 'movesubpagetext' => 'ХӀокху агӀона $1 {{PLURAL:$1|1=бухара агӀо ю|бухара агӀонаш ю}}.',
 'movenosubpage' => 'ХӀокху агӀона бухара агӀонаш яц.',
-'movereason' => 'Ð\91аÑ\85Ñ\8cан:',
+'movereason' => 'Ð\91аÑ\85Ñ\8cна:',
 'revertmove' => 'юхаяккха',
 'delete_and_move' => 'Цle а хуьйцуш дӀаяккха',
 'delete_and_move_text' => '== ДӀаяккха хьокъ ю ==
@@ -2361,14 +2544,22 @@ PICT # тайп тайпан
 
 # Thumbnails
 'thumbnail-more' => 'Доккха де',
+'filemissing' => 'Файл цакарий',
 'thumbnail_error' => 'Миниатюра кхолларна гӀалат: $1',
+'thumbnail_error_remote' => 'ГӀалатах хаам $1:
+$2',
 
 # Special:Import
 'import' => 'АгӀонаш чуяхар',
 'import-interwiki-source' => 'Вики-хьост/агlо:',
 'import-interwiki-templates' => 'Лата де массо кепаш',
+'import-interwiki-submit' => 'Импорт ян',
 'import-upload-filename' => 'Файлан цӀе:',
 'import-comment' => 'Билгалдаккхар:',
+'import-revision-count' => '$1 {{PLURAL:$1|верси|версеш}}',
+'importnopages' => 'Импорт ян агӀонаш яц.',
+'imported-log-entries' => '{{PLURAL:$1|Тептар чура импорт дина $1 дӀаяздар|Тептар чура импорт дина $1 дӀаяздарш}}.',
+'importfailed' => 'Импорт ян цаелира: $1',
 'importnosources' => 'Юкъаравики-импортан хьост хаьржина яцара, дуьхьала хийцамашан истори чуяккхар дӀадайина ду.',
 'import-error-special' => '«$1» агӀо импорт йина яц, и къастина цӀерийн меттигашан юкъайогӀуш хиларна.',
 
@@ -2380,7 +2571,7 @@ PICT # тайп тайпан
 'tooltip-pt-userpage' => 'Декъашхочуьна агlо',
 'tooltip-pt-mytalk' => 'Сан дийцаре агlо',
 'tooltip-pt-preferences' => 'Хьан гlирс нисбар',
-'tooltip-pt-watchlist' => 'Ахьа тергам бо агlонаши хийцаман могlам',
+'tooltip-pt-watchlist' => 'Ахьа тергам бо агӀонийн хийцаман могӀам',
 'tooltip-pt-mycontris' => 'Хьан нисдаран могlам',
 'tooltip-pt-login' => 'Хlокху гlирса чохь дlавазвала/яла мега, амма иза тlедожош дац.',
 'tooltip-pt-logout' => 'Дlадерзадо болх бар',
@@ -2413,7 +2604,7 @@ PICT # тайп тайпан
 'tooltip-t-contributions' => 'ХӀокху декъашхочо хийцина йолу агӀонийн могӀам',
 'tooltip-t-emailuser' => 'ДӀабахьийта хаам оцу декъашхона',
 'tooltip-t-upload' => 'Чуйаха файлаш',
-'tooltip-t-specialpages' => 'Белха агlонаши могlам',
+'tooltip-t-specialpages' => 'Белха агӀонанийн могӀам',
 'tooltip-t-print' => 'Хlокху агlонна зорба туху башхо',
 'tooltip-t-permalink' => 'Даима йолу хьажораг хӀокху башха агӀонна',
 'tooltip-ca-nstab-main' => 'Яззамна чулацам',
@@ -2431,8 +2622,10 @@ PICT # тайп тайпан
 'tooltip-diff' => 'Гайта долуш долу йозанах бина болу хийцам.',
 'tooltip-compareselectedversions' => 'Хlокху шина хаьржина агlона башхо муха ю хьажа.',
 'tooltip-watch' => 'ТӀетоха хӀара агӀо сан тергаме могӀанан юкъа',
+'tooltip-watchlistedit-raw-submit' => 'Тергаме могӀам карлабаккха',
+'tooltip-upload' => 'Доладе чуяккхар',
 'tooltip-rollback' => 'Цхьоз тlетаlийча дlабаккха кхечо бина болу тlаьххьара хийцам',
-'tooltip-undo' => 'Дlабаккха бина болу хийцам а хьалхьажар гойтуш, дlайаккхарна бахьан гайта аьтту беш',
+'tooltip-undo' => 'ДӀабаккха бина болу хийцам а хьалхьажар гойтуш, дӀаяккхарна бахьна гайта аьтту беш',
 'tooltip-summary' => 'Язъе йоца цӀе',
 
 # Stylesheets
@@ -2449,17 +2642,39 @@ PICT # тайп тайпан
 'others' => 'кхин',
 'siteusers' => '{{PLURAL:$2|1=декъашхо|декъашхой}} {{grammar:genitive|{{SITENAME}}}} $1',
 'anonusers' => '{{PLURAL:$2|1=цӀе хьулйина декъашхо|цӀе хьулйина декъашхой}} {{grammar:genitive|{{SITENAME}}}} $1',
+'creditspage' => 'Баркаллаш',
 'nocredits' => 'Бац декъашхойн могlам хlокху яззамца',
 
 # Spam protection
 'spamprotectiontitle' => 'Совбиларна литтар',
 'spamprotectiontext' => 'Хьо дӀаязъян гӀерта агӀо спам-литтаро дӀакъоьвлина.
 Цуна бахьна хила там бу агӀона чохь зулам литтаран чутоьхна йолу хьажораг хилар.',
+'spambot_username' => 'Спам дӀацӀаняр',
 
 # Info page
 'pageinfo-header-basic' => 'Коьрта хаам',
+'pageinfo-header-edits' => 'Хийцаман истори',
+'pageinfo-header-restrictions' => 'АгӀона гӀоралла дар',
+'pageinfo-header-properties' => 'АгӀона билгало',
+'pageinfo-display-title' => 'Гушболу корта',
+'pageinfo-length' => 'АгӀона йохалла (байташкахь)',
+'pageinfo-article-id' => 'АгӀона ID',
 'pageinfo-language' => 'АгӀона мотт',
+'pageinfo-content-model' => 'АгӀона чулацаман модель',
+'pageinfo-robot-policy' => 'Лахарийн системийн индексаци',
+'pageinfo-robot-index' => 'Магийна',
+'pageinfo-robot-noindex' => 'Магийна дац',
+'pageinfo-views' => 'Хьажаран дукхалла',
+'pageinfo-watchers' => 'Хьоьжучера дукхалла',
+'pageinfo-few-watchers' => '{{PLURAL:$1|ТӀаьхьадогӀучерал}} $1 кӀезиг',
+'pageinfo-firstuser' => 'АгӀо кхуллург',
+'pageinfo-firsttime' => 'АгӀо кхоьллина терахь',
+'pageinfo-lastuser' => 'ТӀеххьара тадар дийнарг',
+'pageinfo-lasttime' => 'ТӀеххьара нисдар дина терахь',
+'pageinfo-edits' => 'Массо нисдарийн дукхалла',
+'pageinfo-authors' => 'Башха авторийн дукхалла',
 'pageinfo-toolboxlink' => 'Агlонах болу бовзам',
+'pageinfo-redirectsto' => 'ДӀасахьажорг',
 'pageinfo-redirectsto-info' => 'Хаам',
 'pageinfo-contentpage-yes' => 'ХӀаъ',
 'pageinfo-protect-cascading' => 'Чахчарин гӀоралла кхузара',
@@ -2504,7 +2719,8 @@ PICT # тайп тайпан
 'newimages' => 'Керлачу файлийн галерей',
 'newimages-summary' => 'ХӀокху белхан агӀона чохь гойтуш ю дукха хан йоццуш чуйаьхна файлаш.',
 'newimages-legend' => 'Литтар',
-'showhidebots' => '$1 шабелхалой',
+'showhidebots' => '$1 боташ',
+'noimages' => 'Суьрташ дац.',
 'ilsubmit' => 'Лаха',
 'bydate' => 'терахьашца',
 'sp-newimages-showfrom' => 'Гайта керла файлаш $2, $1 тӀера дуьйна',
@@ -2513,11 +2729,15 @@ PICT # тайп тайпан
 'seconds-abbrev' => '$1оцу',
 'minutes-abbrev' => '$1 мин',
 'hours-abbrev' => '$1 сахь.',
-'hours' => '{{PLURAL:$1|1 сахьт}}',
+'seconds' => '{{PLURAL:$1|$1 секунд}}',
+'minutes' => '{{PLURAL:$1|$1 минут}}',
+'hours' => '{{PLURAL:$1|сахьат}}',
 'days' => '{{PLURAL:$1|$1 де}}',
 'weeks' => '{{PLURAL:$1|$1 кӀира}}',
+'months' => '$1 {{PLURAL:$1|бутт}}',
 'years' => '$1 {{PLURAL:$1|шо}}',
 'ago' => '$1 хьалха',
+'just-now' => 'хӀинца',
 
 # Human-readable timestamps
 'hours-ago' => '$1 {{PLURAL:$1|сахьт}} хьалха',
@@ -2801,7 +3021,7 @@ MediaWiki яржош ю и шуна пайдане хир яц те аьлла,
 'specialpages-group-media' => 'Жамlаш оцу медиа-гlирсашан а чуяхарш',
 'specialpages-group-users' => 'Декъашхой а бакъонаш',
 'specialpages-group-highuse' => 'Уггаре дукха лелайо агlонаш',
-'specialpages-group-pages' => 'Агlонаши могlамаш',
+'specialpages-group-pages' => 'АгӀонийн могӀанаш',
 'specialpages-group-pagetools' => 'ГӀирсаш оцу агӀонашан',
 'specialpages-group-wiki' => 'Хаамаш а гӀирсаш а',
 'specialpages-group-redirects' => 'Дlасахьажош йолу гlуллакхан агlонаш',
@@ -2823,7 +3043,7 @@ MediaWiki яржош ю и шуна пайдане хир яц те аьлла,
 'tags-active-header' => 'Жигара?',
 'tags-hitcount-header' => 'Къастам бина нисдарш',
 'tags-active-yes' => 'ХӀаъ',
-'tags-edit' => 'нисйé',
+'tags-edit' => 'нисъе',
 'tags-hitcount' => '$1 {{PLURAL:$1|хийцам|хийцамаш|хийцамаш}}',
 
 # Special:ComparePages
@@ -2844,6 +3064,12 @@ MediaWiki яржош ю и шуна пайдане хир яц те аьлла,
 
 # HTML forms
 'htmlform-invalid-input' => 'Ахьа яздинчу цхьан дакхано гӀалат далина',
+'htmlform-select-badoption' => 'Ахьа яздина маьӀна магийна дац.',
+'htmlform-int-invalid' => 'Ахьа яздина маьӀна дуьззина терахь дац.',
+'htmlform-float-invalid' => 'Ахьа яздина маьӀна терахь дац.',
+'htmlform-int-toolow' => 'Ахьа яздина маьӀна минималал лаха ду — $1',
+'htmlform-int-toohigh' => 'Ахьа яздина маьӀна максималал лакхара ду — $1',
+'htmlform-required' => 'ХӀара юззар тӀехь ду.',
 'htmlform-submit' => 'ДӀадахьийта',
 'htmlform-reset' => 'Цаоьшу хийцамаш',
 'htmlform-selectorother-other' => 'Кхин',
index 0c0b317..5e211f9 100644 (file)
@@ -289,7 +289,6 @@ $1',
 'disclaimers' => 'Mga pagpasabot',
 'disclaimerpage' => 'Project:Mga pagpasabot',
 'edithelp' => 'Tabang sa pag-usab',
-'helppage' => 'Help:Mga sulod',
 'mainpage' => 'Unang Panid',
 'mainpage-description' => 'Unang Panid',
 'policy-url' => 'Project:Palisiya',
@@ -495,7 +494,7 @@ Ang imong ''IP address'' maoy itala sa kaagi niini nga panid.",
 'summary-preview' => 'Paunang tan-aw sa mubong sugid:',
 'newarticle' => '(Bag-o)',
 'newarticletext' => 'Mitulpok ka sa sumpay ngadto sa usa ka wala pa masulat nga panid.
-Aron mahimo ang maong panid, pagtayp sa kahon sa ubos (tan-awa ang [[{{MediaWiki:Helppage}}|panid sa tabang]] alang sa dugang impormasyon).
+Aron mahimo ang maong panid, pagtayp sa kahon sa ubos (tan-awa ang [$1 panid sa tabang] alang sa dugang impormasyon).
 Kon miabot ka dinhi pinaagi sa usa ka sayop, palihog tuploka ang back nga tuplokanan sa imong brawser.',
 'noarticletext' => 'Sa kasamtangan walay sulod nga teksto ang kining panid.
 Puyde nimong  [[Special:Search/{{PAGENAME}}|pangitaon kining titulo sa panid]] sa ubang mga panid, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} pangitaa ang related nga mga log],
index 0a95d28..b94ada1 100644 (file)
@@ -211,7 +211,6 @@ $messages = array(
 'disclaimers' => 'Diklarasion Inadahi',
 'disclaimerpage' => 'Project:Diklarasion inadahi henerat',
 'edithelp' => 'Ayudo tumulaika',
-'helppage' => 'Help:Guinaha',
 'mainpage' => 'Fanhaluman',
 'mainpage-description' => 'Fanhaluman',
 'policy-url' => 'Project:Areklamentu',
@@ -448,7 +447,7 @@ Pot fabot po'lo yan konfotme iyo-mu e-mail gi [[Special:Preferences|prifirensia
 'accmailtext' => 'Mana\'hanague $2 ni password "$1".',
 'newarticle' => '(Nuebu)',
 'newarticletext' => "Tåya' na påhina trabiha ni inachetton ni un yemme'.
-Para un fa'tinas i p\9dåhina, fångge' gi sanpapa' na kahon (bisita i [[{{MediaWiki:Helppage}}|påhinan ayudo]] para mas infotmasion).
+Para un fa'tinas i p\9dåhina, fångge' gi sanpapa' na kahon (bisita i [$1 påhinan ayudo] para mas infotmasion).
 Anggen lachi finatto-mu mågi, yemme' i batunes '''back''' ni iyo-mu browser.",
 'anontalkpagetext' => "----''Este na påhinan kombetsasion muna'sesetbi taina'an ni ti ha fa'tinas kuenta-ña pat ti ha u'usa i kuenta. Entonses na in i'isa i numiron IP para in aidentifika gue'.
 Buente ha' na guåha unos kuantos na muna'sesetbi ni ma u'usa i enao na IP.
index 5488a6b..df3eeb2 100644 (file)
@@ -10,6 +10,7 @@
  * @author Aras Noori
  * @author Arastein
  * @author Asoxor
+ * @author Broosk
  * @author Calak
  * @author Cyrus abdi
  * @author Diyar se
@@ -193,9 +194,9 @@ $messages = array(
 'tog-extendwatchlist' => 'لیستی چاودێری درێژبکەرەوە بۆ نیشان دانی ھەموو گۆڕانکارییەکان، نەک تەنھا دوایینەکان.',
 'tog-usenewrc' => 'گۆڕانکارییەکان لە دوایین گۆڕانکارییەکان و لیستی چاودێریدا بە پێی پەڕە پۆلێن بکە (پێویستی بە جاڤاسکریپتە)',
 'tog-numberheadings' => 'ژمارەکردنی خۆگەڕی سەردێڕەکان',
-'tog-showtoolbar' => 'شرÛ\8cتÛ\8c Ø¦Ø§Ù\85رازÛ\95کاÙ\86Û\8c Ø¯Û\95ستکارÛ\8c Ù\86Û\8cشاÙ\86 Ø¨Ø¯Û\95 (JavaScript Ù¾Û\8eÙ\88Û\8cستÛ\95)',
-'tog-editondblclick' => 'دەستکاریی پەڕە بە دووکلیک لەسەر دەق (JavaScript پێویستە)',
-'tog-editsectiononrightclick' => 'ڕێگە بدە بۆ دەستکاری کردنی بەشەکان لە ڕێگەی کلیکی ڕاست کردن لەسەر سەردێڕی بەشەکان (JavaScript پێویستە)',
+'tog-showtoolbar' => 'تÙ\88Ù\88ڵاÙ\85رازÛ\8c Ø¯Û\95ستکارÛ\8c Ù\86Û\8cشاÙ\86 Ø¨Ø¯Û\95',
+'tog-editondblclick' => 'دەستکاریی پەڕە بە دووکرتە',
+'tog-editsectiononrightclick' => 'دەستکاریی بەشەکان بە کرتەی ڕاست لەسەر سەردێڕی بەشەکان',
 'tog-rememberpassword' => 'چوونە ژوورەوەم لەسەر ئەم وێبگەڕە پاشەکەوت بکە (ئەو پەڕی $1 {{PLURAL:$1|ڕۆژ|ڕۆژ}}ە)',
 'tog-watchcreations' => 'ئەو پەڕانەی من دروستم کردوون و ئەو پەڕگانە من بارم کردوون زیاد بکە بە لیستی چاودێڕییەکەم',
 'tog-watchdefault' => 'ئەو پەڕانە  و ئەو پەڕگانە من دەستکاریان دەکەم زیاد بکە بە لیستی چاودێڕییەکەم',
@@ -211,7 +212,7 @@ $messages = array(
 'tog-shownumberswatching' => 'ژمارەی بەکارھێنەرە چاودێڕەکان نیشان بدە',
 'tog-oldsig' => 'واژووی ئێستا:',
 'tog-fancysig' => 'وەکوو ویکیدەق واژووەکە لەبەر چاو بگرە (بێ بەستەرێکی خۆگەڕ)',
-'tog-uselivepreview' => 'لە پێشبینینی زیندوو کەڵک وەرگرە (جاڤاسکریپت پێویستە) (تاقیکاری‌)',
+'tog-uselivepreview' => 'لە پێشبینینی زیندوو کەڵک وەربگرە (تاقیکاری‌)',
 'tog-forceeditsummary' => 'ئەگەر کورتەی دەستکاریم نەنووسی پێم بڵێ',
 'tog-watchlisthideown' => 'دەستکارییەکانم بشارەوە لە پێرستی چاودێری',
 'tog-watchlisthidebots' => 'دەستکارییەکانی بات بشارەوە لە لیستی چاودێری',
@@ -222,9 +223,9 @@ $messages = array(
 'tog-ccmeonemails' => 'کۆپییەک لەو ئیمەیلانە کە بۆ بەکارھێنەرانی تر دەنێرم بۆ خۆشم بنێرە',
 'tog-diffonly' => 'ناوەرۆکی پەڕە لە ژێرەوەی جیاوازییەکاندا نیشان مەدە',
 'tog-showhiddencats' => 'پۆلە شاردراوەکان نیشان بدە',
-'tog-noconvertlink' => 'لەکارخستنی ئاڵوگۆڕی سەرناوی بەستەر',
 'tog-norollbackdiff' => 'لە دوای گەڕاندنەوە جیاوازی نیشان مەدە',
 'tog-useeditwarning' => 'ھۆشیارم بکەوە کاتێک لە پەڕەیەکی دەستکاری بە گۆڕانکاریی پاشەکەوت‌نەکراو دەردەچم',
+'tog-prefershttps' => 'هەمیشە پەیوەندییەکی پارێزراو بەکاربەرە کاتێک کە دەچیتە ژوورەوە',
 
 'underline-always' => 'ھەمیشە',
 'underline-never' => 'قەت',
@@ -326,7 +327,7 @@ $messages = array(
 'newwindow' => '(لە پەڕەیەکی نوێدا دەکرێتەوە)',
 'cancel' => 'ھەڵیوەشێنەوە',
 'moredotdotdot' => 'زیاتر',
-'morenotlisted' => 'درÛ\8eÚ\98Û\95Û\8c Ù¾Û\8eرست...',
+'morenotlisted' => 'ئÛ\95Ù\85 Ù\84Û\8cستÛ\95Û\8cÛ\95 ØªÛ\95Ù\88اÙ\88 Ù\86Û\8cÛ\8cÛ\95',
 'mypage' => 'پەڕه‌',
 'mytalk' => 'لێدوان',
 'anontalk' => 'وتووێژ بۆ ئەم ئای‌پی یە',
@@ -420,19 +421,19 @@ $messages = array(
 تکایە پێش ھەوڵی دووبارە بۆ دیتنی ئەم پەڕە، نەختێک بوەستە.
 
 $1',
+'pool-timeout' => 'لەکات دەرچوون ڕوویدا لەکاتی چاوەڕوانکردنی داخستندا',
 '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).
 'aboutsite' => 'سەبارەت بە {{SITENAME}}',
 'aboutpage' => 'Project:سەبارەت',
-'copyright' => 'ناوەرۆک لە ژێر $1 لەبەردەستدایە.',
+'copyright' => 'ناوەرۆک لە ژێر $1 لەبەردەستدایە، دەنا تێبینیی دەکرا',
 'copyrightpage' => '{{ns:project}}:مافەکانی لەبەرگرتنەوە',
 'currentevents' => 'ڕووداوە ھەنووکەییەکان',
 'currentevents-url' => 'Project:ڕووداوە بەردەوامەکان',
 'disclaimers' => 'نابەرپرسییەکان',
 'disclaimerpage' => 'Project:بەرپرسنەبوون',
 'edithelp' => 'ڕێنوێنیی دەستکاریکردن',
-'helppage' => 'Help:ناوەرۆک',
 'mainpage' => 'دەستپێک',
 'mainpage-description' => 'دەستپێک',
 'policy-url' => 'Project: سیاسەت',
@@ -457,8 +458,8 @@ $1',
 'youhavenewmessages' => '$1ت ھەیە ($2).',
 'youhavenewmessagesfromusers' => 'لە {{PLURAL:$3|بەکارھێنەرێک|$3 بەکارھێنەران}} $1ت ھەیە ($2).',
 'youhavenewmessagesmanyusers' => '$1ت  لە ژمارەیەک بەکارھێنەر ھەیە ( $2 ).',
-'newmessageslinkplural' => '{{PLURAL:$1|پەیامێکی نوێ|پەیامی نوێ}}',
-'newmessagesdifflinkplural' => 'دوایین {{PLURAL:$1|گۆڕانکاری|گۆڕانکارییەکان}}',
+'newmessageslinkplural' => '{{PLURAL:$1|پەیامێکی نوێ|999=پەیامی نوێ}}',
+'newmessagesdifflinkplural' => 'دوایین {{PLURAL:$1|گۆڕانکاری|999=گۆڕانکارییەکان}}',
 'youhavenewmessagesmulti' => 'لە $1 دا پەیامی نوێت ھەیە',
 'editsection' => 'دەستکاری',
 'editold' => 'دەستکاری',
@@ -511,6 +512,8 @@ $1',
 # General errors
 'error' => 'هه‌ڵه‌',
 'databaseerror' => 'ھەڵەی بنکەدراوه',
+'databaseerror-function' => 'کردە: $1',
+'databaseerror-error' => 'هەڵە: $1',
 'laggedslavemode' => 'ئاگاداری: لەوانەیە لاپەڕەکە نوێکردنەکان لە بەر نەگرێت.',
 'readonly' => 'بنکەدراوە داخراوە',
 'enterlockreason' => 'هۆیەک بۆ قوفڵ‌کردنەکە بنووسە کە  تێیدا کاتی کردنەوەی قۆفڵەکە باس کرابێت',
@@ -528,6 +531,7 @@ $1',
 'readonly_lag' => 'بنكه‌دراوه‌كه‌ به‌شێوه‌ی خۆكار به‌ندكراوه‌، له‌كاتێكدا بنكه‌دراوه‌ی ڕاژه‌كاره‌كه‌ ڕۆڵی له‌خۆگرتن ده‌گێڕێت',
 'internalerror' => 'ھەڵەی ناوخۆیی',
 'internalerror_info' => 'هه‌ڵه‌ی ناوخۆیی: $1',
+'fileappenderrorread' => 'نەتوانرا "$1" بخوێندرێتەوە لەکاتی هاوپێچکردندا.',
 'fileappenderror' => 'نه‌تواندرا "$1" بخرێته‌سه‌ر "$2".',
 'filecopyerror' => 'نەکرا پەڕگەی «$1» کۆپی بکرێت بۆ «$2».',
 'filerenameerror' => 'ناوی په‌ڕگه‌ی "$1" نه‌گۆڕدرا بۆ "$2".',
@@ -543,6 +547,7 @@ $1',
 'cannotdelete-title' => 'ناکرێ پەڕەی «$1» بسڕدرێتەوە',
 'delete-hook-aborted' => 'سڕینەوە لە لایەن قولاپەوە ھەڵوەشێنرایەوە.
 ھۆکارەکەی لەبەر دەست نییە.',
+'no-null-revision' => 'نەتوانرا پێداچوونەوەی خاڵیی بۆ پەڕەی "$1" درووست بکرێت',
 'badtitle' => 'ناونیشانی خراپ',
 'badtitletext' => 'سەرناوی پەڕەی داواکراو بەتاڵە، واڵایە یان سەرناوێکی نێوان-زمانی یان نێوانی-ویکییە کە بە شێوەیەکی ھەڵە بەستەری بۆ دراوە.
 ڕەنگە یەک یان چەند کاراکتەری تێدا بێت کە ناکرێت لە سەرناوەکاندا بەکار بھێنرێت.',
@@ -566,10 +571,20 @@ $1',
 'cascadeprotected' => 'ئەم لاپەڕە پارێزراوە لە دەستکاریی، چونکا خراوەتە سەر ڕیزی ئەم {{PLURAL:$1|لاپەڕانه‌، کە}} که‌ به‌ هه‌ڵکردنی بژارده‌ی داڕژان هه‌ڵکراوه‌:
 $2',
 'namespaceprotected' => "تۆ ناتوانی لاپەڕەکانی ناو نەیمسپەیسی '''$1''' بگۆڕی.",
+'customcssprotected' => 'دەسەڵاتی دەستکارییکردنی ئەم پەڕەی CSS ـەت نییە چوونکە ڕێکخستنەکانی کەسێکی تر لەخۆ دەگرێت.',
+'customjsprotected' => 'دەسەڵاتی دەستکارییکردنی ئەم پەڕەی JavaScript ـەت نییە چوونکە ڕێکخستنەکانی کەسێکی تر لەخۆ دەگرێت.',
+'mycustomcssprotected' => 'دەسەڵاتی دەستکارییکردنی ئەم پەڕەی CSS ـەت نییە.',
+'mycustomjsprotected' => 'دەسەڵاتی دەستکارییکردنی ئەم پەڕەی JavaScript ـەت نییە.',
+'myprivateinfoprotected' => 'دەسەڵاتی دەستکارییکردنی زانیارییە تایبەتییەکانی خۆتت نییە.',
+'mypreferencesprotected' => 'دەسەڵاتی دەستکارییکردنی هەڵبژاردنەکانی خۆتت نییە.',
 'ns-specialprotected' => 'تۆ ناتوانی لاپەڕە تایبەتەکان دەستکاریی بکەی.',
 'titleprotected' => 'ئەم سەرناوە پارێزراوە لە دروستکران لە لایەن [[User:$1|$1]].
 ھۆکاری ئەمە بریتیە لە "\'\'$2\'\'".',
+'invalidtitle-knownnamespace' => 'سەردێڕی هەڵە لەگەڵ ناوەبۆشایی "$2" و دەقی "$3"',
+'invalidtitle-unknownnamespace' => 'سەردێڕی هەڵە لەگەڵ ناوەبۆشایی نەناسراوی ژمارە $1 و دەقی "$2"',
 'exception-nologin' => 'لەژوورەوە نیت',
+'exception-nologin-text' => 'تکایە [[Special:Userlogin|بچۆ ژوورەوە]] تا بتوانیت بچیتە نێو ئەم پەڕەیە یان ئەم کردەیە ئەنجام بدەیت.',
+'exception-nologin-text-manual' => 'تکایە $1 تا بتوانیت بچیتە نێو ئەم پەڕەیە یان ئەم کردەیە ئەنجام بدەیت.',
 
 # Virus scanner
 'virus-badscanner' => "پێکەربەندیی نابەجێ: ڤایرس سکەنێری نەناسراو: ''$1''",
@@ -577,10 +592,9 @@ $2',
 'virus-unknownscanner' => 'دژەڤایرس نەناسراوە:',
 
 # Login and logout pages
-'logouttext' => "'''ئÛ\8eستا ØªÛ\86 Ù\84Û\95 Ú¾Û\95Ú\98Ù\85ارÛ\95Ú©Û\95ت Ú¾Ø§ØªÙ\88Ù\88Û\8cتÛ\95 Ø¯Û\95رÛ\95Ù\88Û\95.'''
+'logouttext' => "'''تÛ\86 Ø¦Û\8eستا Ù\84Û\95دÛ\95رÛ\95Ù\88Û\95Û\8cت.'''
 
-دەتوانی بە شێوەی بێناو درێژە بدەی بە بەرکارھێنانی {{SITENAME}}، یان دەتوانی <span class='plainlinks'>[$1 دیسانەوە بچیتەوە ژوورەوە]</span> ھەر بەو ناوە یان بە ناوی بەکارھێنەرییەکی جیاوازەوە.
-ئاگادار بە کە ھەتا کاتێک کە کەشی وێبگەڕەکەت دەسڕیتەوە، سەرەڕای چوونەدەرەوەی تۆ ھەندێک لە پەڕەکان ھەر بە شێوەیەک نیشان دەدرێن کە گوایە تۆ ھێشتا لە ژوورەوەیت.",
+تێبینیی ئەوە بکە کە هەندێک لە پەڕەکان بەردەوام وا دەردەکەون کە هێشتا لەژوورەوە بیت، هەتا ئەو دەمەی کەشی وێبگەڕەکەت پاک دەکەیتەوە.",
 'welcomeuser' => 'بەخێربێیت، $1!',
 'welcomecreation-msg' => 'ھەژمارەکەت دروست کرا.
 لە بیرت نەچێت [[Special:Preferences|ھەڵبژاردەکانی {{SITENAME}}]]ت بگۆڕی.',
@@ -617,9 +631,8 @@ $2',
 'gotaccount' => 'ھەژمارت ھەیە لێرە؟ $1.',
 'gotaccountlink' => 'بچۆ ژوورەوە',
 'userlogin-resetlink' => 'وردەکارییەکانی چوونەژوورەوەتت لە بیر کردووە؟',
-'userlogin-resetpassword-link' => 'تێپەڕوشە ڕیسێت بکەوە',
-'helplogin-url' => 'Help:چوونەژوورەوە',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|یارمەتی بۆ چوونەژوورەوە]]',
+'userlogin-resetpassword-link' => 'تێپەڕەووشەکەت لەبیر کردووە؟',
+'userlogin-helplink2' => 'یارمەتی بۆ چوونەژوورەوە',
 'userlogin-loggedin' => 'تۆ ھەر ئێستا بە ناوی {{GENDER:$1|$1}} چوویتە ژوورەوە.
 فۆرمی ژێرەوە بەکاربھێنە بۆ چوونەژوورەوە وەک بەکارھێنەرێکی تر.',
 'userlogin-createanother' => 'ھەژمارێکی تر دروست بکە',
@@ -628,7 +641,8 @@ $2',
 'createacct-emailrequired' => 'ناونیشانی ئیمەیل',
 'createacct-emailoptional' => 'ناونیشانی ئیمەیل (دڵخوازانە)',
 'createacct-email-ph' => 'ناونیشانی ئیمەیلەکەت بنووسە',
-'createaccountmail' => 'تێپەڕوشەیەکی ڕەمەکیی کاتی بەکاربھێنە و بینێرە بۆ ناونیشانی ئیمەیلی دیاری‌کراوی ژێرەوە',
+'createacct-another-email-ph' => 'ناونیشانی ئیمەیڵەکەت بنووسە',
+'createaccountmail' => 'تێپەڕوشەیەکی هەڕەمەکیی کاتی بەکاربھێنە و بینێرە بۆ ناونیشانی ئیمەیڵی دیاریکراو',
 'createacct-realname' => 'ناوی ڕاستی (دڵخوازانە)',
 'createaccountreason' => 'هۆکار:',
 'createacct-reason' => 'ھۆکار',
@@ -665,13 +679,15 @@ $2',
 'nosuchusershort' => 'بەکارهێنەر بە ناوی "$1" نیە.
 چاو لە ڕێنووسەکە بکە.',
 'nouserspecified' => 'دەبێ ناوی بەکارهێنەر دابین‌ بکەی.',
+'login-userblocked' => 'ئەم بەکارهێنەرە بڵۆک کراوە. چوونەژوورەوە ڕێگەپێنەدراوە.',
 'wrongpassword' => 'تێپەڕوشەی ھەڵە.
 تکایە دووبارە تێبکۆشە.',
 'wrongpasswordempty' => 'تێپەڕەوشەی لێدراو بەتاڵبوو.
 تکایە هەوڵ بدەوە.',
 'passwordtooshort' => 'تێپەڕوشەکەت لانی کەم دەبێ {{PLURAL:$1|١ پیت|$1 پیت}} بێت.',
 'password-name-match' => 'تێپەڕوشەکەت ئەبێ جیاواز بێت لە ناوی بەکارهێنەریت.',
-'mailmypassword' => 'تێپەڕوشەیەکی نوێ بنێرە بۆ ئیمەیلەکەم',
+'password-login-forbidden' => 'بەکارهێنانی ئەم ناوی بەکارهێنەر و تێپەڕەووشەیە قەدەغەکراوە.',
+'mailmypassword' => 'تێپەڕوشەکە ڕێک بخەوە',
 'passwordremindertitle' => 'تێپەڕوشەیەکی نوێی کاتی بۆ  {{SITENAME}}',
 'passwordremindertext' => 'کەسێک (لەوانەیە خۆت، لە ئای‌پی ئەدرەسی $1) داوای تێپەڕوشەیەکی نوێی کردووە بۆ {{SITENAME}} ($4). تێپەڕوشەیەکی کاتی بۆ بەکارهێنەر «$2» دروستکراو و وەک «$3» دانراوه. ئەگەر ئەمە داخوازی تۆ بووە، پێویستت بەوەیە ئێستا بچیتە ژوورەوە و تێپەڕوشەیەکی نوێ هەڵبژێریت. ماوەی‌ تێپەڕوشە کاتییەکەت لە {{PLURAL:$5|یەک ڕۆژدا|$5 ڕۆژدا}} بەسەردەچێت.
 
@@ -681,20 +697,21 @@ $2',
 'passwordsent' => 'تێپەڕوشەیەکی نوێ ناردرا بۆ ئەدرەسی ئیمەیلی تۆمارکراوی «$1».
 تکایە دوای وەرگرتنی دیسان بچۆ ژوورەوە.',
 'blocked-mailpassword' => 'ئادرەسی ئای‌پی تۆ بۆ دەستکاری کردن بەستراوه بۆیە بۆ بەرگری لە بەکارهێنانی نابەجێ ئەنجامی گەڕانەوەی تێپەڕوشە ڕیگە نەدراوە.',
-'eauthentsent' => 'ئی‌مەیلێکی بڕواپێکردن ناردرا بۆ ئەدرەسی ئی‌مەیلی پاڵێوراو. <br />
-پێش ئەوەی ئی‌مەیلی‌تر بنێردرێ بۆ ئەم هەژمارە، بۆ ئەوەی بڕوات پێ‌بکرێ کە ئەو هەژمارە بەڕاستی هین تۆیە، دەبێ ڕێنوماییەکانی ناو ئەو ئی‌مەیلە هەنگاو بە هەنگاو ئەنجام بدەیت.',
-'throttled-mailpassword' => 'بیرهێنەرەوەیەکی وشەی نهێنی پێش ئەمە لە {{PLURAL:$1|کاتژمێر}}ی ڕابردوودا ناردراوە.
-بۆ بەرگری لە بەکارهێنانی خراپ، تاکە یەک بیرهێنەرەوەی وشەی نهێنی هەر {{PLURAL:$1|کاتژمێر}} دەنێردرێت.',
+'eauthentsent' => 'ئیمەیلێکی پشتڕاستکردنەوە بۆ ناونیشانی ئیمەیلی دیاریکراو ناردرا.
+پێش ئەوەی ئیمەیلی تر بۆ ئەم هەژمارە بنێردرێ، بۆ پشتڕاستکردنەوەی ئەمەی ئەم هەژمارە بەڕاستی ھی تۆیە، دەبێ پەیڕەوی ڕێکارەکانی ناو ئیمەیلەکە بکەیت.',
+'throttled-mailpassword' => 'نامەی بەدەستهێنانەوەی تێپەڕەووشە نێردراوە لە ماوەی {{PLURAL:$1|کاتژمێر}}ی ڕابردوودا.
+بۆ ڕێگریی لە بەکارهێنانی خراپ، تاکە یەک نامەی بەدەستهێنانەوەی تێپەڕەووشە هەموو {{PLURAL:$1|کاتژمێر}}ێک دەنێردرێت.',
 'mailerror' => 'هەڵە ڕوویدا لە ناردنی ئیمەیل: $1',
 'acct_creation_throttle_hit' => 'بینەرانی ویکی بەکەڵک وەرگرتن لەم ئای‌پی ئەدرەسەی تۆ لە ڕۆژانی ڕابردوودا، دەستیان کردە بە درووست‌کردنی {{PLURAL:$1|هەژمارە}}، کە زۆرینە ڕیگەپێدان لە یەک ماوە‌دایە.
 وەک ئەنجامی ئەو ڕووداوە، ئەو بینەرانی لەم ئای‌پی ئەدرەسە کەڵک وەر دەگرن لەم کاتەدا ناتوانن هەژماری دیکە درووست‌بکەن.',
-'emailauthenticated' => 'ئیمەیلەکەت بە ڕاست ناسرا لە $3ی $2 دا',
-'emailnotauthenticated' => 'ئیمەیلەکەت ھێشتا نەناسراوە.
-Ú¾Û\8cÚ\86 Ø¦Û\8cÙ\85Û\95Û\8cÙ\84Û\8eÚ© Ø¨Û\86 Ø¦Û\95Ù\85 Ø¨Ø§Ø¨Û\95تاÙ\86Û\95Û\8c Ø®Ù\88ارەوە نانێردرێت.',
+'emailauthenticated' => 'ناونیشانی ئیمەیلەکەت پشتڕاست کرایەوە لە $3ی $2دا.',
+'emailnotauthenticated' => 'ناونیشانی ئیمەیلەکەت ھێشتا پشتڕاست نەکراوتەوە.
+Ú¾Û\8cÚ\86 Ø¦Û\8cÙ\85Û\95Û\8cÙ\84Û\8eÚ© Ø¨Û\86 Ø¦Û\95Ù\85 ØªØ§Û\8cبÛ\95تÙ\85Û\95Ù\86دÛ\8cÛ\8cاÙ\86Û\95Û\8c Ú\98Û\8eرەوە نانێردرێت.',
 'noemailprefs' => 'بۆ کەوتنە کاری ئەو تایبەتمەندیانە، لە هەڵبژاردەکانت ئەدرەسەکی ئی‌مێڵ دابین بکە.',
 'emailconfirmlink' => 'ئیمەیلەکەت پشت‌ڕاست بکەرەوە',
 'invalidemailaddress' => 'ناونیشانی ئیمەیل پەسند نەکرا، چون لەوە دەچێت شێوازێکی نادروستی ھەبێت.
 تکایە ناونیشانێک بە شێوازی دروست بنووسە یان ئەو بەشە واڵا بھێڵەوە.',
+'cannotchangeemail' => 'ئیمەیڵەکانی هەژمار ناکرێت بگۆڕدرێت لەم ویکییەدا.',
 'emaildisabled' => 'ئەم ماڵپەڕە ناتوانێ ئیمەیل بنێرێ.',
 'accountcreated' => 'ھەژمار دروست کرا',
 'accountcreatedtext' => 'هەژماری بەکارهێنەری [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|لێدوان]]) دروست کراوە.',
@@ -706,6 +723,9 @@ $2',
 'login-throttled' => 'ژمارەیەکی زۆر هەوڵت داوە بۆ چوونە ژوورەوە.
 تکایە پێش هەوڵی دووبارە، نەختێک بوەستە.',
 'loginlanguagelabel' => 'زمان: $1',
+'pt-login' => 'بچۆ ژوورەوە',
+'pt-createaccount' => 'ھەژمار دروست بکە',
+'pt-userlogout' => 'بچۆ دەرەوە',
 
 # Change password dialog
 'changepassword' => 'تێپەڕوشە بگۆڕە',
@@ -850,7 +870,7 @@ $2
 'newarticle' => '(نوێ)',
 'newarticletext' => "بە دوای بەستەری پەڕەیەک کەوتووی کە ھێشتا دروست نەکراوە.
 بۆ دروست کردنی پەڕەکە، لە چوارچێوەکەی خوارەوە دەست بکە بە تایپ کردن. (بۆ زانیاری زورتر
-[[{{MediaWiki:Helppage}}|یارمەتی]] ببینە).
+[$1 یارمەتی] ببینە).
 ئەگەر بە ھەڵەوە ھاتویتە ئێرە، لە سەر دوگمەی '''back'''ی وێبگەڕەکەت کلیک بکە.",
 'anontalkpagetext' => "----''ئەمە لاپەڕەی وتووێژە بۆ بەکارهێنەرێکی نەناسراوە کە هێشتا هەژمارەی درووست‌نەکردووه یان کەڵکی‌ لێ وەرناگرێ .
 لەبەر ئەوە مەجبوورین ئای‌پی ئەدرەسەکی ژمارەیی بۆ ناساندنی بەکار بێنین.
@@ -1074,23 +1094,21 @@ $3 هۆکاری "$2" خستوەتەڕوو',
 'revdelete-show-file-submit' => 'بەڵێ',
 'revdelete-selected' => "'''{{PLURAL:$2|پێداچوونەوەی هەڵبژێراوی|پێداچوونەوەکانی هەڵبژێراوی}} [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|لۆگی ڕووداوەی هەڵبژێراو|لۆگی ڕووداوە هەڵبژێراوەکان}}:'''",
-'revdelete-text' => "'''پێداچوون و ڕووداوە سڕاوەکان هێشتا لە لاپەڕەی مێژوو و لۆگەکان دەست دەکەون، بەڵام ناوەڕۆکی ھێندێکیان بەرچاوی گشتیی ناکەون.'''<br />
-بەڕێوبەرانی دیکە لە {{SITENAME}}دا، هێشتا دەتوانن دەستکارییە شاراوەکان ببینن و لە ڕێگەی ھەر ئەم فۆڕمەوە بیانگەڕێننەوە، مەگەر ئەوەی بەربەستی دیکە داندرابێت.",
 'revdelete-confirm' => 'تکایە بەڵێن بدە کە دەتەوێ ئەوە بکەی و لە ئەنجامەکانی ئەوە ئاگاداریت و بە پێی [[{{MediaWiki:Policy-url}}|سیاسەتنامە]] ئەنجامی ئەدەی.',
 'revdelete-suppress-text' => "بەرگری دەبێ '''تەنها''' بۆ ئەم بابەتانە بەکاربهێندرێت:<br />
 * سووکایەتیکردن بە کەسایەتییەک<br />
 * بڵاوکردنەوەی زانیاریی تاکەکەسی نەگونجاو<br />
 *: '' ناونیشانی ماڵ یا ژمارە تەلەفۆن و وەک ئەمانە.''<br />",
 'revdelete-legend' => 'سنووردارکردنی دەرکەوتن',
-'revdelete-hide-text' => 'شاردÙ\86Û\95Ù\88Û\95Û\8c Ø¯Û\95Ù\82Û\8c Ù¾Û\8eداÚ\86Ù\88Ù\88Ù\86Û\95Ù\88Û\95',
+'revdelete-hide-text' => 'دەقی پێداچوونەوە',
 'revdelete-hide-image' => 'ناوەڕۆکی پەڕگە بشارەوە',
 'revdelete-hide-name' => 'داشاردنی مەبەست و کردەوە',
-'revdelete-hide-comment' => 'شاردنەوەی کورتەی دەستکاری',
-'revdelete-hide-user' => 'شاردÙ\86Û\95Ù\88Û\95Û\8c Ù\86اÙ\88Û\8c Ø¨Û\95کارھÛ\8eÙ\86Û\95رÛ\8c/ئاÛ\8c\80\8cÙ¾Û\8c Ø¯Û\95ستکارÛ\8cÚ©Û\95ر',
+'revdelete-hide-comment' => 'کورتەی دەستکاری',
+'revdelete-hide-user' => 'Ù\86اÙ\88Û\8c Ø¨Û\95کارھÛ\8eÙ\86Û\95ر/Ù\86اÙ\88Ù\86Û\8cشاÙ\86Û\8c Ø¦Ø§Û\8cÙ¾Û\8c Ø¯Û\95ستکارÛ\8cÚ©Û\95ر',
 'revdelete-hide-restricted' => 'بەرگری دراوە لە بەڕێوبەران هەر وەک ئەوانی دیکە',
 'revdelete-radio-same' => '(مەیگۆڕە)',
-'revdelete-radio-set' => 'بÛ\95ÚµÛ\8e',
-'revdelete-radio-unset' => 'نا',
+'revdelete-radio-set' => 'شاردراÙ\88Û\95',
+'revdelete-radio-unset' => 'دیار',
 'revdelete-suppress' => 'بەرگری دراوە لە بەڕێوبەران هەر وەک ئەوانی دیکە',
 'revdelete-unsuppress' => 'لابردنی بەربەستەکان لە سەر پێداچوونەوە گەڕێندراوەکان',
 'revdelete-log' => 'هۆکار:',
@@ -1185,7 +1203,7 @@ $1",
 'shown-title' => 'لە هەر پەڕەیەک $1 {{PLURAL:$1|ئەنجام|ئەنجام}} نیشان‌ بدە',
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3) ببینە',
 'searchmenu-exists' => "'''پەڕەیەک بە ناوی «[[:$1]]» لەم ویکییەدا ھەیە.'''",
-'searchmenu-new' => "'''لەم ویکییەدا پەڕەی « [[:$1]] » دروست بکە!'''",
+'searchmenu-new' => '<strong>لەم ویکییەدا پەڕەی « [[:$1]] » دروست بکە!</strong> {{PLURAL:$2|0=|ھەروەھا بڕوانە پەڕەی دۆزراوەی گەڕانەکەت.|ھەروەھا بڕوانە ئاکامە دۆزراوەکانی گەڕانەکە.}}',
 'searchprofile-articles' => 'پەڕە بە ناوەڕۆکەکان',
 'searchprofile-project' => 'پەڕەکانی یارمەتی و پرۆژە',
 'searchprofile-images' => 'ڕەنگاڵە',
@@ -1250,7 +1268,7 @@ $1",
 'prefs-email' => 'ھەڵبژاردەکانی ئیمەیل',
 'prefs-rendering' => 'ڕواڵەت',
 'saveprefs' => 'پاشەکەوت',
-'restoreprefs' => 'ھەموو ڕێکخستنەکان ببەرەوە بۆ باری بنچینەیی',
+'restoreprefs' => 'ھەموو ڕێکخستنەکان ببەرەوە بۆ باری بنچینەیی (لە ھەموو بەشەکاندا)',
 'prefs-editing' => 'دەستکاریکردن',
 'rows' => 'ڕیزەکان:',
 'columns' => 'ستوونەکان:',
@@ -1303,8 +1321,8 @@ $1",
 'badsig' => 'ئیمزاكه‌ هه‌ڵه‌یه‌، ته‌ماشای كۆدی HTML بكه‌‌',
 'badsiglength' => 'واژووەکەت زۆر درێژە.
 واژوو نابێ لە $1 {{PLURAL:$1|نووسە}} درێژتر بێت.',
-'yourgender' => 'زایەند:',
-'gender-unknown' => 'ئاشکرا نەکراو',
+'yourgender' => 'پێت خۆشە چۆن وەسف بکرێیت؟',
+'gender-unknown' => 'پێم خۆشە باسی نەکەم',
 'gender-male' => 'پیاو',
 'gender-female' => 'ژن',
 'prefs-help-gender' => 'دڵخواز: بۆ بانگ کردنی دروست بە دەستی نەرمامێر.
@@ -1483,8 +1501,8 @@ $1",
 'action-block' => 'بەربەست کردنی ئەم بەکارهێنەرە بۆ دەستکاری‌کردن',
 'action-protect' => 'گۆڕانی ئاستی پارێزراوی بۆ ئەم لاپەڕە',
 'action-rollback' => 'گەڕاندنەوەی خێرای دەستکاریەکانی دوایین بەکارھێنەر کە پەڕەیەکی دیاریکراوی دەستکاری کردووە',
-'action-import' => 'هێنانەناوەی ئەم لاپەڕە لە ویکی‌یەکی دیکە',
-'action-importupload' => 'هێنانەناوەی ئەم لاپەڕە لە پەڕگەیەکی بارکراو',
+'action-import' => 'ھاوردنی پەڕەکان لە ویکییەکی ترەوە',
+'action-importupload' => 'ھاوردنی پەڕەکان لە پەڕگەیەکی بارکراو',
 'action-patrol' => 'نیشانکردنی دەستکاریەکانی کەسانی تر وەک پاس دراو',
 'action-autopatrol' => 'دەستکارییەکانت وەک پاس دراو نیشان بکرێ',
 'action-unwatchedpages' => 'دیتنی پێرستێک لە پەڕە چاودێری نەکراوەکان',
@@ -1499,6 +1517,7 @@ $1",
 'recentchanges' => 'دوایین گۆڕانکارییەکان',
 'recentchanges-legend' => 'ھەڵبژاردەکانی دوایین گۆڕانکارییەکان',
 'recentchanges-summary' => 'لەم پەڕەیەدا شوێنی دوایین گۆڕانکارییەکانی ویکی بکەوە.',
+'recentchanges-noresult' => 'ھیچ گۆڕانکارییەک لە نێوان ماوەی پێدراو لەگەڵ ئەم پێوەرانە وێک نەھاتەوە.',
 'recentchanges-feed-description' => 'دوای دوایین گۆڕانکارییەکانی ئەم ویکیە بکەوە لەم «فید»ەوە.',
 'recentchanges-label-newpage' => 'ئەم دەستکارییە پەڕەیەکی نوێی دروست کرد',
 'recentchanges-label-minor' => 'ئەمە دەستکارییەکی بچووکە',
@@ -1508,14 +1527,24 @@ $1",
 'recentchanges-legend-heading' => "'''کورتکراوەکان:'''",
 'recentchanges-legend-newpage' => '(ھەروەھا بڕوانە [[Special:NewPages|پێرستی پەڕە نوێکان]])',
 'recentchanges-legend-plusminus' => "(''±۱٢٣'')",
-'rcnotefrom' => "ئەوی‌ خوارەوە گۆڕانکارییەکانە لە '''$2'''ەوە (ھەتا '''$1''' نیشاندراو).",
+'rcnotefrom' => 'ژێرەوە گۆڕانکارییەکانە لە <strong>$2</strong>ەوە (ھەتا <strong>$1</strong> نیشان دراوە).',
 'rclistfrom' => 'گۆڕانکارییە نوێکان نیشان بدە بە دەستپێکردن لە $1',
 'rcshowhideminor' => 'دەستکارییە بچووکەکان $1',
+'rcshowhideminor-show' => 'نیشان بدە',
+'rcshowhideminor-hide' => 'بشارەوە',
 'rcshowhidebots' => 'بۆتەکان $1',
+'rcshowhidebots-show' => 'نیشان بدە',
+'rcshowhidebots-hide' => 'بشارەوە',
 'rcshowhideliu' => 'بەکارھێنەرە تۆمارکراوەکان $1',
+'rcshowhideliu-show' => 'نیشان بدە',
+'rcshowhideliu-hide' => 'بشارەوە',
 'rcshowhideanons' => 'بەکارھێنەرە نەناسراوەکان $1',
+'rcshowhideanons-show' => 'نیشان بدە',
+'rcshowhideanons-hide' => 'بشارەوە',
 'rcshowhidepatr' => 'گۆرانکارییە پاس دراوەکان $1',
 'rcshowhidemine' => 'دەستکارییەکانم $1',
+'rcshowhidemine-show' => 'نیشان بدە',
+'rcshowhidemine-hide' => 'بشارەوە',
 'rclinks' => 'دوایین $1 گۆڕانکاریی $2 ڕۆژی ڕابردوو نیشان بدە<br />$3',
 'diff' => 'جیاوازی',
 'hist' => 'مێژوو',
@@ -1529,7 +1558,7 @@ $1",
 'rc_categories_any' => 'هەرکام',
 'rc-change-size-new' => '$1 {{PLURAL:$1|بایت}} پاش گۆڕانکاری',
 'newsectionsummary' => '/* $1 */ بەشی نوێ',
-'rc-enhanced-expand' => 'Ù\88ردÛ\95کارÛ\8cÛ\8cÛ\95کاÙ\86 Ù¾Û\8cشاÙ\86 Ø¨Ø¯Û\95 (Ù¾Û\8eÙ\88Û\8cستÛ\8c Ø¨Û\95 Ø¬Ø§Ú¤Ø§Ø³Ú©Ø±Û\8cپتÛ\95)',
+'rc-enhanced-expand' => 'Ù\88ردÛ\95کارÛ\8cÛ\8cÛ\95کاÙ\86 Ù\86Û\8cشاÙ\86 Ø¨Ø¯Û\95',
 'rc-enhanced-hide' => 'وردەکارییەکان بشارەوە',
 'rc-old-title' => 'بە ناوی سەرەکیی «$1» دروست کراوە',
 
@@ -1708,8 +1737,7 @@ $1',
 'upload_source_file' => ' (پەڕگەیەک لەسەر کۆمپیوتەرەکەت)',
 
 # Special:ListFiles
-'listfiles-summary' => 'ئەم پەڕە تایبەتە هەموو پەڕگە بارکراوەکانت پێ نیشان دەدات.
-لە کاتی پاڵاوتن بۆ بەکارھێنەرێکی تایبەت، تەنیا ئەو پەڕگانە کە بەکارھێنەرەکە دوایین وەشانیانی بارکردبێت نیشان دەدرێن.',
+'listfiles-summary' => 'ئەم پەڕە تایبەتە ھەموو پەڕگە بارکراوەکان نیشان دەدات.',
 'listfiles_search_for' => 'بگەڕێ بۆ ناوی میدیای:',
 'imgfile' => 'پەڕگە',
 'listfiles' => 'پێرستی پەڕگەکان',
@@ -2316,7 +2344,7 @@ $1',
 'contributions' => 'بەشدارییەکانی {{GENDER:$1|بەکارھێنەر}}',
 'contributions-title' => 'بەشدارییەکانی بەکارھێنەر $1',
 'mycontris' => 'بەشدارییەکان',
-'contribsub2' => 'بۆ $1 ($2)',
+'contribsub2' => 'بۆ {{GENDER:$3|$1}} ($2)',
 'nocontribs' => 'هیچ گۆڕانکاریەکی هاوتای ئەم پێوەرانە نودۆزرایەوە',
 'uctop' => '(ھەنووکە)',
 'month' => 'لە مانگی (و پێشترەوە):',
@@ -2660,7 +2688,7 @@ $1',
 بوخچەیەکی کاتی بزر بووە.',
 'import-parse-failure' => 'سەرنەکەوتن لە شیکردنەوەی ھاوردنی XML',
 'import-noarticle' => 'ھیچ پەڕەیەک بۆ ھاوردن نییە!',
-'import-nonewrevisions' => 'Ú¾Û\95Ù\85Ù\88Ù\88 Ù¾Û\8eداÚ\86Ù\88Ù\88Ù\86Û\95Ù\88Û\95کاÙ\86 Ù¾Û\8eشتر Ú¾Ø§Ù\88ردÛ\95 Ú©Ø±Ø§Ù\88Ù\86.',
+'import-nonewrevisions' => 'Ú¾Û\8cÚ\86 Ù¾Û\8eداÚ\86Ù\88Ù\88Ù\86Û\95Ù\88Û\95Û\8cÛ\95Ú© Ú¾Ø§Ù\88ردÛ\95 Ù\86Û\95کراÙ\88Û\95 (Ú¾Û\95Ù\85Ù\88Ù\88Û\8c Û\8cا Ú¾Û\95ر Ø¦Û\8eستا Ú¾Û\95Û\8cÛ\95Ø\8c Û\8cاÙ\86 Ù\84Û\95بÛ\95ر Ú¾Û\95ÚµÛ\95کاÙ\86 Ú\86اÙ\88Ù¾Û\86Ø´Û\8c Ù\84Û\8e Ú©Ø±Ø§Ù\88Û\95).',
 'xml-error-string' => '$1 لە دێڕی $2، ستوونی $3 (بایت $4): $5',
 'import-upload' => 'بارکردنی دراوەی XML',
 'import-token-mismatch' => 'لەدەستدانی دراوەکانی کۆڕ.
@@ -2787,12 +2815,12 @@ $1',
 'pageinfo-article-id' => 'زنجیرەی پەڕە',
 'pageinfo-language' => 'زمانی ناوەرۆکی پەڕە',
 'pageinfo-robot-policy' => 'چۆنێتیی مۆتۆڕی گەڕان',
-'pageinfo-robot-index' => 'شیاو بۆ پێرستکردن',
-'pageinfo-robot-noindex' => 'نەشیاو بۆ پێرستکردن',
+'pageinfo-robot-index' => 'ڕێ پێدراو',
+'pageinfo-robot-noindex' => 'ڕێ پێنەدراوه',
 'pageinfo-views' => 'ژمارەی بینینەکان',
 'pageinfo-watchers' => 'ژمارەی چاودێرانی پەڕە',
 'pageinfo-few-watchers' => 'کەمتر لە $1 {{PLURAL:$1|چاودێر}}',
-'pageinfo-redirects-name' => 'ڕەوانەکەرەکان بۆ ئەم پەڕەیە',
+'pageinfo-redirects-name' => 'Ú\98Ù\85ارÛ\95Û\8c Ú\95Û\95Ù\88اÙ\86Û\95Ú©Û\95رÛ\95کاÙ\86 Ø¨Û\86 Ø¦Û\95Ù\85 Ù¾Û\95Ú\95Û\95Û\8cÛ\95',
 'pageinfo-subpages-name' => 'ژێرپەڕەکانی ئەم پەڕەیە',
 'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|ڕەوانەکەر}}; $3 {{PLURAL:$3|ڕەوانەنەکەر}})',
 'pageinfo-firstuser' => 'دروستکەری پەڕە',
@@ -2862,7 +2890,7 @@ $1',
 'file-nohires' => 'رەزۆلوشنی سەرتر لەمە لە بەردەست دا نیە.',
 'svg-long-desc' => 'پەڕگەی SVG، بە ناو $1 × $2 پیکسەڵ، قەبارەی پەڕگە: $3',
 'svg-long-error' => 'پەڕگەی SVGی نادروست: $1',
-'show-big-image' => 'گەورەکردنەوە',
+'show-big-image' => 'پەڕگەی سەرەکی',
 'show-big-image-preview' => 'قەبارەی ئەم پێشبینینە: $1.',
 'show-big-image-other' => '{{PLURAL:$2|ڕەزەلووشنی|ڕەزەلووشنەکانی}} تر: $1.',
 'show-big-image-size' => '$1 لە $2 پیکسەڵ',
@@ -3220,18 +3248,18 @@ $3
 $5
 
 ئەم کۆدی بڕواپێکردنە لە $4 ماوەی بەسەردێت.',
-'confirmemail_body_set' => 'کەسێک، لەوانەیە خۆت، لە ئای‌پی ئەدرەسی $1،
-ئەدرەسی ئەیمەیلی ھەژماری «$2» لە {{SITENAME}}دا کردووە بەم ئەدرەسە.
+'confirmemail_body_set' => 'کەسێک، لەوانەیە خۆت، لە ناونیشانی ئایپیی $1،
+ناونیشانیی ئەیمەیلی ھەژماری «$2» لە {{SITENAME}}دا کردووە بەم ناونیشانە.
 
-بۆ ئەوەی بڕوا بکرێت کە ئەم ھەژمارە لە ڕاستیدا بۆتۆیە و بۆ چالاککردنەوەی تایبەتمەندیەکانی ئیمەیل لە {{SITENAME}}دا، ئەم بەستەرەی خوارەوە لە وێبگەڕەکەتدا بکەوە:
+بۆ پشتڕاستکردنەوەی ئەمەی ئەم ھەژمارە بەڕاستی ھی تۆیە و بۆ چالاککردنی تایبەتمەندیەکانی ئیمەیل لە {{SITENAME}}دا، ئەم بەستەرە لە وێبگەڕەکەتدا بکەوە:
 
 $3
 
-ئەگەر ھەژمارە ھی تۆ *نییە*، بۆ هەڵوەشاندنەوەی بڕوا‌پێکردنی ئەدرەسی ئیمەیل بەدوای ئەم بەستەرە بکەوە:
+ئەگەر ھەژمارەکە ھی تۆ *نییە*، بۆ هەڵوەشاندنەوەی پشتڕاستکردنەوەی ناونیشانی ئیمەیل، شوێنی ئەم بەستەرە بکەوە:
 
 $5
 
-ئÛ\95Ù\85 Ú©Û\86دÛ\8c Ø¨Ú\95Ù\88اپÛ\8eکردÙ\86Û\95 Ù\84Û\95 $4 Ù\85اÙ\88Û\95Û\8c Ø¨Û\95سÛ\95ردێت.',
+ئÛ\95Ù\85 Ú©Û\86دÛ\95Û\8c Ù¾Ø´ØªÚ\95استکردÙ\86Û\95Ù\88Û\95Û\8cÛ\95 Ù\84Û\95 $4 Ù\85اÙ\88Û\95Û\8c Ø¨Û\95سÛ\95ر Ø¯Û\95Ú\86ێت.',
 'confirmemail_invalidated' => 'بڕواپی‌کردنی ناونیشانی ئی‌مەیل هەڵوەشێندراوە',
 'invalidateemail' => 'هەڵوەشاندنەوەی بڕواپێ‌کردنی ئی‌مەیل',
 
@@ -3377,7 +3405,7 @@ $5
 'version-hook-name' => 'ناوی قولاپ',
 'version-hook-subscribedby' => 'بەشداربوو لە لایەن',
 'version-version' => '(وەشانی $1)',
-'version-license' => 'مۆڵەت',
+'version-license' => 'مۆڵەتنامە',
 'version-poweredby-others' => 'دیکە',
 'version-software' => 'نەرمەکاڵای دامەزراو',
 'version-software-product' => 'بەرهەم',
index bca887e..8f62554 100644 (file)
@@ -244,7 +244,6 @@ $1',
 'disclaimers' => 'Mga pagpangindi',
 'disclaimerpage' => 'Project:Pangkabilugan nga pagpangindi',
 'edithelp' => 'Bulig sa pag-ilis',
-'helppage' => 'Help:Mga ka-undan',
 'mainpage' => 'Panguna nga pahina',
 'mainpage-description' => 'Panguna nga pahina',
 'policy-url' => 'Project:Patakaran',
@@ -470,7 +469,7 @@ Igasulat ang imo IP adres sa historya sang mga inislan sang mini nga pahina.",
 'summary-preview' => 'Kabilugan nga prebyu:',
 'newarticle' => '(Bag-o)',
 'newarticletext' => "Ginsundan mo ang pahina nga wala pa gagana.
-Para ubrahon ang pahina, umpisahan nga mag-type sa kahon sa idalum (tan-awon ang [[{{MediaWiki:Helppage}}|pahina sang tabang]] para sa madamo pa nga info).
+Para ubrahon ang pahina, umpisahan nga mag-type sa kahon sa idalum (tan-awon ang [$1 pahina sang tabang] para sa madamo pa nga info).
 Kung ari ka diya tungod sa sala, pinduton ang ('''back''') nga buton sang imo nga browser.",
 'noarticletext' => 'Wala pa yanda sang teksto sa sulod sang mini nga pahina.
 Sarang mo [[Special:Search/{{PAGENAME}}|pangitaon ang titulo sang mini nga pahina]] sa iban pa nga mga pahina,
index 3b31fa7..862b75e 100644 (file)
@@ -336,7 +336,6 @@ $1',
 'disclaimers' => 'Джевапкярлыкъ реди',
 'disclaimerpage' => 'Project:Умумий Малюмат Мукъавелеси',
 'edithelp' => 'Саифелер насыл денъиштирилир?',
-'helppage' => 'Help:Мундеридже',
 'mainpage' => 'Баш Саифе',
 'mainpage-description' => 'Баш Саифе',
 'policy-url' => 'Project:Къаиделер',
@@ -642,7 +641,7 @@ $2 къулланыджысына вакътынджа <code>$3</code> паро
 
 Бу янъы эсап ичюн пароль, кириш япкъандан сонъ ''[[Special:ChangePassword|парольни денъиштир]]'' болюгинде денъиштирилип олур.",
 'newarticle' => '(Янъы)',
-'newarticletext' => "Сиз бу багълантынен шимдилик ёкъ олгъан саифеге авуштынъыз. Янъы бир саифе яратмакъ ичюн ашагъыда булунгъан пенджереге метин язынъыз (тафсилятлы малюмат алмакъ ичюн [[{{MediaWiki:Helppage}}|ярдым саифесине]] бакъынъыз). Бу саифеге тесадюфен авушкъан олсанъыз, браузеринъиздеки '''кери''' дёгмесине басынъыз.",
+'newarticletext' => "Сиз бу багълантынен шимдилик ёкъ олгъан саифеге авуштынъыз. Янъы бир саифе яратмакъ ичюн ашагъыда булунгъан пенджереге метин язынъыз (тафсилятлы малюмат алмакъ ичюн [$1 ярдым саифесине] бакъынъыз). Бу саифеге тесадюфен авушкъан олсанъыз, браузеринъиздеки '''кери''' дёгмесине басынъыз.",
 '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>.',
index 0f6c8c4..b39fb87 100644 (file)
@@ -331,7 +331,6 @@ $1',
 'disclaimers' => 'Cevapkârlıq redi',
 'disclaimerpage' => 'Project:Umumiy Malümat Muqavelesi',
 'edithelp' => 'Saifeler nasıl deñiştirilir?',
-'helppage' => 'Help:Münderice',
 'mainpage' => 'Baş Saife',
 'mainpage-description' => 'Baş Saife',
 'policy-url' => 'Project:Qaideler',
@@ -637,7 +636,7 @@ Siz saifeni oquğanda o avuştırılğan ya da yoq etilgen ola bile.',
 
 Bu yañı esap içün parol, kiriş yapqandan soñ ''[[Special:ChangePassword|parolni deñiştir]]'' bölüginde deñiştirilip olur.",
 'newarticle' => '(Yañı)',
-'newarticletext' => "Siz bu bağlantınen şimdilik yoq olğan saifege avuştıñız. Yañı bir saife yaratmaq içün aşağıda bulunğan pencerege metin yazıñız (tafsilâtlı malümat almaq içün [[{{MediaWiki:Helppage}}|yardım saifesine]] baqıñız). Bu saifege tesadüfen avuşqan olsañız, brauzeriñizdeki '''keri''' dögmesine basıñız.",
+'newarticletext' => "Siz bu bağlantınen şimdilik yoq olğan saifege avuştıñız. Yañı bir saife yaratmaq içün aşağıda bulunğan pencerege metin yazıñız (tafsilâtlı malümat almaq içün [$1 yardım saifesine] baqıñız). Bu saifege tesadüfen avuşqan olsañız, brauzeriñizdeki '''keri''' dögmesine basıñız.",
 'anontalkpagetext' => "----''Bu muzakere saifesi şimdilik qayd olunmağan ya da oturımını açmağan adsız (anonim) qullanıcığa mensüptir. İdentifikatsiya içün IP adres işletile.
 Bir IP adresinden bir qaç qullanıcı faydalanıp ola.
 Eger siz anonim qullanıcı olsañız ve sizge kelgen beyanatlarnı yañlıştan kelgenini belleseñiz, lütfen, artıq bunıñ kibi qarışıqlıq olmasın dep [[Special:UserLogin/signup|qayd oluñız]] ya da [[Special:UserLogin|oturım açıñız]].''",
index c9a98a6..1419b00 100644 (file)
@@ -403,7 +403,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Zasílat mi kopie e-mailů, které pošlu jiným uživatelům',
 'tog-diffonly' => 'Nezobrazovat obsah stránky pod rozdílem verzí',
 'tog-showhiddencats' => 'Zobrazit skryté kategorie',
-'tog-noconvertlink' => 'Vypnout konverzi názvů',
 'tog-norollbackdiff' => 'Po vrácení změny nezobrazovat porovnání rozdílů',
 'tog-useeditwarning' => 'Upozornit, když budu opouštět editaci bez uložení změn',
 'tog-prefershttps' => 'Po přihlášení používat vždy zabezpečené spojení',
@@ -615,7 +614,6 @@ $1',
 'disclaimers' => 'Vyloučení odpovědnosti',
 'disclaimerpage' => 'Project:Vyloučení odpovědnosti',
 'edithelp' => 'Pomoc při editování',
-'helppage' => 'Help:Obsah',
 'mainpage' => 'Hlavní strana',
 'mainpage-description' => 'Hlavní strana',
 'policy-url' => 'Project:Pravidla',
@@ -706,7 +704,7 @@ Správce serveru, který databázi zamkl, poskytl toto zdůvodnění: $1',
 
 Toto je obvykle způsobeno tím, že jste následovali zastaralý odkaz na rozdíl verzí nebo historickou verzi stránky, jež byla smazána.
 
-Pokud toto není váš případ, možná jste nalezli chybu v software. Prosíme, ohlaste to [[Special:ListUsers/sysop|správcům]] spolu s URL této stránky.',
+Není-li toto váš případ, možná jste nalezli chybu v softwaru. Prosíme, ohlaste to [[Special:ListUsers/sysop|správcům]] spolu s URL této stránky.',
 'missingarticle-rev' => '(číslo revize: $1)',
 'missingarticle-diff' => '(Rozdíl: $1, $2)',
 'readonly_lag' => 'Databáze byla automaticky dočasně uzamčena kvůli zpoždění ostatních databázových serverů oproti hlavnímu',
@@ -811,8 +809,7 @@ Nezapomeňte si upravit své [[Special:Preferences|nastavení {{grammar:2sg|{{SI
 'gotaccountlink' => 'Přihlaste se',
 'userlogin-resetlink' => 'Zapomněli jste přihlašovací údaje?',
 'userlogin-resetpassword-link' => 'Zapomněli jste heslo?',
-'helplogin-url' => 'Help:Přihlášení',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Nápověda k přihlašování]]',
+'userlogin-helplink2' => 'Nápověda k přihlašování',
 'userlogin-loggedin' => 'Již jste {{GENDER:$1|přihlášen|přihlášena}} jako $1.
 Pomocí formuláře níže se můžete přihlásit jako jiný uživatel.',
 'userlogin-createanother' => 'Vytvořit jiný účet',
@@ -905,6 +902,7 @@ Než to zkusíte znovu, musíte počkat na vypršení lhůty $1.',
 'createacct-another-realname-tip' => 'Skutečné jméno je nepovinné.
 Pokud se ho rozhodnete uvést, bude použito pro označení autorství vaší práce.',
 'pt-login' => 'Přihlášení',
+'pt-login-button' => 'Přihlásit se',
 'pt-createaccount' => 'Vytvoření účtu',
 'pt-userlogout' => 'Odhlásit se',
 
@@ -937,7 +935,10 @@ Abyste dokončili přihlášení, nastavte si zde nové heslo:',
 'resetpass-temp-password' => 'Dočasné heslo:',
 'resetpass-abort-generic' => 'Změna hesla byla zablokována rozšířením.',
 'resetpass-expired' => 'Platnost vašeho hesla vypršela. Pro přihlášení si nastavte nové heslo.',
-'resetpass-expired-soft' => 'Platnost vašeho hesla vypršela, musíte si nastavit nové. Zvolte si nové heslo nebo klikněte na storno a nastavte si ho později.',
+'resetpass-expired-soft' => 'Platnost vašeho hesla vypršela, musíte si nastavit nové. Zvolte si nové heslo nebo klikněte na „{{int:resetpass-submit-cancel}}“ a nastavte si ho později.',
+'resetpass-validity-soft' => 'Vaše heslo není platné: $1
+
+Zvolte si nové heslo nebo klikněte na „{{int:resetpass-submit-cancel}}“ a nastavte si ho později.',
 
 # Special:PasswordReset
 'passwordreset' => 'Reset hesla',
@@ -1080,9 +1081,9 @@ Možná byla přesunuta či smazána, zatímco jste si stránku {{GENDER:|prohl
 'accmailtitle' => 'Heslo odesláno.',
 'accmailtext' => 'Náhodně vygenerované heslo pro uživatele [[User talk:$1|$1]] bylo odesláno na $2. Po přihlášení ho bude možno změnit na [[Special:ChangePassword|stránce pro změnu hesla]].',
 'newarticle' => '(Nový)',
-'newarticletext' => "Následovali jste odkaz na stránku, která dosud neexistuje.
-Pokud ji chcete vytvořit, napište text do rámečku níže a stiskněte tlačítko ''Uložit změny''. Další rady najdete v [[{{MediaWiki:Helppage}}|nápovědě]].
-Pokud jste zde omylem, stiskněte ve svém prohlížeči tlačítko ''Zpět''.",
+'newarticletext' => 'Následovali jste odkaz na stránku, která dosud neexistuje.
+Pokud ji chcete vytvořit, začněte psát do rámečku níže (více informací najdete v [$1 nápovědě]).
+Pokud jste zde omylem, stiskněte ve svém prohlížeči tlačítko <strong>Zpět</strong>.',
 'anontalkpagetext' => "----''Toto je diskusní stránka anonymního uživatele, který si dosud nevytvořil účet nebo ho nepoužívá. K&nbsp;jeho identifikaci proto musíme používat číselnou IP adresu. Takovou IP adresu může sdílet několik uživatelů. Pokud jste anonymní uživatel a&nbsp;máte za to, že jsou vám adresovány irelevantní komentáře, prosíme, [[Special:UserLogin/signup|vytvořte si účet]] nebo [[Special:UserLogin|se přihlaste]], vyhnete se tím budoucí záměně s&nbsp;jinými anonymními uživateli.''",
 'noarticletext' => 'Tato stránka zatím neobsahuje žádný text.
 Můžete [[Special:Search/{{PAGENAME}}|zkusit tento název vyhledat]] na jiných stránkách, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} prohlédnout si příslušné protokolovací záznamy] nebo [{{fullurl:{{FULLPAGENAME}}|action=edit}} tuto stránku založit]</span>.',
@@ -1317,9 +1318,10 @@ Můžete si toto porovnání prohlédnout; podrobnosti jsou uvedeny v [{{fullurl
 'revdelete-show-file-submit' => 'Ano',
 'revdelete-selected' => "'''{{PLURAL:$2|Vybraná|Vybrané}} revize stránky [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Vybraná protokolovaná událost|Vybrané protokolované události}}:'''",
-'revdelete-text' => "'''Smazané verze a události budou nadále zobrazeny v historii stránky a protokolovacích záznamech, ale některé jejich části nebudou veřejně dostupné.'''
-Ostatní správci {{GRAMMAR:2sg|{{SITENAME}}}} si budou moci skrytý obsah prohlížet a pomocí stejného rozhraní jej také obnovit,
-pokud nebyla nastavena další omezení.",
+'revdelete-text-text' => 'Smazané editace se budou i nadále zobrazovat v historii stránky, ale části jejich obsahu nebudou veřejně přístupné.',
+'revdelete-text-file' => 'Smazané verze souborů se budou i nadále zobrazovat v historii stránky, ale části jejich obsahu nebudou veřejně přístupné.',
+'logdelete-text' => 'Smazané protokolovací záznamy se budou i nadále zobrazovat v historii stránky, ale části jejich obsahu nebudou veřejně přístupné.',
+'revdelete-text-others' => 'Ostatní správci {{grammar:2sg|{{SITENAME}}}} budou i nadále moci ke skrytému obsahu přistupovat a mohou ho pomocí stejného rozhraní obnovit, pokud nejsou nastavena dodatečná omezení.',
 'revdelete-confirm' => 'Prosím potvrďte, že to opravdu chcete učinit, že si uvědomujete důsledky a že je to v souladu s [[{{MediaWiki:Policy-url}}|pravidly]].',
 'revdelete-suppress-text' => "Utajování by se mělo používat '''pouze''' v následujících případech:
 * Potenciálně pomlouvačné informace
@@ -1329,7 +1331,7 @@ pokud nebyla nastavena další omezení.",
 'revdelete-hide-text' => 'Text revize',
 'revdelete-hide-image' => 'Skrýt obsah souboru',
 'revdelete-hide-name' => 'Skrýt událost a cíl',
-'revdelete-hide-comment' => 'Editační komentář',
+'revdelete-hide-comment' => 'Shrnutí editace',
 'revdelete-hide-user' => 'Uživatelské jméno / IP adresa',
 'revdelete-hide-restricted' => 'Utajit data i před správci',
 'revdelete-radio-same' => '(neměnit)',
@@ -1779,7 +1781,7 @@ Vaše adresa v takovém případě není prozrazena.',
 'recentchanges-legend-heading' => "'''Legenda:'''",
 'recentchanges-legend-newpage' => '(vizte též [[Special:NewPages|seznam nových stránek]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => 'Níže {{PLURAL:$1|je|jsou|je}} nejvýše <b>$1</b> {{PLURAL:$1|změna|změny|změn}} od <b>$2</b>.',
+'rcnotefrom' => 'Níže jsou změny od <strong>$2</strong> ({{PLURAL:$1|zobrazena|zobrazeny|zobrazeno}} nejvýše <strong>$1</strong>).',
 'rclistfrom' => 'Ukázat nové změny, počínaje od $1',
 'rcshowhideminor' => '$1 malé editace',
 'rcshowhideminor-show' => 'Zobrazit',
@@ -1920,6 +1922,7 @@ Před tím, než soubor znovu nahrajete, byste měli požádat někoho, kdo mů
 'uploaddisabledtext' => 'Načítání souborů je vypnuto.',
 'php-uploaddisabledtext' => 'V PHP je vypnuto načítání souborů. Prosím, zkontrolujte nastavení file_uploads.',
 'uploadscripted' => 'Tento soubor obsahuje HTML nebo kód skriptu, který by mohl být prohlížečem chybně interpretován.',
+'uploadscriptednamespace' => 'Tento SVG soubor obsahuje nedovolený jmenný prostor „$1“',
 'uploadinvalidxml' => 'XML v načteném souboru nelze zpracovat.',
 'uploadvirus' => 'Tento soubor obsahuje virus! Podrobnosti: $1',
 'uploadjava' => 'Tento soubor je ZIP, který obsahuje javový soubor .class.
@@ -2287,7 +2290,7 @@ Každý řádek obsahuje odkaz na první a druhé přesměrování a k tomu cíl
 'deadendpagestext' => 'Následující stránky neodkazují na žádnou jinou stránku {{grammar:2sg|{{SITENAME}}}}.',
 'protectedpages' => 'Zamčené stránky',
 'protectedpages-indef' => 'Pouze zámky na neurčito',
-'protectedpages-summary' => 'Tato stránka obsahuje seznam existujících stránek, které jsou momentálně zamčeny. Seznam názvů zamčených proti založení najdete na [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Tato stránka obsahuje seznam existujících stránek, které jsou momentálně zamčeny. Seznam názvů zamčených proti založení najdete na stránce [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Pouze kaskádové zámky',
 'protectedpages-noredirect' => 'Skrýt přesměrování',
 'protectedpagesempty' => 'Žádná stránka není zamčena s těmito parametry.',
@@ -2300,7 +2303,7 @@ Každý řádek obsahuje odkaz na první a druhé přesměrování a k tomu cíl
 'protectedpages-unknown-timestamp' => 'Neznámé',
 'protectedpages-unknown-performer' => 'Neznámý uživatel',
 'protectedtitles' => 'Zamčené názvy stránek',
-'protectedtitles-summary' => 'Tato stránka obsahuje seznam názvů, které jsou momentálně zamčeny proti založení. Seznam existujících zamčených stránek najdete na [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Tato stránka obsahuje seznam názvů, které jsou momentálně zamčeny proti založení. Seznam existujících zamčených stránek najdete na stránce [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'S těmito parametry nejsou zamčeny žádné názvy.',
 'listusers' => 'Uživatelé',
 'listusers-editsonly' => 'Zobrazit pouze uživatele s editacemi',
@@ -2572,7 +2575,7 @@ $2 zaznamenává poslední smazání.',
 'delete-edit-reasonlist' => 'Editovat důvody smazání',
 'delete-toobig' => 'Tato stránka má velkou historii editací, přes $1 {{PLURAL:$1|verzi|verze|verzí}}. Mazání takových stránek je omezeno, aby se předešlo nechtěnému narušení {{grammar:2sg|{{SITENAME}}}}.',
 'delete-warning-toobig' => 'Tato stránka má velkou historii editací, přes $1 {{PLURAL:$1|verzi|verze|verzí}}. Mazání takových stránek může narušit databázové operace {{grammar:2sg|{{SITENAME}}}}; postupujte opatrně.',
-'deleting-backlinks-warning' => "'''Upozornění:''' Stránka, kterou se chystáte smazat, je na jiných stránkách odkazována nebo je do nich vložena.",
+'deleting-backlinks-warning' => "'''Upozornění:''' Stránka, kterou se chystáte smazat, je [[Special:WhatLinksHere/{{FULLPAGENAME}}|na jiných stránkách]] odkazována nebo je do nich vložena.",
 
 # Rollback
 'rollback' => 'Vrátit zpět editace',
@@ -2623,7 +2626,7 @@ Můžete si prohlédnout též [[Special:ProtectedPages|seznam aktuálně platn
 Současné nastavení pro tuto stránku je: '''$1''':",
 'protect-locked-access' => "Tento účet nemá povoleno měnit nastavení zámků.
 Současné nastavení pro tuto stránku je: '''$1''':",
-'protect-cascadeon' => 'Tato stránka je právě zamčena, protože je vložena do {{PLURAL:$1|následující stránky zamčené|následujících stránek zamčených|následujících stránek zamčených}} kaskádovým zámkem. Můžete změnit zámky pro tuto stránku, ale nebude to mít žádný vliv na kaskádové zamčení.',
+'protect-cascadeon' => 'Tato stránka je právě zamčena, protože je vložena do {{PLURAL:$1|následující stránky zamčené|následujících stránek zamčených}} kaskádovým zámkem. Změny zámků této stránky nebudou mít žádný vliv na kaskádové zamčení.',
 'protect-default' => 'Povolit všem',
 'protect-fallback' => 'Povolit jen uživatelům s oprávněním „$1“',
 'protect-level-autoconfirmed' => 'Povolit jen automaticky schváleným uživatelům',
@@ -2742,8 +2745,10 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Tato IP adresa je momentálně zablokována.
 Zde je pro přehled zobrazen nejnovější záznam z knihy zablokování:',
 'sp-contributions-search' => 'Zobrazení příspěvků',
+'sp-contributions-suppresslog' => 'utajené příspěvky uživatele',
 'sp-contributions-username' => 'IP adresa nebo uživatelské jméno:',
-'sp-contributions-toponly' => 'Zobrazit pouze aktuální revize',
+'sp-contributions-toponly' => 'Zobrazit pouze editace na aktuální revizi',
+'sp-contributions-newonly' => 'Zobrazovat pouze editace zakládající stránku',
 'sp-contributions-submit' => 'Zobrazit',
 
 # What links here
index f4fe54c..38bc7af 100644 (file)
@@ -75,7 +75,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Sélôj do mie kòpije e-mailów, chtërné sélóm do jinych brëkòwników',
 'tog-diffonly' => 'Nie wëskrzëniôj zamkłoscë starnë niżi przërónaniô zjinaków',
 'tog-showhiddencats' => 'Wëskrzëni zataconé kategòrëje',
-'tog-noconvertlink' => 'Wëłączë kònwersëjã titlów w lënkach',
 'tog-norollbackdiff' => 'Pòcësni wëskrzënianié zjinaków pò copniãcô sã',
 
 'underline-always' => 'Wiedno',
@@ -254,7 +253,6 @@ $messages = array(
 'disclaimers' => 'Prawné zastrzedżi',
 'disclaimerpage' => 'Project:Prawné zastrzedżi',
 'edithelp' => 'Pòmòc do edicëji',
-'helppage' => 'Help:Spisënk zamkłoscë',
 'mainpage' => 'Przédnô starna',
 'mainpage-description' => 'Przédnô starna',
 'policy-url' => 'Project:Regle',
@@ -457,7 +455,7 @@ Proszëmë pòdac wëższé pòdôłczi przë wszëtczich pëtaniach.",
 Parolã dlô negò nowégò kònta mòże zmienic pò wlogòwaniu na starnie ''[[Special:ChangePassword|zjinaka parolë]]''.",
 'newarticle' => '(Nowi)',
 'newarticletext' => "Môsz przëszłi z lënkù do starnë jaka jesz nie òbstoji.
-Bë ùsôdzëc artikel, naczni pisac w kastce niżi (òb. [[{{MediaWiki:Helppage}}|starnã pòmòcë]]
+Bë ùsôdzëc artikel, naczni pisac w kastce niżi (òb. [$1 starnã pòmòcë]
 dlô wicy wëdowiédzë).
 Jeżlë jes të tuwò bez zmiłkã, le klëkni w swòjim przezérnikù knąpã '''nazôd'''.",
 'anontalkpagetext' => "----''To je starna dyskùsëji anonimòwiégò brëkòwnika, chtëren nie ùsôdzëł jesz swòjegò kòntae, abò gò nie brëkùje.
index e86553c..40b69aa 100644 (file)
@@ -253,12 +253,11 @@ $messages = array(
 # 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).
 'aboutsite' => 'О {{grammar:instrumental|{{SITENAME}}}}',
 'aboutpage' => 'Project:О сѥмь опꙑтьствовании',
-'copyright' => 'подъ прощєниѥмь $1 пьсано ѥстъ',
+'copyright' => 'подъ прощєниѥмь $1 пьсано ѥстъ · ащє ино нє каꙁано ѥстъ',
 'copyrightpage' => '{{ns:project}}:Творьцъ права',
 'currentevents' => 'сѫщѧѩ вѣщи',
 'currentevents-url' => 'Project:Сѫщѧѩ вѣщи',
 'edithelp' => 'помощь по исправлѥниѭ',
-'helppage' => 'Help:Каталогъ',
 'mainpage' => 'главьна страница',
 'mainpage-description' => 'главьна страница',
 'policy-url' => 'Project:Полїтїка',
@@ -329,7 +328,6 @@ $messages = array(
 'createaccount' => 'съꙁижди си мѣсто',
 'gotaccount' => 'мѣсто ти ѥстъ ли? $1',
 'gotaccountlink' => 'въниди',
-'helplogin-url' => 'Help:Въниждѥниѥ',
 'createaccountreason' => 'какъ съмꙑслъ :',
 'createacct-reason' => 'какъ съмꙑслъ',
 'createacct-submit' => 'съꙁижди си мѣсто',
@@ -444,7 +442,7 @@ $messages = array(
 'searchresults-title' => 'исканиꙗ ⁖ $1 ⁖ слѣдьствиѥ',
 'viewprevnext' => 'виждь ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "'''страница имєньмь ⁖ [[:$1]] ⁖ ѥстъ створѥна ю'''",
-'searchmenu-new' => "'''страницѫ ⁖ [[:$1]] ⁖ сътворити можєши'''",
+'searchmenu-new' => '<strong>страницѫ "⁖ [[:$1]] ⁖" сътворити можєши</strong> {{PLURAL:$2|0=|ꙁъри такождє страница ижє по искании авлєна ѥстъ|ꙁьри такождє исканиꙗ слѣдьствиꙗ}}',
 'searchprofile-articles' => 'члѣни',
 'searchprofile-project' => 'опꙑтьствовании и помощи страницѧ',
 'searchprofile-images' => 'дѣла',
@@ -497,9 +495,9 @@ $messages = array(
 'yourrealname' => 'истиньно имѧ :',
 'yourlanguage' => 'ѩꙁꙑкъ :',
 'yournick' => 'новъ аѵтографъ :',
-'yourgender' => 'полъ :',
-'gender-male' => 'мѫжÑ\8a',
-'gender-female' => 'жÑ\94на',
+'yourgender' => 'ꙗко жє о тєбѣ пьсати ;',
+'gender-male' => 'онÑ\8a Ð¸Ñ\81пÑ\80авиÑ\82Ñ\8a Ñ\81Ñ\82Ñ\80аниÑ\86ѧ',
+'gender-female' => 'она Ð¸Ñ\81пÑ\80авиÑ\82Ñ\8a Ñ\81Ñ\82Ñ\80аниÑ\86ѧ',
 'prefs-signature' => 'аѵтографъ',
 
 # User rights
@@ -767,7 +765,7 @@ $messages = array(
 'contributions' => '{{GENDER:$1|польꙃєватєлꙗ}} добродѣꙗниꙗ',
 'contributions-title' => 'польꙃєватєлꙗ ⁖ $1 ⁖ добродѣꙗниꙗ',
 'mycontris' => 'добродѣꙗниꙗ',
-'contribsub2' => 'польꙃєватєлꙗ имѧ ⁖ $1 ⁖ ѥстъ ($2)',
+'contribsub2' => 'польꙃєватєлꙗ имѧ ⁖ {{GENDER:$3|$1}} ⁖ ѥстъ ($2)',
 'uctop' => '(нꙑнѣщьн҄ь обраꙁъ)',
 
 'sp-contributions-blocklog' => 'ꙁаграждєниꙗ їсторїꙗ',
@@ -882,7 +880,7 @@ $messages = array(
 # Media information
 'file-info-size' => '$1 × $2 п҃ѯ · дѣла мѣра : $3 · MIME тѷпъ : $4',
 'svg-long-desc' => 'дѣло SVG · обꙑчьнъ обраꙁъ : $1 × $2 п҃ѯ · дѣла мѣра : $3',
-'show-big-image' => 'плÑ\8cнÑ\8a Ð²Ð¸Ð´а обраꙁъ',
+'show-big-image' => 'иÑ\81Ñ\82оÑ\87Ñ\8cнÑ\8a Ð´Ñ£Ð»а обраꙁъ',
 'show-big-image-size' => '$1 × $2 пиѯєлъ',
 
 # Special:NewFiles
@@ -944,7 +942,7 @@ $messages = array(
 'version' => 'MediaWiki обраꙁъ',
 'version-specialpages' => 'нарочьнꙑ страницѧ',
 'version-version' => '(обраꙁъ $1)',
-'version-license' => 'прощєниѥ',
+'version-license' => 'MediaWiki прощєниѥ',
 'version-software-version' => 'обраꙁъ',
 
 # Special:Redirect
index f97aec1..c3063f7 100644 (file)
@@ -245,7 +245,6 @@ $messages = array(
 'disclaimers' => 'Яваплăха тивĕçтерменни',
 'disclaimerpage' => 'Project:Яваплăха тивĕçтерменни',
 'edithelp' => 'Улшăнусене кĕртме пулăшакан пулăшу',
-'helppage' => 'Help:Пулăшу',
 'mainpage' => 'Тĕп страница',
 'mainpage-description' => 'Тĕп страницă',
 'policy-url' => 'Project:Йĕркесем',
@@ -469,7 +468,7 @@ $1 хутшăнакан патне, е ытти [[{{MediaWiki:Grouppage-sysop}}|
 'newarticle' => '(Çĕнни)',
 'newarticletext' => 'Ссылка урлă эсир халлĕхе çук статья çине куçрăр.
 Çĕнĕ статьяна кĕртес тесен аяларах вырнаçнă чӳречере текста çырăр.
-(тĕплĕнрех пĕлес тесен [[Help:Пулăшу|пулăшу страниципе]] паллашăр).
+(тĕплĕнрех пĕлес тесен [[Help:Пулăшу|пулăшу страниципе] паллашăр).
 Енчен те эсир кунта йăнăшпа лекнĕ пулсан — сирĕн браузерăн «Каялла» кнопка çине пусăр.',
 'usercsspreview' => "'''Ан манăр, эсир сирĕн css файл епле пулассине çеç куратăр, ăна халлĕхе çырса хуман!'''",
 'userjspreview' => "'''Астăвăр, ку сирĕн javascript-файлăн малтанхи курăмĕ кăна, ăна хальлĕхе çырса хуман!'''",
index 3e538a3..e4fb127 100644 (file)
@@ -366,7 +366,6 @@ $1',
 'disclaimers' => 'Gwadiadau',
 'disclaimerpage' => 'Project:Gwadiad Cyffredinol',
 'edithelp' => 'Help gyda golygu',
-'helppage' => 'Help:Cymorth',
 'mainpage' => 'Hafan',
 'mainpage-description' => 'Hafan',
 'policy-url' => 'Project:Policy',
@@ -561,8 +560,6 @@ Sylwer y bydd rhai tudalennau yn parhau i ymddangos fel ag yr oeddent pan oeddec
 'gotaccountlink' => 'Mewngofnodi',
 'userlogin-resetlink' => 'Ydych chi wedi anghofio eich manylion mewngofnodi?',
 'userlogin-resetpassword-link' => 'Wedi anghofio eich cyfrinair?',
-'helplogin-url' => 'Help:Mewngofnodi',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Cymorth i fewngofnodi]]',
 'userlogin-loggedin' => 'Rydych eisoes wedi mewngofnodi wrth yr enw {{GENDER:$1|$1}}.
 Defnyddiwch y ffurflen isod i fewngofnodi wrth rhyw enw arall.',
 'userlogin-createanother' => 'Creu cyfrif ychwanegol',
@@ -647,7 +644,7 @@ Oedwch $1 cyn mentro eto.',
 'suspicious-userlogout' => 'Gwrthodwyd eich cais i allgofnodi oherwydd ei fod yn ymddangos mai gweinydd wedi torri neu ddirprwy gelc a anfonodd y cais.',
 'createacct-another-realname-tip' => "Gallwch ddewis roi eich enw go iawn.
 Os y gwnewch, fe gaiff yr enw go iawn ei defnyddio wrth dadogi'ch gwaith.",
-'pt-login' => 'Mewngofnodwch',
+'pt-login' => 'Mewngofnodi',
 'pt-createaccount' => 'Creu cyfri',
 'pt-userlogout' => 'Allgofnodi',
 
@@ -678,7 +675,7 @@ Gall fod eich bod wedi llwyddo newid eich cyfrinair eisoes neu eich bod wedi gof
 'resetpass-temp-password' => 'Cyfrinair dros dro:',
 'resetpass-abort-generic' => 'Mae estyniad wedi atal newid y cyfrinair.',
 'resetpass-expired' => 'Mae oes eich cyfrinair wedi dod i ben. Gosodwch gyfrinair newydd i fewngofnodi.',
-'resetpass-expired-soft' => "Mae eich cyfrinair wedi dod i ben ac mae'n rhaid ei ailosod. Dewisiwch gyfrinair newydd sbon nawr, neu ailosodwch ef rywdro eto.",
+'resetpass-expired-soft' => 'Mae eich cyfrinair wedi dod i ben ac mae\'n rhaid ei ailosod. Dewisiwch gyfrinair newydd sbon nawr, neu cliciwch "{{int:resetpass-submit-cancel}}" a\'i ailosod rywdro eto.',
 
 # Special:PasswordReset
 'passwordreset' => 'Ailosod cyfrinair',
@@ -818,7 +815,7 @@ Efallai bod yr adran wedi cael ei symud neu ei dileu ers i chi agor y dudalen.",
 'accmailtext' => "Anfonwyd cyfrinair a grewyd ar hap ar gyfer [[User talk:$1|$1]] at $2. Gellir newid y cyfrinair hwn ar y dudalen ''[[Special:ChangePassword|newid cyfrinair]]'', wrth fewngofnodi.",
 'newarticle' => '(Newydd)',
 'newarticletext' => "Rydych chi wedi dilyn cysylltiad i dudalen sydd heb gael ei chreu eto.
-I greu'r dudalen, dechreuwch deipio yn y blwch isod (gweler y [[{{MediaWiki:Helppage}}|dudalen gymorth]] am fwy o wybodaeth).
+I greu'r dudalen, dechreuwch deipio yn y blwch isod (gweler y [$1 dudalen gymorth] am fwy o wybodaeth).
 Os daethoch yma ar ddamwain, cliciwch botwm '''n&ocirc;l''' y porwr.",
 'anontalkpagetext' => "----''Dyma dudalen sgwrs ar gyfer defnyddiwr anhysbys sydd heb greu cyfrif eto, neu nad yw'n ei ddefnyddio. Felly mae'n rhaid inni ddefnyddio'r cyfeiriad IP i'w (h)adnabod. Mae cyfeiriadau IP yn gallu cael eu rhannu rhwng nifer o ddefnyddwyr. Os ydych chi'n ddefnyddiwr anhysbys ac yn teimlo'ch bod wedi derbyn sylwadau amherthnasol, [[Special:UserLogin/signup|crëwch gyfrif]] neu [[Special:UserLogin|mewngofnodwch]] i osgoi cael eich drysu gyda defnyddwyr anhysbys eraill o hyn ymlaen.''",
 'noarticletext' => "Mae'r dudalen hon yn wag ar hyn o bryd.
@@ -938,7 +935,7 @@ Mae ar gael yn barod.',
 'editwarning-warning' => 'Os y gadewch y dudalen hon mae\'n bosib y collwch eich newidiadau iddi.
 Os ydych wedi mewngofnodi gallwch ddiddymu\'r rhybudd hwn yn yr adran "{{int:prefs-editing}}" yn eich dewisiadau.',
 'editpage-notsupportedcontentformat-title' => 'Dydy fformat y cynnwys hwn ddim yn cael ei gefnogi gennym.',
-'editpage-notsupportedcontentformat-text' => 'Dydy fformat y cynnwys ddim yn cael ei gefnogi gan gynnwys model $2.',
+'editpage-notsupportedcontentformat-text' => "Dydy'r fformat $1 ar y cynnwys ddim yn cael ei gefnogi gan y model $2.",
 
 # Content models
 'content-model-wikitext' => 'cystrawen wici',
@@ -1058,8 +1055,6 @@ Serch hyn, gallwch eu cymharu o hyd; cewch weld y manylion ar y [{{fullurl:{{#Sp
 'revdelete-show-file-submit' => 'Ydw',
 'revdelete-selected' => "'''Y {{PLURAL:$2|golygiad|golygiad|golygiadau|golygiadau|golygiadau|golygiadau}} dewisedig o [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Digwyddiad|Digwyddiad|Digwyddiadau|Digwyddiadau|Digwyddiadau|Digwyddiadau}} a ddewiswyd o'r lòg:'''",
-'revdelete-text' => "'''Fe fydd y golygiadau a'r digwyddiadau sydd wedi eu diddymu i'w gweld o hyd yn hanes y dudalen ac yn y logiau, ond ni fydd y cyhoedd yn gallu gweld y cynnwys i gyd.'''
-Fe fydd gweinyddwyr eraill {{SITENAME}} o hyd yn gallu gweld yr hyn a guddiwyd. Fe allant ei ddatguddio trwy ddefnyddio'r dudalen arbennig hon, cyhyd ag nad oes cyfyngiadau ychwanegol wedi eu gosod.",
 'revdelete-confirm' => "Byddwch gystal â chadarnhau eich bod yn bwriadu gwneud hyn, eich bod yn deall yr effaith a gaiff, a'ch bod yn ei wneud yn ôl y [[{{MediaWiki:Policy-url}}|y polisi]].",
 'revdelete-suppress-text' => "'''Dim ond''' yn yr achosion sy'n dilyn y dylech fentro cuddio gwybodaeth:
 * Gwybodaeth a all fod yn enllib
@@ -1153,7 +1148,8 @@ Pan yn gwneud hyn dylid sicrhau nad yw dilyniant hanes tudalennau yn cael ei ddi
 'showhideselectedversions' => 'Dangos/cuddio y diwygiadau dewisedig',
 'editundo' => 'dadwneud',
 'diff-empty' => '(Dim gwahaniaeth)',
-'diff-multi-sameuser' => 'Mae ({{PLURAL:$1|un golygiad|$1 golygiadau}} gan yr un defnyddiwr heb ei ddangos.',
+'diff-multi-sameuser' => '(Ni ddangosir y {{PLURAL:$1||golygiad|$1 olygiad|$1 golygiad}} yn y canol gan yr un defnyddiwr)',
+'diff-multi-otherusers' => '(Ni ddangosir y {{PLURAL:$1||golygiad|$1 olygiad|$1 golygiad}} yn y canol gan {{PLURAL:$2||ddefnyddiwr|$2 ddefnyddiwr|$2 defnyddiwr}} arall)',
 'diff-multi-manyusers' => '(Ni ddangosir {{PLURAL:$1|yr $1 diwygiad|yr $1 diwygiad|y $1 ddiwygiad|y $1 diwygiad|y $1 diwygiad|y $1 diwygiad}} rhyngol gan mwy na $2 {{PLURAL:$2|o ddefnyddwyr}}.)',
 'difference-missing-revision' => "Ni chafwyd hyd i $1 {{PLURAL:$2|diwygiad|diwygiad|ddiwygiad|diwygiad}} o'r gwahaniaeth ($1) {{PLURAL:$2|hwn}}.
 
@@ -1199,7 +1195,7 @@ Mae manylion pellach i'w cael yn [{{fullurl:{{#Special:Log}}/delete|page={{FULLP
 'searchrelated' => 'erthyglau eraill tebyg',
 'searchall' => 'oll',
 'showingresults' => "Yn dangos $1 {{PLURAL:$1|canlyniad|canlyniad|ganlyniad|chanlyniad|chanlyniad|canlyniad}} isod gan ddechrau gyda rhif '''$2'''.",
-'showingresultsinrange' => 'Yn cael ei ddangos isod yn y rhediad Showing below up to {{PLURAL:$1|<strong>1</strong> result|<strong>$1</strong> results}} #<strong>$2</strong> i #<strong>$3</strong>.',
+'showingresultsinrange' => 'Yn dangos hyd at {{PLURAL:$1||<strong>1</strong> canlyniad|<strong>$1</strong> ganlyniad|$1 o ganlyniadau}} isod yn yr ystod #<strong>$2</strong> i #<strong>$3</strong>.',
 'showingresultsnum' => "Yn dangos $3 {{PLURAL:$3|canlyniad|canlyniad|ganlyniad|chanlyniad|chanlyniad|canlyniad}} isod gan ddechrau gyda rhif '''$2'''.",
 'showingresultsheader' => "{{PLURAL:$5||Canlyniad '''$1''' o blith '''$3'''|Canlyniadau '''$1 - $2''' o blith '''$3'''|Canlyniadau '''$1 - $2''' o blith '''$3'''|Canlyniadau '''$1 - $2''' o blith '''$3'''|Canlyniadau '''$1 - $2''' o blith '''$3'''}} ar gyfer '''$4'''",
 'search-nonefound' => "Ni chafwyd dim canlyniadau i'r ymholiad.",
@@ -1519,14 +1515,26 @@ Mae'r wybodaeth hon ar gael i'r cyhoedd.",
 'recentchanges-legend-heading' => "'''Allwedd:'''",
 'recentchanges-legend-newpage' => '(gweler hefyd [[Special:NewPages|restr y tudalennau newydd]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "Isod rhestrir pob newid ers '''$2''' (hyd at '''$1''' ohonynt).",
+'rcnotefrom' => "Isod rhestrir pob newid er <strong>'''$2'''</strong> (ymddengys hyd at <strong>'''$1'''</strong> ohonynt).",
 'rclistfrom' => 'Dangos newidiadau newydd, gan ddechrau ers $1',
 'rcshowhideminor' => '$1 golygiadau bychain',
+'rcshowhideminor-show' => 'Dangoser',
+'rcshowhideminor-hide' => 'Cuddier',
 'rcshowhidebots' => '$1 botiau',
+'rcshowhidebots-show' => 'Dangoser',
+'rcshowhidebots-hide' => 'Cuddier',
 'rcshowhideliu' => '$1 o ddefnyddwyr cofrestredig',
+'rcshowhideliu-show' => 'Dangoser',
+'rcshowhideliu-hide' => 'Cuddier',
 'rcshowhideanons' => '$1 defnyddwyr anhysbys',
+'rcshowhideanons-show' => 'Dangoser',
+'rcshowhideanons-hide' => 'Cuddier',
 'rcshowhidepatr' => '$1 golygiadau wedi derbyn ymweliad patrôl',
+'rcshowhidepatr-show' => 'Dangoser',
+'rcshowhidepatr-hide' => 'Cuddier',
 'rcshowhidemine' => '$1 fy ngolygiadau',
+'rcshowhidemine-show' => 'Dangoser',
+'rcshowhidemine-hide' => 'Cuddier',
 'rclinks' => 'Dangos y $1 newid diweddaraf yn ystod y(r) $2 diwrnod diwethaf<br />$3',
 'diff' => 'gwahan',
 'hist' => 'hanes',
@@ -1653,6 +1661,7 @@ Cyn i chi ail-lwytho'r ffeil, dylech holi i rywun â'r gallu ganddo i weld data
 'php-uploaddisabledtext' => 'Anablwyd uwchlwytho ffeiliau yn PHP.
 Gwiriwch y gosodiad ar file_uploads.',
 'uploadscripted' => "Mae'r ffeil hon yn cynnwys HTML neu sgript a all achosi problemau i borwyr gwe.",
+'uploadscriptednamespace' => "Mae'r ffeil SVG hon yn cynnwys yr enw '$1' sy'n enw annilys ar barth",
 'uploadinvalidxml' => "Ni ellid dosrannu'r XML yn y ffeil a uwchlwythwyd.",
 'uploadvirus' => 'Mae firws gan y ffeil hon! Manylion: $1',
 'uploadjava' => "Ffeil ZIP yw hwn sy'n cynnwys ffeil Java .class.
@@ -2210,7 +2219,7 @@ Pan fydd y dudalen hon, neu ei thudalen sgwrs, yn newid, fe fyddant yn ymddangos
 'watchmethod-list' => "yn chwilio'r tudalennau ar y rhestr wylio am ddiwygiadau diweddar",
 'watchlistcontains' => '{{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.',
 'iteminvalidname' => "Problem gyda'r eitem '$1', enw annilys...",
-'wlnote2' => 'Isod, fe welwch y newidiadau yn yr  {{PLURAL:$1|hour|<strong>$1</strong> awr diwethaf}}, a hynny ar $2, $3.',
+'wlnote2' => 'Isod, fe welwch y newidiadau yn ystod {{PLURAL:$1|yr awr|yr awr|y ddwyawr ddiwethaf|teirawr diwethaf|<strong>$1</strong> awr diwethaf}}, hyd at $2, $3.',
 'wlshowlast' => "Dangoser newidiadau'r $1 awr ddiwethaf neu'r $2 {{PLURAL:$2|diwrnod|diwrnod|ddiwrnod|diwrnod|diwrnod|diwrnod}} diwethaf neu'r $3 newidiadau.",
 'watchlist-options' => 'Dewisiadau ar gyfer y rhestr wylio',
 
@@ -2298,7 +2307,7 @@ Gwelwch y $2 am gofnod o\'r dileuon diweddar.',
 Cyfyngwyd ar y gallu i ddileu tudalennau sydd wedi eu golygu cymaint â hyn, er mwyn osgoi amharu ar weithrediad databas {{SITENAME}} yn ddamweiniol.",
 'delete-warning-toobig' => "Cafwyd dros $1 {{PLURAL:$1|o olygiadau}} i'r dudalen hon.
 Gallai dileu tudalen, gyda hanes golygu cymaint â hyn iddi, beri dryswch i weithrediadau'r databas ar {{SITENAME}}; ewch ati'n ofalus.",
-'deleting-backlinks-warning' => "'''Rhybudd:''' Mae tudalennau eraill yn cysylltu i'r dudalen yr ydych ar fin ei dileu, neu'n trawsgynnwys y dudalen hon.",
+'deleting-backlinks-warning' => "'''Rhybudd:''' Mae [[Special:WhatLinksHere/{{FULLPAGENAME}}|tudalennau eraill]] yn cysylltu i'r dudalen yr ydych ar fin ei dileu, neu'n trawsgynnwys y dudalen hon.",
 
 # Rollback
 'rollback' => 'Gwrthdroi golygiadau',
@@ -2475,6 +2484,7 @@ Mae'r cofnod diweddaraf yn y lòg blocio i'w weld isod:",
 'sp-contributions-search' => 'Chwilio am gyfraniadau',
 'sp-contributions-username' => 'Cyfeiriad IP neu enw defnyddiwr:',
 'sp-contributions-toponly' => "Dangos golygiadau sy'n olygiadau diweddaraf yn unig",
+'sp-contributions-newonly' => "Dangos y golygiadau hynny sy'n dechrau tudalen yn unig",
 'sp-contributions-submit' => 'Chwilier',
 
 # What links here
@@ -2786,7 +2796,7 @@ $2',
 'thumbnail_image-type' => "Nid yw'r math hwn o ddelwedd yn cael ei gynnal",
 'thumbnail_gd-library' => 'Mae ffurfwedd y llyfrgell GD yn anghyflawn: y ffwythiant $1 yn eisiau',
 'thumbnail_image-missing' => "Mae'n debyg bod y ffeil yn eisiau: $1",
-'thumbnail_image-failure-limit' => "'Da chi 'di methu gormod o weithiau (\$ neu fwy) i rendro'r ciplun. Ceisiwch eto nes ymlaen.",
+'thumbnail_image-failure-limit' => "'Da chi 'di methu gormod o weithiau ($1 neu fwy) i rendro'r ciplun. Ceisiwch eto nes ymlaen.",
 
 # Special:Import
 'import' => 'Mewnforio tudalennau',
index 4ab4fbc..7aa79d8 100644 (file)
@@ -230,7 +230,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Send mig kopier af e-mails som jeg sender til andre brugere',
 'tog-diffonly' => 'Vis ikke sideindhold neden under versionssammenligninger',
 'tog-showhiddencats' => 'Vis skjulte kategorier',
-'tog-noconvertlink' => 'Slå konvertering af sidetitler fra',
 'tog-norollbackdiff' => 'Vis ikke forskel efter tilbagerulning',
 'tog-useeditwarning' => 'Advar mig, hvis jeg forlader en redigeringsside med ændringer, der ikke er gemt.',
 'tog-prefershttps' => 'Brug altid en sikker forbindelse, når du er logget ind',
@@ -442,7 +441,6 @@ $1',
 'disclaimers' => 'Forbehold',
 'disclaimerpage' => 'Project:Generelle forbehold',
 'edithelp' => 'Hjælp til redigering',
-'helppage' => 'Help:Hjælp',
 'mainpage' => 'Forside',
 'mainpage-description' => 'Forside',
 'policy-url' => 'Project:Politik',
@@ -638,8 +636,7 @@ Glem ikke at ændre dine [[Special:Preferences|{{SITENAME}} indstillinger]].',
 'gotaccountlink' => 'Log på',
 'userlogin-resetlink' => 'Har du glemt dine login oplysninger?',
 'userlogin-resetpassword-link' => 'Glemt din adgangskode?',
-'helplogin-url' => 'Help:Logge på',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hjælp til at logge på]]',
+'userlogin-helplink2' => 'Hjælp med at logge på',
 'userlogin-loggedin' => 'Du er allerede logget på som {{GENDER:$1|$1}}.
 Brug formularen nedenfor til at logge på som en anden bruger.',
 'userlogin-createanother' => 'Opret en anden konto',
@@ -732,6 +729,7 @@ Vent venligst $1, før du prøver igen.',
 'createacct-another-realname-tip' => 'Angivelse af rigtigt navn er valgfrit.
 Hvis du vælger at oplyse dit navn, vil det blive brugt til at tilskrive dig dit arbejde.',
 'pt-login' => 'Log på',
+'pt-login-button' => 'Log på',
 'pt-createaccount' => 'Opret konto',
 'pt-userlogout' => 'Log af',
 
@@ -764,7 +762,10 @@ For at afslutte indlogning, skal du oprette et nyt kodeord:',
 'resetpass-temp-password' => 'Midlertidig adgangskode',
 'resetpass-abort-generic' => 'Ændring af adgangskode er blevet afbrudt af en udvidelse',
 'resetpass-expired' => 'Dit kodeord er udløbet. Vær venlig at ændre det til et nyt.',
-'resetpass-expired-soft' => 'Dit kodeord er udløbet og skal ændres. Vær venlig at ændre det nu, eller tryk annuller for at ændre det senere.',
+'resetpass-expired-soft' => 'Din adgangskode er udløbet og skal ændres. Vær venlig at ændre den nu, eller tryk "{{int:resetpass-submit-cancel}}" for at ændre den senere.',
+'resetpass-validity-soft' => 'Din adgangskode er ikke gyldig:  $1 
+
+Vær venlig at ændre den nu, eller tryk "{{int:resetpass-submit-cancel}}" for at ændre den senere.',
 
 # Special:PasswordReset
 'passwordreset' => 'Nulstil adgangskode',
@@ -905,7 +906,7 @@ Angiv venligst alle de ovenstående detaljer ved eventuelle henvendelser.',
 'newarticle' => '(Ny)',
 'newarticletext' => "Du har fulgt en henvisning til en side som endnu ikke findes.
 For at oprette siden skal du begynde at skrive i boksen nedenfor
-(se [[{{MediaWiki:Helppage}}|hjælpesiden]] for yderligere information).
+(se [$1 hjælpesiden] for yderligere information).
 Hvis du er her ved en fejl, så tryk på din browsers '''tilbage'''-knap.",
 'anontalkpagetext' => "---- ''Dette er en diskussionsside for en anonym bruger, der ikke har oprettet en konto endnu eller ikke bruger den.
 Vi er derfor nødt til at bruge den numeriske IP-adresse til at identificere ham eller hende.
@@ -1145,8 +1146,6 @@ Du kan se denne forskel; der kan findes detaljer i [{{fullurl:{{#Special:Log}}/s
 'revdelete-show-file-submit' => 'Ja',
 'revdelete-selected' => "'''{{PLURAL:$2|Valgte version|Valgte versioner}} af '''$1:''''''",
 'logdelete-selected' => "'''{{PLURAL:$1|Valgt logindførsel|Valgte logindførsler}}:'''",
-'revdelete-text' => "'''Slettede versioner vil fortsat vises i sidehistorik og på logsider, men dele af deres indhold vil ikke være offentligt tilgængeligt.'''
-Andre administratorer på {{SITENAME}} vil fortsat være i stand til at se det skjulte indhold og kan gendanne det igen, medmindre der laves yderligere restriktioner.",
 'revdelete-confirm' => 'Vær venlig at bekræfte at du vil gøre dette, at du forstår konsekvenserne, og at du gør det i overensstemmelse med [[{{MediaWiki:Policy-url}}|retningslinjerne]].',
 'revdelete-suppress-text' => "Der bør '''kun''' skjules i de følgende tilfælde:
 * Potentielt injurierende oplysninger
@@ -1242,7 +1241,7 @@ Vær opmæksom på at bevare kontinuiteten i sidehistorikken.
 'showhideselectedversions' => 'Vis/skjul udvalgte versioner',
 'editundo' => 'fjern redigering',
 'diff-empty' => '(Ingen forskel)',
-'diff-multi-sameuser' => '({{PLURAL:$1|En mellemliggende version|$1 mellemliggende versioner}} af den samme bruger, vises ikke)',
+'diff-multi-sameuser' => '({{PLURAL:$1|En mellemliggende version|$1 mellemliggende versioner}} af den samme bruger vises ikke)',
 'diff-multi-otherusers' => '({{PLURAL:$1|En mellemliggende version|$1 mellemliggende versioner}} af {{PLURAL:$2|en anden bruger|$2 andre brugere}} ikke vist)',
 'diff-multi-manyusers' => '({{PLURAL:$1|En mellemliggende version|$1 mellemliggende versioner}} af mere end $2 {{PLURAL:$2|bruger|brugere}} ikke vist)',
 'difference-missing-revision' => '{{PLURAL:$2|En revision|$2 revisioner}} af denne forskel ($1) {{PLURAL:$2|blev|blev}} ikke fundet.
@@ -1282,7 +1281,7 @@ Detaljer kan findes i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'search-section' => '(afsnit $1)',
 'search-suggest' => 'Mente du: $1',
 'search-interwiki-caption' => 'Søsterprojekter',
-'search-interwiki-default' => '{{PLURAL:$1|et resultat|$1 resultater}}:',
+'search-interwiki-default' => 'Resultater fra $1:',
 'search-interwiki-more' => '(mere)',
 'search-relatedarticle' => 'Relateret',
 'searcheverything-enable' => 'Søg i alle navnerum',
@@ -1751,6 +1750,7 @@ Du bør spørge en person med evnen til at se undertrykte fildata for at gennemg
 'uploaddisabledtext' => 'Oplægning af filer er deaktiveret.',
 'php-uploaddisabledtext' => 'Oplægning af filer er forhindret i PHP. Tjek indstillingen for file_uploads.',
 'uploadscripted' => 'Denne fil indeholder HTML eller script-kode, der i visse tilfælde can fejlfortolkes af en browser.',
+'uploadscriptednamespace' => 'Denne SVG-fil indeholder et ulovligt navnerum "$1"',
 'uploadinvalidxml' => 'XML i den uploadede fil kunne ikke tolkes.',
 'uploadvirus' => 'Denne fil indeholder en virus! Virusnavn: $1',
 'uploadjava' => 'Denne fil er en ZIP-fil, der indeholder en Java .class-fil.
@@ -2118,7 +2118,7 @@ Hver linje indeholder henvisninger til den første og den anden omdirigering, s
 'deadendpagestext' => 'De følgende sider henviser ikke til andre sider i denne wiki.',
 'protectedpages' => 'Skrivebeskyttede sider',
 'protectedpages-indef' => 'Kun beskyttelser på ubestemt tid',
-'protectedpages-summary' => 'Denne side indeholder en liste over eksisterende sider, der i øjeblikket er beskyttet. For en liste over titler, der er beskyttet fra oprettelse, se [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Denne side indeholder en liste over eksisterende sider, der i øjeblikket er beskyttet. For en liste over titler, der er beskyttet fra oprettelse, se [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Kun nedarvende beskyttelser',
 'protectedpages-noredirect' => 'Skjul omdirigeringer',
 'protectedpagesempty' => 'I øjeblikket er ingen sider beskyttet på denne måde.',
@@ -2131,7 +2131,7 @@ Hver linje indeholder henvisninger til den første og den anden omdirigering, s
 'protectedpages-unknown-timestamp' => 'Ukendt',
 'protectedpages-unknown-performer' => 'Ukendt bruger',
 'protectedtitles' => 'Beskyttede sidenavne',
-'protectedtitles-summary' => 'Denne side indeholder en liste over titler, der i øjeblikket er beskyttet fra oprettelse. For en liste over eksisterende sider, der er beskyttet, se [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Denne side indeholder en liste over titler, der i øjeblikket er beskyttet fra oprettelse. For en liste over eksisterende sider, der er beskyttet, se [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Der er ingen sidetitler der er beskyttet med disse parametre.',
 'listusers' => 'Brugerliste',
 'listusers-editsonly' => 'Vis kun brugere med redigeringer',
@@ -2403,7 +2403,7 @@ Bekræft venligst at du virkelig vil gøre dette, at du forstår konsekvenserne,
 'delete-edit-reasonlist' => 'Rediger sletningsårsager',
 'delete-toobig' => 'Denne side har en stor historik, over {{PLURAL:$1|en version|$1 versioner}}. Sletning af sådanne sider er begrænset, for at forhindre utilsigtet forstyrrelse af {{SITENAME}}.',
 'delete-warning-toobig' => 'Denne side har en stor historik, over {{PLURAL:$1|en version|$1 versioner}} versioner, slettes den kan det forstyrre driften af {{SITENAME}}, gå forsigtigt frem.',
-'deleting-backlinks-warning' => "'''Advarsel:''' Andre sider linker til eller inkluderer den side, du er ved at slette.",
+'deleting-backlinks-warning' => "'''Advarsel:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Andre sider]] linker til eller inkluderer den side, du er ved at slette.",
 
 # Rollback
 'rollback' => 'Fjern redigeringer',
@@ -2453,7 +2453,7 @@ Se [[Special:ProtectedPages|listen over beskyttede sider]] for listen over sideb
 Her er de aktuelle beskyttelsesindstillinger for siden '''$1''':",
 'protect-locked-dblock' => "Databasen er spærret, sidebeskyttelsen kan derfor ikke ændres. her er de aktuelle beskyttelsesindstillinger for siden '''„$1“:'''",
 'protect-locked-access' => "Den brugerkonto har ikke de nødvendige rettigheder til at ændre sidebeskyttelsen. Her er de aktuelle beskyttelsesindstillinger for siden '''„$1“:'''",
-'protect-cascadeon' => 'Denne side er del af en nedarvet skrivebeskyttelse. Wen er indeholdt i nedenstående {{PLURAL:$1|side|sider}}, som er skrivebeskyttet med tilvalg af "nedarvende sidebeskyttelse" Sidebeskyttelsen kan ændres for denne side, det påvirker dog ikke kaskadespærringen:',
+'protect-cascadeon' => 'Denne side er del af en nedarvet skrivebeskyttelse. Den er indeholdt i nedenstående {{PLURAL:$1|side|sider}}, som er skrivebeskyttet med tilvalg af "nedarvende sidebeskyttelse". Sidebeskyttelsen kan ændres for denne side, det påvirker dog ikke den nedarvede sidebeskyttelse.',
 'protect-default' => 'Tillad alle brugere',
 'protect-fallback' => 'Tillad kun brugere med "$1" adgang',
 'protect-level-autoconfirmed' => 'Tillad kun autobekræftede brugere',
@@ -2577,6 +2577,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Denne IP-adresse er i øjeblikket blokeret.
 Den seneste post i blokeringsloggen vises nedenfor:',
 'sp-contributions-search' => 'Søg efter bidrag',
+'sp-contributions-suppresslog' => 'undertrykte brugerbidrag',
 'sp-contributions-username' => 'IP-adresse eller brugernavn:',
 'sp-contributions-toponly' => 'Vis kun redigeringer, der er aktuelle versioner',
 'sp-contributions-newonly' => 'Vis kun redigeringer, der er sideoprettelser',
index 571001d..99e64e5 100644 (file)
@@ -69,6 +69,7 @@
  * @author Tischbeinahe
  * @author UV
  * @author Umherirrender
+ * @author Useopensource tobias
  * @author Vogone
  * @author W (aka Wuzur)
  * @author Wikifan
@@ -429,7 +430,7 @@ $messages = array(
 'tog-hideminor' => 'Kleine Änderungen in den „Letzten Änderungen“ ausblenden',
 'tog-hidepatrolled' => 'Kontrollierte Änderungen in den „Letzten Änderungen“ ausblenden',
 'tog-newpageshidepatrolled' => 'Kontrollierte Seiten bei den „Neuen Seiten“ ausblenden',
-'tog-extendwatchlist' => 'Erweiterte Beobachtungsliste zur Anzeige aller Änderungen',
+'tog-extendwatchlist' => 'Beobachtungsliste erweitern, um statt nur der letzten Änderung alle Änderungen anzuzeigen.',
 'tog-usenewrc' => 'Änderungen auf „Letzte Änderungen“ und Beobachtungsliste nach Seite gruppieren',
 'tog-numberheadings' => 'Überschriften automatisch nummerieren',
 'tog-showtoolbar' => 'Bearbeiten-Werkzeugleiste anzeigen',
@@ -461,7 +462,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Schicke mir Kopien der E-Mails, die ich anderen Benutzern sende',
 'tog-diffonly' => 'Beim Versionsvergleich nur die Unterschiede und nicht die vollständige Seite anzeigen',
 'tog-showhiddencats' => 'Anzeige versteckter Kategorien',
-'tog-noconvertlink' => 'Konvertierung des Titels deaktivieren',
 'tog-norollbackdiff' => 'Unterschied nach dem Zurücksetzen unterdrücken',
 'tog-useeditwarning' => 'Warnen, sofern eine zur Bearbeitung geöffnete Seite verlassen wird, die nicht gespeicherte Änderungen enthält',
 'tog-prefershttps' => 'Wenn angemeldet, immer eine sichere Verbindung benutzen.',
@@ -673,7 +673,6 @@ $1',
 'disclaimers' => 'Impressum',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Bearbeitungshilfe',
-'helppage' => 'Help:Inhaltsverzeichnis',
 'mainpage' => 'Hauptseite',
 'mainpage-description' => 'Hauptseite',
 'policy-url' => 'Project:Richtlinien',
@@ -874,8 +873,7 @@ Vergiss nicht, deine [[Special:Preferences|{{SITENAME}}-Einstellungen]] zu ände
 'gotaccountlink' => 'Anmelden',
 'userlogin-resetlink' => 'Die Anmeldedaten vergessen?',
 'userlogin-resetpassword-link' => 'Passwort vergessen?',
-'helplogin-url' => 'Help:Anmelden',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hilfe beim Anmelden]]',
+'userlogin-helplink2' => 'Hilfe bei der Anmeldung',
 'userlogin-loggedin' => 'Du bist bereits als {{GENDER:$1|$1}} angemeldet.
 Benutze das unten stehende Formular, um dich unter einem anderen Benutzernamen anzumelden.',
 'userlogin-createanother' => 'Ein weiteres Benutzerkonto erstellen',
@@ -967,6 +965,7 @@ Bitte warte $1, bevor du es erneut probierst.',
 'createacct-another-realname-tip' => 'Der bürgerliche Name ist optional.
 Wenn du ihn angibst, wird er für die Zuordnung der Beiträge verwendet.',
 'pt-login' => 'Anmelden',
+'pt-login-button' => 'Anmelden',
 'pt-createaccount' => 'Benutzerkonto erstellen',
 'pt-userlogout' => 'Abmelden',
 
@@ -977,7 +976,7 @@ Wenn du ihn angibst, wird er für die Zuordnung der Beiträge verwendet.',
 
 # Change password dialog
 'changepassword' => 'Passwort ändern',
-'resetpass_announce' => 'Um die Anmeldung abzuschließen, musst du ein neues Passwort wählen.',
+'resetpass_announce' => 'Um die Anmeldung abzuschließen, musst du ein neues Passwort festlegen.',
 'resetpass_text' => '<!-- Ergänze den Text hier -->',
 'resetpass_header' => 'Passwort ändern',
 'oldpassword' => 'Altes Passwort:',
@@ -999,7 +998,10 @@ Um die Anmeldung abzuschließen, musst du jetzt ein neues Passwort festlegen:',
 'resetpass-temp-password' => 'Temporäres Passwort:',
 'resetpass-abort-generic' => 'Die Passwortänderung wurde durch eine Erweiterung abgebrochen.',
 'resetpass-expired' => 'Dein Passwort ist abgelaufen. Bitte lege ein neues Passwort zur Anmeldung fest.',
-'resetpass-expired-soft' => 'Dein Passwort ist abgelaufen und muss zurückgesetzt werden. Bitte wähle jetzt ein neues Passwort aus oder klicke auf „Abbrechen“, um es später zurückzusetzen.',
+'resetpass-expired-soft' => 'Dein Passwort ist abgelaufen und muss zurückgesetzt werden. Bitte wähle jetzt ein neues Passwort aus oder klicke auf „{{int:resetpass-submit-cancel}}“, um es später zurückzusetzen.',
+'resetpass-validity-soft' => 'Dein Passwort ist nicht gültig: $1
+
+Bitte wähle jetzt ein neues Passwort oder klicke auf „{{int:resetpass-submit-cancel}}“, um es später zurückzusetzen.',
 
 # Special:PasswordReset
 'passwordreset' => 'Passwort zurücksetzen',
@@ -1061,7 +1063,7 @@ Du solltest dies nur machen, wenn du die Tokens versehentlich mit jemandem getei
 'resettokens-token-label' => '$1 (aktueller Wert: $2)',
 'resettokens-watchlist-token' => 'Token für den Webfeed (Atom/RSS) der [[Special:Watchlist|Änderungen an Seiten auf deiner Beobachtungsliste]]',
 'resettokens-done' => 'Tokens zurückgesetzt.',
-'resettokens-resetbutton' => 'Ausgewählte Tokens zurücksetzen',
+'resettokens-resetbutton' => 'Ausgewählte Token ändern',
 
 # Edit page toolbar
 'bold_sample' => 'Fetter Text',
@@ -1142,7 +1144,7 @@ Vermutlich wurde er verschoben oder gelöscht, nachdem du die Seite aufgerufen h
 'accmailtext' => "Ein zufällig generiertes Passwort für [[User talk:$1|$1]] wurde an $2 versandt. Es kann auf der Seite ''[[Special:ChangePassword|Passwort ändern]]'' nach der Anmeldung 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 (weitere Informationen auf der [[{{MediaWiki:Helppage}}|Hilfeseite]]).
+Um diese Seite anzulegen, trage deinen Text in das untenstehende Bearbeitungsfeld ein (weitere Informationen auf der [$1 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.
@@ -1380,8 +1382,10 @@ Du kannst diesen Versionsunterschied einsehen, sofern du möchtest. Nähere Anga
 'revdelete-show-file-submit' => 'Ja',
 'revdelete-selected' => "'''{{PLURAL:$2|Gewählte Version|Gewählte Versionen}} von [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Gewählter Logbucheintrag|Gewählte Logbucheinträge}}:'''",
-'revdelete-text' => "'''Gelöschte Versionen und Aktionen verbleiben in der Versionsgeschichte und den Logbüchern, jedoch sind Teile davon für die Öffentlichkeit unzugänglich.'''
-Andere Administratoren auf {{SITENAME}} haben Zugriff auf den versteckten Inhalt und können ihn mit der gleichen Seite wiederherstellen, sofern nicht zusätzliche Einschränkungen bestehen.",
+'revdelete-text-text' => 'Gelöschte Versionen verbleiben noch in der Versionsgeschichte, jedoch sind Teile ihres Inhalts für die Öffentlichkeit nicht zugänglich.',
+'revdelete-text-file' => 'Gelöschte Dateiversionen verbleiben noch in der Datei-Versionsgeschichte, jedoch sind Teile ihres Inhalts für die Öffentlichkeit nicht zugänglich.',
+'logdelete-text' => 'Gelöschte Logbucheinträge verbleiben noch in den Logbüchern, jedoch sind Teile ihres Inhalts für die Öffentlichkeit nicht zugänglich.',
+'revdelete-text-others' => 'Andere Administratoren auf {{SITENAME}} haben noch Zugriff auf den versteckten Inhalt und können ihn auch mithilfe dieser Spezialseite wiederherstellen, solange keine zusätzlichen Beschränkungen festgelegt werden.',
 'revdelete-confirm' => 'Bitte bestätige, dass du beabsichtigst, dies zu tun, die Konsequenzen verstehst und es in Übereinstimmung mit den [[{{MediaWiki:Policy-url}}|Richtlinien]] tust.',
 'revdelete-suppress-text' => "Unterdrückungen sollten '''nur''' in den folgenden Fällen vorgenommen werden:
 * Potentiell beleidigende Informationen
@@ -1497,7 +1501,7 @@ Einzelheiten sind im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'shown-title' => 'Zeige $1 {{PLURAL:$1|Ergebnis|Ergebnisse}} pro Seite',
 'viewprevnext' => 'Zeige ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "'''Es gibt eine Seite, die den Namen „[[:$1]]“ hat.'''",
-'searchmenu-new' => '<strong>Erstelle die Seite „[[:$1]]“ in diesem Wiki.</strong> {{PLURAL:$2|0=|Siehe auch die mit deiner Suche gefundene Seite.|Siehe auch die gefundenen Suchergebnisse.}}',
+'searchmenu-new' => '<strong>Erstelle die Seite „[[:$1]]“ in diesem Wiki.</strong> {{PLURAL:$2|0=|Siehe auch die über deine Suche gefundene Seite.|Siehe auch die gefundenen Suchergebnisse.}}',
 'searchprofile-articles' => 'Inhaltsseiten',
 'searchprofile-project' => 'Hilfe- und Projektseiten',
 'searchprofile-images' => 'Multimedia',
@@ -1516,7 +1520,7 @@ Einzelheiten sind im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'search-file-match' => '(treffende Dateiinhalte)',
 'search-suggest' => 'Meintest du „$1“?',
 'search-interwiki-caption' => 'Schwesterprojekte',
-'search-interwiki-default' => '$1 Ergebnisse:',
+'search-interwiki-default' => 'Ergebnisse von $1:',
 'search-interwiki-more' => '(weitere)',
 'search-relatedarticle' => 'Verwandte',
 'searcheverything-enable' => 'In allen Namensräumen suchen',
@@ -1556,7 +1560,7 @@ Einzelheiten sind im [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'prefs-watchlist-days-max' => 'Maximal {{PLURAL:$1|ein Tag|$1 Tage}}',
 'prefs-watchlist-edits' => 'Maximale Anzahl der angezeigten Einträge:',
 'prefs-watchlist-edits-max' => 'Maximal 1.000 Einträge',
-'prefs-watchlist-token' => 'Beobachtungslisten-Token:',
+'prefs-watchlist-token' => 'Token der Beobachtungsliste:',
 'prefs-misc' => 'Verschiedenes',
 'prefs-resetpass' => 'Passwort ändern',
 'prefs-changeemail' => 'E-Mail-Adresse ändern',
@@ -1651,7 +1655,7 @@ Diese Information ist öffentlich.',
 'prefs-displaywatchlist' => 'Anzeigeoptionen',
 'prefs-tokenwatchlist' => 'Token',
 'prefs-diffs' => 'Versionsvergleich',
-'prefs-help-prefershttps' => 'Diese Einstellung wird bei deiner nächsten Anmeldung wirksam',
+'prefs-help-prefershttps' => 'Diese Einstellung wird bei deiner nächsten Anmeldung wirksam.',
 'prefs-tabs-navigation-hint' => 'Tipp: Du kannst die linke und rechte Pfeiltasten benutzen, um zwischen den Registerkarten in der Reiterliste zu navigieren.',
 
 # User preference: email validation using jQuery
@@ -1843,8 +1847,8 @@ Diese Information ist öffentlich.',
 'recentchanges-legend-heading' => "'''Legende:'''",
 'recentchanges-legend-newpage' => '(siehe auch die [[Special:NewPages|Liste neuer Seiten]])',
 'recentchanges-legend-plusminus' => "''(±123)''",
-'rcnotefrom' => "Angezeigt werden die Änderungen seit '''$2''' (max. '''$1''' Einträge).",
-'rclistfrom' => 'Nur Änderungen seit $1 zeigen.',
+'rcnotefrom' => 'Angezeigt werden die Änderungen seit <strong>$2</strong> (max. <strong>$1</strong> Einträge).',
+'rclistfrom' => 'Nur Änderungen seit $3, $2 Uhr zeigen.',
 'rcshowhideminor' => 'Kleine Änderungen $1',
 'rcshowhideminor-show' => 'anzeigen',
 'rcshowhideminor-hide' => 'ausblenden',
@@ -2242,6 +2246,11 @@ Vielleicht möchtest du die Beschreibung auf der dortigen [$2 Dateibeschreibungs
 # List redirects
 'listredirects' => 'Weiterleitungen',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Liste der Dateien mit Duplikaten',
+'listduplicatedfiles-summary' => 'Dies ist eine Liste der Dateien, deren aktuelle Dateiversion ein Duplikat der aktuellen Version einer anderen Datei ist. Es werden nur lokale Dateien berücksichtigt.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] hat [[$3|{{PLURAL:$2|ein Duplikat|$2 Duplikate}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Verwaiste Vorlagen',
 'unusedtemplatestext' => 'Diese Seite listet alle Seiten im {{ns:template}}-Namensraum auf, die nicht in anderen Seiten eingebunden sind.
@@ -2356,7 +2365,7 @@ Jede Zeile enthält Links zur ersten und zweiten Weiterleitung sowie dem Ziel de
 'deadendpagestext' => 'Die folgenden Seiten verweisen nicht auf andere Seiten von {{SITENAME}}.',
 'protectedpages' => 'Geschützte Seiten',
 'protectedpages-indef' => 'Nur unbeschränkt geschützte Seiten zeigen',
-'protectedpages-summary' => 'Diese Seite listet vorhandene Seiten auf, die derzeit geschützt sind. Für eine Liste vor Erstellung geschützter Titel, siehe [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Diese Seite listet vorhandene Seiten auf, die derzeit geschützt sind. Für eine Liste vor Erstellung geschützter Titel, siehe „[[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]]“.',
 'protectedpages-cascade' => 'Nur Seiten mit Kaskadenschutz',
 'protectedpages-noredirect' => 'Weiterleitungen ausblenden',
 'protectedpagesempty' => 'Aktuell sind keine Seiten mit diesen Parametern geschützt.',
@@ -2369,7 +2378,7 @@ Jede Zeile enthält Links zur ersten und zweiten Weiterleitung sowie dem Ziel de
 'protectedpages-unknown-timestamp' => 'Unbekannt',
 'protectedpages-unknown-performer' => 'Unbekannter Benutzer',
 'protectedtitles' => 'Geschützte Seitennamen',
-'protectedtitles-summary' => 'Diese Seite listet Titel auf, die derzeit vor der Erstellung geschützt sind. Für eine Liste vorhandener geschützter Seiten, siehe [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Diese Seite listet Titel auf, die derzeit vor der Erstellung geschützt sind. Für eine Liste vorhandener geschützter Seiten, siehe „[[{{#special:ProtectedPages}}|{{int:protectedpages}}]]“.',
 'protectedtitlesempty' => 'Zurzeit sind mit den angegebenen Parametern keine Seiten zur Neuerstellung gesperrt.',
 'listusers' => 'Benutzerverzeichnis',
 'listusers-editsonly' => 'Zeige nur Benutzer mit Beiträgen',
@@ -2634,7 +2643,7 @@ Rückmeldungen und weitere Hilfe: {{canonicalurl:{{MediaWiki:Helppage}}}}',
 'delete-edit-reasonlist' => 'Löschgründe bearbeiten',
 'delete-toobig' => 'Diese Seite hat mit mehr als $1 {{PLURAL:$1|Version|Versionen}} eine sehr lange Versionsgeschichte. Das Löschen solcher Seiten wurde eingeschränkt, um eine versehentliche Überlastung der Server zu verhindern.',
 'delete-warning-toobig' => 'Diese Seite hat mit mehr als $1 {{PLURAL:$1|Version|Versionen}} eine sehr lange Versionsgeschichte. Das Löschen kann zu Störungen im Datenbankbetrieb führen.',
-'deleting-backlinks-warning' => "'''Warnung:''' Es verweisen noch andere Seiten auf die zu löschende Seite oder diese Seite ist noch woanders eingebunden.",
+'deleting-backlinks-warning' => "'''Warnung:''' Es verweisen noch [[Special:WhatLinksHere/{{FULLPAGENAME}}|andere Seiten]] auf die zu löschende Seite oder diese Seite ist noch woanders eingebunden.",
 
 # Rollback
 'rollback' => 'Zurücksetzen der Änderungen',
@@ -2683,7 +2692,8 @@ Siehe die [[Special:ProtectedPages|Liste der geschützten Seiten]] für alle akt
 'protect-locked-blocked' => "Du kannst den Seitenschutz nicht ändern, da dein Benutzerkonto gesperrt ist. Hier sind die aktuellen Seitenschutz-Einstellungen der Seite '''„$1“:'''",
 'protect-locked-dblock' => "Die Datenbank ist gesperrt, der Seitenschutz kann daher nicht geändert werden. Hier sind die aktuellen Seitenschutz-Einstellungen der Seite '''„$1“:'''",
 'protect-locked-access' => "Dein Benutzerkonto verfügt nicht über die notwendigen Rechte zur Änderung des Seitenschutzes. Hier sind die aktuellen Seitenschutzeinstellungen der Seite '''„$1“:'''",
-'protect-cascadeon' => 'Diese Seite ist gegenwärtig Teil einer Kaskadensperre. Sie ist in die {{PLURAL:$1|folgende Seite|folgenden Seiten}} eingebunden, welche durch die Kaskadensperroption geschützt {{PLURAL:$1|ist|sind}}. Der Seitenschutzstatus dieser Seite kann geändert werden, dies hat jedoch keinen Einfluss auf die Kaskadensperre:',
+'protect-cascadeon' => 'Diese Seite ist gegenwärtig Teil einer Kaskadensperre. Sie ist in die {{PLURAL:$1|folgende Seite|folgenden Seiten}} eingebunden, welche durch die Kaskadensperroption geschützt {{PLURAL:$1|ist|sind}}.
+Änderungen am Seitenschutzstatus haben keinen Einfluss auf die Kaskadensperre:',
 'protect-default' => 'Alle Benutzer',
 'protect-fallback' => 'Nur Benutzern mit der „$1“-Berechtigung erlauben.',
 'protect-level-autoconfirmed' => 'Nur automatisch bestätigten Benutzern erlauben',
@@ -2806,6 +2816,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Diese IP-Adresse ist zurzeit gesperrt.
 Zur Information folgt der aktuelle Auszug aus dem Sperr-Logbuch:',
 'sp-contributions-search' => 'Suche nach Benutzerbeiträgen',
+'sp-contributions-suppresslog' => 'Unterdrückte Benutzerbeiträge',
 'sp-contributions-username' => 'IP-Adresse oder Benutzername:',
 'sp-contributions-toponly' => 'Nur aktuelle Versionen zeigen',
 'sp-contributions-newonly' => 'Nur Seitenerstellungen anzeigen',
index f663867..f2287f5 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author Amire80
  * @author Asmen
  * @author Aspar
  * @author Belekvor
@@ -367,7 +368,6 @@ $messages = array(
 'tog-ccmeonemails' => 'E-posteyanê ke ez karberanê binan rê rışenan, mı rê kopya inan bırışe',
 'tog-diffonly' => 'Qıyasê versiyonan de tek ferqan bımocne, pela butıne nê',
 'tog-showhiddencats' => 'Kategoriyanê dızdiye bımocne',
-'tog-noconvertlink' => 'Greyê sernami çerx kerdışi bıqefılne',
 'tog-norollbackdiff' => 'Peyserardışi ra dıme ferqi caverde',
 'tog-useeditwarning' => 'Wexto ke mı yew pela nizami be vurnayışanê nêqeydbiyayeyan caverdê, hay be mı ser de',
 'tog-prefershttps' => 'Ronışten akerden de  greyo itimadın bıkarne',
@@ -581,7 +581,6 @@ $1',
 'disclaimers' => 'Redê mesuliyeti',
 'disclaimerpage' => 'Project:Reddê mesuliyetê bıngey',
 'edithelp' => 'Peştdariya vurnayışi',
-'helppage' => 'Help:Zerrek',
 'mainpage' => 'Pela Seri',
 'mainpage-description' => 'Pela seri',
 'policy-url' => 'Project:Terzê hereketi',
@@ -633,8 +632,8 @@ $1',
 'feed-atom' => 'Atom',
 'feed-rss' => 'RSS',
 'red-link-title' => '$1 (çınya)',
-'sort-descending' => 'Ratnayışê qemeyayışi',
-'sort-ascending' => 'Ratnayışê Zeydnayışi',
+'sort-descending' => 'Rêzkerdışo kêmbiyaye',
+'sort-ascending' => 'Rêzkerdışo zêdiyaye',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Wesiqe',
@@ -659,7 +658,7 @@ Keyepelê {{SITENAME}} eşkeno xeta eşkera bıkero.',
 Seba lista pelanê xasanê vêrdeyan reca kena: [[Special:SpecialPages|{{int:specialpages}}]].',
 
 # General errors
-'error' => 'Ğeta',
+'error' => 'Xeta',
 'databaseerror' => 'Ğetay ardoği',
 'databaseerror-text' => 'Tabanda malumati de ğırabiya persayışi bi
 Na nusteber  zew ğırabin asınena.',
@@ -722,8 +721,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",
+'mycustomcssprotected' => 'Desturê şıma çıniyo ke na pela CSSi bıvurnê.',
+'mycustomjsprotected' => 'Desturê şıma çıniyo ke na pela JavaScripti bıvurnê.',
 'myprivateinfoprotected' => 'Ğısusi malumatana ğo timar kerdışire icazeta şıma çıniya.',
 'mypreferencesprotected' => 'Terciha timar kerdışire icazeta şıam çıniya.',
 'ns-specialprotected' => 'Pelê xısusiy nênê vurnayış.',
@@ -784,8 +783,6 @@ Wexta ke verhafızayê cıgerayoxê şıma pak beno no benate de taye peli de he
 'gotaccountlink' => 'Cı kewe',
 'userlogin-resetlink' => 'Melumatê cıkewtışi xo vira kerdê?',
 'userlogin-resetpassword-link' => 'Parola xo kerda xo vira?',
-'helplogin-url' => 'Help:Qeydbiyayış',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Peşti be qeydbiyayış ra]]',
 'userlogin-loggedin' => 'Tı xora namey {{GENDER:$1|$1}} ra kewtê/kewtay cı.
 Formê cêrêni bıgureyne ke namey karberio bin ra cı kewê.',
 'userlogin-createanother' => 'Zewbi hesab vıraz',
@@ -876,6 +873,7 @@ Bıne vındere u newe ra dest pê bıkere.',
 'createacct-another-realname-tip' => 'Nameyo raştıkên keyfiyo.
 Şıma nameyo xoyo raştıkên ke bımocnê, seba iştırakanê karberi be ney ra istıfade beno.',
 'pt-login' => 'Cı kewe',
+'pt-login-button' => 'Cı kewe',
 'pt-createaccount' => 'Hesab vıraze',
 'pt-userlogout' => 'Veciyayış',
 
@@ -1047,7 +1045,7 @@ Heta ke werte de qısım çıniyo, ca çıniyo ke tı raştkerdışê xo qeyd b
 Qey na hesabê newe parola, cıkewtış dıma şıma eşkeni na qısım de ''[[Special:ChangePassword|parola bıvurn]]'' bıvurni.",
 'newarticle' => '(Newe)',
 'newarticletext' => "To yew gıre tıkna be ra yew pela ke hewna çıniya.
-Seba afernayışê pele ra, qutiya metnê cêrêni bıgurene (seba melumati qaytê [[{{MediaWiki:Helppage}}|pela peşti]] ke).
+Seba afernayışê pele ra, qutiya metnê cêrêni bıgurene (seba melumati qaytê [$1 pela peşti] ke).
 Eke be ğeletine ameya tiya, wa gocega '''peyser'''i programê xo de bıtıkne.",
 'anontalkpagetext' => "----''No pel, pel o karbero hesab a nêkerdeyan o, ya zi karbero hesab akerdeyan o labele pê hesabê xo nêkewto de. No sebeb ra ma IP adres şuxulneni û ney IP adresan herkes eşkeno bıvino. Eke şıma qayil niye ina bo xo ri [[Special:UserLogin/signup|yew hesab bıvıraze]] veyaxut [[Special:UserLogin|hesab akere]].''",
 'noarticletext' => 'Ena pele de hewna theba çıniyo.
@@ -1137,7 +1135,7 @@ Loge peniye cor de este:",
 'edittools-upload' => '-',
 'nocreatetext' => '{{SITENAME}}, Pelê neweyi vıraştış re destur çino.
 şıma eşkeni tepiya şêri u eke şıma qayd biyaye yê [[Special:UserLogin|şıma eşkeni hesab akeri]], eke niye [[Special:UserLogin|şıma eşkeni qayd bıbiy]].',
-'nocreate-loggedin' => 'İcaze şıma çino şıma pelo newe akeri.',
+'nocreate-loggedin' => 'Desturê şıma çıniyo ke pelanê neweyan vırazê.',
 'sectioneditnotsupported-title' => 'Destekê vurnayışiê qısımi çıniyo',
 'sectioneditnotsupported-text' => 'Destekê vurnayışiê qısımi ena pela vurnayışi de çıniyo.',
 'permissionserrors' => 'İdari xeta',
@@ -1278,8 +1276,6 @@ Eke şıma serkari u devam bıkeri [$1 no vurnayiş şıma eşkeni bıvini].",
 'revdelete-show-file-submit' => 'E',
 'revdelete-selected' => "'''[[:$1]]: ra {{PLURAL:$2|çımraviyarnayışo weçinıte|çımraviyarnayışê weçinıtey}}'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Qeydbiyayışo weçinıte|Qeydbiyayışê weçinıtey}}:'''",
-'revdelete-text' => "'''Çımraviyarnayışê esterıtey u kerdışi hewna tarixê pele u qeydan de asenê, hema parçeyê zerrekê dinan areze nêbenê.'''
-Eke şertê ilawekerdey ke niyê ro, idarekerê bini {{SITENAME}} de nêşenê hewna bıresê zerrekê nımıtey u şenê ey anciya na eyni miyanpele ra peyser biarê.",
 'revdelete-confirm' => 'Ma rica keno testiq bike ti ena hereket keno u ti zano neticeyanê herketanê xo u ti ena hereket pê ena [[{{MediaWiki:Policy-url}}|polici]] ra keno.',
 'revdelete-suppress-text' => "Wedardış gani '''tenya''' nê halanê cêrênan de bıxebıtiyo:
 * Melumatê kıfırio mıhtemel
@@ -1293,7 +1289,7 @@ Eke şertê ilawekerdey ke niyê ro, idarekerê bini {{SITENAME}} de nêşenê h
 'revdelete-hide-user' => 'IP asresa/namey  vırnoği',
 'revdelete-hide-restricted' => 'Malumatan pa serkaran u karberan ra bınım.',
 'revdelete-radio-same' => '(mevurne)',
-'revdelete-radio-set' => 'Nımnaye',
+'revdelete-radio-set' => 'Nımıte',
 'revdelete-radio-unset' => 'Aseno',
 'revdelete-suppress' => 'Hem ê binan ra hem zi serkaran ra malumatan bınım',
 'revdelete-unsuppress' => 'reizyonê ke tepiya anciye serbest ker',
@@ -1413,8 +1409,8 @@ Detayê besternayışi [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}
 'search-section' => '(qısmê $1)',
 'search-file-match' => '(zerreyê dosya yewbini gêno)',
 'search-suggest' => 'To va: $1',
-'search-interwiki-caption' => 'Projey Bıray',
-'search-interwiki-default' => '$1 neticeyan:',
+'search-interwiki-caption' => 'Proceyê bıray',
+'search-interwiki-default' => '$1 ra neticey:',
 'search-interwiki-more' => '(véşi)',
 'search-relatedarticle' => 'Eleqeyın',
 'searcheverything-enable' => 'cayê nameyê hemi de bigêre',
@@ -1433,7 +1429,7 @@ Detayê besternayışi [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}
 'powersearch-togglenone' => 'Çıniyo',
 'search-external' => 'Cıgeyrayışê teberi',
 'searchdisabled' => '{{SITENAME}} no keyepel de cıgerayiş muweqqet bıryayo. no benatê de şıma pê Google eşkeni zerreyê {{SITENAME}} de cıgerayiş bıkeri.',
-'search-error' => 'Cı geyrayış de zu ğeta emé meydan:$1',
+'search-error' => 'Cıgeyrayış de yew xeta emê meydan: $1',
 
 # Preferences page
 'preferences' => 'Tercihi',
@@ -2440,7 +2436,7 @@ qey heqê şexsi de [[{{MediaWiki:Listgrouprights-helppage}}|hema malumato ziyed
 Ena deme ra, ma qe vurnayışan ser ena pele tı haberdar keni.',
 'removewatch' => 'Listedê mınê seyr kerdışi ra hewad',
 'removedwatchtext' => 'Ena pela "[[:$1]]" biya wedariya [[Special:Watchlist|listeyê seyr-kerdışi şıma]].',
-'watch' => 'Temaşe ke',
+'watch' => 'Seyr ke',
 'watchthispage' => 'Ena pele seyr ke',
 'unwatch' => 'Teqib mekerê',
 'unwatchthispage' => 'temaşa kerdışê peli vındarn.',
@@ -3126,7 +3122,7 @@ dosyaya emaneti vindbiyo',
 'tooltip-p-logo' => 'Şo pela seri',
 'tooltip-n-mainpage' => 'Şo pela seri',
 'tooltip-n-mainpage-description' => 'Şo pela seri',
-'tooltip-n-portal' => 'Heqa projey de, kes çı şeno bıkero, çıçiyo koti deyo',
+'tooltip-n-portal' => 'Heqa procey de, çı şenay bıkerê, çı koti vêniyeno',
 'tooltip-n-currentevents' => 'Vurnayışanê peyênan de melumatê pey bıvêne',
 'tooltip-n-recentchanges' => 'Wiki de lista vurnayışanê peyênan',
 'tooltip-n-randompage' => 'Perake raşt amé',
@@ -3298,7 +3294,7 @@ Gurênayışê nae de, beno ke sistemê şıma zerar bıvêno.",
 'svg-long-desc' => 'Dosyay SVG, zek vanê $1 × $2 piksela, ebatê dosya: $3',
 'svg-long-desc-animated' => 'SVG dosya, nominalin $1 × $2 piksela, ebatê dosya: $3',
 'svg-long-error' => "Nêmeqbul dosyaya SVG'i: $1",
-'show-big-image' => 'Oricinal dosya',
+'show-big-image' => 'Dosyaya oricinale',
 'show-big-image-preview' => "Verqayd dergiya: $1'i.",
 'show-big-image-other' => 'Zewmi{{PLURAL:$2|Vılêşnayış|Vılêşnayışê}}: $1.',
 'show-big-image-size' => '$1 × $2 piksel',
@@ -3970,7 +3966,7 @@ Ma rica keno tesdiq bike ke ti raştî wazeno eno pel bivirazo.",
 'percent' => '$1%',
 'parentheses' => '($1)',
 'brackets' => '[$1]',
-'quotation-marks' => '"$1".',
+'quotation-marks' => '"$1"',
 
 # Multipage image navigation
 'imgmultipageprev' => '← peleyê verin',
@@ -3988,7 +3984,7 @@ Ma rica keno tesdiq bike ke ti raştî wazeno eno pel bivirazo.",
 'descending_abbrev' => 'nızm',
 'table_pager_next' => 'Pela peyêne',
 'table_pager_prev' => 'Pela verêne',
-'table_pager_first' => 'Pela jûyıne',
+'table_pager_first' => 'Pela sıfteyêne',
 'table_pager_last' => 'Pela peyêne',
 'table_pager_limit' => 'her per de $1 unsuran bımocne',
 'table_pager_limit_label' => 'Her pele ra xacetan',
@@ -4323,7 +4319,7 @@ satır ê ke pê ney # # destpêkenê zey mışore/mıjore muamele vineno.
 
 # Feedback
 'feedback-bugornote' => 'Jew mersela teferruato teknik esta şıma reca malumatê şıma hazıro se [ $1  jew xırab rapor] bıvinê.Zewbi zi, formê cerê xo rê şenê karfiyê. Vatışê xo pela da "[ $3  $2 ]", namey karber dê xoya piya u wasteriya karfiye.',
-'feedback-subject' => 'Mersel:',
+'feedback-subject' => 'Mewzu:',
 'feedback-message' => 'Mesac:',
 'feedback-cancel' => 'Bıtexelne',
 'feedback-submit' => 'Peyxeberdar Bırşe',
index 6eb5555..fb43554 100644 (file)
@@ -407,7 +407,6 @@ $1',
 'disclaimers' => 'Impresum',
 'disclaimerpage' => 'Project:impresum',
 'edithelp' => 'Pomoc pśi wobźěłanju',
-'helppage' => 'Help:Pomoc',
 'mainpage' => 'Głowny bok',
 'mainpage-description' => 'Głowny bok',
 'policy-url' => 'Project:Směrnice',
@@ -600,8 +599,7 @@ Glědaj: Jo móžno, až někotare boki pokazuju se snaź tak, ako by ty hyšći
 'gotaccountlink' => 'Pśizjawiś se',
 'userlogin-resetlink' => 'Sy pśizjawjeńske daty zabył?',
 'userlogin-resetpassword-link' => 'Sy swójo gronidło zabył?',
-'helplogin-url' => 'Help:Pśizjawiś',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoc za pśizjawjenje]]',
+'userlogin-helplink2' => 'Pomoc pśi pśizjawjenju',
 'userlogin-loggedin' => 'Sy južo ako {{GENDER:$1|$1 pśizjawjony|$1 pśizjawjona}}. Wužyj slědujucy formular, aby se ako drugi wužywaŕ pśizjawił.',
 'userlogin-createanother' => 'Druge konto załožyś',
 'createacct-join' => 'Zapódaj dołojce swóje informacije.',
@@ -683,6 +681,7 @@ Móžoš toś te zdźělenje ignorowaś, jolic toś te konto jo se jano zamólnj
 'createacct-another-realname-tip' => 'Napšawdne mě jo opcionalne.
 Jolic jo pódajoš, buźo se to wužywaś, aby pśinoski pśirědowało.',
 'pt-login' => 'Pśizjawiś',
+'pt-login-button' => 'Pśizjawiś',
 'pt-createaccount' => 'Konto załožyś',
 'pt-userlogout' => 'Wótzjawiś',
 
@@ -714,7 +713,10 @@ Sy snaź swójo gronidło južo wuspěšnje změnił abo nowe nachylne gronidło
 'resetpass-temp-password' => 'Nachylne gronidło:',
 'resetpass-abort-generic' => 'Změnjanje gronidła jo se pśez rozšyrjenje pśetergnuło.',
 'resetpass-expired' => 'Twójo gronidło jo pśepadnyło. Pšosym póstaj nowe gronidło za pśizjawjenje.',
-'resetpass-expired-soft' => 'Twójo gronidło jo pśepadnyło a musy se slědk stajiś. Pšosym wubjeŕ něnto druge gronidło abo klikni na "Pśetergnuś", aby jo pózdźej slědk stajił.',
+'resetpass-expired-soft' => 'Twójo gronidło jo pśepadnyło a musy se slědk stajiś. Pšosym wubjeŕ něnto druge gronidło abo klikni na "{{int:resetpass-submit-cancel}}", aby jo pózdźej slědk stajił.',
+'resetpass-validity-soft' => 'Wašo gronidło njejo płaśiwe: $1
+
+Pšosym wubjeŕ něnto nowe gronidło abo klikni na "{{int:resetpass-submit-cancel}}", aby jo pózdźej slědk stajił.',
 
 # Special:PasswordReset
 'passwordreset' => 'Gronidło slědk stajiś',
@@ -853,7 +855,7 @@ Jo se snaź pśesunuł abo wulašował, mjaztym až woglědujoš se bok.',
 'accmailtext' => "Pśipadnje napórane gronidło za [[User talk:$1|$1]] jo se pósłało k $2. Dajo se na boku ''[[Special:ChangePassword|Gronidło změniś]]'' pśi pśizjawjenju změniś.",
 'newarticle' => '(Nowy nastawk)',
 'newarticletext' => "Sy slědował wótkaz na bok, kótaryž hyšći njeeksistěrujo.
-Aby bok napórał, zapiš do kašćika dołojce (glědaj [[{{MediaWiki:Helppage}}|bok pomocy]] za dalšne informacije). Jolic sy zamólnje how, klikni na tłocašk '''Slědk''' w swójom wobglědowaku.",
+Aby bok napórał, zapiš do kašćika dołojce (glědaj [$1 bok pomocy] za dalšne informacije). Jolic sy zamólnje how, klikni na tłocašk '''Slědk''' w swójom wobglědowaku.",
 'anontalkpagetext' => "---- ''Toś jo diskusijny bok za anonymnego wužywarja, kótaryž njejo dotychměst žedno wužywarske konto załožył abo swójo konto njewužywa. Togodla dejmy numerisku IP-adresu wužywaś, aby jogo/ju identificěrowali. Taka IP-adresa dajo se wót wšakich wužywarjow wužywaś. Jolic sy anonymny wužywaŕ a se mysliš, až su se njerelewantne komentary na tebje měrili, [[Special:UserLogin/signup|załož konto]] abo [[Special:UserLogin|pśizjaw se]], aby se w pśichoźe zmuśenje z drugimi anonymnymi wužywarjami wobinuł.''",
 'noarticletext' => 'Dotychměst toś ten bok hyšći njewopśimujo žeden tekst. Móžoš w drugich bokach [[Special:Search/{{PAGENAME}}|titel togo boka pytaś]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} wótpowědne protokole pytaś] abo [{{fullurl:{{FULLPAGENAME}}|action=edit}} toś ten bok wobźěłaś]</span>.',
 'noarticletext-nopermission' => 'Tuchylu njejo žeden tekst na toś tom boku.
@@ -1083,8 +1085,10 @@ Móžoš se toś ten rozdźěl woglědaś; drobnostki glědaj w [{{fullurl:{{#Sp
 'revdelete-show-file-submit' => 'Jo',
 'revdelete-selected' => "'''{{PLURAL:$2|Wuzwólona wersija|Wuzwólonej wersiji|Wuzwólone wersije}} wót [[:$1]].'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Wuzwólony protokolowe tšojenje|Wuzwólonej protokolowe tšojeni|wuzwólone protokolowe tšojenja}}:'''",
-'revdelete-text' => "'''Wulašowane wersije a tšojenja budu se dalej w stawiznach boka a w protokolach pokazaś, ale źěle jich wopśimjeśa njebudu pśistupne za zjawnosć.'''
-Dalšne administratory na {{GRAMMAR:lokatiw|{{SITENAME}}}} mógu ale pśecej hyšći pśistup na schowane wopśimjeśe měś a mógu jo pśez samki interfejs wótnowiś,  snaźkuli su pśidatne wobgranicowanja.",
+'revdelete-text-text' => 'Wulašowane wersije wóstanu hyšći we wersijowej historiji, ale źěle jich wopśimjeśa njebudu pśistupne zjawnosći.',
+'revdelete-text-file' => 'Wulašowane datajowe wersije wóstanu w datajowej historiji, ale źěle jich wopśimjeśa njebudu pśistupne zjawnosći.',
+'logdelete-text' => 'Wulašowane protokolowe zapiski wóstanu hyšći w protokolach, ale źěle jich wopśimjeśa njebudu pśistupne zjawnosći.',
+'revdelete-text-others' => 'Druge administratory na {{GRAMMAR:lokatiw|{{SITENAME}}}} mógu hyšći na schowane wopśimjeśe pśistup měś a mógu jo zasej pśez ten samski wužywarski pówjerch wótnowiś, snaźkuli su pśidatne wobgranicowanja.',
 'revdelete-confirm' => 'Pšosym wobkšuś, až coš to cyniś, až rozmějoš konsekwence a až cyniš to pó [[{{MediaWiki:Policy-url}}|pšawidłach]].',
 'revdelete-suppress-text' => "Pódtłocenje by dejało se '''jano''' za slědujuce pady wužywaś:
 * Potencielnje ranjece informacije
@@ -1218,7 +1222,7 @@ Drobnostki móžoš w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'search-file-match' => '(wótpowědujo datajowemu wopśimjeśeju)',
 'search-suggest' => 'Měnjašo $1?',
 'search-interwiki-caption' => 'Sotšine projekty',
-'search-interwiki-default' => '$1 wuslědki:',
+'search-interwiki-default' => 'Wuslědki z $1:',
 'search-interwiki-more' => '(wěcej)',
 'search-relatedarticle' => 'swójźbne',
 'searcheverything-enable' => 'We wšych mjenjowych rumach pytaś',
@@ -1542,14 +1546,26 @@ Toś ta informacija buźo zjawna.',
 'recentchanges-legend-heading' => "'''Legenda:'''",
 'recentchanges-legend-newpage' => '(glej teke [[Special:NewPages|lisćinu nowych bokow]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "Dołojce pokazuju se změny wót '''$2''' (maks. '''$1''' zapisow).",
+'rcnotefrom' => 'Dołojce pokazuju se změny wót <strong>$2</strong> (maks. <strong>$1</strong> zapisow).',
 'rclistfrom' => 'Nowe změny wót $1 pokazaś.',
 'rcshowhideminor' => 'Snadne změny $1',
+'rcshowhideminor-show' => 'Pokazaś',
+'rcshowhideminor-hide' => 'Schowaś',
 'rcshowhidebots' => 'awtomatiske programy (boty) $1',
+'rcshowhidebots-show' => 'Pokazaś',
+'rcshowhidebots-hide' => 'Schowaś',
 'rcshowhideliu' => 'Zregistrěrowane wužywarje $1',
+'rcshowhideliu-show' => 'Pokazaś',
+'rcshowhideliu-hide' => 'Schowaś',
 'rcshowhideanons' => 'anonymne wužywarje $1',
+'rcshowhideanons-show' => 'Pokazaś',
+'rcshowhideanons-hide' => 'Schowaś',
 'rcshowhidepatr' => 'kontrolěrowane změny $1',
+'rcshowhidepatr-show' => 'Pokazaś',
+'rcshowhidepatr-hide' => 'Schowaś',
 'rcshowhidemine' => 'móje pśinoski $1',
+'rcshowhidemine-show' => 'Pokazaś',
+'rcshowhidemine-hide' => 'Schowaś',
 'rclinks' => 'Slědne $1 změny slědnych $2 dnjow pokazaś<br />$3',
 'diff' => 'rozdźěl',
 'hist' => 'wersije',
@@ -1673,6 +1689,7 @@ Jolic maš toś ten wobraz w połnem rozeznaśu, nagraj jen, howac změń pšosy
 'uploaddisabledtext' => 'Nagraśa datajow su znjemóžnjone.',
 'php-uploaddisabledtext' => 'Nagraśa PHP-datajow su znjemóžnjone. Pšosym pśekontrolěruj nastajenje file_uploads.',
 'uploadscripted' => 'Toś ta dataja wopśimjejo HTML abo script code, kótaryž móžo wót browsera se zamólnje wuwjasć.',
+'uploadscriptednamespace' => "Toś ta SVG-dataja wopśimujo njedowólony mjenjowy rum '$1'",
 'uploadinvalidxml' => 'XML w nagratej dataji njedajo se parsowaś.',
 'uploadvirus' => 'Toś ta dataja ma wirus! Nadrobnosći: $1',
 'uploadjava' => 'Toś ta dataja jo ZIP-dataja, kótaraž wopśimujo dataju .class z Javy.
@@ -2035,7 +2052,7 @@ Kužda smužka wopśimjejo wótkaze na prědne a druge dalejpósrědnjenje a tek
 'deadendpagestext' => 'Slědujuce boki njewótkazuju na druge boki we {{GRAMMAR:lokatiw|{{SITENAME}}}}.',
 'protectedpages' => 'Šćitane boki',
 'protectedpages-indef' => 'Jano boki pokazaś, kótarež su na njewěsty cas šćitane',
-'protectedpages-summary' => 'Toś ten specialny bok pokazujo wšykne boki, kótarež njamgu se mimo wósebnych pšawow wobźěłowaś a pśesuwaś.',
+'protectedpages-summary' => 'Toś ten bok nalicyjo eksistěrujuce boki, kótarež su aktualnje šćitane. Za lisćinu titelow, kótarež su šćitane pśeśiwo napóranjeju, glej [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Jano boki z kaskadowym šćitom',
 'protectedpages-noredirect' => 'Dalejpósrědnjenja schowaś',
 'protectedpagesempty' => 'Z toś tymi parametrami njejsu tuchylu žedne boki šćitane.',
@@ -2048,7 +2065,7 @@ Kužda smužka wopśimjejo wótkaze na prědne a druge dalejpósrědnjenje a tek
 'protectedpages-unknown-timestamp' => 'Njeznaty',
 'protectedpages-unknown-performer' => 'Njeznaty wužywaŕ',
 'protectedtitles' => 'Šćitane titele',
-'protectedtitles-summary' => 'Toś ten bok nalicyjo titele, kótarež su tuchylu pśeśiwo napóranjoju šćitane. Za lisćinu eksistěrujucych bokow, kótarež su šćitane, glej [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Toś ten bok nalicyjo titele, kótarež su tuchylu pśeśiwo napóranjoju šćitane. Za lisćinu eksistěrujucych bokow, kótarež su šćitane, glej [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Tuchylu njejsu žedne boki z pódanych parametrami šćitane.',
 'listusers' => 'Lisćina wužywarjow',
 'listusers-editsonly' => 'Jano wužywarjow ze změnami pokazaś',
@@ -2319,7 +2336,7 @@ Pšašanja a dalšna pomoc:
 'delete-toobig' => 'Toś ten bok ma z wěcej nježli $1 {{PLURAL:$1|wersiju|wersijomaj|wersijami|wersijami}} dłujku historiju. Lašowanje takich bokow bu wobgranicowane, aby wobškoźenju {{GRAMMAR:genitiw|{{SITENAME}}}} z pśigódy zajźowało.',
 'delete-warning-toobig' => 'Toś ten bok ma z wěcej ako $1 {{PLURAL:$1|wersiju|wersijomaj|wersijami|wersijami}} dłujke stawizny. Jich wulašowanje móžo źěło datoweje banki na {{SITENAME}} kazyś;
 póstupujśo z glědanim.',
-'deleting-backlinks-warning' => "'''Warnowanje:''' Druge boki wótkazuju k bokoju abo bok jo hynźi zapśěgnjony, kótaryž coš wulašowaś.",
+'deleting-backlinks-warning' => "'''Warnowanje:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Druge boki]] wótkazuju k bokoju abo bok jo hynźi zapśěgnjony, kótaryž coš wulašowaś.",
 
 # Rollback
 'rollback' => 'Wobźěłanja slědk wześ',
@@ -2367,7 +2384,7 @@ Pšosym nawroś se na bok, wót kótaregož sy pśišeł a wopytaj hyšći raz.'
 'protect-locked-blocked' => "Njamóžoš status šćita togo boka změniś, dokulaž jo twójo wužywarske konto se blokěrowało. How su aktualne nastajenja šćita za bok '''„$1“:'''.",
 'protect-locked-dblock' => "Datowa banka jo zamknjona a toś njejo móžno šćit boka změniś. How su aktualne nastajenja šćita za bok '''„$1“:'''.",
 'protect-locked-access' => "Wašo wužywarske konto njama notne pšawa za změnu šćita toś togo boka. How su aktualne nastajenja šćita boka '''„$1“:'''.",
-'protect-cascadeon' => 'Toś ten bok jo tuchylu šćitany, dokulaž jo zawězany do {{PLURAL:$1|slědujucego boka|slědujuceju bokowu|slědujucych bokow}}, źož kaskadowy šćit jo aktiwěrowany. Status šćita móžo se za toś ten bok změniś, to ale njewówliwujo kaskadowy šćit:',
+'protect-cascadeon' => 'Toś ten bok jo tuchylu šćitany, dokulaž jo zawězany do {{PLURAL:$1|slědujucego boka|slědujuceju bokowu|slědujucych bokow}}, źož kaskadowy šćit jo aktiwěrowany. Změny na šćitnem schójźeńku toś togo boka njebudu kaskadowy šćit wobwliwowaś.',
 'protect-default' => 'Wšyknym wužywarjam dowóliś',
 'protect-fallback' => 'Jano wužywarjow z pšawom "$1" dowóliś',
 'protect-level-autoconfirmed' => 'Jano awtomatiski wobkšuśonych wužywarjow dowóliś',
@@ -2488,8 +2505,10 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Toś ta IP-adresa jo tuchylu zablokěrowana.
 Nejnowšy zapisk protokola blokěrowanjow pódawa se dołojce ako referenca:',
 'sp-contributions-search' => 'Pśinoski pytaś',
+'sp-contributions-suppresslog' => 'pódtłocone wužywarske pśinoski',
 'sp-contributions-username' => 'IP-adresa abo wužywarske mě:',
 'sp-contributions-toponly' => 'Jano wuše wersije pokazaś',
+'sp-contributions-newonly' => 'Jano změny pokazaś, kótarež su napóranja bokow',
 'sp-contributions-submit' => 'Pytaś',
 
 # What links here
index bdc2bc8..1ba0cf7 100644 (file)
@@ -247,7 +247,6 @@ $1',
 'disclaimers' => 'Pogoliman',
 'disclaimerpage' => 'Project:Pogoliman kosoruan',
 'edithelp' => 'Sokodung mongidit',
-'helppage' => 'Help:Susuang',
 'mainpage' => 'Natad tagayo',
 'mainpage-description' => 'Natad tagayo',
 'policy-url' => 'Project:Kooturan',
@@ -635,7 +634,7 @@ Nokowolih toi nopugas kaanto iti maso di intaannu iti bolikon.',
 Kaatalib montok akaun wagu milo do alanan hilo id bolikon ''[[Special:ChangePassword|pangalanan kaatalib]]'' soira do kosuang log.",
 'newarticle' => '(Wagu)',
 'newarticletext' => "Nakatanudko di noputan kumaa di bolikon di awu po nokosuang.
-Momonsoi ko nopo do bolikon diti, timpuun do manaip id kutak siriba (intaai [[{{MediaWiki:Helppage}}|bolikon ponokodung]] montok lobi gumu kointalangan).
+Momonsoi ko nopo do bolikon diti, timpuun do manaip id kutak siriba (intaai [$1 bolikon ponokodung] montok lobi gumu kointalangan).
 Nung nakaansau ko do hiti, tonsoko ot butang '''gumuli''' id pogigihumnu.",
 'anontalkpagetext' => "----''Iti nopo nga bolikon pogibabarasan montok di momomoguno poinlisok it awu poh nokopomonsoi do takaun, toi it awu momoguno dilo.
 Mantad dilo, asansagan yahai do poposurat numbur kinoyonon IP do mongintutun dau.
index 3146f10..414c560 100644 (file)
@@ -270,7 +270,6 @@ $1',
 'disclaimers' => 'އިއުލާނުތައް',
 'disclaimerpage' => 'Project:ޢާއްމު ޢިއުލާނުތައް',
 'edithelp' => 'ބަދަލުތައް ގެނައުމަށް އެހީ އެއް',
-'helppage' => 'Help:ފިހުރިސްތު',
 'mainpage' => 'މައި ޞަފްޙާ',
 'mainpage-description' => 'މައި ޞަފްޙާ',
 'policy-url' => 'Project:ސިޔާސަތު',
@@ -437,7 +436,7 @@ $1',
 * ތިޔަ ވަޑައިގެންނެވި ޞަފްޙާގައި އެއްވެސް ލިޔުމެއް އެކުލެވިފައި ނުވެއެވެ.
 *މި ޞަފްޙާއަށް ތިބޭފުޅާއަށް ވަޑައިގަނެވުނީ އޮޅުމަކުން ކަމަށް ވާނަމަ ކޮމްޕިޔުޓަރުގެ `ވެބް ބްރޯޒަރ` ގެ ''ފަހަތް'' ފިތައް އޮބާލައްވާށެވެ. އޭރުން އެންމެ ފަހުން ހުންނެވި ޞަފްޙާ އަށް ވަޑައިގަނެވޭނެއެވެ.
 * މަޒްމޫނެއް ފެއްޓެވުމަށް ތިރީގައި ވާ ފޮށީގައި ލިޔުއްވުމަށް ފަހު މަޒުމޫނުގެ ނަމޫނާ ބެއްލެވުމަށް ފަހު ކުށެއްވާނަމަ ރަނގަޅު ކުރައްވާފައި ފޮށީގެ ތިރީގައިވާ '''ޞަފްޙާ ރައްކާކުރައްވާ'''އަށް ފިއްތަވާ ލައްވަވާ.
-* އިތުރު އެހީ ބޭނުންފުޅު ނަމަ [[{{MediaWiki:Helppage}}|އެހީ ޞަފްހާއަށް]] ވަޑައިގަންނަވާށެވެ.
+* އިތުރު އެހީ ބޭނުންފުޅު ނަމަ [\$1 އެހީ ޞަފްހާއަށް] ވަޑައިގަންނަވާށެވެ.
 </div>",
 'noarticletext' => 'މި ޞަފްޙާގައި އެއްވެސް ލިޔުމެއް ނުވެއެވެ. ތިޔަބޭފުޅާއަށް މި ނަން [[Special:Search/{{PAGENAME}}|އެހެން ޞަފްޙާއަކުން ހޯއްދެވިދާނެއެވެ]]. ނުވަތަ <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} މިއާ ގުޅޭ ލޮގްތައް ހޯއްދެވިދާނެއެވެ].
 [{{fullurl:{{FULLPAGENAME}}|action=edit}} ނުވަތަ މި ޞަފްޙާއަށް އުނިއިތުރު ގެނެވިދާނެއެވެ].</span>',
index 5557021..5d0280a 100644 (file)
@@ -262,7 +262,6 @@ $1',
 'disclaimers' => 'Avertèinsi',
 'disclaimerpage' => 'Project:Avertèinsi generêli',
 'edithelp' => 'Léber dal spiegasiòun',
-'helppage' => 'Help:Tót j argumèint',
 'mainpage' => 'Préma pàgina',
 'mainpage-description' => 'Pàgina principêla',
 'policy-url' => "Project:Léni 'd cundòta",
@@ -451,8 +450,6 @@ Guêrda che soquânti pàgini a prén vèdres incòra cme s'ét fós incòra col
 'gotaccountlink' => 'Và dèinter',
 'userlogin-resetlink' => "T'ét scurdê j elemèint p'r al tó ingrès?",
 'userlogin-resetpassword-link' => "T' ét scurdê la cêva 'd ingrès?",
-'helplogin-url' => "Help: Per l'ingrès",
-'userlogin-helplink' => "[[{{MediaWiki:helplogin-url}}|Ajót cun l' ingrès]]",
 'userlogin-loggedin' => "T'ét bèle coleghê {{GENDER:$1|$1}}. 
 Drōva al mōdul ché sòta cme un êter utèint.",
 'userlogin-createanother' => "Fà 'n' êtra utèinsa.",
@@ -528,6 +525,10 @@ Se l'inscrisiòun l'é stêda fâta per şbâli, es pōl scanşlêr sté mesâg.
 'loginlanguagelabel' => 'Léngva: $1',
 'suspicious-userlogout' => "La tó dmânda per destachêret l'é stēda rifiutêda perchè la sèmbra spidîda da un navigadōr ch' al funsiòuna mìa o da un proxy di caching.",
 'createacct-another-realname-tip' => "Druvêr al nòm vèira l'é 'na siēlta personêla; s' es pèinsa 'd ruvêrel al gnirâ uşê per dêr la paternitê di lavōr spidî.",
+'pt-login' => 'Và dèinter',
+'pt-login-button' => 'Và dèinter',
+'pt-createaccount' => 'Fà la tó inscrisiòun',
+'pt-userlogout' => 'Và fōra',
 
 # Email sending
 'php-mail-error-unknown' => 'Erōr mìa cngusû int la funsiòun PHP mail().',
@@ -550,8 +551,12 @@ Se l'inscrisiòun l'é stêda fâta per şbâli, es pōl scanşlêr sté mesâg.
 'resetpass-submit-cancel' => 'Scanşèla',
 'resetpass-wrong-oldpass' => "Cêva 'd ingrès pruvişôria o còla 'd adès mìa vâlida.
 La cêva 'd ingrès la pré èser stêda bèle cambiêda, opór n'in pré èser stê dmandê 'na nōva pruvişôria.",
+'resetpass-recycled' => "Mèt dèinter 'na cêva 'd ingrès divêrsa da còla 'd adès.",
+'resetpass-temp-emailed' => "L'ingrès l'é stê fât cun un côdis pruvişôri. Per finîr la registrasiòun, l'é necesâri impustêr 'na nōva cêva 'd ingrès ché:",
 'resetpass-temp-password' => "Cêva 'd ingrès pruvişôria:",
 'resetpass-abort-generic' => "La mudéfica 'd la cêva 'd ingrès l'é stêda fermêda da un şlungamèint.",
+'resetpass-expired' => "La cêva 'd ingrès l'é scadûda. Mèt dèinter 'na cêva 'd ingrès nōva per fêr l'ingrès.",
+'resetpass-expired-soft' => "La tó cêva 'd ingrès l'é scadûda. T'é perghê ed siēlier 'na nōva o clichêr insém a \"{{int:resetpass-submit-cancel}}\" per turnêrla a mèter dèinter in sègvit.",
 
 # Special:PasswordReset
 'passwordreset' => "Câmbia la cêva 'd ingrès",
@@ -604,6 +609,7 @@ Cêva 'd ingrès pruvişôria: $2",
 'resettokens-text' => "Ché 't pō turnêr a impustêr al cêvi ch'ét permèten l'ingrès a precîşi infurmasiòun privêdi lighêdi a la tó utèinsa. Ét duvrés fêrel se per chêş ét j ê spartîdi cun quelchidûn o se al j infurmasiòun ed la tó utèinsa în  in perécol.",
 'resettokens-no-tokens' => "An gh'é mìa di token da turnêr a impustêr.",
 'resettokens-legend' => "Tōrna 'd impustêr la cêva",
+'resettokens-tokens' => ' Token:',
 'resettokens-token-label' => "$1 (valōr 'd adèsa: $2)",
 'resettokens-watchlist-token' => "Token p'r al feed web (Atom/RSS) dal [[Special:Watchlist|mudéfichi al pàgini ch'ét tîn sòt' ôc]]",
 'resettokens-done' => 'Token turnê a impustêr.',
@@ -677,7 +683,7 @@ Per impustêr e cunfermêr l'indirés dervîres dal [[Special:Preferences|prefer
 'accmailtitle' => "Cêva 'd ingrès spidîda.",
 'accmailtext' => "'Na cêva 'd ingrés l'è stêda fâta a chêş per [[User talk:$1|$1]] e l'è stêda spidîda a $2. Cla cêva 'd ingrès ché la pōl èser cambiêda int la pàgina per ''[[Special:ChangePassword|cambiêr la cêva 'd ingrès]]'' subét dôp avèir fât l'ingrès.",
 'newarticle' => '(Nōv)',
-'newarticletext' => "Al colegamèint apèina fât al cumbîna cun 'na pàgina ch' an n'é mìa incòra stêda fâta. S'ét vō fêr la pàgina adès, l'é asê cumincêr a scréver al tèst int la caşèla ché sòt (per vedèr infurmasiòun pió precîşi guêrda la [[{{MediaWiki:Helppage}}|pàgina 'd ajót]]). Se al colegamèint  l'é stê avêrt per erōr, l'é asê clichêr al pulsânt \"Indrē\" dal tó navigadōr.",
+'newarticletext' => "Al colegamèint apèina fât al cumbîna cun 'na pàgina ch' an n'é mìa incòra stêda fâta. S'ét vō fêr la pàgina adès, l'é asê cumincêr a scréver al tèst int la caşèla ché sòt (per vedèr infurmasiòun pió precîşi guêrda la [\$1 pàgina 'd ajót]). Se al colegamèint  l'é stê avêrt per erōr, l'é asê clichêr al pulsânt \"Indrē\" dal tó navigadōr.",
 'anontalkpagetext' => "----'' Còsta l'è la pàgina 'd discusiòun ed 'n utèint sèinsa nòm, ch' an n' à mìa incòra fât 'n' utèinsa o in tót al manēri an n'è mìa drē druvêrla. Per arcgnòsrel l'è dòunca necesâri druvê al só indirés IP. J indirés IP a pōlen èser spartî cun êter utèint. Se t'è un utèint sèinsa nòm e 't pèins che i cumèint in cla pàgina ché an riguêrden mìa tè, [[Special:UserLogin/signup|fa 'n' utèinsa nōva]] o [[Special:UserLogin|vîn dèinter cun còla ch' ét gh'ê bèle]] per schivşêr, in futûr,  'd èser cunfûş cun 'd j êter utèint sèinsa nòm.''",
 'noarticletext' => 'In cól mumèint ché la pàgina serchêda l\'é vōda. L\'é pusébil [[Special:Search/{{PAGENAME}}|serchêr sté tétol]] int al j êtri pàgini dal sît, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} serchêr int i regéster coleghê] opór  [{{fullurl:{{FULLPAGENAME}}|action=edit}} mudifichêr la pàgina adèsa]</span>.',
 'noarticletext-nopermission' => "In cól mumèint ché la pàgina serchêda l'é vōda. L'é pusébil [[Special:Search/{{PAGENAME}}|serchêr sté tétol]] int al j êtri pàgini dal sît o<span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} serchêr int i regéster coleghê] <span>, mó an 't gh'ê mìa al permès ed fêr cla pàgina ché.",
@@ -717,8 +723,16 @@ Al tō mudéfichi în MIA incòra stêdi salvêdi.",
 'editingsection' => 'Mudéfica ed $1 (sesiòun)',
 'editingcomment' => 'Mudéfica e $1 (sesiòun nōva)',
 'editconflict' => "Cuntrâst 'd edisiòun só $1",
+'explainconflict' => "Un êter utèint l'à salvê 'na nōva versiòun ed la pàgina mèinter t'ēr adrē fêr dal mudéfichi. Int la caşèla 'd mudéfica ché 'd sōver a gh'é al tèst ed la pàgina che adès l'é in lénia, acsé cme l'é stêda salvêda da cl'êter utèint. La versiòun cun al tō mudéfichi invēci l'é int la caşèla dal mudéfichi ché sòta. S' ét vō cunfermêri, ét dēv purtêr al tō mudéfichi int al tèst che gh'é bèle (caşèla ché 'd sōver). Se té schés al ptòun '{{int:savearticle}}', a gnirà salvê '''sōl''' al tèst dèinter a la caşèla 'd mudéfica ché 'd sōver.",
 'yourtext' => 'Al tó tèst',
+'storedversion' => 'La versiòun in memôria',
+'nonunicodebrowser' => "'''Atèinti: a s'é drē druvêr un navigadōr ch' al và mìa d' acôrdi cun i carâter ''Unicode''. Per permèter la mudéfica dal pàgini sèinsa fêr d' incunveniĵnt, int la caşèla ed mudéfica i carâter mia ASCII a vînen fât vèder cme côdis eşadecimêl.'''",
+'editingold' => "<strong>Atèinti: a s'é drē mudifichêr 'na versiòun mìa arnuvêda 'd la pàgina.</strong> 
+S'es pèinsa ed salvêrla, tót i cambiamèint fât dōp cla mudéfica ché andrân pêrs.",
 'yourdiff' => 'Diferèinsi',
+'copyrightwarning' => "Per piaşèir tîn cûnt che tót al colaborasiòun a {{SITENAME}} a vînen cunsidrêdi publichêdi sòta la licèinsa $2 (per i particulêr guêrda $1). S' an 't vō mìa che i tō tèst a pôsen èser cambiê e turnê a publichêr da tót sèinsa lémit, an publichêri mìa ché.<br /> In pió, se 't  i póblich ché, a 't dichiâr, sòta la tó responsabilitê, che còl ch' è stê scrét a 't l'ê scrét té personalmèint opór l'é ste cupiê da documèint sèinsa ch' al sìa quacê da nisûn dirét 'd autōr. <strong> Ché insém an pubblichêr mìa materiêl quacê da dirét 'd autōr sèinsa autorişâsiòun! </strong>",
+'copyrightwarning2' => "Per piaşèir tîn cûnt che tót al colaborasiòun a {{SITENAME}} a pōlen èser mudifichê, arversê o scanşlê da êtra gînta cla dà 'na mân. S' an 't vō mìa che i tō tèst a pôsen èser cambiê alōra an publichêri mìa ché.<br />In pió, se 't  i póblich ché, a 't dichiâr, sòta la tó responsabilitê, che còl ch' è stê scrét a 't l'ê scrét té personalmèint opór l'é ste cupiê da documèint sèinsa ch' al sìa quacê da nisûn dirét 'd autōr (per i particulêr guêrda $1). <strong> Ché insém an pubblichêr mìa materiêl quacê da dirét 'd autōr sèinsa autorişâsiòun! </strong>",
+'longpageerror' => "<strong> Erōr: al tèst spidî l'é lòngh {{PLURAL:$1|1|$1}} kilobyte, ch'l'é pió grôs ed l'amzûra mâsima permésa ({{PLURAL:$2|1|$2}} kilobyte). </strong> Al tèst al pôl mìa èser salvê.",
 'templatesused' => '{{PLURAL:$1|Mudèl druvê|Mudē druvê}} in cla pàgina ché:',
 'template-protected' => '(prutèt)',
 'template-semiprotected' => '(mèz-prutèt)',
@@ -896,7 +910,7 @@ Per cumditê còst l'é l'èlèinch dal scanşladûri e di spustamèint relatîv
 'recentchanges-label-minor' => "Còsta l'é 'na mudéfica céca",
 'recentchanges-label-bot' => "Cla mudéfica ché l'é stêda fâta da un bot.",
 'recentchanges-label-unpatrolled' => "Cla mudéfica ché an n'é mìa incòra stêda verifichêda.",
-'rcnotefrom' => "Ché sòt a gh'é la lésta dal mudéfichi fâti a partîr da '''$2''' (fîn a '''$1''').",
+'rcnotefrom' => "Ché sòt a gh'é la lésta dal mudéfichi fâti a partîr da <strong>$2</strong>(fîn a <strong>$1</strong>).",
 'rclistfrom' => 'Fà vèder al mudéfichi fâti a partîr da $1.',
 'rcshowhideminor' => '$1 al mudéfichi céchi',
 'rcshowhidebots' => '$1 i bot',
index 966b1fd..56b12d7 100644 (file)
@@ -11,6 +11,7 @@
  * @author Aitolos
  * @author Assassingr
  * @author Astralnet
+ * @author Axil
  * @author Azimout
  * @author Badseed
  * @author Chomwitt
@@ -407,7 +408,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Να μου αποστέλλονται αντίγραφα των μηνυμάτων ηλεκτρονικού ταχυδρομείου που στέλνω σε άλλους χρήστες',
 'tog-diffonly' => 'Να μην εμφανίζεται περιεχόμενο σελίδων κάτω από τις διαφορές των εκδόσεων',
 'tog-showhiddencats' => 'Εμφάνιση κρυμμένων κατηγοριών',
-'tog-noconvertlink' => 'Απενεργοποίησε την μετατροπή τίτλου συνδέσμου',
 'tog-norollbackdiff' => 'Παράλειψη διαφοράς μετά την εκτέλεση επαναφοράς',
 'tog-useeditwarning' => 'Προειδοποίηση όταν εγκαταλείπω μία σελίδα επεξεργασίας χωρίς να έχω πρώτα αποθηκεύσει τις αλλαγές',
 'tog-prefershttps' => 'Να γίνεται πάντα χρήση ασφαλούς σύνδεσης όταν ο χρήστης είναι συνδεδεμένος',
@@ -619,7 +619,6 @@ $1',
 'disclaimers' => 'Αποποίηση ευθυνών',
 'disclaimerpage' => 'Project:Γενική αποποίηση',
 'edithelp' => 'Βοήθεια σχετικά με την επεξεργασία',
-'helppage' => 'Help:Περιεχόμενα',
 'mainpage' => 'Αρχική σελίδα',
 'mainpage-description' => 'Αρχική σελίδα',
 'policy-url' => 'Project:Πολιτική',
@@ -662,8 +661,8 @@ $1',
 'feed-unavailable' => 'Οι ροές δεδομένων δεν είναι διαθέσιμες',
 'site-rss-feed' => '$1 ροή RSS',
 'site-atom-feed' => '$1 ροή Atom',
-'page-rss-feed' => '«$1» ροή RSS',
-'page-atom-feed' => '«$1» ροή Atom',
+'page-rss-feed' => 'Ροή RSS «$1»',
+'page-atom-feed' => 'Ροή Atom «$1»',
 'red-link-title' => '$1 (η σελίδα δεν υπάρχει)',
 'sort-descending' => 'Φθίνουσα ταξινόμηση',
 'sort-ascending' => 'Αύξουσα ταξινόμηση',
@@ -705,7 +704,7 @@ $1',
 'readonlytext' => 'Η βάση δεδομένων είναι επί του παρόντος κλειδωμένη απέναντι σε νέες καταχωρίσεις και άλλες τροποποιήσεις, πιθανότατα λόγω συντήρησης ρουτίνας, μετά την οποία θα επανέλθει σε κανονική λειτουργία.  
 
 Ο διαχειριστής που την κλείδωσε έδωσε την ακόλουθη εξήγηση: $1',
-'missing-article' => 'Η βάση δεδομένων δεν βρήκε κείμενο μιας σελίδας που θα έπρεπε να βρεθεί, με όνομα "$1" $2.
+'missing-article' => 'Η βάση δεδομένων δεν βρήκε κείμενο μιας σελίδας που θα έπρεπε να βρεθεί, με όνομα «$1» $2.
 
 Αυτό συνήθως προκαλείται ακολουθώντας ένα σύνδεσμο "διαφοράς" ή σύνδεσμο προς ιστορικό μιας σελίδας που έχει διαγραφεί.
 
@@ -716,20 +715,20 @@ $1',
 'readonly_lag' => 'Η βάση δεδομένων έχει κλειδωθεί αυτόματα για να μπορέσουν οι επιμέρους servers των αντιγράφων της βάσης δεδομένων (slaves) να καλύψουν τη διαφορά με τον κεντρικό server του πρωτοτύπου της βάσης (master).',
 'internalerror' => 'Εσωτερικό σφάλμα',
 'internalerror_info' => 'Εσωτερικό σφάλμα: $1',
-'fileappenderrorread' => 'Δεν ήταν δυνατή η ανάγνωση του "$1" κατά τη διάρκεια της επισύναψης.',
-'fileappenderror' => 'Δεν ήταν δυνατή η προσάρτηση του αρχείου "$1" στο "$2".',
-'filecopyerror' => 'Δεν ήταν δυνατή η αντιγραφή του αρχείου "$1" στο "$2".',
-'filerenameerror' => 'Δεν είναι δυνατή η μετονομασία του αρχείου "$1" σε "$2".',
-'filedeleteerror' => 'Δεν ήταν δυνατή η διαγραφή του αρχείου "$1".',
-'directorycreateerror' => 'Δεν μπορούσε να δημιουργηθεί η κατηγορία "$1".',
-'filenotfound' => 'Δεν είναι δυνατή η ανεύρεση του αρχείου "$1".',
-'fileexistserror' => 'Αδύνατον να εγγραφεί στο αρχείο "$1": το αρχείο υπάρχει',
-'unexpected' => 'Μη προσδοκώμενη τιμή: "$1"="$2"',
+'fileappenderrorread' => 'Δεν ήταν δυνατή η ανάγνωση του «$1» κατά τη διάρκεια της επισύναψης.',
+'fileappenderror' => 'Δεν ήταν δυνατή η προσάρτηση του αρχείου «$1» στο «$2».',
+'filecopyerror' => 'Δεν ήταν δυνατή η αντιγραφή του αρχείου «$1» στο «$2».',
+'filerenameerror' => 'Δεν είναι δυνατή η μετονομασία του αρχείου «$1» σε «$2».',
+'filedeleteerror' => 'Δεν ήταν δυνατή η διαγραφή του αρχείου «$1».',
+'directorycreateerror' => 'Δεν μπορούσε να δημιουργηθεί η κατηγορία «$1».',
+'filenotfound' => 'Δεν είναι δυνατή η ανεύρεση του αρχείου «$1».',
+'fileexistserror' => 'Αδύνατον να εγγραφεί στο αρχείο «$1»: το αρχείο υπάρχει',
+'unexpected' => 'Μη προσδοκώμενη τιμή: «$1»=«$2».',
 'formerror' => 'Σφάλμα: Δεν ήταν δυνατή η υποβολή της φόρμας!',
 'badarticleerror' => 'Η ενέργεια αυτή δεν μπορεί να εκτελεσθεί στη συγκεκριμένη σελίδα.',
 'cannotdelete' => 'Η σελίδα ή το αρχείο «$1» δεν μπόρεσε να διαγραφεί.
 Ενδεχομένως να έχει ήδη διαγραφεί από κάποιον άλλον.',
-'cannotdelete-title' => 'Αδύνατη η διαγραφή της σελίδας "$1"',
+'cannotdelete-title' => 'Αδύνατη η διαγραφή της σελίδας «$1»',
 'delete-hook-aborted' => 'Η επεξεργασία ματαιώθηκε από το άγκιστρο του συντακτικού αναλυτή.
 Δεν έδωσε εξήγηση.',
 'badtitle' => 'Ακατάλληλος τίτλος',
@@ -759,11 +758,11 @@ $2',
 'myprivateinfoprotected' => 'Δεν έχετε άδεια για να επεξεργαστείτε τα προσωπικά σας στοιχεία.',
 'mypreferencesprotected' => 'Δεν έχετε άδεια για να επεξεργαστείτε τις προτιμήσεις σας.',
 'ns-specialprotected' => 'Σελίδες στον τομέα {{ns:special}} δεν γίνεται να επεξεργαστούν.',
-'titleprotected' => "Αυτός ο τίτλος έχει προστατευθεί από την δημιουργία από τον [[User:$1|$1]].
-Ο λόγος που δίνεται είναι ''$2''.",
-'filereadonlyerror' => 'Δεν είναι δυνατή η τροποποίηση του αρχείου " $1 " επειδή το αποθετήριο αρχείων " $2 " είναι σε κατάσταση λειτουργίας μόνο για ανάγνωση.
+'titleprotected' => 'Αυτός ο τίτλος έχει προστατευθεί από την δημιουργία από τον [[User:$1|$1]].
+Ο λόγος που δίνεται είναι «$2».',
+'filereadonlyerror' => 'Δεν είναι δυνατή η τροποποίηση του αρχείου «$1» επειδή το αποθετήριο αρχείων «$2» είναι σε κατάσταση λειτουργίας μόνο για ανάγνωση.
 
-Ο διαχειριστής που το κλείδωσε προσφέρει αυτή την αιτιολόγηση: " $3 ".',
+Ο διαχειριστής που το κλείδωσε προσφέρει αυτή την αιτιολόγηση: «$3».',
 'invalidtitle-knownnamespace' => 'Μη έγκυρος τίτλος με χώρο ονομάτων «$2» και κείμενο «$3»',
 'invalidtitle-unknownnamespace' => 'Μη έγκυρος τίτλος με άγνωστο αριθμό χώρου ονομάτων $1 και κείμενο «$2»',
 'exception-nologin' => 'Δεν έχετε συνδεθεί.',
@@ -816,8 +815,6 @@ $2',
 'gotaccountlink' => 'Είσοδος',
 'userlogin-resetlink' => 'Ξεχάσατε τα στοιχεία εισόδου σας;',
 'userlogin-resetpassword-link' => 'Ξεχάσατε τον κωδικό πρόσβασης;',
-'helplogin-url' => 'Help:Σύνδεση',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Βοήθεια για τη σύνδεσή σας]]',
 'userlogin-loggedin' => 'Είστε ήδη {{GENDER:$1|συνδεδεμένος|συνδεδεμένη}} ως $1.
 Χρησιμοποιήστε την παρακάτω φόρμα για να συνδεθείτε ως άλλος χρήστης.',
 'userlogin-createanother' => 'Δημιουργήσετε έναν άλλο λογαριασμό',
@@ -912,7 +909,7 @@ $2',
 
 # Change password dialog
 'changepassword' => 'Αλλαγή κωδικού',
-'resetpass_announce' => 'ΣÏ\85νδεθήκαÏ\84ε Î¼Îµ Î­Î½Î± Ï\80Ï\81οÏ\83Ï\89Ï\81ινÏ\8c ÎºÏ\89δικÏ\8c, Ï\83Ï\84αλμένο Î¼Îµ e-mail. Î\93ια Î½Î± Î¿Î»Î¿ÎºÎ»Î·Ï\81Ï\8eÏ\83εÏ\84ε Ï\84ην Ï\83Ï\8dνδεÏ\83η, Ï\80Ï\81έÏ\80ει Î½Î± Ï\83Ï\84είλεÏ\84ε Î­Î½Î± Î½Î­Î¿ ÎºÏ\89δικÏ\8c ÎµÎ´Ï\8e:',
+'resetpass_announce' => 'Για να ολοκληρώσετε την σύνδεση, πρέπει να στείλετε ένα νέο κωδικό εδώ:',
 'resetpass_text' => '<!-- Προσθέστε κείμενο εδώ -->',
 'resetpass_header' => 'Αλλαγή κωδικού πρόσβασης',
 'oldpassword' => 'Παλιός κωδικός',
@@ -928,6 +925,7 @@ $2',
 'resetpass-submit-cancel' => 'Ακύρωση',
 'resetpass-wrong-oldpass' => 'Λάθος προσωρινός ή κανονικός κωδικός.
 Μπορεί να έχετε ήδη αλλάξει επιτυχώς τον κωδικό σας ή να έχετε ζητήσει έναν νέο προσωρινό κωδικό.',
+'resetpass-recycled' => 'Παρακαλούμε επαναφέρετε τον κωδικό πρόσβασής σας σε κάτι διαφορετικό από τον τρέχοντα κωδικό πρόσβασης.',
 'resetpass-temp-password' => 'Προσωρινός κωδικός:',
 'resetpass-abort-generic' => 'Η αλλαγή του κωδικού έχει απορριφθεί από μια προέκταση.',
 
@@ -1069,7 +1067,7 @@ $2
 Μπορεί να αλλαχθεί από την σελίδα ''[[Special:ChangePassword|αλλαγή κωδικού]]'' μετά τη σύνδεση.",
 'newarticle' => '(Νέο)',
 'newarticletext' => "Ακολουθήσατε ένα σύνδεσμο προς μια σελίδα που δεν υπάρχει ακόμα. 
-Για να δημιουργήσετε τη σελίδα, αρχίστε να πληκτρολογείτε στο παρακάτω πλαίσιο (δείτε τη [[{{MediaWiki:Helppage}}|σελίδα βοήθειας]] για περισσότερες πληροφορίες).
+Για να δημιουργήσετε τη σελίδα, αρχίστε να πληκτρολογείτε στο παρακάτω πλαίσιο (δείτε τη [$1 σελίδα βοήθειας] για περισσότερες πληροφορίες).
 Αν έχετε βρεθεί εδώ κατά λάθος, πατήστε το κουμπί '''πίσω''' στον περιηγητή σας.",
 'anontalkpagetext' => "----''Αυτή η σελίδα συζήτησης προορίζεται για ανώνυμο χρήστη που δεν έχει δημιουργήσει ακόμα λογαριασμό ή που δεν τον χρησιμοποιεί. Έτσι για την ταυτοποίηση ενός ανώνυμου χρήστη χρησιμοποιείται η διεύθυνση IP του. Είναι όμως πιθανόν η διεύθυνση αυτή να είναι κοινή για πολλούς διαφορετικούς χρήστες.  Αν είστε ανώνυμος χρήστης και νομίζετε ότι άσχετα σχόλια απευθύνθηκαν σε σας, παρακαλούμε να [[Special:UserLogin/signup|δημιουργήσετε ένα λογαριασμό]] ή να  [[Special:UserLogin|συνδεθείτε]] για να αποφεύγεται η μελλοντική σύγχυση με άλλους ανώνυμους χρήστες.''",
 'noarticletext' => 'Δεν υπάρχει προς το παρόν κείμενο σε αυτή τη σελίδα. Μπορείτε να [[Special:Search/{{PAGENAME}}|αναζητήσετε αυτόν τον τίτλο σελίδας]] σε άλλες σελίδες,
@@ -1082,7 +1080,7 @@ $2
 Αυτό συνήθως προκαλείται από παλιό σύνδεσμο ιστορικού προς σελίδα που έχει διαγραφεί.
 Λεπτομέρειες θα βρείτε στο [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} ημερολόγιο καταγραφής διαγραφών].',
 'userpage-userdoesnotexist' => 'Ο Λογαριασμός του χρήστη "<nowiki>$1</nowiki>" δεν είναι καταχωρημένος. Παρακαλώ δείτε αν θα θέλατε να δημιουργήσετε/επεξεργαστείτε αυτή τη σελίδα.',
-'userpage-userdoesnotexist-view' => 'Ο λογαριασμός χρήστη "$1" δεν είναι εγγεγραμμένος.',
+'userpage-userdoesnotexist-view' => 'Ο λογαριασμός χρήστη «$1» δεν είναι εγγεγραμμένος.',
 'blocked-notice-logextract' => 'Επί του παρόντος, αυτός ο χρήστης έχει υποστεί φραγή. Παρακάτω παρέχεται για αναφορά η πιο πρόσφατη καταχώρηση του αρχείου φραγών.',
 'clearyourcache' => "''' Σημείωση:''' μετά την αποθήκευση, ίσως χρειαστεί να παρακάμψετε την προσωρινή μνήμη του προγράμματος περιήγησής σας για να δείτε τις αλλαγές.
  * '''Firefox / Safari:''' Κρατήστε πατημένο το ''Shift'' κάνοντας ταυτόχρονα κλικ στο κουμπί ''Ανανέωση'' ή πιέστε ''Ctrl-F5'' ή ''Ctrl-R'' ('' ⌘-R'' σε Mac)
@@ -1308,8 +1306,6 @@ Mπορείτε να δείτε αυτή την διαφορά. Λεπτομέρ
 'revdelete-show-file-submit' => 'Ναι',
 'revdelete-selected' => "'''{{PLURAL:$2|Επιλεγμένη έκδοση|Επιλεγμένες εκδόσεις}} της [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Επιλεγμένο γεγονός αρχείου καταγραφής|Επιλεγμένα γεγονότα αρχείου καταγραφής}}:'''",
-'revdelete-text' => "'''Οι διεγραμμένες αναθεωρήσεις και τα γεγονότα θα εμφανίζονται ακόμα στο ιστορικό της σελίδας και στα αρχεία καταγραφών, αλλά μέρη του περιεχομένου τους θα είναι απροσπέλαστα στο κοινό.'''
-Άλλοι διαχειριστές στον ιστότοπο {{SITENAME}} θα είναι ακόμα ικανοί να προσπελάσουν το κρυμμένο περιεχόμενο και μπορούν να το επαναφέρουν ξανά μέσω αυτής της διεπαφής, εκτός αν τεθούν πρόσθετοι περιορισμοί.",
 'revdelete-confirm' => 'Παρακαλούμε επιβεβαιώστε ότι σκοπεύετε να το κάνετε αυτό, ότι αντιλαμβάνεσθε τις συνέπειες, και ότι το κάνετε σύμφωνα με την [[{{MediaWiki:Policy-url}}|πολιτική]].',
 'revdelete-suppress-text' => 'Η καταστολή μπορεί να χρησιμοποιηθεί <strong> μόνο </strong> για τις ακόλουθες περιπτώσεις:
 * Ενδεχόμενη συκοφαντική δυσφήμιση
index fd2b47f..192ef8d 100644 (file)
@@ -423,6 +423,7 @@ $specialPageAliases = array(
        'Listfiles'                 => array( 'ListFiles', 'FileList', 'ImageList' ),
        'Listgrouprights'           => array( 'ListGroupRights', 'UserGroupRights' ),
        'Listredirects'             => array( 'ListRedirects' ),
+       'ListDuplicatedFiles'       => array( 'ListDuplicatedFiles', 'ListFileDuplicates' ),
        'Listusers'                 => array( 'ListUsers', 'UserList' ),
        'Lockdb'                    => array( 'LockDB' ),
        'Log'                       => array( 'Log', 'Logs' ),
@@ -460,6 +461,7 @@ $specialPageAliases = array(
        'Redirect'                  => array( 'Redirect' ),
        'ResetTokens'               => array( 'ResetTokens' ),
        'Revisiondelete'            => array( 'RevisionDelete' ),
+       'RunJobs'                   => array( 'RunJobs' ),
        'Search'                    => array( 'Search' ),
        'Shortpages'                => array( 'ShortPages' ),
        'Specialpages'              => array( 'SpecialPages' ),
@@ -653,6 +655,7 @@ future releases. Also note that since each list value is wrapped in a unique
 ** mainpage|mainpage-description
 ** recentchanges-url|recentchanges
 ** randompage-url|randompage
+** helppage|help
 * SEARCH
 * TOOLBOX
 * LANGUAGES', # do not translate or duplicate this message to other languages
@@ -694,7 +697,6 @@ future releases. Also note that since each list value is wrapped in a unique
 'tog-ccmeonemails'            => 'Send me copies of emails I send to other users',
 'tog-diffonly'                => 'Do not show page content below diffs',
 'tog-showhiddencats'          => 'Show hidden categories',
-'tog-noconvertlink'           => 'Disable link title conversion', # only translate this message to other languages if you have to change it
 'tog-norollbackdiff'          => 'Omit diff after performing a rollback',
 'tog-useeditwarning'          => 'Warn me when I leave an edit page with unsaved changes',
 'tog-prefershttps'            => 'Always use a secure connection when logged in',
@@ -913,7 +915,7 @@ $1',
 'disclaimerpage'       => 'Project:General disclaimer',
 'edithelp'             => 'Editing help',
 'edithelppage'         => 'https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Editing_pages', # do not translate or duplicate this message to other languages
-'helppage'             => 'Help:Contents',
+'helppage'             => 'https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents',
 'mainpage'             => 'Main Page',
 'mainpage-description' => 'Main page',
 'policy-url'           => 'Project:Policy',
@@ -1127,8 +1129,8 @@ You can change your {{SITENAME}} [[Special:Preferences|preferences]] if you wish
 'gotaccountlink'                  => 'Log in',
 'userlogin-resetlink'             => 'Forgotten your login details?',
 'userlogin-resetpassword-link'    => 'Forgot your password?',
-'helplogin-url'                   => 'Help:Logging in',
-'userlogin-helplink'              => '[[{{MediaWiki:helplogin-url}}|Help with logging in]]',
+'helplogin-url'                   => 'https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Logging_in',
+'userlogin-helplink2'              => 'Help with logging in',
 'userlogin-loggedin'              => 'You are already logged in as {{GENDER:$1|$1}}.
 Use the form below to log in as another user.',
 'userlogin-createanother'         => 'Create another account',
@@ -1253,6 +1255,7 @@ Please wait $1 before trying again.',
 'createacct-another-realname-tip' => 'Real name is optional.
 If you choose to provide it, this will be used for giving the user attribution for their work.',
 'pt-login'                        => 'Log in',
+'pt-login-button'                 => 'Log in',
 'pt-createaccount'                => 'Create account',
 'pt-userlogout'                   => 'Log out',
 
@@ -1287,8 +1290,11 @@ You may have already successfully changed your password or requested a new tempo
 To finish logging in, you must set a new password here:',
 'resetpass-temp-password'   => 'Temporary password:',
 'resetpass-abort-generic'   => 'Password change has been aborted by an extension.',
-'resetpass-expired'         => 'Your password has expired. Please set a new password to login.',
-'resetpass-expired-soft'    => 'Your password has expired, and needs to be reset. Please choose a new password now, or click cancel to reset it later.',
+'resetpass-expired'         => 'Your password has expired. Please set a new password to log in.',
+'resetpass-expired-soft'    => 'Your password has expired and needs to be reset. Please choose a new password now, or click "{{int:resetpass-submit-cancel}}" to reset it later.',
+'resetpass-validity-soft'     => 'Your password is not valid: $1
+
+Please choose a new password now, or click "{{int:resetpass-submit-cancel}}" to reset it later.',
 
 # Special:PasswordReset
 'passwordreset'                    => 'Reset password',
@@ -1442,9 +1448,9 @@ It may have been moved or deleted while you were viewing the page.',
 'accmailtext'                              => 'A randomly generated password for [[User talk:$1|$1]] has been sent to $2. It can be changed on the <em>[[Special:ChangePassword|change password]]</em> page upon logging in.',
 'newarticle'                               => '(New)',
 'newarticletext'                           => "You have followed a link to a page that does not exist yet.
-To create the page, start typing in the box below (see the [[{{MediaWiki:Helppage}}|help page]] for more info).
+To create the page, start typing in the box below (see the [$1 help page] for more info).
 If you are here by mistake, click your browser's <strong>back</strong> button.",
-'newarticletextanon'                       => '{{int:newarticletext}}', # do not translate or duplicate this message to other languages
+'newarticletextanon'                       => '{{int:newarticletext|$1}}', # do not translate or duplicate this message to other languages
 'talkpagetext'                             => '<!-- MediaWiki:talkpagetext -->', # do not translate or duplicate this message to other languages
 'anontalkpagetext'                         => '----
 <em>This is the discussion page for an anonymous user who has not created an account yet, or who does not use it.</em>
@@ -1710,8 +1716,10 @@ function, the specified revision does not exist, or you are attempting to hide t
 'revdelete-show-file-submit'  => 'Yes',
 'revdelete-selected'          => '<strong>{{PLURAL:$2|Selected revision|Selected revisions}} of [[:$1]]:</strong>',
 'logdelete-selected'          => '<strong>{{PLURAL:$1|Selected log event|Selected log events}}:</strong>',
-'revdelete-text'              => '<strong>Deleted revisions and events will still appear in the page history and logs, but parts of their content will be inaccessible to the public.</strong>
-Other administrators on {{SITENAME}} will still be able to access the hidden content and can undelete it again through this same interface, unless additional restrictions are set.',
+'revdelete-text-text'         => 'Deleted revisions will still appear in the page history, but parts of their content will be inaccessible to the public.',
+'revdelete-text-file'         => 'Deleted file versions will still appear in the file history, but parts of their content will be inaccessible to the public.',
+'logdelete-text'              => 'Deleted log events will still appear in the logs, but parts of their content will be inaccessible to the public.',
+'revdelete-text-others'       => 'Other administrators on {{SITENAME}} will still be able to access the hidden content and can undelete it again through this same interface, unless additional restrictions are set.',
 'revdelete-confirm'           => 'Please confirm that you intend to do this, that you understand the consequences, and that you are doing this in accordance with [[{{MediaWiki:Policy-url}}|the policy]].',
 'revdelete-suppress-text'     => 'Suppression should <strong>only</strong> be used for the following cases:
 * potentially libelous information
@@ -1851,7 +1859,7 @@ Details can be found in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENA
 'search-file-match'                => '(matches file content)',
 'search-suggest'                   => 'Did you mean: $1',
 'search-interwiki-caption'         => 'Sister projects',
-'search-interwiki-default'         => '$1 results:',
+'search-interwiki-default'         => 'Results from $1:',
 'search-interwiki-custom'          => '', # do not translate or duplicate this message to other languages
 'search-interwiki-more'            => '(more)',
 'search-relatedarticle'            => 'Related',
@@ -2207,7 +2215,7 @@ Your email address is not revealed when other users contact you.',
 'recentchanges-legend-newpage'      => '(also see [[Special:NewPages|list of new pages]])',
 'recentchanges-legend-plusminus'    => '(<em>±123</em>)', # only translate this message to other languages if you have to change it
 'rcnotefrom'                        => 'Below are the changes since <strong>$2</strong> (up to <strong>$1</strong> shown).',
-'rclistfrom'                        => 'Show new changes starting from $1',
+'rclistfrom'                        => 'Show new changes starting from $2, $3',
 'rcshowhideminor'                   => '$1 minor edits',
 'rcshowhideminor-show'              => 'Show',
 'rcshowhideminor-hide'              => 'Hide',
@@ -2634,6 +2642,10 @@ Input: contenttype/subtype, e.g. <code>image/jpeg</code>.',
 'listredirects'         => 'List of redirects',
 'listredirects-summary' => '', # do not translate or duplicate this message to other languages
 
+'listduplicatedfiles' => 'List of files with duplicates',
+'listduplicatedfiles-summary' => 'This is a list of files where the most recent version of the file is a duplicate of the most recent version of some other file. Only local files are considered.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] has [[$3|{{PLURAL:$2|a duplicate|$2 duplicates}}]].',
+
 # Unused templates
 'unusedtemplates'         => 'Unused templates',
 'unusedtemplates-summary' => '', # do not translate or duplicate this message to other languages
@@ -2780,7 +2792,7 @@ It now redirects to [[$2]].',
 'deadendpagestext'                 => 'The following pages do not link to other pages in {{SITENAME}}.',
 'protectedpages'                   => 'Protected pages',
 'protectedpages-indef'             => 'Indefinite protections only',
-'protectedpages-summary'           => 'This page lists existing pages that are currently protected. For a list of titles that are protected from creation, see [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary'           => 'This page lists existing pages that are currently protected. For a list of titles that are protected from creation, see [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade'           => 'Cascading protections only',
 'protectedpages-noredirect'        => 'Hide redirects',
 'protectedpagesempty'              => 'No pages are currently protected with these parameters.',
@@ -2794,7 +2806,7 @@ It now redirects to [[$2]].',
 'protectedpages-unknown-performer' => 'Unknown user',
 'protectedpages-unknown-reason'    => '—', # do not translate or duplicate this message to other languages
 'protectedtitles'                  => 'Protected titles',
-'protectedtitles-summary'          => 'This page lists titles that are currently protected from creation. For a list of existing pages that are protected, see [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary'          => 'This page lists titles that are currently protected from creation. For a list of existing pages that are protected, see [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty'             => 'No titles are currently protected with these parameters.',
 'listusers'                        => 'User list',
 'listusers-summary'                => '', # do not translate or duplicate this message to other languages
@@ -3089,7 +3101,7 @@ Deletion of such pages has been restricted to prevent accidental disruption of {
 'delete-warning-toobig'      => 'This page has a large edit history, over $1 {{PLURAL:$1|revision|revisions}}.
 Deleting it may disrupt database operations of {{SITENAME}};
 proceed with caution.',
-'deleting-backlinks-warning' => "'''Warning:''' Other pages link to or transclude from the page you are about to delete.",
+'deleting-backlinks-warning' => "'''Warning:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Other pages]] link to or transclude the page you are about to delete.",
 
 # Rollback
 'rollback'                   => 'Roll back edits',
@@ -3145,7 +3157,7 @@ Here are the current settings for the page <strong>$1</strong>:',
 'protect-locked-access'            => 'Your account does not have permission to change page protection levels.
 Here are the current settings for the page <strong>$1</strong>:',
 'protect-cascadeon'                => "This page is currently protected because it is included in the following {{PLURAL:$1|page, which has|pages, which have}} cascading protection turned on.
-You can change this page's protection level, but it will not affect the cascading protection.",
+Changes to this page's protection level will not affect the cascading protection.",
 'protect-default'                  => 'Allow all users',
 'protect-fallback'                 => 'Allow only users with "$1" permission',
 'protect-level-autoconfirmed'      => 'Allow only autoconfirmed users',
@@ -3265,6 +3277,7 @@ $1',
 'sp-contributions-newbies-sub'         => 'For new accounts',
 'sp-contributions-newbies-title'       => 'User contributions for new accounts',
 'sp-contributions-blocklog'            => 'block log',
+'sp-contributions-suppresslog'         => 'suppressed user contributions',
 'sp-contributions-deleted'             => 'deleted user contributions',
 'sp-contributions-uploads'             => 'uploads',
 'sp-contributions-logs'                => 'logs',
@@ -5004,13 +5017,13 @@ You should have received [{{SERVER}}{{SCRIPTPATH}}/COPYING a copy of the GNU Gen
 'dberr-cachederror' => 'This is a cached copy of the requested page, and may not be up to date.',
 
 # HTML forms
-'htmlform-invalid-input'       => 'There are problems with some of your input',
+'htmlform-invalid-input'       => 'There are problems with some of your input.',
 'htmlform-select-badoption'    => 'The value you specified is not a valid option.',
 'htmlform-int-invalid'         => 'The value you specified is not an integer.',
 'htmlform-float-invalid'       => 'The value you specified is not a number.',
-'htmlform-int-toolow'          => 'The value you specified is below the minimum of $1',
-'htmlform-int-toohigh'         => 'The value you specified is above the maximum of $1',
-'htmlform-required'            => 'This value is required',
+'htmlform-int-toolow'          => 'The value you specified is below the minimum of $1.',
+'htmlform-int-toohigh'         => 'The value you specified is above the maximum of $1.',
+'htmlform-required'            => 'This value is required.',
 'htmlform-submit'              => 'Submit',
 'htmlform-reset'               => 'Undo changes',
 'htmlform-selectorother-other' => 'Other',
index e2405f4..73f7a5b 100644 (file)
@@ -572,7 +572,6 @@ $1',
 'disclaimers' => 'Malgarantio',
 'disclaimerpage' => 'Project:Malgarantia paĝo',
 'edithelp' => 'Helpo pri redaktado',
-'helppage' => 'Help:Enhavo',
 'mainpage' => 'Ĉefpaĝo',
 'mainpage-description' => 'Ĉefpaĝo',
 'policy-url' => 'Project:Regularo',
@@ -775,8 +774,6 @@ Ne forgesu ŝanĝi viajn [[Special:Preferences|{{SITENAME}}-preferojn]]',
 'gotaccountlink' => 'Ensaluti',
 'userlogin-resetlink' => 'Ĉu vi forgesis ensalutajn detalojn?',
 'userlogin-resetpassword-link' => 'Ĉu vi forgesis vian pasvorton?',
-'helplogin-url' => 'Help:Ensalutado',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Helpo pri ensalutado]]',
 'userlogin-loggedin' => 'Vi jam estas ensalutita kiel {{GENDER:$1|$1}}.
 Uzu la formularon suben por ensaluti kiel alia uzanto.',
 'userlogin-createanother' => 'Krei alian konton',
@@ -1039,7 +1036,7 @@ Bonvolu inkluzivi tiujn detalojn en iuj ajn demandoj kiun vi farus.',
 
 La pasvorto por ĉi tiu nova konto povas esti ŝanĝita en la paĝo ''[[Special:ChangePassword|ŝanĝi pasvorton]]'' dum ensalutado.",
 'newarticle' => '(Nova)',
-'newarticletext' => 'Vi sekvis ligilon al paĝo ankoraŭ ne ekzistanta. Se vi volas krei ĝin, ektajpu malsupre (vidu la [[{{MediaWiki:Helppage}}|helpopaĝon]] por klarigoj.) Se vi malintence alvenis ĉi tien, simple alklaku la retrobutonon de via retumilo.',
+'newarticletext' => 'Vi sekvis ligilon al paĝo ankoraŭ ne ekzistanta. Se vi volas krei ĝin, ektajpu malsupre (vidu la [$1 helpopaĝon] por klarigoj.) Se vi malintence alvenis ĉi tien, simple alklaku la retrobutonon de via retumilo.',
 'anontalkpagetext' => "---- ''Jen diskutopaĝo por anonima kontribuanto kiu ne jam kreis konton aŭ ne uzas ĝin.
 Ni tial devas uzi la cifran IP-adreson por identigi lin/ŝin.
 Ĉi tia IP-adreso povas esti uzata de pluraj uzantoj.
@@ -1280,8 +1277,6 @@ funkcion, la specifita versio ne ekzistas, aŭ vi estas provanta kaŝi la nunan
 'revdelete-show-file-submit' => 'Jes',
 'revdelete-selected' => "'''{{PLURAL:$2|Selektata versio|Selektataj versioj}} de [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Selektata protokola evento|Selektataj protokolaj eventoj}}:'''",
-'revdelete-text' => "'''Forigitaj versioj kaj eventoj plu aperos en la historipaĝoj, sed iliaj tekstoj ne estos alireblaj de la publiko.'''
-Aliaj administrantoj ĉe {{SITENAME}} plu povos aliri la kaŝitan entenon kaj restarigi ĝin per la sama interfaco, krom se plia limigo estas metita de la paĝaradministrantoj.",
 'revdelete-confirm' => 'Bonvolu konfirmi ke vi intencias fari ĉi tion, ke vi komprenas la konsekvencojn kaj ke vi faras ĉi tion laŭ [[{{MediaWiki:Policy-url}}|la regularo]].',
 'revdelete-suppress-text' => "Subpremo '''nur''' estu uzata por la jenaj kazoj:
 * Ebla kalumnia informo
index d42e385..8d9e606 100644 (file)
@@ -95,6 +95,7 @@
  * @author Sethladan
  * @author Shirayuki
  * @author Spacebirdy
+ * @author Sporeunai
  * @author Stephensuleeman
  * @author Technorum
  * @author The Evil IP address
@@ -316,7 +317,7 @@ $magicWords = array(
        'img_link'                  => array( '1', 'vínculo=$1', 'vinculo=$1', 'enlace=$1', 'link=$1' ),
        'sitename'                  => array( '1', 'NOMBREDELSITIO', 'SITENAME' ),
        'ns'                        => array( '0', 'EN:', 'NS:' ),
-       'localurl'                  => array( '0', 'URLLOCAL', 'LOCALURL:' ),
+       'localurl'                  => array( '0', 'URLLOCAL:', 'LOCALURL:' ),
        'localurle'                 => array( '0', 'URLLOCALC:', 'LOCALURLE:' ),
        'server'                    => array( '0', 'SERVIDOR', 'SERVER' ),
        'servername'                => array( '0', 'NOMBRESERVIDOR', 'SERVERNAME' ),
@@ -341,11 +342,11 @@ $magicWords = array(
        'fullurle'                  => array( '0', 'URLCOMPLETAC:', 'FULLURLE:' ),
        'canonicalurl'              => array( '0', 'URLCANONICA:', 'CANONICALURL:' ),
        'canonicalurle'             => array( '0', 'URLCANONICAC:', 'CANONICALURLE:' ),
-       'lcfirst'                   => array( '0', 'PRIMEROMINUS;', 'PRIMEROMINÚS:', 'LCFIRST:' ),
-       'ucfirst'                   => array( '0', 'PRIMEROMAYUS;', 'PRIMEROMAYÚS:', 'UCFIRST:' ),
+       'lcfirst'                   => array( '0', 'PRIMEROMINUS:', 'PRIMEROMINÚS:', 'LCFIRST:' ),
+       'ucfirst'                   => array( '0', 'PRIMEROMAYUS:', 'PRIMEROMAYÚS:', 'UCFIRST:' ),
        'lc'                        => array( '0', 'MINUS:', 'MINÚS:', 'LC:' ),
        'uc'                        => array( '0', 'MAYUS:', 'MAYÚS:', 'UC:' ),
-       'raw'                       => array( '0', 'SINFORMATO', 'SINPUNTOS', 'RAW:' ),
+       'raw'                       => array( '0', 'SINFORMATO:', 'SINPUNTOS:', 'RAW:' ),
        'displaytitle'              => array( '1', 'MOSTRARTÍTULO', 'MOSTRARTITULO', 'DISPLAYTITLE' ),
        'rawsuffix'                 => array( '1', 'SF', 'R' ),
        'newsectionlink'            => array( '1', '__VINCULARANUEVASECCION__', '__ENLACECREARSECCIÓN__', '__NEWSECTIONLINK__' ),
@@ -423,7 +424,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Recibir copias de los correos que envío a otros usuarios',
 'tog-diffonly' => "No mostrar bajo las ''diferencias'' el contenido de la página",
 'tog-showhiddencats' => 'Mostrar las categorías escondidas',
-'tog-noconvertlink' => 'Desactivar la conversión de título de enlace',
 'tog-norollbackdiff' => 'Omitir la diferencia después de revertir',
 'tog-useeditwarning' => 'Advertirme cuando abandone una página editada con cambios sin grabar',
 'tog-prefershttps' => 'Utiliza una conexión segura siempre que haya iniciado una sesión',
@@ -509,7 +509,7 @@ $messages = array(
 'subcategories' => 'Subcategorías',
 'category-media-header' => 'Archivos multimedia en la categoría «$1»',
 'category-empty' => "''La categoría no contiene ninguna página o archivo.''",
-'hidden-categories' => '{{PLURAL:$1|Categoría escondida|Categorías escondidas}}',
+'hidden-categories' => '{{PLURAL:$1|Categoría oculta|Categorías ocultas}}',
 'hidden-category-category' => 'Categorías ocultas',
 'category-subcat-count' => '{{PLURAL:$2|Esta categoría solo contiene la siguiente subcategoría.|Esta categoría contiene {{PLURAL:$1|la siguiente subcategoría|las siguientes $1 subcategorías}}, de un total de $2.}}',
 'category-subcat-count-limited' => 'Esta categoría contiene {{PLURAL:$1|la siguiente subcategoría|las siguientes $1 subcategorías}}.',
@@ -635,7 +635,6 @@ $1',
 'disclaimers' => 'Aviso legal',
 'disclaimerpage' => 'Project:Limitación general de responsabilidad',
 'edithelp' => 'Ayuda de edición',
-'helppage' => 'Help:Contenido',
 'mainpage' => 'Página principal',
 'mainpage-description' => 'Página principal',
 'policy-url' => 'Project:Políticas',
@@ -679,7 +678,7 @@ $1',
 'site-rss-feed' => 'Canal RSS de $1',
 'site-atom-feed' => 'Canal Atom de $1',
 'page-rss-feed' => 'Canal RSS «$1»',
-'page-atom-feed' => 'Canal Atom «$1»',
+'page-atom-feed' => 'Canal Atom de «$1»',
 'red-link-title' => '$1 (la página no existe)',
 'sort-descending' => 'Orden descendente',
 'sort-ascending' => 'Orden ascendente',
@@ -831,8 +830,7 @@ No olvides personalizar tus [[Special:Preferences|preferencias de {{SITENAME}}]]
 'gotaccountlink' => 'Iniciar sesión',
 'userlogin-resetlink' => '¿Olvidaste tus datos de acceso?',
 'userlogin-resetpassword-link' => '¿Has olvidado tu contraseña?',
-'helplogin-url' => 'Help:Inicio de sesión',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ayuda]]',
+'userlogin-helplink2' => 'Ayuda con el registro',
 'userlogin-loggedin' => 'Ya estás conectado como {{GENDER:$1|$1}}.
 Usa el formulario de abajo para iniciar sesión como otro usuario.',
 'userlogin-createanother' => 'Crear otra cuenta',
@@ -927,6 +925,7 @@ Puedes ignorar este mensaje si esta cuenta fue creada por error.',
 'createacct-another-realname-tip' => 'El nombre real es opcional.
 Si se proporciona, se usará para dar al usuario la atribución de su trabajo.',
 'pt-login' => 'Iniciar sesión',
+'pt-login-button' => 'Iniciar sesión',
 'pt-createaccount' => 'Crear una cuenta',
 'pt-userlogout' => 'Cerrar sesión',
 
@@ -959,7 +958,10 @@ Para terminar la sesión, debes establecer una nueva contraseña aquí:',
 'resetpass-temp-password' => 'Contraseña temporal:',
 'resetpass-abort-generic' => 'Una extensión ha cancelado el cambio de la contraseña.',
 'resetpass-expired' => 'Tu contraseña ha caducado. Por favor, establece una nueva contraseña para iniciar sesión.',
-'resetpass-expired-soft' => 'Tu contraseña ha expirado y necesita ser restablecida. Elije una nueva contraseña ahora, o haz clic en cancelar para restablecerla más tarde.',
+'resetpass-expired-soft' => 'Su contraseña ha caducado y necesita reajustarse. Elija una nueva contraseña ahora, o haga clic en "{{int:resetpass-enviar-cancelar}}" para restaurarla más adelante.',
+'resetpass-validity-soft' => 'Tu contraseña no es válida: $1
+
+Cámbiala ahora por una nueva, o haz clic en "{{int:resetpass-submit-cancel}}" para cambiarla más tarde.',
 
 # Special:PasswordReset
 'passwordreset' => 'Restablecimiento de contraseña',
@@ -1108,7 +1110,7 @@ Quizá ha sido movida o borrada mientras visitabas la página.',
 La contraseña para esta nueva cuenta puede cambiarse en [[Special:ChangePassword|la página destinada para ello]] después de haber iniciado sesión.',
 'newarticle' => '(Nuevo)',
 'newarticletext' => 'Has seguido un enlace a una página que aún no existe.
-Para crear esta página, escribe en el campo a continuación. Para más información, consulta la [[{{MediaWiki:Helppage}}|página de ayuda]].
+Para crear esta página, escribe en el campo a continuación. Para más información, consulta la [$1 página de ayuda].
 Si llegaste aquí por error, vuelve a la página anterior.',
 'anontalkpagetext' => "---- ''Esta es la página de discusión de un usuario anónimo que aún no ha creado una cuenta, o no la usa. Por lo tanto, tenemos que usar su dirección IP para identificarlo. Una dirección IP puede ser compartida por varios usuarios. Si eres un usuario anónimo y crees que se han dirigido a ti con comentarios improcedentes, por favor [[Special:UserLogin/signup|crea una cuenta]] o si ya la tienes [[Special:UserLogin|identifícate]] para evitar confusiones futuras con otros usuarios anónimos.''",
 'noarticletext' => 'En este momento no hay texto en esta página.
@@ -1350,8 +1352,10 @@ Aún tiene la posibilidad de verla; puede ampliar los detalles en el [{{fullurl:
 'revdelete-show-file-submit' => 'Sí',
 'revdelete-selected' => "'''{{PLURAL:$2|Revisión seleccionada|Revisiones seleccionadas}} de [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Seleccionado un evento|Seleccionados eventos}}:'''",
-'revdelete-text' => "Las revisiones borradas aún aparecerán en el historial de la página y en los registros, pero sus contenidos no serán accesibles al público.'''
-Otros administradores de {{SITENAME}} aún podrán acceder al contenido oculto y podrán deshacer el borrado a través de la misma interfaz, a menos que se establezcan restricciones adicionales.",
+'revdelete-text-text' => 'Las revisiones eliminadas aún aparecerán en el historial de la página, pero parte de su contenido será inaccesible para el público.',
+'revdelete-text-file' => 'Las versiones de los archivos eliminados aún aparecerán en el historial del archivo, pero partes de su contenido serán inaccesibles para el público.',
+'logdelete-text' => 'Las revisiones eliminadas aún aparecerán en el historial de la página, pero parte de su contenido será inaccesible para el público.',
+'revdelete-text-others' => 'Otros administradores en {{SITENAME}} aun serán capaces de acceder a los contenidos ocultos y pueden restaurarlos a través de esta interfaz, a menos que se establezcan restricciones adicionales.',
 'revdelete-confirm' => 'Por favor confirma que deseas realizar la operación, que entiendes las consecuencias y que estás ejecutando dicha acción acorde con [[{{MediaWiki:Policy-url}}|las políticas]].',
 'revdelete-suppress-text' => "La herramienta de supresión '''solo''' debería usarse en los siguientes casos:
 * información potencialmente injuriosa o calumniante.
@@ -1437,7 +1441,7 @@ Nota que usar los enlaces de navegación borrará las selecciones de esta column
 'mergelogpagetext' => 'Debajo está una lista de las fusiones más recientes de historial de una página en otra.',
 
 # Diffs
-'history-title' => 'Historial de revisiones para «$1»',
+'history-title' => 'Historial de revisiones de «$1»',
 'difference-title' => 'Diferencia entre revisiones de «$1»',
 'difference-title-multipage' => 'Diferencia entre las páginas «$1» y «$2»',
 'difference-multipage' => '(Diferencia entre las páginas)',
@@ -1811,7 +1815,7 @@ Tu dirección de correo no se revela cuando otros usuarios te contactan.',
 'recentchanges-label-plusminus' => 'El tamaño de la página cambió esta cantidad de bytes',
 'recentchanges-legend-heading' => "'''Leyenda:'''",
 'recentchanges-legend-newpage' => '(véase también la [[Special:NewPages|lista de páginas nuevas]])',
-'rcnotefrom' => 'A continuación se muestran los cambios desde <b>$2</b> (hasta <b>$1</b>).',
+'rcnotefrom' => 'A continuación se presentan los cambios desde <strong> $2 </strong> (hasta <strong> $1 </strong> se muestra).',
 'rclistfrom' => 'Mostrar nuevos cambios desde $1',
 'rcshowhideminor' => '$1 ediciones menores',
 'rcshowhideminor-show' => 'Mostrar',
@@ -1843,7 +1847,7 @@ Tu dirección de correo no se revela cuando otros usuarios te contactan.',
 'rc_categories' => 'Limitar a las categorías (separadas por «|»)',
 'rc_categories_any' => 'Cualquiera',
 'rc-change-size-new' => '$1 {{PLURAL:$1|byte|bytes}} después del cambio',
-'newsectionsummary' => 'Nueva sección: /* $1 */',
+'newsectionsummary' => 'Sección nueva: /* $1 */',
 'rc-enhanced-expand' => 'Mostrar detalles',
 'rc-enhanced-hide' => 'Ocultar detalles',
 'rc-old-title' => 'originalmente creado como "$1"',
@@ -2326,7 +2330,7 @@ Las entradas <del>tachadas</del> han sido resueltas.',
 'deadendpagestext' => 'Las siguientes páginas no enlazan a otras páginas de {{SITENAME}}.',
 'protectedpages' => 'Páginas protegidas',
 'protectedpages-indef' => 'Sólo protecciones indefinidas',
-'protectedpages-summary' => 'Esta página enumera las páginas existentes que actualmente están protegidas. Para obtener una lista de títulos que están protegidos desde su creación, véase [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Esta página enumera las páginas existentes que actualmente están protegidas. Para obtener una lista de títulos que están protegidos desde su creación, véase [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Sólo protecciones en cascada',
 'protectedpages-noredirect' => 'Ocultar redirecciones',
 'protectedpagesempty' => 'Actualmente no hay ninguna página protegida con esos parámetros.',
@@ -2339,7 +2343,7 @@ Las entradas <del>tachadas</del> han sido resueltas.',
 'protectedpages-unknown-timestamp' => 'Desconocido',
 'protectedpages-unknown-performer' => 'Usuario desconocido',
 'protectedtitles' => 'Títulos protegidos',
-'protectedtitles-summary' => 'Esta página enumera títulos que actualmente están protegidos desde su creación. Para una lista de las páginas existentes que están protegidos, véase [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Esta página enumera títulos que actualmente están protegidos desde su creación. Para una lista de las páginas existentes que están protegidos, véase [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Actualmente no existen entradas protegidas con esos parámetros.',
 'listusers' => 'Lista de usuarios',
 'listusers-editsonly' => 'Muestra sólo usuarios con ediciones',
@@ -2611,7 +2615,7 @@ Véase $2 para un registro de los borrados recientes.',
 'delete-edit-reasonlist' => 'Editar razones de borrado',
 'delete-toobig' => 'Esta página tiene un historial muy grande, con más de $1 {{PLURAL:$1|revisión|revisiones}}. Borrar este tipo de páginas ha sido restringido para prevenir posibles problemas en {{SITENAME}}.',
 'delete-warning-toobig' => 'Esta página tiene un historial de más de $1 {{PLURAL:$1|revisión|revisiones}}. Eliminarla puede perturbar las operaciones de la base de datos de {{SITENAME}}. Ten cuidado al borrar.',
-'deleting-backlinks-warning' => "'''Advertencia:''' Otras páginas están enlazadas o son inclusión desde la página que estás por eliminar.",
+'deleting-backlinks-warning' => "'''Advertencia:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Otras páginas]] enlazan o transcluyen la página que vas a eliminar.",
 
 # Rollback
 'rollback' => 'Revertir ediciones',
@@ -2785,6 +2789,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Esta dirección IP se encuentra actualmente bloqueada.
 A continuación se muestra la última entrada del registro de bloqueos para mayor referencia.',
 'sp-contributions-search' => 'Buscar contribuciones',
+'sp-contributions-suppresslog' => 'Contribuciones borradas de usuario',
 'sp-contributions-username' => 'Dirección IP o nombre de usuario:',
 'sp-contributions-toponly' => 'Solo mostrar últimas ediciones de página',
 'sp-contributions-newonly' => 'Mostrar solo ediciones que son creaciones de páginas',
@@ -3178,7 +3183,7 @@ No hay un directorio temporal.',
 'tooltip-pt-logout' => 'Salir de la sesión',
 'tooltip-ca-talk' => 'Discusión acerca del artículo',
 'tooltip-ca-edit' => 'Puedes editar esta página. Utiliza el botón de previsualización antes de guardar',
-'tooltip-ca-addsection' => 'Inicia una nueva sección',
+'tooltip-ca-addsection' => 'Iniciar una sección nueva',
 'tooltip-ca-viewsource' => 'Esta página está protegida.
 Puedes ver su código fuente',
 'tooltip-ca-history' => 'Versiones anteriores de esta página y sus autores',
@@ -3201,7 +3206,7 @@ Puedes ver su código fuente',
 'tooltip-n-randompage' => 'Cargar una página al azar',
 'tooltip-n-help' => 'El lugar para aprender',
 'tooltip-t-whatlinkshere' => 'Lista de todas las páginas del wiki que enlazan aquí',
-'tooltip-t-recentchangeslinked' => 'Cambios recientes en las páginas que enlazan con ésta',
+'tooltip-t-recentchangeslinked' => 'Cambios recientes en las páginas que enlazan con esta',
 'tooltip-feed-rss' => 'Sindicación RSS de esta página',
 'tooltip-feed-atom' => 'Sindicación Atom de esta página',
 'tooltip-t-contributions' => 'Lista de contribuciones de este usuario',
index e7bf3ae..18ca978 100644 (file)
@@ -552,7 +552,6 @@ $1',
 'disclaimers' => 'Hoiatused',
 'disclaimerpage' => 'Project:Hoiatused',
 'edithelp' => 'Redigeerimisjuhend',
-'helppage' => 'Help:Sisukord',
 'mainpage' => 'Esileht',
 'mainpage-description' => 'Esileht',
 'policy-url' => 'Project:Reeglid',
@@ -751,8 +750,7 @@ Pane tähele, et seni kuni sa pole oma võrgulehitseja puhvrit tühjendanud, võ
 'gotaccountlink' => 'logi sisse',
 'userlogin-resetlink' => 'Kas oled unustanud oma sisselogimisandmed?',
 'userlogin-resetpassword-link' => 'Kas unustasid parooli?',
-'helplogin-url' => 'Help:Sisselogimine',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Sisselogimisabi]]',
+'userlogin-helplink2' => 'Sisselogimisabi',
 'userlogin-loggedin' => 'Oled juba sisse logitud nimega {{GENDER:$1|$1}}.
 Kasuta allolevat vormi, et logida sisse teise kasutajaga.',
 'userlogin-createanother' => 'Loo teine konto',
@@ -840,6 +838,7 @@ Palun oota $1, enne kui uuesti proovid.',
 'createacct-another-realname-tip' => 'Tegelik nimi on valikuline.
 Kui otsustad selle sisestada, kasutatakse seda kasutaja töö temale omistamiseks.',
 'pt-login' => 'Logi sisse',
+'pt-login-button' => 'Logi sisse',
 'pt-createaccount' => 'Loo konto',
 'pt-userlogout' => 'Logi välja',
 
@@ -873,7 +872,10 @@ Et sisselogimine lõpule viia, pead määrama siin uue parooli:',
 'resetpass-temp-password' => 'Ajutine parool:',
 'resetpass-abort-generic' => 'Tarkvaralisa on paroolimuudatuse abortinud.',
 'resetpass-expired' => 'Sinu parool on iganenud. Palun määra uus parool, et sisse logida.',
-'resetpass-expired-soft' => 'Sinu parool on iganenud ja tuleb uuesti määrata. Palun vali kohe uus parool või klõpsa "Loobu", et määrata see hiljem.',
+'resetpass-expired-soft' => 'Sinu parool on iganenud ja tuleb uuesti määrata. Palun vali kohe uus parool või klõpsa "{{int:resetpass-submit-cancel}}", et määrata see hiljem.',
+'resetpass-validity-soft' => 'Sinu parool ei sobi: $1
+
+Palun vali kohe uus parool või klõpsa "{{int:resetpass-submit-cancel}}", et see hiljem uuesti määrata.',
 
 # Special:PasswordReset
 'passwordreset' => 'Parooli lähtestamine',
@@ -1018,7 +1020,7 @@ Võimalik, et see teisaldati või kustutati, sellal kui lehekülge vaatasid.',
 Seda saab pärast sisselogimist muuta ''[[Special:ChangePassword|parooli muutmise]]'' leheküljel.",
 'newarticle' => '(Uus)',
 'newarticletext' => "Lehekülge, kuhu link sind suunas, pole veel.
-Lehekülje loomiseks alusta allolevasse kasti kirjutamist (lisateave [[{{MediaWiki:Helppage}}|juhendist]]).
+Lehekülje loomiseks alusta allolevasse kasti kirjutamist (lisateave [$1 juhendist]).
 Kui sattusid siia kogemata, klõpsa võrgulehitseja ''tagasi''-nupule.",
 'anontalkpagetext' => "----''See on anonüümse kasutaja arutelulehekülg. See kasutaja pole kontot loonud või ei kasuta seda. Sellepärast tuleb meil kasutaja tuvastamiseks kasutada tema IP-aadressi. Sellist IP-aadressi võib kasutada mitu kasutajat. Kui oled osutatud IP-aadressi kasutaja ning leiad, et siinsed kommentaarid ei puutu kuidagi sinusse, [[Special:UserLogin/signup|loo palun kasutajakonto]] või [[Special:UserLogin|logi sisse]], et sind edaspidi teiste anonüümsete kasutajatega segi ei aetaks.''",
 'noarticletext' => 'Käesoleval leheküljel hetkel teksti ei ole.
@@ -1254,8 +1256,10 @@ Saad seda muudatust vaadata. [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAG
 'revdelete-show-file-submit' => 'Jah',
 'revdelete-selected' => "'''Valitud {{PLURAL:$2|redaktsioon|redaktsioonid}} leheküljest [[:$1]]:'''",
 'logdelete-selected' => "'''Valitud {{PLURAL:$1|logisissekanne|logisissekanded}}:'''",
-'revdelete-text' => "'''Kustutatud redaktsioonid ja sündmused kajastuvad endiselt lehekülje ajaloos ja logides, kuid osa nende sisust pole avalikult nähtav.'''
-{{GRAMMAR:genitive|{{SITENAME}}}} administraatorid saavad peidetud sisu siiski vaadata ning seda vajadusel selle liidese kaudu taastada, kui see pole just täiendavalt keelatud.",
+'revdelete-text-text' => 'Kustutatud redaktsioonid jäävad lehekülje ajalukku alles, aga osa nende sisust pole kõigile juurdepääsetav.',
+'revdelete-text-file' => 'Kustutatud failiversioonid jäävad faili ajalukku alles, aga osa nende sisust pole kõigile juurdepääsetav.',
+'logdelete-text' => 'Kustutatud logisündmused jäävad logisse alles, aga osa nende sisust pole kõigile juurdepääsetav.',
+'revdelete-text-others' => 'Teised {{GRAMMAR:genitive|{{SITENAME}}}} administraatorid pääsevad ikkagi peidetud sisu juurde ja saavad sama liidese kaudu selle taastada, kui seatud pole lisapiiranguid.',
 'revdelete-confirm' => 'Kinnita, et soovid tõesti seda teha ning et saad aru tagajärgedest ja tegevus on kooskõlas [[{{MediaWiki:Policy-url}}|siinsete kokkulepetega]].',
 'revdelete-suppress-text' => "Andmed tuleks varjata '''ainult''' järgmistel juhtudel:
 * võimalik laim
@@ -1392,7 +1396,7 @@ Harilikult tähendab see seda, et sind siia juhatanud link on vananenud ja siin
 'search-file-match' => '(vastab faili sisule)',
 'search-suggest' => 'Kas mõtlesid: $1',
 'search-interwiki-caption' => 'Sõsarprojektid',
-'search-interwiki-default' => '$1 tulemused:',
+'search-interwiki-default' => 'Tulemused asukohast $1:',
 'search-interwiki-more' => '(veel)',
 'search-relatedarticle' => 'Seotud',
 'searcheverything-enable' => 'Otsi kõigist nimeruumidest',
@@ -1718,14 +1722,26 @@ See teave on avalik.',
 'recentchanges-label-unpatrolled' => 'Seda muudatust ei ole veel kontrollitud',
 'recentchanges-label-plusminus' => 'Lehekülje suuruse muutus baitides',
 'recentchanges-legend-newpage' => '(vaata ka [[Special:NewPages|uute lehekülgede loendit]])',
-'rcnotefrom' => "Allpool on toodud muudatused alates: '''$2''' (näidatakse kuni '''$1''' muudatust)",
+'rcnotefrom' => 'Allpool on toodud muudatused alates: <strong>$2</strong> (näidatakse kuni <strong>$1</strong> muudatust)',
 'rclistfrom' => 'Näita muudatusi alates: $1',
 'rcshowhideminor' => 'Pisiparandused ($1)',
+'rcshowhideminor-show' => 'näita',
+'rcshowhideminor-hide' => 'peida',
 'rcshowhidebots' => 'Robotid ($1)',
+'rcshowhidebots-show' => 'näita',
+'rcshowhidebots-hide' => 'peida',
 'rcshowhideliu' => 'Registreeritud kasutajad ($1)',
+'rcshowhideliu-show' => 'näita',
+'rcshowhideliu-hide' => 'peida',
 'rcshowhideanons' => 'Anonüümsed kasutajad ($1)',
+'rcshowhideanons-show' => 'näita',
+'rcshowhideanons-hide' => 'peida',
 'rcshowhidepatr' => 'Kontrollitud muudatused ($1)',
+'rcshowhidepatr-show' => 'näita',
+'rcshowhidepatr-hide' => 'peida',
 'rcshowhidemine' => 'Minu parandused ($1)',
+'rcshowhidemine-show' => 'näita',
+'rcshowhidemine-hide' => 'peida',
 'rclinks' => 'Näita viimast $1 muudatust viimase $2 päeva jooksul<br />$3',
 'diff' => 'erin',
 'hist' => 'ajal',
@@ -1855,6 +1871,7 @@ Enne kui jätkad uuesti üleslaadimisega, peaksid paluma olukorda hinnata kellel
 'php-uploaddisabledtext' => 'Failide üleslaadmine on PHP seadetes keelatud.
 Palun vaata <code>file_uploads</code> sätet.',
 'uploadscripted' => 'See fail sisaldab HTML- või skriptikoodi, mida veebilehitseja võib valesti kuvada.',
+'uploadscriptednamespace' => 'See SVG-fail sisaldab keelatud nimeruumi "$1".',
 'uploadinvalidxml' => 'Üleslaaditud failis sisalduvat XMLi ei õnnestunud liigendada.',
 'uploadvirus' => 'Fail sisaldab viirust! Täpsemalt: $1',
 'uploadjava' => 'See fail on ZIP-fail, milles on Java .class-fail.
@@ -2197,7 +2214,7 @@ Igal real on ära toodud esimene ja teine ümbersuunamisleht ning samuti teise 
 'deadendpagestext' => 'Järgmised leheküljed ei viita ühelegi teisele {{GRAMMAR:genitive|{{SITENAME}}}} leheküljele.',
 'protectedpages' => 'Kaitstud leheküljed',
 'protectedpages-indef' => 'Ainult määramata ajani kaitstud',
-'protectedpages-summary' => 'Siin on loetletud olemasolevad leheküljed, mis on praegu kaitstud. Loomise eest kaitstud pealkirjade loendi leiad leheküljelt [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Siin on loetletud olemasolevad leheküljed, mis on praegu kaitstud. Loomise eest kaitstud pealkirjade loendi leiad [[{{#special:ProtectedTitles}}|siit]].',
 'protectedpages-cascade' => 'Ainult kaskaadkaitsega',
 'protectedpages-noredirect' => 'Peida ümbersuunamised',
 'protectedpagesempty' => 'Selliste parameetritega ei ole praegu ühtegi lehekülge kaitstud.',
@@ -2210,7 +2227,7 @@ Igal real on ära toodud esimene ja teine ümbersuunamisleht ning samuti teise 
 'protectedpages-unknown-timestamp' => 'Teadmata',
 'protectedpages-unknown-performer' => 'Teadmata kasutaja',
 'protectedtitles' => 'Kaitstud pealkirjad',
-'protectedtitles-summary' => 'Siin on loetletud pealkirjad, mis on praegu loomise eest kaitstud. Olemasolevate kaitstud lehekülgede loendi leiad leheküljelt [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Siin on loetletud pealkirjad, mis on praegu loomise eest kaitstud. Olemasolevate kaitstud lehekülgede loendi leiad [[{{#special:ProtectedPages}}|siit]].',
 'protectedtitlesempty' => 'Hetkel pole ükski pealkiri kaitstud.',
 'listusers' => 'Kasutajad',
 'listusers-editsonly' => 'Näita vaid kasutajaid, kes on teinud muudatusi',
@@ -2483,7 +2500,7 @@ Palun kinnita, et tahad seda tõepoolest teha, et sa mõistad tagajärgi ja et s
 Selle kustutamine on keelatud, et ära hoida ekslikku {{GRAMMAR:genitive|{{SITENAME}}}} töö häirimist.',
 'delete-warning-toobig' => 'See lehekülg on pika redigeerimislooga – üle {{PLURAL:$1|ühe muudatuse|$1 muudatuse}}.
 Ettevaatust, selle kustutamine võib esile kutsuda häireid {{GRAMMAR:genitive|{{SITENAME}}}} andmebaasi töös.',
-'deleting-backlinks-warning' => "'''Hoiatus:''' Teised leheküljed viitavad leheküljele, mida oled kustutamas, või see lehekülg on kasutuses mallina.",
+'deleting-backlinks-warning' => "'''Hoiatus:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Teised leheküljed]] viitavad leheküljele, mida oled kustutamas, või see lehekülg on kasutuses mallina.",
 
 # Rollback
 'rollback' => 'Tühista muudatused',
@@ -2536,7 +2553,7 @@ Allpool on toodud lehekülje '''$1''' hetkel kehtivad seaded:",
 'protect-locked-access' => "Sinu kontol pole õigust muuta lehekülje kaitsetaset.
 Allpool on toodud lehekülje '''$1''' hetkel kehtivad seaded:",
 'protect-cascadeon' => 'See lehekülg on kaitstud, kuna ta on kasutusel {{PLURAL:$1|järgmisel leheküljel|järgmistel lehekülgedel}}, mis on omakorda kaskaadkaitse all.
-Sa saad muuta selle lehekülje kaitse staatust, kuid see ei mõjuta kaskaadkaitset.',
+Selle lehekülje kaitsetaseme muutmine ei mõjuta kaskaadkaitset.',
 'protect-default' => 'Luba kõigile kasutajatele',
 'protect-fallback' => 'Lubatud vaid kasutajatele õigusega "$1"',
 'protect-level-autoconfirmed' => 'Lubatud vaid automaatselt kinnitatud kasutajatele',
@@ -2661,8 +2678,10 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'See IP-aadress on parajasti blokeeritud.
 Allpool on toodud viimane blokeerimislogi sissekanne:',
 'sp-contributions-search' => 'Kaastöö otsimine',
+'sp-contributions-suppresslog' => 'varjatud kaastöö',
 'sp-contributions-username' => 'IP-aadress või kasutajanimi:',
 'sp-contributions-toponly' => 'Ainult uusimad redaktsioonid',
+'sp-contributions-newonly' => 'Näita ainult uute lehekülgedega alustamist',
 'sp-contributions-submit' => 'Otsi',
 
 # What links here
index 3c786cb..86e99ee 100644 (file)
@@ -291,7 +291,7 @@ $messages = array(
 'vector-action-unprotect' => 'Babesa aldatu',
 'vector-view-create' => 'Sortu',
 'vector-view-edit' => 'Aldatu',
-'vector-view-history' => 'Historia ikusi',
+'vector-view-history' => 'Ikusi historia',
 'vector-view-view' => 'Irakurri',
 'vector-view-viewsource' => 'Kodea ikusia',
 'actions' => 'Ekintzak',
@@ -348,7 +348,7 @@ $messages = array(
 'viewtalkpage' => 'Eztabaida ikusi',
 'otherlanguages' => 'Erdaretan',
 'redirectedfrom' => '($1(e)tik birzuzenduta)',
-'redirectpagesub' => 'Birzuzenketa orrialdea',
+'redirectpagesub' => 'Birbideratze orria',
 'lastmodifiedat' => 'Orrialdearen azken aldaketa: $2, $1.',
 'viewcount' => 'Orrialde hau {{PLURAL:$1|behin|$1 aldiz}} bisitatu da.',
 'protectedpage' => 'Babestutako orrialdea',
@@ -374,7 +374,6 @@ $1',
 'disclaimers' => 'Mugaketak',
 'disclaimerpage' => 'Project:Erantzukizunen mugaketa orokorra',
 'edithelp' => 'Aldaketak egiteko laguntza',
-'helppage' => 'Help:Laguntza',
 'mainpage' => 'Azala',
 'mainpage-description' => 'Azala',
 'policy-url' => 'Project:Politikak',
@@ -573,8 +572,6 @@ Ez ezazu ahaztu zure [[Special:Preferences|{{SITENAME}} hobespenak]] aldatzea.',
 'gotaccountlink' => 'Saioa hasi',
 'userlogin-resetlink' => 'Saioa hasteko datuak ahaztu dituzu?',
 'userlogin-resetpassword-link' => 'Zure pasahitza ahaztu duzu?',
-'helplogin-url' => 'Help:Sarrera',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Barrura sartzeko laguntza]]',
 'userlogin-loggedin' => 'Dagoeneko izena emana zaude {{GENDER:$1|$1}}.
 Beheko formularioa erabil ezazu beste erabiltzaile baten izenean sartzeko.',
 'userlogin-createanother' => 'Beste kontu bat sortu',
@@ -813,7 +810,7 @@ Baliteke orrialdea begiratzen zenuen bitartean norbaitek ezabatu edo izenburua a
 
 ''[[Special:ChangePassword|pasahitz aldaketa]]'' orrialdean alda daiteke, behin barruan sartuta.",
 'newarticle' => '(Berria)',
-'newarticletext' => "Orrialde hau ez da existitzen oraindik. Orrialde sortu nahi baduzu, beheko koadroan idazten hasi zaitezke (ikus [[{{MediaWiki:Helppage}}|laguntza orrialdea]] informazio gehiagorako). Hona nahi gabe etorri bazara, nabigatzaileko '''atzera''' botoian klik egin.",
+'newarticletext' => "Orrialde hau ez da existitzen oraindik. Orrialde sortu nahi baduzu, beheko koadroan idazten hasi zaitezke (ikus [$1 laguntza orrialdea] informazio gehiagorako). Hona nahi gabe etorri bazara, nabigatzaileko '''atzera''' botoian klik egin.",
 'anontalkpagetext' => "----''Orrialde hau konturik sortu ez edo erabiltzen ez duen erabiltzaile anonimo baten eztabaida orria da.
 Bere IP helbidea erabili beharko da beraz identifikatzeko.
 Erabiltzaile batek baino gehiagok IP bera erabil dezakete ordea.
@@ -1043,8 +1040,6 @@ Administratzailea zarenez, diff hau ikus dezakezu. Xehetasunak ikusgai daude [{{
 'revdelete-show-file-submit' => 'Bai',
 'revdelete-selected' => "'''{{PLURAL:$2|[[:$1]](r)en hautatutako berrikuspena:|[[:$1]](r)en hautatutako berrikuspenak}}'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Aukeratutako log gertakaria|Aukeratutako log gertakariak}}:'''",
-'revdelete-text' => "'''Ezabatutako berrikuspenek orrialdearen historian agertzen jarraituko dute, baina bere edukiak ez dira publikoki eskuratu ahal izango.'''
-{{SITENAME}}ko administratzaileek ezkutuko eduki hau ikusteko aukera izango dute, eta baita leheneratzeko ere, gunearen arduradunek beste mugapenen bat ezartzen ez badute behintzat.",
 'revdelete-confirm' => 'Baiezta ezazu hori dela zure asmoa, ulertzen dituzula ondorioak, eta [[{{MediaWiki:Policy-url}}|irizpideak]] errespetatuz egiten ari zarela hau.',
 'revdelete-suppress-text' => "Ezabaketa '''bakarrik''' arrazoi hauek direla eta erabili beharko litzateke:
 * Informazio pertsonal desegokia
@@ -1168,7 +1163,7 @@ Kontura zaitez nabigazio loturek, zutabea ezabatu dezakela.',
 'search-result-size' => '$1 ({{PLURAL:$2|hitz bat|$2 hitz}})',
 'search-result-category-size' => '{{PLURAL:$1|kide 1|$1 kide}} ({{PLURAL:$2|azpikategoria 1|$2 azpikategoria}}, {{PLURAL:$3|fitxategi 1|$3 fitxategi}})',
 'search-result-score' => 'Garrantzia: %$1',
-'search-redirect' => '($1 birzuzenketa)',
+'search-redirect' => '(«$1» orritik birbideratua)',
 'search-section' => '($1 atala)',
 'search-suggest' => '$1 esan nahi zenuen',
 'search-interwiki-caption' => 'Beste proiektuak',
@@ -1369,7 +1364,7 @@ Informazio hau publikoa da.',
 'right-move-subpages' => 'Mugitu orrialdeak bere azpiorrialdeekin',
 'right-move-rootuserpages' => 'Erro-lankidearen orriak mugitu',
 'right-movefile' => 'Mugitu fitxategiak',
-'right-suppressredirect' => 'Ez sortu birzuzenketa bat antzinako izenetik orrialdea mugitzerakoan',
+'right-suppressredirect' => 'Orri bat mugitzean, ez sortu birbideratzea jatorrizko izenetik',
 'right-upload' => 'Fitxategia igo',
 'right-reupload' => 'Jada existitzen den artxibo bat gainidatzi',
 'right-reupload-own' => 'Norberak igotako fitxategi baten gainean idatzi',
@@ -1454,7 +1449,7 @@ Informazio hau publikoa da.',
 'action-writeapi' => 'idazteko APIa erabili',
 'action-delete' => 'orrialde hau ezabatu',
 'action-deleterevision' => 'berrikuspen hau ezabatu',
-'action-deletedhistory' => 'orrialde honetako ezabatutako historia ikusi',
+'action-deletedhistory' => 'ikusi orri honen historia ezabatua',
 'action-browsearchive' => 'ezabatutako orrialdeak bilatu',
 'action-undelete' => 'ezabatutako orrialde hau bergaitu',
 'action-suppressrevision' => 'izkutuko berrikuspen hau berrikusi eta gaitu',
@@ -1647,7 +1642,7 @@ $1',
 'upload-file-error-text' => 'Barne errore bat gertatu da zerbitzarian fitxategi tenporal bat sortzen saiatzean. Mesedez, jar zaitez [[Special:ListUsers/sysop|administratzaile]] batekin harremanetan.',
 'upload-misc-error' => 'Errore ezezaguna igotzerakoan',
 'upload-misc-error-text' => 'Errore ezezagun bat gertatu da fitxategia igotzen ari zenean. Mesedez, egiaztatu URLa baliozkoa eta eskuragarria dela eta berriz saiatu. Arazoak jarraitzen badu, jar zaitez [[Special:ListUsers/sysop|administratzailearekin]] harremanetan.',
-'upload-too-many-redirects' => 'URLak birzuzenketa gehiegi zituen',
+'upload-too-many-redirects' => 'URLak birbideratze gehiegi zituen',
 'upload-unknown-size' => 'Tamaina ezezaguna',
 'upload-http-error' => 'HTTP errorea gertatu da: $1',
 'upload-copy-upload-invalid-domain' => 'Domeinu honetan ezin dira igoerak kopiatu.',
@@ -1776,7 +1771,7 @@ Ondorengo zerrendak fitxategira dauden {{PLURAL:$1|lehen lotura|lehen $1 loturak
 [[Special:WhatLinksHere/$2|Zerrenda osoa]] ere eskuragarri dago.',
 'nolinkstoimage' => 'Ez dago fitxategi honetara lotura egiten duen orrialderik.',
 'morelinkstoimage' => 'Ikusi fitxategi honen [[Special:WhatLinksHere/$1|lotura gehiago]].',
-'linkstoimage-redirect' => '$1 (fitxategi birzuzenketa) $2',
+'linkstoimage-redirect' => '$1 (fitxategiranzko birbideratzea) $2',
 'duplicatesoffile' => 'Ondorengo fitxategi {{PLURAL:$1|hau beste honen berdina da|$1 hauek beste honen berdinak dira}} ([[Special:FileDuplicateSearch/$2|zehaztasun gehiago]]):',
 'sharedupload' => 'Elkarbanatutako fitxategi hau $1-(e)ko igoera bat da eta beste proiektuek ere erabil dezakete.',
 'sharedupload-desc-here' => 'Fitxategi hau $1-(e)koa da eta beste proeiktuetan erabilia izan liteke.
@@ -1845,7 +1840,7 @@ Bere [$2 fitxategiaren deskribapen orrialdea] behean dago.',
 'randomincategory-selectcategory-submit' => 'Joan',
 
 # Random redirect
-'randomredirect' => 'Ausazko birzuzenketa',
+'randomredirect' => 'Ausazko birbideratzea',
 'randomredirect-nopages' => 'Ez dago birzuzenketarik "$1" izen-tartean.',
 
 # Statistics
@@ -1857,7 +1852,7 @@ Bere [$2 fitxategiaren deskribapen orrialdea] behean dago.',
 'statistics-header-hooks' => 'Beste estatistikak',
 'statistics-articles' => 'Edukiak dituzten orrialdeak',
 'statistics-pages' => 'Orrialdeak',
-'statistics-pages-desc' => 'Wikian dauden orrialde guztiak, eztabaida orrialdeak, birzuzenketa, etab. barne.',
+'statistics-pages-desc' => 'Wikian dauden orri guztiak (eztabaida orriak, birbideratzeak eta abar barne).',
 'statistics-files' => 'Igotako fitxategiak',
 'statistics-edits' => '{{SITENAME}} sortu zenetik eginiko aldaketa kopurua',
 'statistics-edits-average' => 'Bataz-besteko aldaketak orrialdeko',
@@ -1874,14 +1869,14 @@ Bere [$2 fitxategiaren deskribapen orrialdea] behean dago.',
 'pageswithprop-submit' => 'Joan',
 'pageswithprop-prophidden-long' => 'testu luzearen ezagaurria izkutatua ($1)',
 
-'doubleredirects' => 'Birzuzenketa bikoitzak',
+'doubleredirects' => 'Birbideratze 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',
-'double-redirect-fixed-maintenance' => 'Birzuzenketa bikoitza konpontzen [[$1]]-etik [[$2]]-ra',
-'double-redirect-fixer' => 'Birzuzenketa zuzentzailea',
+'double-redirect-fixed-move' => '«[[$1]]» orria mugitu da, eta orain «[[$2]]» orrira daraman birbideratzea da',
+'double-redirect-fixed-maintenance' => '«[[$1]]» orritik «[[$2]]» orrira birbideratze bikoitza konpontzea',
+'double-redirect-fixer' => 'Birbideratze zuzentzailea',
 
 'brokenredirects' => 'Hautsitako birzuzenketak',
-'brokenredirectstext' => 'Jarraian zerrendatutako birzuzenketa loturak existitzen ez diren orrietara zuzenduta daude:',
+'brokenredirectstext' => 'Ondorengo birbideratze hauek existitzen ez diren orrietara bideratuta daude:',
 'brokenredirects-edit' => 'aldatu',
 'brokenredirects-delete' => 'ezabatu',
 
@@ -1984,8 +1979,8 @@ Erregistro mota, erabiltzailearen izena edota orrialdearen izena iragaziz bistar
 'alphaindexline' => '$1(e)tik $2(e)raino',
 'nextpage' => 'Hurrengo orrialdea ($1)',
 'prevpage' => 'Aurreko orrialdea ($1)',
-'allpagesfrom' => 'Honela hasten diren orrialdeak erakutsi:',
-'allpagesto' => 'Orrialde honetara zuzentzen diren guztiak erakutsi:',
+'allpagesfrom' => 'Erakutsi hasiera hau duten orriak:',
+'allpagesto' => 'Erakutsi bukaera hau duten orriak:',
 'allarticles' => 'Artikulu guztiak',
 'allinnamespace' => 'Orrialde guztiak ($1 izen-tartea)',
 'allpagessubmit' => 'Joan',
@@ -2385,7 +2380,7 @@ Blokeo erregistroa azken sarrera ematen da azpian erreferentziarako:',
 'linkshere' => "Hauek dute '''[[:$1]]''' orrialderako lotura:",
 'nolinkshere' => "Ez dago '''[[:$1]]''' lotura duen orrialderik.",
 'nolinkshere-ns' => "Hautatutako izen-tartean ez dago '''[[:$1]]''' orrialderako lotura duenik.",
-'isredirect' => 'birzuzenketa orrialdea',
+'isredirect' => 'birbideratze orrialdea',
 'istemplate' => 'erabilpena',
 'isimage' => 'fitxategi lotura',
 'whatlinkshere-prev' => '{{PLURAL:$1|aurrekoa|aurreko $1ak}}',
@@ -2531,24 +2526,18 @@ Hala ere, $2-(r)en parte denez, blokeoa kendu daiteke.',
 # Move page
 'move-page' => 'Mugitu «$1»',
 'move-page-legend' => 'Orrialdea mugitu',
-'movepagetext' => "Konturatu zaitez orrialdea '''ez''' dela mugituko izenburu berria duen orrialde bat badago jadanik, ez bada aldaketa-historiarik gabeko orrialde huts edo birbideratze bat.
-Horrek esan nahi du hanka sartzekotan orrialde baten jatorrizko izenburua berreskuratu daitekeela, baina ezin dela jada existitzen den orrialde baten gainean idatzi.
-
-'''Oharra!'''
-Aldaketa hau drastikoa eta ustekabekoa izan daiteke orrialde oso ezagunetan;
-mesedez, egiazta ezazu honen ondorioak ulertzen dituzula, jarraitu baino lehen.
-Inprimaki hau erabiliz, orri baten izena aldatuko da, eta haren historia izen berrira eraman.
-Izenburu zaharra izenburu berrirantz birzuzendutako orri bihurtuko da.
-Jatorrizko izenburura doazen birzuzenketak automatikoki egunera ditzakezu.
+'movepagetext' => 'Inprimaki hau erabiliz, orri baten izena aldatuko da, eta haren historia izen berrira eramango.
+Izenburu zaharra izenburu berrirantz birbideratutako orri bihurtuko da.
+Jatorrizko izenburura doazen birbideratzeak automatikoki egunera ditzakezu.
 Halako eguneratze automatikorik ez egitea aukeratzen baduzu, egiazta itzazu birbideratze [[Special:DoubleRedirects|bikoitzak]] eta [[Special:BrokenRedirects|apurtuak]].
 Zure ardura da loturak behar den tokirantz bideratzea.
 
-Gogoan izan ezazu ezazu: orriaren izena <strong>ez</strong> da aldatuko baldin jarri nahi duzun izenburua duen orria dagoeneko sortuta badago, salbu eta historiarik gabeko birzuzenketa orri bat bada.
+Gogoan izan ezazu ezazu: orriaren izena <strong>ez</strong> da aldatuko baldin jarri nahi duzun izenburua duen orria dagoeneko sortuta badago, salbu eta historiarik gabeko birbideratze orri bat bada.
 Hau da, nahasten baldin bazara, mugitu duzun orria lehengo izenburura itzultzeko modua badago, eta ezin duzun lehendik sortuta dagoen orri bat gainidatzi.
 
 <strong>Kontuz!</strong>
 Oso erabilia den orri batean, aldaketa hau bat-batekoa eta ustekabekoa izan liteke;
-zalantzarik baldin baduzu, lehenbizi adieraz ezazu zure asmoa eztabaida orrian, beste wikilarien iritziak jasotzeko.",
+zalantzarik baldin baduzu, lehenbizi adieraz ezazu zure asmoa eztabaida orrian, beste wikilarien iritziak jasotzeko.',
 'movepagetalktext' => "Dagokion eztabaida orrialdea berarekin batera mugitu da, honako kasu hauetan '''ezik:'''
 * Hutsik ez dagoen eztabaida orrialde bat existitzen bada izen berrian.
 * Beheko koadroa hautatzen ez baduzu.
@@ -2567,7 +2556,7 @@ Kasu horietan orrialdea eskuz mugitu edo bestearekin bateratu beharko duzu.",
 'pagemovedsub' => 'Mugimendua eginda',
 'movepage-moved' => '\'\'\'"$1" "$2"(e)ra mugitu da\'\'\'',
 'movepage-moved-redirect' => 'Birbideratze orri bat sortu da.',
-'movepage-moved-noredirect' => 'Birzuzenketa baten sorrera kendu da.',
+'movepage-moved-noredirect' => 'Birbideratzea sortzeko aukera kendu da.',
 'articleexists' => 'Izen hori duen artikulu bat badago edo hautatutako izena ez da baliozkoa. Mesedez, beste izen bat aukeratu.',
 'cantmove-titleprotected' => 'Ezin duzu orrialde bat leku honetara mugitu izenburu berri hori sor ez dadin babesa duelako',
 'movetalk' => 'Eztabaida orrialdea ere mugitu, ahal bada.',
@@ -2599,8 +2588,8 @@ Kasu horietan orrialdea eskuz mugitu edo bestearekin bateratu beharko duzu.",
 'imagenocrossnamespace' => 'Ezin da mugitu fitxategia fitxategiena ez den izen batera',
 'imagetypemismatch' => 'Fitxategiaren luzapen berriak ez du bere motako fitxategiekin bat egiten',
 'imageinvalidfilename' => 'Xede-artxiboaren izenak ez du balio',
-'fix-double-redirects' => 'Hasierako izenburura zuzentzen duten birzuzenketa guztiak aldatu',
-'move-leave-redirect' => 'Atzean birzuzenketa bat utzi',
+'fix-double-redirects' => 'Eguneratu jatorrizko izenburura zuzendutako birbideratze guztiak',
+'move-leave-redirect' => 'Utzi atzean birbideratzea',
 'protectedpagemovewarning' => "'''Oharra:''' Orrialde hau babestua izan da, beraz administratzaile eskumenak dituztenek alda dezakete bakarrik.
 Azken erregistroko sarrera ematen da azpian erreferentzia gisa:",
 'semiprotectedpagemovewarning' => "'''Oharra:''' Orrialde hau blokeatu dute, izena emanda duten erabiltzaileek soilik mugitu ahal dezaten. Erregistroko azken sarrera erakusten da jarraian erreferentzia gisa:",
@@ -3701,7 +3690,7 @@ Halaber [[Special:EditWatchlist|aldatzaile estandarra]] erabil dezakezu.',
 '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:$2|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-move-move_redir-noredirect' => '$1 {{GENDER:wikilariak}} «$3» orria «$4» izenera aldatu du, birbideratze bat gainidatzita, birbideratzerik 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',
index 8a40873..05663d4 100644 (file)
@@ -230,7 +230,6 @@ $messages = array(
 'disclaimers' => 'Avissu legal',
 'disclaimerpage' => 'Project:Arrayu heneral de responsabiliá',
 'edithelp' => "Ayua d'eición",
-'helppage' => 'Help:Continius',
 'mainpage' => 'Página prencipal',
 'mainpage-description' => 'Páhina prencipal',
 'policy-url' => 'Project:Pulítica',
@@ -515,7 +514,7 @@ Es possibri escambial la consínia de la cuenta entrandu ena tu cuenta, ena pág
 'newarticle' => '(Nuevu)',
 'newarticletext' => "Esti artículu entovia nu desisti.
 Si quieis crial esti artículu, escribi nel cuairu d'embahu
-(si t'es mestel, mira la [[{{MediaWiki:Helppage}}|páhina d'ayua]]).
+(si t'es mestel, mira la [\$1 páhina d'ayua]).
 Si nu quieis crial esti artículu, solu tiinis que pursal nel botón \"'''atrás'''\" del tu escrucaol.",
 'anontalkpagetext' => "----''Esta es la caraba dun usuáriu anónimu qu'entovia nu á criau una cuenta, u nu la gasta, asínque tenemus que usal la su direción IP pa ientificalu. Una mesma direción IP puei sel gastá pol varius usuárius, polo que si creis que s'án derihiu a tí con cosas que nu vinin a cuentu, pol favol [[Special:UserLogin|cria una cuenta]] pa evital huturus pobremas con otrus usuárius anónimus.''",
 'noarticletext' => 'Entovia nu ai dengún testu escrebiu nesta páhina.
@@ -665,9 +664,6 @@ puei bel detallis nel [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}
 'revdelete-show-file-submit' => 'Sí',
 'revdelete-selected' => "'''{{PLURAL:$2|Revisión aseñalá e|Revisionis aseñalás de}} '''[[:$1]]''':'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Eventu el rustrihu aseñalau|Eventus del rustrihu aseñalaus}}:'''",
-'revdelete-text' => "'''Las revisionis esborrás entovia apaicirán nel estorial la páhina, peru el su continiu nu sedrá acesibri pal púbricu.'''
-
-El restu e çahorilis desti güiqui sí tendrán premisu pa visoreal el continiu açonchau, i revertil el esborrau si es mestel, a nu sel que los alministraoris del güiqui crein una restrición aicional.",
 'revdelete-legend' => 'Establecel restricionis de visibiliá',
 'revdelete-hide-text' => 'Açonchal el testu la revisión',
 'revdelete-hide-image' => 'Açonchal el continiu el archivu',
index a4bce8e..887dc3a 100644 (file)
@@ -15,6 +15,7 @@
  * @author Asoxor
  * @author Baqeri
  * @author Behdarvandyani
+ * @author Calak
  * @author Dalba
  * @author E THP
  * @author Ebraminio
@@ -454,7 +455,7 @@ $imageFiles = array(
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'پیوند خط کشی شده در زیر:',
+'tog-underline' => 'خط کشیدن زیر پیوندها:',
 'tog-hideminor' => 'تغییرات جزئی از فهرست تغییرات اخیر پنهان شوند',
 'tog-hidepatrolled' => 'ویرایش‌های گشت‌خورده از فهرست تغییرات اخیر پنهان شوند',
 'tog-newpageshidepatrolled' => 'صفحه‌های گشت‌خورده از فهرست صفحه‌های تازه پنهان شوند',
@@ -490,7 +491,6 @@ $messages = array(
 'tog-ccmeonemails' => 'رونوشتی از نامه‌ای که به دیگران ارسال می‌کنم برای خودم هم فرستاده شود',
 'tog-diffonly' => 'محتوای صفحه، زیر تفاوت نمایش داده نشود',
 'tog-showhiddencats' => 'رده‌های پنهان نمایش داده شود',
-'tog-noconvertlink' => 'تبدیل عنوان پیوند غیرفعال شود',
 'tog-norollbackdiff' => 'بعد از واگردانی تفاوت نشان داده نشود',
 'tog-useeditwarning' => 'زمان خروج از صفحهٔ ویرایش در صورت داشتن ویرایش‌های‌ ذخیره‌نشده به من هشدار داده شود',
 'tog-prefershttps' => 'در حالت ورود به سامانه همواره از اتصال امن استفاده شود',
@@ -702,7 +702,6 @@ $1',
 'disclaimers' => 'تکذیب‌نامه‌ها',
 'disclaimerpage' => 'Project:تکذیب‌نامهٔ عمومی',
 'edithelp' => 'راهنمای ویرایش‌کردن',
-'helppage' => 'Help:محتوا',
 'mainpage' => 'صفحهٔ اصلی',
 'mainpage-description' => 'صفحهٔ اصلی',
 'policy-url' => 'Project:سیاست‌ها',
@@ -906,9 +905,7 @@ $2',
 'gotaccountlink' => 'به سامانه وارد شوید',
 'userlogin-resetlink' => 'جزئیات ورود را فراموش کرده‌اید؟',
 'userlogin-resetpassword-link' => 'گذرواژه‌تان را فراموش کردید؟',
-'helplogin-url' => 'Help:ورود به سامانه',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|راهنمای ورود به سامانه]]',
-'userlogin-loggedin' => 'شما در حال حاضر به‌عنوان {{GENDER:$1|$1}} وارد سیستم شده‌اید.
+'userlogin-loggedin' => 'شما در حال حاضر به‌عنوان {{GENDER:$1|$1}} وارد شده‌اید.
 از فرم پایین برای ورود به‌عنوان یک کاربر دیگر استفاده کنید.',
 'userlogin-createanother' => 'ایجاد یک حساب کاربری دیگر',
 'createacct-join' => 'اطلاعاتتان را در زیر وارد کنید',
@@ -917,7 +914,7 @@ $2',
 'createacct-emailoptional' => 'نشانی رایانامه (اختیاری)',
 'createacct-email-ph' => 'نشانی رایانامه را وارد کنید',
 'createacct-another-email-ph' => 'نشانی رایانامه را وارد کنید',
-'createaccountmail' => 'استÙ\81ادÙ\87 Ø§Ø² Ø±Ù\85ز Ø¹Ø¨Ù\88ر Ù\85Ù\88Ù\82ت ØªØµØ§Ø¯Ù\81Û\8c Ù\88 Ù\81رستادÙ\86 Ø¢Ù\86 Ø¨Ù\87 Ù\86شاÙ\86Û\8c Ø§Û\8cÙ\85Û\8cÙ\84 مشخص‌شده',
+'createaccountmail' => 'استÙ\81ادÙ\87 Ø§Ø² Ø±Ù\85ز Ø¹Ø¨Ù\88ر Ù\85Ù\88Ù\82ت ØªØµØ§Ø¯Ù\81Û\8c Ù\88 Ù\81رستادÙ\86 Ø¢Ù\86 Ø¨Ù\87 Ù\86شاÙ\86Û\8c Ø±Ø§Û\8cاÙ\86اÙ\85Ù\87 مشخص‌شده',
 'createacct-realname' => 'نام واقعی (اختیاری)',
 'createaccountreason' => 'دلیل:',
 'createacct-reason' => 'دلیل',
@@ -1001,12 +998,13 @@ $2',
 'usernamehasherror' => 'نام کاربری نمی‌تواند شامل نویسه‌های درهم باشد',
 'login-throttled' => 'شما به تازگی چندین‌بار برای ثبت ورود تلاش کرده‌اید.
 لطفاً پیش از آنکه دوباره تلاش کنید $1 صبر کنید.',
-'login-abort-generic' => 'ورود شما به سیستم ناموفق بود - خاتمهٔ ناگهانی داده شد',
+'login-abort-generic' => 'ورود شما ناموفق بود - خاتمهٔ ناگهانی داده شد',
 'loginlanguagelabel' => 'زبان: $1',
 'suspicious-userlogout' => 'درخواست شما برای خروج از سامانه رد شد زیرا به نظر می‌رسد که این درخواست توسط یک مرورگر معیوب یا پروکسی میانگیر ارسال شده باشد.',
 'createacct-another-realname-tip' => 'نام واقعی اختیاری است.
 اگر آن را وارد کنید هنگام ارجاع به آثارتان و انتساب آن‌ها به شما از نام واقعی‌تان استفاده خواهد شد.',
-'pt-login' => 'ورود به سامانه',
+'pt-login' => 'ورود',
+'pt-login-button' => 'ورود به سامانه',
 'pt-createaccount' => 'ایجاد حساب کاربری',
 'pt-userlogout' => 'خروج',
 
@@ -1017,7 +1015,7 @@ $2',
 
 # Change password dialog
 'changepassword' => 'تغییر گذرواژه',
-'resetpass_announce' => 'شما باید برای پایان ورود به سیستم،رمز عبور جدیدی را تنظیم کنید.',
+'resetpass_announce' => 'شما باید برای پایان ورود به سامانه، گذرواژهٔ جدیدی را تنظیم کنید.',
 'resetpass_text' => '<!-- اینجا متن اضافه کنید -->',
 'resetpass_header' => 'تغییر گذرواژهٔ حساب کاربری',
 'oldpassword' => 'گذرواژهٔ پیشین:',
@@ -1039,7 +1037,7 @@ $2',
 'resetpass-temp-password' => 'گذرواژهٔ موقت:',
 'resetpass-abort-generic' => 'تغییر گذرواژه به دست یکی از افزونه‌ها لغو شده است.',
 'resetpass-expired' => 'رمز عبور شما منقضی شده‌است. لطفاً برای ورود رمز عبور جدیدی را تنظیم کنید.',
-'resetpass-expired-soft' => 'رمز عبور شما منقضی شده‌است، و نیاز به تنظیم مجدد دارد. لطفاً اکنون رمز عبور جدیدی را انتخاب کنید، یا برای تنظیم مجدد آن بعدآً، دکمهٔ لغو را کلیک کنید.',
+'resetpass-expired-soft' => 'رمز عبور شما منقضی شده‌است، و نیاز به تنظیم مجدد دارد. لطفاً اکنون رمز عبور جدیدی را انتخاب کنید، یا برای تنظیم مجدد آن بعدآً، دکمه "{{int:resetpass-submit-cancel}}" را کلیک کنید.',
 
 # Special:PasswordReset
 'passwordreset' => 'بازنشانی گذرواژه',
@@ -1178,7 +1176,7 @@ $2
 'accmailtext' => "یک گذرواژهٔ تصادفی برای [[User talk:$1|$1]] به $2 فرستاده شد. می‌توان آن را از صفحهٔ ''[[Special:ChangePassword|تغییر گذرواژه]]'' که هنگام ثبت ورود نمایش می‌یابد تغییر داد.",
 'newarticle' => '(جدید)',
 'newarticletext' => 'شما پیوندی را دنبال کرده‌اید و به صفحه‌ای رسیده‌اید که هنوز وجود ندارد.
-برای ایجاد صفحه، در مستطیل زیر شروع به نوشتن کنید (برای اطلاعات بیشتر به [[{{MediaWiki:Helppage}}|صفحهٔ راهنما]] مراجعه کنید).
+برای ایجاد صفحه، در مستطیل زیر شروع به نوشتن کنید (برای اطلاعات بیشتر به [$1 صفحهٔ راهنما] مراجعه کنید).
 اگر به اشتباه اینجا آمده‌اید، دکمهٔ «بازگشت» مرورگرتان را بزنید.',
 'anontalkpagetext' => "----''این صفحهٔ بحث برای کاربر گمنامی است که هنوز حسابی درست نکرده است یا از آن استفاده نمی‌کند.
 بنا بر این برای شناسایی‌اش مجبوریم از نشانی آی‌پی عددی استفاده کنیم.
@@ -1205,8 +1203,8 @@ $2
 *'''گوگل کروم:'''کلیدهای ''Ctrl+Shift+R'' را با هم فشار دهید. (در رایانه‌های اپل مکینتاش کلید‌های ''⌘-Shift-R'')
 *'''اینترنت اکسپلورر:''' کلید ''Ctrl'' را نگه‌دارید و روی دکمهٔ ''Refresh'' کلیک کنید، یا کلید‌های ''Ctrl-F5'' را با هم فشار دهید
 *'''اپرا:''' حافظهٔ نهانی مرورگر را از طریق منوی ''Tools &rarr; Preferences'' پاک کنید",
-'usercssyoucanpreview' => "'''Ù\86کتÙ\87:''' Ù¾Û\8cØ´ Ø§Ø² Ø°Ø®Û\8cرÙ\87â\80\8cکردÙ\86 Ù\81اÛ\8cÙ\84 سی‌اس‌اس خود، با دکمهٔ '''{{int:showpreview}}''' آن را آزمایش کنید.",
-'userjsyoucanpreview' => "'''Ù\86کتÙ\87:''' Ù¾Û\8cØ´ Ø§Ø² Ø°Ø®Û\8cرÙ\87â\80\8cکردÙ\86 Ù\81اÛ\8cÙ\84 جاوااسکریپت خود، با دکمهٔ '''{{int:showpreview}}''' آن را آزمایش کنید.",
+'usercssyoucanpreview' => "'''Ù\86کتÙ\87:''' Ù¾Û\8cØ´ Ø§Ø² Ø°Ø®Û\8cرÙ\87â\80\8cکردÙ\86 Ù¾Ø±Ù\88Ù\86دÙ\87 سی‌اس‌اس خود، با دکمهٔ '''{{int:showpreview}}''' آن را آزمایش کنید.",
+'userjsyoucanpreview' => "'''Ù\86کتÙ\87:''' Ù¾Û\8cØ´ Ø§Ø² Ø°Ø®Û\8cرÙ\87â\80\8cکردÙ\86 Ù¾Ø±Ù\88Ù\86دÙ\87Ù\94 جاوااسکریپت خود، با دکمهٔ '''{{int:showpreview}}''' آن را آزمایش کنید.",
 'usercsspreview' => "'''فراموش مکنید که شما فقط دارید پیش‌نمایش سی‌اس‌اس کاربری‌تان را می‌بینید.'''
 '''این سی‌اس‌اس هنوز ذخیره نشده‌است!'''",
 'userjspreview' => "'''به یاد داشته باشید که شما فقط دارید جاوااسکریپت کاربری‌تان را امتحان می‌کنید/پیش‌نمایش آن را می‌بینید.'''
@@ -1226,7 +1224,7 @@ $2
 'session_fail_preview' => "'''شرمنده! به علت از دست رفتن اطلاعات نشست کاربری نمی‌توانیم ویرایش شما را پردازش کنیم.'''
 لطفاً دوباره سعی کنید.
 اگر دوباره به همین پیام برخوردید از سامانه [[Special:UserLogout|خارج شوید]] و دوباره وارد شوید.",
-'session_fail_preview_html' => "'''Ù\85تاسفانه امکان ثبت ویرایش شما به خاطر از دست رفتن اطلاعات نشست کاربری وجود ندارد.'''
+'session_fail_preview_html' => "'''Ù\85تأسفانه امکان ثبت ویرایش شما به خاطر از دست رفتن اطلاعات نشست کاربری وجود ندارد.'''
 
 ''با توجه به این که در {{SITENAME}} امکان درج اچ‌تی‌ام‌ال خام فعال است، پیش‌نمایش صفحه پنهان شده تا امکان حملات مبتنی بر جاوااسکریپت وجود نداشته باشد.''
 
@@ -1309,8 +1307,8 @@ $2
 'content-failed-to-parse' => 'عدم موفقیت در تجزیه محتوای $2 برای مدل $1: $3',
 'invalid-content-data' => 'داده محتوای نامعتبر',
 'content-not-allowed-here' => 'محتوای «$1» در صفحهٔ [[$2]] مجاز نیست',
-'editwarning-warning' => 'خروج از این صفحه ممکن است باعث شود که شما هر شانسی که به وجود آورده اید را از دست بدهید.
-اگر شما وارد سیستم شده‌اید، می‌توانید این هشدار را در بخش «در حال ویرایش» ترجیحاتتان غیرفعال کنید.',
+'editwarning-warning' => 'خروج از این صفحه ممکن است باعث شود که شما هر شانسی که به وجود آوردهاید را از دست بدهید.
+اگر شما وارد سامانه شده‌اید، می‌توانید این هشدار را در بخش «{{int:prefs-editing}}» ترجیحاتتان غیرفعال کنید.',
 'editpage-notsupportedcontentformat-title' => 'فرمت محتوا پشتیبانی نشده',
 'editpage-notsupportedcontentformat-text' => 'فرمت محتوای $1 توسط مدل محتوای $2 پشتیبانی نشده‌است.',
 
@@ -1431,8 +1429,6 @@ $2
 'revdelete-show-file-submit' => 'بله',
 'revdelete-selected' => "'''{{PLURAL:$2|نسخهٔ|نسخه‌های}} انتخاب شده از [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|مورد|موارد}} انتخاب شده از سیاهه:'''",
-'revdelete-text' => "'''نسخه‌ها و موارد حذف شده کماکان از طریق تاریخچهٔ صفحه و سیاهه‌ها قابل مشاهده هستند، اما بخش‌هایی از محتوای آن‌ها توسط عموم قابل مشاهده نخواهد بود.'''
-سایر مدیران {{SITENAME}} هنوز می‌توانند این محتوای پنهان را ببینند و از همین طریق موارد حذف شده را احیا کنند، مگر آن که محدودیت‌های دیگری اعمال گردد.",
 'revdelete-confirm' => 'لطفاً تأیید کنید که می‌خواهید این کار را انجام دهید، عواقب آن را درک می‌کنید و این کار را طبق [[{{MediaWiki:Policy-url}}|سیاست‌ها]] انجام می‌دهید.',
 'revdelete-suppress-text' => "فرونشانی باید '''تنها''' برای موارد زیر استفاده شود:
 * اطلاعات به طور بالقوه افتراآمیز
@@ -1462,11 +1458,11 @@ $1",
 'pagehist' => 'تاریخچهٔ صفحه',
 'deletedhist' => 'تاریخچهٔ حذف‌شده',
 'revdelete-hide-current' => 'خطا در پنهان‌کردن مورد مورخ $2 ساعت $1: این نسخه، نسخهٔ اخیر است و قابل پنهان‌کردن نیست.',
-'revdelete-show-no-access' => 'خطا در پنهان کردن مورد مورخ $2 ساعت $1: این نسخه علامت «محدودیت» دارد و شما به آن دسترسی ندارید.',
-'revdelete-modify-no-access' => 'خطا در پنهان کردن مورد مورخ $2 ساعت $1: این نسخه علامت «محدودیت» دارد و شما به آن دسترسی ندارید.',
-'revdelete-modify-missing' => 'خطا در پنهان کردن مورد شمارهٔ $1: این نسخه در پایگاه داده وجود ندارد!',
+'revdelete-show-no-access' => 'خطا در پنهانکردن مورد مورخ $2 ساعت $1: این نسخه علامت «محدودیت» دارد و شما به آن دسترسی ندارید.',
+'revdelete-modify-no-access' => 'خطا در پنهانکردن مورد مورخ $2 ساعت $1: این نسخه علامت «محدودیت» دارد و شما به آن دسترسی ندارید.',
+'revdelete-modify-missing' => 'خطا در پنهانکردن مورد شمارهٔ $1: این نسخه در پایگاه داده وجود ندارد!',
 'revdelete-no-change' => "'''هشدار:''' مورد مورخ $2 ساعت $1 از قبل تنظیمات پیدایی درخواست شده را دارا بود.",
-'revdelete-concurrent-change' => 'خطا در پنهان کردن مورد مورخ $2 ساعت $1: به نظر می‌رسد که در مدتی که شما برای تغییر وضعیت آن تلاش می‌کردید وضعیت آن توسط فرد دیگری تغییر یافته است.
+'revdelete-concurrent-change' => 'خطا در پنهانکردن مورد مورخ $2 ساعت $1: به نظر می‌رسد که در مدتی که شما برای تغییر وضعیت آن تلاش می‌کردید وضعیت آن توسط فرد دیگری تغییر یافته است.
 لطفاً سیاهه‌ها را بررسی کنید.',
 'revdelete-only-restricted' => 'خطا در پنهان کردن مورد مورخ $2 ساعت $1: شما نمی‌توانید موارد را از دید مدیران پنهان کنید مگر آن که یکی دیگر از گزینه‌های پنهان‌سازی را نیز انتخاب کنید.',
 'revdelete-reason-dropdown' => '*دلایل متداول حذف
@@ -1566,7 +1562,7 @@ $1",
 'search-file-match' => '(تشابه محتوی پرونده)',
 'search-suggest' => 'آیا منظورتان این بود: $1',
 'search-interwiki-caption' => 'پروژه‌های خواهر',
-'search-interwiki-default' => '$1 نتیجه:',
+'search-interwiki-default' => 'نتایج از $1 :',
 'search-interwiki-more' => '(بیشتر)',
 'search-relatedarticle' => 'مرتبط',
 'searcheverything-enable' => 'جستجو در تمام فضاهای نام',
@@ -1738,7 +1734,7 @@ $1",
 # Groups
 'group' => 'گروه:',
 'group-user' => 'کاربران',
-'group-autoconfirmed' => 'کاربراÙ\86 ØªØ§ییدشده',
+'group-autoconfirmed' => 'کاربراÙ\86 ØªØ£ییدشده',
 'group-bot' => 'ربات‌ها',
 'group-sysop' => 'مدیران',
 'group-bureaucrat' => 'دیوان‌سالاران',
@@ -1746,7 +1742,7 @@ $1",
 'group-all' => '(همه)',
 
 'group-user-member' => '{{GENDER:$1|کاربر}}',
-'group-autoconfirmed-member' => '{{GENDER:$1|کاربر ØªØ§ییدشده}}',
+'group-autoconfirmed-member' => '{{GENDER:$1|کاربر ØªØ£ییدشده}}',
 'group-bot-member' => 'ربات',
 'group-sysop-member' => '{{GENDER:$1|مدیر}}',
 'group-bureaucrat-member' => '{{GENDER:$1|دیوانسالار}}',
@@ -1794,7 +1790,7 @@ $1",
 'right-suppressionlog' => 'مشاهدهٔ سیاهه‌های خصوصی',
 'right-block' => 'قطع دسترسی ویرایشی دیگر کاربران',
 'right-blockemail' => 'قطع دسترسی دیگر کاربران برای ارسال رایانامه',
-'right-hideuser' => 'قطع دسترسی کاربر و پنهان کردن آن از دید عموم',
+'right-hideuser' => 'قطع دسترسی کاربر و پنهانکردن آن از دید عموم',
 'right-ipblock-exempt' => 'تاثیر نپذیرفتن از قطع دسترسی‌های آی‌پی، خودکار یا فاصله‌ای',
 'right-proxyunbannable' => 'تاثیر نپذیرفتن از قطع دسترسی خودکار پروکسی‌ها',
 'right-unblockself' => 'بازکردن دسترسی خود',
@@ -1895,26 +1891,26 @@ $1",
 'recentchanges-legend-heading' => "'''اختصارها:'''",
 'recentchanges-legend-newpage' => '(همچنین به [[Special:NewPages|فهرست صفحات جدید]] نگاه کنید)',
 'recentchanges-legend-plusminus' => "('' ±۱۲۳'')",
-'rcnotefrom' => 'در زیر تغییرات از تاریخ <b>$2</b> آمده‌اند (تا <b>$1</b> مورد نشان داده می‌شود).',
+'rcnotefrom' => 'در زیر تغییرات از <strong>$2</strong> (تا <strong>$1</strong> نشان داده شده‌است).',
 'rclistfrom' => 'نمایش تغییرات جدید با شروع از $1',
 'rcshowhideminor' => '$1 ویرایش‌های جزئی',
 'rcshowhideminor-show' => 'نمایش',
 'rcshowhideminor-hide' => 'پنهان‌ کردن',
 'rcshowhidebots' => '$1 ربات‌ها',
 'rcshowhidebots-show' => 'نمایش',
-'rcshowhidebots-hide' => 'پنهان کردن',
-'rcshowhideliu' => 'کاربران نسخهٔ $1 ثبت‌نام‌ کردند',
+'rcshowhidebots-hide' => 'پنهانکردن',
+'rcshowhideliu' => '$1 کاربران ثبت‌نام‌کردە',
 'rcshowhideliu-show' => 'نمایش',
-'rcshowhideliu-hide' => 'پنهان کردن',
+'rcshowhideliu-hide' => 'پنهانکردن',
 'rcshowhideanons' => '$1 کاربران ناشناس',
 'rcshowhideanons-show' => 'نمایش',
-'rcshowhideanons-hide' => 'پنهان کردن',
+'rcshowhideanons-hide' => 'پنهانکردن',
 'rcshowhidepatr' => '$1 ویرایش‌های گشت‌خورده',
 'rcshowhidepatr-show' => 'نمایش',
-'rcshowhidepatr-hide' => 'پنهان کردن',
+'rcshowhidepatr-hide' => 'پنهانکردن',
 'rcshowhidemine' => '$1 ویرایش‌های من',
 'rcshowhidemine-show' => 'نمایش',
-'rcshowhidemine-hide' => 'پنهان کردن',
+'rcshowhidemine-hide' => 'پنهانکردن',
 'rclinks' => 'نمایش آخرین $1 تغییر در $2 روز اخیر<br />$3',
 'diff' => 'تفاوت',
 'hist' => 'تاریخچه',
@@ -2035,8 +2031,8 @@ $1",
 'file-exists-duplicate' => 'به نظر می‌رسد این پرونده نسخه‌ای تکراری از {{PLURAL:$1|پروندهٔ|پرونده‌های}} زیر باشد:',
 'file-deleted-duplicate' => 'یک پرونده نظیر این پرونده ([[:$1]]) قبلاً حذف شده‌است.
 شما باید تاریخچهٔ حذف آن پرونده را قبل از بارگذاری مجدد آن ببینید.',
-'file-deleted-duplicate-notitle' => 'یک پرونده یکسان بااین پرونده قبلا حذف شده است و عنوان متوقف شده‌است.
-Ø´Ù\85ا Ø¨Ø§Û\8cد Ø§Ø² Ú©Ø³Û\8c Ú©Ù\87 Ø¯Ø³ØªØ±Ø³Û\8c Ù\85شاÙ\87دÙ\87Ù\94 Ù\81اÛ\8cÙ\84 متوقف شده را دارد، درخواست کنید تا شرایط را قبل از بارگذاری مجدد بررسی کند.',
+'file-deleted-duplicate-notitle' => 'یک پرونده یکسان بااین پرونده قبلاً حذف شده است و عنوان متوقف شده‌است.
+Ø´Ù\85ا Ø¨Ø§Û\8cد Ø§Ø² Ú©Ø³Û\8c Ú©Ù\87 Ø¯Ø³ØªØ±Ø³Û\8c Ù\85شاÙ\87دÙ\87Ù\94 Ù¾Ø±Ù\88Ù\86دÙ\87 متوقف شده را دارد، درخواست کنید تا شرایط را قبل از بارگذاری مجدد بررسی کند.',
 'uploadwarning' => 'هشدار بارگذاری',
 'uploadwarning-text' => 'لطفاً توضیحات پرونده را در زیر تغییر دهید و دوباره تلاش کنید.',
 'savefile' => 'ذخیرهٔ پرونده',
@@ -2253,7 +2249,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization را ببینید.',
 'shared-repo-from' => 'از $1',
 'shared-repo' => 'یک مخزن مشترک',
 'shared-repo-name-wikimediacommons' => 'ویکی‌انبار',
-'upload-disallowed-here' => 'Ù\85تاسÙ\81اÙ\86Ù\87 Ø´Ù\85ا Ù\86Ù\85Û\8c توانید این پرونده را بازنویس کنید.',
+'upload-disallowed-here' => 'Ù\85تأسÙ\81اÙ\86Ù\87 Ø´Ù\85ا Ù\86Ù\85Û\8câ\80\8cتوانید این پرونده را بازنویس کنید.',
 
 # File reversion
 'filerevert' => 'واگردانی $1',
@@ -2412,7 +2408,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization را ببینید.',
 'deadendpagestext' => 'صفحه‌های زیر به هیچ صفحهٔ دیگری در {{SITENAME}} پیوند ندارند.',
 'protectedpages' => 'صفحه‌های محافظت‌شده',
 'protectedpages-indef' => 'فقط محافظت‌های بی‌پایان',
-'protectedpages-summary' => 'در این صفحه فهرست صفحات موجود است که در حال حاضر محافظت شده اند. برای فهرست عنوان‌هایی که از ایجاد محافظت شده‌اند، به [[{{#special:ProtectedTitles}}]] مراجعه کنید.',
+'protectedpages-summary' => 'در این صفحه فهرست صفحات موجود است که در حال حاضر محافظت شده اند. برای فهرست عنوان‌هایی که از ایجاد محافظت شده‌اند، به [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]] مراجعه کنید.',
 'protectedpages-cascade' => 'فقط محافظت‌های آبشاری',
 'protectedpages-noredirect' => 'پنهان‌کردن تغییر مسیرها',
 'protectedpagesempty' => 'در حال حاضر هیچ‌صفحه‌ای محافظت نشده‌است.',
@@ -2425,7 +2421,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization را ببینید.',
 'protectedpages-unknown-timestamp' => 'ناشناس',
 'protectedpages-unknown-performer' => 'کاربر ناشناس',
 'protectedtitles' => 'عنوان‌های محافظت‌شده',
-'protectedtitles-summary' => 'این صفحه فهرست صفحات موجود است که در حال حاضر محافظت از ساخت شده‌اند. برای فهرست عنوان‌هایی که محافظت از ویرایش شده‌اند، به [[{{#special:ProtectedPages}}]] مراجعه کنید.',
+'protectedtitles-summary' => 'این صفحه فهرست صفحات موجود است که در حال حاضر محافظت از ساخت شده‌اند. برای فهرست عنوان‌هایی که محافظت از ویرایش شده‌اند، به [[{{#special:ProtectedPages}}|{{int:protectedpages}}]] مراجعه کنید.',
 'protectedtitlesempty' => 'در حال حاضر هیچ عنوانی با این پارامترها محافظت نشده‌است.',
 'listusers' => 'فهرست کاربران',
 'listusers-editsonly' => 'فقط کاربرانی که ویرایش دارند را نشان بده',
@@ -2647,7 +2643,7 @@ $PAGEINTRO $NEWPAGE
 نامه: $PAGEEDITOR_EMAIL
 ویکی: $PAGEEDITOR_WIKI
 
-تا هنگامی که به صفحه سر نزده‌اید، در صورت رخ‌دادنِ احتمالیِ فعالیت بیشتر، تا زمانی که در با کاربریتان در سیستم هستید، اعلانیه‌ای برای شما فرستاده نخواهد شد.
+تا هنگامی که به صفحه سر نزده‌اید، در صورت رخ‌دادنِ احتمالیِ فعالیت بیشتر، تا زمانی که در با کاربریتان در سامانه هستید، اعلانیه‌ای برای شما فرستاده نخواهد شد.
 شما همچنین می‌توانید در صفحهٔ پی‌گیری‌های خود پرچم‌های مربوط به آگاهی‌رسانی را صفر کنید همچنین می‌توانید پرچم‌های آگاهی‌سازی را بازنشانی کنید.
 
 دوستدار شما، سامانهٔ آگاهی‌رسانی {{SITENAME}}
@@ -2700,7 +2696,7 @@ $PAGEINTRO $NEWPAGE
 'delete-warning-toobig' => 'این صفحه تاریخچهٔ ویرایشی بزرگی دارد، که شامل بیش از $1 {{PLURAL:$1|نسخه|نسخه}} است.
 حذف آن ممکن است که عملکرد پایگاه دادهٔ {{SITENAME}} را مختل کند;
 با احتیاط ادامه دهید.',
-'deleting-backlinks-warning' => "''' هشدار:''' صفحات دیگر پیوند یا تراگنجایش به صفحه شما  برای حذف هستند.",
+'deleting-backlinks-warning' => "''' هشدار:''' پیوند [[Special:WhatLinksHere/{{FULLPAGENAME}}|صفحات دیگر]] یا تراگنجایش صفحهٔ شما برای حذف.",
 
 # Rollback
 'rollback' => 'واگردانی ویرایش‌ها',
@@ -2882,6 +2878,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'این نشانی آی‌پی در حال حاضر بسته است.
 آخرین سیاههٔ بسته شدن در زیر آمده‌است:',
 'sp-contributions-search' => 'جستجوی مشارکت‌ها',
+'sp-contributions-suppresslog' => 'کمک‌های کاربر متوقف شده',
 'sp-contributions-username' => 'نشانی آی‌پی یا نام کاربری:',
 'sp-contributions-toponly' => 'فقط ویرایش‌هایی که آخرین نسخه‌اند نمایش داده شود',
 'sp-contributions-newonly' => 'فقط نمایش ویرایش‌هایی که تولید‌های صفحه هستند',
@@ -3026,7 +3023,7 @@ $1',
 'sorbs_create_account_reason' => 'نشانی آی‌پی شما توسط DNSBL مورد استفاده {{SITENAME}} به عنوان یک پروکسی باز گزارش شده‌است.
 شما اجازهٔ ساختن حساب کاربری ندارید.',
 'xffblockreason' => 'نشانی آی‌پی در X-Forwarded-For header موجود است و پروکسی شما یا سروری که از آن استفاده می‌کنید بسته‌شده‌است. دلیل بسته‌شدن: $1',
-'cant-see-hidden-user' => 'کاربری که می‌خواهید ببندید قبلاً بسته شده و پنهان گردیده است. چون شما دسترسی پنهان کردن کاربران را ندارید، نمی‌توانید قطع دسترسی کاربر را ببینید یا ویرایش کنید.',
+'cant-see-hidden-user' => 'کاربری که می‌خواهید ببندید قبلاً بسته شده و پنهان گردیده‌است. چون شما دسترسی پنهان‌کردن کاربران را ندارید، نمی‌توانید قطع دسترسی کاربر را ببینید یا ویرایش کنید.',
 'ipbblocked' => 'شما نمی‌توانید دسترسی دیگر کاربران را ببندید یا باز کنید زیرا دسترسی خودتان بسته است.',
 'ipbnounblockself' => 'شما مجاز به باز کردن دسترسی خود نیستید.',
 
@@ -3374,7 +3371,7 @@ $2',
 
 # Info page
 'pageinfo-title' => 'اطلاعات در مورد «$1»',
-'pageinfo-not-current' => 'Ù\85تاسفانه تهیه اطلاعات ویرایش‌های قدیمی غیرممکن است.',
+'pageinfo-not-current' => 'Ù\85تأسفانه تهیه اطلاعات ویرایش‌های قدیمی غیرممکن است.',
 'pageinfo-header-basic' => 'اطلاعات اولیه',
 'pageinfo-header-edits' => 'ویرایش تاریخچه',
 'pageinfo-header-restrictions' => 'حفاظت از صفحه',
@@ -3435,7 +3432,7 @@ $2',
 'markedaspatrollederror' => 'برچسب گشت زده نشد',
 'markedaspatrollederrortext' => 'باید یک نسخه را مشخص کنید تا برچسب گشت بخورد.',
 'markedaspatrollederror-noautopatrol' => 'شما نمی‌توانید به تغییرات انجام شده توسط خودتان برچسب گشت بزنید.',
-'markedaspatrollednotify' => 'این تغییر روی $1 برچسب گشت خورده است.',
+'markedaspatrollednotify' => 'این تغییر روی $1 برچسب گشت خورد.',
 'markedaspatrollederrornotify' => 'زدن برچسب گشت، ناموفق بود.',
 
 # Patrol log
@@ -3952,7 +3949,7 @@ $1',
 # Email address confirmation
 'confirmemail' => 'تأیید نشانی رایانامه',
 'confirmemail_noemail' => 'شما در صفحهٔ [[Special:Preferences|ترجیحات کاربری]] خود نشانی رایانامهٔ معتبری وارد نکرده‌اید.',
-'confirmemail_text' => 'اÛ\8cÙ\86 Ù\88Û\8cÚ©Û\8c Ø´Ù\85ا Ø±Ø§ Ù\85Ù\84زÙ\85 Ø¨Ù\87 ØªØ£Û\8cÛ\8cد Ø§Ø¹ØªØ¨Ø§Ø± Ø±Ø§Û\8cاÙ\86اÙ\85Ù\87 Ø®Ù\88دØ\8c Ù¾Û\8cØ´ Ø§Ø² Ø§Ø³ØªÙ\81ادÙ\87 Ø§Ø² Ø®Ø¯Ù\85ات Ø±Ø§Û\8cاÙ\86اÙ\85Ù\87 Ø¯Ø± Ø§Û\8cÙ\86جا Ù\85Û\8câ\80\8cÚ©Ù\86د. Ø¯Ú©Ù\85Ù\87Ù\94 Ø²Û\8cرÛ\8cÙ\86 Ø±Ø§ Ù\81عاÙ\84 Ú©Ù\86Û\8cد ØªØ§ Ù\86اÙ\85Ù\87Ù\94 ØªØ£Û\8cÛ\8cدÛ\8c Ø¨Ù\87 Ù\86شاÙ\86Û\8c Ø±Ø§Û\8cاÙ\86اÙ\85Ù\87Ù\94 Ø´Ù\85ا Ù\81رستادÙ\87 Ø´Ù\88د. Ø§Û\8cÙ\86 Ù\86اÙ\85Ù\87 Ø¯Ø±Ø¨Ø±Ø¯Ø§Ø±Ù\86دÙ\87Ù\94 Ù¾Û\8cÙ\88Ù\86دÛ\8c Ø®Ù\88اÙ\87د Ø¨Ù\88د Ú©Ù\87 Ø­Ø§Ù\88Û\8c Û\8cÚ© Ú©Ø¯ Ø§Ø³Øª. Ù¾Û\8cÙ\88Ù\86د Ø±Ø§ Ø¯Ø± Ù\85رÙ\88رگر Ø®Ù\88د Ø¨Ø§Ø± Ú©Ù\86Û\8cد (اجرا) Ú©Ù\86Û\8cد ØªØ§ Ø§Ø¹ØªØ¨Ø§Ø± Ù\86شاÙ\86Û\8c Ø±Ø§Û\8cاÙ\86اÙ\85Ù\87Ù\94 Ø´Ù\85ا ØªØ§یید شود.',
+'confirmemail_text' => 'اÛ\8cÙ\86 Ù\88Û\8cÚ©Û\8c Ø´Ù\85ا Ø±Ø§ Ù\85Ù\84زÙ\85 Ø¨Ù\87 ØªØ£Û\8cÛ\8cد Ø§Ø¹ØªØ¨Ø§Ø± Ø±Ø§Û\8cاÙ\86اÙ\85Ù\87 Ø®Ù\88دØ\8c Ù¾Û\8cØ´ Ø§Ø² Ø§Ø³ØªÙ\81ادÙ\87 Ø§Ø² Ø®Ø¯Ù\85ات Ø±Ø§Û\8cاÙ\86اÙ\85Ù\87 Ø¯Ø± Ø§Û\8cÙ\86جا Ù\85Û\8câ\80\8cÚ©Ù\86د. Ø¯Ú©Ù\85Ù\87Ù\94 Ø²Û\8cرÛ\8cÙ\86 Ø±Ø§ Ù\81عاÙ\84 Ú©Ù\86Û\8cد ØªØ§ Ù\86اÙ\85Ù\87Ù\94 ØªØ£Û\8cÛ\8cدÛ\8c Ø¨Ù\87 Ù\86شاÙ\86Û\8c Ø±Ø§Û\8cاÙ\86اÙ\85Ù\87Ù\94 Ø´Ù\85ا Ù\81رستادÙ\87 Ø´Ù\88د. Ø§Û\8cÙ\86 Ù\86اÙ\85Ù\87 Ø¯Ø±Ø¨Ø±Ø¯Ø§Ø±Ù\86دÙ\87Ù\94 Ù¾Û\8cÙ\88Ù\86دÛ\8c Ø®Ù\88اÙ\87د Ø¨Ù\88د Ú©Ù\87 Ø­Ø§Ù\88Û\8c Û\8cÚ© Ú©Ø¯ Ø§Ø³Øª. Ù¾Û\8cÙ\88Ù\86د Ø±Ø§ Ø¯Ø± Ù\85رÙ\88رگر Ø®Ù\88د Ø¨Ø§Ø± Ú©Ù\86Û\8cد (اجرا) Ú©Ù\86Û\8cد ØªØ§ Ø§Ø¹ØªØ¨Ø§Ø± Ù\86شاÙ\86Û\8c Ø±Ø§Û\8cاÙ\86اÙ\85Ù\87Ù\94 Ø´Ù\85ا ØªØ£یید شود.',
 'confirmemail_pending' => 'یک کد تأییدی پیشتر برای شما به صورت نامه فرستاده شده‌است. اگر همین اواخر حساب خود را باز کرده‌اید شاید بد نباشد که پیش از درخواست یک کد جدید چند دقیقه درنگ کنید تا شاید نامهٔ قبلی برسد.',
 'confirmemail_send' => 'پُست‌کردن یک کد تأیید',
 'confirmemail_sent' => 'یک نامهٔ تأییدی فرستاده شد.',
@@ -4037,7 +4034,7 @@ $5
 'semicolon-separator' => '؛&#32;',
 'comma-separator' => '،&#32;',
 'percent' => '$1٪',
-'quotation-marks' => '$1',
+'quotation-marks' => '«$1»',
 
 # Multipage image navigation
 'imgmultipageprev' => '&rarr; صفحهٔ پیشین',
@@ -4364,7 +4361,7 @@ $5
 '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-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|تغییر داد}}',
index 02f059a..d909ee6 100644 (file)
@@ -356,7 +356,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Lähetä minulle kopio MediaWikin kautta lähetetyistä sähköposteista',
 'tog-diffonly' => 'Älä näytä sivun sisältöä eroavaisuusvertailun alapuolella',
 'tog-showhiddencats' => 'Näytä piilotetut luokat',
-'tog-noconvertlink' => 'Älä muunna linkkien otsikoita toiseen kirjoitusjärjestelmään',
 'tog-norollbackdiff' => 'Älä näytä eroavaisuuksia, kun olet palauttanut muokkauksen palauta-työkalulla',
 'tog-useeditwarning' => 'Varoita minua, kun poistun muokkaussivulta tallentamatta muutoksia',
 'tog-prefershttps' => 'Käytä aina suojattua yhteyttä, kun olet kirjautunut sisään',
@@ -568,7 +567,6 @@ $1',
 'disclaimers' => 'Vastuuvapaus',
 'disclaimerpage' => 'Project:Vastuuvapaus',
 'edithelp' => 'Muokkausohjeet',
-'helppage' => 'Help:Sisällys',
 'mainpage' => 'Etusivu',
 'mainpage-description' => 'Etusivu',
 'policy-url' => 'Project:Käytännöt',
@@ -595,7 +593,7 @@ $1',
 'youhavenewmessagesmulti' => 'Sinulla on uusia viestejä sivuilla $1',
 'editsection' => 'muokkaa',
 'editold' => 'muokkaa',
-'viewsourceold' => 'näytä lähdekoodi',
+'viewsourceold' => 'näytä wikiteksti',
 'editlink' => 'muokkaa',
 'viewsourcelink' => 'näytä lähdekoodi',
 'editsectionhint' => 'Muokkaa osiota $1',
@@ -767,8 +765,7 @@ Huomaa, että jotkut sivut saattavat näkyä edelleen kuin olisit kirjautunut si
 'gotaccountlink' => 'kirjautua sisään',
 'userlogin-resetlink' => 'Unohditko salasanasi?',
 'userlogin-resetpassword-link' => 'Unohditko salasanasi?',
-'helplogin-url' => 'Help:Sisäänkirjautuminen',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Auta sisäänkirjautumisessa]]',
+'userlogin-helplink2' => 'Apua sisäänkirjautumiseen',
 'userlogin-loggedin' => 'Olet jo kirjautunut sisään tunnuksella {{GENDER:$1|$1}}.
 Käytä alla olevaa lomaketta kirjautuaksesi sisään toisena käyttäjänä.',
 'userlogin-createanother' => 'Luo toinen käyttäjätunnus',
@@ -854,6 +851,7 @@ Odota $1 ennen kuin yrität uudelleen.',
 'createacct-another-realname-tip' => 'Vapaaehtoinen.
 Nimesi näytetään käyttäjätunnuksesi sijasta sivun tekijäluettelossa.',
 'pt-login' => 'Kirjaudu sisään',
+'pt-login-button' => 'Kirjaudu sisään',
 'pt-createaccount' => 'Luo tunnus',
 'pt-userlogout' => 'Kirjaudu ulos',
 
@@ -886,7 +884,10 @@ Jotta pääset kirjautumaan sisään kunnolla, sinun on nyt asetettava uusi sala
 'resetpass-temp-password' => 'Väliaikainen salasana:',
 'resetpass-abort-generic' => 'Laajennus keskeytti salasanan vaihdon.',
 'resetpass-expired' => 'Salasanasi on vanhentunut. Valitse uusi salasana, jotta pääset kirjautumaan sisään.',
-'resetpass-expired-soft' => 'Salasanasi on vanhentunut ja se pitää uudistaa. Valitse nyt uusi salasana tai peruuta toiminto, niin voit uudistaa salasanan myöhemmin.',
+'resetpass-expired-soft' => 'Salasanasi on vanhentunut ja se pitää uudistaa. Valitse uusi salasana nyt tai paina "{{int:resetpass-submit-cancel}}", niin voit uudistaa salasanan myöhemmin.',
+'resetpass-validity-soft' => 'Salasanasi ei ole kelvollinen: $1
+
+Valitse nyt uusi salasana tai paina "{{int:resetpass-submit-cancel}}", niin voit vaihtaa sen myöhemmin.',
 
 # Special:PasswordReset
 'passwordreset' => 'Salasanan uudistus',
@@ -1033,7 +1034,7 @@ Se on saatettu siirtää tai poistaa äskettäin.',
 'accmailtext' => 'Satunnaisesti generoitu salasana käyttäjälle [[User talk:$1|$1]] on lähetetty osoitteeseen $2. Sen voi vaihtaa kirjautumisen jälkeen [[Special:ChangePassword|asetussivulla]].',
 'newarticle' => '(Uusi)',
 'newarticletext' => 'Linkki toi sivulle, jota ei vielä ole.
-Voit luoda sivun kirjoittamalla alla olevaan kenttään (katso [[{{MediaWiki:Helppage}}|ohjesivulta]] lisätietoja).
+Voit luoda sivun kirjoittamalla alla olevaan kenttään (katso [$1 ohjesivulta] lisätietoja).
 Jos et halua luoda sivua, käytä selaimen paluutoimintoa.',
 'anontalkpagetext' => "----''Tämä on nimettömän käyttäjän keskustelusivu. Hän ei ole joko luonut itselleen käyttäjätunnusta tai ei käytä sitä. Siksi hänet tunnistetaan nyt numeerisella IP-osoitteella. Kyseinen IP-osoite voi olla useamman henkilön käytössä. Jos olet nimetön käyttäjä, ja sinusta tuntuu, että aiheettomia kommentteja on ohjattu sinulle, [[Special:UserLogin/signup|luo itsellesi käyttäjätunnus]] tai [[Special:UserLogin|kirjaudu sisään]] välttääksesi jatkossa sekaannukset muiden nimettömien käyttäjien kanssa.''",
 'noarticletext' => 'Tällä hetkellä tällä sivulla ei ole tekstiä.
@@ -1262,8 +1263,10 @@ Voit silti nähdä tämän muutoksen. Lisätietoja löytyy [{{fullurl:{{#Special
 'revdelete-show-file-submit' => 'Kyllä',
 'revdelete-selected' => "'''{{PLURAL:$2|Valittu versio|Valitut versiot}} sivusta [[:$1]]'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Valittu lokimerkintä|Valitut lokimerkinnät}}:'''",
-'revdelete-text' => "'''Poistetut versiot ja lokitapahtumat näkyvät edelleen sivun historiassa ja lokeissa, mutta osa niiden sisällöstä ei ole julkisesti saatavilla.'''
-Muut ylläpitäjät {{GRAMMAR:inessive|{{SITENAME}}}} voivat silti tarkastella piilotettua sisältöä, ja he voivat palauttaa sen näkyviin tämän käyttöliittymän kautta, ellei tätä ole erikseen rajoitettu.",
+'revdelete-text-text' => 'Poistetut versiot näkyvät edelleen sivun historiassa, mutta osa niiden sisällöstä ei enää ole saatavilla julkisesti.',
+'revdelete-text-file' => 'Poistetut tiedostoversiot näkyvät yhä sivun historiassa, mutta osa niiden sisällöstä ei ole saatavilla julkisesti.',
+'logdelete-text' => 'Poistetut lokimerkinnät näkyvät edelleen lokeissa, mutta osa niiden sisällöstä ei enää ole saatavilla julkisesti.',
+'revdelete-text-others' => 'Muut ylläpitäjät sivustolla {{SITENAME}} kykenevät silti näkemään piilotetun sisällön ja voivat palauttaa sen takaisin näkyviin tämän saman käyttöliittymän kautta, paitsi silloin kun lisärajoituksia on asetettu.',
 'revdelete-confirm' => 'Varmista, että haluat tehdä tämän – ymmärrät seuraukset ja teet tämän [[{{MediaWiki:Policy-url}}|käytäntöjen]] mukaisesti.',
 'revdelete-suppress-text' => "Häivytystä pitäisi käyttää '''vain''' seuraavissa tapauksissa:
 * Mahdollisesti henkilön kunniaa loukkaavia tietoja
@@ -1348,9 +1351,9 @@ Uuden ja vanhan sivun muutoksien pitää muodostaa jatkumo – ne eivät saa men
 'mergelogpagetext' => 'Alla on loki viimeisimmistä muutoshistorioiden yhdistämisistä.',
 
 # Diffs
-'history-title' => 'Sivun $1 muutoshistoria',
-'difference-title' => 'Ero sivun $1 versioiden välillä',
-'difference-title-multipage' => 'Erot sivujen $1 ja $2 välillä',
+'history-title' => 'Sivun "$1" muutoshistoria',
+'difference-title' => 'Ero sivun "$1" versioiden välillä',
+'difference-title-multipage' => 'Erot sivujen "$1" ja "$2" välillä',
 'difference-multipage' => '(Sivujen välinen eroavaisuus)',
 'lineno' => 'Rivi $1:',
 'compareselectedversions' => 'Vertaile valittuja versioita',
@@ -1724,7 +1727,7 @@ Tämä tieto on julkinen.',
 'recentchanges-legend-heading' => "'''Selitys:'''",
 'recentchanges-legend-newpage' => '(katso myös [[Special:NewPages|lista uusista sivuista]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => 'Alla on muutokset <b>$2</b> lähtien. Enintään <b>$1</b> merkintää näytetään.',
+'rcnotefrom' => 'Alla ovat muutokset <strong>$2</strong> lähtien. (Enintään <strong>$1</strong> näytetään.)',
 'rclistfrom' => 'Näytä uudet muutokset $1 alkaen',
 'rcshowhideminor' => '$1 pienet muutokset',
 'rcshowhideminor-show' => 'Näytä',
@@ -1862,7 +1865,7 @@ Sinun on syytä pyytää jotakuta häivytettyjen tietojen näkemiseen oikeutettu
 'uploaddisabledtext' => 'Tiedostojen tallennus on poistettu käytöstä.',
 'php-uploaddisabledtext' => 'PHP:n tiedostojen lähetys ei ole käytössä. Tarkista asetukset kohdasta file_uploads.',
 'uploadscripted' => 'Tämä tiedosto sisältää HTML-koodia tai skriptejä, jotka selain saattaa virheellisesti suorittaa.',
-'uploadscriptednamespace' => "Tämä SVG-tiedosto sisältää kelvottoman nimiavaruuden '$1'",
+'uploadscriptednamespace' => 'Tämä SVG-tiedosto sisältää nimiavaruuden ”$1”, joka ei ole sallittu.',
 'uploadinvalidxml' => 'Ladatun tiedoston XML-koodia ei voitu jäsentää kunnolla.',
 'uploadvirus' => 'Tiedosto sisältää viruksen. Tarkemmat tiedot: $1',
 'uploadjava' => 'Tämä tiedosto on ZIP-tiedosto, joka sisältää Java .class-tiedoston.
@@ -1938,6 +1941,10 @@ $1',
 'backend-fail-batchsize' => 'Taustajärjestelmälle on annettu $1 {{PLURAL:$1|tiedostotoiminto|toimintoa}}; enimmäismäärä on $2 {{PLURAL:$2|tiedostotoiminto|toimintoa}}.',
 'backend-fail-usable' => 'Tiedostoa $1 ei voitu lukea tai luoda, koska käyttöoikeudet eivät riittäneet tai hakemisto puuttuu.',
 
+# File journal errors
+'filejournal-fail-dbconnect' => 'Ei voitu yhdistää kohteeseen journal database for storage backend "$1".',
+'filejournal-fail-dbquery' => 'Ei voitu päivittää kohdetta journal database for storage backend "$1".',
+
 # Lock manager
 'lockmanager-notlocked' => 'Kohteen $1 lukitusta ei voitu poistaa, koska se ei ole lukittu.',
 'lockmanager-fail-closelock' => 'Tiedoston $1 lukkotiedostoa ei voitu sulkea.',
@@ -2111,6 +2118,10 @@ Syöte: sisältötyyppi/alatyyppi, esimerkiksi <code>image/jpeg</code>.',
 # List redirects
 'listredirects' => 'Ohjaukset',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Luettelo tiedostoista, joista on kaksoiskappale.',
+'listduplicatedfiles-entry' => 'Tiedostosta [[:File:$1|$1]] on olemassa [[$3|{{PLURAL:$2|kaksoiskappale|$2 kaksoiskappaletta}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Käyttämättömät mallineet',
 'unusedtemplatestext' => 'Tässä on lista nimiavaruuden {{ns:template}} kaikista sivuista, joita ei ole liitetty toiselle sivulle. Muista tarkistaa onko malline siitä huolimatta käytössä.',
@@ -2224,7 +2235,7 @@ Jokaisella rivillä on linkit ensimmäiseen ja toiseen ohjaukseen sekä toisen o
 'deadendpagestext' => 'Seuraavat sivut eivät linkitä muihin sivuihin wikissä.',
 'protectedpages' => 'Suojatut sivut',
 'protectedpages-indef' => 'Vain ikuisesti suojatut',
-'protectedpages-summary' => 'Tällä sivulla on lueteltu tällä hetkellä suojatut sivut. Nähdäksesi luettelon sivuista, jotka on suojattu uudelleenluonnilta, katso  [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Tällä sivulla on lueteltu tällä hetkellä suojatut sivut. Nähdäksesi luettelon sivuista, jotka on suojattu uudelleenluonnilta, katso [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Vain tarttuvasti suojatut',
 'protectedpages-noredirect' => 'Piilota ohjaukset',
 'protectedpagesempty' => 'Mitään sivuja ei ole tällä hetkellä suojattu näillä asetuksilla.',
@@ -2237,7 +2248,7 @@ Jokaisella rivillä on linkit ensimmäiseen ja toiseen ohjaukseen sekä toisen o
 'protectedpages-unknown-timestamp' => 'Tuntematon',
 'protectedpages-unknown-performer' => 'Tuntematon käyttäjä',
 'protectedtitles' => 'Suojatut sivunimet',
-'protectedtitles-summary' => 'Tällä sivulla on lueteltu ne sivut, jotka on tällä hetkellä suojattu uudelleenluonnilta. Nähdäksesi luettelon olemassaolevista suojatuista sivuista katso [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Tällä sivulla on lueteltu ne sivut, jotka on tällä hetkellä suojattu uudelleenluonnilta. Nähdäksesi luettelon olemassaolevista suojatuista sivuista katso [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Ei suojattuja sivunimiä näillä hakuehdoilla.',
 'listusers' => 'Käyttäjälista',
 'listusers-editsonly' => 'Näytä vain käyttäjät, joilla on muokkauksia',
@@ -2484,7 +2495,7 @@ Palaute ja lisäapu osoitteessa:
 'excontentauthor' => 'sisälsi: ”$1” (ainoa muokkaaja oli $2)',
 'exbeforeblank' => 'ennen tyhjentämistä sisälsi: ”$1”',
 'exblank' => 'oli tyhjä',
-'delete-confirm' => 'Sivun ”$1” poistaminen',
+'delete-confirm' => 'Poista ”$1”',
 'delete-legend' => 'Sivun poisto',
 'historywarning' => "'''Varoitus:''' Sivua, jota olet poistamassa, on muokattu noin $1 {{PLURAL:$1|kerta|kertaa}}:",
 'confirmdeletetext' => 'Olet poistamassa sivun tai tiedoston ja kaiken sen historian. Ymmärrä teon seuraukset ja tee poisto {{GRAMMAR:genitive|{{SITENAME}}}} [[{{MediaWiki:Policy-url}}|käytäntöjen]] mukaisesti.',
@@ -2508,7 +2519,7 @@ Sivulla $2 on lista viimeaikaisista poistoista.',
 'delete-edit-reasonlist' => 'Muokkaa poistosyitä',
 'delete-toobig' => 'Tällä sivulla on pitkä muutoshistoria – yli $1 {{PLURAL:$1|versio|versiota}}. Näin suurien muutoshistorioiden poistamista on rajoitettu suorituskykysyistä.',
 'delete-warning-toobig' => 'Tällä sivulla on pitkä muutoshistoria – yli $1 {{PLURAL:$1|versio|versiota}}. Näin suurien muutoshistorioiden poistaminen voi haitata sivuston suorituskykyä.',
-'deleting-backlinks-warning' => "'''Varoitus:''' Sivulle, jota olet poistamassa, johtaa linkkejä muilta sivuilta, tai sivu on sisällytetty muuhun sivuun.",
+'deleting-backlinks-warning' => "'''Varoitus:''' Sivulle, jota olet poistamassa, johtaa [[Special:WhatLinksHere/{{FULLPAGENAME}}|linkkejä muilta sivuilta]], tai sivu on sisällytetty muuhun sivuun.",
 
 # Rollback
 'rollback' => 'palauta aiempaan versioon',
@@ -2554,7 +2565,9 @@ Viimeisimmän muokkauksen on tehnyt käyttäjä [[User:$3|$3]] ([[User talk:$3|k
 'protect-locked-blocked' => "Et voi muuttaa sivun suojauksia, koska sinut on estetty. Alla on sivun ”'''$1'''” nykyiset suojaukset:",
 'protect-locked-dblock' => "Sivun suojauksia ei voi muuttaa, koska tietokanta on lukittu. Alla on sivun ”'''$1'''” nykyiset suojaukset:",
 'protect-locked-access' => "Sinulla ei ole tarvittavia oikeuksia sivujen suojauksen muuttamiseen. Alla on sivun ”'''$1'''” nykyiset suojaukset:",
-'protect-cascadeon' => 'Tämä sivu on suojauksen kohteena, koska se on sisällytetty alla {{PLURAL:$1|olevaan tartuttavasti suojattuun sivuun|oleviin tartuttavasti suojattuihin sivuihin}}. Voit muuttaa tämän sivun suojaustasoa, mutta se ei vaikuta tarttuvaan suojaukseen.',
+'protect-cascadeon' => 'Tämä sivu on suojauksen kohteena, koska se on sisällytetty alla {{PLURAL:$1|olevaan suojattuun sivuun, jossa|oleviin suojattuihin sivuihin, joissa}} on kytketty tarttuva suojaus päälle.
+
+Tämän sivun suojaustasoon tehdyillä muutoksilla ei ole vaikutusta sivuun muualta tarttuneeseen suojaukseen.',
 'protect-default' => 'Salli kaikki käyttäjät',
 'protect-fallback' => 'Salli vain käyttäjät, joilla on oikeus $1',
 'protect-level-autoconfirmed' => 'Vain hyväksytyt käyttäjät',
@@ -2676,6 +2689,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Tämä IP-osoite on tällä hetkellä estetty.
 Alla on viimeisin estolokin tapahtuma:',
 'sp-contributions-search' => 'Etsi muokkauksia',
+'sp-contributions-suppresslog' => 'häivytetyt käyttäjän muokkaukset',
 'sp-contributions-username' => 'IP-osoite tai käyttäjätunnus',
 'sp-contributions-toponly' => 'Näytä vain muokkaukset, jotka ovat viimeisimpiä versioita',
 'sp-contributions-newonly' => 'Näytä vain muokkaukset, joilla on luotu sivu',
@@ -2841,7 +2855,7 @@ Muista [[Special:UnlockDB|poistaa tietokannan lukitus]] kun huolto on tehty.',
 'lockedbyandtime' => '(lukinnut {{GENDER:$1|$1}} $2 kello $3)',
 
 # Move page
-'move-page' => 'Sivun $1 siirto',
+'move-page' => 'Siirrä $1',
 'move-page-legend' => 'Siirrä sivu',
 'movepagetext' => "Alla olevalla lomakkeella voit nimetä uudelleen sivuja, jolloin niiden koko historia siirtyy uuden nimen alle.
 Vanhasta sivusta tulee ohjaussivu, joka osoittaa uuteen sivuun.
@@ -3027,6 +3041,7 @@ Tallenna tiedot koneellesi ja tuo ne tällä sivulla.',
 'import-error-special' => 'Sivua $1 ei tuotu, koska se kuuluu erityiseen nimiavaruuteen, joka ei salli sivuja.',
 'import-error-invalid' => 'Sivua $1 ei tuotu, koska sen nimi ei kelpaa.',
 'import-error-unserialize' => 'Versiota $2 sivusta $1 ei voida jakaa osiin. Version ilmoitettiin käyttävän sisältömallia $3 ja sarjoitusmuotoilua $4.',
+'import-error-bad-location' => 'Sivun versiota $2, joka käyttää sisällön mallia $3, ei voi tallettaa kohteeseen "$1" tässä wikissä, koska tuota mallia ei tueta kyseisellä sivulla.',
 'import-options-wrong' => '{{PLURAL:$2|Väärä asetus|Väärät asetukset}}: <nowiki>$1</nowiki>',
 'import-rootpage-invalid' => 'Annettu perussivun nimi ei kelpaa.',
 'import-rootpage-nosubpage' => 'Annetun perussivun nimiavaruus "$1" ei salli alasivuja.',
@@ -3872,9 +3887,9 @@ Yritä normaalia esikatselua.',
 'watchlistedit-numitems' => 'Tarkkailulistallasi on {{PLURAL:$1|yksi sivu|$1 sivua}}, lukuun ottamatta keskustelusivuja.',
 'watchlistedit-noitems' => 'Tarkkailulistasi on tyhjä.',
 'watchlistedit-normal-title' => 'Tarkkailulistan muokkaus',
-'watchlistedit-normal-legend' => 'Sivut',
+'watchlistedit-normal-legend' => 'Poista sivuja tarkkailulistalta',
 'watchlistedit-normal-explain' => 'Tarkkailulistasi sivut on lueteltu alla. Voit poistaa sivuja valitsemalla niitä vastaavat valintaruudut ja napsauttamalla ”{{int:Watchlistedit-normal-submit}}”. Voit myös muokata listaa [[Special:EditWatchlist/raw|tekstimuodossa]].',
-'watchlistedit-normal-submit' => 'Poista',
+'watchlistedit-normal-submit' => 'Poista kohteet',
 'watchlistedit-normal-done' => '{{PLURAL:$1|Yksi sivu|$1 sivua}} poistettiin tarkkailulistaltasi:',
 'watchlistedit-raw-title' => 'Tarkkailulistan muokkaus',
 'watchlistedit-raw-legend' => 'Tarkkailulistan muokkaus',
@@ -3888,9 +3903,9 @@ Voit myös muokata listaa [[Special:EditWatchlist|tavalliseen tapaan]].',
 'watchlistedit-raw-removed' => '{{PLURAL:$1|Yksi sivu|$1 sivua}} poistettiin:',
 
 # Watchlist editing tools
-'watchlisttools-view' => 'Näytä muutokset',
-'watchlisttools-edit' => 'Muokkaa listaa',
-'watchlisttools-raw' => 'Lista raakamuodossa',
+'watchlisttools-view' => 'Näytä tarkkaillut muutokset',
+'watchlisttools-edit' => 'Katso ja muokkaa tarkkailulistaa',
+'watchlisttools-raw' => 'Muokkaa listaa raakamuodossa',
 
 # Signatures
 'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|keskustelu]])',
@@ -4022,7 +4037,7 @@ Sinun olisi pitänyt saada [{{SERVER}}{{SCRIPTPATH}}/COPYING kopio GNU General P
 'compare-rev1' => 'Versio 1',
 'compare-rev2' => 'Versio 2',
 'compare-submit' => 'Vertaa',
-'compare-invalid-title' => 'Antamasi otsikko on virheellinen.',
+'compare-invalid-title' => 'Antamasi sivun nimi on virheellinen.',
 'compare-title-not-exists' => 'Määrittämääsi sivua ei ole.',
 'compare-revision-not-exists' => 'Määrittämääsi versiota ei ole.',
 
@@ -4169,20 +4184,21 @@ Muussa tapauksessa voit käyttää alla olevaa helpompaa lomaketta. Kommenttisi
 'rotate-comment' => 'Kuvaa käännettiin $1 {{PLURAL:$1|aste|astetta}} myötäpäivään',
 
 # Limit report
-'limitreport-title' => 'Jäsentimen profilointitiedot',
+'limitreport-title' => 'Jäsentimen profilointitiedot:',
 'limitreport-cputime' => 'Suorittimen ajankäyttö',
 'limitreport-cputime-value' => '$1 {{PLURAL:$1|sekunti|sekuntia}}',
 'limitreport-walltime' => 'Todellinen ajankäyttö',
 'limitreport-walltime-value' => '$1 {{PLURAL:$1|sekunti|sekuntia}}',
-'limitreport-ppvisitednodes' => 'Esikääntäjän läpikäymien solmujen määrä',
+'limitreport-ppvisitednodes' => 'Esikääntäjän läpikäymien solmujen määrä<br />(preprocessor visited node count)',
+'limitreport-ppgeneratednodes' => 'Esikääntäjän synnyttämien solmujen määrä <br />(preprocessor generated node count)',
 'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|tavu|tavua}}',
-'limitreport-templateargumentsize' => 'Mallineen argumenttien koko',
+'limitreport-templateargumentsize' => 'Mallineen argumenttien koko<br />(template argument size)',
 'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|tavu|tavua}}',
 'limitreport-expansiondepth' => 'Highest expansion depth',
 'limitreport-expensivefunctioncount' => 'Vaativien parserfunktioiden määrä',
 
 # Special:ExpandTemplates
-'expandtemplates' => 'Mallineiden laajennus',
+'expandtemplates' => 'Laajenna mallineet',
 'expand_templates_intro' => 'Tämä toimintosivu ottaa syötteeksi tekstiä ja laajentaa kaikki siinä olevat mallineet rekursiivisesti.
 Se myös laajentaa tuetut parserifunktiot kuten
 <code><nowiki>{{</nowiki>#language:...}}</code> ja -muuttujat kuten
index 775b4ee..eaa8139 100644 (file)
@@ -359,7 +359,6 @@ $1',
 'disclaimers' => 'Fyrivarni',
 'disclaimerpage' => 'Project:Generelt fyrivarni',
 'edithelp' => 'Rættingarhjálp',
-'helppage' => 'Help:Innihald',
 'mainpage' => 'Forsíða',
 'mainpage-description' => 'Forsíða',
 'policy-url' => 'Project:Handfaring av persónligum upplýsingum',
@@ -558,8 +557,6 @@ Gloym ikki at broyta tínar [[Special:Preferences|{{SITENAME}}-innstillingar]].'
 'gotaccountlink' => 'Rita inn',
 'userlogin-resetlink' => 'Hevur tú gloymt tínar logg inn upplýsingar',
 'userlogin-resetpassword-link' => 'Hevur tú gloymt títt loyniorð?',
-'helplogin-url' => 'Help:Innritan',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hjálp til innritan]]',
 'userlogin-loggedin' => 'Tú ert longu innritað/ur sum {{GENDER:$1|$1}}.
 Nýt formularin niðanfyri fyri at rita inn sum ein annar brúkari.',
 'userlogin-createanother' => 'Stovna eina aðra kontu',
@@ -826,7 +823,7 @@ Tað kann vera flutt ella blivið strikað meðan tú hevur hugt at síðuni.',
 Tað kann broytast á ''[[Special:ChangePassword|broyt loyniorð]]'' síðuni tá tú ritar inn.",
 'newarticle' => '(Nýggj)',
 'newarticletext' => "Tú ert komin eftir eini slóð til eina síðu, ið ikki er til enn. Skriva í kassan niðanfyri, um tú vilt byrja uppá hesa síðuna.
-(Sí [[{{MediaWiki:Helppage}}|hjálparsíðuna]] um tú ynskir fleiri upplýsingar).
+(Sí [$1 hjálparsíðuna] um tú ynskir fleiri upplýsingar).
 Ert tú komin higar av einum mistaki, kanst tú trýsta á '''aftur'''-knøttin á kagaranum.",
 'anontalkpagetext' => "----''Hetta er ein kjaksíða hjá einum dulnevndum brúkara, sum ikki hevur stovnað eina kontu enn, ella ikki brúkar hana. 
 Tí noyðast vit at brúka nummerisku IP-adressuna hjá honum ella henni.
index c2a4e43..4ba0ae6 100644 (file)
@@ -52,6 +52,7 @@
  * @author Jean-Frédéric
  * @author JeanVoisin
  * @author Jens Liebenau
+ * @author John Trololo
  * @author Jul law
  * @author Klutzy
  * @author Korg
@@ -66,6 +67,7 @@
  * @author Lucyin
  * @author Manohisoa
  * @author Mattho69
+ * @author Maxim21
  * @author Maxime Corbin
  * @author McDutchie
  * @author Meithal
@@ -78,6 +80,7 @@
  * @author Nobody
  * @author Od1n
  * @author Omnipaedista
+ * @author Orlodrim
  * @author Peter17
  * @author PieRRoMaN
  * @author ProgVal
@@ -90,6 +93,7 @@
  * @author Sherbrooke
  * @author Shirayuki
  * @author Skalman
+ * @author Solucer
  * @author The Evil IP address
  * @author Tititou36
  * @author TouzaxA
@@ -421,11 +425,11 @@ $separatorTransformTable = array( ',' => "\xc2\xa0", '.' => ',' );
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'Lien hypertexte:',
+'tog-underline' => 'Souligner les liens :',
 'tog-hideminor' => 'Masquer les modifications mineures dans les changements récents',
-'tog-hidepatrolled' => 'Masquer les modifications surveillées dans les changements récents',
+'tog-hidepatrolled' => 'Masquer les modifications surveillées dans les modifications récentes',
 'tog-newpageshidepatrolled' => 'Masquer les pages surveillées dans la liste des nouvelles pages',
-'tog-extendwatchlist' => 'Développer la liste de suivi pour voir tous les changements, non seulement le plus récent',
+'tog-extendwatchlist' => 'Étendre la liste de suivi pour afficher toutes les modifications et pas uniquement les plus récentes',
 'tog-usenewrc' => 'Grouper les changements par page dans les modifications récentes et la liste de suivi (nécessite JavaScript)',
 'tog-numberheadings' => 'Numéroter automatiquement les titres de section',
 'tog-showtoolbar' => "Afficher la barre d'outils de modification (nécessite JavaScript)",
@@ -434,9 +438,9 @@ $messages = array(
 'tog-rememberpassword' => 'Me reconnecter automatiquement lors des prochaines visites avec ce navigateur (au maximum $1&nbsp;{{PLURAL:$1|jour|jours}})',
 'tog-watchcreations' => "Ajouter les pages que je crée et les fichiers que j'importe à ma liste de suivi",
 'tog-watchdefault' => 'Ajouter les pages et les fichiers que je modifie à ma liste de suivi',
-'tog-watchmoves' => 'Ajouter les pages et les fichiers que je déplace à ma liste de suivi',
+'tog-watchmoves' => 'Ajouter les pages et les fichiers que je renomme à ma liste de suivi',
 'tog-watchdeletion' => 'Ajouter les pages et les fichiers que je supprime à ma liste de suivi',
-'tog-minordefault' => 'Marquer toutes les modifications mineures par défaut',
+'tog-minordefault' => 'Marquer toutes mes modifications comme mineures par défaut',
 'tog-previewontop' => 'Afficher la prévisualisation au-dessus de la zone de modification',
 'tog-previewonfirst' => 'Afficher la prévisualisation lors de la première modification',
 'tog-enotifwatchlistpages' => "M'avertir par courriel lorsqu'une page ou un fichier de ma liste de suivi est modifiée",
@@ -457,30 +461,29 @@ $messages = array(
 'tog-ccmeonemails' => "M'envoyer une copie des courriels que j'envoie aux autres utilisateurs",
 'tog-diffonly' => 'Ne pas afficher le contenu des pages sous les diffs',
 'tog-showhiddencats' => 'Afficher les catégories cachées',
-'tog-noconvertlink' => 'Désactiver la conversion des titres',
 'tog-norollbackdiff' => "Ne pas afficher le diff lors d'une révocation",
 'tog-useeditwarning' => "M'avertir quand je quitte une page de modification sans publier les changements",
 'tog-prefershttps' => 'Toujours utiliser une connexion sécurisée en étant connecté',
 
 'underline-always' => 'Toujours',
 'underline-never' => 'Jamais',
-'underline-default' => 'Navigateur ou thème par défaut',
+'underline-default' => 'Valeur par défaut du navigateur ou du thème',
 
 # Font style option in Special:Preferences
 'editfont-style' => 'Style de police de la zone de modification :',
-'editfont-default' => 'Navigateur par défaut',
-'editfont-monospace' => 'Police Monospaced',
-'editfont-sansserif' => 'Police Sans-serif',
-'editfont-serif' => 'Police Serif',
+'editfont-default' => 'Police par défaut du navigateur',
+'editfont-monospace' => 'Police à chasse fixe',
+'editfont-sansserif' => 'Police sans-serif',
+'editfont-serif' => 'Police serif',
 
 # Dates
-'sunday' => 'Dimanche',
-'monday' => 'Lundi',
-'tuesday' => 'Mardi',
-'wednesday' => 'Mercredi',
-'thursday' => 'Jeudi',
-'friday' => 'Vendredi',
-'saturday' => 'Samedi',
+'sunday' => 'dimanche',
+'monday' => 'lundi',
+'tuesday' => 'mardi',
+'wednesday' => 'mercredi',
+'thursday' => 'jeudi',
+'friday' => 'vendredi',
+'saturday' => 'samedi',
 'sun' => 'Dim.',
 'mon' => 'Lun.',
 'tue' => 'Mar.',
@@ -542,7 +545,7 @@ $messages = array(
 'category_header' => 'Pages dans la catégorie « $1 »',
 'subcategories' => 'Sous-catégories',
 'category-media-header' => 'Fichiers multimédias dans la catégorie « $1 »',
-'category-empty' => "''Cette catégorie ne contient aucune page, sous-catégorie ou fichier multimédia.''",
+'category-empty' => '<em>Cette catégorie ne contient aucune page, sous-catégorie ou fichier multimédia.</em>',
 'hidden-categories' => '{{PLURAL:$1|Catégorie cachée|Catégories cachées}}',
 'hidden-category-category' => 'Catégories cachées',
 'category-subcat-count' => 'Cette catégorie comprend {{PLURAL:$2|la sous-catégorie|$2 sous-catégories, dont {{PLURAL:$1|celle|les $1}}}} ci-dessous.',
@@ -669,7 +672,6 @@ $1",
 'disclaimers' => 'Avertissements',
 'disclaimerpage' => 'Project:Avertissements généraux',
 'edithelp' => 'Aide',
-'helppage' => 'Help:Accueil',
 'mainpage' => 'Accueil',
 'mainpage-description' => 'Accueil',
 'policy-url' => 'Project:Règles',
@@ -867,8 +869,7 @@ N'oubliez pas de modifier [[Special:Preferences|vos préférences pour {{SITENAM
 'gotaccountlink' => 'Connectez-vous',
 'userlogin-resetlink' => 'Vous avez oublié vos détails de connexion ?',
 'userlogin-resetpassword-link' => 'Mot de passe oublié ?',
-'helplogin-url' => 'Help:Connexion',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Aide à la connexion]]',
+'userlogin-helplink2' => 'Aide à la connexion',
 'userlogin-loggedin' => 'Vous êtes déjà connecté{{GENDER:$1||e}} en tant que {{GENDER:$1|$1}}.
 Utilisez le formulaire ci-dessous pour vous connecter avec un autre compte utilisateur.',
 'userlogin-createanother' => 'Créer un autre compte',
@@ -960,6 +961,7 @@ Veuillez attendre $1 avant d'essayer à nouveau.",
 'createacct-another-realname-tip' => 'Le vrai nom est optionnel.
 Si vous décidez de le fournir, il sera utilisé pour attribuer à l’utilisateur ses travaux.',
 'pt-login' => 'Se connecter',
+'pt-login-button' => 'Se connecter',
 'pt-createaccount' => 'Créer un compte',
 'pt-userlogout' => 'Se déconnecter',
 
@@ -992,7 +994,10 @@ Pour terminer la connexion, vous devez fournir un nouveau mot de passe ici :',
 'resetpass-temp-password' => 'Mot de passe temporaire :',
 'resetpass-abort-generic' => 'La modification du mot de passe a été annulée par une extension.',
 'resetpass-expired' => 'Votre mot de passe a expiré. Veuillez en fournir un nouveau pour vous connecter.',
-'resetpass-expired-soft' => 'Votre mot de passe a expiré, et doit être réinitialisé. Veuillez en choisir un nouveau maintenant, ou cliquer sur annuler pour le faire plus tard.',
+'resetpass-expired-soft' => 'Votre mot de passe a expiré, et doit être réinitialisé. Veuillez en choisir un nouveau maintenant, ou cliquer sur « {{int:resetpass-submit-cancel}} » pour le faire plus tard.',
+'resetpass-validity-soft' => 'Votre mot de passe n’est pas valide : $1
+
+Veuillez choisir un nouveau mot de passe maintenant, ou cliquez sur « {{int:resetpass-submit-cancel}} » pour le réinitialiser plus tard.',
 
 # Special:PasswordReset
 'passwordreset' => 'Remise à zéro du mot de passe',
@@ -1132,8 +1137,8 @@ Elle a peut-être été déplacée ou supprimée depuis que vous avez lu cette p
 'accmailtext' => "Un mot de passe généré aléatoirement pour [[User talk:$1|$1]] a été envoyé à $2.
 Il peut être modifié sur la page ''[[Special:ChangePassword|Changement de mot de passe]]'' après connexion.",
 'newarticle' => '(Nouveau)',
-'newarticletext' => "Vous avez suivi un lien vers une page qui n’existe pas encore ou qui a été [{{fullurl:Special:Log|type=delete&page={{FULLPAGENAMEE}}}} effacée]
-Pour créer cette page, entrez votre texte dans la boîte ci-après (vous pouvez consulter [[{{MediaWiki:Helppage}}|la page d’aide]] pour plus d’informations). 
+'newarticletext' => "Vous avez suivi un lien vers une page qui n’existe pas encore. 
+Afin de créer cette page, entrez votre texte dans la boîte ci-après (vous pouvez consulter [$1 la page d’aide] pour plus d’informations). 
 Si vous êtes arrivé{{GENDER:||e|(e)}} ici par erreur, cliquez sur le bouton '''retour''' de votre navigateur.",
 'anontalkpagetext' => "---- ''Vous êtes sur la page de discussion d'un utilisateur anonyme qui n'a pas encore créé de compte ou qui n'en utilise pas. Pour cette raison, nous devons utiliser son adresse IP pour l'identifier. Une adresse IP peut être partagée par plusieurs utilisateurs. Si vous êtes un{{GENDER:||e|}} utilisat{{GENDER:|eur|rice|eur}} anonyme et si vous constatez que des commentaires qui ne vous concernent pas vous ont été adressés, vous pouvez [[Special:UserLogin/signup|créer un compte]] ou [[Special:UserLogin|vous connecter]] afin d'éviter toute confusion future avec d'autres contributeurs anonymes.''",
 'noarticletext' => 'Il n’y a pour l’instant aucun texte sur cette page.
@@ -1371,8 +1376,10 @@ Vous pouvez voir ce diff ; des détails sont disponibles dans le [{{fullurl:{{#S
 'revdelete-show-file-submit' => 'Oui',
 'revdelete-selected' => "'''{{PLURAL:$2|Version sélectionnée|Versions sélectionnées}} de '''[[:$1]]''' :'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Événement d'historique sélectionné|Événements d'historique sélectionnés}} :'''",
-'revdelete-text' => "'''Les versions et événements supprimés seront encore présents dans l'historique de la page et dans les journaux, mais leur contenu textuel sera inaccessible au public.'''
-Les autres administrateurs de {{SITENAME}} pourront toujours accéder au contenu caché et le restaurer à travers cette même interface, à moins que des restrictions supplémentaires ne soient mises en place.",
+'revdelete-text-text' => "Les révisions supprimées continueront à apparaître dans l'historique de la page, mais une partie de leur contenu sera inaccessible au public.",
+'revdelete-text-file' => "Les versions de fichier supprimées continueront à apparaître dans l'historique des fichiers, mais une partie de leur contenu sera indisponible au public.",
+'logdelete-text' => 'Les évènements du journal supprimés continueront à apparaître dans les journaux, mais une partie de leur contenu sera indisponible au public.',
+'revdelete-text-others' => "Les autres administrateurs de {{SITENAME}} seront toujours capables d'accéder au contenu caché et peuvent le restaurer à nouveau par cette interface, à moins que des restrictions additionnelles soient définies.",
 'revdelete-confirm' => 'Confirmez que vous voulez effectuer cette action, que vous en comprenez les conséquences, et que vous le faites en accord avec [[{{MediaWiki:Policy-url}}|les règles]].',
 'revdelete-suppress-text' => "La suppression ne doit être utilisée '''que''' dans les cas suivants :
 * Informations potentiellement diffamatoires
@@ -1507,7 +1514,7 @@ Vous pouvez trouver des détails dans le [{{fullurl:{{#Special:Log}}/delete|page
 'search-file-match' => '(correspond au contenu du fichier)',
 'search-suggest' => 'Essayez avec cette orthographe : $1',
 'search-interwiki-caption' => 'Projets frères',
-'search-interwiki-default' => 'Résultats sur $1 :',
+'search-interwiki-default' => 'Résultats de $1 :',
 'search-interwiki-more' => '(plus)',
 'search-relatedarticle' => 'Reliés',
 'searcheverything-enable' => 'Rechercher dans tous les espaces de noms',
@@ -1594,7 +1601,7 @@ Toute personne la connaissant pourra lire votre liste de suivi, ne la communique
 'prefs-files' => 'Fichiers',
 'prefs-custom-css' => 'CSS personnalisé',
 'prefs-custom-js' => 'JavaScript personnalisé',
-'prefs-common-css-js' => 'JavaScript et CSS partagé pour tous les habillages :',
+'prefs-common-css-js' => 'CSS et JavaScript communs à 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 :',
 'youremail' => 'Courriel :',
@@ -1832,7 +1839,7 @@ Cette information sera publique.',
 'recentchanges-legend-heading' => "'''Légende :'''",
 'recentchanges-legend-newpage' => '(voir aussi la [[Special:NewPages|liste des nouvelles pages]]).',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "Voici les modifications effectuées depuis le '''$2''' ('''$1''' au maximum).",
+'rcnotefrom' => 'Ci-dessous les modifications effectuées depuis le <strong>$2</strong> (jusqu’à <strong>$1</strong> affichés).',
 'rclistfrom' => 'Afficher les nouvelles modifications depuis le $1.',
 'rcshowhideminor' => '$1 les modifications mineures',
 'rcshowhideminor-show' => 'Afficher',
@@ -2237,6 +2244,11 @@ Entrée : ''typedecontenu''/''sous-type'', par exemple <code>image/jpeg</code>."
 # List redirects
 'listredirects' => 'Liste des redirections',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Liste de fichiers en double',
+'listduplicatedfiles-summary' => "C'est une liste de fichiers où la version la plus récente du fichier est une copie de la version la plus récente d'un autre fichier. Seuls les fichiers locaux sont examinés.",
+'listduplicatedfiles-entry' => '[[:Fichier:$1|$1]] a [[$3|{{PLURAL:$2|un doublon|$2 doublons}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Modèles inutilisés',
 'unusedtemplatestext' => 'Cette page liste toutes les pages de l’espace de noms « {{ns:template}} » qui ne sont incluses dans aucune autre page.
@@ -2351,7 +2363,7 @@ Les entrées <del>barrées</del> ont été résolues.',
 'deadendpagestext' => "Les pages suivantes ne contiennent aucun lien vers d'autres pages du wiki.",
 'protectedpages' => 'Pages protégées',
 'protectedpages-indef' => 'Uniquement les protections permanentes',
-'protectedpages-summary' => 'Cette page liste les pages existantes actuellement protégées. Pour une liste des titres protégés depuis leur création, voir [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Cette page liste les pages existantes actuellement protégées. Pour une liste des titres protégés contre la création, voir [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Uniquement les protections en cascade',
 'protectedpages-noredirect' => 'Masquer les redirections',
 'protectedpagesempty' => "Aucune page n'est protégée de cette façon.",
@@ -2364,7 +2376,7 @@ Les entrées <del>barrées</del> ont été résolues.',
 'protectedpages-unknown-timestamp' => 'Inconnu',
 'protectedpages-unknown-performer' => 'Utilisateur inconnu',
 'protectedtitles' => 'Titres protégés',
-'protectedtitles-summary' => 'Cette page liste les titres actuellement protégés depuis leur création. Pour une liste des pages  protégées existantes, voir [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Cette page liste les titres actuellement protégés contre la création. Pour une liste des pages protégées existantes, voir [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => "Aucun titre n'est actuellement protégé avec ces paramètres.",
 'listusers' => 'Liste des utilisateurs',
 'listusers-editsonly' => 'Ne montrer que les utilisateurs ayant au moins une contribution',
@@ -2639,7 +2651,7 @@ La suppression de telles pages a été restreinte pour prévenir des perturbatio
 'delete-warning-toobig' => "Cette page possède un historique important de modifications, dépassant $1 version{{PLURAL:$1||s}}.
 La supprimer peut perturber le fonctionnement de la base de données de {{SITENAME}} ;
 veuiller ne procéder qu'avec prudence.",
-'deleting-backlinks-warning' => "'''Attention :''' D’autres pages ont un lien vers ou incorporent la page que vous allez supprimer.",
+'deleting-backlinks-warning' => "'''Attention :''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|D’autres pages]] ont un lien vers ou incorporent la page que vous allez supprimer.",
 
 # Rollback
 'rollback' => 'Révoquer les modifications',
@@ -2820,6 +2832,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => "Cette adresse IP est actuellement bloquée.
 La dernière entrée du journal des blocages est indiquée ci-dessous à titre d'information :",
 'sp-contributions-search' => 'Rechercher les contributions',
+'sp-contributions-suppresslog' => 'contributions des utilisateurs supprimées',
 'sp-contributions-username' => "Adresse IP ou nom d'utilisateur :",
 'sp-contributions-toponly' => 'Ne montrer que les contributions qui sont les dernières des articles',
 'sp-contributions-newonly' => 'Afficher uniquement les modifications qui sont des créations de page',
index a11e965..7a8deca 100644 (file)
@@ -348,7 +348,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Mè mandar na copia des mèssâjos que mando ux ôtros utilisators',
 'tog-diffonly' => 'Pas montrar lo contegnu de les pâges desot les difs',
 'tog-showhiddencats' => 'Montrar les catègories cachiêes',
-'tog-noconvertlink' => 'Dèsactivar la convèrsion des titros des lims',
 'tog-norollbackdiff' => 'Pas fâre vêre la dif pendent na rèvocacion',
 'tog-useeditwarning' => 'M’avèrtir quand quito una pâge de changement sen sôvar los changements',
 
@@ -522,7 +521,7 @@ $messages = array(
 'articlepage' => 'Vêde la pâge de contegnu',
 'talk' => 'Discussion',
 'views' => 'Vues',
-'toolbox' => 'Bouèta d’outils',
+'toolbox' => 'Outils',
 'userpage' => 'Vêde la pâge utilisator',
 'projectpage' => 'Vêde la pâge projèt',
 'imagepage' => 'Vêde la pâge du fichiér',
@@ -559,7 +558,6 @@ $1',
 'disclaimers' => 'Semonces',
 'disclaimerpage' => 'Project:Semonces g·ènèrales',
 'edithelp' => 'Éde',
-'helppage' => 'Help:Somèro',
 'mainpage' => 'Reçua',
 'mainpage-description' => 'Reçua',
 'policy-url' => 'Project:Règlles de dedens',
@@ -754,8 +752,6 @@ Oubliâd pas de changiér voutres [[Special:Preferences|prèferences dessus {{SI
 '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',
@@ -805,7 +801,7 @@ Se vos plét, tornâd èprovar.',
 'passwordtooshort' => 'Voutron contresegno dêt contegnir por lo muens $1 caractèro{{PLURAL:$1||s}}.',
 'password-name-match' => 'Voutron contresegno dêt étre difèrent de voutron nom d’utilisator.',
 'password-login-forbidden' => 'L’usâjo de cél nom d’utilisator et de cél contresegno est étâ dèfendu.',
-'mailmypassword' => 'Recêvre un contresegno novél per mèssageria èlèctronica',
+'mailmypassword' => 'Rebetar a zérô lo contresegno',
 'passwordremindertitle' => 'Contresegno temporèro novél por {{SITENAME}}',
 'passwordremindertext' => 'Yon (probâblament vos, dês l’adrèce IP $1) at demandâ un contresegno
 novél por {{SITENAME}} ($4). Un contresegno temporèro est étâ fêt por
@@ -1013,7 +1009,7 @@ Pôt-étre el est étâye dèplaciêe ou ben ôtâye dês que vos éd liesu cela
 Lo contresegno por cél compto novél pôt étre changiê sur la pâge de ''[[Special:ChangePassword|changement de contresegno]]'' aprés s’étre branchiê.",
 'newarticle' => '(Novél)',
 'newarticletext' => "Vos éd siuvu un lim de vers na pâge qu’ègziste p’oncor.
-Por fâre cela pâge, buchiéd voutron tèxto dedens la bouèta ce-desot (vêde la [[{{MediaWiki:Helppage}}|pâge d’éde]] por més d’enformacions).
+Por fâre cela pâge, buchiéd voutron tèxto dedens la bouèta ce-desot (vêde la [$1 pâge d’éde] por més d’enformacions).
 Se vos éte arrevâ{{GENDER:||ye|(ye)}} ice per fôta, clicâd sur lo boton '''Devant''' de voutron navigator.",
 'anontalkpagetext' => "----''O est la pâge de discussion d’un utilisator anonimo qu’at p’oncor fêt un compto ou ben que nen emplèye pas.
 Por cen nos devens empleyér la sin’adrèce IP numerica por lo recognetre.
@@ -1261,8 +1257,6 @@ fonccion, la vèrsion spècifiâye ègziste pas ou ben vos èprovâd de cachiér
 'revdelete-show-file-submit' => 'Ouè',
 'revdelete-selected' => "'''{{PLURAL:$2|Vèrsion chouèsia|Vèrsions chouèsies}} de [[:$1]] :'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Èvènement du jornal chouèsi|Èvènements du jornal chouèsis}} :'''",
-'revdelete-text' => "'''Les vèrsions et los èvènements suprimâ(ye)s aparètront adés dedens l’historico de la pâge et pués sur los jornals, mas quârques parties de lor contegnu seront inaccèssibles u publico.'''
-Los ôtros administrators de {{SITENAME}} porront tojorn arrevar u contegnu cachiê et lo refâre per cela mém’entèrface, du muens que des rèstriccions de ples seyont pas dèfenies.",
 'revdelete-confirm' => 'Se vos plét, confirmâd qu’o est franc cen que vos voléd fâre, que vos en compregnéd les consèquences et pués que vos o féte en acôrd avouéc les [[{{MediaWiki:Policy-url}}|règlles de dedens]].',
 'revdelete-suppress-text' => "La rèprèssion dêt étre empleyêe '''ren que''' dens cetos câs :
 * Enformacions que pôvont étre difamatouères
@@ -1715,7 +1709,7 @@ Se vos chouèsésséd de lo balyér, serat empleyê por vos atribuar voutres ôv
 'rc_categories_any' => 'Totes',
 'rc-change-size-new' => '$1 octèt{{PLURAL:$1||s}} aprés changement',
 'newsectionsummary' => '/* $1 */ novèla sèccion',
-'rc-enhanced-expand' => 'Montrar los dètalys (at fôta de JavaScript)',
+'rc-enhanced-expand' => 'Fâre vêre los dètalys',
 'rc-enhanced-hide' => 'Cachiér los dètalys',
 'rc-old-title' => 'fêta avouéc lo titro originâl « $1 »',
 
@@ -2632,9 +2626,9 @@ $1',
 'contributions' => 'Contribucions de l’utilisat{{GENDER:$1|or|rice}}',
 'contributions-title' => 'Lista de les contribucions a l’usanciér $1',
 'mycontris' => 'Contribucions',
-'contribsub2' => 'Por $1 ($2)',
+'contribsub2' => 'Por {{GENDER:$3|$1}} ($2)',
 'nocontribs' => 'Y at gins de changement que corrèspond a cetos critèros.',
-'uctop' => '(dèrriére)',
+'uctop' => '(d’ora)',
 'month' => 'Dês lo mês (et devant) :',
 'year' => 'Dês l’an (et devant) :',
 
@@ -3234,7 +3228,7 @@ Se vos l’ègzécutâd, voutron sistèmo pôt étre compromês.",
 'file-nohires' => 'Gins de rèsolucion ples hôta disponibla.',
 'svg-long-desc' => 'Fichiér SVG, rèsolucion de $1 × $2 pixèls, talye : $3',
 'svg-long-error' => 'Fichiér SVG envalido : $1',
-'show-big-image' => 'Émâge en rèsolucion ples hôta',
+'show-big-image' => 'Fichiér d’origina',
 'show-big-image-preview' => 'Talye de ceti apèrçu : $1.',
 'show-big-image-other' => '{{PLURAL:$2|Ôtra rèsolucion|Ôtres rèsolucions}} : $1.',
 'show-big-image-size' => '$1 × $2 pixèls',
index 6aa99a5..b4c9a9c 100644 (file)
@@ -268,7 +268,6 @@ $1',
 'disclaimers' => 'Disclaimers',
 'disclaimerpage' => 'Project:Disclaimers',
 'edithelp' => "Halep bi't bewerkin",
-'helppage' => 'Help:Auersicht',
 'mainpage' => 'Hoodsidj',
 'mainpage-description' => 'Hoodsidj',
 'policy-url' => 'Project:Reegeln',
@@ -470,8 +469,7 @@ Ferjid det ei, an aachte üüb din [[Special:Preferences|{{SITENAME}} iinstelang
 'gotaccountlink' => 'Uunmelde',
 'userlogin-resetlink' => 'Heest dü din login dooten ferjiden?',
 'userlogin-resetpassword-link' => 'Paaswurd ferjiden?',
-'helplogin-url' => 'Help:Uunmelde',
-'userlogin-helplink' => "[[{{MediaWiki:helplogin-url}}|Halep bi't uunmeldin]]",
+'userlogin-helplink2' => "Halep bi't uunmeldin",
 'userlogin-loggedin' => 'Du beest al üs {{GENDER:$1|$1}} uunmeldet.
 Brük det formulaar diar oner, am di mä en öödern nööm uuntumeldin.',
 'userlogin-createanother' => 'En ööder brükerkonto iinracht',
@@ -566,6 +564,10 @@ Wees so gud an teew $1, iar dü det noch ans ferschükst.',
 '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.',
 'createacct-another-realname-tip' => 'Stäänt tu wool. Wan dü dan rochten nööm uundääst, koon hi mä din feranrangen ferbünjen wurd.',
+'pt-login' => 'Uunmelde',
+'pt-login-button' => 'Uunmelde',
+'pt-createaccount' => 'Brükerkonto iinracht',
+'pt-userlogout' => 'Ufmelde',
 
 # Email sending
 'php-mail-error-unknown' => 'Ünbekäänd feeler mä det funktjuun mail() faan PHP.',
@@ -574,8 +576,7 @@ Wees so gud an teew $1, iar dü det noch ans ferschükst.',
 
 # Change password dialog
 'changepassword' => '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_announce' => 'Am det uunmeldin uftuslütjen, skel dü en nei paaswurd iindu.',
 'resetpass_header' => 'Paaswurd feranre',
 'oldpassword' => 'Ual paaswurd:',
 'newpassword' => 'Nei paaswurd:',
@@ -591,8 +592,16 @@ Wees so gud an teew $1, iar dü det noch ans ferschükst.',
 'resetpass-wrong-oldpass' => 'Detdiar paaswurd docht niks.
 Ferlicht heest dü jüst din paaswurd feranert
 of am en nei paaswurd uunfraaget.',
+'resetpass-recycled' => 'Wees so gud an lei en nei paaswurd fääst.',
+'resetpass-temp-emailed' => 'Dü heest di mä en tidjwiis code uunmeldet.
+Am det uunmeldin uftuslütjen, lei nü en nei paaswurd fääst:',
 'resetpass-temp-password' => 'Tidjwiis paaswurd:',
 'resetpass-abort-generic' => 'Det paaswurd-anerang as ferhanert wurden.',
+'resetpass-expired' => 'Din paaswurd as uflepen. Wees so gud an lei en nei paaswurd fääst.',
+'resetpass-expired-soft' => 'Din paaswurd as uflepen an skal turagsaat wurd. Wees so gud an lei en nei paaswurd fääst of trak üüb "{{int:resetpass-submit-cancel}}", am det leeder turag tu saaten.',
+'resetpass-validity-soft' => 'Din paaswurd gongt ei: $1
+
+Wees so gud an lei en nei paaswurd fääst, of trak üüb "{{int:resetpass-submit-cancel}}" am det leeder turag tu saaten.',
 
 # Special:PasswordReset
 'passwordreset' => 'Paaswurd turagsaat',
@@ -731,7 +740,7 @@ Ferlicht as det stregen of fersköwen wurden, jüst üs dü det sidj bewerke wul
 '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.
+Üüb det [$1 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' => 'Üüb detdiar sidj stäänt noch niks.
@@ -966,9 +975,10 @@ Dü könst di ferskeel uunluke. Wan dü muar wed wel, luke iin uun't [{{fullurl:
 '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 di ferluup an uun a logbuken, man det koon ei arken efterlees.'''
-
-Ööder administratooren üüb {{SITENAME}} kön oober üüb di ferbürgen ferluup tugrip an tu nuad en ual werjuun weder iinstel.",
+'revdelete-text-text' => "Stregen werjuunen bliiw uun't werjuunshistoore, man dialen diarfaan san ei för arken tu sen.",
+'revdelete-text-file' => "Stregen datei-werjuunen bliiw uun't werjuunshistoore, man dialen diarfaan san ei för arken tu sen.",
+'logdelete-text' => 'Stregen logbuk-iindracher bliiw uun a logbuken, man dialen diarfaan san ei för arken tu sen.',
+'revdelete-text-others' => 'Ööder administratooren faan {{SITENAME}} kön widjerhen ales uunluke an kön det uk weder mä detheer spezial-sidj iinstel, wan diar niks ööders uun a wai as.',
 '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
@@ -1101,7 +1111,7 @@ Dü könst det uun't [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'search-file-match' => '(fünjen tekst)',
 'search-suggest' => 'Mendst dü „$1“?',
 'search-interwiki-caption' => 'Saster-projekten',
-'search-interwiki-default' => '$1 resultaaten:',
+'search-interwiki-default' => 'Resultaaten faan $1:',
 'search-interwiki-more' => '(muar)',
 'search-relatedarticle' => 'Ferbünjen',
 'searcheverything-enable' => 'Uun arke nöömrüm schük',
@@ -1425,14 +1435,26 @@ Arken koon det lees.',
 'recentchanges-legend-heading' => "'''Ferklaarang:'''",
 'recentchanges-legend-newpage' => "(luke uk bi't [[Special:NewPages|list mä nei sidjen]])",
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "Diar wurd a feranrangen sant '''$2'''uunwiset (ei muar üs '''$1''' feranrangen).",
+'rcnotefrom' => 'Diar wurd a feranrangen sant <strong>$2</strong>uunwiset (ei muar üs <strong>$1</strong> feranrangen).',
 'rclistfrom' => 'Bluas feranrangen sant $1 wise.',
 'rcshowhideminor' => '$1 letj feranrangen',
+'rcshowhideminor-show' => 'Wise',
+'rcshowhideminor-hide' => 'Fersteeg',
 'rcshowhidebots' => '$1 bots',
+'rcshowhidebots-show' => 'Wise',
+'rcshowhidebots-hide' => 'Fersteeg',
 'rcshowhideliu' => '$1 registriaret brükern',
+'rcshowhideliu-show' => 'Wise',
+'rcshowhideliu-hide' => 'Fersteeg',
 'rcshowhideanons' => '$1 anonüüm brükern',
+'rcshowhideanons-show' => 'Wise',
+'rcshowhideanons-hide' => 'Fersteeg',
 'rcshowhidepatr' => '$1 efterluket feranrangen',
+'rcshowhidepatr-show' => 'Wise',
+'rcshowhidepatr-hide' => 'Fersteeg',
 'rcshowhidemine' => '$1 min bidracher',
+'rcshowhidemine-show' => 'Wise',
+'rcshowhidemine-hide' => 'Fersteeg',
 'rclinks' => 'Wise a leetst $1 feranrangen faan a leetst $2 daar.<br />$3',
 'diff' => 'ferskeel',
 'hist' => 'werjuunen',
@@ -1555,6 +1577,8 @@ Dü skulst hoker fraage, di ferbürgen nöömer uunluke koon, am tu besnaakin, w
 'php-uploaddisabledtext' => 'Det huuchschüüren faan datein as uun PHP ei aktiwiaret.
 Luke di det iinstelang faan <code>file_uploads</code> uun.',
 'uploadscripted' => 'Uun detdiar datei stäänt HTML- of Scriptcode, an küd ütj fersen faan en browser ütjfeerd wurd.',
+'uploadscriptednamespace' => 'Detdiar SVG-datei wiset üüb en ferkiarden nöömrüm "$1".',
+'uploadinvalidxml' => "Det XML uun det huuchschüürd datei küd ei ''parset'' wurd.",
 'uploadvirus' => 'Uun detdiar datei as en wiirus! Details: $1',
 'uploadjava' => 'Detdiar as en ZIP-datei mä en CLASS-datei faan Java.
 Java-datein kön ei tuläät wurd, auer jo det seekerhaid uun fraag stel küd.',
@@ -1791,6 +1815,11 @@ Det formoot as leewen slach/onerslach üs uun det bispal: <code>image/jpeg</code
 # List redirects
 'listredirects' => 'Widjerfeerangen',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'List faan datein mä duplikaaten',
+'listduplicatedfiles-summary' => 'Det as en list mä datein, huar det aktuel werjuun en duplikaat faan en ööder datei as. Det gongt bluas am lokaal datein.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] hää [[$3|{{PLURAL:$2|en duplikaat|$2 duplikaaten}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Ei iinbünjen föörlaagen',
 'unusedtemplatestext' => 'Sidjen uun a {{ns:template}}-nöömrüm, diar ei uun ööder sidjen iinbünjen san.
@@ -1904,6 +1933,7 @@ Uun arke rä stun ferwisangen tu't iarst an ööder widjerfeerang an uk tu det s
 'deadendpagestext' => 'Jodiar sidjen ferwise ei üüb ööder sidjen uun {{SITENAME}}.',
 'protectedpages' => 'Seekert sidjen',
 'protectedpages-indef' => 'Bluas permanent seekert sidjen uunwise',
+'protectedpages-summary' => 'Detdiar sidj feert seekert sidjen ap. En list mä seekert sidjennöömer fanjst dü diar: „[[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]]“.',
 'protectedpages-cascade' => 'Bluas sidjen mä kaskaaden-seekerhaid',
 'protectedpages-noredirect' => 'Widjerfeerangen fersteeg',
 'protectedpagesempty' => 'Uun uugenblak san sok sidjen ei seekert.',
@@ -1916,6 +1946,7 @@ Uun arke rä stun ferwisangen tu't iarst an ööder widjerfeerang an uk tu det s
 'protectedpages-unknown-timestamp' => 'Ünbekäänd',
 'protectedpages-unknown-performer' => 'Ünbekäänd brüker',
 'protectedtitles' => 'Seekert sidjennöömer',
+'protectedtitles-summary' => 'Detdiar sidj feert seekert sidjennöömer ap. En list mä seekert sidjen fanjst dü diar: „[[{{#special:ProtectedPages}}|{{int:protectedpages}}]]“.',
 'protectedtitlesempty' => 'Uun uugenblak san sok sidjen ei speret.',
 'listusers' => 'Brükerfertiaknis',
 'listusers-editsonly' => 'Wise bluas aktiif brükern',
@@ -2178,7 +2209,7 @@ Halep an muar diartu: {{canonicalurl:{{MediaWiki:Helppage}}}}',
 'delete-edit-reasonlist' => "Grünjer för't striken bewerke",
 'delete-toobig' => 'Detdiar sidj hää muar üs $1 {{PLURAL:$1|werjuun|werjuunen}} . Sok sidjen kön ei so gau stregen wurd, ööders san a servers plaat.',
 'delete-warning-toobig' => "Detdiar sidj hää muar üs $1 {{PLURAL:$1|werjuun|werjuunen}} . Det striken koon komer maage bi't dootenbeenk.",
-'deleting-backlinks-warning' => "'''Paase üüb:''' Diar ferwise noch ööder sidjen üüb det sidj, diar dü strik wel. Of det sidj as noch huarööders iinbünjen.",
+'deleting-backlinks-warning' => "'''Paase üüb:''' Diar ferwise noch [[Special:WhatLinksHere/{{FULLPAGENAME}}|ööder sidjen]] üüb det sidj, diar dü strik wel. Of det sidj as noch huarööders iinbünjen.",
 
 # Rollback
 'rollback' => 'Feranrangen turagsaat',
@@ -2350,8 +2381,10 @@ $1",
 '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' => 'Schük efter brükerbidracher',
+'sp-contributions-suppresslog' => 'Ei uunwiset brüker-bidracher',
 'sp-contributions-username' => 'IP-adres of brükernööm:',
 'sp-contributions-toponly' => 'Bluas aktuel werjuunen wise',
+'sp-contributions-newonly' => 'Bluas nei maaget sidjen wise',
 'sp-contributions-submit' => 'Schük',
 
 # What links here
@@ -3838,6 +3871,4 @@ Uk parser-funktjuunen liküs <code><nowiki>{{</nowiki>#language:…}}</code> an
 'expand_templates_generate_rawhtml' => 'Rä HTML uunwise',
 'expand_templates_preview' => 'Föörskau',
 
-# Unknown messages
-'uploadinvalidxml' => "Det XML uun det huuchschüürd datei küd ei ''parset'' wurd.",
 );
index 1bfd79a..04a36e2 100644 (file)
@@ -364,7 +364,6 @@ $1',
 'disclaimers' => 'Avîs legâi',
 'disclaimerpage' => 'Project:Avîs gjenerâi',
 'edithelp' => 'Jutori pai cambiaments',
-'helppage' => 'Help:Contignûts',
 'mainpage' => 'Pagjine principâl',
 'mainpage-description' => 'Pagjine principâl',
 'policy-url' => 'Project:Politiche',
@@ -628,7 +627,7 @@ Par plasê inclût la to direzion IP atuâl ($3) o il numar dal bloc (ID #$5) in
 
 La password par cheste identitât e pues jessi cambiade su la pagjine ''[[Special:ChangePassword|cambie password]]'' daspò de jentrade.",
 'newarticle' => '(Gnûf)',
-'newarticletext' => "Tu âs seguît un leam a une pagjine che no esist ancjemò. Par creâ une pagjine, scomence a scrivi tal spazi ca sot (cjale il [[{{MediaWiki:Helppage}}|jutori]] par altris informazions). Se tu sês ca par erôr, frache semplicementri il boton '''Indaûr''' dal to sgarfadôr.",
+'newarticletext' => "Tu âs seguît un leam a une pagjine che no esist ancjemò. Par creâ une pagjine, scomence a scrivi tal spazi ca sot (cjale il [$1 jutori] par altris informazions). Se tu sês ca par erôr, frache semplicementri il boton '''Indaûr''' dal to sgarfadôr.",
 'anontalkpagetext' => "----''Cheste e je la pagjine di discussion di un utent anonim, che nol à ancjemò creât une identitât, o che no la vûl doprâ. Par identificâlu/e a doprin alore la so direzion IP. Lis direzions IP a podin però jessi condividudis di plui utents. Se tu sês un utent anonim e tu crodis che ti vedin fat coments che no si riferissin a ti, par plasê [[Special:UserLogin|cree une gnove identitâ o jentre]] cun chê che tu âs za cussì tu evitarâs in futûr di jessi confondût un altris utents anonims.''",
 'noarticletext' => 'Par cumò nol è nuie in cheste pagjine.
 Tu puedis [[Special:Search/{{PAGENAME}}|cirî chest titul]] in altris pagjinis o <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} cirî i regjistris leâts],
index 7eb33c5..2c2203e 100644 (file)
@@ -378,7 +378,6 @@ $1",
 'disclaimers' => 'Foarbehâld',
 'disclaimerpage' => 'Project:Algemien foarbehâld',
 'edithelp' => 'Bewurk-help',
-'helppage' => 'Help:Help',
 'mainpage' => 'Haadside',
 'mainpage-description' => 'Haadside',
 'policy-url' => 'Project:Belied',
@@ -532,7 +531,6 @@ Guon siden kinne noch foar it ljocht komme, krekt as wiesto noch oanmeld. Asto d
 'gotaccountlink' => 'Oanmelde',
 'userlogin-resetlink' => 'Ynlochdata fergetten?',
 'userlogin-resetpassword-link' => 'Wachtwurd fergetten?',
-'helplogin-url' => 'Help:Oanmelde',
 'createacct-emailrequired' => 'E-mailadres',
 'createacct-emailoptional' => 'E-mailadres (net ferplichte)',
 'createacct-email-ph' => 'E-mailadres ynfiere',
@@ -706,7 +704,7 @@ Jo tsjintwurdich e-postadres is $3 en it útsletnûmer is #$5. Neam beide gegeve
 'newarticle' => '(Nij)',
 'newarticletext' => "Jo hawwe in keppeling folge nei in side dêr't noch gjin tekst op stiet.
 Om sels tekst te meistjsen kinne jo dy gewoan yntype in dit bewurkingsfjild
-([[{{MediaWiki:Helppage}}|Mear ynformaasje oer bewurkjen]].)
+([$1 Mear ynformaasje oer bewurkjen].)
 Oars kinne jo tebek mei de tebek-knop fan jo blêder.",
 'anontalkpagetext' => "----''Dit is de oerlisside fan in ûnbekende meidogger; in meidogger dy't him/har net oanmeld hat. Om't der gjin namme bekend is, wurdt it ynternet-adres brûkt om oan te jaan wa. Mar faak is it sa dat sa'n adres net altyd troch deselde persoan brûkt wurdt. As jo it idee hawwe dat jo as ûnbekende meidogger opmerkings foar in oar krije, dan kinne jo jo [[Special:UserLogin/signup|registrearje]], of jo [[Special:UserLogin|oanmelde]]. Fan in oanmelde meidogger is it ynternet-adres net sichtber, en as oanmelde meidogger krije jo allinnich opmerkings dy't foar josels bedoeld binne.''",
 'noarticletext' => 'Der stjit noch gjin tekst op dizze side. Jo kinne
@@ -873,8 +871,6 @@ der kinne details wêze yn it [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPA
 'revdelete-show-file-submit' => 'Ja',
 'revdelete-selected' => "'''Spesifisearre {{PLURAL:$2|ferzje|ferzjes}} fan [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|keazen lochboekregel|keazen lochboekregels}}:'''",
-'revdelete-text' => "'''Fuorthelle bewurkings binne sichtber yn 'e skiednis, mar de ynhâld is net langer publyk tagonklik.'''
-Oare behearders fan {{SITENAME}} kinne de ferburgen ynhâld benaderje en it fuortheljen ûngedien meitsje mei help fan dit skerm, of der moatte oanfoljende beheinings jilde dy't ynsteld binne troch de systeembehearder.",
 'revdelete-legend' => 'Sichtberensbeheinings ynstelle.',
 'revdelete-hide-text' => 'De bewurke tekst ferskûlje',
 'revdelete-hide-image' => 'Triem ynhâld ferskûlje',
index e581769..a00da24 100644 (file)
@@ -318,7 +318,6 @@ $messages = array(
 'disclaimers' => 'Séanadh',
 'disclaimerpage' => 'Project:Séanadh_ginearálta',
 'edithelp' => 'Cabhair eagarthóireachta',
-'helppage' => 'Help:Clár_ábhair',
 'mainpage' => 'Príomhleathanach',
 'mainpage-description' => 'Príomhleathanach',
 'policy-url' => 'Project:Polasaí',
@@ -624,7 +623,7 @@ Is é $3 do sheoladh IP agus #$5 do ID coisc. Déan tagairt don seoladh seo le g
 'newarticle' => '(Nua)',
 'newarticletext' => "Lean tú nasc chuig leathanach nach bhfuil ann fós.
 Chun an leathanach a chruthú, tosaigh ag clóscríobh sa bhosca thíos
-(féach ar an [[{{MediaWiki:Helppage}}|leathanach cabhrach]] chun a thuilleadh eolais a fháil).
+(féach ar an [$1 leathanach cabhrach] chun a thuilleadh eolais a fháil).
 Má tháinig tú anseo as dearmad, brúigh an cnaipe '''ar ais''' ar do bhrabhsálaí.",
 'anontalkpagetext' => "---- ''Leathanach plé é seo a bhaineann le húsáideoir gan ainm nár chruthaigh cuntas fós, nó nach bhfuil ag úsáid an chuntais. Dá bhrí sin, caithfimid an seoladh IP a úsáid chun é/í a (h)ionannú. Is féidir le níos mó ná úsáideoir amháin an seoladh IP céanna a úsáid. Má tá tú i d'úsáideoir gan ainm agus má cheapann tú go bhfuil teachtaireachtaí nach mbaineann leat seolta chugat, [[Special:UserLogin|cruthaigh cuntas]] nó [[Special:UserLogin|logáil isteach]] chun mearbhall le húsáideoirí eile gan ainmneacha a éalú amach anseo.''",
 'noarticletext' => 'Níl aon téacs ar an leathanach seo faoi láthair.
index 0b11a8f..04f3410 100644 (file)
@@ -281,7 +281,6 @@ $messages = array(
 'disclaimers' => 'Cuvapçılık reti',
 'disclaimerpage' => 'Project:Genel cuvapçılık reti',
 'edithelp' => 'Nesoy var nicä diiştirmää?',
-'helppage' => 'Help:İçindekilär',
 'mainpage' => 'Baş yaprak',
 'mainpage-description' => 'Baş yaprak',
 'policy-url' => 'Project:Politika',
@@ -470,7 +469,7 @@ Herliim girmediniz [[Special:Preferences|seçimner]] bölümünde geçerli bir e
 'accmailtitle' => 'Parol gönderildi.',
 'accmailtext' => '[[User talk:$1|$1]] kullanıcısın parolu $2 adresine gönderildi.',
 'newarticle' => '(Eni)',
-'newarticletext' => "Henez var olmayan bir sayfaya konulmuş baalantıya tuşladınız. Bu sayfayı yaratmaa deyni aşaadaki tekst kutusunu kullanınız. Bilgi için [[{{MediaWiki:Helppage}}|yardım sayfasına]] bakınız. Herliim buraya yannış geldiniz, läazım tuşlamaa programınızın '''Geeri''' tuşuna.",
+'newarticletext' => "Henez var olmayan bir sayfaya konulmuş baalantıya tuşladınız. Bu sayfayı yaratmaa deyni aşaadaki tekst kutusunu kullanınız. Bilgi için [$1 yardım sayfasına] bakınız. Herliim buraya yannış geldiniz, läazım tuşlamaa programınızın '''Geeri''' tuşuna.",
 'noarticletext' => 'Bu sayfa boş.
 Bu başlıı [[Special:Search/{{PAGENAME}}|var nicä aramaa]] übür sayfalarda yaki bu sayfayı siz <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ilgili günlükleri arayabilir], ya [{{fullurl:{{FULLPAGENAME}}|action=edit}} var nicä yazmaa]</span>.',
 'updated' => '(Enilendi)',
index 62b8e38..b813c85 100644 (file)
@@ -179,7 +179,7 @@ $messages = array(
 'vector-action-move' => '移吥',
 'vector-action-protect' => '护到',
 'vector-action-undelete' => '望下删吥𠮶页面',
-'vector-action-unprotect' => '解除保护',
+'vector-action-unprotect' => '更改保护',
 'vector-view-create' => '创建',
 'vector-view-edit' => '编辑',
 'vector-view-history' => '望下历史',
@@ -260,7 +260,6 @@ $1',
 'disclaimers' => '免责声明',
 'disclaimerpage' => 'Project:免责声明',
 'edithelp' => '编写帮助',
-'helppage' => 'Help:说明',
 'mainpage' => '封面',
 'mainpage-description' => '封面',
 'policy-url' => 'Project:政策',
@@ -516,7 +515,7 @@ $2',
 'accmailtext' => "'$1'𠮶密码发到$2嘞。",
 'newarticle' => '(新)',
 'newarticletext' => '个系只冇拕建立𠮶页面。
-要新开个只页面,请到下首𠮶方框里头编写内容(望吖[[{{MediaWiki:Helppage}}|说明]]𠮶细节)。
+要新开个只页面,请到下首𠮶方框里头编写内容(望吖[$1 说明]𠮶细节)。
 若系汝伓系特事来到个首,捺吖浏览器𠮶「去还」键即得去还。',
 'anontalkpagetext' => "---- ''个系匿名用户𠮶讨论页,话伓定佢哈冇开只帐户。别人单用得正IP地址同佢联系。个只IP地址可能有好几只用户共用。如果倷系匿名用户,觉得个页𠮶内容同倷冇关,欢迎去[[Special:UserLogin|开只新帐户或登入]],省得同别𠮶匿名用户扤混来。''",
 'noarticletext' => '眼下个页哈冇内容,倷可以到别𠮶页面[[Special:Search/{{PAGENAME}}|寻吖个页𠮶标题]],
@@ -621,7 +620,7 @@ $2',
 'cur' => '眼前',
 'next' => '之后',
 'last' => '之前',
-'page_first' => '最',
+'page_first' => '最',
 'page_last' => '最晏',
 'histlegend' => '差异选择: 标到伓同版本𠮶单选键,接到按吖督上𠮶键比较下。<br />
 说明: (眼下) 指同目前版本𠮶比较,(之前) 指同之前修改版本𠮶比较,细 = 细修改。',
@@ -651,9 +650,6 @@ $2',
 'revdelete-nooldid-text' => '倷冇话个只操作𠮶目标修改。',
 'revdelete-selected' => "'''拣[[:$1]]𠮶$2回修订:'''",
 'logdelete-selected' => "'''拣'''$1'''𠮶$2只日志事件:'''",
-'revdelete-text' => "'''删吥𠮶改动哈会到页面历史里头显示, 但公众浏览伓正佢𠮶内容。'''
-
-个站别𠮶管理员哈系能眵吖弆到𠮶内容,同到通过同佢一样𠮶界面恢复删除,除非设正嘞附加𠮶限制。",
 'revdelete-legend' => '设置可见性𠮶限制',
 'revdelete-hide-text' => '弆到修改内容',
 'revdelete-hide-image' => '弆到档内容',
@@ -1608,7 +1604,7 @@ Please visit [https://www.mediawiki.org/wiki/Localisation MediaWiki Localisation
 'importlogpagetext' => '管理员由别𠮶 wiki 导入页面同到佢俚𠮶编辑历史记录。',
 'import-logentry-upload' => '通过档案上传导入𠮶[[$1]]',
 'import-logentry-upload-detail' => '$1只修改',
-'import-logentry-interwiki' => '跨wiki $1',
+'import-logentry-interwiki' => '跨wiki$1',
 'import-logentry-interwiki-detail' => '$2𠮶$1只修改',
 
 # Tooltip help for the actions
index cc3c174..eedd32c 100644 (file)
@@ -13,6 +13,7 @@
  * @author Symane
  * @author Urhixidur
  * @author Vipuser
+ * @author Xiaomingyan
  */
 
 $fallback = 'zh-hant, zh-hans';
@@ -281,7 +282,6 @@ $1',
 'disclaimers' => '免責聲明',
 'disclaimerpage' => 'Project:免責聲明',
 'edithelp' => '編寫幫助',
-'helppage' => 'Help:説明',
 'mainpage' => '封面',
 'mainpage-description' => '封面',
 'policy-url' => 'Project:政策',
@@ -537,7 +537,7 @@ $2',
 'accmailtext' => "'$1'嗰密碼發到$2嘞。",
 'newarticle' => '(新)',
 'newarticletext' => '箇係隻冇拕建立嗰頁面。
-要新開箇隻頁面,請到下首嗰方框裡頭編寫內容(望吖[[{{MediaWiki:Helppage}}|説明]]嗰細節)。
+要新開箇隻頁面,請到下首嗰方框裡頭編寫內容(望吖[$1 説明]嗰細節)。
 若係汝伓係特事來到箇首,捺吖瀏覽器嗰「去還」鍵即得去還。',
 'anontalkpagetext' => "---- ''箇係匿名用戶嗰討論頁,話伓定佢哈冇開隻帳戶。別人單用得正IP地址同佢聯繫。箇隻IP地址可能有好幾隻用戶共用。如果倷係匿名用戶,覺得箇頁嗰內容同倷冇關,歡迎去[[Special:UserLogin|開隻新帳戶或登入]],省得同別嗰匿名用戶扤混來。''",
 'noarticletext' => '眼下箇頁哈冇內容,汝到別嗰頁面[[Special:Search/{{PAGENAME}}|尋得正箇頁嗰標題]],
@@ -672,9 +672,6 @@ $2',
 'revdelete-nooldid-text' => '倷冇话箇隻操作嗰目标修改。',
 'revdelete-selected' => "'''揀[[:$1]]嗰$2回修訂:'''",
 'logdelete-selected' => "'''揀'''$1'''嗰$2隻日誌事件:'''",
-'revdelete-text' => "'''刪吥嗰改動哈會到頁面歷史裡頭顯示, 但公眾瀏覽伓正佢嗰內容。'''
-
-箇站別嗰管理員哈係能眵吖弆到嗰內容,同到通過同佢一樣嗰界面恢復刪除,除非設正嘞附加嗰限制。",
 'revdelete-legend' => '設置可見性嗰限制',
 'revdelete-hide-text' => '弆到修改內容',
 'revdelete-hide-image' => '弆到檔內容',
@@ -1629,7 +1626,7 @@ Please visit [https://www.mediawiki.org/wiki/Localisation MediaWiki Localisation
 'importlogpagetext' => '管理員由別嗰 wiki 導入頁面同到佢俚嗰編輯歷史記錄。',
 'import-logentry-upload' => '通過檔案上傳導入嗰[[$1]]',
 'import-logentry-upload-detail' => '$1隻修改',
-'import-logentry-interwiki' => '跨wiki $1',
+'import-logentry-interwiki' => '跨wiki$1',
 'import-logentry-interwiki-detail' => '$2嗰$1隻修改',
 
 # Tooltip help for the actions
index 70f2314..4742384 100644 (file)
@@ -283,7 +283,6 @@ $1",
 'disclaimers' => 'Aithrisean-àichidh',
 'disclaimerpage' => 'Project:Aithris-àichidh choitcheann',
 'edithelp' => 'Cobhair deasachaidh',
-'helppage' => 'Help:Susbaint',
 'mainpage' => 'Prìomh dhuilleag',
 'mainpage-description' => 'Prìomh dhuilleag',
 'policy-url' => 'Project:Poileasaidh',
@@ -482,8 +481,6 @@ Na dìochuimhnich na [[Special:Preferences|roghainnean agad air {{SITENAME}}]] a
 'gotaccountlink' => 'Log a-steach',
 'userlogin-resetlink' => "Na dhìochuimhnich thu d' ainm is facal-faire?",
 'userlogin-resetpassword-link' => 'Na dhìochuimhnich thu am facal-faire agad?',
-'helplogin-url' => "Help:A' clàradh a-steach",
-'userlogin-helplink' => "[[{{MediaWiki:helplogin-url}}|Cobhair leis a' chlàradh a-steach]]",
 'userlogin-loggedin' => 'Chaidh do chlàradh mar {{GENDER:$1|$1}} mu thràth.
 Cleachd am foirm gu h-ìosal airson clàradh a-steach mar chleachdaiche eile.',
 'userlogin-createanother' => 'Cruthaich cunntas eile',
@@ -748,7 +745,7 @@ Dh'fhaoidte gun deach a ghluasad no a sguabadh às fhad 's a bha thu a' coimhead
 Gabhaidh am facal-faire airson a' chunntais ùir seo atharrachadh air an fo ''[[Special:ChangePassword|atharraich facal-faire]]'' as dèidh dhan chleachdaiche clàradh a-steach.",
 'newarticle' => '(Ùr)',
 'newarticletext' => "Lean thu ri ceangal gu duilleag nach eil ann fhathast.
-Cuir teacs sa bhogsa gu h-ìosal gus an duilleag seo a chruthachadh (seall air [[{{MediaWiki:Helppage}}|duilleag na cobharach]] airson barrachd fiosrachaidh).
+Cuir teacs sa bhogsa gu h-ìosal gus an duilleag seo a chruthachadh (seall air [$1 duilleag na cobharach] airson barrachd fiosrachaidh).
 Mura robh dùil agad ris an duilleag seo a ruigsinn, briog air a' phutan '''air ais''' 'nad bhrabhsair.",
 'anontalkpagetext' => "----''Seo an duilleag deasbaireachd aig cleachdaiche gun urra nach do chruthaich cunntas fhathast no nach eil 'ga chleachdadh.
 Feumaidh sinn an àireamh IP aca a chleachdadh air sgàth sin.
@@ -994,8 +991,6 @@ Gheibh thu mion-fhiosrachadh air [{{fullurl:{{#Special:Log}}/suppress|page={{FUL
 'revdelete-show-file-submit' => 'Tha',
 'revdelete-selected' => "'''{{PLURAL:$2|Lèirmheas|Lèirmheasan}} de [[:$1]] a thagh thu:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|An tachartas loga|Na tachartasan loga}} a thagh thu:'''",
-'revdelete-text' => "'''Nochdaidh lèirmheasan is tachartasan fhathast ann an eachdraidh 's logaichean na duilleige ach bidh cuid a shusbaint ann nach fhaic am poball.'''
-Gheibh rianairean eile air {{SITENAME}} greim fhathast air an t-susbaint fhalaichte agus gabhaidh an sguabadh às a neo-dhèanamh a-rithist san aon eadar-aghaidh mur an deach cuingeachaidhean eile a shuidheachadh.",
 'revdelete-confirm' => "Dearbh gu bheil thu airson seo a dhèanamh, gu bheil thu a' tuigsinn na thachras ri linn agus gu bheil thu a' dèanamh seo a-rèir [[{{MediaWiki:Policy-url}}|a' phoileasaidh]].",
 'revdelete-suppress-text' => "Cha bu chòir dhut mùchadh a chleachdadh '''ach''' ann an suidheachaidhean mar seo:
 * Fiosrachadh a dh'fhaodadh a bhith dìteachail
index e7a29a9..8008a20 100644 (file)
@@ -321,7 +321,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Enviádeme ao meu enderezo unha copia das mensaxes de correo electrónico que envíe a outros usuarios',
 'tog-diffonly' => 'Non mostrar o contido da páxina debaixo das diferenzas entre edicións',
 'tog-showhiddencats' => 'Mostrar as categorías ocultas',
-'tog-noconvertlink' => 'Desactivar a conversión dos títulos de ligazón',
 'tog-norollbackdiff' => 'Omitir as diferenzas despois de levar a cabo unha reversión de edicións',
 'tog-useeditwarning' => 'Avisádeme cando deixe unha páxina de edición cos cambios sen gardar',
 'tog-prefershttps' => 'Utilizar unha conexión segura sempre que acceda ao sistema',
@@ -533,7 +532,6 @@ $1',
 'disclaimers' => 'Advertencias',
 'disclaimerpage' => 'Project:Advertencia xeral',
 'edithelp' => 'Axuda de edición',
-'helppage' => 'Help:Axuda',
 'mainpage' => 'Portada',
 'mainpage-description' => 'Portada',
 'policy-url' => 'Project:Políticas e normas',
@@ -733,8 +731,6 @@ Non esqueza personalizar as súas [[Special:Preferences|preferencias de {{SITENA
 'gotaccountlink' => 'Acceda ao sistema',
 'userlogin-resetlink' => 'Esqueceu os seus datos de rexistro?',
 'userlogin-resetpassword-link' => 'Esqueceu o contrasinal?',
-'helplogin-url' => 'Help:Rexistro',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Axuda co rexistro]]',
 'userlogin-loggedin' => 'Xa accedeu ao sistema como {{GENDER:$1|$1}}.
 Utilice o formulario inferior para acceder como outro usuario.',
 'userlogin-createanother' => 'Crear outra conta',
@@ -836,9 +832,9 @@ Por favor, agarde $1 antes de probar outra vez.',
 'suspicious-userlogout' => 'Rexeitouse a súa petición de saír do sistema porque semella que a enviou un navegador roto ou a caché dun proxy.',
 'createacct-another-realname-tip' => 'O nome real é opcional.
 Se escolle dalo utilizarase para atribuír ao usuario o seu traballo.',
-'pt-login' => 'Iniciar sesión',
+'pt-login' => 'Acceder ao sistema',
 'pt-createaccount' => 'Crear unha conta',
-'pt-userlogout' => 'Pechar sesión',
+'pt-userlogout' => 'Saír',
 
 # Email sending
 'php-mail-error-unknown' => 'Erro descoñecido na función mail() do PHP.',
@@ -869,7 +865,7 @@ Para completar o acceso, defina un novo contrasinal aquí:',
 'resetpass-temp-password' => 'Contrasinal temporal:',
 'resetpass-abort-generic' => 'Unha extensión cancelou a modificación do contrasinal.',
 'resetpass-expired' => 'O seu contrasinal caducou. Defina un novo contrasinal para acceder.',
-'resetpass-expired-soft' => 'O seu contrasinal caducou e debe restablecelo. Escolla un novo contrasinal ou prema «Cancelar» para restablecelo máis tarde.',
+'resetpass-expired-soft' => 'O seu contrasinal caducou e debe restablecelo. Escolla un novo contrasinal ou prema en "{{int:resetpass-submit-cancel}}" para restablecelo máis tarde.',
 
 # Special:PasswordReset
 'passwordreset' => 'Restablecer o contrasinal',
@@ -1019,7 +1015,7 @@ Poida que a movesen ou borrasen mentres ollaba a páxina.',
 'accmailtext' => 'Un contrasinal xerado ao chou para [[User talk:$1|$1]] foi enviado a $2. Pode modificarse na páxina de [[Special:ChangePassword|cambio de contrasinais]] tras acceder ao sistema.',
 'newarticle' => '(Novo)',
 'newarticletext' => "Seguiu unha ligazón a unha páxina que aínda non existe.
-Para crear a páxina, comece a escribir na caixa de embaixo (vexa a [[{{MediaWiki:Helppage}}|páxina de axuda]] para obter máis información).
+Para crear a páxina, comece a escribir na caixa de embaixo (vexa a [$1 páxina de axuda] para obter máis información).
 Se chegou aquí por erro, simplemente prema no botón '''atrás''' do seu navegador.",
 'anontalkpagetext' => "----''Esta é a páxina de conversa dun usuario anónimo que aínda non creou unha conta ou que non a usa. Polo tanto, empregamos o enderezo IP para a súa identificación. Este enderezo IP pódeno compartir varios usuarios distintos. Se pensa que foron dirixidos contra a súa persoa comentarios inadecuados, por favor, [[Special:UserLogin/signup|cree unha conta]] ou [[Special:UserLogin|acceda ao sistema]] para evitar futuras confusións con outros usuarios anónimos.''",
 'noarticletext' => 'Actualmente non hai ningún texto nesta páxina.
@@ -1210,7 +1206,7 @@ A razón que deu $3 foi ''$2''.",
 'page_last' => 'derradeira',
 'histlegend' => "Selección de diferenzas: Marque as versións que queira comparar e prema no botón ao final.<br />
 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-fieldset-title' => 'Explorar o historial',
 'history-show-deleted' => 'Borrados soamente',
 'histfirst' => 'as máis antigas',
 'histlast' => 'as máis novas',
@@ -1266,8 +1262,6 @@ función, a revisión especificada non existe ou está intentando agochar a revi
 'revdelete-show-file-submit' => 'Si',
 'revdelete-selected' => "'''{{PLURAL:\$2|Revisión seleccionada|Revisións seleccionadas}} de \"[[:\$1]]\":'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Rexistro de evento seleccionado|Rexistro de eventos seleccionados}}:'''",
-'revdelete-text' => "'''As revisións borradas seguirán aparecendo no historial da páxina e nos rexistros, pero partes do seu contido serán inaccesibles de cara ao público.'''
-Os demais administradores de {{SITENAME}} poderán acceder ao contido agochado e poderán restaurar a páxina de novo a través desta mesma interface, a non ser que se estableza algunha restrición adicional.",
 'revdelete-confirm' => 'Por favor, confirme que quere levar a cabo esta acción, que comprende as consecuencias e que o fai de acordo [[{{MediaWiki:Policy-url}}|coas políticas]].',
 'revdelete-suppress-text' => "A eliminación '''unicamente''' debería utilizarse nos seguintes casos:
 * Información potencialmente difamatoria
@@ -1730,8 +1724,8 @@ Se escolle dalo utilizarase para atribuírlle o seu traballo.',
 'recentchanges-legend-heading' => "'''Lenda:'''",
 'recentchanges-legend-newpage' => '(véxase tamén a [[Special:NewPages|lista de páxinas novas]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "A continuación móstranse os cambios feitos desde o '''$3''' ás '''$4''' (móstranse '''$1''' como máximo).",
-'rclistfrom' => 'Mostrar os cambios novos desde o $1',
+'rcnotefrom' => 'A continuación móstranse os cambios feitos desde o <strong>$3</strong> ás <strong>$4</strong> (móstranse <strong>$1</strong> como máximo).',
+'rclistfrom' => 'Mostrar os cambios novos desde o $3 ás $2',
 'rcshowhideminor' => '$1 as edicións pequenas',
 'rcshowhideminor-show' => 'Mostrar',
 'rcshowhideminor-hide' => 'Agochar',
@@ -1880,7 +1874,7 @@ Debería contactar con alguén capaz de ver os datos de ficheiros borrados para
 'uploaddisabledtext' => 'A carga de ficheiros está desactivada.',
 'php-uploaddisabledtext' => 'As cargas de ficheiros PHP están desactivadas. Por favor, comprobe a característica file_uploads.',
 'uploadscripted' => 'Este ficheiro contén código HTML ou script que pode producir erros ao ser interpretado polo navegador.',
-'uploadscriptednamespace' => "Este ficheiro SVG contén un espazo de nome non permitido '$1'",
+'uploadscriptednamespace' => 'Este ficheiro SVG contén o espazo de nomes non permitido "$1"',
 'uploadinvalidxml' => 'Non se puido analizar o XML do ficheiro cargado.',
 'uploadvirus' => 'O ficheiro contén un virus! Detalles: $1',
 'uploadjava' => 'O ficheiro é un ZIP que contén un ficheiro .class de Java.
@@ -2256,7 +2250,7 @@ As entradas <del>riscadas</del> xa foron resoltas.',
 'deadendpagestext' => 'Estas páxinas non ligan con ningunha outra páxina de {{SITENAME}}.',
 'protectedpages' => 'Páxinas protexidas',
 'protectedpages-indef' => 'Só as proteccións indefinidas',
-'protectedpages-summary' => 'Esta páxina lista páxinas existentes protexidas. Para obter unha lista de páxinas cuxa creación está prohibida, vexa [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Esta páxina lista as páxinas existentes que están protexidas actualmente. Para obter unha lista de páxinas cuxa creación está prohibida, consulte [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Só as proteccións en serie',
 'protectedpages-noredirect' => 'Agochar as redireccións',
 'protectedpagesempty' => 'Actualmente non hai ningunha páxina protexida con eses parámetros.',
@@ -2269,7 +2263,7 @@ As entradas <del>riscadas</del> xa foron resoltas.',
 'protectedpages-unknown-timestamp' => 'Descoñecido',
 'protectedpages-unknown-performer' => 'Usuario descoñecido',
 'protectedtitles' => 'Títulos protexidos',
-'protectedtitles-summary' => 'Esta páxina lista títulos que están prohibidos para páxinas novas. Para obter unha lista de páxinas existentes protexidas, vexa [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Esta páxina lista os títulos que están protexidos actualmente fronte á creación. Para obter unha lista de páxinas existentes protexidas, consulte [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Actualmente non hai ningún título protexido con eses parámetros.',
 'listusers' => 'Lista de usuarios',
 'listusers-editsonly' => 'Mostrar só os usuarios con edicións',
@@ -2546,7 +2540,7 @@ Limitouse a eliminación destas páxinas para previr problemas de funcionamento
 'delete-warning-toobig' => 'Esta páxina conta cun historial de edicións longo, de máis {{PLURAL:$1|dunha revisión|de $1 revisións}}.
 Ao eliminala pódense provocar problemas de funcionamento nas operacións da base de datos de {{SITENAME}};
 proceda con coidado.',
-'deleting-backlinks-warning' => "'''Atención:''' Outras páxinas conteñen unha ligazón ou unha transclusión da páxina que está a piques de borrar.",
+'deleting-backlinks-warning' => "'''Atención:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Outras páxinas]] conteñen unha ligazón ou unha transclusión da páxina que está a piques de borrar.",
 
 # Rollback
 'rollback' => 'Reverter as edicións',
@@ -2723,9 +2717,10 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Este enderezo IP está bloqueado.
 Velaquí está a última entrada do rexistro de bloqueos, por se quere consultala:',
 'sp-contributions-search' => 'Busca de contribucións',
+'sp-contributions-suppresslog' => 'contribucións borradas do usuario',
 'sp-contributions-username' => 'Enderezo IP ou nome de usuario:',
 'sp-contributions-toponly' => 'Mostrar só as últimas revisións',
-'sp-contributions-newonly' => 'Mostrar só edicións que son creacións de páxinas',
+'sp-contributions-newonly' => 'Mostrar só as edicións que crearon páxinas',
 'sp-contributions-submit' => 'Procurar',
 
 # What links here
@@ -3034,7 +3029,7 @@ $2',
 'thumbnail_image-type' => 'Tipo de imaxe non soportado',
 'thumbnail_gd-library' => 'Configuración da libraría GD incompleta: Falta a función $1',
 'thumbnail_image-missing' => 'Parece que falta o ficheiro: $1',
-'thumbnail_image-failure-limit' => 'Producíronse demasiados ($1 ou máis) intentos fallidos recentes de renderizar esta miniatura. Vólvao intentar máis tarde.',
+'thumbnail_image-failure-limit' => 'Producíronse demasiados ($1 ou máis) intentos fallidos recentes de renderizar esta miniatura. Inténteo de novo máis tarde.',
 
 # Special:Import
 'import' => 'Importar páxinas',
@@ -3992,7 +3987,7 @@ Tamén pode [[Special:EditWatchlist|empregar o editor normal]].',
 'version-ext-colheader-credits' => 'Autores',
 'version-license-title' => 'Licenza para $1',
 'version-license-not-found' => 'Non se atopou información detallada de licenza para esta extensión.',
-'version-credits-title' => 'Receñecemento para $1',
+'version-credits-title' => 'Recoñecemento para $1',
 'version-credits-not-found' => 'Non se atopou información detallada de recoñecemento para esta extensión.',
 'version-poweredby-credits' => "Este wiki está desenvolvido por '''[https://www.mediawiki.org/wiki/MediaWiki/gl MediaWiki]''', dereitos de autoría © 2001-$1 $2.",
 'version-poweredby-others' => 'outros',
index e5c248c..2da1db1 100644 (file)
@@ -265,7 +265,6 @@ $1',
 'disclaimers' => 'Ἀποποιήσεις',
 'disclaimerpage' => 'Project:Γενικὴ ἀποποίησις',
 'edithelp' => 'Βοήθεια περὶ τοῦ μεταγράφειν',
-'helppage' => 'Help:Περιεχόμενα',
 'mainpage' => 'Κυρία Δέλτος',
 'mainpage-description' => 'Κυρία Δέλτος',
 'policy-url' => 'Project:Προαίρεσις',
@@ -553,7 +552,7 @@ $2',
 Τὸ σύνθημα τοῦδε τοῦ νέου λογισμοῦ ἔξεστί σοι ἀλλάξειν μέσῳ τῆς δέλτου ὀνόματι ''[[Special:ChangePassword|ἀλλάττειν σύνθημα]]'' κατὰ τὸ συνδεῖσθαι.",
 'newarticle' => '(Νέα)',
 'newarticletext' => "Ἠκολούθησας σύνδεμόν τινα πρὸς δέλτον εἰσέτι μὴ ὑπάρχουσαν.
-Δύνασαι ποιῆσαι τὴν δέλτον, τυπῶν ἐν τῷ κυτίῳ κατωτέρω (ἴδε [[{{MediaWiki:Helppage}}|δέλτον βοηθείας]] διά πλείονας πύστεις).
+Δύνασαι ποιῆσαι τὴν δέλτον, τυπῶν ἐν τῷ κυτίῳ κατωτέρω (ἴδε [$1 δέλτον βοηθείας] διά πλείονας πύστεις).
 Εἰ ὧδε εἶ ἐσφαλμένως, πίεσον τὸ κομβίον τοῦ πλοηγητηρίου σου ὀνόματι '''ὀπίσω (back)'''.",
 'noarticletext' => 'Οὐδὲν ἐν τῇδε τῇ δέλτῳ γεγραμμένον, ἀλλὰ ἔξεστί σοι [[Special:Search/{{PAGENAME}}|δέλτον τινὰ οὕτως ὀνόματι ζητήσειν]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ζητήσειν τοὺς σχετικοὺς καταλόγους],
 ἢ [{{fullurl:{{FULLPAGENAME}}|action=edit}} τήνδε τὴν δέλτον μεταγράψειν]</span>.',
@@ -675,8 +674,6 @@ $2',
 'revdelete-show-file-submit' => 'Ναί',
 'revdelete-selected' => "'''{{PLURAL:$2|Ἐπειλεγμένη ἀναθεώρησις|Ἐπειλεγμέναι ἀναθεωρήσεις}} τοῦ [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Ἐπειλεγμένον γεγονὸς καταλόγου|Ἐπειλεγμένα γεγονὀτα καταλόγου}}:'''",
-'revdelete-text' => "'''Αἱ διαγεγραμμέναι ἀναθεωρήσεις καὶ τὰ γεγονότα ἐμφανίσονται ἐν τῷ ἱστορικῷ τῆς δέλτου καὶ τοῖς καταλόγοις, ὰλλὰ μέρη τοῦ περιεχομένου σφῶν ἔσονται δημοσίως ἀπροσπέλαστα.'''
-Ἐξέσται δὲ ἑτέροις ἐπιτρόποις ἐν τῷ ἱστοτόπῳ {{SITENAME}} προσπελάζειν τῷ κρυμμένῳ περιεχομένῳ καὶ ἐπανιστάναι τόδε δία αὐτῆς τῆς διεπαφῆς ἐὰν μὴ θῶνται πρόσθετοι περιορισμοί τινές.",
 'revdelete-legend' => 'Θέτειν περιορισμοῦς ὁρατότητος',
 'revdelete-hide-text' => 'Κρύπτειν κείμενον ἀναθεωρήσεως',
 'revdelete-hide-image' => 'Κρύπτειν περιεχόμενον ἀρχείου',
index 84a3e21..59a4f1a 100644 (file)
@@ -170,7 +170,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Schick mr Kopie vo de E-Mails, won i andere schick.',
 'tog-diffonly' => 'Numme Versionsunterschiid aazeige, ohni d Syte',
 'tog-showhiddencats' => 'Zeig di versteckte Kategorie',
-'tog-noconvertlink' => 'Konvertierig vum Titel deaktiviere',
 'tog-norollbackdiff' => 'Unterschid noch em Zrucksetze unterdrucke',
 'tog-useeditwarning' => 'Warn mi, wänn I ne Syte verloss mit Bearbeitige, wu nonig gspycheret sin',
 'tog-prefershttps' => 'Wänn aagmäldet, alliwyl e sicheri Verbindig bruuche',
@@ -383,7 +382,6 @@ Di maximal Wartezyt fir e Lock isch umme',
 'disclaimers' => 'Impressum',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Rotschläg fir s Bearbeite',
-'helppage' => 'Help:Hilf',
 'mainpage' => 'Houptsyte',
 'mainpage-description' => 'Houptsyte',
 'policy-url' => 'Project:Leitlinie',
@@ -575,8 +573,6 @@ Vergiss nit, Dyni [[Special:Preferences|{{SITENAME}}-Yystellige]] z ändere.',
 'gotaccountlink' => '»Login fir Benutzer, wu scho aagmäldet sin«',
 'userlogin-resetlink' => 'Hesch Dyy Aamäldedate vergässe?',
 'userlogin-resetpassword-link' => 'Passwort vergässe?',
-'helplogin-url' => 'Help:Aamälde',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hilf bim Aamälde]]',
 'userlogin-loggedin' => 'Du bisch scho as {{GENDER:$1|$1}} aagmäldet.
 Bruuch s Formular unte go Di unter eme andere Benutzername aamälde.',
 'userlogin-createanother' => 'En ander Benutzerkonto aalege',
@@ -836,7 +832,7 @@ S cha syy, ass er verschoben oder glescht woren isch, derwylscht Du d Syte aaglu
 S Passwort fir des nej Benutzerkonto cha uf dr Spezialsyte „[[Special:ChangePassword|Passwort ändere]]“ gänderet wäre.',
 'newarticle' => '(Nej)',
 'newarticletext' => "Du bisch eme Link nogange zuen ere Syte, wu s nid git.
-Zum die Syte aalege, chasch do in däm Chaschte unte aafange schrybe (lueg [[{{MediaWiki:Helppage}}|Hilfe]] fir meh Informatione).
+Zum die Syte aalege, chasch do in däm Chaschte unte aafange schrybe (lueg [$1 Hilfe] fir meh Informatione).
 Wänn do nid hesch welle aane goh, no druck in Dyynem Browser uf '''Zruck'''.",
 'anontalkpagetext' => "----''Des isch e Diskussionssyte vun eme anonyme Benutzer, wu kei Zuegang aagleit het oder wu ne nit bruucht. Sälleweg mien mir di numerisch IP-Adräss bruuche zum ihn oder si z identifiziere. So ne IP-Adräss cha au vu mehrere Benutzer teilt wäre. Wenn Du ne anonyme Benutzer bisch un s Gfiel hesch, ass do irrelevanti Kommentar an di grichtet wäre, derno [[Special:UserLogin/signup|leg e Konto aa]] oder [[Special:UserLogin|mäld di aa]] zum in Zuekumft Verwirrige mit andere anonyme Benutzer z vermyyde.''",
 'noarticletext' => 'Uf däre Syte het s no kei Täxt. Du chasch uf andere Syte [[Special:Search/{{PAGENAME}}|dä Yytrag sueche]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} dr Logbuechyytrag sueche, wo dezue ghert],
@@ -1069,8 +1065,6 @@ Du chasch dää Unterschid allno aaluege; Details het's im [{{fullurl:{{#Special
 'revdelete-show-file-submit' => 'Jo',
 'revdelete-selected' => "'''{{PLURAL:$2|Usgwehlti Version|Usgwehlti Versione}} vu [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Usgwehlte Logbuechyytrag|Usgwehlti Logbuechyytreg}}:'''",
-'revdelete-text' => "'''Dr Inhalt oder anderi Bstandteil vu gleschte Versione chenne nimi aagluegt wäre, si erschyyne aber alno as Yytreg in dr Versiongschicht.'''
-{{SITENAME}}-Ammanne chenne dr Inhalt, wu glescht isch, oder di andre gleschte Bstandteil alno aaluege un au widerherstelle, user s isch feschtgleit, ass d Zuegangsbschränkige au fir Ammanne gälte.",
 'revdelete-confirm' => 'Bitte tue bstetige, ass Du vor hesch, des z mache, d Konsequänze drus verstohsch un s machsch in Inbereinstimmig mit dr [[{{MediaWiki:Policy-url}}|Richtlinie]].',
 'revdelete-suppress-text' => "Unterdruckige sotte '''nume''' in däne Fäll bruucht wäre:
 * Nit aabrochti Informatione
@@ -1498,13 +1492,25 @@ Des isch e frejwilligi Aagab. D Software brucht si go Di aarede un as Hiiwys fir
 'recentchanges-label-plusminus' => 'Di gänderet Sytegreßi (Aazahl in Byte)',
 'recentchanges-legend-newpage' => '(lueg au d [[Special:NewPages|Lischt vu neie Syte]])',
 'rcnotefrom' => 'Des sin d Ändrige syter <b>$2</b> (bis zem <b>$1</b> zeigt).',
-'rclistfrom' => '<small>Nöji Änderige ab $1 aazeige (UTC)</small>',
+'rclistfrom' => 'Nume Änderige syt $3, $2 Uhr zeige.',
 'rcshowhideminor' => 'Chlynigkeite $1',
+'rcshowhideminor-show' => 'aazeige',
+'rcshowhideminor-hide' => 'usblände',
 'rcshowhidebots' => 'Bots $1',
+'rcshowhidebots-show' => 'aazeige',
+'rcshowhidebots-hide' => 'usblände',
 'rcshowhideliu' => 'Regischtrierti Benutzer $1',
+'rcshowhideliu-show' => 'aazeige',
+'rcshowhideliu-hide' => 'usblände',
 'rcshowhideanons' => 'Nid aagmäldete Benutzer $1',
+'rcshowhideanons-show' => 'aazeige',
+'rcshowhideanons-hide' => 'usblände',
 'rcshowhidepatr' => 'Vum Fäldhieter aagluegti Änderige $1',
+'rcshowhidepatr-show' => 'aazeige',
+'rcshowhidepatr-hide' => 'usblände',
 'rcshowhidemine' => 'Eigeni Änderige $1',
+'rcshowhidemine-show' => 'aazeige',
+'rcshowhidemine-hide' => 'usblände',
 'rclinks' => 'Zeig di letschte $1 Änderige vo de vergangene $2 Täg.<br />$3',
 'diff' => 'Unterschid',
 'hist' => 'Versione',
@@ -1629,6 +1635,7 @@ Wänn Du die Datei einewäg wit uffelade, gang bitte zruck un ändere dr Name.
 'uploaddisabledtext' => 'S Uffelade vu Dateie isch deaktiviert.',
 'php-uploaddisabledtext' => 'S Uffelade vu PHP-Dateie isch deaktiviert wore. Bitte iberprief d file_uploads-Yystellig.',
 'uploadscripted' => 'In däre Datei git s HTML- oder Scriptcode, wu fälschligerwyys vun eme Webbrowser usgfiert chennt were.',
+'uploadinvalidxml' => 'S XML in dr uffegladene Datei het nit chenne parst wäre.',
 'uploadvirus' => 'In däre Datei het s e Virus! Detail: $1',
 'uploadjava' => 'Des isch e ZIP-Datei, wu s e CLASS-Datei vu Java din het.
 S Uffelade vu Java-Dateien isch nit gstattet, wel si s Umgoh vu Sicherheitsyyschränkige chennte megli mache.',
@@ -3799,6 +3806,4 @@ Sunscht chasch au s eifach Formular unte nutze. Dyy Kommentar wird, zämme mit D
 'expand_templates_generate_xml' => 'Zeig XML-Parser-Baum',
 'expand_templates_preview' => 'Vorschou',
 
-# Unknown messages
-'uploadinvalidxml' => 'S XML in dr uffegladene Datei het nit chenne parst wäre.',
 );
index c131377..e317b35 100644 (file)
@@ -188,7 +188,6 @@ $messages = array(
 'tog-ccmeonemails' => 'મે અન્યોને મોકલેલા ઇમેલની નકલ મને મોકલો',
 'tog-diffonly' => 'તફાવતની નીચે લેખ ન બતાવશો',
 'tog-showhiddencats' => 'છુપી શ્રેણીઓ દર્શાવો',
-'tog-noconvertlink' => 'Disable link title conversion',
 'tog-norollbackdiff' => 'રોલબેક કર્યા પછીના તફાવતો છુપાવો',
 'tog-useeditwarning' => 'સાચવ્યા વગર જો હું પૃષ્ઠ છોડું તો મને ચેતવણી આપો',
 'tog-prefershttps' => 'સભ્યનામથી પ્રવેશ કર્યો હોય ત્યારે સુરક્ષિત જોડાણ (https) જ વાપરો',
@@ -363,7 +362,7 @@ $messages = array(
 'postcomment' => 'નવો વિભાગ',
 'articlepage' => 'લેખનું પાનું જુઓ',
 'talk' => 'ચર્ચા',
-'views' => 'દેખાવ',
+'views' => 'દેખાવ',
 'toolbox' => 'સાધનો',
 'userpage' => 'સભ્યનું પાનું જુઓ',
 'projectpage' => 'પ્રકલ્પનું પાનું જુઓ',
@@ -403,7 +402,6 @@ $1',
 'disclaimers' => 'જાહેર ઇનકાર',
 'disclaimerpage' => 'Project:સામાન્ય જાહેર ઇનકાર',
 'edithelp' => 'ફેરફારો માટે મદદ',
-'helppage' => 'Help:સૂચિ',
 'mainpage' => 'મુખપૃષ્ઠ',
 'mainpage-description' => 'મુખપૃષ્ઠ',
 'policy-url' => 'Project:નીતિ',
@@ -434,7 +432,7 @@ $1',
 'viewsourceold' => 'સ્રોત જુઓ',
 'editlink' => 'ફેરફાર',
 'viewsourcelink' => 'સ્રોત જુઓ',
-'editsectionhint' => 'ફà«\87રફાર àª\95રà«\8b - àªªàª°àª¿àª\9aà«\8dàª\9bà«\87દ: $1',
+'editsectionhint' => 'પરિàª\9aà«\8dàª\9bà«\87દ àª«à«\87રફાર àª\95રà«\8b: $1',
 'toc' => 'અનુક્રમણિકા',
 'showtoc' => 'બતાવો',
 'hidetoc' => 'છુપાવો',
@@ -455,7 +453,7 @@ $1',
 'sort-ascending' => 'ચડતા ક્રમમાં ગોઠવો',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main' => 'લà«\87àª\96',
+'nstab-main' => 'પાનà«\81àª\82',
 'nstab-user' => 'સભ્ય પાનું',
 'nstab-media' => 'મિડીયા પાનું',
 'nstab-special' => 'ખાસ પાનું',
@@ -601,8 +599,6 @@ $2',
 'gotaccountlink' => 'પ્રવેશ કરો',
 'userlogin-resetlink' => 'પોતાની પ્રવેશ માહિતી ભૂલી ગયા છો?',
 'userlogin-resetpassword-link' => 'તમારો પાસવર્ડ ભૂલી ગયા છો?',
-'helplogin-url' => 'Help:પ્રવેશ માટે',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|પ્રવેશવા માટેની મદદ]]',
 'userlogin-loggedin' => 'તમે પહેલેથી {{GENDER:$1|$1}} તરીકે પ્રવેશ કરેલો જ છે.
 બીજા સભ્ય તરીકે પ્રવેશ કરવા માટે નીચેનું ફોર્મ વાપરો.',
 'userlogin-createanother' => 'બીજું ખાતું બનાવો',
@@ -702,6 +698,9 @@ $2',
 'suspicious-userlogout' => 'લોગ આઉટ કરવાની તમારી વિનંતિ પૂરી ન કરી શકાઇ. એમ લાગે છે કે તેને તૃટિ પામેલ બ્રાઉઝર કે પ્રોક્સી દ્વારા મોકલાઈ હતી.',
 'createacct-another-realname-tip' => 'સાચું નામ મરજીયાત છે.
 જો તમે તે આપવાનું પસંદ કરશો, તો તેનો ઉપયોગ તમે કરેલ યોગદાનનું શ્રેય આપવા માટે થશે.',
+'pt-login' => 'પ્રવેશ કરો',
+'pt-createaccount' => 'ખાતું બનાવો',
+'pt-userlogout' => 'બહાર નીકળો',
 
 # Email sending
 'php-mail-error-unknown' => 'PHPની મેલ() કામગીરીમાં અજ્ઞાત ત્રુટિ',
@@ -710,8 +709,7 @@ $2',
 
 # Change password dialog
 'changepassword' => 'ગુપ્તસંજ્ઞા બદલો',
-'resetpass_announce' => 'તમે હંગામી ઇમેઇલ કોડ સાથે લોગ ઇન કર્યું.
-લોગીંગ પુરૂં કરવા માટે તમારે નવી ગુપ્ત સંજ્ઞા (પાસવર્ડ) આપવો પડશે:',
+'resetpass_announce' => 'પ્રવેશ પૂર્ણ કરવા માટે, તમારે નવો પાસવર્ડ ગોઠવવો જ પડશે.',
 'resetpass_text' => '<!-- અહીં ટેક્સટ ઉમેરો -->',
 'resetpass_header' => 'ખાતાની ગુપ્તસંજ્ઞા બદલો',
 'oldpassword' => 'જુની ગુપ્તસંજ્ઞા:',
@@ -861,7 +859,7 @@ $2
 'accmailtext' => "[[User talk:$1|$1]] માટે રચેલ ગુપ્તસંજ્ઞા $2 ને મોકલાવી દેવાઇ છે. આ નવા ખાતાનીગુપ્તસંજ્ઞા પ્રવેશ કર્યા બાદ ''[[Special:ChangePassword|ગુપ્તસંજ્ઞા બદલો]]'' વાપરીને બદલી શકાશે.",
 'newarticle' => '(નવીન)',
 'newarticletext' => "આપ જે કડીને અનુસરીને અહીં પહોંચ્યા છો તે પાનું અસ્તિત્વમાં નથી.
-<br />નવું પાનું બનાવવા માટે નીચે આપેલા ખાનામાં લખવાનું શરૂ કરો (વધુ માહિતિ માટે [[{{MediaWiki:Helppage}}|મદદ]] જુઓ).
+<br />નવું પાનું બનાવવા માટે નીચે આપેલા ખાનામાં લખવાનું શરૂ કરો (વધુ માહિતિ માટે [$1 મદદ] જુઓ).
 <br />જો આપ ભુલમાં અહીં આવી ગયા હોવ તો, આપનાં બ્રાઉઝર નાં '''બેક''' બટન પર ક્લિક કરીને પાછા વળો.",
 'anontalkpagetext' => "----''આ એક અજ્ઞાત સભ્યનું ચર્ચા પાનું છે જેણે યા તો પોતાનું ખાતું નથી ખોલ્યું યાતો તેને વાપરતો નથી.
 આથી તેને ઓળખવા માટે અમારે સાંખ્યિક  IP સરનામાની મદદ લેવી પડી છે.
@@ -1095,8 +1093,6 @@ $3 દ્વારા અપાયેલ કારણ છે ''$2''",
 'revdelete-show-file-submit' => 'હા',
 'revdelete-selected' => "''' [[:$1]] ના {{PLURAL:$2|પસંદ કરેલ ફેરફાર |પસંદ કરેલ ફેરફારો}}: '''",
 'logdelete-selected' => "'''{{PLURAL:$1|પસંદગી કરેલ લોગ ઘટના | પસંદગી કરેલ લોગ ઘટનાઓ }}:'''",
-'revdelete-text' => "''' રદ્દ કરાયેલ ફેરફારો અને ઘટનાઓ પાનાના ઈતિહાસ અને લોગમાં દેખાશે , પણ તેની અંદરની માહિતી જન સમુદાયથી અદ્રશ્ય રહેશે. '''
-{{SITENAME}} પરના અન્ય પ્રબંધકો આ અદ્રશ્ય માહિતે જોઇ શકશે અને તેને પુનઃ જીવિત કરી શકશે સિવાય કે તેના પર વધારાની પાબંદી ન મુકાઇ હોય.",
 'revdelete-confirm' => 'કૃપયા પુષ્ટિ કરો કે તમે શું કરી રહ્યા છો તેની અને તેના પરિણામોની તમને જાણ છે અને તમે આ બધું  [[{{MediaWiki:Policy-url}}|the policy]] અ6તર્ગત કરી રહ્યાં છો.',
 'revdelete-suppress-text' => "બળ પૂર્વક છુપાવવું \"માત્ર\" આજ સંજોગોમાં કરી શકાશે:
 * સંભવતઃ ભયાજનક માહિતી 
@@ -1208,7 +1204,7 @@ $1",
 'shown-title' => 'પ્રતિ પાને $1 {{PLURAL:$1|પરિણામ|પરિણામો}} બતાવો',
 'viewprevnext' => 'જુઓ: ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "''' આ વિકિ પર  \"[[:\$1]]\" નામે પાનું પહેલેથી અસ્તિત્વમાં છે.'''",
-'searchmenu-new' => "'''આ વિકિ પર \"[[:\$1]]\" નામે પાનું બનાવો!'''",
+'searchmenu-new' => '<strong>આ વિકિ પર "[[:$1]]" પાનું બનાવો!</strong> {{PLURAL:$2|0=|તમારી શોધમાં મળેલ પાનું પણ જુઓ.|તમારી શોધમાં મળેલ પરિણામો પણ જુઓ.}}',
 'searchprofile-articles' => 'લેખનું પાનું',
 'searchprofile-project' => 'મદદ અને યોજના પાનું',
 'searchprofile-images' => 'દ્રશ્ય શ્રાવ્ય માધ્યમ',
@@ -1219,14 +1215,14 @@ $1",
 'searchprofile-images-tooltip' => 'ફાઇલ શોધો',
 'searchprofile-everything-tooltip' => 'બધે જ શોધો (ચર્ચાનાં પાના સહિત)',
 'searchprofile-advanced-tooltip' => 'સ્થાનીય નામસ્થળોમાં શોધો:',
-'search-result-size' => '$1 ({{PLURAL:$2|1 શબ્દ|$2 શબ્દો}})',
+'search-result-size' => '$1 ({{PLURAL:$2| શબ્દ|$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)',
 'search-suggest' => 'શું તમે $1 કહેવા માંગો છો?',
 'search-interwiki-caption' => 'બંધુ પ્રકલ્પ',
-'search-interwiki-default' => '$1 પરીણામો:',
+'search-interwiki-default' => '$1 àª®àª¾àª\82થà«\80 àªªàª°à«\80ણામà«\8b:',
 'search-interwiki-more' => '(વધુ)',
 'search-relatedarticle' => 'શોધ સંબંધિત',
 'searcheverything-enable' => 'નામસ્થળોમાં શોધો:',
@@ -1359,7 +1355,7 @@ HTML નાકું ચકાસો',
 'prefs-displaysearchoptions' => 'પ્રદર્શન વિકલ્પો',
 'prefs-displaywatchlist' => 'પ્રદર્શન વિકલ્પો',
 'prefs-tokenwatchlist' => 'નિશાની',
-'prefs-diffs' => 'ફરàª\95',
+'prefs-diffs' => 'ભà«\87દà«\8b',
 'prefs-help-prefershttps' => 'આ પ્રાથમિકતા તમારા હવે પછીના પ્રવેશથી લાગુ પડશે.',
 
 # User preference: email validation using jQuery
@@ -1543,14 +1539,26 @@ HTML નાકું ચકાસો',
 'recentchanges-label-unpatrolled' => 'આ ફેરફાર હજી ચકાસાયો નથી',
 'recentchanges-label-plusminus' => 'પાનાનું કદ આપેલા અંકો જેટલાં બાઈટ્સ જેટલું બદલ્યુ છે.',
 'recentchanges-legend-newpage' => '([[Special:NewPages|નવા પાનાઓની યાદી]] પણ જુઓ)',
-'rcnotefrom' => "નીચે '''$2'''થી થયેલાં '''$1''' ફેરફારો દર્શાવ્યાં છે.",
+'rcnotefrom' => 'નીચે <strong>$2</strong> થી ફેરફારો દર્શાવેલ છે (<strong>$1</strong> સુધી દર્શાવલે છે).',
 'rclistfrom' => '$1 બાદ થયેલા નવા ફેરફારો બતાવો',
 'rcshowhideminor' => 'નાના ફેરફારો $1',
+'rcshowhideminor-show' => 'બતાવો',
+'rcshowhideminor-hide' => 'છુપાવો',
 'rcshowhidebots' => 'બૉટો $1',
-'rcshowhideliu' => 'લૉગ ઇન થયેલાં સભ્યો $1',
+'rcshowhidebots-show' => 'બતાવો',
+'rcshowhidebots-hide' => 'છુપાવો',
+'rcshowhideliu' => '$1 નોંધણી કરેલ સભ્યો',
+'rcshowhideliu-show' => 'બતાવો',
+'rcshowhideliu-hide' => 'છુપાવો',
 'rcshowhideanons' => 'અનામી સભ્યો $1',
+'rcshowhideanons-show' => 'બતાવો',
+'rcshowhideanons-hide' => 'છુપાવો',
 'rcshowhidepatr' => '$1 ચોકીયાત ફેરફારો',
+'rcshowhidepatr-show' => 'બતાવો',
+'rcshowhidepatr-hide' => 'છુપાવો',
 'rcshowhidemine' => 'મારા ફેરફારો $1',
+'rcshowhidemine-show' => 'બતાવો',
+'rcshowhidemine-hide' => 'છુપાવો',
 'rclinks' => 'છેલ્લાં $2 દિવસમાં થયેલા છેલ્લાં $1 ફેરફારો દર્શાવો<br />$3',
 'diff' => 'ભેદ',
 'hist' => 'ઇતિહાસ',
@@ -2026,6 +2034,10 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization. જુઓ',
 'protectedpages-indef' => 'ફક્ત અનિશ્ચિત સુરક્ષા ધરાવતા પાના',
 'protectedpages-cascade' => 'માત્ર પગથિયામય સુરક્ષા વાળા પગ',
 'protectedpagesempty' => 'આ વિકલ્પો દ્વારા કોઈ પાના સુરક્ષિત કરાયા નથી.',
+'protectedpages-page' => 'પાનું',
+'protectedpages-reason' => 'કારણ',
+'protectedpages-unknown-timestamp' => 'અજ્ઞાત',
+'protectedpages-unknown-performer' => 'અજ્ઞાત સભ્ય',
 'protectedtitles' => 'સંરક્ષિત શીર્ષકો',
 'protectedtitlesempty' => 'આ પરિબળો દ્વારા કોઇ પણ શીર્ષકો સચવાયા નથી.',
 'listusers' => 'સભ્યોની યાદી',
@@ -2585,8 +2597,9 @@ $1',
 'change-blocklink' => 'પ્રતિબંધમાં ફેરફાર કરો',
 'contribslink' => 'યોગદાન',
 'emaillink' => 'ઈ-મેલ મોકલો',
-'autoblocker' => 'તમારા પર સ્વયંચાલિત રીતે રોક લગાવાઇ છે કેમકે તમારો IP હાલમાં "[[User:$1|$1]]" સભ્ય દ્વારા વપરાયો છે.
-તેનું કારણ આ છે : "$2"',
+'autoblocker' => 'તમારા પર સ્વયંચાલિત રીતે રોક લગાવાઇ છે કેમ કે તમારું IP સરનામું હાલમાં "[[User:$1|$1]]" સભ્ય દ્વારા વપરાયેલ છે.
+
+$1નાં પ્રતિબંધનું કારણ "$2" છે',
 'blocklogpage' => 'પ્રતિબંધ સૂચિ',
 'blocklog-showlog' => 'આ સભ્ય પર પહેલા રોક લગાવાઈ છે.
 રોકા લગાવાયેલા સભ્યોની યાદિ આ મુજબ છે',
@@ -2608,7 +2621,7 @@ $1',
 'range_block_disabled' => 'પ્રબંધકના સમૂહીક રોક લગાડવાનો અધિકાર નીષ્ક્રિય',
 'ipb_expiry_invalid' => 'સમાપ્તિનો સમય માન્ય નથી.',
 'ipb_expiry_temp' => 'સંતાડેલા સભ્યનામ પ્રતિબંધનો કાયમી જ હોવા જોઇએ.',
-'ipb_hide_invalid' => 'àª\86 àªªàª¾àª¨àª¾àª¨à«\87 àª\9bà«\81પાવવà«\8b àª¸àª\82ભવ àª¨àª¥à«\80 àª¤à«\87માàª\82 àª\98ણા àª¬àª§àª¾àª\82 àª«à«\87રફારà«\8b àª\9bà«\87',
+'ipb_hide_invalid' => 'àª\86 àª\96ાતાàª\82નà«\87 àª\9bà«\81પાવવાàª\82 àª\85સàª\95à«\8dષમ; àª¤à«\87માàª\82 {{PLURAL:$1|àª\8fàª\95 àª«à«\87રફાર|$1 àª«à«\87રફારà«\8b}} àª\9bà«\87.',
 'ipb_already_blocked' => ' "$1" પહેલેથી પ્રતિબંધિત છે',
 'ipb-needreblock' => '$1 પહેલેથી પ્રતિબંધિત છે.
 તમારે આ સેટીંગ બદલવી છે?',
@@ -2781,6 +2794,7 @@ $1',
 'allmessages-prefix' => 'ઉપસર્ગ દ્વારા અલગ તારવો',
 'allmessages-language' => 'ભાષા:',
 'allmessages-filter-submit' => 'કરો',
+'allmessages-filter-translate' => 'ભાષાંતર કરો',
 
 # Thumbnails
 'thumbnail-more' => 'વિસ્તૃત કરો',
@@ -2872,7 +2886,7 @@ $2',
 'tooltip-pt-preferences' => 'તમારી પસંદગીઓ',
 'tooltip-pt-watchlist' => 'તમે દેખરેખ રાખી રહ્યાં હોવ તેવા પાનાઓની યાદી',
 'tooltip-pt-mycontris' => 'તમારા યોગદાનની યાદી',
-'tooltip-pt-login' => 'àª\86પનà«\87 àª²à«\8bàª\97 àª\87ન કરવા ભલામણ કરવામાં આવે છે, જોકે તે આવશ્યક નથી',
+'tooltip-pt-login' => 'àª\86પનà«\87 àªªà«\8dરવà«\87શ કરવા ભલામણ કરવામાં આવે છે, જોકે તે આવશ્યક નથી',
 'tooltip-pt-logout' => 'બહાર નીકળો/લૉગ આઉટ કરો',
 'tooltip-ca-talk' => 'અનુક્રમણિકાનાં પાના વિષે ચર્ચા',
 'tooltip-ca-edit' => "આપ આ પાનામાં ફેરફાર કરી શકો છો, કાર્ય સુરક્ષિત કરતાં પહેલાં 'ઝલક' બટન ઉપર ક્લિક કરીને જોઇ લેશો",
@@ -2888,8 +2902,8 @@ $2',
 'tooltip-ca-unwatch' => 'આ પાનું તમારી ધ્યાનસૂચીમાંથી કાઢી નાખો',
 'tooltip-search' => '{{SITENAME}} શોધો',
 'tooltip-search-go' => 'આ ચોક્કસ જોડણી વાળુ પાનુ જો અસ્તિત્વમાં હોય તો તેના પર જાવ',
-'tooltip-search-fulltext' => 'àª\86 àª²àª\96ાણ àªµàª¾àª³àª¾ પાનાઓ શોધો',
-'tooltip-p-logo' => 'મુખપૃષ્ઠ',
+'tooltip-search-fulltext' => 'àª\86 àª²àª\96ાણ àª§àª°àª¾àªµàª¤àª¾àª\82 પાનાઓ શોધો',
+'tooltip-p-logo' => 'મુખપૃષ્ઠની મુલાકાત લો',
 'tooltip-n-mainpage' => 'મુખપૃષ્ઠ પર જાઓ',
 'tooltip-n-mainpage-description' => 'મુખ્ય પાના પર જાઓ',
 'tooltip-n-portal' => 'પરિયોજના વિષે, આપ શું કરી શકો અને વસ્તુઓ ક્યાં શોધશો',
@@ -2904,7 +2918,7 @@ $2',
 'tooltip-t-contributions' => 'આ સભ્યનાં યોગદાનોની યાદી જુઓ',
 'tooltip-t-emailuser' => 'આ સભ્યને ઇ-મેલ મોકલો',
 'tooltip-t-upload' => 'ફાઇલ ચડાવો',
-'tooltip-t-specialpages' => 'બધા àª\96ાસ àªªàª¾àª¨àª¾àª\93નà«\80 àª¸à«\82àª\9aિ',
+'tooltip-t-specialpages' => 'બધા àª\96ાસ àªªàª¾àª¨àª¾àª\82àª\93નà«\80 àª¯àª¾àª¦à«\80',
 'tooltip-t-print' => 'આ પાનાની છાપવા માટેની આવૃત્તિ',
 'tooltip-t-permalink' => 'પાનાનાં આ પુનરાવર્તનની સ્થાયી કડી',
 'tooltip-ca-nstab-main' => 'સૂચિ વાળું પાનુ જુઓ',
@@ -3599,6 +3613,10 @@ $5
 'imgmultigo' => 'જાઓ!',
 'imgmultigoto' => 'પાના  $1 પર જાવ',
 
+# Language selector for translatable SVGs
+'img-lang-default' => '(મૂળભુત ભાષા)',
+'img-lang-go' => 'જાઓ',
+
 # Table pager
 'ascending_abbrev' => 'ચડતો ક્ર્મ',
 'descending_abbrev' => 'ઉતરતો ક્ર્મ',
@@ -3679,7 +3697,14 @@ $5
 'version-hook-name' => 'ખૂંટાનું નામ્',
 'version-hook-subscribedby' => 'દ્વ્રારા લાભાન્વીત',
 'version-version' => '(આવૃત્તિ $1)',
-'version-license' => 'પરવાનો',
+'version-license' => 'મીડિઆવિકિ લાયસન્સ',
+'version-ext-license' => 'લાયસન્સ',
+'version-ext-colheader-version' => 'આવૃત્તિ',
+'version-ext-colheader-license' => 'લાયસન્સ',
+'version-ext-colheader-description' => 'વર્ણન',
+'version-ext-colheader-credits' => 'લેખકો',
+'version-license-title' => '$1 માટે લાયસન્સ',
+'version-credits-title' => '$1 માટે યશ',
 'version-poweredby-credits' => "આ વિકિ  '''[https://www.mediawiki.org/ MediaWiki]''' દ્વારા ચાલે છે, પ્રકાશનાધિકાર © 2001-$1 $2.",
 'version-poweredby-others' => 'અન્યો',
 'version-poweredby-translators' => 'ટ્રાન્સલેટવિકિ.નેટ ભાષાંતરકર્તાઓ',
@@ -3716,7 +3741,7 @@ $5
 'fileduplicatesearch-noresults' => ' "$1" નામ ધરાવતી કોઇ ફાઇલ ન મળી',
 
 # Special:SpecialPages
-'specialpages' => 'ખાસ પાનાં',
+'specialpages' => 'ખાસ પાનાં',
 'specialpages-note' => '* નિયમિત ખાસ પાનાં.
 * <span class="mw-specialpagerestricted">પ્રતિબંધિત ખાસ પાનાં.</span>',
 'specialpages-group-maintenance' => 'સમારકામ અહેવાલ',
index 45112ba..ba2a7eb 100644 (file)
@@ -260,7 +260,6 @@ $messages = array(
 'disclaimers' => 'Jiooldeyderyn',
 'disclaimerpage' => 'Project:Obbalys cadjin',
 'edithelp' => 'Cooney reaghee',
-'helppage' => 'Help:Cummal',
 'mainpage' => 'Ard-ghuillag',
 'mainpage-description' => 'Ard-ghuillag',
 'policy-url' => 'Project:Polasee',
@@ -474,7 +473,7 @@ 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.
-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 vel oo geearree yn duillah shoh y chroo, gow toshiaght screeuyn ‘sy chishtey çheu heese jeh shoh (jeeagh er [$1 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 y duillag shoh]] ayns duillagyn elley,
index 4ddfee1..7605a2d 100644 (file)
@@ -266,7 +266,6 @@ $1',
 'disclaimers' => '免責聲明',
 'disclaimerpage' => 'Project:一般免責聲明',
 'edithelp' => '編寫幫手',
-'helppage' => 'Help:目錄',
 'mainpage' => '頭頁',
 'mainpage-description' => '頭頁',
 'policy-url' => 'Project:方針',
@@ -412,7 +411,7 @@ $2',
 'invalidtitle-knownnamespace' => '使用名字空間「$2」與文本「$3」嘅無效標題',
 'invalidtitle-unknownnamespace' => '使用未知名字空間編號$1與文本“$2”嘅無效標題',
 'exception-nologin' => '還吂登入',
-'exception-nologin-text' => '你愛登入本wiki正做得查閲邇頁或進行操作。',
+'exception-nologin-text' => '汝愛[[Special:Userlogin|登入]]本wiki查看邇頁或者進行操作。',
 
 # Virus scanner
 'virus-badscanner' => "損壞設定: 未知嘅病毒掃瞄器: ''$1''",
@@ -420,10 +419,9 @@ $2',
 'virus-unknownscanner' => '還吂知嘅反病毒軟件:',
 
 # Login and logout pages
-'logouttext' => "汝已經登出。
+'logouttext' => "'''汝今下既經登出。'''
 
-汝做得用匿名方式繼續使用{{SITENAME}},或用相同或毋同用戶身份<span class='plainlinks'>[$1 登入]</span>。
-請注意,假使汝再次登入,本頁可能會繼續顯示,直到汝清除瀏覽器緩存。",
+請注意一兜頁面可能還顯示汝係登入狀態,一直到汝清空汝嘅瀏覽器緩存為止。",
 'welcomeuser' => '歡迎,$1!',
 'welcomecreation-msg' => '汝嘅賬號已經建立。
 莫添忘訖設置[[Special:Preferences|{{SITENAME}}嘅個人參數]]。',
@@ -459,14 +457,12 @@ $2',
 'gotaccount' => '已經擁有帳號係無?$1。',
 'gotaccountlink' => '登入',
 'userlogin-resetlink' => '毋記得汝嘅登入信息?',
-'userlogin-resetpassword-link' => '重置爾嘅密碼',
-'helplogin-url' => 'Help:登入',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|登入説明]]',
+'userlogin-resetpassword-link' => '添忘訖汝嘅密碼?',
 'createacct-join' => '輸入汝嘅基本資料:',
 'createacct-emailrequired' => '電郵地址:',
 'createacct-emailoptional' => '電郵地址(可選)',
 'createacct-email-ph' => '設置電郵地址',
-'createaccountmail' => '使用一隻臨時嘅隨機密碼,並發送其到以下指定嘅電子郵件地址',
+'createaccountmail' => '使用一隻臨時嘅隨機密碼,並將其發送到指定嘅電子郵件地址',
 'createacct-realname' => '實名(可選)',
 'createaccountreason' => '原因:',
 'createacct-reason' => '原因',
@@ -502,7 +498,7 @@ $2',
 'passwordtooshort' => '汝嘅密碼毋得少過$1隻字符。',
 'password-name-match' => '汝嘅密碼必須撈汝嘅用戶名毋相同。',
 'password-login-forbidden' => '邇隻用戶名稱及密碼嘅使用係分禁止嘅。',
-'mailmypassword' => '用電郵寄新密碼分亻厓',
+'mailmypassword' => '重設密碼',
 'passwordremindertitle' => '{{SITENAME}}嘅新臨時密碼',
 'passwordremindertext' => '有人(可能係汝本人,來自IP地址$1)已請求{{SITENAME}}嘅新密碼 ($4)。
 用戶"$2"嘅一隻新臨時密碼今下已分設定好為"$3"。
@@ -516,13 +512,14 @@ $2',
 'passwordsent' => '用戶“$1”嘅新密碼已經寄到所登記嘅電子郵件地址。
 請在收到後再登入。',
 'blocked-mailpassword' => '汝嘅IP地址處於查封狀態故所毋允許編輯,為矣安全起見,密碼恢復功能已分禁用。',
-'eauthentsent' => '一封確認信已經發送到推薦地址。在發送其它郵件到邇隻賬戶前,汝必須首先按照邇封信肚嘅指導確認邇隻電子郵件信箱真實有效。',
+'eauthentsent' => '一封確認信已經發送到汝設定嘅電郵地址。
+在任何其他郵件發到賬戶之前,汝必須首先照邇封信嘅指示,確認介隻賬戶確實係汝嘅。',
 'throttled-mailpassword' => '密碼提醒已經在最近$1小時內發送。
 為防止濫用,限定在$1小時內僅發送一次密碼提醒。',
 'mailerror' => '發送郵件出差錯:$1',
 'acct_creation_throttle_hit' => '在邇隻wiki上係話訪客利用汝个IP地址在昨天創建矣$1個賬戶,係在邇段時間肚的上限。
 結果利用這個IP地址个訪客在邇段時間中無辦法創建更多个賬戶。',
-'emailauthenticated' => '汝嘅電郵地址已經於$2 $3確認有效。',
+'emailauthenticated' => '汝嘅電郵地址已經於$2 $3確認。',
 'emailnotauthenticated' => '汝嘅郵箱地址<strong>還無分認証</strong>。以下功能將毋會發送任何郵件。',
 'noemailprefs' => '在嘅嘅偏好設定肚指定一隻電子郵件地址來使用邇隻功能。',
 'emailconfirmlink' => '確認汝嘅郵箱地址',
@@ -641,7 +638,7 @@ Liá-chhṳ chhà-fûng he yù $1 só fûng ke. Tông-chûng ke ngièn-yîn he '
 'accmailtext' => "'$1' ke pi-me̍t yí-kîn ki-kî to $2.",
 'newarticle' => '(新)',
 'newarticletext' => '汝入到矣一隻還吂建立嘅頁面。
-愛建立本頁面,請在下面嘅編寫框肚輸入內容(詳情參詳[[{{MediaWiki:Helppage}}|幫手]])。
+愛建立本頁面,請在下面嘅編寫框肚輸入內容(詳情參詳[$1 幫手])。
 係講汝係毋小心來到本頁面,直接點擊汝嘅瀏覽器肚嘅“轉頭”撳掣轉頭。',
 'anontalkpagetext' => "---- ''Liá-he yit-ke hàn-mò kien-li̍p chong-ho ke ngia̍k-miàng yung-fu ke tui-fa-hong. Só-yî chṳ́-nèn yung IP thi-tiám lòi lâu kí lièn-lo̍k. Ke-IP thi-tiám khó-nèn yù-chhai kí-miàng yung-fu khiung-hióng. Kó-yèn ngì-he yit-miàng ngia̍k-miàng yung-fu ngin-vì pún-hong song ke phìn-lî kiên ngì mò-kôan, chhiáng [[Special:UserLogin|Chhóng-kien sîn chong-ho fe̍t-chá Tên-ngi̍p]] khó-yî phit-miên lòi-yì khì-thâ ngia̍k-miàng yung-fu ke fun-lon.''",
 'noarticletext' => '邇頁當前無內容,汝做得在其他頁[[Special:Search/{{PAGENAME}}|搜尋邇頁標題]],
@@ -800,7 +797,6 @@ Liá-chhṳ chhà-fûng he yù $1 só fûng ke. Tông-chûng ke ngièn-yîn he '
 'revdelete-show-file-submit' => '係',
 'revdelete-selected' => "'''選取[[:$1]]嘅$2次修訂:'''",
 'logdelete-selected' => "'''Chhí-chhṳ '''$1''' ke $2-ke ngit-ki hong-muk:'''",
-'revdelete-text' => "'''Chhù-thet ke siû-thin yìn-yèn chiông-voi hién-sṳ chhai vùn-chông li̍t-sṳ́ chûng, than vùn-sṳ nui-yùng yí-kîn put-nèn pûn chung-ngìn fóng-mun.''' Chhai chhṳ́ miong-chham ke khì-thâ kón-lî-yèn chiông chhòi-nèn fóng-mun yún-chhòng ke nui-yùng pin theu-ko siông-thùng ke kie-mien fî-fu̍k chhù-hi, chhù-fî miong-chham kûng-chok-chá chin-hàng han-chṳ.",
 'revdelete-legend' => 'Sat-thin siû-thin han-chṳ:',
 'revdelete-hide-text' => '隱藏修訂版本文字',
 'revdelete-hide-image' => '隱藏文件內容',
index c31eed9..f6e1dd2 100644 (file)
@@ -89,43 +89,43 @@ $magicWords = array(
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Kahalalo i nā loulou:',
-'tog-hideminor' => 'E hoʻohūnā i nā ho‘opololei iki ma nā loli hou',
-'tog-hidepatrolled' => 'E hoʻohūnā i nā loli kiaʻi kaʻahele i loko o nā lolina hanawale',
+'tog-hideminor' => 'E hoʻohūnā i nā ho‘ololi iki ma nā loli hou',
+'tog-hidepatrolled' => 'E hoʻohūnā i nā loli kiaʻi kaʻahele ma nā loli hou',
 'tog-newpageshidepatrolled' => 'E hoʻohūnā i nā ʻaoʻao kiaʻi kaʻahele mai ka papahelu ʻaoʻao hou',
-'tog-extendwatchlist' => 'E hoʻākea i ka papa nānā pono no ka hōʻike ʻana i nā loli apau, ʻaʻole nā mea hanawale wale nō',
-'tog-usenewrc' => 'Nā lolina hui mao ka ʻaoʻao ma loko o lolina hanawale a me ka papa nānā pono',
+'tog-extendwatchlist' => 'E hoʻākea i ka papakiaʻi no ka hōʻike ʻana i nā loli apau, ʻaʻole nā mea hanawale wale nō',
+'tog-usenewrc' => 'Nā loli hui mao ka ʻaoʻao ma loko o ka loli hou a me ka papakiaʻi',
 'tog-numberheadings' => 'E hikahelu i nā poʻo',
 'tog-showtoolbar' => 'E hōʻike i ka pahu hāmeʻa hoʻololi',
 'tog-editondblclick' => 'E ho‘ololi i nā ‘ao‘ao me ke kōmi pālua',
 'tog-editsectiononrightclick' => 'E hoʻokuʻu i ka hoʻololi mahele mao ka paʻina ʻākau ma nā poʻoinoa māhele',
 'tog-rememberpassword' => 'E hoʻomanaʻo iaʻu ma kēia lolo uila (no ka palena nui o $1 {{PLURAL:$1|lā|mau lā}})',
-'tog-watchcreations' => 'E ho‘ohui i nā ‘ao‘ao aʻu i hana ai a me nā faila aʻu i hoʻouka ai i ka‘u papa nānā pono',
-'tog-watchdefault' => 'E ho‘ohui i nā ‘ao‘ao a me nā faila aʻu e hoʻololi ai i ka‘u papa nānā pono',
-'tog-watchmoves' => 'E ho‘ohui i nā ‘ao‘ao a me nā faila aʻu e ne‘e ai i ka‘u papa nānā pono',
-'tog-watchdeletion' => 'E ho‘ohui i nā ‘ao‘ao a me nā faila aʻu e holoi ai i ka‘u papa nānā pono',
-'tog-minordefault' => 'E kaha i nā loli apau i ka loli liʻi mao ka paʻamau',
+'tog-watchcreations' => 'E ho‘ohui i nā ‘ao‘ao aʻu i hana ai a me nā waihona aʻu i hoʻouka ai i ka‘u papakiaʻi',
+'tog-watchdefault' => 'E ho‘ohui i nā ‘ao‘ao a me nā waihona aʻu e hoʻololi ai i ka‘u papakiaʻi',
+'tog-watchmoves' => 'E ho‘ohui i nā ‘ao‘ao a me nā waihona aʻu e ne‘e ai i ka‘u papakiaʻi',
+'tog-watchdeletion' => 'E ho‘ohui i nā ‘ao‘ao a me nā waihona aʻu e holoi ai i ka‘u papakiaʻi',
+'tog-minordefault' => 'E kaha i nā loli apau i ka loli iki mao ka paʻamau',
 'tog-previewontop' => 'E hō‘ike i ka nāmua mamua o ka pahu hoʻololi',
 'tog-previewonfirst' => 'E hō‘ike i ka nāmua ma ka ho‘ololi mua',
-'tog-enotifwatchlistpages' => 'E leka uila iaʻu i ka loli ʻana o kekahi faila aiʻole kekahi ʻaoʻao ma kaʻu papa nānā pono',
-'tog-enotifusertalkpages' => 'E leka uila iaʻu i ka loli ʻana o kaʻu ʻaoʻao kūkākūkā',
-'tog-enotifminoredits' => 'E leka uila iaʻu no nā loli liʻi o nā ʻaoʻao a me nā faila',
-'tog-enotifrevealaddr' => 'E hō‘ike i ko‘u leka uila ma nā leka uila hō‘ike',
+'tog-enotifwatchlistpages' => 'E leka uila iaʻu i ka loli ʻana o kekahi waihona aiʻole kekahi ʻaoʻao ma kaʻu papakiaʻi',
+'tog-enotifusertalkpages' => 'E leka uila iaʻu i ka loli ʻana o kaʻu ʻaoʻao walaʻau',
+'tog-enotifminoredits' => 'E leka uila iaʻu no nā loli iki o nā ʻaoʻao a me nā waihona',
+'tog-enotifrevealaddr' => 'E hō‘ike i kaʻu wahinoho lekauila ma nā lekauila notikala',
 'tog-shownumberswatching' => 'E hō‘ike i ka helu o nā mea ho‘ohana e nānā nei',
 'tog-oldsig' => 'Pūlima hananei:',
 'tog-fancysig' => 'E hana i ka pūlima me he wikitext (me ʻole i ka loulou hanawale)',
 'tog-uselivepreview' => 'E hana i ka nāmua ʻānō (hoʻokolohua)',
 'tog-forceeditsummary' => 'E kono iaʻu i ka hoʻokomo ʻana i kekahi hōʻuluʻulu manaʻo hoʻololi hou',
-'tog-watchlisthideown' => 'E hoʻohūnā i ko‘u mau ho‘ololi mai ka papa nānā pono',
-'tog-watchlisthidebots' => 'E hoʻohūnā i nā loli o nā lopako mai ka papa nānā pono',
-'tog-watchlisthideminor' => 'E hoʻohūnā i nā loli iki mai ka papa nānā pono',
-'tog-watchlisthideliu' => 'E hoʻohūnā i nā loli e nā mea hoʻohana ʻeʻeia mai ka papa nānā pono',
-'tog-watchlisthideanons' => 'E hoʻohūnā i nā loli e nā mea hoʻohana inoaʻole mai ka papa nānā pono',
-'tog-watchlisthidepatrolled' => 'E hoʻohūnā i nā loli kiaʻi kaʻahele mai ka papa nānā pono',
-'tog-ccmeonemails' => 'E hoʻouna mai i nā kope o nā leka uila aʻu i hāʻawi ai i kekahi mau mea hoʻohana.',
-'tog-diffonly' => 'Mai hōʻike i nā mealoko ʻaoʻao ma lolo o ka pōlamu difē',
-'tog-showhiddencats' => 'E hōʻike i nā māhele huna',
-'tog-norollbackdiff' => 'E wehe i ka pōlamu difē ma hope o ka hana hoʻimua',
-'tog-useeditwarning' => 'E aʻo mai iaʻu i kaʻu haʻalele ʻana i ka ʻaoʻao hoʻololi inā loaʻa i nā loli mālamaia ʻole',
+'tog-watchlisthideown' => 'E hoʻohūnā i ko‘u mau ho‘ololi mai ka papakiaʻi',
+'tog-watchlisthidebots' => 'E hoʻohūnā i nā loli o nā lopako mai ka papakiaʻi',
+'tog-watchlisthideminor' => 'E hoʻohūnā i nā loli iki mai ka papakiaʻi',
+'tog-watchlisthideliu' => 'E hoʻohūnā i nā loli e nā mea hoʻohana ʻeʻeia mai ka papakiaʻi',
+'tog-watchlisthideanons' => 'E hoʻohūnā i nā loli e nā mea hoʻohana inoaʻole mai ka papakiaʻi',
+'tog-watchlisthidepatrolled' => 'E hoʻohūnā i nā loli kiaʻi kaʻahele mai ka papakiaʻi',
+'tog-ccmeonemails' => 'E hoʻouna mai i nā kope o nā lekauila aʻu i hāʻawi ai i kekahi mau mea hoʻohana ʻē aʻe.',
+'tog-diffonly' => 'Mai hōʻike i nā mealoko ʻaoʻao ma lalo o ka ʻokoʻa',
+'tog-showhiddencats' => 'E hōʻike i nā māhele hūnā',
+'tog-norollbackdiff' => 'E waiho i ka ʻokoʻa ma hope o ka hana hoʻihoʻi',
+'tog-useeditwarning' => 'E aʻo mai iaʻu i kaʻu haʻalele ʻana i ka ʻaoʻao hoʻololi inā loaʻa i nā loli mālama ʻia ʻole',
 'tog-prefershttps' => 'E hana mau i ka hoʻokuʻi paʻa ma loko o ka ʻeʻe ʻana',
 
 'underline-always' => 'I nā manawa apau',
@@ -133,8 +133,8 @@ $messages = array(
 'underline-default' => 'Paʻamau ʻike aiʻole pōlamu pūnaewele',
 
 # Font style option in Special:Preferences
-'editfont-style' => 'E hoʻololi i kahi ʻanohua:',
-'editfont-default' => 'Paʻamau pōlamu pūnaewele',
+'editfont-style' => 'E hoʻololi i kahi kaila hua:',
+'editfont-default' => 'Pōlamu pūnaewele paʻamau',
 'editfont-monospace' => 'Hua pukakahi',
 'editfont-sansserif' => 'Hua Sanā-selifa',
 'editfont-serif' => 'Hua Selifa',
@@ -190,50 +190,59 @@ $messages = array(
 'oct' => 'ʻOk',
 'nov' => 'Now',
 'dec' => 'Kek',
-'january-date' => 'Ianuali $1',
-'february-date' => 'Pepeluali $1',
-'march-date' => 'Malaki $1',
-'april-date' => 'ʻApelila $1',
-'may-date' => 'Mei $1',
-'june-date' => 'Iune $1',
-'july-date' => 'Iulai $1',
-'august-date' => 'ʻAukake $1',
-'september-date' => 'Kepakemapa $1',
-'october-date' => 'ʻOkakopa $1',
-'november-date' => 'Nowemapa $1',
-'december-date' => 'Kēkēmapa $1',
+'january-date' => '$1 Ianuali',
+'february-date' => '$1 Pepeluali',
+'march-date' => '$1 Malaki',
+'april-date' => '$1 ʻApelila',
+'may-date' => '$1 Mei',
+'june-date' => '$1 Iune',
+'july-date' => '$1 Iulai',
+'august-date' => '$1 ʻAukake',
+'september-date' => '$1 Kepakemapa',
+'october-date' => '$1 ʻOkakopa',
+'november-date' => '$1 Nowemapa',
+'december-date' => '$1 Kēkēmapa',
 
 # Categories related messages
-'pagecategories' => '{{PLURAL:$1|Mahele|Māhele}}',
+'pagecategories' => '{{PLURAL:$1|Mahele| mau Māhele}}',
 'category_header' => 'Nā ʻaoʻao i loko o ka mahele "$1"',
-'subcategories' => 'Nā māhele laloiho',
-'category-media-header' => 'Nā pāpaho i loko o ka mahele "$1"',
-'category-empty' => "''ʻAʻohe moʻolelo a me pāpaho o kēia mahele i kēia manawa.''",
-'hidden-categories' => '{{PLURAL:$1|Mahele hūnā|Māhele hūnā}}',
+'subcategories' => 'Nā Māhele kūloko',
+'category-media-header' => 'Nā Pāpaho i loko o ka mahele "$1"',
+'category-empty' => "''ʻAʻohe ʻaoʻao a me pāpaho a kēia mahele i kēia manawa.''",
+'hidden-categories' => '{{PLURAL:$1|mahele hūnā|mau māhele hūnā}}',
 'hidden-category-category' => 'Nā māhele hūnā',
-'listingcontinuesabbrev' => '(ho‘omauia)',
-
-'about' => 'Pilina',
-'newwindow' => '(wehe i loko o kekahi pukaaniani hou)',
+'category-subcat-count' => '{{PLURAL:$2|Hoʻokahi mahele kūloko wale nō o kēia mahele.|Aia {{PLURAL:$1|i kēia mahele kūloko|$1 mau māhele kūloko}} i loko o kēia mahele, $2 ka huina.}}',
+'category-article-count' => '{{PLURAL:$2|Hoʻokahi ʻaoʻao wale nō o kēia mahele.|Aia {{PLURAL:$1|i kēia ʻaoʻao|$1 mau ʻaoʻao}} i loko o kēia mahele, $2 ka huina.}}',
+'category-file-count' => '{{PLURAL:$2|Hoʻokahi waihona wale nō o kēia mahele.|Aia {{PLURAL:$1|i kēia waihona|$1 mau waihona}} i loko o kēia mahele, $2 ka huina.}}',
+'listingcontinuesabbrev' => '(homaʻia)',
+'noindex-category' => 'Nā ʻAoʻao i hoʻopapakuhikuhi kikoʻī ʻia',
+
+'about' => 'No ia',
+'article' => 'ʻAoʻao mealoko',
+'newwindow' => '(wehe ʻia i loko o kekahi pukaaniani hou)',
 'cancel' => 'Ho‘ōki',
 'moredotdotdot' => 'Nā mea ʻē aʻe...',
-'mypage' => 'Ko‘u ‘ao‘ao',
-'mytalk' => 'Ka‘u kūkākūkā',
-'anontalk' => 'Ke kūkākūkā no kēia IP',
+'morenotlisted' => 'ʻAʻole pau kēia papahelu.',
+'mypage' => 'Ka‘u ‘ao‘ao',
+'mytalk' => 'Ka‘u walaʻau',
+'anontalk' => 'Walaʻau no kēia IP',
 'navigation' => 'Kelena',
 'and' => '&#32;a me',
 
 # Cologne Blue skin
-'qbfind' => 'Loa‘a',
+'qbfind' => 'Loa‘a iā',
 'qbbrowse' => 'Kele',
 'qbedit' => 'Hoʻololi',
 'qbpageoptions' => 'Kēia ‘ao‘ao',
 'qbmyoptions' => 'Ka‘u mau ‘ao‘ao',
+'faq' => 'NNP',
+'faqpage' => 'Project:NNP',
 
 # Vector skin
+'vector-action-addsection' => 'Hoʻohui kumuhana',
 'vector-action-delete' => 'Holoi',
-'vector-action-move' => 'Neʻe',
-'vector-action-protect' => 'Hoʻomalu',
+'vector-action-move' => 'E hoʻoneʻe',
+'vector-action-protect' => 'E hoʻomalu',
 'vector-action-undelete' => 'Holoiʻole',
 'vector-action-unprotect' => 'E hoʻololi i ka hoʻomalu',
 'vector-view-create' => 'Haku',
@@ -241,9 +250,11 @@ $messages = array(
 'vector-view-history' => 'Nānā i ka mōʻaukala',
 'vector-view-view' => 'Heluhelu',
 'vector-view-viewsource' => 'Nānā i ke kumu',
-'actions' => 'Hana',
+'actions' => 'Nā Hana',
 'namespaces' => 'Lewainoa',
+'variants' => 'Nā Lolina',
 
+'navigation-heading' => 'Papa kelena',
 'errorpagetitle' => 'Hewa',
 'returnto' => 'Ho‘i iā $1.',
 'tagline' => 'Mai {{SITENAME}}',
@@ -251,11 +262,12 @@ $messages = array(
 'search' => 'Huli',
 'searchbutton' => 'Huli',
 'go' => 'E huli',
-'searcharticle' => 'Hele',
-'history' => 'Mo‘olelo o ka ‘ao‘ao',
+'searcharticle' => 'E huli',
+'history' => 'Mōʻaukala ʻaoʻao',
 'history_short' => 'Mōʻaukala',
+'updatedmarker' => 'ua hoʻopuka hou mahope mai koʻu kipa ʻana mai mua',
 'printableversion' => 'Mana paʻi pono',
-'permalink' => 'Ka loulou paʻa',
+'permalink' => 'Loulou paʻa',
 'print' => 'Pa‘i',
 'view' => 'Nānā',
 'edit' => 'Hoʻololi',
@@ -263,10 +275,10 @@ $messages = array(
 'editthispage' => 'E hoʻololi i kēia ‘ao‘ao',
 'create-this-page' => 'E haku i keia ‘ao‘ao',
 'delete' => 'Holoi',
-'deletethispage' => 'E holoi i kēia mo‘olelo',
+'deletethispage' => 'E holoi i kēia ʻaoʻao',
 'undeletethispage' => 'E holoiʻole i kēia ʻaoʻao',
 'undelete_short' => 'E holoiʻole i {{PLURAL:$1|hoʻokahi loli|$1 mau loli}}',
-'viewdeleted_short' => 'E ʻike i {{{{PLURAL:$1|hoʻokahi loli holoi|$1 mau loli holoi}}',
+'viewdeleted_short' => 'E ʻike i {{PLURAL:$1|hoʻokahi loli holoi|$1 mau loli holoi}}',
 'protect' => 'Hoʻomalu',
 'protect_change' => 'hoʻololi',
 'protectthispage' => 'E ho‘omalu i kēia ‘ao‘ao',
@@ -274,28 +286,29 @@ $messages = array(
 'unprotectthispage' => 'E hoʻololi i ka hoʻomalu o kēia ʻaoʻao',
 'newpage' => '‘Ao‘ao hou',
 'talkpage' => 'Kūkākūkā i keia ‘ao‘ao',
-'talkpagelinktext' => 'Kūkākūkā',
+'talkpagelinktext' => 'Walaʻau',
 'specialpage' => '‘Ao‘ao kūikawā',
 'personaltools' => 'Hāmeʻa ponoʻī',
 'postcomment' => 'Māhele hou',
-'talk' => 'Kūkākūkā',
-'views' => 'Nā nānaina',
+'articlepage' => 'Nānā i ka ʻaoʻao mealoko',
+'talk' => 'walaʻau',
+'views' => 'Nānaina',
 'toolbox' => 'Hāmeʻa',
 'userpage' => 'Nānā i ka ‘ao‘ao mea ho‘ohana',
 'projectpage' => 'Nānā i ka ‘ao‘ao papahana',
-'imagepage' => 'Nānā i ka ‘ao‘ao pāpaho',
-'mediawikipage' => 'Nānā i ka ‘ao‘ao memo',
+'imagepage' => 'Nānā i ka ‘ao‘ao waihona',
+'mediawikipage' => 'Nānā i ka ‘ao‘ao pūlono',
 'templatepage' => 'Nānā i ka ‘ao‘ao anakuhi',
 'viewhelppage' => 'Nānā i ka ‘ao‘ao kōkua',
 'categorypage' => 'Nānā i ka ‘ao‘ao mahele',
 'viewtalkpage' => 'Nānā i ke kūkākūkā',
 'otherlanguages' => 'Ma nā leo ʻē aʻe',
-'redirectedfrom' => '(Hoʻoili hou mai $1)',
-'redirectpagesub' => '‘Ao‘ao hoʻoili hou',
-'lastmodifiedat' => 'Ua hoʻololi ʻia kēia ʻaoʻao ma ka lā $1, i ka manawa $2.',
+'redirectedfrom' => '(Kia hou mai $1)',
+'redirectpagesub' => 'ʻAoʻao kia hou',
+'lastmodifiedat' => 'Ua kāloli ʻia kēia ʻaoʻao i ka lā $1, ma ka hola $2.',
 'viewcount' => 'Ua komo ʻia kēia ʻaoʻao i {{PLURAL:$1|hoʻokahi manawa|$1 mau manawa}}',
 'protectedpage' => '‘Ao‘ao ho‘omalu',
-'jumpto' => 'Lele i:',
+'jumpto' => 'Lele iā:',
 'jumptonavigation' => 'kelena',
 'jumptosearch' => 'huli',
 'view-pool-error' => 'E kala mai, ua hoʻoili nui ʻino nā pūnaewele i kēia manawa. Hoʻāʻo nā mea hoʻohana nui kā e ʻike i kēia ʻaoʻao. E ʻoluʻolu, e kali no kekahi mau minuke a hana hou. 
@@ -304,25 +317,28 @@ $1',
 'pool-errorunknown' => 'Hewa ʻikeʻole',
 
 # 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).
-'aboutsite' => 'E pili ana iā {{SITENAME}}',
-'aboutpage' => 'Project:Pilina',
-'copyrightpage' => '{{ns:project}}:Ponokope',
+'aboutsite' => 'No {{SITENAME}}',
+'aboutpage' => 'Project:No translatewiki.net',
+'copyrightpage' => '{{ns:project}}:Kūleana kope',
 'currentevents' => 'Nūhou',
 'currentevents-url' => 'Project:Nūhou',
 'disclaimers' => 'Nā Akahele',
-'disclaimerpage' => 'Project:Akahele laulaha',
+'disclaimerpage' => 'Project:Akahele Laulaha',
 'edithelp' => 'Kōkua ho‘ololi',
-'helppage' => 'Help:Papakuhikuhi',
-'mainpage' => 'ʻAoʻao kinohi',
-'mainpage-description' => 'ʻAoʻao kinohi',
+'mainpage' => 'Papa Kinohi',
+'mainpage-description' => 'Papa Kinohi',
 'policy-url' => 'Project:Kulekele',
-'portal' => 'Puka kaiāulu',
-'portal-url' => 'Project:Puka kaiāulu',
+'portal' => 'Puka Kaiāulu',
+'portal-url' => 'Project:Puka Kaiāulu',
 'privacy' => 'Kulekele pilikino',
 'privacypage' => 'Project:Kulekele pilikino',
 
 'badaccess' => 'Hewa ‘aena',
 
+'versionrequired' => 'Noi ʻia ka mana $1 o MekiaWiki',
+'versionrequiredtext' => 'Noi ʻia ka mana $1 o MekiaWiki no ka hoʻohana ʻana o kēia ʻaoʻao.
+ʻIke i ka [[Special:Version|ʻaoʻao mana]].',
+
 'ok' => 'Hiki nō',
 'retrievedfrom' => 'Kiʻi ʻia mai "$1"',
 'youhavenewmessages' => '$1 {{PLURAL:$3|kāu}} ($2).',
@@ -333,44 +349,59 @@ $1',
 'youhavenewmessagesmulti' => '$1 kāu',
 'editsection' => 'ho‘ololi',
 'editold' => 'ho‘ololi',
-'viewsourceold' => 'nānā i ke kumu kanawai',
+'viewsourceold' => 'nānā i ke kumu',
 'editlink' => 'hoʻololi',
 'viewsourcelink' => 'nānā i ke kumu',
 'editsectionhint' => 'E hoʻololi i ka paukū: $1',
-'toc' => 'Papakuhikuhi',
+'toc' => 'Nā Mealoko',
 'showtoc' => 'hō‘ike',
 'hidetoc' => 'hoʻohūnā',
 'collapsible-collapse' => 'Hoʻoliʻi',
 'collapsible-expand' => 'Hoʻākea',
-'thisisdeleted' => 'Nānā ai‘ole hō‘āla i $1?',
-'viewdeleted' => 'Nānā i $1?',
+'thisisdeleted' => 'Nānā ai‘ole hō‘āla iā $1?',
+'viewdeleted' => 'Nānā iā $1?',
 'restorelink' => '{{PLURAL:$1|kekahi loli holoi|$1 mau loli holoi}}',
+'feedlinks' => 'Hānaīke:',
 'site-rss-feed' => 'Hānaīke RSS o $1',
 'site-atom-feed' => 'Hānaīke Atom o $1',
 'page-rss-feed' => 'Hānaīke RSS o "$1"',
 'page-atom-feed' => 'Hānaīke Atom o "$1"',
-'red-link-title' => '$1 (hakuia ʻole)',
+'red-link-title' => '$1 (haku ʻia ʻole)',
+'sort-descending' => 'Wae iho',
+'sort-ascending' => 'Wae piʻi',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'ʻAoʻao',
-'nstab-user' => 'Mea ho‘ohana',
-'nstab-media' => 'Pāpaho',
-'nstab-special' => 'ʻaoʻao kūikawā',
-'nstab-project' => 'Papahana',
+'nstab-user' => 'ʻAoʻao mea ho‘ohana',
+'nstab-media' => 'ʻAoʻao Pāpaho',
+'nstab-special' => 'ʻAoʻao kūikawā',
+'nstab-project' => 'ʻAoʻao papahana',
 'nstab-image' => 'Waihona',
-'nstab-mediawiki' => 'Memo',
+'nstab-mediawiki' => 'Pūlono',
 'nstab-template' => 'Anakuhi',
 'nstab-help' => 'Kōkua',
 'nstab-category' => 'Mahele',
 
+# Main script and global functions
+'nosuchaction' => 'ʻAʻohe hana',
+'nosuchspecialpage' => 'ʻAʻohe ʻaoʻao kūikawā',
+
 # General errors
 'error' => 'Hewa',
+'databaseerror' => 'Hewa hōkeo ʻikepili',
 'databaseerror-query' => 'Nīnau: $1',
 'databaseerror-function' => 'Hana: $1',
 'databaseerror-error' => 'Hewa: $1',
-'laggedslavemode' => '<strong>E akahele:</strong> ʻAʻole loaʻa paha i ka ʻaoʻao na hoʻouka hou hanawale.',
+'laggedslavemode' => '<strong>E akahele:</strong> ʻAʻole loaʻa paha i ka ʻaoʻao na hoʻouka hou hou.',
 'readonly' => 'Laka ‘ia ka hōkeo ‘ikepili',
-'missingarticle-diff' => '(Difē: $1, $2)',
+'missing-article' => 'Loaʻa ʻole i ka hōkeo ʻikepili ke kikokikona o ka ʻaoʻao i pono e loaʻa ʻia i kapa ʻia ʻo "$1" $2.
+
+Hana ʻia kēia pilikia e ka hāhai ʻana o kekahi ʻokoʻa kahiko aiʻole i kekahi loulou mōʻaukala i kekahi ʻaoʻao i holoi ʻia.
+
+Inā ʻaʻole ka hana, ua loaʻa paha iā ʻoe i kekahi mū i loko o ka lako pōlamu.
+E ʻoluʻolu, e lono  kēia pilikia i kekahi [[Special:ListUsers/sysop|kahu]], mai poina i ka URL.',
+'missingarticle-rev' => '(kāmua#: $1)',
+'missingarticle-diff' => '(ʻOkoʻa: $1, $2)',
 'internalerror' => 'Hewa koloko',
 'internalerror_info' => 'Hewa koloko:$1',
 'fileappenderrorread' => 'ʻAʻole hiki ke heluhelu iā "$1" ma loko o ka pākuʻi ʻana.',
@@ -381,11 +412,16 @@ $1',
 'directorycreateerror' => 'ʻAʻole hiki ke haku ka papakuhi waihona "$1"',
 'filenotfound' => '‘A‘ole hiki ke loa‘a ka waihona "$1".',
 'fileexistserror' => 'ʻAʻole hiki ke kākau i ka waihona "$1": Aia no ia.',
-'badtitle' => 'Inoa ‘ino',
-'viewsource' => 'E nānā i ke kumu',
+'cannotdelete-title' => 'Hiki ʻole ke holoi iā "$1"',
+'badtitle' => 'Inoa ʻohe',
+'badtitletext' => 'ʻAʻohe paha, hakahaka paha aiʻole loulou hewa paha ka poʻoinoa ʻaoʻao.
+Loaʻa paha nā hua kikokikona e hiki ʻole ke hana i nā poʻoinoa.',
+'viewsource' => 'Nānā i ke kumu',
+'viewsource-title' => 'Nānā i ke kumu no $1',
 'cascadeprotected' => 'Ho‘omalu ‘ia kēia ‘ao‘ao mai e ho‘opololei ana, no ka mea, hoʻokomo pū ‘ia ‘oia ma aia {{PLURAL:$1|‘ao‘ao|nā ‘ao‘ao}} i lalo, ho‘omalu ‘ia me ka "e wailele ana" koho:
 $2',
 'ns-specialprotected' => '‘A‘ole hiki ke ho‘ololi i nā ‘ao‘ao kūikawā',
+'exception-nologin' => 'ʻE‘e ʻole',
 
 # Login and logout pages
 'welcomeuser' => 'Welina mai e $1!',
@@ -401,9 +437,10 @@ $2',
 'createacct-yourpasswordagain' => 'E hōʻoia i ka ʻōlelo hūnā',
 'createacct-yourpasswordagain-ph' => 'E kikokiko hou i ka ʻōlelo hūnā',
 'remembermypassword' => 'Hoʻomanaʻo iaʻu ma kēia lolo uila (no ka palena nui o $1 {{PLURAL:$1|lā|mau lā}})',
+'userlogin-remembermypassword' => 'Hoʻomanaʻo iaʻu',
 'login' => 'ʻEʻe',
 'nav-login-createaccount' => 'ʻEʻe / Kāinoa',
-'loginprompt' => 'Pono ʻoe e hoʻā i nā makana (cookies) no ka ʻeʻe ʻana iā {{SITENAME}}.',
+'loginprompt' => 'Pono ʻoe e hoʻā i nā makana no ka ʻeʻe ʻana iā {{SITENAME}}.',
 'userlogin' => 'ʻEʻe / Kāinoa',
 'userloginnocreate' => 'ʻEʻe',
 'logout' => 'Haʻalele',
@@ -412,14 +449,12 @@ $2',
 'userlogin-noaccount' => 'ʻAʻohe āu moʻokāki?',
 'userlogin-joinproject' => 'E komo mai iā {{SITENAME}}',
 'nologin' => "ʻAʻohe āu moʻokāki? '''$1'''.",
-'nologinlink' => 'E kāinoa',
-'createaccount' => 'E kāinoa',
+'nologinlink' => 'E Kāinoa',
+'createaccount' => 'E Kāinoa',
 'gotaccount' => "He moʻokāki kāu? '''$1'''.",
 'gotaccountlink' => 'ʻEʻe',
-'userlogin-resetlink' => 'Ua poina i kāu inoa mea hoʻohana?',
+'userlogin-resetlink' => 'Ua poina i kāu ʻike ʻeʻe?',
 'userlogin-resetpassword-link' => 'Ua poina i kāu ʻōlelo hūnā?',
-'helplogin-url' => 'Help:ʻEʻe',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Kōkua me ka ʻeʻe ʻana]]',
 'userlogin-createanother' => 'E kāinoa i kekahi moʻokāki ʻē aʻe',
 'createacct-join' => 'E kikokiko i kāu ʻike i lalo.',
 'createacct-another-join' => 'E kikokiko i ka ʻike o ka moʻokāki hou i lalo.',
@@ -455,10 +490,11 @@ E ʻoluʻolu, e hana hou.',
 Hoʻouna ʻole i kekahi lekauila no kēia mau helena.',
 'emailconfirmlink' => 'E hō‘oia i kāu wahinoho lekauila',
 'accountcreated' => 'Ua kāinoa',
-'accountcreatedtext' => 'Ua kāinoa ka moʻokāki no [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|kūkākūkā]]',
+'accountcreatedtext' => 'Ua kāinoa ka moʻokāki no [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|walaʻau]])',
 'createaccount-title' => 'Kāinoa moʻokāki no {{SITENAME}}',
-'loginlanguagelabel' => "Kou 'ōlelo: $1",
+'loginlanguagelabel' => 'ʻŌlelo: $1',
 'pt-login' => 'ʻEʻe',
+'pt-login-button' => 'ʻEʻe',
 'pt-createaccount' => 'Kāinoa',
 'pt-userlogout' => 'Haʻalele',
 
@@ -483,6 +519,7 @@ Hoʻouna ʻole i kekahi lekauila no kēia mau helena.',
 'changeemail-newemail' => 'Wahinoho lekauila hou:',
 'changeemail-none' => '(ʻaʻohe)',
 'changeemail-password' => 'Kāu ʻōlelo hūnā {{SITENAME}}:',
+'changeemail-submit' => 'Loli i kāu lekauila',
 'changeemail-cancel' => 'Hoʻōki',
 
 # Edit page toolbar
@@ -491,47 +528,59 @@ Hoʻouna ʻole i kekahi lekauila no kēia mau helena.',
 'italic_sample' => 'Ho‘ohiō',
 'italic_tip' => 'Ho‘ohiō',
 'link_sample' => 'Inoa loulou',
-'link_tip' => 'Loulou lokoiho',
+'link_tip' => 'Loulou kūloko',
 'extlink_sample' => 'http://www.example.com inoa loulou',
 'extlink_tip' => 'Loulou kūwaho (e ho‘omana‘o i ka poʻo pāʻālua http://)',
 'headline_sample' => 'Po‘o‘ōlelo',
+'headline_tip' => 'Poʻomanaʻo kau 2',
+'nowiki_sample' => 'Hoʻokomo i nā kikokikona huluʻole ma ʻaneʻi',
+'nowiki_tip' => 'Nānaʻole i ka hulu wiki',
+'image_tip' => 'Waihona kauloko',
 'media_tip' => 'Loulou waihona',
-'sig_tip' => 'Kou pūlima me ka manawa',
+'sig_tip' => 'Kau pūlima me ka manawa',
 'hr_tip' => 'Laina ‘ilikai (e hana pākiko)',
 
 # Edit pages
 'summary' => 'Hōʻuluʻulu manaʻo:',
 'subject' => 'Kumumanaʻo/poʻo laina:',
 'minoredit' => 'He hoʻololi iki kēia',
-'watchthis' => 'E nānā pono i kēia ʻaoʻao',
+'watchthis' => 'E kiaʻi i kēia ʻaoʻao',
 'savearticle' => 'E mālama i ka ʻaoʻao',
 'preview' => 'Nāmua',
 'showpreview' => "E hō'ike i ka nāmua",
 'showlivepreview' => 'Nāmua ʻānō',
 'showdiff' => "E hō'ike i nā loli",
-'anoneditwarning' => '<strong>E akahele:</strong> ʻAʻole ʻoe ʻeʻe nei.
+'anoneditwarning' => '<strong>E akahele:</strong> ʻAʻole ʻoe ʻeʻe nei.
 E hoʻopaʻa ʻia ana kāu IP ma ko kēia ʻaoʻao mōʻaukala hoʻololi.',
 'blockedtitle' => 'Ua pale ‘ia ka mea ho‘ohana',
 'blockednoreason' => '‘a‘ohe kumu',
+'loginreqtitle' => 'Noi i ka ʻeʻe ʻana',
 'loginreqlink' => 'ʻeʻe',
 'accmailtitle' => 'Ua ho‘ouna ‘ia ka ‘ōlelo hūnā',
 'newarticle' => '(Hou)',
+'newarticletext' => 'Ua hāhai ʻoe i kekahi loulou i kekahi ʻaoʻao e haku ʻole.
+No ka haku ʻana i ka ʻaoʻao, kikokiko i loko o ka pahu i lalo (ʻike i ka [$1 ʻaoʻao kōkua] no nā ʻike ʻē aʻe).
+Inā hewa kou hele ʻana, kāomi i ka pihi <strong>hoʻi</strong>.',
 'anontalkpagetext' => "----
 <em>ʻO kēia ka ʻaoʻao kūkākūkā no kekahi mea ho‘ohana me ka inoa ʻole.</em>
 No laila, pono mākou e ho‘ohana i ka IP no ka hōʻoia ʻana iā ia a hiki i kekahi mau mea hoʻohana ke hoʻokaʻana i kēia  IP.
 Inā he mea ho‘ohana inoa ʻole ʻoe a loaʻa kekahi mau manaʻo nāuʻole, e ʻoluʻolu [[Special:UserLogin/signup|e kāinoa]] a i ʻole [[Special:UserLogin|e ʻeʻe]].''",
 'noarticletext' => 'ʻAʻohe kikokikona a kēia ʻaoʻao.
 Hiki iā ʻoe ke [[Special:Search/{{PAGENAME}}|huli no kēia inoa ʻaoʻao]] i nā ʻaoʻao ʻē aʻe, <span class="plainlinks">[{{fullurl:SpecialLog|page={{FULLPAGENAMEE}}}} huli i nā moʻolelo pili], a i ʻole [{{fullurl:{{FULLPAGENAME}}|action=edit}} hoʻololi i kēia ʻaoʻao]</span>.',
+'noarticletext-nopermission' => 'ʻAʻohe kikokikona a kēia ʻaoʻao.
+Hiki iā ʻoe ke [[Special:Search/{{PAGENAME}}|huli no kēia inoa ʻaoʻao]] i nā ʻaoʻao ʻē aʻe aiʻole <span class="plainlinks">[{{fullurl:SpecialLog|page={{FULLPAGENAMEE}}}} huli i nā moʻolelo pili]</span>, akā hiki ʻole iā ʻoe ke hoʻololi i kēia ʻaoʻao.',
+'updated' => '(Hoʻopuka hou ʻia)',
+'note' => '<strong>E noka:</strong>',
 'previewnote' => '<strong>ʻO kēia ka nāmua wale nō.</strong>
 ‘A‘ole mālama ‘ia nā ho‘ololi!',
-'continue-editing' => 'Hele i kahi hoʻololi',
+'continue-editing' => 'Kele i kahi hoʻololi',
 'editing' => 'Ke ho‘ololi nei iā $1',
 'creating' => 'Ke haku nei iā $1',
-'editingsection' => 'Ke hoʻololi nei iā $1 (mahele)',
+'editingsection' => 'Hoʻololi nei iā $1 (mahele)',
 'editingcomment' => 'Ke ho‘ololi nei iā $1 (paukū hou)',
 'editconflict' => 'He pilikia hoʻololi: $1',
 'yourtext' => 'Kāu kikokikona',
-'storedversion' => 'Loihape waihoia',
+'storedversion' => 'Loihape waiho ʻia',
 'yourdiff' => 'Nā mea ‘oko‘a',
 'copyrightwarning' => 'E ʻoluʻolu, hoʻokuʻu ʻia nā mea lūlū iā {{SITENAME}} ma lalo o ka laikini $2 (no nā mea kikoʻī, kele iā $1).
 Inā ʻaʻole ʻoe makemake i ka hoʻololi ʻana kūnoa o kou kākau ʻana a ʻaʻole ʻoe makemake i ka hoʻomalele ʻana i kāu mau loli, a laila mai kākau ma ʻaneʻi.<br />
@@ -539,29 +588,57 @@ Ke hoʻohiki nei ʻoe iā kākou: nāu i kākau i kēia kikokikona aiʻole nau i
 <strong>Mai waiho i nā kikokikona ponokope me ka ʻae ʻole!</strong>',
 'protectedpagewarning' => '<strong>E akahele:  Ua hoʻomalu ‘ia kēia ‘ao‘ao, pēlā, hiki i nā "kahu" ke ho‘ololi wale nō.</strong>
 Aia nā loli hanalohi i lalo no ka ʻikena:',
+'templatesused' => '{{PLURAL:$1|anakuhi|mau anakuhi}} e hana ʻia ma kēia ʻaoʻao:',
 'templatesusedpreview' => 'Hoʻohana ʻia kēia {{PLURAL:$1|anakuhi|mau anakuhi}} i kēia nāmua:',
 'template-protected' => '(ho‘omalu ‘ia)',
 'template-semiprotected' => '(hapa-ho‘omalu ‘ia)',
+'hiddencategories' => 'ʻO kēia ʻaoʻao he lālā o {{PLURAL:$1|1 mahele hūnā|$1 mau māhele hūnā}}:',
 'edittools' => '<!-- Eia ka ‘ōlelo e hō‘ike ‘ia malalo o nā palapala ho‘ololi ame nā palapala ho‘ohui. -->',
-'permissionserrorstext-withaction' => 'ʻAʻohe ou ʻae no $2, no {{PLURAL:$1|kumu| mau kumu}}:',
+'nocreate-loggedin' => 'Loaʻa ʻole iā ʻoe nā kūleana no ka haku ʻana o nā ʻaoʻao hou.',
+'permissionserrorstext-withaction' => 'ʻAʻohe āu ʻae no $2, no {{PLURAL:$1|kumu| mau kumu}}:',
+'recreate-moveddeleted-warn' => '<strong>E akahele: Ke haku nei ʻoe i kekahi ʻaoʻao i holoi ʻia.</strong>
+
+Pono ʻoe e noʻonoʻo e pili ana ka pono o ka hoʻomau ʻana o ka hoʻololi ʻana o kēia ʻaoʻao.
+Aia ka moʻolelo holoi a hoʻoneʻe no kēia ʻaoʻao ma ʻaneʻi:',
+'moveddeleted-notice' => 'Ua holoi ʻia kēia ʻaoʻao.
+Hoʻolako ʻia ka moʻolelo holoi a hoʻoneʻe no kēia ʻaoʻao i lalo no ke kūmole.',
+'log-fulllog' => 'Nānā i ka moʻolelo piha',
+'postedit-confirmation' => 'Ua mālama ʻia kāu hoʻololi',
+'defaultmessagetext' => 'Kikokikona pūlono pa‘amau',
+
+# Content models
+'content-model-wikitext' => 'kikokikonawiki',
+'content-model-javascript' => 'IawaSikulipa',
+
+# Parser/template warnings
+'post-expand-template-inclusion-warning' => '<strong>E akahele:</strong> Hoʻokela ʻia ka palena nui o ke anakuhi.
+Hoʻohui ʻole i kekahi mau anakuhi.',
+'post-expand-template-inclusion-category' => 'Nā ʻaoʻao me nā anakuhi e hoʻokela i ka palenanui',
+'post-expand-template-argument-warning' => '<strong>E akahele:</strong> Aia ma kēia ʻaoʻao i kekahi a ʻoi pilikia anakuhi e loaʻa i kekahi nui hoʻonui nunui loa.
+Ua waiho ʻia kēia mau pilikia.',
+'post-expand-template-argument-category' => 'Nā ʻAoʻao e loaʻa nā pilikia anakuhi i waiho ʻia',
 
 # "Undo" feature
 'undo-success' => 'Hiki iā ʻoe ke hoʻihoʻi i kēia loli.
 E ʻoluʻolu, e hōʻoia i ka hoʻokūkū ʻana i lalo, a laila, e mālama i nā loli i lalo no ka hoʻopau ʻana o ka hoʻihoʻi o ka loli.',
-'undo-summary' => 'Hoʻihoʻi mai i ke kāmua $1 na [[Special:Contributions/$2|$2]] ([[User talk:$2|kūkākūkā]])',
+'undo-summary' => 'Hoʻihoʻi mai i ke kāmua $1 na [[Special:Contributions/$2|$2]] ([[User talk:$2|walaʻau]])',
 
 # History pages
+'viewpagelogs' => 'Nānā i nā moʻolelo no kēia ʻaoʻao',
 'currentrev' => 'Kāmua hou',
-'revisionasof' => 'Kāmua ma $1',
+'currentrev-asof' => 'Ke Kāmua houloa ma $1',
+'revisionasof' => 'Kāmua ʻia ma $1',
 'revision-info' => 'Kāmua ma $1 na $2',
-'previousrevision' => '← Kāmua mua',
+'previousrevision' => '← Kāmua kahiko',
 'nextrevision' => 'Kāmua hou →',
-'currentrevisionlink' => 'Kāmua hanawale',
-'cur' => 'cur',
+'currentrevisionlink' => 'Kāmua houloa',
+'cur' => 'okawā',
 'next' => 'hou aʻe',
-'last' => 'hou nei',
+'last' => 'aku nei',
 'page_first' => 'mua loa',
 'page_last' => 'hope loa',
+'histlegend' => 'Koho ʻokoʻa: Kaha i nā pahu lekiō o nā kāmua no ka hoʻokūkū ʻana a kāomi ke kāhoʻi aiʻole ka pihi ma ka lalo.<br />
+Pahu hōʻailona: <strong>({{int:cur}})</strong> = ka ʻokoʻa me ke kāmua houloa, <strong>({{int:last}})</strong> = ka ʻokoʻa me ke kāmua i hana mua, <strong>{{int:minoreditletter}}</strong> = he hoʻololi iki ia.',
 'history-fieldset-title' => 'Mōʻaukaki Pūnaewele',
 'history-show-deleted' => 'Holoi wale nō',
 'histfirst' => 'kahiko loa',
@@ -576,16 +653,22 @@ E ʻoluʻolu, e hōʻoia i ka hoʻokūkū ʻana i lalo, a laila, e mālama i nā
 
 # Revision deletion
 'rev-delundel' => 'hoʻololi ka nānā ʻana',
+'rev-showdeleted' => 'hōʻike',
+'revisiondelete' => 'Holoi/holoi ʻole i nā kāmua',
 'revdelete-show-file-submit' => 'ʻAe',
+'revdelete-hide-text' => 'Kikokikona kāmua',
+'revdelete-hide-image' => 'Hoʻohūnā i nā waihona mealoko',
+'revdelete-hide-comment' => 'Hoʻololi i ka hōʻuluʻulu manaʻo',
 'revdelete-radio-same' => '(mai hoʻololi)',
 'revdelete-radio-set' => 'ʻAe',
 'revdelete-radio-unset' => 'ʻAʻole',
 'revdelete-log' => 'Kumu:',
-'revdel-restore' => 'hoʻololi ka nānā ʻana',
+'revdel-restore' => 'hoʻololi ka nānā ʻana',
 'pagehist' => 'Mōʻaukala ʻaoʻao',
 'deletedhist' => 'Mōʻaukala holoi',
 'revdelete-otherreason' => 'Nā kumu ʻē aʻe',
 'revdelete-reasonotherlist' => 'Nā kumu ʻē aʻe',
+'revdelete-edit-reasonlist' => 'Hoʻololi i nā kumu holoi',
 'revdelete-offender' => 'Mea kākau kāmua:',
 
 # History merging
@@ -597,32 +680,48 @@ E ʻoluʻolu, e hōʻoia i ka hoʻokūkū ʻana i lalo, a laila, e mālama i nā
 'revertmerge' => 'Hoʻokuʻipū ʻole',
 
 # Diffs
+'history-title' => 'Mōʻaukala kāmua o "$1"',
 'lineno' => 'Laina $1:',
+'compareselectedversions' => 'Hoʻohālikelike i nā kāmua i koho ʻia',
 'editundo' => 'hoʻihoʻi',
 'diff-empty' => '(ʻaʻohe like ʻole)',
 
 # Search results
-'searchresults' => 'Nā hualoaʻa',
+'searchresults' => 'Nā Hualoaʻa',
 'searchresults-title' => 'Nā hualoaʻa no "$1"',
-'prevn' => '{{PLURAL:$1|$1}} ma mua',
-'nextn' => '{{PLURAL:$1|$1}} ma hope',
-'viewprevnext' => 'Nānā i nā ($1 {{int:pipe-separator}} $2) ($3)',
+'prevn' => '{{PLURAL:$1|$1}} mamua',
+'nextn' => '{{PLURAL:$1|$1}} hou aʻe',
+'prevn-title' => '$1 {{PLURAL:$1|hualoaʻa|mau hualoaʻa}} aku nei',
+'nextn-title' => '$1 {{PLURAL:$1|hualoaʻa|mau hualoaʻa}} hou aʻe',
+'shown-title' => 'Hōʻike $1 {{PLURAL:$1|hualoaʻa|mau hualoaʻa}} i kekahi ʻaoʻao',
+'viewprevnext' => 'Nānā i ($1 {{int:pipe-separator}} $2) ($3)',
+'searchmenu-exists' => '<strong>Aia kekahi ʻaoʻao i kapa ʻia o "[[:$1]]" ma kēia wiki.</strong> {{PLURAL:$2|0=|ʻIke hoʻi i na hualoaʻa huli ʻē aʻe i loaʻa ʻia.}}',
+'searchmenu-new' => '<strong>Haku i ka ʻaoʻao "[[:$1]]" ma kēia wiki!</strong> {{PLURAL:$2|0=|"ʻIke hoʻi i ka ʻaoʻao i loaʻa ʻia ma kou huli ʻana.|ʻIke hoʻi nā hualoaʻa huli i loaʻa ʻia.}}',
+'searchprofile-articles' => 'Nā ʻAoʻao mealoko',
 'searchprofile-project' => 'Nā ʻaoʻao Kōkua a me Papahana',
+'searchprofile-images' => 'Laupāpaho',
 'searchprofile-everything' => 'Nā mea apau',
-'searchprofile-articles-tooltip' => 'Huli iā $1',
-'searchprofile-project-tooltip' => 'Huli iā $1',
+'searchprofile-advanced' => 'Kiʻelē',
+'searchprofile-articles-tooltip' => 'Huli i loko o $1',
+'searchprofile-project-tooltip' => 'Huli i loko o $1',
 'searchprofile-images-tooltip' => 'Huli no nā waihona',
-'searchprofile-everything-tooltip' => 'Huli i nā mea apau (nā kūkākūkā nō hoʻi)',
+'searchprofile-everything-tooltip' => 'Huli i nā mea apau (nā walaʻau nō hoʻi)',
+'searchprofile-advanced-tooltip' => 'Huli iā lewainoa pilikino',
 'search-result-size' => '$1 ({{PLURAL:$2|1 huaʻōlelo|$2 mau huaʻōlelo}})',
-'search-result-category-size' => '{{PLURAL:$1|1 mea hoʻohana|$1 mau mea hoʻohana}} ({{PLURAL:$2|1 mahele lokoiho|$2 mau māhele lokoiho}}, {{PLURAL:$3|1 wahihona|$3 mau waihona}})',
-'search-redirect' => '(hoʻoili hou $1)',
-'search-section' => '(māhele $1)',
+'search-result-category-size' => '{{PLURAL:$1|1 mea hoʻohana|$1 mau mea hoʻohana}} ({{PLURAL:$2|1 mahele kūloko|$2 mau māhele kūloko}}, {{PLURAL:$3|1 wahihona|$3 mau waihona}})',
+'search-redirect' => '(kia hou $1)',
+'search-section' => '(pauku $1)',
 'search-suggest' => 'ʻO kēia paha kou manaʻo: $1',
 'search-interwiki-caption' => 'Nā pāhana ʻē aʻe',
 'search-interwiki-more' => '(hou aʻe)',
+'search-relatedarticle' => 'Nā Mea ʻālike',
+'searchrelated' => 'na mea ʻālike',
 'searchall' => 'nā mea apau',
+'showingresultsheader' => '{{PLURAL:$5|<strong>$1</strong> hualoaʻa o <strong>$3</strong> mau hualoaʻa|<strong$1-$2</strong> mau hualoaʻa o <strong>$3</strong> mau hualoaʻa}} no <strong>$4</strong>',
+'search-nonefound' => 'ʻAʻohe hualoaʻa no kēia huli.',
 'powersearch-legend' => 'Hulina kūlana kiʻekiʻe',
 'powersearch-ns' => 'Huli i loko o nā wahi inoa:',
+'powersearch-togglelabel' => 'Hōʻoia:',
 'powersearch-toggleall' => 'Nā mea apau',
 'powersearch-togglenone' => 'ʻAʻohe',
 'search-external' => 'Huli kūwaho',
@@ -637,9 +736,9 @@ E ʻoluʻolu, e hōʻoia i ka hoʻokūkū ʻana i lalo, a laila, e mālama i nā
 'prefs-datetime' => 'Ka lā a me ka hola',
 'prefs-personal' => 'ʻAoʻao mea hoʻohana',
 'prefs-rc' => 'Nā loli hou',
-'prefs-watchlist' => 'Papa nānāpono',
-'prefs-watchlist-days' => 'Nā lā e hōʻike ana i ka papa nānāpono:',
-'prefs-watchlist-days-max' => 'Maximum $1 {{PLURAL:$1|day|days}}',
+'prefs-watchlist' => 'Papakiaʻi',
+'prefs-watchlist-days' => 'Nā lā e hōʻike i ka papakiaʻi:',
+'prefs-watchlist-days-max' => 'He palenanui o $1 {{PLURAL:$1|lā|mau lā}}',
 'prefs-email' => 'Koho lekauila',
 'prefs-rendering' => 'Helena',
 'saveprefs' => 'Mālama',
@@ -673,18 +772,29 @@ E ʻoluʻolu, e hōʻoia i ka hoʻokūkū ʻana i lalo, a laila, e mālama i nā
 'prefs-memberingroups' => '{{GENDER:$2|He lālā}} o {{PLURAL:$1|hui|mau hui}}:',
 'prefs-registration' => 'Hola kāinoa:',
 'yourrealname' => 'Inoa ʻoiaʻiʻo:',
-'yourlanguage' => 'Kou ʻōlelo:',
+'yourlanguage' => 'Kāu ʻōlelo:',
 'yournick' => 'Pūlima hou:',
 'yourgender' => 'Keka:',
 'gender-unknown' => 'Kāpae',
 'gender-male' => 'Kāne',
 'gender-female' => 'Wahine',
 'email' => 'Lekauila',
+'prefs-help-email' => 'Koi ʻole i ka wahinoho lekauila, akā pono ia nō ke kāinoa ʻana o ka ʻōlelo hūnā inā poina ʻoe i kāu ʻōlelo hūnā.',
+'prefs-help-email-others' => 'Hiki iā ʻoe ke koho i ka ʻae ʻana i nā mea ʻē aʻe e hoʻokaʻaʻike iā ʻoe mao ka lekauila mao kekahi loulou ma kāu ʻaoʻao mea hoʻohana aiʻole kāu ʻaoʻao walaʻau.
+ʻAʻole hōʻike ʻia kāu wahinoho lekauila i nā mea ʻē aʻe e hoʻokaʻaʻike iā ʻoe.',
 'prefs-help-email-required' => 'Koi i ka lekauila.',
 'prefs-signature' => 'Pūlima',
 'prefs-advancedediting' => 'Koho paʻamau',
 'prefs-editor' => 'Luna Hoʻoponopono:',
 'prefs-preview' => 'Nāmua',
+'prefs-advancedrc' => 'Koho kiʻelē',
+'prefs-advancedrendering' => 'Koho kiʻelē',
+'prefs-advancedsearchoptions' => 'Koho kiʻelē',
+'prefs-advancedwatchlist' => 'Koho kiʻelē',
+'prefs-displayrc' => 'Koho nānā',
+'prefs-displaysearchoptions' => 'Koho nānā',
+'prefs-displaywatchlist' => 'Koho nānā',
+'prefs-diffs' => 'ʻOkoʻa',
 
 # User rights
 'userrights' => 'Ho‘oponopono ‘ana o nā kuleana',
@@ -695,19 +805,19 @@ E ʻoluʻolu, e hōʻoia i ka hoʻokūkū ʻana i lalo, a laila, e mālama i nā
 'group' => 'Hui:',
 'group-user' => 'Mea hoʻohana',
 'group-bot' => 'Lopako',
-'group-sysop' => 'Nā kahu',
-'group-bureaucrat' => 'Nā kuhina',
+'group-sysop' => 'Nā Kahu',
+'group-bureaucrat' => 'Nā Kuhina',
 'group-all' => '(Nā mea apau)',
 
-'group-user-member' => '{{GENDER:$1|mea hoʻohana}}',
-'group-bot-member' => '{{GENDER:$1|lopako}}',
-'group-sysop-member' => '{{GENDER:$1|kahu}}',
-'group-bureaucrat-member' => '{{GENDER:$1|kuhina}}',
+'group-user-member' => '{{GENDER:$1|ka mea hoʻohana}}',
+'group-bot-member' => '{{GENDER:$1|ka lopako}}',
+'group-sysop-member' => '{{GENDER:$1|ke kahu}}',
+'group-bureaucrat-member' => '{{GENDER:$1|ke kuhina}}',
 
 'grouppage-user' => '{{ns:project}}:Mea hoʻohana',
 'grouppage-bot' => '{{ns:project}}:Lopako',
-'grouppage-sysop' => '{{ns:project}}:Nā kahu',
-'grouppage-bureaucrat' => '{{ns:project}}:Nā kuhina',
+'grouppage-sysop' => '{{ns:project}}:Nā Kahu',
+'grouppage-bureaucrat' => '{{ns:project}}:Nā Kuhina',
 
 # Rights
 'right-read' => 'Heluhelu i nā ʻaoʻao',
@@ -730,14 +840,29 @@ E ʻoluʻolu, e hōʻoia i ka hoʻokūkū ʻana i lalo, a laila, e mālama i nā
 'right-hideuser' => 'Pale i ka inoa mea hoʻohana, no laila ʻaʻole hōʻike i ka lehulehu',
 'right-unblockself' => 'Paleʻole i kāuiho',
 
+# Special:Log/newusers
+'newuserlogpage' => 'Moʻolelo haku mea hoʻohana',
+
 # Associated actions - in the sentence "You do not have permission to X"
+'action-read' => 'heluhelu i kēia ʻaoʻao',
 'action-edit' => 'ka hoʻololi ʻana i kēia ʻaoʻao',
+'action-createpage' => 'haku ʻaoʻao',
+'action-createtalk' => 'haku ʻaoʻao kūkākūkā',
+'action-createaccount' => 'kāinoa i kēia moʻokāki mea hoʻohana',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|loli|mau loli}}',
 'enhancedrc-since-last-visit' => '$1 {{PLURAL:$1|mai kāu kipana aku nei}}',
 'enhancedrc-history' => 'mōʻaukala',
-'recentchanges' => 'Nā loli hou',
+'recentchanges' => 'Loli Hou',
+'recentchanges-legend' => 'Nā Koho loli hou',
+'recentchanges-feed-description' => 'Hāhai i nā loli houloa i ka wiki ma kēia hānaīke.',
+'recentchanges-label-newpage' => 'Ua haku kēia hoʻololi i kēia ʻaoʻao hou',
+'recentchanges-label-minor' => 'He hoʻololi iki kēia',
+'recentchanges-label-bot' => 'Ua hana ʻia kēia hoʻololi e kekahi pako',
+'recentchanges-label-unpatrolled' => 'ʻAʻole kiaʻi kaʻa ʻia kēia hoʻololi',
+'rcnotefrom' => 'Aia i lalo nā loli mai <strong>$2</strong> (hōʻike a <strong>$1</strong>)',
+'rclistfrom' => 'Hōʻike i nā loli hou mai ka hola $2, $3',
 'rcshowhideminor' => '$1 i nā ho‘ololi iki',
 'rcshowhideminor-show' => 'Hōʻike',
 'rcshowhideminor-hide' => 'Hoʻohūnā',
@@ -747,7 +872,7 @@ E ʻoluʻolu, e hōʻoia i ka hoʻokūkū ʻana i lalo, a laila, e mālama i nā
 'rcshowhideliu' => '$1 i nā mea hoʻohana i kāinoa ʻia',
 'rcshowhideliu-show' => 'Hōʻike',
 'rcshowhideliu-hide' => 'Hoʻohūnā',
-'rcshowhideanons' => '$1 i nā mea hoʻohana i nele ai ka inoa',
+'rcshowhideanons' => '$1 i nā mea hoʻohana inoa ʻole',
 'rcshowhideanons-show' => 'Hōʻike',
 'rcshowhideanons-hide' => 'Hoʻohūnā',
 'rcshowhidepatr' => '$1 i nā hoʻololi kiaʻi kaʻahele',
@@ -756,7 +881,7 @@ E ʻoluʻolu, e hōʻoia i ka hoʻokūkū ʻana i lalo, a laila, e mālama i nā
 'rcshowhidemine' => '$1 i ka‘u mau hoʻololi',
 'rcshowhidemine-show' => 'Hōʻike',
 'rcshowhidemine-hide' => 'Hoʻohūnā',
-'rclinks' => 'E hōʻike i nā loli hanawale, he $1, mai $2 (mau) lā aku nei<br/>$3',
+'rclinks' => 'E hōʻike i nā loli $1 hou, mai $2 (mau) lā aku nei<br />$3',
 'diff' => 'ʻokoʻa',
 'hist' => 'mōkala',
 'hide' => 'Hoʻohūnā',
@@ -764,324 +889,466 @@ E ʻoluʻolu, e hōʻoia i ka hoʻokūkū ʻana i lalo, a laila, e mālama i nā
 'minoreditletter' => 'iki',
 'newpageletter' => 'ʻAHou',
 'boteditletter' => 'pako',
-'rc-enhanced-expand' => 'Hō‘ike i nā ‘ikepili',
-'rc-enhanced-hide' => 'Hoʻohūnā i nā ‘ikepili',
+'rc-enhanced-expand' => 'Hō‘ike i nā kikoʻī',
+'rc-enhanced-hide' => 'Hoʻohūnā i nā kikoʻī',
 
 # Recent changes linked
 'recentchangeslinked' => 'Nā loli hou ʻālike',
 'recentchangeslinked-feed' => 'Nā loli hou ʻālike',
 'recentchangeslinked-toolbox' => 'Nā loli hou ʻālike',
+'recentchangeslinked-title' => 'Nā loli e ʻālike me "$1"',
+'recentchangeslinked-summary' => 'He papahelu o nā loli i hana wale i nā ʻaoʻao loulou ʻia e kekahi ʻaoʻao kikoʻī (aiʻole i nā lālā o kekahi mahele kikoʻī) kēia.
+<strong>Hoʻokāʻele</strong> nā ʻaoʻao ma [[Special:Watchlist|kāu papakiaʻi]].',
 'recentchangeslinked-page' => 'Inoa ʻaoʻao:',
+'recentchangeslinked-to' => 'Hōʻike i nā loli i nā ʻaoʻao e loulou ʻia ma kahi o ka ʻaoʻao i hāʻawi ʻia',
 
 # Upload
-'upload' => 'Hoʻouka i ka waihona',
+'upload' => 'Hoʻouka waihona',
 'uploadbtn' => 'Hoʻouka i ka waihona',
 'uploadnologin' => 'ʻE‘e ʻole',
 'uploaderror' => 'Hewa hoʻouka',
+'uploadlogpage' => 'Moʻolelo hoʻouka',
 'filename' => 'Inoa waihona',
 'filedesc' => 'Hōʻuluʻulu manaʻo',
 'fileuploadsummary' => 'Hōʻuluʻulu manaʻo:',
 'filesource' => 'Kumu:',
-'uploadedfiles' => 'Waihona hoʻoukaia',
+'uploadedfiles' => 'Waihona hoʻouka ʻia',
 'savefile' => 'Waihona mālama',
-'uploadedimage' => 'hoʻouka ʻia iā "[[$1]]"',
+'uploadedimage' => 'ua hoʻouka iā "[[$1]]"',
 'upload-source' => 'Waihona kūmole',
-'sourcefilename' => 'Inoawaihona kūmole:',
+'sourcefilename' => 'Inoa waihona kūmole:',
 'sourceurl' => 'URL kūmole:',
 
+'license' => 'Laikini:',
+'license-header' => 'Laikini',
+
 # Special:ListFiles
+'imgfile' => 'waihona',
+'listfiles' => 'Papahelu waihona',
+'listfiles_thumb' => 'Kiʻiliʻi',
+'listfiles_date' => 'Lā',
 'listfiles_name' => 'Inoa',
+'listfiles_user' => 'Mea hoʻohana',
+'listfiles_size' => 'Nui',
+'listfiles_description' => 'Hōʻike ʻAno',
+'listfiles_count' => 'Mana',
+'listfiles-latestversion' => 'Mana okamanawa',
+'listfiles-latestversion-yes' => 'ʻAe',
+'listfiles-latestversion-no' => 'ʻAʻole',
 
 # File description page
 'file-anchor-link' => 'Waihona',
-'filehist' => 'Mo‘olelo o ka waihona',
-'filehist-current' => 'o kēia manawa',
-'filehist-datetime' => 'Manawa',
-'filehist-thumb' => 'Kiʻiliʻiliʻi',
+'filehist' => 'Mōʻaukala waihona',
+'filehist-help' => 'Kāomi ma ka lā/hola no ka nānā ʻana i ka waihona ma kēlā manawa.',
+'filehist-deleteall' => 'holoi apau',
+'filehist-deleteone' => 'holoi',
+'filehist-revert' => 'hoʻihoʻi',
+'filehist-current' => 'okamanawa',
+'filehist-datetime' => 'Lā/Hola',
+'filehist-thumb' => 'Kiʻiliʻi',
+'filehist-thumbtext' => 'Ke kiʻiliʻi no ka mana ma $1',
+'filehist-nothumb' => 'ʻAʻohe kiʻiliʻi',
 'filehist-user' => 'Mea ho‘ohana',
-'filehist-dimensions' => 'Nā nui',
+'filehist-dimensions' => 'Nā Nui',
 'filehist-filesize' => 'Nui o ka waihona',
-'filehist-comment' => 'Manaʻo',
-'imagelinks' => 'Nā loulou faila',
+'filehist-comment' => 'Kaumanaʻo',
+'filehist-missing' => 'Nele ka waihona',
+'imagelinks' => 'Nā Hana waihona',
 'linkstoimage' => 'Loulou {{PLURAL:$1|kekahi ‘ao‘ao|kēia mau ‘ao‘ao $1}} i kēia waihona:',
+'nolinkstoimage' => 'ʻAʻohe ʻaoʻao e loulou i kēia waihona.',
+'sharedupload-desc-here' => 'ʻO kēia waihona mai $1 a hiki paha ke hana ʻia mai nā papahana ʻē aʻe.
+Aia i lalo ka hōʻike ʻano [mai ka ʻaoʻao hōʻike ʻano waihona $2].',
+'shared-repo-from' => 'mai $1',
+
+# File reversion
+'filerevert-comment' => 'Kumu:',
 
 # File deletion
+'filedelete' => 'Holoi iā $1',
+'filedelete-legend' => 'Holoi i ka waihona',
 'filedelete-comment' => 'Kumu:',
+'filedelete-submit' => 'Holoi',
+'filedelete-otherreason' => 'Nā kumu ʻē aʻe:',
+'filedelete-reason-otherlist' => 'Nā kumu ʻē aʻe',
+
+# MIME search
+'download' => 'hoʻoili',
 
 # Random page
-'randompage' => 'He akikala kaulele',
+'randompage' => 'ʻAtikala Kaulele',
 
 # Statistics
-'statistics' => 'Papa helu',
+'statistics' => 'ʻIkepilihelu',
 
-'brokenredirects-edit' => 'ho‘ololi',
-'brokenredirects-delete' => 'e kāpae',
+'brokenredirects-edit' => 'ho‘ololi',
+'brokenredirects-delete' => 'holoi',
 
 'withoutinterwiki-submit' => 'Hō‘ike',
 
 # Miscellaneous special pages
-'nbytes' => '$1 {{PLURAL:$1|‘ai|‘ai}}',
+'nbytes' => '$1 {{PLURAL:$1|‘ai|mau ‘ai}}',
 'nlinks' => '$1 {{PLURAL:$1|loulou|loulou}}',
-'nmembers' => '$1 {{PLURAL:$1|lālā|lālā}}',
+'nmembers' => '$1 {{PLURAL:$1|lālā|mau lālā}}',
 'wantedcategories' => 'Nā māhele makemake',
+'prefixindex' => 'Nā ʻAoʻao apau me ka pākuʻina kau mua',
 'shortpages' => 'Nā ʻaoʻao pōkole',
 'longpages' => 'Nā ʻaoʻao lōʻihi',
-'newpages' => 'Nā ‘ao‘ao hou',
+'usercreated' => '{{GENDER:$3|Haku ʻia}} i ka lā $1 ma ka hola $2',
+'newpages' => 'Nā ‘Ao‘ao hou',
 'newpages-username' => "Inoa mea ho'ohana:",
 'ancientpages' => 'Nā ‘ao‘ao kahiko loa',
-'move' => 'E ho‘ololi i ka inoa',
+'move' => 'E hoʻoneʻe',
 'movethispage' => 'E hoʻoneʻe i kēia ʻaoʻao',
 'pager-newer-n' => '{{PLURAL:$1|1 hou aku|$1 hou aku}}',
-'pager-older-n' => '{{PLURAL:$1|1 kekahi iho|$1 kekahi iho}}',
+'pager-older-n' => '{{PLURAL:$1|1 aku nei|$1 aku nei}}',
 
 # Book sources
 'booksources' => 'Kumu puke',
+'booksources-search-legend' => 'Huli i nā kūmole  puke',
 'booksources-go' => 'E huli',
 
 # Special:Log
-'log' => 'Nā mo‘olelo',
-'all-logs-page' => 'Nā moʻolelo āpau',
+'log' => 'Nā Mo‘olelo',
+'all-logs-page' => 'Nā Moʻolelo lehulehu apau',
 
 # Special:AllPages
-'allpages' => 'Nā ‘ao‘ao loa apau',
+'allpages' => 'Nā ‘Ao‘ao apau',
 'alphaindexline' => '$1 i $2',
 'nextpage' => 'Mea aʻe ($1)',
 'prevpage' => 'Mea ma mua aʻe ($1)',
-'allarticles' => 'Nā mo‘olelo apau loa',
+'allarticles' => 'Nā ʻAoʻao apau',
 'allpagessubmit' => 'E huli',
 
 # Special:Categories
-'categories' => 'Nā mahele',
+'categories' => 'Nā hele',
 
 # Special:DeletedContributions
-'deletedcontributions' => 'Nā ha‘awina o ka inoa mea ho‘ohana i kāpae ‘ia ai',
-'deletedcontributions-title' => 'Nā ha‘awina o ka inoa mea ho‘ohana i kāpae ‘ia ai',
+'deletedcontributions' => 'Nā ha‘awina mea ho‘ohana i holoi ‘ia',
+'deletedcontributions-title' => 'Nā ha‘awina mea ho‘ohana i holoi ‘ia',
 
 # Special:LinkSearch
-'linksearch' => 'Loulou waho wahi',
+'linksearch' => 'Huli loulou kūwaho',
 'linksearch-ok' => 'Huli',
+'linksearch-line' => 'Loulou ʻia ʻo $1 mai $2',
 
 # Special:ListUsers
 'listusers-submit' => 'Hō‘ike',
 
 # Special:ListGroupRights
-'listgrouprights-members' => '(papa o nā lālā)',
+'listgrouprights-members' => '(papainoa o nā lālā)',
 
 # Email user
 'emailuser' => 'E leka uila i kēia mea ho‘ohana',
-'emailmessage' => 'Memo:',
+'emailusername' => 'Inoa mea hoʻohana:',
+'emailusernamesubmit' => 'Waiho',
+'emailfrom' => 'Mai:',
+'emailto' => 'Iā:',
+'emailsubject' => 'Kumunui:',
+'emailmessage' => 'Pūlono:',
+'emailsend' => 'Hoʻouna',
 
 # Watchlist
-'watchlist' => 'Kaʻu papa nānā pono',
-'mywatchlist' => 'Ka‘u papa nānā pono',
+'watchlist' => 'Kaʻu papakiaʻi',
+'mywatchlist' => 'Ka‘u papakiaʻi',
+'watchlistfor2' => 'No $1 $2',
 'removedwatchtext' => 'Wehe ʻia ʻo "[[:$1]]" mai [[Special:Watchlist|kāu papa nānā pono]].',
 'watch' => 'E kia‘i',
 'watchthispage' => 'E nānā pono i kēia mea',
-'unwatch' => 'E wehe ke kia‘i',
-'watchlist-details' => '{{PLURAL:$1|$1|$1}} a kāu papa nānā pono ʻaoʻao, me ke koe ʻana o nā ʻaoʻao kūkākūkā.',
-'wlshowlast' => 'Hōʻike $1 hola hope $2 lā hope $3',
+'unwatch' => 'Kiaʻi ʻole',
+'watchlist-details' => '{{PLURAL:$1|$1 ʻaoʻao|$1 mau ʻaoʻao}} a kāu papakiaʻi, me ʻole ke koe ʻana o nā ʻaoʻao walaʻau.',
+'wlshowlast' => 'Hōʻike $1 hola aku nei $2 lā aku nei $3',
+'watchlist-options' => 'Nā Koho papakiaʻi',
 
 # Displayed when you click the "watch" button and it is in the process of watching
-'watching' => 'Ke kia‘i nei...',
+'watching' => 'Kia‘i nei...',
 'unwatching' => 'Ke wehe nei i ke kiaʻi...',
 
 'changed' => 'ua loli ‘ia',
 
 # Delete
-'deletepage' => 'Kāpae ʻaoʻao',
-'actioncomplete' => 'Ua pau',
-'deletedtext' => 'Ua kāpae ʻia ʻo "$1".
-E ʻike iā $2 no ka papa o nā kāpae ʻana hou.',
-'dellogpage' => 'Mo‘olelo kāpae',
-'dellogpagetext' => 'He helu o nā mea i kāpae ʻia hou i lalo.',
-'deletionlog' => 'mo‘olelo kāpae',
+'deletepage' => 'Holoi ʻaoʻao',
+'actioncomplete' => 'Hana kūleʻa',
+'actionfailed' => 'Hana pohō',
+'deletedtext' => 'Ua holoi ʻia ʻo "$1".
+E ʻike iā $2 no ka papa o nā holoi hou.',
+'dellogpage' => 'Mo‘olelo holoi',
+'dellogpagetext' => 'He papahelu o nā holoi hou i lalo.',
+'deletionlog' => 'mo‘olelo holoi',
 'deletecomment' => 'Kumu:',
 'deleteotherreason' => 'Kumu ʻē aʻe/hoʻokomo',
 'deletereasonotherlist' => 'Kumu ʻē aʻe',
-'delete-edit-reasonlist' => 'Ho‘opololei i nā kumu no ke kāpae ‘ana',
+'delete-edit-reasonlist' => 'Hoʻololi i nā kumu holoi',
 
 # Rollback
-'rollbacklink' => 'ho‘i',
+'rollbacklink' => 'ho‘ihoʻi',
 
 # Protect
-'protectedarticle' => 'ua pale ʻia "[[$1]]"',
+'protectlogpage' => 'Moʻolelo palekana',
+'protectedarticle' => 'ua hoʻomalu iā "[[$1]]"',
 'prot_1movedto2' => 'Ua hoʻoneʻe ʻo [[$1]] iā [[$2]]',
 'protectcomment' => 'Kumu:',
-'protect-default' => 'ʻAe nā mea hoʻohana a pau',
-'protect-level-sysop' => 'Nā kahu wale nō',
+'protect-default' => 'ʻAe nā mea hoʻohana a pau',
+'protect-level-sysop' => 'Nā Kahu wale nō',
 'protect-cantedit' => 'ʻAʻole hiki iā ʻoe ke hoʻololi i nā kūlana māmalu o kēia ʻaoʻao, no ka mea, ʻaʻohe āu ʻae no ka hoʻololi ʻana.',
 'protect-expiry-options' => '1 hola:1 hour,1 lā:1 day,1 pule:1 week,2 pule:2 weeks,1 mahina:1 month,3 mahina:3 months,6 mahina:6 months,1 makahiki:1 year,pau ʻole:infinite',
 'restriction-type' => 'ʻAe ʻia:',
 
 # Restrictions (nouns)
-'restriction-edit' => 'E ho‘ololi',
-'restriction-move' => "E ho'ololi i ka inoa",
+'restriction-edit' => 'Hoʻololi',
+'restriction-move' => 'Hoʻoneʻe',
 
 # Undelete
 'undeletebtn' => 'Ho‘āla',
 'undeletelink' => 'nānā/ho‘āla',
+'undeleteviewlink' => 'hōʻike',
 'undelete-search-submit' => 'Huli',
 
 # Namespace form on various pages
-'namespace' => 'Wahi inoa',
+'namespace' => 'Lewainoa:',
+'invert' => 'Kuapo i ke koho',
 'blanknamespace' => '(‘ano nui)',
 
 # Contributions
-'contributions' => 'Nā ha‘awina o kēia mea ho‘ohana',
-'mycontris' => 'Koʻu mau haʻawina',
-'contribsub2' => 'No $1 ($2)',
-'uctop' => '(wēkiu)',
-'month' => 'Mai ka mahina (me mua):',
-'year' => 'Mai ka makahiki (me mua):',
-
-'sp-contributions-deleted' => 'Nā ha‘awina o ka inoa mea ho‘ohana i kāpae ‘ia ai',
-'sp-contributions-talk' => 'Kūkākūkā',
-'sp-contributions-userrights' => 'Ho‘oponopono ‘ana o nā kuleana',
+'contributions' => 'Nā haʻawina o ka {{GENDER:$1|mea hoʻohana}}',
+'contributions-title' => 'Nā Hāʻawina mea hoʻohana no $1',
+'mycontris' => 'Kaʻu mau haʻawina',
+'contribsub2' => 'No {{GENDER:$3|$1}} ($2)',
+'uctop' => '(okamanawa)',
+'month' => 'Mai ka mahina (mamua aku nei nō hoʻi):',
+'year' => 'Mai ka makahiki (mamua aku nei nō hoʻi):',
+
+'sp-contributions-newbies' => 'Hōʻike i nā hāʻawina o nā moʻokāki hou wale nō',
+'sp-contributions-blocklog' => 'moʻolelo hoʻopale',
+'sp-contributions-deleted' => 'nā ha‘awina o ka inoa mea ho‘ohana i holoi ‘ia',
+'sp-contributions-uploads' => 'nā hoʻouka',
+'sp-contributions-logs' => 'nā moʻolelo',
+'sp-contributions-talk' => 'walaʻau',
+'sp-contributions-userrights' => 'ka hoʻoponopono ʻana o nā kūleana mea hoʻohana',
 'sp-contributions-search' => 'Huli no nā haʻawina',
+'sp-contributions-username' => 'Wahinoho IP aiʻole inoa mea hoʻohana:',
+'sp-contributions-toponly' => 'Hōʻike wale nō i nā hoʻololi kāmua hou loa',
 'sp-contributions-submit' => 'Huli',
 
 # What links here
-'whatlinkshere' => 'Nā mea e loulou iho ai',
+'whatlinkshere' => 'He aha ka mea e loulou iho ai',
+'whatlinkshere-title' => 'Nā ʻAoʻao e loulou iā "$1"',
 'whatlinkshere-page' => '‘Ao‘ao:',
-'nolinkshere' => "‘A‘ole he ‘ao‘ao e loulou ai iā '''[[:$1]]'''.",
-'isredirect' => 'ʻaoʻao hoʻoili ʻana',
-'whatlinkshere-prev' => '{{PLURAL:$1|mua|mua $1}}',
-'whatlinkshere-next' => '{{PLURAL:$1|hope|hope $1}}',
+'linkshere' => 'Loulou kēia mau ʻaoʻao iā <strong>[[:$1]]</strong>:',
+'nolinkshere' => "ʻAʻohe ‘ao‘ao e loulou iā '''[[:$1]]'''.",
+'isredirect' => 'ʻaoʻao kia hou',
+'istemplate' => 'kumo',
+'isimage' => 'loulou waihona',
+'whatlinkshere-prev' => '{{PLURAL:$1|mua aku nei|$1 mua aku nei}}',
+'whatlinkshere-next' => '{{PLURAL:$1|hou aʻe|$1 hou aʻe}}',
 'whatlinkshere-links' => '← nā loulou',
+'whatlinkshere-hideredirs' => '$1 i nā kiahou',
+'whatlinkshere-hidetrans' => '$1 i nā kumo',
 'whatlinkshere-hidelinks' => '$1 i nā loulou',
+'whatlinkshere-hideimages' => '$1 i nā loulou waihona',
 'whatlinkshere-filters' => 'Kānana',
 
 # Block/unblock
-'blockip' => 'E ke‘a i kēia mea ho‘ohana',
+'blockip' => 'Pale i kēia mea ho‘ohana',
 'ipbexpiry' => 'Pau āhea:',
 'ipbreason' => 'Kumu:',
-'ipbsubmit' => 'E ke‘a i kēia mea ho‘ohana',
-'ipbother' => 'ʻĒ aʻe manawa:',
-'ipboptions' => '2 hola:2 hours,1 lā:1 day,3 lā:3 days,1 pule:1 week,2 pule:2 weeks,1 mahina:1 month,3 mahina:3 months,6 mahina:6 months,1 makahiki:1 year,pau ʻole:infinite',
-'badipaddress' => 'Mana ‘ole ka wahi noho IP',
+'ipbsubmit' => 'Pale i kēia mea ho‘ohana',
+'ipbother' => 'Manawa ʻē aʻe:',
+'ipboptions' => '2 mau hola:2 hours,1 lā:1 day,3 mau lā:3 days,1 pule:1 week,2 mau pule:2 weeks,1 mahina:1 month,3 mau mahina:3 months,6 mau mahina:6 months,1 makahiki:1 year,wā pau ʻole:infinite',
+'badipaddress' => 'Wahinoho IP hewa',
+'ipblocklist' => 'Nā Mea hoʻohana pale ʻia',
 'ipblocklist-submit' => 'Huli',
 'infiniteblock' => 'pau ʻole',
-'anononlyblock' => '‘A‘ohe i hō‘ike‘ia ka inoa wale nō',
-'blocklink' => 'e keʻa',
-'unblocklink' => 'mai pale',
-'change-blocklink' => 'hoʻololi ka palena',
-'contribslink' => 'nā ha‘awina',
+'anononlyblock' => 'nā inoaʻole wale nō',
+'blocklink' => 'hoʻopale',
+'unblocklink' => 'hoʻopale ʻole',
+'change-blocklink' => 'hoʻololi i ka palena',
+'contribslink' => 'ha‘awina',
+'blocklogpage' => 'Moʻolelo hoʻopale',
+'blocklogentry' => 'ua hoʻopale ʻia ʻo [[$1]] no ka manawa o $2 $3',
+'block-log-flags-nocreate' => 'ua hoʻopale ʻia ke kāinoa moʻokāki ʻana',
 
 # Move page
 'move-page-legend' => 'Hoʻoneʻe i ka ʻaoʻao',
 'movearticle' => 'E hoʻoneʻe i ka ʻaoʻao:',
 'newtitle' => 'I ka inoa hou:',
-'move-watch' => 'E nānā pono i kēia mea',
+'move-watch' => 'Kiaʻi i ka ʻaoʻao kumu a me ka ʻaoʻao māka',
 'movepagebtn' => 'Hoʻoneʻe i ka ʻaoʻao',
 'pagemovedsub' => 'Kūleʻa ka hoʻoneʻe ʻana',
 'movepage-moved' => '\'\'\'Ua hoʻoneʻe ʻia ʻo "$1" iā "$2"\'\'\'',
+'movelogpage' => 'Hoʻoneʻe i ka moʻolelo',
 'movereason' => 'Kumu:',
-'delete_and_move' => 'E kāpae a e ho‘ololi i ka inoa',
-'delete_and_move_confirm' => '‘Ae, e kāpae i ka ‘ao‘ao',
+'revertmove' => 'hoʻihoʻi',
+'delete_and_move' => 'Holoi a hoʻoneʻe',
+'delete_and_move_confirm' => '‘Ae, e holoi i ka ‘ao‘ao',
 
 # Export
+'export' => 'Kāpuka ʻaoʻao',
 'export-addcat' => 'Ho‘ohui',
 
 # Namespace 8 related
-'allmessages' => 'Nā kauoha o ke kahua',
+'allmessages' => 'Pūlono ʻōnaehana',
 'allmessagesname' => 'Inoa',
 'allmessagesdefault' => 'Kikokikona pa‘amau',
 'allmessagescurrent' => 'Kikokikona i kēia manawa',
 
 # Thumbnails
-'thumbnail-more' => 'ho‘onui',
+'thumbnail-more' => 'Ho‘onui',
+'thumbnail_error' => 'Loaʻa i ka hewa ka haku ʻana o ke kiʻiliʻi: $1',
 
 # Tooltip help for the actions
-'tooltip-pt-userpage' => 'Kāu inoa mea ho‘ohana',
-'tooltip-pt-mytalk' => 'Kāu ‘aoʻao ʻōlelo',
-'tooltip-pt-preferences' => 'ka‘u makemake',
-'tooltip-pt-watchlist' => 'Ka papa o nā ʻaoʻao o kou nānā ʻana no nā loli',
+'tooltip-pt-userpage' => 'Kāu ʻaoʻao mea hoʻohana',
+'tooltip-pt-mytalk' => 'Kāu walaʻau',
+'tooltip-pt-preferences' => 'u makemake',
+'tooltip-pt-watchlist' => 'He papahelu o nā ʻaoʻao āu e kiaʻi nei no nā loli',
 'tooltip-pt-mycontris' => 'Kāu mau ha‘awina',
 'tooltip-pt-login' => 'Pai ‘ia ‘oe e ‘e‘e, akā, ‘a‘ole ia he koina',
-'tooltip-pt-logout' => 'E ha‘alele',
-'tooltip-ca-talk' => 'Kūkākūkā e pili ana i kēia ‘ao‘ao',
+'tooltip-pt-logout' => 'Ha‘alele',
+'tooltip-ca-talk' => 'Kūkākūkā e pili ana i ka ʻaoʻao mealoko',
 'tooltip-ca-edit' => 'Hiki iā ‘oe ke ho‘ololi i kēia ‘ao‘ao. Ma mua o ka mālama ʻia ʻana, e ho‘ohana i ke pihi nāmua, ke ‘olu‘olu.',
-'tooltip-ca-addsection' => 'Hoʻomaka i kekahi māhele hou',
-'tooltip-ca-viewsource' => 'Pale ʻia kēia ʻaoʻao.
-Hiki iā ʻoe ke ʻikena i kāna molekumu.',
-'tooltip-ca-history' => 'Ko kēia ʻaoʻao mau kāmua hope',
-'tooltip-ca-protect' => 'Ho‘omalu i keia ‘ao‘ao',
-'tooltip-ca-delete' => 'E kāpae i kēia mo‘olelo',
+'tooltip-ca-addsection' => 'Hoʻomaka i kekahi pauku hou',
+'tooltip-ca-viewsource' => 'Hoʻomalu ʻia kēia ʻaoʻao.
+Hiki iā ʻoe ke ʻike i kāna kūmole.',
+'tooltip-ca-history' => 'Nā kāmua mamua o kēia ʻaoʻao',
+'tooltip-ca-protect' => 'E ho‘omalu i keia ‘ao‘ao',
+'tooltip-ca-delete' => 'E holoi i kēia ʻaoʻao',
 'tooltip-ca-move' => 'E hoʻoneʻe i kēia ʻaoʻao',
-'tooltip-ca-watch' => 'E nānā pono i kēia mea',
+'tooltip-ca-watch' => 'Hoʻohui i kāu papakiʻai',
+'tooltip-ca-unwatch' => 'Hoʻowehe i kēia ʻaoʻao mai kāu papakiaʻi',
 'tooltip-search' => 'Huli iā {{SITENAME}}',
 'tooltip-search-go' => 'Kele i kekahi ʻaoʻao me kēia inoa inā hiki ke loaʻa',
 'tooltip-search-fulltext' => 'Huli i nā ʻaoʻao no kēia kikokikona',
 'tooltip-p-logo' => 'Kele i ka papa kinohi',
 'tooltip-n-mainpage' => 'Kele i ka papa kinohi',
 'tooltip-n-mainpage-description' => 'Kele i ka papa kinohi',
-'tooltip-n-portal' => 'E pili ana ka pāhana, nā hana hiki, nā wahi no ka loaʻa ʻana',
-'tooltip-n-currentevents' => 'ʻIke i nā nū hou',
+'tooltip-n-portal' => 'No ka papahana, nā hana hiki, nāhi no ka loaʻa ʻana',
+'tooltip-n-currentevents' => 'Loaʻa nā ʻike kūmole e pili ana i nā nūhou',
 'tooltip-n-recentchanges' => 'Nā loli hou ma ka wiki',
-'tooltip-n-randompage' => 'Hōʻike kekahi ʻaoʻao kaulele',
-'tooltip-n-help' => 'Ka wahi e kōkua ai iā ‘oe',
-'tooltip-t-whatlinkshere' => 'Nā ‘ao‘ao a pau i loulou mai ai',
+'tooltip-n-randompage' => 'Hoʻouka i kekahi ʻaoʻao kaulele',
+'tooltip-n-help' => 'Kahi e aʻo mai',
+'tooltip-t-whatlinkshere' => 'He papahelu o nā ʻaoʻao wiki apau e loulou i ʻaneʻi',
+'tooltip-t-recentchangeslinked' => 'Nā loli hou i nā ʻaoʻao i loulou ʻia mai kēia ʻaoʻao',
+'tooltip-feed-atom' => 'Hānaīke Atom no kēia ʻaoʻao',
+'tooltip-t-contributions' => 'He papahelu o nā hāʻawina o ka mea hoʻohana',
 'tooltip-t-emailuser' => 'Leka uila i kēia mea hoʻohana',
 'tooltip-t-upload' => 'Ho‘ouka i nā waihona',
-'tooltip-t-specialpages' => 'Papa inoa o nā ʻaoʻao nui apau',
+'tooltip-t-specialpages' => 'He papainoa o nā ʻaoʻao kūikawā apau',
 'tooltip-t-print' => 'Mana paʻi pono o kēia ʻaoʻao',
 'tooltip-t-permalink' => 'Loulou paʻa no kēia kāmua o ka ʻaoʻao',
-'tooltip-ca-nstab-special' => 'He papa nui kēia; ʻaʻole hiki iā ʻoe ke hoʻololi',
+'tooltip-ca-nstab-main' => 'Nānā i ka ʻaoʻao mealoko',
+'tooltip-ca-nstab-user' => 'Nānā i ka ʻaoʻao mea hoʻohana',
+'tooltip-ca-nstab-special' => 'He ʻaoʻao kūikawā kēia; ʻaʻole hiki iā ʻoe ke hoʻololi',
 'tooltip-ca-nstab-project' => 'Nānā i ka ‘ao‘ao papahana',
-'tooltip-ca-nstab-image' => 'Nānā i ka ʻaoʻao faila',
+'tooltip-ca-nstab-image' => 'Nānā i ka ʻaoʻao waihona',
+'tooltip-ca-nstab-template' => 'Nānā i ke anakuhi',
 'tooltip-ca-nstab-help' => 'Nānaina i ka ʻaoʻao kōkua',
-'tooltip-minoredit' => 'Wae i kēia hoʻopololei me he hoʻopololei iki',
-'tooltip-save' => 'Mālama i kāu ho‘opololei',
-'tooltip-watch' => 'E nānā pono i kēia mea',
+'tooltip-ca-nstab-category' => 'Nānā i ka ‘ao‘ao mahele',
+'tooltip-minoredit' => 'Kaha i kēia me he hoʻololi iki',
+'tooltip-save' => 'Mālama i kāu mau loli',
+'tooltip-preview' => 'E nāmua i kāu mau loli ma mua o ka mālama ʻana ke ʻoluʻolu!',
+'tooltip-diff' => 'Hōʻike i nā loli āu i hana ai i kēia kikokikona',
+'tooltip-compareselectedversions' => 'E ʻike i na ʻokoʻa ma waena o nā kāmua ʻelua i koho ʻia o kēia ʻaoʻao',
+'tooltip-watch' => 'Hoʻohui i kāu papakiʻai',
+'tooltip-rollback' => 'Hoʻihoʻi ʻo "Hoʻihoʻi" i nā hoʻololi i kēia ʻaoʻao o ka mea hāʻawi hopeloa i hoʻokahi kāomi',
+'tooltip-undo' => 'Hoʻihoʻi ʻo "Hōʻole" i kēia hoʻololi a wehe ia i ka ʻaoʻao hoʻololi i ke ʻano nāmua. ʻAe ia i ka hoʻohui ʻana i kekahi kumu i loko o ka hōʻuluʻulu manaʻo.',
+'tooltip-summary' => 'Kikokiko i kekahi hōʻuluʻulu manaʻo pōkole',
 
 # Browsing diffs
+'previousdiff' => '← Hoʻololi aku nei',
 'nextdiff' => 'Hoʻololi hou aʻe →',
 
 # Media information
-'file-info-size' => '$1 x $2 kiʻiʻuku, nui faila: $3, ʻano MIME: $4',
-'show-big-image' => 'Miomio piha',
+'file-info-size' => '$1 x $2 kiʻiʻuku, nui waihona: $3, ʻano MIME: $4',
+'file-nohires' => 'Loaʻa ʻole ka miomio aʻe.',
+'svg-long-desc' => 'Waihona SVG, $1 x $2 mau pikela, nui waihona: $3',
+'show-big-image' => 'Waihona kumu',
 
 # Special:NewFiles
 'ilsubmit' => 'Huli',
 
+# Bad image list
+'bad_image_list' => 'ʻO kēia ka hulu:
+
+Noʻonoʻo pono wale no i nā ʻikamu papahelu (nā laina e hoʻomaka ʻia me *).
+Pono ka loulou mua loa ma kekahi laina e loulou i kekahi waihona ʻino.
+Noʻonoʻo ʻia nā loulou heleiho ma kēlā laina like i nā kūʻē lula, he laʻana kēia, nā ʻaoʻao e loaʻa i ka waihona i loko o ka laina.',
+
+# Metadata
+'metadata' => 'ʻIkepiliMeta',
+'metadata-help' => 'Loaʻa i kēia waihona nā ʻike ʻē aʻe i hoʻohui ʻia paha mai kekahi pahupaʻakiʻi aiʻole kekahi mīkinikopekiʻi i hana ʻia no ka haku ʻana aiʻole ka hoʻokamepiuila ʻana o ia.
+Inā ua kāloli ʻia ka waihona mai kona ʻano kumu, hōʻike piha ʻole i kekahi o nā kikoʻī o ka waihona i kāloli ʻia.',
+'metadata-fields' => 'E hoʻokomo ʻia ana nā kula ʻikepiliMeta kiʻi i loko o kēia pūlono ma ka hōʻike ʻaoʻao kiʻi oiai ka hoʻoliʻi ʻana o ke pākaukau ʻikepiliMeta.
+Hoʻohuna paʻamau i nā mea ʻē aʻe
+* kahana lōkō
+* kaʻano
+* kalāholakumu
+* holahuʻena
+* heluf
+* kūlanawikiiso
+* loaaniani
+* meahana
+* kūleanakope
+* hōʻikeʻanokiʻi
+* lakikūgps
+* lonikūgps
+* kiʻekiʻegps',
+
 # 'all' in various places, this might be different for inflected languages
-'watchlistall2' => 'apau',
-'namespacesall' => 'apau',
-'monthsall' => 'āpau',
+'watchlistall2' => 'nā mea apau',
+'namespacesall' => 'nā mea apau',
+'monthsall' => 'nā mea apau',
 
 # action=purge
 'confirm_purge_button' => 'Hiki nō',
 
 # Multipage image navigation
-'imgmultipageprev' => '← mea ma mua aʻe',
-'imgmultipagenext' => 'mea aʻe →',
+'imgmultipageprev' => '← ʻaoʻao aku nei',
+'imgmultipagenext' => 'ʻaoʻao hou aʻe →',
 
 # Table pager
-'table_pager_next' => 'Mea aʻe',
-'table_pager_prev' => 'Mea ma mua aʻe',
+'table_pager_next' => 'ʻAoʻao hou aʻe',
+'table_pager_prev' => 'ʻAoʻao aku nei',
 
 # Auto-summaries
-'autosumm-replace' => "Ke pani nei i ka ‘ao‘ao me '$1'",
-'autoredircomment' => 'Ke alaka‘i nei hou i [[$1]]',
+'autosumm-replace' => "Ke pani nei i ka mealoko me '$1'",
+'autoredircomment' => 'Kiahou i ka ʻaoʻao iā [[$1]]',
 'autosumm-new' => "Ua hoʻokumu ʻia kekahi ʻaoʻao me '$1'",
 
 # Live preview
 'livepreview-loading' => 'Ke ho‘ouka nei…',
 
 # Watchlist editor
-'watchlistedit-normal-title' => 'E ho‘opololei i ka‘u papa nānā pono',
+'watchlistedit-normal-title' => 'Hoʻololi i ka papakiaʻi',
+
+# Watchlist editing tools
+'watchlisttools-view' => 'Nānā i nā loli ʻālike',
+'watchlisttools-edit' => 'Nānā a hoʻololi i ka papakiaʻi',
+'watchlisttools-raw' => 'Hoʻololi i ka papakiaʻi maka',
+
+# Core parser functions
+'duplicate-defaultsort' => '<strong>E akahele:</strong> Mauʻaʻe ke kī kaʻalike paʻamau "$2" i ke kī kaʻalike paʻamau "$1" mai ka wā mua.',
 
 # Special:Version
-'version-specialpages' => 'Nā ‘ao‘ao kūikawā',
+'version-specialpages' => 'Nā ‘Ao‘ao kūikawā',
 
 # Special:FileDuplicateSearch
 'fileduplicatesearch-submit' => 'Huli',
 
 # Special:SpecialPages
-'specialpages' => 'Nā ‘ao‘ao kūikawā',
+'specialpages' => 'Nā ‘Ao‘ao kūikawā',
+
+# External image whitelist
+'external_image_whitelist' => ' #Waiho i kēia laina<pre>
+#Kau i nā hapa haʻi maʻamau (nā hapa e kau ʻia ma waena o nā //) i lalo
+#Hoʻohālikelike ia mea me nā URL o nā kiʻi kūwaho (loulouhūnāloko)
+#Hōʻike ʻia ia mea e hoʻohālikelike me he mau kiʻi, inā ʻaʻole pēlā e hōʻike wale me he loulou no ke kiʻi wale nō
+#Mālama ʻia nā laina e hoʻomaka me ka # e like me nā kaumanaʻo
+#Kākau wale, mai hopohopo e pili ana nā ʻaui
+
+#Kau i nā hapa ligaka apau ma luna o kēia laina. Wahiho i kēia laina</pre>',
 
 # Special:Tags
-'tags-edit' => 'e hoʻololi',
+'tag-filter' => 'Kānana [[Special:Tags|lepili]]:',
+'tags-edit' => 'hoʻololi',
 
 # Special:ExpandTemplates
 'expand_templates_ok' => 'Hiki nō',
index 43a760e..d86771f 100644 (file)
@@ -405,7 +405,6 @@ $messages = array(
 'tog-ccmeonemails' => 'לשלוח אליי העתקים של הודעות דואר אלקטרוני ששלחתי למשתמשים אחרים',
 'tog-diffonly' => 'ביטול הצגת תוכן הדף מתחת להשוואות הגרסאות',
 'tog-showhiddencats' => 'הצגת קטגוריות מוסתרות',
-'tog-noconvertlink' => 'ביטול המרת קישורים לכותרות',
 'tog-norollbackdiff' => 'השמטת ההבדלים בין הגרסאות לאחר ביצוע שחזור',
 'tog-useeditwarning' => 'הצגת אזהרה בעת עזיבת דף עריכה עם שינויים שטרם נשמרו',
 'tog-prefershttps' => 'תמיד להשתמש בתקשורת מאובטחת לאחר הכניסה לחשבון',
@@ -617,7 +616,6 @@ $1',
 'disclaimers' => 'הבהרה משפטית',
 'disclaimerpage' => 'Project:הבהרה משפטית',
 'edithelp' => 'עזרה לעריכה',
-'helppage' => 'Help:תפריט ראשי',
 'mainpage' => 'עמוד ראשי',
 'mainpage-description' => 'עמוד ראשי',
 'policy-url' => 'Project:נהלים',
@@ -818,8 +816,7 @@ $2',
 'gotaccountlink' => 'כניסה לחשבון',
 'userlogin-resetlink' => 'שכחת את פרטי הכניסה?',
 'userlogin-resetpassword-link' => 'שכחת את הסיסמה?',
-'helplogin-url' => 'Help:כניסה לחשבון',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|עזרה בכניסה לחשבון]]',
+'userlogin-helplink2' => 'עזרה בכניסה לחשבון',
 'userlogin-loggedin' => 'אתם כבר מחוברים לחשבון {{GENDER:$1|$1}}.
 השתמשו בטופס שלהלן כדי להתחבר לחשבון אחר.',
 'userlogin-createanother' => 'יצירת חשבון אחר',
@@ -918,6 +915,7 @@ $2',
 'createacct-another-realname-tip' => 'השם האמיתי הוא אופציונאלי.
 אם תבחרו לספקו, הוא ישמש לייחוס עבודת המשתמש אליו.',
 'pt-login' => 'כניסה לחשבון',
+'pt-login-button' => 'כניסה לחשבון',
 'pt-createaccount' => 'יצירת חשבון',
 'pt-userlogout' => 'יציאה מהחשבון',
 
@@ -950,7 +948,10 @@ $2',
 'resetpass-temp-password' => 'סיסמה זמנית:',
 'resetpass-abort-generic' => 'שינוי הסיסמה בוטל על־ידי הרחבה.',
 'resetpass-expired' => 'סיסמתכם פקעה. אנא הגדירו סיסמה חדשה כדי להיכנס.',
-'resetpass-expired-soft' => 'סיסמתכם פקעה, ויש לאפס אותה. אנא בחרו סיסמה חדשה כעת, או לחצו על "ביטול" כדי לאפס אותה מאוחר יותר.',
+'resetpass-expired-soft' => 'סיסמתכם פקעה ויש לאפס אותה. אנא בחרו סיסמה חדשה כעת, או לחצו על "{{int:resetpass-submit-cancel}}" כדי לאפס אותה מאוחר יותר.',
+'resetpass-validity-soft' => 'סיסמתך אינה תקינה: $1
+
+יש לבחור סיסמה חדשה עכשיו או ללחוץ "{{int:resetpass-submit-cancel}}" כדי לאפס את הסיסמה מאוחר יותר.',
 
 # Special:PasswordReset
 'passwordreset' => 'איפוס סיסמה',
@@ -1094,9 +1095,9 @@ $2
 'accmailtitle' => 'הסיסמה נשלחה',
 'accmailtext' => "סיסמה אקראית עבור [[User talk:$1|$1]] נשלחה אל $2. ניתן לשנותה בדף '''[[Special:ChangePassword|שינוי הסיסמה]]''' לאחר הכניסה.",
 'newarticle' => '(חדש)',
-'newarticletext' => "הגעתם לדף שעדיין איננו קיים.
-כדי ליצור את הדף הזה, התחילו להקליד בתיבת הטקסט למטה (ראו את [[{{MediaWiki:Helppage}}|דף העזרה]] למידע נוסף).
-אם הגעתם לכאן בטעות, לחצו על '''כפתור החזרה''' (Back) בדפדפן שלכם.",
+'newarticletext' => 'הגעתם לדף שעדיין איננו קיים.
+כדי ליצור את הדף הזה, התחילו להקליד בתיבת הטקסט למטה (ראו את [$1 דף העזרה] למידע נוסף).
+אם הגעתם לכאן בטעות, לחצו על כפתור ה<strong>חזרה</strong> (Back) בדפדפן שלכם.',
 'anontalkpagetext' => "----
 '''זהו דף שיחה של משתמש אנונימי שעדיין לא יצר חשבון במערכת, או שהוא לא משתמש בו. כיוון שכך, אנו צריכים להשתמש בכתובת ה־IP כדי לזהותו. ייתכן שכתובת IP זו תייצג מספר משתמשים. אם אתם משתמשים אנונימיים ומרגישים שקיבלתם הודעות בלתי רלוונטיות, אנא [[Special:UserLogin|היכנסו לחשבון]] או [[Special:UserLogin/signup|הירשמו לאתר]] כדי להימנע מבלבול עתידי עם משתמשים אנונימיים נוספים.'''
 ----",
@@ -1115,8 +1116,8 @@ $2
 'userpage-userdoesnotexist' => 'חשבון המשתמש "$1" אינו רשום.
 אנא בדקו אם ברצונכם ליצור/לערוך דף זה.',
 'userpage-userdoesnotexist-view' => 'חשבון המשתמש "$1" אינו רשום.',
-'blocked-notice-logextract' => 'משתמש זה חסום כרגע.
¤×¢×\95×\9cת ×\99×\95×\9e×\9f ×\94×\97ס×\99×\9e×\95ת ×\94×\90×\97ר×\95× ×\94 ×\9e×\95צ×\92ת ×\9c×\94×\9cן:',
+'blocked-notice-logextract' => '{{GENDER:$1|המשתמש הזה חסום|המשתמשת הזאת חסומה}} כרגע.
\94פע×\95×\9c×\94 ×\94×\90×\97ר×\95× ×\94 ×\91×\99×\95×\9e×\9f ×\94×\97ס×\99×\9e×\95ת ×\9e×\95צ×\92ת ×\9c×\94×\9c×\9f ×\9c×¢×\99×\95ן:',
 'clearyourcache' => "'''הערה:''' לאחר השמירה, עליכם לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.
 * '''פיירפוקס / ספארי:''' לחצו על Shift בעת לחיצתכם על '''העלה מחדש''' (Reload), או הקישו על ''Ctrl-F5'' או על ''Ctrl-R'' (או על ''<span dir=\"ltr\">⌘-R</span>'' במחשב מק)
 * '''גוגל כרום:''' לחצו על ''Ctrl-Shift-R'' (או על ''<span dir=\"ltr\">⌘-Shift-R</span>'' במק)
@@ -1342,8 +1343,10 @@ $2
 'revdelete-show-file-submit' => 'כן',
 'revdelete-selected' => "'''ה{{PLURAL:$2|גרסה שנבחרה|גרסאות שנבחרו}} מתוך הדף [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|פעולת היומנים שנבחרה|פעולות היומנים שנבחרו}}:'''",
-'revdelete-text' => "'''גרסאות ופעולות יומנים שנמחקו עדיין תופענה בהיסטוריית הדף ובדפי היומנים, אך חלקים מהתוכן שלהן לא יהיה זמין לציבור.'''
-מפעילי מערכת אחרים באתר עדיין יוכלו לגשת לתוכן הנסתר ויוכלו לשחזר אותו שוב דרך הממשק הזה, אלא אם כן תוגדרנה הגבלות נוספות.",
+'revdelete-text-text' => 'גרסאות שנמחקו עדיין תופענה בהיסטוריית הדף, אך חלקים מהתוכן שלהן לא יהיו זמינים לציבור.',
+'revdelete-text-file' => 'גרסאות קבצים שנמחקו עדיין תופענה בהיסטוריית הקובץ, אך חלקים מהתוכן שלהן לא יהיו זמינים לציבור.',
+'logdelete-text' => 'פעולות יומנים שנמחקו עדיין תופענה בדפי היומנים, אך חלקים מהתוכן שלהן לא יהיו זמינים לציבור.',
+'revdelete-text-others' => 'מפעילי מערכת אחרים באתר עדיין יוכלו לגשת לתוכן הנסתר ויוכלו לשחזר אותו שוב דרך הממשק הזה, אלא אם כן תוגדרנה הגבלות נוספות.',
 'revdelete-confirm' => 'אנא אשרו שזה אכן מה שאתם מתכוונים לעשות, שאתם מבינים את התוצאות של מעשה כזה, ושהמעשה מבוצע בהתאם ל[[{{MediaWiki:Policy-url}}|נוהלי האתר]].',
 'revdelete-suppress-text' => "יש להשתמש בהסתרה מלאה '''אך ורק''' במקרים הבאים:
 * מידע שעלול להיות לשון הרע
@@ -1481,7 +1484,7 @@ $1",
 'search-file-match' => '(התאמה בתוכן הקובץ)',
 'search-suggest' => 'האם התכוונת ל: $1',
 'search-interwiki-caption' => 'מיזמי אחות',
-'search-interwiki-default' => 'ת×\95צ×\90×\95ת ×\91{{GRAMMAR:תחילית|$1}}:',
+'search-interwiki-default' => 'ת×\95צ×\90×\95ת ×\9e{{GRAMMAR:תחילית|$1}}:',
 'search-interwiki-more' => '(עוד)',
 'search-relatedarticle' => 'קשור',
 'searcheverything-enable' => 'חיפוש בכל מרחבי השם',
@@ -1811,8 +1814,8 @@ $1",
 'recentchanges-legend-heading' => "'''מקרא:'''",
 'recentchanges-legend-newpage' => '(ראו גם [[Special:NewPages|רשימת דפים חדשים]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => 'להלן <b>$1</b> השינויים האחרונים שבוצעו החל מתאריך <b>$2</b>:',
-'rclistfrom' => 'הצגת שינויים חדשים החל מ־$1',
+'rcnotefrom' => 'להלן השינויים שבוצעו החל מ‏‏֫־<b>$2</b> (עד <b>$1</b> מוצגים).',
+'rclistfrom' => 'הצגת שינויים חדשים החל מ־$2, $3',
 'rcshowhideminor' => '$1 שינויים משניים',
 'rcshowhideminor-show' => 'הצגת',
 'rcshowhideminor-hide' => 'הסתרת',
@@ -2218,6 +2221,11 @@ $1',
 # List redirects
 'listredirects' => 'רשימת הפניות',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'רשימת קבצים כפולים',
+'listduplicatedfiles-summary' => 'זוהי רשימה של קבצים שהגרסה החדשה ביותר שלהם זהה לגרסה החדשה ביותר של קובץ אחר כלשהו. רק קבצים מקומיים נבדקים לצורך זה.',
+'listduplicatedfiles-entry' => 'לקובץ [[:File:$1|$1]] יש [[$3|{{PLURAL:$2|עותק זהה|$2 עותקים זהים}}]].',
+
 # Unused templates
 'unusedtemplates' => 'תבניות שאינן בשימוש',
 'unusedtemplatestext' => 'דף זה מכיל רשימה של כל הדפים במרחב השם {{ns:template}} שאינם נכללים בדף אחר. אנא זכרו לבדוק את הקישורים האחרים לתבניות לפני שתמחקו אותן.',
@@ -2332,7 +2340,7 @@ $1',
 'deadendpagestext' => 'הדפים הבאים אינם מקשרים לדפים אחרים באתר {{SITENAME}}.',
 'protectedpages' => 'דפים מוגנים',
 'protectedpages-indef' => 'הגנות לזמן בלתי מוגבל בלבד',
-'protectedpages-summary' => 'בדף זה רשומים הדפים הקיימים שמוגנים כרגע. לרשימת הכותרות שמוגנות מפני יצירה, ראו את [[{{#special:ProtectedTitles}}|דף הכותרות המוגנות]].',
+'protectedpages-summary' => 'בדף זה רשומים הדפים הקיימים שמוגנים כרגע. לרשימת הכותרות שמוגנות מפני יצירה, ראו [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'הגנות מדורגות בלבד',
 'protectedpages-noredirect' => 'הסתרת הפניות',
 'protectedpagesempty' => 'אין כרגע דפים מוגנים עם הפרמטרים הללו.',
@@ -2345,7 +2353,7 @@ $1',
 'protectedpages-unknown-timestamp' => 'לא ידוע',
 'protectedpages-unknown-performer' => 'משתמש לא ידוע',
 'protectedtitles' => 'כותרות מוגנות',
-'protectedtitles-summary' => 'בדף זה רשומות הכותרות שמוגנות כעת מפני יצירה. לרשימת הדפים הקיימים שמוגנים, ראו את [[{{#special:ProtectedPages}}|דף הדפים המוגנים]].',
+'protectedtitles-summary' => 'בדף זה רשומות הכותרות שמוגנות כעת מפני יצירה. לרשימת הדפים הקיימים שמוגנים, ראו [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'אין כרגע כותרות מוגנות עם הפרמטרים האלה.',
 'listusers' => 'רשימת משתמשים',
 'listusers-editsonly' => 'הצגת משתמשים עם עריכות בלבד',
@@ -2620,7 +2628,7 @@ $UNWATCHURL
 'delete-edit-reasonlist' => 'עריכת סיבות המחיקה',
 'delete-toobig' => 'דף זה כולל מעל {{PLURAL:$1|גרסה אחת|$1 גרסאות}} בהיסטוריית העריכות שלו. מחיקת דפים כאלה הוגבלה כדי למנוע פגיעה בביצועי האתר.',
 'delete-warning-toobig' => 'דף זה כולל מעל {{PLURAL:$1|גרסה אחת|$1 גרסאות}} בהיסטוריית העריכות שלו. מחיקה שלו עלולה להפריע לפעולות בבסיס הנתונים; אנא שקלו שנית את המחיקה.',
-'deleting-backlinks-warning' => "'''אזהרה:''' דפים אחרים מקשרים לדף שאתם עומדים למחוק או מכלילים אותו.",
+'deleting-backlinks-warning' => "'''אזהרה:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|דפים אחרים]] מקשרים לדף שאתם עומדים למחוק או מכלילים אותו.",
 
 # Rollback
 'rollback' => 'שחזור עריכות',
@@ -2673,7 +2681,8 @@ $UNWATCHURL
 להלן ההגדרות הנוכחיות עבור הדף '''$1''':",
 'protect-locked-access' => "לחשבון המשתמש שלך אין הרשאה לשנות את רמת ההגנה של הדף.
 להלן ההגדרות הנוכחיות עבור הדף '''$1''':",
-'protect-cascadeon' => 'דף זה מוגן כרגע כיוון שהוא מוכלל {{PLURAL:$1|בדף הבא, שמופעלת עליו|בדפים הבאים, שמופעלת עליהם}} הגנה מדורגת. באפשרותכם לשנות את רמת ההגנה על הדף, אך זה לא ישפיע על ההגנה המדורגת.',
+'protect-cascadeon' => 'דף זה מוגן כרגע כיוון שהוא מוכלל {{PLURAL:$1|בדף הבא, שמופעלת עליו|בדפים הבאים, שמופעלת עליהם}} הגנה מדורגת.
+שינויים ברמת ההגנה על הדף לא ישפיעו על ההגנה המדורגת.',
 'protect-default' => 'כל המשתמשים מורשים',
 'protect-fallback' => 'רק משתמשים בעלי הרשאת "$1" מורשים',
 'protect-level-autoconfirmed' => 'רק משתמשים ותיקים מורשים',
@@ -2789,11 +2798,12 @@ $1',
 'sp-contributions-logs' => 'יומנים',
 'sp-contributions-talk' => 'שיחה',
 'sp-contributions-userrights' => 'ניהול הרשאות משתמש',
-'sp-contributions-blocked-notice' => 'משתמש זה חסום כרגע.
-הפעולה האחרונה ביומן החסימות מוצגת להלן:',
+'sp-contributions-blocked-notice' => '{{GENDER:$1|המשתמש הזה חסום|המשתמשת הזאת חסומה}} כרגע.
+הפעולה האחרונה ביומן החסימות מוצגת להלן לעיון:',
 'sp-contributions-blocked-notice-anon' => 'כתובת IP זו חסומה כרגע.
 הפעולה האחרונה ביומן החסימות מוצגת להלן:',
 'sp-contributions-search' => 'חיפוש תרומות',
+'sp-contributions-suppresslog' => 'תרומות משתמש מוסתרות',
 'sp-contributions-username' => 'שם משתמש או כתובת IP:',
 'sp-contributions-toponly' => 'הצגת עריכות שהן הגרסאות האחרונות בלבד',
 'sp-contributions-newonly' => 'הצגת עריכות שהן יצירות של דפים בלבד',
@@ -3967,6 +3977,9 @@ $5
 'confirm-unwatch-button' => 'אישור',
 'confirm-unwatch-top' => 'להסיר דף זה מרשימת המעקב שלך?',
 
+# Separators for various lists, etc.
+'quotation-marks' => '"$1"',
+
 # Multipage image navigation
 'imgmultipageprev' => '→ לדף הקודם',
 'imgmultipagenext' => 'לדף הבא ←',
index dffde68..296a0c5 100644 (file)
@@ -18,6 +18,7 @@
  * @author Charu
  * @author Darshan kandolkar
  * @author Dineshjk
+ * @author Goelujjwal
  * @author Hemant wikikosh1
  * @author Htt
  * @author InfinityO O
@@ -48,6 +49,7 @@
  * @author Shyam
  * @author Shyam123.ckp
  * @author Siddhartha Ghai
+ * @author Smtchahal
  * @author Subhashkataria21.90
  * @author Sunil Mohan
  * @author Taxman
@@ -440,7 +442,6 @@ $1',
 'disclaimers' => 'अस्वीकरण',
 'disclaimerpage' => 'Project:साधारण अस्वीकरण',
 'edithelp' => 'सम्पादन सहायता',
-'helppage' => 'Help:सहायता',
 'mainpage' => 'मुखपृष्ठ',
 'mainpage-description' => 'मुखपृष्ठ',
 'policy-url' => 'Project:नीति',
@@ -642,8 +643,6 @@ $2',
 'gotaccountlink' => 'लॉग इन',
 'userlogin-resetlink' => 'अपनी प्रवेश जानकारी भूल गए हैं?',
 'userlogin-resetpassword-link' => 'अपना पासवर्ड भूल गए?',
-'helplogin-url' => 'Help:लॉगिंग इन',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|लॉग इन करने में सहायता]]',
 'userlogin-loggedin' => 'आप {{GENDER:$1|$1}} के रूप में पहले से लॉग्ड इन हैं।
 किसी अन्य सदस्य के रूप में लॉग इन करने के लिए निम्नलिखित फ़ॉर्म का प्रयोग करें।',
 'userlogin-createanother' => 'एक अन्य खाता खोलें',
@@ -740,6 +739,7 @@ $2',
 'createacct-another-realname-tip' => 'असली नाम देना आवश्यक नहीं है।
 यदि आप प्रदान करते हैं तो इसका प्रयोग सदस्य के योगदानों के लिये उनको श्रेय (attribution) देने के लिये किया जायेगा।',
 'pt-login' => 'लॉग इन',
+'pt-login-button' => 'लॉग इन',
 'pt-createaccount' => 'खाता बनाएँ',
 'pt-userlogout' => 'लॉगआउट',
 
@@ -772,7 +772,10 @@ $2',
 'resetpass-temp-password' => 'अस्थायी कूटशब्द:',
 'resetpass-abort-generic' => 'कूटशब्द में बदलाव किसी एक्सटेंशन द्वारा रोक दिया गया है।',
 'resetpass-expired' => 'आपके पासवर्ड की वैधता अवधि समाप्त हो चुकी है। कृपया लॉग इन करने के लिए एक नया पासवर्ड सेट करें।',
-'resetpass-expired-soft' => "आपका पासवर्ड की वैधता अवधि समाप्त हो गयी है, और उसे रीसेट करने की ज़रूरत है। कृपया एक नया पासवर्ड चुनें, या बाद में रीसेट करने के लिए 'रद्द करें' पर क्लिक करें।",
+'resetpass-expired-soft' => 'आपका पासवर्ड की वैधता अवधि समाप्त हो गयी है और उसे रीसेट करने की ज़रूरत है। कृपया एक नया पासवर्ड चुनें, या बाद में रीसेट करने के लिए "{{int:resetpass-submit-cancel}}" पर क्लिक करें।',
+'resetpass-validity-soft' => 'आपका पासवर्ड मान्य नहीं है: $1 
+
+कृपया अब एक नया पासवर्ड चुनें, या उसे बाद में पुनर्स्थापित करने के लिए "{{int:resetpass-submit-cancel}}" पर क्लिक करें।',
 
 # Special:PasswordReset
 'passwordreset' => 'कूटशब्द रीसेट',
@@ -914,7 +917,7 @@ $2
 'accmailtext' => "[[User talk:$1|$1]] के लिए एक यंत्र जनित कूटशब्द $2 को भेज दिया गया है। लॉगिन करने के बाद इसे '''[[Special:ChangePassword|कूटशब्द बदलें]]'' वाले पृष्ठ पर बदला जा सकता है।",
 'newarticle' => '(नया)',
 'newarticletext' => "आप ऐसे पृष्ठ पर आए हैं जो अभी तक बनाया नहीं गया है।
-पृष्ठ बनाने के लिये नीचे के बौक्स में पाठ लिखें। अधिक जानकारी के लिये [[{{MediaWiki:Helppage}}|सहायता पृष्ठ]] देखें।
+पृष्ठ बनाने के लिये नीचे के बौक्स में पाठ लिखें। अधिक जानकारी के लिये [$1 सहायता पृष्ठ] देखें।
 अगर आप यहाँ पर गलती से आए हैं तो अपने ब्राउज़र के बैक ('''back''') बटन पर क्लिक करें।",
 'anontalkpagetext' => "----''यह वार्ता पृष्ठ उन बेनामी सदस्यों के लिये है जिन्होंने या तो खाता नहीं खोला है या खाते का प्रयोग नहीं कर रहे हैं।
 इसलिये उनकी पहचान के लिये हमें उनका आइ॰पी पता प्रयोग करना पड़ता है।
@@ -1084,8 +1087,8 @@ $2
 'undo-failure' => 'इस बीच अन्य बदलाव होने के कारण यह संपादन पूर्ववत करना संभव नहीं है।',
 'undo-norev' => 'यह बदलाव वापिस नहीं कर पाये हैं क्योंकि या तो इसे पहले से पलटा दिया गया है या फिर पृष्ठ हटा दिया गया है।',
 'undo-nochange' => 'ऐसा लगता है कि इस सम्पादन को पहले ही पूर्ववत कर दिया गया है।',
-'undo-summary' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|वारà¥\8dता]]) à¤¦à¥\8dवारा à¤\95िà¤\8f à¤¬à¤¦à¤²à¤¾à¤µ $1 à¤\95à¥\8b à¤ªà¥\82रà¥\8dववत à¤\95ियà¥\87',
-'undo-summary-username-hidden' => 'à¤\9bà¥\81पाà¤\8f à¤\97à¤\8f à¤¸à¤¦à¤¸à¥\8dय à¤¦à¥\8dवारा à¤\95ियà¥\87 à¤¸à¤\82शà¥\8bधन $1 को पूर्ववत किया',
+'undo-summary' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|वारà¥\8dता]]) à¤¦à¥\8dवारा à¤\95िà¤\8f à¤¬à¤¦à¤²à¤¾à¤µ $1 à¤\95à¥\8b à¤ªà¥\82रà¥\8dववत à¤\95िया',
+'undo-summary-username-hidden' => 'à¤\9bà¥\81पाà¤\8f à¤\97à¤\8f à¤¸à¤¦à¤¸à¥\8dय à¤¦à¥\8dवारा à¤\95ियà¥\87 à¤¬à¤¦à¤²à¤¾à¤µ $1 को पूर्ववत किया',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'खाता खोल नहीं सकते',
@@ -1168,8 +1171,6 @@ $2
 'revdelete-show-file-submit' => 'हाँ',
 'revdelete-selected' => "'''[[:$1]] {{PLURAL:$2|का चुना हुआ|के चुने हुए}} अवतरण:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|चुना हुआ|चुने हुए}} लॉग इवेंट:'''",
-'revdelete-text' => "'''हटाए गए अवतरण और इवेंट पृष्ठ इतिहास और लॉग में दिखेंगे, लेकिन उनकी कुछ सामग्री सार्वजनिक नहीं होगी।'''
-{{SITENAME}} के अन्य प्रबंधक छिपी हुई सामग्री को देख पाएँगे, और इसी अंतरापृष्ठ के जरिए वे इसकी पुनर्स्थापना भी कर सकते हैं, बशर्ते कि अतिरिक्त प्रतिबंध न लगाए गए हों।",
 'revdelete-confirm' => 'पुष्टि करें कि आप यह कार्य करना चाहते हैं, आप इसका परिणाम समझते हैं, और आप ये [[{{MediaWiki:Policy-url}}|नीति]] के अनुसार कर रहे हैं।',
 'revdelete-suppress-text' => 'छिपाने का प्रयोग <strong>केवल</strong> इन परिस्थितियों में होना चाहिए:
 * संभावित अपमानजनक जानकारी
@@ -1305,7 +1306,7 @@ $1",
 'search-file-match' => '(फ़ाइल सामग्री से मेल खाता है)',
 'search-suggest' => 'कहीं आपका मतलब $1 तो नहीं था?',
 'search-interwiki-caption' => 'अन्य प्रकल्प',
-'search-interwiki-default' => '$1 à¤\95े परिणाम:',
+'search-interwiki-default' => '$1 à¤¸े परिणाम:',
 'search-interwiki-more' => '(और)',
 'search-relatedarticle' => 'सम्बंधित',
 'searcheverything-enable' => 'सभी नामस्थानों में खोजें',
@@ -1632,7 +1633,7 @@ HTML टैग की जाँच करें।',
 'recentchanges-label-plusminus' => 'पृष्ठ आकार इस बाइट संख्या से बदला',
 'recentchanges-legend-heading' => "'''कुंजी:'''",
 'recentchanges-legend-newpage' => '([[Special:NewPages|नए पन्नों की सूची]] को भी देखें)',
-'rcnotefrom' => "नीचे '''$2''' के बाद से ('''$1''' तक) हुए बदलाव दर्शाए गये हैं।",
+'rcnotefrom' => 'नीचे <strong>$2</strong> के बाद से (<strong>$1</strong> तक) हुए बदलाव दर्शाए गये हैं।',
 'rclistfrom' => '$1 से नये बदलाव दिखाएँ',
 'rcshowhideminor' => 'छोटे बदलाव $1',
 'rcshowhideminor-show' => 'दिखाएँ',
@@ -2167,7 +2168,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization देखें।',
 'protectedpages-unknown-timestamp' => 'अज्ञात',
 'protectedpages-unknown-performer' => 'अज्ञात सदस्य',
 'protectedtitles' => 'सुरक्षित शीर्षक',
-'protectedtitles-summary' => 'यह पृष्ठ उन पृष्ठ शीर्षकों की सूची देता है जिन्हें अभी बनाने से सुरक्षित किया गया है। सुरक्षित मौजूदा पृष्ठों की सूची देखने के लिए [[{{#special:ProtectedPages}}]] देखें।',
+'protectedtitles-summary' => 'यह पृष्ठ उन पृष्ठ शीर्षकों की सूची देता है जिन्हें अभी बनाने से सुरक्षित किया गया है। सुरक्षित मौजूदा पृष्ठों की सूची देखने के लिए [[{{#special:ProtectedPages}}|{{int:protectedpages}}]] देखें।',
 'protectedtitlesempty' => 'इन नियमों द्वारा कोई भी शीर्षक सुरक्षित नहीं हैं।',
 'listusers' => 'सदस्यसूची',
 'listusers-editsonly' => 'केवल संपादन कर चुके सदस्य दिखाएँ',
@@ -2443,7 +2444,7 @@ $UNWATCHURL
 'delete-warning-toobig' => 'इस पृष्ठ का संपादन इतिहास $1 से अधिक {{PLURAL:$1|अवतरण}} होने की वजह से बहुत बड़ा है।
 इसे हटाने से {{SITENAME}} के डाटाबेस की गतिविधियों में व्यवधान आ सकता है;
 कृपया सोच समझ कर आगे बढ़ें।',
-'deleting-backlinks-warning' => "'''चेतावनी:''' जो पृष्ठ आप हटाने जा रहे हैं उससे अन्य पृष्ठ जुड़ते हैं अथवा उसे ट्रांसक्लूड करते हैं।",
+'deleting-backlinks-warning' => "'''चेतावनी:''' जो पृष्ठ आप हटाने जा रहे हैं उससे [[विशेष:कड़ियाँ/{{FULLPAGENAME}}|अन्य पृष्ठ]] जुड़ते हैं अथवा उसे ट्रांसक्लूड करते हैं।",
 
 # Rollback
 'rollback' => 'संपादन वापिस लें',
@@ -2497,7 +2498,7 @@ $2 द्वारा संपादित अन्तिम अवतरण 
 पृष्ठ '''$1''' की वर्तमान स्थिति यह है:",
 'protect-locked-access' => "आपको इस पृष्ठ का सुरक्षा-स्तर बदलने की अनुमति नहीं है।
 '''$1''' का वर्तमान सुरक्षा-स्तर यह है:",
-'protect-cascadeon' => 'यह à¤ªà¥\83षà¥\8dठ à¤\85भà¥\80 à¤¸à¥\81रà¤\95à¥\8dषित à¤¹à¥\88 à¤\95à¥\8dयà¥\8bà¤\82à¤\95ि à¤¯à¤¹ {{PLURAL:$1|à¤\87स à¤ªà¥\83षà¥\8dठ à¤\95à¥\80|à¤\87न à¤ªà¥\83षà¥\8dठà¥\8bà¤\82 à¤\95à¥\80}} à¤¸à¥\81रà¤\95à¥\8dषा-सà¥\80à¥\9dà¥\80 à¤®à¥\87à¤\82 à¤¹à¥\88। à¤\86प à¤\87स à¤ªà¥\83षà¥\8dठ à¤\95ा à¤¸à¥\81रà¤\95à¥\8dषा-सà¥\8dतर à¤¬à¤¦à¤² à¤¸à¤\95तà¥\87 à¤¹à¥\88à¤\82, à¤ªà¤° à¤\89ससà¥\87 à¤¸à¥\81रà¤\95à¥\8dषा-सà¥\80à¥\9dà¥\80 à¤®à¥\87à¤\82 à¤¬à¤¦à¤²à¤¾à¤µ à¤¨à¤¹à¥\80à¤\82 à¤¹à¥\8bà¤\82à¤\97à¥\87।',
+'protect-cascadeon' => 'यह à¤ªà¥\83षà¥\8dठ à¤\85भà¥\80 à¤¸à¥\81रà¤\95à¥\8dषित à¤¹à¥\88 à¤\95à¥\8dयà¥\8bà¤\82à¤\95ि à¤¯à¤¹ {{PLURAL:$1|à¤\87स à¤ªà¥\83षà¥\8dठ à¤\95à¥\80|à¤\87न à¤ªà¥\83षà¥\8dठà¥\8bà¤\82 à¤\95à¥\80}} à¤¸à¥\81रà¤\95à¥\8dषा-सà¥\80ढ़à¥\80 à¤®à¥\87à¤\82 à¤¹à¥\88। à¤\87स à¤ªà¥\83षà¥\8dठ à¤\95à¥\87 à¤¸à¥\81रà¤\95à¥\8dषा-सà¥\8dतर à¤®à¥\87à¤\82 à¤¬à¤¦à¤²à¤¾à¤µ à¤¸à¥\87 à¤¸à¥\81रà¤\95à¥\8dषा-सà¥\80ढ़à¥\80 à¤®à¥\87à¤\82 à¤¬à¤¦à¤²à¤¾à¤µ à¤¨à¤¹à¥\80à¤\82 à¤¹à¥\8bà¤\97ा।',
 'protect-default' => 'सभी सदस्यों को अनुमति दें',
 'protect-fallback' => 'केवल "$1" अधिकार वाले सदस्यों को अनुमति दें',
 'protect-level-autoconfirmed' => 'केवल स्वतः स्थापित सदस्यों को अनुमति दें',
@@ -3767,6 +3768,7 @@ $5
 
 # Language selector for translatable SVGs
 'img-lang-default' => '(डिफ़ॉल्ट भाषा)',
+'img-lang-go' => 'जाएं',
 
 # Table pager
 'ascending_abbrev' => 'asc',
index 3205753..fcc7c72 100644 (file)
@@ -283,7 +283,6 @@ $1',
 'disclaimers' => 'Jimmewari se chhutkaari',
 'disclaimerpage' => 'Project:Saadharan jimmewari nai lo',
 'edithelp' => 'Badlao pe madat',
-'helppage' => 'Help:Madat',
 'mainpage' => 'Pahila Panna',
 'mainpage-description' => 'Pahila Panna',
 'policy-url' => 'Project:Niti',
@@ -479,8 +478,6 @@ Aapan [[Special:Preferences|{{SITENAME}} pasand]]  ke badle nai bhulna.',
 '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',
@@ -736,7 +733,7 @@ Jab aap ii panna ke dekhtaa rahaa tab saait iske hatae nai to mitae dewa gais ra
 Ii nawa account ke password ke ''[[Special:ChangePassword|change password]]''  panna pe badla jaae sake hai jab aap login karta hai.",
 'newarticle' => '(Nawaa)',
 'newarticletext' => "Aap ek panna ke jorr ke follow kara hae jon ki abhi nai hae.
-Ii panna banae khatir, niche box me type karo (see the [[{{MediaWiki:Helppage}}|help page]] for more info).
+Ii panna banae khatir, niche box me type karo (see the [$1 help page] for more info).
 Agar jo aap hian par galti se aae hai tab aapan browser ke '''back''' button pe click karo.",
 'anontalkpagetext' => "----''Ii salah kare waala panna uu anonymous sadasya ke baare me jon abhi account nai banais hai, nai to account ke kaam me nai lawe hai.
 Ii kaaran se ham log ke IP address kaam me lae ke ii sadasya ke jaana jae hai.
@@ -982,8 +979,6 @@ Aap ii diff ke dekhe saktaa hae: iske baare me aur jaan kaari [{{fullurl:{{#Spec
 'revdelete-show-file-submit' => 'Haan',
 'revdelete-selected' => "'''{{PLURAL:$2|Selected badlao|Selected badlao}} of [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Chuna gais log event|Chuna gais log events}}:'''",
-'revdelete-text' => "'''Mitawa gae badlao aur ghatna panna ke itihaas me dekhai, lekin content ke kuch part janta nai access kare saki.'''
-Duusra admins {{SITENAME}} me, lukawa gais content ke khole sake aur iske mitae bhi sake hai interface use kar ke, jab tak ki aur rukawat nai lagawa jaae.",
 'revdelete-confirm' => 'Meharbani kar ke aap ii confirm karo ki aap ii kare mangta hae, aap iske asar ke samajhta hae, aur iske aap [[{{MediaWiki:Policy-url}}|the policy]] ke anusar karta hae.',
 'revdelete-suppress-text' => "Suppression ke '''khaali''' ii chij ke khatir kaam me lawa jaae sake hai:
 * Aapan baare me jaankari thik nai hai
index 52b9dd9..894e93d 100644 (file)
@@ -252,7 +252,6 @@ $1',
 'disclaimers' => 'Diskleymer',
 'disclaimerpage' => 'Project:Kabilogan nga diskleymer',
 'edithelp' => 'Bulig sa pag Ilis',
-'helppage' => 'Help:Mga Unod',
 'mainpage' => 'Mayor nga Panid',
 'mainpage-description' => 'Mayor nga Panid',
 'policy-url' => 'Project:Patakaran',
@@ -662,7 +661,7 @@ Mahimo nga ini ginsaylo na ukon ginpanas samtang nagalantaw ka sang panid.',
 Ang pasword para sa sini nga bag-o nga akawnt mahimo ma-ilisan sa ''[[Special:ChangePassword|ilisan ang pasword]]'' nga panid pagkatapos magsulod.",
 'newarticle' => '(Bag-o)',
 'newarticletext' => "Nagbukas ka sang isa ka tabid pakadto sa isa ka pahina nga wala pa nahimo.
-Para maghimo sang sina na pahina, sugod ka lang sa pagtayp sa sulod sang kahon nga makit an mo sa idalum (tan-awa ang [[{{MediaWiki:Helppage}}|bulig nga pahina]] para sa dugang nga impormasyon).
+Para maghimo sang sina na pahina, sugod ka lang sa pagtayp sa sulod sang kahon nga makit an mo sa idalum (tan-awa ang [$1 bulig nga pahina] para sa dugang nga impormasyon).
 Pero kung nakasulod nga aksidente lamang, palihog lang i-klik sa imo internet nga may ngalan ukon simbolo nga '''back''' button.",
 'anontalkpagetext' => "----''Ini ang panid para sa pagtalakay sa wala makilala-an nga manuggamit nga wala pa nakatuga sang akawnt, ukon wala nagagamit sang isa.
 Amo nga kinahanglan naton mag-gamit sang IP adres nga de numero agod nga mahibaluan naton siya.
@@ -907,8 +906,6 @@ ang ini nga buluhaton wala, ukon gahimakas ka nga taguon ang karon nga pagbag-o.
 'revdelete-show-file-submit' => 'Huo',
 'revdelete-selected' => "'''{{PLURAL:$2|Ginpili nga pagbag-o|Ginpili nga mga pagbag-o}} ni [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Ginpili nga hinatabo sa log|Ginpili nga mga hinatabo sa log}}:'''",
-'revdelete-text' => "'''Ang mga ginpanas nga pagbag-o kag hinatabo magapakita sa gihapon sa kasaysayan sang panid kag mga log, apang ang mga parte sang ila kaundan indi na mahimo nga masudlan sang publiko.'''
-Ang iban nga administrador sa {{SITENAME}} mahimo sa gihapon nga makasulod sa nakatago nga kaundan kag mapaiway nga mapanas ini liwat sa amo sa gihapon nga interface, luwas na lang kon may dugang pa nga pagpangbawal ang ibutang.",
 'revdelete-confirm' => 'Palihog konpermar nga luyag mo ini himuon, nga imo naintiendihan ang mga konsekwensya, kag ginahimo mo ini suno sa [[{{MediaWiki:Policy-url}}|polisiya]].',
 'revdelete-suppress-text' => "Ang pagpahugot nagakadapat '''lamang''' nga pagagamiton sa masunod nga kaso:
 * Nagapang-guba sang dignindad nga impormasyon
index eb498f7..b515df2 100644 (file)
@@ -500,7 +500,7 @@ $messages = array(
 'searcharticle' => 'Kreni',
 'history' => 'Stare izmjene',
 'history_short' => 'Stare izmjene',
-'updatedmarker' => 'obnovljeno od zadnjeg posjeta',
+'updatedmarker' => 'obnovljeno od posljednjeg posjeta',
 'printableversion' => 'Inačica za ispis',
 'permalink' => 'Trajna poveznica',
 'print' => 'Ispiši',
@@ -540,7 +540,7 @@ $messages = array(
 'otherlanguages' => 'Drugi jezici',
 'redirectedfrom' => '(Preusmjereno s $1)',
 'redirectpagesub' => 'Preusmjeravanje',
-'lastmodifiedat' => 'Datum zadnje promjene na ovoj stranici: $2, $1',
+'lastmodifiedat' => 'Vrijeme i datum posljednje promjene na ovoj stranici: $2, $1',
 'viewcount' => 'Ova stranica je pogledana {{PLURAL:$1|$1 put|$1 puta}}.',
 'protectedpage' => 'Zaštićena stranica',
 'jumpto' => 'Skoči na:',
@@ -565,7 +565,6 @@ $1',
 'disclaimers' => 'Odricanje od odgovornosti',
 'disclaimerpage' => 'Project:General_disclaimer',
 'edithelp' => 'Kako uređivati stranicu',
-'helppage' => 'Help:Pomoć',
 'mainpage' => 'Glavna stranica',
 'mainpage-description' => 'Glavna stranica',
 'policy-url' => 'Project:Pravila',
@@ -587,7 +586,7 @@ $1',
 'youhavenewmessagesfromusers' => 'Imate $1 {{PLURAL:$3||od $3 suradnika|od $3 suradnika}} ($2).',
 'youhavenewmessagesmanyusers' => 'Imate $1 od više suradnika ($2).',
 'newmessageslinkplural' => '{{PLURAL:$1|novu poruku|$1 nove poruke|$1 novih poruka}}',
-'newmessagesdifflinkplural' => '{{PLURAL:$1|zadnje uređivanje|zadnja $1 uređivanja|zadnjih $1 uređivanja}} na stranici za razgovor',
+'newmessagesdifflinkplural' => '{{PLURAL:$1|posljednje uređivanje|posljednja $1 uređivanja|posljednjih $1 uređivanja}} na stranici za razgovor',
 'youhavenewmessagesmulti' => 'Imate nove poruke na $1',
 'editsection' => 'uredi',
 'editold' => 'uredi',
@@ -675,7 +674,9 @@ Nema obrazloženja ili poruke o pogrješci.',
 'badtitle' => 'Loš naslov',
 'badtitletext' => 'Navedeni naslov stranice nepravilan ili loše formirana interwiki poveznica.',
 'perfcached' => 'Sljedeći podaci su iz međuspremnika i možda nisu najsvježiji. Međuspremnik sadrži $1 {{PLURAL:$1|rezultat|rezultata}} pretraživanja.',
-'perfcachedts' => 'Sljedeći podaci su iz međuspremnika i zadnji puta su ažurirani u $1. Međuspremnik sadrži $4 {{PLURAL:$4|rezultat|rezultata}} pretraživanja.',
+'perfcachedts' => 'Sljedeći podaci su iz međuspremnika i posljednji puta su ažurirani u $1. Međuspremnik sadrži $4 {{PLURAL:$4|rezultat|rezultata}} pretraživanja.
+
+Više o ovoj [[Wikipedija:Posebne stranice|posebnoj stranici]] na [[Razgovor Wikipedija:Special:{{PAGENAME}}]].',
 'querypage-no-updates' => 'Osvježavanje ove stranice je trenutačno onemogućeno. Nove promjene neće biti vidljive.',
 'viewsource' => 'Vidi izvornik',
 'viewsource-title' => 'Vidi kôd stranice $1',
@@ -752,7 +753,6 @@ Ne zaboravite prilagoditi Vaše [[Special:Preferences|{{SITENAME}} postavke]].',
 'gotaccountlink' => 'Prijavite se',
 'userlogin-resetlink' => 'Zaboravili ste detalje vaše prijave?',
 'userlogin-resetpassword-link' => 'Zaboravili ste zaporku?',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoć pri prijavi]]',
 'userlogin-loggedin' => 'Već ste prijavljeni kao {{GENDER:$1|$1}}.
 Rabite donji obrazac da biste se prijavili kao drugi suradnik.',
 'userlogin-createanother' => 'Stvori još jedan račun',
@@ -815,7 +815,7 @@ 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 poslana je e-poruka s potvrdom.
 Prije nego što pošaljemo daljnje poruke, molimo Vas otvorite e-poruku i slijedite u njemu sadržana uputstva kako biste potvrdili da je adresa e-pošte zaista Vaša.',
-'throttled-mailpassword' => 'Već Vam je poslan e-mail za promjenu zaporke, u {{PLURAL:$1|zadnjih sat vremena|zadnja $1 sata|zadnjih $1 sati}}.
+'throttled-mailpassword' => 'Već Vam je poslan e-mail za promjenu zaporke, u {{PLURAL:$1|posljednjih sat vremena|posljednja $1 sata|posljednjih $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.
@@ -843,6 +843,9 @@ Molimo Vas pričekajte $1 prije nego što pokušate ponovno.',
 'suspicious-userlogout' => 'Vaš zahtjev za odjavu je odbijen jer to izgleda kao da je poslan preko pokvarenog preglednika ili keširanog posrednika (proxyja).',
 'createacct-another-realname-tip' => 'Pravo ime nije obvezno. 
 Ako ga navedete, bit će korišteno za pripisivanje Vaših doprinosa.',
+'pt-login' => 'Prijavi se',
+'pt-createaccount' => 'Otvori novi suradnički račun',
+'pt-userlogout' => 'odjavi se',
 
 # Email sending
 'php-mail-error-unknown' => 'Nepoznata pogrješka u funkciji PHP-poruke()',
@@ -998,7 +1001,7 @@ Možda je premješten ili izbrisan dok ste pregledavali stranicu.',
 Nakon prijave, lozinka za ovaj novi račun može biti promijenjena na stranici ''[[Special:ChangePassword|promijeni lozinku]]'' nakon prijave.",
 'newarticle' => '(Novo)',
 'newarticletext' => "Došli ste na stranicu koja još ne postoji.
-Ako želite stvoriti tu stranicu, počnite tipkati u prozor ispod ovog teksta (pogledajte [[{{MediaWiki:Helppage}}|stranicu za pomoć]]).
+Ako želite stvoriti tu stranicu, počnite tipkati u prozor ispod ovog teksta (pogledajte [$1 stranicu za pomoć]).
 Ako ste ovamo dospjeli slučajno, kliknite gumb '''natrag''' (back) u svom pregledniku.",
 'anontalkpagetext' => "----''Ovo je stranica za razgovor s neprijavljenim suradnikom koji još nije otvorio suradnički račun ili se njime ne koristi. Zbog toga se moramo služiti brojčanom IP adresom kako bismo ga identificirali. Takvu adresu često može dijeliti više ljudi. Ako ste neprijavljeni suradnik i smatrate da su Vam upućeni irelevantni komentari, molimo Vas da [[Special:UserLogin/signup|otvorite suradnički račun]] ili [[Special:UserLogin|se prijavite]] te tako u budućnosti izbjegnete zamjenu s drugim neprijavljenim suradnicima.''",
 'noarticletext' => 'Na ovoj stranici trenutačno nema sadržaja.
@@ -1144,7 +1147,7 @@ Neki predlošci neće biti uključeni.',
 'converter-manual-rule-error' => 'Pronađena je pogrješka u pravilu ručnog prijevoda',
 
 # "Undo" feature
-'undo-success' => 'Izmjena je uklonjena (tekst u okviru ispod ne sadrži zadnju izmjenu). Molim sačuvajte stranicu (provjerite sažetak).',
+'undo-success' => 'Izmjena je uklonjena (tekst u okviru ispod ne sadrži posljednju izmjenu). Molim sačuvajte stranicu (provjerite sažetak).',
 'undo-failure' => 'Ova izmjena ne može biti uklonjena zbog postojanja međuinačica.',
 'undo-norev' => 'Izmjena nije mogla biti uklonjena jer ne postoji ili je obrisana.',
 'undo-summary' => 'Uklanjanje izmjene $1 što ju je unio/unijela [[Special:Contributions/$2|$2]] ([[User talk:$2|razgovor]])',
@@ -1227,8 +1230,6 @@ Možete ju pregledati; više podataka možete vidjeti u [{{fullurl:{{#Special:Lo
 'revdelete-show-file-submit' => 'Da',
 'revdelete-selected' => "'''{{PLURAL:$2|Odabrana izmjena|Odabrane izmjene|Odabrane izmjene}} stranice [[$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Odabrani zapis u evidenciji|Odabrani zapisi u evidenciji}}:'''",
-'revdelete-text' => "'''Obrisane će se izmjene i dalje nalaziti u javnom popisu izmjena, ali njihov sadržaj neće biti dostupan javnosti.'''
-Drugi administratori ovoga projekta ({{SITENAME}}) moći će i dalje pristupiti skrivenom sadržaju i vratiti ga u javni pristup putem ovog sučelja, osim ako operateri na projektu nisu postavili dodatna ograničenja.",
 'revdelete-confirm' => 'Molimo potvrdite da namjeravate ovo učiniti, da razumijete posljedice i da to činite u skladu s [[{{MediaWiki:Policy-url}}|pravilima]].',
 'revdelete-suppress-text' => "Sklanjanje uređivanja treba raditi '''iznimno''' u slijedećih par slučajeva:
 * Privatne informacije neprilične javnom mediju tipa
@@ -1588,7 +1589,7 @@ Ne smije biti duži od $1 {{PLURAL:$1|znaka|znaka|znakova}}.',
 '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-rollback' => 'Brzo uklanjanje izmjena posljednjeg suradnika na određenoj stranici',
 'right-markbotedits' => 'Označavanje uklonjenih izmjena kao izmjenu bota',
 'right-noratelimit' => 'Bez vremenskog ograničenja uređivanja',
 'right-import' => 'Uvoženje stranica s drugih wikija',
@@ -1672,12 +1673,24 @@ Ne smije biti duži od $1 {{PLURAL:$1|znaka|znaka|znakova}}.',
 'rcnotefrom' => 'Slijede promjene od <b>$2</b> (prikazano ih je do <b>$1</b>).',
 'rclistfrom' => 'Prikaži nove promjene počevši od $1',
 'rcshowhideminor' => '$1 manje promjene',
+'rcshowhideminor-show' => 'prikaži',
+'rcshowhideminor-hide' => 'sakrij',
 'rcshowhidebots' => '$1 botove',
+'rcshowhidebots-show' => 'prikaži',
+'rcshowhidebots-hide' => 'sakrij',
 'rcshowhideliu' => '$1 prijavljene suradnike',
+'rcshowhideliu-show' => 'prikaži',
+'rcshowhideliu-hide' => 'sakrij',
 'rcshowhideanons' => '$1 neprijavljene suradnike',
+'rcshowhideanons-show' => 'prikaži',
+'rcshowhideanons-hide' => 'sakrij',
 'rcshowhidepatr' => '$1 provjerene promjene',
+'rcshowhidepatr-show' => 'prikaži',
+'rcshowhidepatr-hide' => 'sakrij',
 'rcshowhidemine' => '$1 moje promjene',
-'rclinks' => 'Prikaži zadnjih $1 promjena u zadnjih $2 dana; $3',
+'rcshowhidemine-show' => 'prikaži',
+'rcshowhidemine-hide' => 'sakrij',
+'rclinks' => 'Prikaži posljednjih $1 promjena {{PLURAL:$2|prethodni dan|u posljednja $2 dana|u posljednjih $2 dana}}<br />$3',
 'diff' => 'razl',
 'hist' => 'pov',
 'hide' => 'sakrij',
@@ -2233,7 +2246,7 @@ Podržani {{PLURAL:$2|protokol|protokoli}}: <code>$1</code> (default je http://
 
 # Special:ActiveUsers
 'activeusers' => 'Popis aktivnih suradnika',
-'activeusers-intro' => 'Ovo je popis suradnika koji su napravili neku aktivnost u {{PLURAL:$1|zadnji $1 dan|zadnja $1 dana|zadnjih $1 dana}}.',
+'activeusers-intro' => 'Ovo je popis suradnika koji su napravili neku aktivnost u {{PLURAL:$1|posljednji $1 dan|posljednja $1 dana|posljednjih $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-from' => 'Prikaži suradnike počevši od:',
 'activeusers-hidebots' => 'Sakrij botove',
@@ -2320,12 +2333,12 @@ Promjene na toj stranici i njenoj stranici za razgovor bit će prikazane na popi
 'notvisiblerev' => 'Izmjena je obrisana',
 '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-poštom.',
-'wlheader-showupdated' => "Stranice koje su promijenjene od Vašeg zadnjeg posjeta prikazane su '''podebljano'''",
+'wlheader-showupdated' => "Stranice koje su promijenjene od Vašeg posljednjeg posjeta prikazane su '''podebljano'''",
 'watchmethod-recent' => 'provjera nedavnih promjena praćenih stranica',
 'watchmethod-list' => 'provjera praćanih stranica za nedavne promjene',
 'watchlistcontains' => 'Vaš popis praćenja sadrži $1 {{PLURAL:$1|stranicu|stranice|stranica}}.',
 'iteminvalidname' => "Problem s izborom '$1', ime nije valjano...",
-'wlshowlast' => 'Prikaži zadnjih $1 sati $2 dana $3',
+'wlshowlast' => 'Prikaži posljednjih $1 sati $2 dana $3',
 'watchlist-options' => 'Izbornik popisa praćenja',
 
 # Displayed when you click the "watch" button and it is in the process of watching
@@ -2355,11 +2368,11 @@ $PAGEINTRO $NEWPAGE
 
 Sažetak urednika: $PAGESUMMARY $PAGEMINOREDIT
 
-Možete kontaktirati suradnika koji je zadnji uređivao stranicu:
+Možete kontaktirati suradnika koji je posljednji uređivao stranicu:
 mail: $PAGEEDITOR_EMAIL
 wiki: $PAGEEDITOR_WIKI
 
-Do Vašeg ponovnog posjeta stranici nećete dobivati nove obavijesti. Postavke za izvješćivanje možete resetirati za sve praćene stranice svog popisa praćenja.
+Do Vašeg ponovnog posjeta stranici nećete dobivati nove obavijesti. Postavke za izvješćivanje možete vratiti na prvotno zadane za sve praćene stranice svog popisa praćenja.
 
 Vaš sustav izvješćivanja {{SITENAME}}.
 
@@ -2423,10 +2436,10 @@ Sva vremena su prema poslužiteljevom vremenu.',
 
 Posljednju promjenu napravio je [[User:$3|$3]] ([[User talk:$3|Razgovor]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Sažetak promjene je bio: \"''\$1''\".",
-'revertpage' => 'Uklonjena promjena suradnika $2, vraćeno na zadnju inačicu suradnika $1',
+'revertpage' => 'Uklonjena promjena suradnika $2, vraćeno na posljednju inačicu suradnika $1',
 'revertpage-nouser' => 'Vraćene izmjene suradnika (suradničko ime uklonjeno) na posljednju inačicu suradnika [[User:$1|$1]]',
 'rollback-success' => 'Uklonjeno uređivanje {{GENDER:$1|suradnika|suradnice}} $1
-vraćeno na zadnju inačicu {{GENDER:$2|suradnika|suradnice}} $2.',
+vraćeno na posljednju inačicu {{GENDER:$2|suradnika|suradnice}} $2.',
 
 # Edit tokens
 'sessionfailure-title' => 'Prekid sesije',
@@ -2511,7 +2524,7 @@ Baza se povremeno čisti od ovakvih stranica.',
 Ako želite vratiti određene izmjene, označite ih i kliknite '''''{{int:undeletebtn}}'''''.",
 'undeleterevisions' => '$1 {{PLURAL:$1|inačica je arhivirana|inačice su arhivirane|inačica je arhivirano}}',
 'undeletehistory' => 'Ako vratite izbrisanu stranicu, bit će vraćene i sve prijašnje promjene. Ako je u međuvremenu stvorena nova stranica s istim imenom, vraćena stranica bit će upisana kao prijašnja promjena sadašnje.',
-'undeleterevdel' => 'Vraćanje stranice neće biti izvršeno ako je rezultat toga djelomično brisanje zadnjeg uređivanja.
+'undeleterevdel' => 'Vraćanje stranice neće biti izvršeno ako je rezultat toga djelomično brisanje posljednjeg uređivanja.
 U takvim slučajevima morate isključiti ili otkriti najnovije obrisane promjene.',
 'undeletehistorynoadmin' => 'Ovaj je članak izbrisan. Razlog za brisanje prikazan je u donjem sažetku, zajedno s
 detaljima o suradnicima koji su uređivali ovu stranicu prije brisanja.
@@ -2572,7 +2585,7 @@ $1',
 'sp-contributions-newbies' => 'Prikaži samo doprinose novih suradnika',
 'sp-contributions-newbies-sub' => 'Za nove suradnike',
 'sp-contributions-newbies-title' => 'Doprinosi novih suradnika',
-'sp-contributions-blocklog' => 'Evidencija blokiranja',
+'sp-contributions-blocklog' => 'evidencija blokiranja',
 'sp-contributions-deleted' => 'obrisani suradnički doprinosi',
 'sp-contributions-uploads' => 'postavljene datoteke',
 'sp-contributions-logs' => 'evidencije',
@@ -3018,7 +3031,7 @@ Snimite je na svoje računalo i postavite je ovdje.',
 'tooltip-watchlistedit-raw-submit' => 'Osvježi popis praćenja',
 'tooltip-recreate' => 'Vrati stranicu unatoč tome što je obrisana',
 'tooltip-upload' => "Pokreni snimanje (''upload'')",
-'tooltip-rollback' => '"Ukloni" uklanja uređivanja zadnjeg suradnika na ovoj stranici.',
+'tooltip-rollback' => '"Ukloni" uklanja uređivanja posljednjeg suradnika na ovoj stranici.',
 'tooltip-undo' => '"Ukloni ovu izmjenu" uklanja ovu izmjenu i otvara okvir za uređivanje. Omogućava unošenje razloga u sažetak.',
 'tooltip-preferences-save' => 'Spremi postavke',
 'tooltip-summary' => 'Unesite kratki sažetak',
@@ -3038,7 +3051,7 @@ Snimite je na svoje računalo i postavite je ovdje.',
 'anonymous' => 'Neprijavljeni {{PLURAL:$1|suradnik|suradnici}} projekta {{SITENAME}}',
 'siteuser' => 'Suradnik $1 na projektu {{SITENAME}}',
 'anonuser' => '{{SITENAME}} anonimni suradnik $1',
-'lastmodifiedatby' => 'Ovu je stranicu zadnji put mijenjao dana $2, $1 suradnik $3.',
+'lastmodifiedatby' => 'Ovu je stranicu posljednji put {{GENDER:$4|mijenjao suradnik|mijenjala suradnica}} $3 dana $1 u $2.',
 'othercontribs' => 'Temelji se na doprinosu suradnika $1.',
 'others' => 'drugih',
 'siteusers' => '{{SITENAME}} {{PLURAL:$2|suradnik|suradnici}} $1',
@@ -3052,7 +3065,7 @@ Snimite je na svoje računalo i postavite je ovdje.',
 Razlog je vjerojatno vanjska poveznica koja se nalazi na crnom popisu.',
 'spamprotectionmatch' => 'Naš filtar spama reagirao je na sljedeći tekst: $1',
 'spambot_username' => 'MediaWiki zaštita od spama',
-'spam_reverting' => 'Vraćam na zadnju inačicu koja ne sadrži poveznice na $1',
+'spam_reverting' => 'Vraćam na posljednju inačicu koja ne sadrži poveznice na $1',
 'spam_blanking' => 'Sve inačice sadrže poveznice na $1, brišem cjelokupni sadržaj',
 'spam_deleting' => 'Sve inačice sadržale su poveznice na $1, brišem cjelokupni sadržaj',
 'simpleantispam-label' => "Anti-spam provjera.
@@ -3081,10 +3094,10 @@ Razlog je vjerojatno vanjska poveznica koja se nalazi na crnom popisu.',
 'pageinfo-firstuser' => 'Suradnik koji je stvorio stranicu',
 'pageinfo-firsttime' => 'Datum stvaranja stranice',
 'pageinfo-lastuser' => 'Posljednji urednik stranice',
-'pageinfo-lasttime' => 'Datum zadnjeg uređivanja',
+'pageinfo-lasttime' => 'Datum posljednjeg uređivanja',
 'pageinfo-edits' => 'Ukupan broj uređivanja',
 'pageinfo-authors' => 'Broj različitih autora',
-'pageinfo-recent-edits' => 'Broj uređivanja (u zadnjih $1)',
+'pageinfo-recent-edits' => 'Broj uređivanja (u posljednjih $1)',
 'pageinfo-recent-authors' => 'Broj različitih autora u gornjem razdoblju',
 'pageinfo-magic-words' => '{{PLURAL:$1|Magična riječ - varijabla|Magične riječi - varijable}} ($1)',
 'pageinfo-hidden-categories' => '{{PLURAL:$1|Postoji|Postoje|Postoji}} $1 {{PLURAL:$1|skrivena kategorija|skrivene kategorije|skrivenih kategorija}}',
@@ -3167,7 +3180,7 @@ Njegovim izvršavanjem mogli biste oštetiti svoj sustav.",
 # Special:NewFiles
 'newimages' => 'Galerija novih datoteka',
 'imagelisttext' => 'Ispod je popis {{PLURAL:$1|$1 slike|$1 slike|$1 slika}} složen $2.',
-'newimages-summary' => 'Ova posebna stranica pokazuje zadnje nedavno postavljene datoteke.',
+'newimages-summary' => 'Ova posebna stranica pokazuje posljednje nedavno postavljene datoteke.',
 'newimages-legend' => 'Filtar',
 'newimages-label' => 'Naziv datoteke (ili njen dio):',
 'showhidebots' => '($1 botova)',
@@ -3244,7 +3257,7 @@ Svaka sljedeća poveznica u istom retku je izuzetak, npr. kod stranica gdje se s
 'exif-primarychromaticities' => 'Kromaticitet primarnih boja',
 'exif-ycbcrcoefficients' => 'Matrični koeficijenti preobrazbe kolor prostora',
 'exif-referenceblackwhite' => 'Mjesto bijele i crne točke',
-'exif-datetime' => 'Datum zadnje promjene datoteke',
+'exif-datetime' => 'Datum posljednje promjene datoteke',
 'exif-imagedescription' => 'Ime slike',
 'exif-make' => 'Proizvođač kamere',
 'exif-model' => 'Model kamere',
@@ -3374,7 +3387,7 @@ Svaka sljedeća poveznica u istom retku je izuzetak, npr. kod stranica gdje se s
 'exif-serialnumber' => 'Serijski broj kamere',
 'exif-cameraownername' => 'Vlasnik kamere',
 'exif-label' => 'Oznaka',
-'exif-datetimemetadata' => 'Datum zadnje promjene metapodataka',
+'exif-datetimemetadata' => 'Datum posljednje promjene metapodataka',
 'exif-nickname' => 'Neformalni naziv slike',
 'exif-rating' => 'Ocjena (od 5)',
 'exif-rightscertificate' => 'Certifikat za upravljanje pravima',
@@ -3736,8 +3749,8 @@ Potvrdite namjeru vraćanja ovog članka.",
 'livepreview-error' => 'Spajanje nije uspjelo: $1 "$2". Pokušajte normalni pretpregled.',
 
 # Friendlier slave lag warnings
-'lag-warn-normal' => 'Moguće je da izmjene nastale zadnjih $1 {{PLURAL:$1|sekundu|sekundi}} neće biti vidljive na ovom popisu.',
-'lag-warn-high' => 'Zbog kašnjenja baze podataka, moguće je da promjene napravljene u zadnjih $1 {{PLURAL:$1|sekundu|sekunde|sekundi}} nisu prikazane u popisu.',
+'lag-warn-normal' => 'Moguće je da izmjene nastale posljednjih $1 {{PLURAL:$1|sekundu|sekundi}} neće biti vidljive na ovom popisu.',
+'lag-warn-high' => 'Zbog kašnjenja baze podataka, moguće je da promjene napravljene u posljednjih $1 {{PLURAL:$1|sekundu|sekunde|sekundi}} nisu prikazane u popisu.',
 
 # Watchlist editor
 'watchlistedit-numitems' => 'Vaš popis praćenja sadrži {{PLURAL:$1|1 stranicu|$1 stranica}}, bez stranica za razgovor.',
index 90cb83d..967be9a 100644 (file)
@@ -191,7 +191,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Mi kopije e-mejlkow pósłać, kotrež druhim wužiwarjam pósćelu',
 'tog-diffonly' => 'Jenož rozdźěle pokazać (nic pak zbytny wobsah)',
 'tog-showhiddencats' => 'Schowane kategorije pokazać',
-'tog-noconvertlink' => 'Konwertowanje wotkazoweho titula znjemóžnić',
 'tog-norollbackdiff' => 'Rozdźěl po wróćostajenju zanjechać',
 'tog-useeditwarning' => 'Warnować, hdyž so wobdźěłowanska strona z njeskładowanymi změnami wopušća',
 'tog-prefershttps' => 'Po přizjewjenju přeco wěsty zwisk wužiwać',
@@ -403,7 +402,6 @@ $1',
 'disclaimers' => 'Licencne postajenja',
 'disclaimerpage' => 'Project:Impresum',
 'edithelp' => 'Pomoc za wobdźěłowanje',
-'helppage' => 'Help:Wobsah',
 'mainpage' => 'Hłowna strona',
 'mainpage-description' => 'Hłowna strona',
 'policy-url' => 'Project:Směrnicy',
@@ -599,8 +597,7 @@ Njezabudź swoje [[Special:Preferences|nastajenja za {{GRAMMAR:akuzatiw|{{SITENA
 'gotaccountlink' => 'Přizjewić',
 'userlogin-resetlink' => 'Přizjewjenske daty zabył?',
 'userlogin-resetpassword-link' => 'Sy swoje hesło zabył?',
-'helplogin-url' => 'Help:Přizjewić',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoc za přizjewjenje]]',
+'userlogin-helplink2' => 'Pomoc při přizjewjenju',
 'userlogin-loggedin' => 'Sy hižo jako {{GENDER:$1|$1 přizjewjeny|$1 přizjewjena}}. Wužij slědowacy formular, zo by so jako druhi wužiwar přizjewił.',
 'userlogin-createanother' => 'Dalše konto załožić',
 'createacct-join' => 'Zapodaj deleka swoje informacije.',
@@ -684,6 +681,7 @@ Móžeš tutu zdźělenku ignorować, jeli so wužiwarske konto zmylnje wutwori
 'createacct-another-realname-tip' => '* Woprawdźite mjeno je opcionalne.
 Jeli jo podaš, budźe so to wužiwać, zo by přinoški přirjadowało.',
 'pt-login' => 'Přizjewić',
+'pt-login-button' => 'Přizjewić',
 'pt-createaccount' => 'Konto załožić',
 'pt-userlogout' => 'Wotzjewić',
 
@@ -715,7 +713,10 @@ Zo by přizjewjenje skónčił, dyrbiš tu nowe hesło postajić:',
 'resetpass-temp-password' => 'Nachwilne hesło:',
 'resetpass-abort-generic' => 'Měnjenje hesła je so přez rozšěrjenje přetorhnyło.',
 'resetpass-expired' => 'Twoje hesło je spadnyło. Prošu postaj nowe hesło za přizjewjenje.',
-'resetpass-expired-soft' => 'Twoje hesło je spadnyło a dyrbi so wróćo stajić. Prošu wubjer nětko druhe hesło abo klikń na "Přetorhnyć", zo by jo pozdźišo wróćo stajił.',
+'resetpass-expired-soft' => 'Twoje hesło je spadnyło a dyrbi so wróćo stajić. Prošu wubjer nětko druhe hesło abo klikń na "{{int:resetpass-submit-cancel}}", zo by jo pozdźišo wróćo stajił.',
+'resetpass-validity-soft' => 'Waše hesło płaćiwe njeje: $1
+
+Prošu wubjer nětko nowe hesło abo klikń na "{{int:resetpass-submit-cancel}}", zo by jo pozdźišo wróćo stajił.',
 
 # Special:PasswordReset
 'passwordreset' => 'Hesło wróćo stajić',
@@ -852,7 +853,7 @@ Móžno, zo je so přesunył abo zhašał, mjeztym zo sej wobhladuješ stronu.',
 'accmailtitle' => 'Hesło bu pósłane.',
 'accmailtext' => "Připadnje spłodźene hesło za [[User talk:$1|$1]] bu na $2 pósłane. Daj so na stronje ''[[Special:ChangePassword|hesło změnić]]'' při přizjewjenju změnić.",
 'newarticle' => '(Nowy)',
-'newarticletext' => 'Sy wotkaz k stronje slědował, kotraž hišće njeeksistuje. Zo by stronu wutworił, wupjelń slědowace tekstowe polo (hlej [[{{MediaWiki:Helppage}}|stronu pomocy]] za dalše informacije). Jeli sy zmylnje tu, klikń prosće na tłóčatko <b>Wróćo</b> we swojim wobhladowaku.',
+'newarticletext' => 'Sy wotkaz k stronje slědował, kotraž hišće njeeksistuje. Zo by stronu wutworił, wupjelń slědowace tekstowe polo (hlej [$1 stronu pomocy] za dalše informacije). Jeli sy zmylnje tu, klikń prosće na tłóčatko <b>Wróćo</b> we swojim wobhladowaku.',
 'anontalkpagetext' => "---- ''To je diskusijna strona za anonymneho wužiwarja, kiž hišće konto wutworił njeje abo je njewužiwa. Dyrbimy tohodla numerisku IP-adresu wužiwać, zo bychmy jeho/ju identifikowali. Tajka IP-adresa hodźi so wot wjacorych wužiwarjow zhromadnje wužiwać. Jeli sy anonymny wužiwar a měniš, zo buchu irelewantne komentary k tebi pósłane, [[Special:UserLogin/signup|wutwor prošu konto]] abo [[Special:UserLogin|přizjew so]], zo by přichodnu šmjatańcu z anonymnymi wužiwarjemi wobešoł.''",
 'noarticletext' => 'Tuchwilu tuta strona žadyn tekst njewobsahuje. Móžeš [[Special:Search/{{PAGENAME}}|tutón titul strony na druhich stronach pytać]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} wotpowědne protokole pytać] abo [{{fullurl:{{FULLPAGENAME}}|action=edit}} tutu stronu wobdźěłać]</span>.',
 'noarticletext-nopermission' => 'Tuchwilu žadyn tekst na tutej stronje njeje.
@@ -1084,8 +1085,10 @@ Móžeš sej tutón rozdźěl wobhladać; podrobnosće namakaš w [{{fullurl:{{#
 'revdelete-show-file-submit' => 'Haj',
 'revdelete-selected' => "'''{{PLURAL:$2|Wubrana wersija|Wubranej wersiji|Wubrane wersije|Wubranych wersijow}} wot [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Wubrany zapisk z protokola|Wubranej zapiskaj z protokola|Wubrane zapiski z protokola|Wubrane zapiski z protokola}} za '''$1:''''''",
-'revdelete-text' => "'''Wušmórnjene wersije a podawki so w stawiznach a protokolach dale jewja, ale dźěle jich wobsaha budu njepřistupne za zjawnosć.'''
-Druzy administratorojo na {{GRAMMAR:lokatiw|{{SITENAME}}}} móža hišće na schowany tekst přistup měć a jón z pomocu samsneho interfejsa wobnowić, chibazo tež přidatne prawa su wobmjezowane.",
+'revdelete-text-text' => 'Zhašane wersije wostanu hišće we wersijowej historiji, ale dźěle jich wobsaha njebudu přistupne zjawnosći.',
+'revdelete-text-file' => 'Zhašane datajowe wersije wostanu w datajowej historiji, ale dźěle jich wobsaha njebudu přistupne zjawnosći.',
+'logdelete-text' => 'Zhašane protokolowe zapiski wostanu hišće w protokolach, ale dźěle jich wobsaha njebudu přistupne zjawnosći.',
+'revdelete-text-others' => 'Druzy administratorojo na {{GRAMMAR:lokatiw|{{SITENAME}}}} móža hišće na schowany wobsah přistup měć a móža jón zaso přez samsny wužiwarski powjerch wobnowić, chibazo su přidatne wobmjezowanja.',
 'revdelete-confirm' => 'Prošu potwjerdź, zo chceš to činić, zo rozumiš konsekwency a zo činiš to po [[{{MediaWiki:Policy-url}}|prawidłach]].',
 'revdelete-suppress-text' => "Potłóčenje dyrbjało so '''jenož''' za slědowace pady wužiwać:
 * Potencielnje křiwdźace informacije
@@ -1220,7 +1223,7 @@ Podrobnosće móžeš w [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}
 'search-file-match' => '(wotpowěduje datajowemu wobsahej)',
 'search-suggest' => 'Měnješe ty $1?',
 'search-interwiki-caption' => 'Sotrowske projekty',
-'search-interwiki-default' => '$1 wuslědki:',
+'search-interwiki-default' => 'Wuslědki z $1:',
 'search-interwiki-more' => '(dalše)',
 'search-relatedarticle' => 'Přiwuzne',
 'searcheverything-enable' => 'We wšěch mjenowych rumach pytać',
@@ -1545,7 +1548,7 @@ Tuta informacija budźe zjawna.',
 'recentchanges-legend-heading' => "'''Legenda:'''",
 'recentchanges-legend-newpage' => '(hlej tež [[Special:NewPages|lisćinu nowych stronow]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "Deleka so změny wot '''$2''' pokazuja (hač k '''$1''').",
+'rcnotefrom' => 'Deleka so změny wot <strong>$2</strong> pokazuja (hač k <strong>$1</strong>).',
 'rclistfrom' => 'Nowe změny pokazać, započinajo z $1',
 'rcshowhideminor' => 'snadne změny $1',
 'rcshowhideminor-show' => 'Pokazać',
@@ -2053,7 +2056,7 @@ Kóžda rjadka wobsahuje wotkazy k prěnjemu a druhemu daleposrědkowanju kaž t
 'deadendpagestext' => 'Slědowace strony njejsu z druhimi stronami w tutym wikiju zwjazane.',
 'protectedpages' => 'Škitane strony',
 'protectedpages-indef' => 'Jenož strony z njewobmjezowanym škitom',
-'protectedpages-summary' => 'Tuta specialna strona naliči wšě strony, kotrež su přećiwo přesunjenju abo wobdźěłowanju škitane.',
+'protectedpages-summary' => 'Tuta strona nalistuje eksistowace strony, kotrež su aktualnje škitane. Za lisćinu titulow, kotrež su škitane přećiwo wutworjenju, hlej [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Jenož strony z kaskadowym škitom',
 'protectedpages-noredirect' => 'Dalesposrědkowanja schować',
 'protectedpagesempty' => 'Tuchwilu žane.',
@@ -2066,7 +2069,7 @@ Kóžda rjadka wobsahuje wotkazy k prěnjemu a druhemu daleposrědkowanju kaž t
 'protectedpages-unknown-timestamp' => 'Njeznaty',
 'protectedpages-unknown-performer' => 'Njeznaty wužiwar',
 'protectedtitles' => 'Škitane titule',
-'protectedtitles-summary' => 'Tuta strona nalistuje titule, kotrež su tuchwilu přećiwo wutworjenju škitane. Za lisćinu eksistowacych stronow, kotrež su škitane, hlej [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Tuta strona nalistuje titule, kotrež su tuchwilu přećiwo wutworjenju škitane. Za lisćinu eksistowacych stronow, kotrež su škitane, hlej [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Žane titule njejsu tuchwilu z tutymi parametrami škitane.',
 'listusers' => 'Lisćina wužiwarjow',
 'listusers-editsonly' => 'Jenož wužiwarjow ze změnami pokazać',
@@ -2338,7 +2341,7 @@ Prošu potwjerdź, zo maš wotpohlad to činić, zo rozumiš sćěwki a zo to wo
 'delete-edit-reasonlist' => 'Přičiny za wušmórnjenje wobdźěłać',
 'delete-toobig' => 'Tuta strona ma z wjace hač $1 {{PLURAL:$1|wersiju|wersijomaj|wersijemi|wersijemi}} wulke wobdźěłanske stawizny. Wušmórnjenje tajkich stronow bu wobmjezowane, zo by připadne přetorhnjenje {{SITENAME}} wobešło.',
 'delete-warning-toobig' => 'Tuta strona ma z wjace hač $1 {{PLURAL:$1|wersiju|wersijomaj|wersijemi|wersijemi}} wulke wobdźěłanske stawizny. Wušmórnjenje móže operacije datoweje banki {{SITENAME}} přetorhnyć; pokročuj z kedźbliwosću.',
-'deleting-backlinks-warning' => "'''Warnowanje:''' Druhe strony wotkazuja k stronje abo strona je druhdźe zapřijata, kotruž chceš zhašeć.",
+'deleting-backlinks-warning' => "'''Warnowanje:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Druhe strony]] wotkazuja k stronje abo strona je druhdźe zapřijata, kotruž chceš zhašeć.",
 
 # Rollback
 'rollback' => 'Změny cofnyć',
@@ -2385,7 +2388,7 @@ Hlej [[Special:ProtectedPages|lisćinu škitanych stronow]] za lisćinu tuchwilu
 'protect-locked-blocked' => "Njemóžeš škit strony změnič, dokelž twoje konto je zablokowane. Tu widźiš aktualne škitne nastajenja za stronu'''„$1“:'''",
 'protect-locked-dblock' => "Datowa banka je zawrjena, tohodla njemóžeš škit strony změnić. Tu widźiš aktualne škitne nastajenja za stronu'''„$1“:'''",
 'protect-locked-access' => "Nimaš trěbne prawa, zo by škit strony změnił. Tu widźiš aktualne škitne nastajenja za stronu'''„$1“:'''",
-'protect-cascadeon' => 'Tuta strona je tuchwilu škitana, dokelž je w {{PLURAL:$1|slědowacej stronje|slědowacych stronach}} zapřijata, {{PLURAL:$1|kotraž je|kotrež su}} přez kaskadowu opciju {{PLURAL:$1|škitana|škitane}}. Móžeš škitowy status strony změnić, to wšak wliw na kaskadowy škit nima.',
+'protect-cascadeon' => 'Tuta strona je tuchwilu škitana, dokelž je w {{PLURAL:$1|slědowacej stronje|slědowacych stronach}} zapřijata, {{PLURAL:$1|kotraž je|kotrež su}} přez kaskadowu opciju {{PLURAL:$1|škitana|škitane}}. Změny na škitnym schodźenku tuteje strony njebudu kaskadowy škit wobwliwować.',
 'protect-default' => 'Wšěch wužiwarjow dowolić',
 'protect-fallback' => 'Jenož wužiwarjow z prawom "$1" dowolić',
 'protect-level-autoconfirmed' => 'Jenož awtomatisce wobkrućenych wužiwarjow dowolić',
@@ -2505,6 +2508,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Tuta IP-adresa je tuchwilu zablokowana.
 Najnowši zapisk w protokolu blokowanjow so deleka jako referenca podawa:',
 'sp-contributions-search' => 'Přinoški pytać',
+'sp-contributions-suppresslog' => 'potłóčene wužiwarske přinoški',
 'sp-contributions-username' => 'IP-adresa abo wužiwarske mjeno:',
 'sp-contributions-toponly' => 'Jenož wyše wersije pokazać',
 'sp-contributions-newonly' => 'Jenož změny pokazać, kotrež su wutworjenja stronow',
index e4e8feb..b467c4a 100644 (file)
@@ -374,7 +374,6 @@ $1',
 'disclaimers' => 'Avètisman',
 'disclaimerpage' => 'Project:Avètisman jeneral yo',
 'edithelp' => 'Èd pou modifye paj',
-'helppage' => 'Help:Èd',
 'mainpage' => 'Paj prensipal',
 'mainpage-description' => 'Paj prensipal',
 'policy-url' => 'Project:Règleman',
@@ -672,7 +671,7 @@ Petèt li te bouje oubyen efase pandan ou tap gade paj la.',
 Ou ka chanje mopas pou kont sa a nan paj ''[[Special:ChangePassword|chanje mopas]]'' aprè ou konekte ou.",
 'newarticle' => '(Nouvo)',
 'newarticletext' => "Ou swiv on lyen pou yon paj ki poko egziste.
-Pou ou kapab kreye paj sa a, komanse ekri nan bwat ki anba (gade [[{{MediaWiki:Helppage}}|paj èd nan]] pou konnen plis, pou plis enfòmasyon).
+Pou ou kapab kreye paj sa a, komanse ekri nan bwat ki anba (gade [$1 paj èd nan] pou konnen plis, pou plis enfòmasyon).
 Si se paske ou fè yon erè ke ou rive nan paj sa a, klike anlè bouton '''fè back''' nan navigatè ou a.",
 'anontalkpagetext' => "---- ''Ou nan paj diskisyon yon itilizatè anonim, ki pa gen non, ki poko kreye yon kont oubyen ki pa itilize pyès kont nan sistèm sa. Pou rezon sa, nou dwe itilize adrès IP l pou nou kapab lokalize l, sitye l, montre kote l rete, idantifye l. Yon adrès IP kapab pataje ant plizyè moun, plizyè itilizatè. Si ou se yon itilizatè anonim e si ou wè ke ou resevwa komantè ki pa t pou ou, ou mèt [[Special:UserLogin/signup|kreye yon kont]] oubyen [[Special:UserLogin|konekte ou]] pou ou kapab anpeche konfizyon ak kontribitè anonim yo.''",
 'noarticletext' => 'Poko genyen tèks nan paj sa a.
index ed8458b..b409d96 100644 (file)
@@ -33,6 +33,7 @@
  * @author R-Joe
  * @author Samat
  * @author Sucy
+ * @author Szaszicska
  * @author TK-999
  * @author Tacsipacsi
  * @author Terik
@@ -562,7 +563,6 @@ $1',
 'disclaimers' => 'Jogi nyilatkozat',
 'disclaimerpage' => 'Project:Jogi nyilatkozat',
 'edithelp' => 'Szerkesztési segítség',
-'helppage' => 'Help:Tartalom',
 'mainpage' => 'Kezdőlap',
 'mainpage-description' => 'Kezdőlap',
 'policy-url' => 'Project:Irányelvek',
@@ -758,8 +758,6 @@ Ne felejtsd el módosítani a [[Special:Preferences|{{SITENAME}} beállításaid
 'gotaccountlink' => 'Bejelentkezés',
 'userlogin-resetlink' => 'Elfelejtetted a bejelentkezési adataidat?',
 'userlogin-resetpassword-link' => 'Elfelejtetted a jelszavad?',
-'helplogin-url' => 'Help:Bejelentkezés',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Segítség a bejelentkezéshez]]',
 'userlogin-loggedin' => 'Már be vagy jelentkezve mint {{GENDER:$1|$1}}. Ha más néven akarsz belépni, alább megteheted.',
 'userlogin-createanother' => 'Felhasználói fiók létrehozása',
 'createacct-join' => 'Add meg az alábbi információkat.',
@@ -849,6 +847,7 @@ Várj $1, mielőtt újra próbálkozol.',
 'suspicious-userlogout' => 'A kijelentkezési kérésed vissza lett utasítva, mert úgy tűnik, hogy egy hibás böngésző vagy gyorsítótárazó proxy küldte.',
 'createacct-another-realname-tip' => 'A valódi nevet nem kötelező megadni, de ha úgy döntesz, hogy megadod, azzal leszel feltüntetve a munkád szerzőjeként.',
 'pt-login' => 'Bejelentkezés',
+'pt-login-button' => 'Bejelentkezés',
 'pt-createaccount' => 'Fiók létrehozása',
 'pt-userlogout' => 'Kijelentkezés',
 
@@ -880,7 +879,7 @@ Lehet, hogy már sikeresen megváltoztattad a jelszavad, vagy pedig időközben
 'resetpass-temp-password' => 'Ideiglenes jelszó:',
 'resetpass-abort-generic' => 'A jelszómódosítást megszakította egy kiterjesztés.',
 'resetpass-expired' => 'A jelszavad lejárt. Adjál meg egy új jelszót a bejelentkezéshez!',
-'resetpass-expired-soft' => 'A jelszavad lejárt, ezért újat kell beállítanod. Válassz most egy új jelszót, kattints a Mégse gombra, ha később akarod csak beállítani.',
+'resetpass-expired-soft' => 'A jelszavad lejárt, ezért újat kell beállítanod. Válassz most egy új jelszót, vagy kattints a {{int:resetpass-submit-cancel}} gombra, ha később akarod csak beállítani.',
 
 # Special:PasswordReset
 'passwordreset' => 'Jelszó törlése',
@@ -1017,7 +1016,7 @@ Lehet, hogy áthelyezték, átnevezték vagy törölték, miközben nézted a la
 Az új fiók jelszava a ''[[Special:ChangePassword|jelszó megváltoztatása]]'' lapon módosítható a bejelentkezés után.",
 'newarticle' => '(Új)',
 'newarticletext' => "Egy olyan lapra mutató hivatkozást követtél, ami még nem létezik.
-A lap létrehozásához csak gépeld be a szövegét a lenti szövegdobozba. Ha kész vagy, az „Előnézet megtekintése” gombbal ellenőrizheted, hogy úgy fog-e kinézni, ahogy szeretnéd, és a „Lap mentése” gombbal tudod elmenteni. (További információkat a [[{{MediaWiki:Helppage}}|súgólapon]] találsz).
+A lap létrehozásához csak gépeld be a szövegét a lenti szövegdobozba. Ha kész vagy, az „Előnézet megtekintése” gombbal ellenőrizheted, hogy úgy fog-e kinézni, ahogy szeretnéd, és a „Lap mentése” gombbal tudod elmenteni. (További információkat a [$1 súgólapon] találsz).
 Ha tévedésből jutottál ide, kattints a böngésződ '''vissza''' vagy '''back''' gombjára.",
 'anontalkpagetext' => "----''Ez egy olyan anonim szerkesztő vitalapja, aki még nem regisztrált, vagy csak nem jelentkezett be.
 Ezért az IP-címét használjuk az azonosítására.
@@ -1252,9 +1251,6 @@ vagy a legutolsó változatot próbáltad meg elrejteni.',
 'revdelete-show-file-submit' => 'Igen',
 'revdelete-selected' => "'''A(z) [[:$1]] lap {{PLURAL:$2|kiválasztott változata|kiválasztott változatai}}:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Kiválasztott naplóesemény|Kiválasztott naplóesemények}}:'''",
-'revdelete-text' => "'''A törölt változatok és események továbbra is megjelennek a laptörténetben és a naplókban,
-azonban a tartalmuk nem lesz mindenki számára hozzáférhető.'''
-A(z) {{SITENAME}} adminisztrátorai továbbra is meg tudják tekinteni az elrejtett tartalmat, és helyre tudják állítani ugyanezen a felületen keresztül, amennyiben nincs további korlátozás beállítva.",
 'revdelete-confirm' => 'Kérlek erősítsd meg, hogy valóban ezt szeretnéd tenni; megértetted a következményeket, és amit teszel, az összhangban van [[{{MediaWiki:Policy-url}}|az irányelvekkel]].',
 'revdelete-suppress-text' => "Az elrejtés '''csak''' a következő esetekben használható:
 * Illetlen személyes információk
@@ -1605,6 +1601,8 @@ A műveletet nem lehet visszavonni.',
 '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',
 'right-edituserjs' => 'más felhasználók JS fájljainak szerkesztése',
+'right-editmyusercss' => 'A saját szerkesztői CSS-fájlok szerkesztése',
+'right-editmyuserjs' => 'Saját szerkesztői JavaScript-fájlok szerkesztése',
 'right-rollback' => 'a lap utolsó szerkesztésének gyors visszaállítása',
 'right-markbotedits' => 'visszaállított szerkesztések botként való jelölése',
 'right-noratelimit' => 'sebességkorlát figyelmen kívül hagyása',
@@ -1683,7 +1681,7 @@ A műveletet nem lehet visszavonni.',
 'recentchanges-label-plusminus' => 'Az oldal mérete ennyi bájttal módosult',
 'recentchanges-legend-heading' => 'Jelmagyarázat:',
 'recentchanges-legend-newpage' => '(lásd még: [[Special:NewPages|Új lapok]])',
-'rcnotefrom' => 'Alább a <b>$2</b> óta történt változtatások láthatóak (<b>$1</b> db).',
+'rcnotefrom' => 'Alább a <b>$2</b> óta történt változtatások láthatóak (legfeljebb <b>$1</b> db).',
 'rclistfrom' => '$1 után történt változtatások megtekintése',
 'rcshowhideminor' => 'apró szerkesztések $1',
 'rcshowhideminor-show' => 'megjelenítése',
@@ -1988,6 +1986,7 @@ Ez a wiki publikus, így a biztonság miatt az img_auth.php ki van kapcsolva.',
 'listfiles_size' => 'Méret',
 'listfiles_description' => 'Leírás',
 'listfiles_count' => 'Változatok',
+'listfiles-latestversion' => 'Aktuális változat',
 'listfiles-latestversion-yes' => 'Igen',
 'listfiles-latestversion-no' => 'Nem',
 
@@ -3926,6 +3925,7 @@ A MediaWikit abban a reményben terjesztjük, hogy hasznos lesz, de GARANCIA NÉ
 'tags' => 'Érvényes módosítási címkék',
 'tag-filter' => '[[Special:Tags|Címke]]szűrő:',
 'tag-filter-submit' => 'Szűrő',
+'tag-list-wrapper' => '([[Special:Tags|{{PLURAL:$1|Címke|Címkék}}]]: $2)',
 'tags-title' => 'Címkék',
 'tags-intro' => 'Ez a lap azokat a címkéket és jelentéseiket tartalmazza, amikkel a szoftver megjelölhet egy szerkesztést.',
 'tags-tag' => 'Címke neve',
index 45bce2a..cc2828b 100644 (file)
@@ -301,7 +301,7 @@ $messages = array(
 'tog-shownumberswatching' => 'Ցույց տալ էջ հսկող մասնակիցների թիվը',
 'tog-oldsig' => 'Ներկայիս ստորագրությունն է․',
 'tog-fancysig' => 'Ստորագրությունը վիքիտեքստի տեսքով (առանց ավտոմատ հղման)',
-'tog-uselivepreview' => 'Õ\95Õ£Õ¿Õ¡Õ£Õ¸Ö\80Õ®Õ¥Õ¬ Õ¸Ö\82Õ²Õ«Õ² Õ¶Õ¡Õ­Õ¡Õ¤Õ«Õ¿Õ¸Ö\82Õ´ (JavaScript) (Õ\93որձնական)',
+'tog-uselivepreview' => 'Õ\95Õ£Õ¿Õ¡Õ£Õ¸Ö\80Õ®Õ¥Õ¬ Õ¡Õ¶Õ´Õ«Õ»Õ¡Õ¯Õ¡Õ¶ Õ¶Õ¡Õ­Õ¡Õ¤Õ«Õ¿Õ¸Ö\82Õ´, Õ¡Õ¼Õ¡Õ¶Ö\81 Õ§Õ»Õ¨ Õ¾Õ¥Ö\80Õ¢Õ¥Õ¼Õ¶Õ¥Õ¬Õ¸Ö\82 (Ö\83որձնական)',
 'tog-forceeditsummary' => 'Նախազգուշացնել խմբագրման ամփոփումը դատարկ թողնելու դեպքում',
 'tog-watchlisthideown' => 'Թաքցնել իմ խմբագրումները հսկացանկից',
 'tog-watchlisthidebots' => 'Թաքցնել բոտերի խմբագրումները հսկացանկից',
@@ -317,7 +317,7 @@ $messages = array(
 
 'underline-always' => 'Միշտ',
 'underline-never' => 'Երբեք',
-'underline-default' => 'Օգտագործել զննարկիչի նախընտրությունները',
+'underline-default' => 'Դիտարկչի կամ թեմայի լռելյայն ոճով',
 
 # Font style option in Special:Preferences
 'editfont-style' => 'Խմբագրման շրջանի տառատեսակի ձևը.',
@@ -513,14 +513,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).
 'aboutsite' => '{{grammar:genitive|{{SITENAME}}}} մասին',
 'aboutpage' => 'Project:Էությունը',
-'copyright' => 'Ô¿Õ¡ÕµÖ\84Õ« Õ¢Õ¸Õ¾Õ¡Õ¶Õ¤Õ¡Õ¯Õ¸Ö\82Õ©ÕµÕ¸Ö\82Õ¶Õ¨ Õ£Õ¿Õ¶Õ¾Õ¸Ö\82Õ´ Õ§ Â«$1» Õ¡Ö\80Õ¿Õ¸Õ¶Õ¡Õ£Ö\80Õ« Õ¿Õ¡Õ¯։',
+'copyright' => 'Ô¿Õ¡ÕµÖ\84Õ« Õ¢Õ¸Õ¾Õ¡Õ¶Õ¤Õ¡Õ¯Õ¸Ö\82Õ©ÕµÕ¸Ö\82Õ¶Õ¨ Õ©Õ¸Õ²Õ¡Ö\80Õ¯Õ¾Õ¡Õ® Õ§ $1 Õ©Õ¸Ö\82ÕµÕ¬Õ¡Õ¿Ö\80Õ¡Õ£Ö\80Õ¸Õ¾, Õ¥Õ©Õ¥ Õ¡ÕµÕ¬ Õ¢Õ¡Õ¶ Õ¶Õ·Õ¾Õ¡Õ® Õ¹Õ§։',
 'copyrightpage' => '{{ns:project}}:Հեղինակային իրավունքներ',
 'currentevents' => 'Ընթացիկ իրադարձություններ',
 'currentevents-url' => 'Project:Ընթացիկ իրադարձություններ',
 'disclaimers' => 'Ազատում պատասխանատվությունից',
 'disclaimerpage' => 'Project:Ազատում պատասխանատվությունից',
 'edithelp' => 'Խմբագրման ուղեցույց',
-'helppage' => 'Help:Գլխացանկ',
 'mainpage' => 'Գլխավոր էջ',
 'mainpage-description' => 'Գլխավոր էջ',
 'policy-url' => 'Project:Կանոնակարգ',
@@ -634,7 +633,7 @@ $1',
 'cannotdelete-title' => 'Հնարավոր չէ ջնջել $1 էջը',
 'badtitle' => 'Անընդունելի անվանում',
 'badtitletext' => 'Հարցված էջի անվանումը անընդունելի է, դատարկ է կամ սխալ միջ-լեզվական կամ ինտերվիքի անվանում է։ Հնարավոր է, որ այն պարունակում է անթույլատրելի սիմվոլներ։',
-'perfcached' => 'Õ\80Õ¥Õ¿Ö\87ÕµÕ¡Õ¬ Õ¿Õ¾ÕµÕ¡Õ¬Õ¶Õ¥Ö\80Õ¨ Õ¾Õ¥Ö\80Ö\81Õ¾Õ¡Õ® Õ¥Õ¶ Ö\84Õ¥Õ·Õ«Ö\81 և հնարավոր է չարտացոլեն վերջին փոփոխությունները։ Առավելագույն {{PLURAL:$1|արդյունք|$1 արդյունք}} է հասանելի քեշում։',
+'perfcached' => 'Õ\8dÕ¿Õ¸Ö\80Ö\87 Õ¿Õ¾ÕµÕ¡Õ¬Õ¶Õ¥Ö\80Õ¨ ÕºÕ¡Õ°Õ¸Ö\82Õ½Õ¿Õ¡Õ¾Õ¸Ö\80Õ¾Õ¡Õ® Õ¥Õ¶ և հնարավոր է չարտացոլեն վերջին փոփոխությունները։ Առավելագույն {{PLURAL:$1|արդյունք|$1 արդյունք}} է հասանելի քեշում։',
 'perfcachedts' => 'Հետևյալ տվյալները վերցված են քեշից և վերջին անգամ թարմացվել են $1։ A maximum of {{PLURAL:$4|one result is|$4 results are}} available in the cache.',
 'querypage-no-updates' => 'Այս էջի փոփոխությունները ներկայումս արգելված են։ Այստեղի տվյալները այժմ չեն թարմացվի։',
 'viewsource' => 'Դիտել վիքիկոդը',
@@ -782,6 +781,9 @@ $2',
 'login-throttled' => 'Դուք կատարել եք չափից շատ մուտքի փորձ։
 Խնդրում ենք սպասել որոշ ժամանակ կրկին փորձելուց առաջ։',
 'loginlanguagelabel' => 'Լեզու՝ $1',
+'pt-login' => 'Մտնել',
+'pt-createaccount' => 'Ստեղծել մասնակցի հաշիվ',
+'pt-userlogout' => 'Դուրս գալ',
 
 # Email sending
 'php-mail-error-unknown' => 'Անհայտ սխալ PHP-ի mail() ֆունկցիայում',
@@ -911,7 +913,7 @@ $2',
 Համակարգ մուտք գործելուն պես կարող եք ''[[Special:ChangePassword|փոխել գաղտնաբառը]]''։",
 'newarticle' => '(Նոր)',
 'newarticletext' => "Դուք հղվել եք դեռևս գոյություն չունեցող էջի։ 
-Նոր էջ ստեղծելու համար ստորև գտնվող խմբագրման դաշտում ավելացրեք տեքստ, այնուհետև սեղմեք '''Հիշել էջը''' (այցելեք [[{{MediaWiki:Helppage}}|օգնության էջը]]՝ մանրամասն տեղեկությունների համար)։ 
+Նոր էջ ստեղծելու համար ստորև գտնվող խմբագրման դաշտում ավելացրեք տեքստ, այնուհետև սեղմեք '''Հիշել էջը''' (այցելեք [$1 օգնության էջը]՝ մանրամասն տեղեկությունների համար)։ 
 
 Եթե դուք սխալմամբ եք այստեղ հայտնվել, ապա սեղմեք ձեր դիտարկչի '''հետ''' (back) կոճակը։",
 'anontalkpagetext' => "----
@@ -1074,8 +1076,8 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 (նախ) = համեմատել նախորդ տարբերակի հետ,<br />'''չ''' = չնչին խմբագրում",
 'history-fieldset-title' => 'Դիտել պատմությունը',
 'history-show-deleted' => 'Միայն ջնջված',
-'histfirst' => 'Առաջին',
-'histlast' => 'Õ\8eÕ¥Ö\80Õ»Õ«Õ¶',
+'histfirst' => 'ամենահին',
+'histlast' => 'Õ¡Õ´Õ¥Õ¶Õ¡Õ©Õ¡Ö\80Õ´',
 'historysize' => '({{PLURAL:$1|1 բայթ|$1 բայթ}})',
 'historyempty' => '(դատարկ)',
 
@@ -1088,9 +1090,10 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 Փորձեք [[Special:Search|որոնել վիքիում]] նոր համանման էջեր։',
 
 # Revision deletion
-'rev-deleted-comment' => '(Õ´Õ¥Õ¯Õ¶Õ¡Õ¢Õ¡Õ¶Õ¸Ö\82Õ©ÕµÕ¸Ö\82Õ¶ը հեռացված է)',
+'rev-deleted-comment' => '(Õ­Õ´Õ¢Õ¡Õ£Ö\80Õ´Õ¡Õ¶ Õ¡Õ´Ö\83Õ¸Ö\83Õ¸Ö\82Õ´ը հեռացված է)',
 'rev-deleted-user' => '(մասնակցի անունը ջնջված է)',
 'rev-deleted-event' => '(գրությունը հեռացված է)',
+'rev-deleted-user-contribs' => '[մասնակցի անունը կամ ԱյՊի հասցեն հեռացված է, խմբագրումը թաքցված է ներդրումներից]',
 'rev-deleted-text-permission' => 'Էջի այս տարբերակը հեռացված է։
 Հնարավոր է մանրամասնություններ լինեն [{{fullurl:{{ns:special}}:Log/delete|page={{PAGENAMEE}}}} ջնջման տեղեկամատյանում]։',
 'rev-deleted-text-view' => "Էջի այս տարբերակը '''ջնջված''' է։
@@ -1111,9 +1114,6 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'revdelete-show-file-submit' => 'Այո',
 'revdelete-selected' => "'''[[:$1]] էջի ընտրված {{PLURAL:$2|տարբերակը|տարբերակները}}.'''",
 'logdelete-selected' => "'''Տեղեկամատյանի ընտրված {{PLURAL:$1|գրառումը|գրառումները}}.'''",
-'revdelete-text' => "'''Ջնջված տարբերակները երևալու են էջերի պատմության մեջ և տեղեկամատյաններում, բայց դրանց պարունակության մի մասը հասարակ այցելուներին չի ցուցադրվելու։'''
-
-Ադմինիստրատորները հնարավորություն կունենան դիտել թաքցված պարունակությունը, ինչպես նաև վերականգնել այն այս նույն ինտերֆեյսի միջոցով, բացառությամբ ավելորդ սահմանափակումների դեպքում։",
 'revdelete-legend' => 'Սահմանել տեսանելիության սահմանափակումներ',
 'revdelete-hide-text' => 'Թաքցնել տարբերակի տեքստը',
 'revdelete-hide-image' => 'Թաքցնել նիշքի պարունակությունը',
@@ -1122,13 +1122,15 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'revdelete-hide-user' => 'Թաքցնել հեղինակի մասնակցի անունը/IP',
 'revdelete-hide-restricted' => 'Թաքցնել տվյալները և՛ ադմինիստրատորներից, և՛ այլ մասնակիցներից',
 'revdelete-radio-same' => '(չի կարելի խմբագրել)',
-'revdelete-radio-set' => 'Ô±ÕµÕ¸',
-'revdelete-radio-unset' => 'Õ\88Õ¹',
+'revdelete-radio-set' => 'Ô¹Õ¡Ö\84Ö\81Õ¾Õ¡Õ®',
+'revdelete-radio-unset' => 'Õ\8fÕ¥Õ½Õ¡Õ¶Õ¥Õ¬Õ«',
 'revdelete-suppress' => 'Թաքցնել տվյալները ադմինիստրատորներից և մյուսներից նոյնպես',
 'revdelete-unsuppress' => 'Հանել սահմանափակումները վերականգնված տարբերակներից',
 'revdelete-log' => 'Պատճառ.',
 'revdelete-submit' => 'Կիրառել ընտրված {{PLURAL:$1|տարբերակի|տարբերակների}} վրա',
 'revdelete-success' => "'''Տարբերակի տեսանելիությունը բարեհաջող թարմացված է։'''",
+'revdelete-failure' => '<strong>Խմբագրման տեսանելիություն հնարավոր չէր փոփոխել՝</strong>
+$1',
 'logdelete-success' => "'''Իրադարձության տեսանելիությունը փոփոխված է։'''",
 'revdel-restore' => 'Փոխել տեսանելիությունը',
 'pagehist' => 'Էջի պատմություն',
@@ -1153,6 +1155,7 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'compareselectedversions' => 'Համեմատել ընտրած տարբերակները',
 'showhideselectedversions' => 'Ցուցադրել/թաքցնել ընտրված խմբագրումները',
 'editundo' => 'հետ շրջել',
+'diff-empty' => '(Տարբերություն չկա)',
 
 # Search results
 'searchresults' => 'Որոնման արդյունքներ',
@@ -1254,7 +1257,7 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'timezoneregion-indian' => 'Հնդկական Օվկիանոս',
 'timezoneregion-pacific' => 'Խաղաղ օվկիանոս',
 'allowemail' => 'Թույլատրել էլ-նամակներ մյուս մասնակիցներից',
-'prefs-searchoptions' => 'Õ\88Ö\80Õ¸Õ¶Õ´Õ¡Õ¶ Õ¨Õ¶Õ¿Ö\80Õ¡Õ¶Ö\84Õ¶Õ¥Ö\80',
+'prefs-searchoptions' => 'Õ\88Ö\80Õ¸Õ¶Õ¸Ö\82Õ´',
 'prefs-namespaces' => 'Անվանատարածք',
 'defaultns' => 'Հակառակ դեպքում, որոնել այս անվանատարծքներում․',
 'default' => 'լռությամբ',
@@ -1392,11 +1395,23 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'rcnotefrom' => "Ստորև բերված են փոփոխությունները սկսած՝ '''$2''' (մինչև՝ '''$1''')։",
 'rclistfrom' => 'Ցույց տալ նոր փոփոխությունները սկսած $1',
 'rcshowhideminor' => '$1 չնչին խմբագրումները',
+'rcshowhideminor-show' => 'Ցուցադրել',
+'rcshowhideminor-hide' => 'Թաքցնել',
 'rcshowhidebots' => '$1 բոտերին',
+'rcshowhidebots-show' => 'Ցուցադրել',
+'rcshowhidebots-hide' => 'Թաքցնել',
 'rcshowhideliu' => '$1 մուտք գործած մասնակիցներին',
+'rcshowhideliu-show' => 'Ցուցադրել',
+'rcshowhideliu-hide' => 'Թաքցնել',
 'rcshowhideanons' => '$1 անանուն մասնակիցներին',
+'rcshowhideanons-show' => 'Ցուցադրել',
+'rcshowhideanons-hide' => 'Թաքցնել',
 'rcshowhidepatr' => '$1 ստուգված խմբագրումները',
+'rcshowhidepatr-show' => 'Ցուցադրել',
+'rcshowhidepatr-hide' => 'Թաքցնել',
 'rcshowhidemine' => '$1 իմ խմբագրումները',
+'rcshowhidemine-show' => 'Ցուցադրել',
+'rcshowhidemine-hide' => 'Թաքցնել',
 'rclinks' => 'Ցույց տալ վերջին $1 փոփոխությունները վերջին $2 օրվա ընթացքում<br />$3',
 'diff' => 'տարբ',
 'hist' => 'պատմ',
@@ -1410,8 +1425,9 @@ $3 մասնակիցը տվել է հետևյալ պատճառը. ''$2''",
 'rc_categories_any' => 'Բոլոր',
 'rc-change-size-new' => '$1 {{PLURAL:$1|բայթ|բայթ}} փոփոխությունից հետո',
 'newsectionsummary' => '/* $1 */ Նոր բաժին',
-'rc-enhanced-expand' => 'Ցույց տալ մանրամասներ (պահանջում է JavaScript)',
+'rc-enhanced-expand' => 'Ցուցադրել մանրամասներ (պահանջում է ՋավաՍկրիպտ)',
 'rc-enhanced-hide' => 'Թաքցնել մանրամասները',
+'rc-old-title' => 'Ի սկզբանե ստեղծված էր որպես «$1»',
 
 # Recent changes linked
 'recentchangeslinked' => 'Կապված փոփոխություններ',
index d111b8f..ab02fcb 100644 (file)
@@ -182,7 +182,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Inviar me copias del messages de e-mail que io invia a altere usatores',
 'tog-diffonly' => 'Non monstrar le contento del pagina sub le comparation de duo versiones',
 'tog-showhiddencats' => 'Monstrar categorias celate',
-'tog-noconvertlink' => 'Disactivar conversion de titulos de ligamines',
 'tog-norollbackdiff' => 'Omitter le diff post le execution de un revocation',
 'tog-useeditwarning' => 'Advertir me quando io quita un pagina de modification sin publicar le cambiamentos',
 'tog-prefershttps' => 'Sempre usar un connexion secur in session aperte',
@@ -394,7 +393,6 @@ $1',
 'disclaimers' => 'Declaration de non-responsabilitate',
 'disclaimerpage' => 'Project:Declaration general de non-responsabilitate',
 'edithelp' => 'Adjuta de modification',
-'helppage' => 'Help:Contento',
 'mainpage' => 'Pagina principal',
 'mainpage-description' => 'Pagina principal',
 'policy-url' => 'Project:Politica',
@@ -594,8 +592,6 @@ Non oblida personalisar tu [[Special:Preferences|preferentias in {{SITENAME}}]].
 'gotaccountlink' => 'Aperir session',
 'userlogin-resetlink' => 'Datos de authentication oblidate?',
 'userlogin-resetpassword-link' => 'Contrasigno oblidate?',
-'helplogin-url' => 'Help:Aperir session',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Adjuta a aperir session]]',
 'userlogin-loggedin' => 'Tu ha jam aperite session como {{GENDER:$1|$1}}.
 Usa le formulario sequente pro aperir session como altere usator.',
 'userlogin-createanother' => 'Crear un altere conto',
@@ -730,7 +726,7 @@ Pro completar le accesso, tu debe definir un nove contrasigno hic:',
 'resetpass-temp-password' => 'Contrasigno temporari:',
 'resetpass-abort-generic' => 'Le cambio del contrasigno ha essite abortate per un extension.',
 'resetpass-expired' => 'Le contrasigno ha expirate. Per favor defini un nove contrasigno pro aperir session.',
-'resetpass-expired-soft' => 'Le contrasigno ha expirate e debe esser redefinite. Per favor elige un nove contrasigno ora, o clicca sur Cancellar pro redefinir lo plus tarde.',
+'resetpass-expired-soft' => 'Le contrasigno ha expirate e debe esser redefinite. Per favor elige un nove contrasigno ora, o clicca sur "{{int:resetpass-submit-cancel}}" pro redefinir lo plus tarde.',
 
 # Special:PasswordReset
 'passwordreset' => 'Reinitialisar contrasigno',
@@ -883,7 +879,7 @@ Illo pote haber essite displaciate o delite durante que tu legeva le pagina.',
 'accmailtext' => "Un contrasigno generate aleatorimente pro [[User talk:$1|$1]] ha essite inviate a $2. Illo pote esser cambiate in le pagina ''[[Special:ChangePassword|Cambiar contrasigno]]'' post que tu ha aperite un session.",
 'newarticle' => '(Nove)',
 'newarticletext' => "Tu ha sequite un ligamine verso un pagina que non existe ancora.
-Pro crear iste pagina, comencia a scriber in le quadro infra (consulta le [[{{MediaWiki:Helppage}}|pagina de adjuta]] pro plus informationes).
+Pro crear iste pagina, comencia a scriber in le quadro infra (consulta le [$1 pagina de adjuta] pro plus informationes).
 Si tu ha arrivate a iste pagina per error, clicca le button '''Retornar''' de tu navigator.",
 'anontalkpagetext' => "---- ''Isto es le pagina de discussion pro un usator anonyme qui non ha ancora create un conto, o qui non lo usa. Consequentemente nos debe usar le adresse IP numeric pro identificar le/la.
 Un tal adresse IP pote esser usate in commun per varie personas.
@@ -1137,8 +1133,6 @@ function, o le version specificate non existe, o tu essaya celar le version actu
 'revdelete-show-file-submit' => 'Si',
 'revdelete-selected' => "'''{{PLURAL:$2|Version seligite|Versiones seligite}} de [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Evento|Eventos}} de registro seligite:'''",
-'revdelete-text' => "'''Le versiones e eventos delite continuara a apparer in le historia e registro del pagina, sed partes de lor contento essera inaccessibile al publico.'''
-Altere administratores in {{SITENAME}} continuara a poter acceder al contento celate e pote restaurar lo per medio de iste mesme interfacie, si non se ha definite restrictiones additional.",
 'revdelete-confirm' => 'Per favor confirma que tu ha le intention de facer isto, que tu comprende le consequentias, e que tu face isto in accordo con [[{{MediaWiki:Policy-url}}|le politica]].',
 'revdelete-suppress-text' => "Le suppression debe '''solmente''' esser usate pro le sequente casos:
 * Information potentialmente diffamatori
@@ -2127,7 +2121,7 @@ Le entratas <del>cancellate</del> ha essite resolvite.',
 'deadendpagestext' => 'Le sequente paginas non ha ligamines a altere paginas in {{SITENAME}}.',
 'protectedpages' => 'Paginas protegite',
 'protectedpages-indef' => 'Solmente protectiones infinite',
-'protectedpages-summary' => 'Iste pagina lista paginas existente que es actualmente protegite. Pro un lista de titulos protegite contra creation, vide [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Iste pagina lista paginas existente que es actualmente protegite. Pro un lista de titulos protegite contra creation, vide [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Protectiones in cascada solmente',
 'protectedpages-noredirect' => 'Celar redirectiones',
 'protectedpagesempty' => 'Nulle paginas es actualmente protegite con iste parametros.',
@@ -2140,7 +2134,7 @@ Le entratas <del>cancellate</del> ha essite resolvite.',
 'protectedpages-unknown-timestamp' => 'Incognite',
 'protectedpages-unknown-performer' => 'Usator incognite',
 'protectedtitles' => 'Titulos protegite',
-'protectedtitles-summary' => 'Iste pagina lista titulos actualmente protegite contra creation. Pro un lista de paginas existente que ha essite protegite, vide [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Iste pagina lista titulos actualmente protegite contra creation. Pro un lista de paginas existente que ha essite protegite, vide [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Nulle titulos es actualmente protegite con iste parametros.',
 'listusers' => 'Lista de usatores',
 'listusers-editsonly' => 'Monstrar solmente usatores con modificationes',
@@ -2478,10 +2472,10 @@ Ecce le configurationes actual del pagina '''$1''':",
 Ecce le configurationes actual del pagina '''$1''':",
 'protect-cascadeon' => 'Iste pagina es actualmente protegite proque illo es includite in le sequente {{PLURAL:$1|pagina, le qual|paginas, le quales}} ha activate le protection in cascada.
 Tu pote cambiar le nivello de protection de iste pagina, ma isto non cambiara le effecto del protection in cascada.',
-'protect-default' => 'Permitter tote le usatores',
-'protect-fallback' => 'Permitter solmente usatores con le permission de "$1"',
-'protect-level-autoconfirmed' => 'Permitter solmente usatores autoconfirmate',
-'protect-level-sysop' => 'Permitter solmente administratores',
+'protect-default' => 'Permitter tote le usatores',
+'protect-fallback' => 'Permitter solmente al usatores con le privilegio de "$1"',
+'protect-level-autoconfirmed' => 'Permitter solmente al usatores autoconfirmate',
+'protect-level-sysop' => 'Permitter solmente al administratores',
 'protect-summary-cascade' => 'in cascada',
 'protect-expiring' => 'expira le $1 (UTC)',
 'protect-expiring-local' => 'expira le $1',
@@ -3108,7 +3102,7 @@ Le causa es probabilemente un ligamine verso un sito externe que es presente in
 '''NON''' completa isto!",
 
 # Info page
-'pageinfo-title' => 'Informationes pro "$1"',
+'pageinfo-title' => 'Information sur "$1"',
 'pageinfo-not-current' => 'Regrettabilemente, il es impossibile fornir iste information pro versiones ancian.',
 'pageinfo-header-basic' => 'Information de base',
 'pageinfo-header-edits' => 'Historia de modificationes',
index 30c11cd..626ca2c 100644 (file)
@@ -383,7 +383,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Kirimkan saya salinan surel yang saya kirimkan ke orang lain',
 'tog-diffonly' => 'Jangan tampilkan isi halaman di bawah perbedaan suntingan',
 'tog-showhiddencats' => 'Tampilkan kategori tersembunyi',
-'tog-noconvertlink' => 'Matikan konversi judul pranala',
 'tog-norollbackdiff' => 'Jangan tampilkan perbedaan setelah melakukan pengembalian',
 'tog-useeditwarning' => 'Ingatkan saya bila meninggalkan halaman penyuntingan sebelum menyimpan perubahan',
 'tog-prefershttps' => 'Selalu gunakan koneksi aman ketika masuk log',
@@ -596,7 +595,6 @@ $1',
 'disclaimers' => 'Penyangkalan',
 'disclaimerpage' => 'Project:Penyangkalan umum',
 'edithelp' => 'Bantuan penyuntingan',
-'helppage' => 'Help:Isi',
 'mainpage' => 'Halaman Utama',
 'mainpage-description' => 'Halaman Utama',
 'policy-url' => 'Project:Kebijakan',
@@ -792,8 +790,6 @@ Ingatlah bahwa beberapa halaman mungkin masih menampilkan anda seperti masih mas
 'gotaccountlink' => 'Masuk log',
 'userlogin-resetlink' => 'Lupa detail info masuk Anda?',
 'userlogin-resetpassword-link' => 'Lupa kata sandi?',
-'helplogin-url' => 'Help:Masuk log',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Bantuan masuk log]]',
 'userlogin-loggedin' => 'Andan telah masuk log sebagai $1.
 Gunakan formulir di bawah untuk masuk log sebagai pengguna lain.',
 'userlogin-createanother' => 'Buat akun lain',
@@ -1054,7 +1050,7 @@ Subbagian ini mungkin dipindahkan atau dihapus ketika Anda membukanya.',
 
 Kata sandi untuk akun baru ini dapat diubah di halaman ''[[Special:ChangePassword|pengubahan kata sandi]]'' setelah masuk log.",
 'newarticle' => '(Baru)',
-'newarticletext' => "Anda mengikuti pranala ke halaman yang belum tersedia. Untuk membuat halaman tersebut, ketiklah isi halaman di kotak di bawah ini (lihat [[{{MediaWiki:Helppage}}|halaman bantuan]] untuk informasi lebih lanjut). Jika Anda tanpa sengaja sampai ke halaman ini, klik tombol '''back''' di penjelajah web Anda.",
+'newarticletext' => "Anda mengikuti pranala ke halaman yang belum tersedia. Untuk membuat halaman tersebut, ketiklah isi halaman di kotak di bawah ini (lihat [$1 halaman bantuan] untuk informasi lebih lanjut). Jika Anda tanpa sengaja sampai ke halaman ini, klik tombol '''back''' di penjelajah web Anda.",
 'anontalkpagetext' => "----''Ini adalah halaman pembicaraan seorang pengguna anonim yang belum membuat akun atau tidak menggunakannya.
 Dengan demikian, kami terpaksa harus memakai alamat IP yang bersangkutan untuk mengidentifikasikannya.
 Alamat IP seperti ini mungkin dipakai bersama oleh beberapa pengguna yang berbeda.
@@ -1293,8 +1289,6 @@ Sebagai seorang pengurus, Anda dapat melihat perbedaan ini; detail mungkin terse
 'revdelete-show-file-submit' => 'Ya',
 'revdelete-selected' => "'''{{PLURAL:$2|Revisi|Revisi-revisi}} pilihan dari '''$1''''''",
 'logdelete-selected' => "'''{{PLURAL:$1|Log|Log-log}} pilihan untuk:'''",
-'revdelete-text' => "'''Revisi dan tindakan yang telah dihapus akan tetap muncul di versi terdahulu dan log halaman, tapi bagian dari isinya tidak bisa diakses publik.'''
-Pengurus {{SITENAME}} lain akan tetap dapat mengakses isi yang tersembunyi ini dan dapat membatalkan penghapusannya menggunakan antarmuka yang sama, kecuali ada pembatasan lain yang dibuat oleh operator situs.",
 'revdelete-confirm' => 'Tolong konfirmasi bahwa Anda memang bermaksud melakukan ini, memahami konsekuensinya, dan bahwa Anda melakukannya sesuai dengan [[{{MediaWiki:Policy-url}}|kebijakan]].',
 'revdelete-suppress-text' => "Penyembunyian revisi '''hanya''' boleh digunakan untuk kasus-kasus berikut:
 * Informasi yang berpotensi memfitnah
@@ -1890,6 +1884,7 @@ Anda harus meminta bantuan seseorang dengan kemampuan untuk melihat data berkas
 'uploaddisabledtext' => 'Pemuatan berkas tidak diizinkan.',
 'php-uploaddisabledtext' => 'Pemuatan berkas dimatikan di PHP. Silakan cek pengaturan file_uploads.',
 'uploadscripted' => 'Berkas ini mengandung HTML atau kode yang dapat diinterpretasikan dengan keliru oleh penjelajah web.',
+'uploadinvalidxml' => 'XML dalam berkas yang diunggah tidak bisa diuraikan.',
 'uploadvirus' => 'Berkas tersebut mengandung virus! Rincian: $1',
 'uploadjava' => 'Berkas ini adalah berkas ZIP yang mengnadung berkas .class Java.
 Penggunggahan berkas Java tidak diperbolehkan karena dapat menyebabkan pengabaian batasan keamanan.',
@@ -4364,6 +4359,4 @@ Jika tidak, Anda dapat menggunakan formulir mudah di bawah ini. Komentar Anda ak
 'expand_templates_generate_rawhtml' => 'Tampilkan HTML mentah',
 'expand_templates_preview' => 'Pratayang',
 
-# Unknown messages
-'uploadinvalidxml' => 'XML dalam berkas yang diunggah tidak bisa diuraikan.',
 );
index bb04575..71de567 100644 (file)
@@ -170,7 +170,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Inviar me copies de e-mailes que yo invia por altri usatores',
 'tog-diffonly' => 'Ne monstrar li contenete de págine in infra del changes',
 'tog-showhiddencats' => 'Monstrar categories ne visibil',
-'tog-noconvertlink' => 'Desvalidar conversion de titul de catenun',
 'tog-norollbackdiff' => 'Omisser change pos de efectuar un rollback',
 'tog-useeditwarning' => 'Averti me, si yo abandona un págine con ínconservat changes',
 'tog-prefershttps' => 'Sempre usar un secur connection, si tui session es activ.',
@@ -381,7 +380,6 @@ $1',
 'disclaimers' => 'Advertimentes',
 'disclaimerpage' => 'Project:Advertimentes',
 'edithelp' => 'Redactori auxilie',
-'helppage' => 'Help:Contenete',
 'mainpage' => 'Principal págine',
 'mainpage-description' => 'Principal págine',
 'policy-url' => 'Project:Regulariumes',
@@ -565,7 +563,7 @@ Tui adresse de IP va esser registrat in historico de redactiones de ti págine."
 'accmailtext' => "Li passa-parol por '$1' ha esset inviat a $2.",
 'newarticle' => '(Nov)',
 'newarticletext' => "Vu have sequet un catenun por un págine que ne existe ancor.
-Por crear li págine, comensa tippant in li buxe in infra (vider li [[{{MediaWiki:Helppage}}|págine de auxilie]] por plu informationes).
+Por crear li págine, comensa tippant in li buxe in infra (vider li [$1 págine de auxilie] por plu informationes).
 Si vu es ci per errore, clacca in li buton '''retornar''' in tui navigator.",
 'noarticletext' => 'Actualmen ti-ci págine ancor ne contene alquel textu.
 Tu posse <span class="plainlinks">[{{fullurl:{{FULLPAGENAME}}|action=edit}} redacter]</span> it, [[Special:Search/{{PAGENAME}}|serchar]] su titul in altri págines o regardar li relatent <span class="plainlinks">[{{fullurl:{{#special:Log}}|page={{FULLPAGENAMEE}}}} logs]</span>.',
index f626f54..d46b14b 100644 (file)
@@ -305,7 +305,6 @@ $1',
 'disclaimers' => 'Ihe anyí chọrọ ki ma',
 'disclaimerpage' => 'Project:Ihe I kweshiri ma',
 'edithelp' => 'Inyetuáká I rüwa',
-'helppage' => 'Help: Ihe di ime',
 'mainpage' => 'Ihü Mbu',
 'mainpage-description' => 'Ihü Mbu',
 'policy-url' => 'Project:Iwu',
@@ -551,7 +550,7 @@ Biko tinyé cha ihe ńdía na ájújú nkeówulà I gi me.',
 'accmailtitle' => 'mkpurụ okwu ejị a gafẹ a sipuole.',
 'newarticle' => '(Nke ohúrù)',
 'newarticletext' => "Í sòrò jikodo na ihü nke adíghị bòdì.
-Í chȯrí ké ihü nke áhù, bìdó Í pị áka nà igbé nȯr nà àlà ngá (lé [[{{MediaWiki:Helppage}}|ihü nkwádo]] màkà ụmà ozor).
+Í chȯrí ké ihü nke áhù, bìdó Í pị áka nà igbé nȯr nà àlà ngá (lé [$1 ihü nkwádo] màkà ụmà ozor).
 Ȯ bú nà Í byàrà ngá na aghọ, piá mpiá otúzor-intanet gi nke '''àzú'''.",
 'noarticletext' => 'Mkpụrụ edemede à díghị na ihü nke.
 Í nwèríkí [[Special:Search/{{PAGENAME}}|tuó íshí ihü nke á]] na ihü ndi ozor,
index 29e3636..7e29fa2 100644 (file)
@@ -226,7 +226,7 @@ $messages = array(
 'edit' => 'Urnosen',
 'create' => 'Agaramid',
 'editthispage' => 'Urnosen daytoy a panid',
-'create-this-page' => 'Aramidem daytoy a panid',
+'create-this-page' => 'Partuaten daytoy a panid',
 'delete' => 'Ikkaten',
 'deletethispage' => 'Ikkaten daytoy a panid',
 'undeletethispage' => 'Isubli ti pannakaikkat daytoy a panid',
@@ -283,7 +283,6 @@ $1',
 'disclaimers' => 'Dagiti renunsia',
 'disclaimerpage' => 'Project:Sapasap a renunsia',
 'edithelp' => 'Tulong ti panag-urnos',
-'helppage' => 'Help:Dagiti linaon',
 'mainpage' => 'Umuna a Panid',
 'mainpage-description' => 'Umuna a Panid',
 'policy-url' => 'Project:Annuroten',
@@ -486,8 +485,6 @@ Dimo liplipatan a sukatan dagiti kakaykayatam idiay [[Special:Preferences|{{SITE
 'gotaccountlink' => 'Sumrek',
 'userlogin-resetlink' => 'Nalipatam dagiti salaysay ti pagserrekmo?',
 'userlogin-resetpassword-link' => 'Nalipatam ti kontraseniasmo?',
-'helplogin-url' => 'Help:Panagserrek',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Tulong iti panagserrek]]',
 'userlogin-loggedin' => 'Nakastrekkan a kas ni {{GENDER:$1|$1}}.
 Usaren ti porma dita baba tapno sumrek a kas sabali nga agar-aramat.',
 'userlogin-createanother' => 'Agaramid pay ti sabali a pakabilangan',
@@ -590,6 +587,7 @@ Pangngaasi nga agurayka ti $1 sakbay a padasem manen.',
 'createacct-another-realname-tip' => 'Saan a nasken ti pudno a nagan.
 No kayatmo nga ited, mausarto daytoy para iti panangited ti pammadayaw para kadagiti obrada.',
 'pt-login' => 'Sumrek',
+'pt-login-button' => 'Sumrek',
 'pt-createaccount' => 'Agaramid ti pakabilangan',
 'pt-userlogout' => 'Rummuar',
 
@@ -621,7 +619,7 @@ Tapno malpas ti panagserrek, nasken a mangiyasentarka ti baro a kontrasenias dit
 'resetpass-temp-password' => 'Temporario a kontrasenias:',
 'resetpass-abort-generic' => 'Ti panagsukat ti kontrasenias ket pinasardeng babaen ti maysa a pagpaatiddog.',
 'resetpass-expired' => 'Nagpason ti kontraseniasmo. Pangngaasi a mangiyasentar ti baro a kontrasenias tapno makastrek.',
-'resetpass-expired-soft' => 'Nagpason ti kontraseniasmo, ken nasken a maiyasentar manen. Pangngaasi nga agpili tattan ti baro a kontrasenias, wenno pinduten ti ukasen tapno iyasentar no madamdama.',
+'resetpass-expired-soft' => 'Nagpason ti kontraseniasmo, ken nasken a maiyasentar manen. Pangngaasi nga agpili tattan ti baro a kontrasenias, wenno pinduten ti "{{int:resetpass-submit-cancel}}"  tapno maiyasentarto intono madamdama.',
 
 # Special:PasswordReset
 'passwordreset' => 'Iyasentar manen ti kontrasenias',
@@ -768,9 +766,9 @@ Mabalin a naiyalis wenno naikkat bayat idi kitkitaem ti panid.',
 'accmailtext' => "Ti pugto a napartuat a kontrasenias para kenni [[User talk:$1|$1]] ket naipatuloden idiay $2. Mabalin a masukatan idiay
 ''[[Special:ChangePassword|pagsukatan ti kontrasenias]]'' a panid no sumrekka.",
 'newarticle' => '(Baro)',
-'newarticletext' => "Nasurotmo ti maysa a silpo iti awan pay a panid. 
-Tapno mapartuat daytoy a panid, rugiamon ti agikur-it wenno agisurat iti pagsuratan a kahon dita baba (kitaen ti [[{{MediaWiki:Helppage}}|panid ti tulong]] para iti ad-adu pay a pakaammo). 
-No addaka ditoy babaen ti biddut, ipidutmo ti '''agsubli''' a buton ti pabasabasam tapno makasublika iti naggapuam a panid.",
+'newarticletext' => 'Nasurotmo ti silpo ti awan pay a panid. 
+Ti mangpartuat ti panid, rugiamon ti agmakinilia iti kahon dita baba (kitaen ti [$1 panid ti tulong] para iti adu pay a pakaammo). 
+No addaka ditoy babaen ti biddut, pindutem ti buton ti <strong>agsubli</strong> ti pagbasabasam.',
 'anontalkpagetext' => "----
 ''Daytoy ti pakitungtungan a panid para iti di am-ammo nga agar-aramat a saan pay a nakaaramid ti pakabilangan, wenno saanna nga us-usaren.
 Dakami ket agusar kami ti numero nga IP a pagtaengan ti panangilasin dagiti lalaki/babai.
@@ -880,7 +878,7 @@ Mabalinmo ti agsubli ken urnosen ti adda a panid, wenno [[Special:UserLogin|sumr
 'sectioneditnotsupported-text' => 'Saan a nasuportaran ti panag-urnos ti paset iti daytoy a panid.',
 '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}}:',
+'permissionserrorstext-withaction' => 'Awan ti pammalubosmo nga $2, gapu ti sumaganad a {{PLURAL:$1|rason|rasrason}}:',
 'recreate-moveddeleted-warn' => "'''Ballaag: Agparpartuatka manen ti dati a naikkat a panid'''
 
 Nasken a siguraduem no maikanatad nga ituloymo nga urnosen daytoy a panid.
@@ -967,8 +965,8 @@ Ti inted a rason babaen ni $3 ket ''$2''",
 'last' => 'naudi',
 'page_first' => 'umuna',
 'page_last' => 'naudi',
-'histlegend' => "Panagpili ti sabali: Markaan dagiti kahon ti radio dagiti panagbaliwan tapno maipada ken pesselen ti serrek wenno ti buton dita baba.<br />
-Sarita: '''({{int:cur}})''' = naggidiatan ti kinaudi a panagbaliw, '''({{int:last}})''' = naggidiatan ti sarsarunuen a panagbaliw , '''{{int:minoreditletter}}''' = bassit a panagbaliw.",
+'histlegend' => 'Panagpili ti diperensia: Markaan dagiti kahon ti radio kadagiti panagbaliw tapno maipada ken pinduten ti serrek wenno ti buton dita baba.<br />
+Leyenda: <strong>({{int:cur}})</strong> = naggidiatan ti kinaudi a panagbaliw, <strong>({{int:last}})</strong> = naggidiatan ti sarsarunuen a panagbaliw , <strong>{{int:minoreditletter}}</strong> = bassit a panagbaliw.',
 'history-fieldset-title' => 'Agbasabasa ti pakasaritaan',
 'history-show-deleted' => 'Naikkat laeng',
 'histfirst' => 'kadaanan',
@@ -1025,8 +1023,10 @@ awan ti naibaga a panagbaliw, wenno padpadasem nga ilemlemmeng ti agdama a panag
 'revdelete-show-file-submit' => 'Wen',
 'revdelete-selected' => "'''{{PLURAL:$2|Napili a nabaliwan|Dagiti napili a nabaliwan}} iti [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Ti napili a listaan ti napasamak|Dagiti napili a listaan ti napasamak}}:'''",
-'revdelete-text' => "'''Dagiti naikkat a binaliwan ken dagiti napasamak ket agparang idiay panid ti pakasaritaan ken dagiti listaan, ngem addaan dagiti paset ti nagyanda a saan a maserrekan ti publiko.'''
-Dagiti sabsabali nga administrador idiay {{SITENAME}} ket mabalinda a serrekan ti nailemmeng a nagyan ken isubli ti panakaikkatda manen idiay dati nga interface, ngem saan no adda dagiti nainayon a naikabil a panagparit.",
+'revdelete-text-text' => 'Dagiti naikkat a rebision ket agparangto pay laeng iti panid ti pakasaritaan, ngem dagiti paset ti linaonda ket saanton a publiko a maserrekan.',
+'revdelete-text-file' => 'Dagiti naikkat a bersion ti papeles ket agparangto pay laeng iti pakasaritaan ti papeles, ngem dagiti paset ti linaonda ket saanton a publiko a maserrekan.',
+'logdelete-text' => 'Dagiti naikkat a listaan ti pasamak ket agparangto pay laeng kadagiti listaan, ngem dagiti paset ti linaonda ket saanton a publiko a maserrekan.',
+'revdelete-text-others' => 'Dagiti sabali nga administrador iti {{SITENAME}} ket mabalindanto pay laeng a maserrekan ti nailemmeng a linaon ken mabalindanto manen ti mangisubli ti pannakaikkat babaen iti daytoy nga isu met laeng nga interface, malaksid no adda dagiti maipatinayon a maisaad a panangigawid.',
 'revdelete-confirm' => 'Pangngaasi a pasingkedam a kayatmo nga aramiden daytoy, a maawatam dagiti pagbanagan, ket araramidem daytoy a segun iti [[{{MediaWiki:Policy-url}}|ti annuroten]].',
 'revdelete-suppress-text' => "Ti panagdepdep ket usaren '''laeng''' kadagiti sumaganad a kaso;
 * Makapataud ti libelo a pakaammo
@@ -1162,7 +1162,7 @@ Dagiti salaysay ket mabalin a mabirukan idiay [{{fullurl:{{#Special:Log}}/delete
 'search-file-match' => '(maipada ti linaon a papeles)',
 'search-suggest' => 'Daytoy kadi: $1',
 'search-interwiki-caption' => 'Dagiti kakabsat a gandat',
-'search-interwiki-default' => '$1 dagiti nagbanagan:',
+'search-interwiki-default' => 'Dagiti resulta manipud ti $1:',
 'search-interwiki-more' => '(adu pay)',
 'search-relatedarticle' => 'Mainaig',
 'searcheverything-enable' => 'Agbirukka kadagiti amin a nagan ti espasio',
@@ -1436,7 +1436,7 @@ Ti esurat a pagtaengam ket saan a maipakita kadagiti agar-aramat nga agkontak ke
 
 # Associated actions - in the sentence "You do not have permission to X"
 'action-read' => 'basaen datoy a panid',
-'action-edit' => 'urnosen datoy a panid',
+'action-edit' => 'agurnos iti datoy a panid',
 'action-createpage' => 'agpartuat kadagiti panid',
 'action-createtalk' => 'agaramid kadagiti pagtungtungan a panid',
 'action-createaccount' => 'agpartuat ti pakabilangan daytoy nga agar-aramat',
@@ -1489,16 +1489,28 @@ Ti esurat a pagtaengam ket saan a maipakita kadagiti agar-aramat nga agkontak ke
 'recentchanges-label-bot' => 'Daytoy a panag-urnos ket inaramid babaen ti maysa a bot',
 'recentchanges-label-unpatrolled' => 'Daytoy a panag-urnos ket saan pay a napatruliaan',
 'recentchanges-label-plusminus' => 'Ti panagbaliw ti kadakkel ti panid babaen ti bilang dagiti byte',
-'recentchanges-legend-heading' => "'''Sarita:'''",
+'recentchanges-legend-heading' => "'''Leyenda:'''",
 'recentchanges-legend-newpage' => '(kitaen pay ti [[Special:NewPages|listaan ti baro a pampanid]])',
-'rcnotefrom' => "Dita baba ket dagiti sinukatan manipud idi '''$2''' (agingga iti '''$1''' a naipakita).",
+'rcnotefrom' => 'Dita baba ket dagiti sinukatan manipud idi strong>$2</strong> (agingga iti <strong>$1</strong> a naipakita).',
 'rclistfrom' => 'Ipakita dagiti kabarbaro a sinukatan a mangrugi manipud idi $1',
 'rcshowhideminor' => '$1 dagiti bassit a panag-urnos',
+'rcshowhideminor-show' => 'Ipakita',
+'rcshowhideminor-hide' => 'Ilemmeng',
 'rcshowhidebots' => '$1 dagiti bot',
+'rcshowhidebots-show' => 'Ipakita',
+'rcshowhidebots-hide' => 'Ilemmeng',
 'rcshowhideliu' => '$1 dagiti nakarehistro nga agar-aramat',
+'rcshowhideliu-show' => 'Ipakita',
+'rcshowhideliu-hide' => 'Ilemmeng',
 'rcshowhideanons' => '$1 dagiti di am-ammo nga agar-aramat',
+'rcshowhideanons-show' => 'Ipakita',
+'rcshowhideanons-hide' => 'Ilemmeng',
 'rcshowhidepatr' => '$1 dagiti napatrulian a panag-urnos',
+'rcshowhidepatr-show' => 'Ipakita',
+'rcshowhidepatr-hide' => 'Ilemmeng',
 'rcshowhidemine' => '$1 dagiti inurnosko',
+'rcshowhidemine-show' => 'Ipakita',
+'rcshowhidemine-hide' => 'Ilemmeng',
 'rclinks' => 'Ipakita dagiti naudi a $1 a sinukatan iti kallabes a $2 nga al-aldaw<br />$3',
 'diff' => 'sabali',
 'hist' => 'saritaan',
@@ -1633,6 +1645,7 @@ Nasken nga agdamagka ti addaan ti abilidad a mangkita ti nalapdan a datos ti pap
 'php-uploaddisabledtext' => 'Ti pinag-ipan ti papeles ket naiddep idiay PHP.
 Panngaasi a kitaem ti pannakaikabil ti pinag-ipan ti papeles.',
 'uploadscripted' => 'Daytoy a papeles ket adda nagyanna a HTML wenno panagsurat a kodigo a mabalin nga agpakamali ti panagbasa ti sapot a pagbasabasa.',
+'uploadscriptednamespace' => 'Daytoy a papeles ti SVG ket aglaon ti maysa a saan a mabalin a nagan ti espasio ti "$1"',
 'uploadinvalidxml' => 'Ti XML iti naikarga a papeles ket saan a maiwaswas.',
 'uploadvirus' => 'Addaan ti birus daytoy a papeles! Salaysay: $1',
 'uploadjava' => 'Daytoy a papeles ket ZIP a papeles nga adda nagyanna a Java .a kita ti papeles.
@@ -1993,7 +2006,7 @@ Tattan ket naibaw-ing idiay [[$2]].',
 'deadendpagestext' => 'Dagitoy a pampanid ket saan a nakasilpo ti sabali a pampanid ditoy {{SITENAME}} .',
 'protectedpages' => 'Dagiti nasalakniban a panid',
 'protectedpages-indef' => 'Inggat ingana a salakniban laeng',
-'protectedpages-summary' => 'Daytoy a panid ket ilistana dagiti adda a panid nga agdama a nasalakniban. Para iti listaan dagiti titulo a nasalakniban manipud ti pannakapartuat, kitaen ti [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Daytoy a panid ket ilistana dagiti adda a panid nga agdama a nasalakniban. Para iti listaan dagiti titulo a nasalakniban manipud ti pannakapartuat, kitaen ti [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Dagiti sariap a salaknib laeng',
 'protectedpages-noredirect' => 'Ilemmeng dagiti baw-ing',
 'protectedpagesempty' => 'Awan ti pampanid nga agdama a nasalakniban babaen kadagitoy a parametro.',
@@ -2006,7 +2019,7 @@ Tattan ket naibaw-ing idiay [[$2]].',
 'protectedpages-unknown-timestamp' => 'Di ammo',
 'protectedpages-unknown-performer' => 'Di ammo nga agar-aramat',
 'protectedtitles' => 'Dagiti nasalakniban a titulo',
-'protectedtitles-summary' => 'Daytoy a panid ket ilistana dagiti titulo nga agdama a nasalakniban manipud ti pannakapartuat. Para iti listaan dagiti adda a panid a nasalakniban, kitaen ti [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Daytoy a panid ket ilistana dagiti titulo nga agdama a nasalakniban manipud ti pannakapartuat. Para iti listaan dagiti adda a panid a nasalakniban, kitaen ti [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Awan dagiti titulo nga agdama a nasalakniban iti dagitoy a parametro.',
 'listusers' => 'Listaan dagiti agar-aramat',
 'listusers-editsonly' => 'Ipakita laeng dagiti agar-aramat nga adda inurnosda',
@@ -2281,7 +2294,7 @@ Ti panagikkat ti kastoy a pammpanid ket naparitan tapno mapawilan ti saan nga in
 'delete-warning-toobig' => 'Daytoy a panid ket adda ti dakkel unay a pakasaritaan ti panag-urnos, ti kaadu nga $1 {{PLURAL:$1|panagbaliw|dagiti panagbaliw}}.
 Ti panagikkat ket madisturbo ti panagpataray ti database ti {{SITNAME}};
 agal-aluadka a mangrugi.',
-'deleting-backlinks-warning' => "'''Ballaag:''' Dagiti dadduma a panid ket naisilpo wenno nailak-am manipud ti panid a gangani nga ikkatem.",
+'deleting-backlinks-warning' => "'''Ballaag:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Dagiti dadduma a panid]] ket naisilpo wenno nailak-am manipud ti panid a gangani nga ikkatem.",
 
 # Rollback
 'rollback' => 'Isubli dagiti panag-urnos',
@@ -2463,8 +2476,10 @@ Ti naudi a listaan ti pannakaserra ket adda dita baba tapno mausar a reperensia:
 'sp-contributions-blocked-notice-anon' => 'Daytoy nga IP a pagtaengan ket naserraan.
 Ti naudi a listaan ti pannakaserra ket adda dita baba tapno mausar a reperensia:',
 'sp-contributions-search' => 'Agsapul para kadagiti naar-aramid',
+'sp-contributions-suppresslog' => 'pasardengen dagiti kontribusion ti agar-aramat',
 'sp-contributions-username' => 'IP a pagtaengan wenno nagan ti agar-aramat:',
 'sp-contributions-toponly' => 'Ipakita laeng dagiti inurnos a kinaudian a panagbaliw',
+'sp-contributions-newonly' => 'Ipakita laeng dagiti inurnos a pannakapartuat ti pampanid',
 'sp-contributions-submit' => 'Biruken',
 
 # What links here
@@ -3748,7 +3763,7 @@ Naka-awatka koman ti [{{SERVER}}{{SCRIPTPATH}}/COPYING kopia iti GNU Sapasap a
 
 # Special:SpecialPages
 'specialpages' => 'Espesial a pampanid',
-'specialpages-note-top' => 'Sarita',
+'specialpages-note-top' => 'Leyenda',
 'specialpages-note' => '* Kadawyan nga espesial a pampanid.
 * <span class="mw-specialpagerestricted">Nagawidan nga espesial a pampanid.</span>',
 'specialpages-group-maintenance' => 'Dagiti padamag ti panagtaripato',
index 428f654..e64716a 100644 (file)
@@ -239,7 +239,6 @@ $messages = array(
 'disclaimers' => 'Бокъонах юхавалаp',
 'disclaimerpage' => 'Project:Бокъонах юхавалаp',
 'edithelp' => 'Хувцама куцтохкам',
-'helppage' => 'Help:Чулоацам',
 'mainpage' => 'Кертера оагӀув',
 'mainpage-description' => 'Кертера оагӀув',
 'policy-url' => 'Project:Бокъонаш',
@@ -396,7 +395,7 @@ $messages = array(
 'accmailtitle' => 'КъайладIоагӀа дӀадахьийтад',
 'newarticle' => '(Kерда)',
 'newarticletext' => 'Шо йоаца оагӀув тӀа Ӏинкаца дехьадаьннад.
-Из хьае, кӀалхагӀа доала корачу яздам очуязаде (кхета хала дале [[{{MediaWiki:Helppage}}|новкъостала оагӀув тӀа]] бӀаргтасса).
+Из хьае, кӀалхагӀа доала корачу яздам очуязаде (кхета хала дале [$1 новкъостала оагӀув тӀа] бӀаргтасса).
 Цаховш укхаза нийсадена дале, юхавала/яла яха тоӀобама тӀа пӀелга тоӀобе.',
 'noarticletext' => "ХIанз укх оагӀув тӀа яздам доацаш да.
 [[Special:Search/{{PAGENAME}}|цу тайпара цӀи дувцам кораде]] кхыдола йоазувашках йийша я шун, вешта
index 377ed96..523284e 100644 (file)
@@ -312,7 +312,6 @@ $messages = array(
 'disclaimers' => 'Legala averto',
 'disclaimerpage' => 'Project:Generala des-agnosko',
 'edithelp' => 'Helpo pri redaktado',
-'helppage' => 'Help:Helpo',
 'mainpage' => 'Frontispico',
 'mainpage-description' => 'Frontispico',
 'policy-url' => 'Project:Sistemo di agado',
@@ -517,7 +516,7 @@ La pasovorto por ica nova konto povas chanjesar che la ''[[Special:ChangePasswor
 'newarticle' => '(nova)',
 'newarticletext' => 'Vu sequis ligilo a pagino qua ne existas ankore.
 Por krear ica pagino, voluntez startar skribar en la infra buxo.
-(regardez la [[{{MediaWiki:Helppage}}|helpo]] por plusa informo).
+(regardez la [$1 helpo] por plusa informo).
 Se vu esas hike erore, kliktez sur la butono por retrovenar en vua navigilo.',
 'noarticletext' => 'Prezente, ne esas texto en ica pagino.
 Vu povas [[Special:Search/{{PAGENAME}}|serchar ica titulo]] en altra pagini,
index 04522fa..f5cf08c 100644 (file)
@@ -479,7 +479,6 @@ $1',
 'disclaimers' => 'Fyrirvarar',
 'disclaimerpage' => 'Project:Almennur fyrirvari',
 'edithelp' => 'Breytingarhjálp',
-'helppage' => 'Help:Efnisyfirlit',
 'mainpage' => 'Forsíða',
 'mainpage-description' => 'Forsíða',
 'policy-url' => 'Project:Samþykktir',
@@ -668,8 +667,6 @@ Ekki gleyma að breyta [[Special:Preferences|{{SITENAME}} stillingunum]] þínum
 'gotaccountlink' => 'Skráðu þig inn',
 'userlogin-resetlink' => 'Gleymdir þú notendaupplýsingunum þínum?',
 'userlogin-resetpassword-link' => 'Gleymdiru lykilorðinu þínu?',
-'helplogin-url' => 'Help:Innskráning',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hjálp við innskráningu]]',
 'userlogin-loggedin' => 'Þú ert búin(n) að skrá þig inn sem {{GENDER:$1|$1}}.
 Notaðu eyðablaðið fyrir neðan til að skrá þig inn sem annar notandi.',
 'userlogin-createanother' => 'Stofna annan aðgang',
@@ -762,6 +759,7 @@ Vinsamlegast bíðið $1 áður en þú reynir aftur.',
 'loginlanguagelabel' => 'Tungumál: $1',
 'suspicious-userlogout' => 'Beiðni um útskráningu hafnað því hún var líklegast send frá biluðum vafra eða vefseli sem hefur vistað vefsíðuna í flýtiminni.',
 'createacct-another-realname-tip' => 'Alvöru nafn er valfrjálst. Ef þú kýst að gefa það upp, verður það notað til að gefa þér heiður af verkum þínum.',
+'pt-createaccount' => 'Stofna aðgang',
 
 # Email sending
 'php-mail-error-unknown' => 'Óþekkt villa í PHP mail() aðgerð.',
@@ -929,7 +927,7 @@ Hægt er að breyta lykilorðinu fyrir aðganginn á ''[[Special:ChangePassword|
 'newarticle' => '(Ný)',
 'newarticletext' => "Þú hefur fylgt tengli á síðu sem ekki er til ennþá.
 Þú getur búið til síðu með þessu nafni með því að skrifa í formið fyrir neðan
-(meiri upplýsingar í [[{{MediaWiki:Helppage}}|hjálpinni]]).
+(meiri upplýsingar í [$1 hjálpinni]).
 Ef þú hefur óvart villst hingað geturðu notað '''til baka'''-hnappinn í vafranum þínum.",
 'anontalkpagetext' => "----''Þetta er spjallsíða fyrir óþekktan notanda sem hefur ekki búið til aðgang ennþá, eða notar hann ekki.
 Þar af leiðandi þurfum við að nota vistfang til að bera kennsli á hann/hana.
@@ -1164,8 +1162,6 @@ Frekari upplýsingar eru í [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGE
 'revdelete-show-file-submit' => 'Já',
 'revdelete-selected' => "'''{{PLURAL:$2|Valin breyting|Valdar breytingar}} fyrir [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Valin aðgerð|Valdar aðgerðir}}:'''",
-'revdelete-text' => "'''Eyddar útgáfur og breytingar munu birtast áfram í breytingarskrá síðunnar og í aðgerðarskrám, en hluti upplýsingana verða falin almenningi.'''
-Önnur möppudýr á {{SITENAME}} hafa aðgang að földu upplýsingunum og geta endurvakið upplýsingarnar í gegnum sama viðmót, nema sérstakar takmarkanir séu virkar.",
 'revdelete-confirm' => 'Vinsamlegast staðfestu að þú viljir gera þetta, að þú skiljir afleiðingarnar og að þú sért að gera þetta í samræmi við  [[{{MediaWiki:Policy-url}}]].',
 'revdelete-suppress-text' => "Bælingu á '''eingöngu''' að nota í eftirfarandi tilfellum:
 * Mögulegar ærumleiðandi upplýsingar
@@ -1621,11 +1617,23 @@ Tölvupóstfang þitt er ekki gefið upp þegar aðrir notendur hafa samband vi
 'rcnotefrom' => "Að neðan eru breytingar síðan '''$2''' (allt að '''$1''' sýndar).",
 'rclistfrom' => 'Sýna breytingar frá og með $1',
 'rcshowhideminor' => '$1 minniháttar breytingar',
+'rcshowhideminor-show' => 'Sýna',
+'rcshowhideminor-hide' => 'Fela',
 'rcshowhidebots' => '$1 vélmenni',
+'rcshowhidebots-show' => 'Sýna',
+'rcshowhidebots-hide' => 'Fela',
 'rcshowhideliu' => '$1 skráðir notendur',
+'rcshowhideliu-show' => 'Sýna',
+'rcshowhideliu-hide' => 'Fela',
 'rcshowhideanons' => '$1 óinnskráða notendur',
+'rcshowhideanons-show' => 'Sýna',
+'rcshowhideanons-hide' => 'Fela',
 'rcshowhidepatr' => '$1 vaktaðar breytingar',
+'rcshowhidepatr-show' => 'Sýna',
+'rcshowhidepatr-hide' => 'Fela',
 'rcshowhidemine' => '$1 mínar breytingar',
+'rcshowhidemine-show' => 'Sýna',
+'rcshowhidemine-hide' => 'Fela',
 'rclinks' => 'Sýna síðustu $1 breytingar síðustu $2 daga<br />$3',
 'diff' => 'breyting',
 'hist' => 'breytingaskrá',
@@ -3041,8 +3049,8 @@ Vinsamlegast reyndu aftur.',
 'spam_reverting' => 'Tek aftur síðustu breytingu sem inniheldur ekki tengil á $1',
 'spam_blanking' => 'Allar útgáfur innihéldu tengla á $1, tæmi síðuna',
 'spam_deleting' => 'Allar útgáfur innihéldu tengla á $1, eyði síðunni',
-'simpleantispam-label' => "Kæfuvörn.
-'''EKKI''' fylla þetta út!",
+'simpleantispam-label' => 'Kæfuvörn.
+<strong>EKKI</strong> fylla þetta út!',
 
 # Info page
 'pageinfo-title' => 'Upplýsingar um $1',
index f0dd063..93d82c4 100644 (file)
@@ -333,7 +333,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Inviami una copia dei messaggi spediti agli altri utenti',
 'tog-diffonly' => 'Non visualizzare il contenuto della pagina dopo il confronto tra versioni',
 'tog-showhiddencats' => 'Mostra le categorie nascoste',
-'tog-noconvertlink' => 'Disattiva la conversione dei titoli dei link',
 'tog-norollbackdiff' => 'Non mostrare il confronto tra versioni dopo aver effettuato un rollback',
 'tog-useeditwarning' => 'Avvisa quando si esce da una pagina di modifica con modifiche non salvate',
 'tog-prefershttps' => "Usa sempre una connessione sicura quando si effettua l'accesso",
@@ -458,7 +457,7 @@ $messages = array(
 'vector-action-delete' => 'Cancella',
 'vector-action-move' => 'Sposta',
 'vector-action-protect' => 'Proteggi',
-'vector-action-undelete' => 'Recupera',
+'vector-action-undelete' => 'Ripristina',
 'vector-action-unprotect' => 'Cambia la protezione',
 'vector-view-create' => 'Crea',
 'vector-view-edit' => 'Modifica',
@@ -545,7 +544,6 @@ $1',
 'disclaimers' => 'Avvertenze',
 'disclaimerpage' => 'Project:Avvertenze generali',
 'edithelp' => 'Guida',
-'helppage' => 'Help:Indice',
 'mainpage' => 'Pagina principale',
 'mainpage-description' => 'Pagina principale',
 'policy-url' => 'Project:Policy',
@@ -743,8 +741,7 @@ Non dimenticare di personalizzare le [[Special:Preferences|preferenze di {{SITEN
 'gotaccountlink' => 'Entra',
 'userlogin-resetlink' => 'Hai dimenticato i tuoi dati di accesso?',
 'userlogin-resetpassword-link' => 'Hai dimenticato la password?',
-'helplogin-url' => 'Help:Login',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Aiuto con il login]]',
+'userlogin-helplink2' => "Aiuto con l'accesso",
 'userlogin-loggedin' => 'Sei già connesso come {{GENDER:$1|$1}}.
 Usa il modulo sottostante per accedere come altro utente.',
 'userlogin-createanother' => "Crea un'altra utenza",
@@ -831,6 +828,7 @@ Attendi $1 e riprova in seguito.',
 'suspicious-userlogout' => 'La tua richiesta di disconnessione è stata negata perché sembra inviata da un browser non funzionante o un proxy di caching.',
 'createacct-another-realname-tip' => "L'indicazione del proprio nome vero è opzionale; se si sceglie di inserirlo, verrà utilizzato per attribuire la paternità dei contenuti inviati.",
 'pt-login' => 'Entra',
+'pt-login-button' => 'Entra',
 'pt-createaccount' => 'Registrati',
 'pt-userlogout' => 'Esci',
 
@@ -862,7 +860,10 @@ La password potrebbe essere stata già cambiata, oppure potrebbe essere stata ri
 'resetpass-temp-password' => 'Password temporanea:',
 'resetpass-abort-generic' => "La modifica della password è stata interrotta da un'estensione.",
 'resetpass-expired' => "La password è scaduta. Si prega di impostare una nuova password per effettuare l'accesso.",
-'resetpass-expired-soft' => 'La tua password è scaduta e deve essere reimpostata. Si prega di scegliere una nuova password o fare clic su annulla per reimpostarla successivamente.',
+'resetpass-expired-soft' => 'La tua password è scaduta e deve essere reimpostata. Si prega di scegliere una nuova password o fare clic su "{{int:resetpass-submit-cancel}}" per reimpostarla successivamente.',
+'resetpass-validity-soft' => 'La tua password non è valida: $1
+
+Si prega di scegliere una nuova password o fare clic su "{{int:resetpass-submit-cancel}}" per reimpostarla successivamente.',
 
 # Special:PasswordReset
 'passwordreset' => 'Reimposta password',
@@ -900,15 +901,15 @@ Password temporanea: $2',
 'passwordreset-emailerror-capture' => "È stata generata una email di reimpostazione della password, riportata di seguito. L'invio {{GENDER:$2|all'utente}} non è riuscito: $1",
 
 # Special:ChangeEmail
-'changeemail' => "Modifica l'indirizzo e-mail",
-'changeemail-header' => "Modifica l'indirizzo e-mail dell'account",
-'changeemail-text' => 'Completa questo modulo per cambiare il tuo indirizzo e-mail. Sarà necessario inserire la password per confermare la modifica.',
+'changeemail' => 'Modifica indirizzo email',
+'changeemail-header' => "Modifica l'indirizzo email dell'account",
+'changeemail-text' => 'Completa questo modulo per cambiare il tuo indirizzo email. Sarà necessario inserire la password per confermare la modifica.',
 'changeemail-no-info' => "Devi aver effettuato l'accesso per accedere a questa pagina direttamente.",
-'changeemail-oldemail' => 'Indirizzo e-mail attuale:',
-'changeemail-newemail' => 'Nuovo indirizzo e-mail:',
+'changeemail-oldemail' => 'Indirizzo email attuale:',
+'changeemail-newemail' => 'Nuovo indirizzo email:',
 'changeemail-none' => '(nessuno)',
 'changeemail-password' => 'La password su {{SITENAME}}:',
-'changeemail-submit' => 'Modifica e-mail',
+'changeemail-submit' => 'Modifica email',
 'changeemail-cancel' => 'Annulla',
 'changeemail-throttled' => 'Sono stati effettuati troppi tentativi di accesso.
 Attendi $1 e riprova in seguito.',
@@ -1006,7 +1007,7 @@ Potrebbe essere stata spostata o eliminata mentre si stava visionando la pagina.
 'accmailtext' => "Una password generata casualmente per [[User talk:$1|$1]] è stata inviata a $2. Questa password può essere modificata nella pagina per ''[[Special:ChangePassword|cambiare la password]]'' subito dopo l'accesso.",
 'newarticle' => '(Nuovo)',
 '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 vuoi creare la pagina ora, basta cominciare a scrivere il testo nella casella qui sotto (vedi la [$1 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'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.''",
@@ -1239,8 +1240,10 @@ In quanto amministratore puoi visualizzare questo confronto di versioni; potrebb
 'revdelete-show-file-submit' => 'Sì',
 'revdelete-selected' => "'''{{PLURAL:$2|Versione selezionata|Versioni selezionate}} di [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Evento del registro selezionato|Eventi del registro selezionati}}:'''",
-'revdelete-text' => "'''Le versioni cancellate restano visibili nella cronologia della pagina, mentre il testo contenuto non è accessibile al pubblico.'''
-Gli altri amministratori di {{SITENAME}} potranno accedere comunque ai contenuti nascosti e ripristinarli attraverso questa stessa interfaccia, se non sono state impostate altre limitazioni in fase di installazione del sito.",
+'revdelete-text-text' => 'Le versioni cancellate appariranno ancora nella cronologia della pagina, ma parti del loro contenuto sarà inaccessibile al pubblico.',
+'revdelete-text-file' => 'Le versioni di file cancellati appariranno ancora nella cronologia del file, ma parti del loro contenuto sarà inaccessibile al pubblico.',
+'logdelete-text' => 'Gli eventi cancellati appariranno ancora nei registri, ma parti del loro contenuto sarà inaccessibile al pubblico.',
+'revdelete-text-others' => 'Altri amministratori di {{SITENAME}} saranno ancora in grado di accedere ai contenuti nascosti e potranno ripristinarli nuovamente attraverso questa stessa interfaccia, se non sono state impostate restrizioni aggiuntive.',
 'revdelete-confirm' => 'Per favore conferma che questo è quanto intendi fare, che sei consapevole delle conseguenze, e che stai facendo questo nel rispetto delle [[{{MediaWiki:Policy-url}}|linee guida]].',
 'revdelete-suppress-text' => "La rimozione dovrebbe essere utilizzata '''unicamente''' nei seguenti casi:
 * informazioni potenzialmente diffamatorie
@@ -1414,8 +1417,8 @@ I dettagli possono essere trovati nel [{{fullurl:{{#Special:Log}}/delete|page={{
 'prefs-watchlist-token' => 'Token osservati speciali:',
 'prefs-misc' => 'Varie',
 'prefs-resetpass' => 'Cambia password',
-'prefs-changeemail' => 'Modifica e-mail',
-'prefs-setemail' => 'Imposta un indirizzo e-mail',
+'prefs-changeemail' => 'Modifica email',
+'prefs-setemail' => 'Imposta un indirizzo email',
 'prefs-email' => 'Opzioni email',
 'prefs-rendering' => 'Aspetto',
 'saveprefs' => 'Salva le preferenze',
@@ -1483,10 +1486,10 @@ Il software utilizza questo valore per rivolgersi a te e menzionarti agli altri
 Questa informazione sarà pubblica.",
 'email' => 'Indirizzo email',
 'prefs-help-realname' => "L'indicazione del proprio nome vero è opzionale; se si sceglie di inserirlo, verrà utilizzato per attribuire la paternità dei contenuti inviati.",
-'prefs-help-email' => "L'inserimento del proprio indirizzo e-mail è facoltativo, ma permette di ricevere la propria password qualora venisse dimenticata.",
+'prefs-help-email' => "L'inserimento del proprio indirizzo email è facoltativo, ma permette di ricevere la propria password qualora venisse dimenticata.",
 'prefs-help-email-others' => 'Puoi anche scegliere di lasciare che gli altri ti contattino via posta elettronica con un collegamento dalla tua pagina utente o di discussione.
 Il tuo indirizzo non viene rivelato quando gli altri utenti ti contattano.',
-'prefs-help-email-required' => 'Indirizzo e-mail obbligatorio.',
+'prefs-help-email-required' => "L'indirizzo email è obbligatorio.",
 'prefs-info' => 'Informazioni di base',
 'prefs-i18n' => 'Internazionalizzazione',
 'prefs-signature' => 'Firma',
@@ -1695,7 +1698,7 @@ Il tuo indirizzo non viene rivelato quando gli altri utenti ti contattano.',
 'recentchanges-legend-heading' => "'''Legenda:'''",
 'recentchanges-legend-newpage' => "(vedi anche [[Special:NewPages|l'elenco delle nuove pagine]])",
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "Di seguito sono elencate le modifiche apportate a partire da '''$2''' (fino a '''$1''').",
+'rcnotefrom' => 'Di seguito sono elencate le modifiche apportate a partire da <strong>$2</strong> (mostrate fino a <strong>$1</strong>).',
 'rclistfrom' => 'Mostra le modifiche apportate a partire da $1',
 'rcshowhideminor' => '$1 le modifiche minori',
 'rcshowhideminor-show' => 'Mostra',
@@ -2084,6 +2087,11 @@ Probabilmente vuoi modificare la descrizione presente nella [$2 pagina di descri
 # List redirects
 'listredirects' => 'Elenco di tutti i redirect',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Elenco dei file duplicati',
+'listduplicatedfiles-summary' => 'Questo è un elenco di file, dove la versione più recente di un file è un duplicato della versione più recente di un altro file. Sono considerati solo i file locali.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] ha [[$3|{{PLURAL:$2|un duplicato|$2 duplicati}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Template non utilizzati',
 'unusedtemplatestext' => 'In questa pagina vengono elencate le pagine del namespace {{ns:template}} che non sono incluse in nessuna pagina. Prima di cancellarli è opportuno verificare che i singoli template non abbiano altri collegamenti entranti.',
@@ -2197,20 +2205,20 @@ I redirect <del>cancellati</del> sono stati corretti.',
 'deadendpagestext' => 'Le pagine indicate di seguito sono prive di collegamenti verso altre pagine di {{SITENAME}}.',
 'protectedpages' => 'Pagine protette',
 'protectedpages-indef' => 'Solo protezioni infinite',
-'protectedpages-summary' => "Questa pagina elenca le pagine esistenti che sono attualmente protette. Per un'elenco di titoli protetti dalla creazione, vedi [[{{#special:ProtectedTitles}}]].",
+'protectedpages-summary' => "Questa pagina elenca le pagine esistenti che sono attualmente protette. Per un'elenco di titoli protetti dalla creazione, vedi [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
 'protectedpages-cascade' => 'Solo protezioni ricorsive',
 'protectedpages-noredirect' => 'Nascondi redirect',
 'protectedpagesempty' => 'Al momento non vi sono pagine protette',
 'protectedpages-timestamp' => 'Data e ora',
 'protectedpages-page' => 'Pagina',
 'protectedpages-expiry' => 'Scadenza',
-'protectedpages-performer' => "Protezione dell'utente",
+'protectedpages-performer' => "Protetta dall'utente",
 'protectedpages-params' => 'Parametri di protezione',
 'protectedpages-reason' => 'Motivo',
 'protectedpages-unknown-timestamp' => 'Sconosciuto',
 'protectedpages-unknown-performer' => 'Utente sconosciuto',
 'protectedtitles' => 'Titoli protetti',
-'protectedtitles-summary' => "Questa pagina elenca i titoli che sono attualmente protetti dalla creazione. Per un'elenco di pagine esistenti che sono protette, vedi [[{{#special:ProtectedPages}}]].",
+'protectedtitles-summary' => "Questa pagina elenca i titoli che sono attualmente protetti dalla creazione. Per un'elenco di pagine esistenti che sono protette, vedi [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
 'protectedtitlesempty' => 'Al momento non esistono titoli protetti con i parametri specificati.',
 'listusers' => 'Elenco degli utenti',
 'listusers-editsonly' => 'Mostra solo utenti con dei contributi',
@@ -2482,7 +2490,7 @@ Consultare il log delle $2 per un elenco delle pagine cancellate di recente.',
 'delete-edit-reasonlist' => 'Modifica i motivi di cancellazione',
 'delete-toobig' => 'La cronologia di questa pagina è molto lunga (oltre $1 {{PLURAL:$1|revisione|revisioni}}). La sua cancellazione è stata limitata per evitare di creare accidentalmente dei problemi di funzionamento al database di {{SITENAME}}.',
 'delete-warning-toobig' => 'La cronologia di questa pagina è molto lunga (oltre $1 {{PLURAL:$1|revisione|revisioni}}). La sua cancellazione può creare dei problemi di funzionamento al database di {{SITENAME}}; procedere con cautela.',
-'deleting-backlinks-warning' => "'''Attenzione:''' altre pagine contengono collegamenti o inclusioni alla pagina che stai per cancellare.",
+'deleting-backlinks-warning' => "'''Attenzione:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|altre pagine]] contengono collegamenti o inclusioni alla pagina che stai per cancellare.",
 
 # Rollback
 'rollback' => 'Annulla le modifiche',
@@ -2531,7 +2539,8 @@ Vedi la [[Special:ProtectedPages|lista delle pagine protette]] per l'elenco dell
 Le impostazioni correnti per la pagina sono '''$1''':",
 'protect-locked-access' => "Non si dispone dei permessi necessari per modificare i livelli di protezione della pagina.
 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-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.
+Le modifiche al livello di protezione individuale della pagina, non avranno effetto sulle impostazioni derivanti dalla protezione ricorsiva.',
 'protect-default' => 'Autorizza tutti gli utenti',
 'protect-fallback' => 'Consentito solo agli utenti con permesso "$1"',
 'protect-level-autoconfirmed' => 'Consentito solo agli utenti autoconvalidati',
@@ -2651,6 +2660,7 @@ $1',
 'sp-contributions-blocked-notice' => "Questo utente è attualmente bloccato. L'ultimo elemento del registro dei blocchi è riportato di seguito per informazione:",
 'sp-contributions-blocked-notice-anon' => "Questo indirizzo IP è attualmente bloccato. Di seguito è riportato l'ultimo elemento del registro dei blocchi:",
 'sp-contributions-search' => 'Ricerca contributi',
+'sp-contributions-suppresslog' => 'contributi utente soppressi',
 'sp-contributions-username' => 'Indirizzo IP o nome utente:',
 'sp-contributions-toponly' => 'Mostra solo i contributi che sono le ultime revisioni per la pagina',
 'sp-contributions-newonly' => 'Visualizza solo le modifiche che sono creazioni di pagina',
index a802831..8ae043d 100644 (file)
@@ -14,6 +14,7 @@
  * @author Aotake
  * @author Aphaia
  * @author Broad-Sky
+ * @author Burthsceh
  * @author Chatama
  * @author Chinneeb
  * @author Emk
  * @author Mizusumashi
  * @author Muttley
  * @author Mzm5zbC3
+ * @author Ochaochaocha3
  * @author Ohgi
  * @author Ort43v
  * @author Penn Station
  * @author Reedy
  * @author Schu
  * @author Shirayuki
+ * @author Sonicarts
  * @author Suisui
  * @author VZP10224
  * @author Vigorous action
@@ -406,7 +409,6 @@ $messages = array(
 'tog-ccmeonemails' => '他の利用者に送信したメールの控えを自分にも送信',
 'tog-diffonly' => '差分の下にページ内容を表示しない',
 'tog-showhiddencats' => '隠しカテゴリを表示',
-'tog-noconvertlink' => 'リンクタイトル変換を無効にする',
 'tog-norollbackdiff' => '巻き戻し後の差分を表示しない',
 'tog-useeditwarning' => '変更を保存せずに編集画面から離れようとしたら警告',
 'tog-prefershttps' => 'ログインする際、常に SSL (https) 接続を使用する',
@@ -618,7 +620,6 @@ $1',
 'disclaimers' => '免責事項',
 'disclaimerpage' => 'Project:免責事項',
 'edithelp' => '編集の仕方',
-'helppage' => 'Help:目次',
 'mainpage' => 'メインページ',
 'mainpage-description' => 'メインページ',
 'policy-url' => 'Project:方針',
@@ -822,8 +823,7 @@ $2',
 'gotaccountlink' => 'ログインしてください',
 'userlogin-resetlink' => 'ログイン情報をお忘れですか?',
 'userlogin-resetpassword-link' => 'パスワードをお忘れですか?',
-'helplogin-url' => 'Help:ログイン',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|ログインのヘルプ]]',
+'userlogin-helplink2' => 'ログインについてのヘルプ',
 'userlogin-loggedin' => '{{GENDER:$1|$1}} として既にログインしています。
 別の利用者としてログインするには下のフォームを使用してください。',
 'userlogin-createanother' => '別アカウントを作成',
@@ -926,6 +926,7 @@ $1待ってから再度試してください。',
 'createacct-another-realname-tip' => '本名は省略できます。
 入力すると、その利用者の著作物の帰属表示に使われます。',
 'pt-login' => 'ログイン',
+'pt-login-button' => 'ログイン',
 'pt-createaccount' => 'アカウント作成',
 'pt-userlogout' => 'ログアウト',
 
@@ -958,7 +959,7 @@ $1待ってから再度試してください。',
 'resetpass-temp-password' => '仮パスワード:',
 'resetpass-abort-generic' => '拡張機能により、パスワードの変更は取り消されました。',
 'resetpass-expired' => 'パスワードの有効期限が切れました。ログインするには新しいパスワードを設定してください。',
-'resetpass-expired-soft' => 'ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\81®æ\9c\89å\8a¹æ\9c\9fé\99\90ã\81\8cå\88\87ã\82\8cã\81\9fã\81\9fã\82\81ã\80\81å\86\8d設å®\9aã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8aã\81¾ã\81\99ã\80\82æ\96°ã\81\97ã\81\84ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82\92ä»\8aã\81\99ã\81\90設å®\9aã\81\99ã\82\8bã\81\8bã\80\81ã\81¾ã\81\9fã\81¯ã\82­ã\83£ã\83³ã\82»ã\83«をクリックしてあとで再設定してください。',
+'resetpass-expired-soft' => 'ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\81®æ\9c\89å\8a¹æ\9c\9fé\99\90ã\81\8cå\88\87ã\82\8cã\81\9fã\81\9fã\82\81ã\80\81å\86\8d設å®\9aã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8aã\81¾ã\81\99ã\80\82æ\96°ã\81\97ã\81\84ã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82\92ä»\8aã\81\99ã\81\90設å®\9aã\81\99ã\82\8bã\81\8bã\80\81ã\81¾ã\81\9fã\81¯ã\80\8c{{int:resetpass-submit-cancel}}ã\80\8dをクリックしてあとで再設定してください。',
 
 # Special:PasswordReset
 'passwordreset' => 'パスワードの再設定',
@@ -1111,7 +1112,7 @@ $1または他の[[{{MediaWiki:Grouppage-sysop}}|管理者]]にこのブロッ
 'accmailtext' => '[[User talk:$1|$1]]のために無作為に生成したパスワードを、$2に送信しました。パスワードは、ログインした際に<em>[[Special:ChangePassword|パスワード変更]]</em>ページで変更できます。',
 'newarticle' => '(新)',
 'newarticletext' => 'まだ存在しないページへのリンクをたどりました。
-このページを新規作成するには、ページの内容を以下のボックスに記入してください (詳しくは[[{{MediaWiki:Helppage}}|ヘルプページ]]を参照してください)。
+このページを新規作成するには、ページの内容を以下のボックスに記入してください (詳しくは[$1 ヘルプページ]を参照してください)。
 誤ってこのページにたどり着いた場合には、ブラウザーの<strong>戻る</strong>ボタンで前のページに戻ってください。',
 'anontalkpagetext' => '----
 <em>このページはアカウントをまだ作成していないか使用していない匿名利用者のための議論ページです。</em>
@@ -1364,8 +1365,7 @@ $3 が示した理由: ''$2''",
 'revdelete-show-file-submit' => 'はい',
 'revdelete-selected' => '<strong>[[:$1]] の{{PLURAL:$2|選択された版}}:</strong>',
 'logdelete-selected' => '<strong>{{PLURAL:$1|選択された記録項目}}:</strong>',
-'revdelete-text' => '<strong>削除された版や記録項目は引き続きページの履歴や記録に表示されますが、一般利用者はその内容の一部を取得できなくなります。</strong>
-追加の制限がかけられない限り、{{SITENAME}}の他の管理者は同じインターフェイスを使って非表示の内容の取得や復元ができます。',
+'revdelete-text-others' => '追加の制限を設定しない限り、{{SITENAME}} の他の管理者は非表示コンテンツにまだアクセスでき、この同じインターフェースを通してそれを復元することができます。',
 'revdelete-confirm' => 'この操作を行おうとしていること、その結果を理解していること、[[{{MediaWiki:Policy-url}}|方針]]に従っていること、を確認してください。',
 'revdelete-suppress-text' => '秘匿は、<strong>以下の場合に限って</strong>使用すべきです:
 * 名誉毀損のおそれがある記述
@@ -1502,14 +1502,14 @@ $1',
 'search-file-match' => '(ファイルの内容との一致)',
 'search-suggest' => 'もしかして: $1',
 'search-interwiki-caption' => '姉妹プロジェクト',
-'search-interwiki-default' => '$1の結果:',
+'search-interwiki-default' => '$1ã\81\8bã\82\89ã\81®çµ\90æ\9e\9c:',
 'search-interwiki-more' => '(続き)',
 'search-relatedarticle' => '関連',
 'searcheverything-enable' => 'すべての名前空間を検索',
 'searchrelated' => '関連',
 'searchall' => 'すべて',
 'showingresults' => '<strong>$2</strong> 件目以降の最大 {{PLURAL:$1|<strong>$1</strong> 件の結果}}を表示しています。',
-'showingresultsinrange' => '<strong>$2</strong> 件目以降の最大 {{PLURAL:$1|<strong>$1</strong> 件の結果}}を表示しています。',
+'showingresultsinrange' => '<strong>$2</strong> 件目から<strong>$3</strong> 件目までの範囲内で最大 {{PLURAL:$1|<strong>$1</strong> 件の結果}}を表示しています。',
 'showingresultsnum' => '<strong>$2</strong> 件目以降の {{PLURAL:$3|<strong>$3</strong> 件の結果}}を表示しています。',
 'showingresultsheader' => '「<strong>$4</strong>」の検索結果 {{PLURAL:$5|<strong>$3</strong> 件中の <strong>$1</strong> 件目|<strong>$3</strong> 件中の <strong>$1</strong> 件目から <strong>$2</strong> 件目}}',
 'search-nonefound' => '問い合わせに合致する検索結果はありませんでした。',
@@ -2372,7 +2372,7 @@ contenttype/subtypeの形式で入力してください (例: <code>image/jpeg</
 'deadendpagestext' => '以下のページは、{{SITENAME}}の他のページにリンクしていません。',
 'protectedpages' => '保護されているページ',
 'protectedpages-indef' => '無期限保護のみ',
-'protectedpages-summary' => 'このページでは、現時点で保護されている既存のページを列挙します。新規作成が禁止されているページ名の一覧は、[[{{#special:ProtectedTitles}}]] を参照してください。',
+'protectedpages-summary' => 'このページでは、現時点で保護されている既存のページを列挙します。新規作成が禁止されているページ名の一覧は、[[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]] を参照してください。',
 'protectedpages-cascade' => 'カスケード保護のみ',
 'protectedpages-noredirect' => 'リダイレクトを隠す',
 'protectedpagesempty' => '指定した条件で保護中のページは現在ありません。',
@@ -2380,11 +2380,12 @@ contenttype/subtypeの形式で入力してください (例: <code>image/jpeg</
 'protectedpages-page' => 'ページ',
 'protectedpages-expiry' => '有効期限',
 'protectedpages-performer' => '保護の実行者',
+'protectedpages-params' => '保護のパラメーター',
 'protectedpages-reason' => '理由',
 'protectedpages-unknown-timestamp' => '不明',
 'protectedpages-unknown-performer' => '不明な利用者',
 'protectedtitles' => '作成保護されているページ名',
-'protectedtitles-summary' => 'このページでは、現時点で新規作成が禁止されているページ名を列挙します。保護されている既存のページの一覧は、[[{{#special:ProtectedPages}}]] を参照してください。',
+'protectedtitles-summary' => 'このページでは、現時点で新規作成が禁止されているページ名を列挙します。保護されている既存のページの一覧は、[[{{#special:ProtectedPages}}|{{int:protectedpages}}]] を参照してください。',
 'protectedtitlesempty' => 'これらの引数で現在保護されているページはありません。',
 'listusers' => '利用者一覧',
 'listusers-editsonly' => '投稿記録のある利用者のみを表示',
@@ -2663,7 +2664,7 @@ $UNWATCHURL
 'delete-warning-toobig' => 'このページには、 $1版を超える編集履歴があります。
 削除すると、{{SITENAME}}のデータベース処理に大きな負荷がかかります。
 十分に注意してください。',
-'deleting-backlinks-warning' => "'''警告:''' 削除しようとしているページは、他のページからリンクまたは参照読み込みされています。",
+'deleting-backlinks-warning' => "'''警告:''' 削除しようとしているページは、[[Special:WhatLinksHere/{{FULLPAGENAME}}|他のページ]]からリンクまたは参照読み込みされています。",
 
 # Rollback
 'rollback' => '編集を巻き戻し',
@@ -2719,7 +2720,7 @@ $2による直前の版へ変更されました。',
 'protect-locked-access' => 'アカウントに、ページの保護レベルを変更する権限がありません。
 ページ <strong>$1</strong> の現在の状態は以下の通りです:',
 'protect-cascadeon' => 'このページは現在、カスケード保護が有効になっている以下の{{PLURAL:$1|ページ|ページ群}}から読み込まれているため、保護されています。
\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81®ä¿\9dè­·ã\83¬ã\83\99ã\83«ã\82\92å¤\89æ\9b´ã\81§ã\81\8dã\81¾ã\81\99ã\81\8c、カスケード保護には影響しません。',
\81\93ã\81®ã\83\9aã\83¼ã\82¸ã\81®ä¿\9dè­·ã\83¬ã\83\99ã\83«ã\81®å¤\89æ\9b´ã\81¯、カスケード保護には影響しません。',
 'protect-default' => 'すべての利用者に許可',
 'protect-fallback' => '「$1」権限を持つ利用者のみに許可',
 'protect-level-autoconfirmed' => '自動承認された利用者のみに許可',
@@ -2846,6 +2847,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'このIPアドレスは現在ブロックされています。
 参考のために最近のブロック記録項目を以下に表示します:',
 'sp-contributions-search' => '投稿の検索',
+'sp-contributions-suppresslog' => '利用者の秘匿された投稿',
 'sp-contributions-username' => 'IPアドレスまたは利用者名:',
 'sp-contributions-toponly' => '最新版の編集のみを表示',
 'sp-contributions-newonly' => 'ページ作成を伴う編集のみを表示',
@@ -2942,7 +2944,7 @@ $1',
 'noautoblockblock' => '自動ブロック無効',
 'createaccountblock' => 'アカウント作成の禁止',
 'emailblock' => 'メール送信の禁止',
-'blocklist-nousertalk' => 'è\87ªå\88\86ã\81®ã\83\88ã\83¼ã\82¯ã\83\9aã\83¼ã\82¸ã\81®編集禁止',
+'blocklist-nousertalk' => 'è\87ªå\88\86ã\81®ã\83\88ã\83¼ã\82¯ã\83\9aã\83¼ã\82¸ã\82\82編集禁止',
 'ipblocklist-empty' => 'ブロック一覧は空です。',
 'ipblocklist-no-results' => '指定されたIPアドレスまたは利用者名はブロックされていません。',
 'blocklink' => 'ブロック',
@@ -2957,16 +2959,16 @@ $1 のブロックの理由は「$2」です。',
 参考のため、ブロック記録を以下に示します:',
 'blocklog-showsuppresslog' => 'この利用者は以前にブロックされ、隠されたことがあります。
 参考のため、秘匿記録を以下に示します:',
-'blocklogentry' => 'が [[$1]] を$2ブロックしました。ブロックの詳細: $3',
+'blocklogentry' => 'が [[$1]] を$2ブロックしました。追加事項: $3',
 'reblock-logentry' => 'が [[$1]] のブロック設定を$2に変更しました。ブロックの詳細: $3',
 'blocklogtext' => 'このページは利用者のブロックと解除の記録です。
 自動的にブロックされたIPアドレスは表示されていません。
 現時点で有効なブロックは[[Special:BlockList|ブロックの一覧]]をご覧ください。',
 'unblocklogentry' => '$1のブロックを解除しました',
 'block-log-flags-anononly' => '匿名利用者のみ',
-'block-log-flags-nocreate' => 'アカウント作成のブロック',
+'block-log-flags-nocreate' => 'アカウント作成禁止',
 'block-log-flags-noautoblock' => '自動ブロック無効',
-'block-log-flags-noemail' => 'メール送信のブロック',
+'block-log-flags-noemail' => 'メール送信禁止',
 'block-log-flags-nousertalk' => '自分のトークページの編集禁止',
 'block-log-flags-angry-autoblock' => '拡張自動ブロック有効',
 'block-log-flags-hiddenname' => '利用者名の秘匿',
@@ -3202,7 +3204,7 @@ $2',
 一時フォルダーがありません。',
 'import-parse-failure' => 'XML取り込みの構文解析に失敗しました',
 'import-noarticle' => '取り込むページがありません!',
-'import-nonewrevisions' => 'すべての版は以前に取り込み済みです。',
+'import-nonewrevisions' => '版のインポートはされませんでした(すべての版が以前に取り込み済みだったか、エラーにより飛ばされたため)。',
 'xml-error-string' => '$1、$2 行の $3 文字目 ($4バイト目): $5',
 'import-upload' => 'XMLデータをアップロード',
 'import-token-mismatch' => 'セッションデータを損失しました。
@@ -4377,13 +4379,13 @@ MediaWikiは、有用であることを期待して配布されていますが
 'dberr-cachederror' => 'これは要求されたページをキャッシュした複製であり、古くなっている可能性があります。',
 
 # HTML forms
-'htmlform-invalid-input' => '入力に何らかの問題があります',
+'htmlform-invalid-input' => '入力に何らかの問題があります',
 'htmlform-select-badoption' => '指定した値は有効な選択肢ではありません。',
 'htmlform-int-invalid' => '指定した値は整数ではありません。',
 'htmlform-float-invalid' => '指定した値は数値ではありません。',
-'htmlform-int-toolow' => '指定した値は、最小値 $1 より小さい値です',
-'htmlform-int-toohigh' => '指定した値は、最大値 $1 を超えています',
-'htmlform-required' => 'この値は必須です',
+'htmlform-int-toolow' => '指定した値は、最小値 $1 より小さい値です',
+'htmlform-int-toohigh' => '指定した値は、最大値 $1 を超えています',
+'htmlform-required' => 'この値は必須です',
 'htmlform-submit' => '送信',
 'htmlform-reset' => '変更を取り消す',
 'htmlform-selectorother-other' => 'その他',
index 3f56622..37ccc0e 100644 (file)
@@ -244,7 +244,6 @@ $1',
 'disclaimers' => 'Diskliema',
 'disclaimerpage' => 'Project: Jinaral diskliema',
 'edithelp' => 'Editin elp',
-'helppage' => 'Help: Kantent',
 'mainpage' => 'Mien piej',
 'mainpage-description' => 'Mien piej',
 'policy-url' => 'Project:Palisi',
@@ -576,7 +575,7 @@ Imaita muuv ar diliit wails yu a vyuu di piej.',
 Di paaswod fi dis nyuu akount kiahn chienj a di ''[[Special:ChangePassword|chienj paaswod]]'' piej afta yu lag iin.",
 'newarticle' => '(Nyuu)',
 'newarticletext' => "Yu fala lingk tu piej we no egzis yet.
-Fi kriet di piej, taat taip ina di bax biluo (si di [[{{MediaWiki:Helppage}}|elp piej]] fi muo infamieshan).
+Fi kriet di piej, taat taip ina di bax biluo (si di [$1 elp piej] fi muo infamieshan).
 Ef yu de ya by mistiek, klik yu brouza '''bak''' botn.",
 'anontalkpagetext' => "----''Dis a di diskoshan piej fi ananimos yuuza uu no kriet no akount yet, ar uu no yuuzi.
 Wi dierfuor afi yuuz di nyuumerikal IP ajres fi aidentifai im/ar.
index 41b75c8..1c521fb 100644 (file)
@@ -300,7 +300,6 @@ $1',
 'disclaimers' => 'Pamaidonan',
 'disclaimerpage' => 'Project:Panyangkalan umum',
 'edithelp' => 'Pitulung panyuntingan',
-'helppage' => 'Help:Isi',
 'mainpage' => 'Kaca Utama',
 'mainpage-description' => 'Kaca Utama',
 'policy-url' => 'Project:Kabijakan',
@@ -491,8 +490,6 @@ Cathet yèn sapérangan kaca mungkin isih nampilaké kayata sampéyan isih mlebu
 'gotaccountlink' => 'Mlebu',
 'userlogin-resetlink' => 'Lali rincian mlebu log Sampéyan?',
 'userlogin-resetpassword-link' => 'Sampéyan kélangan tembung sandhi?',
-'helplogin-url' => 'Help:Mlebet log',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pitulung kangge mlebet log]]',
 'userlogin-loggedin' => 'Sampeyan sampun mlebet log dadi {{GENDER:$1|$1}}.
 Gunakna formulir ing ngisor iki kanggo mlebet log dadi panganggo liyane.',
 'userlogin-createanother' => 'Gawé akun anyar',
@@ -743,7 +740,7 @@ Bagéan iki manawa wis dipindhah utawa dibusak nalika panjenengan buka.',
 Tembung sandi kanggo panganggo anyar iki isa diganti ing kaca ''[[Special:ChangePassword|ganti tembung sandi]]'' sawisé mlebu log.",
 'newarticle' => '(Anyar)',
 'newarticletext' => "Katonané panjenengan ngetutaké pranala artikel sing durung ana.
-Manawa kersa manulis artikel iki, manggaa. (Mangga mirsani [[{{MediaWiki:Helppage}}|Pitulung]] kanggo informasi sabanjuré).
+Manawa kersa manulis artikel iki, manggaa. (Mangga mirsani [$1 Pitulung] kanggo informasi sabanjuré).
 Yèn ora sengaja tekan kéné, bisa ngeklik pencètan '''back''' waé ing panjlajah wèb panjenengan.",
 'anontalkpagetext' => "---- ''Iki yaiku kaca dhiskusi sawijining panganggo anonim sing durung kagungan akun utawa ora nganggo akuné, dadi kita keeksa kudu nganggo alamat IP-né kanggo nepangi. Alamat IP kaya mengkéné iki bisa dienggo déning panganggo sing séjé-séjé. Yèn panjenengan pancèn panganggo anonim lan olèh komentar-komentar miring, mangga [[Special:UserLogin/signup|nggawé akun]] utawa [[Special:UserLogin|log mlebu]] supaya ora rancu karo panganggo anonim liyané ing mangsa ngarep.''",
 'noarticletext' => 'Saiki ora ana tèks ing kaca iki. Panjenengan bisa [[Special:Search/{{PAGENAME}}|nglakoni panggolèkan kanggo judhul iki kaca iki]] ing kaca-kaca liyané, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|kaca={{urlencode:{{FULLPAGENAME}}}}}} nggolèki log kagandhèng],
@@ -967,8 +964,6 @@ Sampéyan isih bisa ndelok prabédan iki; rincian bisa ditemokaké nèng [{{full
 'revdelete-show-file-submit' => 'Ya',
 'revdelete-selected' => "'''{{PLURAL:$2|Revisi kapilih|Revisi kapilih}} dari '''$1''''''",
 'logdelete-selected' => "'''{{PLURAL:$1|Log kapilih|Log kapilih}} kanggo:'''",
-'revdelete-text' => "'''Revisi lan tindhakan sing wis kabusak bakal tetep muncul ing kaca versi sadurungé lan log, nanging bagéyan isiné ora bisa diaksès déning publik.'''
-Pangurus {{SITENAME}} liyané bakal tetep bisa ngaksès isi sing kadhelikaké iku lan bisa mbatalaké pambusakan ngliwati antarmuka sing padha, kajaba ana pawatesan liya saka operator situs.",
 'revdelete-confirm' => 'Mangga pesthèkaké yèn Sampéyan pancèn kudu nglakoni iki, yèn Sampéyan ngerti akibaté, lan yèn Sampéyan ngakoni iki cocok karo [[{{MediaWiki:Policy-url}}|kawicakan]].',
 'revdelete-suppress-text' => "Pandhelikan révisi '''mung''' bisa dipigunakaké kanggo kasus ing ngisor:
 * Informasi sing kagolong pitnah
index 670622c..af5ea3f 100644 (file)
@@ -19,6 +19,7 @@
  * @author Malafaya
  * @author Nemo bis
  * @author Nodar Kherkheulidze
+ * @author Otogi
  * @author Reedy
  * @author Sopho
  * @author Temuri rajavi
@@ -205,7 +206,6 @@ $messages = array(
 'tog-ccmeonemails' => 'გამომიგზავნე ელფოსტების ასლები, რომლებსაც მე სხვა მომხმარებლებს ვუგზავნი',
 'tog-diffonly' => 'დამალე გვერდის შიგთავსი ცვლილების ქვევით',
 'tog-showhiddencats' => 'დამალული კატეგორიების ჩვენება',
-'tog-noconvertlink' => 'სათაურის გარდაქმნის ბმულის გამორთვა',
 'tog-norollbackdiff' => 'გაუქმებისას გამოტოვეთ ცვლილებათა განსხვავება',
 'tog-useeditwarning' => 'გამაფრთხილე, როდესაც დავტოვებ რედაქტირებად გვერდს, დაუმახსოვრებელი ცვლილებებით',
 'tog-prefershttps' => 'უსაფრთხო კავშირის მუდამ გამოყენება ავტორიზაციის შემდეგ',
@@ -418,7 +418,6 @@ $1',
 'disclaimers' => 'პასუხისმგებლობის მოხსნა',
 'disclaimerpage' => 'Project:პასუხისმგებლობის უარყოფა',
 'edithelp' => 'დახმარება',
-'helppage' => 'Help:დახმარება',
 'mainpage' => 'მთავარი გვერდი',
 'mainpage-description' => 'მთავარი გვერდი',
 'policy-url' => 'Project:პოლიტიკა',
@@ -614,8 +613,6 @@ $2',
 'gotaccountlink' => 'შესვლა',
 'userlogin-resetlink' => 'ავტორიზაციის მონაცემები დაგავიწყდათ?',
 'userlogin-resetpassword-link' => 'დაგავიწყდათ პაროლი?',
-'helplogin-url' => 'Help:შესვლა',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|დახმარება სისტემაში შესასვლელად]]',
 'userlogin-createanother' => 'სხვა ანგარიშის შექმნა',
 'createacct-join' => 'ქვემოთ მიუთითეთ ინფორმაცია თქვენ შესახებ.',
 'createacct-another-join' => 'ქვემოთ შეიყვანეთ ახალი ანგარიშის ინფორმაცია.',
@@ -877,7 +874,7 @@ $2
 'newarticle' => '(ახალი)',
 'newarticletext' => 'ბმულის მეშვეობით თქვენ მოხვდით გვერდზე, რომელიც ჯერ არ არსებობს.
 გვერდის შესაქმნელად შეიყვანეთ ინფორმაცია ქვემო ფანჯარაში
-(იხ. [[{{MediaWiki:Helppage}}|დახმარების გვერდი]] დამატებითი ინფორმაციისთვის).
+(იხ. [$1 დახმარების გვერდი] დამატებითი ინფორმაციისთვის).
 თუ ამ გვერდზე შეცდომით მოხვდით, დაბრუნდით უკან თქვენი ბრაუზერის მეშვეობით.',
 'anontalkpagetext' => "----''ეს არის ანონიმური მომხმარებლის განხილვის გვერდი, რომელსაც ანგარიში ჯერ არ შეუქმნია ან არ იყენებს მას.
 
@@ -940,7 +937,7 @@ $2
 ზედა ტექსტური ველი შეიცავს გვერდის შიგთავსს მისი ამჟამინდელი სახით.
 თქვენი ცვლილებები ნაჩვენებია ქვედა ტექსტურ ველში.
 თქვენ მოგიწევთ თქვენი ცვლილებების შერწყმა არსებულ ტექსტთან.
-'''მხოლოდ''' ზედა ველში არსებული ტექსტი იქნება შენახული, როდესაც \"{{int:savearticle}}\" დააჭერთ.",
+'''მხოლოდ''' ზედა ველში არსებული ტექსტი იქნება შენახული, როდესაც „{{int:savearticle}}“ დააჭერთ.",
 'yourtext' => 'თქვენი ტექსტი',
 'storedversion' => 'შენახული ვერსია',
 'nonunicodebrowser' => "'''გაფრთხილება: თქვენი ბრაუზერი უნიკოდთან თავსებადი არ არის. ჩვენ ვცდილობთ ამ პრობლემის გადაჭრას, რათა თქვენ შეძლოთ უსაფრთხოდ შეიტანოთ ცვლილებები გვერდებზე: არა-ASCII ნიშნები რედაქტირების ფანჯარაში გამოჩნდება როგორც ჰექსადეციმალური კოდები.'''",
@@ -1114,8 +1111,6 @@ $3 -ემ ამგვარი ახსნა : ''$2''",
 'revdelete-show-file-submit' => 'ჰო',
 'revdelete-selected' => "'''[[:$1]]-ის {{PLURAL:$2|მონიშნული ცვლილება|მონიშნული ცვლილებები}}:'''",
 'logdelete-selected' => "'''ჟურნალის {{PLURAL:$1|არჩეული ჩანაწერი|არჩეული ჩანაწერები}}:'''",
-'revdelete-text' => "'''გვერდებისა და მოქმედებების წაშლილი ნაწილები დარჩება ისტორიაში და ჟურნალებში, მაგრამ მათ ნაწილს ვერ ნახავენ ჩვეულებრივი მომხმარებლები.'''
-პროექტის ადმინისტრატორებს ექნებათ შესაძლებლობა {{SITENAME}}ში დაინახონ ღია და არწაშლილი ნაწილი, და შეძლებენ აღადგინონ იგივე ინტერფეისის მეშვეობით, გარდა იმ შემთხვევებისა, როდესაც დამატებითი შეზღუდვა მოქმედებს.",
 'revdelete-confirm' => 'გთხოვთ დაადასტუროთ, რომ გსურთ ქმედების განხორციელება. ასევე ვიმედოვნებთ, რომ ყველაფერს აკეთებთ  [[{{MediaWiki:Policy-url}}|წესებთან შესაბამისობაში]].',
 'revdelete-suppress-text' => "დამალვა შეიძლება განხორციელდეს '''მხოლოდ''' შემდეგ შემთხვევებში:
 * პოტენციურად ცილისმწამებლური ინფორმაცია
@@ -1215,7 +1210,7 @@ $1",
 
 # Search results
 'searchresults' => 'ძიების შედეგები',
-'searchresults-title' => 'ძიების შედეგები "$1"',
+'searchresults-title' => 'ძიების შედეგები „$1“',
 'toomanymatches' => 'ნაპოვნია ძალიან ბევრი შესაბამისობა, ეცადეთ სხვა მოთხოვნა',
 'titlematches' => 'სტატიის სათაური შეესაბამება',
 'textmatches' => 'გვერდის ტექსტი შესაბამისია',
@@ -4061,11 +4056,18 @@ MediaWiki ვრცელდება იმ იმედით, რომ ი
 'rotate-comment' => 'სურათი მოტრიალებულია $1 {{PLURAL:$1|გრადუსით|გრადუსით}} საათის ისრის მიმართულებით',
 
 # Limit report
+'limitreport-title' => 'მონაცემების პროფილური ანალიზატორი:',
+'limitreport-cputime' => 'პროცესორის დროის გამოყენება',
 'limitreport-cputime-value' => '$1 {{PLURAL:$1|წამი}}',
 'limitreport-walltime' => 'რეალურ დროში გამოყენება',
 'limitreport-walltime-value' => '$1 {{PLURAL:$1|წამი}}',
+'limitreport-ppvisitednodes' => 'პრეპროცესორის მიერ მონახულებადი კვანძების რაოდენობა',
+'limitreport-postexpandincludesize' => 'ღია ჩართვების ზომა',
 'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|ბაიტი}}',
+'limitreport-templateargumentsize' => 'თარგის არგუმენტის ზომა',
 'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|ბაიტი}}',
+'limitreport-expansiondepth' => 'გაფართოების უდიდესი სიღრმე',
+'limitreport-expensivefunctioncount' => 'ანალიზატორის „ძვირი“ ფუნქციის რაოდენობა',
 
 # Special:ExpandTemplates
 'expandtemplates' => 'გაშლილი თარგები',
index 2824512..04d542e 100644 (file)
@@ -360,7 +360,6 @@ $messages = array(
 'disclaimers' => 'Juwapkershilikten bas tartıw',
 'disclaimerpage' => 'Project:Juwapkershilikten bas tartıw',
 'edithelp' => "O'zgertiw anıqlaması",
-'helppage' => 'Help:Mazmunı',
 'mainpage' => 'Bas bet',
 'mainpage-description' => 'Bas bet',
 'policy-url' => "Project:Qag'ıydalar",
@@ -642,7 +641,7 @@ Siz bul betti ko'rip atırg'an waqtın'ızda ol ko'shirilgen yamasa o'shirilgen
 Saytqa kirgenin'izden keyin, bul akkaunt parolin ''[[Special:ChangePassword|change password]]'' betinde o'zgertiwge boladı.",
 'newarticle' => '(Taza)',
 'newarticletext' => "Siz ele jaratılmag'an betke siltew arqalı o'ttin'iz.
-Betti jaratıw ushın to'mendegi aynada tekstin'izdi kiritin' (qosımsha mag'lıwmat ushın [[{{MediaWiki:Helppage}}|anıqlama betin]] qaran').
+Betti jaratıw ushın to'mendegi aynada tekstin'izdi kiritin' (qosımsha mag'lıwmat ushın [$1 anıqlama betin] qaran').
 Eger bul jerge aljasıp o'tken bolsan'ız, brauzerin'izdin' «Arqag'a» knopkasın basın'.",
 'noarticletext' => "Ha'zirgi waqıtta bul bette hesh qanday mag'lıwmat joq.
 Basqa betlerden usı bet atamasın [[Special:Search/{{PAGENAME}}|izlep ko'riwin'izge]],
index 50561cc..c454a1e 100644 (file)
@@ -291,7 +291,6 @@ $1',
 'disclaimers' => 'Iɣtalen',
 'disclaimerpage' => 'Project:Iɣtalen',
 'edithelp' => 'Tallat deg ubeddel',
-'helppage' => 'Help:Agbur',
 'mainpage' => 'Asebter amenzawi',
 'mainpage-description' => 'Asebter amenzawi',
 'policy-url' => 'Project:Ilugan',
@@ -482,8 +481,6 @@ Tzemreḍ ad beddeleḍ {{SITENAME}} [[Special:Preferences|ismenyifen]] inek(em)
 'gotaccountlink' => 'Kcem',
 'userlogin-resetlink' => 'Ettuḍ tilɣa n tuqqna ?',
 'userlogin-resetpassword-link' => 'Ettuḍ awal n uɛaddi ?',
-'helplogin-url' => 'Help:Tuqqna',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Tallalt i tuqqna]]',
 'userlogin-loggedin' => 'Teqqneḍ yakan am {{GENDER:$1|$1}}. Seqdec tiferkit ddaw-agi iwakken ad teqqneḍ s umiḍan nniḍen.',
 'userlogin-createanother' => 'Snulfud amiḍan nniḍen',
 'createacct-join' => 'Sekcem tilɣa inek(m) ddaw-agi.',
@@ -728,7 +725,7 @@ Yezmer ad yetbeddel ɣef usebtar [[Special:ChangePassword|Abeddel n awal uɛddi]
 'newarticle' => '(Amaynut)',
 'newarticletext' => 'Tḍefreḍ azday ɣer usebter mazal ur yettwaxleq ara.
 Akken ad txelqeḍ asebter-nni, aru deg tenkult i tella deg ukessar
-(ẓer [[{{MediaWiki:Helppage}}|asebter n tallat]] akken ad tessneḍ kter).
+(ẓer [$1 asebter n tallat] akken ad tessneḍ kter).
 Ma tɣelṭeḍ, wekki kan ɣef tqeffalt "Back/Précédent" n browser/explorateur inek.',
 'anontalkpagetext' => "---- ''Wagi d asebter n umyennan n useqdac adrig, mazal ur d-yesnufa ara amiḍan. I taɣẓint agi, ilaq an seqdec tansa IP ines iwakken at-id n sulu. Yiwet tansa IP tezmer at tettuseqdac sɣur aṭṭas n iseqdacen. Lukan ula d kečč aqla-k amseqdac adrig dɣa ur tebɣiḍ ara ad tettwabcreḍ izen am wigini, ihi [[Special:UserLogin/signup|snulfud amiḍan]] naɣ [[Special:UserLogin|qqened]] iwakken sya d asawen ur t-illint ara uguren n usulu.''",
 'noarticletext' => 'Ulac aḍris deg usebter-agi, tzemreḍ ad [[Special:Search/{{PAGENAME}}|tnadiḍ ɣef wezwel n usebter-agi]] deg isebtar wiyaḍ neɣ [{{fullurl:{{FULLPAGENAME}}|action=edit}} tettbeddileḍ asebter-agi].',
@@ -961,8 +958,6 @@ Tzemreḍ att ẓṛeḍ ; tilɣa llant deg [{{fullurl:{{#Special:Log}}/delete|p
 'revdelete-show-file-submit' => 'Ih',
 'revdelete-selected' => "'''{{PLURAL:$2|Tasiwelt tettwafren|Tisiwal ttwafernen}} n [[:$1]]'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Tamirt n uɣmis tettwafren|Isallen n uɣmis ttwafernen}}:'''",
-'revdelete-text' => 'Ileqman d tidyanin yettumḥan ad qqimen deg umezruy n usebter dɣa deg iɣmisen, maca agbur nsen ur i sɛu ara tuffart i uzayez."
-Inedbalen wiyaḍ deg {{SITENAME}} zemren ad ẓṛen imuren i yettwafren u zemren a ten-mḥan, ḥaca ma llan icekkilen.',
 'revdelete-confirm' => 'Sergeg ma tebɣiḍ ad xedmeḍ tigawt agi, fehmeḍ inalkamen, dɣa temtawiḍ s [[{{MediaWiki:Policy-url}}|ilugan]].',
 'revdelete-suppress-text' => "Ilaq tukksa att illi \"kan\" deg tijṛa agi :
 * Tilɣa ahat tinergamin
@@ -1550,6 +1545,7 @@ Ilaq ad ssutereḍ i yiwen aterras ma yezmer ad yessenqed aɣmis n ufaylu agi ye
 'uploaddisabledtext' => 'Azen n ifuyla yettwakkes deg wiki agi.',
 'php-uploaddisabledtext' => 'Taktert n ifuyla tensa deg PHP. Selken taxtiṛit n tawila  file_uploads.',
 'uploadscripted' => 'Afaylu-yagi yesɛa angal n HTML/script i yexdem agula deg browser/explorateur.',
+'uploadinvalidxml' => 'XML deg ufaylu yekteren ur d-yetwesleḍ ara.',
 'uploadvirus' => 'Afaylu-nni yesɛa anfafad asenselkim (virus)! Ẓer kter: $1',
 'uploadjava' => 'Wagi d afaylu ZIP yesɛan afaylu Java .class.
 Azdam n ifuyla Java ur yesɛa ara turagt, acku zemren ad zizdewen ikyafen n taɣellist.',
@@ -3868,6 +3864,4 @@ Yetexddem aderrec n akkw ayen yella yesegrer s <nowiki>'''{{ }}'''</nowiki>.",
 'expand_templates_generate_rawhtml' => 'Beqqeḍ HTML aneṣli',
 'expand_templates_preview' => 'Azaraskan',
 
-# Unknown messages
-'uploadinvalidxml' => 'XML deg ufaylu yekteren ur d-yetwesleḍ ara.',
 );
index f308bb9..5226e88 100644 (file)
@@ -285,7 +285,6 @@ $1',
 'disclaimers' => 'Жэуап Ӏыгъыныр зыщхьэщыхын',
 'disclaimerpage' => 'Project:Пщэрылъу къэмыштэн',
 'edithelp' => 'Гъэтэрэзыным и щӀэупщӀэ',
-'helppage' => 'Help:ДэӀэпыкъуэгъу',
 'mainpage' => 'НапэкӀуэцӀ нэхъыщхьэ',
 'mainpage-description' => 'НапэкӀуэцӀ нэхъыщхьэ',
 'policy-url' => 'Project:Хабзэхэр',
@@ -608,7 +607,7 @@ $2',
 Системэм регистрациэ быщӀа яуж ''[[Special:ChangePassword|паролыр зэпхъуэкӀыфыну]].''",
 'newarticle' => '(ЩIэуэ)',
 'newarticletext' => 'НапэкӀуэцӀ иджыри щымыӀэм утехуащ техьэпӀэмкэ.
-Ар быщӀын щхьэкӀэ, и щӀагъым щӀэт игъувапӀэм тхылъ итхэ (еплъ [[{{MediaWiki:Helppage}}|щӀэупщӀэгъуэхэм я напэкӀуэцӀ]]).
+Ар быщӀын щхьэкӀэ, и щӀагъым щӀэт игъувапӀэм тхылъ итхэ (еплъ [$1 щӀэупщӀэгъуэхэм я напэкӀуэцӀ]).
 ГъуэщэгъуэкӀэ мыбым утехуамэ, уи браузерым гъэзэжыгъуэ иӀэм текъузи зэфэкащ.',
 'anontalkpagetext' => "----''Мы напэкӀуэцӀ тепсэлъыхьыгъуэр аноним цӀыхухэтым ей, аккаунт зымыщӀам иэ къэзмыгъэсэбэпым.
 Абым щхьэкӀэ IP-адресымкӀэ идентификациэ иратыр.
@@ -823,8 +822,6 @@ $3 ар зтеухуауэ къитхыр: ''$2''",
 'revdelete-show-file-submit' => 'НытӀэ',
 'revdelete-selected' => "'''{{PLURAL:$2|Версиэ хэхар|Версиэ хэхахэр}} напэкӀуэцӀ [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Тхылъ хэхар|Тхылъ хэхахэр}} тхыгъэм:'''",
-'revdelete-text' => 'НапэкӀуэцӀхэм я версиэ ихахэмрэ хъыбар щекӀуэкӀахэмрэ напэкӀуэцӀым и тхыдэмрэ тхыгъэмрэ гъэлъэгъуауэ щытынущ, абыхэм я лъэныкъуэгъу гуэрэхэр цӀыхухэтхэм щхьэкӀэ теубыдауэ щытынущ.
-Тхьэмадэ {{SITENAME}} проэктым щыщхэм пӀалъэ яӀэнущ теубыда тхыгъэхэм екӀуэлъэн, а интерфейсымкӀи зэфӀагъувэжын, теубыдыгъэ нэхъ ину ятемылъу щымыт къуэдеймэ.',
 'revdelete-confirm' => 'Арэзыгъуэ ет, быщӀэр зэр уи гугъэр, къыхэкӀынур къызэрыбгурыӀуэр, быщӀу хъуамкӀэ [[{{MediaWiki:Policy-url}}|хабзэм]] узэремыбакъуэр.',
 'revdelete-suppress-text' => "ГъэпшкӀугъэр щекӀуэкӀыфыну '''къуэдер''' мыбым хуэдэм:
 
index a1af2c8..0ea620c 100644 (file)
@@ -249,7 +249,6 @@ $1',
 'disclaimers' => 'اعلانات',
 'disclaimerpage' => 'Project:عام کھوار اعلان',
 'edithelp' => 'مدد براۓ ترمیم',
-'helppage' => 'Help:فھرست',
 'mainpage' => 'آویلو صفحہ',
 'mainpage-description' => 'سرورق',
 'policy-url' => 'Project:حکمتِ عملی',
@@ -517,7 +516,7 @@ $1 (صفحہ موجود نیکی)',
 'accmailtitle' => 'کلمہ شناخت(پاسورڈ) انځینو ھوی',
 'newarticle' => '(نوغ)',
 'newarticletext' => "↓تو ای ھس صفحو ربطو پیرویو کوری اسوس کہ ھسے ھنیسے موجود نیکی.
-ھیہ صفحہو تخلیق کوریکو بچے درج ذیل خانا متنو درج کورے (مزید معلوماتو بچے [[{{MediaWiki:Helppage}}|صفحۂ معاونت]] ملاحظہ کورے).
+ھیہ صفحہو تخلیق کوریکو بچے درج ذیل خانا متنو درج کورے (مزید معلوماتو بچے [$1 صفحۂ معاونت] ملاحظہ کورے).
 اگر تو ھیا غلطیو سورا کہ گیتی اسوس تھے اچھو صفحا آچی بیکو بچے تان کمپیوٹرا '''back''' بٹنو ٹک کورے.",
 'noarticletext' => ' ھیہ صفحہا فی الحال کیہ متن موجود نیکی.
 تو دیگر صفحاتا [[Special:Search/{{PAGENAME}}|ھیہ صفحہو عنوانو بچے تلاش کوریکو بوس]]، <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} متعلقہ نوشتہ جات تلاش کوریکو بوس],
index 4908dca..443d951 100644 (file)
@@ -285,7 +285,6 @@ $1',
 'disclaimers' => 'Diwanê mesulêti',
 'disclaimerpage' => 'Project:Diwanê mesuliyetê bıngey',
 'edithelp' => 'Phoştdariya vurnaişi',
-'helppage' => 'Help:Tedeestey',
 'mainpage' => 'Pela Seri',
 'mainpage-description' => 'Pela seri',
 'policy-url' => 'Project:Poliça',
@@ -539,7 +538,7 @@ Sırewo ke to qaytê pele kerdêne, beno ke no kırışiyo ya ki esteriyo.',
 'accmailtitle' => 'Parola rusniye.',
 'newarticle' => '(Newe)',
 'newarticletext' => "To jü girê teqna be jü pela ke hona çina.
-Serba afernaena pele qutiya metnê cêrêni bıgurêne. Serba melumati qaytê [[{{MediaWiki:Helppage}}|pela phoşti]] ke.
+Serba afernaena pele qutiya metnê cêrêni bıgurêne. Serba melumati qaytê [$1 pela phoşti] ke.
 Eke be ğeletêni ama ita, wa gozaga '''peyser'''i programê ho de bıteqne.",
 'noarticletext' => 'Na pele de hona thowa çino.
 Tı şikina zerrê pelunê binu de [[Special:Search/{{PAGENAME}}|serba sernamê na pele cı feteliye]],
@@ -651,8 +650,6 @@ Sıma be idarekerênia ho ra şikinê hona [$1 nê ferqi bıvênê], eke wazenê
 'revdelete-show-file-confirm' => 'Sıma eminê ke wazenê çımraviarnaena esterıtiya na dosya "<nowiki>$1</nowiki>" $2 ra $3 de bıvênê?',
 'revdelete-show-file-submit' => 'Heya',
 'revdelete-selected' => "'''[[:$1]]: ra {{PLURAL:$2|Çımraviarnaiso weçinıte|Çımraviarnaisê weçinıtey}}'''",
-'revdelete-text' => "Çımraviarnaişê esterıtey u kerdişi hewna tarixê pele u qeydan de asenê, hama parçê zerrekê dine areze nêbenê.'''
-Eke şertê ilawekerdey ke niyê ro, idarekerê bini {{SITENAME}} de nêşikinê hona bıresê zerrekê nımıtey u şikinê ey oncia na eyni mianpele ra peyser biarê.",
 'revdelete-suppress-text' => "Wedardene gunê '''teyna''' nê halunê cêrênu de bıguriyo:
 * Melumatê kıfırio mıhtemel
 * Melumatê şexsio bêmınasıb
@@ -664,7 +661,7 @@ Eke şertê ilawekerdey ke niyê ro, idarekerê bini {{SITENAME}} de nêşikinê
 'revdelete-hide-comment' => 'Xulasa measne',
 'revdelete-hide-user' => 'Namê karberiê/Adresa IPya vurnaoği bınımne',
 'revdelete-radio-same' => '(mevurne)',
-'revdelete-radio-set' => 'Heya',
+'revdelete-radio-set' => 'Nımıte',
 'revdelete-radio-unset' => 'Nê',
 'revdelete-log' => 'Sebeb:',
 'revdelete-submit' => '{{PLURAL:$1|Çımraviarnaiso ke çiniyo|Çımraviarnaisê ke çiniyê}} we tetbiq ke',
index 6bfe265..ab53847 100644 (file)
@@ -579,7 +579,6 @@ $messages = array(
 'disclaimers' => 'جاۋاپكەرشىلىكتەن باس تارتۋ',
 'disclaimerpage' => 'Project:جاۋاپكەرشىلىكتەن باس تارتۋ',
 'edithelp' => 'وندەۋ انىقتاماسى',
-'helppage' => 'Help:مازمۇنى',
 'mainpage' => 'باستى بەت',
 'mainpage-description' => 'باستى بەت',
 'policy-url' => 'Project:ەرەجەلەر',
@@ -863,7 +862,7 @@ IP مەكەنجايىڭىز بۇل بەتتىڭ تۇزەتۋ تارىيحىند
 'accmailtext' => '$2 جايىنا «$1» قۇپىييا ٴسوزى جونەلتىلدى.',
 'newarticle' => '(جاڭا)',
 'newarticletext' => 'سىلتەمەگە ەرىپ ٴالى باستالماعان بەتكە كەلىپسىز.
-بەتتى باستاۋ ٴۇشىن, تومەندەگى كىرىستىرۋ ورنىندا ٴماتىنىڭىزدى تەرىڭىز (كوبىرەك اقپارات ٴۇشىن [[{{MediaWiki:Helppage}}|انىقتاما بەتىن]] قاراڭىز).
+بەتتى باستاۋ ٴۇشىن, تومەندەگى كىرىستىرۋ ورنىندا ٴماتىنىڭىزدى تەرىڭىز (كوبىرەك اقپارات ٴۇشىن [$1 انىقتاما بەتىن] قاراڭىز).
 ەگەر جاڭىلعاننان وسىندا كەلگەن بولساڭىز, شولعىشىڭىز «ارتقا» دەگەن باتىرماسىن نۇقىڭىز.',
 'anontalkpagetext' => "----''بۇل تىركەلگىسىز (نەمەسە تىركەلگىسىن قولدانباعان) قاتىسۋشى تالقىلاۋ بەتى. وسى قاتىسۋشىنى ٴبىز تەك ساندىق IP مەكەنجايىمەن تەڭدەستىرەمىز.
 وسىنداي IP مەكەنجاي بىرنەشە قاتىسۋشىعا ورتاقتاستىرىلعان بولۋى مۇمكىن.
@@ -1011,9 +1010,6 @@ $3 كەلتىرىلگەن سەبەبى: ''$2''",
 كەلتىرىلگەن تۇزەتۋ جوق, نە اعىمدىق تۇزەتۋدى جاسىرۋ ٴۇشىن ارەكەتتەنىپ كوردىڭىز.',
 'revdelete-selected' => "'''[[:$1]] دەگەننىڭ بولەكتەنگەن {{PLURAL:$2|تۇزەتۋى|تۇزەتۋلەرى}}:'''",
 'logdelete-selected' => "'''بولەكتەنگەن {{PLURAL:$1|جۋرنال وقىيعاسى|جۋرنال وقىيعالارى}}:'''",
-'revdelete-text' => "'''جويىلعان تۇزەتۋلەر مەن وقىيعالاردى ٴالى دە بەت تارىيحىندا جانە جۋرنالداردا تابۋعا بولادى, بىراق ولاردىڭ ماعلۇمات بولشەكتەرى بارشاعا قاتىنالمايدى.'''
-
-{{SITENAME}} جوباسىنىڭ باسقا اكىمشىلەرى جاسىرىن ماعلۇماتقا قاتىناي الادى, جانە قوسىمشا تىيىمدار قويىلعانشا دەيىن, وسى تىلدەسۋ ارقىلى جويۋدى بولدىرماۋى مۇمكىن.",
 'revdelete-legend' => 'كورىنىس تىيىمدارىن قويۋ:',
 'revdelete-hide-text' => 'تۇزەتۋ ٴماتىنىن جاسىر',
 'revdelete-hide-image' => 'فايل ماعلۇماتىن جاسىر',
index 555af82..1e9dee2 100644 (file)
@@ -366,7 +366,7 @@ $messages = array(
 'tog-hidepatrolled' => 'Тексерілген өңдеулерді соңғы өзгерістер тізімінде көрсетпеу',
 'tog-newpageshidepatrolled' => 'Тексерілген беттерді жаңа беттер тізімінде көрсетпеу',
 'tog-extendwatchlist' => 'Бақылау тізімді ұлғайту (барлық жарамды өзгерістерді көрсету)',
-'tog-usenewrc' => 'Ð\9aеңейÑ\82Ñ\96лген Ð¶Ñ\83Ñ\8bÒ\9bÑ\82аÒ\93Ñ\8b Ó©Ð·Ð³ÐµÑ\80Ñ\96Ñ\81Ñ\82еÑ\80 (JavaScript)',
+'tog-usenewrc' => 'Ð\96Ñ\83Ñ\8bÒ\9bÑ\82аÒ\93Ñ\8b Ó©Ð·Ð³ÐµÑ\80Ñ\96Ñ\81Ñ\82еÑ\80 Ð¶Ó\99не Ð±Ð°Ò\9bÑ\8bлаÑ\83 Ñ\82Ñ\96зÑ\96мÑ\96нде Ð±ÐµÑ\82Ñ\96 Ð±Ð¾Ð¹Ñ\8bнÑ\88а Ó©Ð·Ð³ÐµÑ\80Ñ\96Ñ\81Ñ\82еÑ\80дÑ\96 Ñ\82опÑ\82аÑ\83',
 'tog-numberheadings' => 'Мазмұн тақырыптарын автоматты нөмірлеу',
 'tog-showtoolbar' => 'Өңдеу құралдарын көрсету',
 'tog-editondblclick' => 'Қос шерту арқылы бетті өңдеу',
@@ -388,18 +388,18 @@ $messages = array(
 'tog-fancysig' => 'Қолтаңбаны уикимәтін ретінде қарастыру (автоматты сілтеме қойылмайды)',
 'tog-uselivepreview' => 'Тура қарап шығуды қолдану (сынақтық)',
 'tog-forceeditsummary' => 'Өңдеменің қысқаша мазмұндамасы бос қалғанда маған ескерт',
-'tog-watchlisthideown' => 'Өңдемелерімді бақылау тізімінен жасыр',
-'tog-watchlisthidebots' => 'Бот өңдемелерін бақылау тізімінен жасыр',
+'tog-watchlisthideown' => 'Өңдемелерімді бақылау тізімінен жасыру',
+'tog-watchlisthidebots' => 'Бот өңдемелерін бақылау тізімінен жасыру',
 'tog-watchlisthideminor' => 'Шағын өңдемелерді бақылау тізімінде көрсетпеу',
 'tog-watchlisthideliu' => 'Бақылау тізіміндегі қатысушылардың өңдеулерін көрсетпеу',
 'tog-watchlisthideanons' => 'Бақылау тізіміндегі жасырын қатысушылардың өңдеулерін көрсетпеу',
 'tog-watchlisthidepatrolled' => 'Бақылау тізімінде тексерілген өңдеулерді көрсетпеу',
 'tog-ccmeonemails' => 'Басқа қатысушыға жіберген хатымның көшірмесін маған да жөнелт',
-'tog-diffonly' => 'Ð\90йÑ\8bÑ\80ма Ð°Ñ\81Ñ\82Ñ\8bнда Ð±ÐµÑ\82 Ð¼Ð°Ò\93лұмаÑ\82Ñ\8bн ÐºÓ©Ñ\80Ñ\81еÑ\82пе',
+'tog-diffonly' => 'Ð\9dÒ±Ñ\81Ò\9bалаÑ\80 Ð°Ð¹Ñ\8bÑ\80маÑ\88Ñ\8bлÑ\8bÒ\9bÑ\82аÑ\80Ñ\8bнÑ\8bÒ£ Ð°Ñ\81Ñ\82Ñ\8bнда Ð±ÐµÑ\82 Ð¼Ð°Ò\93лұмаÑ\82Ñ\8bн ÐºÓ©Ñ\80Ñ\81еÑ\82пеÑ\83',
 'tog-showhiddencats' => 'Жасырын санаттарды көрсету',
-'tog-noconvertlink' => 'Сілтеме атауларын ауыстырма',
 'tog-norollbackdiff' => 'Шегіндіруден кейін нұсқалардың айырмашылығын көрсетпеу',
 'tog-useeditwarning' => 'Өңдемесі сақталмаған парақшадан шығар кезде ескерту',
+'tog-prefershttps' => 'Кірген кезде қауіпсіз байланысуды әрқашан қолдану',
 
 'underline-always' => 'Әрқашан',
 'underline-never' => 'Ешқашан',
@@ -525,7 +525,7 @@ $messages = array(
 'vector-action-unprotect' => 'Қорғанысты өзгерту',
 'vector-view-create' => 'Бастау',
 'vector-view-edit' => 'Өңдеу',
-'vector-view-history' => 'Тарихын қарау',
+'vector-view-history' => 'Өңделу тарихы',
 'vector-view-view' => 'Оқу',
 'vector-view-viewsource' => 'Қайнарын қарау',
 'actions' => 'Әрекеттер',
@@ -582,7 +582,7 @@ $messages = array(
 'viewtalkpage' => 'Талқылау бетін қарау',
 'otherlanguages' => 'Басқа тілдерде',
 'redirectedfrom' => '($1 бетінен бағытталған)',
-'redirectpagesub' => 'Ð\90йдаÑ\82у беті',
+'redirectpagesub' => 'Ð\91аÒ\93Ñ\8bÑ\82Ñ\82ау беті',
 'lastmodifiedat' => 'Бұл беттің соңғы өзгертілген кезі: $2, $1.',
 'viewcount' => 'Бұл бет {{PLURAL:$1|бір рет|$1 уақыт}} қатыналған.',
 'protectedpage' => 'Қорғалған бет',
@@ -608,7 +608,6 @@ $1',
 'disclaimers' => 'Жауапкершіліктен бас тарту',
 'disclaimerpage' => 'Project:Жауапкершіліктен бас тарту',
 'edithelp' => 'Өндеу анықтамасы',
-'helppage' => 'Help:Мазмұны',
 'mainpage' => 'Басты бет',
 'mainpage-description' => 'Басты бет',
 'policy-url' => 'Project:Ережелер',
@@ -734,8 +733,8 @@ $1',
 'protectedpagetext' => 'Бұл бет өңдеу немесе басқа өзгерістер енгізілмес үшін қорғалған.',
 'viewsourcetext' => 'Бұл беттің қайнарын қарауыңызға және көшіріп алуыңызға болады:',
 'viewyourtext' => 'Осы бет арқылы "өзіңіз жасаған өңдеулердің" бастапқы мәтінін көруге және көшіруге мүмкіндігіңіз болады.',
-'protectedinterface' => 'Бұл MediaWiki-дің [[Уикипедия:Интерфейсті аудару|жүйе хабарламасы]], оны тек жоба [[Уикипедия:Әкімшілер|әкімшілер]] ғана өзгерте алады. 
-Кейбір хабарламалар [[translatewiki:{{FULLPAGENAME}}/qqq|құжаттамада]] [[mw:Manual:Interface/{{PAGENAME}}|бар]].',
+'protectedinterface' => 'This page provides interface text for the software on this wiki, and is protected to prevent abuse.
+To add or change translations for all wikis, please use [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.',
 'editinginterface' => "'''Ескерту:''' Бағдарламалық жасақтаманың тілдесу мәтінін жетістіретін бетін өңдеп жатырсыз.
 Бұл беттің өзгертуі басқа қатысушыларға пайдаланушылық тілдесуі қалай көрінетіне әсер етеді.
 Барлық уикилер үшін аудармаларды өзгерту немесе қосу үшін [//translatewiki.net/ translatewiki.net] МедиаУики жерлестіру жобасын пайдаланыңыз.",
@@ -805,8 +804,7 @@ $2',
 'gotaccountlink' => 'Кіріңіз',
 'userlogin-resetlink' => 'Қатысушы атын не құпия сөзді ұмыттыңыз ба?',
 'userlogin-resetpassword-link' => 'Құпия сөздіңізді ұмыттыңыз ба?',
-'helplogin-url' => 'Help:Тіркелу',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Тіркелуге көмек]]',
+'userlogin-helplink2' => 'Кіруге көмек',
 'userlogin-loggedin' => '{{GENDER:$1|$1}} ретінде әлдеқашан кіргенсіз.
 Төмендегі пішінді басқа қатысушы кіруі ретінде қолданыңыз.',
 'userlogin-createanother' => 'Басқа тіркелгі жасау',
@@ -822,7 +820,7 @@ $2',
 'createacct-reason' => 'Себебі:',
 'createacct-reason-ph' => 'Неге басқа тіркегі жасамақшысыз',
 'createacct-captcha' => 'Құпиялық тексеруі',
-'createacct-imgcaptcha-ph' => 'Жоғарғыдағы көріп тұрған мәтінді енгізіңіз',
+'createacct-imgcaptcha-ph' => 'Жоғарыдағы мәтінді енгізіңіз',
 'createacct-submit' => 'Тіркелгіңізді жасаңыз',
 'createacct-another-submit' => 'Басқа тіркелгі жасау',
 'createacct-benefit-heading' => '{{SITENAME}} сіз сияқты қызығатын адамдар арқылы жасалады.',
@@ -859,7 +857,7 @@ $2',
 Бұнда ең кемінде $1 таңба болуы керек.',
 'password-name-match' => 'Енгізген құпия сөзіңіз қатысушы атынан өзгеше болуы қажет.',
 'password-login-forbidden' => 'Бұл қатысушы аты мен құпия сөзін пайдалануға тыйым салынған.',
-'mailmypassword' => 'Жаңа құпия сөзді хатпен жіберу',
+'mailmypassword' => 'Құпия сөзді қалпына кеттіру',
 'passwordremindertitle' => '{{SITENAME}} үшін жаңа уақытша құпия сөз',
 'passwordremindertext' => 'Біреу (IP мекенжайы: $1, бәлкім өзіңіз боларсыз) {{SITENAME}} үшін жаңа құпия сөз жөнелету сұранымын жасаған ($4).
 Қатысушы «$2» үшін уақытша құпия сөз жасалды: «$3». Егер бұл Сіздің сұранымыңыз болса, жүйеге кіріп құпия сөзді өзгертуіңіз керек. Сіздің уақытша құпия сөзіңіз $5 дейін белсенді болады.
@@ -871,7 +869,7 @@ $2',
 Қабылдағаннан кейін кіргенде соны енгізіңіз.',
 'blocked-mailpassword' => 'IP мекенжайыңыздан өңдеу бұғатталған, сондықтан қиянатты қақпайлау үшін құпия сөзді қалпына келтіру жетесін қолдануына рұқсат етілмейді.',
 'eauthentsent' => 'Құптау хаты айтылмыш е-пошта мекенжайына жөнелтілді.
\91аÑ\81Ò\9bа Ðµ-поÑ\88Ñ\82а Ñ\85аÑ\82Ñ\8bн Ð¶Ó©Ð½ÐµÐ»Ñ\82Ñ\83 Ð°Ð»Ð´Ñ\8bнан, Ñ\82Ñ\96Ñ\80келгÑ\96 Ñ\88Ñ\8bнÑ\8bнан Ñ\81Ñ\96здÑ\96кÑ\96 ÐµÐºÐµÐ½Ñ\96н Ò\9bұпÑ\82аÑ\83 Ò¯Ñ\88Ñ\96н Ñ\85аÑ\82Ñ\82аÒ\93Ñ\8b Ð½Ò±Ñ\81Ò\9bамалаÑ\80Ò\93а ÐµÑ\80Ñ\96Ñ\83Ò£Ñ\96з Ð¶Ó©Ð½.',
\91аÑ\81Ò\9bа Ðµ-поÑ\88Ñ\82а Ñ\85аÑ\82Ñ\8bн Ð¶Ó©Ð½ÐµÐ»Ñ\82Ñ\83 Ð°Ð»Ð´Ñ\8bнан, Ñ\82Ñ\96Ñ\80келгÑ\96 Ñ\88Ñ\8bнÑ\8bнан Ñ\81Ñ\96здÑ\96кÑ\96 ÐµÐºÐµÐ½Ñ\96н Ò\9bұпÑ\82аÑ\83 Ò¯Ñ\88Ñ\96н Ñ\85аÑ\82Ñ\82аÒ\93Ñ\8b Ð½Ò±Ñ\81Ò\9bамалаÑ\80Ò\93а Ð»ÐµÑ\81Ñ\96Ò£Ñ\96з.',
 'throttled-mailpassword' => 'Соңғы {{PLURAL:$1|сағатта|$1 сағатта}} құпия сөз ескерту хаты алдақашан жөнелтілді.
 Қиянатты қақпайлау үшін, {{PLURAL:$1|сағат|$1 сағат}} сайын тек бір ғана құпия сөз ескерту хаты жөнелтіледі.',
 'mailerror' => 'Хат жөнелту қатесі: $1',
@@ -898,6 +896,10 @@ $2',
 'login-abort-generic' => 'Жүйеге кіру үшін сәтсіз талпыныс жасадыңыз.',
 'loginlanguagelabel' => 'Тіл: $1',
 'suspicious-userlogout' => 'Сіздің жүйеден шығу сұранымыңыз қабылданбады, өйткені, бұл жарамсыз браузер немесе кэштеуші проксидің сұранымына ұқсайды.',
+'pt-login' => 'Кіру',
+'pt-login-button' => 'Кіру',
+'pt-createaccount' => 'Тіркелгі жасау',
+'pt-userlogout' => 'Шығу',
 
 # Email sending
 'php-mail-error-unknown' => 'Mail() PHP-функциясындағы белгісіз қате.',
@@ -905,14 +907,15 @@ $2',
 
 # Change password dialog
 'changepassword' => 'Құпия сөзді өзгерту',
-'resetpass_announce' => 'Хатпен жіберілген уақытша кодымен кіргенсіз.
-Кіруіңізді бітіру үшін, жаңа құпия сөзіңізді мында енгізуіңіз жөн:',
+'resetpass_announce' => 'Кіруіңізді бітіру үшін жаңа құпия сөзіңізді мында енгізуіңіз керек:',
 'resetpass_header' => 'Құпия сөзді өзгерту',
 'oldpassword' => 'Ескі құпия сөзіңіз:',
 'newpassword' => 'Жаңа құпия сөзіңіз:',
 'retypenew' => 'Жаңа құпия сөзіңізді қайталаңыз:',
 'resetpass_submit' => 'Құпия сөзді қойыңыз да кіріңіз',
 'changepassword-success' => 'Құпия сөзіңіз сәтті өзгертілді!',
+'changepassword-throttled' => 'Сіз жақында кіруге тым көп әрекет жасадыңыз.
+Қайта байқап көру үшін $1 уақыт күте тұрыңыз.',
 'resetpass_forbidden' => 'Құпия сөз өзгертілмейді',
 'resetpass-no-info' => 'Бұл бетке тікелей ену үшін, жүйеге кіруіңіз керек.',
 'resetpass-submit-loggedin' => 'Құпия сөзді өзгерту',
@@ -925,7 +928,7 @@ $2',
 # Special:PasswordReset
 'passwordreset' => 'Құпия сөзді қайтару',
 'passwordreset-text-one' => 'Құпия сөзіңізді түзеу үшін бұл пішінді толтырыңыз.',
-'passwordreset-text-many' => '{{PLURAL:$1|Құпия сөзді қайтару үшін жолақтарды толтырыңыз.}}',
+'passwordreset-text-many' => '{{PLURAL:$1|Е-почта арқылы уақытша құпия сөзді қабылдау үшін жолақтардың бірін толтырыңыз.}}',
 'passwordreset-legend' => 'Құпия сөзді қайтару',
 'passwordreset-disabled' => 'Бұл уикиде құпия сөзді қайтару ажыратылған.',
 'passwordreset-emaildisabled' => 'E-mail мүмкіндігі бұл уикиде өшірілген.',
@@ -952,6 +955,8 @@ $2',
 'changeemail-password' => 'Сіздің {{SITENAME}} жобасындағы құпия сөзіңіз:',
 'changeemail-submit' => 'Е-поштаны өзгерту',
 'changeemail-cancel' => 'Болдырмау',
+'changeemail-throttled' => 'Сіз жақында кіруге тым көп әрекет жасадыңыз.
+Қайта байқап көру үшін $1 уақыт күте тұрыңыз.',
 
 # Edit page toolbar
 'bold_sample' => 'Жуан мәтін',
@@ -1032,7 +1037,7 @@ IP-мекенжайыңыз бұл беттің түзету тарихында
 Бұл жаңа қатысушы үшін құпия сөз ''[[Special:ChangePassword|құпия сөзді өзгерту]]'' бетінде кіру үстінде өзгертілген.",
 'newarticle' => '(Жаңа)',
 'newarticletext' => 'Сілтемеге еріп әлі басталмаған бетке келіпсіз.
-Бетті бастау үшін, төменгі терезеде мәтініңізді теріңіз (көбірек ақпарат үшін [[{{MediaWiki:Helppage}}|анықтама бетін]] қараңыз).
+Бетті бастау үшін, төменгі терезеде мәтініңізді теріңіз (көбірек ақпарат үшін [$1 анықтама бетін] қараңыз).
 Егер жаңылғаннан осында келген болсаңыз, браузердің «артқа» деген батырмасын басыңыз.',
 'anontalkpagetext' => "----''Бұл тіркелгісіз (немесе тіркелгісін қолданбаған) қатысушы талқылау беті. Осы қатысушыны біз тек сандық IP мекенжайымен теңдестіреміз.
 Осындай IP мекенжай бірнеше қатысушыға ортақтастырылған болуы мүмкін.
@@ -1108,7 +1113,7 @@ IP-мекенжайыңыз бұл беттің түзету тарихында
 Төменде бет журналының соңғы жазбасы көрсетілген:",
 'semiprotectedpagewarning' => "'''Аңғартпа:''' Бет жартылай қорғалған, сондықтан осыны тек тіркелген қатысушылар өңдей алады.
 Төменде бет журналының соңғы жазбасы көрсетілген:",
-'cascadeprotectedwarning' => "'''Ескету''': Бұл бет құлыпталған, енді тек әкімші құқықтары бар қатысушылар ғана бұны өңдей алады.Бұның себебі: бұл бет «баулы қорғауы» бар келесі {{PLURAL:$1|беттің|беттердің}} кірікбеті:",
+'cascadeprotectedwarning' => '<strong>Ескерту:</strong>  Бұл бет қорғалған, енді тек әкімші құқықтары бар қатысушылар ғана бұны өңдей алады, себебі бұл келесі «баулы қорғауы» бар {{PLURAL:$1|бетіне|беттеріне}} кірістілген бет:',
 'titleprotectedwarning' => "'''Ескерту: Бұл бет атауы бастаудан қорғалған, сондықтан [[Special:ListGroupRights|арнайы құқықтары]] бар қатысушылар бұндай атаумен бетті бастай алады.'''
 Төменде бет журналының соңғы жазбасы көрсетілген:",
 'templatesused' => 'Бұл бетте қолданылған {{PLURAL:$1|үлгі|үлгілер}}:',
@@ -1137,13 +1142,16 @@ IP-мекенжайыңыз бұл беттің түзету тарихында
 'edit-gone-missing' => 'Бетті жаңарту мүмкін емес.
 Мүмкін, бұл бет жойылған.',
 'edit-conflict' => 'Өңдемелер қақтығысы.',
+'edit-no-change' => 'Өңдемеңіз мәтінге өзгеріс жасамағандықтан еленілмеді.',
 'postedit-confirmation' => 'Өңдемеңіз сақталды.',
 'edit-already-exists' => 'Жаңа бет жасау мүмкін емес.
 Ол әлдеқашан бар.',
 'defaultmessagetext' => 'Әдепкі мәтіні',
 'invalid-content-data' => 'Жарамсыз дерек мазмұны',
-'editwarning-warning' => 'Басқа бетке өтсеңіз сіздің жазған соңғы өңдемелеріңіз жойылуы мүмкін. 
-Егер сiз жүйеде тiркелсеңiз, онда сiз баптауларыңыздағы «{{int:prefs-editing}}» бөлігіне кіріп, бұл ескертуді өшіре аласыз.',
+'content-not-allowed-here' => '"$1" контенті [[$2]] бетінде рұқсат етілмейді.',
+'editwarning-warning' => 'Бұл бетті қалдырсаңыз қандай да бір жасаған өзгерістеріңізді жоғалтуыңыз мүмкін. 
+Егер сiз кіріп отырсаңыз баптауларыңыздағы «{{int:prefs-editing}}» бөлімінен бұл ескертуді өшіре аласыз.',
+'editpage-notsupportedcontentformat-title' => 'Контент форматы қолдамайды',
 
 # Content models
 'content-model-wikitext' => 'Уикимәтін',
@@ -1167,13 +1175,15 @@ IP-мекенжайыңыз бұл беттің түзету тарихында
 'undo-success' => 'Бұл өңдеме жоққа шығарылуы мүмкін. Талабыңызды құптап алдын ала төмендегі салыстыруды тексеріп шығыңыз да, өңдемені жоққа шығаруын бітіру үшін төмендегі өзгерістерді сақтаңыз.',
 'undo-failure' => 'Бұл өңдеме жоққа шығарылмайды, себебі арада қақтығысты өңдемелер бар.',
 'undo-norev' => 'Бұл өңдеме жоққа шығарылмайды, себебі бұл жоқ немесе жойылған.',
+'undo-nochange' => 'Өңдеме әлдеқашан жоққа шығарылғаны анықталыды.',
 'undo-summary' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|т]]) істеген нөмір $1 түзетуін [[Project:Жоққа шығару|жоққа шығарды]]',
+'undo-summary-username-hidden' => '$1 нұсқасын жасырылған қатысушы жоққа шығарды',
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Жаңа тіркелгі жасалмады',
-'cantcreateaccount-text' => "Бұл IP мекенжайдан ('''$1''') жаңа тіркелгі жасауын [[{{ns:user}}:$3|$3]] бұғаттаған.
+'cantcreateaccount-text' => 'Бұл IP мекенжайдан (<strong>$1</strong>) жаңа тіркелгі жасауын [[User:$3|$3]] бұғаттаған.
 
-$3 ÐºÐµÐ»Ñ\82Ñ\96Ñ\80Ñ\96лген Ñ\81ебебÑ\96: ''$2''",
+$3 ÐµÑ\81Ñ\96мдÑ\96 Ò\9bаÑ\82Ñ\8bÑ\81Ñ\83Ñ\88Ñ\8bнÑ\8bÒ£ ÐºÐµÐ»Ñ\82Ñ\96Ñ\80Ñ\96ген Ñ\81ебебÑ\96: <em>$2</em>',
 
 # History pages
 'viewpagelogs' => 'Бұл бет үшін журнал оқиғаларын қарау',
@@ -1213,11 +1223,19 @@ $3 келтірілген себебі: ''$2''",
 'rev-deleted-user' => '(қатысушы аты аласталды)',
 'rev-deleted-event' => '(әрекет журналы аласталды)',
 'rev-deleted-user-contribs' => '[Қатысушы аты немесе IP-мекенжайы жойылған — өңдемелері қатысушы үлесі бетінен жасырылған]',
-'rev-deleted-text-permission' => 'Бұл беттің түзетуі барша мұрағаттарынан аласталған.
-Мында [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} жою журналында] егжей-тегжей мәліметтері болуы мүмкін.',
-'rev-deleted-text-view' => 'Осы беттің түзетуі барша мұрағаттарынан аласталған.
-{{SITENAME}} әкімшісі боп соны көре аласыз;
-[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} жою журналында] егжей-тегжей мәлметтері болуы мүмкін.',
+'rev-deleted-text-permission' => 'Бұл беттің түзетуі (нұсқасы) <strong>жойылған</strong>.
+[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} жою журналында] егжей-тегжейін таба аласыз.',
+'rev-deleted-text-unhide' => 'Бұл беттің түзетуі (нұсқасы) <strong>жойылған</strong>.
+[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} жою журналында] егжей-тегжейін таба аласыз.
+Егер сіз жалғастырсаңыз [$1 бұл нұсқаны көре] аласыз.',
+'rev-deleted-text-view' => 'Бұл беттің түзетуі (нұсқасы) <strong>жойылған</strong>.
+[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} жою журналында] егжей-тегжейін таба аласыз.',
+'rev-deleted-no-diff' => 'Бұл айырмашылықты көре алмайсыз себебі бір түзетуі (нұсқасы) <strong>жойылған</strong>.
+[{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} жою журналында] егжей-тегжейін таба аласыз.',
+'rev-suppressed-no-diff' => 'Бұл айырмашылықты көре алмайсыз себебі бір түзетуі (нұсқасы) <strong>жойылған</strong>.',
+'rev-deleted-unhide-diff' => 'Бір түзетуі (нұсқасы) <strong>жойылған</strong>.
+егжей-тегжейін [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} жою журналынан] таба аласыз.
+Егер жалғастырсаңыз [$1 бұл айырмашылықты] көре аласыз.',
 'rev-delundel' => 'көрсет/жасыр',
 'rev-showdeleted' => 'көрсету',
 'revisiondelete' => 'Түзетулерді жою/жоюды болдырмау',
@@ -1227,9 +1245,6 @@ $3 келтірілген себебі: ''$2''",
 'revdelete-show-file-submit' => 'Иә',
 'revdelete-selected' => "'''[[:$1]] дегеннің бөлектенген {{PLURAL:$2|түзетуі|түзетулері}}:'''",
 'logdelete-selected' => "'''Бөлектенген {{PLURAL:$1|журнал оқиғасы|журнал оқиғалары}}:'''",
-'revdelete-text' => "'''Жойылған түзетулер мен оқиғаларды әлі де бет тарихында және журналдарда табуға болады, бірақ олардың мағлұмат бөлшектері баршаға қатыналмайды.'''
-
-{{SITENAME}} жобасының басқа әкімшілері жасырын мағлұматқа қатынай алады, және қосымша тиымдар қойылғанша дейін, осы тілдесу арқылы жоюды болдырмауы мүмкін.",
 'revdelete-legend' => 'Көрініс тиымдарын қою:',
 'revdelete-hide-text' => 'Түзету мәтінін жасыр',
 'revdelete-hide-image' => 'Файл мағлұматын жасыр',
@@ -1302,6 +1317,9 @@ $1",
 'showhideselectedversions' => 'Бөлектенген нұсқаларды көрсет/жасыр',
 'editundo' => 'жоққа шығару',
 'diff-empty' => '(айырмашылығы жоқ)',
+'diff-multi-sameuser' => '(Жоғарыда көрсетілген қатысушының (бір ғана қатысушының) арадағы {{PLURAL:$1|бір түзетуі|$1 түзетуі}} көрсетілмеген)',
+'diff-multi-otherusers' => '({{PLURAL:$2|басқа бір қатысуышының|$2 қатысушының}} арадағы {{PLURAL:$1|бір түзетуі|$1 түзетуі}} көрсетілмеген)',
+'diff-multi-manyusers' => '($2-(ден<sup>4</sup>) көп {{PLURAL:$2|қатысуышының|қатысушының}} арадағы {{PLURAL:$1|бір түзетуі|$1 түзетуі}} көрсетілмеген)',
 'difference-missing-revision' => 'Бұл ($1) {{PLURAL:$2|нұсқа|$2 нұсқалар}} айырмашылығы табылмады.
 
 
@@ -1322,7 +1340,7 @@ $1",
 'shown-title' => 'Осы бетте {{PLURAL:$1|жазба}} көрсету.',
 'viewprevnext' => 'Көрсетілуі: ($1 {{int:pipe-separator}} $2) ($3) жазба',
 'searchmenu-exists' => "'''Бұл жобада «[[:$1]]» деген бет бар.'''",
-'searchmenu-new' => "'''\"[[:\$1]]\" осындай атпен бетті бастау'''",
+'searchmenu-new' => '<strong>"[[:$1]]" осындай атпен бұл уикиде бетті бастау</strong> {{PLURAL:$2|0=|Тағы қараңыз: іздеіңіз бойынша табылған беттер.|Тағы қараңыз: Табылған іздеу нәтижелері.}}',
 'searchprofile-articles' => 'Негізгі беттер',
 'searchprofile-project' => 'Анықтама және жоба беттері',
 'searchprofile-images' => 'Мультимедиа',
@@ -1360,11 +1378,13 @@ $1",
 'searchdisabled' => '{{SITENAME}} іздеу қызметі өшірілген.
 Әзірше Google арқылы іздеуге болады.
 Аңғартпа: {{SITENAME}} торабының мағлұмат тізбелері ескірген болуы мүмкін.',
+'search-error' => 'Іздеген кезде қате кездесті: $1',
 
 # Preferences page
 'preferences' => 'Баптаулар',
 'mypreferences' => 'Баптаулар',
 'prefs-edits' => 'Өңдеме саны:',
+'prefsnologintext2' => 'Баптауларыңызды өзгерту үшін $1.',
 'prefs-skin' => 'Мәнерлер',
 'skin-preview' => 'Қарап шығу',
 'datedefault' => 'Еш қалаусыз',
@@ -1387,7 +1407,7 @@ $1",
 'prefs-email' => 'Е-пошта баптаулары',
 'prefs-rendering' => 'Сырт көрініс',
 'saveprefs' => 'Сақтау',
-'restoreprefs' => 'Барлығын бастапқы баптауларға қайтару',
+'restoreprefs' => 'Барлығын бастапқы баптауларға қайтару (барлық бөлімдердегі)',
 'prefs-editing' => 'Өңдеу',
 'rows' => 'Жолдар:',
 'columns' => 'Бағандар:',
@@ -1433,21 +1453,25 @@ $1",
 'yourrealname' => 'Нақты атыңыз:',
 'yourlanguage' => 'Тіліңіз:',
 'yourvariant' => 'Жазба тілінің нұсқалары:',
+'prefs-help-variant' => 'Қалаған нұсқаңыз немесе орфография бұл уикидің контент беттерінде көрсетіледі.',
 'yournick' => 'Жаңа қолтаңбаңыз:',
 'prefs-help-signature' => 'Талқылау беттерінде хабарыңыздан кейін "<nowiki>~~~~</nowiki>" белгісін қалдырсаңыз, бұл қолтаңбаңызбен сол кездегі датаға ауыстырылады.',
 'badsig' => 'Қам қолтаңбаңыз жарамсыз; HTML белгішелерін тексеріңіз.',
 'badsiglength' => 'Қолтаңбаңыз тым ұзын;
 Бұл $1 {{PLURAL:$1|таңбадан|таңбадан}} аспауы керек.',
 'yourgender' => 'Жынысыңыз:',
-'gender-unknown' => 'Көрсетілмеген',
+'gender-unknown' => 'Көрсетпеу',
 'gender-male' => 'Ер',
 'gender-female' => 'Әйел',
-'prefs-help-gender' => 'Міндетті емес: бағдарламалық жасақтама жынысыңызға сәйкес хабарларды көрсетуге қолданылады.
+'prefs-help-gender' => 'Бұл баптауды орнату міндетті емес.
+Бағдарламалық жасақтама жынысыңызға сәйкес хабарларды көрсетуге қолданылады.
 Бұл мағлұмат баршаға мәлім болады.',
 'email' => 'Е-поштаңыз',
 'prefs-help-realname' => 'Нақты атыңыз міндетті емес.
 Егер бұны жетістіруді таңдасаңыз, бұл түзетуіңіздің ауторлығын анықтау үшін қолданылады.',
 'prefs-help-email' => 'Электронды поштаңыздың мекенжайын көрсету міндетті емес, бірақ құпия сөзіңізді ұмытқан жағдайда керек болады.',
+'prefs-help-email-others' => 'Кейде қатысушы немесе талқылау бетіңізге е-пошта мекенжайы сілтемесін көрсету арқылы басқалармен байланыса аласыз.
+Е-пошта мекенжайыныңыз басқа қатысушылар сізбен байланысқан кезде көрсетілмейді',
 'prefs-help-email-required' => 'Е-пошта мекенжайы керек.',
 'prefs-info' => 'Негізгі мәлімет',
 'prefs-i18n' => 'Тіл туралы мәлімет',
@@ -1465,8 +1489,10 @@ $1",
 'prefs-displaysearchoptions' => 'Көрсету бапталымдары',
 'prefs-displaywatchlist' => 'Көрсету бапталымдары',
 'prefs-diffs' => 'Айырмашылықтар',
+'prefs-help-prefershttps' => 'Бұл баптауды келесі кіргеніңізде әсерін көре аласыз.',
 
 # User preference: email validation using jQuery
+'email-address-validity-valid' => 'Е-почта мекенжайы жарамдылығы анықталды',
 'email-address-validity-invalid' => 'Жарамсыз электронды пошта мекен-жайын енгізіңіз',
 
 # User rights
@@ -1495,7 +1521,7 @@ $1",
 # Groups
 'group' => 'Топ:',
 'group-user' => 'Қатысушылар',
-'group-autoconfirmed' => 'Өзқұпталған қатысушылар',
+'group-autoconfirmed' => 'Өздіктіқұпталған қатысушылар',
 'group-bot' => 'Боттар',
 'group-sysop' => 'Әкімшілер',
 'group-bureaucrat' => 'Бітікшілер',
@@ -1503,14 +1529,14 @@ $1",
 'group-all' => '(барлық)',
 
 'group-user-member' => '{{GENDER:$1|қатысушы}}',
-'group-autoconfirmed-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}}:Өзқұпталған қатысушылар',
+'grouppage-autoconfirmed' => '{{ns:project}}:Өздіктіқұпталған қатысушылар',
 'grouppage-bot' => '{{ns:project}}:Боттар',
 'grouppage-sysop' => '{{ns:project}}:Әкімшілер',
 'grouppage-bureaucrat' => '{{ns:project}}:Бітікшілер',
@@ -1606,6 +1632,7 @@ $1",
 'action-movefile' => 'Бұл файлды жылжыту',
 'action-upload' => 'бұл файлды жүктеу',
 'action-reupload' => 'бұл бар файлдың үстіне жазу',
+'action-reupload-shared' => 'Ортаққордағы бұл файлдың үстінен жазу',
 'action-upload_by_url' => 'бұл файлды URL-дан жүктеу',
 'action-writeapi' => 'API жазуын пайдалану',
 'action-delete' => 'осы бетті жою',
@@ -1618,8 +1645,8 @@ $1",
 'action-block' => 'бұл қатысушыны өңдеуден бұғаттау',
 'action-protect' => 'бұл бет үшін қорғалу деңгейін өзгерту',
 'action-rollback' => 'жекелік беттегі соңғы өңдеген қатысушының соңғы өңдемелерін жылдам шегіндіру',
-'action-import' => 'бұл бетті басқа уикиден импортау',
-'action-importupload' => 'бұл бетті файл жүктеуінен импорттау',
+'action-import' => 'беттерді басқа уикиден импортау',
+'action-importupload' => 'беттерді файл жүктеуінен импорттау',
 'action-patrol' => 'басқалардың өңдеулерін зерттелді деп белгілеу',
 'action-autopatrol' => 'өзіңіздің өңдемеңізді зерттелді деп белгілеу',
 'action-unwatchedpages' => 'бақыланылмаған беттер тізімін қарау',
@@ -1641,22 +1668,34 @@ $1",
 'recentchanges-summary' => 'Бұл бетте осы уикидегі болған жуықтағы өзгерістер байқалады.',
 'recentchanges-noresult' => 'Бұл талап бойынша көрсетілген уақыттан бері өзгерістер болған жоқ.',
 'recentchanges-feed-description' => 'Бұл арнаменен уикидегі ең соңғы өзгерістер қадағаланады.',
-'recentchanges-label-newpage' => 'Ð\91ұл Ó©Ò£Ð´ÐµÐ¼Ðµ Ð°Ñ\80Ò\9bÑ\8bлÑ\8b Ð¶Ð°Ò£Ð° Ð±ÐµÑ\82 Ð±Ð°Ñ\81Ñ\82алдÑ\8b',
+'recentchanges-label-newpage' => 'Ð\96аңа Ð±ÐµÑ\82Ñ\82еÑ\80',
 'recentchanges-label-minor' => 'Бұл шағын өңдеме',
 'recentchanges-label-bot' => 'Бұл өңдемені бот жасады.',
 'recentchanges-label-unpatrolled' => 'Бұл өңдеме әлі тексеруден өтпеді.',
 'recentchanges-label-plusminus' => 'Байт бойынша беттің өзгеріс мөлшері',
 'recentchanges-legend-heading' => "'''Шартты белгілер:'''",
-'recentchanges-legend-newpage' => 'қ. [[Special:NewPages|бөлек бетте]]',
+'recentchanges-legend-newpage' => '(қ: [[Special:NewPages|бөлек бетте]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "Төменде '''$2''' кезінен бергі ('''$1''' жеткенше дейін) өзгерістер көрсетіледі.",
+'rcnotefrom' => 'Төменде <strong>$2</strong> кезінен бергі (<strong>$1</strong> өңдемеге дейін) өзгерістер көрсетіледі.',
 'rclistfrom' => '$1 кезінен бергі жаңа өзгерістерді көрсет.',
 'rcshowhideminor' => 'Шағын өңдемелерді $1',
+'rcshowhideminor-show' => 'көрсету',
+'rcshowhideminor-hide' => 'жасыру',
 'rcshowhidebots' => 'Боттарды $1',
+'rcshowhidebots-show' => 'көрсету',
+'rcshowhidebots-hide' => 'жасыру',
 'rcshowhideliu' => 'Тіркелгендерді $1',
+'rcshowhideliu-show' => 'көрсету',
+'rcshowhideliu-hide' => 'жасыру',
 'rcshowhideanons' => 'Кірмегендерді $1',
+'rcshowhideanons-show' => 'көрсету',
+'rcshowhideanons-hide' => 'жасыру',
 'rcshowhidepatr' => 'Зерттелген өңдемелерді $1',
+'rcshowhidepatr-show' => 'көрсету',
+'rcshowhidepatr-hide' => 'жасыру',
 'rcshowhidemine' => 'Өңдемелерімді $1',
+'rcshowhidemine-show' => 'көрсету',
+'rcshowhidemine-hide' => 'жасыру',
 'rclinks' => 'Соңғы $2 күнде болған, соңғы $1 өзгерісті көрсет<br />$3',
 'diff' => 'айырм.',
 'hist' => 'тарихы',
@@ -1726,12 +1765,16 @@ The deletion and move log for this page are provided here for convenience:",
 'filename-toolong' => 'Файл атауы 240 байттан жоғары болмауы керек',
 'badfilename' => 'Файлдың атауы «$1» деп өзгертілді.',
 'filetype-badmime' => '«$1» деген MIME түрі бар файлдарды қотарып беруге рұқсат етілмейді.',
-'filetype-unwanted-type' => "'''«.$1»''' — күтілмеген файл түрі. Ұнамды файл түрлері: $2.",
+'filetype-unwanted-type' => '<strong>«.$1»</strong> — күтілмеген файл түрі. 
+Белгілі {{PLURAL:$3|файл түрі|файл түрлері}}: $2.',
 'filetype-banned-type' => "'''«.$1»''' — {{PLURAL:$4|рұқсатталмаған файл түрі|рұқсатталмаған файл түрлері}}. Рұқсатталған {{PLURAL:$3|файл түрі|файл түрлері}}: $2.",
 'filetype-missing' => 'Бұл файлдың («.jpg» сияқты) кеңейтімі жоқ.',
 'empty-file' => 'Сіз жіберген файл бос.',
+'file-too-large' => 'Сіз жіберген файл тым үлкен',
 'filename-tooshort' => 'Файл атауы қысқа.',
+'filetype-banned' => 'Бұл файл түрі тыйым салынған.',
 'illegal-filename' => 'Файл атауы рұқсат етілген.',
+'overwrite' => 'Бар файлдың үстінен жазу рұқсат етілмейді',
 'unknown-error' => 'Белгісіз қателік орын алды.',
 'large-file' => 'Файлдың $1 мөлшерінен аспауына кепілдеме беріледі;
 бұл файл мөлшері — $2.',
@@ -1752,9 +1795,9 @@ The deletion and move log for this page are provided here for convenience:",
 'fileexists-thumbnail-yes' => 'Осы файл — мөлшері кішірітілген көшірмесі (нобай) сияқты. [[$1|thumb]]
 Өтініш, <strong>[[:$1]]</strong> деген файлды тексеріңіз.
 Егер көрсетілген файл дәл сіз жүктейін деп жатқан файл болса, онда оның кішірейтілген көшірмесін қайта жүктеудің қажеті жоқ.',
-'file-thumbnail-no' => "Файл атауы <strong>$1</strong> дегенмен басталады.
-Бұл — мөлшері кішірітілген сурет ''(нобай)'' сияқты.
-Егер бұл суреттің толық ажыратылымдығы болса, бұны қотарып беріңіз, әйтпесе файл атауын өзгертіңіз.",
+'file-thumbnail-no' => 'Файл атауы <strong>$1</strong> дегенмен басталады.
+Бұл — мөлшері кішірітілген сурет <em>(нобай)</em> сияқты.
+Егер бұл суреттің толық ажыратылымды нұсқасы болса оны жүктеңіз, әйтпесе файл атауын өзгертіңіз.',
 'fileexists-forbidden' => 'Осылай аталған файл алдақашан бар;
 кері қайтыңыз да, осы файлды жаңа атымен жүктеп беріңіз. [[File:$1|нобай|center|$1]]',
 'fileexists-shared-forbidden' => 'Осылай аталған файл ортаққорда алдақашан бар;
@@ -1830,9 +1873,7 @@ URL дұрыс екендігін және торап істеп тұрғаны
 'upload_source_file' => '(компьютеріңіздегі файл)',
 
 # Special:ListFiles
-'listfiles-summary' => 'Бұл арнайы бетте барлық жүктелген файлдар көрсетіледі.
-Соңғы жүктелген файлдар тізімде жоғарғы шетімен әдепкіден көрсетіледі.
-Бағанның бас жолын нұқығанда сұрыптаудың реттеуі өзгертіледі.',
+'listfiles-summary' => 'Бұл арнайы бетте барлық жүктелген файлдар көрсетіледі.',
 'listfiles_search_for' => 'Медиа атауын іздеу:',
 'imgfile' => 'файл',
 'listfiles' => 'Файл тізімі',
@@ -1872,14 +1913,14 @@ URL дұрыс екендігін және торап істеп тұрғаны
 'linkstoimage-redirect' => '$1 (файл айдатылуы) $2',
 'duplicatesoffile' => 'Келесі {{PLURAL:$1|файл бұл файлдың телнұсқасы|$1 файл бұл файлдың телнұсқалары}} ([[Special:FileDuplicateSearch/$2|толығырақ көру]]):',
 'sharedupload' => 'Бұл файл $1 жобасынан сондықтан басқа жобаларда қолдануы мүмкін.',
-'sharedupload-desc-there' => 'Бұл файл $1 жобасынан және сондықтан басқа жобаларда қолдануы мүмкін.
+'sharedupload-desc-there' => 'Бұл файл $1 жобасынан, сондықтан басқа жобаларда lf қолдануы мүмкін.
 Қосымша мәліметтер үшін [$2 файл сипаттама бетін] қараңыз.',
-'sharedupload-desc-here' => 'Бұл файл $1 жобасынан және сондықтан басқа жобаларда қолдануы мүмкін.
+'sharedupload-desc-here' => 'Бұл файл $1 жобасынан сондықтан басқа жобаларда қолдануы мүмкін.
 Бұның сипатамасы [$2 файл сипаттама беті] төменде көрсетілген.',
-'sharedupload-desc-edit' => 'Бұл файл $1 жобасынан және сондықтан басқа жобаларда қолдануы мүмкін.
-СипаÑ\82Ñ\82амаÑ\81Ñ\8bн Ó©Ò£Ð´ÐµÐ³Ñ\96Ò£Ñ\96з ÐºÐµÐ»Ñ\81е Ð¼Ò±Ð½Ð´Ð° [$2 Ñ\84айл Ñ\81ипаÑ\82Ñ\82ама Ð±ÐµÑ\82Ñ\96].',
-'sharedupload-desc-create' => 'Бұл файл $1 жобасынан және сондықтан басқа жобаларда қолдануы мүмкін.
-Сипаттамасын өңдегіңіз келсе мұнда [$2 файл сипаттама беті].',
+'sharedupload-desc-edit' => 'Бұл файл $1 жобасынан, сондықтан басқа жобаларда да қолдануы мүмкін.
+СипаÑ\82Ñ\82амаÑ\81Ñ\8bн Ó©Ò£Ð´ÐµÐ³Ñ\96Ò£Ñ\96з ÐºÐµÐ»Ñ\81е Ð¾Ð» [$2 Ñ\84айл Ñ\81ипаÑ\82Ñ\82ама Ð±ÐµÑ\82Ñ\96нде].',
+'sharedupload-desc-create' => 'Бұл файл $1 жобасынан, сондықтан басқа жобаларда да қолдануы мүмкін.
+Сипаттамасын өңдегіңіз келсе [$2 файл сипаттама бетіне] өтіңіз.',
 'filepage-nofile' => 'Бұл атаумен файл жоқ.',
 'filepage-nofile-link' => 'Бұл атаумен файл жоқ, бірақ сіз оны [$1 жүктей аласыз].',
 'uploadnewversion-linktext' => 'Бұл файлдың жаңа нұсқасын жүктеу',
@@ -1996,7 +2037,7 @@ URL дұрыс екендігін және торап істеп тұрғаны
 'nbytes' => '$1 {{PLURAL:$1|байт|байт}}',
 'ncategories' => '$1 {{PLURAL:$1|Санат|Санаттар}}',
 'ninterwikis' => '$1 {{PLURAL:$1|интеруики|интеруикилер}}',
-'nlinks' => '$1 {{PLURAL:$1|сілтеме|сілтемелер}}',
+'nlinks' => '$1 сілтеме',
 'nmembers' => '$1 {{PLURAL:$1|мүше|мүше}}',
 'nmemberschanged' => '$1 → $2 {{PLURAL:$2|мүше|мүше}}',
 'nrevisions' => '$1 {{PLURAL:$1|түзету|түзету}}',
@@ -2026,6 +2067,7 @@ URL дұрыс екендігін және торап істеп тұрғаны
 'mostrevisions' => 'Ең көп түзетілген беттер',
 'prefixindex' => 'Атау бастауыш тізімі',
 'prefixindex-namespace' => 'Атау бастауыш тізімі ($1 есім кеңістігі)',
+'prefixindex-strip' => 'Префиксті тізімнен қысқарту',
 'shortpages' => 'Ең қысқа беттер',
 'longpages' => 'Ең ұзын беттер',
 'deadendpages' => 'Еш бетке сілтемейтін беттер',
@@ -2033,12 +2075,21 @@ URL дұрыс екендігін және торап істеп тұрғаны
 'protectedpages' => 'Қорғалған беттер',
 'protectedpages-indef' => 'Тек белгісіз қорғаулар',
 'protectedpages-cascade' => 'Тек баулы қорғаулар',
+'protectedpages-noredirect' => 'Бағыттағыштарды жасыру',
 'protectedpagesempty' => 'Ағымда мынадай параметрлермен ешбір бет қорғалмаған.',
+'protectedpages-page' => 'Бет',
+'protectedpages-expiry' => 'Біту мерзімі',
+'protectedpages-performer' => 'Қорғаған қатысушы',
+'protectedpages-params' => 'Қорғау деңгейі',
+'protectedpages-reason' => 'Себебі',
+'protectedpages-unknown-timestamp' => 'Белгісіз',
+'protectedpages-unknown-performer' => 'Белгісіз қатысушы',
 'protectedtitles' => 'Қорғалған тақырып аттары',
 'protectedtitlesempty' => 'Бұл бапталымдармен ағымда еш тақырып аттары қорғалмаған.',
 'listusers' => 'Қатысушы тізімі',
 'listusers-editsonly' => 'Тек қатысушы өңдемелерін көрсету',
 'listusers-creationsort' => 'Басталған уақытына қарай іріктеу',
+'listusers-desc' => 'Кемуі бойынша ретке келтіру',
 'usereditcount' => '$1 {{PLURAL:$1|өңдеме|өңдемелер}}',
 'usercreated' => '$1 $2-та {{GENDER:$3|басталған}}',
 'newpages' => 'Ең жаңа беттер',
@@ -2055,6 +2106,7 @@ URL дұрыс екендігін және торап істеп тұрғаны
 'pager-newer-n' => '{{PLURAL:$1|жаңалау 1|жаңалау $1}}',
 'pager-older-n' => '{{PLURAL:$1|ескілеу 1|ескілеу $1}}',
 'suppress' => 'Шеттету',
+'querypage-disabled' => 'Бұл арнайы бет өнімділік себептері үшін өшірілген',
 
 # Book sources
 'booksources' => 'Кітап қайнарлары',
@@ -2135,11 +2187,12 @@ URL дұрыс екендігін және торап істеп тұрғаны
 'listgrouprights' => 'Қатысушы тобы құқықтары',
 'listgrouprights-summary' => 'Келесі тізімде бұл уикиде тағайындалған қатысушы құқықтары (байланысты қатынау құқықтарымен бірге) көрсетіледі.
 Жеке құқықтар туралы көбірек ақпаратты [[{{MediaWiki:Listgrouprights-helppage}}|мында]] таба аласыз.',
-'listgrouprights-key' => '* <span class="listgrouprights-granted">Берілген құқығы</span>
-* <span class="listgrouprights-revoked">Бұзылған құқығы</span>',
+'listgrouprights-key' => 'Мәндік белгілер
+* <span class="listgrouprights-granted">Берілген құқығы</span>
+* <span class="listgrouprights-revoked">Жойылған құқығы</span>',
 'listgrouprights-group' => 'Топ',
 'listgrouprights-rights' => 'Құқықтары',
-'listgrouprights-helppage' => '{{ns:4}}:Топ құқықтары',
+'listgrouprights-helppage' => 'Help:Топ құқықтары',
 'listgrouprights-members' => '(мүше тізімі)',
 'listgrouprights-addgroup' => '{{PLURAL:$2|топты|топтарды}} қосу: $1',
 'listgrouprights-removegroup' => '{{PLURAL:$2|топты|топтарды}} алып тастау: $1',
@@ -2157,14 +2210,14 @@ URL дұрыс екендігін және торап істеп тұрғаны
 'emailuser-title-target' => 'Бұл {{GENDER:$1|қатысушы}} email-ы',
 'emailuser-title-notarget' => 'Қатысушы е-поштасы',
 'emailpage' => 'Қатысушыға хат жазу',
-'emailpagetext' => 'Ð\95геÑ\80 Ð±Ò±Ð» Ò\9bаÑ\82Ñ\8bÑ\81Ñ\83Ñ\88Ñ\8b Ð±Ð°Ð¿Ñ\82аÑ\83лаÑ\80Ñ\8bнда Ð¶Ð°Ñ\80амдÑ\8b Ðµ-поÑ\88Ñ\82а Ð¼ÐµÐºÐµÐ½Ð¶Ð°Ð¹Ñ\8bн ÐµÐ½Ð³Ñ\96зÑ\81е, Ñ\82өмендегÑ\96 Ð¿Ñ\96Ñ\88Ñ\96н Ð°Ñ\80Ò\9bÑ\8bлÑ\8b Ð±Ò±Ò\93ан Ð¶Ð°Ð»Ò\93Ñ\8bз Ðµ-поÑ\88Ñ\82а Ñ\85аÑ\82ын жөнелтуге болады.
-Қатысушы баптауыңызда енгізген е-пошта мекенжайыңыз «Кімнен» деген бас жолағында көрінеді, сондықтан хат алушысы тура жауап бере алады.',
+'emailpagetext' => 'ТөмендегÑ\96 Ð¿Ñ\96Ñ\88Ñ\96н Ð°Ñ\80Ò\9bÑ\8bлÑ\8b Ð±Ò±Ð» {{GENDER:$1|Ò\9bаÑ\82Ñ\8bÑ\81Ñ\83Ñ\88Ñ\8bÒ\93а}} Ðµ-поÑ\88Ñ\82а Ñ\85абаÑ\80ламаÑ\81ын жөнелтуге болады.
+[[Special:Preferences|Қатысушы баптауыңызда]] енгізген е-пошта мекенжайыңыз «Кімнен» деген бас жолағында көрінеді, сондықтан хат алушысы тура жауап бере алады.',
 'usermailererror' => 'Mail нысаны қате қайтарды:',
-'defemailsubject' => '{{SITENAME}} е-поштасының хаты',
+'defemailsubject' => '"$1" есімді қатысушының {{SITENAME}} е-поштасының хаты',
 'usermaildisabled' => 'Қатысушының электронды поштасы қосылмаған',
 'usermaildisabledtext' => 'Бұл уикиде басқа қатысушыларға хат жібере алмайсыз',
 'noemailtitle' => 'Еш е-пошта мекенжайы жоқ',
-'noemailtext' => 'Ð\91ұл Ò\9bаÑ\82Ñ\8bÑ\81Ñ\83Ñ\88Ñ\8b Ð¶Ð°Ñ\80амдÑ\8b Ð\95-поÑ\88Ñ\82а Ð¼ÐµÐºÐµÐ½Ð¶Ð°Ð¹Ñ\8bн ÐºÐµÐ»Ñ\82Ñ\96Ñ\80меген, Ð½Ðµ Ð±Ð°Ñ\81Ò\9bалаÑ\80дан Ñ\85аÑ\82 Ò\9bабÑ\8bлдаÑ\83Ñ\8bн Ó©Ñ\88Ñ\96Ñ\80ген.',
+'noemailtext' => 'Ð\91ұл Ò\9bаÑ\82Ñ\8bÑ\81Ñ\83Ñ\88Ñ\8b Ð¶Ð°Ñ\80амдÑ\8b Ðµ-поÑ\88Ñ\82а Ð¼ÐµÐºÐµÐ½Ð¶Ð°Ð¹Ñ\8bн ÐºÐµÐ»Ñ\82Ñ\96Ñ\80меген.',
 'emailusername' => 'Қатысушы аты:',
 'emailusernamesubmit' => 'Жіберу',
 'email-legend' => 'Басқа{{SITENAME}} қатысушысына хат жіберу',
@@ -2208,6 +2261,7 @@ URL дұрыс екендігін және торап істеп тұрғаны
 'watchmethod-list' => 'жуықтағы өзгерістер үшін бақылаулы беттерді тексеру',
 'watchlistcontains' => 'Бақылау тізіміңізде $1 бет бар.',
 'iteminvalidname' => "'$1' данада ақау бар — жарамсыз атау…",
+'wlnote2' => 'Төменде $2, $3 кезіне дейінгі соңғы {{PLURAL:$1|сағаттағы|<strong>$1</strong> сағаттағы}} өзгерістер көрсетілген.',
 'wlshowlast' => 'Соңғы $1 сағаттағы, $2 күндегі, $3 болған өзгерісті көрсету',
 'watchlist-options' => 'Бақылау тізімінің баптаулары',
 
@@ -2324,7 +2378,7 @@ $2 соңғы нұсқасына қайта өзгертті.',
 'protectlogpage' => 'Қорғау журналы',
 'protectlogtext' => 'Төменде беттердің қорғау/қорғамау тізімі берілген.
 Ағымдағы қорғау әректтер бар беттер үшін [[Special:ProtectedPages|қорғалған беттер тізімін]] қараңыз.',
-'protectedarticle' => '"[[$1]]" бетін қорғады',
+'protectedarticle' => '<<[[$1]]>> бетін қорғады',
 'modifiedarticleprotection' => '"[[$1]]" қорғалу деңгейін өзгертті',
 'unprotectedarticle' => '"[[$1]]" дегеннен қорғалуын жылжытты',
 'movedarticleprotection' => 'қорғалу баптауларын "[[$2]]" дегеннен "[[$1]]" дегенге жылжытты',
@@ -2347,8 +2401,8 @@ $2 соңғы нұсқасына қайта өзгертті.',
 Мына '''$1''' беттің ағымдық баптаулары:",
 'protect-locked-access' => "Тіркелгіңізге бет қорғау денгейлерін өзгертуіне рұқсат жоқ.
 Мына '''$1''' беттің ағымдық баптаулары:",
-'protect-cascadeon' => 'Бұл бет ағымда қорғалған, себебі осы бет «баулы қорғауы» бар келесі {{PLURAL:$1|беттің|беттердің}} кірікбеті.
\91ұл Ð±ÐµÑ\82Ñ\82Ñ\96Ò£ Ò\9bоÑ\80Ò\93аÑ\83 Ð´ÐµÒ£Ð³ÐµÐ¹Ñ\96н Ó©Ð·Ð³ÐµÑ\80Ñ\82е Ð°Ð»Ð°Ñ\81Ñ\8bз, Ð±Ñ\96Ñ\80аÒ\9b Ð±Ò±Ð» баулы қорғауға ықпал етпейді.',
+'protect-cascadeon' => '<strong>Бұл бет қазіргі уақытта өңдеуден қорғалған, себебі ол «баулы қорғауы» бар келесі {{PLURAL:$1|бетіне|беттеріне}} кірістірілген  кірікбеті.</strong>
\91ұл Ð±ÐµÑ\82Ñ\82Ñ\96Ò£ Ò\9bоÑ\80Ò\93аÑ\83 Ð´ÐµÒ£Ð³ÐµÐ¹Ñ\96н Ó©Ð·Ð³ÐµÑ\80Ñ\82кенде баулы қорғауға ықпал етпейді.',
 'protect-default' => 'Барлық қатысушыларға рұқсат ету',
 'protect-fallback' => 'Тек «$1» қатысушыларға рұқсат ету',
 'protect-level-autoconfirmed' => 'Тіркелгісіздерге тиым',
@@ -2473,6 +2527,7 @@ $1',
 'sp-contributions-search' => 'Үлес үшін іздеу',
 'sp-contributions-username' => 'IP-мекенжайы немесе қатысушы аты:',
 'sp-contributions-toponly' => 'Өңдемелердің тек соңғы нұсқаларын көрсету',
+'sp-contributions-newonly' => 'Бет бастау өңдемелерін ғана көрсету',
 'sp-contributions-submit' => 'Ізде',
 
 # What links here
@@ -2946,7 +3001,7 @@ $2',
 
 # Skin names
 'skinname-cologneblue' => 'Көк зеңгірлігі (cologneblue)',
-'skinname-monobook' => 'Ð\94аÑ\80а кітап (monobook)',
+'skinname-monobook' => 'Ð\96еке кітап (monobook)',
 'skinname-modern' => 'Заманауи (modern)',
 
 # Patrolling
@@ -3481,7 +3536,7 @@ $5
 'autosumm-blank' => 'Беттің барлық мағлұматын аластады',
 'autosumm-replace' => 'Бетті "$1" дегенмен алмастырды',
 'autoredircomment' => '[[$1]] дегенге айдады',
-'autosumm-new' => 'Жаңа бетте: "$1"',
+'autosumm-new' => 'Жаңа бетте: $1',
 
 # Size units
 'size-bytes' => '$1 байт',
@@ -3536,7 +3591,7 @@ $5
 'iranian-calendar-m9' => 'азар',
 'iranian-calendar-m10' => 'ди',
 'iranian-calendar-m11' => 'бемін',
-'iranian-calendar-m12' => 'аспанд',
+'iranian-calendar-m12' => 'аспанд (Иран күнтізбесі)',
 
 # Hebrew month names
 'hebrew-calendar-m1' => 'тішри',
@@ -3546,7 +3601,7 @@ $5
 'hebrew-calendar-m5' => 'шыбат',
 'hebrew-calendar-m6' => 'адар',
 'hebrew-calendar-m6a' => 'адар',
-'hebrew-calendar-m6b' => 'уадар',
+'hebrew-calendar-m6b' => 'Адар II (иврит күнтізбесі)',
 'hebrew-calendar-m7' => 'нисан',
 'hebrew-calendar-m8' => 'аяр',
 'hebrew-calendar-m9' => 'сиуан',
@@ -3717,6 +3772,27 @@ $5
 'searchsuggest-containing' => 'қамтылуда...',
 
 # API errors
+'api-error-badaccess-groups' => 'Сізге бұл уикиге файл жүктеуге рұқсат етілмеген.',
+'api-error-badtoken' => 'Ішкі қате: Жаман байрақша',
+'api-error-copyuploaddisabled' => 'URL бойынша жүктеу бұл серверде өшірілген',
+'api-error-duplicate' => '{{PLURAL:$1|[$2 басқа файл]|[$2 кейбір басқа файл]}} әлеқашан сайтта басқа мазмұнда бар.',
+'api-error-duplicate-archive-popup-title' => 'Бұл {{PLURAL:$1|файл|файл}} телнұсқасы әлдеқашан жойылған.',
+'api-error-duplicate-popup-title' => '{{PLURAL:$1|file|files}} телнұсқасы.',
+'api-error-empty-file' => 'Сіз жіберген файл бос.',
+'api-error-emptypage' => 'Бос бетті жаңадан бастау рұқсат етілмейді.',
+'api-error-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|рұқсат етілмеген файл түрі|рұқсат етілмеген файл түрі}}. Рұқсат етілген {{PLURAL:$3|файл түрі|файл түрлері}}: $2.',
+'api-error-filetype-missing' => 'Файл атауы кеңейтілім қажет етеді.',
+'api-error-http' => 'Ішкі қате: Серверге қосылу қолайсыз.',
+'api-error-illegal-filename' => 'Файл атауы рұқсат етілмеген.',
+'api-error-invalid-file-key' => 'Ішкі қате: Файл уақытша сақтағыштан табылмады.',
+'api-error-missingparam' => 'Ішкі қате: Ұсынылған параметрлерді қажет етеді',
+'api-error-mustbeloggedin' => 'Файлдар жүктеу үшін кіруіңіз қажет',
+'api-error-noimageinfo' => 'Жүктеу сәтті болды, бірақ бізге файл туралы қандай да бір мәліметті сервер бере алмады.',
 'api-error-unclassified' => 'Белгісіз қателік орын алды.',
 'api-error-unknown-code' => 'Белгісіз қате: "$1".',
 'api-error-unknown-warning' => 'Белгісіз ескерту: "$1".',
index 0df6226..b9da051 100644 (file)
@@ -542,7 +542,6 @@ $messages = array(
 'disclaimers' => 'Jawapkerşilikten bas tartw',
 'disclaimerpage' => 'Project:Jawapkerşilikten bas tartw',
 'edithelp' => 'Öndew anıqtaması',
-'helppage' => 'Help:Mazmunı',
 'mainpage' => 'Bastı bet',
 'mainpage-description' => 'Bastı bet',
 'policy-url' => 'Project:Erejeler',
@@ -826,7 +825,7 @@ E-poşta mekenjaýıñızdı [[{{#special:Preferences}}|paýdalanwşılıq bapta
 'accmailtext' => '$2 jaýına «$1» qupïya sözi jöneltildi.',
 'newarticle' => '(Jaña)',
 'newarticletext' => 'Siltemege erip äli bastalmağan betke kelipsiz.
-Betti bastaw üşin, tömendegi kiristirw ornında mätiniñizdi teriñiz (köbirek aqparat üşin [[{{{{ns:mediawiki}}:helppage}}|anıqtama betin]] qarañız).
+Betti bastaw üşin, tömendegi kiristirw ornında mätiniñizdi teriñiz (köbirek aqparat üşin [[{{{{ns:mediawiki}}:helppage}}|anıqtama betin] qarañız).
 Eger jañılğannan osında kelgen bolsañız, şolğışıñız «Artqa» degen batırmasın nuqıñız.',
 'anontalkpagetext' => "----''Bul tirkelgisiz (nemese tirkelgisin qoldanbağan) qatıswşı talqılaw beti. Osı qatıswşını biz tek sandıq IP mekenjaýımen teñdestiremiz.
 Osındaý IP mekenjaý birneşe qatıswşığa ortaqtastırılğan bolwı mümkin.
@@ -974,9 +973,6 @@ Mında [{{fullurl:{{#special:Log}}/delete|page={{FULLPAGENAMEE}}}} joyw jwrnalı
 keltirilgen tüzetw joq, ne ağımdıq tüzetwdi jasırw üşin ärekettenip kördiñiz.',
 'revdelete-selected' => "'''[[:$1]] degenniñ bölektengen {{PLURAL:$2|tüzetwi|tüzetwleri}}:'''",
 'logdelete-selected' => "'''Bölektengen {{PLURAL:$1|jwrnal oqïğası|jwrnal oqïğaları}}:'''",
-'revdelete-text' => "'''Joýılğan tüzetwler men oqïğalardı äli de bet tarïxında jäne jwrnaldarda tabwğa boladı, biraq olardıñ mağlumat bölşekteri barşağa qatınalmaýdı.'''
-
-{{SITENAME}} jobasınıñ basqa äkimşileri jasırın mağlumatqa qatınaý aladı, jäne qosımşa tïımdar qoýılğanşa deýin, osı tildesw arqılı joywdı boldırmawı mümkin.",
 'revdelete-legend' => 'Körinis tïımdarın qoyw:',
 'revdelete-hide-text' => 'Tüzetw mätinin jasır',
 'revdelete-hide-image' => 'Faýl mağlumatın jasır',
index b9358f0..2b7034b 100644 (file)
@@ -509,7 +509,6 @@ $1',
 'disclaimers' => 'ការបដិសេធ',
 'disclaimerpage' => 'Project:ការបដិសេធ​ទូទៅ',
 'edithelp' => 'ជំនួយ​ក្នុងការកែប្រែ',
-'helppage' => 'Help:មាតិកា',
 'mainpage' => 'ទំព័រដើម',
 'mainpage-description' => 'ទំព័រដើម',
 'policy-url' => 'Project:គោលការណ៍',
@@ -709,8 +708,6 @@ $2',
 'gotaccountlink' => 'កត់ឈ្មោះចូល',
 'userlogin-resetlink' => 'តើអ្នកភ្លេចព័ត៌មានលម្អិតសម្រាប់កត់ឈ្មោះចូលហើយ?',
 'userlogin-resetpassword-link' => 'អ្នកភ្លេចពាក្យសម្ងាត់ហើយ?',
-'helplogin-url' => 'Help:ការកត់ឈ្មោះចូល',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|ជំនួយក្នុងការកត់ឈ្មោះចូល]]',
 'userlogin-loggedin' => 'អ្នកបានកត់ឈ្មោះចូលជា {{GENDER:$1|$1}} ហើយ។
 ប្រើសំណុំបែបបទខាងក្រោមដើម្បីកត់ឈ្មោះចូលជាអ្នកប្រើប្រាស់ផ្សេងម្នាក់ទៀត។',
 'userlogin-createanother' => 'បង្កើតគណនីមួយទៀត',
@@ -997,7 +994,7 @@ $2
 'accmailtext' => "ពាក្យសម្ងាត់​ដែល​បាន​បង្កើត​ដោយ​ចៃដន្យ​សម្រាប់ [[User talk:$1|$1]] ត្រូវបានផ្ញើទៅ $2 ហើយ​។ អ្នកអាច​​ប្ដូរ​វាបាននៅ​​ទំព័រ ''[[Special:ChangePassword|ប្ដូរ​ពាក្យសម្ងាត់]]'' បន្ទាប់ពីកត់ឈ្មោះចូលហើយ​។",
 'newarticle' => '(ថ្មី)',
 'newarticletext' => "អ្នកបានតាម​តំណភ្ជាប់​ទៅ​ទំព័រដែលមិនទាន់មាននៅឡើយ។
-ដើម្បីបង្កើតទំព័រនេះ សូមចាប់ផ្ដើមវាយ​ក្នុងប្រអប់ខាងក្រោម (សូមមើល [[{{MediaWiki:Helppage}}|ទំព័រ​ជំនួយ]] សម្រាប់​ព័ត៌មានបន្ថែម)។
+ដើម្បីបង្កើតទំព័រនេះ សូមចាប់ផ្ដើមវាយ​ក្នុងប្រអប់ខាងក្រោម (សូមមើល [$1 ទំព័រ​ជំនួយ] សម្រាប់​ព័ត៌មានបន្ថែម)។
 បើ​អ្នក​មក​ទីនេះដោយអចេតនា សូមចុចប៊ូតុង '''ត្រឡប់ក្រោយ''' របស់ឧបករណ៍រាវរករបស់អ្នក។",
 'anontalkpagetext' => "----''ទំព័រពិភាក្សានេះគឺសម្រាប់តែអ្នកប្រើប្រាស់អនាមិកដែលមិនទាន់បានបង្កើតគណនីតែប៉ុណ្ណោះ។ ដូច្នេះអាសយដ្ឋានលេខIPរបស់កុំព្យូទ័ររបស់លោកអ្នក​នឹងត្រូវបានបង្ហាញ ដើមី្បសម្គាល់លោកអ្នក។
 
@@ -2144,7 +2141,7 @@ $1',
 'deadendpagestext' => 'ទំព័រដូចតទៅនេះមិនតភ្ជាប់ទៅទំព័រដទៃទៀតក្នុង {{SITENAME}} ទេ។',
 'protectedpages' => 'ទំព័រដែលត្រូវបានការពារ',
 'protectedpages-indef' => 'សំរាប់តែការការពារដែលមិនកំណត់ប៉ុណ្ណោះ',
-'protectedpages-summary' => 'ទំព័រនេះរាយបញ្ជីទំព័រដែលកំពុងត្រូវបានការពារ។ សម្រាប់បញ្ជីចំណងជើងទាំងឡាយដែលស្ថិននៅក្រោមការការពារមិនអោយបង្កើត សូមមើលនៅ [[{{#special:ProtectedTitles}}]]។',
+'protectedpages-summary' => 'ទំព័រនេះរាយបញ្ជីទំព័រដែលកំពុងត្រូវបានការពារ។ សម្រាប់បញ្ជីចំណងជើងទាំងឡាយដែលស្ថិននៅក្រោមការការពារមិនអោយបង្កើត សូមមើលនៅ [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]]។',
 'protectedpages-cascade' => 'សំរាប់ការការពារជាថ្នាក់ប៉ុណ្ណោះ​',
 'protectedpages-noredirect' => 'លាក់ការបញ្ជូនបន្ត',
 'protectedpagesempty' => '​មិន​មាន​ទំព័រ​ណា​ដែល​ត្រូវបាន​ការពារ ជាមួយប៉ារ៉ាម៉ែត​ទាំងនេះទេ។',
@@ -2157,7 +2154,7 @@ $1',
 'protectedpages-unknown-timestamp' => 'មិនស្គាល់',
 'protectedpages-unknown-performer' => 'អ្នកប្រើប្រាស់មិនស្គាល់',
 'protectedtitles' => 'ចំណងជើងត្រូវបានការពារ',
-'protectedtitles-summary' => 'ទំព័រនេះរាយបញ្ជីចំណងជើងទាំងឡាយដែលស្ថិននៅក្រោមការការពារមិនអោយបង្កើត។ សម្រាប់បញ្ជីទំព័រដែលកំពុងត្រូវបានការពារ សូមមើលនៅ [[{{#special:ProtectedPages}}]]។',
+'protectedtitles-summary' => 'ទំព័រនេះរាយបញ្ជីចំណងជើងទាំងឡាយដែលស្ថិននៅក្រោមការការពារមិនអោយបង្កើត។ សម្រាប់បញ្ជីទំព័រដែលកំពុងត្រូវបានការពារ សូមមើលនៅ [[{{#special:ProtectedPages}}|{{int:protectedpages}}]]។',
 'protectedtitlesempty' => 'មិន​មាន​ចំណងជើង​ណា​ដែល​ត្រូវ​បាន​ការពារ​ជាមួយនឹង​ប៉ារ៉ាម៉ែត​ទាំងនេះ​ទេ​នាពេលថ្មីៗនេះ។',
 'listusers' => 'បញ្ជីអ្នកប្រើប្រាស់',
 'listusers-editsonly' => 'បង្ហាញតែអ្នកប្រើប្រាស់ដែលបានកែប្រែអត្ថបទប៉ុណ្ណោះ',
index c322182..f213462 100644 (file)
@@ -309,7 +309,6 @@ $messages = array(
 'disclaimers' => 'ಅಬಾಧ್ಯತೆಗಳು',
 'disclaimerpage' => 'Project:ಸಾಮಾನ್ಯ ಅಬಾಧ್ಯತೆಗಳು',
 'edithelp' => 'ಸಂಪಾದನೆಗೆ ಸಹಾಯ',
-'helppage' => 'Help:ಪರಿವಿಡಿ',
 'mainpage' => 'ಮುಖ್ಯ ಪುಟ',
 'mainpage-description' => 'ಮುಖ್ಯ ಪುಟ',
 'policy-url' => 'Project:ನಿಯಮಾವಳಿಗಳು',
@@ -672,7 +671,7 @@ $2',
 'newarticle' => '(ಹೊಸತು)',
 'newarticletext' => "ಇನ್ನೂ ಅಸ್ಥಿತ್ವದಲ್ಲಿ ಇರದ ಪುಟದ ಲಿಂಕ್ ಅನ್ನು ನೀವು ಒತ್ತಿರುವಿರಿ.
 ಈ ಪುಟವನ್ನು ಸೃಷ್ಟಿಸಲು ಕೆಳಗಿನ ಚೌಕದಲ್ಲಿ ಬರೆಯಲು ಆರಂಭಿಸಿರಿ.
-(ಹೆಚ್ಚು ಮಾಹಿತಿಗೆ [[{{MediaWiki:Helppage}}|ಸಹಾಯ ಪುಟ]] ನೋಡಿ).
+(ಹೆಚ್ಚು ಮಾಹಿತಿಗೆ [$1 ಸಹಾಯ ಪುಟ] ನೋಡಿ).
 ಈ ಪುಟಕ್ಕೆ ನೀವು ತಪ್ಪಾಗಿ ಬಂದಿದ್ದಲ್ಲಿ ನಿಮ್ಮ ಬ್ರೌಸರ್‍ನ '''back''' ಬಟನ್ ಅನ್ನು ಒತ್ತಿ.",
 'anontalkpagetext' => "----''ಇದು ಖಾತೆಯೊಂದನ್ನು ಹೊಂದಿರದ ಅನಾಮಧೇಯ ಬಳಕೆದಾರರೊಬ್ಬರ ಚರ್ಚೆ ಪುಟ.
 ಖಾತೆಯಿಲ್ಲದಿರುವುದರಿಂದ ಅವರನ್ನು ಗುರುತಿಸಲು ಅವರ IP ವಿಳಾಸವನ್ನು ಉಪಯೋಗಿಸುತ್ತಿದ್ದೇವೆ.
@@ -812,9 +811,6 @@ $2',
 'rev-showdeleted' => 'ತೋರಿಸು',
 'revdelete-show-file-submit' => 'ಹೌದು',
 'revdelete-selected' => "'''[[:$1]]ರ ಆಯ್ಕೆಯಾಗಿರುವ {{PLURAL:$2|ಆವೃತ್ತಿ|ಆವೃತ್ತಿಗಳು}}:'''",
-'revdelete-text' => "'''ಅಳಿಸಲ್ಪಟ್ಟಿರುವ ಬದಲಾವಣೆಗಳು ಮತ್ತು ಘಟನೆಗಳು ಪುಟದ ಇತಿಹಾಸದಲ್ಲಿ ತೋರುತ್ತದೆ, ಆದರೆ ಅದರಲ್ಲಿನ ಮಾಹಿತಿಯು ಸಾರ್ವಜನಿಕರಿಗೆ ದೊರೆಯುವುದಿಲ್ಲ.'''
-
-{{SITENAME}} ಅಲ್ಲಿನ ಇತರ ನಿರ್ವಾಹಕರು ಹೀಗೆ ಅಡಗಿಸಲ್ಪಟ್ಟ ಮಾಹಿತಿಯನ್ನು ಪಡೆಯಬಹುದು ಮತ್ತು ಅದರ ಅಳಿಸುವಿಕೆಯನ್ನು ಇದೇ ವ್ಯವಸ್ಥೆಯ ಪ್ರಕಾರ ರದ್ದುಮಾಡಬಹುದು. ಹೆಚ್ಚುವರಿ ನಿಬಂಧನಗಳಿದ್ದರೆ ಹಾಗೆ ಮಾಡಲಾಗುವುದಿಲ್ಲ.",
 'revdelete-legend' => 'ಕಾಣಿಸುವಿಕೆಯ ನಿಬಂಧನೆಗಳನ್ನು ನಿಶ್ಚಯಿಸು',
 'revdelete-hide-text' => 'ಬದಲಾವಣೆಯ ಪಠ್ಯವನ್ನು ಅಡಗಿಸು',
 'revdelete-hide-image' => 'ಫೈಲಿನಲ್ಲಿರುವ ಮಾಹಿತಿಯನ್ನು ಅಡಗಿಸು',
index 9e28c45..5311d94 100644 (file)
@@ -399,7 +399,6 @@ $messages = array(
 'tog-ccmeonemails' => '이메일을 보낼 때 내 이메일로 복사본을 보내기',
 'tog-diffonly' => '편집 차이를 비교할 때 문서 내용을 보지 않기',
 'tog-showhiddencats' => '숨은 분류 보이기',
-'tog-noconvertlink' => '링크 제목 변환을 비활성화',
 'tog-norollbackdiff' => '되돌리기 후 차이를 보지 않기',
 'tog-useeditwarning' => '바꾼 내용을 저장하지 않고 편집 페이지를 벗어날 때 알림',
 'tog-prefershttps' => '로그인할 때 항상 보안 연결 사용',
@@ -611,7 +610,6 @@ $1',
 'disclaimers' => '면책 조항',
 'disclaimerpage' => 'Project:면책 조항',
 'edithelp' => '편집 도움말',
-'helppage' => 'Help:목차',
 'mainpage' => '대문',
 'mainpage-description' => '대문',
 'policy-url' => 'Project:정책',
@@ -813,8 +811,7 @@ $2',
 'gotaccountlink' => '로그인하세요',
 'userlogin-resetlink' => '로그인 정보를 잊으셨나요?',
 'userlogin-resetpassword-link' => '비밀번호를 잊으셨나요?',
-'helplogin-url' => 'Help:로그인',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|로그인에 관한 도움말]]',
+'userlogin-helplink2' => '로그인에 대한 도움말',
 'userlogin-loggedin' => '이미 $1로 로그인되어 있습니다. 아래의 양식을 사용하여 다른 계정으로 로그인하세요.',
 'userlogin-createanother' => '다른 계정 만들기',
 'createacct-join' => '아래에 정보를 입력하세요.',
@@ -914,6 +911,7 @@ $1 기다렸다가 다시 시도하세요.',
 'createacct-another-realname-tip' => '실명은 선택 사항입니다.
 실명을 입력하면 문서 기여에 사용자의 이름이 들어가게 됩니다.',
 'pt-login' => '로그인',
+'pt-login-button' => '로그인',
 'pt-createaccount' => '계정 만들기',
 'pt-userlogout' => '로그아웃',
 
@@ -946,7 +944,10 @@ $1 뒤에 다시 시도하세요.',
 'resetpass-temp-password' => '임시 비밀번호:',
 'resetpass-abort-generic' => '비밀번호 바꾸기가 확장 기능에 의해 중단되었습니다.',
 'resetpass-expired' => '비밀번호가 만료되었습니다. 로그인하려면 새로운 비밀번호를 설정해야 합니다.',
-'resetpass-expired-soft' => '비밀번호가 만료되어 재설정해야 합니다. 지금 새로운 비밀번호를 선택하거나, 취소를 클릭하고 나중에 재설정해주세요.',
+'resetpass-expired-soft' => '비밀번호가 만료되어 재설정해야 합니다. 지금 새로운 비밀번호를 선택하거나, "{{int:resetpass-submit-cancel}}"를 클릭하고 나중에 재설정해주세요.',
+'resetpass-validity-soft' => '귀하의 비밀번호는 유효하지 않습니다: $1
+
+새로운 비밀번호를 지금 설정하거나, "{{int:resetpass-submit-cancel}}"을 눌러 나중에 재설정하세요.',
 
 # Special:PasswordReset
 'passwordreset' => '비밀번호 재설정',
@@ -1093,7 +1094,7 @@ $1 또는 [[{{MediaWiki:Grouppage-sysop}}|다른 관리자]]에게 차단에 대
 'accmailtext' => '[[User talk:$1|$1]] 사용자의 비밀번호를 임의로 만들어 $2(으)로 보냈습니다. 로그인하고 나서 [[Special:ChangePassword|비밀번호를 바꿀]] 수 있습니다.',
 'newarticle' => '(새 문서)',
 'newarticletext' => "아직 없는 문서의 링크를 따라왔습니다.
-새 문서를 만들려면 아래 상자에 내용을 입력하면 됩니다. (자세한 내용은 [[{{MediaWiki:Helppage}}|도움말 문서]]를 참고하세요)
+새 문서를 만들려면 아래 상자에 내용을 입력하면 됩니다. (자세한 내용은 [$1 도움말 문서]를 참고하세요)
 만약 잘못 찾아왔다면, 브라우저의 '''뒤로''' 버튼을 눌러 주세요.",
 'anontalkpagetext' => '----
 여기는 계정을 만들지 않았거나 사용하고 있지 않은 익명 사용자를 위한 토론 문서입니다.
@@ -1346,8 +1347,9 @@ $2개 보다 적게 {{PLURAL:$2|써야}} 하지만 {{PLURAL:$1|지금은 $1개
 'revdelete-show-file-submit' => '예',
 'revdelete-selected' => "'''[[:$1]]의 {{PLURAL:$2|선택한 판}}:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|선택한 기록}}:'''",
-'revdelete-text' => "'''삭제된 판과 기록은 문서 역사와 기록에 계속 나타나지만, 내용은 공개되지 않을 것입니다.'''
-{{SITENAME}}의 다른 관리자는 다른 제한이 설정되어 있지 않는 한, 숨겨진 내용을 볼 수 있고, 같은 도구를 이용해 되살릴 수 있습니다.",
+'revdelete-text-text' => '삭제된 판은 여전히 문서 역사에 남게 되지만, 그 내용의 일부는 다른 사람들이 접근할 수 없게 됩니다.',
+'revdelete-text-file' => '삭제된 파일 버전은 계속 파일 역사에 남게 되지만, 내용의 일부는 다른 사람들이 접근할 수 없게 됩니다.',
+'logdelete-text' => '삭제된 로그 내용은 로그에 보여지겠지만, 내용의 일부는 다른 사람들이 접근할 수 없게 됩니다.',
 'revdelete-confirm' => '이 작업을 수행하는 것의 결과를 알고 있으며, [[{{MediaWiki:Policy-url}}|정책]]에 맞는 행동인지 확인해주세요.',
 'revdelete-suppress-text' => "숨기기는 '''다음 경우에만''' 사용되어야 합니다:
 * 잠재적인 비방 정보
@@ -1465,8 +1467,7 @@ $1",
 'shown-title' => '쪽마다 {{PLURAL:$1|결과}} $1개씩 보기',
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3) 보기',
 'searchmenu-exists' => "'''이 위키에 \"[[:\$1]]\"의 이름을 가진 문서가 있습니다.'''",
-'searchmenu-new' => '<strong>이 위키에 "[[:$1]]" 문서를 만드세요!</strong>
-{{PLURAL:$2|0=|검색으로 찾은 문서들을 참조하세요.}}',
+'searchmenu-new' => '<strong>이 위키에 "[[:$1]]" 문서를 만드세요!</strong> {{PLURAL:$2|0=|검색으로 찾은 문서도 보세요.|찾은 검색 결과도 보세요.}}',
 'searchprofile-articles' => '본문',
 'searchprofile-project' => '도움말 및 프로젝트 문서',
 'searchprofile-images' => '멀티미디어',
@@ -1485,7 +1486,7 @@ $1",
 'search-file-match' => '(내용이 일치하는 파일 있음)',
 'search-suggest' => '$1 문서를 찾고 있으신가요?',
 'search-interwiki-caption' => '자매 프로젝트',
-'search-interwiki-default' => '$1 결과:',
+'search-interwiki-default' => '$1 로부터의 결과:',
 'search-interwiki-more' => '(더 보기)',
 'search-relatedarticle' => '관련',
 'searcheverything-enable' => '모든 이름공간에서 검색',
@@ -1815,14 +1816,26 @@ HTML 태그를 확인하세요.',
 'recentchanges-legend-heading' => "'''범례:'''",
 'recentchanges-legend-newpage' => '([[Special:NewPages|새 문서 목록]]도 보세요)',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "다음은 '''$2'''에서부터 바뀐 문서 '''$1'''개입니다.",
+'rcnotefrom' => '다음은 <strong>$2</strong>에서부터 바뀐 문서 <strong>$1</strong>개입니다.',
 'rclistfrom' => '$1 이래로 새로 바뀐 문서 보기',
 'rcshowhideminor' => '사소한 편집을 $1',
+'rcshowhideminor-show' => '보이기',
+'rcshowhideminor-hide' => '숨기기',
 'rcshowhidebots' => '봇을 $1',
+'rcshowhidebots-show' => '보이기',
+'rcshowhidebots-hide' => '숨기기',
 'rcshowhideliu' => '등록된 사용자를 $1',
+'rcshowhideliu-show' => '보이기',
+'rcshowhideliu-hide' => '숨기기',
 'rcshowhideanons' => '익명 사용자를 $1',
+'rcshowhideanons-show' => '보이기',
+'rcshowhideanons-hide' => '숨기기',
 'rcshowhidepatr' => '순찰된 편집을 $1',
+'rcshowhidepatr-show' => '보이기',
+'rcshowhidepatr-hide' => '숨기기',
 'rcshowhidemine' => '내 편집을 $1',
+'rcshowhidemine-show' => '보이기',
+'rcshowhidemine-hide' => '숨기기',
 'rclinks' => '최근 $2일간의 $1개 바뀐 문서 보기<br />$3',
 'diff' => '비교',
 'hist' => '역사',
@@ -1954,6 +1967,7 @@ $2 {{PLURAL:$3|형식만 사용할 수 있습니다}}.',
 'uploaddisabledtext' => '파일 올리기 기능이 비활성화되어 있습니다.',
 'php-uploaddisabledtext' => 'PHP 파일 올리기가 비활성화되었습니다. 파일 올리기 설정을 확인하십시오.',
 'uploadscripted' => '이 파일에는 HTML이나 다른 스크립트 코드가 포함되어 있어, 웹 브라우저에서 오류를 일으킬 수 있습니다.',
+'uploadscriptednamespace' => "이 SVG 파일은 사용할 수 없는 이름공간 '$1'을 포함하고 있습니다.",
 'uploadinvalidxml' => '업로드된 파일의 XML의 구문을 분석할 수 없습니다.',
 'uploadvirus' => '파일이 바이러스를 포함하고 있습니다!
 자세한 설명: $1',
@@ -2332,7 +2346,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'deadendpagestext' => '{{SITENAME}} 내의 다른 문서로 나가는 링크가 없는 문서의 목록입니다.',
 'protectedpages' => '보호된 문서 목록',
 'protectedpages-indef' => '오른쪽 조건에 맞는 보호만 보기',
-'protectedpages-summary' => '이 문서는 현재 보호된 기존 문서를 나열합니다. 만들기 보호된 문서 제목 목록을 보려면 [[{{#special:ProtectedTitles}}]]를 참조하세요.',
+'protectedpages-summary' => '이 문서는 현재 보호된 기존 문서를 나열합니다. 만들기 보호된 문서 제목 목록을 보려면 [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]]를 참조하세요.',
 'protectedpages-cascade' => '연쇄적 보호만 보기',
 'protectedpages-noredirect' => '넘겨주기를 숨기기',
 'protectedpagesempty' => '보호되어 있는 문서가 없습니다.',
@@ -2345,7 +2359,7 @@ URL이 맞고 해당 웹사이트가 작동하는지 확인해주세요.',
 'protectedpages-unknown-timestamp' => '알 수 없음',
 'protectedpages-unknown-performer' => '알 수 없는 사용자',
 'protectedtitles' => '만들기 보호된 표제어 목록',
-'protectedtitles-summary' => '이 문서는 현재 만들기 보호가 설정되어 있는 문서 제목을 나열합니다. 보호된 기존 문서들의 목록을 보려면 [[{{#special:ProtectedPages}}]]을 참조하세요.',
+'protectedtitles-summary' => '이 문서는 현재 만들기 보호가 설정되어 있는 문서 제목을 나열합니다. 보호된 기존 문서들의 목록을 보려면 [[{{#special:ProtectedPages}}|{{int:protectedpages}}]]을 참조하세요.',
 'protectedtitlesempty' => '해당 조건에 맞는 만들기 금지 표제어가 없습니다.',
 'listusers' => '사용자 목록',
 'listusers-editsonly' => '기여가 있는 사용자만 보기',
@@ -2623,7 +2637,7 @@ $UNWATCHURL
 'delete-warning-toobig' => '이 문서에는 {{PLURAL:$1|편집 역사}}가 $1개 있습니다.
 편집 역사가 긴 문서를 삭제하면 {{SITENAME}} 데이터베이스 동작에 큰 영향을 줄 수 있습니다.
 주의해 주세요.',
-'deleting-backlinks-warning' => "'''경고:''' 삭제하려는 문서가 다른 문서에 연결되거나 삽입되어 있습니다.",
+'deleting-backlinks-warning' => "'''경고:''' 삭제하려는 문서가 [[Special:WhatLinksHere/{{FULLPAGENAME}}|다른 문서에 연결]]되거나 삽입되어 있습니다.",
 
 # Rollback
 'rollback' => '편집 되돌리기',
@@ -2804,8 +2818,10 @@ $1',
 'sp-contributions-blocked-notice-anon' => '이 IP 주소는 현재 차단되어 있습니다.
 차단 기록은 다음과 같습니다:',
 'sp-contributions-search' => '기여 검색',
+'sp-contributions-suppresslog' => '삭제된 사용자 기여',
 'sp-contributions-username' => 'IP 주소 또는 사용자 이름:',
 'sp-contributions-toponly' => '최신판만 보기',
+'sp-contributions-newonly' => '새 글인 기여만 보기',
 'sp-contributions-submit' => '검색',
 'sp-contributions-explain' => '',
 
index 6856c0f..3951212 100644 (file)
@@ -358,7 +358,6 @@ $1',
 'disclaimers' => 'Джууаблылыкъны унамау',
 'disclaimerpage' => 'Project:Джууаблылыкъны унамау',
 'edithelp' => 'Тюрлендириуню юсюнден болушлукъ',
-'helppage' => 'Help:Болушлукъ',
 'mainpage' => 'Баш бет',
 'mainpage-description' => 'Баш бет',
 'policy-url' => 'Project:Джорукъла',
@@ -542,8 +541,7 @@ $2',
 'gotaccountlink' => 'Системагъа кир',
 'userlogin-resetlink' => 'Кирир ючюн билгилеригизни унутхан этгенмисиз?',
 'userlogin-resetpassword-link' => 'Паролну джибериу',
-'helplogin-url' => 'Help:Кириу',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Системагъа кириуде болушлукъ]]',
+'userlogin-createanother' => 'Башха аккаунт къурау',
 'createacct-join' => 'Билгилеринги тюбюрекде джаз.',
 'createacct-emailrequired' => 'Электрон почтаны адреси',
 'createacct-emailoptional' => 'Электрон почтаны адреси (амалсыз тюлдю)',
@@ -556,6 +554,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|бет}}',
@@ -620,6 +619,9 @@ $2',
 'login-abort-generic' => 'Системагъа кириу джетишимсиз болду',
 'loginlanguagelabel' => 'Тил: $1',
 'suspicious-userlogout' => 'Терс браузер неда кэш этиучу прокси берген соруугъа ушагъаны ючюн, Сизни чыгъаргъа сорууугъуз алынмагъанды.',
+'pt-login' => 'Кириу',
+'pt-createaccount' => 'Аккаунт къурау',
+'pt-userlogout' => 'Чыгъыу',
 
 # Email sending
 'php-mail-error-unknown' => "PHP's mail() функцияда белгили болмагъан халат",
@@ -754,7 +756,7 @@ $2',
 Регистрацияны тындыргъындан сора,  ''[[Special:ChangePassword|паролну тюрлендирирге]]'' боллукъсуз.",
 'newarticle' => '(Джангы)',
 'newarticletext' => "Сиз джибериу бла алкъын къуралмагъан бетге кёчгенсиз.
-Аны къурар ючюн тюбюндеги терезеде статьяны текстин басмалагъыз (толуракъ [[{{MediaWiki:Helppage}}|ангылатыу бетде]] къарагъыз).
+Аны къурар ючюн тюбюндеги терезеде статьяны текстин басмалагъыз (толуракъ [$1 ангылатыу бетде] къарагъыз).
 Джангылыб кирген эсегиз а уа бери, браузеригизни '''артха''' тиегин басыгъызда къоюгъуз.",
 'anontalkpagetext' => "----''Бу сюзюу бет, тергеу джазыу (аккаунт) къурамагъан неда аны бла хайырланмагъан аноним къошулуучунукъуду.
 Аны ючюн идентификация этерге IP-адрес хайырланады.
@@ -981,8 +983,6 @@ $3 джанындан берилген сылтау: ''$2''",
 'revdelete-show-file-submit' => 'Хоу',
 'revdelete-selected' => "'''[[:$1]] бетни {{PLURAL:$2|1=Сайланнган версия|сайланнган версиялары}}:'''",
 'logdelete-selected' => "'''Журналны {{PLURAL:$1|1=Сайланнган джазыу|сайланнган джазыулары}}:'''",
-'revdelete-text' => "'''Кетерилге версияла бла болуула алкъын бетни тарихи бла журналлада кёрюннюкдю, алай а бир кесеги тюз кириучюледен джашырыллыкъды.'''
-{{SITENAME}} сайтдагъы башха администраторла джашырылгъан ичге кирирге эмда аны ызына салыргъа боллукъдула.",
 'revdelete-confirm' => 'Тилейбиз, буну этерге излегенигизни, эсеблерин ангылагъаныгъызны, эм буну [[{{MediaWiki:Policy-url}}|джорукълагъа]] кёре этгенигизни билдиригиз.',
 'revdelete-suppress-text' => "Джашырыу '''джангыз''' бу турумлада этиледи:
 * Келишмеген энчи информация
index be47fce..9801a33 100644 (file)
@@ -248,7 +248,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Scheck mer en Kopie, wann ich en <i lang="en">e-mail</i> an ene andere Metmaacher scheck',
 'tog-diffonly' => 'Zeich beim Versione Verjliche nur de Ungerscheide aan (ävver pack nit noch de janze Sigg dodronger)',
 'tog-showhiddencats' => 'Donn de verstoche Saachjroppe aanzeije',
-'tog-noconvertlink' => 'Don de Tittele nit ömwandelle',
 'tog-norollbackdiff' => 'Donn noh „{{int:Rollback}}“ de Ungerscheide nit aanzeije',
 'tog-useeditwarning' => 'Donn mesch warne, wann esch vun en Sigg fott jonn, ih dat esch all ming Änderunge avjeschpeischert hann.',
 'tog-prefershttps' => 'Jangk emmer övver en verschlößelte Verbendong bei Enlogge',
@@ -460,7 +459,6 @@ $1',
 'disclaimers' => 'Henwies',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Hölp för et Bearbeide',
-'helppage' => 'Help:Hölp',
 'mainpage' => 'Haupsigg',
 'mainpage-description' => 'Haupsigg',
 'policy-url' => 'Project:Rejelle',
@@ -672,9 +670,7 @@ Wann De wells, künnts De Ding [[Special:Preferences|Enschtällonge aanpaße]].'
 'gotaccountlink' => 'Enlogge',
 'userlogin-resetlink' => 'Häß De Ding Daate för et Enlogge verjäße?',
 'userlogin-resetpassword-link' => 'Paßwoot verjäße?',
-'helplogin-url' => 'Help:Övver et Enlogge',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hölp bem Enlogge]]',
-'userlogin-loggedin' => 'Do bes ald als {{GENDER:$1|dä Metmaacher|de Metmaacherėn|dä Metmaacher|de Metmaacherėn|däMetmaacher}} [[User:$1]] enjelogg. Met heh dämm Fommolaa kanns De jäz ävver onger enem andere Nahme enlogge.',
+'userlogin-loggedin' => 'Do bes ald als {{GENDER:$1|dä Metmaacher|de Metmaacherėn|dä Metmaacher|de Metmaacherėn|däMetmaacher}} [[User:$1|$1]] enjelogg. Met heh dämm Fommolaa kanns De jäz ävver onger enem andere Nahme enlogge.',
 'userlogin-createanother' => 'Donn ene zohsäzlejje Zohjang aanlääje',
 'createacct-join' => 'Jiv Ding Daate en:',
 'createacct-another-join' => 'Maach de nüüdeje Aanjaabe för dä neue Zohjaang.',
@@ -833,7 +829,7 @@ Do häs Der enzwesche e neu Zweschepaßwood jehollt.',
 'resetpass-temp-password' => 'Zweschepasswood:',
 'resetpass-abort-generic' => 'E Zohsazprojramm häd_et nit zohjelohße, et Paßwoot ze ändere.',
 'resetpass-expired' => 'Di Paßwood es afjeloufe. Donn jetz e neu Passwoot för et Enlogg faßlääje.',
-'resetpass-expired-soft' => 'Ding Paßwood es afjeloufe u moß neu jesaz wääde. Bes esu jood_un donn e neu Paßwoot ußsöhke, udder donn op {{int:cancel}} jonn, öm et schpääder ze säze.',
+'resetpass-expired-soft' => 'Ding Paßwood es afjeloufe un moß neu jesaz wääde. Bes esu jood_un donn e neu Paßwoot ußsöhke, udder jangk op {{int:resetpass-submit-cancel}}, öm et schpääder ze säze.',
 
 # Special:PasswordReset
 'passwordreset' => 'Et Paßwoot zeröck säze',
@@ -1003,7 +999,7 @@ wann De wider enjelogg bes.',
 'newarticle' => '(Neu)',
 'newarticletext' => 'Ene Link op en Sigg, wo noch nix drop steiht, weil et se noch jar nit jitt, hät Dich noh heh jebraht.
 Öm die Sigg aanzeläje, schriev heh unge en dat Feld eren, un dun dat dann avspeichere.
-Luur op de [[{{MediaWiki:Helppage}}|Sigge met Hölp]] noh, wann De mieh dodrüvver wesse wells.
+Luur op de [$1 Sigge met Hölp] noh, wann De mieh dodrüvver wesse wells.
 Wann De jar nit heh hen kumme wollts, dann jangk zeröck op die Sigg, wo De herjekumme bes, Dinge Brauser hät ene Knopp doför.',
 'anontalkpagetext' => '----
 <i>Dat heh es de Klaaf Sigg för ene namenlose Metmaacher. Dä hät sich noch keine Metmaacher Name jejovve un
@@ -1281,9 +1277,6 @@ Als ene Wiki_Köbes kanns De de Ungerscheide ävver aankike wann De wells.",
 'revdelete-show-file-submit' => 'Lohß Jonn!',
 'revdelete-selected' => "'''{{PLURAL:$2|Ein usjewählte Version|$2 usjewählte Versione|Kein Version usjewählt}} vun [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Dä ußjewählte Logboch-Endrach|De Ußjewählte Logboch-Endrähsch}}:'''",
-'revdelete-text' => "'''Dä fottjeschmesse Sigge ehre Enhald kanns De nit mieh aanluure. Se blieve ävver en de Liss met de Versione un en de Logböcher dren.'''
-Ene Wiki Köbes kann de fottjeschmessene Krom immer noch aanluere un kann en och widder herholle, usser wann bei
-dem Wiki singe Installation dat anders fassjelaht woode es.",
 'revdelete-confirm' => 'Bes esu joot un doon dat beschtääteje, un donn domet ongerschriive, dat De dat donn wells, dat De weiß, wat dobei eruß kütt, un dat De dat och noh de [[{{MediaWiki:Policy-url}}|Rääjelle]] deihß.',
 'revdelete-suppress-text' => "Dat sullt '''blooß''' jedonn wäde för:
 * onjesäzlesche Aanjaabe
@@ -1748,11 +1741,23 @@ Do kann Der [[Special:ResetTokens|ene neue Schlößel maache lohße]], wann nü
 'rcnotefrom' => 'Hee {{PLURAL:$1|es ein|sin bes op <strong>$1</strong>|es keine}} fun de Änderunge zick dem <strong>$3</strong> öm <strong>$4</strong> Uhr opjelėß.',
 'rclistfrom' => 'Zeich de Änderunge vum $1 aan',
 'rcshowhideminor' => '$1 klein Mini-Änderunge',
+'rcshowhideminor-show' => 'Zeisch',
+'rcshowhideminor-hide' => 'Verschteihsch',
 'rcshowhidebots' => '$1 de Bots ehr Änderunge',
+'rcshowhidebots-show' => 'Zeisch',
+'rcshowhidebots-hide' => 'Verschteihsch',
 'rcshowhideliu' => 'De aanjemeldte Metmaacher ehr Änderunge: $1',
+'rcshowhideliu-show' => 'Zeisch',
+'rcshowhideliu-hide' => 'Verschteihsch',
 'rcshowhideanons' => '$1 de namenlose Metmaacher ehr Änderunge',
+'rcshowhideanons-show' => 'Zeisch',
+'rcshowhideanons-hide' => 'Verschteihsch',
 'rcshowhidepatr' => '$1 de nohjeluurte Änderunge',
+'rcshowhidepatr-show' => 'Zeisch',
+'rcshowhidepatr-hide' => 'Verschteihsch',
 'rcshowhidemine' => '$1 ming eije Änderunge',
+'rcshowhidemine-show' => 'Zeisch',
+'rcshowhidemine-hide' => 'Verschteihsch',
 'rclinks' => 'Zeich de letzte {{int:pipe-separator}}$1{{int:pipe-separator}} Änderunge us de letzte {{int:pipe-separator}}$2{{int:pipe-separator}} Däch, un dun {{int:pipe-separator}}$3',
 'diff' => 'Ungerscheid',
 'hist' => 'Versione',
@@ -1894,6 +1899,7 @@ wann De se noch han wells.',
 'php-uploaddisabledtext' => 'Et Dateie Huhlade es en PHP affjeschalldt.
 Bes esu joot un donn noh de Enshtellung <i lang="en">file_uploads</i> loore.',
 'uploadscripted' => 'En dä Datei es HTML dren oder Code vun enem Skripp, dä künnt Dinge Brauser en do verkihrte Hals krije un usführe.',
+'uploadscriptednamespace' => 'De aanjejovve <i lang="en" xml:lang="en">SVG</i>-Dattei benöds dä verbodde Nahme-Roum „$1“',
 'uploadinvalidxml' => 'Dat <i lang="en" xml:lang="en">XML</i> en dä huh jelaade Dattei kunnt wohr nit en Oodenong beim Ongersöhke.',
 'uploadvirus' => 'Esu ene Dress:
 <br />
@@ -2205,7 +2211,7 @@ All de Sigge em Wiki, och Klaafsigge, Ömleitunge, un esu jet',
 'statistics-views-peredit' => 'Sigge affjeroofe, pro Änderung',
 'statistics-users' => '[[Special:ListUsers|Metmaacher]] aajemelldt',
 'statistics-users-active' => 'Aktive Metmaacher',
-'statistics-users-active-desc' => 'Metmaacher, die {{PLURAL:$1|hück un jesterre|en de läzte $1 Dääsh|hück}} jät jemaat han.',
+'statistics-users-active-desc' => 'Aktiv sin Metmaacher, di {{PLURAL:$1|hück un jesterre|en de läzte $1 Dääsch|hück}} jät jemaat han.',
 'statistics-mostpopular' => 'De miets affjeroofe Sigge',
 
 'pageswithprop' => 'Sigge med en beschtemmpte Eijeschaff',
@@ -2770,8 +2776,10 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Heh di <i lang="en">IP</i>-Address es em Momang jesperrt.
 De neuste Sperr ier Enndraach em Logbooch es:',
 'sp-contributions-search' => 'Söök noh Metmaacher ier Beidräg',
+'sp-contributions-suppresslog' => 'verschtoche Beidrääch',
 'sp-contributions-username' => 'Metmaachername odder IP-Address:',
 'sp-contributions-toponly' => 'Bloß neuste Versione zeije',
+'sp-contributions-newonly' => 'Blohß neu aanjelaate Sigge zeije.',
 'sp-contributions-submit' => 'Söhke',
 
 # What links here
index 93a5fef..fef7064 100644 (file)
@@ -328,7 +328,6 @@ $messages = array(
 'disclaimers' => 'Ferexetname',
 'disclaimerpage' => 'Project:Ferexetname',
 'edithelp' => 'Alîkariya guherandinê',
-'helppage' => 'Help:Alîkarî',
 'mainpage' => 'Destpêk',
 'mainpage-description' => 'Destpêk',
 'policy-url' => 'Project:Rêgez',
@@ -476,7 +475,6 @@ Bila di bîra te de be ku gengaz e hin rûpel mîna ku tu hîn bi navê xwe qeyd
 'gotaccountlink' => 'Têkeve',
 'userlogin-resetlink' => 'Te agahiyên hesabê xwe ji bîr kirin?',
 '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:',
@@ -644,7 +642,7 @@ Zanibe ku tu nikarî e-nameya bişînî heta tu di [[Special:Preferences|tercih
 'accmailtext' => "Şîfreya '$1' hat şandin ji $2 re.",
 'newarticle' => '(Nû)',
 'newarticletext' => "Ev rûpel hîn tune. Eger tu bixwazî vê rûpelê çêkî, dest bi nivîsandinê bike û piştre qeyd bike. '''Wêrek be''', biceribîne!<br />
-Ji bo alîkariyê binêre: [[{{MediaWiki:Helppage}}|Alîkarî]].<br />
+Ji bo alîkariyê binêre: [$1 Alîkarî].<br />
 Heke tu bi şaşîtî hatî, bizîvire rûpela berê.",
 'anontalkpagetext' => "----''Ev rûpela gotûbêjê ye ji bo bikarhênerên nediyarkirî ku hîn hesabekî xwe çênekirine an jî bikarnaînin. Ji ber vê yekê divê em wan bi navnîşana IP ya hejmarî nîşan bikin. Navnîşaneke IP dikare ji aliyê gelek kesan ve were bikaranîn. Heger tu bikarhênerekî nediyarkirî bî û bawerdikî ku nirxandinên bê peywend di der barê te de hatine kirin ji kerema xwe re [[Special:UserLogin/signup|hesabekî xwe veke an jî têkeve]] da ku tu xwe ji tevlîheviyên bi bikarhênerên din re biparêzî.''",
 'noarticletext' => 'Ev rûpel niha vala ye, tu dikarî [[Special:Search/{{PAGENAME}}|Di nav gotarên din de li "{{PAGENAME}}" bigerî]] an jî [{{fullurl:{{FULLPAGENAME}}|action=edit}} vê rûpelê biguherînî].',
index fcd700f..c86b2d9 100644 (file)
@@ -434,7 +434,6 @@ $1',
 'disclaimers' => 'Avisyansow',
 'disclaimerpage' => 'Project:Avisyans ollgemmyn',
 'edithelp' => 'Gweres gans chanjya',
-'helppage' => 'Help:Gweres',
 'mainpage' => 'Dynnargh',
 'mainpage-description' => 'Dynnargh',
 'policy-url' => 'Project:Polici',
@@ -549,8 +548,6 @@ Na ankevewgh dhe janjya agas [[Special:Preferences|dewisyansow {{SITENAME}}]].',
 '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)',
@@ -692,7 +689,7 @@ Rekordys vydh agas trigva IP yn istori an folen-ma.",
 '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).
+Rag gwruthyl an folen, dalethewgh jynnskrifa y'n gist a-woles (gwelewgh an [$1 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,
index 7e35cdd..626d51c 100644 (file)
@@ -273,7 +273,6 @@ $1',
 'disclaimers' => 'Жоопкерчиликтен баш тартуу',
 'disclaimerpage' => 'Project:Жоопкерчиликтен баш тартуу',
 'edithelp' => 'Оңдоп-түзөөгө жардам',
-'helppage' => 'Help:Мазмуну',
 'mainpage' => 'Баш барак',
 'mainpage-description' => 'Баш барак',
 'policy-url' => 'Project:Эрежелер',
@@ -418,8 +417,6 @@ $1',
 'gotaccountlink' => 'Кирүү',
 'userlogin-resetlink' => 'Кирүүчү маалыматарыңызды эсиңизден чыгардыңызбы?',
 'userlogin-resetpassword-link' => 'Сырсөздү алмаштыруу',
-'helplogin-url' => 'Help:Эсепке кирүү',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Системге кирүүгө жардам]]',
 'createacct-join' => 'Маалыматыңызды төмөнгө териңиз.',
 'createacct-emailrequired' => 'Эмейл дарек',
 'createacct-emailoptional' => 'Эмейл дарек (милдеттүү эмес)',
@@ -577,7 +574,7 @@ IP дарегиңиз бул барактын оңдоо тарыхына жаз
 'accmailtext' => ' [[User talk:$1|$1]] үчүн сырсөз $2 ге жөнөтүлдү.',
 'newarticle' => '(Жаңы)',
 'newarticletext' => "Сиз ачыла элек баракка шилтемени бастыңыз.
-Бул баракты түзүү үчүн, ылдый жактагы терезеге жаза баштаңыз (кошумча маалымат алуу үчүн [[{{MediaWiki:Helppage}}|жардам барагын]] караңыз).
+Бул баракты түзүү үчүн, ылдый жактагы терезеге жаза баштаңыз (кошумча маалымат алуу үчүн [$1 жардам барагын] караңыз).
 Эгерде Сиз бул жерге жаңылыштык менен кирип калган болсоңуз, анда браузериңиздеги '''артка''' баскычын басыңыз.",
 'noarticletext' => "Азыр бул баракта текст жок.
 Сиз [[Special:Search/{{PAGENAME}}|ушул аталыш менен баракты изде]] башка барактарда 
index 6d0db12..ca20257 100644 (file)
@@ -391,7 +391,6 @@ $messages = array(
 'disclaimers' => 'Repudiationes',
 'disclaimerpage' => 'Project:Repudiationes',
 'edithelp' => 'Opes recensendi',
-'helppage' => 'Help:Adiutatum',
 'mainpage' => 'Pagina prima',
 'mainpage-description' => 'Pagina prima',
 'policy-url' => 'Project:Consilium',
@@ -533,7 +532,6 @@ Noli oblivisci [[Special:Preferences|praeferentias]] tuas apud {{grammar:accusat
 'gotaccount' => "Habesne iam rationem? '''$1'''.",
 'gotaccountlink' => 'Conventum aperi',
 'userlogin-resetlink' => 'Num tesserae tuae oblitus es?',
-'helplogin-url' => 'Help:Conventum aperire',
 'createacct-emailrequired' => 'Inscriptio electronica',
 'createacct-emailoptional' => 'Inscriptio electronica (non necesse)',
 'createacct-email-ph' => 'Inscriptionem electronicam tuam inscribe',
@@ -693,7 +691,7 @@ Fortasse aliquis hanc partem movit vel delevit.',
 'newarticle' => '(Nova)',
 'newarticletext' => "Per nexum progressus es ad paginam quae nondum exsistit.
 Novam paginam si vis creare, in capsam infra praebitam scribe.
-(Vide [[{{MediaWiki:Helppage}}|paginam auxilii]] si plura cognoscere vis.)
+(Vide [$1 paginam auxilii] si plura cognoscere vis.)
 Si hic es propter errorem, solum '''Retrorsum''' in navigatro tuo preme.",
 'anontalkpagetext' => "----''Haec est pagina disputationis usoris anonymi, solum a loco IP suo noti. Memento locos IP aliquando mutaturos, et a usoribus multis fortasse adhibitos. Si es usor ignotus, et tibi querulae sine causa datae sunt, conventum [[Special:UserLogin/signup|crea]] vel [[Special:UserLogin|aperi]] ad confusionem futuram evitendam.''",
 'noarticletext' => 'Hac in pagina non sunt litterae.
index ed1b127..886d6b4 100644 (file)
@@ -429,7 +429,6 @@ $1',
 'disclaimers' => 'Refuzo de responsabilitá',
 'disclaimerpage' => 'Project:Refuzo de responsabilitá jeneral',
 'edithelp' => '¿Cómo se la troca?',
-'helppage' => 'Help:Contènidos',
 'mainpage' => 'La Primera Hoja',
 'mainpage-description' => 'La Primera Hoja',
 'policy-url' => 'Project:Politikas',
@@ -698,7 +697,7 @@ Tu adresso de IP se va a enrejistrar en la istoria de trocamientos de la hoja.',
 'accmailtext' => "Se a embiado a $2 una kontrasenya jenerado por [[User talk:$1|$1]]. Se puede kambiar en la pajina ''[[Special:ChangePassword|cambiar kontrasenya]]'' al entrar.",
 'newarticle' => '(Muevo)',
 'newarticletext' => 'Arrivates a una hoja que daínda no egziste.
-Para crear esta hoja, empeça a escribir en la caxa de abaxo. Mira [[{{MediaWiki:Helppage}}|la hoja de ayudo]] para saber más.
+Para crear esta hoja, empeça a escribir en la caxa de abaxo. Mira [$1 la hoja de ayudo] para saber más.
 Si venites aquí por yerro, torna a la hoja de antes.',
 'noarticletext' => 'En este momento no ay teksto en esta hoja.
 Puedes [[Special:Search/{{PAGENAME}}|buxcar el títolo desta hoja]] en otras hojas,
index 11267c9..830d666 100644 (file)
@@ -222,7 +222,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Schéck mir eng Kopie vun de Mailen, déi ech anere Benotzer schécken.',
 'tog-diffonly' => "Weis bei Versiounsvergläicher just d'Ënnerscheeder an net déi ganz Säit",
 'tog-showhiddencats' => 'Verstoppt Kategorië weisen',
-'tog-noconvertlink' => 'Ëmwandlung vum Titel desaktivéieren',
 'tog-norollbackdiff' => 'Ënnerscheed nom Zrécksetzen ënnerdrécken',
 'tog-useeditwarning' => "Mech warne wann ech d'Ännerung vun enger Säit verloossen, ouni Ännerunge gespäichert ze hunn",
 'tog-prefershttps' => 'Ëmmer eng sécher Verbindung benotze wann ageloggt',
@@ -434,7 +433,6 @@ $1",
 'disclaimers' => 'Impressum',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Hëllef beim Änneren',
-'helppage' => 'Help:Hëllef',
 'mainpage' => 'Haaptsäit',
 'mainpage-description' => 'Haaptsäit',
 'policy-url' => 'Project:Richtlinnen',
@@ -632,8 +630,7 @@ Vergiesst net fir Är [[Special:Preferences|{{SITENAME}} Astellungen]] z'ännere
 'gotaccountlink' => 'Umellen',
 'userlogin-resetlink' => "Hutt Dir d'Detailer vun Ärem Login vergiess?",
 'userlogin-resetpassword-link' => 'Hutt Dir Äert Passwuert vergiess?',
-'helplogin-url' => 'Help:Aloggen',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hëllef beim Aloggen]]',
+'userlogin-helplink2' => 'Hëllef beim Aloggen',
 'userlogin-loggedin' => 'Dir sidd schonn als {{GENDER:$1|$1}} ageloggt.
 Benotzt de Formulaire hei drënner fir Iech als een anere Benotzer anzeloggen.',
 'userlogin-createanother' => 'Maacht een anere Benotzerkont op',
@@ -731,6 +728,7 @@ Waart w.e.g. $1 ier Dir et nach eng Kéier probéiert.',
 
 Wann Dir en ugitt, gëtt e benotzt fir d'Benotzerattributiounen fir Är Aarbecht zouzeuerdnen.",
 'pt-login' => 'Aloggen',
+'pt-login-button' => 'Aloggen',
 'pt-createaccount' => 'Benotzerkont opmaachen',
 'pt-userlogout' => 'Ausloggen',
 
@@ -758,10 +756,12 @@ Waart w.e.g. $1 ier Dir et nach eng Kéier probéiert.',
 'resetpass-wrong-oldpass' => 'Net valabelt temporäert oder aktuellt Passwuert.
 Vläicht hutt Dir Äert Passwuert scho geännert oder en neit temporäert Passwuert ugefrot.',
 'resetpass-recycled' => 'Ännert Äert Passwuert w.e.g. op een anert Passwuert wéi Äert aktuellt Passwuert.',
+'resetpass-temp-emailed' => "Dir hutt Iech mat engem temporären E-Mail-Code ageloggt. Fir d'Aloggen ofzeschléisse musst Dir hei en neit Passwuert astellen:",
 'resetpass-temp-password' => 'Temporäert Passwuert:',
 'resetpass-abort-generic' => "D'Ännere vum Passwuert gouf duerch eng Erweiderung ofgebrach.",
 'resetpass-expired' => 'Äert Passwuert ass ofgelaf. Gitt w.e.g. en neit Passwuert u fir Iech anzeloggen.',
-'resetpass-expired-soft' => 'Äert Passwuert ass ofgelaf a muss zeréckgesat. Sicht w.e.g. elo en neit Passwuert eraus oder klickt ofbrieche fir et spéider zeréckzesetzen.',
+'resetpass-expired-soft' => 'Äert Passwuert ass ofgelaf a muss zeréckgesat. Sicht w.e.g. elo en neit Passwuert eraus oder klickt  "{{int:resetpass-submit-cancel}}" fir et spéider zeréckzesetzen.',
+'resetpass-validity-soft' => 'Ärt Passwuert ass net valabel: $1',
 
 # Special:PasswordReset
 'passwordreset' => 'Passwuert zrécksetzen',
@@ -907,7 +907,7 @@ Et ka sinn datt e geännert oder geläscht gouf iwwerdeems wou Dir d'Säit gekuc
 
 Et kann op der ''[[Special:ChangePassword|Passwuert ännere]]'' Säit beim Alogge geännert ginn.",
 'newarticle' => '(Nei)',
-'newarticletext' => "Dir hutt op e Link vun enger Säit geklickt, déi et nach net gëtt. Fir déi Säit unzeleeën, gitt w.e.g. Ären Text an déi Këscht hei drënner an (kuckt d'[[{{MediaWiki:Helppage}}|Hëllef Säit]] fir méi Informatiounen). Wann Dir duerch een Iertum heihi komm sidd, da klickt einfach op de Knäppchen '''Zréck''' vun Ärem Browser.",
+'newarticletext' => "Dir hutt op e Link vun enger Säit geklickt, déi et nach net gëtt. Fir déi Säit unzeleeën, gitt w.e.g. Ären Text an déi Këscht hei drënner an (kuckt d'[$1 Hëllef Säit] fir méi Informatiounen). Wann Dir duerch een Iertum heihi komm sidd, da klickt einfach op de Knäppchen '''Zréck''' vun Ärem Browser.",
 'anontalkpagetext' => "---- ''Dëst ass d'Diskussiounssäit fir en anonyme Benotzer deen nach kee Kont opgemaach huet oder en net benotzt. Dowéinst musse mir d'IP Adress benotzen, fir de Benotzer z'identifizéieren.
 Sou eng IP Adress ka vun e puer Benotzer gedeelt ginn.
 Wann Dir en anonyme Benotzer sidd an Dir irrelevant Bemierkunge krut, [[Special:UserLogin/signup|maacht w.e.g. e Kont op]] oder [[Special:UserLogin|loggt Iech an]], fir weider Verwiesselunge mat aneren anonyme Benotzer ze verhënneren.''",
@@ -1141,8 +1141,7 @@ Dir kënnt dësen Ënnerscheed gesinn; Detailer fannt Dir am [{{fullurl:{{#Speci
 'revdelete-show-file-submit' => 'Jo',
 'revdelete-selected' => "'''{{PLURAL:$2|Gewielt Versioun|Gewielt Versioune}} vu(n) [[:$1]] :'''",
 'logdelete-selected' => "'''Ausgewielten {{PLURAL:$1|Evenement|Evenementer}} aus dem Logbuch:'''",
-'revdelete-text' => "'''Geläscht Versiounen oder aner geläscht Bestanddeeler sinn net méi ëffentlech zougänglech, si stinn awer weiderhin an der Versiounsgeschicht vun der Säit.'''
-Aner {{SITENAME}}-Administrateure kënnen de geläschten Inhalt oder aner geläscht Bestanddeeler weiderhi gesinn a restauréieren, et sief, et gouf festgeluecht, datt déi Limitatioune vum Accès och fir Administrateure gëllen.",
+'revdelete-text-others' => 'Aner Administrateuren op {{SITENAME}} kënnen nach ëmmer de verstoppten Inhalt gesinn an en iwwer deeselwechten Interface nees restauréieren, ausser wann zousätzlech Limitatiounen agestallt sinn.',
 'revdelete-confirm' => "Confirméiert w.e.g. datt Dir dat maache wëllt, datt Dir d'Konsequenze verstitt an datt Dir dëst an Aklang mat de [[{{MediaWiki:Policy-url}}|Richtlinne]] maacht.",
 'revdelete-suppress-text' => "Ënnerdréckung sollt '''nëmmen''' an dëse Fäll benotzt ginn:
 * Informatiounen déi beleidege kéinten
@@ -1236,7 +1235,7 @@ Denkt w.e.g drunn datt d'Navigatiounslinken d'Wiel vun de Versiounen nees zréck
 'difference-title-multipage' => '$1 a(n) $2: Ënnerscheed tëscht de Säiten',
 'difference-multipage' => '(Ënnerscheed tëscht Säiten)',
 'lineno' => 'Linn $1:',
-'compareselectedversions' => 'Ausgewielte Versioune vergläichen',
+'compareselectedversions' => 'Ausgewielt Versioune vergläichen',
 'showhideselectedversions' => 'Erausgesicht Versioune weisen/verstoppen',
 'editundo' => 'zréck',
 'diff-empty' => '(Keen Ënnerscheed)',
@@ -1281,7 +1280,7 @@ Detailer fannt Dir am [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'search-file-match' => '(Inhalt vum Fichier passt)',
 'search-suggest' => 'Mengt Dir: $1',
 'search-interwiki-caption' => 'Schwësterprojeten',
-'search-interwiki-default' => '$1 Resultater:',
+'search-interwiki-default' => 'Resultater vu(n) $1:',
 'search-interwiki-more' => '(méi)',
 'search-relatedarticle' => 'A Verbindung',
 'searcheverything-enable' => 'An allen Nummraim sichen',
@@ -1422,7 +1421,7 @@ Dës Informatioun ass ëffentlech.",
 
 # User rights
 'userrights' => 'Benotzerrechterverwaltung',
-'userrights-lookup-user' => 'Benotzergrupp verwalten',
+'userrights-lookup-user' => 'Benotzergruppe verwalten',
 'userrights-user-editname' => 'Benotzernumm uginn:',
 'editusergroup' => 'Benotzergruppen änneren',
 'editinguser' => "Ännere vun de Rechter vum Benotzer '''[[User:$1|$1]]''' $2",
@@ -1604,7 +1603,7 @@ Dës Informatioun ass ëffentlech.",
 'recentchanges-legend-heading' => "'''Legend:'''",
 'recentchanges-legend-newpage' => '(kuckt och [[Special:NewPages|Lëscht vun den neie Säiten]])',
 'recentchanges-legend-plusminus' => "''(±123)''",
-'rcnotefrom' => "Ugewise ginn d'Ännerunge vum '''$2''' un (maximal '''$1''' Ännerunge gi gewisen).",
+'rcnotefrom' => "Ugewise ginn d'Ännerunge vum <strong>$2</strong> un (maximal <strong>$1</strong> Ännerunge gi gewisen).",
 'rclistfrom' => 'Nei Ännerunge vu(n) $1 u weisen',
 'rcshowhideminor' => 'Kleng Ännerunge $1',
 'rcshowhideminor-show' => 'Weisen',
@@ -1732,13 +1731,14 @@ Kuckt de Fichier <strong>[[:$1]]</strong> w.e.g. no.
 Wann et sech ëm d'Bild an der Originalgréisst handelt, da brauch kee separat Bild als Minitaur eropgelueden ze ginn.",
 'file-thumbnail-no' => "Den Numm vum Fichier fänkt mat <strong>$1</strong> un.
 Da deit drop hin datt et eng Minitaur ''(thumbnail)'' ass.
-Wann Dir dat Bild a méi enger grousser Opléisung hutt, da luet dëst erop, soss ännert den Numm vum Fichier w.e.g.",
+Wann Dir dat Bild a méi enger grousser Opléisung hutt, da luet dëst erop, wann net dann ännert w.e.g. den Numm vum Fichier.",
 'fileexists-forbidden' => 'Et gëtt schonn e Fichier mat dësem Numm an dee kann net iwwerschriwwe ginn.
 Wann Dir de Fichier nach ëmmer eropluede wëllt, da gitt w.e.g. zréck a benotzt en neien Numm. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'E Fichier mat dësem Numm gëtt et schonn an dem gedeelte Repertoire.
 Wann Dir dëse Fichier trotzdeem eropluede wëllt da gitt w.e.g. zréck a luet dëse Fichier ënner engem aneren Numm erop. [[File:$1|thumb|center|$1]]',
 'file-exists-duplicate' => 'Dëse Fichier schéngt een Doublon vun {{PLURAL:$1|dësem Fichier|dëse Fichieren}} ze sinn:',
-'file-deleted-duplicate' => 'En identesche Fichier ([[:$1]]) gouf virdru geläscht. Kuckt w.e.g. an der Lëscht vum Läschen no, Ier Dir en nach emol eropluet.',
+'file-deleted-duplicate' => 'En identesche Fichier ([[:$1]]) gouf virdru geläscht. Kuckt w.e.g. an der Lëscht vum Läschen no, ier Dir en nach emol eropluet.',
+'file-deleted-duplicate-notitle' => "En identesche Fichier gouf scho geläscht an den Titel gouf suppriméiert. Dir sollt e froen dee suppriméiert Date vu Fichiere kucken däerf fir d'Situatioun ze klären ier Dir de Fichier nach eng Kéier eroplued.",
 'uploadwarning' => 'Opgepasst',
 'uploadwarning-text' => "Ännert d'Beschreiwung hei ënnedrënner w.e.g. a versicht et nach eng Kéier.",
 'savefile' => 'Fichier späicheren',
@@ -1750,6 +1750,7 @@ Wann Dir dëse Fichier trotzdeem eropluede wëllt da gitt w.e.g. zréck a luet d
 'uploaddisabledtext' => "D'Eropluede vu Fichieren ass ausgeschalt.",
 'php-uploaddisabledtext' => "D'Eropluede vu Fichieren ass am PHP desaktivéiert. Kuckt w.e.g. d'Astellung ''file_uploads'' no.",
 'uploadscripted' => 'An dësem Fichier ass HTML- oder Scriptcode, dee vun engem Webbrowser falsch interpretéiert kéint ginn.',
+'uploadscriptednamespace' => 'An dësem SVG-Fichier ass en illegalen Nummraum "$1"',
 'uploadinvalidxml' => 'Den XML am eropgelueden Fichier konnt net verschafft ginn.',
 'uploadvirus' => 'An dësem Fichier ass ee Virus! Detailer: $1',
 'uploadjava' => "An dësem ZIP-Fichier ass e JAVA CLASS-Fichier dran.
@@ -1960,7 +1961,7 @@ Dir kënnt seng Beschreiwung op senger [$2 Beschreiwungssäit] änneren.',
 'filedelete' => 'Läsch "$1"',
 'filedelete-legend' => 'Fichier läschen',
 'filedelete-intro' => "Dir läscht de Fichier '''[[Media:$1|$1]]''' mat all senge Versiounen (Historique).",
-'filedelete-intro-old' => "Dir läscht  d'Versioun $4  vum $2, $3 Auer vum Fichier '''„[[Media:$1|$1]]“'''.",
+'filedelete-intro-old' => "Dir läscht d'Versioun $4 vum $2, $3 Auer vum Fichier <strong>[[Media:$1|$1]]</strong>.",
 'filedelete-comment' => 'Grond:',
 'filedelete-submit' => 'Läschen',
 'filedelete-success' => "'''$1''' gouf geläscht.",
@@ -2094,13 +2095,14 @@ An all Rei sti Linken zur éischter an zweeter Viruleedung, souwéi d\'Zil vun d
 'mostrevisions' => 'Säite mat de meeschte Versiounen',
 'prefixindex' => 'All Säite mat Prefix',
 'prefixindex-namespace' => 'All Säite mat Prefix (Nummraum $1)',
+'prefixindex-strip' => 'Prefix an der Lëscht ewechhuelen',
 'shortpages' => 'Kuerz Säiten',
 'longpages' => 'Laang Säiten',
 'deadendpages' => 'Sakgaasse-Säiten',
 'deadendpagestext' => 'Dës Säite si mat kenger anerer Säit op {{SITENAME}} verlinkt.',
 'protectedpages' => 'Gespaart Säiten',
 'protectedpages-indef' => 'Nëmme onbegrenzt-gespaarte Säite weisen',
-'protectedpages-summary' => 'Op dëser Spezialsäit stinn all déi Säiten déi esou protegéiert sinn, datt se net vun alle Benotzer geréckelt oder geännert kënne ginn.',
+'protectedpages-summary' => "Op dëser Säit stinn all déi Säiten déi elo protegéiert sinn. Fir d'Lëscht vun de Säiten déi fir d'Uleeë gespaart sinn, kuckt [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
 'protectedpages-cascade' => 'Nëmme Säiten déi duerch Kaskade gespaart sinn',
 'protectedpages-noredirect' => 'Viruleedunge verstoppen',
 'protectedpagesempty' => 'Elo si keng Säite mat dëse Parameteren gespaart.',
@@ -2113,7 +2115,7 @@ An all Rei sti Linken zur éischter an zweeter Viruleedung, souwéi d\'Zil vun d
 'protectedpages-unknown-timestamp' => 'Onbekannt',
 'protectedpages-unknown-performer' => 'Onbekannte Benotzer',
 'protectedtitles' => 'Gespaarten Titel',
-'protectedtitles-summary' => 'Dës Titele goufe gespaart an et ka keng Säit mat esou engem Titel gemaach ginn.',
+'protectedtitles-summary' => "Op dëser Säit stinn all déi Säiten déi elo gespaart si fir ugefaang ze ginn. D'Lëscht vun de Säiten déi gespaart sinn: [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].",
 'protectedtitlesempty' => 'Elo si mat de Parameteren déi Dir uginn hutt keng Säite fir neit Uleeë gespaart.',
 'listusers' => 'Benotzerlëscht',
 'listusers-editsonly' => 'Nëmme Benotzer mat Ännerunge weisen',
@@ -2334,14 +2336,14 @@ E-Mail: $PAGEEDITOR_EMAIL
 Wiki: $PAGEEDITOR_WIKI
 
 Et gi soulaang keng weider Maile geschéckt, bis Dir d\'Säit nees emol besicht hutt wärend deem Dir ageloggt sidd.
-Op Ärer Iwwerwaachungslëscht kënnt Dir all Benoorichtigungsmarkeren zesummen zErécksetzen.
+Op Ärer Iwwerwaachungslëscht kënnt Dir all Noriichtemarkeren zesummen zrécksetzen.
 
 
-Äre frëndleche {{SITENAME}} Benoriichtigungssystem
+Äre frëndlechen {{SITENAME}} Noriichtessystem
 
 --
 
-Fir d\'Astellungen op Ären E-Mailbenoriichtigungen z\'änneren, besicht w.e.g.
+Fir d\'Astellungen op Ären E-Mailnoriichten z\'änneren, besicht w.e.g.
 {{canonicalurl:{{#special:Preferences}}}}
 
 
@@ -2392,14 +2394,14 @@ D'Läsche vu sou Säite gouf limitéiert fir ongewollte Stéierungen op {{SITENA
 'delete-warning-toobig' => "Dës Säit huet eng laang Versiounsgeschicht, méi wéi $1 {{PLURAL:$1|Versioun|Versiounen}}.
 D'Läschen dovu kann zu Stéierungen am Fonctionnement vun {{SITENAME}} féieren;
 dës Aktioun soll mat Virsiicht gemaach ginn.",
-'deleting-backlinks-warning' => "'''Opgepasst:''' Aner Säite linken op déi Säit déi Dir am Gaang sidd ze läschen oder déi säit Déi Dir am Gaang sidd ze läschen ass an aner Säiten agebonn.",
+'deleting-backlinks-warning' => "'''Opgepasst:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Aner Säite]] linken op déi Säit déi Dir am Gaang sidd ze läschen oder déi Säit Déi Dir am Gaang sidd ze läschen ass an aner Säiten agebonn.",
 
 # Rollback
 'rollback' => 'Ännerungen zrécksetzen',
 'rollback_short' => 'Zrécksetzen',
 'rollbacklink' => 'Zrécksetzen',
-'rollbacklinkcount' => '{{PLURAL:$1|Eng Ännerung|$1 Ännerungen}} zerécksetzen',
-'rollbacklinkcount-morethan' => 'méi wéi {{PLURAL:$1|Eng Ännerung|$1 Ännerungen}} zerécksetzen',
+'rollbacklinkcount' => '{{PLURAL:$1|Eng Ännerung|$1 Ännerungen}} zrécksetzen',
+'rollbacklinkcount-morethan' => 'méi wéi {{PLURAL:$1|Eng Ännerung|$1 Ännerungen}} zrécksetzen',
 'rollbackfailed' => 'Zrécksetzen huet net geklappt',
 'cantrollback' => 'Lescht Ännerung kann net zréckgesat ginn. De leschten Auteur ass deen eenzegen Auteur vun dëser Säit.',
 'alreadyrolled' => 'Déi lescht Ännerung vun der Säit [[:$1]] vum [[User:$2|$2]] ([[User talk:$2|talk]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]);; kann net zeréckgesat ginn;
@@ -2445,7 +2447,7 @@ Hei sinn déi aktuell Säiteprotektiounsastellunge fir d'Säit '''$1''':",
 Hei sinn déi aktuell Astellungen fir d'Säit '''$1''':",
 'protect-locked-access' => "Dir hutt net déi néideg Rechter fir de Protektiounsniveau vun dëser Säit z'änneren.
 Hei sinn déi aktuell Astellunge fir d'Säit '''$1''':",
-'protect-cascadeon' => "Dës Säit ass elo gespaart well si an déi folgend {{PLURAL:$1|Säit|Säiten}} agebonnen ass déi duerch eng Kaskadespär gespaart {{PLURAL:$1|ass|sinn}}. De Protektiounsniveau ka fir dës Säit geännert ginn, dat huet awer keen Afloss op d'Kaskadespär.",
+'protect-cascadeon' => "Dës Säit ass elo gespaart well si an déi folgend {{PLURAL:$1|Säit|Säiten}} agebonnen ass déi duerch eng Kaskadespär gespaart {{PLURAL:$1|ass|sinn}}. Ännerunge vum Protektiounsniveau fir dës Säit hu keen Afloss op d'Kaskadespär.",
 'protect-default' => 'All Benotzer erlaben',
 'protect-fallback' => 'Nëmme Benotzer mat enger "$1"-Autorisatioun erlaben.',
 'protect-level-autoconfirmed' => 'Nëmmen automatesch ugemellt Benotzer erlaben',
@@ -2567,6 +2569,7 @@ $1',
 'sp-contributions-search' => 'No Kontributioune sichen',
 'sp-contributions-username' => 'IP-Adress oder Benotzernumm:',
 'sp-contributions-toponly' => 'Nëmmen Ännerunge weisen déi déi lescht Versioun sinn',
+'sp-contributions-newonly' => 'Nëmmen Ännerunge weisen déi Säiten uleeën',
 'sp-contributions-submit' => 'Sichen',
 
 # What links here
@@ -2813,7 +2816,8 @@ Wëll Dir se läsche fir d\'Réckelen ze erméiglechen?',
 'imageinvalidfilename' => 'Den Numm vum Zil-Fichier ass ongëlteg',
 'fix-double-redirects' => 'All Viruleedungen déi op den Originaltitel weisen aktualiséieren',
 'move-leave-redirect' => 'Viruleedung uleeën',
-'protectedpagemovewarning' => "'''OPGEPASST:''' Dës Säit gouf gespaart sou datt nëmme Benotzer mat Administreursrechter se réckele kënnen. Déi lescht Zeil aus de Logbicher fannt Dir zu Ärer Informatioun hei ënnendrënner.",
+'protectedpagemovewarning' => '<strong>OPGEPASST:</strong> Dës Säit gouf gespaart sou datt nëmme Benotzer mat Administreursrechter se réckele kënnen.
+Déi lescht Zeil aus de Logbicher fannt Dir zu Ärer Informatioun hei ënnendrënner.',
 'semiprotectedpagemovewarning' => "'''OPGEPASST:''' Dës Säit gouf gespaart sou datt nëmme confirméiert Benotzer se réckele kënnen. Déi lescht Zeil aus de Logbicher fannt Dir zu Ärer Informatioun hei ënnendrënner.",
 'move-over-sharedrepo' => '== De Fichier gëtt et ==
 [[:$1]] gëtt et op engem gedeelte Repertoire. Wann dir e Fichier op dësen Titel réckelt dann ass dee gedeelte Fichier net méi accessibel.',
@@ -3622,7 +3626,7 @@ Iwwerpréift w.e.g. är E-Mailadress op ongëlteg Zeechen.
 
 Feelermeldung vum Mailserver: $1',
 'confirmemail_invalid' => "Ongëltege Confirmatiounscode. Eventuell ass d'Gëltegkeetsdauer vum Code ofgelaf.",
-'confirmemail_needlogin' => 'Dir musst iech $1, fir är E-Mail-Adress ze confirméieren.',
+'confirmemail_needlogin' => 'Dir musst Iech $1, fir Är E-Mail-Adress ze confirméieren.',
 'confirmemail_success' => 'Är E-Mailadress gouf confirméiert. Där kënnt iech elo aloggen an a vollem Ëmfang vun der Wiki profitéieren.',
 'confirmemail_loggedin' => 'Är E-Mail-Adress gouf elo confirméiert.',
 'confirmemail_subject' => 'Confirmatioun vun der E-Mail-Adress fir {{SITENAME}}',
index bf46880..dd6f780 100644 (file)
@@ -146,12 +146,12 @@ $messages = array(
 'dec' => 'дек',
 
 # Categories related messages
-'pagecategories' => '{{PLURAL:$1|1=Категори|Категорияр}}',
+'pagecategories' => '{{PLURAL:$1|1=Категория|Категорияр}}',
 'category_header' => '«$1» категориядин ччинар',
 'subcategories' => 'агъакатегорияр',
 'category-media-header' => '"$1" категориядин медиа',
 'category-empty' => "''Алай чӀава и категория ичӀи я.\"",
-'hidden-categories' => '{{PLURAL:$1|1=Чуьнуьхай категори|Чуьнуьхай категорияр}}',
+'hidden-categories' => '{{PLURAL:$1|1=Чуьнуьхай категория|Чуьнуьхай категорияр}}',
 'hidden-category-category' => 'Чуьнуьхай категорияр',
 'category-subcat-count' => '{{PLURAL:$2|И категорияда анжах гуьгъуьна авай подкатегория ава.|$2-кай {{PLURAL:$1|1=агъакатегория|$1 агъакатегорияр}} къалурнава }}',
 'category-subcat-count-limited' => 'И категорияда {{PLURAL:$1|1=агъакатегория|$1 агъакатегорияр}} ава.',
@@ -267,7 +267,6 @@ $messages = array(
 'disclaimers' => 'Жавабдарвал хивяй акъудун',
 'disclaimerpage' => 'Project:Жавабдарвал хивяй акъудун',
 'edithelp' => 'Дуьзар хъувун патал куьмек',
-'helppage' => 'Help:Къене авайбур',
 'mainpage' => 'Кьилин ччин',
 'mainpage-description' => 'Кьилин ччин',
 'policy-url' => 'Project:Къайдаяр',
@@ -442,7 +441,7 @@ $messages = array(
 'accmailtitle' => 'Парол ракъурнава.',
 'newarticle' => '(ЦIийи)',
 'newarticletext' => 'Куьне гьеле авачир ччиниз элячlнава.  
-Ам туькlуьрун патал агъадихъ галай дакlарда текст гьадра. (гегьеншдиз [[{{MediaWiki:Helppage}}|куьмекдин ччина]] килигиз жеда).
+Ам туькlуьрун патал агъадихъ галай дакlарда текст гьадра. (гегьеншдиз [$1 куьмекдин ччина] килигиз жеда).
 Куьне инал гъалатlдин гъиляй элячlнаватlа, кьу браузердин "кьулухъ"" дуьгмедал илиса.',
 'noarticletext' => 'Исятда и  ччинда са текстни авач.
 Квевай [[Special:Search/{{PAGENAME}}| и тlвар алай ччин]] муькуь ччинра жугъуриз,
@@ -866,7 +865,7 @@ $messages = array(
 'withoutinterwiki-submit' => 'Къалурун',
 
 # Miscellaneous special pages
-'nbytes' => '$1 {{PLURAL:$1|баjт|баjтар}}',
+'nbytes' => '$1 {{PLURAL:$1|1=байт|байтар}}',
 'nmembers' => '$1 {{PLURAL:$1|1=уьзви|уьзвияр}}',
 'lonelypages' => 'Eтим xъувун',
 'prefixindex' => 'Префикс галай вири ччинар',
index 27e4dc2..bb81f47 100644 (file)
@@ -211,7 +211,6 @@ $messages = array(
 'disclaimers' => 'Negas de respondablia',
 'disclaimerpage' => 'Project:Nega jeneral de respondablia',
 'edithelp' => 'Aida con edita',
-'helppage' => 'Help:Contenis',
 'mainpage' => 'Paje Prima',
 'mainpage-description' => 'Paje Prima',
 'policy-url' => 'Project:Politica',
@@ -362,7 +361,7 @@ Per favore inclui tota esta detales en tu demandas.",
 'newarticle' => '(Nova)',
 'newarticletext' => "Tu ia segue un lia a un paje ce no esista ja.
 Per crea la paje, comensa scrive en la caxa a su
-(vide la [[{{MediaWiki:Helppage}}|paje de aida]] per plu).
+(vide la [$1 paje de aida] per plu).
 Si tu es asi par era, clica a la boton '''retro''' de tu surfador.",
 'noarticletext' => 'Es aora no testo a esta paje.
 Tu pote [[Special:Search/{{PAGENAME}}|xerca per la titulo de esta paje]] en otra pajes,
index 7f36196..313e213 100644 (file)
@@ -240,7 +240,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',
-'helppage' => 'Help:Endagiriro',
 'mainpage' => 'Olupapula Olusooka',
 'mainpage-description' => 'Olupapula Olusooka',
 'policy-url' => "Project:Amateeka n'enkola",
@@ -584,7 +583,7 @@ Okukyusa ekigambo kino memba, ng'ayingidde mu wiki, alage ku lupapula ''[[Specia
 'newarticle' => '(Lupapula lupya)',
 'newarticletext' => "Enyunzi gy'ogenzeko egguka ku lupapula olutannakolebwawo.<br />
 Oba gwe oyagala okulukolawo, wandika mu kabokisi akaddako wano.
-(okuyiga ebisingawo, genda ku [[{{MediaWiki:Helppage}}|lupapula olw'obuyambi]]).<br />
+(okuyiga ebisingawo, genda ku [$1 lupapula olw'obuyambi]).<br />
 Bw'obanga tewagenderedde kutuuka wano, nyigabunyizi eppeesa ery'omu kalambula-neti yo
 erya '''ddayo'''.",
 'anontalkpagetext' => "----''Olupapula olw'emboozi luno lukoledwawo at'eyanjula atakolera mu akawunti ya ku wiki eno.<br />
index e978c4f..b500d75 100644 (file)
@@ -387,7 +387,6 @@ $1',
 'disclaimers' => 'Aafwiezinge aansjprakelikheid',
 'disclaimerpage' => 'Project:Algemein aafwiezing aansjprakelikheid',
 'edithelp' => 'Hulp bie bewirke',
-'helppage' => 'Help:Help',
 'mainpage' => 'Veurblaad',
 'mainpage-description' => 'Veurblaad',
 'policy-url' => 'Project:Beleid',
@@ -755,7 +754,7 @@ Meugelikerwies is t'r verplaats of gewösj gewaore wiel se de paasj 'nt bekieke
 't Wachwaord veur deze nuje gebroeker kan gewiezig waere via de pagina ''[[Special:ChangePassword|Wachwaord wiezige]]'' nao 't aanmelje.",
 'newarticle' => '(Nuuj)',
 'newarticletext' => "De höbs 'ne link gevolg nao 'n pagina die nog neet besjteit.
-Type in de box hiejónger óm de pagina te beginne (zuug de [[{{MediaWiki:Helppage}}|helppagina]] veur mie infermasie).
+Type in de box hiejónger óm de pagina te beginne (zuug de [$1 helppagina] veur mie infermasie).
 Es te hie per óngelök terech bis gekómme, klik dan op de '''trök'''-knóp van diene browser.",
 'anontalkpagetext' => "----''Dit is de euverlèkpagina veur 'ne anonieme gebroeker dae nog gein account haet aangemaak of dae 't neet gebroek.
 Daoveur gebroeke v'r 't IP-adres óm de gebroeker te identificere.
@@ -971,8 +970,6 @@ achtergrönj zeen meugelik te vinjen in 't [{{fullurl:{{#Special:Log}}/suppress|
 'revdelete-show-file-submit' => 'Jao',
 'revdelete-selected' => "'''Geselecteerde {{PLURAL:$2|bewerking|bewerkinge}} van '''[[:$1]]''':'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Geselecteerde log gebeurtenis|Geselecteerde log gebeurtenisse}}:'''",
-'revdelete-text' => "'''Gewisjde bewerkinge zeen zichbaar in de gesjiedenis, maar de inhoud is neet langer publiek toegankelik.'''
-Anger beheerders van {{SITENAME}} kinne de verborge inhoud benäöjere en de verwiedering ongedaon make mit behölp van dit sjerm, tenzij d'r additionele restricties gelje die zeen ingesteld door de systeembeheerder.",
 'revdelete-confirm' => "Bevestig des se dit wils doon, des se de consequenties begrieps en des se dit deis in euvereinstömming mit 't geljendj [[{{MediaWiki:Policy-url}}|beleid]].",
 'revdelete-suppress-text' => "Versies verbèrge deentj '''allein''' gebroek te waere in de volgende gevalle:
 * Ongepaste perseunlike informatie
index 2b3732b..ec058fb 100644 (file)
@@ -359,7 +359,6 @@ $1",
 'disclaimers' => 'Avertense',
 'disclaimerpage' => 'Project:Avertense generâli',
 'edithelp' => 'Agiùtto',
-'helppage' => 'Help:Contegnûi',
 'mainpage' => 'Pàgina prinçipâ',
 'mainpage-description' => 'Pagina prinçipâ',
 'policy-url' => 'Project:Lezzi',
@@ -486,7 +485,6 @@ A raxon a l'è: ''$2''.",
 'gotaccountlink' => 'Intra',
 'userlogin-resetlink' => "T'æ ascordòu i teu dæti de acesso?",
 'userlogin-resetpassword-link' => 'Reimposta a to password',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Agiutto co-o login]]',
 'createacct-join' => 'Inserisci i to dæti chi sotta.',
 'createaccountmail' => "Doeuvia una password temporanea abrettio e mandila a l'adresso de posta elettronica speçificou",
 'createaccountreason' => 'Raxon:',
@@ -646,7 +644,7 @@ Sta password a poeu ese cangiâ inta paggina pe ''[[Special:ChangePassword|cangi
 'newarticletext' => "Sto colegaménto o corisponde a 'na pàgina ch'a no l'existe ancon.
 
 Se se vêu creâ a pàgina òua, se pêu comensâ a scrive into spàçio chì sotta.
-(amia e [[{{MediaWiki:Helppage}}|paggine d'agiûtto]] pe ciû informaçioìn).
+(amia e [$1 paggine d'agiûtto] pe ciû informaçioìn).
 
 Se t'ê intròu chì pe sballio,  sciacca '''Inderê''' into navegatô.",
 'anontalkpagetext' => "----
index 87f8b1c..24aa059 100644 (file)
@@ -317,7 +317,6 @@ $1",
 'disclaimers' => 'Disclaimers',
 'disclaimerpage' => 'Project:Avertenz generaj',
 'edithelp' => 'Manual de spiegazión',
-'helppage' => 'Help:Contegnüü',
 'mainpage' => 'Pagina principala',
 'mainpage-description' => 'Pagina principala',
 'policy-url' => 'Project:Policy',
@@ -518,7 +517,7 @@ Fee el piasè d'inclüd tüt i detaj chì de sura in qualsessìa dumanda che a d
 'accmailtext' => 'La parola d\'urdin per "$1" l\'è stada mandada a $2.',
 'newarticle' => '(Növ)',
 'newarticletext' => 'Te seet andaa adree a un ligam a una pagina che la esista gnamò.
-Per creà la pagina, a l\'è assee che te tachet a scriv in del box desota (varda la [[{{MediaWiki:Helppage}}|pagina de vüt]] per savèn püssee).
+Per creà la pagina, a l\'è assee che te tachet a scriv in del box desota (varda la [$1 pagina de vüt] per savèn püssee).
 Se te seet chì per erur, schiscia "indree" in sül tò browser.',
 'anontalkpagetext' => "''Questa chí a l'é la pagina da ciciarada d'un druvadur che l'ha nonanmò registraa un cünt, o che 'l le dröva mia.
 Per 'sta reson chí, el pò vess identificaa dumà cunt el sò indirizz nümereg de IP.
index 2298a61..5fd91a8 100644 (file)
@@ -272,7 +272,6 @@ $messages = array(
 'disclaimers' => 'ຂໍ້ປະຕິເສດຄວາມຮັບຜິດຊອບ',
 'disclaimerpage' => 'Project:ຂໍ້ປະຕິເສດຄວາມຮັບຜິດຊອບ',
 'edithelp' => 'ວິທີດັດແກ້ໜ້າ',
-'helppage' => 'Help:ເນື້ອໃນ',
 'mainpage' => 'ໜ້າຫຼັກ',
 'mainpage-description' => 'ໜ້າຫຼັກ',
 'policy-url' => 'Project:ປະຕູສູ່ຊຸມຊົນ',
@@ -403,7 +402,7 @@ $messages = array(
 'accmailtitle' => 'ໄດ້ສົ່ງ ລະຫັດຜ່ານ ໄປແລ້ວ.',
 'accmailtext' => 'ລະຫັດຜ່ານ ຂອງ "$1" ໄດ້ຖືກສົ່ງໄປ  $2 ແລ້ວ.',
 'newarticle' => '(ໃໝ່)',
-'newarticletext' => "ທ່ານ ໄດ້ມາຮອດ ໜ້າທີ່ຍັງບໍ່ໄດ້ຖືກສ້າງຂຶ້ນເທື່ອ. ທ່ານ ສາມາດເລີ່ມ ສ້າງໜ້າ ໂດຍ ພິມໃສ່ ກັບ ຂ້າງລຸ່ມ.(ເບິ່ງລາຍລະອຽດຕື່ມ ທີ່ [[{{MediaWiki:Helppage}}|ໜ້າຊ່ວຍເຫຼືອ]]).
+'newarticletext' => "ທ່ານ ໄດ້ມາຮອດ ໜ້າທີ່ຍັງບໍ່ໄດ້ຖືກສ້າງຂຶ້ນເທື່ອ. ທ່ານ ສາມາດເລີ່ມ ສ້າງໜ້າ ໂດຍ ພິມໃສ່ ກັບ ຂ້າງລຸ່ມ.(ເບິ່ງລາຍລະອຽດຕື່ມ ທີ່ [$1 ໜ້າຊ່ວຍເຫຼືອ]).
 ຖ້າ ທ່ານ ມາຮອດນີ້ ໂດຍຄວາມຜິດພາດ, ກະລຸນາ ກົດ ປຸ່ມ '''ກັບຄືນ''', ຢູ່ ໂປຣແກຣມ ທ່ອງເວັບ ຂອງທ່ານ.",
 'noarticletext' => 'ຍັງບໍ່ມີເນື້ອໃນ ຢູ່ ໜ້ານີ້, ທ່ານສາມາດ [[Special:Search/{{PAGENAME}}|ຄົ້ນຫາໜ້າຫົວຂໍ້ນີ້]] ຫຼື [{{fullurl:{{FULLPAGENAME}}|action=edit}} ດັດແກ້ໜ້ານີ້].',
 'previewnote' => "'''ນີ້ ແມ່ນ ການລອງເບິ່ງຜົນເທົ່ານັ້ນ; ການດັດແກ້ຍັງບໍ່ທັນຖືກບັນທຶກ!'''",
index 324eb4f..dea3dac 100644 (file)
@@ -184,7 +184,6 @@ $messages = array(
 'disclaimers' => 'Dikulemi',
 'disclaimerpage' => 'Project:Dikulemi generali',
 'edithelp' => "Hloli ye ng'i",
-'helppage' => 'Help:Buinaneli di petulo',
 'mainpage' => 'Petulo yem efro',
 'mainpage-description' => 'Petulo yem efro',
 'policy-url' => 'Project:Busize',
@@ -360,7 +359,7 @@ A IP sa $3, e ID di bolok sa #$5. Bulelezi IP e ID kwa bukizisize.",
 'loginreqpagetext' => 'A sa $1 di kamukile xeti di petulo.',
 'newarticle' => '(Nca)',
 'newarticletext' => "Bye petulo ni sa, tiguki zwa ling'ki.
-Di hloli, seltisize kwa sisebelisoni (kamukile [[{{MediaWiki:Helppage}}|likitisize]]).
+Di hloli, seltisize kwa sisebelisoni (kamukile [$1 likitisize]).
 A sa nca di bufosi, tampi '''back'''.",
 'noarticletext' => 'Sa no selt kwa petulo, a sa [[Special:Search/{{PAGENAME}}|fatukile di petulonom]] kwa xete petulo/[{{fullurl:{{FULLPAGENAME}}|action=edit}} petulo kenki].',
 'updated' => '(sa updeti)',
index 4b75b6e..d31cfac 100644 (file)
@@ -257,7 +257,6 @@ $messages = array(
 'disclaimers' => 'منكرون',
 'disclaimerpage' => 'پروجه:منكر بيئن كاروريا',
 'edithelp' => 'هومياری سی ويرايشت',
-'helppage' => 'هومياری:مینونه',
 'mainpage' => 'سرآسونه',
 'mainpage-description' => 'سرآسونه',
 'policy-url' => 'پروجه:خط و مش',
@@ -422,8 +421,6 @@ $1',
 'gotaccountlink' => 'اومائن',
 'userlogin-resetlink' => 'جزییات وامین اومائن تونه د ویر بردیته',
 'userlogin-resetpassword-link' => 'پاسورد د ویرتو رئته؟',
-'helplogin-url' => 'هومياری:د حالت اومائن د سيستم',
-'userlogin-helplink' => '[[{{مدیاویکی:هومیاری وامئن اومائن-یو آر ال}}|هومیاری وا مئن اومائن]]',
 'userlogin-createanother' => 'يه گل حساوهنی راست بكيد',
 'createacct-join' => 'دونسمنيا دباره خوتونه د هار وارد بكيد',
 'createacct-another-join' => 'دونسمنیا یه گل حساو د هار وارد بکید',
@@ -585,7 +582,7 @@ $1 لطفن سی تلاش هنی صبر بکید',
 'accmailtitle' => 'پاسورد کل بی',
 'newarticle' => 'تازه',
 'newarticletext' => 'شما وادما هوم پیوندی هئیت که وجود ناره.
-سی راس کردن بلگه.شرو د نیسنن مئن جعوه هاری بکید(سیل[[{{MediaWiki:Helppage}}|]] سی دونسمنی بیشتر بکید).
+سی راس کردن بلگه.شرو د نیسنن مئن جعوه هاری بکید(سیل[$1 ] سی دونسمنی بیشتر بکید).
 ار شما سی اشتوا کردن هایئن ایچه، دگمه وادما رئتن مرورگر تونه بپورنیت.',
 'noarticletext' => 'د تازه یا د ای بلگه متن نی.
 شما تونید د[[Special:Search/{{PAGENAME}}|search for this page title]] بگردید د ای بلگه یا د بلگیا هنی یا<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}   د هنی پی جوری بوئه  logs]</span>   
index 1dc64c6..8c3c19e 100644 (file)
@@ -25,6 +25,7 @@
  * @author Pdxx
  * @author Perkunas
  * @author Pėstininkas
+ * @author Reedy
  * @author Siggis
  * @author Tomasdd
  * @author Urhixidur
@@ -432,7 +433,6 @@ $1',
 'disclaimers' => 'Atsakomybės apribojimas',
 'disclaimerpage' => 'Project:Atsakomybės apribojimas',
 'edithelp' => 'Kaip redaguoti',
-'helppage' => 'Help:Turinys',
 'mainpage' => 'Pagrindinis puslapis',
 'mainpage-description' => 'Pagrindinis puslapis',
 'policy-url' => 'Project:Politika',
@@ -623,8 +623,6 @@ Nepamirškite pakeisti savo [[Special:Preferences|{{SITENAME}} nustatymų]].',
 '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]]',
 'userlogin-createanother' => 'Sukurti kitą paskyrą',
 'createacct-join' => 'Įveskite savo informaciją žemiau.',
 'createacct-another-join' => 'Įveskite naujos paskyros informaciją žemiau.',
@@ -716,6 +714,10 @@ Palaukite prieš bandant vėl.',
 'login-abort-generic' => 'Jūsų prisijungimas buvo nesėkmingas - Nutraukta',
 'loginlanguagelabel' => 'Kalba: $1',
 'suspicious-userlogout' => 'Jūsų prašymas atsijungti buvo atmestas, nes, atrodo, jį klaidingai išsiuntė naršyklė arba spartinantysis tarpinis serveris.',
+'pt-login' => 'Prisijungti',
+'pt-login-button' => 'Prisijungti',
+'pt-createaccount' => 'Sukurti paskyrą',
+'pt-userlogout' => 'Atsijungti',
 
 # Email sending
 'php-mail-error-unknown' => 'Nežinoma klaida PHP mail() funkcijoje',
@@ -864,7 +866,7 @@ Jis galėjo būti perkeltas arba ištrintas, kol peržiūrėjote puslapį.',
 'newarticle' => '(Naujas)',
 'newarticletext' => "Jūs patekote į dar neegzistuojantį puslapį.
 Norėdami sukurti puslapį, pradėkite rašyti žemiau esančiame įvedimo lauke
-(plačiau [[{{MediaWiki:Helppage}}|pagalbos puslapyje]]).
+(plačiau [$1 pagalbos puslapyje]).
 Jei patekote čia per klaidą, paprasčiausiai spustelkite  naršyklės mygtuką '''atgal'''.",
 'anontalkpagetext' => "----''Tai yra anoniminio naudotojo, nesusikūrusio arba nenaudojančio paskyros, aptarimų puslapis.
 Dėl to naudojamas IP adresas jo identifikavimui.
@@ -1085,22 +1087,20 @@ Kaip administratorius, jūs galite ją pamatyti; daugiau detalių gali būti [{{
 'revdelete-show-file-submit' => 'Taip',
 'revdelete-selected' => "'''{{PLURAL:$2|Pasirinkta [[:$1]] versija|Pasirinktos [[:$1]] versijos}}:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Pasirinktas istorijos įvykis|Pasirinkti istorijos įvykiai}}:'''",
-'revdelete-text' => "'''Ištrintos versijos bei įvykiai vis tiek dar bus rodomi puslapio istorijoje ir specialiųjų veiksmų sąraše, bet jų turinio dalys nebus viešai prieinamos.'''
-Kiti administratoriai iš {{SITENAME}} vis tiek galės pasiekti paslėptą turinį ir galės jį atkurti per tą pačią sąsają, nebent yra nustatyti papildomi apribojimai.",
 'revdelete-confirm' => 'Prašome patvirtinti, kad jūs tai ketinate padaryti, kad jūs suprantate padarinius, ir kad jūs tai darote pagal [[{{MediaWiki:Policy-url}}|politiką]].',
 'revdelete-suppress-text' => "Ištrynimas turėtų būti taikomas '''tik''' šiais atvejais:
 * Netinkama asmeninė informacija
 *: ''namų adresai, telefonų numeriai, asmens kodai ir t. t.''",
 'revdelete-legend' => 'Nustatyti matomumo apribojimus:',
-'revdelete-hide-text' => 'Slėpti versijos tekstą',
+'revdelete-hide-text' => 'Versijos tekstas',
 'revdelete-hide-image' => 'Slėpti failo turinį',
 'revdelete-hide-name' => 'Slėpti veiksmą ir paskirtį',
-'revdelete-hide-comment' => 'Slėpti redagavimo komentarą',
-'revdelete-hide-user' => 'Slėpti redagavusiojo naudotojo vardą ar IP adresą',
+'revdelete-hide-comment' => 'Keitimo komentaras',
+'revdelete-hide-user' => 'Redagavusiojo naudotojo vardas/IP adresas',
 'revdelete-hide-restricted' => 'Nuslėpti duomenis nuo adminstratorių kaip ir nuo kitų',
 'revdelete-radio-same' => '(nekeisti)',
-'revdelete-radio-set' => 'Taip',
-'revdelete-radio-unset' => 'Ne',
+'revdelete-radio-set' => 'Paslėpta',
+'revdelete-radio-unset' => 'Matoma',
 'revdelete-suppress' => 'Slėpti duomenis nuo administratorių kaip ir nuo kitų',
 'revdelete-unsuppress' => 'Šalinti apribojimus atkurtose versijose',
 'revdelete-log' => 'Priežastis:',
@@ -1179,6 +1179,7 @@ Prašome patikrinti sąrašus.',
 'compareselectedversions' => 'Palyginti pasirinktas versijas',
 'showhideselectedversions' => 'Rodyti/slėpti pasirinktas versijas',
 'editundo' => 'atšaukti',
+'diff-empty' => '(Jokio skirtumo)',
 'diff-multi-manyusers' => '(daugiau nei $2 {{PLURAL:$2|naudotojo|naudotojų|naudotojų}} $1 {{PLURAL:$1|tarpinis keitimas nėra rodomas|tarpiniai keitimai nėra rodomi|tarpinių keitimų nėra rodoma}})',
 
 # Search results
@@ -1195,7 +1196,7 @@ Prašome patikrinti sąrašus.',
 'shown-title' => 'Rodyti $1 {{PLURAL:$1|rezultatą|rezultatus|rezultatus}} puslapyje',
 'viewprevnext' => 'Žiūrėti ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "'''Puslapis pavadinimu „[[$1]]“ šioje wiki'''",
-'searchmenu-new' => "'''Sukurti puslapį „[[:$1]]“ šioje wiki!'''",
+'searchmenu-new' => '<strong>Sukurti puslapį „[[:$1]]“ šioje wiki!</strong> {{PLURAL:$2|0=|Taip pat peržiūrėkite šį rastą puslapį.|Taip pat peržiūrėkite šiuos paieškos rezultatus.}}',
 'searchprofile-articles' => 'Turinio puslapiai',
 'searchprofile-project' => 'Pagalbos ir projekto puslapiai',
 'searchprofile-images' => 'Daugialypės terpės failai',
@@ -1213,7 +1214,7 @@ Prašome patikrinti sąrašus.',
 'search-section' => '(skyrius $1)',
 'search-suggest' => 'Galbūt norėjote $1',
 'search-interwiki-caption' => 'Dukteriniai projektai',
-'search-interwiki-default' => '$1 rezultatai:',
+'search-interwiki-default' => 'Rezultatai iš $1:',
 'search-interwiki-more' => '(daugiau)',
 'search-relatedarticle' => 'Susiję',
 'searcheverything-enable' => 'Ieškoti visose vardų srityse',
@@ -1520,14 +1521,26 @@ teisės",
 'recentchanges-label-unpatrolled' => 'Šis keitimas dar nebuvo patikrintas',
 'recentchanges-label-plusminus' => 'Šiuo baitų skaičiumi pakeista puslapio apimtis',
 'recentchanges-legend-newpage' => '$1 - naujas puslapis',
-'rcnotefrom' => "Žemiau yra pakeitimai pradedant '''$2''' (rodoma iki '''$1''' pakeitimų).",
+'rcnotefrom' => 'Žemiau yra pakeitimai pradedant <strong>$2</strong> (rodoma iki <strong>$1</strong> pakeitimų).',
 'rclistfrom' => 'Rodyti naujus pakeitimus pradedant $1',
 'rcshowhideminor' => '$1 smulkius keitimus',
+'rcshowhideminor-show' => 'Rodyti',
+'rcshowhideminor-hide' => 'Slėpti',
 'rcshowhidebots' => '$1 robotus',
-'rcshowhideliu' => '$1 prisijungusius naudotojus',
+'rcshowhidebots-show' => 'Rodyti',
+'rcshowhidebots-hide' => 'Slėpti',
+'rcshowhideliu' => '$1 registruotus naudotojus',
+'rcshowhideliu-show' => 'Rodyti',
+'rcshowhideliu-hide' => 'Slėpti',
 'rcshowhideanons' => '$1 anoniminius naudotojus',
+'rcshowhideanons-show' => 'Rodyti',
+'rcshowhideanons-hide' => 'Slėpti',
 'rcshowhidepatr' => '$1 patikrintus keitimus',
+'rcshowhidepatr-show' => 'Rodyti',
+'rcshowhidepatr-hide' => 'Slėpti',
 'rcshowhidemine' => '$1 mano keitimus',
+'rcshowhidemine-show' => 'Rodyti',
+'rcshowhidemine-hide' => 'Slėpti',
 'rclinks' => 'Rodyti paskutinius $1 pakeitimų per paskutiniąsias $2 dienų<br />$3',
 'diff' => 'skirt',
 'hist' => 'ist',
@@ -1651,6 +1664,7 @@ Jei visvien norite įkelti savo failą, prašome eiti atgal ir įkelti šį fail
 'php-uploaddisabledtext' => "Failų įkėlimai uždrausti PHP nustatymuose.
 Patikrinkite ''file_uploads'' nustatą.",
 'uploadscripted' => 'Šis failas turi HTML arba programinį kodą, kuris gali būti klaidingai suprastas interneto naršyklės.',
+'uploadscriptednamespace' => "Šis SVG failas turi neteisėtą vietą vardui '$1'",
 'uploadvirus' => 'Šiame faile yra virusas! Smulkiau: $1',
 'uploadjava' => 'Failas yra ZIP failas, kuriame yra Java .class failas.
 Įkelti Java failus neleidžiama, nes jie gali padėti apeiti saugumo apribojimus.',
@@ -1977,6 +1991,9 @@ Kiekvienoje eilutėje yra nuorodos į pirmąjį ir antrąjį peradresavimą, tai
 'protectedpages-indef' => 'Tik neapibrėžtos apsaugos',
 'protectedpages-cascade' => 'Tik pakopinė apsauga',
 'protectedpagesempty' => 'Šiuo metu nėra apsaugotas joks failas su šiais parametrais.',
+'protectedpages-page' => 'Puslapis',
+'protectedpages-expiry' => 'Galioja iki',
+'protectedpages-reason' => 'Priežastis',
 'protectedtitles' => 'Apsaugoti pavadinimai',
 'protectedtitlesempty' => 'Šiuo metu nėra jokių pavadinimų apsaugotų šiais parametrais.',
 'listusers' => 'Naudotojų sąrašas',
index 9e2a931..f38f9ed 100644 (file)
@@ -189,7 +189,6 @@ $messages = array(
 'disclaimers' => 'Daīšmu nūstatejumi',
 'disclaimerpage' => 'Project:Dasaīšonu nūstateišona',
 'edithelp' => 'Paleigs',
-'helppage' => 'Help:Turīņs',
 'mainpage' => 'Suoku puslopa',
 'mainpage-description' => 'Suoku puslopa',
 'policy-url' => 'Project:Nūsacejumi',
@@ -305,7 +304,7 @@ Par to var ziņuot [[Special:ListUsers/sysop|kaidam administratoram]], nūruodū
 'summary-preview' => 'Apsavērt kūpsavylkumu',
 'newarticle' => '(Jauns roksts)',
 'newarticletext' => "Tu ite tyki caur saitis nu, pagaidam vēļ nauzraksteitys, lopys.
-Kab radeitu lopu, suoc raksteit teksta lūgā apaškā (par teksta formatiešonu i seikuokai informaceja verīs [[{{MediaWiki:Helppage}}|paleigu]]).
+Kab radeitu lopu, suoc raksteit teksta lūgā apaškā (par teksta formatiešonu i seikuokai informaceja verīs [$1 paleigu]).
 Ka Tu ite tyki deļ klaidys, vīnkuorši daspīd '''back''' pūgu puorlyukprogramā.",
 'noarticletext' => "Pošulaik itymā puslopā navā nikaida teksta.
 Jius varat [[Special:Search/{{PAGENAME}}|atrast ituos pasaukys pīmini]] cytuos puslopuos,
index 1e51344..87140f2 100644 (file)
@@ -246,7 +246,6 @@ $1',
 'disclaimers' => 'Intlawhkhalhna',
 'disclaimerpage' => 'Project: Intlawhkhalhna Dan',
 'edithelp' => 'Siamţhat zirna',
-'helppage' => 'Help: A chhunga thu awmte',
 'mainpage' => 'Phekpui',
 'mainpage-description' => 'Phekpui',
 'policy-url' => 'Project: Dàn',
@@ -557,7 +556,7 @@ A phêk i en chhungin sawn emaw nuaibo emaw a ni a ni ang.',
 'accmailtext' => '[[User talk:$1|$1]] tan a kahpaha siam thurûk $2 hnenah thawn a ni tawh.
 I siangchan thurûk hi [[Special:ChangePassword|thurûk tihdanglamna]]-ah i inziahluh hnuah i tidanglam thei ang.',
 'newarticle' => '(A thar)',
-'newarticletext' => "Phêk awm lo zawmna i rawn zui lut a ni. Phêk siam tùrin a hnuaia bawmah khuan chhu rawh (hriattirna dang [[{{MediaWiki:Helppage}}|ţanpuina phêk]]-ah a en theih).
+'newarticletext' => "Phêk awm lo zawmna i rawn zui lut a ni. Phêk siam tùrin a hnuaia bawmah khuan chhu rawh (hriattirna dang [$1 ţanpuina phêk]-ah a en theih).
 Tihsual palh thilthua heta lo lût i nih chuan i rangpuifanna-a '''letna''' fei zawnah hmet rawh.",
 'noarticletext' => 'He phêkah hian thu a la awm hrih lo.
 Phêk dangah [[Special:Search/{{PAGENAME}}| he phêk hming hi i zawng]] thei ang, a nih loh pawhin a laichin 
index 4f78d3d..c51cf11 100644 (file)
@@ -22,6 +22,7 @@
  * @author Marozols
  * @author Papuass
  * @author Reedy
+ * @author Srolanh
  * @author Xil
  * @author Yyy
  * @author לערי ריינהארט
@@ -299,7 +300,6 @@ $1',
 'disclaimers' => 'Saistību atrunas',
 'disclaimerpage' => 'Project:Saistību atrunas',
 'edithelp' => 'Rediģēšanas palīdzība',
-'helppage' => 'Help:Saturs',
 'mainpage' => 'Sākumlapa',
 'mainpage-description' => 'Sākumlapa',
 'policy-url' => 'Project:Politika',
@@ -428,6 +428,7 @@ Lai pievienotu izmaiņas tulkojumā visās ''wiki'', lūdzam izmantot ''MediaWik
 'ns-specialprotected' => 'Nevar izmainīt īpašās lapas.',
 'titleprotected' => "Šī lapa ir aizsargāta pret izveidošanu. To aizsargāja [[User:$1|$1]].
 Norādītais iemesls bija ''$2''.",
+'exception-nologin' => 'Neesat pieslēdzies',
 
 # Virus scanner
 'virus-badscanner' => "Nekorekta konfigurācija: nezināms vīrusu skeneris: ''$1''",
@@ -470,9 +471,10 @@ Vari turpināt to izmantot anonīmi, vari <span class='plainlinks'>[$1 atgriezti
 'nologinlink' => 'Reģistrējies',
 'createaccount' => 'Izveidot jaunu lietotāju',
 'gotaccount' => "Tev jau ir lietotājvārds? '''$1'''!",
-'gotaccountlink' => 'Dodies iekšā',
+'gotaccountlink' => 'Pieslēgties',
 'userlogin-resetlink' => 'Esat aizmirsis savu pieslēgšanās informāciju?',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Palīdzība ar pieslēgšanos]]',
+'userlogin-loggedin' => 'Tu esi pieslēdzies ar lietotājvārdu {{GENDER:$1|$1}}.
+Lai pieslēgtos ar citu lietotājvārdu, aizpildi šo formu.',
 'userlogin-createanother' => 'Izveidot citu kontu',
 'createacct-join' => 'Ievadiet savu informāciju zemāk.',
 'createacct-another-join' => 'Ievadiet jaunā konta informāciju zemāk.',
@@ -489,7 +491,7 @@ Vari turpināt to izmantot anonīmi, vari <span class='plainlinks'>[$1 atgriezti
 'createacct-imgcaptcha-ph' => 'Ievadiet tekstu, kuru jūs redzat augstāk',
 'createacct-submit' => 'Izveidot savu kontu',
 'createacct-another-submit' => 'Izveidot citu lietotāja kontu',
-'createacct-benefit-heading' => '{{SITENAME}} darbojas ar tādu cilvēku kā jūs ieguldījumu.',
+'createacct-benefit-heading' => '{{SITENAME}} darbojas ar tādu cilvēku kā Tu ieguldījumu.',
 'createacct-benefit-body1' => '{{PLURAL:$1|labojums|labojumi}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|lapa|lapas}}',
 'createacct-benefit-body3' => '{{PLURAL:$1|nesens dalībnieks|neseni dalībnieki}}',
@@ -548,9 +550,15 @@ Tādēļ šobrīd no šīs IP adreses vairs nevar izveidot jaunus kontus.',
 Lūdzu, uzgaidiet $1 pirms mēģiniet vēlreiz.',
 'login-abort-generic' => 'Jūsu pieteikšanās bija neveiksmīga — Darbība pārtraukta',
 'loginlanguagelabel' => 'Valoda: $1',
+'pt-login' => 'Pieslēgties',
+'pt-login-button' => 'Pieslēgties',
+'pt-createaccount' => 'Reģistrēties',
+'pt-userlogout' => 'Iziet',
 
 # Email sending
 'php-mail-error-unknown' => 'Nezināma kļūda PHP mail() funkcijā',
+'user-mail-no-addy' => 'Mēģināja sūtīt e-pastu bez e-pasta adreses.',
+'user-mail-no-body' => 'Mēģināja sūtīt e-pastu ar tukšu vai nepamatoti īsu pamata daļu.',
 
 # Change password dialog
 'changepassword' => 'Mainīt paroli',
@@ -596,6 +604,7 @@ Pagaidu parole: $2',
 'changeemail-cancel' => 'Atcelt',
 
 # Special:ResetTokens
+'resettokens-tokens' => 'Žetoni:',
 'resettokens-token-label' => '$1 (šībrīža vērtība: $2)',
 
 # Edit page toolbar
@@ -674,7 +683,7 @@ Norādi un apstiprini e-pasta adresi savos [[Special:Preferences|lietotāja uzst
 'nosuchsectiontext' => 'Jūs mēģinājāt rediģēt sadaļu, kas neeksistē.
 Tā var būt pārvietota vai dzēsta, kamēr jūs apskatījāt lapu.',
 'loginreqtitle' => 'Nepieciešama ieiešana',
-'loginreqlink' => 'login',
+'loginreqlink' => 'pieslēgties',
 'loginreqpagetext' => 'Tev nepieciešams $1, lai apskatītu citas lapas.',
 'accmailtitle' => 'Parole nosūtīta.',
 'accmailtext' => "Nejauši ģenerēta parole lietotājam [[User talk:$1|$1]] tika nosūtīta uz $2.
@@ -682,7 +691,7 @@ Tā var būt pārvietota vai dzēsta, kamēr jūs apskatījāt lapu.',
 Šī konta paroli pēc ielogošanās varēs nomainīt ''[[Special:ChangePassword|šeit]]''.",
 'newarticle' => '(Jauns raksts)',
 'newarticletext' => "Tu šeit nonāci sekojot saitei uz, pagaidām vēl neuzrakstītu, lapu.
-Lai izveidotu lapu, sāc rakstīt teksta logā apakšā (par teksta formatēšanu un sīkākai informācija skatīt [[{{MediaWiki:Helppage}}|palīdzības lapu]]).
+Lai izveidotu lapu, sāc rakstīt teksta logā apakšā (par teksta formatēšanu un sīkākai informācija skatīt [$1 palīdzības lapu]).
 Ja tu šeit nonāci kļūdas pēc, vienkārši uzspied '''back''' pogu pārlūkprogrammā.",
 'anontalkpagetext' => "----''Šī ir diskusiju lapa anonīmam lietotājam, kurš vēl nav kļuvis par reģistrētu lietotāju vai arī neizmanto savu lietotājvārdu. Tādēļ mums ir jāizmanto skaitliskā IP adrese, lai viņu identificētu.
 Šāda IP adrese var būt vairākiem lietotājiem.
@@ -883,7 +892,6 @@ Sīkāku informāciju var atrast [{{fullurl:{{#Special:Log}}/delete|page={{FULLP
 'revdelete-show-file-submit' => 'Jā',
 'revdelete-selected' => "'''[[:$1]] {{PLURAL:$2|izvēlētā versija|izvēlētās versijas}}:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Izvēlētais reģistra ieraksts|Izvēlētie reģistra ieraksti}}:'''",
-'revdelete-text' => "'''Lapu hronoloģijā un reģistros izdzēstās versijas vēl joprojām būs redzamas, tomēr daļa informācijas nebūs pieejama publiski.''' Citi {{SITENAME}} administratori varēs apskatīt spēlto saturu un varēs to atslēpt, ja vien nav papildu ierobežojumi.",
 'revdelete-confirm' => 'Lūdzu apstiprini, ka Tu zini, ko dari, Tu apzinies sekas, tāpat Tu to dari saskaņā ar vadlīnijām.',
 'revdelete-suppress-text' => "Paslēpšanu izmantot vienīgi šādos gadījumos:
 * potenciāli apmelojoša informācija
@@ -1712,8 +1720,8 @@ Katrā rindiņā ir saites uz pirmo un otro pāradresācijas lapu, kā arī pirm
 'notargettitle' => 'Bez mērķa',
 'nopagetitle' => 'Nav tādas mērķa lapas',
 'nopagetext' => 'Mērķa lapa, ko Jūs norādījāt, nepastāv.',
-'pager-newer-n' => '{{PLURAL:$1|1 jaunāku|$1 jaunākas}}',
-'pager-older-n' => '{{PLURAL:$1|1 vecāku|$1 vecākas}}',
+'pager-newer-n' => '{{PLURAL:$1|$1 jaunāku|$1 jaunākas}}',
+'pager-older-n' => '{{PLURAL:$1|$1 vecāku|$1 vecākas}}',
 'querypage-disabled' => 'Šī īpašā lapā ir atspējota veiktspējas iemeslu dēļ.',
 
 # Book sources
@@ -1934,7 +1942,7 @@ Papildinformācija:
 'delete-edit-reasonlist' => 'Izmainīt dzēšanas iemeslus',
 'delete-toobig' => 'Šai lapai ir liela izmaiņu hronoloģija, vairāk nekā $1 {{PLURAL:$1|versija|versijas}}.
 Šādu lapu dzēšana ir atslēgta, lai novērstu nejaušus traucējumus {{grammar:lokatīvs|{{SITENAME}}}}.',
-'deleting-backlinks-warning' => "'''Brīdinājums:''' uz lapu, ko grasies izdzēst, ved saites no citām lapām.",
+'deleting-backlinks-warning' => "'''Brīdinājums:''' uz lapu, ko grasies izdzēst, ved [[Special:WhatLinksHere/{{FULLPAGENAME}}|saites no citām lapām]].",
 
 # Rollback
 'rollback' => 'Novērst labojumus',
@@ -1977,7 +1985,7 @@ Lūdzu, spied \"''back''\" un atjaunini iepriekšējo lapu. Tad mēģini vēlrei
 'protect-text' => "Šeit var apskatīties un izmainīt lapas '''$1''' aizsardzības līmeni.",
 'protect-locked-access' => "Jūsu kontam nav atļaujas mainīt lapas aizsardzības pakāpi.
 Pašreizējie lapas '''$1''' iestatījumi ir:",
-'protect-cascadeon' => 'Šī lapa pašlaik ir aizsargāta, jo tā ir iekļauta {{PLURAL:$1|sekojošā lapā|sekojošās lapās}} (mainot šīs lapas aizsardzības līmeni aizsardzība netiks noņemta):',
+'protect-cascadeon' => 'Šī lapa pašlaik ir aizsargāta, jo tā ir iekļauta {{PLURAL:$1|šajā lapā|šajās lapās}} (mainot šīs lapas aizsardzības līmeni aizsardzība netiks noņemta):',
 'protect-default' => 'Atļaut visiem lietotājiem',
 'protect-fallback' => 'Atļaut tikai lietotājiem ar "$1" atļauju',
 'protect-level-autoconfirmed' => 'Atļaut tikai autoapstiprinātiem lietotājiem',
index c099059..fa7adf3 100644 (file)
@@ -187,7 +187,6 @@ $messages = array(
 'tog-ccmeonemails' => '凡所遺書,請存副本。',
 'tog-diffonly' => '異下無示頁',
 'tog-showhiddencats' => '示隱類',
-'tog-noconvertlink' => '非轉鍵題',
 'tog-norollbackdiff' => '轉後略異',
 'tog-useeditwarning' => '離而未存,示吾',
 
@@ -398,7 +397,6 @@ $1',
 'disclaimers' => '免責宣',
 'disclaimerpage' => 'Project:免責宣',
 'edithelp' => '助纂塾',
-'helppage' => 'Help:目錄',
 'mainpage' => '卷首',
 'mainpage-description' => '卷首',
 'policy-url' => 'Project:策',
@@ -563,7 +561,6 @@ $2',
 'gotaccountlink' => '登簿',
 'userlogin-resetlink' => '君忘登簿所需爾?',
 'userlogin-resetpassword-link' => '輸子符節',
-'helplogin-url' => 'Help:登簿',
 'createacct-emailrequired' => '電郵',
 'createacct-emailoptional' => '電郵 (可選)',
 'createaccountmail' => '同郵',
@@ -736,7 +733,7 @@ $2',
 
 此符節可於登簿後改',
 'newarticle' => '撰',
-'newarticletext' => '此頁尚缺。欲補,撰於下,有惑見[[{{MediaWiki:Helppage}}|助]]。
+'newarticletext' => '此頁尚缺。欲補,撰於下,有惑見[$1 助]。
 誤入者,返前即可。',
 'anontalkpagetext' => "----''此匿論也,為未簿或不簿者設,IP俱錄以辨人焉。然IP不獨,恐生亂象,不喜惠[[Special:UserLogin/signup|增]][[Special:UserLogin|登簿]]遠之。",
 'noarticletext' => '查無此文。[[Special:Search/{{PAGENAME}}|尋題]],
@@ -920,7 +917,6 @@ $2',
 'revdelete-show-file-submit' => '善',
 'revdelete-selected' => "'''審[[:$1]]已擇$2:'''",
 'logdelete-selected' => "'''已擇誌$1:'''",
-'revdelete-text' => "'''刪審雖見誌,其文摒公眾,惟有秩可得之。'''無規則有秩可復還焉。",
 'revdelete-confirm' => '爾確作之,解之果焉,合之[[{{MediaWiki:Policy-url}}|策]]矣。',
 'revdelete-suppress-text' => "'''限'''於此壓:
 * 無適之個訊
index ec60a5b..48820b9 100644 (file)
@@ -258,7 +258,6 @@ $1',
 'disclaimers' => 'अनाधिकार घोषणा',
 'disclaimerpage' => 'Project:अनाधिकार घोषणा',
 'edithelp' => 'संपादन सहयोग',
-'helppage' => 'Help: विषय सूची',
 'mainpage' => 'सम्मुख पन्ना',
 'mainpage-description' => 'सम्मुख पृष्ठ',
 'policy-url' => 'Project:नीति',
@@ -629,7 +628,7 @@ $2
 ऐ खाताक कूटशब्द बदलल जा सकैए ''[[Special:ChangePassword|कूटशब्द बदलू]]'' पन्नापर सम्प्रवेश केलाक बाद।",
 'newarticle' => '(नव)',
 'newarticletext' => 'अहाँ एहेन पन्नाक लिंकक अनुसरण कऽ आएल छी जे पन्ना अखन बनले नै अछि।
-पन्ना बनेबाक लेल नीचाँक बक्शामे टाइप केनाइ शुरू करू (देखू [[{{MediaWiki:Helppage}}| सहायता पन्ना]] विषेष जानकारी लेल)।',
+पन्ना बनेबाक लेल नीचाँक बक्शामे टाइप केनाइ शुरू करू (देखू [$1  सहायता पन्ना] विषेष जानकारी लेल)।',
 'anontalkpagetext' => "----'' ई एकटा अनाम प्रयोक्ताक लेल वार्ता पन्ना छी जे अखन धरि अपन खाता नै खोलने छथि, वा जे एकर प्रयोग नै करै छथि।
 हमरा सभकेँ तइ लेल अंकीय अनिकेतक प्रयोग हुनका देखार करबा लेल करऽ पड़ि रहल अछि।
 ऐ तरहक अनिकेत अनेक प्रयोक्ता द्वारा साझी कएल जा सकैत अछि।
@@ -842,8 +841,6 @@ $3 द्वारा देल कारण अछि ''$2''",
 'revdelete-show-file-submit' => 'हँ',
 'revdelete-selected' => "'''{{PLURAL:$2|चुनल संशोधन|चुनल संशोधन सभ}} एकर [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|चुनल वृत्तलेख घटना|चुनल वृत्तलेख घटना सभ}}:'''",
-'revdelete-text' => "'''मेटाएल संशोधन सभ आ घटना सभ पन्नाक इतिहास आ वृत्तलेखमे आएत, मुदा ओकर सूचीक किछु भाग सामान्य लोक लेल उपलब्ध नै रहत।'''
-{{अन्तर्जाल}} पर दोसर संचालक लग अखनो नुकाएल सूची उपलब्ध छन्हि आ ओ ओकरा फेरसँ आनि सकै छथि अही मध्यस्थक द्वारा, आ से हएत जँ अतिरिक्त प्रतिबन्ध लागू रहत।",
 'revdelete-confirm' => 'कृपा कऽ आश्वस्त भऽ जाउ जे अहाँ ई करऽ चाहै छी, अहाँकेँ एकर परिणामक जनतब अछि, आ अहाँ एकरा [[{{MediaWiki:Policy-url}}|निअम]] क अनुसार कऽ रहल छी।',
 'revdelete-suppress-text' => "दबाबैबला काज '''मात्र''' ऐ सभ स्थितिमे प्रयोग करू:
 * मानहानिक सम्भावनाबला सूचना
index e35f03b..f363cbf 100644 (file)
@@ -263,7 +263,6 @@ $1',
 'disclaimers' => 'Pamaidonan',
 'disclaimerpage' => 'Project:Panyangkalan umum',
 'edithelp' => 'Pitulung panyuntingan',
-'helppage' => 'Help:Isi',
 'mainpage' => 'Kaca Utama',
 'mainpage-description' => 'Kaca Utama',
 'policy-url' => 'Project:Kabijakan',
@@ -458,8 +457,6 @@ Aja kelalen ngowaih [[Special:Preferences|preferensi {{SITENAME}}]] Rika.',
 'gotaccountlink' => 'Mlebu log',
 'userlogin-resetlink' => 'Apa Rika kelalen info detil nggo mlebune?',
 'userlogin-resetpassword-link' => 'Setel maning tembung sandhine Rika',
-'helplogin-url' => 'Pitulung:Mlebu log',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pitulung mlebu log]]',
 'createacct-join' => 'Lebokna informasine Rika nang ngisor kiye.',
 'createacct-another-join' => 'Lebokna informasi akun anyar nang ngisor kiye.',
 'createacct-emailrequired' => 'Alamat imel',
@@ -676,7 +673,7 @@ Kiye ndeyan anu uwis dipindah utawa dibusek dong Rika lagi ndeleng kaca kiye.',
 Tembung sandhi kanggo akun anyar kiye teyeng diganti nang kaca ''[[Special:ChangePassword|ganti tembung sandhi]]'' seuwise mlebu log.",
 'newarticle' => '(Anyar)',
 'newarticletext' => "Rika ngetutna pranala maring kaca sing durung ana.
-Kanggo nggawe kaca kuwe,molai baen ngetik nang kotak nang ngisor kiye (deleng [[{{MediaWiki:Helppage}}|kaca pitulung]] kanggo informasi lewih detil).
+Kanggo nggawe kaca kuwe,molai baen ngetik nang kotak nang ngisor kiye (deleng [$1 kaca pitulung] kanggo informasi lewih detil).
 Angger Rika ora nguja gutul kene, klik baen tombol ''back'' nang panjlajah web Rika.",
 'noarticletext' => 'Sekiye ora ana teks nang kaca kiye.
 Rika teyeng [[Special:Search/{{PAGENAME}}|nggoleti judul kaca kiye]] nang kaca-kaca liyane,
index 1f4fb43..1e26e4d 100644 (file)
@@ -371,7 +371,6 @@ $1',
 'disclaimers' => 'Видешинь корхтаматне',
 'disclaimerpage' => 'Project:Пря видешинь корхнема',
 'edithelp' => 'Петнемань лезкс',
-'helppage' => 'Help:Лопань потмоц',
 'mainpage' => 'Пря лопа',
 'mainpage-description' => 'Пря лопа',
 'policy-url' => 'Project:Политик',
@@ -714,7 +713,7 @@ $2',
 'newarticle' => '(Од)',
 'newarticletext' => "Тон сать лопас кона нинге изь тие.
 Сёрматк паксяв алу тя лопать тиеманкса
-(ванк [[{{MediaWiki:Helppage}}|лезкс лопа]] лездама информациенкса).
+(ванк [$1 лезкс лопа] лездама информациенкса).
 Саньдярять тяза эльбядезь, люпштак пунять '''меки''' тонь интернет полатксонь вальмасонза.",
 'anontalkpagetext' => "----''Тя корхтама лопать тизе лемфтома тиись кона нинге аф сёрматфтф эли кона эсь сёрматфтомас аф кунци. Тяса минь нолдамс сонь лувомтяшкснень IP адресонц тиить содафтоманкса.
 Тя IP адресть вельде ули кода сашендомс иля тиихненди.
@@ -881,8 +880,6 @@ $3 макссь туфталсь - ''$2''",
 'revdelete-show-file-submit' => 'Ина',
 'revdelete-selected' => "''''''$1:'''-нь {{PLURAL:$2|Кочкаф верзиец|Кочкаф верзиенза}}'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Кочкаф сёрматфтомась|кочкаф сёрматфтоматне}}:'''",
-'revdelete-text' => "'''Нардаф верзиетне илядыхть няевикс лопать историясонза ди нардамань лувомава, интай сонь потмоснон пакшенза кармайхть аф сембонди сатовихть.'''
-Иля {{SITENAME}}нь оцюнятненди кяшф потмоснон ули кода ваномс эди мърдафтомс тяка програмонь ванфть вельде мъзярс иля кардафксне исть путов.",
 'revdelete-legend' => 'Арафтомс няемга оторхне',
 'revdelete-hide-text' => 'Кяшемс тя лопать верзиенц',
 'revdelete-hide-image' => 'Кяшемс файлхнень потмосна',
index 95d1c2a..019cd5c 100644 (file)
@@ -466,7 +466,6 @@ $1',
 'disclaimers' => 'Fampitandremana',
 'disclaimerpage' => 'Project:General disclaimer',
 'edithelp' => 'Fanoroana',
-'helppage' => 'Help:Fanoroana',
 'mainpage' => 'Fandraisana',
 'mainpage-description' => 'Fandraisana',
 'policy-url' => 'Project:Fepetra',
@@ -668,8 +667,6 @@ Mila manaiky cookies ianao raha te hiditra amin'ny {{SITENAME}}.",
 'gotaccountlink' => 'Midira',
 'userlogin-resetlink' => "Adinonavo ve ny antsipihan'ny fidiranao ?",
 'userlogin-resetpassword-link' => 'Hadino ny tenimiafina?',
-'helplogin-url' => 'Help:Fidirana',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Fanoroana mikasika ny fidirana]]',
 'userlogin-loggedin' => "Efa tafiditra amin'ny anaran'i {{GENDER:$1|$1}} ianao. Ampiasao ny fôrmiolera eo ambany raha hiditra amin'ny anaran'ny mpikambana hafa.",
 'userlogin-createanother' => 'Hamorona kaonty hafa',
 'createacct-join' => 'Atsofohy eo ambany ny fampahalalana momba anao.',
@@ -935,7 +932,7 @@ Mety efa nakisaka angamba izy, na voafafa tamin' ianareo namaky ity pejy ity far
 'accmailtitle' => 'Lasa ny tenimiafina.',
 'accmailtext' => "Nalefa tany amin'i $2 ny tenimiafina kisendra ho an'ny kaonty [[User talk:$1|$1]]! Azo ovaina eo amin'i ''[[Special:ChangePassword|Manova tenimiafina]]'' izany amin'ny alalan'ny fidirana.",
 'newarticle' => '(Vaovao)',
-'newarticletext' => "Mbola tsy misy ity takelaka ity koa azonao atao ny mamorona azy eto ambany. Jereo ny [[{{MediaWiki:Helppage}}|Fanoroana]] raha misy fanazavana ilainao.
+'newarticletext' => "Mbola tsy misy ity takelaka ity koa azonao atao ny mamorona azy eto ambany. Jereo ny [$1 Fanoroana] raha misy fanazavana ilainao.
 
 Raha toa moa ka tsy nieritreritra ny hamorona ity takelaka ity ianao dia miverena etsy amin'ny fandraisana.",
 'anontalkpagetext' => "----<i>Ity pejy ity dia pejin-dresak'olona tsy nanokatra na tsy nampiasa ny kaontiny.
@@ -1175,8 +1172,6 @@ tsy misy ilay izy, na ny santiôna ankehitriny no andramana asitrika.',
 'revdelete-show-file-submit' => 'Eny',
 'revdelete-selected' => "'''{{PLURAL:$2|Votoatiny nosafidiana|Votoatiny nosafidiana}}n'i '''[[:$1]]''' :'''",
 'logdelete-selected' => "'''{{PLURAL:$1||}}Laogy voafidy :'''",
-'revdelete-text' => "'''Mbola ho ao amin'ny laogim-pejy ary ao amin'ny logy ny versiona ary zava-nitranga voaesotra, fa tsy ho hitan'ny mason'ny vahoaka ny votoatin'izy ireo.'''
-Mbola afaka jeren'ireo mpandrindran'i {{SITENAME}} foana ny votoatiny voafina  ary azony atao ho hitan'ny vahoaka indray ilay izy amin'ny alalan'ity pejy fanaovan-tsafidy ity, raha tsy misy fepetra apetraka.",
 'revdelete-confirm' => 'Amafiso eto ny hevitrao raha hanao io ianao, raha azonao sary an-tsaina ny mety ho vokany, ary raha araka ny [[{{MediaWiki:Policy-url}}|fepetra mihatra]] ny zavatra ataonao.',
 'revdelete-suppress-text' => "Ny famafàna pejy dia ampiasaina rehefa :
 * Fampahalalana mampiely lainga
index 98afe8d..4aacaeb 100644 (file)
@@ -282,7 +282,6 @@ $messages = array(
 'disclaimers' => 'Вуйшиймаш деч кораҥмаш',
 'disclaimerpage' => 'Project:Вуйшиймаш деч кораҥмаш',
 'edithelp' => 'Тӧрлатымаш полыш',
-'helppage' => 'Help:Полшык',
 'mainpage' => 'Тӱҥ лаштык',
 'mainpage-description' => 'Тӱҥ лаштык',
 'portal' => 'Тӱшка',
@@ -439,7 +438,7 @@ $messages = array(
 'accmailtitle' => 'Шолыпмут колтымо.',
 'newarticle' => '(У)',
 'newarticletext' => "Тыгай лӱман лаштык уке.
-Лаштыкым ышташлан ӱлнӧ возаш тӱҥал (сайынрак палашлан [[{{MediaWiki:Helppage}}|полшыкым]] ончал).
+Лаштыкым ышташлан ӱлнӧ возаш тӱҥал (сайынрак палашлан [$1 полшыкым] ончал).
 Тый тышке йонгылыш логалынат гын, браузерыште '''шенгек''' полдышым темдал.",
 'noarticletext' => 'Кызытсе жаплан тиде лаштыкыште нимом возымо огыл.
 Тый тиде лаштыкын лӱмжым вес лаштык-влакыште [[Special:Search/{{PAGENAME}}|кычалын]] кертат, але <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} журнал-влакыште кычалын] кертат, але [{{fullurl:{{FULLPAGENAME}}|action=edit}} тыгай лӱман лаштыкым ышташ] кертат</span>.',
index 7ab865d..1b6cc2c 100644 (file)
@@ -409,7 +409,6 @@ $1',
 'disclaimers' => 'Sanggahan umum',
 'disclaimerpage' => 'Project:Sanggahan umum',
 'edithelp' => 'Bantuan suntiangan',
-'helppage' => 'Help:Isi',
 'mainpage' => 'Palanta',
 'mainpage-description' => 'Palanta',
 'policy-url' => 'Project:Kabijakan jo padoman',
@@ -593,8 +592,6 @@ Parhatian bahawa bara laman mungkin masih taruih manunjukkan bahawa Sanak masih
 'gotaccountlink' => 'Masuak log',
 'userlogin-resetlink' => 'Lupo rincian info masuak Sanak?',
 'userlogin-resetpassword-link' => 'Buek ulang kato sandi',
-'helplogin-url' => 'Help:Masuak log',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Bantuan untuak masuak log]]',
 'createacct-join' => 'Masuakan informasi Sanak di bawah ko.',
 'createacct-emailrequired' => 'Alamaik surel',
 'createacct-emailoptional' => 'Alamaik surel (opsional)',
@@ -829,7 +826,7 @@ Subbagian ko mungkin lah dipindahan atau dihapuih sangkek Sanak mambukaknyo.',
 Kato sandi untuak akun baharu iko dapek diubah di laman ''[[Special:ChangePassword|pangubahan kato sandi]]'' satalah masuak log.",
 'newarticle' => '(Baru)',
 'newarticletext' => "Laman nan Sanak cari alun ado.
-Untuak mambuek laman tu, mulailah jo manulih dalam kotak di bawah (caliak [[{{MediaWiki:Helppage}}|laman bantuan]] untuak informasi labiah lanjuik).
+Untuak mambuek laman tu, mulailah jo manulih dalam kotak di bawah (caliak [$1 laman bantuan] untuak informasi labiah lanjuik).
 Jikok Sanak indak sangajo sampai ka laman ko, klik tombol '''back''' pado paramban web Sanak.",
 'anontalkpagetext' => "----''Iko adolah laman rundiang saurang pangguno anonim nan alun mambuek akun atau indak manggunoannyo.
 Jadi, kami tapaso mamakai alamat IP nan takaik untuak mangenalinyo.
@@ -1064,8 +1061,6 @@ Sanak dapek malieknyo; rinciannyo mungkin ado di [{{fullurl:{{#Special:Log}}/del
 'revdelete-show-file-submit' => 'Yo',
 'revdelete-selected' => "'''{{PLURAL:$2|Revisi piliahan}} dari [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Log piliahan}}:'''",
-'revdelete-text' => "'''Revisi jo tindakan nan alah dihapuih akan tetap muncua di versi tadaulu dan laman log, tapi bagian dari isinyo indak dapek diakses publik.'''
-Panguruih {{SITENAME}} lain tetap dapek mangakses isi nan tasuruak ko dan dapek mambatalan pangapuihannyo manggunoan antarmuko nan samo, kacuali ado pambatehan lain nan dibuek.",
 'revdelete-confirm' => 'Tolong konfirmasi baso Sanak samemang bamakasuik malakuan iko, mamahami konsekuensinyo, dan baso Sanak malakuannyo sasuai jo [[{{MediaWiki:Policy-url}}|kabijakan]].',
 'revdelete-suppress-text' => "Panyambunyian revisi '''hanyo''' buliah digunoan untuak kasus-kasus barikuik:
 * Informasi paribadi nan indak patuik
index 7e375bb..f7b2576 100644 (file)
@@ -390,7 +390,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Испраќај ми мои примероци од писмата што ги праќам на другите корисници',
 'tog-diffonly' => 'Не ја покажувај содржината на страницата под разликите',
 'tog-showhiddencats' => 'Прикажи скриени категории',
-'tog-noconvertlink' => 'Оневозможи претворање на наслов на врска',
 'tog-norollbackdiff' => 'Изостави ја разликата по извршено отповикување',
 'tog-useeditwarning' => 'Предупреди ме кога сакам да напуштам страница за уредување без да ги имам зачувано промените',
 'tog-prefershttps' => 'Секогаш најавувај ме преку безбедна врска',
@@ -602,7 +601,6 @@ $1',
 'disclaimers' => 'Услови на употреба',
 'disclaimerpage' => 'Project:Услови на употреба',
 'edithelp' => 'Помош за уредување',
-'helppage' => 'Help:Содржина',
 'mainpage' => 'Главна страница',
 'mainpage-description' => 'Главна страница',
 'policy-url' => 'Project:Начела',
@@ -746,7 +744,7 @@ $2',
 'customjsprotected' => 'Немате дозвола да ја менувате оваа страница со JavaScript  бидејќи содржи туѓи лични нагодувања.',
 'mycustomcssprotected' => 'Немате дозвола да ја уредувате оваа каскадна стилска страница (CSS).',
 'mycustomjsprotected' => 'Немате дозвола да ја уредувате оваа страница со JavaScript.',
-'myprivateinfoprotected' => 'Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ð° Ð´Ð° Ð³Ð¸ Ñ\83Ñ\80едÑ\83ваÑ\82е Ð²Ð°Ñ\88иÑ\82е Ð¿Ñ\80иваÑ\82ни информации.',
+'myprivateinfoprotected' => 'Ð\9dемаÑ\82е Ð´Ð¾Ð·Ð²Ð¾Ð»Ð° Ð´Ð° Ð³Ð¸ Ñ\83Ñ\80едÑ\83ваÑ\82е Ð²Ð°Ñ\88иÑ\82е Ð»Ð¸Ñ\87ни информации.',
 'mypreferencesprotected' => 'Немате дозвола да ги уредувате вашите нагодувања.',
 'ns-specialprotected' => 'Специјални страници не може да се уредуваат.',
 'titleprotected' => "Овој наслов од страна на [[User:$1|$1]] е заштитен и не може да се создаде.
@@ -806,8 +804,7 @@ $2',
 'gotaccountlink' => 'Најавете се',
 'userlogin-resetlink' => 'Си ги заборавивте податоците за најава?',
 'userlogin-resetpassword-link' => 'Ја заборавивте лозинката?',
-'helplogin-url' => 'Help:Најава',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Помош со најавата]]',
+'userlogin-helplink2' => 'Помош за најава',
 'userlogin-loggedin' => 'Веќе сте најавени како {{GENDER:$1|$1}}.
 Со образецот подолу можете да се најавите како друг корисник.',
 'userlogin-createanother' => 'Направи нова сметка',
@@ -906,6 +903,7 @@ $2',
 'createacct-another-realname-tip' => 'Вистинското име е незадолжително.
 Доколку изберете да го внесете, тоа може да се искористи за оддавање на заслуги за Вашата работа.',
 'pt-login' => 'Најава',
+'pt-login-button' => 'Најава',
 'pt-createaccount' => 'Направи сметка',
 'pt-userlogout' => 'Одјава',
 
@@ -938,7 +936,10 @@ $2',
 'resetpass-temp-password' => 'Привремена лозинка:',
 'resetpass-abort-generic' => 'Смената на лозинката е откажана од додаток.',
 'resetpass-expired' => 'Лозинката ви е истечена. Задајте нова лозинка за да се најавите.',
-'resetpass-expired-soft' => 'Лозинката ви е истечена и ќе мора да зададете нова. Изберете лозинка сега, или пак откажете го за да ја зададете подоцна.',
+'resetpass-expired-soft' => 'Лозинката ви е истечена и ќе мора да зададете друга. Изберете ја сега, или пак стиснете на „{{int:resetpass-submit-cancel}}“ за да ја зададете подоцна.',
+'resetpass-validity-soft' => 'Лозинката ви е неважечка: $1
+
+Изберете друга сега, или пак стиснете на „{{int:resetpass-submit-cancel}}“ за да ја зададете подоцна.',
 
 # Special:PasswordReset
 'passwordreset' => 'Менување на лозинка',
@@ -994,7 +995,7 @@ $2
 
 # Special:ResetTokens
 'resettokens' => 'Врати одново шифри',
-'resettokens-text' => 'Ð\9cожеÑ\82е Ñ\88иÑ\84Ñ\80иÑ\82е Ð´Ð° Ð³Ð¸ Ð²Ñ\80аÑ\82иÑ\82е Ð¾Ð´Ð½Ð¾Ð²Ð¾ Ñ\88Ñ\82о Ð¾Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ñ\83ва Ð¿Ñ\80иÑ\81Ñ\82ап Ð´Ð¾ Ð¸Ð·Ð²ÐµÑ\81ни Ð¿Ñ\80иваÑ\82ни податоци што се однесуваат на вашата овдешна сметка.
+'resettokens-text' => 'Ð\9cожеÑ\82е Ñ\88иÑ\84Ñ\80иÑ\82е Ð´Ð° Ð³Ð¸ Ð²Ñ\80аÑ\82иÑ\82е Ð¾Ð´Ð½Ð¾Ð²Ð¾ Ñ\88Ñ\82о Ð¾Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ñ\83ва Ð¿Ñ\80иÑ\81Ñ\82ап Ð´Ð¾ Ð¸Ð·Ð²ÐµÑ\81ни Ð»Ð¸Ñ\87ни податоци што се однесуваат на вашата овдешна сметка.
 
 Ова треба да се направи ако по грешка сте споделиле нешто со некого или ако сметката ви е изложена на опасност.',
 'resettokens-no-tokens' => 'Нема шифри за враќање.',
@@ -1087,7 +1088,7 @@ $2
 'accmailtext' => "На $2 е спратена е случајно создадена лозинка за [[User talk:$1|$1]] е испратена. Истата може да се смени на страницата ''[[Special:ChangePassword|Менување на лозинка]]'' откако ќе се најавите.",
 'newarticle' => '(нова)',
 'newarticletext' => "Проследивте врска до страница која не постои.
-За да ја создадете страницата, напишете текст во полето подолу ([[{{MediaWiki:Helppage}}|помош]]). Ако сте овде по грешка, само систнете на копчето '''назад''' во вашиот прелистувач.",
+За да ја создадете страницата, напишете текст во полето подолу ([$1 помош]). Ако сте овде по грешка, само систнете на копчето '''назад''' во вашиот прелистувач.",
 'anontalkpagetext' => "----''Ова е страница за разговор со анонимен корисник кој сè уште не регистрирал корисничка сметка или не ја користи.
 Затоа мораме да ја користиме неговата бројчена IP-адреса за да го препознаеме.
 Една ваква IP-адреса може да ја делат повеќе корисници.
@@ -1338,8 +1339,10 @@ $3 ја наведе следнава причина: ''$2''",
 'revdelete-show-file-submit' => 'Да',
 'revdelete-selected' => "'''{{PLURAL:$2|Избрана ревизија|Избрани ревизии}} од [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Одбран настан од дневник|Одбрани настани од дневник}}:'''",
-'revdelete-text' => "'''Избришаните измени и настани сѐ уште ќе се појавуваат во историјата на страницата и дневниците, но делови од нивната содржина ќе бидат недостапни за јавноста.'''
-Други администратори на {{SITENAME}} сѐ уште ќе имаат пристап до скриената содржина и ќе можат да ја вратат преку истиот посредник, освен ако не се поставени дополнителни ограничувања.",
+'revdelete-text-text' => 'Избришаните ревизии сепак се појавуваат во историјата, но делови од нивната содржина ќе бидат недостапни за јавноста.',
+'revdelete-text-file' => 'Избришаните верзии на податотеките сепак се појавуваат во нејзината историја, но делови од нивната содржина ќе бидат недостапни за јавноста.',
+'logdelete-text' => 'Избришаните дневнички ставки сепак се појавуваат во дневниците, но делови од нивната содржина ќе бидат недостапни за јавноста.',
+'revdelete-text-others' => 'Другите администратори на {{SITENAME}} сепак ќе имаат пристап до скриените содржини и ќе можат да го повратат избришаното преку овој ист посредник, доколку не ставите дополнителни ограничувања.',
 'revdelete-confirm' => 'Потврдете дека сакате да го направите ова, дека ги сфаќате последиците, и дека тоа го правите во согласност со [[{{MediaWiki:Policy-url}}|правилата]].',
 'revdelete-suppress-text' => "Притајувањето се користи '''само''' во следниве случаи:
 * Потенцијално клеветнички информации
@@ -1697,7 +1700,7 @@ $1",
 'right-browsearchive' => 'Пребарување на избришани страници',
 'right-undelete' => 'Обновување избришана страница',
 'right-suppressrevision' => 'Прегледување и враќање на ревизии скриени од администратори',
-'right-suppressionlog' => 'Ð\93ледаÑ\9aе Ð½Ð° Ð¿Ñ\80иваÑ\82ни дневници',
+'right-suppressionlog' => 'Ð\93ледаÑ\9aе Ð½Ð° Ð»Ð¸Ñ\87ни дневници',
 'right-block' => 'Оневозможување на останати корисници да уредуваат',
 'right-blockemail' => 'Оневозможување корисници да праќаат е-пошта',
 'right-hideuser' => 'Блокирање корисници, сокривање од јавноста',
@@ -1715,8 +1718,8 @@ $1",
 'right-editmyuserjs' => 'Уредување на сопствени кориснички податотеки со JavaScript',
 'right-viewmywatchlist' => 'Преглед на вашиот список на набљудувања',
 'right-editmywatchlist' => 'Уредување на вашиот список на набљудувања. Извесни дејства сепак ќе ставаат страници во списокот и без да го имате ова право.',
-'right-viewmyprivateinfo' => 'Ð\9fÑ\80еглед Ð½Ð° Ñ\81опÑ\81Ñ\82вениÑ\82е Ð¿Ñ\80иваÑ\82ни податоци (на пр. е-пошта, вистинско име и презиме)',
-'right-editmyprivateinfo' => 'УÑ\80едÑ\83ваÑ\9aе Ð½Ð° Ñ\81опÑ\81Ñ\82вениÑ\82е Ð¿Ñ\80иваÑ\82ни податоци (на пр. е-пошта, вистинско име и презиме)',
+'right-viewmyprivateinfo' => 'Ð\9fÑ\80еглед Ð½Ð° Ñ\81опÑ\81Ñ\82вениÑ\82е Ð»Ð¸Ñ\87ни податоци (на пр. е-пошта, вистинско име и презиме)',
+'right-editmyprivateinfo' => 'УÑ\80едÑ\83ваÑ\9aе Ð½Ð° Ñ\81опÑ\81Ñ\82вениÑ\82е Ð»Ð¸Ñ\87ни податоци (на пр. е-пошта, вистинско име и презиме)',
 'right-editmyoptions' => 'Уредување на вашите нагодувања',
 'right-rollback' => 'Брзо отповикување на уредувањата на последниот корисник што уредувал одредена страница',
 'right-markbotedits' => 'Означување на вратени уредувања како ботовски уредувања',
@@ -1765,7 +1768,7 @@ $1",
 'action-browsearchive' => 'барање на избришани страници',
 'action-undelete' => 'обнови ја оваа страница',
 'action-suppressrevision' => 'прегледај ја и обнови ја оваа скриена ревизија',
-'action-suppressionlog' => 'преглед на овој приватен дневник',
+'action-suppressionlog' => 'преглед на овој li;en дневник',
 'action-block' => 'оневозможи го овој корисник да уредува',
 'action-protect' => 'измени го степенот на заштита на оваа страница',
 'action-rollback' => 'брзо отповикување на измени направени од последниот уредник на страницата',
@@ -1781,8 +1784,8 @@ $1",
 'action-sendemail' => 'испраќање на е-пошта',
 'action-editmywatchlist' => 'уредување на вашиот список на набљудувања',
 'action-viewmywatchlist' => 'преглед на вашиот список на набљудувања',
-'action-viewmyprivateinfo' => 'пÑ\80еглед Ð½Ð° Ð²Ð°Ñ\88иÑ\82е Ð¿Ñ\80иваÑ\82ни податоци',
-'action-editmyprivateinfo' => 'Ñ\83Ñ\80едÑ\83ваÑ\9aе Ð½Ð° Ð²Ð°Ñ\88иÑ\82е Ð¿Ñ\80иваÑ\82ни податоци',
+'action-viewmyprivateinfo' => 'пÑ\80еглед Ð½Ð° Ð²Ð°Ñ\88иÑ\82е Ð»Ð¸Ñ\87ни податоци',
+'action-editmyprivateinfo' => 'Ñ\83Ñ\80едÑ\83ваÑ\9aе Ð½Ð° Ð²Ð°Ñ\88иÑ\82е Ð»Ð¸Ñ\87ни податоци',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|промена|промени}}',
@@ -1801,7 +1804,7 @@ $1",
 'recentchanges-legend-heading' => "'''Легенда:'''",
 'recentchanges-legend-newpage' => '(погл. и [[Special:NewPages|списокот на нови страници]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => 'Ð\9fодолÑ\83 Ñ\81е Ð¿Ñ\80омениÑ\82е Ð¾Ð´ <b>$2</b> (се прикажуваат до <b>$1</b>).',
+'rcnotefrom' => 'Ð\9fодолÑ\83 Ñ\81е Ð¿Ñ\80омениÑ\82е Ð½Ð°Ð¿Ñ\80авени Ð¾Ð´ <strong>$2</strong> Ð½Ð°Ð²Ð°Ð¼Ñ\83 (се прикажуваат до <b>$1</b>).',
 'rclistfrom' => 'Прикажи нови промени почнувајќи од $1',
 'rcshowhideminor' => '$1 ситни промени',
 'rcshowhideminor-show' => 'Прикажи',
@@ -2080,7 +2083,7 @@ $1',
 'img-auth-isdir' => 'Се обидувате да пристапите до именикот „$1“.
 Допуштен е само податотечен пристап.',
 'img-auth-streaming' => 'Емитување „$1“.',
-'img-auth-public' => 'ФÑ\83нкÑ\86иÑ\98аÑ\82а Ð½Ð° img_auth.php Ñ\81лÑ\83жи Ð·Ð° Ð¸Ð·Ð»ÐµÐ· Ð½Ð° Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82еки Ð¾Ð´ Ð¿Ñ\80иваÑ\82ни викија.
+'img-auth-public' => 'ФÑ\83нкÑ\86иÑ\98аÑ\82а Ð½Ð° img_auth.php Ñ\81лÑ\83жи Ð·Ð° Ð¸Ð·Ð»ÐµÐ· Ð½Ð° Ð¿Ð¾Ð´Ð°Ñ\82оÑ\82еки Ð¾Ð´ Ð»Ð¸Ñ\87ни викија.
 Ова вики е нагодено како јавно вики.
 Од причини на оптимална сигурност, img_auth.php е оневозможен.',
 'img-auth-noread' => 'Корисникот нема пристап за читање на „$1“.',
@@ -2215,6 +2218,11 @@ $1',
 # List redirects
 'listredirects' => 'Список на пренасочувања',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Список на податотеки со дупликати',
+'listduplicatedfiles-summary' => 'Ова е список на податотеки чија најнова верзија е дупликат на најнова верзија на некоја друга податотека. Се земаат предвид само локални податотеки.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] има [[$3|{{PLURAL:$2|дупликат|$2 дупликати}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Неискористени шаблони',
 'unusedtemplatestext' => 'Оваа страница ги прикажува сите страници во именскиот простор {{ns:template}} кои не се вклучени во друга страница.
@@ -2330,7 +2338,7 @@ $1',
 'deadendpagestext' => 'Следните страници немаат врски кон ниту една друга страница на ова вики.',
 'protectedpages' => 'Заштитени страници',
 'protectedpages-indef' => 'Само бесконечни заштити',
-'protectedpages-summary' => 'На страницата се наведени постоечки страници што се моментално под заштита. За список на наслови што се заштитени од создавање, погледајте [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'На страницата се наведени постоечки страници што се моментално под заштита. За список на наслови што се заштитени од создавање, погледајте [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Само каскадни заштити',
 'protectedpages-noredirect' => 'Скриј пренасочувања',
 'protectedpagesempty' => 'Во моментов нема заштитени страници со параметрите кои ги зададовте.',
@@ -2343,7 +2351,7 @@ $1',
 'protectedpages-unknown-timestamp' => 'Непознато',
 'protectedpages-unknown-performer' => 'Непознат корисник',
 'protectedtitles' => 'Заштитени наслови',
-'protectedtitles-summary' => 'На страницата се наведени наслови што се моментално заштитени од создавање. За список на постоечки страници што се заштитени, погледајте [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'На страницата се наведени наслови што се моментално заштитени од создавање. За список на постоечки страници што се заштитени, погледајте [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Во овој момент нема заштитени наслови кои ги задоволуваат наведените критериуми.',
 'listusers' => 'Список на корисници',
 'listusers-editsonly' => 'Прикажи само корисници кои уредувале',
@@ -2622,7 +2630,7 @@ $UNWATCHURL
 'delete-warning-toobig' => 'Оваа страница има долга историја на уредување, преку $1 {{PLURAL:$1|ревизија|ревизии}}.
 Бришењето може да предизвика проблеми при работењето на базата на податоци на {{SITENAME}};
 продолжете доколку сте сигруни дека треба тоа да го сторите.',
-'deleting-backlinks-warning' => "'''Предупредување:''' До страницата што сакате да ја избришете водат други страници или се превметнуваат во неа.",
+'deleting-backlinks-warning' => "'''Предупредување:''' До страницата што сакате да ја избришете водат [[Special:WhatLinksHere/{{FULLPAGENAME}}|други страници]] или пак се превметнуваат во неа.",
 
 # Rollback
 'rollback' => 'Отповикај промени',
@@ -2677,7 +2685,7 @@ $UNWATCHURL
 'protect-locked-access' => "Вашата корисничка сметка нема дозвола за менување на степенот на заштита.
 Овде се дадени тековните нагодувања за оваа страница '''$1''':",
 'protect-cascadeon' => 'Оваа страница е моментално заштитена бидејќи е вклучена во {{PLURAL:$1|следнава страница, за која е|следниве страници, за кои се}} под каскадна заштита.
\9cожеÑ\82е Ð´Ð° Ð³Ð¾ Ð¸Ð·Ð¼ÐµÐ½Ð¸Ñ\82е Ñ\81Ñ\82епеноÑ\82 Ð½Ð° Ð·Ð°Ñ\88Ñ\82иÑ\82а, Ð½Ð¾ Ñ\82оа Ð½ÐµÐ¼Ð° Ð´Ð° Ð²Ð»Ð¸Ñ\98ае на каскадната заштита.',
\98змениÑ\82е Ð²Ð¾ Ñ\81Ñ\82епеноÑ\82 Ð½Ð° Ð·Ð°Ñ\88Ñ\82иÑ\82а Ð½Ð° Ñ\81Ñ\82Ñ\80аниÑ\86ава Ð½ÐµÐ¼Ð° Ð´Ð° Ð²Ð»Ð¸Ñ\98ааÑ\82 на каскадната заштита.',
 'protect-default' => 'Допуштено за сите корисници',
 'protect-fallback' => 'Допуштај само корисници со дозвола „$1“',
 'protect-level-autoconfirmed' => 'Допуштај само автопотврдени корисници',
@@ -2804,6 +2812,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Оваа IP-адреса е моментално блокирана.
 Подолу е наведен најновиот дневнички запис на блокирање:',
 'sp-contributions-search' => 'Пребарување на придонеси',
+'sp-contributions-suppresslog' => 'притаени придонеси на корисникот',
 'sp-contributions-username' => 'IP-адреса или корисничко име:',
 'sp-contributions-toponly' => 'Прикажувај само последни ревизии',
 'sp-contributions-newonly' => 'Прикажувај само новосоздадени страници',
@@ -2944,7 +2953,7 @@ $1',
 'ip_range_toolarge' => 'Не се дозволени опсежни блокирања поголеми од /$1.',
 'proxyblocker' => 'Блокер на застапници (proxy)',
 'proxyblockreason' => 'Вашата IP-адреса е блокирана бидејќи претставува отворен застапник (proxy).
-Ве молиме контактирајте со вашиот доставувач на Интернет услуги или техничката поддршка и информирајте ги за овој сериозен безбедносен проблем.',
+Ве молиме контактирајте со вашиот семрежен услужник и или техничката поддршка и информирајте ги за овој сериозен безбедносен проблем.',
 'sorbs' => 'DNSBL',
 'sorbsreason' => 'Вашата IP-адреса е запишана како отворен застапник (proxy) во DNSBL кој го користи {{SITENAME}}..',
 'sorbs_create_account_reason' => 'Вашата IP-адреса е наведена како отворен застапникот (proxy) во DNSBL користена од {{SITENAME}}.
index 2903f69..c76bc4f 100644 (file)
@@ -602,7 +602,6 @@ $1',
 'disclaimers' => 'നിരാകരണങ്ങൾ',
 'disclaimerpage' => 'Project:പൊതുനിരാകരണം',
 'edithelp' => 'തിരുത്തൽ സഹായി',
-'helppage' => 'Help:ഉള്ളടക്കം',
 'mainpage' => 'പ്രധാന താൾ',
 'mainpage-description' => 'പ്രധാന താൾ',
 'policy-url' => 'Project:നയം',
@@ -800,8 +799,7 @@ $2',
 'gotaccountlink' => 'പ്രവേശിക്കുക',
 'userlogin-resetlink' => 'താങ്കളുടെ ലോഗിൻ വിവരങ്ങൾ മറന്നു പോയോ?',
 'userlogin-resetpassword-link' => 'താങ്കൾ രഹസ്യവാക്ക് മറന്നോ?',
-'helplogin-url' => 'Help:പ്രവേശനം',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|പ്രവേശന സഹായം]]',
+'userlogin-helplink2' => 'പ്രവേശിക്കാൻ സഹായമാവശ്യമെങ്കിൽ',
 'userlogin-loggedin' => 'താങ്കൾ ഇപ്പോൾ തന്നെ {{GENDER:$1|$1}} ആയി പ്രവേശിച്ചിരിക്കുന്നു.
 താഴെ ഉള്ള ഫോം ഉപയോഗിച്ച് മറ്റൊരു ഉപയോക്താവായി പ്രവേശിക്കാവുന്നതാണ്.',
 'userlogin-createanother' => 'മറ്റൊരു അംഗത്വമെടുക്കുക',
@@ -887,6 +885,7 @@ $2',
 
 എങ്കിലും അങ്ങനെ ചെയ്താൽ, ഉപയോക്താക്കൾക്ക് അവരരവരുടെ പേരിൽ തന്നെ തങ്ങളുടെ സൃഷ്ടിക്ക് കടപ്പാട് ലഭിക്കുന്നതാണ്.',
 'pt-login' => 'പ്രവേശിക്കുക',
+'pt-login-button' => 'പ്രവേശിക്കുക',
 'pt-createaccount' => 'അംഗത്വമെടുക്കുക',
 'pt-userlogout' => 'ലോഗൗട്ട്',
 
@@ -919,7 +918,10 @@ $2',
 'resetpass-temp-password' => 'താത്കാലിക രഹസ്യവാക്ക്:',
 'resetpass-abort-generic' => 'രഹസ്യവാക്ക് മാറ്റുന്നത് ഒരു അനുബന്ധം തടഞ്ഞിരിക്കുന്നു.',
 'resetpass-expired' => 'താങ്കളുടെ രഹസ്യവാക്ക് കാലഹരണപ്പെട്ടിരിക്കുന്നു. പ്രവേശിക്കാനായി പുതിയ രഹസ്യവാക്ക് സജ്ജമാക്കുക.',
-'resetpass-expired-soft' => 'താങ്കളുടെ രഹസ്യവാക്ക് കാലഹരണപ്പെട്ടിരിക്കുന്നതിനാൽ പുനഃസജ്ജീകരിക്കേണ്ടതുണ്ട്. ഇപ്പോൾ തന്നെ പുതിയ രഹസ്യവാക്ക് തിരഞ്ഞെടുക്കുക അല്ലെങ്കിൽ പിന്നീട് പുനഃസജ്ജീകരിക്കാനായി റദ്ദാക്കുക ഞെക്കുക.',
+'resetpass-expired-soft' => 'താങ്കളുടെ രഹസ്യവാക്ക് കാലഹരണപ്പെട്ടിരിക്കുന്നതിനാൽ പുനഃസജ്ജീകരിക്കേണ്ടതുണ്ട്. ഇപ്പോൾ തന്നെ പുതിയ രഹസ്യവാക്ക് തിരഞ്ഞെടുക്കുക അല്ലെങ്കിൽ പിന്നീട് പുനഃസജ്ജീകരിക്കാനായി "{{int:resetpass-submit-cancel}}" ഞെക്കുക.',
+'resetpass-validity-soft' => 'താങ്കളുടെ രഹസ്യവാക്ക് സാധുതയുള്ളതല്ല: $1
+
+ദയവായി പുതിയൊരു രഹസ്യവാക്ക് ഇപ്പോൾ തന്നെ തിരഞ്ഞെടുക്കുക അല്ലെങ്കിൽ പിന്നീട് പുനഃസജ്ജീകരിക്കുന്നതിനായി "{{int:resetpass-submit-cancel}}" ഞെക്കുക.',
 
 # Special:PasswordReset
 'passwordreset' => 'രഹസ്യവാക്ക് പുനഃക്രമീകരിക്കുക',
@@ -1053,7 +1055,7 @@ $1 ആണ് ഈ തടയൽ നടത്തിയത്. ''$2'' എന്ന
 'accmailtitle' => 'രഹസ്യവാക്ക് അയച്ചിരിക്കുന്നു.',
 'accmailtext' => "[[User talk:$1|$1]] എന്ന ഉപയോക്താവിനുള്ള ക്രമരഹിതമായി നിർമ്മിച്ച രഹസ്യവാക്ക് $2 എന്ന വിലാസത്തിലേക്ക് അയച്ചിട്ടുണ്ട്. പ്രവേശിച്ചതിനു ശേഷം ഇത് ''[[Special:ChangePassword|രഹസ്യവാക്ക് മാറ്റുക]]'' എന്ന താളിൽ മാറ്റാവുന്നതാണ്.",
 'newarticle' => '(പുതിയത്)',
-'newarticletext' => 'ഇതുവരെ നിലവിലില്ലാത്ത ഒരു താൾ സൃഷ്ടിക്കാനുള്ള ശ്രമത്തിലാണ് താങ്കൾ. അതിനായി താഴെ ആവശ്യമുള്ള വിവരങ്ങൾ എഴുതിച്ചേർത്ത് സേവ് ചെയ്യുക (കൂടുതൽ വിവരങ്ങൾക്ക് [[{{MediaWiki:Helppage}}|സഹായം താൾ]] കാണുക). താങ്കളിവിടെ അബദ്ധത്തിൽ വന്നതാണെങ്കിൽ ബ്രൗസറിന്റെ ബാക്ക് ബട്ടൺ ഞെക്കിയാൽ തിരിച്ചുപോകാം.',
+'newarticletext' => 'ഇതുവരെ നിലവിലില്ലാത്ത ഒരു താൾ സൃഷ്ടിക്കാനുള്ള ശ്രമത്തിലാണ് താങ്കൾ. അതിനായി താഴെ ആവശ്യമുള്ള വിവരങ്ങൾ എഴുതിച്ചേർത്ത് സേവ് ചെയ്യുക (കൂടുതൽ വിവരങ്ങൾക്ക് [$1 സഹായം താൾ] കാണുക). താങ്കളിവിടെ അബദ്ധത്തിൽ വന്നതാണെങ്കിൽ ബ്രൗസറിന്റെ ബാക്ക് ബട്ടൺ ഞെക്കിയാൽ തിരിച്ചുപോകാം.',
 'anontalkpagetext' => "----
 {| class=\"messagebox standard-talk\" style=\"border: 1px solid #B3B300; background-color:#FFFFBF; text-align: left;\"
 |
@@ -1293,9 +1295,10 @@ $3 നൽകിയിരിക്കുന്ന കാരണം ''$2'' എന
 'revdelete-show-file-submit' => 'അതെ',
 'revdelete-selected' => "'''[[:$1]] എന്ന താളിന്റെ {{PLURAL:$2|തിരഞ്ഞെടുത്ത പതിപ്പ്|തിരഞ്ഞെടുത്ത പതിപ്പുകൾ}}:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|തിരഞ്ഞെടുത്ത രേഖയിലുള്ളത്|തിരഞ്ഞെടുത്ത രേഖയിലുള്ളവ}}:'''",
-'revdelete-text' => "'''മായ്ക്കപ്പെട്ട നാൾപ്പതിപ്പുകളും സംഭവങ്ങളും താളിന്റെ നാൾവഴിയിലും രേഖകളിലും ഉണ്ടായിരിക്കും, പക്ഷേ ആ ഉള്ളടക്കം പൊതുജനത്തിനു ലഭ്യമായിരിക്കില്ല.'''
-
-മറ്റു സം‌രക്ഷണ പരിമിതികൾ സജ്ജീകരിച്ചിട്ടില്ലെങ്കിൽ {{SITENAME}} സം‌രംഭത്തിലെ മറ്റു കാര്യനിർവാഹകർക്ക്, ഇതേ സമ്പർക്കമുഖം ഉപയോഗിച്ചു തന്നെ, ഈ മറഞ്ഞിരിക്കുന്ന ഉള്ളടക്കം പരിശോധിക്കുവാനും താങ്കൾ മായ്ച്ചതു തിരസ്കരിക്കുവാനും സാധിക്കും.",
+'revdelete-text-text' => 'മായ്ക്കപ്പെട്ട നാൾപ്പതിപ്പുകൾ താളിന്റെ നാൾവഴിയിൽ കാണാവുന്നതായിരിക്കുമെങ്കിലും, അവയുടെ ഉള്ളടക്കത്തിന്റെ ചില ഭാഗങ്ങൾ പൊതുജനങ്ങൾക്ക് ലഭ്യമായിരിക്കണമെന്നില്ല.',
+'revdelete-text-file' => 'പ്രമാണത്തിന്റെ മായ്ക്കപ്പെട്ട പതിപ്പുകൾ താളിന്റെ നാൾവഴിയിൽ കാണാവുന്നതായിരിക്കുമെങ്കിലും, അവയുടെ ഉള്ളടക്കത്തിന്റെ ചില ഭാഗങ്ങൾ പൊതുജനങ്ങൾക്ക് ലഭ്യമായിരിക്കണമെന്നില്ല.',
+'logdelete-text' => 'മായ്ക്കപ്പെട്ട പ്രവൃത്തികൾ പ്രവർത്തന രേഖകളിൽ കാണാവുന്നതായിരിക്കുമെങ്കിലും, അവയുടെ ഉള്ളടക്കത്തിന്റെ ചില ഭാഗങ്ങൾ പൊതുജനങ്ങൾക്ക് ലഭ്യമായിരിക്കണമെന്നില്ല.',
+'revdelete-text-others' => '{{SITENAME}} സംരംഭത്തിലെ മറ്റ് കാര്യനിർവ്വാഹകർക്ക് മറയ്ക്കപ്പെട്ട ഉള്ളടക്കം ഇപ്പോഴും എടുക്കാവുന്നതും ആവശ്യമെങ്കിൽ ഇതേ സമ്പർക്കമുഖം ഉപയോഗിച്ച് പുനഃസ്ഥാപിക്കാനോ അല്ലെങ്കിൽ കൂടുതൽ നിബന്ധനകൾ ചേർക്കാനോ കഴിയുന്നതുമാണ്.',
 'revdelete-confirm' => 'ഇതിന്റെ അനന്തരഫലങ്ങളെക്കുറിച്ചറിയാമെന്നും, [[{{MediaWiki:Policy-url}}|നയങ്ങൾ]] പാലിച്ചാണ് താങ്കളിത് ചെയ്യുന്നതെന്നും ഉറപ്പാക്കുക.',
 'revdelete-suppress-text' => "താഴെ പറയുന്ന സാഹചര്യങ്ങളിൽ '''മാത്രമേ''' ഒതുക്കൽ ഉപയോഗിക്കാവൂ:
 * അപകീർത്തികരമായ വിവരങ്ങൾ അടങ്ങിയവ
@@ -1430,7 +1433,7 @@ $1",
 'search-file-match' => '(പ്രമാണ ഉള്ളടക്കവുമായി ഒത്തുപോകുന്നുണ്ട്)',
 'search-suggest' => 'താങ്കൾ ഉദ്ദേശിച്ചത് $1 എന്നാണോ',
 'search-interwiki-caption' => 'സഹോദര സംരംഭങ്ങൾ',
-'search-interwiki-default' => '$1 ഫലങ്ങൾ:',
+'search-interwiki-default' => '$1 à´µà´¿à´\95àµ\8dà´\95ിയിൽ à´¨à´¿à´¨àµ\8dà´¨àµ\81à´³àµ\8dà´³ à´«à´²à´\99àµ\8dà´\99ൾ:',
 'search-interwiki-more' => '(കൂടുതൽ)',
 'search-relatedarticle' => 'ബന്ധപ്പെട്ടവ',
 'searcheverything-enable' => 'എല്ലാ നാമമേഖലകളും തിരയുക',
@@ -1755,7 +1758,7 @@ $1",
 'recentchanges-label-plusminus' => 'താളിന്റെ വലിപ്പം ഇത്രയും ബൈറ്റുകൾ മാറിയിരിക്കുന്നു',
 'recentchanges-legend-heading' => "'''സൂചന:'''",
 'recentchanges-legend-newpage' => '([[Special:NewPages|പുതിയ താളുകളുടെ പട്ടികയും]] കാണുക)',
-'rcnotefrom' => '<b>$2</b> മുതലുള്ള മാറ്റങ്ങൾ (<b>$1</b> എണ്ണം വരെ കാണാം).',
+'rcnotefrom' => '<strong>$2</strong> മുതലുള്ള മാറ്റങ്ങൾ (<strong>$1</strong> എണ്ണം വരെ കാണാം).',
 'rclistfrom' => '$1 മുതലുള്ള മാറ്റങ്ങൾ പ്രദർശിപ്പിക്കുക',
 'rcshowhideminor' => 'ചെറുതിരുത്തലുകൾ $1',
 'rcshowhideminor-show' => 'പ്രദർശിപ്പിക്കുക',
@@ -1904,6 +1907,7 @@ $2 {{PLURAL:$3|തരത്തിലുള്ള പ്രമാണം|തരങ
 'php-uploaddisabledtext' => 'പി.എച്ച്.പി.യിൽ പ്രമാണ അപ്‌‌ലോഡുകൾ സാദ്ധ്യമല്ലാതാക്കിയിരിക്കുന്നു.
 ദയവായി file_uploads ക്രമീകരണങ്ങൾ പരിശോധിക്കുക.',
 'uploadscripted' => 'ഈ പ്രമാണത്തിൽ വെബ് ബ്രൗസർ തെറ്റായി വ്യാഖ്യാനിച്ചേക്കാവുന്ന എച്ച്.റ്റി.എം.എൽ. അല്ലെങ്കിൽ സ്ക്രിപ്റ്റ് കോഡ് ഉണ്ട്.',
+'uploadscriptednamespace' => 'ഈ എസ്.വി.ജി. പ്രമാണത്തിൽ ഉപയോഗിക്കാൻ പാടില്ലാത്ത നാമമേഖലയായ "$1" ഉണ്ട്',
 'uploadinvalidxml' => 'അപ്‌ലോഡ് ചെയ്ത പ്രമാണത്തിലെ എക്സ്.എം.എൽ. പാഴ്സ് ചെയ്യാൻ കഴിയില്ല.',
 'uploadvirus' => 'പ്രമാണത്തിൽ വൈറസുണ്ട്! വിശദാംശങ്ങൾ: $1',
 'uploadjava' => 'ഇത്, ജാവ .class പ്രമാണങ്ങൾ അടക്കം ചെയ്തിട്ടുള്ള ഒരു സിപ് (ZIP) പ്രമാണം ആണ്.
@@ -2258,7 +2262,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 'deadendpagestext' => 'താഴെക്കാണുന്ന താളുകളിൽനിന്ന് {{SITENAME}} സം‌രംഭത്തിലെ മറ്റൊരു താളിലേയ്ക്കും കണ്ണി ചേർത്തിട്ടില്ല.',
 'protectedpages' => 'സംരക്ഷിക്കപ്പെട്ടിരിക്കുന്ന താളുകൾ',
 'protectedpages-indef' => 'അനന്തകാലത്തേയ്ക്ക് സംരക്ഷിക്കപ്പെട്ടവ മാത്രം',
-'protectedpages-summary' => 'à´¸à´\82à´°à´\95àµ\8dà´·à´¿à´\95àµ\8dà´\95à´ªàµ\8dà´ªàµ\86à´\9fàµ\8dà´\9fà´¿à´\9fàµ\8dà´\9fàµ\81à´³àµ\8dളതàµ\81à´\82 à´\8eà´¨àµ\8dനാൽ à´¨à´¿à´²à´µà´¿à´²àµ\81à´³àµ\8dളതàµ\81മായ à´¤à´¾à´³àµ\81à´\95à´³àµ\81à´\9fàµ\86 à´ªà´\9fàµ\8dà´\9fà´¿à´\95 à´\88 à´¤à´¾à´³à´¿àµ½ à´\95ാണാà´\82. à´¸àµ\83à´·àµ\8dà´\9fà´¿à´\95àµ\8dà´\95àµ\81à´¨àµ\8dനതിൽ à´¨à´¿à´¨àµ\8dà´¨àµ\81à´\82 à´¸à´\82à´°à´\95àµ\8dà´·à´¿à´\95àµ\8dà´\95à´ªàµ\8dà´ªàµ\86à´\9fàµ\8dà´\9fà´¿à´\9fàµ\8dà´\9fàµ\81à´³àµ\8dà´³ à´¤à´²à´\95àµ\8dà´\95àµ\86à´\9fàµ\8dà´\9fàµ\81à´\95ൾà´\95àµ\8dà´\95ായി [[{{#special:ProtectedTitles}}]] കാണുക.',
+'protectedpages-summary' => 'à´\87à´ªàµ\8dà´ªàµ\8bൾ à´¨à´¿à´²à´µà´¿à´²àµ\81à´³àµ\8dà´³ à´¸à´\82à´°à´\95àµ\8dà´·à´¿à´\95àµ\8dà´\95à´ªàµ\8dà´ªàµ\86à´\9fàµ\8dà´\9fà´¿à´\9fàµ\8dà´\9fàµ\81à´³àµ\8dà´³ à´¤à´¾à´³àµ\81à´\95à´³àµ\81à´\9fàµ\86 à´ªà´\9fàµ\8dà´\9fà´¿à´\95 à´\88 à´¤à´¾à´³à´¿àµ½ à´\95ാണാà´\82. à´¸àµ\83à´·àµ\8dà´\9fà´¿à´\95àµ\8dà´\95àµ\81à´¨àµ\8dനതിൽ à´¨à´¿à´¨àµ\8dà´¨àµ\81à´\82 à´¸à´\82à´°à´\95àµ\8dà´·à´¿à´\95àµ\8dà´\95à´ªàµ\8dà´ªàµ\86à´\9fàµ\8dà´\9fà´¿à´\9fàµ\8dà´\9fàµ\81à´³àµ\8dà´³ à´¤à´²à´\95àµ\8dà´\95àµ\86à´\9fàµ\8dà´\9fàµ\81à´\95ൾà´\95àµ\8dà´\95ായി [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]] കാണുക.',
 'protectedpages-cascade' => 'നിർഝരിത സംരക്ഷണങ്ങൾ മാത്രം',
 'protectedpages-noredirect' => 'തിരിച്ചുവിടലുകൾ മറയ്ക്കുക',
 'protectedpagesempty' => 'ഈ ചരങ്ങൾ ഉപയോഗിച്ചു താളുകൾ ഒന്നും തന്നെ സം‌രക്ഷിക്കപ്പെട്ടിട്ടില്ല.',
@@ -2271,7 +2275,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization കാണുക.',
 'protectedpages-unknown-timestamp' => 'അജ്ഞാതം',
 'protectedpages-unknown-performer' => 'അജ്ഞാത ഉപയോക്താവ്',
 'protectedtitles' => 'സംരക്ഷിക്കപ്പെട്ടിരിക്കുന്ന തലക്കെട്ടുകൾ',
-'protectedtitles-summary' => 'സൃഷ്ടിക്കുന്നതിൽ നിന്നും സംരക്ഷിക്കപ്പെട്ടിട്ടുള്ള താളുകളുടെ പട്ടിക ഇവിടെ കാണാം. സംരക്ഷിക്കപ്പെട്ടിട്ടുള്ളതും എന്നാൽ നിലവിലുള്ളതുമായ താളുകൾക്കായി [[{{#special:ProtectedPages}}]] കാണുക.',
+'protectedtitles-summary' => 'സൃഷ്ടിക്കുന്നതിൽ നിന്നും സംരക്ഷിക്കപ്പെട്ടിട്ടുള്ള താളുകളുടെ പട്ടിക ഇവിടെ കാണാം. സംരക്ഷിക്കപ്പെട്ടിട്ടുള്ളതും എന്നാൽ നിലവിലുള്ളതുമായ താളുകൾക്കായി [[{{#special:ProtectedPages}}|{{int:protectedpages}}]] കാണുക.',
 'protectedtitlesempty' => 'ഈ ചരങ്ങൾ ഉപയോഗിച്ചു തലക്കെട്ടുകൾ ഒന്നും തന്നെ സം‌രക്ഷിക്കപ്പെട്ടിട്ടില്ല.',
 'listusers' => 'ഉപയോക്താക്കളുടെ പട്ടിക',
 'listusers-editsonly' => 'തിരുത്തലുകൾ ചെയ്തിട്ടുള്ള ഉപയോക്താക്കളെ മാത്രം കാണിക്കുക',
@@ -2545,7 +2549,7 @@ $UNWATCHURL
 'delete-edit-reasonlist' => 'മായ്ക്കലിന്റെ കാരണം തിരുത്തുക',
 'delete-toobig' => 'ഈ താളിനു വളരെ വിപുലമായ തിരുത്തൽ ചരിത്രമുണ്ട്. $1 മേൽ {{PLURAL:$1|പതിപ്പുണ്ട്|പതിപ്പുകളുണ്ട്}}. ഇത്തരം താളുകൾ മായ്ക്കുന്നതു {{SITENAME}} സം‌രംഭത്തിന്റെ നിലനില്പ്പിനെ തന്നെ ബാധിക്കുമെന്നതിനാൽ ഈ താൾ മായ്ക്കുന്നതിനുള്ള അവകാശം പരിമിതപ്പെടുത്തിയിരിക്കുന്നു.',
 'delete-warning-toobig' => 'ഈ താളിനു വളരെ വിപുലമായ തിരുത്തൽ ചരിത്രമുണ്ട്. അതായത്, ഇതിനു് $1 മേൽ {{PLURAL:$1|പതിപ്പുണ്ട്|പതിപ്പുകളുണ്ട്}}. ഇത്തരം താളുകൾ മായ്ക്കുന്നതു {{SITENAME}} സം‌രംഭത്തിന്റെ ഡാറ്റാബേസ് ഓപ്പറേഷനെ ബാധിച്ചേക്കാം. അതിനാൽ വളരെ ശ്രദ്ധാപൂർവ്വം തുടർനടപടികളിലേക്കു നീങ്ങുക.',
-'deleting-backlinks-warning' => "'''മുന്നറിയിപ്പ്:''' മറ്റു താളുകളിൽ നിന്നും താളിലേയ്ക്കുള്ള കണ്ണികൾ അല്ലെങ്കിൽ ഉൾപ്പെടുത്തിയിട്ടുള്ള താളുകൾ താങ്കൾ മായ്ക്കാൻ പോവുകയാണ്.",
+'deleting-backlinks-warning' => "'''മുന്നറിയിപ്പ്:''' മറ്റു താളുകളിൽ നിന്നും [[Special:WhatLinksHere/{{FULLPAGENAME}}|താളിലേയ്ക്കുള്ള കണ്ണികൾ]] അല്ലെങ്കിൽ ഉൾപ്പെടുത്തിയിട്ടുള്ള താളുകൾ താങ്കൾ മായ്ക്കാൻ പോവുകയാണ്.",
 
 # Rollback
 'rollback' => 'തിരുത്തലുകൾ റോൾബാക്ക് ചെയ്യുക',
@@ -2720,8 +2724,10 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'ഈ ഐ.പി. വിലാസം ഇപ്പോൾ തടയപ്പെട്ടിരിക്കുകയാണ്.
 അവലംബമായി തടയൽ രേഖയുടെ പുതിയഭാഗം താഴെ കൊടുത്തിരിക്കുന്നു:',
 'sp-contributions-search' => 'ചെയ്ത സേവനങ്ങൾ',
+'sp-contributions-suppresslog' => 'ഒതുക്കപ്പെട്ട ഉപയോക്തൃസംഭാവനകൾ',
 'sp-contributions-username' => 'ഐ.പി. വിലാസം അഥവാ ഉപയോക്തൃനാമം:',
 'sp-contributions-toponly' => 'ഒടുവിലത്തെ നാൾപ്പതിപ്പുകൾ മാത്രം പ്രദർശിപ്പിക്കുക',
+'sp-contributions-newonly' => 'താൾ സൃഷ്ടിക്കാനുള്ള തിരുത്തുകൾ മാത്രം പ്രദർശിപ്പിക്കുക',
 'sp-contributions-submit' => 'തിരയൂ',
 
 # What links here
@@ -3059,7 +3065,7 @@ $1',
 'importbadinterwiki' => 'മോശമായ അന്തർവിക്കി കണ്ണി',
 'importnotext' => 'ശൂന്യം അല്ലെങ്കിൽ ഉള്ളടക്കം ഒന്നുമില്ല',
 'importsuccess' => 'ഇറക്കുമതി ചെയ്തുകഴിഞ്ഞു!',
-'importhistoryconflict' => 'പതിപàµ\8dà´ªàµ\81à´\95à´³àµ\81à´\9fàµ\86 à´\9aà´°à´¿à´¤àµ\8dà´°à´¤àµ\8dതിൽ à´ªàµ\8aà´°àµ\81à´¤àµ\8dà´¤à´\95àµ\8dà´\95àµ\87ട് (ഈ താൾ ഇതിനു മുൻപ് ഇറക്കുമതി ചെയ്തിട്ടുണ്ടാവാം)',
+'importhistoryconflict' => 'നാൾപàµ\8dപതിപàµ\8dà´ªàµ\81à´\95ളിൽ à´ªàµ\8aà´°àµ\81à´¤àµ\8dà´¤à´\95àµ\8dà´\95àµ\87à´\9fàµ\81à´£àµ\8dട് (ഈ താൾ ഇതിനു മുൻപ് ഇറക്കുമതി ചെയ്തിട്ടുണ്ടാവാം)',
 'importnosources' => 'ട്രാൻസ്‌‌വിക്കി ഇറക്കുമതി സ്രോതസ്സുകളൊന്നും നിർവചിച്ചിട്ടില്ല, നേരിട്ടുള്ള നാൾവഴി അപ്‌‌ലോഡുകൾ പ്രവർത്തനരഹിതവുമാക്കിയിരിക്കുന്നു.',
 'importnofile' => 'ഇറക്കുമതി പ്രമാണങ്ങളൊന്നും അപ്‌‌ലോഡ് ചെയ്തിട്ടില്ല.',
 'importuploaderrorsize' => 'ഇറക്കുമതി ചെയ്ത പ്രമാണത്തിന്റെ അപ്‌‌ലോഡ് പരാജയപ്പെട്ടു.
@@ -3089,7 +3095,7 @@ $1',
 'importlogpagetext' => 'മറ്റു വിക്കികളിൽ നിന്ന് താളുകൾ നാൾവഴിയടക്കം എടുക്കുന്ന കാര്യനിർവാഹക ഇറക്കുമതി.',
 'import-logentry-upload' => 'പ്രമാണ അപ്‌‌ലോഡ് വഴി [[$1]] ഇറക്കുമതി ചെയ്തിരിക്കുന്നു',
 'import-logentry-upload-detail' => '{{PLURAL:$1|ഒരു പതിപ്പ്|$1 പതിപ്പുകൾ}}',
-'import-logentry-interwiki' => 'അന്തർവിക്കി ഇറക്കുമതി $1',
+'import-logentry-interwiki' => '$1 അന്തർവിക്കി ഇറക്കുമതി ചെയ്തു',
 'import-logentry-interwiki-detail' => '$2 എന്നതിൽ നിന്ന് {{PLURAL:$1|ഒരു പതിപ്പ്|$1 പതിപ്പുകൾ}}',
 
 # JavaScriptTest
index bc335b8..b30f693 100644 (file)
@@ -7,10 +7,12 @@
  * @ingroup Language
  * @file
  *
+ * @author Boldbdd
  * @author Chinneeb
  * @author E.shijir
  * @author Kaganer
  * @author Meno25
+ * @author Mongol
  * @author MongolWiki
  * @author Wisdom
  * @author Zorigt
@@ -82,6 +84,8 @@ $messages = array(
 'tog-diffonly' => 'Өөрчлөлтөөс доогуурх хуудсын агуулгыг үзүүлэхгүй байх',
 'tog-showhiddencats' => 'Нуугдсан ангиллуудыг үзүүлэх',
 'tog-norollbackdiff' => 'Буцаасны дараа өөрчлөлтийг орхигдуулах',
+'tog-useeditwarning' => 'Засварын хуудсаа хадгалалгүй гарах үед сануул',
+'tog-prefershttps' => 'Нэвтэрсэн үедээ үргэлж найдвартай сүлжээ хэрэглэнэ үү',
 
 'underline-always' => 'Байнга',
 'underline-never' => 'Хэзээ ч үгүй',
@@ -292,7 +296,6 @@ $1',
 'disclaimers' => 'Татгалзал',
 'disclaimerpage' => 'Project:Ерөнхий татгалзал',
 'edithelp' => 'Засвар хийх тухай тусламж',
-'helppage' => 'Help:Агуулга',
 'mainpage' => 'Нүүр хуудас',
 'mainpage-description' => 'Нүүр хуудас',
 'policy-url' => 'Project:Бодлого баримтлал',
@@ -323,11 +326,11 @@ $1',
 'editlink' => 'загварыг засах',
 'viewsourcelink' => 'кодыг харах',
 'editsectionhint' => 'Хэсгийг засварлах: $1',
-'toc' => 'Ð\90гÑ\83Ñ\83лга',
+'toc' => 'Ð\93аÑ\80Ñ\87иг',
 'showtoc' => 'дэлгэх',
 'hidetoc' => 'хумих',
-'collapsible-collapse' => 'Хумих',
-'collapsible-expand' => 'Ð\94элгэх',
+'collapsible-collapse' => 'хумих',
+'collapsible-expand' => 'дэлгэх',
 'thisisdeleted' => '$1-г харах эсвэл сэргээх үү?',
 'viewdeleted' => '$1-г харах уу?',
 'restorelink' => '{{PLURAL:$1|арилгасан засвар|арилгасан $1 засварууд}}',
@@ -344,7 +347,7 @@ $1',
 'sort-ascending' => 'Өсөхөөр эрэмбэлэх',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main' => 'Хуудас',
+'nstab-main' => 'Өгүүлэл',
 'nstab-user' => 'Хэрэглэгчийн хуудас',
 'nstab-media' => 'Медиа хуудас',
 'nstab-special' => 'Тусгай хуудас',
@@ -353,7 +356,7 @@ $1',
 'nstab-mediawiki' => 'Мэдэгдэл',
 'nstab-template' => 'Загвар',
 'nstab-help' => 'Тусламж',
-'nstab-category' => 'Ангилал',
+'nstab-category' => 'Анги',
 
 # Main script and global functions
 'nosuchaction' => 'Тийм үйлдэл байхгүй байна',
@@ -368,6 +371,8 @@ $1',
 # General errors
 'error' => 'Aлдаа',
 'databaseerror' => 'Өгөгдлийн сангийн алдаа',
+'databaseerror-function' => 'Функц: $1',
+'databaseerror-error' => 'Алдаа: $1',
 'laggedslavemode' => 'Анхаар: Энэ хуудас нь хамгийн сүүлийн өөрчлөлтүүдийг хамруулаагүй байж болно.',
 'readonly' => 'Мэдээллийн сан түгжигдсэн байна',
 'enterlockreason' => 'Түгжих болсон шалтгаан болон хэзээ уг түгжээ нь тайлагдах тухай оруулна уу.',
@@ -422,6 +427,8 @@ $2',
 'namespaceprotected' => "Таньд '''$1''' нэрний зай дахь хуудсуудыг засварлах зөвшөөрөл байхгүй байна.",
 'customcssprotected' => 'Энэхүү CSS хуудас өөр хэрэглэгчийн хувийн тохиргоог агуулдаг тул та засварлах эрхгүй.',
 'customjsprotected' => 'Энэхүү JavaScript хуудас өөр хэрэглэгчийн хувийн тохиргоог агуулдаг тул та засварлах эрхгүй.',
+'mycustomjsprotected' => 'Танд энэхүү ЖаваСкрипт хуудсыг засварлах эрх байхгүй байна.',
+'myprivateinfoprotected' => 'Танд хувийн мэдээллээ засварлах эрх байхгүй байна.',
 'ns-specialprotected' => 'Тусгай хуудсуудыг засварлах боломжгүй.',
 'titleprotected' => "[[User:$1|$1]] нь энэ хуудсыг үүсгэх явдыг хорьжээ.
 Шалтгаан нь: ''$2''.",
@@ -458,6 +465,7 @@ $2',
 'createacct-yourpasswordagain' => 'Нууц үгээ баталгаажуулна уу',
 'createacct-yourpasswordagain-ph' => 'Нууц үгээ дахиж оруулна уу',
 'remembermypassword' => 'Энэ компьютер дээрх миний нэвтрэлтийг сана (хамгийн дээд талдаа $1 {{PLURAL:$1|өдрийн|өдрийн}} туршид)',
+'userlogin-signwithsecure' => 'Хамгаалалттай сүлжээ хэрэглэнэ үү',
 'yourdomainname' => 'Таны домэйн:',
 'password-change-forbidden' => 'Та энэ вики дээрх нууц үгээ сольж болохгүй.',
 'externaldberror' => 'Нэг бол гадны баталгаажуулах мэдээллийн сангийн алдаа гарсан, эсвэл та өөрийн гадны бүртгэлээ шинэчлэх эрхгүй байна.',
@@ -469,6 +477,7 @@ $2',
 'logout' => 'Гарах',
 'userlogout' => 'Гарах',
 'notloggedin' => 'Нэвтрээгүй байна',
+'userlogin-noaccount' => 'Бүртгүүлж амжаагүй юу?',
 'userlogin-joinproject' => '{{SITENAME}}-д бүртгүүлэх',
 'nologin' => "Бүртгүүлж амжаагүй юу? '''$1'''.",
 'nologinlink' => 'Бүртгүүлэх',
@@ -477,18 +486,22 @@ $2',
 'gotaccountlink' => 'Нэвтрэх',
 'userlogin-resetlink' => 'Нэвтрэх мэдээллээ мартаа юу?',
 'userlogin-resetpassword-link' => 'Нууц үгээ мартсан уу?',
-'helplogin-url' => 'Help:Нэвтрэх',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Нэвтрэхэд тусламж]]',
 'userlogin-loggedin' => 'Та {{GENDER:$1|$1}} нэрээр нэвтэрсэн байна.
 Өөр нэрээр нэвтрэх бол доорх маягтыг ашиглана уу.',
 'userlogin-createanother' => 'Өөр бүртгэл үүсгэх',
 'createacct-join' => 'Мэдээллээ оруулна уу.',
 'createacct-another-join' => 'Шинэ бүртгэлийн мэдээллээ оруулна уу.',
+'createacct-emailrequired' => 'Цахим шуудангийн хаяг',
+'createacct-email-ph' => 'Цахим шуудангийн хаягаа оруулна уу',
+'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-benefit-body1' => '{{PLURAL:$1|засвар}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|хуудас}}',
@@ -496,6 +509,7 @@ $2',
 'userexists' => 'Хэрэглэгчийн нэр ашиглагдаж байна.
 Өөр нэрээр нэвтэрнэ үү.',
 'loginerror' => 'Нэвтрэхэд алдаа гарлаа',
+'createacct-error' => 'Бүртгүүлэхэд гарсан алдаа',
 'createaccounterror' => 'Бүртгэлийг үүсгэж чадсангүй: $1',
 'nocookiesnew' => 'Таны хэрэглэгчийн бүртгэл үүсгэгдсэн боловч нэвтрээгүй байна.
 {{SITENAME}}-д холбогдоход күүкиг хэрэглэдэг.
@@ -533,15 +547,15 @@ $2',
 'passwordsent' => '"$1"-н бүртгүүлсэн мэйл хаяг руу шинэ нууц үг илгээгдлээ.
 Мэйлээ авсныхаа дараа дахин нэвтрээрэй.',
 'blocked-mailpassword' => 'Таны IP хаягаас засвар хийх эрхийг түгжсэн байгаа тул буруугаар ашиглахаас сэргийлэх үүднээс нууц үгийг сэргээхийг зөвшөөрөхгүй.',
-'eauthentsent' => 'Баталгаажуулах мэйл бүртгүүлсэн мэйл хаяг руу илгээгдлээ.
-Өөрийнхөө бүртгэлийг баталгаажуулахын тулд, өөр ямар нэг мэйл таны мэйл хаяг руу явуулагдахын өмнө тухай бүрийнхээ мэйл дэх зааврыг дагана уу.',
+'eauthentsent' => 'Баталгаажуулах мэйл бүртгүүлсэн цахим шуудангийн хаяг руу илгээгдлээ.
+Өөрийнхөө бүртгэлийг баталгаажуулахын тулд өөр ямар нэг цахим шуудан таны цахим шуудангийн хаяг руу илгээгдэхээс өмнө, цахим шуудан дахь зааврыг даган баталгаажуулна уу.',
 'throttled-mailpassword' => 'Сүүлийн {{PLURAL:$1|1 цагт|$1 цагт}} нууц үгийг сануулах мэйлийг явуулсан байгаа.
 Буруугаар ашиглахаас сэргийлэх үүднээс {{PLURAL:$1|цагт|$1 цагт}} нэг л сануулах мэйлийг явуулах боломжтой.',
 'mailerror' => 'Мэйл илгээхэд алдаа гарлаа: $1',
 'acct_creation_throttle_hit' => 'Сүүлийн өдөрт таны IP хаягийг ашиглан хүмүүс энэ викид тухайн хугацаа дахь шинэ бүртгэлийн дээд хязгаар болох {{PLURAL:$1|1 бүртгэл|$1 бүртгэл}} үүсгэжээ.
 Ийнхүү энэ IP хаягийг ашигласан хүмүүс одоогийн байдлаар дахин бүртгэл үүсгэх боломжгүй байна.',
-'emailauthenticated' => 'Таны мэйл хаяг $2-ний $3 цагт баталгаажлаа.',
-'emailnotauthenticated' => 'Таны мэйл хаяг баталгаажаагүй байна.
+'emailauthenticated' => 'Таны цахим шуудангийн хаяг $2-ы/ий $3 цагт баталгаажлаа.',
+'emailnotauthenticated' => 'Таны цахим шуудангийн хаяг хараахан баталгаажаагүй байна.
 Иймд доорх функцуудын алинд нь ч мэйл илгээгдэхгүй.',
 'noemailprefs' => 'Эдгээр функцуудыг ашиглахад мэйл хаягаа өгөх хэрэгтэй.',
 'emailconfirmlink' => 'Мэйл хаягаа баталгаажуулах',
@@ -558,14 +572,20 @@ $2',
 Хэрэв буруугаар бүртгүүлсэн бол энэ мэдэгдлийг үл ойшоож болно.',
 'usernamehasherror' => 'Хэрэглэгчийн нэрэнд хаш тэмдэгт орж болохгүй',
 'login-throttled' => 'Та хэт олон удаа нэвтрэх гэж оролдсон байна.
-Хүлээж байгаад дахин оролдого уу.',
+$1 хүлээж байгаад дахин оролдоно уу.',
 'login-abort-generic' => 'Та нэвтэрч чадсангүй',
 'loginlanguagelabel' => 'Хэл: $1',
 'suspicious-userlogout' => 'Таны гарах хүсэлт нь эвдэрхий хөтөч буюу кэшлэгч проксигоор явуулсан мэт харагдаж байгаа тул зөвшөөрсөнгүй.',
+'createacct-another-realname-tip' => 'Жинхэнэ нэрээ заавал оруулах албагүй.
+Оруулбал таны хийсэн бүтээлийг түүгээр хаяглана.',
+'pt-login' => 'Нэвтрэх',
+'pt-createaccount' => 'Бүртгүүлэх',
+'pt-userlogout' => 'Гарах',
 
 # Email sending
 'php-mail-error-unknown' => "PHP's mail() функцэд үл танигдах алдаа гарлаа.",
 'user-mail-no-addy' => 'Цахин шуудангийн хаягийг оруулалгүйгээр шуудан явуулахыг оролдлоо.',
+'user-mail-no-body' => 'Хоосон аль эсвэл хэт богино цахим шуудан илгээх гэж оролдлоо.',
 
 # Change password dialog
 'changepassword' => 'Нууц үгээ солих',
@@ -577,7 +597,9 @@ $2',
 'newpassword' => 'Шинэ нууц үг:',
 'retypenew' => 'Шинэ нууц үгээ дахин оруулах:',
 'resetpass_submit' => 'Нууц үгээ тогтоож нэвтрэх',
-'changepassword-success' => 'Таны нууц үг амжилттай солигдлоо! Та одоо нэвтэрч байна...',
+'changepassword-success' => 'Таны нууц үг амжилттай солигдлоо!',
+'changepassword-throttled' => 'Та хэт олон удаа нэвтрэх гэж оролдсон байна.
+$1 хүлээж байгаад дахин оролдоно уу.',
 'resetpass_forbidden' => 'Нууц үг өөрчлөх боломжгүй',
 'resetpass-no-info' => 'Энэ хуудсыг шууд үзэхийн тулд нэвтэрч орсон байх шаардлагатай.',
 'resetpass-submit-loggedin' => 'Нууц үгээ солих',
@@ -585,6 +607,7 @@ $2',
 'resetpass-wrong-oldpass' => 'Хүчингүй түр зуурын эсвэл одоогийн нууц үг байна.
 Та аль хэдийнээ нууц үгээ сольсон эсвэл түр зуурын нууц үг хүссэн байна.',
 'resetpass-temp-password' => 'Түр зуурын нууц үг:',
+'resetpass-expired' => 'Нууц үгийн хугацаа дууссан байна. Шинэ нууц үг оруулж нэвтрэнэ үү.',
 
 # Special:PasswordReset
 'passwordreset' => 'Нууц үгийг сэргээх',
@@ -714,7 +737,7 @@ $2
 Нэвтэрч орсны дараа энэ шинэ бүртгэлийн нууц үгийг ''[[Special:ChangePassword|энэ хуудсаар]]'' солих боломжтой.",
 'newarticle' => '(Шинэ)',
 'newarticletext' => "Таны орохыг хүссэн хуудас байхгүй байна. Энэ хуудсыг шинээр үүсгэхийн тулд доорх талбарт мэдээллээ оруулна уу (дэлгэрэ
-нгүй мэдээллийг [[{{MediaWiki:Helppage}}|тусламжийн хуудсаас]] авч болно).
+нгүй мэдээллийг [$1 тусламжийн хуудсаас] авч болно).
 Хэрэв та энд санамсаргүйгээр орж ирсэн бол броузерийнхаа '''back''' товчийг дар.",
 'anontalkpagetext' => "----''Энэ нь хараахан бүртгүүлээгүй байгаа буюу хэрэглэгчийн нэр хэрэглэхгүй байгаа хэрэглэгчийн хэлэлцүүлгийн хуудас болно.
 Бид ийм хэрэглэгчдийг тогтоохын тулд IP хаягийг нь ашигладаг.
@@ -883,7 +906,7 @@ $3-н тодорхойлсон шалтгаан нь ''$2''",
 'page_last' => 'сүүлийн',
 'histlegend' => 'Радио товчлууруудыг сонгож дарсаны дараа enter товчлуурыг, эсвэл хуудасны доод талд байгаа товчлуур дээр дарж засваруудыг хооронд нь харьцуулна уу.<br />
 
-Тайлбар: strong>({{int:cur}})</strong> = хамгийн шинэ хувилбартай харьцуулалт, <strong>({{int:last}})</strong> = өмнөх хувилбартайх харьцуулалт, <strong>{{int:minoreditletter}}</strong> = бага хэмжээний засвар',
+Тайлбар: <strong>({{int:cur}})</strong> = одоогийн хувилбартай харьцуулах, <strong>({{int:last}})</strong> = өмнөх хувилбартай нь харьцуулах, <strong>{{int:minoreditletter}}</strong> = бага хэмжээний засвар',
 'history-fieldset-title' => 'Түүх сөхье',
 'history-show-deleted' => 'Зөвхөн устгагдсаныг',
 'histfirst' => 'хамгийн эхэнд',
@@ -892,7 +915,7 @@ $3-н тодорхойлсон шалтгаан нь ''$2''",
 'historyempty' => '(хоосон байна)',
 
 # Revision feed
-'history-feed-title' => 'Ð\97аÑ\81ваÑ\80Ñ\8bн Ñ\82үүх',
+'history-feed-title' => 'Түүх',
 'history-feed-description' => 'Вики дэх энэ хуудасны засварын түүх',
 'history-feed-item-nocomment' => '$2 дээрх $1',
 'history-feed-empty' => 'Таны үзэх гэсэн хуудас байхгүй байна.
@@ -939,8 +962,6 @@ $3-н тодорхойлсон шалтгаан нь ''$2''",
 'revdelete-show-file-submit' => 'Тийм',
 'revdelete-selected' => "'''[[:$1]]-н {{PLURAL:$2|сонгосон засвар|сонгосон засварууд}}:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Сонгосон логийн үйл явдал|Сонгосон логийн үйл явдлууд}}:'''",
-'revdelete-text' => "'''Устгагдсан засварууд ба үйл явдлууд нь хуудасны түүх болон логт харагдах хэвээр үлдэх ч эдгээрийн зарим агуулга нийтэд үл харагдана.'''
-Давхар хязгаарууд тавигдаагүй тохиолдолд {{SITENAME}}-н бусад администраторууд нуугдсан агуулгыг энэ талбараар харж үл арилгах боломжтой хэвээр үлдэнэ.",
 'revdelete-confirm' => 'Та энэхүү үйлдлийг хийх гэж байгаа, үр дагаварыг ойлгож байгаа, [[{{MediaWiki:Policy-url}}|дүрмийн дагуу]] хийж байгаа гэдгээ батална уу.',
 'revdelete-suppress-text' => "'''Зөвхөн'' дараах тохиолдлуудад л далдалгааг хэрэглэнэ:
 *Гүтгэсэн, матсан байж болох мэдээлэл
@@ -1322,7 +1343,7 @@ $1 тэмдэгтээс богино байх ёстой.',
 'action-createtalk' => 'ярианы хуудас үүсгэх',
 'action-createaccount' => 'энэ хэрэглэгчийн бүртгэлийг үүсгэх',
 'action-minoredit' => 'энэ засварыг бага зэргийн гэж тэмдэглэх',
-'action-move' => 'хуудсыг зөөх',
+'action-move' => 'нэр солих',
 'action-move-subpages' => 'энэ хуудас болон түүний дэд хуудсуудыг зөөх',
 'action-move-rootuserpages' => 'хэрэглэгчийн үндсэн хуудсуудыг зөөх',
 'action-movefile' => 'энэ файлыг зөөх',
@@ -1355,20 +1376,26 @@ $1 тэмдэгтээс богино байх ёстой.',
 # Recent changes
 'nchanges' => '$1 өөрчлөлт',
 'recentchanges' => 'Сүүлийн өөрчлөлтүүд',
-'recentchanges-legend' => 'Сүүлийн өөрчлөлтүүдийн сонголтууд',
+'recentchanges-legend' => 'Сар өдөр, шинж төрлөөр шүүх хүснэгт',
 'recentchanges-summary' => 'Энэхүү хуудсанд викид хийсэн хамгийн сүүлийн өөрчлөлтүүдийг үзүүлж байна.',
 'recentchanges-feed-description' => 'Вики дахь хамгийн сүүлийн өөрчлөлтүүдийг хянах.',
-'recentchanges-label-newpage' => 'ЭнÑ\8d Ð·Ð°Ñ\81ваÑ\80 Ñ\88инÑ\8d Ñ\85Ñ\83Ñ\83дÑ\81Ñ\8bг Ò¯Ò¯Ñ\81гÑ\8dсэн байна',
-'recentchanges-label-minor' => 'ЭнÑ\8d Ð½Ñ\8c Ð±Ð°Ð³Ð° Ð·Ñ\8dÑ\80гийн Ð·Ð°Ñ\81ваÑ\80 Ð±Ð°Ð¹Ð½Ð°',
-'recentchanges-label-bot' => 'ЭнÑ\8d Ð·Ð°Ñ\81ваÑ\80Ñ\8bг Ñ\80обоÑ\82 Ð³Ò¯Ð¹Ñ\86Ñ\8dÑ\82гÑ\8dÑ\81Ñ\8dн Ð±Ð°Ð¹Ð½Ð°',
+'recentchanges-label-newpage' => 'ШинÑ\8d Ñ\85Ñ\83Ñ\83даÑ\81 Ò¯Ò¯Ñ\81сэн байна',
+'recentchanges-label-minor' => 'Ð\91ага Ð·Ñ\8dÑ\80гийн Ð·Ð°Ñ\81ваÑ\80',
+'recentchanges-label-bot' => 'РобоÑ\82 Ð³Ò¯Ð¹Ñ\86Ñ\8dÑ\82гÑ\8dÑ\81Ñ\8dн Ð·Ð°Ñ\81ваÑ\80',
 'recentchanges-label-unpatrolled' => 'Энэ засварыг одоогийн байдлаар манаагүй байна',
-'recentchanges-legend-newpage' => '([[Special:NewPages|тэдгээрийг жагсааж үзэх]]',
+'recentchanges-label-plusminus' => 'Өөрчлөгдсөн байт хэмжээ',
+'recentchanges-legend-heading' => "'''Таних үсэг:'''",
+'recentchanges-legend-newpage' => '([[Special:NewPages|жагсааж харах]])',
 'rcnotefrom' => "Доорх нь '''$2'''-с хойших өөрчлөлтүүд ('''$1''' хүртэлхийг харуулав) юм.",
 'rclistfrom' => '$1-с хойших шинэ засваруудыг үзүүлэх',
 'rcshowhideminor' => 'Бага зэргийн засваруудыг $1',
 'rcshowhidebots' => 'Роботуудыг $1',
 'rcshowhideliu' => 'Нийт $1 бүртгэгдсэн хэрэглэгчид',
+'rcshowhideliu-show' => 'үзүүлэх',
+'rcshowhideliu-hide' => 'нуух',
 'rcshowhideanons' => 'Бүртгэлгүй хэрэглэгчдийг $1',
+'rcshowhideanons-show' => 'үзүүлэх',
+'rcshowhideanons-hide' => 'нуух',
 'rcshowhidepatr' => 'Хянагдаж буй засваруудыг $1',
 'rcshowhidemine' => 'Миний засваруудыг $1',
 'rclinks' => 'Сүүлийн $2 өдрийн турших $1 засварыг үзүүлэх<br />$3',
@@ -1843,7 +1870,7 @@ URL нь зөв болон сайт ажиллагаатай байгаа эсэ
 'newpages' => 'Шинэ хуудсууд',
 'newpages-username' => 'Хэрэглэгчийн нэр:',
 'ancientpages' => 'Хамгийн хуучин хуудсууд',
-'move' => 'Ð\97Ó©Ó©х',
+'move' => 'Ð\9eндоогооÑ\80 Ð½Ñ\8dÑ\80лÑ\8dх',
 'movethispage' => 'Энэ хуудсыг зөөх',
 'unusedimagestext' => 'Дараах файлууд нь байгаа ч гэсэн ямар ч хуудсанд эмбэдлэгдээгүй байна.
 Бусад вэб хуудаснуудаас зураг руу шууд URL-р нь холбогдож болох учраас идэвхтэй хэрэглэгдэж буй эсэхээс үл хамааран энд жагсагдсан байж болно гэдгийг анхаарна уу.</p>',
@@ -1908,7 +1935,7 @@ URL нь зөв болон сайт ажиллагаатай байгаа эсэ
 # Special:LinkSearch
 'linksearch' => 'Гадаад холбоос хайлт',
 'linksearch-pat' => 'Хэв маягийг хайх:',
-'linksearch-ns' => 'Ð\9dÑ\8dÑ\80ний Ð·Ð°Ð¹:',
+'linksearch-ns' => 'Ð¥Ñ\83Ñ\83дÑ\81Ñ\8bн Ñ\82Ó©Ñ\80өл:',
 'linksearch-ok' => 'Хайх',
 'linksearch-text' => '"*.wikipedia.org" зэрэг орлуулагч тэмдэгт хэрэглэх боломжтой.<br />
 Дор хаяж дээд түвшиний домайн хэрэгтэй байна, жишээ нь "*.org".<br />
@@ -2204,7 +2231,7 @@ $UNWATCHURL
 'undeletebtn' => 'Сэргээх',
 'undeletelink' => 'үзэх/сэргээх',
 'undeleteviewlink' => 'харах',
-'undeleteinvert' => 'ЭÑ\81Ñ\80Ñ\8dгÑ\8dÑ\8dÑ\80 Ð½Ñ\8c Ð±Ð¾Ð»Ð³Ð¾Ñ\85',
+'undeleteinvert' => 'Ð\97ааÑ\81нааÑ\81 Ð±Ñ\83Ñ\81ад',
 'undeletecomment' => 'Шалтгаан:',
 'undeletedrevisions' => '{{PLURAL:$1|1 хувилбар|$1 хувилбар}}  сэргээгдлээ',
 'undeletedrevisions-files' => '{{PLURAL:$1|1 засвар|$1 засвар}} ба {{PLURAL:$2|1 файл|$2 файл}} сэргээгдлээ',
@@ -2235,7 +2262,8 @@ $1',
 
 # Namespace form on various pages
 'namespace' => 'Нэрний зай:',
-'invert' => 'Эсрэгээр нь болгох',
+'invert' => 'Зааснаас бусад',
+'namespace_association' => 'Заасан төрлөөс',
 'blanknamespace' => '(Гол)',
 
 # Contributions
@@ -2262,6 +2290,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Энэхүү IP хаягыг одоогоор түгжигдсэн байна.
 Лавлагааны зориулалтаар түгжээний лог дээрх хамгийн сүүлийн нэмэлтийг доор оруулав:',
 'sp-contributions-search' => 'Хувь нэмрийг хайх',
+'sp-contributions-suppresslog' => 'Хориглосон хэрэглэгчийн оролцоо',
 'sp-contributions-username' => 'IP хаяг эсвэл хэрэглэгчийн нэр:',
 'sp-contributions-toponly' => 'Хамгийн сүүлийн засваруудыг л үзүүлэх',
 'sp-contributions-submit' => 'Хайх',
@@ -2427,7 +2456,7 @@ $1',
 
 # Move page
 'move-page' => '$1-г зөөх',
-'move-page-legend' => 'Ð¥Ñ\83Ñ\83дÑ\81Ñ\8bг Ð·Ó©Ó©х',
+'move-page-legend' => 'Ð¥Ñ\83Ñ\83дÑ\81Ñ\8bг Ð¾Ð½Ð´Ð¾Ð¾Ð³Ð¾Ð¾Ñ\80 Ð½Ñ\8dÑ\80лÑ\8dх',
 'movepagetext' => "Доорх маягтыг ашигласнаар хуудасны нэр солигдож, түүний бүх түүх шинэ нэр лүү зөөгдөх болно.
 Хуучин гарчиг нь шинэ гарчиг руух чиглүүлэгч болно.
 Та чиглүүлэгчийг эх бичвэр лүү автоматаар заахаар шинэчлэх боломжтой.
@@ -2442,7 +2471,7 @@ $1',
 *Доорх дөрвөлжинг хоосон болгосон
 
 Эдгээр тохиолдлуудад уг хуудсыг гар аргаар зөөх эсвэл нэгтгэх шаардлагатай болно.",
-'movearticle' => 'Ð¥Ñ\83Ñ\83дÑ\81Ñ\8bг Ð·Ó©Ó©х:',
+'movearticle' => 'Ð¥Ñ\83Ñ\83дÑ\81Ñ\8bн Ð½Ñ\8dÑ\80ийг Ñ\81олих:',
 'moveuserpage-warning' => "'''Анхаар:''' Та хэрэглэгчийн хуудсыг зөөх гэж байна. Зөвхөн хуудас нь л зөөгдөнө, харин хэрэглэгчийн нэр ''солигдохгүй'' гэдгийг анхаарана уу.",
 'movenologintext' => 'Та хуудсыг зөөхийн тулд бүртгэлтэй бөгөөд [[Special:UserLogin|холбогдсон]] байх ёстой.',
 'movenotallowed' => 'Таньд хуудас зөөх зөвшөөрөл байхгүй байна.',
@@ -2616,11 +2645,11 @@ $1',
 'tooltip-pt-mycontris' => 'Таны оруулсан хувь нэмрийн жагсаалт',
 'tooltip-pt-login' => 'Заавал хийх ёстой зүйл биш боловч таныг нэвтрэхийг зөвлөж байна.',
 'tooltip-pt-logout' => 'Гарах',
-'tooltip-ca-talk' => 'Хуудасны талаарх хэлэлцүүлэг',
-'tooltip-ca-edit' => 'Та энэ хуудсыг засварлах боломжтой. Хадгалахынхаа өмнө "Урьдчилан харах" товчлуурыг хэрэглэнэ үү.',
-'tooltip-ca-addsection' => 'ШинÑ\8d Ñ\85Ñ\8dÑ\81Ñ\8dг Ò¯Ò¯Ñ\81гэх',
+'tooltip-ca-talk' => 'Хуудсыг зөвшин хэлэлцэх',
+'tooltip-ca-edit' => 'Та энэ хуудсыг засч янзалж болно. Хадгалахаасаа өмнө урьдчилан харах товчийг дардаг юм шүү.',
+'tooltip-ca-addsection' => 'ШинÑ\8d Ñ\81Ñ\8dдвÑ\8dÑ\8dÑ\80 Ñ\8fÑ\80Ñ\8cж Ñ\8dÑ\85лэх',
 'tooltip-ca-viewsource' => 'Энэ хуудас хамгаалагдсан байна. Та зөвхөн кодыг нь харах боломжтой.',
-'tooltip-ca-history' => 'Энэ хуудасны өмнөх засварууд.',
+'tooltip-ca-history' => 'Энэ хуудсыг зассан түүхийг сөхөн нягтлах',
 'tooltip-ca-protect' => 'Энэ хуудсыг хамгаалах',
 'tooltip-ca-unprotect' => 'Энэ хуудасны хамгаалалтыг солих',
 'tooltip-ca-delete' => 'Энэ хуудсыг устгах',
@@ -2649,7 +2678,7 @@ $1',
 'tooltip-t-specialpages' => 'Тусгай хуудаснуудын жагсаалт',
 'tooltip-t-print' => 'Энэ хуудасны хувилж болох хувилбар',
 'tooltip-t-permalink' => 'Хуудасны одоогийн хувилбар луу очих тогтмол линк',
-'tooltip-ca-nstab-main' => 'Өгүүлж буй гол хуудсыг үзэх',
+'tooltip-ca-nstab-main' => 'Өгүүлсэн хуудас',
 'tooltip-ca-nstab-user' => 'Хэрэглэгчийн хуудсыг үзэх',
 'tooltip-ca-nstab-media' => 'Медиа хуудсыг үзэх.',
 'tooltip-ca-nstab-special' => 'Энэ бол тусгай хуудас, та үүнийг шууд засварлах боломжгүй.',
@@ -2658,7 +2687,7 @@ $1',
 'tooltip-ca-nstab-mediawiki' => 'Системийн мэдэгдлийг үзэх.',
 'tooltip-ca-nstab-template' => 'Загварыг үзэх',
 'tooltip-ca-nstab-help' => 'Тусламжийн хуудсыг үзэх',
-'tooltip-ca-nstab-category' => 'Ангиллын хуудсыг үзэх',
+'tooltip-ca-nstab-category' => 'Анги, бүлгийн хуудас',
 'tooltip-minoredit' => 'Бага зэргийн засвар гэж тэмдэглэх',
 'tooltip-save' => 'Засваруудаа хадгалах',
 'tooltip-preview' => 'Өөрийн оруулах гэж буй өөрчлөлтүүдийг урьдчилан харах. Үүнийг ашиглана уу!',
index 59fcdbe..75d01db 100644 (file)
@@ -45,6 +45,7 @@
  * @author कोलࣿहापࣿरी
  * @author कोल्हापुरी
  * @author प्रणव कुलकर्णी
+ * @author प्रतिमा
  * @author शࣿरीहरि
  * @author संतोष दहिवळ
  */
@@ -574,7 +575,6 @@ $1',
 'disclaimers' => 'उत्तरदायित्वास नकार',
 'disclaimerpage' => 'Project: सर्वसाधारण उत्तरदायकत्वास नकार',
 'edithelp' => 'संपादन साहाय्य',
-'helppage' => 'Help:आशय',
 'mainpage' => 'मुखपृष्ठ',
 'mainpage-description' => 'मुखपृष्ठ',
 'policy-url' => 'Project:नीती',
@@ -773,8 +773,6 @@ $2',
 'gotaccountlink' => 'सनोंद-प्रवेश करा',
 'userlogin-resetlink' => 'सनोंद-प्रवेश तपशील विसरला असाल तर येथे टिचकी मारा.',
 'userlogin-resetpassword-link' => 'आपला परवलीचा शब्द विसरलात?',
-'helplogin-url' => 'Help:सनोंद प्रवेशासाठी(लॉगिंग-ईन)',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|सनोंद-प्रवेशासाठी(लॉग-ईन) सहाय्य]]',
 'userlogin-loggedin' => 'आपण पुर्वीच {{GENDER:$1|$1}} म्हणून सनोंद प्रवेशित आहात.वेगळ्या सदस्यनावाने सनोंद प्रवेशासाठी खालील आवेदन वापरा.',
 'userlogin-createanother' => 'दुसरे नवीन खाते तयार करा',
 'createacct-join' => 'खाली आपली माहिती भरा',
@@ -857,6 +855,8 @@ $2',
 'suspicious-userlogout' => 'तुमच्या सनोंद-निर्गमनास नकार दिल्या गेला कारण असे दिसते की ती विनंती अन-अनुबंधित(डिसकनेक्टेड) न्याहाळकाद्वारे पाठवल्या गेली.',
 'createacct-another-realname-tip' => 'आपले खरे नाव टाकणे वैकल्पिक आहे.
 जर आपण ते द्यायचे ठरविले तर,ते आपल्या कामाचा मूळ स्रोत म्णून देण्यास वापरले जाईल.',
+'pt-login' => 'सनोंद-प्रवेश करा',
+'pt-userlogout' => 'सनोंद-निर्गम',
 
 # Email sending
 'php-mail-error-unknown' => 'पीएचपीच्या विपत्र() पर्यायात अज्ञात चूक',
@@ -865,7 +865,7 @@ $2',
 
 # Change password dialog
 'changepassword' => 'परवलीचा शब्द बदला',
-'resetpass_announce' => 'तà¥\81मà¥\8dहà¥\80 à¤\88-मà¥\87ल à¤®à¤§à¥\82न à¤¦à¤¿à¤²à¥\87लà¥\8dया à¤¤à¤¾à¤¤à¥\8dपà¥\81रतà¥\8dया à¤¶à¤¬à¥\8dदाà¤\82à¤\95ानà¥\87 à¤¸à¤¨à¥\8bà¤\82द à¤ªà¥\8dरवà¥\87शित à¤\86हात. à¤\86पला à¤¸à¤¨à¥\8bà¤\82द-पà¥\8dरवà¥\87श à¤ªà¥\82रà¥\8dण à¤\95रणà¥\8dयासाठà¥\80, à¤\95à¥\83पया à¤¯à¥\87थà¥\87 à¤¨à¤µà¥\80न à¤ªà¤°à¤µà¤²à¥\80à¤\9aा à¤¶à¤¬à¥\8dद à¤¦à¥\8dया:',
+'resetpass_announce' => 'à¤\96ातà¥\8dयामधà¥\8dयà¥\87 à¤ªà¥\8dरविषà¥\8dà¤\9f à¤¹à¥\8bणà¥\87 à¤¥à¤¾à¤\82बविणà¥\8dयाà¤\95रिता à¤\95à¥\83पया à¤\86पलà¥\8dया à¤\96ातà¥\8dयाà¤\9aा à¤\95à¥\82à¤\9fशबà¥\8dद à¤¬à¤¦à¤²à¤¾.',
 'resetpass_text' => '<!-- मजकूर इथे लिहा -->',
 'resetpass_header' => 'खात्याचा परवलीचा शब्द बदला',
 'oldpassword' => 'जुना परवलीचा शब्दः',
@@ -1014,7 +1014,7 @@ $2',
 
 या नवीन खात्यासाठीचा परवलीचा शब्द,सनोंद-प्रवेश घेतल्यावर [[Special:ChangePassword|परवलीचा शब्द बदला]] येथे बदलता येईल.',
 'newarticle' => '(नवीन लेख)',
-'newarticletext' => 'तुम्हाला अपेक्षित असलेला लेख अजून लिहिला गेलेला नाही. हा लेख लिहिण्यासाठी खालील पेटीत मजकूर लिहा. मदतीसाठी [[{{MediaWiki:Helppage}}|येथे]] टिचकी द्या.
+'newarticletext' => 'तुम्हाला अपेक्षित असलेला लेख अजून लिहिला गेलेला नाही. हा लेख लिहिण्यासाठी खालील पेटीत मजकूर लिहा. मदतीसाठी [$1 येथे] टिचकी द्या.
 
 जर येथे चुकून आला असाल तर ब्राउझरच्या बॅक (back) कळीवर टिचकी द्या.',
 'anontalkpagetext' => "---- ''हे चर्चापान अशा अज्ञात सदस्यासाठी आहे, ज्यांनी खाते तयार केलेले नाही किंवा त्याचा वापर करत नाहीत. त्यांच्या ओळखीसाठी आम्ही आंतरजाल अंकपत्ता वापरतो आहोत. असा अंकपत्ता बऱ्याच लोकांचा एकच असू शकतो. जर आपण अज्ञात सदस्य असाल आणि आपल्याला काही अप्रासंगिक संदेश मिळाला असेल तर कृपया [[Special:UserLogin| खाते तयार करा]] किंवा [[Special:UserLogin/signup|सनोंद-प्रवेश करा]] ज्यामुळे, पुढे असे गैरसमज होणार नाहीत.''",
@@ -1239,9 +1239,6 @@ $3ने ''$2'' कारण दिले आहे.",
 'revdelete-show-file-submit' => 'होय',
 'revdelete-selected' => "'''[[:$1]] {{PLURAL:$2|ची निवडलेली आवृत्ती|च्या निवडलेल्या आवृत्त्या}}:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|निवडलेली नोंदीकृत घटना|निवडलेल्या नोंदीकृत घटना}}:'''",
-'revdelete-text' => "'''वगळलेल्या नोंदी आणि घटना अजूनही पानाच्या इतिहासात आणि नोंदीत आढळेल,परंतु मजकुराचा भाग सार्वजनिक स्वरूपात उपलब्ध राहणार नाही.'''
-
-अजून इतर  प्रतिबंध घातल्याशिवाय {{SITENAME}}चे इतर प्रबंधक लपविलेला मजकूर याच दुव्याने परतवू शकतील.",
 'revdelete-confirm' => "कृपया '''याची खात्री करा''' की तुम्ही जे करीत आहात, त्याचे परिणाम आपण जाणत आहात आणि, ते काम [[{{MediaWiki:Policy-url}}|मीडियाविकीच्या नीती]]नुसार आहे.",
 'revdelete-suppress-text' => "लपवण्याचा वापर '''फक्त''' पुढील बाबतीत होतो:
 * उच्च दर्जाची बदनामीकारक माहिती
@@ -1692,16 +1689,28 @@ $1",
 'rcnotefrom' => "खाली <b>$2</b> पासूनचे ('''$1''' पर्यंत) बदल दाखविले आहेत.",
 'rclistfrom' => '$1 नंतर केले गेलेले बदल दाखवा.',
 'rcshowhideminor' => 'छोटे बदल $1',
+'rcshowhideminor-show' => 'दाखवा',
+'rcshowhideminor-hide' => 'लपवा',
 'rcshowhidebots' => 'सांगकामे(बॉट्स) $1',
+'rcshowhidebots-show' => 'दाखवा',
+'rcshowhidebots-hide' => 'लपवा',
 'rcshowhideliu' => '$1नोंदणीकृत सदस्य',
+'rcshowhideliu-show' => 'दाखवा',
+'rcshowhideliu-hide' => 'लपवा',
 'rcshowhideanons' => 'अनामिक सदस्य $1',
+'rcshowhideanons-show' => 'दाखवा',
+'rcshowhideanons-hide' => 'लपवा',
 'rcshowhidepatr' => '$1 पहारा असलेली संपादने',
+'rcshowhidepatr-show' => 'दाखवा',
+'rcshowhidepatr-hide' => 'लपवा',
 'rcshowhidemine' => 'माझे बदल $1',
+'rcshowhidemine-show' => 'दाखवा',
+'rcshowhidemine-hide' => 'लपवा',
 'rclinks' => 'मागील $2 दिवसांतील $1 बदल पहा.<br />$3',
 'diff' => 'फरक',
 'hist' => 'इति',
 'hide' => 'लपवा',
-'show' => 'पहा',
+'show' => 'दाà¤\96वा',
 'minoreditletter' => 'छो',
 'newpageletter' => 'न',
 'boteditletter' => 'सां',
@@ -1814,6 +1823,7 @@ $1",
 'php-uploaddisabledtext' => 'PHP मध्ये संचिका चढवणे प्रतिबंधित केले आहे.
 कृपया file_uploads मांडणी (setting) तपासावी.',
 'uploadscripted' => 'या संचिकेत HTML किंवा स्क्रिप्ट कोडचा आंतर्भाव आहे, त्याचा एखाद्या विचरकाकडून विचित्र अर्थ लावला जाऊ शकतो.',
+'uploadinvalidxml' => 'अपभारीत संचिकेतील XML पार्स करता आले नाही.',
 'uploadvirus' => 'ह्या संचिकेत व्हायरस आहे. अधिक माहिती: $1',
 'uploadjava' => 'ही फाईल झीप ह्या प्रकारातील आहे ज्यामधे जावा .क्लास फाईल. आहे,जावा फाईलचे अपभारणास परवानगी नाही कारण त्याने सुरक्षा-बंधने टाळल्या जाऊ शकतात.',
 'upload-source' => 'स्रोत संचिका',
@@ -2163,7 +2173,7 @@ Input:contenttype/subtype, e.g. <code>image/jpeg</code>.',
 'deadendpagestext' => 'या पानांवर या विकिवरील इतर कुठल्याही पानाला जोडणारा दुवा नाही.',
 'protectedpages' => 'सुरक्षित पाने',
 'protectedpages-indef' => 'फक्त अनंत काळासाठी सुरक्षित केलेले',
-'protectedpages-summary' => 'या पानात,अस्तित्वात असणाऱ्या संरक्षित अशा पानाची यादी आहे.नवनिर्माणापासून संरक्षित शीर्षकांच्या यादीसाठी [[{{#special:ProtectedTitles}}]] बघा.',
+'protectedpages-summary' => 'या पानात,अस्तित्वात असणाऱ्या संरक्षित अशा पानाची यादी आहे.नवनिर्माणापासून संरक्षित शीर्षकांच्या यादीसाठी [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]] बघा.',
 'protectedpages-cascade' => 'केवळ एकामेकांवर अवलंबून कास्केडींग सुरक्षा (सुरक्षा शिडी)',
 'protectedpages-noredirect' => 'पुनर्निर्देशने लपवा',
 'protectedpagesempty' => 'सध्या या नियमावलीने कोणतीही पाने सुरक्षित केलेली नाहीत.',
@@ -2176,7 +2186,7 @@ Input:contenttype/subtype, e.g. <code>image/jpeg</code>.',
 'protectedpages-unknown-timestamp' => 'अज्ञात',
 'protectedpages-unknown-performer' => 'अनामिक सदस्य',
 'protectedtitles' => 'सुरक्षीत शीर्षके',
-'protectedtitles-summary' => 'या पानात अशा शीर्षकांची यादी आहे, जी नविन तयार करता येउ  शकणार नाहीत.अस्तित्वात असणाऱ्या संरक्षित पानांच्या यादीसाठी [[{{#special:ProtectedPages}}]] बघा.',
+'protectedtitles-summary' => 'या पानात अशा शीर्षकांची यादी आहे, जी नविन तयार करता येउ  शकणार नाहीत.अस्तित्वात असणाऱ्या संरक्षित पानांच्या यादीसाठी [[{{#special:ProtectedPages}}|{{int:protectedpages}}]] बघा.',
 'protectedtitlesempty' => 'या नियमावलीने सध्या कोणतीही शीर्षके सुरक्षित केलेली नाहीत.',
 'listusers' => 'सदस्यांची यादी',
 'listusers-editsonly' => 'फक्त संपादनांसहित सदस्य दाखवा',
@@ -4097,6 +4107,4 @@ $5
 'expand_templates_generate_xml' => 'XML चा पार्स (parse) वृक्ष दाखवा',
 'expand_templates_preview' => 'झलक',
 
-# Unknown messages
-'uploadinvalidxml' => 'अपभारीत संचिकेतील XML पार्स करता आले नाही.',
 );
index aa5c08a..3588eed 100644 (file)
@@ -235,7 +235,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Kirimkan saya salinan e-mel yang saya hantar kepada pengguna lain',
 'tog-diffonly' => 'Jangan tunjukkan kandungan laman di bawah perbezaan',
 'tog-showhiddencats' => 'Tunjukkan kategori tersembunyi',
-'tog-noconvertlink' => 'Lumpuhkan penukaran tajuk pautan',
 'tog-norollbackdiff' => 'Abaikan perbezaan selepas melakukan pengunduran suntingan.',
 'tog-useeditwarning' => 'Beri saya amaran apabila saya meninggalkan sesebuah laman penyuntingan tanpa menyimpan perubahan.',
 'tog-prefershttps' => 'Sentiasa gunakan sambungan terlindung apabila log masuk',
@@ -447,7 +446,6 @@ $1',
 'disclaimers' => 'Penolak tuntutan',
 'disclaimerpage' => 'Project:Penolak tuntutan umum',
 'edithelp' => 'Bantuan menyunting',
-'helppage' => 'Help:Kandungan',
 'mainpage' => 'Laman Utama',
 'mainpage-description' => 'Laman utama',
 'policy-url' => 'Project:Dasar',
@@ -646,8 +644,6 @@ Jangan lupa untuk mengubah [[Special:Preferences|keutamaan anda di {{SITENAME}}]
 'gotaccountlink' => 'Log masuk',
 'userlogin-resetlink' => 'Lupa nama pengguna/kata laluan anda?',
 'userlogin-resetpassword-link' => 'Lupa kata laluan anda?',
-'helplogin-url' => 'Help:Log masuk',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Bantuan untuk log masuk]]',
 'userlogin-loggedin' => 'Anda sudah log masuk sebagai {{GENDER:$1|$1}}. Gunakan borang di bawah untuk log masuk sebagai pengguna lain.',
 'userlogin-createanother' => 'Buka satu lagi akaun',
 'createacct-join' => 'Isikan keterangan anda di bawah.',
@@ -894,7 +890,7 @@ Ia mungkin telah dialih atau dihapus semasa anda melihat laman ini.',
 'newarticle' => '(Baru)',
 'newarticletext' => "Anda telah mengikuti pautan ke laman yang belum wujud.
 Untuk mencipta laman ini, sila taip dalam kotak di bawah
-(lihat [[{{MediaWiki:Helppage}}|laman bantuan]] untuk maklumat lanjut).
+(lihat [$1 laman bantuan] untuk maklumat lanjut).
 Jika anda tiba di sini secara tak sengaja, hanya klik butang '''back''' pada pelayar anda.",
 'anontalkpagetext' => "----''Ini ialah laman perbincangan bagi pengguna tanpa nama yang belum membuka akaun atau tidak log masuk.
 Oleh itu kami terpaksa menggunakan alamat IP untuk mengenal pasti pengguna tersebut. Alamat IP ini boleh dikongsi oleh ramai pengguna.
@@ -1134,8 +1130,6 @@ Anda boleh melihat perbezaan ini; butiran boleh didapati di [{{fullurl:{{#Specia
 'revdelete-show-file-submit' => 'Ya',
 'revdelete-selected' => "'''{{PLURAL:$2|Versi|Versi-versi}} '''$1''' yang dipilih:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Peristiwa|Peristiwa-peristiwa}} log yang dipilih:'''",
-'revdelete-text' => "'''Semakan dan peristiwa yang dihapuskan akan tetap muncul dalam sejarah laman dan log, tetapi kandungannya tidak boleh diakses awam.'''
-Pentadbir {{SITENAME}} boleh melihat kandungan tersebut dan menyahhapuskannya semula melalui laman ini melainkan mempunyai batasan.",
 'revdelete-confirm' => 'Sila sahkan bahawa anda bertujuan melakukan ini, bahawa anda faham akibatnya, dan anda melakukannya menurut [[{{MediaWiki:Policy-url}}| polisi]].',
 'revdelete-suppress-text' => "Sekatan seharusnya digunakan '''hanya''' untuk kes-kes berikut:
 * maklumat yang mungkin berunsur fitnah
@@ -1724,6 +1718,7 @@ Jika anda memiliki imej ini dalam leraian penuh, sila muat naik fail tersebut. J
 'uploaddisabledtext' => 'Ciri muat naik fail dimatikan.',
 'php-uploaddisabledtext' => 'Pemuatnaikan fail PHP dilumpuhkan. Sila semak tetapan file_uploads.',
 'uploadscripted' => 'Fail ini mengandungi kod HTML atau skrip yang boleh disalahtafsirkan oleh pelayar web.',
+'uploadinvalidxml' => 'XML dalam fail yang dimuat naik ini tidak dapat dihuraikan.',
 'uploadvirus' => 'Fail tersebut mengandungi virus! Butiran: $1',
 'uploadjava' => 'Fail ini ialah fail ZIP yang mengandungi fail .class Java.
 Memuat naik fail Java tidak dibenarkan, kerana boleh menyebabkan sekatan keselamatan dipintas.',
@@ -4074,6 +4069,4 @@ Sebenarnya, ia mengembangkan segalanya dalam tanda kurung panah berganda.',
 'expand_templates_generate_rawhtml' => 'Paparkan HTML mentah',
 'expand_templates_preview' => 'Pralihat',
 
-# Unknown messages
-'uploadinvalidxml' => 'XML dalam fail yang dimuat naik ini tidak dapat dihuraikan.',
 );
index 615f174..98d8d02 100644 (file)
@@ -520,7 +520,6 @@ $1",
 'disclaimers' => 'Ċaħdiet',
 'disclaimerpage' => 'Project:Ċaħda ġenerali',
 'edithelp' => 'Gwida',
-'helppage' => 'Help:Kontenut',
 'mainpage' => 'Il-Paġna prinċipali',
 'mainpage-description' => 'Il-Paġna prinċipali',
 'policy-url' => 'Project:Politika',
@@ -688,8 +687,6 @@ Kun af li ċerti paġni jistgħu jkomplu jidhru bħallikieku l-illogjar 'l barra
 'gotaccountlink' => 'Idħol',
 'userlogin-resetlink' => 'Insejt kif tidħol fil-kont tiegħek?',
 '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)',
@@ -917,7 +914,7 @@ Seta' ġara li din ġiet immexxiha jew imħassra waqt li kont qed tara l-paġna.
 Il-password għal dan il-kont il-ġdid tista' titbiddel fil-paġna għat-''[[Special:ChangePassword|tibdil tal-password]]''.",
 'newarticle' => '(Ġdid)',
 'newarticletext' => "Inti segwejt link għal paġna li għadha ma ġietx maħluqa.
-Sabiex toħloq il-paġna, ikteb fil-kaxxa li tinsab hawn taħt (ara [[{{MediaWiki:Helppage}}|paġna tal-għajnuna]] għal aktar informazzjoni).
+Sabiex toħloq il-paġna, ikteb fil-kaxxa li tinsab hawn taħt (ara [$1 paġna tal-għajnuna] għal aktar informazzjoni).
 Jekk wasalt hawn biż-żball, agħfas il-buttuna '''lura''' (''back'') fuq il-browser tiegħek.",
 'anontalkpagetext' => "----''Din hija l-paġna ta' diskussjoni ta' utent anonimu li għadu ma ħoloqx kont, jew inkella li ma jużahx.
 Għaldaqstant biex nidentifikawh ikollna nużaw l-indirizz tal-IP tiegħu/tagħha.
@@ -1137,8 +1134,6 @@ Bħala amministratur inti xorta waħda tista' tarah dan il-konfront; ikkonsulta
 'revdelete-show-file-submit' => 'Iva',
 'revdelete-selected' => "'''{{PLURAL:$2|Reviżjoni magħżula|Reviżjonijiet magħżula}} ta' [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Avveniment tar-reġistru magħżul|Avvenimenti tar-reġistri magħżula}}:'''",
-'revdelete-text' => "'''Reviżjonijiet u azzjonijiet imħassra xorta waħda jidhru fil-kronoloġija tal-paġna, filwaqt li partijiet tal-kontenut jiġu inaċċessibli għall-pubbliku.'''
-L-amminstraturi l-oħrajn fuq {{SITENAME}} xorta jkunu jistgħu jidħlu fuq il-kontenut moħbi u jistgħu jirkuprawh minn din l-istess interfaċċa, sakemm restrizzjonijiet ulterjuri jiġu definiti.",
 'revdelete-confirm' => 'Jekk jogħġbok ikkonferma li dan hu dak li tixtieq tagħmel, li tifhem il-konsegwenzi, u li qed tagħmel dan skont il-[[{{MediaWiki:Policy-url}}|politika]].',
 'revdelete-suppress-text' => "It-trażżin għandu jintuża '''biss''' għall-każijiet segwenti:
 * Potenzjal ta' kontenut libelluż
index 4cd2a50..d1413a2 100644 (file)
@@ -267,7 +267,6 @@ $messages = array(
 'disclaimers' => 'Abiso de Cuntenido',
 'disclaimerpage' => 'Project:Abiso giral',
 'edithelp' => 'Ajuda de eidiçon',
-'helppage' => 'Help:Cuntenidos',
 'mainpage' => 'Páigina Percipal',
 'mainpage-description' => 'Páigina Percipal',
 'policy-url' => 'Project:Políticas',
@@ -460,7 +459,7 @@ La tue morada de IP atual ye $3 i l ID de l bloqueio ye $5. Por fabor, anclui un
 La palabra-chabe para esta nuoba cuonta puode ser demudada na páigina pa ''[[Special:ChangePassword|demudar palabra-chabe]]'' apuis de la outenticaçon.",
 'newarticle' => '(Nuoba)',
 'newarticletext' => "Tu bejiteste ua lhigaçon para ua páigina que inda nun eisiste.
-Para criar la páigina, ampeça a screbir an la caixa ambaixo (bei la [[{{MediaWiki:Helppage}}|páigina de ajuda]] pa mais detailhes).
+Para criar la páigina, ampeça a screbir an la caixa ambaixo (bei la [$1 páigina de ajuda] pa mais detailhes).
 Se stás eiqui por anganho, carrega ne l boton '''retornar''' de l tou nabegador de la Anternete.",
 'noarticletext' => 'Nun hai neste sfergante testo nesta páigina.
 Tu puodes [[Special:Search/{{PAGENAME}}|percurar pul títalo desta páigina]] noutras páiginas,
index f2d1008..cc96e05 100644 (file)
@@ -301,7 +301,6 @@ $1',
 'disclaimers' => 'သတိပြုစရာများ',
 'disclaimerpage' => 'Project: အထွေထွေ သတိပြုဖွယ်',
 'edithelp' => 'ပြင်​ဆင်​ရန် အ​ကူ​အ​ညီ​',
-'helppage' => 'Help: မာတိကာ',
 'mainpage' => 'ဗဟိုစာမျက်နှာ',
 'mainpage-description' => 'ဗ​ဟို​စာ​မျက်​နှာ​',
 'policy-url' => 'Project:မူ​ဝါ​ဒ',
@@ -512,7 +511,7 @@ $1',
 'accmailtitle' => 'စကားဝှက်ကို ပို့ပြီးပြီ',
 'newarticle' => '(အသစ်)',
 'newarticletext' => "သင်သည် မရှိသေးသော စာမျက်နှာလင့် ကို ရောက်လာခြင်းဖြစ်သည်။
-စာမျက်နှာအသစ်စတင်ရန် အောက်မှ သေတ္တာထဲတွင် စတင်ရိုက်ထည့်ပါ (နောက်ထပ် သတင်းအချက်အလက်များအတွက်[[{{MediaWiki:Helppage}}|အကူအညီ စာမျက်နှာ]]ကို ကြည့်ပါ)။
+စာမျက်နှာအသစ်စတင်ရန် အောက်မှ သေတ္တာထဲတွင် စတင်ရိုက်ထည့်ပါ (နောက်ထပ် သတင်းအချက်အလက်များအတွက်[$1 အကူအညီ စာမျက်နှာ]ကို ကြည့်ပါ)။
 မတော်တဆရောက်လာခြင်း ဖြစ်ပါက ဘရောက်ဆာ၏ နောက်ပြန်ပြန်သွားသော'''back''' ခလုတ်ကို နှိပ်ပါ။",
 'noarticletext' => 'ဤစာမျက်နှာတွင် ယခုလက်ရှိတွင် မည်သည့်စာသားမှ မရှိပါ။
 သင်သည် အခြားစာမျက်နှာများတွင် [[Special:Search/{{PAGENAME}}|ဤစာမျက်နှာ၏ ခေါင်းစဉ်ကို ရှာနိုင်သည်]]၊ <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} ဆက်စပ်ရာ Logs များကို ရှာနိုင်သည်]၊ သို့မဟုတ် [{{fullurl:{{FULLPAGENAME}}|action=edit}} ဤစာမျက်နှာကို တည်းဖြတ်နိုင်သည်]</span>။',
index 4d343ad..7e18058 100644 (file)
@@ -428,7 +428,6 @@ $1',
 'disclaimers' => 'Видечинь кортамотне',
 'disclaimerpage' => 'Project:Видечинь прякс кортнема',
 'edithelp' => 'Витнемань-петнемань лезкс',
-'helppage' => 'Help:Лопась мезе кирди',
 'mainpage' => 'Прявтлопа',
 'mainpage-description' => 'Прявтлопа',
 'policy-url' => 'Project:Политика',
@@ -716,7 +715,7 @@ IP-тешкстэть — $3, саймас совавтоманть ID-сь —
 Те од совамо таркас совамовалось полавтови ''[[Special:ChangePassword|совамовалонь полавтома]]'' лопас совамодо мейле.",
 'newarticle' => '(Од)',
 'newarticletext' => "Молить налтке мельга сёрмадовксос, конась апак тее.
-Ули мелеть теемс сёрмадовкс, сёрмадт валт ало паргос (вант [[{{MediaWiki:Helppage}}|help page]] тесэ лездамо информация).
+Ули мелеть теемс сёрмадовкс, сёрмадт валт ало паргос (вант [$1 help page] тесэ лездамо информация).
 Лисиндеряй тесэ ильведькс, лепштик браузерсэ '''back''' повнэнть.",
 'noarticletext' => 'Неень шкасто те лопасонть сёрмадовкс арась. Мусак [[Special:Search/{{PAGENAME}}|вешнемс  файлань те конякс]] лия сёрмадовкстнэстэ
 <span class="plainlinks">
index 623f20c..4c33947 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Nahuatl (Nāhuatl)
+/** Nāhuatl (Nāhuatl)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -283,7 +283,6 @@ $messages = array(
 'currentevents-url' => 'Project:Āxcāncāyōtl',
 'disclaimers' => 'Nahuatīllahtōl',
 'edithelp' => 'Tlapatlaliztechcopa tēpalēhuiliztli',
-'helppage' => 'Help:Tlapiyaliztli',
 'mainpage' => 'Achkàuhìxtlapalli',
 'mainpage-description' => 'Achkàuhìxtlapalli',
 'policy-url' => 'Project:Nahuatīltōn',
@@ -472,7 +471,7 @@ Occeppa xicalaqui niman ticmatīz.',
 'accmailtitle' => 'Tlahtōlichtacāyōtl ōmoihuah.',
 'accmailtext' => "Ōquiyōcox zāzochtacātlahtōlli in [[User talk:$1|$1]] auh ōmoquitītlan īhuīc $2. Tihueliti ticpatlaz īpan ''[[Special:ChangePassword|Ticpatlaz in ]]'' in ōticalaco achtopa.",
 'newarticle' => '(Yancuīc)',
-'newarticletext' => 'Ōtictocac cētiliztli cē zāzanilhuīc oc ahmo ia. Intlā quiēlēhuia quichīhua, xitlahcuiloa niman (nō xiquitta [[{{MediaWiki:Helppage}}|tēpalēhuiliztli zāzanilli]] huehca ōmpa tlapatlaliztli). Intlā ahmo, yāuh achtopa zāzanilli.',
+'newarticletext' => 'Ōtictocac cētiliztli cē zāzanilhuīc oc ahmo ia. Intlā quiēlēhuia quichīhua, xitlahcuiloa niman (nō xiquitta [$1 tēpalēhuiliztli zāzanilli] huehca ōmpa tlapatlaliztli). Intlā ahmo, yāuh achtopa zāzanilli.',
 'noarticletext' => 'In āxcān, ahmō onca tlahcuilōlli inīn zāzanilpan.
 Tihuelīti [[Special:Search/{{PAGENAME}}|tictēmoa inīn zāzaniltōcācopa]] occequīntīn zāzanilpan,
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} machiyōmacalpan], ahnozo [{{fullurl:{{FULLPAGENAME}}|action=edit}} ticpatla inīn zāzanilli]</span>.',
index 2d4662a..c2d48d3 100644 (file)
@@ -220,7 +220,7 @@ $messages = array(
 'articlepage' => 'Khoàⁿ loē-iông ia̍h',
 'talk' => 'thó-lūn',
 'views' => 'Khoàⁿ',
-'toolbox' => 'Ke-si kheh-á',
+'toolbox' => 'Ke-si',
 'userpage' => 'Khoàⁿ iōng-chiá ê Ia̍h',
 'projectpage' => 'Khoàⁿ sū-kang ia̍h',
 'imagepage' => 'Khoàⁿ tóng-àn ia̍h',
@@ -257,7 +257,6 @@ $1',
 'disclaimers' => 'Bô-hū-chek seng-bêng',
 'disclaimerpage' => 'Project:It-poaⁿ ê seng-bêng',
 'edithelp' => 'Án-choáⁿ siu-kái',
-'helppage' => 'Help:Bo̍k-lio̍k',
 'mainpage' => 'Thâu-ia̍h',
 'mainpage-description' => 'Thâu-ia̍h',
 'policy-url' => 'Project:Chèng-chhek',
@@ -494,8 +493,11 @@ Lîm-sî ê bi̍t-bé: $2',
 'accmailtitle' => 'Bi̍t-bé kià chhut khì ah.',
 'accmailtext' => '$1 ê bi̍t-bé í-keng kìa khì $2.',
 'newarticle' => '(Sin)',
-'newarticletext' => "Lí tòe 1 ê liân-kiat lâi kàu 1 bīn iáu-bōe chûn-chāi ê ia̍h. Beh khai-sí pian-chi̍p chit ia̍h, chhiáⁿ tī ē-kha ê bûn-jī keh-á lāi-té phah-jī. ([[{{MediaWiki:Helppage}}|Bo̍k-lio̍k]] kà lí án-choáⁿ chìn-hêng.) Ká-sú lí bô-tiuⁿ-tî lâi kàu chia, ē-sai chhi̍h liû-lám-khì ê '''téng-1-ia̍h''' tńg--khì.",
+'newarticletext' => "Lí tòe 1 ê liân-kiat lâi kàu 1 bīn iáu-bōe chûn-chāi ê ia̍h. Beh khai-sí pian-chi̍p chit ia̍h, chhiáⁿ tī ē-kha ê bûn-jī keh-á lāi-té phah-jī. ([$1 Bo̍k-lio̍k] kà lí án-choáⁿ chìn-hêng.) Ká-sú lí bô-tiuⁿ-tî lâi kàu chia, ē-sai chhi̍h liû-lám-khì ê '''téng-1-ia̍h''' tńg--khì.",
 'anontalkpagetext' => "----''Pún thó-lūn-ia̍h bô kò·-tēng ê kháu-chō/hō·-thâu, kan-na ū 1 ê IP chū-chí (chhin-chhiūⁿ 123.456.789.123). In-ūi bô kāng lâng tī bô kāng sî-chūn ū khó-lêng tú-hó kong-ke kāng-ê IP, lâu tī chia ê oē ū khó-lêng hō· bô kāng lâng ê! Beh pī-bián chit khoán būn-tê, ē-sái khì [[Special:UserLogin|khui 1 ê hō·-thâu a̍h-sī teng-ji̍p]].''",
+'noarticletext' => '這頁這馬無內容,你會使佇別頁[[Special:Search/{{PAGENAME}}|揣這頁標題]],
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 揣相關日誌],
+抑[{{fullurl:{{FULLPAGENAME}}|action=edit}} 改這頁]</span>。',
 'clearyourcache' => "'''Chù-ì:''' Pó-chûn liáu-āu, tio̍h ē-kì leh kā liû-lám-khì ê cache piàⁿ tiāu chiah khoàⁿ-ē-tio̍h kái-piàn: *'''Firefox / Safari:''' chhi̍h tiâu \"Shift\" kâng-sî-chūn tiám-kik ''Reload/têng-sin chài-ji̍p'' a̍h-sī chhi̍h ''Ctrl-F5'' \"Ctrl-R\" kî-tiong chi̍t ê (''Command-R'' tī Mac) 
 * '''Google Chrome:''' chhi̍h ''Ctrl-Shift-R'' (''Command-Shift-R'' tī Mac)
 '''Internet Explorer :'''chhi̍h tiâu \"Ctrl\" kâng-sî-chūn tiám-kek ''Refresh/têng-sin chài-ji̍p'' a̍h-sī chhi̍h \"Ctrl-F5\" 
@@ -563,6 +565,12 @@ Lí ê kái-piàn tī ē-kha ê bûn-jī-keh. Lí su-iàu chiōng lí chò ê k
 # Revision feed
 'history-feed-item-nocomment' => '$1 tī $2',
 
+# Revision deletion
+'revdel-restore' => '改會當看無',
+
+# Merge log
+'revertmerge' => '取消合併',
+
 # Diffs
 'history-title' => '"$1"的歷史版本',
 'lineno' => 'Tē $1 chōa:',
@@ -580,16 +588,22 @@ Lí ê kái-piàn tī ē-kha ê bûn-jī-keh. Lí su-iàu chiōng lí chò ê k
 'shown-title' => 'Múi ia̍h hián-sī $1 {{PLURAL:$1|kiat-kó|kiat-kó}}',
 'viewprevnext' => 'Khoàⁿ ($1 {{int:pipe-separator}} $2) ($3)',
 'searchprofile-articles' => 'Loē-iông ia̍h',
+'searchprofile-project' => '幫助佮事工的頁',
 'searchprofile-images' => 'To-mûi-thé',
 'searchprofile-everything' => 'Só͘-ū ê',
 'searchprofile-advanced' => 'chìn-chi̍t-pō͘',
 'searchprofile-articles-tooltip' => 'Tī $1 chhoé',
+'searchprofile-project-tooltip' => 'Tī $1 chhoé',
 'searchprofile-images-tooltip' => 'Chhoé tóng-àn',
+'searchprofile-everything-tooltip' => '揣全部(包括討論頁)',
+'searchprofile-advanced-tooltip' => '佇你家己設的名空間內底揣',
 'search-result-size' => '$1 ({{PLURAL:$2|1 jī-goân|$2 jī-goân}})',
+'search-redirect' => '(轉去 $1)',
 'search-section' => '(toān-lo̍h $1)',
 'searchall' => 'choân-pō·',
 'showingresults' => 'Ē-kha tùi #<b>$2</b> khai-sí hián-sī <b>$1</b> hāng kiat-kó.',
 'showingresultsnum' => 'Ē-kha tùi #<b>$2</b> khai-sí hián-sī <b>$3</b> hāng kiat-kó.',
+'showingresultsheader' => "對'''$4'''的{{PLURAL:$5|第 '''$1''' 到第 '''$3''' 項結果|第 '''$1 - $2''' 項,總共 '''$3''' 項結果}}",
 'powersearch-legend' => 'Kiám-sek',
 
 # Preferences page
@@ -709,7 +723,7 @@ Tī pat-lâng liân-lo̍k lí ê sî-chūn bē kā e-mail tsū-tsí siá chhut--
 'filehist-datetime' => 'Ji̍t-kî/ Sî-kan',
 'filehist-thumb' => '細張圖',
 'filehist-user' => 'Iōng-chiá',
-'imagelinks' => 'Iáⁿ-siōng liân-kiat',
+'imagelinks' => 'tóng-àn sù-iōng ê chōng-hòng',
 'linkstoimage' => 'Í-hā ê ia̍h liân kàu chit ê iáⁿ-siōng:',
 'nolinkstoimage' => 'Bô poàⁿ ia̍h liân kàu chit tiuⁿ iáⁿ-siōng.',
 
@@ -888,6 +902,7 @@ Also see [[Special:WantedCategories|wanted categories]].',
 # Undelete
 'undelete' => 'Kiù thâi tiāu ê ia̍h',
 'undeletepage' => 'Khoàⁿ kap kiù thâi tiāu ê ia̍h',
+'undeletelink' => '看/復原',
 'undeleteviewlink' => 'Khoàⁿ',
 
 # Namespace form on various pages
@@ -932,6 +947,8 @@ Also see [[Special:WantedCategories|wanted categories]].',
 'ipusubmit' => 'Chhú-siau hong-só chit ê chū-chí',
 'ipblocklist' => 'Siū hong-só ê IP chū-chí kap iōng-chiá miâ-chheng',
 'blocklink' => 'hong-só',
+'unblocklink' => '廢除封鎖',
+'change-blocklink' => '改封鎖',
 'contribslink' => 'kòng-hiàn',
 'autoblocker' => 'Chū-tōng kìm-chí lí sú-iōng, in-ūi lí kap "$1" kong-ke kāng 1 ê IP chū-chí (kìm-chí lí-iû "$2").',
 'blocklogentry' => 'hong-só [[$1]], siat kî-hān chì $2 $3',
@@ -967,6 +984,7 @@ Liâu--lo̍h-khì chìn-chêng, chhiáⁿ seng khak-tēng lí ū liáu-kái chia
 'movepage-page-moved' => '$1 í-keng sóa khì tī $2.',
 'movelogpagetext' => 'Ē-kha lia̍t-chhut hông soá-ūi ê ia̍h.',
 'movereason' => 'Lí-iû:',
+'revertmove' => 'hôe-tńg',
 'selfmove' => 'Goân piau-tê kap sin piau-tê sio-siâng; bô hoat-tō· sóa.',
 'protectedpagemovewarning' => "'''KÉNG-KÒ: Pún ia̍h só tiâu leh. Kan-taⁿ ū hêng-chèng te̍k-koân ê iōng-chiá (sysop) ē-sái soá tín-tāng.'''
 Ē-kha ū choè-kīn ê kì-lio̍k thang chham-khó:",
@@ -993,6 +1011,7 @@ Liâu--lo̍h-khì chìn-chêng, chhiáⁿ seng khak-tēng lí ū liáu-kái chia
 'tooltip-pt-userpage' => 'Lí chit ê iōng-chiá ê ia̍h',
 'tooltip-pt-mytalk' => 'Lí ê thó-lūn ia̍h',
 'tooltip-pt-preferences' => 'Lí ê siat-tēng',
+'tooltip-pt-watchlist' => '你監視的頁有改過的清單',
 'tooltip-pt-mycontris' => 'Lí ê kòng-hiàn lia̍t-toaⁿ',
 'tooltip-pt-login' => 'Hi-bāng lí teng-ji̍p; m̄-ko bô kiông-chè',
 'tooltip-pt-logout' => 'Teng-chhut',
@@ -1003,6 +1022,7 @@ Lí ē-sái khoàⁿ i ê goân-sú-bé.',
 'tooltip-ca-history' => 'Chit ia̍h ê chá-chêng pán-pún',
 'tooltip-ca-delete' => 'Thâi chit ia̍h',
 'tooltip-ca-move' => '徙這頁',
+'tooltip-ca-watch' => '共這頁加入去你的監視單',
 'tooltip-ca-unwatch' => 'Lí ê kàm-sī-toaⁿ soá tiàu chit ia̍h.',
 'tooltip-search' => 'Chhoé {{SITENAME}}',
 'tooltip-search-fulltext' => 'Chhoé ū chia-ê jī ê ia̍h',
@@ -1016,6 +1036,7 @@ Lí ē-sái khoàⁿ i ê goân-sú-bé.',
 'tooltip-n-help' => 'Beh chhoé ê só͘-chāi',
 'tooltip-t-whatlinkshere' => 'Só͘-ū liân kàu chia ê liat-toaⁿ',
 'tooltip-t-recentchangeslinked' => 'Liân kàu chit ia̍h koh choè-kīn ū kái koè--ê',
+'tooltip-feed-atom' => '訂看這頁的修改',
 'tooltip-t-contributions' => 'Khoàⁿ chit ê iōng-chiá ê kòng-hiàn lia̍t-toaⁿ',
 'tooltip-t-upload' => 'Í-keng sàng chiūⁿ-bāng ê tóng-àn',
 'tooltip-t-specialpages' => 'Só͘-ū te̍k-sû-ia̍h ê lia̍t-toaⁿ',
index 3f5268e..d580427 100644 (file)
@@ -7,6 +7,7 @@
  * @ingroup Language
  * @file
  *
+ * @author C.R.
  * @author Carmine Colacino
  * @author Chelin
  * @author Cryptex
@@ -281,7 +282,7 @@ $messages = array(
 'feedlinks' => 'Feed:',
 'site-atom-feed' => "Feed Atom 'e $1",
 'page-atom-feed' => 'Feed Atom ppe "$1"',
-'red-link-title' => '$1 (a paggena nun esiste)',
+'red-link-title' => "$1 ('a paggena nun esiste)",
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Articulo',
@@ -637,6 +638,7 @@ Vere anche 'e [[Special:WantedCategories|categurìe richieste]].",
 'sp-contributions-blocklog' => 'blocche',
 'sp-contributions-logs' => 'registre',
 'sp-contributions-talk' => 'Chiàcchiera',
+'sp-contributions-suppresslog' => 'contribbute utente scancellate',
 'sp-contributions-username' => 'Nnerizzo IP o nomme utente',
 'sp-contributions-submit' => 'Truova',
 
@@ -718,7 +720,7 @@ Vere anche 'e [[Special:WantedCategories|categurìe richieste]].",
 'tooltip-p-logo' => 'Visita a paggena prencepale',
 'tooltip-n-mainpage' => 'Visita a paggena prencepale',
 'tooltip-n-mainpage-description' => 'Visita a paggena prencepale',
-'tooltip-n-portal' => 'Descrizione ddo prugietto, che pou fa, addo truova e cose',
+'tooltip-n-portal' => "Descrizione d&#39;'o prugietto, che po' ffa, addò truvà 'e ccose",
 'tooltip-n-recentchanges' => 'Ennece dde urdeme cagnamiénte ddo sito',
 'tooltip-n-randompage' => 'Na paggena qualsiase',
 'tooltip-n-help' => "Paggena 'e ajùto",
index c5a3341..f322a26 100644 (file)
@@ -566,7 +566,6 @@ $1',
 'disclaimers' => 'Forbehold',
 'disclaimerpage' => 'Project:Generelle forbehold',
 'edithelp' => 'Redigeringshjelp',
-'helppage' => 'Help:Innhold',
 'mainpage' => 'Forside',
 'mainpage-description' => 'Forside',
 'policy-url' => 'Project:Retningslinjer',
@@ -764,8 +763,6 @@ Ikke glem å endre [[Special:Preferences|innstillingene dine]] på {{SITENAME}}.
 'gotaccountlink' => 'Logg inn',
 'userlogin-resetlink' => 'Har du glemt påloggingsdetaljene dine?',
 'userlogin-resetpassword-link' => 'Glemt passordet?',
-'helplogin-url' => 'Help:Innlogging',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hjelp med innlogging]]',
 'userlogin-loggedin' => 'Du er allerede logget inn som {{GENDER:$1|$1}}.
 Bruk skjemaet nedenfor for å logge inn som en annen bruker.',
 'userlogin-createanother' => 'Opprett ny konto',
@@ -1033,7 +1030,7 @@ Det kan ha blitt flyttet eller slettet mens du så på siden.',
 'accmailtext' => 'Et tilfeldig passord for [[User talk:$1|$1]] har blitt sendt til $2. Det kan endres på [[Special:ChangePassword|passordendringssiden]] under innlogging.',
 'newarticle' => '(Ny)',
 'newarticletext' => "Du har fulgt en lenke til en side som ikke finnes ennå.
-For å opprette siden, begynn å skrive i boksen under (se [[{{MediaWiki:Helppage}}|hjelpesiden]] for mer informasjon).
+For å opprette siden, begynn å skrive i boksen under (se [$1 hjelpesiden] for mer informasjon).
 Om du havnet her ved en feil, trykk '''tilbake''' i nettleseren.",
 'anontalkpagetext' => "----
 ''Dette er en diskusjonsside for en uregistrert bruker som ikke har opprettet konto eller ikke er logget inn.
@@ -1277,8 +1274,6 @@ Du kan se denne diffen; det kan finnes detaljer i [{{fullurl:{{#Special:Log}}/su
 'revdelete-show-file-submit' => 'Ja',
 'revdelete-selected' => "'''{{PLURAL:$2|Valgt revisjon|Valgte revisjoner}} av [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Valgt loggoppføring|Valgte loggoppføringer}}:'''",
-'revdelete-text' => "'''Slettede versjoner og oppføringer vil fortsatt vises i sidehistorikken og loggene, men deler av innholdet vil ikke lenger bli offentliggjort.'''
-Andre administratorer på {{SITENAME}} vil fortsatt kunne se det skjulte innholdet, og kan gjenopprette det, med mindre videre begrensninger blir gitt av sideoperatørene.",
 'revdelete-confirm' => 'Bekreft at du ønsker å gjøre dette, at du forstår konsekvensene, og at du gjør det i samsvar med [[{{MediaWiki:Policy-url}}|retningslinjene]].',
 'revdelete-suppress-text' => "Skjuling bør '''kun''' brukes i følgende tilfeller:
 * Mulig injurierende utsagn
@@ -1739,7 +1734,7 @@ Informasjonen vil være offentlig.',
 'recentchanges-legend-heading' => "'''Tegnforklaring:'''",
 'recentchanges-legend-newpage' => '(se også [[Special:NewPages|liste av nye sider]])',
 'recentchanges-legend-plusminus' => '«(±123)»',
-'rcnotefrom' => "Nedenfor er endringene siden '''$2''' (opp til '''$1''' vises).",
+'rcnotefrom' => 'Nedenfor er endringene gjort siden <strong>$2</strong> (frem til <strong>$1</strong> vises).',
 'rclistfrom' => 'Vis nye endringer med start fra $1',
 'rcshowhideminor' => '$1 mindre endringer',
 'rcshowhidebots' => '$1 roboter',
@@ -2236,7 +2231,7 @@ Hver rad inneholder lenker til første og andre omdirigering, samt målet for de
 'deadendpagestext' => 'Følgende sider lenker ikke til andre sider på {{SITENAME}}.',
 'protectedpages' => 'Låste sider',
 'protectedpages-indef' => 'Kun beskyttelser på ubestemt tid',
-'protectedpages-summary' => 'Denne siden viser en liste av eksisterende sider som for tiden er beskyttet. For å se en liste av sider som er beskyttet mot opprettelse, se [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Denne siden viser en liste av eksisterende sider som for tiden er beskyttet. For å se en liste av sider som er beskyttet mot opprettelse, se [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Kun dypbeskyttelse',
 'protectedpages-noredirect' => 'Skjul omdirigeringer',
 'protectedpagesempty' => 'Ingen sider er for øyeblikket låst med disse paramterne.',
@@ -2249,7 +2244,7 @@ Hver rad inneholder lenker til første og andre omdirigering, samt målet for de
 'protectedpages-unknown-timestamp' => 'Ukjent',
 'protectedpages-unknown-performer' => 'Ukjent bruker',
 'protectedtitles' => 'Beskyttede titler',
-'protectedtitles-summary' => 'Denne siden viser en liste av eksisterende sider som for tiden er beskyttet mot opprettelse. For å se en liste av sider som er beskyttet, se [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Denne siden viser en liste av eksisterende sider som for tiden er beskyttet mot opprettelse. For å se en liste av sider som er beskyttet, se [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Ingen titler beskyttes med disse parameterne for øyeblikket.',
 'listusers' => 'Brukerliste',
 'listusers-editsonly' => 'Vis bare brukere med redigeringer',
index fb80ce9..361a5e1 100644 (file)
@@ -446,7 +446,6 @@ $1",
 'disclaimers' => 'Impressum',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Bearbeidenshülp',
-'helppage' => 'Help:Hülp',
 'mainpage' => 'Hööftsiet',
 'mainpage-description' => 'Hööftsiet',
 'policy-url' => 'Project:Richtlienen',
@@ -772,7 +771,7 @@ Villicht is he verschaven oder rutnahmen worrn, wieldes du de Sied ankeken hest.
 Dat Passwoord för dit Brukerkonto kann na dat Anmellen ünner ''[[Special:ChangePassword|Passwoord ännern]]'' ännert warrn.",
 'newarticle' => '(Nee)',
 'newarticletext' => "Du büst op en Sied kamen, de dat noch nich gifft.
-Wenn du disse Sied opstellen wullt, schriev dien Text in dat Finster ünnen  (kiek op de [[{{MediaWiki:Helppage}}|Hülpsied]] för mehr Infos).
+Wenn du disse Sied opstellen wullt, schriev dien Text in dat Finster ünnen  (kiek op de [$1 Hülpsied] för mehr Infos).
 Wenn du de Sied gornich ännern wullst, denn klick op den '''Trügg'''-Knoop in dien Webkieker.",
 'anontalkpagetext' => "---- ''Dit is de Diskuschoonssiet vun en nich anmellt Bruker, de noch keen Brukerkonto anleggt hett oder dat jüst nich bruukt.
 Wi mööt hier de numerische IP-Adress verwennen, üm den Bruker to identifizeern.
@@ -961,8 +960,6 @@ As Administrater kannst du [$1 mit dissen Lenk] den Ünnerscheed ankieken.',
 'revdelete-show-file-submit' => 'Jo',
 'revdelete-selected' => "'''{{PLURAL:$2|Wählte Version|Wählte Versionen}} vun [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Wählt Logbook-Indrag|Wählte Logbook-Indrääg}}:'''",
-'revdelete-text' => "'''Wegsmetene Versionen un Akschonen staht noch jümmer in de Versionsgeschicht un Logböker, sünd aver nich mehr apen intosehn.'''
-{{SITENAME}}-Administraters köönt de Sieden noch jümmer sehn un ok wedderhalen, solang dat nich extra fastleggt is, dat ok Administraters dat nich mehr mehr dröfft.",
 'revdelete-suppress-text' => "Ünnerdrücken schull '''blot''' bi disse Fäll bruukt warrn:
 * Nich passliche persönliche Information
 *: ''Adressen, Telefonnummern, Sozialversekerungsnummern etc.''",
index 2b6052f..818e46c 100644 (file)
@@ -360,7 +360,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Stuur mien kopieën van berichten an aandere gebrukers',
 'tog-diffonly' => 'Laot de inhoud van ziejen niet onder de an-egeven wiezigingen zien.',
 'tog-showhiddencats' => 'Laot verbörgen kategorieën zien',
-'tog-noconvertlink' => 'Ziednaamkonversie uutschakelen',
 'tog-norollbackdiff' => 'Wiezigingen vortlaoten nao t weerummedreien',
 'tog-useeditwarning' => "Waorschuw mien a'k n bewörken zied aof wil sluten die nog niet op-esleugen is",
 'tog-prefershttps' => "Altied n beveiligde verbiending gebruken a'j an-emeld bin",
@@ -572,7 +571,6 @@ $1",
 'disclaimers' => 'Veurbehold',
 'disclaimerpage' => 'Project:Veurbehoud',
 'edithelp' => 'Hulpe mit bewarken',
-'helppage' => 'Help:Inhoud',
 'mainpage' => 'Veurblad',
 'mainpage-description' => 'Veurblad',
 'policy-url' => 'Project:Beleid',
@@ -765,8 +763,6 @@ Vergeet niet joew [[Special:Preferences|veurkeuren veur {{SITENAME}}]] an te pas
 'gotaccountlink' => 'Anmelden',
 'userlogin-resetlink' => "Bi'j de anmeldgegevens kwiet?",
 'userlogin-resetpassword-link' => 'Joew wachtwoord vergeten?',
-'helplogin-url' => 'Help:Anmelden',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hulpe bie t anmelden]]',
 'userlogin-loggedin' => 'Je bin al an-emeld as {{GENDER:$1|$1}}.
 Gebruuk t onderstaonde formulier um an te melden as n aandere gebruker.',
 'userlogin-createanother' => 'n Aandere gebrukerskonto anmaken',
@@ -1025,7 +1021,7 @@ t Kan ween dat t herneumd is of dat t vortedaon is to jie t an t bekieken waren.
 'accmailtext' => "Der is n willekeurig wachtwoord veur [[User talk:$1|$1]] verstuurd naor $2. t Kan ewiezigd wörden op de zied ''[[Special:ChangePassword|wachtwoord wiezigen]]'' naoda'j an-emeld bin.",
 'newarticle' => '(Niej)',
 'newarticletext' => "Disse zied besteet nog niet.
-In t veld hieronder ku'j wat schrieven um disse zied an te maken (meer informasie vie'j op de [[{{MediaWiki:Helppage}}|hulpzied]]).
+In t veld hieronder ku'j wat schrieven um disse zied an te maken (meer informasie vie'j op de [$1 hulpzied]).
 A'j hier per ongelok terechtekeumen bin gebruuk dan de knoppe '''veurige''' um weerumme te gaon.",
 'anontalkpagetext' => "---- ''Disse overlegzied heurt bie n anonieme gebruker die nog gien gebrukersnaam hef, of t niet gebruukt. We gebruken daorumme t IP-adres um hum of heur te herkennen, mer t kan oek ween dat meerdere personen t zelfde IP-adres gebruken, en da'j hiermee berichten ontvangen die niet veur joe bedoeld bin. A'j dit veurkoemen willen, dan ku'j t best [[Special:UserLogin/signup|n gebrukersnaam anmaken]] of [[Special:UserLogin|anmelden]].''",
 'noarticletext' => 'Der steet noen gien tekste op disse zied.
@@ -1256,8 +1252,6 @@ Je kunnen disse verschillen bekieken. Misschien steet der over in t [{{fullurl:{
 'revdelete-show-file-submit' => 'Ja',
 'revdelete-selected' => "'''{{PLURAL:$2|Ekeuzen bewarking|Ekeuzen bewarkingen}} van '''[[:$1]]''':'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Ekeuzen logboekboekaksie|Ekeuzen logboekaksies}}:'''",
-'revdelete-text' => "'''Vortedaone bewarkingen staon nog altied in de geschiedenisse en in logboeken, mer niet iederene kan de inhoud zo mer bekieken.'''
-Beheerders van {{SITENAME}} kunnen de verbörgen inhoud bekieken en t weerummeplaotsen deur dit scharm te gebruken, behalven as der aandere beparkingen in-esteld bin.",
 'revdelete-confirm' => "Bevestig da'j dit doon wollen, da'j de gevolgen dervan begriepen en da'j t doon in overeenstemming mit t geldende [[{{MediaWiki:Policy-url}}|beleid]].",
 'revdelete-suppress-text' => "Onderdrokken ma'j '''allinnig''' gebruken in de volgende gevallen:
 * Ongepassen persoonlike informasie
index 80f7426..70fa19d 100644 (file)
@@ -92,7 +92,6 @@ $messages = array(
 'tog-ccmeonemails' => 'मैले अरु प्रयोगकर्ताहरुलाई पठाउने इ-मेल को प्रतिलिपि मलाई पठाउने',
 'tog-diffonly' => 'तलका पृष्टहरुको diffहरु सामग्री नदेखाउने',
 'tog-showhiddencats' => 'लुकाइएको प्रकारहरु देखाउने',
-'tog-noconvertlink' => 'सम्बन्ध शीर्षक रुपान्तरण निस्क्रिय पार्ने',
 'tog-norollbackdiff' => 'पूर्वस्थितिमा फर्काएपछि  diff हटाउने',
 'tog-useeditwarning' => 'सम्पादनहरू सङ्ग्रह गरिनसकेको अवस्थामा अर्को पृष्ठमा जान खोज्दा चेतावनी देखाउने',
 'tog-prefershttps' => 'प्रवेश गर्दा जहिले पनि सुरक्षित जडान प्रयोग गर्ने',
@@ -304,7 +303,6 @@ $1',
 'disclaimers' => 'अस्विकारोक्तिहरु',
 'disclaimerpage' => 'Project:सामान्य अस्वीकारोक्ति',
 'edithelp' => 'सम्पादन सहायता',
-'helppage' => 'Help:विषयवस्तुहरू',
 'mainpage' => 'मुख्य पृष्ठ',
 'mainpage-description' => 'मुख्य पृष्ठ',
 'policy-url' => 'Project:निति',
@@ -740,7 +738,7 @@ $2
 यो नयाँ खाताको प्रवेशशब्द  ''[[Special:ChangePassword|change password]]'' मा प्रवेश गरेर परिवर्तन गर्न सकिन्छ ।",
 'newarticle' => '(नयाँ)',
 'newarticletext' => "तपाईँले अहिले सम्म नभएको पृष्ठको लिंङ्क पहिल्याउनु भएको छ।
-यो पृष्ठ निर्माण गर्न तलको कोष्ठमा टाइप गर्नुहोस्  ।(थप जानकारीको लागि [[{{MediaWiki:Helppage}}|help page]] हेर्नुहोस् )।
+यो पृष्ठ निर्माण गर्न तलको कोष्ठमा टाइप गर्नुहोस्  ।(थप जानकारीको लागि [$1 help page] हेर्नुहोस् )।
 यहाँ त्यत्तिकै आइपुग्नु भएको हो भने , ब्राउजरको  '''back''' बटन थिच्नुहोस ।",
 'anontalkpagetext' => "----''यो वार्तालाप पृष्ठ अज्ञात प्रयोगकर्ताको हो जसले अहिलेसम्म खाता बनाएकै छैन, अथवा जसले यस पृष्ठको उपयोग गर्दैन।
 यस कारण हामीले उसलाई उसको आइ पी (IP) ठेगानाले चिन्न सक्छौं। 
index 231a0b7..52eb21e 100644 (file)
@@ -404,9 +404,9 @@ $messages = array(
 'tog-enotifrevealaddr' => 'Mijn e-mailadres weergeven in e-mailberichten',
 'tog-shownumberswatching' => 'Het aantal gebruikers weergeven dat deze pagina volgt',
 'tog-oldsig' => 'Bestaande ondertekening:',
-'tog-fancysig' => 'Interpreteer ondertekening als wikitekst (zonder automatische koppeling)',
+'tog-fancysig' => 'Als wikitekst behandelen (zonder automatische koppeling)',
 'tog-uselivepreview' => '"Live voorvertoning" gebruiken (experimenteel)',
-'tog-forceeditsummary' => 'Een melding geven bij een ontbrekende bewerkingssamenvatting',
+'tog-forceeditsummary' => 'Een melding geven bij een lege bewerkingssamenvatting',
 'tog-watchlisthideown' => 'Eigen bewerkingen op mijn volglijst verbergen',
 'tog-watchlisthidebots' => 'Botbewerkingen op mijn volglijst verbergen',
 'tog-watchlisthideminor' => 'Kleine bewerkingen op mijn volglijst verbergen',
@@ -416,14 +416,13 @@ $messages = array(
 'tog-ccmeonemails' => 'Mij een kopie zenden van e-mails die ik naar andere gebruikers stuur',
 'tog-diffonly' => 'Pagina-inhoud onder wijzigingen niet weergeven',
 'tog-showhiddencats' => 'Verborgen categorieën weergeven',
-'tog-noconvertlink' => 'Paginanaamconversie uitschakelen',
 'tog-norollbackdiff' => 'Wijzigingen weglaten na terugdraaien',
-'tog-useeditwarning' => 'Waarschuwen als u een bewerkte pagina die nog niet is opgeslagen wilt verlaten',
+'tog-useeditwarning' => 'Waarschuwen als u een bewerkte pagina wilt verlaten die nog niet is opgeslagen',
 'tog-prefershttps' => 'Altijd een beveiligde verbinding gebruiken wanneer u bent aangemeld',
 
 'underline-always' => 'Altijd',
 'underline-never' => 'Nooit',
-'underline-default' => 'Zoals gebruikelijk in gebruikte vormgeving of webbrowser',
+'underline-default' => 'Standaard gedrag van vormgeving of webbrowser',
 
 # Font style option in Special:Preferences
 'editfont-style' => 'Lettertypestijl bewerkingsvenster:',
@@ -533,7 +532,7 @@ $messages = array(
 'qbedit' => 'Bewerken',
 'qbpageoptions' => 'Deze pagina',
 'qbmyoptions' => "Mijn pagina's",
-'faq' => 'Veel gestelde vragen',
+'faq' => 'Veelgestelde vragen',
 'faqpage' => 'Project:Veelgestelde vragen',
 
 # Vector skin
@@ -628,7 +627,6 @@ $1',
 'disclaimers' => 'Voorbehoud',
 'disclaimerpage' => 'Project:Algemeen voorbehoud',
 'edithelp' => 'Hulp bij bewerken',
-'helppage' => 'Help:Inhoud',
 'mainpage' => 'Hoofdpagina',
 'mainpage-description' => 'Hoofdpagina',
 'policy-url' => 'Project:Beleid',
@@ -822,7 +820,7 @@ Vergeet niet uw [[Special:Preferences|voorkeuren voor {{SITENAME}}]] aan te pass
 'logout' => 'Afmelden',
 'userlogout' => 'Afmelden',
 'notloggedin' => 'Niet aangemeld',
-'userlogin-noaccount' => 'Hebt u geen account?',
+'userlogin-noaccount' => 'Hebt u geen gebruiker?',
 'userlogin-joinproject' => 'Word lid van {{SITENAME}}',
 'nologin' => 'Nog geen gebruikersnaam? $1.',
 'nologinlink' => 'Registreren',
@@ -831,8 +829,7 @@ Vergeet niet uw [[Special:Preferences|voorkeuren voor {{SITENAME}}]] aan te pass
 'gotaccountlink' => 'Aanmelden',
 'userlogin-resetlink' => 'Bent u uw aanmeldgegevens vergeten?',
 'userlogin-resetpassword-link' => 'Wachtwoord vergeten?',
-'helplogin-url' => 'Help:Aanmelden',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hulp bij aanmelden]]',
+'userlogin-helplink2' => 'Hulp bij aanmelden',
 'userlogin-loggedin' => 'U bent al aangemeld als {{GENDER:$1|$1}}.
 Gebruik het onderstaande formulier om aan te melden als een andere gebruiker.',
 'userlogin-createanother' => 'Nog een gebruiker aanmaken',
@@ -939,6 +936,7 @@ Wacht alstublieft $1 voordat u het opnieuw probeert.',
 'createacct-another-realname-tip' => 'Echte naam is optioneel.
 Als u deze opgeeft, wordt deze naam gebruikt worden om u erkenning te geven voor uw werk.',
 'pt-login' => 'Aanmelden',
+'pt-login-button' => 'Aanmelden',
 'pt-createaccount' => 'Registreren',
 'pt-userlogout' => 'Afmelden',
 
@@ -970,8 +968,11 @@ Mogelijk hebt u uw wachtwoord al gewijzigd of een nieuw tijdelijk wachtwoord aan
 Om het inloggen te voltooien moet u hier een nieuw wachtwoord instellen:',
 'resetpass-temp-password' => 'Tijdelijk wachtwoord:',
 'resetpass-abort-generic' => 'De wachtwoordwijziging is afgebroken door een uitbreiding.',
-'resetpass-expired' => 'Uw wachtwoord is verlopen. Stel een nieuw wachtwoord om in te loggen.',
-'resetpass-expired-soft' => 'Uw wachtwoord is verlopen, en moet opnieuw worden ingesteld. Kies een nieuw wachtwoord nu, of klik op Annuleren als u het later opnieuw wilt.',
+'resetpass-expired' => 'Uw wachtwoord is verlopen. Stel een nieuw wachtwoord om aan te melden.',
+'resetpass-expired-soft' => 'Uw wachtwoord is verlopen en moet opnieuw worden ingesteld. Kies nu een nieuw wachtwoord of klik op "{{int:resetpass-submit-cancel}}" om dit later te doen.',
+'resetpass-validity-soft' => 'Uw wachtwoord is niet geldig: $1
+
+Kies nu een nieuw wachtwoord of klik "{{int:resetpass-submit-cancel}}" om het later opnieuw in te stellen.',
 
 # Special:PasswordReset
 'passwordreset' => 'Wachtwoord opnieuw instellen',
@@ -1113,9 +1114,9 @@ Wellicht is het verplaatst of verwijderd terwijl u de pagina aan het bekijken wa
 'accmailtitle' => 'Wachtwoord verzonden.',
 'accmailtext' => 'Een willekeurig gegenereerd wachtwoord voor [[User talk:$1|$1]] is verzonden naar $2. Het kan worden gewijzigd op de pagina "[[Special:ChangePassword|wachtwoord wijzigen]]" na het aanmelden.',
 'newarticle' => '(Nieuw)',
-'newarticletext' => "Deze pagina bestaat niet.
-Typ in het onderstaande veld om de pagina aan te maken (meer informatie staat op de [[{{MediaWiki:Helppage}}|hulppagina]]).
-Gebruik de knop '''vorige''' in uw browser als u hier per ongeluk terecht bent gekomen.",
+'newarticletext' => 'Deze pagina bestaat niet.
+Typ in het onderstaande veld om de pagina aan te maken (meer informatie staat op de [$1 hulppagina]).
+Gebruik de knop <strong>Terug</strong> in uw browser als u hier per ongeluk terecht bent gekomen.',
 'anontalkpagetext' => "----''Deze overlegpagina hoort bij een anonieme gebruiker die geen gebruikersnaam heeft of deze niet gebruikt.
 Daarom wordt het IP-adres ter identificatie gebruikt.
 Het is mogelijk dat meerdere personen hetzelfde IP-adres gebruiken.
@@ -1368,8 +1369,10 @@ U kunt deze verschillen bekijken. Er kunnen details te vinden zijn in het [{{ful
 'revdelete-show-file-submit' => 'Ja',
 'revdelete-selected' => "'''Geselecteerde {{PLURAL:$2|bewerking|bewerkingen}} van [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Geselecteerde logboekhandeling|Geselecteerde logboekhandelingen}}:'''",
-'revdelete-text' => "'''Verwijderde bewerkingen zijn zichtbaar in de geschiedenis en logboeken, maar delen van de inhoud zijn niet langer publiek toegankelijk.'''
-Andere beheerders van {{SITENAME}} kunnen de verborgen inhoud benaderen en de verwijdering ongedaan maken met behulp van dit formulier, tenzij er aanvullende beperkingen gelden die zijn ingesteld door de systeembeheerder.",
+'revdelete-text-text' => 'Verwijderde versies zijn nog zichtbaar in de geschiedenis, maar delen van de inhoud zijn niet openbaar.',
+'revdelete-text-file' => 'Verwijderde versies zijn nog zichtbaar in de bestandsgeschiedenis, maar delen van de inhoud zijn niet openbaar.',
+'logdelete-text' => 'Verwijderde logboekregels zijn nog zichtbaar in de logboeken, maar delen van de inhoud zijn niet openbaar.',
+'revdelete-text-others' => 'Andere beheerders van {{SITENAME}} kunnen de verborgen inhoud nog steeds inzien en weer zichtbaar maken via deze interface, tenzij er aanvullende beperkingen zijn ingesteld.',
 'revdelete-confirm' => 'Bevestig dat u dit wilde doen, dat u de consequenties begrijpt en dat u dit doet in overeenstemming met het geldende [[{{MediaWiki:Policy-url}}|beleid]].',
 'revdelete-suppress-text' => "Gebruik versies verbergen '''alleen''' in de volgende gevallen:
 * Mogelijk smadelijke informatie;
@@ -1507,14 +1510,14 @@ Probeer een andere zoekopdracht.',
 'search-file-match' => '(komt overeen met de inhoud van het bestand)',
 'search-suggest' => 'Bedoelde u: $1',
 'search-interwiki-caption' => 'Zusterprojecten',
-'search-interwiki-default' => '$1 resultaten:',
+'search-interwiki-default' => 'Resultaten van $1:',
 'search-interwiki-more' => '(meer)',
 'search-relatedarticle' => 'Gerelateerd',
 'searcheverything-enable' => 'In alle naamruimten zoeken',
 'searchrelated' => 'gerelateerd',
 'searchall' => 'alle',
 'showingresults' => "Hieronder {{PLURAL:$1|staat '''1''' resultaat|staan '''$1''' resultaten}} vanaf #'''$2'''.",
-'showingresultsinrange' => 'Hieronder {{PLURAL:$1|wordt|worden}} maximaal {{PLURAL:$1|<strong>1</strong> resultaat|<strong>$1 </strong>resultaten}} getoond in het bereik #<strong>$2</strong> tot #<strong>$3</strong>.',
+'showingresultsinrange' => 'Hieronder {{PLURAL:$1|wordt|worden}} maximaal {{PLURAL:$1|<strong>1</strong> resultaat|<strong>$1 </strong>resultaten}} weergegeven in het bereik #<strong>$2</strong> tot #<strong>$3</strong>.',
 'showingresultsnum' => "Hieronder {{PLURAL:$3|staat '''1''' resultaat|staan '''$3''' resultaten}} vanaf #'''$2'''.",
 'showingresultsheader' => "{{PLURAL:$5|Resultaat '''$1''' van '''$3'''|Resultaten '''$1 - $2''' van '''$3'''}} voor '''$4'''",
 'search-nonefound' => 'Er zijn geen resultaten voor uw zoekopdracht.',
@@ -1838,7 +1841,7 @@ Als u deze opgeeft, kan deze naam gebruikt worden om u erkenning te geven voor u
 'recentchanges-legend-heading' => "'''Legenda:'''",
 'recentchanges-legend-newpage' => "Zie ook de [[Special:NewPages|Lijst met nieuwe pagina's]].",
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "Wijzigingen sinds '''$2''' (met een maximum van '''$1''' wijzigingen).",
+'rcnotefrom' => 'Wijzigingen sinds <strong>$3 om $4</strong> (maximaal <strong>$1</strong> {{PLURAL:$1|wijziging|wijzigingen}}).',
 'rclistfrom' => 'Wijzigingen bekijken vanaf $1',
 'rcshowhideminor' => 'Kleine wijzigingen $1',
 'rcshowhideminor-show' => 'weergeven',
@@ -1994,6 +1997,7 @@ Vraag iemand die onderdrukte bestandsgegevens kan bekijken om de situatie opnieu
 'php-uploaddisabledtext' => 'Het uploaden van bestanden is uitgeschakeld in PHP.
 Controleer de instelling "file_uploads".',
 'uploadscripted' => 'Dit bestand bevat HTML- of scriptcode die foutief door uw browser kan worden weergegeven.',
+'uploadscriptednamespace' => 'Dit SVG-bestand bevat een ongeldige naamruimte "$1".',
 'uploadinvalidxml' => 'De XML in het geüploade bestand kon niet worden geparst.',
 'uploadvirus' => 'Het bestand bevat een virus! Details: $1',
 'uploadjava' => 'Het bestand is een ZIP-bestand dat een Java .class-bestand bevat.
@@ -2257,6 +2261,11 @@ Invoer: inhoudstype/subtype, bijvoorbeeld <code>image/jpeg</code>.',
 # List redirects
 'listredirects' => 'Doorverwijzingenlijst',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Lijst met bestanden met duplicaten',
+'listduplicatedfiles-summary' => 'Dit is een lijst met bestanden waarvan de laatste versie een duplicaat is van de meest recente versie van een ander bestand. Er wordt alleen gerapporteerd over lokale bestanden.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] heeft [[$3|{{PLURAL:$2|één duplicaat|$2 duplicaten}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Ongebruikte sjablonen',
 'unusedtemplatestext' => 'Deze pagina geeft alle pagina\'s weer in de naamruimte {{ns:template}} die op geen enkele pagina gebruikt worden.
@@ -2373,20 +2382,20 @@ De pagina's zijn ook niet als sjabloon opgenomen.",
 'deadendpagestext' => "De onderstaande pagina's verwijzen niet naar andere pagina's in deze wiki.",
 'protectedpages' => "Beveiligde pagina's",
 'protectedpages-indef' => 'Alleen blokkades zonder vervaldatum',
-'protectedpages-summary' => "Deze pagina geeft de pagina's die momenteel worden beschermd. Voor een lijst van titels die zijn beschermd tegen aanmaken zie: [[{{#special:ProtectedTitles}}]].",
+'protectedpages-summary' => "Deze pagina bevat een lijst met beveiligde pagina's. Zie [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]] voor een lijst van pagina's die niet aangemaakt mogen worden.",
 'protectedpages-cascade' => 'Alleen beveiligingen met de cascade-optie',
 'protectedpages-noredirect' => 'Doorverwijzingen verbergen',
 'protectedpagesempty' => "Er zijn momenteel geen pagina's beveiligd die aan deze voorwaarden voldoen.",
 'protectedpages-timestamp' => 'Tijdstip',
 'protectedpages-page' => 'Pagina',
 'protectedpages-expiry' => 'Verloopt',
-'protectedpages-performer' => 'Beschermd door',
+'protectedpages-performer' => 'Beveiligd door',
 'protectedpages-params' => 'Beveiligingsopties',
 'protectedpages-reason' => 'Reden',
 'protectedpages-unknown-timestamp' => 'Onbekend',
 'protectedpages-unknown-performer' => 'Onbekende gebruiker',
 'protectedtitles' => 'Beveiligde paginanamen',
-'protectedtitles-summary' => "Deze pagina bevat de titels die momenteel niet mogen worden aangemaakt. Voor de lijst met beveiligde pagina's zie: [[{{#special:ProtectedPages}}]].",
+'protectedtitles-summary' => "Deze pagina bevat een lijst met pagina's die niet mogen worden aangemaakt. Zie [[{{#special:ProtectedPages}}|{{int:protectedpages}}]] voor de lijst met beveiligde pagina's.",
 'protectedtitlesempty' => 'Er zijn geen paginanamen beveiligd die aan deze voorwaarden voldoen.',
 'listusers' => 'Gebruikerslijst',
 'listusers-editsonly' => 'Alleen gebruikers met bewerkingen weergeven',
@@ -2496,7 +2505,7 @@ 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' => 'Leganda:
+'listgrouprights-key' => 'Legenda:
 * <span class="listgrouprights-granted">Toegewezen recht</span>
 * <span class="listgrouprights-revoked">Ingetrokken recht</span>',
 'listgrouprights-group' => 'Groep',
@@ -2665,7 +2674,7 @@ Het verwijderen van dit soort pagina's is met rechten beperkt om het per ongeluk
 'delete-warning-toobig' => 'Deze pagina heeft een lange bewerkingsgeschiedenis, meer dan $1 {{PLURAL:$1|versie|versies}}.
 Het verwijderen van deze pagina kan de werking van de database van {{SITENAME}} verstoren.
 Wees voorzichtig.',
-'deleting-backlinks-warning' => "'''Waarschuwing:''' andere pagina's gebruiken of verwijzen naar de pagina die u wilt verwijderen.",
+'deleting-backlinks-warning' => "'''Waarschuwing:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|andere pagina's]] gebruiken of verwijzen naar de pagina die u wilt verwijderen.",
 
 # Rollback
 'rollback' => 'Wijzigingen ongedaan maken',
@@ -2720,7 +2729,7 @@ Hier zijn de huidige instellingen voor de pagina '''$1''':",
 'protect-locked-access' => "U hebt geen rechten om het beveiligingsniveau te wijzigen.
 Dit zijn de huidige instellingen voor de pagina '''$1''':",
 'protect-cascadeon' => "Deze pagina is beveiligd, omdat die in de volgende {{PLURAL:$1|pagina|pagina's}} is opgenomen, die beveiligd {{PLURAL:$1|is|zijn}} met de cascade-optie.
-Het beveiligingsniveau wijzigen heeft geen enkel effect.",
+Wijzigingen aan beveiligingsniveau hebben geen invloed op de cascadebeveiliging.",
 'protect-default' => 'Toestaan voor alle gebruikers',
 'protect-fallback' => 'Alleen gebruikers met het recht "$1" toestaan',
 'protect-level-autoconfirmed' => 'Alleen automatisch bevestigde gebruikers toestaan',
@@ -2845,8 +2854,10 @@ De laatste regel uit het blokkeerlogboek wordt hieronder ter referentie weergege
 'sp-contributions-blocked-notice-anon' => 'Dit IP-adres is geblokkeerd.
 De laatste regel uit het blokkeerlogboek wordt hieronder ter referentie weergegeven:',
 'sp-contributions-search' => 'Zoeken naar bijdragen',
+'sp-contributions-suppresslog' => 'onderdrukte gebruikersbijdragen',
 'sp-contributions-username' => 'IP-adres of gebruikersnaam:',
 'sp-contributions-toponly' => 'Alleen nieuwste versies weergeven',
+'sp-contributions-newonly' => "Alleen nieuwe pagina's weergeven",
 'sp-contributions-submit' => 'Bekijken',
 
 # What links here
@@ -3163,7 +3174,7 @@ $2',
 'thumbnail_image-type' => 'Dit bestandstype wordt niet ondersteund',
 'thumbnail_gd-library' => 'De instellingen voor de GD-bibliotheek zijn incompleet. De functie $1 ontbreekt',
 'thumbnail_image-missing' => 'Het bestand lijkt niet aanwezig te zijn: $1',
-'thumbnail_image-failure-limit' => 'Er zijn te veel recente mislukte pogingen ($1 of meer) om deze miniatuurafbeelding te genereren. Probeer het later nog eens.',
+'thumbnail_image-failure-limit' => 'Het maken van een miniatuurafbeelding is te vaak mislukt ($1 keer of vaker). Probeer het later nog eens.',
 
 # Special:Import
 'import' => "Pagina's importeren",
@@ -4130,7 +4141,7 @@ U kunt ook [[Special:EditWatchlist|het standaard bewerkingsscherm gebruiken]].',
 'version-parser-function-hooks' => 'Parserfunctiehooks',
 'version-hook-name' => 'Hooknaam',
 'version-hook-subscribedby' => 'Geabonneerd door',
-'version-version' => '(Versie $1)',
+'version-version' => '($1)',
 'version-license' => 'Licentie voor MediaWiki',
 'version-ext-license' => 'Licentie',
 'version-ext-colheader-name' => 'Uitbreiding',
index 0371b7b..9506360 100644 (file)
@@ -356,7 +356,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Send meg kopi av e-postane eg sender til andre brukarar',
 'tog-diffonly' => 'Ikkje vis sideinnhaldet under skilnadene mellom versjonane',
 'tog-showhiddencats' => 'Vis gøymde kategoriar',
-'tog-noconvertlink' => 'Slå av konvertering av sidetitlar',
 'tog-norollbackdiff' => 'Ikkje vis skilnad etter attenderulling',
 'tog-useeditwarning' => 'Gje ei åtvaring om eg går ut av ei redigeringsside og ikkje alle endringar er lagra',
 'tog-prefershttps' => 'Alltid bruk ei trygg kopling når du er innlogga',
@@ -568,7 +567,6 @@ $1',
 'disclaimers' => 'Atterhald',
 'disclaimerpage' => 'Project:Atterhald',
 'edithelp' => 'Endringshjelp',
-'helppage' => 'Help:Innhald',
 'mainpage' => 'Hovudside',
 'mainpage-description' => 'Hovudside',
 'policy-url' => 'Project:Retningsliner',
@@ -758,8 +756,6 @@ Gløym ikkje å endra [[Special:Preferences|innstillingane dine for {{SITENAME}}
 'gotaccountlink' => 'Logg inn',
 'userlogin-resetlink' => 'Har du gløymd påloggingsopplysingane dine?',
 'userlogin-resetpassword-link' => 'Gløymt 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:',
@@ -982,7 +978,7 @@ Han kan ha vorten flytta eller sletta medan du såg på sida.',
 Passordet for den nye kontoen kan verta endra på ''[[Special:ChangePassword|endra passord]]''-sida etter innlogging.",
 'newarticle' => '(Ny)',
 'newarticletext' => "Du har følgt ei lenkje til ei side som ikkje finst enno.
-For å opprette sida, kan du skrive i boksen under (sjå [[{{MediaWiki:Helppage}}|hjelpesida]] for meir informasjon).
+For å opprette sida, kan du skrive i boksen under (sjå [$1 hjelpesida] for meir informasjon).
 Hamna du her ved ein feil, klikk på '''attende'''-knappen i nettlesaren din.",
 'anontalkpagetext' => "----''Dette er ei diskusjonsside for ein anonym brukar som ikkje har oppretta konto eller ikkje har logga inn.
 Vi er difor nøydde til å bruke den numeriske IP-adressa til å identifisere brukaren. Same IP-adresse kan vere knytt til fleire brukarar. Om du er ein anonym brukar og meiner at du har fått irrelevante kommentarar på ei slik side, [[Special:UserLogin/signup|opprett ein brukarkonto]] eller [[Special:UserLogin|logg inn]] slik at vi unngår framtidige forvekslingar med andre anonyme brukarar.''",
@@ -1209,8 +1205,6 @@ Du kan sjå skilnaden; detaljar finst i [{{fullurl:{{#Special:Log}}/suppcess|pag
 'revdelete-show-file-submit' => 'Ja',
 'revdelete-selected' => "'''{{PLURAL:$2|Vald versjon|Valde versjonar}} av [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Vald loggoppføring|Valde loggoppføringar}}:'''",
-'revdelete-text' => "Sletta versjonar og oppføringar vert framleis synlege i sidehistorikken og loggane, men delar av innhaldet deira vert ikkje lenger offentleggjort.'''
-Andre administratorar på {{SITENAME}} kan framleis sjå det gøymde innhaldet og attopprette det, med mindre fleire avgrensingar vert lagde inn av sideoperatørane.",
 'revdelete-confirm' => 'Stadfest at du ynskjer å gjera dette, at du skjønar konsekvensane, og at du gjer det i samsvar med [[{{MediaWiki:Policy-url}}|retningslinene]].',
 'revdelete-suppress-text' => "Løyning av sideversjonar bør '''berre''' nyttast i desse tilfella:
 * Mogeleg ærekrenkjande informasjon
@@ -1304,6 +1298,7 @@ Pass på at den nye sida også har innhald frå den innfletta sida.',
 'showhideselectedversions' => 'Vis/løyn valde versjonar',
 'editundo' => 'angre',
 'diff-empty' => '(Ingen skilnad)',
+'diff-multi-sameuser' => '({{PLURAL:$1|Éin mellomversjon|$1 mellomversjonar}} av den same brukaren 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 {{PLURAL:$2|funnen|funne}}.
 
@@ -2388,6 +2383,7 @@ Attendemelding og hjelp:
 'delete-edit-reasonlist' => 'Endre grunnar til sletting',
 'delete-toobig' => 'Denne sida har ein stor endringsshistorikk, med over {{PLURAL:$1|$1&nbsp;endring|$1&nbsp;endringar}}. Sletting av slike sider er avgrensa for å unngå utilsikta forstyrring av {{SITENAME}}.',
 'delete-warning-toobig' => 'Denne sida har ein lang endringshistorikk, med meir enn {{PLURAL:$1|$1&nbsp;endring|$1&nbsp;endringar}}. Dersom du slettar henne kan det forstyrre handlingar i databasen til {{SITENAME}}, ver varsam.',
+'deleting-backlinks-warning' => "'''Åtvaring''': Andre sider lenkjer til eller inkluderer sida du er i ferd med å sletta.",
 
 # Rollback
 'rollback' => 'Rull attende endringar',
index fb5c7be..3554b2e 100644 (file)
@@ -231,7 +231,6 @@ $messages = array(
 'disclaimers' => 'Hlapa-matsogo',
 'disclaimerpage' => 'Project:Hlapa-Matsogo',
 'edithelp' => 'Thušo ya go fetola',
-'helppage' => 'Help:Mateng',
 'mainpage' => 'Letlakala la Pele',
 'mainpage-description' => 'Letlakala la Pele',
 'policy-url' => 'Project:Melao',
@@ -438,7 +437,7 @@ Se, se ka hlolwa ke ge letlakala le phumulwa goba la hudušwa ge wena o sa le le
 'newarticle' => '(mpsha)',
 'newarticletext' => "O latetše hlomaganyo go letlakala leo le sego gona ka se sebaka.
 Go tlhola letlakala, thoma go ngwalo lepokising le letelago
-(lebelela [[{{MediaWiki:Helppage}}|letlakala la thušo]] go hwetša šedi).
+(lebelela [$1 letlakala la thušo] go hwetša šedi).
 Ga eba o le fa ka phošo, o ka boela morago ka go šumiša konopo ya '''back''' go ''browser'' ya gago.",
 'noarticletext' => 'Ga gona ditlhaka letlakaleng le, oka [[Special:Search/{{PAGENAME}}|fetleka leina la letlakala]] matlakaleng a mangwe, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} fetleka "logs"], goba [{{fullurl:{{FULLPAGENAME}}|action=edit}} wa fetola letlakala le]</span>.',
 'noarticletext-nopermission' => 'Ga gona ditlhaka letlakaleng le, 
index 9453467..32bfbc2 100644 (file)
@@ -292,8 +292,8 @@ $linkTrail = "/^([a-zàâçéèêîôû]+)(.*)$/sDu";
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Soslinhar los ligams :',
-'tog-hideminor' => 'Amagar los darrièrs cambiaments menors',
-'tog-hidepatrolled' => 'Amagar las modificacions susvelhadas dels darrièrs cambiaments',
+'tog-hideminor' => 'Amagar los cambiaments menors dins los darrièrs cambiaments',
+'tog-hidepatrolled' => 'Amagar las modificacions susvelhadas dins los darrièrs cambiaments',
 'tog-newpageshidepatrolled' => 'Amagar las paginas susvelhadas de la lista de las paginas novèlas',
 'tog-extendwatchlist' => 'Espandir la lista de seguiment per afichar totas las modificacions e non pas solament las mai recentas',
 'tog-usenewrc' => 'Agropar los cambiaments per pagina dins los darrièrs cambiaments e la lista de seguiment',
@@ -327,7 +327,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Me mandar una còpia dels corrièrs electronics que mandi als autres utilizaires',
 'tog-diffonly' => 'Far pas veire lo contengut de las paginas jos las difs',
 'tog-showhiddencats' => 'Afichar las categorias amagadas',
-'tog-noconvertlink' => 'Desactivar la conversion dels títols',
 'tog-norollbackdiff' => 'Ometre lo diff aprèp l’utilizacion d’un revert',
 'tog-useeditwarning' => 'M’avisar quand quiti una pagina de modificacion sens publicar los cambiaments',
 'tog-prefershttps' => 'Utilizar totjorn una connexion securizada en essent connectat',
@@ -539,7 +538,6 @@ $1",
 'disclaimers' => 'Avertiments',
 'disclaimerpage' => 'Project:Avertiments generals',
 'edithelp' => 'Ajuda',
-'helppage' => 'Help:Acuèlh',
 'mainpage' => 'Acuèlh',
 'mainpage-description' => 'Acuèlh',
 'policy-url' => 'Project:Règlas',
@@ -618,9 +616,9 @@ Una lista de las paginas especialas pòt èsser trobada sus [[Special:SpecialPag
 'databaseerror-query' => 'Requèsta : $1',
 'databaseerror-function' => 'Foncion : $1',
 'databaseerror-error' => 'Error : $1',
-'laggedslavemode' => 'Atencion : Aquesta pagina pòt conténer pas totes los darrièrs cambiaments efectuats.',
+'laggedslavemode' => '<strong>Atencion :</strong> Aquesta pagina pòt conténer pas totes los darrièrs cambiaments efectuats.',
 'readonly' => 'Mesas a jorn blocadas sus la banca de donadas',
-'enterlockreason' => 'Indicatz la rason del blocatge, e mai una estimacion de sa durada',
+'enterlockreason' => 'Indicatz la rason del varrolhatge, e mai una estimacion de sa durada',
 'readonlytext' => "Los ajustons e mesas a jorn de la banca de donadas son actualament blocats, probablament per permetre la mantenença de la banca, aprèp aquò, tot dintrarà dins l'òrdre.
 
 L’administrator qu'a varrolhat la banca de donadas a balhat l’explicacion seguenta : $1",
@@ -696,7 +694,7 @@ L'administrator que l'a varrolhat a provesit aqueste motiu : « $3 ».",
 # Login and logout pages
 'logouttext' => "'''Ara, sètz desconnectat.'''
 
-Notatz que d'unas paginas pòdon èsser encara afichadas coma s'eratz encara connectat, fins al moment qu'escafaretz l'amagatal de vòstre navigador.",
+Notatz que d'unas paginas pòdon èsser encara afichadas coma s'eratz encara connectat, fins al moment qu'escafaretz l'escondedor de vòstre navigador.",
 'welcomeuser' => 'Benvenguda, $1&nbsp;!',
 'welcomecreation-msg' => "Vòstre compte d'utilizaire es estat creat.
 Doblidetz pas de modificar [[Special:Preferences|vòstras preferéncias per {{SITENAME}}]].",
@@ -734,8 +732,7 @@ Doblidetz pas de modificar [[Special:Preferences|vòstras preferéncias per {{SI
 'gotaccountlink' => 'Identificatz-vos',
 'userlogin-resetlink' => 'Avètz doblidat vòstres detalhs de connexion ?',
 'userlogin-resetpassword-link' => 'Senhal doblidat ?',
-'helplogin-url' => 'Help:Connexion',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ajuda a la connexion]]',
+'userlogin-helplink2' => 'Ajuda a la connexion',
 'userlogin-loggedin' => 'Sètz ja connectat en tant que {{GENDER:$1|$1}}.
 Utilizatz lo formulari çaijós per vos connectar amb un autre utilizaire.',
 'userlogin-createanother' => 'Crear un autre compte',
@@ -827,6 +824,7 @@ Esperatz $1 abans d’ensajar tornarmai.',
 'createacct-another-realname-tip' => 'Lo nom vertadièr es opcional.
 Se decidissètz de lo provesir, serà utilizat per atribuir a l’utilizaire sos trabalhs.',
 'pt-login' => 'Se connectar',
+'pt-login-button' => 'Se connectar',
 'pt-createaccount' => 'Crear un compte',
 'pt-userlogout' => 'Se desconnectar',
 
@@ -853,8 +851,10 @@ Esperatz $1 abans d’ensajar tornarmai.',
 'resetpass-submit-cancel' => 'Anullar',
 '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-recycled' => 'Reïnicializatz vòstre senhal a quicòm mai que l’actual.',
 'resetpass-temp-password' => 'Senhal temporari :',
 'resetpass-abort-generic' => 'La modificacion del senhal es estada anulada per una extension.',
+'resetpass-expired' => 'Vòstre senhal a expirat. Provesissètz-ne un novèl per vos connectar.',
 
 # Special:PasswordReset
 'passwordreset' => 'Remesa a zèro del senhal',
@@ -896,6 +896,8 @@ Senhal temporari: $2',
 'changeemail-password' => 'Vòstre senhal sus {{SITENAME}} :',
 'changeemail-submit' => "Cambiar l'adreça electronica:",
 'changeemail-cancel' => 'Anullar',
+'changeemail-throttled' => 'Avètz fach tròp de temptativas de connexion.
+Esperatz $1 abans d’ensajar tornarmai.',
 
 # Special:ResetTokens
 'resettokens' => 'Reïnicializar los getons',
@@ -939,7 +941,7 @@ Lo vos caldriá far se las avètz partejats accidentalament amb qualqu'un o se v
 'preview' => 'Previsualizar',
 'showpreview' => 'Previsualizacion',
 'showlivepreview' => 'Apercebut rapid',
-'showdiff' => 'Cambiaments en cors',
+'showdiff' => 'Veire los cambiaments',
 'anoneditwarning' => "'''Atencion :''' sètz pas identificat(ada).
 Vòstra adreça IP serà enregistrada dins l’istoric d'aquesta pagina.",
 'anonpreviewwarning' => "''Sètz pas identificat. Salvar enregistrarà vòstra adreça IP dins l’istoric de las modificacions de la pagina.''",
@@ -991,7 +993,7 @@ Benlèu qu'es estada desplaçada o suprimida dempuèi qu'avètz legida aquesta p
 Lo senhal per aqueste compte novèl pòt èsser cambiat sus la pagina ''[[Special:ChangePassword|Cambiament de senhal]]'' aprèp s'èsser connectat.",
 'newarticle' => '(Novèl)',
 'newarticletext' => "Avètz seguit un ligam cap a una pagina qu’existís pas encara o qu'es estada [{{fullurl:Special:Log|type=delete&page={{FULLPAGENAMEE}}}} escafada].
-Per crear aquesta pagina, picatz vòstre tèxte dins la bóstia çaijós (podètz consultar [[{{MediaWiki:Helppage}}|la pagina d’ajuda]] per mai d’entresenhas).
+Per crear aquesta pagina, picatz vòstre tèxte dins la bóstia çaijós (podètz consultar [$1 la pagina d’ajuda] per mai d’entresenhas).
 Se sètz arribat(ada) aicí per error, clicatz sul boton '''retorn''' de vòstre navigador.",
 'anontalkpagetext' => "---- ''Sètz sus la pagina de discussion d'un utilizaire anonim qu'a pas encara creat un compte o que n'utiliza pas.
 Per aquesta rason, devèm utilizar son adreça IP per l'identificar. Una adreça d'aqueste tipe pòt èsser partejada entre mantun utilizaire. Se sètz un utilizaire anonim e se constatatz que de comentaris que vos concernisson pas vos son estats adreçats, podètz [[Special:UserLogin/signup|crear un compte]] o [[Special:UserLogin|vos connectar]] per evitar tota confusion venenta amb d’autres contributors anonims.''",
@@ -1106,6 +1108,7 @@ Existís ja.',
 'editwarning-warning' => "Quitar aquesta pagina vos farà pèrdre totas las modificacions qu'avètz fachas.
 Se sètz connectat, podètz desactivar aqueste avertiment dins la seccion « {{int:prefs-editing}} » de vòstras preferéncias.",
 'editpage-notsupportedcontentformat-title' => 'Format de contengut pas pres en carga',
+'editpage-notsupportedcontentformat-text' => 'Lo format de contengut $1 es pas pres en carga pel modèl de contengut $2 .',
 
 # Content models
 'content-model-wikitext' => 'wikitèxte',
@@ -1138,6 +1141,7 @@ D'unas inclusions seràn pas efectuadas.",
 '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-nochange' => 'Sembla que la modificacion es ja estada anullada.',
 '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',
 
@@ -1146,7 +1150,9 @@ D'unas inclusions seràn pas efectuadas.",
 'cantcreateaccount-text' => "La creacion de compte dempuèi aquesta adreça IP ('''$1''') es estada blocada per [[User:$3|$3]].
 
 La rason balhada per $3 èra ''$2''.",
-'cantcreateaccount-range-text' => "La creacion de compte dempuèi las adressas IP  '''$1''', que la vòstra n'es ('''$4''') es estada blocada per [[User:$3|$3]].",
+'cantcreateaccount-range-text' => "La creacion de compte dempuèi las adreças IP dins la plaja '''$1''', que compren vòstra agreça IP ('''$4''') son estadas blocadas per [[User:$3|$3]].
+
+Lo motiu provesit per $3 es ''$2''",
 
 # History pages
 'viewpagelogs' => 'Vejatz las operacions per aquesta pagina',
@@ -1181,7 +1187,7 @@ Benlèu es estada escafada o renomenada.
 Ensajatz de [[Special:Search|recercar sul wiki]] per trobar de paginas en rapòrt.',
 
 # Revision deletion
-'rev-deleted-comment' => '(comentari suprimit)',
+'rev-deleted-comment' => '(resumit de comentari suprimit)',
 'rev-deleted-user' => '(nom d’utilizaire suprimit)',
 'rev-deleted-event' => '(entrada suprimida)',
 'rev-deleted-user-contribs' => "[nom d'utilizaire o adreça IP suprimida - modificacion amagada sus las contribucions]",
@@ -1220,8 +1226,6 @@ Podètz veire aquesta diff ; i pòt aver mai de detalhs dins lo [{{fullurl:{{#Sp
 'revdelete-show-file-submit' => 'Òc',
 'revdelete-selected' => "'''{{PLURAL:$2|Version seleccionada|Versions seleccionadas}} de [[:$1]] :'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Eveniment d'istoric seleccionat|Eveniments d'istoric seleccionats}} :'''",
-'revdelete-text' => "'''Las revisions e eveniments suprimits apareisseràn encara dins l’istoric e los jornals de la pagina, mas lor contengut textual serà inaccessible al public.'''
-D’autres administrators sus {{SITENAME}} poiràn totjorn accedir al contengut amagat e lo restablir tornamai a travèrs d'aquesta meteissa interfàcia, a mens qu’una restriccion suplementària siá mesa en plaça pels operators del site.",
 'revdelete-confirm' => "Confirmatz que volètz efectuar aquesta accion, que ne comprenètz las consequéncias, e qu'o fasètz en acòrd amb [[{{MediaWiki:Policy-url}}|las règlas]].",
 'revdelete-suppress-text' => "La supression deu èsser utilizada '''sonque''' dins los cases seguents :
 * Informacions potencialament difamatòrias
@@ -1314,6 +1318,7 @@ Asseguratz-vos qu'aqueste cambiament pòsca conservar la continuitat de l'istori
 'showhideselectedversions' => 'Afichar/amagar las versions seleccionadas',
 'editundo' => 'desfar',
 'diff-empty' => '(Pas cap de diferéncia)',
+'diff-multi-sameuser' => '({{PLURAL:$1|Una revision intermediària pel meteis utilizaire pas afichada|$1 revisions intermediàrias pel meteis utilizaire pas afichadas}})',
 'diff-multi-manyusers' => '({{PLURAL:$1|Una revision intermediària amagada|$1 revisions intermediàrias amagadas}}) per ({{PLURAL:$2|un utilizaire pas afichada|$2 utilizaires pas afichadas}})',
 'difference-missing-revision' => "{{PLURAL:$2|Una revision|$2 revisions}} d'aquesta diferéncia ($1) {{PLURAL:$2|es pas estada trobada|son pas estadas trobadas}}.
 
@@ -1334,7 +1339,7 @@ Podètz trobar de detalhs dins lo [{{fullurl:{{#Special:Log}}/delete|page={{FULL
 'shown-title' => 'Afichar $1 {{PLURAL:$1|resultat|resultats}} per pagina',
 'viewprevnext' => 'Veire ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-exists' => "* Pagina '''[[$1]]'''",
-'searchmenu-new' => "'''Crear la pagina ''[[:$1|$1]]'' sus aqueste wiki !'''",
+'searchmenu-new' => '<strong>Crear la pagina « [[:$1|$1]] » sus aqueste wiki !</strong> {{PLURAL:$2|0=|Vejatz tanben la pagina trobada amb vòstra recèrca.|Vejatz tanben los resultats de vòstra recèrca.}}',
 'searchprofile-articles' => 'Paginas de contengut',
 'searchprofile-project' => "Paginas d'ajuda e del projècte",
 'searchprofile-images' => 'Multimèdia',
@@ -1353,13 +1358,14 @@ Podètz trobar de detalhs dins lo [{{fullurl:{{#Special:Log}}/delete|page={{FULL
 'search-file-match' => '(correspond al contengut del fichièr)',
 'search-suggest' => 'Avètz volgut dire : $1',
 'search-interwiki-caption' => 'Projèctes fraires',
-'search-interwiki-default' => '$1 resultats :',
+'search-interwiki-default' => 'Resultats de $1 :',
 'search-interwiki-more' => '(mai)',
 'search-relatedarticle' => 'Relatat',
 'searcheverything-enable' => 'Recercar dins totes los espacis de noms',
 'searchrelated' => 'relatat',
 'searchall' => 'Totes',
-'showingresults' => "Afichatge {{PLURAL:$1|d''''1''' resultat|de '''$1''' resultats}} a partir del #'''$2'''.",
+'showingresults' => 'Afichatge de <b>$1</b> resultat{{PLURAL:$1||s}} a partir del n°<b>$2</b>.',
+'showingresultsinrange' => 'Afichar çaijós fins a {{PLURAL:$1|<strong>1</strong> resultat|<strong>$1</strong> resultats}} dins la seria #<strong>$2</strong> a #<strong>$3</strong>.',
 'showingresultsnum' => "Afichatge {{PLURAL:$3|d''''1''' resultat|de '''$3''' resultats}} a partir del #'''$2'''.",
 'showingresultsheader' => "{{PLURAL:$5|Resultat '''$1'''|Resultats '''$1 - $2'''}} de '''$3''' per '''$4'''",
 'search-nonefound' => 'I a pas cap de resultat correspondent a la requèsta.',
@@ -1382,7 +1388,7 @@ Atencion, lor indexacion de contengut {{SITENAME}} benlèu es pas a jorn.',
 'prefsnologintext2' => "$1 per definir las preferéncias d'utilizaire.",
 'prefs-skin' => 'Aparéncia',
 'skin-preview' => 'Previsualizar',
-'datedefault' => 'Cap de preferéncia',
+'datedefault' => 'Pas cap de preferéncia',
 'prefs-beta' => 'Foncionalitats bèta',
 'prefs-datetime' => 'Data e ora',
 'prefs-labs' => 'Foncionalitats « labs »',
@@ -1533,7 +1539,7 @@ Tanben podètz causir de permetre a d’autres de vos contactar per vòstra pagi
 'group-bot-member' => 'Robòt',
 'group-sysop-member' => 'Administrator',
 'group-bureaucrat-member' => 'Burocrata',
-'group-suppress-member' => 'Supervisor',
+'group-suppress-member' => '{{GENDER:$1|supervisor|supervisora}}',
 
 'grouppage-user' => '{{ns:project}}:Utilizaires',
 'grouppage-autoconfirmed' => '{{ns:project}}:Utilizaires enregistrats',
@@ -1559,7 +1565,7 @@ Tanben podètz causir de permetre a d’autres de vos contactar per vòstra pagi
 'right-reupload-own' => 'Espotir un fichièr telecargat pel meteis utilizaire',
 'right-reupload-shared' => 'Espotir localament un fichièr present sus un depaus partejat',
 'right-upload_by_url' => 'Importar un fichièr dempuèi una adreça URL',
-'right-purge' => "Purgar l'amagatal de las paginas sens l'aver de confirmar",
+'right-purge' => "Purgar l'escondedor de las paginas sens l'aver de confirmar",
 'right-autoconfirmed' => 'Èsser pas afectat per las limitacions de debit ligadas a las adreças IP',
 'right-bot' => 'Èsser tractat coma un procediment automatizat',
 'right-nominornewtalk' => 'Desenclavar pas lo bendèl "Avètz de messatges novèls" al moment d\'un cambiament menor sus una pagina de discussion d\'un utilizaire',
@@ -1602,7 +1608,7 @@ Tanben podètz causir de permetre a d’autres de vos contactar per vòstra pagi
 'right-importupload' => 'Importar de paginas dempuèi un fichièr',
 'right-patrol' => 'Marcar de cambiaments coma verificats',
 'right-autopatrol' => 'Aver sos cambiaments marcats automaticament coma verificats',
-'right-patrolmarks' => 'Utilizar las foncionalitats de la patrolha dels darrièrs cambiaments',
+'right-patrolmarks' => 'Veire los marcatges de susvelhança dins los darrièrs cambiaments',
 'right-unwatchedpages' => 'Veire la lista de las paginas pas seguidas',
 'right-mergehistory' => 'Fusionar los istorics de las paginas',
 'right-userrights' => "Modificar totes los dreches d'un utilizaire",
@@ -1674,9 +1680,10 @@ Tanben podètz causir de permetre a d’autres de vos contactar per vòstra pagi
 'recentchanges-label-minor' => 'Aqueste cambiament es menor',
 'recentchanges-label-bot' => 'Aqueste cambiament es estat efectuat per un bòt.',
 'recentchanges-label-unpatrolled' => 'Aqueste cambiament es pas estat verificat encara.',
+'recentchanges-label-plusminus' => "La talha de la pagina a cambiat d'aqueste nombre d’octets.",
 'recentchanges-legend-heading' => "'''Legenda :'''",
 'recentchanges-legend-newpage' => '(veire tanben la [[Special:NewPages|lista de las paginas novèlas]]).',
-'rcnotefrom' => "Vaquí los cambiaments efectuats dempuèi lo '''$2''' ('''$1''' al maximum).",
+'rcnotefrom' => 'Çaijós las modificacions efectuadas dempuèi lo <strong>$2</strong> (fins a <strong>$1</strong> afichats).',
 'rclistfrom' => 'Afichar las modificacions novèlas dempuèi lo $1.',
 'rcshowhideminor' => '$1 los cambiaments menors',
 'rcshowhideminor-show' => 'Afichar',
@@ -1696,7 +1703,7 @@ Tanben podètz causir de permetre a d’autres de vos contactar per vòstra pagi
 'rcshowhidemine' => '$1 mas modificacions',
 'rcshowhidemine-show' => 'Afichar',
 'rcshowhidemine-hide' => 'Amagar',
-'rclinks' => 'Afichar los $1 darrièrs cambiaments efectuats al cors dels $2 darrièrs jorns; $3 cambiaments menors.',
+'rclinks' => 'Afichar los $1 darrièrs cambiaments efectuats al cors dels $2 darrièrs jorns<br />$3.',
 'diff' => 'dif',
 'hist' => 'ist',
 'hide' => 'amagar',
@@ -1818,6 +1825,8 @@ S'o volètz importar tornamai, tornatz en rèire e importatz-lo jos un autre nom
 'uploaddisabledtext' => "L'impòrt de fichièrs cap al servidor es desactivat.",
 'php-uploaddisabledtext' => "Lo telecargament de fichièrs es estat desactivat dins PHP. Verificatz l'opcion de configuracion file_uploads.",
 'uploadscripted' => "Aqueste fichièr conten de còde HTML o un escript que poiriá èsser interpretat d'un biais incorrècte per un navigador Internet.",
+'uploadscriptednamespace' => "Aqueste fichièr SVG conten un espaci de noms '$1' pas autorizat.",
+'uploadinvalidxml' => 'Lo XML dins lo fichièr importat a pas pogut èsser analisat.',
 'uploadvirus' => 'Aqueste fichièr conten un virús ! Per mai de detalhs, consultatz : $1',
 'uploadjava' => 'Es un fichièr ZIP que conten un fichièr Java .class.
 Lo telecargament de fichièrs Java es pas autorizat, perque pòdon contornar de restriccions de seguretat.',
@@ -2058,6 +2067,9 @@ Una [[Special:WhatLinksHere/$2|lista completa]] es disponibla.',
 # List redirects
 'listredirects' => 'Lista de las redireccions',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Lista de fichièrs en doble',
+
 # Unused templates
 'unusedtemplates' => 'Modèls inutilizats',
 'unusedtemplatestext' => "Aquesta pagina lista totas las paginas de l’espaci de noms {{ns:template}} que son pas enclusas dins cap d'autra pagina.
@@ -2134,6 +2146,7 @@ Las entradas <del>barradas</del> son estadas resolgudas.',
 'ninterwikis' => '$1 {{PLURAL:$1|interwiki|interwikis}}',
 'nlinks' => '$1 {{PLURAL:$1|ligam|ligams}}',
 'nmembers' => '$1 {{PLURAL:$1|membre|membres}}',
+'nmemberschanged' => '$1 → $2 {{PLURAL:$2|membre|membres}}',
 'nrevisions' => '$1 {{PLURAL:$1|revision|revisions}}',
 'nviews' => '$1 {{PLURAL:$1|consultacion|consultacions}}',
 'nimagelinks' => 'Utilisat sus $1 {{PLURAL:$1|pagina|paginas}}',
@@ -2152,6 +2165,8 @@ Las entradas <del>barradas</del> son estadas resolgudas.',
 'wantedpages' => 'Paginas mai demandadas',
 'wantedpages-badtitle' => 'Títol invalid dins los resultats : $1',
 'wantedfiles' => 'Fichièrs desirats',
+'wantedfiletext-cat' => "Los fichièrs seguents son utilizats, mas existisson pas localament. Se se tròban sus un depaus partejat, pòdon èsser listats aicí, mentre que sián, de fach, ja disponibles. Totes aqueles falses positius seràn <del>raiats</del>. Amai, las paginas qu'intègran de fichièrs qu'existisson pas son repertoriadas dins [[:$1]].",
+'wantedfiletext-nocat' => 'Los fichièrs seguents son utilizats, mas existisson pas localament. Se se tròban sus un depaus partejat, pòdon èsser listats aicí, mentre que sián, de fach, ja disponibles. Totes aqueles falses positius seràn <del>raiats</del>.',
 'wantedtemplates' => 'Modèls demandats',
 'mostlinked' => 'Paginas mai ligadas',
 'mostlinkedcategories' => 'Categorias mai utilizadas',
@@ -2240,6 +2255,7 @@ Podètz restrénher la vista en seleccionant un tipe de jornal, un nom d’utili
 'allpages-hide-redirects' => 'Amagar las redireccions',
 
 # SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => "Visualizatz una version d'aquesta pagina mesa en escondedor, que pòt èsser datada d’al mai $1.",
 'cachedspecial-refresh-now' => 'Veire lo mai recent.',
 
 # Special:Categories
@@ -2363,7 +2379,7 @@ per modificar vòstra lista de seguiment.',
 '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 afichadas en '''gras'''.",
-'watchmethod-recent' => 'verificacion dels darrièrs cambiaments de las paginas seguidas',
+'watchmethod-recent' => 'verificacion dels darrièrs cambiaments per i trobar de 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...",
@@ -2391,21 +2407,20 @@ per modificar vòstra lista de seguiment.',
 'enotif_lastvisited' => 'Consultatz $1 per totes los cambiaments dempuèi vòstra darrièra visita.',
 'enotif_lastdiff' => 'Consultatz $1 per veire aquesta modificacion.',
 'enotif_anon_editor' => 'utilizaire anonim $1',
-'enotif_body' => 'Car(a) $WATCHINGUSERNAME,
+'enotif_body' => 'Car $WATCHINGUSERNAME,
 
 $PAGEINTRO $NEWPAGE
 
-Resumit del contributor : $PAGESUMMARY 
-$PAGEMINOREDIT
+Resumit del contributor :
+$PAGESUMMARY $PAGEMINOREDIT
 
 Contactatz aqueste contributor :
 corrièl : $PAGEEDITOR_EMAIL
 wiki : $PAGEEDITOR_WIKI
 
-I aurà pas d’autras notificacions en cas de cambiaments ulteriors, levat se visitatz aquela pagina.
-Podètz tanben reïnicializar las bandièras de notificacion per totas las paginas de vòstra lista de seguiment.
+I aurà pas d’autras notificacions en cas de cambiaments ulteriors, levat se visitatz aquela pagina un còp connectat. Podètz tanben reïnicializar las bandièras de notificacion per totas las paginas de vòstra lista de seguiment.
 
-             Vòstre sistèma de notificacion de {{SITENAME}}
+Vòstre sistèma de notificacion de {{SITENAME}}
 
 --
 Pour modificar los paramètres de notificacion per corrièl, visitatz {{canonicalurl:{{#special:Preferences}}}}
@@ -2493,6 +2508,7 @@ Consultatz la [[Special:ProtectedPages|lista de las paginas protegidas]] per la
 'prot_1movedto2' => 'a renomenat [[$1]] en [[$2]]',
 'protect-badnamespace-title' => 'Espaci de noms pas protegible',
 'protect-badnamespace-text' => 'Las paginas dins aqueste espaci de noms pòdon pas èsser protegidas.',
+'protect-norestrictiontypes-text' => 'Aquesta pagina pòt pas èsser protegida perque i a pas de tipe de restriccion disponible.',
 'protect-norestrictiontypes-title' => 'Pagina pas protegibla',
 'protect-legend' => 'Confirmar la proteccion',
 'protectcomment' => 'Rason :',
@@ -2504,7 +2520,7 @@ Consultatz la [[Special:ProtectedPages|lista de las paginas protegidas]] per la
 'protect-locked-blocked' => "Podètz pas modificar lo nivèl de proteccion tant que sètz blocat. Vaquí los reglatges actuals de la pagina '''$1''' :",
 'protect-locked-dblock' => "Lo nivèl de proteccion pòt pas èsser modificat perque la banca de donadas es blocada. Vaquí los reglatges actuals de la pagina '''$1''' :",
 'protect-locked-access' => "Avètz pas los dreches necessaris per modificar la proteccion de la pagina. Vaquí los reglatges actuals de la pagina '''$1''' :",
-'protect-cascadeon' => "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. Podètz cambiar lo nivèl de proteccion d'aquesta pagina sens qu'aquò afècte la proteccion en cascada.",
+'protect-cascadeon' => "Aquesta pagina es protegida perque es inclusa dins {{PLURAL:$1|la pagina seguenta qu'es estada protegida|las paginas seguentas que son estadas protegidas}}, amb l’opcion « proteccion en cascada » activada. Podètz cambiar lo nivèl de proteccion d'aquesta pagina sens qu'aquò afècte la proteccion en cascada.",
 'protect-default' => 'Autorizar totes los utilizaires',
 'protect-fallback' => 'Autorizar unicament los utilizaires amb lo drech « $1 »',
 'protect-level-autoconfirmed' => 'Autorizar unicament los utilizaires autoconfirmats',
@@ -2623,8 +2639,10 @@ $1",
 'sp-contributions-blocked-notice-anon' => 'Aquesta adreça IP es actualament blocada.
 La darrièra intrada del jornal dels blocatges es indicada çaijós a títol d’informacion :',
 'sp-contributions-search' => 'Cercar las contribucions',
+'sp-contributions-suppresslog' => 'contribucions suprimidas d’un utilizaire',
 'sp-contributions-username' => 'Adreça IP o nom d’utilizaire :',
 'sp-contributions-toponly' => 'Mostrar sonque las contribucions que son lo darrièr cambiament',
+'sp-contributions-newonly' => 'Afichar unicament las modificacions que son de creacions de pagina',
 'sp-contributions-submit' => 'Cercar',
 
 # What links here
@@ -2683,6 +2701,7 @@ Donatz çaijós un motiu precís (per exemple en citant las paginas que son esta
 'blockipsuccesssub' => 'Blocatge capitat',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] es esta{{GENDER:||t|(da)}} bloca{{GENDER:||t|(da)}}.<br />
 Podètz consultar la [[Special:BlockList|lista dels comptes e de las adreças IP blocats]].',
+'ipb-blockingself' => 'Sètz a mand de blocar vòstre pròpri compte ! Sètz segur{{GENDER:||a}} que volètz far aquò ?',
 'ipb-edit-dropdown' => 'Modificar los motius de blocatge per defaut',
 'ipb-unblock-addr' => 'Desblocar $1',
 'ipb-unblock' => "Desblocar un compte d'utilizaire o una adreça IP",
@@ -2725,8 +2744,8 @@ a partir d'una adreça IP precedentament blocada.",
 'change-blocklink' => 'modificar lo blocatge',
 'contribslink' => 'contribucions',
 'emaillink' => 'mandar un messatge',
-'autoblocker' => 'Sètz estat autoblocat perque partejatz una adreça IP amb "[[User:$1|$1]]".
-La rason balhada per $1 es : « $2 ».',
+'autoblocker' => 'Sètz estat blocat automaticament perque vòstra adreça IP es estada utilizada recentament per « [[User:$1|$1]] ».
+Lo motiu provesit pel blocatge de $1 es « $2 »',
 'blocklogpage' => 'Istoric dels blocatges',
 'blocklog-showlog' => 'Aqueste utilizaire es estat blocat precedentament. Lo jornal dels blocatges es disponible çaijós :',
 'blocklog-showsuppresslog' => 'Aqueste utilizaire es estat blocat e amagat precedentament. Lo jornal de las supressions es disponible çaijós :',
@@ -2746,10 +2765,11 @@ Consultatz la [[Special:BlockList|lista dels utilizaires blocats]] per veire los
 'range_block_disabled' => "Lo blocatge de plajas d'IP es estat desactivat.",
 'ipb_expiry_invalid' => 'Temps d’expiracion invalid.',
 'ipb_expiry_temp' => 'Las plajas dels utilizaires amagats deurián èsser permanentas.',
-'ipb_hide_invalid' => "Impossible de suprimir aqueste compte ; sembla qu'a tròp de modificacions.",
+'ipb_hide_invalid' => "Impossible de suprimir aqueste compte ; sembla qu'a mai {{PLURAL:$1|d’una modificacion|de $1 modificacions}}.",
 'ipb_already_blocked' => '« $1 » ja es blocat',
 'ipb-needreblock' => '$1 ja es blocat. Volètz modificar los paramètres ?',
 'ipb-otherblocks-header' => '{{PLURAL:$1|Autre blocatge|Autres blocatges}}',
+'unblock-hideuser' => 'Podètz pas desblocar aqueste utilizaire, perque son nom d’utilizaire es estat amagat.',
 'ipb_cant_unblock' => 'Error : Lo blocatge d’ID $1 existís pas. Es possible qu’un desblocatge ja siá estat efectuat.',
 'ipb_blocked_as_range' => "Error : L'adreça IP $1 es pas estada blocada dirèctament e doncas pòt pas èsser deblocada. Çaquelà, es estada blocada per la plaja $2 la quala pòt èsser deblocada.",
 'ip_range_invalid' => 'Plaja IP incorrècta.',
@@ -2946,7 +2966,7 @@ Salvatz-lo sus vòstre disc dur puèi importatz-lo aicí.",
 'importuploaderrortemp' => "Lo telecargament del fichièr d'importar a pas capitat. Un dorsièr temporari es mancant.",
 'import-parse-failure' => "Ruptura dins l'analisi de l'impòrt XML",
 'import-noarticle' => "Pas de pagina d'importar !",
-'import-nonewrevisions' => 'Totas las revisions son estadas importadas deperabans.',
+'import-nonewrevisions' => 'Cap de revision pas importada (totas èran ja presentas, o ignoradas del fach d’errors).',
 'xml-error-string' => '$1 a la linha $2, col $3 (octet $4) : $5',
 'import-upload' => "Impòrt d'un fichier XML",
 'import-token-mismatch' => 'Pèrda de las donadas de sesilha. Tornatz ensajar.',
@@ -2956,6 +2976,7 @@ Salvatz-lo sus vòstre disc dur puèi importatz-lo aicí.",
 'import-error-invalid' => 'Pagina « $1 » es pas importada perque son nom es pas valid.',
 'import-options-wrong' => '{{PLURAL:$2|Marrida opcion|Marridas opcions}} : <nowiki>$1</nowiki>',
 'import-rootpage-invalid' => 'La pagina raiç provesida es un títol invalid.',
+'import-rootpage-nosubpage' => "L'espaci de noms « $1 » de la pagina raiç autoriza pas las sospaginas.",
 
 # Import log
 'importlogpage' => 'Istoric de las importacions de paginas',
@@ -3005,7 +3026,7 @@ Salvatz-lo sus vòstre disc dur puèi importatz-lo aicí.",
 'tooltip-n-mainpage-description' => 'Anar a l’acuèlh',
 'tooltip-n-portal' => 'A prepaus del projècte',
 'tooltip-n-currentevents' => "Trobar d'entresenhas suls eveniments actuals",
-'tooltip-n-recentchanges' => 'Lista dels darrièrs cambiaments sul wiki.',
+'tooltip-n-recentchanges' => 'Lista dels darrièrs cambiaments sul wiki',
 'tooltip-n-randompage' => "Afichar una pagina a l'azard",
 'tooltip-n-help' => "L'endrech per s'assabentar.",
 'tooltip-t-whatlinkshere' => 'Lista de las paginas ligadas a aquesta',
@@ -3031,7 +3052,7 @@ Salvatz-lo sus vòstre disc dur puèi importatz-lo aicí.",
 'tooltip-minoredit' => 'Marcar mas modificacions coma un cambiament menor',
 'tooltip-save' => 'Salvar vòstras modificacions',
 'tooltip-preview' => 'Mercé de previsualizar vòstras modificacions abans de salvar!',
-'tooltip-diff' => "Permet de visualizar los cambiaments qu'avètz efectuats",
+'tooltip-diff' => "Aficha los cambiaments qu'avètz aportats al tèxte",
 'tooltip-compareselectedversions' => "Afichar las diferéncias entre doas versions d'aquesta pagina",
 'tooltip-watch' => 'Apondre aquesta pagina a vòstra lista de seguiment',
 'tooltip-watchlistedit-normal-submit' => 'Levar los títols',
@@ -3087,6 +3108,7 @@ Inscriviscatz '''PAS RES''' dedins !",
 
 # Info page
 'pageinfo-title' => 'Informacions per « $1 »',
+'pageinfo-not-current' => 'O planhèm, impossible de provesir aquesta informacion per las ancianas revisions.',
 'pageinfo-header-basic' => 'Informacions de basa',
 'pageinfo-header-edits' => 'Istoric de las modificacions',
 'pageinfo-header-restrictions' => 'Proteccion de la pagina',
@@ -3141,11 +3163,12 @@ Inscriviscatz '''PAS RES''' dedins !",
 'markaspatrolledtext' => 'Marcar aqueste article coma pas vandalizat',
 'markedaspatrolled' => 'Marcat coma pas vandalizat',
 'markedaspatrolledtext' => 'La revision seleccionada de [[:$1]] es estada coma patrolhada.',
-'rcpatroldisabled' => 'La foncion de patrolha dels darrièrs cambiaments es pas activada.',
-'rcpatroldisabledtext' => 'La foncionalitat de susvelhança dels darrièrs cambiaments es pas activada.',
+'rcpatroldisabled' => 'La foncion de relectura dels darrièrs cambiaments es pas activada.',
+'rcpatroldisabledtext' => 'La foncionalitat de relectura dels darrièrs cambiaments es actualament desactivada.',
 '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.',
+'markedaspatrollednotify' => 'Aquesta modificacion de $1 es estada marcada coma relegida.',
 'markedaspatrollederrornotify' => 'Fracàs del marcatge coma contrarotlat.',
 
 # Patrol log
@@ -3730,8 +3753,8 @@ Confirmatz que desiratz tornar crear aqueste article.",
 
 # action=purge
 'confirm_purge_button' => 'Confirmar',
-'confirm-purge-top' => "Volètz refrescar aquesta pagina (purgar l'amagatal) ?",
-'confirm-purge-bottom' => "Purgar una pagina vioda l'amagatal e fòrça la darrièra version a èsser afichada.",
+'confirm-purge-top' => "Volètz refrescar aquesta pagina (purgar l'escondedor) ?",
+'confirm-purge-bottom' => "Purgar una pagina vioda l'escondedor e fòrça la darrièra version a èsser afichada.",
 
 # action=watch/unwatch
 'confirm-watch-button' => 'Confirmar',
@@ -3837,11 +3860,14 @@ Ensajatz la previsualizacion normala.',
 'version-version' => '(Version $1)',
 'version-license' => 'Licéncia de MediaWiki',
 'version-ext-license' => 'Licéncia',
+'version-ext-colheader-name' => 'Extensions',
 'version-ext-colheader-license' => 'Licéncia',
 'version-ext-colheader-description' => 'Descripcion',
 'version-ext-colheader-credits' => 'Autors',
 'version-license-title' => 'Licéncia per $1',
+'version-license-not-found' => "Cap d'informacion detalhada de la licéncia es pas estada trobada per aquesta extension.",
 'version-credits-title' => 'Mercejaments per $1',
+'version-credits-not-found' => "Cap d'informacion detalhada dels mercejaments es pas estada trobada per aquesta extension.",
 'version-poweredby-credits' => "Aqueste wiki fonciona gràcias a '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
 'version-poweredby-others' => 'autres',
 'version-poweredby-translators' => 'traductors de translatewiki.net',
@@ -3984,9 +4010,9 @@ 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  {{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' => '$1  {{GENDER:$2|a desplaçat}} la pagina $3 cap a $4',
+'logentry-move-move-noredirect' => '$1 {{GENDER:$2|a desplaçat}} la pagina $3 cap a $4 sens daissar cap de redireccion',
+'logentry-move-move_redir' => '$1 {{GENDER:$2|a desplaçat}} la pagina $3 cap a $4 per dessús una redireccion',
 'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2|a desplaçat}} la pagina $3 cap a $4 per dessús una redireccion sens daissar cap de redireccion',
 'logentry-patrol-patrol' => '$1 {{GENDER:$2|a marcat}} la revision $4 de la pagina $3 coma relegida',
 'logentry-patrol-patrol-auto' => '$1 {{GENDER:$2|a marcat automaticament}} la revision $4 de la pagina $3 coma relegida',
@@ -4030,6 +4056,7 @@ Ensajatz la previsualizacion normala.',
 '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-fileexists-shared-forbidden' => 'Un fichièr nomenat "$1" existís ja dins lo repertòri dels fichièrs partejats, e pòt pas èsser espotit.',
 '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',
@@ -4045,11 +4072,13 @@ Ensajatz la previsualizacion normala.',
 'api-error-missingresult' => 'Error intèrna : Avèm pas pogut determinar se la còpia aviá capitat.',
 'api-error-mustbeloggedin' => 'Vos cal èsser connectat per telecargar de fichièrs.',
 'api-error-mustbeposted' => 'Error intèrna : aquesta requèsta necessita lo metòde HTTP POST.',
+'api-error-noimageinfo' => "Lo mandadís a capitat, mas lo servidor a pas donat cap d'informacions sul fichièr.",
 'api-error-nomodule' => 'Error intèrna : cap de modul de versament pas definit.',
 'api-error-ok-but-empty' => 'Error intèrna : Lo servidor a pas respondut.',
 'api-error-overwrite' => 'Espotir un fichièr existent es pas autorizat.',
 'api-error-stashfailed' => 'Error intèrna : lo servidor a pas pogut enregistrar lo fichièr temporari.',
 'api-error-publishfailed' => 'Error intèrna: Lo servidor a pas pogut publicar lo fichièr temporari.',
+'api-error-stasherror' => "Una error s'es produsida al moment del telecargament del fichièr per lo dissimular.",
 'api-error-timeout' => 'Lo servidor a pas respondut dins lo relambi pervist.',
 'api-error-unclassified' => "Una error desconeguda s'es producha.",
 'api-error-unknown-code' => 'Error desconeguda : « $1 »',
@@ -4090,7 +4119,11 @@ Ensajatz la previsualizacion normala.',
 
 # Special:ExpandTemplates
 'expandtemplates' => 'Espandiment dels modèls',
-'expand_templates_intro' => 'Aquesta pagina permet de testar l’espandiment de modèls, que son desvolopats recursivament. Las foncions e las variablas predefinidas, coma <nowiki>{{</nowiki>#language:...}} e <nowiki>{{</nowiki>CURRENTDAY}} tanben son desvolopadas.',
+'expand_templates_intro' => "Aquesta pagina especiala accèpta un tèxte wiki source e permet de realizar recursivament l’espandiment dels modèls que conten.
+Realiza tanben l’espandiment de las foncions del parser talas coma
+<code><nowiki>{{</nowiki>#language:...}}</code> e de variablas coma
+<code><nowiki>{{</nowiki>CURRENTDAY}}</code>.
+En fach, realiza l'espandiment de gaireben tot çò qu'es enquadrat per d'acoladas doblas.",
 'expand_templates_title' => 'Títol de l’article, util per exemple se lo modèl utiliza {{FULLPAGENAME}} :',
 'expand_templates_input' => 'Picatz vòstre tèxte aicí :',
 'expand_templates_output' => 'Visualizatz lo resultat :',
index 205fa22..f573e21 100644 (file)
@@ -504,7 +504,6 @@ $1',
 'disclaimers' => 'ଆମେ ଦାୟୀ ନୋହୁଁ',
 'disclaimerpage' => 'Project:ଆମେ ଦାୟୀ ନୋହୁଁ',
 'edithelp' => 'ଲେଖା ସାହାଯ୍ୟ',
-'helppage' => 'Help:ସୂଚୀ',
 'mainpage' => 'ପ୍ରଧାନ ପୃଷ୍ଠା',
 'mainpage-description' => 'ପ୍ରଧାନ ପୃଷ୍ଠା',
 'policy-url' => 'Project:ନୀତି',
@@ -699,8 +698,6 @@ $2',
 'gotaccountlink' => 'ଲଗ ଇନ (Log in)',
 'userlogin-resetlink' => 'ଲଗଇନ ତଥ୍ୟ ସବୁ ଭୁଲିଗେଲେକି?',
 'userlogin-resetpassword-link' => 'ପାସୱାର୍ଡ଼ ରିସେଟ କରନ୍ତୁ',
-'helplogin-url' => 'Help:Logging_in',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|ଲଗ-ଇନ କରିବାରେ ସ‌ହ‌ଯୋଗ]]',
 'createacct-emailrequired' => 'ଇମେଲ ଠିକଣା',
 'createacct-emailoptional' => 'ଇମେଲ ଠିକଣା (ଇଚ୍ଛାଧୀନ)',
 'createacct-email-ph' => 'ଆପଣଙ୍କ ଇମେଲ ଠିକଣା ନିବେଶ କରନ୍ତୁ',
@@ -944,7 +941,7 @@ $1 ଦ୍ଵାରା ପ୍ରତିରୋଧ କରାଯାଇଛି
 ଏହି ପାସୱାର୍ଡ଼ଟି ''[[Special:ChangePassword|ପାସୱାର୍ଡ଼ ବଦଳାଇବା]]'' ପୃଷ୍ଠାରେ ଲଗଇନ କରି କରାଯାଇପାରିବ ।",
 'newarticle' => '(ନୁଆ)',
 'newarticletext' => "ଆପଣ ଖୋଲିଥିବା ଲିଙ୍କଟିରେ ଏଯାଏଁ କିଛିବି ପୃଷ୍ଠା ନାହିଁ ।
-ଏହି ପୃଷ୍ଠାଟିକୁ ତିଆରି କରିବା ପାଇଁ ତଳ ବାକ୍ସରେ ଟାଇପ କରନ୍ତୁ (ଅଧିକ ଜାଣିବା ପାଇଁ [[{{MediaWiki:Helppage}}|ସାହାଯ୍ୟ ପୃଷ୍ଠା]] ଦେଖନ୍ତୁ) ।
+ଏହି ପୃଷ୍ଠାଟିକୁ ତିଆରି କରିବା ପାଇଁ ତଳ ବାକ୍ସରେ ଟାଇପ କରନ୍ତୁ (ଅଧିକ ଜାଣିବା ପାଇଁ [$1 ସାହାଯ୍ୟ ପୃଷ୍ଠା] ଦେଖନ୍ତୁ) ।
 ଯଦି ଆପଣ ଏଠାକୁ ଭୁଲରେ ଆସିଯାଇଥାନ୍ତି ତେବେ ଆପଣଙ୍କ ବ୍ରାଉଜରର '''Back''' ପତିଟି ଦବାନ୍ତୁ ।",
 'anontalkpagetext' => "----''ଏହା ଏକ ଖାତା ଖୋଲିନଥିବା ବା ଖାତା ବ୍ୟବହାର କରିନଥିବା ଜଣେ ବେନାମି ସଭ୍ୟଙ୍କର ଆଲୋଚନା ପୃଷ୍ଠା ।''
 ତେଣୁ ଆମ୍ଭେ ସଂଖ୍ୟା ଦେଇ ସୂଚୀତ IP ଠିକଣା ଦେଇ ତାଙ୍କୁ ଜାଣିବା ।
@@ -1191,8 +1188,6 @@ $3ଙ୍କ ଦେଇ ଦିଆଯାଇଥିବା କାରଣ ହେଲା '
 'revdelete-show-file-submit' => 'ହଁ',
 'revdelete-selected' => "'''[[:$1]]ର {{PLURAL:$2|ବଛା ସଙ୍କଳନ|ବଛା ସଙ୍କଳନ}}:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|ବଛା ଲଗ ଘଟଣା|ବଛା ଲଗ ଘଟଣାବଳୀ}}:'''",
-'revdelete-text' => "'''ଲିଭାଯାଇଥିବା ସଂସ୍କରଣ ଓ ଘଟଣାସମୂହ ଏବେ ବି ପୃଷ୍ଠାର ଇତିହାସରେ ରହିବ, କିନ୍ତୁ ଜନସାଧାରଣଙ୍କୁ ସେସବୁର କିଛି ଭାଗ ଲୁଚାଇ ରଖାଯିବ ।'''
-ଏହି {{SITENAME}}ର ବାକି ପରିଚାଳକଗଣ ଲୁଚିରହିଥିବା ବିଷୟବସ୍ତୁ ଦେଖିପାରିବେ ଓ ଅଧିକ ବାରଣ ଥିଲେ ହେଁ ସେହି ଏକା ଇଣ୍ଟରଫେସ ବ୍ୟବହାର କରି ତାହାକୁ ଆଉଥରେ ଲିଭାଯିବାରୁ ଅଟକାଇପାରିବେ ।",
 'revdelete-confirm' => 'ଦୟାକରି ଥୟ କରନ୍ତୁ ଯେ ଆପଣ ଏହା କରିବାକୁ ଚାହୁଁଛନ୍ତି, ଆପଣ ଏହାର ପରିଣାମ ଜାଣନ୍ତି ଓ ଆପଣ [[{{MediaWiki:Policy-url}}|ନୀତି]] ଅନୁସାରେ ଏହା କରୁଛନ୍ତି ।',
 'revdelete-suppress-text' => "ଦବାଇ ରଖିବା '''କେବଳ''' ଏହି ତଳଲିଖିତ କ୍ଷେତ୍ରରେ ବ୍ୟବହାର କରାଯିବ:
 * ସମ୍ଭାବିତ ଅପମାନଜଣକ ତଥ୍ୟ
@@ -1302,7 +1297,7 @@ $1",
 'prevn' => '{{PLURAL:$1|$1}}ର ଆଗରୁ',
 'nextn' => '{{PLURAL:$1|$1}} ପର',
 'prevn-title' => 'ଆଗରୁ ମିଳିଥିବା $1ଟି  {{PLURAL:$1|result|ଫଳ}}',
-'nextn-title' => 'à¬\86à¬\97ର $1à¬\9fି  {{PLURAL:$1|result|ଫଳସବୁ}}',
+'nextn-title' => 'ପର $1 {{PLURAL:$1|ଫଳାଫଳ|ଫଳାଫଳସବୁ}}',
 'shown-title' => '$1 ପ୍ରତି ପୃଷ୍ଠାର {{PLURAL:$1|ଫଳାଫଳ|ଫଳାଫଳ}} ଦେଖାଇବେ ।',
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3) ଟି ଦେଖିବେ',
 'searchmenu-exists' => "'''ଏହି ଉଇକିରେ \"[[:\$1]]\" ନାଆଁରେ ପୃଷ୍ଠାଟିଏ ଅଛି ।'''",
@@ -1324,7 +1319,7 @@ $1",
 'search-section' => '(ଭାଗ $1)',
 'search-suggest' => 'ଆପଣ $1 ଭାବି ଖୋଜିଥିଲେ କି?',
 'search-interwiki-caption' => 'ସାଙ୍ଗରେ ଚାଲିଥିବା ବାକି ପ୍ରକଳ୍ପସବୁ',
-'search-interwiki-default' => '$1 ଫଳାଫଳ:',
+'search-interwiki-default' => '$1 à¬°à­\81 à¬«à¬³à¬¾à¬«à¬³:',
 'search-interwiki-more' => '(ଅଧିକ)',
 'search-relatedarticle' => 'ଯୋଡ଼ା',
 'searcheverything-enable' => 'ସବୁଗୁଡ଼ିକ ନେମସ୍ପେସରେ ଖୋଜିବେ',
@@ -2344,11 +2339,11 @@ wiki: $PAGEEDITOR_WIKI
 # Delete
 'deletepage' => 'ପୃଷ୍ଠାଟି ଲିଭାଇଦେବେ',
 'confirm' => 'ନିଶ୍ଚିତ କରନ୍ତୁ',
-'excontent' => 'ଭିତର à¬­à¬¾à¬\97 à¬¥à¬¿à¬²à¬¾: $1',
-'excontentauthor' => 'ଭିତର ଭାଗରେ ଥିଲା: "$1" (ଆଉ "[[Special:Contributions/$2|$2]]" କେବଳ ଜଣେ ମାତ୍ର ଦାତା ଥିଲେ)',
-'exbeforeblank' => 'ଖାଲି କରିବା ଆଗରୁ ଭିତରେ "$1" ଥିଲା',
+'excontent' => 'ଲà­\87à¬\96ା à¬¥à¬¿à¬²à¬¾: "$1"',
+'excontentauthor' => 'ଭିତରେ ଥିଲା: "$1" (ଆଉ "[[Special:Contributions/$2|$2]]" କେବଳ ଜଣେ ଦାତା ଥିଲେ)',
+'exbeforeblank' => 'ଖାଲିକରିବା ଆଗରୁ ଭିତରେ "$1" ଥିଲା',
 'exblank' => 'ପୃଷ୍ଠାଟି ଖାଲି ଅଛି',
-'delete-confirm' => 'ଲିଭେଇବେ $1',
+'delete-confirm' => 'ଲିଭେଇବେ "$1"',
 'delete-legend' => 'ଲିଭାଇବେ',
 'historywarning' => "'''ଚେତାବନୀ:''' ଆପଣ ଲିଭାଇବାକୁ ଯାଉଥିବା ଏହି ପୃଷ୍ଠାଟିର ପାଖାପାଖି $1 {{PLURAL:$1|ଟି ସଙ୍କଳନ|ଗୋଟି ସଙ୍କଳନ}} ରହିଅଛି:",
 'confirmdeletetext' => 'ଆପଣ ଗୋଟିଏ ପୃଷ୍ଠାର ଇତିହାସ ସହ ତାହାକୁ ଲିଭାଇବାକୁ ଯାଉଛନ୍ତି ।
@@ -2448,7 +2443,7 @@ $2ଙ୍କ ଦେଇ ଶେଷଥର ହୋଇଥିବା ସଂସ୍କର
 'protect-dropdown' => '*ସାଧାରଣ ପ୍ରତିରକ୍ଷା କାରଣ
 ** ଅତି ଅଧିକ ଅପବ୍ୟବହାର
 ** ଅତି ଅଧିକ ଅଦରକାରୀ ଚିଜ ପୁରାଇବା
-** ନକରାତ୍ମକ ସମ୍ପାଦନା ତାଗିଦା
+** à¬¨à¬\95ାରାତà­\8dମà¬\95 à¬¸à¬®à­\8dପାଦନା à¬¤à¬¾à¬\97ିଦା
 ** ଅଧିକ ଦେଖାଯାଉଥିବା ପୃଷ୍ଠା',
 'protect-edit-reasonlist' => 'କିଳିବା କାରଣମାନଙ୍କର ସମ୍ପାଦନା କରିବେ',
 'protect-expiry-options' => '୧ ଘଣ୍ଟା:1 hour,ଦିନେ:1 day,ସପ୍ତାହେ:1 week,୨ ସପ୍ତାହ:2 weeks,ମସେ:1 month,୩ ମାସ:3 months,୬ ମାସ:6 months,ବର୍ଷେ:1 year,ଅସିମୀତ କାଳ:infinite',
index 79f1dd6..5d2bb7c 100644 (file)
@@ -244,8 +244,8 @@ $messages = array(
 'friday' => 'майрæмбон',
 'saturday' => 'сабат',
 'sun' => 'Хцб',
-'mon' => 'Ð\9aÑ\80с',
-'tue' => 'Дцг',
+'mon' => 'Ð\9aÑ\8aс',
+'tue' => 'Дц',
 'wed' => 'Æрт',
 'thu' => 'Цпр',
 'fri' => 'Мрб',
@@ -418,7 +418,6 @@ $1',
 'disclaimers' => 'Бæрн',
 'disclaimerpage' => 'Project:Бæрн',
 'edithelp' => 'Ивынæн æххуыс',
-'helppage' => 'Help:Мидис',
 'mainpage' => 'Сæйраг фарс',
 'mainpage-description' => 'Сæйраг фарс',
 'policy-url' => 'Project:Фæтк',
@@ -609,8 +608,6 @@ $2',
 'gotaccountlink' => 'Бахизын',
 'userlogin-resetlink' => 'Ферох дæ сты дæ бахизæнтæ?',
 'userlogin-resetpassword-link' => 'Дæ пароль ногæй сæвæр',
-'helplogin-url' => 'Help:Бахизын',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Бахизынæн æххуыс]]',
 'createacct-join' => 'Дæ информаци дæлдæр бафысс.',
 'createacct-emailrequired' => 'Электрон посты адрис',
 'createacct-emailoptional' => 'Электрон посты адрис (фæндон)',
@@ -849,7 +846,7 @@ $2
 Ацы ног аккаунты пароль гæнæн ис фæивын ''[[Special:ChangePassword|пароль ивæн варсыл]]'' бахизыны фæстæ.",
 'newarticle' => '(Ног)',
 'newarticletext' => 'Ды ныххæцыдтæ ахæм æрвитæныл, кæй фарс нырмæ нæй.
-Фарс бакæнынæн байдай фыссын дæлдæр цы къæртт ис, уым (кæс [[{{MediaWiki:Helppage}}|æххуысы фарс]] фылдæр базонынæн).',
+Фарс бакæнынæн байдай фыссын дæлдæр цы къæртт ис, уым (кæс [$1 æххуысы фарс] фылдæр базонынæн).',
 'anontalkpagetext' => "----''Ай у æнæном архайæджы ныхасы фарс. Ацы архайæг нырмæ нæ срегистраци кодта, кæнæ та йæ аккаунтæй нæ архайы.
 Уый тыххæй мах пайда кæнæм йæ IP адрисæй, цæмæй-иу æй бæрæг кæнæм.
 Ахæм IP адристæй гæнæн ис архайой цалдæр архайæджы.
@@ -1185,7 +1182,7 @@ ASCII нысæнттæм чи нæ хауы, уыдон ивыны бынаты
 'recentchanges-feed-description' => 'Хъус дарын викийы фæстаг ивдтытæм ацы лæсæны уылты.',
 'recentchanges-label-newpage' => 'Ацы ивд нæуæг фарс бакодта',
 'recentchanges-label-minor' => 'Ай у чысыл ивд',
-'recentchanges-label-bot' => 'Ацы ивд бот сарызта',
+'recentchanges-label-bot' => 'Ацы ивд бот сарæзта',
 'recentchanges-label-unpatrolled' => 'Ацы ивд нырмæ нæу фидар гонд',
 'rcnotefrom' => "Бындæр сты æвдыст ивдтытæ '''$2'''-æй ('''{{grammar:genitive|$1}}''' йонг).",
 'rclistfrom' => 'Равдисын ивдтытæ амæй фæстæ: $1',
@@ -1763,6 +1760,7 @@ $3',
 
 # Special:SpecialPages
 'specialpages' => 'Сæрмагонд фæрстæ',
+'specialpages-note-top' => 'Легендæ',
 
 # External image whitelist
 'external_image_whitelist' => ' #Ныууадз ацы рæнхъ куыд у афтæ<pre>
index c6686ef..6ba7ec0 100644 (file)
@@ -436,7 +436,6 @@ $1',
 'disclaimers' => 'ਦਾਅਵੇ',
 'disclaimerpage' => 'Project:ਆਮ ਦਾਅਵੇ',
 'edithelp' => 'ਸੋਧ ਸਬੰਧੀ ਮਦਦ',
-'helppage' => 'Help:ਸਮੱਗਰੀ',
 'mainpage' => 'ਮੁੱਖ ਸਫ਼ਾ',
 'mainpage-description' => 'ਮੁੱਖ ਸਫ਼ਾ',
 'policy-url' => 'Project:ਨੀਤੀ',
@@ -625,8 +624,6 @@ $2',
 'gotaccountlink' => 'ਲਾਗਇਨ',
 'userlogin-resetlink' => 'ਆਪਣੀ ਲਾਗਇਨ ਜਾਣਕਾਰੀ ਭੁੱਲ ਗਏ ਹੋ?',
 'userlogin-resetpassword-link' => 'ਆਪਣਾ ਪਾਸਵਰਡ ਭੁੱਲ ਗਏ ਹੋ?',
-'helplogin-url' => 'Help: ਲਾਗਇਨ ਕਰਨਾ',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|ਲਾਗਇਨ ਹੋਣ ਲਈ ਮੱਦਦ]]',
 'userlogin-createanother' => 'ਹੋਰ ਖਾਤਾ ਬਣਾਓ',
 'createacct-join' => 'ਆਪਣੀ ਜਾਣਕਾਰੀ ਹੇਠਾਂ ਦਿਉ।',
 'createacct-another-join' => 'ਆਪਣੇ ਅਕਾਊਂਟ ਦੀ ਜਾਣਕਾਰੀ ਹੇਠਾਂ ਦਿਉ।',
@@ -712,6 +709,7 @@ $2',
 'suspicious-userlogout' => 'ਤੁਹਾਡੀ ਵਿਦਾਇਗੀ ਦੀ ਬੇਨਤੀ ਨਕਾਰ ਦਿੱਤੀ ਗਈ ਕਿਉਂਕਿ ਲੱਗਦਾ ਹੈ ਕਿ ਇਹ ਕਿਸੇ ਟੁੱਟੇ ਹੋਏ ਬਰਾਊਜ਼ਰ ਜਾਂ ਕੈਸ਼ ਹੋਈ ਪ੍ਰਾਕਸੀ ਤੋਂ ਭੇਜੀ ਗਈ ਸੀ।',
 'createacct-another-realname-tip' => 'ਅਸਲੀ ਨਾਂ ਚੋਣਵਾਂ ਹੈ।
 ਜੇਕਰ ਤੁਸੀਂ ਇਹ ਦਿੱਤਾ ਹੈ ਤਾਂ ਤੁਹਾਡੇ ਕੰਮ ਵਾਸਤੇ ਗੁਣ ਦੇ ਤੌਰ ਉੱਤੇ ਵਰਤਿਆ ਜਾਵੇਗਾ।',
+'pt-login-button' => 'ਲਾਗ ਇਨ',
 
 # Email sending
 'php-mail-error-unknown' => 'PHP ਦੇ ਮੇਲ() ਕਰਜ ਵਿੱਚ ਅਣਜਾਣ ਦੋਸ਼',
@@ -846,7 +844,7 @@ sysop}}|administrator]] ਨਾਲ ਰਾਬਤਾ ਕਰ ਸਕਦੇ ਹੋ।
 ਇਸ ਨਵੇਂ ਖਾਤੇ ਲਈ ਲਾਗਇਨ ਕਰਨ ਤੋਂ ਬਾਅਦ ''[[Special:ChangePassword|ਪਾਸਵਰਡ ਬਦਲੋ]]'' ’ਤੇ ਜਾ ਕੇ ਪਾਸਵਰਡ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ।",
 'newarticle' => '(ਨਵਾਂ)',
 'newarticletext' => "ਤੁਸੀਂ ਕਿਸੇ ਅਜਿਹੇ ਸਫ਼ੇ ਦੇ ਕੜੀ ’ਤੇ ਹੋ ਜੋ ਹਾਲੇ ਬਣਾਇਆ ਨਹੀਂ ਗਿਆ।
-ਸਫ਼ਾ ਬਣਾਉਣ ਲਈ ਹੇਠ ਦਿੱਤੇ ਖਾਨੇ ਵਿਚ ਲਿਖਣਾ ਸ਼ੁਰੂ ਕਰੋ। (ਹੋਰ ਮਦਦ ਲਈ [[{{MediaWiki:Helppage}}|ਮਦਦ ਸਫ਼ਾ]] ਵੇਖੋ।)
+ਸਫ਼ਾ ਬਣਾਉਣ ਲਈ ਹੇਠ ਦਿੱਤੇ ਖਾਨੇ ਵਿਚ ਲਿਖਣਾ ਸ਼ੁਰੂ ਕਰੋ। (ਹੋਰ ਮਦਦ ਲਈ [$1 ਮਦਦ ਸਫ਼ਾ] ਵੇਖੋ।)
 ਜੇ ਤੁਸੀਂ ਗ਼ਲਤੀ ਨਾਲ ਇੱਥੇ ਆਏ ਹੋ ਤਾਂ ਆਪਣੇ ਬ੍ਰਾਊਜ਼ਰ ਦੇ '''ਪਿੱਛੇ''' ਬਟਨ ’ਤੇ ਕਲਿੱਕ ਕਰੋ।",
 'anontalkpagetext' => "----''ਇਹ ਇਕ ਗੁਮਨਾਮ ਮੈਂਬਰ ਲਈ ਇਕ ਚਰਚਾ ਸਫ਼ਾ ਹੈ ਜਿਸਨੇ ਹਾਲੇ ਖਾਤਾ ਨਹੀ ਬਣਾਇਆ ਜਾਂ ਉਸਨੂੰ ਵਰਤ ਨਹੀਂ ਰਿਹਾ।
 ਇਸ ਵਾਸਤੇ ਸਾਡੇ ਕੋਲ ਉਸਨੂੰ ਪਛਾਨਣ ਲਈ IP ਪਤਾ ਹੈ।
index 5056109..a66d15b 100644 (file)
@@ -225,7 +225,6 @@ $messages = array(
 'disclaimers' => 'Pamananggi',
 'disclaimerpage' => 'Project:Pangkabilugan a pamananggi',
 'edithelp' => 'Saup pamanalili',
-'helppage' => 'Help:Kalamnan',
 'mainpage' => 'Pun Bulung',
 'mainpage-description' => 'Pun Bulung',
 'policy-url' => 'Project:Tuntunan',
@@ -505,7 +504,7 @@ Pakisulat me at patutuan ing kekang e-mail address kapamilata'ning [[Special:Pre
 'accmailtext' => 'Ing password para keng "$1" miparala ya king $2.',
 'newarticle' => '(Bayu)',
 'newarticletext' => "Dela na ka ning suglung king bulung a e pa melalang.
-Ba meng lalangan ing bulung a iti, sumulat ka king kahun king lalam (lon me ing  [[{{MediaWiki:Helppage}}|help page]] para king karagdagang impormasiun).
+Ba meng lalangan ing bulung a iti, sumulat ka king kahun king lalam (lon me ing  [$1 help page] para king karagdagang impormasiun).
 Nung migkamali kang minta keni, i-click me mu ing '''back''' (mibalik) button ning kekang browser.",
 'anontalkpagetext' => "----''Ini ing bulung ning pamitalamitam (discussion page) para kareng gagamit a e pepakilala, e pa miglalang account, o e gagamit kaniti. Uli na nita, kaylangan ming gumamit IP address a nomiru ba yang makilala. Mapalyaring e ya mu metung ing gagamit kaniti. Nung metung kang gagamit a e pepakilala at king palage mu, mituran ka o meyatu king e dapat, pakisabi ming [[Special:UserLogin|maglalang kang account o mag-log in]] ba ra kang e pagkamalyan kareng aliwang gagamit.''",
 'noarticletext' => 'King salukuyan, alang sulat king bulung a ini.
@@ -654,9 +653,6 @@ mapaliaring maki detalle king [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPA
 'revdelete-nooldid-text' => 'Mapaliaring ala kang binieng balak a pamanalili (target revision) ba meng daptan ing gamit (function) a iti, ala yu ing mebanggit a pamanaliling iti, o magtangka kang isalikut ya ing kasalungsungan a pamanalili.',
 'revdelete-selected' => "'''{{PLURAL:$2|Mepiling bersion|Mepiling bersion}} ning [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Mepiling miliari king tala/listaan|Mepiling miliari king tala/listaan}}:'''",
-'revdelete-text' => "'''Lunto la pa murin king amlat ning bulung deng meburang pamanalili ampong kapaliarian (events), oneng e ra no abusni deng malda ding mapilang dake ning karelang laman.'''
-
-Abusni da pa murin deng aliwang talapanibala (admin) king {{SITENAME}} itang laman a makasalikut, at aurung da ing pangabura na niti kapamilatan na mismu niting interface, puera namu nung ating bayung pamag-limita o pamanyabat a miyutus.",
 'revdelete-legend' => 'Mitakdang angganan/limitasiun kareng maliaring akit',
 'revdelete-hide-text' => 'Isalikut ya ing meyaliling kulitan',
 'revdelete-hide-image' => 'Isalikut ya ing laman ning simpan',
index 19d8430..ff3a309 100644 (file)
@@ -226,7 +226,6 @@ $messages = array(
 'disclaimers' => 'Démintis',
 'disclaimerpage' => 'Project:Déminti général',
 'edithelp' => 'Éditer el aiyude',
-'helppage' => 'Help:Étnus',
 'mainpage' => 'Moaite Pache',
 'mainpage-description' => 'Moaite Pache',
 'portal' => 'Portal del conmeunauté',
@@ -390,7 +389,7 @@ Vote adrèche IP, ale sro inrégistrée din l'historique éd chol pache.",
 'summary-preview' => 'Prévue dech résumè :',
 'newarticle' => '(nouvieu)',
 'newarticletext' => "Os avez sui un loïen vers eune pache qui n’essiste poin coère ou qu' o té [{{fullurl:Special:Log|type=delete&page={{FULLPAGENAMEE}}}} défacée].
-Pou créer chol pache, intrez vote teske din l'boéte édsou (vir [[{{MediaWiki:Helppage}}|l'pache d’aïude]] ). <br />
+Pou créer chol pache, intrez vote teske din l'boéte édsou (vir [$1 l'pache d’aïude] ). <br />
 Si vos ètes ichi par bérlure, bukez su l'bouton '''értour''' du navigateu.",
 'noarticletext' => 'Achteure i n’y o nu teske su l\'pache-lo.
 Os povez [[Special:Search/{{PAGENAME}}|foaire eune érchérche du tite del pache]] din chés eutes paches,
index aa79503..649a6b4 100644 (file)
@@ -61,7 +61,9 @@ $messages = array(
 # User preference toggles
 'tog-underline' => 'Gleecher unnerleine:',
 'tog-hideminor' => 'Gleene Enneringe verschwinne losse',
-'tog-watchdefault' => 'Vun mir gennerte Ardickele watsche',
+'tog-watchdefault' => 'Vun mir gennerte Ardickele un Feils watsche',
+'tog-watchmoves' => 'Vun mir gezogene Ardickele un Feils watsche',
+'tog-watchdeletion' => 'Vun mir verwischte Ardickele un Feils watsche',
 'tog-watchlisthideown' => 'Mei Ardickele vun mei Watsch-Lischt verschwinne losse',
 'tog-watchlisthidebots' => 'Enneringe vun Bots vun mei Watsch-Lischt verschwinne losse',
 'tog-watchlisthideminor' => 'Gleene Enneringe vun mei Watsch-Lischt verschwinne losse',
@@ -120,6 +122,16 @@ $messages = array(
 'oct' => 'Okt.',
 'nov' => 'Nov.',
 'dec' => 'Dis.',
+'january-date' => '$1. Yenner',
+'february-date' => '$1. Hanning',
+'march-date' => '$1. Matz',
+'april-date' => '$1. Abril',
+'may-date' => '$1. Moi',
+'june-date' => '$1. Tschuun',
+'july-date' => '$1. Tschulei',
+'august-date' => '$1. Aagscht',
+'october-date' => '$1. Oktower',
+'december-date' => '$1. Disember',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Abdeeling|Abdeelinge}}',
@@ -216,7 +228,6 @@ $messages = array(
 'disclaimers' => 'Impressum',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Hilf zum Ennere',
-'helppage' => 'Help:Hilf',
 'mainpage' => 'Haaptblatt',
 'mainpage-description' => 'Haaptblatt',
 'portal' => 'Gmeeschafts-Portal',
@@ -280,8 +291,11 @@ Wenns des net iss, hoscht verleicht en Fehler in de Daadebank gfunne. Bitte meld
 'virus-unknownscanner' => 'Unbekannter Virus-Uffgucker:',
 
 # Login and logout pages
+'welcomeuser' => 'Wilkum, $1!',
 'yourname' => 'Yuuser-Naame:',
+'userlogin-yourname' => 'Yuusernaame',
 'yourpassword' => 'Paesswatt:',
+'userlogin-yourpassword' => 'Paesswatt',
 'yourpasswordagain' => 'Paesswatt noch eemol:',
 'yourdomainname' => 'Dei Domain:',
 'login' => 'Kumm nei',
@@ -291,11 +305,15 @@ Wenns des net iss, hoscht verleicht en Fehler in de Daadebank gfunne. Bitte meld
 'logout' => 'Geh naus',
 'userlogout' => 'Geh naus',
 'gotaccountlink' => 'Kumm nei',
+'createacct-emailrequired' => 'E-Poschd',
 'createaccountmail' => 'iwwer E-Mail',
 'createaccountreason' => 'Grund:',
-'mailmypassword' => 'Neies Paesswadd eposchde',
+'mailmypassword' => 'Paesswatt zerricksetze',
 'noemail' => 'Yuuser „$1“ hot ken E-Mail aagewwe.',
 'loginlanguagelabel' => 'Schprooch: $1',
+'pt-login' => 'Nei kumme',
+'pt-login-button' => 'Nei kumme',
+'pt-userlogout' => 'Naus geh',
 
 # Change password dialog
 'changepassword' => 'Paesswatt ennere',
@@ -308,11 +326,13 @@ Wenns des net iss, hoscht verleicht en Fehler in de Daadebank gfunne. Bitte meld
 'passwordreset' => 'Paesswatt zerricksetze',
 'passwordreset-legend' => 'Paesswatt zerricksetze',
 'passwordreset-username' => 'Yuuser-Naame:',
+'passwordreset-email' => 'E-Poschd:',
 'passwordreset-emailelement' => 'Yuusernaame: $1
 Paesswatt fer nau: $2',
 
 # Special:ChangeEmail
 'changeemail-none' => '(ken)',
+'changeemail-submit' => 'E-Poschd ennere',
 
 # Edit page toolbar
 'bold_sample' => 'Wadde fett gmarrickt',
@@ -333,6 +353,7 @@ Paesswatt fer nau: $2',
 'savearticle' => 'Blatt beilege',
 'preview' => 'Aagucke',
 'showdiff' => 'Enneringe zeige',
+'blockedtitle' => 'Yuuser iss aabunne',
 'blockednoreason' => 'ken Grund gewwe',
 'loginreqlink' => 'kumm nei',
 'newarticle' => '(Nei)',
@@ -357,8 +378,8 @@ Paesswatt fer nau: $2',
 'last' => 'Letscht',
 'page_first' => 'Aafang',
 'page_last' => 'End',
-'histfirst' => 'Eldescht',
-'histlast' => 'Letscht',
+'histfirst' => 'eldescht',
+'histlast' => 'neieschd',
 'historysize' => '({{PLURAL:$1|1 Beit|$1 Beit}})',
 'historyempty' => '(leer)',
 
@@ -369,7 +390,7 @@ Paesswatt fer nau: $2',
 'rev-showdeleted' => 'zeig',
 'revdelete-no-file' => 'Sell Feil gebt es net.',
 'revdelete-show-file-submit' => 'Ya',
-'revdelete-hide-text' => 'Text vun de Version verschwinne losse',
+'revdelete-hide-text' => 'Text vun de Version',
 'revdelete-radio-same' => '(net ennere)',
 'revdelete-radio-set' => 'Ya',
 'revdelete-radio-unset' => 'Nee',
@@ -403,7 +424,7 @@ Paesswatt fer nau: $2',
 'search-section' => '(Abschnitt $1)',
 'search-suggest' => 'Iss „$1“ gemeent?',
 'search-interwiki-caption' => 'Schweschder Projects',
-'search-interwiki-default' => '$1 Results:',
+'search-interwiki-default' => 'Results vun $1:',
 'search-interwiki-more' => '(weidere)',
 'searchall' => 'all',
 'powersearch-ns' => 'Guck uff in Blatznaame:',
@@ -435,14 +456,16 @@ Paesswatt fer nau: $2',
 'prefs-custom-css' => 'CSS vum Yuuser',
 'prefs-custom-js' => 'JavaScript vum Yuuser',
 'youremail' => 'E-Poschde:',
-'username' => 'Yuuser-Naame:',
-'uid' => 'Yuuser-ID:',
-'prefs-memberingroups' => 'Mitglied vun de {{PLURAL:$1|Yuuser-Druppe|Yuuser-Druppe}}:',
+'username' => '{{GENDER:$1|Yuuser-Naame}}:',
+'uid' => '{{GENDER:$1|Yuuser-ID}}:',
+'prefs-memberingroups' => '{{GENDER:$2|Mitglied}} vun de {{PLURAL:$1|Yuuser-Druppe|Yuuser-Druppe}}:',
 'yourlanguage' => 'Schprooch:',
 'yourgender' => 'Geschlecht:',
-'gender-female' => 'Weiblich',
+'gender-female' => 'Ich bin weiblich',
 'email' => 'E-Poschde',
 'prefs-signature' => 'Unnerschrift',
+'prefs-editor' => 'Schreiwer',
+'prefs-preview' => 'Aasicht',
 'prefs-diffs' => 'Unnerschidd vun Versione',
 
 # User rights
@@ -672,7 +695,7 @@ Paesswatt fer nau: $2',
 'emailsent' => 'E-Poscht naus gschickt',
 
 # Watchlist
-'watchlist' => 'Mei Watsch-Lischt',
+'watchlist' => 'Watsch-Lischt',
 'mywatchlist' => 'Watsch-Lischt',
 'watchlistfor2' => 'Vun $1 $2',
 'watch' => 'watsche',
@@ -737,10 +760,10 @@ Guck $2 fer e Lischt vun de letscht Leschunge.',
 'blanknamespace' => '(Bledder)',
 
 # Contributions
-'contributions' => 'Ardickele vum Yuuser',
+'contributions' => 'Ardickele vum {{GENDER:$1|Yuuser}}',
 'contributions-title' => 'Ardickele vun „$1“',
 'mycontris' => 'Mei Ardickele',
-'contribsub2' => 'Fer $1 ($2)',
+'contribsub2' => 'Fer {{GENDER:$3|$1}} ($2)',
 'uctop' => '(ewwerscht)',
 'month' => 'unn Munet:',
 'year' => 'bis Yaahr:',
index 95b2983..efb0211 100644 (file)
@@ -252,7 +252,6 @@ $1',
 'disclaimers' => 'Hafdungsausschluß',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Unaschdizung fas Beawaide',
-'helppage' => 'Help:Inhald',
 'mainpage' => 'Schdadsaid',
 'mainpage-description' => 'Schdadsaid',
 'policy-url' => 'Project:Grundsedz',
@@ -437,7 +436,7 @@ Nemmen onnare.',
 '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).
+Fa die Said õzleesche, konnschd do im Käschdl unne õfonge mid schraiwe (gugg [$1 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>.',
index 5972860..60f249d 100644 (file)
@@ -43,6 +43,7 @@
  * @author Odie2
  * @author Olgak85
  * @author Peter Bowman
+ * @author Pio387
  * @author Przemub
  * @author Reedy
  * @author Remedios44
@@ -354,7 +355,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Przesyłaj mi kopie wiadomości, które wysyłam do innych użytkowników',
 'tog-diffonly' => 'Nie pokazuj treści stron pod porównaniami zmian',
 'tog-showhiddencats' => 'Pokazuj ukryte kategorie',
-'tog-noconvertlink' => 'Wyłącz konwersję tytułów w linkach',
 'tog-norollbackdiff' => 'Pomiń pokazywanie zmian po użyciu funkcji „cofnij”',
 'tog-useeditwarning' => 'Ostrzegaj mnie, gdy opuszczam stronę edycji bez zapisania zmian',
 'tog-prefershttps' => 'Zawsze używaj bezpiecznego połączenia po zalogowaniu',
@@ -566,7 +566,6 @@ $1',
 'disclaimers' => 'Informacje prawne',
 'disclaimerpage' => 'Project:Informacje prawne',
 'edithelp' => 'Pomoc w edycji',
-'helppage' => 'Help:Spis treści',
 'mainpage' => 'Strona główna',
 'mainpage-description' => 'Strona główna',
 'policy-url' => 'Project:Zasady',
@@ -765,8 +764,7 @@ Nie zapomnij dostosować [[Special:Preferences|preferencji]].',
 'gotaccountlink' => 'Zaloguj się',
 'userlogin-resetlink' => 'Zapomniałeś danych do zalogowania się?',
 'userlogin-resetpassword-link' => 'Nie pamiętasz hasła?',
-'helplogin-url' => 'Help:Logowanie',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoc z logowaniem]]',
+'userlogin-helplink2' => 'Pomoc przy logowaniu',
 'userlogin-loggedin' => 'Zalogowano jako {{GENDER:$1|$1}}.
 Użyj poniższego formularza, aby zalogować się jako inny użytkownik.',
 'userlogin-createanother' => 'Załóż nowe konto',
@@ -865,6 +863,7 @@ Odczekaj $1 zanim ponowisz próbę.',
 'createacct-another-realname-tip' => 'Wpisanie imienia i nazwiska nie jest obowiązkowe.
 Jeśli zdecydujesz się je podać, zostaną użyte, by udokumentować Twoje autorstwo.',
 'pt-login' => 'Zaloguj się',
+'pt-login-button' => 'Zaloguj się',
 'pt-createaccount' => 'Utwórz konto',
 'pt-userlogout' => 'Wyloguj',
 
@@ -897,7 +896,10 @@ Aby dokończyć logowanie, musisz ustawić nowe hasło tutaj:',
 'resetpass-temp-password' => 'Tymczasowe hasło:',
 'resetpass-abort-generic' => 'Zmiana hasła została przerwana przez rozszerzenie.',
 'resetpass-expired' => 'Twoje hasło wygasło. Proszę ustawić nowe hasło do logowania.',
-'resetpass-expired-soft' => 'Twoje hasło wygasło i musi zostać zresetowane. Proszę wybrać nowe hasło albo kliknąć przycisk Anuluj, aby zresetować je później.',
+'resetpass-expired-soft' => 'Twoje hasło wygasło i musi zostać zresetowane. Proszę wybrać nowe hasło albo kliknąć na "{{int:resetpass-submit-cancel}}", aby zresetować je później.',
+'resetpass-validity-soft' => 'Twoje hasło jest niepoprawne: $1
+
+Wybierz teraz nowe hasło albo kliknij „{{int:resetpass-submit-cancel}}”, aby zresetować je później.',
 
 # Special:PasswordReset
 'passwordreset' => 'Wyczyść hasło',
@@ -1042,7 +1044,7 @@ Mogła zostać przeniesiona lub usunięta podczas przeglądania tej strony.',
 Hasło dla tego nowego konta po zalogowaniu można zmienić na stronie ''[[Special:ChangePassword|zmiana hasła]]''.",
 'newarticle' => '(Nowy)',
 'newarticletext' => "Brak strony o tym tytule.
-Jeśli chcesz ją utworzyć, wpisz treść strony w poniższym polu (więcej informacji odnajdziesz [[{{MediaWiki:Helppage}}|na stronie pomocy]]).
+Jeśli chcesz ją utworzyć, wpisz treść strony w poniższym polu (więcej informacji odnajdziesz [$1 na stronie pomocy]).
 Jeśli utworzenie nowej strony nie było Twoim zamiarem, wciśnij ''Wstecz'' w swojej przeglądarce.",
 'anontalkpagetext' => "---- ''To jest strona dyskusji anonimowego użytkownika – takiego, który nie ma jeszcze swojego konta lub nie chce go w tej chwili używać.
 By go identyfikować, używamy adresów IP.
@@ -1062,11 +1064,11 @@ Upewnij się, czy na pewno zamierza{{GENDER:|łeś|łaś|sz}} utworzyć lub zmod
 'userpage-userdoesnotexist-view' => 'Konto użytkownika „$1” nie jest zarejestrowane.',
 'blocked-notice-logextract' => '{{GENDER:$1|Ten użytkownik|Ta użytkowniczka}} jest obecnie {{GENDER:$1|zablokowany|zablokowana}}.
 Ostatni wpis rejestru blokad jest pokazany poniżej.',
-'clearyourcache' => "'''Uwaga:''' aby zobaczyć zmiany po zapisaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.
-* '''Firefox / Safari:''' Przytrzymaj ''Shift'' podczas klikania ''Odśwież bieżącą stronę'', lub naciśnij klawisze ''Ctrl+F5'' lub ''Ctrl+R'' (''⌘-R'' na komputerze Mac)
-* '''Google Chrome:''' Naciśnij ''Ctrl-Shift-R'' (''⌘-Shift-R'' na komputerze Mac)
-* '''Internet Explorer:''' Przytrzymaj ''Ctrl'' jednocześnie klikając ''Odśwież'' lub naciśnij klawisze ''Ctrl+F5''
-* '''Opera:''' Wyczyść pamięć podręczną w ''Narzędzia → Preferencje''",
+'clearyourcache' => '<strong>Uwaga:</strong> aby zobaczyć zmiany po zapisaniu, może zajść potrzeba wyczyszczenia pamięci podręcznej przeglądarki.
+* <strong>Firefox / Safari:</strong> Przytrzymaj <em>Shift</em> podczas klikania <em>Odśwież bieżącą stronę</em>, lub naciśnij klawisze <em>Ctrl+F5</em> lub <em>Ctrl+R</em> (<em>⌘-R</em> na komputerze Mac)
+* <strong>Google Chrome:</strong> Naciśnij <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> na komputerze Mac)
+* <strong>Internet Explorer:</strong> Przytrzymaj <em>Ctrl</em>, jednocześnie klikając <em>Odśwież</em>, lub naciśnij klawisze <em>Ctrl+F5</em>
+* <strong>Opera:</strong> Wyczyść pamięć podręczną w <em>Narzędzia → Preferencje</em>',
 'usercssyoucanpreview' => "'''Podpowiedź:''' Użyj przycisku „Podgląd”, aby przetestować nowy arkusz stylów CSS przed jego zapisaniem.",
 'userjsyoucanpreview' => "'''Podpowiedź:''' Użyj przycisku „Podgląd”, aby przetestować nowy kod JavaScript przed jego zapisaniem.",
 'usercsspreview' => "'''Pamiętaj, że to tylko podgląd arkusza stylów CSS – nic jeszcze nie zostało zapisane!'''",
@@ -1290,8 +1292,8 @@ wybrana wersja nie istnieje lub próbowano ukryć wersję bieżącą.',
 'revdelete-show-file-submit' => 'Tak',
 'revdelete-selected' => "'''{{PLURAL:$2|Zaznaczona wersja|Zaznaczone wersje}} strony [[:$1]]:'''",
 'logdelete-selected' => "'''Zaznaczone {{PLURAL:$1|zdarzenie|zdarzenia}} z rejestru:'''",
-'revdelete-text' => "'''Usunięte wersje i czynności będą nadal widoczne w historii strony i rejestrach, ale ich treść nie będzie publicznie dostępna.'''
-Inni administratorzy {{GRAMMAR:D.lp|{{SITENAME}}}} nadal będą mieć dostęp do ukrytych treści oraz będą mogli je odtworzyć używając standardowych mechanizmów, chyba że nałożono dodatkowe ograniczenia.",
+'revdelete-text-text' => 'Usunięte wersje będą nadal widoczne w historii strony, ale niektóre fragmenty ich treści nie będą dostępne dla wszystkich.',
+'revdelete-text-file' => 'Usunięte wersje pliku będą nadal widoczne w historii pliku, ale niektóre fragmenty ich treści nie będą dostępne dla wszystkich.',
 'revdelete-confirm' => 'Potwierdź, że chcesz to zrobić zgodnie z [[{{MediaWiki:Policy-url}}|zasadami]] i że rozumiesz konsekwencje.',
 'revdelete-suppress-text' => "Ukrywanie powinno być używane '''wyłącznie''' w sytuacji:
 * Informacji, która może być zniesławieniem
@@ -1424,7 +1426,7 @@ Zazwyczaj jest to spowodowane przestarzałym linkiem do usuniętej strony. Powó
 'search-file-match' => '(odpowiada zawartości pliku)',
 'search-suggest' => 'Czy chodziło Ci o: $1',
 'search-interwiki-caption' => 'Projekty siostrzane',
-'search-interwiki-default' => 'Wyniki dla $1:',
+'search-interwiki-default' => 'Wyniki od $1:',
 'search-interwiki-more' => '(więcej)',
 'search-relatedarticle' => 'Pokrewne',
 'searcheverything-enable' => 'Szukaj we wszystkich przestrzeniach nazw',
@@ -1898,7 +1900,7 @@ Sprawdź historię usunięć tamtego pliku zanim prześlesz go ponownie.',
 'uploaddisabledtext' => 'Możliwość przesyłania plików została wyłączona.',
 'php-uploaddisabledtext' => 'Przesyłanie plików PHP zostało zablokowane. Sprawdź ustawienie „file_uploads”.',
 'uploadscripted' => 'Plik zawiera kod HTML lub skrypt, który może zostać błędnie zinterpretowany przez przeglądarkę internetową.',
-'uploadscriptednamespace' => "Ten plik SVG zawiera niepoprawną nazwę '$1'",
+'uploadscriptednamespace' => "Ten plik SVG zawiera niedozwoloną przestrzeń nazw '$1'",
 'uploadinvalidxml' => 'Nie udało się przeanalizować XML w załadowanym pliku.',
 'uploadvirus' => 'W pliku jest wirus! Szczegóły: $1',
 'uploadjava' => 'Ten plik zawiera deklarację klasy Java skompresowaną ZIP.
@@ -2272,7 +2274,7 @@ Każdy wiersz zawiera linki do pierwszego i drugiego przekierowania oraz link, d
 'deadendpagestext' => 'Poniższe strony nie posiadają odnośników do innych stron znajdujących się w {{GRAMMAR:MS.lp|{{SITENAME}}}}.',
 'protectedpages' => 'Strony zabezpieczone',
 'protectedpages-indef' => 'Tylko strony zabezpieczone na zawsze',
-'protectedpages-summary' => 'Ta strona zawiera istniejące strony które są chronione. Aby uzyskać listę tytułów których stworzenie jest zabronione, zobacz [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Ta strona zawiera listę stron, które są obecnie chronione. Aby uzyskać listę tytułów, których utworzenie jest zabronione, zobacz [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Tylko strony zabezpieczone rekursywnie',
 'protectedpages-noredirect' => 'Ukryj przekierowania',
 'protectedpagesempty' => 'Żadna strona nie jest obecnie zabezpieczona z podanymi parametrami.',
@@ -2285,7 +2287,7 @@ Każdy wiersz zawiera linki do pierwszego i drugiego przekierowania oraz link, d
 'protectedpages-unknown-timestamp' => 'Nieznane',
 'protectedpages-unknown-performer' => 'Użytkownik nieznany',
 'protectedtitles' => 'Zabezpieczone nazwy stron',
-'protectedtitles-summary' => 'Ta strona zawiera tytuły, których tworzenie jest zabronione. Aby zobaczyć listę istniejących stron które są chronione, odwiedź tą stronę [[{{#special:ProtectedPages}}]]',
+'protectedtitles-summary' => 'Ta strona zawiera listę tytułów, których utworzenie jest obecnie zabronione. Aby zobaczyć listę istniejących stron, które są chronione, zobacz [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Dla tych ustawień dopuszczalne jest utworzenie stron o dowolnej nazwie.',
 'listusers' => 'Lista użytkowników',
 'listusers-editsonly' => 'Pokaż tylko użytkowników z edycjami',
@@ -2382,7 +2384,7 @@ Wymaga podania co najmniej domeny najwyższego poziomu np. „*.org”.<br />
 # Special:ActiveUsers
 'activeusers' => 'Lista aktywnych użytkowników',
 'activeusers-intro' => 'Poniżej znajduje się lista użytkowników, którzy byli aktywni w ciągu {{PLURAL:$1|ostatniego dnia|ostatnich $1 dni}}.',
-'activeusers-count' => 'w ciągu {{PLURAL:$3|ostatniego dnia|ostatnich $3 dni}} {{GENDER:$2|wykonał|wykonała|wykonał}} $1 {{PLURAL:$1|edycję|edycje|edycji}}',
+'activeusers-count' => 'w ciągu {{PLURAL:$3|ostatniego dnia|ostatnich $3 dni}} {{GENDER:$2|wykonał|wykonała|wykonał}} $1 {{PLURAL:$1|operację|operacje|operacji}}',
 'activeusers-from' => 'Pokaż użytkowników zaczynając od',
 'activeusers-hidebots' => 'Ukryj boty',
 'activeusers-hidesysops' => 'Ukryj administratorów',
@@ -2556,7 +2558,7 @@ Zobacz na stronie $2 rejestr ostatnio wykonanych usunięć.',
 Usuwanie jej zostało ograniczone ze względu na możliwość zakłócenia pracy {{GRAMMAR:D.lp|{{SITENAME}}}}.',
 'delete-warning-toobig' => 'Ta strona ma bardzo długą historię edycji – ponad $1 {{PLURAL:$1|zmianę|zmiany|zmian}}.<br />
 Bądź ostrożny, ponieważ usunięcie jej może spowodować zakłócenia w pracy {{GRAMMAR:D.lp|{{SITENAME}}}}.',
-'deleting-backlinks-warning' => "''' Uwaga:''' Do strony, którą masz zamiar usunąć, odwołują się inne strony.",
+'deleting-backlinks-warning' => "''' Uwaga:''' Do strony, którą masz zamiar usunąć, odwołują się [[Special:WhatLinksHere/{{FULLPAGENAME}}|inne strony]].",
 
 # Rollback
 'rollback' => 'Cofnij edycję',
@@ -2608,7 +2610,7 @@ Wszystkie aktywne zabezpieczenia odnajdziesz na liście [[Special:ProtectedPages
 Obecne ustawienia dla strony '''$1''' to:",
 'protect-locked-dblock' => "Nie można zmienić poziomu zabezpieczenia z powodu działającej blokady bazy danych. Obecne ustawienia dla strony '''$1''' to:",
 'protect-locked-access' => "Nie masz uprawnień do zmiany poziomu zabezpieczenia strony. 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-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. Zmiany stopnia zabezpieczenia tej strony nie wpłyną na dziedziczenie zabezpieczenia.',
 'protect-default' => 'Dostęp mają wszyscy użytkownicy',
 'protect-fallback' => 'Wymaga uprawnień „$1”',
 'protect-level-autoconfirmed' => 'Dozwolone tylko dla użytkowników automatycznie zatwierdzonych',
@@ -2735,7 +2737,7 @@ Poniżej znajduje się ostatni wpis w rejestrze blokowania.',
 'sp-contributions-search' => 'Szukaj wkładu',
 'sp-contributions-username' => 'Adres IP lub nazwa użytkownika',
 'sp-contributions-toponly' => 'Pokaż wyłącznie ostatnie wersje',
-'sp-contributions-newonly' => 'Pokazuj wyłącznie stworzenia stron',
+'sp-contributions-newonly' => 'Pokazuj tylko edycje tworzące nową stronę',
 'sp-contributions-submit' => 'Szukaj',
 
 # What links here
@@ -2819,7 +2821,7 @@ Przejdź do [[Special:BlockList|listy blokad]], by przejrzeć blokady.',
 'blocklist-timestamp' => 'Sygnatura czasowa',
 'blocklist-target' => 'Cel',
 'blocklist-expiry' => 'Upływa',
-'blocklist-by' => 'Zarządzanie blokowaniem',
+'blocklist-by' => 'Administrator blokujący',
 'blocklist-params' => 'Parametry blokad',
 'blocklist-reason' => 'Powód',
 'ipblocklist-submit' => 'Szukaj',
index 6096568..1e1971e 100644 (file)
@@ -79,7 +79,6 @@ $messages = array(
 'tog-ccmeonemails' => "Mandeme na còpia dij mëssagi ëd pòsta eletrònica che i-j mando a j'àotri utent",
 'tog-diffonly' => 'Smon-e pa ël contnù dle pàgine sota le diferense',
 'tog-showhiddencats' => 'Smon-e le categorìe stërmà',
-'tog-noconvertlink' => "Disativé la conversion dij tìtoj ant j'anliure",
 'tog-norollbackdiff' => "Fé nen vëdde le diferense apress d'avèj ripristinà",
 'tog-useeditwarning' => 'Aviseme quand che i chito na pàgina ëd modìfiche con dle modìfiche nen salvà',
 'tog-prefershttps' => "Dovré sempe na conession sigura pr'ësté andrinta al sistema",
@@ -291,7 +290,6 @@ $1",
 'disclaimers' => 'Avertense',
 'disclaimerpage' => 'Project:Avertense generaj',
 'edithelp' => 'Agiut a la modìfica',
-'helppage' => 'Help:Contnù',
 'mainpage' => 'Intrada',
 'mainpage-description' => 'Intrada',
 'policy-url' => 'Project:Régole',
@@ -487,8 +485,6 @@ Che a dësmentia pa ëd cambié ij [[Special:Preferences|sò gust për {{SITENAM
 'gotaccountlink' => "Ch'a rintra ant ël sistema",
 'userlogin-resetlink' => "A l'ha dësmentià ij sò detaj për intré ant ël sistema?",
 'userlogin-resetpassword-link' => 'Ciav dësmentià?',
-'helplogin-url' => 'Help:Conession',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Agiut con la conession]]',
 'userlogin-loggedin' => "A l'é già rintrà an ël sistema tanme {{GENDER:$1|$1}}.
 Ch'a deuvra ël formolari sì-sota për rintré coma n'àutr n'utent.",
 'userlogin-createanother' => "Creé n'àutr cont",
@@ -615,7 +611,7 @@ Për finì ëd rintré ant ël sistema, a dev definì na neuva ciav ambelessì:"
 'resetpass-temp-password' => 'Ciav provisòria:',
 'resetpass-abort-generic' => "La modìfica ëd la ciav a l'é stàita anulà da n'estension.",
 'resetpass-expired' => "Soa ciav a l'é scadùa. Për piasì, ch'a definissa na ciav neuva për rintré ant ël sistema.",
-'resetpass-expired-soft' => "Soa ciav a l'é scadùa e a l'ha damanca d'esse arnovà. Për piasì, ch'a serna na neuva ciav adess o ch'a sgnaca su anulé për cangela pi tard.",
+'resetpass-expired-soft' => "Soa ciav a l'é scadùa e a l'ha damanca d'esse arnovà. Për piasì, ch'a serna na neuva ciav adess o ch'a sgnaca su «{{int:resetpass-submit-cancel}}» për cangela pi tard.",
 
 # Special:PasswordReset
 'passwordreset' => 'Ri-inissialisassion ëd la ciav',
@@ -757,7 +753,7 @@ A peul essa stàita tramudà o scancelà antramentre ch'a vëdìa la pàgina.",
 A peul esse modificà an sla pàgina ''[[Special:ChangePassword|modìfica dla ciav]]'' apress esse rintrà ant ël sistema.",
 'newarticle' => '(Neuv)',
 'newarticletext' => "A l'é andaje dapress a na liura a na pàgina che a esist ancor nen.
-Për creé la pàgina, ch'a ancamin-a a scrive ant lë spassi sì-sota (vëdde la [[{{MediaWiki:Helppage}}|pàgina d'agiut]] për savèjne ëd pì).
+Për creé la pàgina, ch'a ancamin-a a scrive ant lë spassi sì-sota (vëdde la [$1 pàgina d'agiut] për savèjne ëd pì).
 S'a l'é rivà sì për eror, ch'a sgnaca ël boton '''andaré''' ëd sò navigador.",
 'anontalkpagetext' => "----''Costa a l'é la pàgina ëd ciaciarade për n'utent anònim che a l'é ancó pa dorbusse un cont, ò pura che a lo deuvra nen. Alora i l'oma da dovré ël nùmer d'adrëssa IP për deje n'identificassion a chiel o chila.
 N'adrëssa IP përparèj a peul esse partagià da vàire utent.
@@ -1000,8 +996,6 @@ Chiel a peul ancora s-ciairé costa diferensa; a peulo essje pì 'd detaj ant ë
 'revdelete-show-file-submit' => 'Bò!',
 'revdelete-selected' => "'''{{PLURAL:$2|Revision|Revision}} selessionà për [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Event|Event}} dël registr selessionà:'''",
-'revdelete-text' => "Le version scancelà e j'event a së s-ciaireran sempe ant la stòria dla pàgina e ant ij registr, ma sò test al pùblich a j'andrà pì nen.'''
-J'àutri aministrator dzora a {{SITENAME}} a saran ancó sempe bon a s-ciairé ël contnù stërmà e a podran disdëscancelelo andré con la midema antërfacia, sempe che a sia nen stàita butà na restrission adissional.",
 'revdelete-confirm' => "Për piasì, ch'a confema ch'a veul fé sòn, ch'as rend cont dle conseguense, e ch'a lo fa an acòrd con [[{{MediaWiki:Policy-url}}|le régole]].",
 'revdelete-suppress-text' => "La scancelassion a dovrìa '''mach''' esse dovrà an costi cas:
 * Anformassion ch'a podrìo esse difamatòrie
@@ -1464,7 +1458,7 @@ Costa anformassion a sarà pùblica.",
 'recentchanges-legend-heading' => "'''Legend:'''",
 'recentchanges-legend-newpage' => '(vëdde ëdcò [[Special:NewPages|lista dle pàgine neuve]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => ' Ambelessì sota a-i é la lista dle modìfiche da <b>$2</b> (fin-a a <b>$1</b>).',
+'rcnotefrom' => 'Ambelessì sota a-i é la lista dle modìfiche da <strong>$2</strong> (mostrà fin-a a <strong>$1</strong>).',
 'rclistfrom' => 'Mostré le modìfiche a parte da $1',
 'rcshowhideminor' => '$1 le modìfiche cite',
 'rcshowhideminor-show' => 'Smon-e',
@@ -1613,7 +1607,7 @@ A dovrìa ciamé a cheidun con la possibilità ëd vëdde ij dàit dj'archivi el
 'php-uploaddisabledtext' => "Ij cariament d'archivi a son disabilità an PHP.
 Për piasì, ch'a controla l'ampostassion file_uploads.",
 'uploadscripted' => "St'archivi-sì a l'ha andrinta chèich-còs (dël còdes HTML ò pura un senari) che a podrìa esse travajà mal da chèich programa ëd navigassion.",
-'uploadscriptednamespace' => "S'archivi SVG a conten në spassi nominal «1» nen autorisà",
+'uploadscriptednamespace' => "S'archivi SVG a conten në spassi nominal «$1» nen autorisà",
 'uploadinvalidxml' => "L'XML ant l'archivi carià a l'ha nen podù esse analisà.",
 'uploadvirus' => "St'archivi-sì a l'han andrinta un '''vìrus!''' Detaj: $1",
 'uploadjava' => "L'archivi a l'é n'archivi ZIP ch'a conten n'archivi Java .class.
@@ -1984,7 +1978,7 @@ Adess a l'é na ridiression a [[$2]].",
 'deadendpagestext' => "Le pàgine ambelessì-sota a l'han pa d'anliure anvers a j'àutre pàgine ëd {{SITENAME}}.",
 'protectedpages' => 'Pàgine sota protession',
 'protectedpages-indef' => 'Mach protession anfinìe',
-'protectedpages-summary' => "Costa pàgina a lista dle pàgine esistente che a son al moment protegiùe. Për na lista dij tìtoj ch'a son protet da la creassion, vëdde [[{{#special:ProtectedTitles}}]].",
+'protectedpages-summary' => "Costa pàgina a lista dle pàgine esistente che a son al moment protegiùe. Për na lista dij tìtoj ch'a son protet da la creassion, vëdde [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].",
 'protectedpages-cascade' => 'Mach protession a cascà',
 'protectedpages-noredirect' => 'Stërmé le ridiression',
 'protectedpagesempty' => 'Për adess a-i é pa gnun-a pàgina protegiùa',
@@ -1997,7 +1991,7 @@ Adess a l'é na ridiression a [[$2]].",
 'protectedpages-unknown-timestamp' => 'Sconossùa',
 'protectedpages-unknown-performer' => 'Utent ësconossù',
 'protectedtitles' => 'Tìtoj protegiù',
-'protectedtitles-summary' => 'Costa pàgina a lista dij tìtoj che a son al moment protegiù da la creassion. Për na lista dle pàgine esistente che a son protegiùe, vëdde [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Costa pàgina a lista dij tìtoj che a son al moment protegiù da la creassion. Për na lista dle pàgine esistente che a son protegiùe, vëdde [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => "A-i é pa gnun tìtol protegiù ch'a-i intra coi criteri ch'a l'ha butà.",
 'listusers' => "Lista dj'utent",
 'listusers-editsonly' => "Mostré mach j'utent ch'a l'han fàit dle modìfiche",
@@ -2274,7 +2268,7 @@ Lë scancelassion ëd pàgine parèj a l'é stàita limità për evité ch'as fa
 'delete-warning-toobig' => "Sta pàgina-sì a l'ha na stòria motobin longa, bele pì che $1 {{PLURAL:$1|revision|revision}}.
 A scancelela as peul fesse darmagi a j'operassion dla base ëd dat ëd {{SITENAME}};
 ch'a daga da ment a lòn ch'a fa.",
-'deleting-backlinks-warning' => "'''Avis:''' D'àutre pàgine a l'han na liurao a transcludo a la pàgina che chiel a veul ëscancelé.",
+'deleting-backlinks-warning' => "'''Avis:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|D'àutre pàgine]] a l'han na liura o a transcludo la pàgina che chiel a veul ëscancelé.",
 
 # Rollback
 'rollback' => 'Gavé via le modìfiche',
@@ -2324,7 +2318,7 @@ Ch'a varda la [[Special:ProtectedPages|Lista dle pàgine protegiùe]] për la li
 Ambelessì a-i son le regolassion corente për la pàgina '''$1''':",
 'protect-locked-access' => "Sò cont a l'ha pa la qualìfica për podèj cambié ij livej ëd protession.
 Ambelessì a-i son j'ampostassion atuaj për la pàgina '''$1''':",
-'protect-cascadeon' => "Sta pàgina për adess a l'é blocà përchè a-i intra ant {{PLURAL:$1|la pàgina sì-sota, ch'a l'ha|le-pàgine sì sota, ch'a l'han}} na protession a sàut anvisca. A peul cambie-je sò livel ëd protession a sta pàgina-sì ma lòn a tochërà pa la protession a sàut.",
+'protect-cascadeon' => "Sta pàgina për adess a l'é blocà përchè a-i intra ant {{PLURAL:$1|la pàgina sì-sota, ch'a l'ha|le-pàgine sì sota, ch'a l'han}} na protession a sàut anvisca. Le modìfiche al livel ëd protession dë sta pàgina-sì a tochëran pa la protession a sàut.",
 'protect-default' => "Autorisé tùit j'utent",
 'protect-fallback' => "Përmëtt mach a j'utent con ël përmess «$1»",
 'protect-level-autoconfirmed' => "Përmëtte mach j'utent autoconfirmà",
index 1b94c0d..15a5ffc 100644 (file)
@@ -250,7 +250,6 @@ $messages = array(
 'disclaimers' => 'منکرنا',
 'disclaimerpage' => 'Project:عام منکرنا',
 'edithelp' => 'لکھن وچ مدد',
-'helppage' => 'Help:لسٹ',
 'mainpage' => 'پہلا صفہ',
 'mainpage-description' => 'پہلا صفہ',
 'policy-url' => 'Project:پالیسی',
@@ -614,7 +613,7 @@ $2
 ایس نویں کھاتے دی کنجی بدلی جاسکدی  اے ''[[Special:ChangePassword|change password]]'' صفے تے لاگ ان ہون تے۔",
 'newarticle' => '(نواں)',
 'newarticletext' => 'تسی ایسے صفحے دے جوڑ توں ایتھے پہنچے او جیڑا ھلے تک نہیں بنیا۔<br />
-اس صفحہ بنانے آسطے تھلے دتے گۓ ڈبے وچ لکھنا شروع کر دیو(زیادہ رہنمائی آستے اے ویکھو [[{{MediaWiki:Helppage}}|<br />مدد دا صفحہ]])۔
+اس صفحہ بنانے آسطے تھلے دتے گۓ ڈبے وچ لکھنا شروع کر دیو(زیادہ رہنمائی آستے اے ویکھو [$1 <br />مدد دا صفحہ])۔
 اگر تسی ایتھے غلطی نال پہنچے او تے اپنے کھوجی توں "بیک" دا بٹن دبا دیو۔',
 'anontalkpagetext' => "----'' ایہ اک گمنام ورتن والے دا گل بات دا صفہ اے جینے ہلے کھاتہ نئیں کھولیا یا او اینون ورتدا نئیں۔
 سانوں فیر نمبراں والا آئی پی پتہ ورتنا پوے گا اونوں لئی. ایہو جیا آئی پی پتہ گئی ورتن والے ورت سکدے نیں۔ 
@@ -828,8 +827,6 @@ $3 نے ''$2'' وجہ دسی اے۔",
 'revdelete-show-file-submit' => 'ہاں',
 'revdelete-selected' => "'''{{PLURAL:$2|چنی ریوین|چنیاں ریویناں}} دی [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|چنیا لاگ واقعہ|چنے لاگ واقعے}}:'''",
-'revdelete-text' => "'''مٹائیاں ریویناں تے واقعے صفے دے رکارڈ تے لاگ چ دسن گے، پر اودا کج حصہ عام لوکاں ل‏ی لکیا ہووے گا'''
-دوجے مکھیا  {{سائیٹناں}} ہلے وی ایس قابل نیں جے لکی لکھت نوں ویکھ سکن تے اینوں واپس لے آن دوبارہ اودوں تک جے ایدے تے ہور روکاں ناں لا دتیا جان.",
 'revdelete-confirm' => 'اے پکا کرلو جے تسیں ایہ کرنا چاندے او، تے توانوں ایدے نتیجے دا پتہ اے، تے تسیں [[{{MediaWiki:Policy-url}}|پالیسی]] تے چل کے ک رۓ او۔',
 'revdelete-suppress-text' => "دبانا اودوں ای ٹھیک اے جدوں اے تھلے دتے کۓ مسلیاں لئی ہووے۔
 * غلط جانکاری
index 253e579..7eb6c47 100644 (file)
@@ -241,7 +241,6 @@ $messages = array(
 'disclaimers' => 'Ιμπρέσουμ',
 'disclaimerpage' => 'Project:Ιμπρέσουμ',
 'edithelp' => "Βοήθεια για τ' αλλαγμαν",
-'helppage' => 'Help:Περιεχόμενα',
 'mainpage' => 'Αρχικόν σελίδα',
 'mainpage-description' => 'Αρχικόν σελίδα',
 'policy-url' => 'Project:Πολιτική',
@@ -487,7 +486,7 @@ $messages = array(
 Το σημάδι για το καινούρεον την λογαρίαν επορείς να αλλάζεις ασα την σελίδαν ''[[Special:ChangePassword|άλλαξον λογαρίαν]]'' με τ' έμπαζμανεσουν.",
 'newarticle' => '(Καινούρεον)',
 'newarticletext' => "Έρθατεν ασ' έναν σύνδεσμον σ' έναν εύκαιρον σελίδαν.
-Για να εφτάτε τη σελίδαν, αρχινέστε γράψιμον σο χουτίν αφκά (δεαβάστεν τη [[{{MediaWiki:Helppage}}|σελίδαν βοήθειας]] και μαθέστεν κιάλλα).
+Για να εφτάτε τη σελίδαν, αρχινέστε γράψιμον σο χουτίν αφκά (δεαβάστεν τη [$1 σελίδαν βοήθειας] και μαθέστεν κιάλλα).
 Εάν 'κ θέλετε ν' εφτάτε αβούτεν τη σελίδαν, πατήστε το κουμπίν το λεει '''οπίς''' και δεβάτεν οπίς απ' όθεν έρθατεν.",
 'noarticletext' => "Αβούτεν η σελίδαν 'κ εχ' κείμενον απές ακόμαν.
 [[Special:Search/{{PAGENAME}}|Εύρον αβούτον τον τίτλον]] σ' αλλέα τοι σελίδας,
index 4a210e5..b03fc4a 100644 (file)
@@ -227,7 +227,6 @@ Pāusai en kategōrijai "$1"',
 'disclaimers' => 'Etrāwingiskwas arāikinsenei',
 'disclaimerpage' => 'Project:Etrāwingiskwas arāikinsenei',
 'edithelp' => 'Redigīsnas pagalba',
-'helppage' => 'Help:Ēnturs',
 'mainpage' => 'Galwas pāusan',
 'mainpage-description' => 'Galwas pāusan',
 'policy-url' => 'Project:Pōlitiki',
@@ -525,7 +524,7 @@ Padāis e-mail adressi be padrūktinais din en swajāmans [[Special:Preferences|
 'accmailtitle' => 'Kliptaswīrds tengīntan.',
 'newarticle' => '(Nāuns)',
 'newarticletext' => 'Tu assei autengīntan pra autengīnsenin en dabber niekzistīntin pāusan.
-Kāi teīklai šin pāusan, pagaūneis enpeisātun en zemmaišasmu lāukan (wīdais [[{{MediaWiki:Helppage}}|help page]] per tūls infōrmaciōnis).
+Kāi teīklai šin pāusan, pagaūneis enpeisātun en zemmaišasmu lāukan (wīdais [$1 help page] per tūls infōrmaciōnis).
 Ik tū ni kwaitīwuns(si) teīktun nāunan pāusan, gnetteis "Etwārtai" knuppan en twajjai lasātlin.',
 'anontalkpagetext' => "----''Sta ast anōnimas tērpautajas diskusiōnis pāusan - stawīdan, kawīds ni turri dabber swajjan rekkenan anga ni tērpaui din.
 Kāi identificīlai tennan, tērpawimai IP adressins.
index c658a6a..39fd18b 100644 (file)
@@ -405,7 +405,6 @@ $1',
 'disclaimers' => 'ردادعاليکونه',
 'disclaimerpage' => 'Project:ټولگړی ردادعاليک',
 'edithelp' => 'د لارښود سمون',
-'helppage' => 'Help:نيوليک',
 'mainpage' => 'لومړی مخ',
 'mainpage-description' => 'لومړی مخ',
 'policy-url' => 'Project:تگلاره',
@@ -581,8 +580,10 @@ $1',
 'gotaccountlink' => 'ننوتل',
 'userlogin-resetlink' => 'د ننوتلو مالومات مو هېر شوي؟',
 'userlogin-resetpassword-link' => 'پټنوم مو هېر شوی؟',
+'userlogin-helplink2' => 'په ننوتلو کې مرسته',
 'userlogin-createanother' => 'بل گڼون جوړول',
 'createacct-join' => 'خپل مالومات مو لاندې ورکړئ.',
+'createacct-another-join' => 'د نوي گڼون مالومات مو لاندې ورکړئ.',
 'createacct-emailrequired' => 'برېښليک پته',
 'createacct-emailoptional' => 'برېښليک پته (اختياري)',
 'createacct-email-ph' => 'برېښليک پته مو وټاپۍ',
@@ -666,6 +667,10 @@ $1',
 لطفاً د بيا هڅې نه مخکې $1 شېبې تم شۍ.',
 'login-abort-generic' => 'غونډال کې مو ننوتل نابريالی شو - ناڅاپي بند شو',
 'loginlanguagelabel' => 'ژبه: $1',
+'pt-login' => 'ننوتل',
+'pt-login-button' => 'ننوتل',
+'pt-createaccount' => 'گڼون جوړول',
+'pt-userlogout' => 'وتل',
 
 # Email sending
 'user-mail-no-addy' => 'د يوې برېښليک پتې پرته د برېښليک لېږلو هڅه شوې.',
@@ -783,7 +788,7 @@ $1',
 'accmailtitle' => 'پټنوم ولېږل شو.',
 'newarticle' => '(نوی)',
 'newarticletext' => "تاسې د يوې داسې تړنې څارنه کړې چې لا تر اوسه پورې نه شته.
-که همدا مخ ليکل غواړۍ، نو په لانديني چوکاټ کې خپل متن وټاپۍ (د لا نورو مالوماتو لپاره د [[{{MediaWiki:Helppage}}|لارښود مخ]] وگورۍ).
+که همدا مخ ليکل غواړۍ، نو په لانديني چوکاټ کې خپل متن وټاپۍ (د لا نورو مالوماتو لپاره د [$1 لارښود مخ] وگورۍ).
 که چېرته تاسې دلته په تېروتنه راغلي ياست، نو يواځې د خپل د کتنمل '''مخ پر شا''' تڼۍ مو وټوکۍ.",
 'anontalkpagetext' => "----''دا د يوه ورکنومي کارن چې کارن-نوم نه لري او يا خپل کارن-نوم نه کاروي، د سکالو يوه پاڼه ده. نو د يوه کس د پېژندلو پخاطر موږ د هماغه کارن د انټرنېټ شمېره يا IP پته دلته ثبتوؤ. داسې يوه IP پته د ډېرو کارنانو لخوا هم کارېدلی شي. که تاسې يو ورکنومی کارن ياست او تاسې ته دا څرگندېږي چې تاسې ته نااړونده پېغامونه او تبصرې اشاره شوي، نو د نورو بې نومو کارنانو او ستاسې ترمېنځ د ټکنتوب د مخ نيونې لپاره لطفاً [[Special:UserLogin/signup|يو گڼون جوړ کړۍ]] او يا هم [[Special:UserLogin|غونډال ته ورننوځۍ]].''",
 'noarticletext' => 'دم مهال په دې مخ کې څه نشته.
@@ -984,7 +989,7 @@ $1',
 'shown-title' => 'په هر مخ $1 {{PLURAL:$1|پايله|پايلې}} ښکاره کول',
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3) کتل',
 'searchmenu-exists' => "'''په دې ويکي يو مخ د \"[[:\$1]]\" په نامه دی'''",
-'searchmenu-new' => "'''په دې ويکي د \"[[:\$1]]\" مخ جوړول!'''",
+'searchmenu-new' => '<strong>په دې ويکي د "[[:$1]]" مخ جوړول!</strong> {{PLURAL:$2|0=|See also the page found with your search.|د پلټنو موندل شوې پايلې هم وگورئ.}}',
 'searchprofile-articles' => 'مېنځپانگيز مخونه',
 'searchprofile-project' => 'د لارښود او پروژې مخونه',
 'searchprofile-images' => 'گڼرسنۍ',
@@ -1002,7 +1007,7 @@ $1',
 'search-section' => '(برخه $1)',
 'search-suggest' => 'آيا همدا مو موخه وه: $1',
 'search-interwiki-caption' => 'خورلڼې پروژې',
-'search-interwiki-default' => '$1 پايلې:',
+'search-interwiki-default' => 'پايلې له $1 څخه:',
 'search-interwiki-more' => '(نور)',
 'search-relatedarticle' => 'اړونده',
 'searcheverything-enable' => 'په ټولو نوم-تشيالونو کې پلټل',
@@ -1127,7 +1132,7 @@ $1',
 'userrights-lookup-user' => 'کارن ډلې سمبالول',
 'userrights-user-editname' => 'يو کارن نوم ورکړئ:',
 'editusergroup' => 'کارن ډلې سمول',
-'editinguser' => "د '''[[کارن:$1|$1]]''' کارن رښتې بدلول $2",
+'editinguser' => 'د <strong>[[User:$1|$1]]</strong> کارن رښتې بدلول $2',
 'userrights-editusergroup' => 'کارن ډلې سمول',
 'saveusergroups' => 'کارن ډلې خوندي کول',
 'userrights-groupsmember' => 'غړی د:',
@@ -1233,6 +1238,9 @@ $1',
 'action-userrights-interwiki' => 'په نورو ويکي گانو د کارنانو رښتې سمول',
 'action-siteadmin' => 'توکبنسټ کولپول يا نه کولپول',
 'action-sendemail' => 'برېښليکونه لېږل',
+'action-editmywatchlist' => 'خپل کتنلړ سمول',
+'action-viewmywatchlist' => 'خپل کتنلړ کتل',
+'action-viewmyprivateinfo' => 'خپل شخصي مالومات کتل',
 'action-editmyprivateinfo' => 'خپل شخصي مالومات سمول',
 
 # Recent changes
@@ -1248,15 +1256,28 @@ $1',
 'recentchanges-label-bot' => 'دا سمون يو روباټ ترسره کړی',
 'recentchanges-label-unpatrolled' => 'دغه سمون تر اوسه پورې نه دی څارل شوی',
 'recentchanges-label-plusminus' => 'د بايټونو د شمېر له مخې د مخ د بدلون کچه',
-'recentchanges-legend-newpage' => '(دا هم وگورۍ [[Special:NewPages|د نويو مخونو لړليک]])',
-'rcnotefrom' => "په همدې ځای کې لاندې هغه بدلونونه دي چې د '''$2''' نه راپدېخوا پېښ شوي (تر '''$1''' پورې ښکاره شوي).",
+'recentchanges-legend-heading' => "'''لنډونونه:'''",
+'recentchanges-legend-newpage' => '([[Special:NewPages|د نويو مخونو لړليک]] هم وگورئ)',
+'rcnotefrom' => 'دلته لاندې د <strong>$2</strong> څخه راپدېخوا پېښ شوي بدلونونه راغلي (تر <strong>$1</strong> پورې ښکاري).',
 'rclistfrom' => 'هغه نوي بدلونونه ښکاره کول چې له $1 نه پيلېږي',
 'rcshowhideminor' => 'وړې سمونې $1',
+'rcshowhideminor-show' => 'ښکاره کول',
+'rcshowhideminor-hide' => 'پټول',
 'rcshowhidebots' => 'روباټ $1',
+'rcshowhidebots-show' => 'ښکاره کول',
+'rcshowhidebots-hide' => 'پټول',
 'rcshowhideliu' => 'ثبت شوي کارنان $1',
+'rcshowhideliu-show' => 'ښکاره کول',
+'rcshowhideliu-hide' => 'پټول',
 'rcshowhideanons' => 'بې نومه کارنان $1',
+'rcshowhideanons-show' => 'ښکاره کول',
+'rcshowhideanons-hide' => 'پټول',
 'rcshowhidepatr' => '$1 څارلې سمونې',
+'rcshowhidepatr-show' => 'ښکاره کول',
+'rcshowhidepatr-hide' => 'پټول',
 'rcshowhidemine' => 'زما سمونې $1',
+'rcshowhidemine-show' => 'ښکاره کول',
+'rcshowhidemine-hide' => 'پټول',
 'rclinks' => 'هغه وروستي $1 بدلونونه ښکاره کړی چې په $2 ورځو کې پېښ شوي<br />$3',
 'diff' => 'توپير',
 'hist' => 'پېښليک',
@@ -1556,6 +1577,11 @@ $1',
 'protectedpages' => 'ژغورلي مخونه',
 'protectedpages-indef' => 'يوازې بې پايه ژغورنې',
 'protectedpages-cascade' => 'يوازې ځوړاوبيزې ژغورنې',
+'protectedpages-timestamp' => 'وخت ټاپه',
+'protectedpages-page' => 'مخ',
+'protectedpages-expiry' => 'پای نېټه',
+'protectedpages-reason' => 'سبب',
+'protectedpages-unknown-timestamp' => 'ناجوت',
 'protectedtitles' => 'ژغورلي سرليکونه',
 'listusers' => 'کارن لړليک',
 'listusers-editsonly' => 'يوازې هغه کارنان چې سمونونه يې کړي ښکاره کول',
@@ -1789,9 +1815,11 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'deleteotherreason' => 'بل/اضافه سبب:',
 'deletereasonotherlist' => 'بل سبب',
 'deletereason-dropdown' => '*د ړنگولو ټولگړی سبب
-** د ليکوال غوښتنه
+** چټيات
+** د پوهې سره دښمني
 ** د رښتو تېری
-** د پوهې سره دښمني',
+** د ليکوال غوښتنه
+** ناسمه مخ گرځېدنه',
 'delete-edit-reasonlist' => 'د ړنگولو سببونه سمول',
 
 # Rollback
@@ -1823,7 +1851,7 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'protect-summary-cascade' => 'ځوړاوبيز',
 'protect-expiring' => 'په $1 (UTC) پای ته رسېږي',
 'protect-expiring-local' => 'پای نېټه $1',
-'protect-expiry-indefinite' => 'Ù\84امحدوده',
+'protect-expiry-indefinite' => 'Ù\86امحدوده',
 'protect-cascade' => 'په همدې مخ کې د ټولو گډو مخونو څخه ژغورنه کېږي (ځوړاوبيزه ژغورنه)',
 'protect-cantedit' => 'تاسې نه شی کولای چې د دې مخ د ژغورنې په کچه کې بدلون راولی، دا ځکه چې تاسې د دې مخ د سمولو اجازه نه لری.',
 'protect-othertime' => 'بل وخت:',
@@ -1836,7 +1864,7 @@ $UNWATCHURL  نه ليدنه وکړۍ
 ** بې گټې سمونې او خپرونې
 ** ډېر لوستونکی مخ',
 'protect-edit-reasonlist' => 'د ژغورنې سببونه سمول',
-'protect-expiry-options' => '1 Ø³Ø§Ø¹Øª:1 hour,1 Ù\88رÚ\81:1 day,1 Ø§Ù\88Ù\88Ù\86Û\8d:1 week,2 Ø§Ù\88Ù\88Ù\86Û\8d:2 weeks,1 Ù\85Ù\8aاشت:1 month,3 Ù\85Ù\8aاشتÛ\90:3 months,6 Ù\85Ù\8aاشتÛ\90:6 months,1 Ú©Ø§Ù\84:1 year,Ù\84امحدوده:infinite',
+'protect-expiry-options' => '1 Ø³Ø§Ø¹Øª:1 hour,1 Ù\88رÚ\81:1 day,1 Ø§Ù\88Ù\88Ù\86Û\8d:1 week,2 Ø§Ù\88Ù\88Ù\86Û\8d:2 weeks,1 Ù\85Ù\8aاشت:1 month,3 Ù\85Ù\8aاشتÛ\90:3 months,6 Ù\85Ù\8aاشتÛ\90:6 months,1 Ú©Ø§Ù\84:1 year,Ù\86امحدوده:infinite',
 'restriction-type' => 'اجازه:',
 'restriction-level' => 'د بنديز کچه:',
 'minimum-size' => 'وړه کچه',
@@ -1943,8 +1971,10 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'ipbemailban' => 'د کارن لخوا په برېښليک رالېږلو بنديز',
 'ipbsubmit' => 'په دې کارن بنديز لگول',
 'ipbother' => 'بل وخت:',
-'ipboptions' => '2 Ø³Ø§Ø¹ØªÙ\88Ù\86Ù\87:2 hours,1 Ù\88رÚ\81:1 day,3 Ù\88رÚ\81Û\90:3 days,1 Ø§Ù\88Ù\88Ù\86Û\8d:1 week,2 Ø§Ù\88Ù\88Ù\86Û\8d:2 weeks,1 Ù\85Ù\8aاشت:1 month,3 Ù\85Ù\8aاشتÛ\90:3 months,6 Ù\85Ù\8aاشتÛ\90:6 months,1 Ú©Ø§Ù\84:1 year,Ù\84امحدوده:infinite',
+'ipboptions' => '2 Ø³Ø§Ø¹ØªÙ\88Ù\86Ù\87:2 hours,1 Ù\88رÚ\81:1 day,3 Ù\88رÚ\81Û\90:3 days,1 Ø§Ù\88Ù\88Ù\86Û\8d:1 week,2 Ø§Ù\88Ù\88Ù\86Û\8d:2 weeks,1 Ù\85Ù\8aاشت:1 month,3 Ù\85Ù\8aاشتÛ\90:3 months,6 Ù\85Ù\8aاشتÛ\90:6 months,1 Ú©Ø§Ù\84:1 year,Ù\86امحدوده:infinite',
 'ipbhidename' => 'کارن-نوم له سمون او لړليکونو پټول',
+'ipbwatchuser' => 'د دې کارن د خبرو اترو مخ او کارن مخ کتل',
+'ipb-disableusertalk' => 'د بنديز لگېدو سره دې د کارن د خبرو اترو مخ د سمولو مخنيوی هم پلي شي',
 'ipb-confirm' => 'د بنديز تاييد',
 'badipaddress' => 'ناسمه IP پته',
 'blockipsuccesssub' => 'بنديز په برياليتوب سره ولگېده',
@@ -2094,6 +2124,7 @@ $UNWATCHURL  نه ليدنه وکړۍ
 'allmessages-prefix' => 'د مختاړي پر بنسټ اړونده چاڼگر:',
 'allmessages-language' => 'ژبه:',
 'allmessages-filter-submit' => 'ورځه',
+'allmessages-filter-translate' => 'ژباړل',
 
 # Thumbnails
 'thumbnail-more' => 'لويول',
@@ -2651,9 +2682,15 @@ $5
 'version-hooks' => 'کونډۍ',
 'version-hook-name' => 'کونډۍ نوم',
 'version-version' => '(بڼه $1)',
-'version-license' => 'منښتليک',
+'version-license' => 'مېډياويکي منښتليک',
+'version-ext-license' => 'منښتليک',
+'version-ext-colheader-license' => 'منښتليک',
+'version-ext-colheader-description' => 'څرگندونه',
+'version-ext-colheader-credits' => 'ليکوالان',
+'version-license-title' => 'د $1 منښتليک',
 'version-poweredby-credits' => "دا ويکي د '''[https://www.mediawiki.org/ مېډياويکي]''' په سېک چلېږي، ټولې رښتې خوندي دي © 2001-$1 $2.",
 'version-poweredby-others' => 'نور',
+'version-poweredby-translators' => 'د translatewiki.net ژباړنان',
 'version-license-info' => 'مېډياويکي يو وړيا ساوتری دی؛ تاسې يې په ډاډه زړه د GNU د ټولگړو کارېدنو د منښتليک چې د وړيا ساوتريو د بنسټ له مخې خپور شوی، خپرولی او/يا بدلولی شی؛ د منښتليک ۲ بڼه او يا (ستاسې د خوښې) هر يوه وروستۍ بڼه.
 
 مېډياويکي د ښه کارېدنې په نيت خپور شوی، خو د ضمني سوداگريز او يا د کوم ځانگړي کار د ضمانت نه پرته. د نورو مالوماتو لپاره د GNU د ټولگړو کارېدنو منښتليک وگورۍ.
@@ -2662,6 +2699,7 @@ $5
 'version-software' => 'نصب شوی ساوتری',
 'version-software-product' => 'اېبره',
 'version-software-version' => 'بڼه',
+'version-entrypoints-header-url' => 'يو آر اېل',
 
 # Special:Redirect
 'redirect-submit' => 'ورځه',
index 8c69d22..262b1ec 100644 (file)
@@ -324,7 +324,7 @@ $magicWords = array(
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'Sublinhar ligação:',
+'tog-underline' => 'Sublinhar ligações:',
 'tog-hideminor' => 'Esconder edições menores nas mudanças recentes',
 'tog-hidepatrolled' => 'Esconder edições patrulhadas nas mudanças recentes',
 'tog-newpageshidepatrolled' => 'Esconder páginas patrulhadas na lista de páginas novas',
@@ -333,8 +333,8 @@ $messages = array(
 'tog-numberheadings' => 'Auto-numerar cabeçalhos',
 'tog-showtoolbar' => 'Mostrar barra de edição',
 'tog-editondblclick' => 'Editar páginas quando houver um clique duplo',
-'tog-editsectiononrightclick' => 'Possibilitar a edição de seções por clique com o botão direito no título da seção',
-'tog-rememberpassword' => 'Recordar os meus dados neste browser (no máximo, durante $1 {{PLURAL:$1|dia|dias}})',
+'tog-editsectiononrightclick' => 'Possibilitar a edição de secções por clique com o botão direito no título da secção',
+'tog-rememberpassword' => 'Recordar os meus dados neste navegador (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',
 'tog-watchmoves' => 'Adicionar as páginas e ficheiros que eu mover às minhas páginas vigiadas',
@@ -342,10 +342,10 @@ $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-enotifwatchlistpages' => 'Notificar-me por correio eletrónico quando uma página ou ficheiro vigiado for alterado',
-'tog-enotifusertalkpages' => 'Notificar-me por correio eletrónico quando a minha página de discussão é editada',
-'tog-enotifminoredits' => 'Notificar-me por correio eletrónico também sobre edições menores de páginas ou ficheiros',
-'tog-enotifrevealaddr' => 'Revelar o meu endereço de correio eletrónico nas notificações',
+'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',
+'tog-enotifrevealaddr' => 'Revelar o meu endereço de correio electrónico nas notificações',
 'tog-shownumberswatching' => 'Mostrar o número de utilizadores a vigiar',
 'tog-oldsig' => 'Assinatura existente:',
 'tog-fancysig' => 'Tratar assinatura como texto wiki (sem link automático)',
@@ -357,23 +357,22 @@ $messages = array(
 'tog-watchlisthideliu' => 'Esconder edições de utilizadores autenticados ao listar mudanças às páginas vigiadas',
 'tog-watchlisthideanons' => 'Esconder edições de utilizadores anónimos ao listar mudanças às páginas vigiadas',
 'tog-watchlisthidepatrolled' => 'Esconder edições patrulhadas ao listar mudanças às páginas vigiadas',
-'tog-ccmeonemails' => 'Enviar-me cópias das mensagens por correio eletrónico que eu enviar a outros utilizadores',
+'tog-ccmeonemails' => 'Enviar-me cópias das mensagens por correio electrónico que eu enviar a outros utilizadores',
 'tog-diffonly' => 'Não mostrar o conteúdo da página ao comparar duas edições',
 'tog-showhiddencats' => 'Mostrar categorias ocultas',
-'tog-noconvertlink' => 'Impossibilitar a conversão dos títulos de links',
 'tog-norollbackdiff' => 'Omitir diferenças depois de reverter edições em bloco',
 'tog-useeditwarning' => 'Avisar-me ao abandonar uma página editada sem gravar as alterações.',
-'tog-prefershttps' => 'Sempre utilizar uma conexão segura ao iniciar sessão',
+'tog-prefershttps' => 'Usar sempre uma ligação segura quando estiver autenticado',
 
 'underline-always' => 'Sempre',
 'underline-never' => 'Nunca',
-'underline-default' => 'Usar opção padrão do tema ou do browser',
+'underline-default' => 'Usar opção padrão do tema ou do navegador',
 
 # Font style option in Special:Preferences
 'editfont-style' => 'Fonte de edição:',
-'editfont-default' => 'Fonte por omissão, do browser',
+'editfont-default' => 'Fonte por omissão, do navegador',
 'editfont-monospace' => 'Fonte monoespaçada',
-'editfont-sansserif' => 'Fonte sans-serif',
+'editfont-sansserif' => 'Fonte sem serifa',
 'editfont-serif' => 'Fonte serifada',
 
 # Dates
@@ -405,7 +404,7 @@ $messages = array(
 'december' => 'dezembro',
 'january-gen' => 'janeiro',
 'february-gen' => 'fevereiro',
-'march-gen' => 'Março',
+'march-gen' => 'março',
 'april-gen' => 'abril',
 'may-gen' => 'maio',
 'june-gen' => 'junho',
@@ -445,7 +444,7 @@ $messages = array(
 '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 atualmente nenhuma página ou ficheiro multimédia.''",
+'category-empty' => "''Esta categoria não contém actualmente 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).}}',
@@ -457,7 +456,7 @@ $messages = array(
 'listingcontinuesabbrev' => 'cont.',
 'index-category' => 'Páginas indexadas',
 'noindex-category' => 'Páginas não indexadas',
-'broken-file-category' => 'Páginas com links quebrados para ficheiros',
+'broken-file-category' => 'Páginas com ligações quebradas para ficheiros',
 
 'about' => 'Sobre',
 'article' => 'Página de conteúdo',
@@ -486,13 +485,13 @@ $messages = array(
 'vector-action-move' => 'Mover',
 'vector-action-protect' => 'Proteger',
 'vector-action-undelete' => 'Restaurar',
-'vector-action-unprotect' => 'Alterar proteção',
+'vector-action-unprotect' => 'Alterar protecção',
 'vector-view-create' => 'Criar',
 'vector-view-edit' => 'Editar',
 'vector-view-history' => 'Ver histórico',
 'vector-view-view' => 'Ler',
 'vector-view-viewsource' => 'Ver fonte',
-'actions' => 'Ações',
+'actions' => 'Acções',
 'namespaces' => 'Espaços nominais',
 'variants' => 'Variantes',
 
@@ -507,9 +506,9 @@ $messages = array(
 'searcharticle' => 'Ir',
 'history' => 'Histórico',
 'history_short' => 'Histórico',
-'updatedmarker' => 'atualizado desde a minha última visita',
+'updatedmarker' => 'actualizado desde a minha última visita',
 'printableversion' => 'Versão para impressão',
-'permalink' => 'Link permanente',
+'permalink' => 'Ligação permanente',
 'print' => 'Imprimir',
 'view' => 'Ver',
 'edit' => 'Editar',
@@ -572,7 +571,6 @@ $1',
 'disclaimers' => 'Exoneração de responsabilidade',
 'disclaimerpage' => 'Project:Aviso_geral',
 'edithelp' => 'Ajuda de edição',
-'helppage' => 'Help:Conteúdos',
 'mainpage' => 'Página principal',
 'mainpage-description' => 'Página principal',
 'policy-url' => 'Project:Políticas',
@@ -591,8 +589,8 @@ Consulte a página da [[Special:Version|versão do sistema]].',
 
 'ok' => 'OK',
 'retrievedfrom' => 'Obtida de "$1"',
-'youhavenewmessages' => 'Tem $1 ($2).',
-'youhavenewmessagesfromusers' => 'Tem $1 de {{PLURAL:$3|outro utilizador|$3 utilizadores}} ($2).',
+'youhavenewmessages' => '{{PLURAL:$3|Tem}} $1 ($2).',
+'youhavenewmessagesfromusers' => '{{PLURAL:$4|Tem}} $1 de {{PLURAL:$3|outro utilizador|$3 utilizadores}} ($2).',
 'youhavenewmessagesmanyusers' => 'Tem $1 de muitos utilizadores ($2).',
 'newmessageslinkplural' => '{{PLURAL:$1|uma mensagem nova|999=mensagens novas}}',
 'newmessagesdifflinkplural' => '{{PLURAL:$1|última alteração|999=últimas alterações}}',
@@ -770,8 +768,7 @@ Não se esqueça de personalizar as suas [[Special:Preferences|preferências]].'
 'gotaccountlink' => 'Autentique-se',
 'userlogin-resetlink' => 'Esqueceu-se do seu nome de utilizador ou da palavra-chave?',
 'userlogin-resetpassword-link' => 'Esqueceu a sua palavra-chave?',
-'helplogin-url' => 'Help:Autenticação',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ajuda a fazer login]]',
+'userlogin-helplink2' => 'Ajuda na autenticação',
 'userlogin-loggedin' => 'Já está {{GENDER:$1|autenticado|autenticada|autenticado}} com o nome $1.
 Use o formulário abaixo para iniciar uma sessão com outro nome.',
 'userlogin-createanother' => 'Criar outra conta',
@@ -868,6 +865,7 @@ Aguarde $1 antes de tentar novamente, por favor.',
 'createacct-another-realname-tip' => 'O fornecimento do nome verdadeiro é opcional.
 Se optar por revelá-lo, ele será utilizado para atribuir-lhe crédito pelo seu trabalho.',
 'pt-login' => 'Autenticação',
+'pt-login-button' => 'Iniciar sessão',
 'pt-createaccount' => 'Criar uma conta',
 'pt-userlogout' => 'Sair',
 
@@ -900,7 +898,10 @@ Para completar a autenticação, tem de definir uma palavra-chave nova aqui:',
 'resetpass-temp-password' => 'Palavra-chave temporária:',
 'resetpass-abort-generic' => 'A alteração da palavra-chave foi cancelada por uma extensão.',
 'resetpass-expired' => 'A sua palavra-chave expirou. Para autenticar-se, defina uma nova.',
-'resetpass-expired-soft' => 'A sua palavra-chave expirou e tem de ser redefinida. Escolha uma nova agora ou clique cancelar para redefini-la mais tarde.',
+'resetpass-expired-soft' => 'A sua palavra-chave expirou e tem de ser redefinida. Escolha uma nova agora ou clique "{{int:resetpass-submit-cancel}}" para redefini-la mais tarde.',
+'resetpass-validity-soft' => 'Sua palavra-chave não é válida: $1
+
+Por favor, escolha uma nova palavra-chave agora, ou clique em "{{int:resetpass-submit-cancel}}" para redefini-la mais tarde.',
 
 # Special:PasswordReset
 'passwordreset' => 'Redefinir palavra-chave',
@@ -1045,7 +1046,7 @@ Ela pode ter sido movida ou removida enquanto estava a ver a página.',
 Ela pode ser alterada na página [[Special:ChangePassword|de alteração da palavra-chave]] após autenticação.',
 'newarticle' => '(Nova)',
 'newarticletext' => "Seguiu um link para uma página que ainda não existe.
-Para criá-la, escreva o seu conteúdo na caixa abaixo (consulte a [[{{MediaWiki:Helppage}}|página de ajuda]] para mais detalhes).
+Para criá-la, escreva o seu conteúdo na caixa abaixo (consulte a [$1 página de ajuda] para mais detalhes).
 Se chegou aqui por engano, clique o botão '''voltar''' (ou ''back'') do seu browser.",
 'anontalkpagetext' => "----''Esta é a página de discussão de um utilizador anónimo que ainda não criou uma conta ou não a utiliza, pelo que temos de utilizar o endereço IP para identificá-lo(a).
 Um endereço IP pode ser partilhado por vários utilizadores.
@@ -1264,31 +1265,31 @@ Tente [[Special:Search|pesquisar na wiki]] novas páginas relevantes.',
 'rev-deleted-user' => '(nome de utilizador removido)',
 'rev-deleted-event' => '(entrada removida)',
 'rev-deleted-user-contribs' => '[nome de utilizador ou IP removido - edição ocultada das contribuições]',
-'rev-deleted-text-permission' => "Esta revisão de página foi '''eliminada'''.
-Podem existir mais detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminações].",
-'rev-deleted-text-unhide' => "Esta revisão de página foi '''eliminada'''.
-Podem existir mais detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminações].
-Pode mesmo assim [$1 ver esta edição] se deseja prosseguir.",
-'rev-suppressed-text-unhide' => "Esta revisão de página foi '''suprimida'''.
-Podem existir mais detalhes no [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} registo de supressões].
-Pode mesmo assim [$1 ver esta revisão] se deseja prosseguir.",
-'rev-deleted-text-view' => "Esta revisão de página foi '''eliminada'''.
-Você pode vê-la; podem existir mais detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminações].",
-'rev-suppressed-text-view' => "Esta revisão de página foi '''suprimida'''.
-Você pode vê-la; podem existir mais detalhes no [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} registo de supressões].",
-'rev-deleted-no-diff' => "Não pode ver esta diferença entre revisões porque uma das revisões foi '''eliminada'''.
-Podem existir mais detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminações].",
-'rev-suppressed-no-diff' => "Não pode ver esta diferença entre versões porque uma das revisões foi '''eliminada'''.",
-'rev-deleted-unhide-diff' => "Uma das revisões desta diferença entre revisões foi '''eliminada'''.
-Podem existir mais detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminações].
-Pode mesmo assim [$1 ver estas diferenças] se deseja prosseguir.",
-'rev-suppressed-unhide-diff' => "Uma das revisões desta diferença entre revisões foi '''suprimida'''.
-Podem existir mais detalhes no [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} registo de supressões].
-Pode mesmo assim [$1 ver estas diferenças] se deseja prosseguir.",
-'rev-deleted-diff-view' => "Uma das revisões desta diferença entre revisões foi '''eliminada'''.
-Você pode ver a diferença entre revisões; podem existir mais detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminações].",
-'rev-suppressed-diff-view' => "Uma das revisões desta diferença entre revisões foi '''suprimida'''.
-Você pode ver a diferença entre revisões; podem existir mais detalhes no [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} registo de supressões].",
+'rev-deleted-text-permission' => 'Esta revisão de página foi <strong>eliminada</strong>.
+Encontrará detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminações].',
+'rev-deleted-text-unhide' => 'Esta revisão de página foi <strong>eliminada</strong>.
+Encontrará detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminações].
+Pode mesmo assim [$1 ver esta revisão] se deseja prosseguir.',
+'rev-suppressed-text-unhide' => 'Esta revisão de página foi <strong>suprimida</strong>.
+Encontrará detalhes no [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} registo de supressões].
+Pode mesmo assim [$1 ver esta revisão] se deseja prosseguir.',
+'rev-deleted-text-view' => 'Esta revisão de página foi <strong>eliminada</strong>.
+Você pode vê-la; encontrará detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminações].',
+'rev-suppressed-text-view' => 'Esta revisão de página foi <strong>suprimida</strong>.
+Você pode vê-la; encontrará detalhes no [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} registo de supressões].',
+'rev-deleted-no-diff' => 'Não pode ver esta diferença entre revisões porque uma das revisões foi <strong>eliminada</strong>.
+Encontrará detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminações].',
+'rev-suppressed-no-diff' => 'Não pode ver esta diferença entre versões porque uma das revisões foi <strong>eliminada</strong>.',
+'rev-deleted-unhide-diff' => 'Uma das revisões desta diferença entre revisões foi <strong>eliminada</strong>.
+Encontrará detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminações].
+Pode mesmo assim [$1 ver estas diferenças] se deseja prosseguir.',
+'rev-suppressed-unhide-diff' => 'Uma das revisões desta diferença entre revisões foi <strong>suprimida</strong>.
+Encontrará detalhes no [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} registo de supressões].
+Pode mesmo assim [$1 ver estas diferenças] se deseja prosseguir.',
+'rev-deleted-diff-view' => 'Uma das revisões desta diferença entre revisões foi <strong>eliminada</strong>.
+Pode ver a diferença entre revisões; encontrará detalhes no [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} registo de eliminações].',
+'rev-suppressed-diff-view' => 'Uma das revisões desta diferença entre revisões foi <strong>suprimida</strong>.
+Pode ver a diferença entre revisões; encontrará detalhes no [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} registo de supressões].',
 'rev-delundel' => 'mostrar/esconder',
 'rev-showdeleted' => 'mostrar',
 'revisiondelete' => 'Eliminar/restaurar edições',
@@ -1299,8 +1300,10 @@ Você pode ver a diferença entre revisões; podem existir mais detalhes no [{{f
 'revdelete-show-file-submit' => 'Sim',
 '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-text-text' => 'Revisões eliminadas ainda aparecerão no histórico da página, mas parte do seu conteúdo estará inacessível para o público.',
+'revdelete-text-file' => 'Versões eliminadas do ficheiro ainda aparecerão no histórico da página, mas parte do seu conteúdo estará inacessível para o público.',
+'logdelete-text' => 'Os eventos eliminados ainda aparecerão no histórico da página, mas pare de seu conteúdo será inacessível ao público.',
+'revdelete-text-others' => 'Outros administradores em {{SITENAME}} podem aceder ao conteúdo oculto e torná-lo visível novamente através desta mesma interface, a menos que sejam definidas restrições adicionais.',
 '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]].',
 'revdelete-suppress-text' => "A supressão '''só''' deverá ser usada nos seguintes casos:
 * Informação potencialmente caluniosa, difamatória ou injuriosa
@@ -1417,7 +1420,7 @@ Os detalhes podem ser encontrados no [{{fullurl:{{#Special:Log}}/delete|page={{F
 'nextn-title' => '{{PLURAL:$1|próximo|próximos}} $1 {{PLURAL:$1|resultado|resultados}}',
 'shown-title' => 'Mostrar $1 {{PLURAL:$1|resultado|resultados}} por página',
 'viewprevnext' => 'Ver ($1 {{int:pipe-separator}} $2) ($3).',
-'searchmenu-exists' => "'''Há uma página com o nome \"[[:\$1]]\" nesta wiki'''",
+'searchmenu-exists' => '<strong>Há uma página com o nome "[[:$1]]" nesta wiki.</strong> {{PLURAL:$2|0=|Veja também os outros resultados encontrados.}}',
 'searchmenu-new' => '<strong>Crie a página "[[:$1]]" nesta wiki!</strong> {{PLURAL:$2|0=|Veja também a página encontrada na pesquisa.|Veja também os resultados da pesquisa.}}',
 'searchprofile-articles' => 'Páginas de conteúdo',
 'searchprofile-project' => 'Páginas de ajuda e de projeto',
@@ -1765,7 +1768,8 @@ Se optar por revelá-lo, ele será utilizado para atribuir-lhe crédito pelo seu
 'recentchanges-label-plusminus' => 'Alteração no tamanho da página, em bytes',
 'recentchanges-legend-heading' => "'''Legenda:'''",
 'recentchanges-legend-newpage' => '([[Special:NewPages|lista de páginas novas]])',
-'rcnotefrom' => 'Abaixo estão as mudanças desde <b>$2</b> (mostradas até <b>$1</b>).',
+'recentchanges-legend-plusminus' => '(<em>±123</em>)',
+'rcnotefrom' => 'Abaixo estão as mudanças desde <strong>$2</strong> (mostradas até <strong>$1</strong>).',
 'rclistfrom' => 'Mostrar as novas mudanças a partir das $1',
 'rcshowhideminor' => '$1 edições menores',
 'rcshowhideminor-show' => 'Mostrar',
@@ -2174,6 +2178,11 @@ Talvez queira editar a descrição na [$2 página original de descrição do fic
 # List redirects
 'listredirects' => 'Lista de redirecionamentos',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Lista de ficheiros com duplicatas',
+'listduplicatedfiles-summary' => 'Esta é uma lista de ficheiros cuja suas versões mais recentes são duplicatas da versão mais recente de outros ficheiros. Somente os ficheiros locais são considerados.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] possui [[$3|{{PLURAL:$2|uma duplicata|$2 duplicatas}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Predefinições não utilizadas',
 'unusedtemplatestext' => 'Esta página lista todas as páginas no espaço nominal {{ns:template}} que não são incluídas em nenhuma outra página. Lembre-se de verificar a existência de outros links para as predefinições, antes de eliminá-las.',
@@ -2288,7 +2297,7 @@ Agora redirecciona para [[$2]].',
 'deadendpagestext' => 'As seguintes páginas não contêm links para outras páginas na {{SITENAME}}.',
 'protectedpages' => 'Páginas protegidas',
 'protectedpages-indef' => 'Apenas proteções indefinidas',
-'protectedpages-summary' => 'Esta página lista as páginas protegidas. Para ver os títulos protegidos, cuja criação está impossibilitada, consulte [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Esta página lista páginas existentes que estão protegidas. Para ver os títulos cuja criação está impossibilitada, consulte [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Apenas proteções em cascata',
 'protectedpages-noredirect' => 'Esconder redirecionamentos',
 'protectedpagesempty' => 'Neste momento, nenhuma das páginas está protegida com estes parâmetros.',
@@ -2301,7 +2310,7 @@ Agora redirecciona para [[$2]].',
 'protectedpages-unknown-timestamp' => 'Desconhecido',
 'protectedpages-unknown-performer' => 'Utilizador desconhecido',
 'protectedtitles' => 'Títulos protegidos',
-'protectedtitles-summary' => 'Esta página lista os títulos protegidos, cuja criação está impossibilitada. Para ver as páginas protegidas consulte [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Esta página lista títulos cuja criação está impossibilitada. Para ver uma lista de páginas protegidas, consulte [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Neste momento, nenhum dos títulos está protegido com estes parâmetros.',
 'listusers' => 'Utilizadores',
 'listusers-editsonly' => 'Mostrar apenas utilizadores com edições',
@@ -2577,7 +2586,7 @@ A eliminação de páginas como esta foi restringida na {{SITENAME}}, para evita
 'delete-warning-toobig' => 'Esta página tem um histórico de edições longo, com mais de $1 {{PLURAL:$1|edição|edições}}.
 Eliminá-la poderá causar problemas na base de dados da {{SITENAME}};
 prossiga com precaução.',
-'deleting-backlinks-warning' => "'''Aviso:''' Outras páginas possuem ligação à ou são transcluídas da página que está prestes a eliminar.",
+'deleting-backlinks-warning' => "'''Aviso:''' Há [[Special:WhatLinksHere/{{FULLPAGENAME}}|páginas]] que contêm links para a página que está prestes a eliminar ou que a transcluem.",
 
 # Rollback
 'rollback' => 'Reverter edições',
@@ -2630,8 +2639,8 @@ Esta é a configuração presente para a página '''$1''':",
 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-cascadeon' => 'Esta página está atualmente protegida porque está incluída {{PLURAL:$1|na página listada a seguir, a qual|nas páginas listadas a seguir, as quais}} têm a proteção em cascata ativada.
+Alterações feitas ao nível de proteção desta página não afetarão 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',
@@ -2744,7 +2753,7 @@ $1',
 'sp-contributions-newbies-title' => 'Contribuições de contas novas',
 'sp-contributions-blocklog' => 'registo de bloqueios',
 'sp-contributions-deleted' => 'contribuições eliminadas',
-'sp-contributions-uploads' => 'uploads',
+'sp-contributions-uploads' => 'carregamentos',
 'sp-contributions-logs' => 'registos',
 'sp-contributions-talk' => 'discussão',
 'sp-contributions-userrights' => 'gestão de privilégios de utilizador',
@@ -2753,6 +2762,7 @@ Para referência é apresentado abaixo o último registo de bloqueio:',
 'sp-contributions-blocked-notice-anon' => 'Este endereço IP está bloqueado neste momento.
 Para referência é apresentado abaixo o último registo de bloqueio:',
 'sp-contributions-search' => 'Pesquisar contribuições',
+'sp-contributions-suppresslog' => 'contribuições suprimidas',
 'sp-contributions-username' => 'Endereço IP ou utilizador:',
 'sp-contributions-toponly' => 'Mostrar somente as revisões mais recentes',
 'sp-contributions-newonly' => 'Mostrar só edições que são criações de páginas',
@@ -4133,13 +4143,13 @@ Em conjunto com este programa deve ter recebido [{{SERVER}}{{SCRIPTPATH}}/COPYIN
 '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',
+'htmlform-invalid-input' => 'Existem problemas com alguns dos dados introduzidos.',
 'htmlform-select-badoption' => 'O valor que especificou não é uma opção válida.',
 'htmlform-int-invalid' => 'O valor que especificou não é um inteiro.',
 'htmlform-float-invalid' => 'O valor que especificou não é um número.',
-'htmlform-int-toolow' => 'O valor que especificou é inferior ao mínimo de $1',
-'htmlform-int-toohigh' => 'O valor que especificou é superior ao máximo de $1',
-'htmlform-required' => 'Este valor é necessário',
+'htmlform-int-toolow' => 'O valor que especificou é inferior ao mínimo de $1.',
+'htmlform-int-toohigh' => 'O valor que especificou é superior ao máximo de $1.',
+'htmlform-required' => 'Este valor é necessário.',
 'htmlform-submit' => 'Enviar',
 'htmlform-reset' => 'Desfazer alterações',
 'htmlform-selectorother-other' => 'Outros',
@@ -4173,8 +4183,8 @@ Em conjunto com este programa deve ter recebido [{{SERVER}}{{SCRIPTPATH}}/COPYIN
 '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 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-move-move_redir' => '$1 {{GENDER:$2|moveu}} a página $3 para $4 sobre um redirecionamento',
+'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2|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}}',
index 592a920..f31d608 100644 (file)
@@ -9,6 +9,8 @@
  *
  * @author Alcali
  * @author Alchimista
+ * @author Amgauna
+ * @author Anaclaudiaml
  * @author Bani
  * @author Brion
  * @author BrunaaAa
@@ -367,7 +369,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Receber cópias de e-mails que eu enviar a outros usuários',
 'tog-diffonly' => 'Não mostrar o conteúdo da página ao comparar duas edições',
 'tog-showhiddencats' => 'Exibir categorias ocultas',
-'tog-noconvertlink' => 'Desabilitar conversão de títulos de links',
 'tog-norollbackdiff' => 'Omitir diferenças após desfazer edições em bloco',
 'tog-useeditwarning' => 'Avisar-me quando eu deixar uma janela de edição sem ter salvo as alterações',
 'tog-prefershttps' => 'Usar sempre uma conexão segura quando estiver conectado',
@@ -579,7 +580,6 @@ $1',
 'disclaimers' => 'Exoneração de responsabilidade',
 'disclaimerpage' => 'Project:Aviso_geral',
 'edithelp' => 'Ajuda de edição',
-'helppage' => 'Help:Conteúdos',
 'mainpage' => 'Página principal',
 'mainpage-description' => 'Página principal',
 'policy-url' => 'Project:Políticas',
@@ -781,10 +781,9 @@ Não se esqueça de personalizar as suas [[Special:Preferences|preferências no
 'gotaccountlink' => 'Autenticar-se',
 'userlogin-resetlink' => 'Esqueceu-se do seu nome de usuário ou da senha?',
 'userlogin-resetpassword-link' => 'Esqueceu sua senha?',
-'helplogin-url' => 'Help:Iniciar sessão',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ajuda para iniciar sessão]]',
 'userlogin-loggedin' => 'Você já está conectado como {{GENDER:$1|$1}}.
 Use o formulário abaixo para iniciar sessão como outro usuário.',
+'userlogin-createanother' => 'Crie uma outra conta',
 'createacct-join' => 'Insira suas informações abaixo.',
 'createacct-another-join' => 'Preeencha as informações para a nova conta',
 'createacct-emailrequired' => 'Endereço de e-mail',
@@ -873,6 +872,9 @@ Por favor aguarde $1 antes de tentar novamente.',
 'suspicious-userlogout' => 'Sua solicitação para sair foi negada porque aparentemente foi enviada por um navegador danificado ou por um servidor proxy com cache.',
 'createacct-another-realname-tip' => 'O nome verdadeiro é opcional.
 Se você optar por fornecê-lo, este nome será utilizado para dar ao usuário a atribuição de seu trabalho.',
+'pt-login' => 'Entrar',
+'pt-login-button' => 'Logado',
+'pt-createaccount' => 'Crie uma conta',
 
 # Email sending
 'php-mail-error-unknown' => 'Erro desconhecido na função mail() do PHP',
@@ -881,7 +883,7 @@ Se você optar por fornecê-lo, este nome será utilizado para dar ao usuário a
 
 # Change password dialog
 'changepassword' => 'Alterar senha',
-'resetpass_announce' => 'Você foi autenticado através de uma senha temporária. Para prosseguir, será necessário definir uma nova senha.',
+'resetpass_announce' => 'Para completar a autenticação, é necessário definir uma nova senha.',
 'resetpass_text' => '<!-- Adicionar texto aqui -->',
 'resetpass_header' => 'Alterar a senha da conta',
 'oldpassword' => 'Senha antiga',
@@ -897,8 +899,12 @@ Por favor, aguarde $1 antes de tentar novamente.',
 'resetpass-submit-cancel' => 'Cancelar',
 'resetpass-wrong-oldpass' => 'Senha temporária ou atual inválida.
 Você pode já ter alterado com sucesso a sua senha, ou solicitado uma nova senha temporária.',
+'resetpass-recycled' => 'Por favor, redefina sua nova senha para uma diferente da atual.',
+'resetpass-temp-emailed' => 'Você está autenticado com o código temporário enviado. Para finalizar a autenticação, você deve inserir uma nova senha aqui:',
 'resetpass-temp-password' => 'Senha temporária:',
 'resetpass-abort-generic' => 'Uma extensão cancelou a alteração da senha.',
+'resetpass-expired' => 'Sua senha expirou. Por favor insira uma nova senha para autenticar-se.',
+'resetpass-expired-soft' => 'Sua senha expirou e necessita ser resetada. Por favor escolha uma nova agora, ou clique "{{int:resetpass-submit-cancel}}" para resetar mais tarde.',
 
 # Special:PasswordReset
 'passwordreset' => 'Redefinir senha',
@@ -1047,7 +1053,7 @@ Ela pode ter sido movida ou removido enquanto você estava vendo a página.',
 Ela pode ser alterada na página ''[[Special:ChangePassword|de troca de senha]]'', após o início de sessão.",
 'newarticle' => '(Nova)',
 'newarticletext' => "Você seguiu um link para uma página que ainda não existe.
-Para criá-la, comece escrevendo na caixa abaixo (veja [[{{MediaWiki:Helppage}}|a página de ajuda]] para mais informações).
+Para criá-la, comece escrevendo na caixa abaixo (veja [$1 na página de ajuda] para mais informações).
 Se você chegou aqui por engano, clique no botão '''voltar''' do seu navegador.",
 'anontalkpagetext' => "---- ''Esta é a página de discussão para um usuário anônimo que ainda não criou uma conta ou que não a usa, de forma que temos de utilizar o endereço de IP para identificá-lo(a). Tal endereço de IP pode ser compartilhado por vários usuários. Se você é um usuário anônimo e acha que comentários irrelevantes foram direcionados a você, por gentileza, [[Special:UserLogin/signup|crie uma conta]] ou [[Special:UserLogin|autentique-se]], a fim de evitar futuras confusões com outros usuários anônimos.''",
 'noarticletext' => 'No momento, não há conteúdo nesta página.
@@ -1291,8 +1297,10 @@ Você pode ver esta comparação; detalhes podem ser encontrados no [{{fullurl:{
 'revdelete-show-file-submit' => 'Sim',
 'revdelete-selected' => "'''{{PLURAL:$2|Edição selecionada|Edições selecionadas}} de [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Evento de registro selecionado|Eventos de registro selecionados}}:'''",
-'revdelete-text' => "'''Revisões eliminadas e eventos continuarão aparecendo no histórico da página e nos registros, apesar de o seu conteúdo textual estar inacessível ao público.'''
-Outros administradores no {{SITENAME}} continuarão podendo acessar ao conteúdo escondido e restaurá-lo através desta mesma ''interface'', a menos que uma restrição adicional seja definida.",
+'revdelete-text-text' => 'Revisões apagadas continuarão a aparecer na página de histórico, mas parte de seus conteúdos estarão inacessíveis ao público.',
+'revdelete-text-file' => 'Versões dos arquivos apagados continuarão a aparecer no arquivo de histórico, mas parte de seus conteúdos estarão inacessíveis ao público.',
+'logdelete-text' => 'Eventos de log apagados continuarão a aparecer nos logs, mas parte de seus conteúdos estarão inacessíveis ao público.',
+'revdelete-text-others' => 'Outros administradores do {{SITENAME}} continuarão sendo capazes de acessar o conteúdo oculto e desocultá-lo pela mesma interface, a menos que restrições adicionais tenham sido feitas.',
 'revdelete-confirm' => 'Por favor confirme que pretende executar esta ação, que compreende as suas consequências e que o faz em concordância com as [[{{MediaWiki:Policy-url}}|políticas e recomendações]].',
 'revdelete-suppress-text' => "A supressão deverá ser usada '''apenas''' para os seguintes casos:
 * Informação potencialmente difamatória
@@ -1407,7 +1415,7 @@ Os detalhes podem ser encontrados no [{{fullurl:{{#Special:Log}}/delete|page={{F
 'nextn-title' => '{{PLURAL:$1|próximo|próximos}} $1 {{PLURAL:$1|resultado|resultados}}',
 'shown-title' => 'Mostrar $1 {{PLURAL:$1|resultado|resultados}} por página',
 'viewprevnext' => 'Ver ($1 {{int:pipe-separator}} $2) ($3).',
-'searchmenu-exists' => "'''Há uma página com o nome \"[[:\$1]]\" nesta wiki'''",
+'searchmenu-exists' => '<strong>Há uma página com o nome "[[:$1]]" neste wiki.</strong> {{PLURAL:$2|0=|Veja também os outros resultados da pesquisa encontrados.}}',
 'searchmenu-new' => '<strong>Criar a página "[[:$1]]" nesta wiki!</strong>{{PLURAL:$2|0=| Veja também a página encontrada com sua pesquisa.|Veja também os resultados das pesquisas encontradas.}}',
 'searchprofile-articles' => 'Páginas de conteúdo',
 'searchprofile-project' => 'Ajuda e páginas de projeto',
@@ -1753,14 +1761,26 @@ Caso decida fornecê-lo, este será utilizado para dar-lhe crédito pelo seu tra
 'recentchanges-legend-heading' => "'''Legenda''':",
 'recentchanges-legend-newpage' => '(veja também a [[Special:NewPages|lista de páginas novas]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "Seguem as alterações desde as '''$4''' de '''$3''' (limitadas a '''$1''').",
+'rcnotefrom' => 'Abaixo estão mostradas as alterações de <strong>$2</strong> (até <strong>$1</strong>).',
 'rclistfrom' => 'Mostrar as novas alterações a partir das $1',
 'rcshowhideminor' => '$1 edições menores',
+'rcshowhideminor-show' => 'Exibir',
+'rcshowhideminor-hide' => 'Ocultar',
 'rcshowhidebots' => '$1 robôs',
+'rcshowhidebots-show' => 'Exibir',
+'rcshowhidebots-hide' => 'Ocultar',
 'rcshowhideliu' => '$1 usuários registrados',
+'rcshowhideliu-show' => 'Exibir',
+'rcshowhideliu-hide' => 'Ocultar',
 'rcshowhideanons' => '$1 usuários anônimos',
+'rcshowhideanons-show' => 'Exibir',
+'rcshowhideanons-hide' => 'Ocultar',
 'rcshowhidepatr' => '$1 edições patrulhadas',
+'rcshowhidepatr-show' => 'Exibir',
+'rcshowhidepatr-hide' => 'Ocultar',
 'rcshowhidemine' => '$1 minhas edições',
+'rcshowhidemine-show' => 'Exibir',
+'rcshowhidemine-hide' => 'Ocultar',
 'rclinks' => 'Exibir as $1 alterações recentes feitas nos últimos $2 dias<br />$3',
 'diff' => 'dif',
 'hist' => 'his',
@@ -1882,6 +1902,7 @@ Se você ainda quer enviar seu arquivo, volte e use um novo nome.
 'file-exists-duplicate' => 'Este arquivo é uma duplicata do seguinte {{PLURAL:$1|arquivo|arquivos}}:',
 'file-deleted-duplicate' => 'Um arquivo idêntico a este ([[:$1]]) foi eliminado anteriormente.
 Verifique o histórico de eliminação de tal arquivo antes de tentar re-enviar.',
+'file-deleted-duplicate-notitle' => 'Um arquivo idêntico a este foi anteriormente excluído, e o título foi suprimido. Você deve comunicar com alguém capaz de visualizar dados suprimidos, para verificar a situação antes de enviá-lo novamente.',
 'uploadwarning' => 'Aviso de envio',
 'uploadwarning-text' => 'Modifique a descrição do arquivo abaixo e tente novamente.',
 'savefile' => 'Salvar arquivo',
@@ -1894,6 +1915,8 @@ Verifique o histórico de eliminação de tal arquivo antes de tentar re-enviar.
 'php-uploaddisabledtext' => 'O envio de arquivos via PHP está desativado.
 Verifique a configuração file_uploads.',
 'uploadscripted' => 'Este arquivo contém HTML ou código que pode ser erroneamente interpretado por um navegador web.',
+'uploadscriptednamespace' => 'Este aruivo SVG contém um espaço nominal probido "$1"',
+'uploadinvalidxml' => 'O XML no arquivo enviado não pôde ser analisado.',
 'uploadvirus' => 'O arquivo contém vírus!
 Detalhes: $1',
 'uploadjava' => 'Este é um arquivo ZIP que contém um arquivo .class de Java.
@@ -2264,16 +2287,20 @@ Entradas <del>riscadas</del> foram resolvidas.',
 'deadendpagestext' => 'As seguintes páginas não contêm links para outras páginas no wiki {{SITENAME}}.',
 'protectedpages' => 'Páginas protegidas',
 'protectedpages-indef' => 'Proteções infinitas apenas',
+'protectedpages-summary' => 'Esta página lista as páginas existentes que estão protegidas no momento. Para uma lista de títulos que estão protegidos desde a criação, veja [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Apenas proteções progressivas',
 'protectedpages-noredirect' => 'Ocultar redirecionamentos',
 'protectedpagesempty' => 'Neste momento, nenhuma das páginas está protegida com estes parâmetros.',
 'protectedpages-timestamp' => 'Data e hora',
 'protectedpages-page' => 'Página',
 'protectedpages-expiry' => 'Expira',
+'protectedpages-performer' => 'Protegendo usuário',
+'protectedpages-params' => 'Parâmetros de proteção.',
 'protectedpages-reason' => 'Motivo',
 'protectedpages-unknown-timestamp' => 'Desconhecido',
 'protectedpages-unknown-performer' => 'Usuário desconhecido',
 'protectedtitles' => 'Títulos protegidos',
+'protectedtitles-summary' => 'Está página lista os títulos já protegidos de criação. Para ver a lista de páginas existentes que estão protegidas, consulte [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Neste momento, nenhum dos títulos está protegido com estes parâmetros.',
 'listusers' => 'Lista de usuários',
 'listusers-editsonly' => 'Mostrar apenas usuários com edições',
@@ -2459,6 +2486,7 @@ Futuras modificações em tal página e páginas de discussão relacionadas ser
 '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}}.',
 'iteminvalidname' => "Problema com item '$1', nome inválido...",
+'wlnote2' => 'A seguir estão as mudanças nas últimas {{PLURAL:$1|hora|<strong>$1</strong> horas}}, a partir de $2, $3.',
 'wlshowlast' => 'Ver últimas $1 horas $2 dias $3',
 'watchlist-options' => 'Opções da lista de páginas vigiadas',
 
@@ -2548,7 +2576,7 @@ A eliminação de tais páginas foi restrita, a fim de se evitarem problemas aci
 'delete-warning-toobig' => 'Esta página possui um longo histórico de edições, com mais de $1 {{PLURAL:$1|edição|edições}}.
 Eliminá-la poderá causar problemas na base de dados de {{SITENAME}};
 prossiga com cuidado.',
-'deleting-backlinks-warning' => "'''Cuidado:''' Outras páginas se ligam ou redirecionam para a página que você está prestes a deletar.",
+'deleting-backlinks-warning' => "'''Cuidado:'''[[Special:WhatLinksHere/{{FULLPAGENAME}}|Outras páginas]] se ligam ou redirecionam para a página que você está prestes a deletar.",
 
 # Rollback
 'rollback' => 'Reverter edições',
@@ -2721,8 +2749,10 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Este endereço IP encontra-se bloqueado.
 Segue, para referência, a entrada mais recente no registro de bloqueios:',
 'sp-contributions-search' => 'Navegar pelas contribuições',
+'sp-contributions-suppresslog' => 'Contribuições de usuário suprimidas',
 'sp-contributions-username' => 'Endereço de IP ou usuário:',
 'sp-contributions-toponly' => 'Mostrar somente as edições que sejam a última alteração',
+'sp-contributions-newonly' => 'Mostre somente as edições que criaram uma nova página.',
 'sp-contributions-submit' => 'Pesquisar',
 
 # What links here
@@ -3028,6 +3058,7 @@ Acesse [https://www.mediawiki.org/wiki/Localisation MediaWiki Localisation] e [/
 'thumbnail_image-type' => 'Tipo de imagem não suportado',
 'thumbnail_gd-library' => 'Configuração da biblioteca GD incompleta: função $1 não encontrada',
 'thumbnail_image-missing' => 'Arquivo aparentemente inexistente: $1',
+'thumbnail_image-failure-limit' => 'Houveram muitas tentativas falhas recentemente ($1 ou mais) de criação desta miniatura. Por favor, tente novamente mais tarde.',
 
 # Special:Import
 'import' => 'Importar páginas',
@@ -3074,6 +3105,7 @@ Salve o arquivo no seu computador e importe-o aqui.',
 'import-error-special' => 'A página "$1" não pôde ser importada porque ela pertence a um espaço nominal especial que não suporta páginas.',
 'import-error-invalid' => 'A página "$1" não pôde ser importada por seu nome ser inválido.',
 'import-error-unserialize' => 'Revisão  $2  da página " $1 " não pôde ser desserializada. A revisão foi relatada para usar o modelo de conteúdo  $3  serializado como  $4',
+'import-error-bad-location' => 'A revisão $2, que usa o modelo de conteúdo $3, não pode ser gravada em "$1" nesta wiki, pois o modelo não é suportado nessa página.',
 'import-options-wrong' => '{{PLURAL:$2|Opção com erro|Opções com erros}}: <nowiki>$1</nowiki>',
 'import-rootpage-invalid' => 'A página raiz dada é um título inválido.',
 'import-rootpage-nosubpage' => 'O espaço nominal $1 da página principal não permite subpáginas.',
@@ -4123,7 +4155,7 @@ Em conjunto com este programa deve ter recebido [{{SERVER}}{{SCRIPTPATH}}/COPYIN
 '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 redirecionamento',
 'logentry-move-move_redir' => '$1 moveu a página $3 para $4 através de um redirecionamento',
-'logentry-move-move_redir-noredirect' => '$1 moveu a página $3 para $4 sem um redirecionamento',
+'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2|moveu}} a página $3 para $4 sem 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 usuário $1 foi {{GENDER:$2|criada}}',
@@ -4247,6 +4279,4 @@ Na verdade, expande tudo que está entre chaves duplas.',
 'expand_templates_generate_rawhtml' => 'Mostrar HTML puro',
 'expand_templates_preview' => 'Pré-visualização',
 
-# Unknown messages
-'uploadinvalidxml' => 'O XML no arquivo enviado não pôde ser analisado.',
 );
index b9805a9..8f070e4 100644 (file)
  * @author Od1n
  * @author Onecountry
  * @author Opraco
+ * @author Orlodrim
  * @author OsamaK
  * @author PhiLiP
  * @author Piangpha
  * @author Umherirrender
  * @author Urhixidur
  * @author Usarker
+ * @author V.narsikar
  * @author Verdy p
  * @author Vinhtantran
  * @author Vivaelcelta
+ * @author Vriullop
  * @author Waldir
  * @author Whym
  * @author Yekrats
@@ -220,9 +223,6 @@ Live preview is an experimental feature (unavailable by default) to use edit pre
 'tog-ccmeonemails' => 'Option in [[Special:Preferences]] > {{int:prefs-personal}} > {{int:email}}. {{Gender}}',
 'tog-diffonly' => 'Toggle option used in [[Special:Preferences]]. {{Gender}}',
 'tog-showhiddencats' => 'Toggle option used in [[Special:Preferences]]. {{Gender}}',
-'tog-noconvertlink' => "{{optional}}
-
-''(the message is considered optional because it is only used in wikis with language variants)''",
 'tog-norollbackdiff' => "Option in [[Special:Preferences]], 'Misc' tab. Only shown for users with the rollback right. By default a diff is shown below the return screen of a rollback. Checking this preference toggle will suppress that. {{Gender}}
 {{Identical|Rollback}}",
 'tog-useeditwarning' => 'Used as label for the checkbox in [[Special:Preferences#mw-prefsection-editing|Special:Preferences]].',
@@ -394,8 +394,10 @@ See also:
 Followed by a colon and a list of categories.
 
 Parameters:
-* $1 - number of hidden categories',
-'hidden-category-category' => 'Name of the [[mw:Help:Tracking categories|tracking category]] where hidden categories will be listed.',
+* $1 - number of hidden categories
+{{Identical|Hidden category}}',
+'hidden-category-category' => 'Name of the [[mw:Help:Tracking categories|tracking category]] where hidden categories will be listed.
+{{Identical|Hidden category}}',
 'category-subcat-count' => 'This message is displayed at the top of a category page showing the number of pages in the category.
 
 Parameters:
@@ -657,8 +659,8 @@ See also:
 {{Identical|View}}',
 'toolbox' => 'The title of the toolbox below the search menu.
 {{Identical|Tool}}',
-'userpage' => '',
-'projectpage' => 'Used as link text in Talk page of project page.',
+'userpage' => 'Used in user talk pages as the text of the link to the user page, with the Cologne Blue skin.',
+'projectpage' => 'Used as link text in Talk page of project page with the Cologne Blue skin.',
 'imagepage' => 'Used as link text in Talk page of file page.',
 'mediawikipage' => 'Used as link text in Talk page of MediaWiki message page.',
 'templatepage' => 'Used as link text in Talk page of template page.',
@@ -739,9 +741,6 @@ See also:
 'disclaimerpage' => '{{doc-important|Do not change the <code>Project:</code> part.}}
 Used as page for that contains the site disclaimer. Used at the bottom of every page on the wiki. Example: [[{{MediaWiki:Disclaimerpage}}|{{MediaWiki:Disclaimers}}]].',
 'edithelp' => 'This is the text that appears on the editing help link that is near the bottom of the editing page',
-'helppage' => '{{doc-important|Do not change the <code>Help:</code> part.}}
-The link destination used by default in the sidebar, and in {{msg-mw|Noarticletext}}.
-{{Identical|HelpContent}}',
 'mainpage' => 'Defines the link and display name of the main page of the wiki. Shown as the top link in the navigation part of the interface. Please do not change it too often, that could break things!
 
 See also:
@@ -1341,12 +1340,7 @@ See example: [[Special:UserLogin]]
 
 userlogin-resetpassword-link may have to be shorter than the old {{msg-mw|userlogin-resetlink}}.
 {{Identical|Forgot your password}}',
-'helplogin-url' => '{{doc-important|Do not translate the namespace name <code>Help</code>.}}
-Used as name of the page that provides information about logging into the wiki.
-
-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.
+'userlogin-helplink2' => 'Label for a link to login help.
 
 See example: [[Special:UserLogin]]
 
@@ -1578,8 +1572,10 @@ This message is used in html.
 'createacct-another-realname-tip' => "{{doc-singularthey}}
 Used on the account creation form when creating another user's account. Similar to {{msg-mw|prefs-help-realname}}.
 {{Identical|Real name attribution}}",
-'pt-login' => "Shown as the caption of the button at [[Special:UserLogin]], and also to anonymous users in the upper right corner of the page when they can't create an account (otherwise the message {{msg-mw|nav-login-createaccount}} is shown there)
+'pt-login' => "Shown to anonymous users in the upper right corner of the page when they can't create an account (otherwise the message {{msg-mw|nav-login-createaccount}} is shown there).
 {{Identical|Log in}}",
+'pt-login-button' => 'Shown as the caption of the button at [[Special:UserLogin]].
+{{Identical|Log in}}',
 'pt-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.
 {{Identical|Create account}}',
 'pt-userlogout' => '{{Doc-actionlink}}
@@ -1642,7 +1638,13 @@ Parameters:
 'resetpass-temp-password' => 'The label of the input box for the temporary password (received by email) on the form displayed after logging in with a temporary password.',
 'resetpass-abort-generic' => 'Generic error message shown on [[Special:ChangePassword]] when an extension aborts a password change from a hook.',
 'resetpass-expired' => "Generic error message shown on [[Special:ChangePassword]] when a user's password is expired",
-'resetpass-expired-soft' => 'Generic marning message shown on [[Special:ChangePassword]] when a user needs to reset their password, but they are not prevented from logging in at this time',
+'resetpass-expired-soft' => 'Generic warning message shown on [[Special:ChangePassword]] when a user needs to reset their password, but they are not prevented from logging in at this time',
+'resetpass-validity-soft' => 'Warning message shown on [[Special:ChangePassword]] when a user needs to reset their password, because their password is not valid.
+
+Refers to {{msg-mw|Resetpass-submit-cancel}}.
+
+Parameters:
+* $1 - error message',
 
 # Special:PasswordReset
 'passwordreset' => 'Title of [[Special:PasswordReset]].
@@ -1947,10 +1949,9 @@ Parameters:
 * $1 - username
 * $2 - email address",
 'newarticle' => '{{Identical|New}}',
-'newarticletext' => '{{doc-important|Do not translate <code><nowiki>{{MediaWiki:Helppage}}</nowiki></code>.}}
-Text displayed above the edit box in editor when trying to create a new page.
-
-Refers to {{msg-mw|Helppage}}.',
+'newarticletext' => 'Text displayed above the edit box in editor when trying to create a new page.
+Parameters:
+* $1 - The URL to the help page, defined in {{msg-mw|helppage}}',
 'anontalkpagetext' => 'Displayed at the bottom of talk pages of anonymous users.',
 'noarticletext' => 'This is the message that you get if you search for a term that has not yet got any entries on the wiki.
 
@@ -2490,8 +2491,32 @@ Parameters:
 * $1 - number of log events
 See also:
 * {{msg-mw|Revdelete-selected}}',
-'revdelete-text' => '{{RevisionDelete}}
-This is the introduction explaining the feature.',
+'revdelete-text-text' => '{{RevisionDelete}}
+This is the introduction explaining the feature.
+
+See also:
+* {{msg-mw|Revdelete-text-file}}
+* {{msg-mw|Logdelete-text}}
+* {{msg-mw|Revdelete-text-others}}',
+'revdelete-text-file' => '{{RevisionDelete}}
+This is the introduction explaining the feature.
+
+See also:
+* {{msg-mw|Revdelete-text-text}}
+* {{msg-mw|Logdelete-text}}
+* {{msg-mw|Revdelete-text-others}}',
+'logdelete-text' => '{{RevisionDelete}}
+This is the introduction explaining the feature.
+
+See also:
+* {{msg-mw|Revdelete-text-text}}
+* {{msg-mw|Revdelete-text-file}}
+* {{msg-mw|Revdelete-text-others}}',
+'revdelete-text-others' => '{{RevisionDelete}}
+This message is shown after one of:
+* {{msg-mw|Revdelete-text-text}}
+* {{msg-mw|Revdelete-text-file}}
+* {{msg-mw|Logdelete-text}}',
 'revdelete-confirm' => 'This message is a part of the [[mw:RevisionDelete|RevisionDelete]] feature.
 
 Refers to {{msg-mw|Policy-url}}.
@@ -2647,17 +2672,16 @@ See also:
 * {{msg-mw|Revdelete-reason-dropdown|item list for dropdown|notext=1}}
 * {{msg-mw|Revdelete-reasonotherlist|item in dropdown}}
 * {{msg-mw|Revdelete-submit|submit button}}',
-'revdelete-reasonotherlist' => '{{Identical|Other reason}}
-{{RevisionDelete}}
+'revdelete-reasonotherlist' => '{{RevisionDelete}}
 Used as an item in dropdown.
 [[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]
-
 See also:
 * {{msg-mw|Revdelete-legend|legend for the form}}
 * {{msg-mw|Revdelete-log|label for dropdown}}
 * {{msg-mw|Revdelete-reason-dropdown|item list for dropdown|notext=1}}
 * {{msg-mw|Revdelete-otherreason|label for input box}}
-* {{msg-mw|Revdelete-submit|submit button}}',
+* {{msg-mw|Revdelete-submit|submit button}}
+{{Identical|Other reason}}',
 'revdelete-edit-reasonlist' => '{{Identical|Edit delete reasons}}
 {{RevisionDelete}}
 [[File:RevDelete Special-RevisionDelete (r60428).png|frame|center|Screenshot of the interface]]',
@@ -3682,17 +3706,17 @@ Preceded by legend example {{msg-mw|Recentchanges-legend-plusminus}}.',
 A plus/minus sign with a number for the legend.',
 'rcnotefrom' => 'This message is displayed at [[Special:RecentChanges]] when viewing recentchanges from some specific time.
 
-The corresponding message is {{msg-mw|Rclistfrom}} (without split of date and time, [[bugzilla:19104|Bug 19104]]).
+The corresponding message is {{msg-mw|Rclistfrom}} (split into date and time).
 
 Parameters:
 * $1 - the maximum number of changes that are displayed
 * $2 - a date and time
 * $3 - (Optional) a date
 * $4 - (Optional) a time',
-'rclistfrom' => 'Used on [[Special:RecentChanges]].
-
-Parameters:
-* $1 - a link to the revision of a specific date and time. The date and the time are the link description (without split of date and time, [[bugzilla:19104|Bug 19104]]).
+'rclistfrom' => 'Used on [[Special:RecentChanges]]. Parameters:
+* $1 - (Optional) date and time. The date and the time adds to the rclistfrom description.
+* $2 - time. The time adds to the rclistfrom link description (with split of date and time).
+* $3 - date. The date adds to the rclistfrom link description (with split of date and time).
 
 The corresponding message is {{msg-mw|Rcnotefrom}}.',
 'rcshowhideminor' => 'Option text in [[Special:RecentChanges]]. Parameters:
@@ -4871,6 +4895,11 @@ See also:
 # List redirects
 'listredirects' => '{{doc-special|ListRedirects}}',
 
+# List duplicated files special page
+'listduplicatedfiles' => '{{doc-special|ListDuplicatedFiles}}',
+'listduplicatedfiles-summary' => 'Summary at top of Special:ListDuplicatedFiles',
+'listduplicatedfiles-entry' => 'A list item on Special:ListDuplicatedFiles. $1 is the file name (no namespace prefix). $2 is the number of duplicates this file has. $3 is the name of the duplicate search page (aka "Special:FileDuplicateSearch/Foo.png" or "Spécial:Recherche_fichier_en_double/Firefox.png")',
+
 # Unused templates
 'unusedtemplates' => '{{doc-special|UnusedTemplates}}',
 'unusedtemplatestext' => 'Shown on top of [[Special:Unusedtemplates]]',
@@ -5932,7 +5961,19 @@ Parameters:
 {{Related|Protect-locked}}',
 'protect-cascadeon' => 'Used in Protection form.
 * $1 - number of cascade source pages',
-'protect-default' => '{{Identical|Default}}',
+'protect-default' => 'Describes the protection state of a page that allows all users to do a certain thing, like editing or moving the page. Example:
+
+<div style="border: 2px dotted gray; padding: .25cm">
+=={{int:Pageinfo-header-restrictions/en}}==
+{| class="wikitable"
+|-
+| {{int:Restriction-edit/en}}
+| {{int:Protect-default/en}}
+|-
+| {{int:Restriction-move/en}}
+| {{int:Protect-level-autoconfirmed/en}}
+|}
+</div>',
 'protect-fallback' => 'This message is used as an option in the protection form on wikis were extra protection levels have been configured.
 
 Parameters:
@@ -6348,10 +6389,15 @@ Anon version:
 * {{msg-mw|Sp-contributions-blocked-notice-anon}}',
 'sp-contributions-blocked-notice-anon' => 'Same as {{msg-mw|Sp-contributions-blocked-notice}} but for anonymous users.',
 'sp-contributions-search' => 'Used on [[Special:Contributions]]',
+'sp-contributions-suppresslog' => 'Used as a display name for a link to log entries of suppressed edits made by that user.
+
+Used as link title in [[Special:Contributions]] and in [[Special:DeletedContributions]].
+
+See also {{msg-mw|sp-contributions-deleted}}, {{msg-mw|sp-deletedcontributions-contribs}}, {{msg-mw|contributions}}, {{msg-mw|deletedcontributions-title}}.',
 'sp-contributions-username' => 'This message appears whenever someone requests [[Special:Contributions]].
 {{Identical|IP address or username}}',
-'sp-contributions-toponly' => '"top revision" means the "latest revision"',
-'sp-contributions-newonly' => 'Used as checkbox label.
+'sp-contributions-toponly' => 'A checkbox at [[Special:Mycontributions|Special:Contributions]]',
+'sp-contributions-newonly' => 'Used as checkbox label at [[Special:Mycontributions|Special:Contributions]].
 
 "page creation" means the "first revision" of a page.
 
@@ -8262,7 +8308,8 @@ This message is followed by the total number of times the page has been edited.'
 'pageinfo-magic-words' => 'The list of magic words on the page. Parameters:
 * $1 is the number of magic words on the page.',
 'pageinfo-hidden-categories' => 'The list of hidden categories on the page. Parameters:
-* $1 is the number of hidden categories on the page.',
+* $1 - the number of hidden categories on the page
+{{Identical|Hidden category}}',
 'pageinfo-templates' => 'The list of templates transcluded within the page. Parameters:
 * $1 is the number of templates transcluded within the current page.
 See also:
@@ -8999,12 +9046,14 @@ See also Wikipedia on [[w:Focal_length#In_photography|focal length]].',
 'exif-gpslatituderef' => 'In older versions of mediawiki this referred to if the latitude was North or South. This is no longer used in modern versions of mediawiki except for when using a foreign image repository that is using an older version of mediawiki since the information is now contained in {{msg-mw|exif-gpslatitude}}.
 {{Related|Exif-gpslatitude}}',
 'exif-gpslatitude' => 'The latitude of the location from where the picture was taken from.
-{{Related|Exif-gpslatitude}}',
+{{Related|Exif-gpslatitude}}
+{{Identical|Latitude}}',
 'exif-gpslongituderef' => 'Same as {{msg-mw|exif-gpslatituderef}} but for longitude.
 
 {{Related|Exif-gpslatitude}}',
 'exif-gpslongitude' => 'The longitude of the location from where the picture was taken from.
-{{Related|Exif-gpslatitude}}',
+{{Related|Exif-gpslatitude}}
+{{Identical|Longitude}}',
 'exif-gpsaltituderef' => 'No longer used except for when using foreign image repository with old version of mediawiki. 0 for above sea level, 1 for below sea level.',
 'exif-gpsaltitude' => 'Altitude in meters that the image was taken at.',
 'exif-gpstimestamp' => 'Time (does not include date) that GPS measurement was taken, in UTC. Since often this is at the same time as photo was taken, this is sometimes more reliable than {{msg-mw|exif-datetimeoriginal}}.',
index 8f571ef..0c6ec4c 100644 (file)
@@ -300,7 +300,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Huk ruraqkunaman kachasqay e-chaskikunamanta iskaychasqakunata kachamuway',
 'tog-diffonly' => "Huk kaykunap uranpi kaq p'anqap samiqninta ama rikuchiychu",
 'tog-showhiddencats' => 'Pakasqa katiguriyakunata rikuchiy',
-'tog-noconvertlink' => "T'inki suti t'ikrayman ama niy",
 'tog-norollbackdiff' => 'Ruraqpa hukchasqankunata kutichispa ama wakin kayta willaychu',
 'tog-useeditwarning' => "Yuyampaway p'anqata saqiptiy manaraq rurarqusqay hukchasqakunata waqaychaspay.",
 'tog-prefershttps' => "Yaykurqaspaqa hayk'appas takyasqa t'inkiwan llamk'ay",
@@ -512,7 +511,6 @@ $1",
 'disclaimers' => 'Chiqakunamanta rikuchiy',
 'disclaimerpage' => 'Project:Sapsilla saywachasqa paqtachiy',
 'edithelp' => "Llamk'ana yanapay",
-'helppage' => 'Help:Yanapana',
 'mainpage' => "Qhapaq p'anqa",
 'mainpage-description' => "Qhapaq p'anqa",
 'policy-url' => 'Project:Kawpay',
@@ -707,8 +705,6 @@ Ama qunqaychu [[Special:Preferences|{{SITENAME}} allinkachinaykikunata]] hukchay
 'gotaccountlink' => 'Rakiqunaykita willaway',
 'userlogin-resetlink' => 'Yaykuna willayniykikunatari qunqarqankichu?',
 'userlogin-resetpassword-link' => 'Yaykuna rimaykita qunqarqankichu?',
-'helplogin-url' => 'Help:Yaykuy',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Yaykunapaq yanapa]]',
 'userlogin-createanother' => 'Huk rakiqunata kamariy',
 'createacct-join' => 'Kay qatiqpi willaykita yaykuchiy.',
 'createacct-emailrequired' => 'E-chaski imamayta',
@@ -950,7 +946,7 @@ Astasqachá icha qullusqachá qhawachkaptiyki.',
 
 Yaykurqaspaqa ''[[Special:ChangePassword|yaykuna rima hukchana]]'' p'anqapi kay yaykuna rimata hukchaytam atinki.",
 'newarticle' => '(Musuq)',
-'newarticletext' => "Manaraq kachkaq p'anqatam llamk'apuchkanki. Musuq p'anqata kamariyta munaspaykiqa, qillqarillay. Astawan ñawiriyta munaspaykiqa, [[{{MediaWiki:Helppage}}|yanapana p'anqata]] qhaway. Mana munaspaykitaq, ñawpaq p'anqaman ripuy.",
+'newarticletext' => "Manaraq kachkaq p'anqatam llamk'apuchkanki. Musuq p'anqata kamariyta munaspaykiqa, qillqarillay. Astawan ñawiriyta munaspaykiqa, [$1 yanapana p'anqata] qhaway. Mana munaspaykitaq, ñawpaq p'anqaman ripuy.",
 'anontalkpagetext' => "---- ''Kayqa huk sutinnaq icha mana sutinta llamk'achiq ruraqpa rimanakuyninmi. IP huchhantam hallch'asunchik payta sutinchanapaq. Achka ruraqkunam huklla IP huchhanta llamk'achiyta atin. Sutinnaq ruraq kaspaykiqa, mana qampa rurasqaykimanta willamusqakunata rikuspaykiqa, ama hina kaspa [[Special:UserLogin/signup|rakiqunaykita kamariy]] icha [[Special:UserLogin|yaykuy]] huk sutinnaq ruraqkunawan ama pantasqa kanaykipaq.''",
 'noarticletext' => "Kunanqa kay p'anqa ch'usaqmi kachkan.
 Kaytam rurayta atinkiman: kay p'anqap sutinta [[Special:Search/{{PAGENAME}}|huk p'anqakunapi maskay]],
@@ -1179,8 +1175,6 @@ Kay wakin kayta qhawayta atinkim; astawanchá rikunkiman [{{fullurl:{{#Special:L
 'revdelete-show-file-submit' => 'Arí',
 'revdelete-selected' => "'''{{PLURAL:$2|Akllasqa llamk'apusqa|Akllasqa llamk'apusqakuna}} [[:$1]]-manta:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Akllasqa tukusqa|Akllasqa tukusqakuna}} hallch'api:'''",
-'revdelete-text' => "'''Qullusqa llamk'apusqakunaqa p'anqap wiñay kawsayninpi hallch'ankunapipas paqarinqaraqmi, samiqninpa rakinkunataq manam uyanalla qhawanapaqchu.'''
-{{SITENAME}}pi huk kamachiqkunaqa p'anqap pakasqa samiqninta qhawaspa qullusqa kaymanta kutichiyta atinkuraqmi kay kaqlla uyapuratam llamk'achispa, kay wikip kamariqninkuna mana huk saywachanakunata tiyachiptinqa.",
 'revdelete-confirm' => 'Ama hina kaspa, takyachiy munayniykita, qatiqninkunata riqsiyniykita, [[{{MediaWiki:Policy-url}}|kawpaykama]] rurayniykitapas.',
 'revdelete-suppress-text' => "Pakay ruranata '''kaylla kaptin''' llamk'achiy:
 * K'amiqchá willakuna
index 453ff7d..36caecf 100644 (file)
@@ -253,7 +253,6 @@ $1',
 'disclaimers' => 'Kamachikmanta willaykuna',
 'disclaimerpage' => 'Project:Kamachikmanta kapak willaykuna',
 'edithelp' => 'Llankanapaa yanapa',
-'helppage' => 'Help:Yanapa',
 'mainpage' => 'Kapak Panka',
 'mainpage-description' => 'Kapak panka',
 'policy-url' => 'Project:Kamachiykuna',
@@ -393,7 +392,7 @@ Shina kakpika, shuk rurakka ña pankata pichankacha.',
 'showdiff' => 'Mushuk killkaykunata rikuchina',
 'anoneditwarning' => "'''Rikupay:''' kikinpa mana rurak shutiwan yaykurkapanki, shina kakpika kikinpa IP yupaykunaka kay pankapa wiñay kawsaypi tiyankami .",
 'newarticle' => '(Mushuk)',
-'newarticletext' => 'Shuk illak pankaman tinkita katirkapanki. Kay pankata kamankapak uraypi killkapay. Ashtawan yachakunkapak [[{{MediaWiki:Helppage}}|yanapana pankata]] rikupay. Mana chay pankata kamanata munakpika, ñawpa pankaman kutin ripay.',
+'newarticletext' => 'Shuk illak pankaman tinkita katirkapanki. Kay pankata kamankapak uraypi killkapay. Ashtawan yachakunkapak [$1 yanapana pankata] rikupay. Mana chay pankata kamanata munakpika, ñawpa pankaman kutin ripay.',
 'noarticletext' => 'Kunan pachapi, kay pankaka mana killkaykunata charin.
 Pakpak shutita [[Special:Search/{{PAGENAME}}|shuk pankakunapi maskanata]], <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} registroskunapi maskanata]pash ushankimi, kutin [{{fullurl:{{FULLPAGENAME}}|action=edit}} kay pankata kamarinata] ushankimi',
 'noarticletext-nopermission' => 'Kunan pachapi kay pankakapi killkaykuna illan. Paypak shutita [[Special:Search/{{PAGENAME}}|shuk pankakunapi maskanata]] ushapankimi, shinalla <span class="plainlinks">pankakunapa wiñay kawsay kamupi [{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} tinkishka killkaykunapi] maskanata ushapanki</span>. Shinapash, chay pankaka mana kamarinata ushapankichu.',
index 3250799..59716f4 100644 (file)
@@ -275,7 +275,6 @@ $1',
 'disclaimers' => 'Impressum',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Agid per modifitgar',
-'helppage' => 'Help:Cuntegn',
 'mainpage' => 'Pagina principala',
 'mainpage-description' => 'Pagina principala',
 'policy-url' => 'Project:Directivas',
@@ -432,32 +431,65 @@ Resguarda ch'entginas paginas pon tuttina anc vesair or sco sche ti eras annunzi
 'welcomecreation-msg' => "Tes conto è vegnì creà. 
 N'emblida betg da midar tias [[Special:Preferences|{{SITENAME}} preferenzas]].",
 'yourname' => "Num d'utilisader",
+'userlogin-yourname-ph' => "Endatescha tes num d'utilisader",
+'createacct-another-username-ph' => "Endatescha in num d'utilisader",
 'yourpassword' => 'pled-clav',
+'userlogin-yourpassword' => 'Pled-clav',
+'userlogin-yourpassword-ph' => 'Endatescha tes pled-clav',
+'createacct-yourpassword-ph' => 'Endatescha in pled-clav',
 'yourpasswordagain' => 'repeter pled-clav',
+'createacct-yourpasswordagain' => 'Confermar il pled-clav',
+'createacct-yourpasswordagain-ph' => 'Endatescha il pled-clav anc ina giada',
 'remembermypassword' => "S'annunziar permanantamain sin quest computer (per maximalmain $1 {{PLURAL:$1|di|dis}})",
+'userlogin-remembermypassword' => 'Restar annunzià',
+'userlogin-signwithsecure' => 'Duvrar ina connexiun segira',
 'yourdomainname' => 'Vossa domain',
 'password-change-forbidden' => 'Ti na pos betg midar pleds-clav sin quest vichi.',
 'externaldberror' => "U ch'i è capità ina errur cun l'autentificaziun externa u che ti na dastgas betg actualisar tes conto extern.",
 'login' => "T'annunziar",
-'nav-login-createaccount' => "T'annunziar / registrar",
+'nav-login-createaccount' => "T'annunziar / crear in conto",
 'loginprompt' => "Ti stos avair '''activà ils cookies''' per pudair t'annunziar tar {{SITENAME}}.",
-'userlogin' => "T'annunziar / registrar",
+'userlogin' => "T'annunziar / crear in conto",
 'userloginnocreate' => "T'annunziar",
 'logout' => 'Sortir',
 'userlogout' => 'sortir',
 'notloggedin' => "Betg s'annunzià",
+'userlogin-noaccount' => 'Anc nagin conto?',
+'userlogin-joinproject' => 'Far part da {{SITENAME}}',
 'nologin' => "Anc nagin conto? '''$1'''.",
 'nologinlink' => "Crear in conto d'utilisader",
 'createaccount' => "Crear in conto d'utilisader",
 'gotaccount' => "Gia in conto d'utilisader? '''$1'''.",
 'gotaccountlink' => "T'annunziar",
 'userlogin-resetlink' => "Emblidà tias datas per s'annunziar?",
+'userlogin-resetpassword-link' => 'Has emblidà tes pled-clav?',
+'userlogin-loggedin' => "Ti es gia t'annunzià sco {{GENDER:$1|$1}}.
+Dovra il suandant formular per t'annunziar cun in auter conto.",
+'userlogin-createanother' => 'Crear in auter conto',
+'createacct-join' => 'Endatescha tias infurmaziuns sutvart.',
+'createacct-another-join' => 'Endatescha sutvart las infurmaziuns dal nov conto.',
+'createacct-emailrequired' => 'Adressa dad e-mail',
+'createacct-emailoptional' => 'Adressa dad e-mail (opziunal)',
+'createacct-email-ph' => "Endatescha ti'adressa dad e-mail",
+'createacct-another-email-ph' => "Endatescha in'adressa dad e-mail",
 'createaccountmail' => "Dovrar per il mument in pled-clav casual ed inviar el a l'adressa d'e-mail inditgada.",
+'createacct-realname' => 'Num real (opziunal)',
 'createaccountreason' => 'Motiv:',
+'createacct-reason' => 'Motiv',
+'createacct-reason-ph' => 'Tes motiv per crear in auter conto',
+'createacct-captcha' => 'Controlla da segirezza',
+'createacct-imgcaptcha-ph' => 'Endatescha il text che vesas survart',
+'createacct-submit' => 'Crear tes conto',
+'createacct-another-submit' => 'Crear in auter conto',
+'createacct-benefit-heading' => '{{SITENAME}} exista grazia a persunas sco ti.',
+'createacct-benefit-body1' => '{{PLURAL:$1|modificaziun|modificaziuns}}',
+'createacct-benefit-body2' => '{{PLURAL:$1|pagina|paginas}}',
+'createacct-benefit-body3' => '{{PLURAL:$1|contribuent activ|contribuents activs}}',
 'badretype' => 'Ils dus pleds-clav na corrispundan betg.',
 'userexists' => "Quest num d'utilisader vegn gia duvrà. 
 Tscherna per plaschair in'auter.",
 'loginerror' => "Sbagl cun t'annunziar",
+'createacct-error' => 'Errur cun crear il conto',
 'createaccounterror' => 'Betg pussaivel da crear in conto: $1',
 'nocookiesnew' => "Il conto da l'utilisader è vegnì creà, ti es dentant betg t'annunzià. 
 {{SITENAME}} utilisescha cookies per che utilisaders pon s'annunziar. 
@@ -521,6 +553,8 @@ Spetga $1 avant ch'empruvar anc ina giada.",
 'login-abort-generic' => 'Annunzia senza success - Annullà',
 'loginlanguagelabel' => 'Lingua: $1',
 'suspicious-userlogout' => "Tia dumonda per partir è vegnida refusada perquai ch'i para ch'ella è vegnida tramessa d'in navigatur che funcziuna betg correctamain u d'in proxy da cache.",
+'createacct-another-realname-tip' => "Il num real è opziunal.
+Sche ti l'inditgeschas, vegn el duvrà per attribuir las contribuziuns.",
 
 # Email sending
 'php-mail-error-unknown' => 'Errur nunenconuschenta en la funcziun mail() da PHP',
@@ -665,7 +699,7 @@ Ella è eventualmain vegnida spustada u stizzada durant che ti has contemplà la
 'accmailtitle' => 'Il pled-clav è vegnì tramess.',
 'accmailtext' => "In pled-clav casual per [[User talk:$1|$1]] è vegnì tramess a $2. El po vegnir midà sin la pagina ''[[Special:ChangePassword|midar pled-clav]]'' suenter che ti t'es annunzià.",
 'newarticle' => '(Nov)',
-'newarticletext' => "Ti has cliccà ina colliaziun ad ina pagina che n'exista anc betg. Per crear ina pagina, entschaiva a tippar en la stgaffa sutvart (guarda [[{{MediaWiki:Helppage}}|la pagina d'agid]] per t'infurmar).",
+'newarticletext' => "Ti has cliccà ina colliaziun ad ina pagina che n'exista anc betg. Per crear ina pagina, entschaiva a tippar en la stgaffa sutvart (guarda [$1 la pagina d'agid] per t'infurmar).",
 'anontalkpagetext' => "----''Quai è la pagina da discussiun per in utilisader anomim che n'ha anc betg creà in conto d'utilisader u che n'al utilisescha betg.
 Perquai avain nus d'utilisar l'adressa dad IP per l'identifitgar.
 Ina tala adressa dad IP po vegnir utilisada da differents utilisaders.
@@ -907,8 +941,6 @@ Ti pos vesair quest diff; detagls pon vegnir chattads en il [{{fullurl:{{#Specia
 'revdelete-show-file-submit' => 'Gea',
 'revdelete-selected' => "'''{{PLURAL:$2|Versiun tschernida|Versiuns tschernidas}} da [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Element dal protocol tschernì|Elements dal protocol tschernids}}:'''",
-'revdelete-text' => "'''Versiuns ed ocurrenzas stizzadas cumparan era vinavant en la cronologia ed en ils protocols, dentant èn parts dal cuntegn betg accessibels al public.'''
-Auters administraturs sin {{SITENAME}} vegnan tuttina ad avair access al cuntegn zuppentà e pon restaurar puspè la pagina, sch'i na vegnan betg definidas restricziuns supplementaras.",
 'revdelete-confirm' => 'Confermescha che ti vuls far quai, che ti chapeschas las consequenzas e che ti fas quai en accordanza cun [[{{MediaWiki:Policy-url}}|las directivas]].',
 'revdelete-suppress-text' => "Ti duessas '''be''' supprimer en quests cas: 
 * Infurmaziuns offendentas
@@ -1023,7 +1055,7 @@ Detagls pon vegnir chattads en il [{{fullurl:{{#Special:Log}}/delete|page={{FULL
 'shown-title' => 'Mussar $1 {{PLURAL:$1|resultat|resultats}} per pagina',
 'viewprevnext' => 'Mussar ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-exists' => "'''Igl exista ina pagina cun il num \"[[:\$1]] sin questa vichi\"'''",
-'searchmenu-new' => "'''Crear la pagina \"[[:\$1]]\" sin questa vichi!'''",
+'searchmenu-new' => '<strong>Crear la pagina «[[:$1]]» sin quest vichi!</strong> {{PLURAL:$2|0=|Vesair er la pagina chattada cun tia tschertga.|Vesair er las resultats da tia tschertga.}}',
 'searchprofile-articles' => 'Paginas da cuntegn',
 'searchprofile-project' => 'Agid e paginas dal project',
 'searchprofile-images' => 'Multimedia',
@@ -1337,15 +1369,28 @@ Tia adressa dad e-mail na vegn betg mussada sche auters utilisaders ta contactes
 'recentchanges-label-minor' => 'Quai è ina pitschna modificaziun',
 'recentchanges-label-bot' => 'Questa modificaziun è vegnida exequida dad in bot',
 'recentchanges-label-unpatrolled' => "Questa midada n'è anc betg vegnida controllada",
+'recentchanges-legend-heading' => "'''Legenda:'''",
 'recentchanges-legend-newpage' => '(vesair era la [[Special:NewPages|glista da novas paginas]])',
-'rcnotefrom' => "Midadas dapi '''$2''' (maximalmain '''$1''' vegnan mussads).",
-'rclistfrom' => 'Mussar las novas midadas entschavend cun $1',
+'rcnotefrom' => 'I vegnan mussadas las midadas a partir da las <strong>$4</strong> dals <strong>$3</strong> (maximalmain <strong>$1</strong>).',
+'rclistfrom' => 'Mussar las novas midadas a partir da las $2 dals $3',
 'rcshowhideminor' => '$1 midadas pitschnas',
+'rcshowhideminor-show' => 'Mussar',
+'rcshowhideminor-hide' => 'Zuppentar',
 'rcshowhidebots' => '$1 bots',
+'rcshowhidebots-show' => 'Mussar',
+'rcshowhidebots-hide' => 'Zuppentar',
 'rcshowhideliu' => '$1 utilisaders annunziads',
+'rcshowhideliu-show' => 'Mussar',
+'rcshowhideliu-hide' => 'Zuppentar',
 'rcshowhideanons' => '$1 utilisaders anonims',
+'rcshowhideanons-show' => 'Mussar',
+'rcshowhideanons-hide' => 'Zuppentar',
 'rcshowhidepatr' => '$1 midadas controlladas',
+'rcshowhidepatr-show' => 'Mussar',
+'rcshowhidepatr-hide' => 'Zuppentar',
 'rcshowhidemine' => '$1 mias midadas',
+'rcshowhidemine-show' => 'Mussar',
+'rcshowhidemine-hide' => 'Zuppentar',
 'rclinks' => 'Mussar las davosas $1 midadas dals ultims $2 dis<br />$3',
 'diff' => 'diff',
 'hist' => 'ist',
@@ -2071,7 +2116,7 @@ Conferma per plaschair che ti ta es conscient da las consequenzas e che ti agesc
 'actioncomplete' => "L' acziun è terminada.",
 'actionfailed' => "L'acziun n'è betg reussida",
 'deletedtext' => '"$1" è vegnì stizzà.
-Sin $2 chattas ti ina glista dals davos artitgels stizzads.',
+En il $2 chattas ti ina glista dals davos artitgels stizzads.',
 'dellogpage' => "Protocol d'eliminaziuns",
 'dellogpagetext' => "Sutvart è ina glista dals elements stizzads l'ultim.",
 'deletionlog' => "protocol d'eliminaziuns",
@@ -3501,6 +3546,7 @@ Ti duessas avair retschavì [{{SERVER}}{{SCRIPTPATH}}/COPYING ina copia da la GN
 
 # Special:SpecialPages
 'specialpages' => 'Paginas spezialas',
+'specialpages-note-top' => 'Legenda',
 'specialpages-note' => '* Paginas spezialas normalas.
 * <span class="mw-specialpagerestricted">Paginas spezialas restrenschidas.</span>',
 'specialpages-group-maintenance' => 'Rapports da mantegnamant',
@@ -3610,8 +3656,8 @@ Ti duessas avair retschavì [{{SERVER}}{{SCRIPTPATH}}/COPYING ina copia da la GN
 'logentry-newusers-create2' => 'Il conto $3 è vegnì creà da $1',
 'logentry-newusers-autocreate' => 'Il conto $1 è vegnì creà automaticamain',
 'logentry-rights-rights' => '$1 ha midà la commembranza da gruppas per $3 da $4 a $5',
-'logentry-rights-rights-legacy' => '$1 ha midà la commembranza da gruppas per $3',
-'logentry-rights-autopromote' => '$1 è vegnì promovì automaticamain da $4 a $5',
+'logentry-rights-rights-legacy' => '$1 ha {{GENDER:$2|midà}} la commembranza da gruppas per $3',
+'logentry-rights-autopromote' => '$1 è vegnì {{GENDER:$2|promovì|promovida}} automaticamain da $4 a $5',
 'rightsnone' => '(nagins)',
 
 # Feedback
index d8b50af..df2a783 100644 (file)
@@ -334,7 +334,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Doresc să primesc o copie a mesajelor e-mail pe care le trimit',
 'tog-diffonly' => 'Nu arăta conținutul paginii sub dif',
 'tog-showhiddencats' => 'Arată categoriile ascunse',
-'tog-noconvertlink' => 'Dezactivează conversia titlurilor',
 'tog-norollbackdiff' => 'Nu arăta diferența după efectuarea unei reveniri',
 'tog-useeditwarning' => 'Avertizează-mă când părăsesc o pagină fără a salva modificările',
 'tog-prefershttps' => 'Utilizează întotdeauna o conexiune securizată când sunt autentificat(ă)',
@@ -546,7 +545,6 @@ $1',
 'disclaimers' => 'Termeni',
 'disclaimerpage' => 'Project:Termeni',
 'edithelp' => 'Ajutor pentru modificare',
-'helppage' => 'Help:Ajutor',
 'mainpage' => 'Pagina principală',
 'mainpage-description' => 'Pagina principală',
 'policy-url' => 'Project:Politică',
@@ -746,8 +744,7 @@ Nu uitați să vă modificați [[Special:Preferences|preferințele]] pentru {{SI
 'gotaccountlink' => 'Autentificați-vă',
 'userlogin-resetlink' => 'Ați uitat datele de autentificare?',
 'userlogin-resetpassword-link' => 'V-ați uitat parola?',
-'helplogin-url' => 'Help:Autentificare',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ajutor la autentificare]]',
+'userlogin-helplink2' => 'Ajutor la autentificare',
 'userlogin-loggedin' => 'Sunteți deja {{GENDER:$1|autentificat|autentificată}} ca {{GENDER:$1|$1}}.
 Utilizați formularul de mai jos pentru a vă autentifica cu alt nume de utilizator.',
 'userlogin-createanother' => 'Creează un alt cont',
@@ -838,6 +835,7 @@ Vă rugăm să așteptați $1 până să reîncercați.',
 'createacct-another-realname-tip' => 'Numele real este opțional.
 Dacă decideți furnizarea sa, acesta va fi folosit pentru a atribui utilizatorului munca sa.',
 'pt-login' => 'Autentificare',
+'pt-login-button' => 'Autentificare',
 'pt-createaccount' => 'Creare cont',
 'pt-userlogout' => 'Închide sesiunea',
 
@@ -870,7 +868,10 @@ Pentru a finaliza acțiunea de autentificare, trebuie să setați o parolă nou
 'resetpass-temp-password' => 'Parolă temporară:',
 'resetpass-abort-generic' => 'Schimbarea parolei a fost anulată de către o extensie.',
 'resetpass-expired' => 'Parola dumneavoastră a expirat. Alegeți o parolă nouă pentru a vă autentifica.',
-'resetpass-expired-soft' => 'Parola dumneavoastră a expirat și trebuie schimbată. Alegeți o parolă nouă acum sau apăsați Revocare pentru a o reseta mai târziu.',
+'resetpass-expired-soft' => 'Parola dumneavoastră a expirat și trebuie schimbată. Alegeți o parolă nouă acum sau apăsați „{{int:resetpass-submit-cancel}}” pentru a o reseta mai târziu.',
+'resetpass-validity-soft' => 'Parola dumneavoastră nu este validă: $1 
+
+Alegeți o parolă nouă acum sau apăsați „{{int:resetpass-submit-cancel}}” pentru a o reseta mai târziu.',
 
 # Special:PasswordReset
 'passwordreset' => 'Resetare parolă',
@@ -1012,7 +1013,7 @@ Aceasta fie a fost mutată, fie a fost ștearsă în timp ce vizualizați pagina
 'accmailtitle' => 'Parola a fost trimisă.',
 'accmailtext' => "O parolă generată aleator pentru [[User talk:$1|$1]] a fost trimisă la $2. Parola poate fi schimbată după autentificare din pagina ''[[Special:ChangePassword|schimbare parolă]]''.",
 'newarticle' => '(Nou)',
-'newarticletext' => 'Ați încercat să ajungeți la o pagină care nu există. Pentru a o crea, începeți să scrieți în caseta de mai jos (vedeți [[{{MediaWiki:Helppage}}|pagina de ajutor]] pentru mai multe informații). Dacă ați ajuns aici din greșeală, întoarceți-vă folosind controalele navigatorului dumneavoastră.',
+'newarticletext' => 'Ați încercat să ajungeți la o pagină care nu există. Pentru a o crea, începeți să scrieți în caseta de mai jos (vedeți [$1 pagina de ajutor] pentru mai multe informații). Dacă ați ajuns aici din greșeală, întoarceți-vă folosind controalele navigatorului dumneavoastră.',
 'anontalkpagetext' => "---- ''Aceasta este pagina de discuții pentru un utilizator care nu și-a creat un cont încă, sau care nu s-a autentificat.
 De aceea trebuie să folosim adresă IP pentru a identifica această persoană.
 O adresă IP poate fi folosită în comun de mai mulți utilizatori.
@@ -1263,7 +1264,10 @@ funcție, fie versiunea specificată nu există, ori sunteți pe cale să ascund
 'revdelete-show-file-submit' => 'Da',
 'revdelete-selected' => "'''{{PLURAL:$2|Versiunea aleasă|Versiunile alese}} pentru [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Revizia aleasă|Reviziile alese}}:'''",
-'revdelete-text' => "'''Versiunile șterse vor apărea în istoricul paginii, dar conținutul lor nu va fi accesibil publicului.''' Administratorii {{SITENAME}} pot accesa conținutul șters și îl pot recupera prin aceeași interfață, dacă nu este impusă altă restricție de către operatorii sitului.",
+'revdelete-text-text' => 'Versiunile șterse vor continua să fie vizibile în istoricul paginii, însă anumite părți ale conținutului acestora vor fi inaccesibile publicului.',
+'revdelete-text-file' => 'Versiunile șterse ale fișierului vor continua să fie vizibile în istoricul fișierului, însă anumite părți ale conținutului acestora vor fi inaccesibile publicului.',
+'logdelete-text' => 'Evenimentele șterse ale jurnalului vor continua să fie vizibile în jurnale, însă anumite părți ale conținutului acestora vor fi inaccesibile publicului.',
+'revdelete-text-others' => 'Alți administratori de la {{SITENAME}} vor avea acces în continuare la conținutul ascuns și îl vor putea restaura prin intermediul acestei interfețe, cu excepția cazurilor în care nu sunt activate și restricții suplimentare.',
 'revdelete-confirm' => 'Vă rugăm să confirmați că intenționați să faceți acest lucru, că înțelegeți consecințele și că faceți asta în conformitate cu [[{{MediaWiki:Policy-url}}|politica]].',
 'revdelete-suppress-text' => "Suprimarea trebuie folosită '''doar''' în următoarele cazuri:
 * Informații potențial calomnioase
@@ -1398,7 +1402,7 @@ Detalii se pot găsi în [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE
 'search-file-match' => '(se regăsește în conținutul fișierului)',
 'search-suggest' => 'V-ați referit la: $1',
 'search-interwiki-caption' => 'Proiecte înrudite',
-'search-interwiki-default' => '$1 rezultate:',
+'search-interwiki-default' => 'Rezultate de la $1:',
 'search-interwiki-more' => '(mai mult)',
 'search-relatedarticle' => 'Relaționat',
 'searcheverything-enable' => 'Caută în toate spațiile de nume',
@@ -1724,8 +1728,8 @@ Dacă decideți furnizarea sa, acesta va fi folosit pentru a vă atribui munca.'
 'recentchanges-legend-heading' => "'''Legendă:'''",
 'recentchanges-legend-newpage' => '(vedeți și [[Special:NewPages|lista cu pagini noi]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => 'Dedesubt sunt modificările de la <b>$2</b> (maxim <b>$1</b> de modificări sunt afișate - schimbă numărul maxim de linii alegând altă valoare mai jos).',
-'rclistfrom' => 'Se arată modificările începând cu $1',
+'rcnotefrom' => 'Dedesubt sunt modificările începând cu <b>$2</b> (maximum <b>$1</b> afișate).',
+'rclistfrom' => 'Se afișează modificările începând cu $1',
 'rcshowhideminor' => '$1 modificările minore',
 'rcshowhideminor-show' => 'Arată',
 'rcshowhideminor-hide' => 'Ascunde',
@@ -2240,7 +2244,7 @@ Intrările <del>tăiate</del> au fost rezolvate.',
 'deadendpagestext' => 'Următoarele pagini nu se leagă de alte pagini din acestă wiki.',
 'protectedpages' => 'Pagini protejate',
 'protectedpages-indef' => 'Doar protejări pe termen nelimitat',
-'protectedpages-summary' => 'Această pagină enumeră paginile protejate în acest moment. Pentru o listă a titlurilor protejate la creare, vedeți [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Această pagină enumeră paginile protejate în acest moment. Pentru o listă a titlurilor protejate la creare, vedeți [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Doar protejări în cascadă',
 'protectedpages-noredirect' => 'Ascunde redirecționările',
 'protectedpagesempty' => 'Nu există pagini protejate',
@@ -2253,7 +2257,7 @@ Intrările <del>tăiate</del> au fost rezolvate.',
 'protectedpages-unknown-timestamp' => 'Necunoscut',
 'protectedpages-unknown-performer' => 'Utilizator necunoscut',
 'protectedtitles' => 'Titluri protejate',
-'protectedtitles-summary' => 'Această pagină enumeră titlurile protejate la creare în acest moment. Pentru o listă a paginilor deja existente care sunt protejate, vedeți [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Această pagină enumeră titlurile protejate la creare în acest moment. Pentru o listă a paginilor deja existente care sunt protejate, vedeți [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Nu există titluri protejate cu acești parametri.',
 'listusers' => 'Listă utilizatori',
 'listusers-editsonly' => 'Arată doar utilizatorii cu modificări',
@@ -2526,7 +2530,7 @@ Accesați $2 pentru o listă cu elementele recent șterse.',
 'delete-warning-toobig' => 'Această pagină are un istoric al modificărilor mult prea mare, cu mai mult de $1 {{PLURAL:$1|versiune|versiuni|de versiuni}}.
 Ștergerea sa poate afecta baza de date a sitului {{SITENAME}};
 acționați cu precauție.',
-'deleting-backlinks-warning' => "'''Atenție:''' Alte pagini se leagă sau sunt transcluse din pagina pe care doriți să o ștergeți.",
+'deleting-backlinks-warning' => "'''Atenție:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Alte pagini]] se leagă sau transclud pagina pe care doriți să o ștergeți.",
 
 # Rollback
 'rollback' => 'Editări de revenire',
@@ -2577,8 +2581,8 @@ Iată configurația curentă a paginii '''$1''':",
 Iată configurația curentă a paginii '''$1''':",
 'protect-locked-access' => "Contul dumneavoastră nu are permisiunea de a schimba nivelurile de protejare a paginii.
 Aici sunt setările curente pentru pagina '''$1''':",
-'protect-cascadeon' => 'Această pagină este protejată deoarece este inclusă în {{PLURAL:$1|următoarea pagină, ce are|următoarele pagini ce au}} activată protejarea la modificare în cascadă.
-Puteți schimba nivelul de protejare al acestei pagini, dar asta nu va afecta protecția în cascadă.',
+'protect-cascadeon' => 'Această pagină este protejată deoarece este inclusă în {{PLURAL:$1|următoarea pagină ce are|următoarele pagini ce au}} activată protejarea în cascadă.
+Schimbarea nivelului de protejare al acestei pagini nu va afecta protejarea în cascadă.',
 'protect-default' => 'Permis pentru toți utilizatorii',
 'protect-fallback' => 'Autorizat doar pentru utilizatorii cu permisiunea „$1”',
 'protect-level-autoconfirmed' => 'Autorizat doar pentru utilizatorii autoconfirmați',
@@ -2700,6 +2704,7 @@ Ultima blocare este indicată mai jos pentru informare:',
 'sp-contributions-blocked-notice-anon' => 'Această adresă IP este blocată acum.
 Iată aici ultima înregistrare relevantă din jurnalul blocărilor:',
 'sp-contributions-search' => 'Căutare contribuții',
+'sp-contributions-suppresslog' => 'contribuții suprimate ale utilizatorului',
 'sp-contributions-username' => 'Adresă IP sau nume de utilizator:',
 'sp-contributions-toponly' => 'Afișează numai versiunile recente',
 'sp-contributions-newonly' => 'Afișează numai modificările care au dus la crearea de pagini',
index 38255d1..d13b421 100644 (file)
@@ -61,7 +61,6 @@ $messages = array(
 'tog-ccmeonemails' => "Manneme 'na copie de le mail ca je manne a l'ôtre utinde",
 'tog-diffonly' => 'No fà vedè le pàggene cu le condenute sotte a le differenze',
 'tog-showhiddencats' => 'Fa vedè le categorije scunnute',
-'tog-noconvertlink' => "Disabbilite 'a conversione d'u titele de collegamende",
 'tog-norollbackdiff' => "Non sce penzanne a le differenze apprisse l'esecuzione de 'nu rollback",
 'tog-useeditwarning' => "Avvisave quanne jie lasse 'na pàgene cangiate senze ca agghie sarvate le cangiaminde",
 'tog-prefershttps' => "Ause sembre 'na connessione secure quanne trase",
@@ -274,7 +273,6 @@ $1",
 'disclaimers' => 'No ne sacce ninde',
 'disclaimerpage' => 'Project:Scareca uarrile',
 'edithelp' => "Cangianne l'ajute",
-'helppage' => 'Help:Condenute',
 'mainpage' => 'Pàgene Prengepàle',
 'mainpage-description' => 'Pàgene Prengepàle',
 'policy-url' => 'Project:Reghele',
@@ -480,8 +478,6 @@ No te sce scurdanne de cangià le [[Special:Preferences|{{SITENAME}} preferenze
 'gotaccountlink' => 'Tràse',
 'userlogin-resetlink' => "T'è scurdate le dettaglie pe trasè?",
 'userlogin-resetpassword-link' => "T'è scurdate 'a passuord toje?",
-'helplogin-url' => 'Help:Trasenne',
-'userlogin-helplink' => "[[{{MediaWiki:helplogin-url}}|Aijute cu 'a trasute]]",
 'userlogin-loggedin' => "Tu ste jndre ggià cumme a {{GENDER:$1|$1}}.
 Ause 'u module aqquà sotte pe trasè cumme a 'n'otre utende.",
 'userlogin-createanother' => "Ccreje 'n'otre cunde",
@@ -591,7 +587,7 @@ Ce tu scacchie de metterle, quiste avène ausate pe dà 'u giuste merite a 'a fa
 
 # Change password dialog
 'changepassword' => "Cange 'a password",
-'resetpass_announce' => "Tu tè colleghete cu 'nu codece mannete pe e-mail temboranee.
+'resetpass_announce' => "Tu tè collegate cu 'nu codece mannate pe e-mail temboranèe.
 Pe spiccià 'a procedure de collegamende, tu a 'mbostà 'na password nove aqquà:",
 'resetpass_text' => "<!-- Mitte 'u teste aqquà -->",
 'resetpass_header' => "Cange 'a password d'u cunde utende",
@@ -752,7 +748,7 @@ Pò essere ca ha state spustate o scangellate quanne tu ste vedive 'a pàgene.",
 'A passuord pe stu cunde utende pò essere cangiate sus a pàgene ''[[Special:ChangePassword|cange passuord]]'' 'na vote ca è trasute.",
 'newarticle' => '(Nuève)',
 'newarticletext' => "Tu ste segue 'nu collegamende a pàgene ca angore non g'esiste.
-Pe ccrejà 'a pàgene, accuminze a scrivere jndr'à 'u scatole de sotte (vide 'a [[{{MediaWiki:Helppage}}|pàggene d'ajute]] pe avè cchiù 'mbormaziune).
+Pe ccrejà 'a pàgene, accuminze a scrivere jndr'à 'u scatole de sotte (vide 'a [$1 pàggene d'ajute] pe avè cchiù 'mbormaziune).
 Ce tu te iacche aqquà e manghe tu 'u se purcè, allore cazze 'u buttone '''back''' d'u brauser.",
 'anontalkpagetext' => "----''Queste jè 'na pàgene de 'ngazzaminde pe 'n'utende anonime, ca non ge vò ccu ccreje angore 'nu cunde utende, o de ce non g'u use.
 Nuje auseme 'n'indirizze IP (ca jè numereche) pe identificarle.
@@ -999,8 +995,6 @@ Tu puè vedè ste differenze; pò essere ca stonne cchiù 'mbormaziune jndr'à l
 'revdelete-show-file-submit' => 'Sìne',
 'revdelete-selected' => "'''{{PLURAL:$2|Revisiona selezionete|Revisiune selezionete}} de [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Fatte de l'archivije selezionete|Fatte de l'archivije selezionete}}:'''",
-'revdelete-text' => "'''Le revisiune scangellete e le evende iessene angore jndr'à storie d'a pàgene e jndr'à l'archivije, ma stuezze d'u condenute lore pò essere inaccessibbele a 'u pubbleche.'''
-Otre amministrature sus a {{SITENAME}}ponne angore trasè jndr'à 'u condenute scunnute e 'u ponne scangellà 'n'otra vote ausanne st'inderfacce, senze 'mbostà otre restriziune.",
 'revdelete-confirm' => 'Pe piacere conferme ca tu vuè ccu face sta cose, ce tu è capite le conseguenze e ce quidde ca ste face jè in accorde cu le [[{{MediaWiki:Policy-url}}|reghele]] de Uicchipèdie.',
 'revdelete-suppress-text' => "'A soppressione adda essere ausate '''sulamende''' jndr'à le case seguende:
 * 'Mbormaziune potenzialmende offenzive
@@ -1461,7 +1455,7 @@ Ce tu 'u mitte, a fatje ca è fatte t'avène ricanusciute.",
 'recentchanges-label-unpatrolled' => "Stu cangiamende non g'à state angore condrollate",
 'recentchanges-legend-heading' => "'''Leggende:'''",
 'recentchanges-legend-newpage' => "('ndruche pure [[Special:NewPages|elenghe de le pàggene nuève]])",
-'rcnotefrom' => "Sotte stonne le cangiaminde da '''$2''' (fine a '''$1''' mustrete).",
+'rcnotefrom' => "Sotte stonne le cangiaminde da '''$2''' ('nzigne a '''$1''' fatte vedè).",
 'rclistfrom' => 'Fà vedè le urteme cangiaminde partenne da $1',
 'rcshowhideminor' => '$1 cangiaminde stuèdeche',
 'rcshowhidebots' => '$1 bot',
@@ -1600,6 +1594,8 @@ Avissa verificà 'a storie d'a scangellazzione d'u file apprime de condinuà a c
 'php-uploaddisabledtext' => "Le carecaminde de file sonde disabilitate in PHP.<br />
 Pe piacere verifiche le 'mbostaziune d'u ''file_uploads''.",
 'uploadscripted' => "Stu file condene HTML o codece de script ca ponne essere inderpretete jndr'à 'nu mode sbagliete da le browser.",
+'uploadscriptednamespace' => "Stu file SVG tène 'nu namespace illegale '$1'",
+'uploadinvalidxml' => "L'XML jndr'à 'u file carecate non ge pò essere analizzate.",
 'uploadvirus' => "Alanga toje, 'u file condiene 'nu virus! Dettaglie: $1",
 'uploadjava' => "'U file jè 'nu file de tipe ZIP ca condene 'nu file de classe Java.
 'U carecamende de le file Java non g'è permesse, purcé lore ponne causà l'aggiramende de le restriziune de sicurezze.",
@@ -4174,6 +4170,4 @@ In pratiche tutte quidde ca stè jndr'à le doppie parendesi graffe.<br />",
 'expand_templates_generate_xml' => "Fà vedè l'arvule de l'analisi XML",
 'expand_templates_preview' => 'Andeprime',
 
-# Unknown messages
-'uploadinvalidxml' => "L'XML jndr'à 'u file carecate non ge pò essere analizzate.",
 );
index 6bc179c..0c971d8 100644 (file)
@@ -479,7 +479,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Отправлять мне копии писем, которые я посылаю другим участникам',
 'tog-diffonly' => 'Не показывать содержание страницы под сравнением двух версий',
 'tog-showhiddencats' => 'Показывать скрытые категории',
-'tog-noconvertlink' => 'Отключить ссылку на преобразование заголовка',
 'tog-norollbackdiff' => 'Не показывать разницу версий после выполнения отката',
 'tog-useeditwarning' => 'Предупреждать, когда я покидаю страницу с несохранёнными изменениями',
 'tog-prefershttps' => 'Всегда использовать защищённое соединение после представления системе',
@@ -691,7 +690,6 @@ $1',
 'disclaimers' => 'Отказ от ответственности',
 'disclaimerpage' => 'Project:Отказ от ответственности',
 'edithelp' => 'Справка по редактированию',
-'helppage' => 'Help:Содержание',
 'mainpage' => 'Заглавная страница',
 'mainpage-description' => 'Заглавная страница',
 'policy-url' => 'Project:Правила',
@@ -890,8 +888,7 @@ $2',
 'gotaccountlink' => 'Представьтесь',
 'userlogin-resetlink' => 'Забыли данные для входа?',
 'userlogin-resetpassword-link' => 'Сбросить ваш пароль?',
-'helplogin-url' => 'Help:Представление системе',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Помощь со входом в систему]]',
+'userlogin-helplink2' => 'Помощь по входу',
 'userlogin-loggedin' => 'Вы уже вошли как {{GENDER:$1|$1}}.
 Используйте форму ниже, чтобы войти под другой учётной записью.',
 'userlogin-createanother' => 'Создать другую учётную запись',
@@ -988,6 +985,7 @@ $2',
 'createacct-another-realname-tip' => 'Настоящее имя (необязательное поле).
 Если вы укажете его, то оно будет использовано для того, чтобы показать, кем была внесена правка страницы.',
 'pt-login' => 'Войти',
+'pt-login-button' => 'Войти',
 'pt-createaccount' => 'Создать учётную запись',
 'pt-userlogout' => 'Выйти',
 
@@ -1020,7 +1018,10 @@ $2',
 'resetpass-temp-password' => 'Временный пароль:',
 'resetpass-abort-generic' => 'Изменение пароля было прервано расширением.',
 'resetpass-expired' => 'Срок действия вашего пароля истёк. Пожалуйста, установите новый пароль для входа в систему.',
-'resetpass-expired-soft' => 'Срок действия вашего пароля истёк, и теперь он должен быть изменён. Пожалуйста, выберите новый пароль или нажмите «Отменить», чтобы изменить его позже.',
+'resetpass-expired-soft' => 'Срок действия вашего пароля истёк, и теперь он должен быть изменён. Пожалуйста, выберите новый пароль или нажмите «{{int:resetpass-submit-cancel}}», чтобы изменить его позже.',
+'resetpass-validity-soft' => 'Ваш пароль является некорректным: $1
+
+Пожалуйста, выберите новый пароль или нажмите «{{int:resetpass-submit-cancel}}», чтобы сбросить его позже.',
 
 # Special:PasswordReset
 'passwordreset' => 'Сброс пароля',
@@ -1168,7 +1169,7 @@ $2
 После авторизации можно будет сменить пароль для этой учётной записи на ''[[Special:ChangePassword|специальной странице смены пароля]]''.",
 'newarticle' => '(Новая)',
 'newarticletext' => "Вы перешли по ссылке на страницу, которой пока не существует.
-Чтобы её создать, наберите текст в окне, расположенном ниже (подробнее см. [[{{MediaWiki:Helppage}}|справочную страницу]]).
+Чтобы её создать, наберите текст в окне, расположенном ниже (подробнее см. [$1 справочную страницу]).
 Если вы оказались здесь по ошибке, просто нажмите кнопку '''назад''' своего браузера.",
 'anontalkpagetext' => "----''Эта страница обсуждения принадлежит анонимному участнику, который ещё не создал учётной записи, или не использует её.
 Поэтому для идентификации используется цифровой IP-адрес.
@@ -1416,8 +1417,10 @@ $3 {{GENDER:$3|указал|указала}} следующую причину:
 'revdelete-show-file-submit' => 'Да',
 'revdelete-selected' => "'''{{PLURAL:$2|1=Выбранная версия|Выбранные версии}} страницы [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|1=Выбранная запись|Выбранные записи}} журнала:'''",
-'revdelete-text' => "'''Удалённые версии страниц и события будут показываться в истории страницы и журналах, но часть их содержания будет недоступна обычным посетителям.'''
-Администраторы проекта {{SITENAME}} будут иметь доступ к скрытому содержанию и смогут восстановить его через этот же интерфейс, за исключением случаев, когда установлено дополнительное ограничение.",
+'revdelete-text-text' => 'Удалённые версии будут по-прежнему видны в истории страницы, но части их содержимого будут недоступны для участников.',
+'revdelete-text-file' => 'Удалённые версии файла будут по-прежнему видны в истории страницы, но части их содержимого будут недоступны для участников.',
+'logdelete-text' => 'Удалённые события в журнале будут по-прежнему видны в журналах, но части их содержимого будут недоступны для участников.',
+'revdelete-text-others' => 'Другие администраторы на {{grammar:genitive|{{SITENAME}}}} по-прежнему будет иметь возможность доступа к скрытому содержимому и смогут восстановить его снова через этот же интерфейс, если не установлены дополнительные ограничения.',
 'revdelete-confirm' => 'Пожалуйста, подтвердите, что вы действительно желаете совершить это действие, осознаёте последствия, делаете это в соответствии с [[{{MediaWiki:Policy-url}}|правилами]].',
 'revdelete-suppress-text' => "Сокрытие может производиться '''только''' в следующих случаях:
 * Потенциально клеветническая информация
@@ -1553,7 +1556,7 @@ $1",
 'search-file-match' => '(совпадает с содержимым файла)',
 'search-suggest' => 'Возможно, вы имели в виду «$1».',
 'search-interwiki-caption' => 'Родственные проекты',
-'search-interwiki-default' => '$1 результ.:',
+'search-interwiki-default' => 'Результаты из $1:',
 'search-interwiki-more' => '(ещё)',
 'search-relatedarticle' => 'Связанный',
 'searcheverything-enable' => 'Поиск по всем пространствам имён',
@@ -1878,7 +1881,7 @@ $1",
 'recentchanges-legend-heading' => "'''Легенда:'''",
 'recentchanges-legend-newpage' => '(см. также [[Special:NewPages|список новых страниц]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "Ниже перечислены изменения с '''$2''' (не более '''$1''').",
+'rcnotefrom' => 'Ниже перечислены изменения с <strong>$2</strong> (показано не более <strong>$1</strong>).',
 'rclistfrom' => 'Показать изменения с $1.',
 'rcshowhideminor' => '$1 малые правки',
 'rcshowhideminor-show' => 'Показать',
@@ -2278,6 +2281,11 @@ $1',
 # List redirects
 'listredirects' => 'Список перенаправлений',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Список файлов с дубликатами',
+'listduplicatedfiles-summary' => 'Это список файлов, где самая последняя версия файла считается дубликатом последней версии некоторых других файлов. Учитываются только локальные файлы.',
+'listduplicatedfiles-entry' => 'У файла [[:File:$1|$1]] — [[$3|{{PLURAL:$2|один дубликат|$2 дубликатов|$2 дубликата}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Неиспользуемые шаблоны',
 'unusedtemplatestext' => 'Здесь перечислены все страницы пространства имён «{{ns:template}}», не включённые ни в какие другие страницы.
@@ -2392,7 +2400,7 @@ $1',
 'deadendpagestext' => 'Следующие страницы не содержат ссылок на другие страницы в этой вики.',
 'protectedpages' => 'Защищённые страницы',
 'protectedpages-indef' => 'Только бессрочные защиты',
-'protectedpages-summary' => 'На этой странице перечислены существующие страницы, которые в настоящее время защищены. Для списка названий, которые защищены от создания см. [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'На этой странице перечислены существующие страницы, которые в настоящее время защищены. Для списка названий, которые защищены от создания см. [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Только каскадная защита',
 'protectedpages-noredirect' => 'Скрыть перенаправления',
 'protectedpagesempty' => 'В настоящий момент нет защищённых страниц с указанными параметрами',
@@ -2405,7 +2413,7 @@ $1',
 'protectedpages-unknown-timestamp' => 'Неизвестно',
 'protectedpages-unknown-performer' => 'Неизвестный участник',
 'protectedtitles' => 'Защищённые названия',
-'protectedtitles-summary' => 'На этой странице перечислены названия, которые защищены от создания. Для списка существующих страниц, которые в настоящее время защищены, см. [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'На этой странице перечислены названия, которые защищены от создания. Для списка существующих страниц, которые в настоящее время защищены, см. [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'В настоящий момент нет запрещённых названий с указанными параметрами.',
 'listusers' => 'Список участников',
 'listusers-editsonly' => 'Показать только тех участников, кто сделал хотя бы одну правку',
@@ -2682,7 +2690,7 @@ $UNWATCHURL
 'delete-warning-toobig' => 'У этой страницы очень длинная история изменений, более $1 {{PLURAL:$1|версии|версий}}.
 Её удаление может привести к нарушению нормальной работы базы данных сайта «{{SITENAME}}»;
 действуйте с осторожностью.',
-'deleting-backlinks-warning' => "'''Предупреждение.''' Другие страницы ссылаются или содержат страницу, которую вы собираетесь удалить.",
+'deleting-backlinks-warning' => "'''Предупреждение.''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Другие страницы]] ссылаются на страницу, которую вы собираетесь удалить, или содержат её.",
 
 # Rollback
 'rollback' => 'Откатить изменения',
@@ -2734,7 +2742,7 @@ $UNWATCHURL
 'protect-locked-dblock' => "Уровень защиты не может быть изменён, так как основная база данных временно заблокирована.
 Текущие установки для страницы '''$1''':",
 'protect-locked-access' => "У вашей учётной записи недостаточно прав для изменения уровня защиты страницы. Текущие установки для страницы '''$1''':",
-'protect-cascadeon' => 'Эта страница защищена в связи с тем, что она включена {{PLURAL:$1|1=в указанную ниже страницу, для которой|в нижеследующие страницы, для которых}} установлена каскадная защита. Вы можете изменить уровень защиты этой страницы, но это не повлияет на каскадную защиту.',
+'protect-cascadeon' => 'Эта страница сейчас защищена в связи с тем, что она включена в {{PLURAL:$1|1=указанную ниже страницу, для которой|нижеследующие страницы, для которых}} установлена каскадная защита. Изменения уровня защиты этой страницы не повлияет на каскадную защиту.',
 'protect-default' => 'Без защиты',
 'protect-fallback' => 'Разрешено только участникам с правами «$1»',
 'protect-level-autoconfirmed' => 'Разрешено только автоподтверждённым участникам',
@@ -2855,6 +2863,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Этот IP-адрес в данный момент заблокирован.
 Ниже приведена последняя запись из журнала блокировок:',
 'sp-contributions-search' => 'Поиск вклада',
+'sp-contributions-suppresslog' => 'удалённый вклад участника',
 'sp-contributions-username' => 'IP-адрес или имя участника:',
 'sp-contributions-toponly' => 'Показывать только правки, являющиеся последними версиями',
 'sp-contributions-newonly' => 'Показывать только правки, являющиеся созданием страниц',
index 5404ea8..c0b351e 100644 (file)
@@ -364,7 +364,6 @@ $1',
 'disclaimers' => 'Вылучіня одповідности',
 'disclaimerpage' => 'Project:Вылучіня одповідности',
 'edithelp' => 'Поміч едітованя',
-'helppage' => 'Help:Обсяг',
 'mainpage' => 'Головна сторінка',
 'mainpage-description' => 'Головна сторінка',
 'policy-url' => 'Project:Правила',
@@ -512,7 +511,8 @@ $2',
 'invalidtitle-knownnamespace' => 'Непряавилна назва в просторї назв „$2“ і текстом „$3“',
 'invalidtitle-unknownnamespace' => 'Неправилна назва з незнамым чіслом простору назв $1 і текстом „$2“',
 'exception-nologin' => 'Не сьте приголошеный(а)',
-'exception-nologin-text' => 'Гевся сторінка або дїя потребує, жебы сьте были на тотїй вікі приголошены.',
+'exception-nologin-text' => 'Жебы ся дістати но тоту сторінку ся просиме [[Special:Userlogin|приголосьте]].',
+'exception-nologin-text-manual' => 'Жебы ся дістати на тоту сторінку ся мусите $1.',
 
 # Virus scanner
 'virus-badscanner' => "Зла конфіґурація: незнамый антивіровый проґрам: ''$1''",
@@ -560,8 +560,8 @@ $2',
 'gotaccountlink' => 'Приголошіня',
 'userlogin-resetlink' => 'Забыли сьте вашы даны на приголошіня?',
 'userlogin-resetpassword-link' => 'Забыли сьте гесло?',
-'helplogin-url' => 'Help:Приголошіня',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Поміч з приголошованём]]',
+'userlogin-loggedin' => 'Уж сьте {{GENDER:$1|приголошеный|приголошена}} як $1.
+Хоснуйте формулар долов жебы сьте ся приголосили як другый хоснователь.',
 'userlogin-createanother' => 'Створити інше конто',
 'createacct-join' => 'Ниже уведьте вашы інформації',
 'createacct-another-join' => 'Ниже уведьте інформації нового конта',
@@ -628,8 +628,8 @@ $2',
 Жебы ся то не зловжывало та гесло може быти заслане лем раз за $1 {{PLURAL:$1|годину|годины|годин}}.',
 'mailerror' => 'Хыба засыланя ел. пошты: $1',
 'acct_creation_throttle_hit' => 'Хоснователї приходячі з вашой IP адресы уж днесь створили {{PLURAL:$1|конто|конта|конт}}, што є дозволене максімум. Зато теперь не є дозволено з той IP адресы закладати далшы конта.',
-'emailauthenticated' => 'Ð\90дÑ\80еÑ\81а Ð²Ð°Ñ\88ой ÐµÐ». Ð¿Ð¾Ñ\88Ñ\82Ñ\8b Ð±Ñ\8bла Ð¾Ð²Ñ\96Ñ\80ена Ð´Ð½Ñ\8f $2 о $3.',
-'emailnotauthenticated' => 'Ð\90дÑ\80еÑ\81а Ð²Ð°Ñ\88ой ÐµÐ». Ð¿Ð¾Ñ\88Ñ\82Ñ\8b Ð´Ð¾Ñ\82епеÑ\80Ñ\8c Ð½Ðµ Ð±Ñ\8bла Ð¾Ð²Ñ\96Ñ\80ена, Ñ\84Ñ\83нкÑ\86Ñ\96Ñ\97 ÐµÐ». Ð¿Ð¾Ñ\88Ñ\82Ñ\8b Ñ\81Ñ\83Ñ\82Ñ\8c Ð½ÐµÐ´Ð¾Ñ\81Ñ\82Ñ\83пны.',
+'emailauthenticated' => 'Ð\90дÑ\80еÑ\81а Ð²Ð°Ñ\88ой ÐµÐ». Ð¿Ð¾Ñ\88Ñ\82Ñ\8b Ð±Ñ\8bла Ð¿Ð¾Ñ\82веÑ\80джнена $2 о $3.',
+'emailnotauthenticated' => 'Ð\90дÑ\80еÑ\81а Ð²Ð°Ñ\88ой ÐµÐ». Ð¿Ð¾Ñ\88Ñ\82Ñ\8b Ð´Ð¾Ñ\82епеÑ\80Ñ\8c Ð½Ðµ Ð±Ñ\8bла Ð¿Ð¾Ñ\82веÑ\80ждена. Ð£ Ð½Ð°Ñ\81Ñ\82Ñ\83пнÑ\8bÑ\85 Ñ\84Ñ\83нкÑ\86Ñ\96й Ð½Ðµ Ð±Ñ\83дÑ\83Ñ\82Ñ\8c Ð¿Ð¾Ñ\81Ñ\8bланÑ\8b Ð¶Ð°Ð´Ð½Ñ\8b Ð¼ÐµÐ¹Ð»ы.',
 'noemailprefs' => 'Шпеціфікуйте адресу ел. пошты, жебы наслїднуючі можности могли фунґовати.',
 'emailconfirmlink' => 'Потвердьте свою адресу ел. пошты',
 'invalidemailaddress' => 'Уведена адреса ел. пошты не може быти прията, бо она не має правилный формат.
@@ -650,6 +650,9 @@ $2',
 'suspicious-userlogout' => 'Ваша пожадавка на одголошіня была одвергнута, бо вызерає то так, же была послана розбитым переглядачом або кешуючім проксі-сервером.',
 'createacct-another-realname-tip' => 'Правдиве імя є волительне.
 Кідь вы зволите го додати, тото буде пак хосноване на доданя участникового попису про ёго роботу.',
+'pt-login' => 'Приголошіня',
+'pt-createaccount' => 'Створити конто',
+'pt-userlogout' => 'Одголосити ся',
 
 # Email sending
 'php-mail-error-unknown' => 'Незнама хыба у PHP mail() функції',
@@ -658,21 +661,27 @@ $2',
 
 # Change password dialog
 'changepassword' => 'Змінити гесло',
-'resetpass_announce' => 'Ð\9fÑ\80иголоÑ\88Ñ\83Ñ\94Ñ\82е Ñ\81Ñ\8f Ð´Ð¾Ñ\87аÑ\81нÑ\8bм Ð³ÐµÑ\81лом, ÐºÐ¾Ñ\82Ñ\80е Ð±Ñ\8bло Ð¿Ð¾Ñ\81лане ÐµÐ»ÐµÐºÑ\82Ñ\80онÑ\96Ñ\87нов Ð¿Ð¾Ñ\88Ñ\82ов. Ð\9fÑ\80о Ð·Ð°ÐºÐ¾Ð½Ñ\87Ñ\96нÑ\8f Ð¿Ñ\80иголоÑ\88Ñ\96нÑ\8f Ñ\82Ñ\80еба Ð·Ð°Ð´Ð°Ñ\82и Ð½Ð¾Ð²Ðµ Ð³ÐµÑ\81ло Ñ\82Ñ\83:',
+'resetpass_announce' => 'Ð\96ебÑ\8b Ñ\81Ñ\8cÑ\82е Ð·Ð°Ð²ÐµÑ\80Ñ\88Ñ\8bли Ð¿Ñ\80иголоÑ\88Ñ\96нÑ\8f, Ð¼Ñ\83Ñ\81иÑ\82е Ñ\81обÑ\96 Ð½Ð°Ñ\81Ñ\82авиÑ\82и Ð½Ð¾Ð²Ðµ Ð³ÐµÑ\81ло.',
 'resetpass_header' => 'Зміна гесла',
 'oldpassword' => 'Старе гесло:',
 'newpassword' => 'Нове гесло:',
 'retypenew' => 'Напиште знову нове гесло:',
 'resetpass_submit' => 'Наставити гесло і приголосити ся',
 'changepassword-success' => 'Ваше гесло было успішно змінено!',
+'changepassword-throttled' => 'Зробили сьте дуже много спроб о приголошіня.
+Просиме Вас, почекайте $1 перед далшов спробов.',
 'resetpass_forbidden' => 'Гесла не є можне змінити',
 'resetpass-no-info' => 'Ку тій сторінцї мають прямый приступ лем приголошены хоснователї.',
 'resetpass-submit-loggedin' => 'Змінити гесло',
 'resetpass-submit-cancel' => 'Сторно',
 'resetpass-wrong-oldpass' => 'Неправилне дочасне або актуалне гесло.
 Може сьте собі уж гесло успішно змінили, або сьте выжадали нове дочасне гесло.',
+'resetpass-recycled' => 'Нове гесло собі дайте дашто друге як ваше теперїшнє гесло.',
+'resetpass-temp-emailed' => 'Приголошуєте ся дочасным геслом засланым імейлом.
+Жебы сьте завершыли приголошіня, гев сові наставте нове гесло:',
 'resetpass-temp-password' => 'Дочасне гесло:',
 'resetpass-abort-generic' => 'Зміна гесла заблокована была росшырїнём.',
+'resetpass-expired' => 'Платность вашого гесла скінчіла. На приголошіня собі наставте нове гесло.',
 
 # Special:PasswordReset
 'passwordreset' => 'Ресет гесла',
@@ -719,6 +728,8 @@ $2
 'changeemail-password' => 'Ваше гесло на портал {{SITENAME}}:',
 'changeemail-submit' => 'Змінити імейл',
 'changeemail-cancel' => 'Сторно',
+'changeemail-throttled' => 'Зробили сьте дуже много спроб о приголошіня.
+Просиме Вас, почекайте $1 перед далшов спробов.',
 
 # Special:ResetTokens
 'resettokens' => 'Реініціалізація клічів',
@@ -811,7 +822,7 @@ $2
 Оно може быти змінене на  [[Special:ChangePassword|сторінцї про зміну гесла]].',
 'newarticle' => '(Нова)',
 'newarticletext' => "Перешли сте на сторінку, котра іщі не екзістує.
-Нову сторінку створите так, же зачнете писати в окнї ниже (вид. [[{{MediaWiki:Helppage}}|сторінка помочі]], про вецей інформації).
+Нову сторінку створите так, же зачнете писати в окнї ниже (вид. [$1 сторінка помочі], про вецей інформації).
 Кідь сте ту помылково, просто кликните в переглядачу на '''назад'''",
 'anontalkpagetext' => "----''Тото є діскузна сторінка анонімного хоснователя, котрый іщі не має конто або го не хоснує. Про&nbsp;ёго ідентіфікацію прото мусиме хосновати IP адресу. Таку IP адресу може хосновати декілько хоснователїв. Покы сьте анонімный хоснователь і&nbsp;і уважуєте, же вам суть адресованы ірелевантны коментарї, просиме, [[Special:UserLogin/signup|створьте собі конто]] або [[Special:UserLogin|ся приголосте]], уникнете тым будучій замінї з&nbsp;іншыма анонімныма хоснователями.''",
 'noarticletext' => 'Теперь на тїй сторінцї не є текст.
@@ -1040,9 +1051,6 @@ $3 зазначів тоту причіну: ''$2''",
 'revdelete-show-file-submit' => 'Гей',
 'revdelete-selected' => "'''{{PLURAL:$2|Выбрана ревізія|Выбраны ревізії}} з [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Выбрана протоколована подїя|Выбраны протоколованы подїї}}:'''",
-'revdelete-text' => "'''Змазаны верзії і подїї будуть надале зображены в історії сторінкы і протоколовачіх записах, але дакотры їх части не будуть публікованы.'''
-Другы адміністраторы {{GRAMMAR:2sg|{{SITENAME}}}} собі будуть мочі схованый обсяг перезерати і помочов того самого інтерфейсу го будуть мочі обновити,
-кідь не были наставлены далшы обмеджіня.",
 'revdelete-confirm' => 'Просиме Вас, потвердьте, же то хочете справды зробити, же собі усвідомлюєте резултат і же є то в згодї з  [[{{MediaWiki:Policy-url}}|правилами]].',
 'revdelete-suppress-text' => "Затаёваня бы ся мало хосновати  ''лем''' в такых припадах:
 * Потенціално огваряючі інформації
@@ -1155,7 +1163,7 @@ $1",
 'shown-title' => 'Вказати $1 {{PLURAL:$1|резултат|резултаты|резултатів}} на сторінку',
 'viewprevnext' => 'Перегляднути ($1 {{int:pipe-separator}} $2) ($3).',
 'searchmenu-exists' => "'''У тій вікі є сторінка з назвов «[[:$1]]»'''",
-'searchmenu-new' => "'''Створити сторінку «[[:$1]]» у тій вікі!'''",
+'searchmenu-new' => '<strong>Створити сторінку на тій вікі „[[:$1]]“!</strong> {{PLURAL:$2|0=|Тыж собі посмотьте сторінку найдену вашым гляданём.|Тыж посмотьте сторінкы найдены вашым гляданём.}}',
 'searchprofile-articles' => 'Статї',
 'searchprofile-project' => 'Сторінкы помочі і проєкту',
 'searchprofile-images' => 'Мултімедія',
@@ -1491,15 +1499,28 @@ $1",
 'recentchanges-label-minor' => 'Тото є мала зміна',
 'recentchanges-label-bot' => 'Тото едітованя зроблене ботом',
 'recentchanges-label-unpatrolled' => 'Тота зміна дотеперь не была патролёвана.',
+'recentchanges-legend-heading' => "'''Леґенда:'''",
 'recentchanges-legend-newpage' => '$1 — нова сторінка',
-'rcnotefrom' => 'Ð\9dиже {{PLURAL:$1|Ñ\94\81Ñ\83Ñ\82Ñ\8c\94}} Ð½Ð°Ð¹Ð²ÐµÑ\86е <b>$1</b> {{PLURAL:$1|змÑ\96на|змÑ\96нÑ\8b|змÑ\96н}} Ð¾Ð´ <b>$2</b>.',
+'rcnotefrom' => 'Ð\94олов Ñ\81Ñ\83Ñ\82Ñ\8c Ð²ÐºÐ°Ð·Ð°Ð½Ñ\8b Ð·Ð¼Ñ\96нÑ\8b Ð¾Ð´ <strong>$2</strong> (до <strong>$1</strong>).',
 'rclistfrom' => 'Вказати едітованя почінаючі з $1.',
 'rcshowhideminor' => '$1 маленькы едітованя',
+'rcshowhideminor-show' => 'Вказати',
+'rcshowhideminor-hide' => 'Сховати',
 'rcshowhidebots' => '$1 ботів',
-'rcshowhideliu' => '$1 приголошеных',
+'rcshowhidebots-show' => 'Вказати',
+'rcshowhidebots-hide' => 'Сховати',
+'rcshowhideliu' => '$1 реґістрованых хоснователїв',
+'rcshowhideliu-show' => 'Вказати',
+'rcshowhideliu-hide' => 'Сховати',
 'rcshowhideanons' => '$1 анонімів',
+'rcshowhideanons-show' => 'Вказати',
+'rcshowhideanons-hide' => 'Сховати',
 'rcshowhidepatr' => '$1 перевірене едітованя',
+'rcshowhidepatr-show' => 'Вказати',
+'rcshowhidepatr-hide' => 'Сховати',
 'rcshowhidemine' => '$1 мої едітованя',
+'rcshowhidemine-show' => 'Вказати',
+'rcshowhidemine-hide' => 'Сховати',
 'rclinks' => 'Вказати послїднї $1 зміны за $2 днїв<br />$3',
 'diff' => 'різн.',
 'hist' => 'історія',
@@ -1969,6 +1990,11 @@ $1',
 'protectedpages-indef' => 'Лем замкы на нестановлено',
 'protectedpages-cascade' => 'Лем каскадовы замкы',
 'protectedpagesempty' => 'Жадна сторінка не є замкнута з тыма параметрами.',
+'protectedpages-timestamp' => 'Часова значка',
+'protectedpages-expiry' => 'Кінчіть',
+'protectedpages-reason' => 'Прічіна',
+'protectedpages-unknown-timestamp' => 'Не є знаме',
+'protectedpages-unknown-performer' => 'Незнамый хоснователь',
 'protectedtitles' => 'Замкнуты назвы сторінок',
 'protectedtitlesempty' => 'Жадна назва не є замкнута з тыма параметрами.',
 'listusers' => 'Список хоснователїв',
@@ -2388,7 +2414,7 @@ $1',
 'contributions' => 'Приспівкы {{GENDER:$1|хоснователя|хоснователькы}}',
 'contributions-title' => 'Приспівок хоснователя $1',
 'mycontris' => 'Приспівкы',
-'contribsub2' => 'Приспівок $1 ($2)',
+'contribsub2' => '{{GENDER:$3|хоснователї|хоснователькы}} $1 ($2)',
 'nocontribs' => 'Ненайджены жадны зміны за тыма крітеріями.',
 'uctop' => '(остатня)',
 'month' => 'Од місяця (і скоре):',
@@ -2698,6 +2724,7 @@ $1',
 'allmessages-prefix' => 'Філтер за префіксом:',
 'allmessages-language' => 'Язык:',
 'allmessages-filter-submit' => 'Выконати',
+'allmessages-filter-translate' => 'Переложыти',
 
 # Thumbnails
 'thumbnail-more' => 'Звекшыти',
@@ -2967,7 +2994,7 @@ $1',
 'svg-long-desc' => 'SVG-файл, номінално $1 × $2 пікселів, розмір файлу: $3',
 'svg-long-desc-animated' => 'Анімованый SVG-файл, номінално $1 × $2 пікселів, розмір файлу: $3',
 'svg-long-error' => 'Неправильный файл SVG: $1',
-'show-big-image' => 'Ð\9fовне Ñ\80озлиÑ\88Ñ\96нÑ\8f',
+'show-big-image' => 'Ð\9eÑ\80Ñ\96Ò\91Ñ\96налнÑ\8bй Ñ\84айл',
 'show-big-image-preview' => 'Розмір того нагляду: $1.',
 'show-big-image-other' => '{{PLURAL:$2|Інше|іншы}} розлишіня: $1.',
 'show-big-image-size' => '$1 × $2 пікселів',
index ae3e444..538ac44 100644 (file)
@@ -18,6 +18,7 @@
  * @author Krinkle
  * @author Mahitgar
  * @author Naveen Sankar
+ * @author NehalDaveND
  * @author Omnipaedista
  * @author Shantanoo
  * @author Shijualex
@@ -278,56 +279,56 @@ $digitGroupingPattern = "##,##,###";
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'समà¥\8dपरà¥\8dà¤\95तनà¥\8dतà¥\8bà¤\83 à¤\85धà¥\8bरेखाङ्कनम्:',
+'tog-underline' => 'परिसनà¥\8dधà¥\87à¤\83 à¤\85धà¥\8b रेखाङ्कनम्:',
 'tog-hideminor' => 'सद्योजातानां परिवर्तनानां लघूनि सम्पादनानि गोप्यन्ताम्',
 'tog-hidepatrolled' => 'सद्योजातानां परिवर्तनानां परिशीलितानि सम्पादनानि गोप्यन्ताम्',
-'tog-newpageshidepatrolled' => 'नूतनपृष्ठानाम् आवलीतः परिशीलितानि पृष्ठानि गोप्यन्त्ताम्',
-'tog-extendwatchlist' => 'अवेक्षणसूच्यां सर्वाणि परिवर्तनानि दर्श्यन्ताम्, न केवलं सद्योजातानि',
-'tog-usenewrc' => 'विस्तृतानि सद्योजातानि परिवर्तनानि उपयुज्यन्ताम् (जावालिपिः अपेक्ष्यते)',
-'tog-numberheadings' => 'शीर्षकान् स्वयमेव सक्रमांकीकरोतु।',
-'tog-showtoolbar' => 'सम्पादन-उपकरण-पट्टिका दर्श्यताम् (जावालिपिः अपेक्ष्यते)',
-'tog-editondblclick' => 'द्विक्लिक्कारेण पृष्ठानि सम्पाद्यन्ताम् (जावालिपिः अपेक्ष्यते)',
-'tog-editsectiononrightclick' => 'विभागशीर्षकाणामुपरि दक्षिणक्लिक्करणेन विभागसम्पादनं समर्थ्यताम् (जावालिपिः अपेक्ष्यते)।',
-'tog-rememberpassword' => 'अस्मिन् सङ्गणके मम प्रवेशः स्मर्यताम् (अधिकतमम् $1 {{PLURAL:$1|दिनम्|दिनानि}})',
-'tog-watchcreations' => 'मया रचितानि पृष्ठानि मम अवेक्षणसूच्यां योज्यन्ताम्।',
-'tog-watchdefault' => 'मया सम्पादितानि पृष्ठानि मम अवेक्षणसूच्यां योज्यन्ताम्।',
-'tog-watchmoves' => 'मया चालितानि पृष्ठानि मम अवेक्षणसूच्यां योज्यन्ताम्।',
-'tog-watchdeletion' => 'मया अपाकृतानि पृष्ठानि मम अवेक्षणसूच्यां योज्यन्ताम्।',
-'tog-minordefault' => '
-मम सर्वाणि सम्पादनानि लघुत्वेन वर्त्यन्ताम्।',
-'tog-previewontop' => 'सम्पादनात् पूर्वं प्राग्दृश्यं दर्श्यताम्।',
-'tog-previewonfirst' => 'प्रथमसम्पादनस्य प्राग्दृश्यं दर्श्यताम्।',
-'tog-enotifwatchlistpages' => 'मम अवेक्षणसूच्यां विद्यमाने पृष्ठे परिवर्तिते सति ईपत्रद्वारा ज्ञाप्यताम्।',
-'tog-enotifusertalkpages' => 'मम योजकसंभाषणपृष्ठे परिवर्तिते सति ईपत्रद्वारा ज्ञाप्यताम्',
-'tog-enotifminoredits' => 'लघुपरिवर्तनेषु सत्सु अपि ईपत्रद्वारा ज्ञाप्यताम्',
-'tog-enotifrevealaddr' => 'अधिसूचना-ईपत्रेषु मम ईपत्रसङ्केतः प्रदर्श्यताम्',
-'tog-shownumberswatching' => 'निरीक्षमाणानां योजकानां संख्या दर्श्यताम्',
-'tog-oldsig' => 'विद्यमानं हस्ताङ्कनम्:',
-'tog-fancysig' => 'हस्ताक्षराणि विकिपाठवत् सन्तु (स्वचालित-संबंधनेभ्यः रहितानि)।',
-'tog-uselivepreview' => 'संपादनेन सहैव प्राग्दृश्यं दर्शयतु (जावालिपिः अपेक्ष्यते) (प्रयोगात्मकम्)।',
-'tog-forceeditsummary' => 'सम्पादनसारांशः न ददामि चेत् तदा मां ज्ञापयतु।',
-'tog-watchlisthideown' => 'मम सम्पादनानि अवेक्षणसूच्याः गोप्यन्ताम्।',
-'tog-watchlisthidebots' => 'बोट्कृतानि सम्पादनानि अवेक्षणसूच्याः गोप्यन्ताम्।',
-'tog-watchlisthideminor' => 'मम अवेक्षणसूच्याः लघूनि सम्पादनानि गोप्यन्ताम्।',
-'tog-watchlisthideliu' => 'प्रविष्टैः योजकैः कृतानि सम्पादनानि अवेक्षणसूच्याः गोप्यन्ताम्।',
-'tog-watchlisthideanons' => 'अनामकैः योजकैः कृतानि सम्पादनानि अवेक्षणसूच्याः गोप्यन्ताम्।',
-'tog-watchlisthidepatrolled' => 'मम अवेक्षणसूच्याः दृष्टपूर्वाणि सम्पादनानि गोप्यन्ताम्।',
-'tog-ccmeonemails' => 'अन्येभ्यः प्रेषितानाम् ईपत्राणां प्रतिकृतिः मत्कृते प्रेष्यताम्',
-'tog-diffonly' => 'आवृत्तिसु अंतरं दर्शयन् पुरातनाः आवृत्तयः मा दर्शयतु।',
+'tog-newpageshidepatrolled' => 'नूतनपृष्ठानाम् आवलेः परिशीलितानि पृष्ठानि गोप्यन्त्ताम्',
+'tog-extendwatchlist' => 'न केवलं सद्योजातानि अपि तु अवेक्षणाऽऽवलेः सर्वाणि परिवर्तनानि दृश्यन्ताम्',
+'tog-usenewrc' => 'सद्यपरिवर्तनावल्यां, अवेक्षणाऽऽवल्यां च पृष्ठानि विभागानुसारं प्रदर्श्यन्ताम् (जावा-लिपिः अपेक्ष्यते)',
+'tog-numberheadings' => 'शीर्षकान् स्वयमेव सक्रमाङ्कीकरोतु।',
+'tog-showtoolbar' => 'उपकरण-पट्टिका दर्श्यताम्',
+'tog-editondblclick' => 'वारद्वयं क्लिक-करणेन पृष्ठानि सम्पाद्यन्ताम् (जावा-लिपिः अपेक्ष्यते)',
+'tog-editsectiononrightclick' => 'विभागशीर्षकाणामुपरि दक्षिणक्लिक्-करणेन विभागः सम्पाद्यताम् ।',
+'tog-rememberpassword' => 'अस्मिन् सङ्गणके मम प्रवेशः स्मर्यताम् (अधिकतमं $1 {{PLURAL:$1|दिनम्|दिनानि}})',
+'tog-watchcreations' => 'मया रचितानि पृष्ठानि मम अवेक्षणाऽऽवल्यां योज्यन्ताम् ।',
+'tog-watchdefault' => 'मया सम्पादितानि पृष्ठानि मम अवेक्षणाऽऽवल्यां योज्यन्ताम्।',
+'tog-watchmoves' => 'मया चालितानि पृष्ठानि मम अवेक्षणाऽऽवल्यां योज्यन्ताम्।',
+'tog-watchdeletion' => 'मया अपाकृतानि पृष्ठानि मम अवेक्षणाऽऽवल्यां योज्यन्ताम्।',
+'tog-minordefault' => 'मम सर्वाणि सम्पादनानि लघुत्वेन प्रदर्श्यन्ताम् ।',
+'tog-previewontop' => 'सम्पादनात् पूर्वं प्राग्दृश्यं दर्श्यताम् ।',
+'tog-previewonfirst' => 'प्रथमसम्पादनस्य प्राग्दृश्यं दर्श्यताम् ।',
+'tog-enotifwatchlistpages' => 'मम अवेक्षणाऽऽवल्यां विद्यमानां पृष्ठानां परिवर्तने सति ई-पत्रद्वारा सूचयताम',
+'tog-enotifusertalkpages' => 'मम योजकसम्भाषणपृष्ठस्य परिवर्तने सति ई-पत्रद्वारा सूचयताम्',
+'tog-enotifminoredits' => 'पृष्ठस्य सञ्चिकायाः वा लघुपरिवर्तनेषु सत्सु अपि ई-पत्रद्वारा सूच्यताम्',
+'tog-enotifrevealaddr' => 'सूचना-ईपत्रेषु मम ई-पत्रसङ्केतः प्रदर्श्यताम्',
+'tog-shownumberswatching' => 'निरीक्षमाणानां योजकानां सङ्ख्या दर्श्यताम्',
+'tog-oldsig' => 'वर्तमानहस्ताक्षरम्:',
+'tog-fancysig' => 'हस्ताक्षरं विकि-पाठवत् परिगण्यताम् (स्वचालित-परिसन्धिं विहाय)',
+'tog-uselivepreview' => 'सम्पादनेन सहैव प्राग्दृश्यं दर्शयतु (प्रयोगात्मकम्)।',
+'tog-forceeditsummary' => 'सम्पादनसारांशः न ददामि चेत् सूच्यताम्',
+'tog-watchlisthideown' => 'अवेक्षणाऽऽवल्याः मम सम्पादनानि गोप्यन्ताम ।',
+'tog-watchlisthidebots' => 'अवेक्षणाऽऽवल्याः बोट-द्वारा कृतानि सम्पादनानि गोप्यन्ताम्',
+'tog-watchlisthideminor' => 'मम अवेक्षणाऽऽवल्याः लघुसम्पादनानि गोप्यन्ताम्',
+'tog-watchlisthideliu' => 'प्रविष्टैः योजकैः कृतानि सम्पादनानि अवेक्षणाऽऽवल्याः गोप्यन्ताम्',
+'tog-watchlisthideanons' => 'अनामकैः योजकैः कृतानि सम्पादनानि अवेक्षणाऽऽवल्याः गोप्यन्ताम्',
+'tog-watchlisthidepatrolled' => 'मम अवेक्षणाऽऽवल्याः पूर्वदृष्टानि सम्पादनानि गोप्यन्ताम्',
+'tog-ccmeonemails' => 'अन्येभ्यः प्रेषितानाम् ई-पत्राणां प्रतिकृतिः मत्कृते प्रेष्यताम्',
+'tog-diffonly' => 'संस्करणेषु भेदं दर्शयितुं लेखः गोप्यताम्',
 'tog-showhiddencats' => 'निगूढाः वर्गाः दर्श्यन्ताम्',
-'tog-norollbackdiff' => 'पूर्णप्रतिगमने कृते मा दर्शयतु तद् अंतरम्।',
-'tog-useeditwarning' => 'सम्पादनानन्तरं रक्षणेन विना पृष्ठत्यागावसरे स्मार्यताम्',
+'tog-norollbackdiff' => '"प्रमुञ्चतु" इत्यस्य उपयोगानन्तरस्य भेदः गोप्यताम्',
+'tog-useeditwarning' => 'सम्पादनम् अरक्ष्य पृष्ठं त्यजामि चेत् सूच्यताम्',
+'tog-prefershttps' => 'प्रेवेशानन्तरं सर्वदा संरक्षितसम्पर्कः एव उपयुज्याम्',
 
 'underline-always' => 'सर्वदा',
 'underline-never' => 'कदापि न',
-'underline-default' => 'बà¥\8dराà¤\89सर à¤\85à¤\95थितपà¥\8dरà¤\95रणमà¥\8d।',
+'underline-default' => 'पà¥\82रà¥\8dवनिरà¥\8dधारिता à¤¤à¥\8dवà¤\9aा à¤\86वà¥\83तà¥\8dतिà¤\83 à¤µà¤¾',
 
 # Font style option in Special:Preferences
-'editfont-style' => 'समà¥\8dपादन-à¤\95à¥\8dषà¥\87तà¥\8dरसà¥\8dय à¤®à¥\81दà¥\8dराà¤\95à¥\8dषराणाà¤\82 शैली:',
-'editfont-default' => 'विà¤\9aरà¤\95सà¥\8dय à¤\85à¤\95थित-पà¥\8dरà¤\95रणानà¥\81सारमà¥\8d (बà¥\8dराà¤\89सरà¥\8d à¤¡à¤¿à¤«à¤¼à¥\89लà¥\8dà¤\9fà¥\8d)',
-'editfont-monospace' => 'à¤\8fà¤\95लानà¥\8dतरितानि à¤®à¥\81दà¥\8dराà¤\95à¥\8dषराणि',
-'editfont-sansserif' => 'à¤\95à¥\8bणविहà¥\80नानि à¤®à¥\81दà¥\8dराà¤\95à¥\8dषराणि',
-'editfont-serif' => 'सà¤\95à¥\8bणानि à¤®à¥\81दà¥\8dराà¤\95à¥\8dषराणि',
+'editfont-style' => 'समà¥\8dपादन-à¤\95à¥\8dषà¥\87तà¥\8dरसà¥\8dय à¤\85à¤\95à¥\8dषरशैली:',
+'editfont-default' => 'à¤\97वà¥\87à¤\95à¥\8dषणसà¥\8dय à¤®à¥\82लविनà¥\8dयासाधारà¥\87ण (Browser default)',
+'editfont-monospace' => 'à¤\8fà¤\95ावà¤\95ाशयà¥\81à¤\95à¥\8dतà¤\82 à¤µà¤°à¥\8dणमà¥\8d',
+'editfont-sansserif' => 'à¤\95à¥\8bणविहà¥\80नà¤\82 à¤µà¤°à¥\8dणमà¥\8d',
+'editfont-serif' => 'à¤\95à¥\8bणयà¥\81à¤\95à¥\8dतà¤\82 à¤µà¤°à¥\8dणमà¥\8d',
 
 # Dates
 'sunday' => 'रविवासरः',
@@ -344,103 +345,106 @@ $messages = array(
 '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' => 'जनवरी',
+'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' => 'डिस.',
+'february-date' => 'फरवरी $1',
+'july-date' => 'जूलाई $1',
+'october-date' => 'अक्तूबर $1',
 
 # Categories related messages
-'pagecategories' => '{{PLURAL:$1|वर्गः|वर्गाः }}',
-'category_header' => '"$1" à¤\87तà¥\8dयà¥\87तसà¥\8dमिनà¥\8d à¤µà¤°à¥\8dà¤\97à¥\87 विद्यमानानि पृष्ठानि',
+'pagecategories' => '{{PLURAL:$1|वर्गः|वर्गाः}}',
+'category_header' => '"$1" à¤µà¤°à¥\8dà¤\97à¥\87ऽसà¥\8dमिनà¥\8d विद्यमानानि पृष्ठानि',
 'subcategories' => 'उपवर्गाः',
-'category-media-header' => '"$1" à¤\87तà¥\8dयà¥\87तसà¥\8dमिनà¥\8d à¤µà¤°à¥\8dà¤\97à¥\87 à¤®à¤¾à¤§à¥\8dयमाम्',
-'category-empty' => "''अस्मिन् वर्गे अधुना न कोऽपि पृष्ठं, माध्यमं वा विद्यते।''",
+'category-media-header' => '"$1" à¤µà¤°à¥\8dà¤\97à¥\87ऽसà¥\8dमिनà¥\8d à¤µà¤¿à¤¦à¥\8dयमानà¤\82 à¤®à¤¾à¤§à¥\8dयमम्',
+'category-empty' => '<em>वर्गेऽस्मिन् न किमपि पृष्ठं माध्यमं वा विद्यते ।</em>',
 'hidden-categories' => '{{PLURAL:$1|निगूढः वर्गः|निगूढाः वर्गाः}}',
 'hidden-category-category' => 'निगूढाः वर्गाः',
-'category-subcat-count' => '{{PLURAL:$2|अस्मिन् वर्गे अधोलिखिताः उपवर्गाः विद्यन्ते|अस्मिन् वर्गे {{PLURAL:$1|अधोलिखितः उपवर्गः अस्ति|अधोलिखिताः $1 उपवर्गाः सन्ति}}, सर्वे उपवर्गाः $2 ।}}',
-'category-subcat-count-limited' => 'अस्मिन् वर्गे {{PLURAL:$1|अधोलिखितह् $1 वर्गः अस्ति|अधोलिखिताः $1 वर्गाः सन्ति}}।',
-'category-article-count' => '{{PLURAL:$2|अस्मिन् वर्गे केवलम् इदं पृष्ठं विद्यते ।|अस्मिन् वर्गे  {{PLURAL:$1|अधोलिखितं पृष्ठमस्ति|$1 अधोलिखितानि पृष्ठानि सन्ति}}, सर्वाणि पृष्ठानि $2 ।}}',
+'category-subcat-count' => '$2 इत्येषु {{PLURAL:$2|वर्गेऽस्मिन् अधो लिखिताः उपवर्गाः विद्यन्ते |वर्गेऽस्मिन् {{PLURAL:$1|अधो लिखितः उपवर्गः अस्ति|अधो लिखिताः $1 उपवर्गाः सन्ति}}}}',
+'category-subcat-count-limited' => 'अस्मिन् वर्गे {{PLURAL:$1|अधो लिखितः $1 वर्गः अस्ति|अधो लिखिताः $1 वर्गाः सन्ति}}',
+'category-article-count' => '$2 इत्येषु {{PLURAL:$2|वर्गेऽस्मिन् अधो लिखितानि पृष्ठानि विद्यन्ते |वर्गेऽस्मिन् {{PLURAL:$1|अधो लिखितं पृष्ठम् अस्ति|अधो लिखितानि $1 पृष्ठानि सन्ति}}}}',
 'category-article-count-limited' => 'अधोलिखितं {{PLURAL:$1|पृष्ठम् अस्मिन् श्रेण्याम् अस्ति|$1 पृष्ठाणि अस्मिन् श्रेण्यां सन्ति}}।',
-'category-file-count' => '{{PLURAL:$2|अस्मिन् वर्गे अधोलिखिता सञ्चिकामात्रं वर्तते।|अस्मिन् वर्गे {{PLURAL:$1|अधोलिखिताः सञ्चिका|अधोलिखिताः $1 सञ्चिकाः}} वर्तन्ते, सर्वाः सञ्चिकाः - $2 ।}}',
-'category-file-count-limited' => 'एतस्यां श्रेण्यां {{PLURAL:$1|संचिका|$1 संचिकाः}} अधस्तात् सूचिता{{PLURAL:$1||ः}} -
-The following {{PLURAL:$1|file is|$1 files are}} in the current category.',
+'category-file-count' => '$2 इत्येषु {{PLURAL:$2|वर्गेऽस्मिन् अधो उल्लिखिताः सञ्चिकाः विद्यन्ते |वर्गेऽस्मिन् {{PLURAL:$1|अधो उल्लिखिता सञ्चिका अस्ति|अधो उल्लिखिताः $1 सञ्चिकाः सन्ति}}}}',
+'category-file-count-limited' => 'निम्नोल्लिखित{{PLURAL:$1|सञ्चिका|$1 सञ्चिकाः}} वर्गेऽस्मिन् {{PLURAL:$1|अस्ति|$1 सन्ति}}',
 'listingcontinuesabbrev' => 'आगामि.',
-'index-category' => 'सà¥\82à¤\9aà¤\95ाà¤\82à¤\95ितानि पृष्ठानि',
-'noindex-category' => 'à¤\85सà¥\82à¤\9aà¤\95ाà¤\82à¤\95ितानि पृष्ठानि',
-'broken-file-category' => 'भà¤\97à¥\8dनसमà¥\8dबनà¥\8dधà¥\88à¤\83 à¤¯à¥\81à¤\95à¥\8dतानि à¤ªà¥\83षà¥\8dठाणि',
+'index-category' => 'à¤\85नà¥\81à¤\95à¥\8dरमणिà¤\95ापृष्ठानि',
+'noindex-category' => 'नानà¥\81à¤\95à¥\8dरमणिà¤\95पृष्ठानि',
+'broken-file-category' => 'à¤\85विदà¥\8dयानानाà¤\82 à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ानामà¥\8d à¤\86वलिà¤\83',
 
-'about' => 'à¤\87तà¥\8dयसà¥\8dमिनà¥\8d à¤µà¤¿à¤·à¤¯à¥\87:',
+'about' => 'विषयà¥\87',
 'article' => 'लेखः',
-'newwindow' => '(नवà¥\87 à¤\97वाà¤\95à¥\8dषà¥\87 à¤\87दमà¥\8d उद्घाट्यते)',
+'newwindow' => '(à¤\87दà¤\82 à¤¨à¤µà¥\80नà¥\87 à¤\97वाà¤\95à¥\8dषà¥\87 उद्घाट्यते)',
 'cancel' => 'निरस्यताम्',
 'moredotdotdot' => 'अपि च...',
-'mypage' => 'मम पृष्ठम्',
-'mytalk' => 'मम सम्भाषणम्',
-'anontalk' => 'अस्य आइ.पी. संकेतस्य कृते सम्भाषणम्',
-'navigation' => 'पर्यटनम्',
+'morenotlisted' => 'एषाऽऽवलिः अपूर्णा अस्ति ।',
+'mypage' => 'पृष्ठम्',
+'mytalk' => 'सम्भाषणम्',
+'anontalk' => 'अस्य अन्तर्जालसंविदः (I P address) कृते सम्भाषणम्',
+'navigation' => 'सञ्चरणं',
 'and' => '&#32;तथा च',
 
 # Cologne Blue skin
 'qbfind' => 'अन्विष्यताम्',
-'qbbrowse' => 'बà¥\8dराà¤\89सà¥\8d à¤\87तà¥\8dयà¥\87ततà¥\8d à¤\95रà¥\8bतà¥\81।',
+'qbbrowse' => 'à¤\85नà¥\8dविषà¥\8dयतामà¥\8d',
 'qbedit' => 'सम्पाद्यताम्',
 'qbpageoptions' => 'इदं पृष्ठम्',
 'qbmyoptions' => 'मम पृष्ठानि',
-'faq' => 'बहà¥\81धा à¤ªà¥\83à¤\9aà¥\8dà¤\9bà¥\8dयमानाà¤\83 à¤ªà¥\8dरशà¥\8dनाà¤\83',
-'faqpage' => 'Project:बहà¥\81धा à¤ªà¥\83à¤\9bà¥\8dयमानाà¤\83 à¤ªà¥\8dरशà¥\8dनाà¤\83',
+'faq' => 'सामानà¥\8dयà¤\9cिà¤\9cà¥\8dà¤\9eासाà¤\83 (FAQ)',
+'faqpage' => 'Project:सामानà¥\8dयà¤\9cिà¤\9cà¥\8dà¤\9eासाà¤\83(FAQ)',
 
 # Vector skin
 'vector-action-addsection' => 'विषयः योज्यताम्',
-'vector-action-delete' => 'विलà¥\81पà¥\8dयताम्',
-'vector-action-move' => 'à¤\9aाल्यताम्',
+'vector-action-delete' => 'à¤\85पाà¤\95à¥\8dरियताम्',
+'vector-action-move' => 'शà¥\80रà¥\8dषà¤\95à¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dत्यताम्',
 'vector-action-protect' => 'संरक्ष्यताम्',
-'vector-action-undelete' => 'à¤\85पाà¤\95रणसà¥\8dय à¤¨à¤¿à¤°à¤¸à¤¨à¤®à¥\8d',
-'vector-action-unprotect' => 'सà¥\81रà¤\95à¥\8dषितà¥\80à¤\95रणसà¥\8dय à¤¨à¤¿à¤°à¤¸à¤¨à¤®à¥\8d',
+'vector-action-undelete' => 'नापाà¤\95à¥\83तà¤\82',
+'vector-action-unprotect' => 'सà¤\82रà¤\95à¥\8dषणà¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतयतà¥\81',
 'vector-view-create' => 'सृज्यताम्',
 'vector-view-edit' => 'सम्पाद्यताम्',
-'vector-view-history' => 'à¤\87तिहासà¤\83 à¤¦à¥\83श्यताम्',
+'vector-view-history' => 'à¤\87तिहासà¤\83 à¤¦à¤°à¥\8dश्यताम्',
 'vector-view-view' => 'पठ्यताम्',
 'vector-view-viewsource' => 'स्रोतः दृश्यताम्',
 'actions' => 'क्रियाः',
-'namespaces' => 'नामाà¤\95ाशानि',
-'variants' => 'भिनà¥\8dनरà¥\82पाणि',
+'namespaces' => 'नामाà¤\95ाशाà¤\83',
+'variants' => 'पाठभà¥\87दाà¤\83',
 
-'navigation-heading' => 'मारà¥\8dà¤\97णसà¥\82à¤\9aिः',
+'navigation-heading' => 'सà¤\9eà¥\8dà¤\9aरणावलिः',
 'errorpagetitle' => 'दोषः',
-'returnto' => '$1 à¤\87तà¥\8dयà¥\87तदà¥\8d à¤ªà¥\8dरति à¤¨à¤¿à¤µà¤°à¥\8dततामà¥\8d।',
-'tagline' => '{{SITENAME}} à¤\87तà¥\8dयसà¥\8dमातà¥\8d',
+'returnto' => '$1 à¤ªà¥\8dरति à¤¨à¤¿à¤µà¤°à¥\8dतà¥\8dयतामà¥\8d ।',
+'tagline' => '{{SITENAME}} à¤¤à¤\83',
 'help' => 'साहाय्यम्',
 'search' => 'अन्विष्यताम्',
 'searchbutton' => 'अन्विष्यताम्',
@@ -448,24 +452,25 @@ The following {{PLURAL:$1|file is|$1 files are}} in the current category.',
 'searcharticle' => 'गम्यताम्',
 'history' => 'पृष्ठस्य इतिहासः',
 'history_short' => 'इतिहासः',
-'updatedmarker' => 'मम à¤ªà¥\8cरà¥\8dविà¤\95-à¤\86à¤\97मन-पशà¥\8dà¤\9aातà¥\8d à¤ªà¤°à¤¿à¤µà¤°à¥\8dतितानि',
-'printableversion' => 'मà¥\81दà¥\8dरणयà¥\8bà¤\97à¥\8dया à¤\86वà¥\83तà¥\8dतिà¤\83',
-'permalink' => 'सà¥\8dथिरसमà¥\8dपरà¥\8dà¤\95तनà¥\8dतà¥\81ः',
+'updatedmarker' => 'पà¥\82रà¥\8dवपà¥\8dरवà¥\87शाननà¥\8dतरसà¥\8dय à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि',
+'printableversion' => 'मà¥\81दà¥\8dरणयà¥\8bà¤\97à¥\8dयà¤\82 à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d',
+'permalink' => 'सà¥\8dथायिपरिसनà¥\8dधिः',
 'print' => 'मुद्र्यताम्',
 'view' => 'दृश्यताम्',
 'edit' => 'सम्पाद्यताम्',
 'create' => 'सृज्यताम्',
 'editthispage' => 'इदं पृष्ठं सम्पाद्यताम्',
 'create-this-page' => 'इदं पृष्ठं सृज्यताम्',
-'delete' => 'विलà¥\81पà¥\8dयताम्',
+'delete' => 'à¤\85पाà¤\95à¥\8dरियताम्',
 'deletethispage' => 'इदं पृष्ठम् अपाक्रियताम्',
-'undelete_short' => '{{PLURAL:$1|एकं सम्पादनं|$1 सम्पादनानि}} अनपाकरोतु',
-'viewdeleted_short' => 'दर्श्यताम् {{PLURAL:$1|एको विलुप्तं सम्पादनम्|$1 विलुप्तानि सम्पादनानि}}',
+'undeletethispage' => 'इदं पृष्ठं न अपाक्रियताम्',
+'undelete_short' => '{{PLURAL:$1|एकं सम्पादनं|$1 सम्पादनानि}} न अपाकरोतु',
+'viewdeleted_short' => '{{PLURAL:$1|एकम् अपाकृतं सम्पादनम्  |$1 अपाकृतानि सम्पादनानि}} दृश्यताम्',
 'protect' => 'संरक्ष्यताम्',
 'protect_change' => 'परिवर्त्यताम्',
 'protectthispage' => 'इदं पृष्ठं संरक्ष्यताम्',
 'unprotect' => 'संरक्षणं परिवर्तयतु',
-'unprotectthispage' => 'à¤\85सà¥\8dय à¤ªà¥\81à¤\9fस्य सुरक्षां परिवर्तयतु ।',
+'unprotectthispage' => 'à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठस्य सुरक्षां परिवर्तयतु ।',
 'newpage' => 'नवीनपृष्ठम्',
 'talkpage' => 'अस्य पृष्ठस्य विषये चर्चा क्रियताम्',
 'talkpagelinktext' => 'सम्भाषणम्',
@@ -474,103 +479,101 @@ The following {{PLURAL:$1|file is|$1 files are}} in the current category.',
 'postcomment' => 'नवीनः विभागः',
 'articlepage' => 'लेखः दृश्यताम्',
 'talk' => 'सम्भाषणम्',
-'views' => 'दà¥\83शà¥\8dयानि',
-'toolbox' => 'à¤\89पà¤\95रणपà¥\87à¤\9fिà¤\95ा',
+'views' => 'मतानि',
+'toolbox' => 'à¤\89पà¤\95रणानि',
 'userpage' => 'योजकपृष्ठं दृश्यताम्',
 'projectpage' => 'प्रकल्पपृष्ठं दृश्यताम्',
 'imagepage' => 'सञ्चिकापृष्ठं दृश्यताम्',
 'mediawikipage' => 'सन्देशपृष्ठं दृश्यताम्।',
 'templatepage' => 'फलकपृष्ठं दृश्यताम्',
-'viewhelppage' => 'सहायपृष्ठं दृश्यताम्',
+'viewhelppage' => 'साहायà¥\8dयपृष्ठं दृश्यताम्',
 'categorypage' => 'वर्गाणां पृष्ठं दृश्यताम्',
 'viewtalkpage' => 'चर्चा दृश्यताम्',
 'otherlanguages' => 'अन्यासु भाषासु',
 'redirectedfrom' => '($1 इत्यस्मात् पुनर्निर्दिष्टम्)',
-'redirectpagesub' => 'à¤\85नà¥\81पà¥\8dरà¥\87षण-पà¥\83षà¥\8dठम्',
-'lastmodifiedat' => 'एतस्य पृष्ठस्य अन्तिमपरिवर्तनं $1 दिनाङ्के $2 समये कृतम्',
+'redirectpagesub' => 'पà¥\83षà¥\8dठमà¥\8d à¤\85नà¥\81पà¥\8dरà¥\87षà¥\8dयताम्',
+'lastmodifiedat' => '$1 (तमे) दिनाङ्के अन्तिमसम्पादनं $2 समये अभवत्',
 'viewcount' => 'एतत्पृष्ठं {{PLURAL:$1|एक वारं|$1 वारं}} दृष्टम् अस्ति',
 'protectedpage' => 'संरक्षितपृष्ठम्',
-'jumpto' => 'à¤\97मà¥\8dयतामà¥\8d à¤\85तà¥\8dर :',
-'jumptonavigation' => 'परà¥\8dयà¤\9fनमà¥\8d',
+'jumpto' => 'à¤\85तà¥\8dर à¤\97मà¥\8dयतामà¥\8d :',
+'jumptonavigation' => 'सà¤\9eà¥\8dà¤\9aरणà¤\82',
 'jumptosearch' => 'अन्वेषणम्',
-'view-pool-error' => 'भोः, अधुना वितारकः अतिभाराक्रान्तः ।
-बहवः योजकाः एतत् पृष्ठं द्रष्टुं प्रयतमानाः सन्ति ।
-कृपया, कञ्चित्कालं प्रतीक्षतां करोतु । 
-$1',
-'pool-timeout' => 'कालावधिः समाप्ता, यन्त्रणस्यार्थे प्रतीक्षते',
-'pool-queuefull' => 'कुण्डपंक्तिः (पूल् क्यू इत्येषा) पूर्णा अस्ति।',
-'pool-errorunknown' => 'अज्ञाता त्रुटिः',
+'view-pool-error' => 'क्षम्यताम् ! सद्यः वितरकस्य (server) उपरि बहु कार्यभारः अस्ति । 
+बहवः जनाः एतत् पृष्ठं पश्यन्तः सन्ति । 
+एतत् पृष्ठं पुनर्द्रष्टुं पतिक्षा क्रियताम् । $1',
+'pool-timeout' => 'संरक्षणार्थं कालावधिः समाप्ता',
+'pool-queuefull' => 'Pool इति पङ्कतिः पूर्णा अस्ति ।',
+'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).
-'aboutsite' => '{{SITENAME}} इत्यस्य विषये',
-'aboutpage' => 'Project:एतद्विषयकम्',
-'copyright' => 'अस्य घटकानि $1 इत्यस्यान्तर्गतानि उपलब्धानि।',
-'copyrightpage' => '{{ns:project}}:प्रतिलिप्यधिकाराः',
-'currentevents' => 'सद्यःकालीनवार्ताः',
-'currentevents-url' => 'Project:सद्यःकालीनवार्ताः',
-'disclaimers' => 'प्रत्याख्यानम्',
-'disclaimerpage' => 'Project:साधारणं प्रत्याख्यानम्',
-'edithelp' => 'सम्पादनार्थं सहाय्यम्',
-'helppage' => 'Help:आन्तर्यम्',
+'aboutsite' => '{{SITENAME}} विषयकं',
+'aboutpage' => 'Project:विषयकम्',
+'copyright' => 'भिन्नोल्लखः न भवति तावत् $1 अत्र उल्लेखो भवति ।',
+'copyrightpage' => '{{ns:project}}:प्रतिकृत्यधिकारः',
+'currentevents' => 'वर्तमानवार्ताः',
+'currentevents-url' => 'Project:वर्तमानवार्ताः',
+'disclaimers' => 'अस्वीकारः',
+'disclaimerpage' => 'Project:सामान्याऽस्वीकरणम्',
+'edithelp' => 'सम्पादनार्थं साहाय्यम्',
 'mainpage' => 'मुख्यपृष्ठम्',
 'mainpage-description' => 'मुख्यपृष्ठम्',
 'policy-url' => 'Project:नीतिः',
 'portal' => 'समुदायद्वारम्',
 'portal-url' => 'Project:समुदायद्वारम्',
-'privacy' => 'निभà¥\83ततानीतिः',
-'privacypage' => 'Project:निभà¥\83ततानीतिः',
+'privacy' => 'à¤\97à¥\8bपनà¥\80यतानीतिः',
+'privacypage' => 'Project:à¤\97à¥\8bपनà¥\80यतानीतिः',
 
-'badaccess' => 'à¤\85नà¥\81à¤\9cà¥\8dà¤\9eा-पà¥\8dरमादः',
-'badaccess-group0' => 'भवदरà¥\8dथमà¥\8d, à¤\85तà¥\8dर à¤ªà¥\8dरारà¥\8dथितà¤\95à¥\8dरियायाà¤\83 à¤ªà¥\8dरवरà¥\8dतनà¤\82 à¤¨ à¤\85नà¥\81मतमà¥\8d।',
-'badaccess-groups' => 'भवता à¤ªà¥\8dरारà¥\8dथिता à¤\95à¥\8dरिया à¤\95à¥\87वलà¥\87 {{PLURAL:$2|à¤\85सà¥\8dमिनà¥\8d à¤¸à¤®à¥\82हà¥\87|à¤\8fतà¥\87षà¥\81 à¤¸à¤®à¥\82हà¥\87षà¥\81}} à¤\85नà¥\81मता à¤\85सà¥\8dति: $1।',
+'badaccess' => 'à¤\85नà¥\81मतिदà¥\8bषः',
+'badaccess-group0' => 'यसà¥\8dयाà¤\83 à¤\95à¥\8dरियायाà¤\83 à¤\95à¥\83तà¥\87 à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤\89दà¥\8dयà¥\81à¤\95à¥\8dता, à¤¤à¤¸à¥\8dयà¥\88 à¤\95à¥\8dरियायà¥\88 à¤\85नà¥\81मति à¤¨à¤¾à¤¸à¥\8dति ।',
+'badaccess-groups' => 'यसà¥\8dयाà¤\83 à¤\95à¥\8dरियायाà¤\83 à¤\95à¥\83तà¥\87 à¤­à¤µà¤¾à¤¨à¥\8d/भवतà¥\80 à¤\89दà¥\8dयà¥\81à¤\95à¥\8dता, à¤¤à¤¸à¥\8dयà¥\88 à¤\95à¥\8dरियायà¥\88 $1 {{PLURAL:$2|à¤\85सà¥\8dमिनà¥\8d à¤¸à¤®à¥\82हà¥\87|à¤\8fतà¥\87षà¥\81 à¤¸à¤®à¥\82हà¥\87षà¥\81}} à¤\85नà¥\81मति à¤¨à¤¾à¤¸à¥\8dति ।',
 
-'versionrequired' => 'मीडीयाविके: $1 संस्करणम् आवश्यकम् ।',
-'versionrequiredtext' => 'à¤\8fततà¥\8dपà¥\83षà¥\8dठà¤\82 à¤ªà¥\8dरयà¥\8bà¤\95à¥\8dतà¥\81à¤\82 à¤®à¥\80डियाविà¤\95ि à¤\87तà¥\8dयà¥\87तसà¥\8dय $1तमा à¤\86वà¥\83तà¥\8dतिà¤\83 à¤\86वशà¥\8dयà¤\95à¥\80। à¤ªà¤¶à¥\8dयतà¥\81 [[Special:Version|à¤\86वà¥\83तà¥\8dति-सà¥\82à¤\9aिà¤\95ा]]',
+'versionrequired' => 'मीडीयाविक इत्यस्य $1 संस्करणम् आवश्यकम् ।',
+'versionrequiredtext' => 'à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\89पयà¥\8bà¤\97ारà¥\8dथà¤\82 à¤®à¥\80डà¥\80याविà¤\95ि à¤\87तà¥\8dयसà¥\8dय $1 à¤¸à¤\82सà¥\8dà¤\95रणमà¥\8d à¤\86वशà¥\8dयà¤\95मà¥\8d à¥¤ à¤ªà¤¶à¥\8dयतà¥\81 [[Special:सà¤\82सà¥\8dà¤\95रणमà¥\8d|सà¤\82सà¥\8dà¤\95रणानि]].',
 
 'ok' => 'अस्तु',
 'pagetitle' => '$1 - {{SITENAME}}',
-'retrievedfrom' => '"$1" à¤\87तà¥\8dयसà¥\8dमादà¥\8d à¤\89दà¥\8dधà¥\83तमà¥\8d',
-'youhavenewmessages' => 'भवदर्थम् $1 सन्ति। ($2).',
-'youhavenewmessagesfromusers' => 'भवदर्थम् {{PLURAL:$3|अन्यस्मात् सदस्यात्|$3 सदस्येभ्यः}} $1 अस्ति ($2)।',
-'youhavenewmessagesmanyusers' => 'नैकेभ्यः योजकेभ्यः ते $1 सन्ति $2 ।',
+'retrievedfrom' => '"$1" à¤\87तà¥\8dयसà¥\8dमादà¥\8d à¤ªà¥\81नà¤\83 à¤ªà¥\8dरापà¥\8dतिà¤\83',
+'youhavenewmessages' => '{{PLURAL:$3|भवतः/भवत्याः कृते}} $1 ($2).',
+'youhavenewmessagesfromusers' => '{{PLURAL:$4|भवतः/भवत्याः कृते}} $1  {{PLURAL:$3|अन्यस्मात् योजकात्|$3 अन्येभ्यः योजकेभ्यः}} अस्ति ($2)।',
+'youhavenewmessagesmanyusers' => 'नैकेभ्यः योजकेभ्यः ते $1 सन्ति ($2) ।',
 'newmessageslinkplural' => '{{PLURAL:$1|नूतनः सन्देशः|नूतनसन्देशाः}}',
-'newmessagesdifflinkplural' => 'सद्यः {{PLURAL:$1|परिवर्तनम्|परिवर्तनानि}}',
-'youhavenewmessagesmulti' => 'भवतः कृते $1 मध्ये नूतनः सन्देशः विद्यते',
+'newmessagesdifflinkplural' => 'सद्यः {{PLURAL:$1|परिवर्तनम्| परिवर्तनानि}}',
+'youhavenewmessagesmulti' => '$1 अत्र भवते नूतनसन्देशाः सन्ति',
 'editsection' => 'सम्पाद्यताम्',
 'editold' => 'सम्पाद्यताम्',
 'viewsourceold' => 'स्रोतः दृश्यताम्',
 'editlink' => 'सम्पाद्यताम्',
 'viewsourcelink' => 'स्रोतः दृश्यताम्',
-'editsectionhint' => 'à¤\85यà¤\82 à¤µà¤¿à¤­à¤¾à¤\97à¤\83 à¤¸à¤®à¥\8dपादà¥\8dयतामà¥\8d: $1',
+'editsectionhint' => 'समà¥\8dपादनविभाà¤\97à¤\83: $1',
 'toc' => 'अन्तर्विषयाः',
 'showtoc' => 'दर्श्यताम्',
 'hidetoc' => 'गोप्यताम्',
-'collapsible-collapse' => 'सà¤\82à¤\95à¥\8bच्यताम्',
+'collapsible-collapse' => 'सà¤\99à¥\8dà¤\95à¥\81च्यताम्',
 'collapsible-expand' => 'विस्तीर्यताम्',
-'thisisdeleted' => '$1 à¤¦à¤°à¥\8dशयà¥\87तà¥\8d à¤µà¤¾ à¤ªà¥\8dरतà¥\8dयानयà¥\87तà¥\8d à¤µà¤¾?',
+'thisisdeleted' => '$1 à¤¦à¥\83शà¥\8dयताà¤\82 à¤ªà¥\82रà¥\8dवतनà¤\82 à¤\95à¥\8dरियताà¤\82 à¤µà¤¾ ?',
 'viewdeleted' => '$1 दृश्यताम् ?',
-'restorelink' => '{{PLURAL:$1|à¤\8fà¤\95मà¥\8d à¤\85पाà¤\95à¥\83तà¤\82 à¤¸à¤\82पादनमà¥\8d  |$1 à¤\85पाà¤\95à¥\83तानि à¤¸à¤\82पादनानि}}',
+'restorelink' => '{{PLURAL:$1|à¤\8fà¤\95मà¥\8d à¤\85पाà¤\95à¥\83तà¤\82 à¤¸à¤®à¥\8dपादनमà¥\8d|$1 à¤\85पाà¤\95à¥\83तानि à¤¸à¤®à¥\8dपादनानि}}',
 'feedlinks' => 'अनुबन्ध:',
-'feed-invalid' => 'à¤\85मानà¥\8dयà¤\82 à¤¸à¥\87वाà¤\97à¥\8dरहण-पà¥\82रण (सबà¥\8dसà¥\8dà¤\95à¥\8dरिपà¥\8dशन-फà¥\80डà¥\8d à¤\87ति) à¤ªà¥\8dरà¤\95ारà¤\83।',
-'feed-unavailable' => 'समवायसमà¥\8dपà¥\82रणà¤\82 à¤¨à¥\8bपलभते ।',
-'site-rss-feed' => '$1 आरएसएस पूरणम्',
+'feed-invalid' => 'सदसà¥\8dयतायाà¤\83 à¤\85मानà¥\8dयà¤\83 à¤\85नà¥\81बनà¥\8dध(feed)पà¥\8dरà¤\95ारà¤\83',
+'feed-unavailable' => 'समवायानà¥\81बनà¥\8dधाà¤\83 à¤¨à¥\8bपलभनà¥\8dते ।',
+'site-rss-feed' => '$1 RSS अनुबन्धः',
 'site-atom-feed' => '$1 अणुपूरणम्',
-'page-rss-feed' => '"$1" आरएसएस-पूरणम्',
+'page-rss-feed' => '"$1" RSS अनुबन्धः',
 'page-atom-feed' => '"$1" अणुपूरणम्',
-'red-link-title' => '$1 (पà¥\83षà¥\8dठमà¥\8d à¤\87दानà¥\80à¤\82 à¤¯à¤¾à¤µà¤¤à¥\8d à¤¨ à¤°à¤\9aितमà¥\8d)',
-'sort-descending' => 'à¤\85वरà¥\8bहिà¤\95à¥\8dरमà¥\87ण à¤¸à¤\9cà¥\8dà¤\9cयतà¥\81',
-'sort-ascending' => 'à¤\86रà¥\8bहिà¤\95à¥\8dरमà¥\87ण à¤¸à¤\9cà¥\8dà¤\9cयतà¥\81',
+'red-link-title' => '$1 (पà¥\83षà¥\8dठà¤\82 à¤¨ à¤µà¤¿à¤¦à¥\8dयतà¥\87)',
+'sort-descending' => 'अवरोहक्रमेण सज्जयतु',
+'sort-ascending' => 'आरोहक्रमेण सज्जयतु',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'पृष्ठम्',
-'nstab-user' => 'यà¥\8bà¤\9cà¤\95सà¥\8dय à¤ªà¥\83षà¥\8dठमà¥\8d',
+'nstab-user' => 'योजकपृष्ठम्',
 'nstab-media' => 'माध्यमपृष्ठम्',
 'nstab-special' => 'विशेषपृष्ठम्',
 'nstab-project' => 'प्रकल्पपृष्ठम्',
 'nstab-image' => 'सञ्चिका',
 'nstab-mediawiki' => 'सन्देशः',
 'nstab-template' => 'फलकम्',
-'nstab-help' => 'सहायपृष्ठम्',
+'nstab-help' => 'साहायà¥\8dयपृष्ठम्',
 'nstab-category' => 'वर्गः',
 
 # Main script and global functions
@@ -590,11 +593,12 @@ $1',
 'enterlockreason' => 'तन्त्रितीकरणस्य कारणं ददातु, अपि च आकलितं ददातु यत् तन्त्रणं कदा उद्घाट्यिष्यते।',
 'readonlytext' => 'समंकाधारं वर्तमानकाले तन्त्रितमस्ति नूतनान् प्रविष्टीन् विरुध्य तथा च अन्यानि परिवर्तनानि विरुध्य। इदं नियमिततया समंकाधार परिचर्याऽर्थं तथा स्यात्। तत्पश्चादिदं सामान्यतां संप्राप्स्यति।
 तन्त्रितीकारकेन प्रबन्धकेन इदं कारणं प्रदत्तम्: $1',
-'missing-article' => 'त्ताधारेण(डाटाबेस् इत्यनेन) "$1" $2 इतिनामकं प्राप्तव्यं यत् पृष्ठं तत् नैव प्राप्तम्।
-प्रायः कालातीतस्य अथवा अपाकृतस्य इतिहाससम्पर्कतन्तोः कारणेन एवं भवति।
-यदि नैवं तर्हि भवता तन्त्रांशकीटकं प्राप्तं स्यात्।
-कृपया कोऽपि [[Special:ListUsers/sysop|administrator]]अस्य पृष्ठस्य सङ्केतज्ञापनपूर्वकं सूच्यताम्।',
-'missingarticle-rev' => '(आवृत्तिः# :$1)',
+'missing-article' => 'दत्तनिधौ (in database) $2 अन्तः कुत्रापि "$1" न प्राप्तम् ।
+
+प्रायः अपाकृतस्य पृष्ठस्य इतिहासदर्शनस्य चेष्टाकाले एवं भवति ।
+
+तादृशी स्थितिः यदि नास्ति, तर्हि तन्त्रांशे वद्यमाना त्रुटिः भवेत् । कृपया कमपि [[Special:ListUsers/sysop|प्रबन्धकम्]] अस्य पृष्ठस्य सार्वसङ्केतं (U.R.L.) सूच्यताम् ।',
+'missingarticle-rev' => '(संस्करणं# :$1)',
 'missingarticle-diff' => '(व्यतिरेक: $1, $2)',
 'readonly_lag' => 'मुख्य-समंकाधार-परिवेशकं उपमुख्य-समंकाधार-परिवेशकस्य संप्रापणात् पूर्वे एव स्वतः तन्त्रितम् अस्ति।',
 'internalerror' => 'आन्तरिकः दोषः',
@@ -614,8 +618,8 @@ $1',
 इदं खलु केनचिदन्येन पूर्वे एव अपाकृतं स्यात्।',
 'cannotdelete-title' => ' "$1" पृष्ठं निर्मार्जयितुम् अशक्यम्',
 'delete-hook-aborted' => 'आलम्बेन अपमार्जनम् अपनीतम् । अनेन विवरणं न दत्तम् ।',
-'badtitle' => 'दà¥\81षà¥\8dà¤\9fं शिरोनाम',
-'badtitletext' => 'पà¥\8dरारà¥\8dथितà¤\82 à¤ªà¥\83षà¥\8dठशà¥\80रà¥\8dषà¤\95मà¥\8d à¤\85मानà¥\8dयà¤\82 à¤°à¤¿à¤\95à¥\8dतमà¥\8d à¤\85शà¥\81दà¥\8dधतया à¤¸à¤®à¥\8dबदà¥\8dधमà¥\8d à¤\86नà¥\8dतरà¥\8dभाषिà¤\95मà¥\8d, à¤\86नà¥\8dतरà¥\8dविà¤\95à¥\80यà¤\82 à¤µà¤¾ à¤¶à¥\80रà¥\8dषà¤\95मसà¥\8dति à¥¤ à¤\85सà¥\8dमिनà¥\8d à¤\8fà¤\95à¤\82 à¤\8fà¤\95ाधिà¤\95ानि à¤µà¤¾ à¤\8fतादà¥\83शानि à¤\85à¤\95à¥\8dषराणि à¤µà¤¿à¤¦à¥\8dयनà¥\8dतà¥\87 à¤¯à¥\87षाà¤\82 à¤ªà¥\8dरयà¥\8bà¤\97à¤\82 à¤¶à¥\80रà¥\8dषà¤\95à¥\87षà¥\81 à¤\95रà¥\8dतà¥\81मà¥\8d à¤\85शà¤\95à¥\8dयमà¥\8d।',
+'badtitle' => 'à¤\85शà¥\81दà¥\8dधं शिरोनाम',
+'badtitletext' => 'à¤\87पà¥\8dसितà¤\82 à¤¶à¥\80रà¥\8dषà¤\95मà¥\8d à¤\85मानà¥\8dयà¤\82, à¤°à¤¿à¤\95à¥\8dतमà¥\8d, à¤\85यà¥\8bà¤\97à¥\8dयà¤\82, à¤\85नà¥\8dयभाषà¥\80यà¤\82, à¤µà¤¿à¤\95ि-à¤\9cालविहाय à¤\9a à¤\85सà¥\8dति à¥¤ à¤ªà¥\83षà¥\8dठशà¥\80रà¥\8dषà¤\95ाय à¤\85यà¥\8bà¤\97à¥\8dयानि à¤\85à¤\95à¥\8dषराणि à¤\9aिहà¥\8dनानि à¤µà¤¾ à¤¤à¤¸à¥\8dमिनà¥\8d à¤­à¤µà¥\87यà¥\81à¤\83 ।',
 'perfcached' => 'अनुपदोक्तं लेखः कैश् इत्येतस्माद् अस्ति, अतः अद्यतनं न स्यात्।  {{PLURAL:$1|one result is|$1 results are}}',
 'perfcachedts' => 'अधोनिदेशितलेखः सञ्चितः । पूर्वपदोन्नतिः $1 । $4 {{PLURAL:}} अधिकाधिकपरिणामः सञ्चये उपलब्धः ।',
 'querypage-no-updates' => 'अस्य पृष्ठस्य परिशोधनं विफलीकृतमस्ति । 
@@ -657,7 +661,7 @@ $2',
 'welcomeuser' => 'स्वागतं, हे $1!',
 'welcomecreation-msg' => 'भवतः लेखा रचिताऽस्ति।
 स्वकीयानां [[Special:Preferences|{{SITENAME}} इष्टतमानां]]. निगदनं मा विस्मर्यताम्।',
-'yourname' => 'योजकनामन्:',
+'yourname' => 'योजकनाम:',
 'userlogin-yourname' => 'प्रयोक्तुः नाम',
 'userlogin-yourname-ph' => 'स्वकीयं प्रयोक्तृनाम दीयताम्',
 'yourpassword' => 'कूटशब्दः',
@@ -671,21 +675,20 @@ $2',
 'password-change-forbidden' => 'अस्यां विक्यां निकुञ्चं परिवर्तयितुं न शक्नोति ।',
 'externaldberror' => 'तत्र प्रमाणीकरण समंकाधारे त्रुटिर्जाता, अथवा भवान् स्वकीयां बाह्य-लेखां अद्यतनीकर्तुं अनुमतिं न धारयति।',
 'login' => 'प्रविश्यताम्',
-'nav-login-createaccount' => 'प्रविश्यताम्/ सदस्यता प्राप्यताम्',
-'loginprompt' => '{{SITENAME}} à¤\87तà¥\8dयतà¥\8dर à¤ªà¥\8dरवà¥\87षà¥\8dà¤\9fà¥\81à¤\82 à¤\95à¥\81à¤\95à¥\80 à¤\87तà¥\8dयà¥\87तà¥\87 (cookies)  à¤¸à¤®à¤°à¥\8dथà¥\80à¤\95रणà¥\80यानि।',
-'userlogin' => 'प्रविश्यताम्/ सदस्यता प्राप्यताम्',
+'nav-login-createaccount' => 'प्रविश्यताम् / सदस्यता प्राप्यताम्',
+'loginprompt' => '{{SITENAME}} à¤\87तà¥\8dयतà¥\8dर à¤ªà¥\8dरवà¥\87षà¥\8dà¤\9fà¥\81à¤\82 à¤\9cà¥\8dà¤\9eापà¤\95ानि (cookies)  à¤¸à¤®à¤°à¥\8dथà¥\80à¤\95रणà¥\80यानि ।',
+'userlogin' => 'प्रविश्यताम् / सदस्यता प्राप्यताम्',
 'userloginnocreate' => 'प्रविश्यताम्',
 'logout' => 'निर्गमनम्',
 'userlogout' => 'निर्गमनम्',
 'notloggedin' => 'नैव प्रविष्टः',
 'userlogin-noaccount' => 'सदस्यता नास्ति किम्?',
-'nologin' => 'पà¥\82रà¥\8dवमà¥\87व à¤¯à¥\8bà¤\9cà¤\95à¤\83 à¤¨à¤¾à¤¸à¥\8dति à¤\95िमà¥\8d ? $1।',
+'nologin' => 'सदसà¥\8dयता à¤¨à¤¾à¤¸à¥\8dति à¤\95िमà¥\8d ? $1',
 'nologinlink' => 'सदस्यता प्राप्यताम्',
 'createaccount' => 'सदस्यता प्राप्यताम्',
-'gotaccount' => 'पूर्वमेव योजकः अस्ति किम् ? $1',
+'gotaccount' => 'पूर्वमेव योजकः अस्ति किम् ? $1',
 'gotaccountlink' => 'प्रविश्यताम्',
 'userlogin-resetlink' => 'प्रवेशविवरणानि विस्मृतानि किम् ?',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|प्रवेशनार्थं सहायता]]',
 'createacct-join' => 'स्वकीया सूचना अधस्तात् प्रवेश्यताम्।',
 'createaccountmail' => 'ईपत्रद्वारा',
 'createaccountreason' => 'कारणम्',
@@ -721,7 +724,7 @@ $2',
 'passwordtooshort' => 'कूटशब्दः न्यूनातिन्यूनं {{PLURAL:$1| 1 अक्षरात्मकः|$1 अक्षरात्मकमः}} अवश्यमेव भवेत्।',
 'password-name-match' => 'भवतः कूटशब्दः भवतः प्रयोक्तृनामतः अवश्यम् भिन्नं  भवेत् ।',
 'password-login-forbidden' => 'अस्य प्रयोक्तृनाम्नः कूटशब्दस्य च प्रयोगः वर्जितोऽस्ति।',
-'mailmypassword' => 'नà¥\82तनà¤\83 à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤\88पतà¥\8dरदà¥\8dवारा à¤ªà¥\8dरà¥\87ष्यताम्',
+'mailmypassword' => 'à¤\95à¥\82à¤\9fशबà¥\8dदà¤\83 à¤ªà¤°à¤¿à¤µà¤°à¥\8dत्यताम्',
 'passwordremindertitle' => '{{SITENAME}} इत्येतदर्थे नूतन् अस्थायि कूटशब्दम्।',
 'passwordremindertext' => 'कश्चित्  (भवान् अपि स्यात्,  $1 ऐ. पि. सङ्केतात् ) {{SITENAME}} ($4) इत्यस्य कृते नूतनं कूटशब्दं प्रार्थितवान् । तात्कालिकः कूटशब्दः "$2" इति उपयोक्तुः कृते निर्मितः "$3" कृते प्रेषितश्च । यदि अयं भवतः  आशयः, भवान् प्रविश्य नूतनं कूटशब्दम् इदानीं चिनोतु । भवतः तात्कालिकः कूटशब्दः  {{PLURAL:$5|दिनम्|$5 दिनानि}} यावत् सक्रियः भवति । 
 
@@ -766,6 +769,7 @@ You may ignore this message, if this account was created in error.',
 'login-abort-generic' => 'भवतः प्रवेशप्रयासः विफलीभूतः - परित्यक्तः',
 'loginlanguagelabel' => 'भाषा : $1',
 'suspicious-userlogout' => 'भवतः सत्राद् बहिर्गमनस्य अनुरोधः अस्वीकृतोऽस्ति, यस्मादेतत् भग्नादेकस्मात् ब्राउज़र्तः अथवा स्वल्पसञ्चयि-प्रॉक्सितः प्रेषित आसीत्।',
+'pt-login-button' => 'प्रविश्यताम्',
 
 # Email sending
 'php-mail-error-unknown' => 'पीएच्पी इत्येतस्य mail() फलने अज्ञाता काऽपि त्रुटिर्जाता।',
@@ -829,37 +833,37 @@ $2
 'changeemail-cancel' => 'निवर्तयते',
 
 # Edit page toolbar
-'bold_sample' => 'सà¥\8dथà¥\82लाà¤\95à¥\8dषरà¥\88à¤\83 à¤¯à¥\81à¤\95à¥\8dतà¤\83 à¤­à¤¾à¤\97à¤\83',
-'bold_tip' => 'सà¥\8dथà¥\82लाà¤\95à¥\8dषरà¥\88à¤\83 à¤¯à¥\81à¤\95à¥\8dतà¤\83 à¤­à¤¾à¤\97à¤\83',
+'bold_sample' => 'सà¥\8dथà¥\82लाà¤\95à¥\8dषराणि',
+'bold_tip' => 'सà¥\8dथà¥\82लाà¤\95à¥\8dषराणि',
 'italic_sample' => 'तिर्यक् अक्षरम्',
 'italic_tip' => 'तिर्यक् अक्षरम्',
-'link_sample' => 'सà¤\82बà¤\82धनसà¥\8dय शीर्षकम्',
+'link_sample' => 'परिसनà¥\8dधà¥\87à¤\83 शीर्षकम्',
 'link_tip' => 'आन्तरिकसम्पर्कतन्तुः',
-'extlink_sample' => 'http://www.example.com à¤¸à¤\82बà¤\82धनसà¥\8dय शीर्षकम्',
-'extlink_tip' => 'बाह्य-संबंधनम् (अवश्यमेव  http:// इति पूर्वलग्नं योक्तव्यम्)',
+'extlink_sample' => 'http://www.example.com à¤ªà¤°à¤¿à¤¸à¤¨à¥\8dधà¥\87à¤\83 शीर्षकम्',
+'extlink_tip' => 'बाह्यानुबन्धः (http:// इति पूर्वन्यासम् अग्रे योजनीयम् इति स्मरतु)',
 'headline_sample' => 'शीर्षकम्',
 'headline_tip' => 'द्वितीयस्तरीयं शीर्षकम्',
-'nowiki_sample' => 'à¤\85पà¥\8dरारà¥\82पà¥\80à¤\95à¥\83तà¤\82 à¤ªà¤¾à¤ à¤\82 à¤\85तà¥\8dर à¤¨à¤¿à¤µà¥\87शयतà¥\81',
-'nowiki_tip' => 'विकिप्रारूपणं अवगणना कुरु',
+'nowiki_sample' => 'à¤\85पà¥\8dरारà¥\82पितà¤\82 à¤ªà¤¾à¤ à¤®à¥\8d à¤\85तà¥\8dर à¤¨à¤¿à¤µà¥\87शà¥\8dयतामà¥\8d',
+'nowiki_tip' => 'विकि-प्रारूपस्य अवगणनां करोतु',
 'image_sample' => 'उदाहरणम्.jpg',
-'image_tip' => 'à¤\85नà¥\8dतरà¥\8dà¤\97ता सञ्चिका',
+'image_tip' => 'à¤\85नà¥\8dतरà¥\8dनिहिता सञ्चिका',
 'media_sample' => 'उदाहरणम्.ogg',
-'media_tip' => 'सà¤\82à¤\9aिà¤\95ा-समà¥\8dपरà¥\8dà¤\95तनà¥\8dतà¥\81ः',
-'sig_tip' => 'भवतà¤\83 à¤¹à¤¸à¥\8dताà¤\99à¥\8dà¤\95नà¤\82 à¤¸à¤®à¤¯à¥\8bलà¥\8dलà¥\87à¤\96शà¥\8dà¤\9a',
+'media_tip' => 'सà¤\9eà¥\8dà¤\9aिà¤\95ासमà¥\8dबनà¥\8dधः',
+'sig_tip' => 'समयà¥\8bलà¥\8dलà¥\87न à¤¸à¤¹ à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¹à¤¸à¥\8dताà¤\95à¥\8dषरà¤\83',
 'hr_tip' => 'क्षैतिज-रेखा (न्यूनतया प्रयोक्तव्या)',
 
 # Edit pages
-'summary' => 'सारांशः :',
+'summary' => 'सारांशः:',
 'subject' => 'विषयः/शीर्षकम् :',
 'minoredit' => 'इदं लघु परिवर्तनम्',
 'watchthis' => 'इदं पृष्ठं निरीक्षताम्',
 'savearticle' => 'पृष्ठं रक्ष्यताम्',
 'preview' => 'प्राग्दृश्यम्',
-'showpreview' => 'पà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयà¤\82 à¤¦à¤°à¥\8dश्यताम्',
+'showpreview' => 'पà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयà¤\82 à¤¦à¥\83श्यताम्',
 'showlivepreview' => 'प्रत्यक्षं प्राग्दृश्यम्',
-'showdiff' => 'परिवरà¥\8dतनानि à¤¦à¤°à¥\8dश्यन्ताम्',
-'anoneditwarning' => "'''पà¥\8dरबà¥\8bधà¤\83'''भवानà¥\8d à¤¨ à¤ªà¥\8dरविषà¥\8dà¤\9fà¥\8bऽसà¥\8dति !
-समà¥\8dपादनà¤\82 à¤\95रà¥\8dतà¥\81मà¥\8d à¤\85तà¥\8dर à¤ªà¥\8dरवà¥\87शà¤\83 à¤\86वशà¥\8dयà¤\95à¤\83 à¥¤ à¤\85नà¥\8dयथा à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\87तिहासà¥\87 à¤­à¤µà¤¦à¥\80या IPसà¤\82ख्या अङ्किता भवति ।",
+'showdiff' => 'परिवरà¥\8dतनानि à¤¦à¥\83श्यन्ताम्',
+'anoneditwarning' => "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना''' à¤­à¤µà¤¤à¤¾/भवतà¥\8dया à¤ªà¥\8dरवà¥\87शà¤\83 à¤¨ à¤\95à¥\83तà¤\83 !
+à¤\85तà¥\8dर à¤¸à¤®à¥\8dपादनà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤ªà¥\8dरवà¥\87शà¤\83 à¤\85निवारà¥\8dयà¤\83 à¥¤ à¤\85नà¥\8dयथा à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\87तिहासà¥\87 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¤\83 (IP) à¤¸à¤\99à¥\8dख्या अङ्किता भवति ।",
 'anonpreviewwarning' => "''भवान् प्रवेशितः न अस्ति। रक्षणेन पृष्ठस्य सम्पादनेतिहासे भवतः आइपीसंकेतः अंकितः भविष्यति।''",
 'missingsummary' => "'''अनुस्मारकम्:''' भवता सम्पादनस्य सारः न प्रदत्तः।
 चेद्भवान् \"{{int:savearticle}}\" इत्येतद् पुनः क्लिक्करोति, भवतः सम्पादनानि साराद् ऋते रक्षितीभविष्यन्ति।",
@@ -907,20 +911,19 @@ $2
 'accmailtext' => "[[User talk:$1|$1]] इत्येतदर्थं एकः यादृच्छिकतया उत्पादितः कूटशब्दः $2 इत्येतत् प्रति प्रेषितोऽस्ति।
 सत्रारम्भपश्चात् नूतनायाः अस्याः लेखायाः कूटशब्दः  '''[[Special:ChangePassword|कूटशब्दं परिवर्तताम्]]'' इति पृष्ठे परिवर्तितुं शक्यते।",
 'newarticle' => '(नूतनम्)',
-'newarticletext' => "भवता एतादृशमेकं पृष्टं प्रति संबंधनम् अनुसृतम्, यत्पृष्ठं न इदानींयावत् विद्यते।
+'newarticletext' => 'भवान्/भवती अनिर्मिते पृष्ठे अस्ति । 
 
-पृष्ठं स्रष्टुम् अधःप्रदत्तायां पेटिकायां टंकणं करोतु (सहाय्यार्थं [[{{MediaWiki:Helppage}}|अत्र]] क्लिक्करोतु।
-
-चेद्भवान् अत्र भ्रान्तिना आनीतोऽस्ति तदा स्वकीये ब्राउसर् इत्यस्मिन् '''बैक्''' इत्यस्मिन् क्लिक्करोतु।)",
+पृष्ठं स्रष्टुम् अधः प्रदत्तायां पेटिकायां टङ्कनं प्रारभतु (साहाय्यार्थं [$1 अत्र] नुदतु ।
+भवान्/भवती यदि क्षतिकारणात् एतत् पृष्ठं प्रति आगच्छत्, तर्हि अस्य गवेषकस्य (browser) "बैक्" इति नुदतु ।',
 'anontalkpagetext' => 'तस्य अनामकयोजकस्य, अथवा अनुपयोजकस्य च परिचर्चापुटम् येन एतावति काले स्वस्थनं  न निर्मितम् । 
 अतः तस्य अभिज्ञानार्थं ऐ.पि.सङ्गेतसङ्ख्या प्रयोजनीया । 
 सा समाना सङ्ख्याः अन्ययोजकैः अपि विभक्ता । यदि भवान् अनामकयोजकः, भवता असम्बद्धटीकाः श्रुताः, कृपया स्वस्थनं निर्मीय नामाभिलेखं करोतु ।  [[Special:UserLogin/signup|create an account]], [[Special:UserLogin|log in]] अन्यानामकयोजकैः सह सम्भूयमनभ्रमैः विमुक्तः भवतु ।',
-'noarticletext' => 'अस्मिन् पृष्ठे अधुना किमपि न विद्यते। भवान् विकिपीडियावर्तिषु अन्येषु पृष्ठेषु इदं [[Special:Search/{{PAGENAME}}|शीर्षकम् अन्वेष्टुम्]]अर्हति अथवा इदं पृष्ठं 
-<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}  à¤¸à¤®à¥\8dबदà¥\8dधà¥\87षà¥\81 à¤ªà¥\83षà¥\8dठà¥\87षà¥\81 à¤\85नà¥\8dवà¥\87षà¥\8dà¤\9fà¥\81मà¥\8d à¤\85रà¥\8dहति],
-अथवा [{{fullurl:{{FULLPAGENAME}}|action=edit}} इदं पृष्ठं सम्पादयितुम् अर्हति]</span>.',
-'noarticletext-nopermission' => 'अस्मिन् पृष्ठे अधुना किमपि न विद्यते। भवान् विकिपीडियावर्तिषु अन्येषु पृष्ठेषु इदं [[Special:Search/{{PAGENAME}}|शीर्षकम् अन्वेष्टुम् अर्हति]] 
-<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}  related logs अन्वेष्टुम् अर्हति],
-अथवा [{{fullurl:{{FULLPAGENAME}}|action=edit}} इदं पृष्ठं स्रष्टुम् अर्हति]</span>.',
+'noarticletext' => 'अस्मिन् पृष्ठे अधुना किमपि न विद्यते । [[Special:Search/{{PAGENAME}}|एषः शब्दः]] येषु पृष्ठेषु अन्तर्भवति, तानि पृष्ठानि अन्वेष्टुं शक्यन्ते । 
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}  à¤¸à¤®à¥\8dबदà¥\8dधà¥\87षà¥\81 à¤ªà¥\83षà¥\8dठà¥\87षà¥\81 à¤\85नà¥\8dवà¥\87षणà¤\82]
+[{{fullurl:{{FULLPAGENAME}}|action=edit}} अस्य पृष्ठस्य सम्पादनं] वा  शक्यम्</span>.',
+'noarticletext-nopermission' => 'अस्मिन् पृष्ठे अधुना किमपि न विद्यते । [[Special:Search/{{PAGENAME}}|एषः शब्दः]] येषु पृष्ठेषु अन्तर्भवति, तानि पृष्ठानि अन्वेष्टुं शक्यन्ते । 
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}}  सम्बद्धेषु पृष्ठेषु अन्वेषणं]
+[{{fullurl:{{FULLPAGENAME}}|action=edit}} अस्य पृष्ठस्य सम्पादनं] वा  शक्यम्</span>.',
 'missing-revision' => '{{PAGENAME}} इति नामाङ्कितपुटस्य #$1 इति पुनरावृत्तिः अत्र नाश्ति । 
 पुटेन सह कालातीतानुबन्धकारणेन एतत् अभवत् ।
 विवरणम् अत्र दृश्यते ।[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].',
@@ -948,8 +951,8 @@ $2
 मनसि धारयतु यत् स्वेच्छया परिवर्तिताः .css, .js चेति पृष्ठाः लघूनक्षरान् प्रयोजयन्ति, यथा  {{ns:user}}:Foo/Vector.css इत्येतस्य स्थाने  {{ns:user}}:Foo/vector.css इत्येतत्।",
 'updated' => '(अद्यतनीकृतः)',
 'note' => "'''सूचना:'''",
-'previewnote' => "'''सà¥\8dमरणà¥\80यà¤\82 à¤¯à¤¦à¥\87ततà¥\8d à¤\95à¥\87वलà¤\82 à¤ªà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयमसà¥\8dति।'''
- ते परिवर्तनानि इदानीं यावत् न रक्षितानि ।",
+'previewnote' => "'''à¤\8fततà¥\8d à¤\95à¥\87वलà¤\82 à¤ªà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयà¤\82 à¤µà¤°à¥\8dततà¥\87 à¤\87ति à¤¸à¥\8dमरतà¥\81'''
+भवता/भवत्या कृतानि परिवर्तनानि एतवात् न रक्षितानि ।",
 'continue-editing' => 'सम्पादनम् अनुवर्तताम्',
 'previewconflict' => 'अस्मिन् प्राग्दृश्ये दर्शितमस्ति यत् उपरिवर्ति पाठ क्षेत्रस्य पाठः रक्षणपश्चात् कीदृशः दृष्टिगोचरः भविष्यति।',
 'session_fail_preview' => "'''क्षम्यताम्! अस्माभिः भवतः सम्पादनस्य संसाधनं न कर्तुं शक्तम् यस्माद्धि सत्रस्य सूचनाः लुप्ताः।'''
@@ -961,7 +964,7 @@ $2
 'edit_form_incomplete' => "'''सम्पादनस्य कतिचनांशाः वितारकं न प्राप्ताः ; सम्पादनं  द्विवरं परिशीलयतु । ते सम्पादनानि अनाहतानि, पुनः यतताम्  '''",
 'editing' => '$1 सम्पाद्यते',
 'creating' => '$1 सर्जनम्',
-'editingsection' => '$1 सम्पादनम् (विभागः)',
+'editingsection' => '$1 (विभागस्य) सम्पादनं कुर्वन् अस्ति',
 'editingcomment' => '$1 संपादनम् (विभागः)',
 'editconflict' => 'सम्पादनयोः/सम्पादनानाम् अन्तर्विरोधः : $1',
 'explainconflict' => 'ते सम्पादनावसरे कोपि अन्यः परिवर्तितवान् । उपरितनलेखस्य क्षेत्रं सद्यः विद्यमानपुटयुक्तमस्ति । ते परिवर्तनम् अधः लेखक्षेत्रे दृश्यते । विद्यमानलेखैः सह ते परिवर्ताननि विलीनयतु । यदा संरक्षणप्रयत्नः क्रियते तदा केवलम् उपरिपठ्यभागः एव सुरक्षितं भवति ।',
@@ -991,11 +994,11 @@ $2
 'semiprotectedpagewarning' => "'''सूचना ''' पञ्जीकृतयोजकानां  उपयोगार्थ केवलम् एतत्पुटम् अभिरक्षितम् । जघन्यप्रवेशस्य सूचना आनुकूल्यार्थम् अधोनिदेशिता ।",
 'cascadeprotectedwarning' => "'''पूर्वसूचना ''' प्रशासकसौकर्ययुक्तानां योजकानाम् सम्पादनार्थम् एतत् पुटम् अभिरक्षितमस्ति । यतः अधोनिदेशितनिर्झरे एतदन्तर्गतम् । {{PLURAL:$1|page|pages}}:",
 'titleprotectedwarning' => "'''पूर्वसूचना  [[Special:ListGroupRights|specific rights]] जनानां सर्जनार्थम् एतत्पुटम् अभिरक्षितम् । '''",
-'templatesused' => 'अस्मिन् पृष्ठे प्रयुक्तानि {{PLURAL:$1|फलकम्|फलकानि}}:',
+'templatesused' => 'अस्मिन् पृष्ठे प्रयुक्त{{PLURAL:$1|फलकम्|फलकानि}}:',
 'templatesusedpreview' => 'अस्मिन् प्राग्दृश्ये प्रयुक्ताः {{PLURAL:$1|बिंबधराः |बिंबधराः}}:',
 'templatesusedsection' => '{{PLURAL:$1|Template|Templates}} अस्मिन् विभागे उपयुक्तम् ।',
 'template-protected' => '(संरक्षितम्)',
-'template-semiprotected' => '(अर्धसंरक्षितम्)',
+'template-semiprotected' => 'अर्धसंरक्षितम्',
 'hiddencategories' => 'इदं पृष्ठं {{PLURAL:$1|1 निगूढे वर्गे |$1 निगूढेषु वर्गेषु}} अन्यतमं विद्यते :',
 'nocreatetext' => '{{SITENAME}} नूतनपुटनिर्माणस्य क्षमता नियता । वर्तमानापुटानां सम्पादनार्थं निर्गच्छतु । अथवा [[Special:UserLogin|log in or create an account]].',
 'nocreate-loggedin' => 'नूतनपुटनिर्मार्थम् अनुमतिः नास्ति ।',
@@ -1003,12 +1006,12 @@ $2
 'sectioneditnotsupported-text' => 'अस्मिन् पुटे विभागसम्पादनण् न पोषितम् ।',
 'permissionserrors' => 'अनुज्ञा-विभ्रमाः',
 'permissionserrorstext' => 'भवान् तत् कर्तुं अनुज्ञां न धारयति {{PLURAL:$1|अधोऽङ्कितात् कारणात् |अधोऽङ्कितेभ्यः कारणेभ्यः:}}',
-'permissionserrorstext-withaction' => 'भवान् $2 इत्येतदर्थम् अनुमतः नास्ति, यतः {{PLURAL:$1|कारणम्|कारणानि}}:',
-'recreate-moveddeleted-warn' => "'''पà¥\8dरबà¥\8bधà¤\83: पूर्वम् अपाकृतं पृष्टं भवता रच्यमानम् अस्ति ।'''
-à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤®à¥\8dपादनà¤\82 à¤\95िà¤\82 à¤¯à¥\81à¤\95à¥\8dतमà¥\8d à¤\87ति à¤ªà¥\81नà¤\83 à¤µà¤¿à¤\9aारà¥\8dयतामà¥\8d ।
-à¤\8fतसà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤\85पाà¤\95रणसà¥\8dय à¤\9aालनसà¥\8dय à¤\9a à¤µà¤¿à¤µà¤°à¤£à¤\82 à¤­à¤µà¤¤à¤\83 à¤\89पयà¥\8bà¤\97ाय à¤\85तà¥\8dर à¤¦à¥\80यनà¥\8dतà¥\87 :",
+'permissionserrorstext-withaction' => '$1 निम्नकारणत्वात्  $2 सम्पादनस्य अनुमतिः नास्ति ।',
+'recreate-moveddeleted-warn' => "'''पà¥\82रà¥\8dवसà¥\82à¤\9aना: पूर्वम् अपाकृतं पृष्टं भवता रच्यमानम् अस्ति ।'''
+à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤®à¥\8dपादनà¤\82 à¤\95रणातà¥\8d à¤ªà¥\8dराà¤\95à¥\8d à¤\97भà¥\80रतया à¤\9aिनà¥\8dतनà¤\82 à¤\95रà¥\8bतà¥\81 ।
+à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¨à¤¿à¤°à¥\8dमाणà¤\82 à¤¨à¥\8dयायसà¤\99à¥\8dà¤\97तमà¥\8d à¤\87ति à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤®à¤¤à¤®à¤¸à¥\8dति à¤\9aà¥\87तà¥\8d à¤\85तà¥\8dर à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\82 à¤\95रà¥\8bतà¥\81 à¥¤ à¤¸à¥\8cà¤\95रà¥\8dयारà¥\8dथà¤\82 à¤ªà¥\83षà¥\8dठ-à¤\85पाà¤\95रणसà¥\8dय à¤ªà¥\8dराà¤\95à¥\8dतनसमà¥\8dपादनसà¥\8dय à¤\86वलिà¤\83 à¤\85तà¥\8dर à¤µà¤°à¥\8dततà¥\87 à¥¤",
 'moveddeleted-notice' => 'इदं पृष्ठम् अपाकृतम् अस्ति।
-अस्य अपाकरणस्य स्थानान्तरणस्य च विवरणम् अधः प्रदत्तम् अस्ति।',
+अस्य अपाकरणस्य, स्थानान्तरणस्य च विवरणम् अधः प्रदत्तम् ।',
 'log-fulllog' => 'पूर्ण प्रवर्तनरेख पश्यतु',
 'edit-hook-aborted' => 'पाशेन (हुक् इत्यनेन) सम्पादनं परित्यक्तम्।
 अनेन न किमपि कारणं प्रदत्तम्।',
@@ -1016,6 +1019,7 @@ $2
 प्रतीयते यदिदं अपाकृतमस्ति।',
 'edit-conflict' => 'सम्पादनयोः/सम्पादनानां अन्तर्विरोधः।',
 'edit-no-change' => 'भवतः सम्पादनम् उपेक्षितम्, यतो हि भवता पाठे न किमपि परिवर्तनं कृतम्।',
+'postedit-confirmation' => 'सम्पादनं रक्षितम् ।',
 'edit-already-exists' => 'नूतनं पृष्ठं स्रष्टुं नापारयत्।
 इदं पूर्वे एव विद्यते।',
 'defaultmessagetext' => 'सन्देशपाठं स्थिरयतु ।',
@@ -1034,12 +1038,10 @@ $2
 'expensive-parserfunction-warning' => "'''प्रबोधः :''' अस्मिन् पृष्ठे प्रभूतानि जटिलानि पार्सर्-फ़ंक्शन्-आह्वानानि सन्ति।
 अत्र $2 संख्यातः  {{PLURAL:$2|न्यूनं आह्वानं|न्यूनानि आह्वानानि}} भवितव्यानि, सद्यः तत्र {{PLURAL:$1 $1 आह्वानं विद्यते|$1 आह्वानानि विद्यन्ते}}।",
 'expensive-parserfunction-category' => 'प्रभूतेभ्यः जटिलेभ्यः पार्सर्-फंक्शन्-आह्वानेभ्यः युक्तानि पृष्ठाणि।',
-'post-expand-template-inclusion-warning' => "'''प्रबोधः:''' फलकानां योजनस्य आकारः अतिविशालः वर्तते ।
-कानिचन फलकानि न योजयिष्यते ।",
-'post-expand-template-inclusion-category' => 'पृष्ठाणि यत्र अतोऽधिकाः बिम्बधराः समाहितीकर्तुं न शक्यन्ते।',
-'post-expand-template-argument-warning' => "'''जागरणम्''' अस्मिन् पृष्ठे कश्चन एतादृशं फलकं विद्यते यच्च संवर्धनेन बृहदाकारतां प्राप्नोति ।
-एतादृशानि फलकानि परित्यक्तानि सन्ति ।",
-'post-expand-template-argument-category' => 'परित्यक्तैः फलकैः युक्तानि पृष्ठानि एतानि',
+'post-expand-template-inclusion-warning' => "'''पूर्वसूचना:''' फलकस्य आकारः बृहत् वर्तते । कानिचन फलकानि नान्तर्भविष्यन्ति ।",
+'post-expand-template-inclusion-category' => 'माहितीफलकस्य अपेक्षया पृष्ठं बृहत् वर्तते ।',
+'post-expand-template-argument-warning' => "'''पूर्वसूचना''' अस्मिन् पृष्ठे स्थितस्य फलकस्य एकः विकल्पः बहु बृहत् भवेत् । तस्य विकल्पस्य अंशाः अपाकृताः ।",
+'post-expand-template-argument-category' => 'येषु पृष्ठेषु फलके स्थिताः विकल्पाः न पूरिताः तेषां पृष्ठानाम् आवलिः',
 'parser-template-loop-warning' => 'बिम्बधर-पाशः प्राप्तः: [[$1]]',
 'parser-template-recursion-depth-warning' => 'बिम्बधर-पुनरावर्तनार्थं गहनतायाः सीमा अतिक्रान्ताऽस्ति ($1)',
 'language-converter-depth-warning' => 'भाषा-परिवर्तकस्य गहनतायाः सीमा अतिक्रान्ताऽस्ति (*$1)',
@@ -1064,16 +1066,16 @@ $2
 एतदर्थं $3 इत्यनेन प्रदत्तं कारणम्''$2'' इत्यस्ति।",
 
 # History pages
-'viewpagelogs' => 'à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤²à¥\89à¤\82à¤\97à¥\8d à¤\87तà¥\8dयà¥\87तदà¥\8d à¤¦à¤°à¥\8dशयतà¥\81',
+'viewpagelogs' => 'à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82रà¤\95à¥\8dषितावलिà¤\83 (logs) à¤¦à¥\83शà¥\8dयतामà¥\8d',
 'nohistory' => 'अस्य पृष्ठस्य कृते पृष्ठेतिहासः न वर्तते।',
 'currentrev' => 'सद्यःकालीना आवृत्तिः',
-'currentrev-asof' => 'वर्तमाना आवृत्तिः $1 इति समये',
-'revisionasof' => '$1 à¤\87तà¥\8dयसà¥\8dय à¤\86वà¥\83तà¥\8dतिà¤\83',
-'revision-info' => '$1इति समयस्य आवृत्तिः $2 इत्यनेन',
+'currentrev-asof' => '$1 समयस्य संस्करणम्',
+'revisionasof' => '$1 à¤\87तà¥\8dयसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणà¤\82',
+'revision-info' => '$1 पर्यन्तं $2 द्वारा जातानि परिवर्तनानाम् आवलिः',
 'previousrevision' => '← पुरातनानि संस्करणानि',
 'nextrevision' => 'नूतनतरा आवृत्तिः →',
 'currentrevisionlink' => 'सद्यःकालीना आवृत्तिः',
-'cur' => 'सदà¥\8dयà¥\8bà¤\9cातमà¥\8d',
+'cur' => 'वरà¥\8dतमानà¤\83',
 'next' => 'आगामि',
 'last' => 'पूर्वतनम्',
 'page_first' => 'प्रथमम्',
@@ -1081,8 +1083,8 @@ $2
 'histlegend' => 'भेदस्य चयनम्: आवृत्तिभेदस्य दर्शनाय अग्रे प्रदत्ता रेडियोमञ्जूषा नुद्यताम्, एण्टर्-कुड्मलं नुद्यताम्, अधः दत्तं कुड्मलं वा नुद्यताम् । <br />
 इतिहासः: (सद्योजातम्) = नूतनासु आवृत्तिषु भेदः, 
 (पूर्वतनम्) = पूर्वतनासु आवृत्तिषु भेदः, (लघु) = लघु परिवर्तनम्',
-'history-fieldset-title' => 'सà¥\81à¤\97मनसà¥\8dय(बà¥\8dराà¤\89सà¥\8d à¤\87तà¥\8dयसà¥\8dय) इतिहासः',
-'history-show-deleted' => 'à¤\95à¥\87वलमà¥\8d à¤µà¤¿à¤²à¥\8bपित',
+'history-fieldset-title' => 'à¤\97वà¥\87षणसà¥\8dय (browser) इतिहासः',
+'history-show-deleted' => 'मातà¥\8dरमà¥\8d à¤\85पाà¤\95à¥\83तमà¥\8d',
 'histfirst' => 'पुरातनतमम्',
 'histlast' => 'नूतनतमम्',
 'historysize' => '({{PLURAL:$1|1 बैटम्|$1 बैटानि}})',
@@ -1091,7 +1093,7 @@ $2
 # Revision feed
 'history-feed-title' => 'आवर्तनेतिहासः',
 'history-feed-description' => 'विक्याम् अस्य पृष्ठस्य आवर्तनेतिहासः',
-'history-feed-item-nocomment' => '$2 मध्ये $1',
+'history-feed-item-nocomment' => '$1 द्वारा $3 दिनाङ्के $4 समये',
 'history-feed-empty' => 'याचितं पृष्ठं न विद्यते।
 इदं विकितः अपाकृतम् अथवा पुनर्नामितं स्यात्।
 सम्बन्धितानि नूतनानि पृष्ठाणि सम्प्राप्तुं [[Special:Search|विक्याम् अन्वेषणं]] करोतु।',
@@ -1116,7 +1118,7 @@ You can still [$1 view this revision]',
 You can still [$1 view this revision]",
 'rev-deleted-diff-view' => 'एतस्मात् अन्तरतः किञ्चिदवतरणं परिमार्जितम् । एतदन्तरं दृष्टुं शक्नुवन्ति । विवरणम् [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} हटाने की लॉग]',
 'rev-suppressed-diff-view' => 'अस्मिन्नन्तरे किञ्चिदवतरणं सङ्गुपतम् । तदन्तरम् अत्र दृष्टुं शक्नुवन्ति । [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].',
-'rev-delundel' => 'दरà¥\8dशà¥\8dयनà¥\8dतामà¥\8d/à¤\97à¥\8bपà¥\8dयनà¥\8dताम्',
+'rev-delundel' => 'दà¥\83शà¥\8dयतामà¥\8d/à¤\97à¥\8bपà¥\8dयताम्',
 'rev-showdeleted' => 'दर्श्यताम्',
 'revisiondelete' => 'अवतरणं परिमार्जयतु/पुनस्थापयतु',
 'revdelete-nooldid-title' => 'लक्ष्यरूपा आवृत्तिः अमान्याऽस्ति।',
@@ -1126,8 +1128,6 @@ You can still [$1 view this revision]",
 'revdelete-show-file-submit' => 'आम्',
 'revdelete-selected' => "'''{{PLURAL:$2|Selected revision|Selected revisions}} of [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Selected log event|Selected log events}}:'''",
-'revdelete-text' => "'''परिमार्जितानि अवतरणानि पुटेतिहासे अद्यापि दृश्यन्ते । तस्य कश्चन भागः सार्वजनिकः न भवति । '''
-{{SITENAME}} इत्यस्य अन्यप्रशसासकः गुप्तसामग्रीः प्राप्नुवन्ति । अपि च अन्तरापुटेन अस्य अपरिमार्जनं कर्तुं शक्नुवन्ति । यावत् अतिरिक्तप्रतिबन्धकाः न स्थापिताः ।",
 'revdelete-confirm' => 'भवान् एतत् कार्यं करोति इति दढयतु । भवान् अस्य परिणामं जानाति । [[{{MediaWiki:Policy-url}}|the policy]] भवान् एतदनुसारं करोति ।',
 'revdelete-suppress-text' => 'अधोनिदेशितपरिस्थितिषु केवलं निग्रहः कार्यः । 
 * अवमाननीयाः विषयाः ।
@@ -1151,7 +1151,7 @@ You can still [$1 view this revision]",
 'revdelete-failure' => 'अवतरणदृश्यता उन्नतीकरणं न शक्यते ।$1',
 'logdelete-success' => 'नामाङ्कनदृश्यता साफल्येन योजिता ।',
 'logdelete-failure' => 'नामाभिलेखदृश्यता सपला नाभवत् । $1',
-'revdel-restore' => 'दà¥\83षà¥\8dà¤\9fिविषयà¤\83 परिवर्त्यताम्',
+'revdel-restore' => 'दà¥\83शà¥\8dयता परिवर्त्यताम्',
 'pagehist' => 'पृष्ठस्य इतिहासः',
 'deletedhist' => 'परिमार्जितेतिहासः ।',
 'revdelete-hide-current' => '$2 $1 दिनाङ्कितस्य गोपने दोषः । एतत् प्रकृतावतरणम्, एतत् न गोपनीयम् ।',
@@ -1205,49 +1205,51 @@ You can still [$1 view this revision]",
 'mergelogpagetext' => 'अतिनूतनविलीनस्य आवली अधो दत्ता यस्य इतिहासः अन्यस्मिन् अस्ति ।',
 
 # Diffs
-'history-title' => '"$1" à¤\87तà¥\8dयà¥\87तसà¥\8dय à¤\86वरà¥\8dतनà¥\87तिहासà¤\83 :',
+'history-title' => '"$1" इत्यस्य आवर्तनेतिहासः :',
 'difference-title' => '"$1" इत्यस्य अवतरणमध्ये व्यत्यासः ।',
 'difference-title-multipage' => '"$1" तथा "$2" पुटयोः मध्ये व्यत्यासः ।',
 'difference-multipage' => 'पुटेषु व्यत्यासः ।',
-'lineno' => 'पà¤\82क्तिः $1:',
+'lineno' => 'पà¤\99à¥\8dक्तिः $1:',
 'compareselectedversions' => 'चितानाम् आवृत्तीनां तोलनं क्रियताम्',
 'showhideselectedversions' => 'चितावतरणानि दर्शयतु/गोपयतु ।',
-'editundo' => 'निषà¥\8dà¤\95à¥\8dरियताम्',
+'editundo' => 'पà¥\82रà¥\8dववत्',
 'diff-multi-manyusers' => '({{PLURAL:$2|योजकेन|$2 योजकैः}} कृता {{PLURAL:$1|मध्यमा आवृत्तिः|$1 मध्यमा आवृत्तयः}} न दर्शिताः ।)',
 'difference-missing-revision' => '{{PLURAL:$2|One revision|$2 पुनरावृत्तेः }} व्यत्यासः ($1) {{PLURAL:$2|was|were}} न दृष्टः ।
 कारणम् अत्र दृश्यते । [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} deletion log].',
 
 # Search results
-'searchresults' => 'à¤\85नà¥\8dवà¥\87षणसà¥\8dय à¤«à¤²à¤¿à¤¤à¤¾à¤¨à¤¿',
-'searchresults-title' => '"$1" à¤\87तà¥\8dयसà¥\8dय à¤\95à¥\83तà¥\87 à¤\85नà¥\8dवà¥\87षणफलानि',
+'searchresults' => 'à¤\85नà¥\8dवà¥\87षणपरिणामाà¤\83',
+'searchresults-title' => '"$1" à¤\95à¥\83तà¥\87 à¤\85नà¥\8dवà¥\87षणपरिणामाà¤\83',
 'toomanymatches' => 'अत्यधिकाः मेलाः प्रत्यागताः । अन्यप्रश्नेन यतताम् ।',
 'titlematches' => 'पुटशीर्षिकामेलाः ।',
 'textmatches' => 'पुटपाठस्य मेलाः',
 'notextmatches' => 'न कस्यापि पृष्ठस्य पाठः अस्य सममस्ति',
-'prevn' => 'पà¥\8dराà¤\95à¥\8dतनानि {{PLURAL:$1|$1}}',
-'nextn' => 'à¤\85à¤\97à¥\8dरिमाणि {{PLURAL:$1|$1}}',
-'prevn-title' => 'पà¥\8dराà¤\95à¥\8dतन-{{PLURAL:$1|फलितमà¥\8d| à¤«à¤²à¤¿à¤¤à¤¾à¤¨à¤¿}}',
-'nextn-title' => 'पà¥\8dराà¤\95à¥\8dतन-{{PLURAL:$1|फलितमà¥\8d| à¤«à¤²à¤¿à¤¤à¤¾à¤¨à¤¿}}',
+'prevn' => 'पà¥\81रसà¥\8dतातà¥\8d {{PLURAL:$1|$1}}',
+'nextn' => 'परसà¥\8dतातà¥\8d {{PLURAL:$1|$1}}',
+'prevn-title' => 'पà¥\81रसà¥\8dतातà¥\8d {{PLURAL:$1|परिणामà¤\83|परिणामाà¤\83}}',
+'nextn-title' => 'परसà¥\8dतातà¥\8d {{PLURAL:$1|परिणामà¤\83|परिणामाà¤\83}}',
 'shown-title' => 'प्रत्येकस्मिन् पृष्ठे $1 {{PLURAL:$1|फलितम्|फलितानि}} दर्श्यताम्',
 'viewprevnext' => 'दर्श्यताम् ($1 {{int:pipe-separator}} $2) ($3)',
-'searchmenu-exists' => 'अस्मिन् विकिमध्ये "[[:$1]]"नामकं पृष्ठं विद्यते।',
-'searchmenu-new' => "'''अस्यां विक्यां \"[[:\$1]]\" इति पृष्ठं सृज्यताम्!'''",
-'searchprofile-articles' => 'आन्तर्यम्',
-'searchprofile-project' => 'सहायता प्रकल्पपृष्ठानि च',
-'searchprofile-images' => 'बहुमाध्यमः',
+'searchmenu-exists' => "'''विकि-जालस्थानेऽस्मिन् \"[[:\$1]]\" नामकं पृष्ठं विद्यते । '''",
+'searchmenu-new' => '<strong> अस्मिन् विकिजालस्थाने "[[:$1]]" इदं पृष्ठं सृज्यताम् ।
+</strong>
+{{PLURAL:$2|0=|तव अन्वेषणस्य परिणामोपि दृश्यताम् ।|तव अन्वेषणस्य परिणामाः अपि दृश्यन्ताम्}}',
+'searchprofile-articles' => 'आन्तर्विषकं पृष्ठं',
+'searchprofile-project' => 'साहाय्यं, प्रकल्पपृष्ठानि च',
+'searchprofile-images' => 'माध्यमसमुच्चयः',
 'searchprofile-everything' => 'सर्वम्',
 'searchprofile-advanced' => 'प्रगतम्',
 'searchprofile-articles-tooltip' => '$1 स्थले अन्विष्यताम्',
 'searchprofile-project-tooltip' => '$1 स्थले अन्विष्यताम्',
 'searchprofile-images-tooltip' => 'सञ्चिका अन्विष्यताम्',
 'searchprofile-everything-tooltip' => '(चर्चापृष्ठानि अविहाय) सर्वत्र अन्विष्यताम्',
-'searchprofile-advanced-tooltip' => 'विशà¥\87षनामसà¥\8dथानेषु अन्विष्यताम्',
+'searchprofile-advanced-tooltip' => 'नामाà¤\95ाशेषु अन्विष्यताम्',
 'search-result-size' => '$1 ({{PLURAL:$2|1 शब्दः|$2 शब्दाः}})',
-'search-result-category-size' => '{{PLURAL:$1|1 à¤¸à¤¦à¤¸à¥\8dयà¤\83|$1 à¤¸à¤¦à¤¸à¥\8dयाà¤\83}} ({{PLURAL:$2|1 à¤\89पवरà¥\8dà¤\97à¤\83|$2 à¤\89पर्गाः}}, {{PLURAL:$3|1 सञ्चिका|$3 सञ्चिकाः}})',
+'search-result-category-size' => '{{PLURAL:$1|1 à¤¯à¥\8bà¤\9cà¤\95à¤\83|$1 à¤¯à¥\8bà¤\9cà¤\95ाà¤\83}} ({{PLURAL:$2|1 à¤\89पवरà¥\8dà¤\97à¤\83|$2 à¤\89पवर्गाः}}, {{PLURAL:$3|1 सञ्चिका|$3 सञ्चिकाः}})',
 'search-result-score' => 'सम्बन्धः $1% ।',
-'search-redirect' => '($1 à¤\87तà¥\8dयतà¥\8dर अनुप्रेषितम्)',
+'search-redirect' => '($1 à¤¤à¤\83 अनुप्रेषितम्)',
 'search-section' => '(विभागः $1)',
-'search-suggest' => 'किं भवतः आशयः एवमस्ति : $1',
+'search-suggest' => 'किं भवतः/भवत्याः आशयः एवमस्ति : $1',
 'search-interwiki-caption' => 'बन्धु-प्रकल्पाः',
 'search-interwiki-default' => '$1 परिणामाः :',
 'search-interwiki-more' => '(अधिकानि)',
@@ -1257,8 +1259,8 @@ You can still [$1 view this revision]",
 'searchall' => 'सर्वाणि',
 'showingresults' => "निम्नगतक्रमाङ्कस्य '''$2''' तः आरभ्य अधिकतमं परिणामः'''$1''' {{PLURAL:$1| दर्शितः}}।",
 'showingresultsnum' => "निम्नगतक्रमाङ्क'''$2'''तः आरभ्य अधिकतमः '''$3''' परिणामः {{PLURAL:$3|दर्शितः}}।",
-'showingresultsheader' => "'''$4''' à¤\87तà¥\8dयà¥\87तसà¥\8dय {{PLURAL:$5|'''$3'''सà¥\8dय '''$1'''  à¤«à¤²à¤¿à¤¤à¤®à¥\8d|'''$3'''सà¥\8dय '''$1 - $2'''  à¤«à¤²à¤¿à¤¤à¤¾à¤¨à¤¿}}",
-'search-nonefound' => 'भवतः अपेक्षानुगुणं फलितं न किमपि विद्यते ।',
+'showingresultsheader' => "'''$4''' à¤\87तà¥\8dयà¥\87तसà¥\8dमà¥\88 {{PLURAL:$5|'''$1''' à¤ªà¤°à¤¿à¤£à¤¾à¤®à¤\83 '''$3''' à¤\87तà¥\8dयà¥\87षà¥\81|'''$1 - $2''' à¤ªà¤°à¤¿à¤£à¤¾à¤®à¤¾à¤\83 '''$3''' à¤\87तà¥\8dयà¥\87षà¥\81}}",
+'search-nonefound' => 'भवतः/भवत्याः अपेक्षानुगुणं परिणामः न विद्यते ।',
 'powersearch-legend' => 'प्रगतम् अन्वेषणम्',
 'powersearch-ns' => 'नामाकाशेषु अन्विष्यताम्:',
 'powersearch-redir' => 'अनुप्रेषणानां सूचिका दर्श्यताम्',
@@ -1272,7 +1274,7 @@ You can still [$1 view this revision]",
 
 # Preferences page
 'preferences' => 'इष्टतमानि',
-'mypreferences' => 'मम à¤\87षà¥\8dà¤\9fतमानि',
+'mypreferences' => 'इष्टतमानि',
 'prefs-edits' => 'सम्पादनानां सख्याः',
 'prefs-skin' => 'त्वक्',
 'skin-preview' => 'प्राग्दृश्यम्',
@@ -1335,12 +1337,12 @@ You can still [$1 view this revision]",
 'prefs-common-css-js' => 'सर्वावरणानां कृते विभक्त सि.एस्.एस्./ जावालिपिः ।',
 'prefs-reset-intro' => 'आद्यतानां पुनर्निदेशार्थम् एतत्पुटम् उपयोक्तुं शकोति । एतत् अकृतं न भवति ।',
 'prefs-emailconfirm-label' => 'विद्युन्मानसङ्केतस्य दृढीकरणम् ।',
-'youremail' => 'ईपत्रसङ्केतः',
+'youremail' => 'ई-पत्रसङ्केतः',
 'username' => 'योजकनामन्:',
 'uid' => 'प्रयोक्तृ-क्रमांकः :',
 'prefs-memberingroups' => '{{PLURAL:$1|समूहस्य|समूहानां}}  सदस्यः:',
 'prefs-registration' => 'पंजीकरण कालः:',
-'yourrealname' => 'वासà¥\8dतविà¤\95à¤\82 à¤¨à¤¾à¤®:',
+'yourrealname' => 'वास्तविकनाम:',
 'yourlanguage' => 'भाषा:',
 'yourvariant' => 'भाषासामग्रीणां संस्करणम् ।',
 'prefs-help-variant' => ' विक्यां प्रदर्शितुं भवति ।',
@@ -1358,9 +1360,9 @@ You can still [$1 view this revision]",
 'email' => 'विद्युत्पत्रव्यवस्था',
 'prefs-help-realname' => 'निजनामधेयस्य उल्लेखः आवश्यकः नास्ति । 
 यदि ददाति तर्हि अस्य प्रयोगः भवतः योगदानार्थं भवते श्रेयं दातुम् उपयुक्तः भवति ।',
-'prefs-help-email' => 'ईपत्रसङ्केतः अनिवार्यः नास्ति । किन्तु कूटशब्दः विस्मर्यते चेत् तस्य परिवर्तनाय अवश्यकः भवति ।',
-'prefs-help-email-others' => 'à¤\85नà¥\8dयà¥\87 à¤¯à¥\8bà¤\9cà¤\95ाà¤\83 à¤\88पतà¥\8dरमाधà¥\8dयमà¥\87न à¤­à¤µà¤¤à¤\83 à¤¸à¤®à¥\8dपरà¥\8dà¤\95à¤\82 à¤¯à¤¥à¤¾ à¤\95à¥\81रà¥\8dयà¥\81à¤\83 à¤¤à¤¥à¤¾ à¤­à¤µà¤¦à¥\80यà¥\87 à¤¯à¥\8bà¤\9cà¤\95पà¥\83षà¥\8dठà¥\87 à¤¸à¤®à¥\8dभाषणपà¥\83षà¥\8dठà¥\87 à¤µà¤¾ à¤¸à¤®à¥\8dपरà¥\8dà¤\95तनà¥\8dतà¥\81à¤\83 à¤¯à¥\8bà¤\9cयितà¥\81à¤\82 à¤¶à¤\95à¥\8dयः ।
-भवतà¤\83 à¤¸à¤®à¥\8dपरà¥\8dà¤\95à¤\82 à¤\95à¥\83तवदà¥\8dभिà¤\83 à¤¯à¥\8bà¤\9cà¤\95à¥\88à¤\83 à¤­à¤µà¤¦à¥\80यà¤\83 à¤\88पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तà¤\83 à¤\85भिà¤\9cà¥\8dà¤\9eातà¤\83 à¤¨ à¤­à¤µति ।',
+'prefs-help-email' => 'ई-पत्रसङ्केतः अनिवार्यः नास्ति । किन्तु कूटशब्दः विस्मर्यते चेत् तस्य परिवर्तनाय अवश्यकः भवति ।',
+'prefs-help-email-others' => 'यà¥\8bà¤\9cà¤\95पà¥\83षà¥\8dठ-समà¥\8dभाषणपà¥\83षà¥\8dठयà¥\8bà¤\83 à¤®à¤¾à¤§à¥\8dयमà¥\87न,  à¤\88-पतà¥\8dरमाधà¥\8dयमà¥\87न à¤µà¤¾ à¤\85नà¥\8dयà¥\87 à¤¯à¥\8bà¤\9cà¤\95ाà¤\83 à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤¸à¤®à¥\8dपरà¥\8dà¤\95à¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dनà¥\81यà¥\81ः ।
+समà¥\8dपरà¥\8dà¤\95à¥\87ऽसà¥\8dमिनà¥\8d à¤­à¤µà¤¤à¤\83/भवतà¥\8dयाà¤\83 à¤\88-पतà¥\8dरसà¤\99à¥\8dà¤\95à¥\87तमà¥\8d à¤\85नà¥\8dययà¥\8bà¤\9cà¤\95ाà¤\83 à¤\9cà¥\8dà¤\9eातà¥\81à¤\82 à¤¨ à¤ªà¥\8dरभवतनà¥\8dति ।',
 'prefs-help-email-required' => 'विद्युन्मानपत्रसङ्केतः आवश्यकः ।',
 'prefs-info' => 'मूलसूचनाः ।',
 'prefs-i18n' => 'अन्ताराष्ट्रिकरणम् ।',
@@ -1536,27 +1538,27 @@ You can still [$1 view this revision]",
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|परिवर्तनम्|परिवर्तनानि}}',
-'recentchanges' => 'सदà¥\8dयà¥\8bà¤\9cातानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि',
+'recentchanges' => 'सद्यपरिवर्तनानि',
 'recentchanges-legend' => 'सद्योजातानां परिवर्तनानां विकल्पाः',
-'recentchanges-summary' => 'अस्मिन् विकियोजनायां सद्योजातानि परिवर्तनानि दर्श्यन्ताम्',
-'recentchanges-feed-description' => 'अस्मिन् विकियोजनायां सद्योजातानि परिवर्तनानि दर्श्यन्ताम्',
-'recentchanges-label-newpage' => 'à¤\8fतसà¥\8dमातà¥\8d à¤¸à¤®à¥\8dपादनातà¥\8d à¤¨à¥\82तनà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¥\83षà¥\8dà¤\9fमसà¥\8dति',
+'recentchanges-summary' => 'अस्मिन् विकि-प्रकल्पे सद्योजातानि परिवर्तनानि दृश्यन्ताम्',
+'recentchanges-feed-description' => 'अस्मिन् विकि-प्रकल्पे सद्योजातानि परिवर्तनानि दर्श्यन्ताम्',
+'recentchanges-label-newpage' => 'à¤\85नà¥\87न à¤¸à¤®à¥\8dपादनà¥\87न à¤¨à¥\82तनपà¥\83षà¥\8dठसà¥\8dय à¤°à¤\9aना à¤\85भà¥\82तà¥\8d à¥¤',
 'recentchanges-label-minor' => 'इदं लघु परिवर्तनम्',
-'recentchanges-label-bot' => 'à¤\8fतदà¥\8d à¤¯à¤¨à¥\8dतà¥\8dरà¥\87ण à¤\95à¥\83तà¤\82 à¤¸à¤®à¥\8dपादनमà¥\8d à¤\86सà¥\80त्',
-'recentchanges-label-unpatrolled' => 'à¤\8fतदà¥\8d à¤¸à¤®à¥\8dपादनमà¥\8d à¤\8fतावता à¤ªà¤°à¤¿à¤¶à¥\80लितà¤\82 à¤¨à¤¾à¤¸à¥\8dति ।',
-'rcnotefrom' => "अधः '''$2''' तः  ('''$1''' पर्यन्तं) परिवर्तनानि दर्शितानि सन्ति ।",
-'rclistfrom' => '$1 à¤¤à¤\83 à¤\9cातानि à¤¨à¥\82तनानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¦à¤°à¥\8dशà¥\8dयताम्',
-'rcshowhideminor' => '$1 à¤²à¤\98à¥\82नि सम्पादनानि',
+'recentchanges-label-bot' => 'बà¥\8bà¤\9fà¥\8d-दà¥\8dवारा à¤\95à¥\83तà¤\82 à¤¸à¤®à¥\8dपादनमà¥\87तत्',
+'recentchanges-label-unpatrolled' => 'à¤\8fतावता à¤\85सà¥\8dय à¤¸à¤®à¥\8dपादनसà¥\8dय à¤ªà¤°à¤¿à¤¶à¥\80लिनà¤\82 à¤¨à¤¾à¤­à¥\82तà¥\8d ।',
+'rcnotefrom' => '<strong>$2</strong> तः आरभ्य (<strong>$1</strong> पर्यन्तं) जातानि परिवर्तनानि अधः प्रदर्शिता ।',
+'rclistfrom' => '$1 à¤ªà¤¶à¥\8dà¤\9aातà¥\8d à¤\9cातानि à¤¨à¥\82तनानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¦à¥\83शà¥\8dयनà¥\8dताम्',
+'rcshowhideminor' => '$1 à¤²à¤\98à¥\81सम्पादनानि',
 'rcshowhidebots' => '$1 बोट् इत्येतानि',
-'rcshowhideliu' => '$1 à¤ªà¥\8dरविषà¥\8dà¤\9fाः योजकाः',
+'rcshowhideliu' => '$1 à¤ªà¤\9eà¥\8dà¤\9cà¥\80à¤\95à¥\83ताः योजकाः',
 'rcshowhideanons' => 'अनामकाः योजकाः $1',
 'rcshowhidepatr' => '$1 ईक्षितसम्पादनानि',
 'rcshowhidemine' => '$1 मम सम्पादनानि',
-'rclinks' => 'à¤\85नà¥\8dतिमानि $1 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤\85नà¥\8dतिमà¥\87षà¥\81 $2 à¤¦à¤¿à¤¨à¥\87षà¥\81, à¤¦à¥\83शà¥\8dयतामà¥\8d<br />$3',
+'rclinks' => 'à¤\85नà¥\8dतिमà¥\87षà¥\81 $2 à¤¦à¤¿à¤¨à¥\87षà¥\81 à¤\9cातानि à¤\85नà¥\8dतिमानि $1 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¦à¥\83शà¥\8dयनà¥\8dतामà¥\8d <br />$3',
 'diff' => 'भेदः',
 'hist' => 'इतिहासः',
 'hide' => 'गोप्यताम्',
-'show' => 'दरà¥\8dश्यताम्',
+'show' => 'दà¥\83श्यताम्',
 'minoreditletter' => '(लघु)',
 'newpageletter' => '(नवीनम्)',
 'boteditletter' => '(बोट्)',
@@ -1565,7 +1567,7 @@ You can still [$1 view this revision]",
 'rc_categories_any' => 'कश्चित्',
 'rc-change-size-new' => '$1 {{PLURAL:$1|byte|bytes}} परिवर्तनपश्चात् ।',
 'newsectionsummary' => '/* $1 */ नवीन विभागः',
-'rc-enhanced-expand' => 'विवरणानि à¤¦à¤°à¥\8dशà¥\8dयनà¥\8dतामà¥\8d (à¤\9cावालिपिà¤\83 à¤\85पà¥\87à¤\95à¥\8dषà¥\8dयतà¥\87)',
+'rc-enhanced-expand' => 'विवरणानि à¤¦à¥\83शà¥\8dयनà¥\8dतामà¥\8d',
 'rc-enhanced-hide' => 'विवरणानि गोप्यन्ताम्',
 'rc-old-title' => 'मूलरूपेण $1 इति रचितम् ।',
 
@@ -1574,10 +1576,10 @@ You can still [$1 view this revision]",
 'recentchangeslinked-feed' => 'पृष्ठ-सम्बन्धितानि परिवर्तनानि',
 'recentchangeslinked-toolbox' => 'पृष्ठसम्बद्धानि परिवर्तनानि',
 'recentchangeslinked-title' => '"$1" इत्यस्मिन् जातानि परिवर्तनानि',
-'recentchangeslinked-summary' => "à¤\8fषा à¤µà¤¿à¤¶à¥\87षपà¥\83षà¥\8dठसमà¥\8dबदà¥\8dधà¥\87षà¥\81 à¤ªà¥\84षà¥\8dठà¥\87षà¥\81 à¤\85थवा à¤µà¤°à¥\8dà¤\97विशà¥\87षà¥\87 à¤\85नà¥\8dतरà¥\8dभà¥\82तà¥\87षà¥\81 à¤ªà¥\83षà¥\8dठà¥\87षà¥\81 à¤¸à¤¦à¥\8dयà¥\8bà¤\9cातानाà¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानामà¥\8d à¤\86वलिà¤\83
+'recentchangeslinked-summary' => "विशà¥\87षपà¥\83षà¥\8dठà¥\87षà¥\81 à¤µà¤°à¥\8dà¤\97ानà¥\8dतरà¥\8dà¤\97तपà¥\83षà¥\8dठà¥\87षà¥\81 à¤µà¤¾ à¤¸à¤¦à¥\8dयà¥\8bà¤\9cातानाà¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानामà¥\8d à¤\8fषा à¤\86वलिà¤\83 
 
-[[Special:Watchlist|भवतः अवेक्षणसूच्यां]] विद्यमानानि पृष्ठानि '''स्थूलाक्षरैः''' दर्शितानि।",
-'recentchangeslinked-page' => 'पृष्ठ-नाम :',
+[[Special:Watchlist|भवतः/भवत्याः अवेक्षणावलिः]] अत्र विद्यमानानि पृष्ठानि '''स्थूलाक्षरैः''' दर्शितानि।",
+'recentchangeslinked-page' => 'पृष्ठनाम:',
 'recentchangeslinked-to' => 'अस्मिन् स्थाने अस्य पृष्ठस्य संबद्धानां पृष्ठानां परिवर्तनानि दर्श्यन्ताम्',
 
 # Upload
@@ -1602,11 +1604,11 @@ To include a file in a page, use a link in one of the following forms:
 'upload-preferred' => 'अनुमतसञ्चिकाभेदाः $1.',
 'upload-prohibited' => 'अनुमतसञ्चिकाभेदाः $1.',
 'uploadlog' => 'उत्तरणस्य सूची ।',
-'uploadlogpage' => 'à¤\86रà¥\8bपितानाà¤\82 à¤¸à¥\82à¤\9aà¥\80',
+'uploadlogpage' => 'à¤\89पारà¥\8bहिताऽऽवलिà¤\83 (Upload log)',
 'uploadlogpagetext' => 'अधः सद्यः काले उत्तारितसञ्चिकानाम् आवली अस्ति ।
 अधिकदृश्यविवरणार्थम् एतत् पश्यतु [[Special:NewFiles|gallery of new files]]',
 'filename' => 'सञ्चिकानाम',
-'filedesc' => 'सारांशः :',
+'filedesc' => 'सारांशः',
 'fileuploadsummary' => 'संग्रहः :',
 'filereuploadsummary' => 'सञ्चिकापरिवर्तनानि ।',
 'filestatus' => 'प्रतिकृत्यधिकारस्य स्थितिः ।',
@@ -1669,7 +1671,7 @@ To include a file in a page, use a link in one of the following forms:
 'uploadwarning' => 'उत्तारणस्य पूर्वसूचना ।',
 'uploadwarning-text' => 'अधो दत्तं सञ्चिकाविवरणं संस्कृत्य पुनः यतताम् ।',
 'savefile' => 'सञ्चिकां संरक्षतु ।',
-'uploadedimage' => '"[[$1]]" à¤\87तà¥\8dयà¥\87तदà¥\8d à¤\86रà¥\8bपितमसà¥\8dति',
+'uploadedimage' => '"[[$1]]" à¤\89पारà¥\8bहितानि (uploaded)',
 'overwroteimage' => '"[[$1]]" इत्यस्य नूतनावतरणम् उत्तारयतु ।',
 'uploaddisabled' => 'सक्रियम् उत्तारयतु ।',
 'copyuploaddisabled' => 'निष्क्रियतः यु.आर्.एल् तः उत्तारयतु  ।',
@@ -1835,34 +1837,34 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 # File description page
 'file-anchor-link' => 'सञ्चिका',
 'filehist' => 'सञ्चिकायाः इतिहासः',
-'filehist-help' => 'सà¤\9eà¥\8dà¤\9aिà¤\95ा à¤¤à¤¤à¥\8dसमयà¥\87 à¤\95à¥\80दà¥\83शà¥\80 à¤\86सà¥\80दिति à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¦à¤¿à¤¨à¤¾à¤\82कः/समयः नुद्यताम् ।',
+'filehist-help' => 'सà¤\9eà¥\8dà¤\9aिà¤\95ा à¤¤à¤¤à¥\8dसमयà¥\87 à¤\95à¥\80दà¥\83शà¥\80 à¤\86सà¥\80दिति à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¦à¤¿à¤¨à¤¾à¤\99à¥\8dकः/समयः नुद्यताम् ।',
 'filehist-deleteall' => 'सर्वान् परिमर्जतु ।',
 'filehist-deleteone' => 'विलोप',
-'filehist-revert' => 'पà¥\8dरतिनिवरà¥\8dतà¥\8dयताम्',
-'filehist-current' => 'सदà¥\8dयà¥\8bà¤\9cातमà¥\8d',
+'filehist-revert' => 'पà¥\8dरतà¥\8dयावरà¥\8dतनम्',
+'filehist-current' => 'वरà¥\8dतमानà¤\83',
 'filehist-datetime' => 'दिनाङ्कः/समयः',
-'filehist-thumb' => 'à¤\85à¤\82à¤\97à¥\81षà¥\8dठनà¤\96ाà¤\95ारमà¥\8d',
-'filehist-thumbtext' => '$1 à¤¸à¤®à¤¯à¥\87 à¤µà¤¿à¤¦à¥\8dयमानायाà¤\83 à¤\86वà¥\83तà¥\8dतà¥\87à¤\83 à¤\85à¤\82à¤\97à¥\81षà¥\8dठनà¤\96ाà¤\95ारमà¥\8d',
+'filehist-thumb' => 'लà¤\98à¥\8dवाà¤\95à¥\83तिà¤\83',
+'filehist-thumbtext' => '$1 à¤\87तà¥\8dयसà¥\8dय à¤¸à¤\82सà¥\8dà¤\95रणसà¥\8dय à¤²à¤\98à¥\81सà¥\8dवरà¥\82पमà¥\8d à¥¤',
 'filehist-nothumb' => 'अङ्गुष्टनखाकारकं नाश्ति ।',
 'filehist-user' => 'योजकः',
 'filehist-dimensions' => 'आयामाः',
 'filehist-filesize' => 'सञ्चिकाकारः ।',
 'filehist-comment' => 'टिप्पणी',
 'filehist-missing' => 'सञ्चिका विनष्टा ।',
-'imagelinks' => 'सà¤\82à¤\9aिà¤\95ा à¤¯à¤¤à¥\8dर à¤\89पयà¥\81à¤\95à¥\8dता',
-'linkstoimage' => '{{PLURAL:$1|अधोलिखितं पृष्ठं| अधोलिखितानि $1 पृष्ठाणि}} इदं संचिकां प्रति संबंधनं {{PLURAL:$1|करोति| कुर्वन्ति}}।',
+'imagelinks' => 'सà¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83 à¤\89पयà¥\8bà¤\97à¤\83',
+'linkstoimage' => '{{PLURAL:$1|अधो निर्दिष्टपृष्ठस्य परिसन्धयः|$1 अधो निर्दिष्टपृष्ठानां परिसन्धिः} अत्र {{PLURAL:$1|संलग्नाः सन्ति|सल्लग्ना अस्ति}} :',
 'linkstoimage-more' => '{{PLURAL:$1|$1}} तः अधिकपुटानि अस्यां सञ्चिकायां योज्यन्ते । 
 अधोनिदेशितसूची सञ्चिकाभिः योजनीयपुटानि पश्यति ।{{PLURAL:$1|$1 पृष्ठ|$1 पृष्ठ}} 
 [[Special:WhatLinksHere/$2|पूर्णसूची]] अपि लभ्यते ।',
-'nolinkstoimage' => 'à¤\8fतद à¤\9aितà¥\8dरातà¥\8d à¤¨ à¤ªà¥\83षà¥\8dठा à¤¸à¤®à¥\8dबदà¥\8dधà¤\82 à¤\95रà¥\8bनà¥\8dति।',
+'nolinkstoimage' => 'à¤\85नया à¤¸à¤\9eà¥\8dà¤\9aिà¤\95या à¤¸à¤¹ à¤¨ à¤\95िमपि à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤²à¥\8dलà¤\97à¥\8dनमà¥\8d à¤\85सà¥\8dति',
 'morelinkstoimage' => ' [[Special:WhatLinksHere/$1|more links]] मध्ये सञ्चिकामवलोकयतु ।',
 'linkstoimage-redirect' => '$1 (सञ्चिका पुनर्निदेशिता) $2',
 'duplicatesoffile' => 'अधो निदेशितसञ्चिका द्विप्रतिः । {{PLURAL:$1|}} विशेषविवरणार्थम् अत्र प्रविशतु । [[Special:FileDuplicateSearch/$2|more details]]',
 'sharedupload' => 'इयं संचिका $1 इत्यस्मादस्ति, एषा खलु अन्येष्वपि प्रकल्पेषु प्रयोक्तुं शक्यते।',
 'sharedupload-desc-there' => 'एषा सञ्चिका $1 तथा अन्यप्रकल्पेन च उपयुक्ता ।
 इत्योप्यतिशयसूचनार्थं $2 सञ्चिकाविवरणपुटं पश्यतु ।',
-'sharedupload-desc-here' => 'एषा सञ्चिका $1 इत्यतः उद्धृता अन्यासु योजनासु उपयोगार्हा ।
-à¤\85सà¥\8dयाà¤\83 à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83  [$2 à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ाविवरणपà¥\83षà¥\8dठमà¥\8d] à¤\87तà¥\8dयतà¥\8dर à¤\89पलभà¥\8dयमानà¤\82 à¤µà¤¿à¤µà¤°à¤£à¤®à¥\8d à¤\85धà¥\8bलिà¤\96ितà¤\82 à¤¯à¤¥à¤¾ ।',
+'sharedupload-desc-here' => '$1 इत्यतः उद्धृता एषा सञ्चिका अन्येषु प्रकल्पेषु उपयोगार्हा ।
+à¤\85सà¥\8dयाà¤\83 à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83  [$2 à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ाविवरणपà¥\83षà¥\8dठमà¥\8d] à¤\87तà¥\8dयतà¥\8dर à¤\89पलभà¥\8dयमानà¤\82 à¤µà¤¿à¤µà¤°à¤£à¤®à¥\8d à¤\85धà¥\8bलिà¤\96ितà¤\82 à¤µà¤°à¥\8dततà¥\87 ।',
 'sharedupload-desc-edit' => '    एषा सञ्चिका $1 इत्यतः उद्धृता अन्यासु योजनासु उपयोगार्हा । 
 अस्याः सञ्चिकायाः [$2 सञ्चिकाविवरणपृष्ठम्] इत्यत्र उपलभ्यमानं विवरणम् अधोलिखितं यथा ।',
 'sharedupload-desc-create' => 'एषा सञ्चिका $1 इत्यतः उद्धृता अन्यासु योजनासु उपयोगार्हा । 
@@ -1924,7 +1926,7 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'unusedtemplateswlh' => 'अन्यानुबन्धाः ।',
 
 # Random page
-'randompage' => 'यादृच्छिकपृष्ठम्',
+'randompage' => '‎अशृङ्खलं (random) पृष्ठं',
 'randompage-nopages' => 'अधोनिदेशितनामस्थाने पुटानि न सन्ति । {{PLURAL:$2| एतन्नमस्थाने}} नास्ति : $1।',
 
 # Random redirect
@@ -1932,7 +1934,7 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'randomredirect-nopages' => '$1नामस्थाने चालनानि न सन्ति ।',
 
 # Statistics
-'statistics' => 'सà¥\8dथितिà¤\97णितमà¥\8d',
+'statistics' => 'साà¤\99à¥\8dà¤\96à¥\8dयà¤\95à¥\80',
 'statistics-header-pages' => 'पुटसाङ्ख्यिकाः ।',
 'statistics-header-edits' => 'सङ्ख्यिकाः सम्पादयतु ।',
 'statistics-header-views' => 'साङ्ख्यिकाः अवलोकयतु ।',
@@ -1977,11 +1979,11 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'fewestrevisions' => 'न्यूनतमालोकनयुक्तपुटानि ।',
 
 # Miscellaneous special pages
-'nbytes' => '$1 {{PLURAL:$1|बà¥\88à¤\9fà¥\8d|बà¥\88à¤\9fà¥\8dसà¥\8d}}',
+'nbytes' => '$1 {{PLURAL:$1|à¤\85षà¥\8dà¤\9fà¤\95मà¥\8d|à¤\85षà¥\8dà¤\9fà¤\95ानि}}',
 'ncategories' => '{{PLURAL:$1|वर्गः|वर्गाः }}',
 'ninterwikis' => '$1 {{PLURAL:$1|अन्तार्विकी|अन्तार्विक्यः}}',
 'nlinks' => '$1 {{PLURAL:$1|अनुबन्धः|अनुबन्धाः}}',
-'nmembers' => '$1 {{PLURAL:$1|सदसà¥\8dयà¤\83|सदसà¥\8dयाः}}',
+'nmembers' => '$1 {{PLURAL:$1|यà¥\8bà¤\9cà¤\95à¤\83|यà¥\8bà¤\9cà¤\95ाः}}',
 'nrevisions' => '$1 {{PLURAL:$1|पुनरावृत्तिः}}',
 'nviews' => '$1 {{PLURAL:$1|अनुबन्धः|अनुबन्धाः}}',
 'nimagelinks' => '$1 {{PLURAL:$1|पुटम्|पुटानि}} प्रयुक्तानि ।',
@@ -2026,8 +2028,8 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'listusers-editsonly' => 'केवलं सम्पादनसहितयोजकान् दर्शयतु ।',
 'listusers-creationsort' => 'सर्जनदिनाङ्कैः वर्गीकरोतु ।',
 'usereditcount' => '$1 {{PLURAL:$1|दिनम्|दिनानि}}',
-'usercreated' => '$1 दिने $2 समये रचितम् योजकनाम $3',
-'newpages' => 'नवà¥\80नपà¥\83षà¥\8dठमà¥\8d',
+'usercreated' => '$1 दिने $2 समये {{GENDER:$3|रचितं}}',
+'newpages' => 'नवà¥\80नपà¥\83षà¥\8dठानि',
 'newpages-username' => 'योजकनामन्:',
 'ancientpages' => 'प्राचीनतमानि पृष्ठानि',
 'move' => 'चाल्यताम्',
@@ -2044,7 +2046,7 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'querypage-disabled' => 'समाचरणकारणेन एतद्विशेषपुटं निष्क्रियम् ।',
 
 # Book sources
-'booksources' => 'à¤\97à¥\8dरनà¥\8dथानाà¤\82 à¤¸à¥\8dरà¥\8bतà¤\83',
+'booksources' => 'ग्रन्थस्रोतः',
 'booksources-search-legend' => 'ग्रन्थस्रोतः अन्विष्यताम्',
 'booksources-go' => 'गम्यताम्',
 'booksources-text' => 'अधस्था आवली नूतनप्राचीनपुस्तकानां विक्रयकेन्द्रस्य अनुबन्धान् सूचयति । यत्र ते  आवश्यकाः अन्यविषयाः अपि उपलभ्याः ।',
@@ -2053,7 +2055,7 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 # Special:Log
 'specialloguserlabel' => 'आचारी :',
 'speciallogtitlelabel' => 'लक्ष्यम् (शीर्षकम् / योजकः)',
-'log' => 'लà¥\89à¤\97à¥\8d à¤\87तà¥\8dयà¥\87तानि',
+'log' => 'सà¤\82सà¤\95à¥\8dषितावलà¥\8dयà¤\83 (Logs)',
 'all-logs-page' => 'सर्वसार्वजनिकप्रवेशः ।',
 'alllogstext' => '{{SITENAME}}इत्यस्य उबलब्धप्रवेशानां  संयुक्तप्रदर्शनम् ।
 प्रवेशप्रकारं चित्वा भवान् दृश्यं क्षाययितुं शक्नोति । योजकनाम,  सदस्य नाम (ह्रस्वदीर्घाक्षरसंवादी) प्रभावितपुटम् ।',
@@ -2104,7 +2106,7 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'linksearch-text' => '"*.wikipedia.org" सदृशानि वन्यपत्राणि योजयितुं शक्यते । 
 न्यूनातिन्यूनं ".org" सदृशः अत्युन्नतस्तरस्य डोमेन आवश्यकम् अस्ति <br />
 अनुमोदितक्रमागतिः  <code>$1</code> (एतेषु कतममपि अन्वेषणे न योजयतु )',
-'linksearch-line' => '$2 पृष्ठं $1 तः सम्पृक्तम् अस्ति।',
+'linksearch-line' => ' $1 इति $2 इत्यस्मात् परिसन्धितमस्ति',
 'linksearch-error' => 'वन्यपत्राणि आतिथेयस्य नाम्ना समं केवलं प्रभान्ति ।',
 
 # Special:ListUsers
@@ -2130,7 +2132,7 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'listgrouprights-group' => 'वर्ग',
 'listgrouprights-rights' => 'अधिकाराः ।',
 'listgrouprights-helppage' => 'Help: समूहाधिकाराः ।',
-'listgrouprights-members' => '(सदसà¥\8dयानाà¤\82 à¤¸à¥\82à¤\9aà¥\80)',
+'listgrouprights-members' => '(यà¥\8bà¤\9cà¤\95ानामà¥\8d à¤\86वलिà¤\83)',
 'listgrouprights-addgroup' => '{{PLURAL:$2|समूहः}} योज्यताम् $1',
 'listgrouprights-removegroup' => 'समूहः{{PLURAL:$2|विलोपयतु}}: $1',
 'listgrouprights-addgroup-all' => 'सर्वसमूहान् योजयतु ।',
@@ -2143,7 +2145,7 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 # Email user
 'mailnologin' => 'सम्प्रेषणस्य सङ्केतः नास्ति ।',
 'mailnologintext' => 'अस्य योजकेभ्यः विद्युन्मानपत्रप्रेषणार्थम् [[Special:UserLogin|नामाभिलेखनम्]] आवश्यकम् [[Special:Preferences|आद्यता]]यां प्रेषयितुं विद्युन्मानपत्रसङ्केतः आवश्यकः ।',
-'emailuser' => 'एतस्मै योजकाय ईपत्रं प्रेष्यताम्',
+'emailuser' => 'एतस्मै योजकाय ई-पत्रं प्रेष्यताम्',
 'emailuser-title-target' => 'ईपत्र प्रेष्यताम् {{GENDER:$1|योजकः}}',
 'emailuser-title-notarget' => 'ईपत्र योजकः',
 'emailpage' => 'ई-मेल योजक',
@@ -2178,9 +2180,9 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'usermessage-editor' => 'तान्त्रिकसन्देशवाहकः ।',
 
 # Watchlist
-'watchlist' => 'मम à¤\85वà¥\87à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80',
-'mywatchlist' => 'मम à¤\85वà¥\87à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80',
-'watchlistfor2' => 'हि $1 $2',
+'watchlist' => 'à¤\85वà¥\87à¤\95à¥\8dषणावलिà¤\83',
+'mywatchlist' => 'à¤\85वà¥\87à¤\95à¥\8dषणावलिà¤\83',
+'watchlistfor2' => '$1 $2 कृते',
 'nowatchlist' => 'अवलोकनावल्यां पदार्थः नास्ति ।',
 'watchlistanontext' => 'अवलोकनपट्टिकायां पुटं दृष्टुं सम्पादयितुं वा  $1  करोतु ।',
 'watchnologin' => 'न नामाभिलितम्',
@@ -2196,15 +2198,15 @@ See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
 'unwatchthispage' => 'अवलोकनेन अलम् ।',
 'notanarticle' => 'न आधेयं पुटम् ।',
 'notvisiblerev' => 'अन्ययोजकेन कृतम् अवतरणम् अपमर्जितम् ।',
-'watchlist-details' => '{{PLURAL:$1|$1 पृष्ठं|$1 पृष्ठानि}} भवतः अवेक्षणसूच्यां सन्ति, सम्भाषणपृष्ठानि नात्र गणितानि।',
+'watchlist-details' => 'सम्भाषणपृष्ठानि विहाय {{PLURAL:$1|$1 पृष्ठं|$1 पृष्ठानि}} भवतः/भवत्याः अवेक्षणाऽऽवलिः ।',
 'wlheader-enotif' => 'विद्युन्मानपत्रस्य सूचनाः सक्रियाः ।',
 'wlheader-showupdated' => 'भवतः सन्दर्शनस्य पश्चात् परिवर्तितानि पुटानि स्थूलाक्षरैः निर्दिष्टानि ।',
 'watchmethod-recent' => 'अवलोकितपुटानां सद्यः सम्पादनस्य परीक्षणम् ।',
 'watchmethod-list' => 'सद्यः सम्पादनार्थम् अवलोकितपुटानां परीक्षणम् ।',
 'watchlistcontains' => 'भवतः अवलोकनावली $1 युक्तास्ति ।{{PLURAL:$1|page|pages}}.',
 'iteminvalidname' => "समस्या  '$1' इत्यनेन अस्ति । अमान्यं नाम ।",
-'wlshowlast' => 'à¤\85नà¥\8dतिमानि ($1 à¤¹à¥\8bराà¤\83 $2 à¤¦à¤¿à¤¨à¤¾à¤¨à¤¿) $3 à¤\87ति à¤¦à¤°à¥\8dश्यन्ताम्',
-'watchlist-options' => 'à¤\85वà¥\87à¤\95à¥\8dषणसà¥\82à¤\9aà¥\8dयाः विकल्पाः',
+'wlshowlast' => 'à¤\85नà¥\8dतिमाà¤\83 $1 à¤¹à¥\8bराà¤\83, à¤\85नà¥\8dतिमानि $2 à¤¦à¤¿à¤¨à¤¾à¤¨à¤¿ $3 à¤¦à¥\83श्यन्ताम्',
+'watchlist-options' => 'à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलà¥\87ः विकल्पाः',
 
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'निरीक्षते...',
@@ -2268,10 +2270,10 @@ Feedback and further assistance:
 'historywarning' => "' पूर्वसूचना ''' भवता अपमर्जनसिद्धपुटे बहुशः  $1 इतिहासयुक्तः अस्ति ।{{PLURAL:$1|revision|revisions}}:",
 'confirmdeletetext' => 'भवान् एकं पृष्ठं तस्य अखिलेन इतिहासेन सहितं अपाकर्तुं प्रवृत्तोऽस्ति। कृपया सुपुष्टीकरोतु यत् भवतः एतदेव आशयः, यद् भवता अस्य परिणामाः सुविज्ञाताः सन्ति तथा च भवता क्रियैषा [[{{MediaWiki:Policy-url}}| यथानीति]] सम्पाद्यते।',
 'actioncomplete' => 'कार्यं सम्पन्नम्',
-'actionfailed' => 'à¤\95रà¥\8dमनà¥\8d à¤°à¤¿à¤·à¥\8dà¤\9f',
+'actionfailed' => 'à¤\95ारà¥\8dयà¤\82 à¤°à¤¿à¤·à¥\8dà¤\9fà¤\82 (failed)',
 'deletedtext' => '"$1" इत्येतद् अपाकृतमस्ति।
 सद्यःकृतानां अपाकरणानाम् अभिलेखः $2 इत्यस्मिन् पश्यतु।',
-'dellogpage' => 'à¤\85पाà¤\95रणानाà¤\82 à¤¸à¥\82à¤\9aिà¤\95ा',
+'dellogpage' => 'à¤\85पाà¤\95रणानामà¥\8d à¤\86वलिà¤\83',
 'dellogpagetext' => 'सद्यः कालीनापमर्जितपुटानाम् आवली अधः अस्ति ।',
 'deletionlog' => 'अपमर्जनसूचिका ।',
 'reverted' => 'प्राचीनपुनरावृत्तिः पूर्ववत् कृता ।',
@@ -2290,7 +2292,7 @@ Feedback and further assistance:
 # Rollback
 'rollback' => 'सम्पादनं निर्वर्तयतु ।',
 'rollback_short' => 'प्रत्याहरणम् ।',
-'rollbacklink' => 'पà¥\8dरतिनिवरà¥\8dतà¥\8dयतामà¥\8d',
+'rollbacklink' => 'पà¥\8dरतà¥\8dयाहरणà¤\82',
 'rollbacklinkcount' => '$1 {{PLURAL:$1|सम्पादनम्|सम्पादनानि}} प्रत्याहरतु ।',
 'rollbacklinkcount-morethan' => '$1 {{PLURAL:$1|सम्पादनम्|सम्पादनानि}} अधिकं प्रत्याहरतु ।',
 'rollbackfailed' => 'प्रत्यहरणम् असफलम् ।',
@@ -2311,10 +2313,10 @@ $2 द्वारा सम्पादितां अन्तिमावृ
 निर्गत्य पूर्वपुटं गत्वा पुनः गत्वा प्रयत्नं करोतु ।',
 
 # Protect
-'protectlogpage' => 'सà¥\81रà¤\95à¥\8dषासà¥\82à¤\9aà¥\80',
+'protectlogpage' => 'सà¥\81रà¤\95à¥\8dषाऽऽवलिà¤\83',
 'protectlogtext' => 'अधो दत्ता सुरक्षार्थं कृतपरिवर्ननानां सूचिका अस्ति । 
 वरतमानस्य सुरक्षितपुटानां सूचिकार्थम् अत्र [[Special:ProtectedPages|सुरक्षितपुटानां सूचिका]] पश्यतु ।',
-'protectedarticle' => '"[[$1]]" à¤\87तà¥\8dयà¥\87तदà¥\8d à¤¸à¤\82रà¤\95à¥\8dषितमसà¥\8dति',
+'protectedarticle' => '"[[$1]]" संरक्षितमस्ति',
 'modifiedarticleprotection' => '"[[$1]]" इत्येतदर्थं सुरक्षा-स्तरः परिवर्तित: :',
 'unprotectedarticle' => '"[[$1]]"तः सुरक्षा अपमर्जिता ।',
 'movedarticleprotection' => 'सुरक्षणस्य स्तरः  "[[$2]]" तः परिवर्त्य   "[[$1]]" कृतः अस्ति ।',
@@ -2396,7 +2398,7 @@ $2 द्वारा सम्पादितां अन्तिमावृ
 'undeleterevision-missing' => 'अमान्या अथवा विलुप्ता पुनरावृत्तिः । भवान् प्रदुष्टानुबन्धयुक्तः अथवा पुनरावृत्तिः पुनस्थापिता अथवा लेखागारात् अपनीता ।',
 'undelete-nodiff' => 'पूर्वतनपुनरावृत्तिः न दृष्टा ।',
 'undeletebtn' => 'पुन्थापयतु ।',
-'undeletelink' => 'दà¥\83शà¥\8dयतामà¥\8d/पà¥\8dरतà¥\8dयानà¥\80यतामà¥\8d',
+'undeletelink' => 'दृश्यताम्/प्रत्यानयताम्',
 'undeleteviewlink' => 'दृश्यताम्',
 'undeleteinvert' => 'चयनं परिवर्तयतु ।',
 'undeletecomment' => 'कारणम् :',
@@ -2425,30 +2427,30 @@ $2 द्वारा सम्पादितां अन्तिमावृ
 'undelete-show-file-submit' => 'आम्',
 
 # Namespace form on various pages
-'namespace' => 'नामाकाशः :',
-'invert' => 'à¤\9aयनà¤\82 à¤µà¤¿à¤ªà¤°à¥\80तà¥\80à¤\95रà¥\8bतà¥\81',
+'namespace' => 'नामाकाशः:',
+'invert' => 'विरà¥\81दà¥\8dधà¤\9aयनमà¥\8d',
 'tooltip-invert' => 'चितनामस्थाने परिवर्तनं गोपयितुं मञ्जूषाम् अर्गलयतु ।',
 'namespace_association' => 'सम्बद्धं नामस्थानम् ।',
 'tooltip-namespace_association' => 'चितनामस्थानेन सह सम्बद्धं विषयनामस्थानम् अथवा सम्भाषणम् अपि उपादातुम् इमां मञ्जूषाम् अर्गलयतु ।',
 'blanknamespace' => '(मुख्यः)',
 
 # Contributions
-'contributions' => 'प्रयोक्तॄणां योगदानानि',
-'contributions-title' => '$1 à¤\87तà¥\8dयà¥\87तसà¥\8dय à¤\95à¥\83तà¥\87 à¤¯à¥\8bà¤\9cà¤\95ानाà¤\82 à¤¯à¥\8bà¤\97दानानि',
-'mycontris' => 'मम à¤¯à¥\8bà¤\97दानानि',
-'contribsub2' => '$1 इत्येतदर्थम् ($2)',
+'contributions' => '{{GENDER:$1|प्रयोक्तॄणां}} योगदानानि',
+'contributions-title' => '$1 à¤\95à¥\83तà¥\87 à¤¯à¥\8bà¤\97दानà¤\82',
+'mycontris' => 'योगदानानि',
+'contribsub2' => '($2) कृते {{GENDER:$3|$1}}',
 'nocontribs' => 'एतादृशयोग्यताभिः समं परिवर्तनानि न दृष्टानि ।',
-'uctop' => '(शीर्षम्)',
+'uctop' => 'वर्तमानः',
 'month' => 'अस्मात् मासात् (प्राक्तनानि च):',
 'year' => 'अस्मात् वर्षात् (प्राक्तनानि च):',
 
-'sp-contributions-newbies' => 'नà¥\82तनयà¥\8bà¤\9cà¤\95ानाà¤\82 à¤\95à¥\87वलà¤\82 à¤¯à¥\8bà¤\97दानानि à¤¦à¤°à¥\8dश्यन्ताम्',
+'sp-contributions-newbies' => 'à¤\95à¥\87वलà¤\82 à¤¨à¥\82तनयà¥\8bà¤\9cà¤\95ानाà¤\82 à¤¯à¥\8bà¤\97दानानि à¤¦à¥\83श्यन्ताम्',
 'sp-contributions-newbies-sub' => 'नूतनलेखार्थम् ।',
 'sp-contributions-newbies-title' => 'नूतनलेखार्थं योजकयोगदानम् ।',
-'sp-contributions-blocklog' => 'à¤\85वरà¥\81दà¥\8dधा à¤¸à¥\82à¤\9aà¥\80',
+'sp-contributions-blocklog' => 'à¤\85वरà¥\8bधाऽऽवलिà¤\83',
 'sp-contributions-deleted' => 'योजकयोगदानम् अपमर्जतु ।',
-'sp-contributions-uploads' => 'à¤\86रà¥\8bपà¥\8dयतामà¥\8d',
-'sp-contributions-logs' => 'लà¥\8bà¤\97à¥\8dस',
+'sp-contributions-uploads' => 'à¤\89पारà¥\8bहणानि',
+'sp-contributions-logs' => 'सà¤\82सà¤\95à¥\8dषितावलà¥\8dयà¤\83 (Logs)',
 'sp-contributions-talk' => 'सम्भाषणम्',
 'sp-contributions-userrights' => 'योजकाधिकारस्य व्यवस्थापनम् ।',
 'sp-contributions-blocked-notice' => 'अयं प्रयोक्ता सम्प्रति अवरुद्धः वर्तते।
@@ -2456,28 +2458,28 @@ $2 द्वारा सम्पादितां अन्तिमावृ
 'sp-contributions-blocked-notice-anon' => 'अयं प्रयोक्ता सम्प्रति अवरुद्धः वर्तते।
 नूतनतमा अवरोधाभिलेख-प्रविष्टिः सन्दर्भार्थम् अधस्तात् प्रदत्ताऽस्ति:',
 'sp-contributions-search' => 'योगदानानि अन्विष्यन्ताम्',
-'sp-contributions-username' => 'à¤\86à¤\87.पà¥\80.सà¤\99à¥\8dà¤\95à¥\87तà¤\83 à¤\85थवा à¤¯à¥\8bà¤\9cà¤\95नाम :',
-'sp-contributions-toponly' => 'समà¥\8dपादनानाà¤\82 à¤¨à¥\82तनावà¥\83तà¥\8dतिमातà¥\8dरà¤\82 à¤¦à¤°à¥\8dश्यताम्',
+'sp-contributions-username' => 'à¤\85नà¥\8dतरà¥\8dà¤\9cालसà¤\82विदà¥\8d (I P address) à¤¯à¥\8bà¤\9cà¤\95नाम à¤µà¤¾ :',
+'sp-contributions-toponly' => 'समà¥\8dपादनानाà¤\82 à¤\95à¥\87वलà¤\82 à¤¨à¥\82तनातमा à¤\86वलिà¤\83 à¤¦à¥\83श्यताम्',
 'sp-contributions-submit' => 'अन्विष्यताम्',
 
 # What links here
-'whatlinkshere' => 'à¤\95à¥\87भà¥\8dयà¤\83 à¤ªà¥\83षà¥\8dठà¥\87भà¥\8dयà¤\83 à¤¸à¤®à¥\8dबदà¥\8dधमà¥\8d',
-'whatlinkshere-title' => '"$1" à¤\87तà¥\8dयà¥\87तà¥\87न à¤¸à¤®à¥\8dबदà¥\8dधानि à¤ªà¥\83षà¥\8dठानि',
-'whatlinkshere-page' => 'पृष्ठम् :',
-'linkshere' => "अधोलिखितानि पृष्ठाणि '''[[:$1]]''' इत्येतद् प्रति संबंधनं कुर्वन्ति :",
-'nolinkshere' => "'''[[:$1]]'''इत्येतेन न किञ्चित् पृष्ठं संयुक्तम्",
+'whatlinkshere' => 'à¤\85नà¥\87न à¤¸à¤¹ à¤¸à¤®à¥\8dबदà¥\8dधाà¤\83',
+'whatlinkshere-title' => '"$1" सम्बद्धानि पृष्ठानि',
+'whatlinkshere-page' => 'पृष्ठम्:',
+'linkshere' => "'''[[:$1]]''' इत्यनेन सह अधोलिखितानां पृष्ठानां परिसन्धिं करोतु:",
+'nolinkshere' => "'''[[:$1]]''' इत्यनेन सह न किमपि पृष्ठं परिसन्धितम्",
 'nolinkshere-ns' => "चितनामस्थानात्  '''[[:$1]]''' इत्येनं योजनयोग्यं पुटं नास्ति  ।",
 'isredirect' => 'अनुप्रेषण-पृष्ठम्',
-'istemplate' => 'मिलापयतà¥\81',
-'isimage' => 'सà¤\9eà¥\8dà¤\9aिà¤\95ासà¤\82बनà¥\8dध',
-'whatlinkshere-prev' => '{{PLURAL:$1|पà¥\82रà¥\8dवतनमà¥\8d|पà¥\82रà¥\8dवतनानि $1}}',
-'whatlinkshere-next' => '{{PLURAL:$1|à¤\86à¤\97ामि|à¤\86à¤\97ामिनि $1}}',
-'whatlinkshere-links' => 'â\86\90 à¤¸à¤\82बà¤\82धनानि',
+'istemplate' => 'à¤\85नà¥\8dयलà¥\87à¤\96भाà¤\97à¤\83 (transclusion)',
+'isimage' => 'सà¤\9eà¥\8dà¤\9aिà¤\95ासमà¥\8dबनà¥\8dधà¤\83',
+'whatlinkshere-prev' => '{{PLURAL:$1|पà¥\81रसà¥\8dतातà¥\8d (previous) $1}}',
+'whatlinkshere-next' => '{{PLURAL:$1|परसà¥\8dतातà¥\8d $1}}',
+'whatlinkshere-links' => 'â\86\90 à¤ªà¤°à¤¿à¤¸à¤¨à¥\8dधयà¤\83',
 'whatlinkshere-hideredirs' => '$1 पुनर्निर्दिष्टानि',
-'whatlinkshere-hidetrans' => '$1 à¤®à¤¿à¤²à¤¾à¤ªà¤¨à¤¾à¤¨à¤¿ (à¤\9fà¥\8dराà¤\82सà¥\8dà¤\95à¥\8dलà¥\81सनà¥\8d à¤\87तà¥\8dयà¥\87तानि)',
-'whatlinkshere-hidelinks' => '$1 à¤¸à¤®à¥\8dपरà¥\8dà¤\95तनà¥\8dतवः',
-'whatlinkshere-hideimages' => '$1 à¤\9aितà¥\8dरसमà¥\8dपरà¥\8dà¤\95तनà¥\8dतà¥\81ः',
-'whatlinkshere-filters' => 'निसà¥\8dयनà¥\8dदनानि',
+'whatlinkshere-hidetrans' => '$1 à¤\85नà¥\8dयलà¥\87à¤\96भाà¤\97à¤\83 (transclusions)',
+'whatlinkshere-hidelinks' => '$1 à¤ªà¤°à¤¿à¤¸à¤¨à¥\8dधिः',
+'whatlinkshere-hideimages' => '$1 à¤\9aितà¥\8dरपरिसनà¥\8dधिः',
+'whatlinkshere-filters' => 'शà¥\8bधनà¥\80',
 
 # Block/unblock
 'autoblockid' => 'स्वयं पिहितम् । $1',
@@ -2505,7 +2507,7 @@ $2 द्वारा सम्पादितां अन्तिमावृ
 'ipbenableautoblock' => 'अनेन योजकेन उपयुक्तम् ऐपिसङ्केतम्, अग्रे अनेन योजकेन सम्पादयितुं प्रयतमानम् ऐपिसङ्केतं च स्वयम् अवरुद्धं करोतु ।',
 'ipbsubmit' => 'एतं योजकम् अवरुणद्धु ।',
 'ipbother' => 'अन्यः समयः ।',
-'ipboptions' => '२ à¤¹à¥\8bराà¤\83:2 hours,१ à¤¦à¤¿à¤¨à¤®à¥\8d:1 day,३ à¤¦à¤¿à¤¨à¤¾à¤¨à¤¿:3 days,१ à¤¸à¤ªà¥\8dताहà¤\83:1 week,२ à¤¸à¤ªà¥\8dताहà¥\8c:2 weeks,१ à¤®à¤¾à¤¸à¤\83:1 month,३ à¤®à¤¾à¤¸à¤¾à¤\83:3 months,६ à¤®à¤¾à¤¸à¤¾à¤\83:6 months,१ à¤µà¤°à¥\8dषà¤\83:1 year,अनन्तम्:infinite',
+'ipboptions' => '२ à¤¹à¥\8bरà¥\87:2 hours,१ à¤¦à¤¿à¤¨à¤®à¥\8d:1 day,३ à¤¦à¤¿à¤¨à¤¾à¤¨à¤¿:3 days,१ à¤¸à¤ªà¥\8dताहà¤\83:1 week,२ à¤¸à¤ªà¥\8dताहà¥\8c:2 weeks,१ à¤®à¤¾à¤¸à¤\83:1 month,३ à¤®à¤¾à¤¸à¤¾à¤\83:3 months,६ à¤®à¤¾à¤¸à¤¾à¤\83:6 months,१ à¤µà¤°à¥\8dषमà¥\8d:1 year,अनन्तम्:infinite',
 'ipbhidename' => 'सम्पादनेभ्यः आवलीभ्यः च योजकनाम सङ्गोपयतु ।',
 'ipbwatchuser' => 'अस्य योजकस्य योजकपुटानि सम्भाषणपुटानि च अवलोकयतु ।',
 'ipb-disableusertalk' => 'एतं योजकम् अवरोधकाले स्वस्य सम्भाषणपुटस्य सम्पानात् निवारयतु ।',
@@ -2553,19 +2555,19 @@ $2 द्वारा सम्पादितां अन्तिमावृ
 'blocklist-nousertalk' => 'स्वस्य सम्भाषणपुटं सम्पादयितुं न शक्यते ।',
 'ipblocklist-empty' => 'अवरोधावली रिक्ता अस्ति ।',
 'ipblocklist-no-results' => 'अभ्यर्थितः ऐपिसङ्केतः अथवा अभ्यर्थितः योजकनाम अवरुद्धं न ।',
-'blocklink' => 'à¤\85वरà¥\8bधà¤\83 à¤\95à¥\8dरियताम्',
-'unblocklink' => 'निरà¥\8bधà¤\83 à¤\85पास्यताम्',
-'change-blocklink' => 'विभाà¤\97ः परिवर्त्यताम्',
+'blocklink' => 'à¤\85वरà¥\81दà¥\8dधà¥\8dयताम्',
+'unblocklink' => 'à¤\85वरà¥\8bधà¤\83 à¤¨à¤¿à¤°à¤¸à¥\8dत्यताम्',
+'change-blocklink' => 'à¤\85वरà¥\8bधः परिवर्त्यताम्',
 'contribslink' => 'योगदानम्',
 'emaillink' => 'विद्युन्मानपत्रं प्रेषयतु ।',
 'autoblocker' => 'भवतः ऐपि सङ्केतः स्वयम् अवरुद्धः यः सद्यः काले एव [[User:$1|$1]]" इत्यनेन उपयुक्तः । 
 $1 इत्यस्य अवरोधस्य कारणं तु "$2" अस्ति ।',
-'blocklogpage' => 'à¤\85वरà¥\8bधानाà¤\82 à¤¸à¥\82à¤\9aà¥\80',
+'blocklogpage' => 'à¤\85वरà¥\8bधाऽऽवलिà¤\83',
 'blocklog-showlog' => 'अयम् एपि सङ्केतः पूर्वमेव अवरुद्धः । 
 अवरोधसूची आधाराय अधः दत्तः अस्ति :',
 'blocklog-showsuppresslog' => 'अयं योजकः पूर्वमेव अवरुद्धः सङ्गुप्तः च  ।
 निग्रहकरणं तु अधः उल्लिखितम् ।',
-'blocklogentry' => '[[$1]] इत्येतद् अवरुद्धम्, $2 $3 इति अवसान-समयेन सह',
+'blocklogentry' => '$2 $3 समयपर्यन्तं [[$1]] एतत् प्रतिबन्धितं वर्तते',
 'reblock-logentry' => '[[$1]] इत्यस्य अवरोधस्य विन्यासः परिवर्तितः अयं $2 $3 समये विनश्येत् ।',
 'blocklogtext' => 'इयम् अवरुद्धानवरुद्धप्रक्रियायाः अवलोकनस्य सूचिका । 
 स्वयम् अवरुद्धानाम् ऐपिसङ्केतानाम् आवली न कृता ।
@@ -2678,13 +2680,13 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 'movepage-page-moved' => '$1 पुटं $2 प्रति चालितम् अस्ति ।',
 'movepage-page-unmoved' => '$1 पुटं $2 प्रति चालनम् अशक्यम् ।',
 'movepage-max-pages' => '$1  इत्यस्य {{PLURAL:$1|page|pages}} गरष्टपुटानि चालितानि अतः इतोप्यधिकपुटानि स्वयं चालितानि न भवन्ति ।',
-'movelogpage' => 'लà¥\89à¤\97à¥\8d à¤\87तà¥\8dयà¥\87तदà¥\8d चाल्यताम्',
+'movelogpage' => 'सà¤\9eà¥\8dà¤\9aितावलिà¤\83 (log) चाल्यताम्',
 'movelogpagetext' => 'पुटचालनस्य आवली अधः अस्ति ।',
 'movesubpage' => '{{PLURAL:$1|उपपुटः|उपपुटानि}}',
 'movesubpagetext' => '$1 {{PLURAL:$1|उपपुटम्|उपपुटानि }}अस्य पुटस्य उपपुटानि अधः दर्शितानि ।',
 'movenosubpage' => 'अस्य पुटस्य उपपुटानि न सन्ति ।',
 'movereason' => 'कारणम् :',
-'revertmove' => 'पà¥\8dरतिनिवरà¥\8dतà¥\8dयताम्',
+'revertmove' => 'पà¥\8dरतà¥\8dयावरà¥\8dतनम्',
 'delete_and_move' => 'अपमर्जनं चालनं च ।',
 'delete_and_move_text' => '==अपमर्जनम् आवश्यकम्==
 लक्षितपुटं "[[:$1]]" पूर्वमेव अस्ति ।
@@ -2712,7 +2714,7 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 'file-exists-sharedrepo' => 'विभक्तकोशे चितसञ्चिकानाम प्रथममेव उपयोगे अस्ति  । अन्यं नाम चिनोतु ।',
 
 # Export
-'export' => 'पà¥\83षà¥\8dठानाà¤\82 à¤¨à¤¿à¤°à¥\8dयातà¤\82 à¤\95रà¥\8bतà¥\81',
+'export' => 'पà¥\83षà¥\8dठानि à¤\85नà¥\8dयतà¥\8dर à¤ªà¥\8dरà¥\87षà¥\8dयतामà¥\8d',
 'exporttext' => 'विशेष पुटस्य पाठम् अथवा सम्पादनेतिहासं निर्हर्तुं शक्नोति । अथवा पुटसमूहम् उपोतं कर्तुमपि शक्नोति ।
 एतत् [[Special:Import|आयातपुटं]] अस्य साहाय्येन मीडियाविक्याः प्रयोगं कृत्वा अन्यविकीतः आयातं कर्तुं शक्नोति ।
 पुटानि नर्हर्तुम् अधो दत्तपाठमञ्जूषायां शीर्शकं लिखतु । एकस्य शीर्षकस्य एका पङ्क्तिः । अपि च वर्तमानावृत्त्या सह प्राचीनावृत्तिमपि इच्छति वा नेति अथवा गतसम्पादनस्य विषयज्ञानेन सह केवलं वर्नमानावृत्तिम् इच्छाति । 
@@ -2733,7 +2735,7 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 # Namespace 8 related
 'allmessages' => 'व्यवस्था सन्देशाः',
 'allmessagesname' => 'नाम',
-'allmessagesdefault' => 'डिफà¥\89लà¥\8dà¤\9fसनà¥\8dदà¥\87शपाठ',
+'allmessagesdefault' => 'मà¥\82लसनà¥\8dदà¥\87शà¤\83',
 'allmessagescurrent' => 'सद्यः सन्देशपाठः ।',
 'allmessagestext' => 'एषा मीडियाविकिनामस्थाने उपलब्धा काचित् तन्त्रसन्देशस्य सूचिका अस्ति ।  यदि भवान् सामान्यमीडियाविकि क्षेत्रीयकरणे योगदानं कर्तुमिच्छति तर्हि[https://www.mediawiki.org/wiki/Localisation मीडियाविकि क्षेत्रीयकरणम्] अथवा [//translatewiki.net translatewiki.net] इत्यत्र गच्छतु ।',
 'allmessagesnotsupportedDB' => "अस्य पुटस्य उपयोगः नैव शक्यते यतः '''\$wgUseDatabaseMessages''' तटास्थम् अस्ति ।",
@@ -2749,7 +2751,7 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 # Thumbnails
 'thumbnail-more' => 'विस्तीर्यताम्',
 'filemissing' => 'सञ्चिका विनष्टा ।',
-'thumbnail_error' => 'सà¤\99à¥\8dà¤\95à¥\81à¤\9aितचित्रनिर्माणे दोषः: $1',
+'thumbnail_error' => 'लà¤\98à¥\81चित्रनिर्माणे दोषः: $1',
 'djvu_page_error' => 'DjVu पुटं  पृष्ठ परिधेः बहिः ।',
 'djvu_no_xml' => 'DjVu पुटार्थं XMLप्राप्तुं न शक्तम् ।',
 'thumbnail-temp-create' => 'अनित्यां सङ्कुचितसञ्चिकां निर्मातुं न शक्यते ।',
@@ -2828,74 +2830,74 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 'javascripttest-qunit-heading' => 'मिडियाविक्याः जवालिपेः Qघटकस्य परीक्षाप्रणाली ।',
 
 # Tooltip help for the actions
-'tooltip-pt-userpage' => 'भवतः योजकपृष्ठम्',
+'tooltip-pt-userpage' => 'भवतः/भवत्याः योजकपृष्ठम्',
 'tooltip-pt-anonuserpage' => 'ऐपिसङ्केतार्थं योजकपुटं भवान् सम्पादयति एवम्..',
-'tooltip-pt-mytalk' => 'भवतः सम्भाषणपृष्ठम्',
+'tooltip-pt-mytalk' => 'भवतः/भवत्याः सम्भाषणपृष्ठम्',
 'tooltip-pt-anontalk' => 'एतस्मात् ऐपिसङ्केतात् सम्पादनस्य परिचर्चा ।',
-'tooltip-pt-preferences' => 'भवतः इष्टतमानि',
-'tooltip-pt-watchlist' => 'भवदà¥\8dभिà¤\83 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषà¥\8dयमाणानाà¤\82 à¤ªà¥\83षà¥\8dठानाà¤\82 à¤¸à¥\82à¤\9aà¥\80',
-'tooltip-pt-mycontris' => 'भवतः योगदानानाम् आवली',
-'tooltip-pt-login' => 'भवानà¥\8d à¤¨ à¤ªà¥\8dरविषà¥\8dà¤\9fà¤\83। à¤ªà¥\8dरवà¥\87शà¤\83 à¤\85निवारà¥\8dयà¤\83 à¤¨।',
+'tooltip-pt-preferences' => 'भवतः/भवत्याः इष्टतमानि',
+'tooltip-pt-watchlist' => 'भवतà¤\83/भवतà¥\8dयाà¤\83 à¤¨à¤¿à¤°à¥\80à¤\95à¥\8dषासà¥\82à¤\9aà¥\8dयाà¤\82 à¤µà¤¿à¤¦à¥\8dयमानानाà¤\82 à¤ªà¥\83षà¥\8dठानामà¥\8d à¤\86वलिà¤\83',
+'tooltip-pt-mycontris' => 'भवतः/भवत्याः योगदानस्य आवलिः',
+'tooltip-pt-login' => 'समà¥\8dपà¥\8dरवà¥\87शाय à¤ªà¥\8dरà¥\8bतà¥\8dसहामहà¥\87 à¥¤ à¤ªà¤°à¤¨à¥\8dतà¥\81 à¤¸à¤®à¥\8dपà¥\8dरवà¥\87शà¤\83 à¤\90à¤\9aà¥\8dà¤\9bिà¤\95à¤\83 ।',
 'tooltip-pt-logout' => 'निर्गमनम्',
-'tooltip-ca-talk' => 'पà¥\83षà¥\8dठानà¥\8dतरà¥\8dà¤\97तविषयà¥\87 चर्चा',
-'tooltip-ca-edit' => 'भवानà¥\8d à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤®à¥\8dपादयितà¥\81मà¥\8d à¤\85रà¥\8dहति। à¤°à¤\95à¥\8dषणातà¥\8dपà¥\82रà¥\8dवà¤\82 à¤\95à¥\83पया à¤ªà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयà¤\82 à¤ªà¤¶à¥\8dयतà¥\81।',
-'tooltip-ca-addsection' => 'नà¥\82तनà¤\83 à¤µà¤¿à¤­à¤¾à¤\97à¤\83 à¤\86रभà¥\8dयतामà¥\8d',
-'tooltip-ca-viewsource' => 'इदं पृष्ठं संरक्षितं विद्यते। भवान् अस्य स्रोतः द्रष्टुम् अर्हति।',
-'tooltip-ca-history' => 'à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤ªà¥\81रातनà¥\8dयà¤\83 à¤\86वà¥\83तà¥\8dतयः',
+'tooltip-ca-talk' => 'पà¥\83षà¥\8dठाऽनà¥\8dतरà¥\8dà¤\97ताय à¤µà¤¿à¤·à¤¯à¤¾à¤¯ चर्चा',
+'tooltip-ca-edit' => 'à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤¸à¤®à¥\8dपादयितà¥\81à¤\82 à¤¶à¤\95à¥\8dयतà¥\87 à¥¤ à¤°à¤\95à¥\8dषणातà¥\8dपà¥\82रà¥\8dवà¤\82 à¤\95à¥\83पया à¤ªà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयà¤\82 à¤¦à¥\83शà¥\8dयतामà¥\8d ।',
+'tooltip-ca-addsection' => 'नूतनविभागः आरभ्यताम्',
+'tooltip-ca-viewsource' => 'इदं पृष्ठं संरक्षितं विद्यते । अस्य स्रोतं द्रष्टुं शक्यते ।',
+'tooltip-ca-history' => 'à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤ªà¥\81रातनाऽऽवà¥\83तà¥\8dतिः',
 'tooltip-ca-protect' => 'इदं पृष्ठं संरक्ष्यताम्',
 'tooltip-ca-unprotect' => 'अस्य पुटास्य सुरक्षां परिवर्तयतु ।',
 'tooltip-ca-delete' => 'इदं पृष्ठम् अपाक्रियताम्',
 'tooltip-ca-undelete' => 'अस्य पुटस्य अपमर्जनात् पूर्वम् अस्य सम्पादनानि पुनस्थापयतु ।',
-'tooltip-ca-move' => 'à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤\9aाल्यताम्',
-'tooltip-ca-watch' => 'इदं पृष्ठं भवतः अवेक्षणसूच्यां योज्यताम्',
-'tooltip-ca-unwatch' => 'à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤­à¤µà¤¤à¤\83 à¤\85वà¥\87à¤\95à¥\8dषणसà¥\82à¤\9aà¥\8dयाà¤\83 निष्कास्यताम्',
-'tooltip-search' => '{{SITENAME}} à¤\85तà¥\8dर à¤\85नà¥\8dविषà¥\8dयतामà¥\8d',
+'tooltip-ca-move' => 'à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¨à¤¾à¤® à¤ªà¤°à¤¿à¤µà¤°à¥\8dत्यताम्',
+'tooltip-ca-watch' => 'इदं पृष्ठं भवतः/भवत्याः अवेक्षणावल्यां योज्यताम्',
+'tooltip-ca-unwatch' => 'भवतà¤\83/भवतà¥\8dयाà¤\83 à¤\85वà¥\87à¤\95à¥\8dषणसà¥\82à¤\9aà¥\8dयाà¤\83 à¤\87दà¤\82 à¤ªà¥\83षà¥\8dठà¤\82 निष्कास्यताम्',
+'tooltip-search' => '{{SITENAME}} अन्विष्यताम्',
 'tooltip-search-go' => 'समानशिरोनामयुक्तं पृष्ठं विद्यते चेत् तत्र गम्यताम्',
-'tooltip-search-fulltext' => 'à¤\87दà¤\82 à¤µà¤\9aनं पृष्ठेषु अन्विष्यताम्',
+'tooltip-search-fulltext' => 'à¤\8fनà¤\82 à¤µà¤¾à¤\95à¥\8dयाà¤\82शं पृष्ठेषु अन्विष्यताम्',
 'tooltip-p-logo' => 'मुख्यपृष्ठं गम्यताम्',
 'tooltip-n-mainpage' => 'मुख्यपृष्ठं गम्यताम्',
 'tooltip-n-mainpage-description' => 'मुख्यपृष्ठं गम्यताम्',
-'tooltip-n-portal' => 'पà¥\8dरà¤\95लà¥\8dपविषयà¥\87 à¤­à¤µà¤¤à¤¾ à¤\95िà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dयà¤\82, à¤\95à¥\81तà¥\8dर à¤\85नà¥\8dवà¥\87षणà¤\82 à¤¶à¤\95्यम्',
-'tooltip-n-currentevents' => 'सदà¥\8dयà¤\83à¤\95ालà¥\80नà¤\98à¤\9fनानां पृष्ठभूमिका प्राप्यताम्',
-'tooltip-n-recentchanges' => 'सदà¥\8dयà¥\8bà¤\9cातानाà¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानाà¤\82 à¤¸à¥\82à¤\9aà¥\80',
-'tooltip-n-randompage' => 'à¤\95िमपà¥\8dयà¥\87à¤\95à¤\82 पृष्ठं गम्यताम्',
+'tooltip-n-portal' => 'तà¥\8dवया à¤ªà¥\8dरà¤\95लà¥\8dपविषयà¥\87 à¤\95िà¤\82 à¤\95रà¥\8dतà¥\81à¤\82 à¤¶à¤\95à¥\8dयतà¥\87, à¤\95à¥\81तà¤\83 à¤¸à¤¾à¤¹à¤¾à¤¯à¥\8dयà¤\82 à¤ªà¥\8dरापà¥\8dतव्यम्',
+'tooltip-n-currentevents' => 'वरà¥\8dतमानपà¥\8dरसà¤\99à¥\8dà¤\97ानां पृष्ठभूमिका प्राप्यताम्',
+'tooltip-n-recentchanges' => 'सदà¥\8dयपरिवरà¥\8dतनानामà¥\8d à¤\86वलिà¤\83',
+'tooltip-n-randompage' => 'à¤\85शà¥\83à¤\99à¥\8dà¤\96लà¤\82 (random) पृष्ठं गम्यताम्',
 'tooltip-n-help' => 'अन्वेषणस्थानम्',
-'tooltip-t-whatlinkshere' => 'à¤\8fततà¥\8dसमà¥\8dबदà¥\8dधानाà¤\82 à¤¸à¤°à¥\8dवà¥\87षाà¤\82 à¤µà¤¿à¤\95ि-पà¥\83षà¥\8dठानाà¤\82 à¤¸à¥\82à¤\9aà¥\80',
-'tooltip-t-recentchangeslinked' => 'à¤\8fततà¥\8dसमà¥\8dबदà¥\8dधà¥\87षà¥\81 à¤ªà¥\83षà¥\8dठà¥\87षà¥\81 à¤\9cातानि à¤¸à¤¦à¥\8dयà¤\83à¤\95ालà¥\80नानि परिवर्तनानि',
+'tooltip-t-whatlinkshere' => 'à¤\85तà¥\8dर à¤¸à¤®à¥\8dबदà¥\8dधानाà¤\82 à¤ªà¤°à¤¿à¤¸à¤¨à¥\8dधितानाà¤\82 à¤µà¤¿à¤\95ि-पà¥\83षà¥\8dठानामà¥\8d à¤\86वलिà¤\83',
+'tooltip-t-recentchangeslinked' => 'à¤\8fततà¥\8dपà¥\83षà¥\8dठसमà¥\8dबदà¥\8dधà¥\87षà¥\81 à¤ªà¥\83षà¥\8dठà¥\87षà¥\81 à¤¸à¤¦à¥\8dयà¤\9cातानि परिवर्तनानि',
 'tooltip-feed-rss' => 'अस्मै पृष्ठाय आर-एस-एस-पूरणम्',
 'tooltip-feed-atom' => 'अस्मै पृष्ठाय अणुपूरणम्',
 'tooltip-t-contributions' => 'अस्य योजकस्य योगदानानाम् आवलिः',
-'tooltip-t-emailuser' => 'एतस्मै योजकाय ईपत्रं प्रेष्यताम्',
-'tooltip-t-upload' => 'सà¤\82चिकाः आरोप्यन्ताम्',
-'tooltip-t-specialpages' => 'सरà¥\8dवà¥\87षाà¤\82 à¤µà¤¿à¤¶à¤¿à¤·à¥\8dà¤\9fपà¥\83षà¥\8dठानाà¤\82 à¤¸à¥\82à¤\9aà¥\80',
+'tooltip-t-emailuser' => 'एतस्मै योजकाय ई-पत्रं प्रेष्यताम्',
+'tooltip-t-upload' => 'सà¤\9eà¥\8dचिकाः आरोप्यन्ताम्',
+'tooltip-t-specialpages' => 'सरà¥\8dवà¥\87षाà¤\82 à¤µà¤¿à¤¶à¤¿à¤·à¥\8dà¤\9fपà¥\83षà¥\8dठानामà¥\8d à¤\86वलिà¤\83',
 'tooltip-t-print' => 'अस्य पृष्ठस्य मुद्रणयोग्या आवृत्तिः',
-'tooltip-t-permalink' => 'पृष्ठस्य अस्याः आवृत्तेः स्थिरसम्पर्कतन्तुः',
-'tooltip-ca-nstab-main' => 'à¤\86नà¥\8dतरà¥\8dयà¤\82 à¤¦à¥\83शà¥\8dयतामà¥\8d',
+'tooltip-t-permalink' => 'पृष्ठस्यास्य स्थायिपरिसन्धिः',
+'tooltip-ca-nstab-main' => 'à¤\86नà¥\8dतरà¥\8dविषयà¤\95à¤\82 à¤ªà¥\83षà¥\8dठà¤\82 à¤ªà¤¶à¥\8dयतà¥\81',
 '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' => 'तन्त्रसन्देशान् अवलोकयतु ।',
 'tooltip-ca-nstab-template' => 'फलकं दृश्यताम्',
 'tooltip-ca-nstab-help' => 'साहाय्यपुटम् अवलोकयतु ।',
 'tooltip-ca-nstab-category' => 'वर्गाणां पृष्ठं दृश्यताम्',
-'tooltip-minoredit' => 'à¤\87दà¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनà¤\82 à¤²à¤\98à¥\81परिवरà¥\8dतनरà¥\82पà¥\87ण अङ्क्यताम्',
+'tooltip-minoredit' => 'लà¤\98à¥\81परिवरà¥\8dतनतà¥\8dवà¥\87न à¤\87दà¤\82 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनमà¥\8d अङ्क्यताम्',
 'tooltip-save' => 'परिवर्तनानि रक्ष्यन्ताम्',
-'tooltip-preview' => 'भवता कृतानां परिवर्तनानां प्राग्दृश्यं दृश्यताम्, रक्षणात्पूर्वं कृपया इदम् उपयुज्यताम्।',
-'tooltip-diff' => 'पाठà¥\87 à¤­à¤µà¤¤à¤¾ à¤\95à¥\83तानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¦à¥\83शà¥\8dयनà¥\8dतामà¥\8d।',
+'tooltip-preview' => 'भवता/भवत्या कृतानां परिवर्तनानां प्राग्दृश्यं दृश्यताम्, रक्षणात्पूर्वं कृपया इदम् उपयुज्यताम्।',
+'tooltip-diff' => 'भवता/भवतà¥\8dया à¤\85तà¥\8dर à¤\95à¥\83तानि à¤ªà¤°à¤¿à¤µà¤°à¥\8dतनानि à¤¦à¥\8dरषà¥\8dà¤\9fà¥\81à¤\82 à¤¶à¤\95à¥\8dयतà¥\87',
 'tooltip-compareselectedversions' => 'पृष्ठस्य द्वयोः चितयोः आवृत्त्योः भेदः दृश्यताम्',
-'tooltip-watch' => 'इदं पृष्ठं भवतः अवेक्षणसूच्यां योज्यताम्',
+'tooltip-watch' => 'इदं पृष्ठं भवतः/भवत्याः अवेक्षणावल्यां योज्यताम्',
 'tooltip-watchlistedit-normal-submit' => 'शीर्षकानि अपनयतु ।',
 'tooltip-watchlistedit-raw-submit' => 'अवलोकनावलीं समुद्धरतु ।',
 'tooltip-recreate' => 'एतत्पुटं पूर्वमेव अपमर्जितः अतः पुन सृजतु ।',
 'tooltip-upload' => 'उत्तारणम् आरभताम्',
-'tooltip-rollback' => '"पà¥\82रà¥\8dण-पà¥\8dरतिà¤\97मनà¤\82(रà¥\8bलबà¥\88à¤\95à¥\8d à¤\87तà¥\8dयà¥\87तदà¥\8d)" à¤\85सà¥\8dय à¤ªà¥\83षà¥\8dठसà¥\8dय à¤¸à¤\82पादनानि à¤\85à¤\82तिम-यà¥\8bà¤\97दातà¥\83à¤\95à¥\83तानि à¤µà¤¿à¤ªà¤°à¥\80तà¥\80à¤\95रà¥\8bति à¤\8fà¤\95à¥\87न à¤\95à¥\8dलिà¤\95à¥\8dà¤\95ारà¥\87ण',
-'tooltip-undo' => '"निषà¥\8dà¤\95à¥\8dरियतामà¥\8d" à¤\87तà¥\8dयà¥\87तदà¥\8d à¤\87दà¤\82 à¤¸à¤®à¥\8dपादनà¤\82 à¤µà¤¿à¤ªà¤°à¥\80तà¥\80à¤\95रà¥\8bति, à¤¤à¤¥à¤¾ à¤\9a à¤¸à¤®à¥\8dपादनपà¥\8dरारà¥\82पà¤\82 à¤ªà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयरà¥\82पà¥\87ण à¤\89दà¥\8dà¤\98ाà¤\9fयति।
+'tooltip-rollback' => '"पà¥\8dरतà¥\8dयाहरणमà¥\8d (roll back)" à¤\87तà¥\8dयà¥\87ततà¥\8d à¤\85नà¥\8dतिमसमà¥\8dपादà¤\95सà¥\8dय à¤\85नà¥\8dतिमयà¥\8bà¤\97दानà¤\82 à¤¨à¤¿à¤°à¤¾à¤\95रà¥\8bति à¥¤',
+'tooltip-undo' => '"पà¥\82रà¥\8dववतà¥\8d" à¤\87ति à¤\85नà¥\8dतिमसमà¥\8dपादनमà¥\8d à¤\85पाà¤\95रà¥\8bति, à¤¸à¤®à¥\8dपादनपà¥\8dरारà¥\82पà¤\82 à¤ªà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयरà¥\82पà¥\87ण à¤\89दà¥\8dà¤\98ाà¤\9fयति, à¤¨à¤µà¥\80नसमà¥\8dपादनानà¥\8dतरà¤\82 à¤¸à¤®à¥\8dपादनपà¥\83षà¥\8dठà¤\82 à¤ªà¥\8dराà¤\97à¥\8dदà¥\83शà¥\8dयतà¥\8dवà¥\87न à¤ªà¥\8dरदरà¥\8dशयति à¤\9a à¥¤ 
 
-à¤\85सà¥\8dय à¤¸à¤¾à¤°à¤¾à¤\82शà¥\87 à¤\95ारणमपि à¤²à¥\87à¤\96ितà¥\81à¤\82 à¤¶à¤\95à¥\8dयतà¥\87।',
+à¤\85सà¥\8dय à¤¸à¤¾à¤°à¤¾à¤\82शà¥\87 à¤\85पाà¤\95रणसà¥\8dय à¤\95ारणमपि à¤²à¥\87à¤\96ितà¥\81à¤\82 à¤¶à¤\95à¥\8dयतà¥\87 ।',
 'tooltip-preferences-save' => 'आद्यताः रक्षतु ।',
-'tooltip-summary' => 'सà¤\82à¤\95à¥\8dषिपà¥\8dतà¤\83 सारांशः योज्यताम्',
+'tooltip-summary' => 'सà¤\99à¥\8dà¤\95à¥\8dषिपà¥\8dतसारांशः योज्यताम्',
 
 # Metadata
 'notacceptable' => 'भवतः ग्रहकस्य पठनेच्छारूपेण विकिवितारकः दत्तपाठं प्रकल्पितुं नैव शक्नोति ।',
@@ -3010,13 +3012,13 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 'thumbsize' => 'सङ्कुचितास्य आकारः ।',
 'widthheightpage' => '$1 × $2, $3 {{PLURAL:$1|पुटम्|पुटानि}} प्रयुक्तानि ।',
 'file-info' => 'सञ्चिकाकारः : $1, MIME प्रकारः $2',
-'file-info-size' => '$1 Ã\97 $2 à¤ªà¤¿à¤\95à¥\8dसà¥\87लानि, à¤¸à¤\82चिकायाः आकारः: $3, MIME-प्रकारः: $4',
+'file-info-size' => '$1 Ã\97 $2 à¤\9aितà¥\8dराणवà¤\83 (pixels), à¤¸à¤\9eà¥\8dचिकायाः आकारः: $3, MIME-प्रकारः: $4',
 'file-info-size-pages' => '$1 × $2  पिक्सेल्, सञ्चिकायाः आकारः :  $3 , MIME प्रकारः :  $4 ,  $5   {{PLURAL:$5|पुटम्|पुटानि}}',
-'file-nohires' => 'à¤\89à¤\9aà¥\8dà¤\9aतरà¤\82 à¤µà¤¿à¤­à¥\87दनà¤\82 नोपलब्धम्',
-'svg-long-desc' => 'SVG à¤¸à¤\82à¤\9aिà¤\95ा, à¤¸à¤¾à¤§à¤¾à¤°à¤£à¤¤à¤¯à¤¾ $1 Ã\97 $2 à¤ªà¤¿à¤\95à¥\8dसà¥\87लानि, à¤¸à¤\82चिकायाः आकारः : $3',
+'file-nohires' => 'à¤\8fतसà¥\8dमादधिà¤\95मà¥\8d à¤\89तà¥\8dतमà¤\97à¥\81णà¤\95à¤\82 (higher resolution) नोपलब्धम्',
+'svg-long-desc' => 'SVG à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ा, à¤¸à¤¾à¤§à¤¾à¤°à¤£à¤\82 $1 Ã\97 $2 à¤\9aितà¥\8dराणवà¤\83 (pixels), à¤¸à¤\9eà¥\8dचिकायाः आकारः : $3',
 'svg-long-desc-animated' => 'आश्वसिता SVG संचिका, साधारणतया $1 × $2 पिक्सेलानि, संचिकायाः आकारः : $3',
 'svg-long-error' => 'एषा अमान्या SVG सञ्चिका : $1',
-'show-big-image' => 'पà¥\82रà¥\8dणà¤\82 à¤µà¤¿à¤­à¥\87दनमà¥\8d',
+'show-big-image' => 'मà¥\82लसà¤\9eà¥\8dà¤\9aिà¤\95ा',
 'show-big-image-preview' => 'अस्य पूर्वावलोकनस्य आकारः : $1',
 'show-big-image-other' => 'अन्याः {{PLURAL:$2| प्रस्तवः|प्रस्तावाः}}:  $1 ।',
 'show-big-image-size' => '$1 × $2  पिक्सेल्',
@@ -3049,22 +3051,22 @@ $2 इति प्रकारस्य अवरोधं कर्तुं 
 'just-now' => 'अधुनैव',
 
 # Bad image list
-'bad_image_list' => 'रà¥\82पमà¥\8d à¤\8fवमà¥\8d à¤\85सà¥\8dति -
+'bad_image_list' => 'à¤\85तà¥\8dर à¤ªà¥\8dरारà¥\82पà¤\82 à¤\8fवà¤\82 à¤­à¤µà¥\87तà¥\8d -
 
-à¤\95à¥\87वलà¤\82 à¤¸à¥\82à¤\9aà¥\8dयनà¥\8dतरà¥\8dà¤\97ताà¤\83 à¤µà¤¿à¤·à¤¯à¤¾à¤\83 (* à¤\87ति à¤\9aिनà¥\8dहातà¥\8d à¤\86रभमाणाà¤\83 à¤ªà¤\82à¤\95à¥\8dतयà¤\83)परामà¥\83षà¥\8dà¤\9fाà¤\83
+à¤\95à¥\87वलमà¥\8d à¤\86वलà¥\8dयनà¥\8dतरà¥\8dà¤\97ताà¤\83 à¤µà¤¿à¤·à¤¯à¤¾à¤\83 (* à¤\87ति à¤\9aिनà¥\8dहातà¥\8d à¤\86रभमाणाà¤\83 à¤ªà¤\99à¥\8dà¤\95à¥\8dतयà¤\83) à¤\86à¤\95लिताà¤\83 
 
-प्रथमः सम्पर्कतन्तुः दोषपूर्णां सञ्चिकां प्रत्येव गच्छेत्।
-तस्याम् एव पङ्क्तौ उत्तरोत्तरसम्पर्कतन्तवः अपवादाः ज्ञेयाः। अर्थात् येषु पृष्ठेषु एषा सञ्चिका योजिता स्यात्।',
+पङ्क्त्यां विद्यमाना प्रथमा परिसन्धिः (link) दोषपूर्णया सञ्चिकया सह परिसन्धिता (linked) स्यादेव । तस्यामेव पङ्क्तौ उत्तरोत्तरं विद्यमानाः परिसन्धयः अपवादिताः ज्ञेयाः, अर्थात् अत्र तेषां पृष्ठानाम् आवलिरेव भविष्यति, येषु एषा सञ्चिका विद्यते ।',
 
 # Metadata
-'metadata' => 'à¤\85धिदतà¥\8dतानि',
-'metadata-help' => 'à¤\85सà¥\8dयाà¤\82 à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ायामà¥\8d à¤\85तिरिà¤\95à¥\8dताà¤\83 à¤µà¤¿à¤·à¤¯à¤¾à¤\83 à¤¸à¤¨à¥\8dति, à¤\95दाà¤\9aितà¥\8d à¤\86à¤\82à¤\95िà¤\95-à¤\9bायाà¤\9aितà¥\8dरà¤\97à¥\8dराहà¤\95à¥\87न à¤¸à¥\8dà¤\95à¥\8dयानरà¥\8d à¤\87तà¥\8dयनà¥\87न à¤µà¤¾ à¤¸à¥\8dरषà¥\8dà¤\9fाà¤\83 à¤µà¤¾ à¤\86à¤\82à¤\95िà¤\95à¥\80à¤\95à¥\83ताà¤\83 à¤µà¤¾ à¤¸à¥\8dयà¥\81à¤\83 à¥¤
+'metadata' => 'पà¥\8dरदतà¥\8dताà¤\82शà¤\83 (दतà¥\8dताà¤\82शविषयà¤\95दतà¥\8dताà¤\82शà¤\83 à¤\85यमà¥\8d)',
+'metadata-help' => 'à¤\85नà¥\87न à¤¸à¤¹ à¤µà¤¿à¤¸à¥\8dतà¥\83तमाहितà¥\80 à¤¸à¤²à¥\8dलà¤\97à¥\8dना à¤\85सà¥\8dति, à¤ªà¥\8dरतिबिमà¥\8dबà¤\97à¥\8dराहà¤\95à¥\87न (scanner) à¤\85à¤\99à¥\8dà¤\95à¥\80यà¤\9bायाà¤\9aितà¥\8dरà¤\97à¥\8dराहà¤\95à¥\87न (digital camera ) à¤µà¤¾ à¤\85सà¥\8dयाà¤\83 à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\83 à¤°à¤\9aना à¤\9cाता à¤¸à¥\8dयातà¥\8d à¥¤ 
 
-यदि à¤\8fषा à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ा à¤®à¥\82लावसà¥\8dथातà¤\83 à¤ªà¤°à¤¿à¤µà¤°à¥\8dतिता à¤\85सà¥\8dति, à¤¤à¤°à¥\8dहि à¤\85तà¥\8dर à¤\95ानिà¤\9aिदà¥\8d à¤µà¤¿à¤µà¤°à¤£à¤¾à¤¨à¤¿ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतिताà¤\82 à¤¸à¤\82à¤\9aिà¤\95ाà¤\82 à¤ªà¥\82रà¥\8dणतया à¤¨ à¤ªà¥\8dरदरà¥\8dशयà¥\87यà¥\81à¤\83 ।',
+à¤\8fषा à¤¸à¤\9eà¥\8dà¤\9aिà¤\95ा à¤¯à¤¦à¤¿ à¤®à¥\82लावसà¥\8dथातà¥\8d à¤ªà¤°à¤¿à¤µà¤°à¥\8dतà¥\8dयतà¥\87, à¤¤à¤°à¥\8dहि à¤\85तà¥\8dरसà¥\8dथानि à¤\95ानिà¤\9aितà¥\8d à¤µà¤¿à¤µà¤°à¤£à¤¾à¤¨à¤¿ à¤ªà¤°à¤¿à¤µà¤°à¥\8dतितसà¤\9eà¥\8dà¤\9aिà¤\95ायाà¤\82 à¤ªà¥\82रà¥\8dणतया à¤¨ à¤¦à¥\83शà¥\8dयनà¥\8dतà¥\87 ।',
 'metadata-expand' => 'विस्तारितानि विवरणानि दर्शयतु',
 'metadata-collapse' => 'विस्तारितानि विवरणानि लोपयतु',
-'metadata-fields' => 'अस्मिन् तालिकायां दर्शिता सूचना संचिकायाः अधस्तात् मेटाडाटा इत्यस्मिन् सदा दर्शिता भविष्यति।
-अवशिष्टा सूचना सदा निगूढा भविष्यति।
+'metadata-fields' => 'प्रदत्तांशस्य (metadata) स्वरूपं यदा लघु भविष्यति, तदा एतस्मिन् सन्देशे आवलिकृतस्य EXIA प्रदत्तांशस्य (metadata) सूचनाः चित्रप्रदर्शनेन सह द्रष्टुं शक्यन्ते ।
+पूर्वनिर्दिष्टरूपेण (default) अन्याः सूचनाः निगूढाः भविष्यन्ति । 
+
 * make
 * model
 * datetimeoriginal
@@ -3613,16 +3615,16 @@ $5
 'watchlistedit-raw-removed' => '{{PLURAL:$1|1शीर्षकम्|$1 शीर्षकानि}} अपनीतानि ।',
 
 # Watchlist editing tools
-'watchlisttools-view' => 'à¤\89à¤\9aितानि परिवर्तनानि दृश्यन्ताम्',
-'watchlisttools-edit' => 'à¤\85वà¥\87à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80 à¤¦à¥\83शà¥\8dयताà¤\82 सम्पाद्यतां च',
-'watchlisttools-raw' => 'à¤\85परिषà¥\8dà¤\95à¥\83ता à¤\85वà¥\87à¤\95à¥\8dषणसà¥\82à¤\9aà¥\80 à¤¸à¤®à¥\8dपादà¥\8dयतामà¥\8d',
+'watchlisttools-view' => 'यà¥\8bà¤\97à¥\8dयपरिवर्तनानि दृश्यन्ताम्',
+'watchlisttools-edit' => 'à¤\85वà¥\87à¤\95à¥\8dषणाऽऽवलिà¤\83 à¤¦à¥\83शà¥\8dयताà¤\82, सम्पाद्यतां च',
+'watchlisttools-raw' => 'à¤\85पà¤\95à¥\8dवामà¥\8d à¤\85वलà¥\8bà¤\95नावलà¥\80à¤\82 à¤¸à¤®à¥\8dपादयतà¥\81 à¥¤',
 
 # Signatures
 'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|अम्भाषणम्]])',
 
 # Core parser functions
 'unknown_extension_tag' => 'अज्ञातं वर्तमानसूत्रम् $1',
-'duplicate-defaultsort' => '\'\'\'पà¥\8dरबà¥\8bधà¤\83\'\'\' à¤ªà¥\81रानà¥\80 à¤®à¥\82ल à¤\95à¥\8dरमाà¤\82à¤\95न à¤\95à¥\81à¤\82à¤\9cà¥\80 "$1" à¤\95à¥\87 à¤¬à¤\9cाय à¤\85ब à¤®à¥\82ल à¤\95à¥\8dरमाà¤\82à¤\95न à¤\95à¥\81à¤\82à¤\9cà¥\80 "$2" à¤¹à¥\8bà¤\97à¥\80।',
+'duplicate-defaultsort' => '\'\'\'पà¥\82रà¥\8dवसà¥\82à¤\9aना\'\'\' "$1" à¤\87ति à¤ªà¥\81रातनà¤\82 à¤®à¥\82लà¤\95à¥\8dरमाà¤\99à¥\8dà¤\95नà¤\82 à¤\95à¥\81डà¥\8dमलà¤\82 à¤µà¤¿à¤¹à¤¾à¤¯  "$2" à¤\87ति à¤¨à¤µà¥\80नà¤\82 à¤®à¥\82लà¤\95à¥\8dरमाà¤\99à¥\8dà¤\95नà¤\95à¥\81णà¥\8dडलतà¥\8dवà¥\87न à¤¸à¥\8dवयमà¥\87व à¤¨à¤¯à¤¤à¤¿ à¤\8fततà¥\8d ।',
 
 # Special:Version
 'version' => 'आवृत्तिः',
@@ -3668,7 +3670,7 @@ $5
 'fileduplicatesearch-noresults' => '"$1" इति नाम्ना सञ्चिका न दृष्टा ।',
 
 # Special:SpecialPages
-'specialpages' => 'विशà¥\87षपृष्ठानि',
+'specialpages' => 'विशिषà¥\8dà¤\9fपृष्ठानि',
 'specialpages-note' => '* साधारणं विशेषपुटम् । 
 * <span class="mw-specialpagerestricted">प्रतिद्धं विशेषपुटम् ।</span>',
 'specialpages-group-maintenance' => 'निर्वहणवृत्तानि ।',
@@ -3689,14 +3691,13 @@ $5
 'intentionallyblankpage' => 'इदं पृष्ठं बुद्ध्या एव रिक्तं रक्षितमस्ति ।',
 
 # External image whitelist
-'external_image_whitelist' => '  #इयं पङ्क्तिः यथावद् भवतु<pre>
-#नीचे मानक अभिव्यक्ति के अंश डालें (केवल वही अंश जो // के बीच आएगा)
-#इनका मेल बाहरी छवियों की कड़ियों से करने की कोशिक की जाएगी
-#जिनका मेल हो जाएगा वे छवि की तरह दिखाई जाएँगे, वरना केवल उस छवि की कड़ी दिखाई जाएगी
-#जो पंक्तियाँ # से शुरू होती हैं उन्हें टिप्पणी माना जाएगा
-#यह लघु-दीर्घ अक्षर संवेदी नहीं है
-
-#सभी मानक अभिव्यक्ति अंश इस पंक्ति के ऊपर डालें। इस पक्ति को जस का तस छोड़ दें</pre>',
+'external_image_whitelist' => '# एषा पङ्क्तिः न परिवर्त्यताम् <pre>
+# अत्र केवलं सामान्यचिह्नानाम् उपयोगः क्रियताम् (यथा // इत्यनयोः मध्ये स्थापनीयः भागः)
+# इत्यस्य बहिस्तात् आगतानां चित्राणां सार्वसङ्केतैः (U R L) सह तुलना भवति
+# यत् चित्रम् अनुकूलं भवति तत् योज्यते, अन्यथा तस्य चित्रस्य परिसन्धिः योज्यते । 
+# पङ्कतयः # इतस्मात् आरभन्ते । एतत् सूचना इति उच्यते । 
+# अत्र सर्वं पक्षविगुणं case-insensitive वर्तते 
+# सर्वान् regex भागान् अस्याः पङ्क्तेः उपरि स्थापयतु । एतां पङ्क्तिम् एवमेव स्थापयतु </pre>',
 
 # Special:Tags
 'tags' => 'तर्कसिद्धानि परिवर्तनाङ्कनानि',
index 159079f..04235d4 100644 (file)
@@ -292,7 +292,6 @@ $1',
 'disclaimers' => 'Бүк охсунуу',
 'disclaimerpage' => 'Project:Бүк охсунуу',
 'edithelp' => 'Уларытааччыларга көмө',
-'helppage' => 'Help:Көмө',
 'mainpage' => 'Сүрүн сирэй',
 'mainpage-description' => 'Сүрүн сирэй',
 'policy-url' => 'Project:Сиэрэ',
@@ -485,8 +484,6 @@ $2',
 'gotaccountlink' => 'Аатыҥ',
 'userlogin-resetlink' => 'Киирэр тылгын умнубуккун дуо?',
 'userlogin-resetpassword-link' => 'Киирии тылы уларытыы',
-'helplogin-url' => 'Help:Бэлиэ-ааты киллэрии',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Бэлиэтэниигэ көмө]]',
 'userlogin-loggedin' => 'Маннык аатынан киирбиккин {{GENDER:$1|$1}}.
 Атын аатынан киирэргэ аллара көстөр форманы туһан.',
 'userlogin-createanother' => 'Атын аатынан бэлиэтэн',
@@ -742,7 +739,7 @@ IP-аадырыһыҥ $3, бобуу нүөмэрэ — #$5.
 'newarticle' => '(Саҥа ыстатыйа)',
 'newarticletext' => 'Эн суох сирэйгэ киирэ сатаатыҥ.
 Маннык ааттаах саҥа ыстатыйаны оҥорор буоллаххына, аллара баар түннүккэ суруй
-(сиһ. [[{{MediaWiki:Helppage}}|көмөнү]] көрүөххүн сөп).
+(сиһ. [$1 көмөнү] көрүөххүн сөп).
 Өскө манна сыыһа киирбит буоллаххына интэриниэтиҥ бырагыраамматын "төнүн" диэххин сөп.',
 'anontalkpagetext' => "----''Бу аатын эппэтэх кыттааччы ырытар сирэйэ.
 IP-аадырыһа эрэ көстөр.
@@ -982,8 +979,6 @@ IP-аадырыһа эрэ көстөр.
 'revdelete-show-file-submit' => 'Сөп',
 'revdelete-selected' => "'''[[:$1]] сирэй {{PLURAL:$2|талыллыбыт торума|талыллыбыт торумнара}}:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Сирэй талыллыбыт историята|Сирэй талыллыбыт историялара}}:'''",
-'revdelete-text' => "'''Сотуллубут барыллар сирэй историятыгар киириэхтэрэ, ол гынан баран сорох барыллар көннөрү киһиэхэ көстүөхтэрэ суоҕа.'''
-{{SITENAME}} дьаһабыллара кистэммит суруктары көрөр уонна сотуллубуту төттөрү төннөрөр кыахтаахтар (эбии хааччахтааһын турбатах буоллаҕына).",
 'revdelete-confirm' => 'Бука диэн кырдьык бу дьайыыны онороргун, содула туох буоларын өйдүүргүн уонна [[{{MediaWiki:Policy-url}}|сиэри]] тутуһаргын бигэргэт.',
 'revdelete-suppress-text' => "Кистээһин маннык түбэлтэлэргэ '''эрэ''' оҥоһуллар:
 
index 89616cf..52c2e07 100644 (file)
@@ -250,7 +250,6 @@ $1',
 'disclaimers' => 'Dạbi bạnuḱko',
 'disclaimerpage' => 'Project: Sadharon ḍiskleimarko(General disclaimer)',
 'edithelp' => 'Tońge goṛo',
-'helppage' => 'Help: Bhitri renaḱ',
 'mainpage' => 'Mukhiạ Sakam',
 'mainpage-description' => 'Mukhiạ sakam',
 'policy-url' => 'Project:Ritiniti',
@@ -538,7 +537,7 @@ Amaḱ IP ṭhikana do noa sakam sompadon jạṛre rekorḍoḱa.",
 Bhitri bolo kateḱ noa nãwã ekaunṭ lạgit uku nambar "[[Special:ChangePassword Change password]]" sakam khonem bodol daṛyakya.',
 'newarticle' => '(Nãwa)',
 'newarticletext' => "Am do oka mitṭen joṛaoem pańja akada, onaṭak do bạnuḱa.
-Ona sakam tear lạgit́te, latar reaḱ baksore ol ehoṕmẽ (arhõ jạsti baḍae lạgit́te [[{{mediaWiki:Helppage}}help page]] pańjaemẽ).
+Ona sakam tear lạgit́te, latar reaḱ baksore ol ehoṕmẽ (arhõ jạsti baḍae lạgit́te [[{{mediaWiki:Helppage}}help page] pańjaemẽ).
 Am do judi nonḍe vulkatem heć akan khan, tobe amaḱ sendrakore '''back''' baṭon linmẽ.",
 'noarticletext' => 'Nitoḱ noa sakamre do ol bạnuḱa.
 
index 7efa318..d68ef2c 100644 (file)
@@ -274,7 +274,6 @@ $messages = array(
 'disclaimers' => 'Abbertimentos',
 'disclaimerpage' => 'Project:Abbertimentos generales',
 'edithelp' => "Agiudu pro s'acontzu o sa scritura",
-'helppage' => 'Help:Agiudu',
 'mainpage' => 'Pàgina Base',
 'mainpage-description' => 'Pàgina Base',
 'policy-url' => 'Project:Polìticas',
@@ -502,7 +501,7 @@ Pro praxere spetzìfica totu is particulares in antis in carche siat pregunta de
 'accmailtitle' => 'Password ispedia.',
 'newarticle' => '(Nou)',
 'newarticletext' => "Custa pàgina no esistit galu.
-Pro creare sa pàgina, scrie in su box inoghe in bàsciu (abbàida sa [[{{MediaWiki:Helppage}}|pàgina de agiudu]] pro àteras informatziones).
+Pro creare sa pàgina, scrie in su box inoghe in bàsciu (abbàida sa [$1 pàgina de agiudu] pro àteras informatziones).
 Si ses intradu inoghe pro sbàlliu, carca in su browser tuo su butone '''back/indietro'''.",
 'anontalkpagetext' => "----''Custa est sa pàgina de cuntierra de unu usuàriu anònimu ki no at creadu unu account galu, o ki non dd'usat. Pro custu impreamus su nùmeru de indiritzos IP pro ddu identificare. Is indiritzos IP podent però èsser cundivìdidos dae unos cantos usuàrios. Si ses unu usuàriu anònimu e ritenes ki custos cummentos non sunt diretos a tue, pro praxere [[Special:UserLogin/signup|crea unu account]] o [[Special:UserLogin|identifica·ti (log in)]] pro evitare cunfusione cun àteros usuàrios anònimos.''",
 'noarticletext' => 'In custu momentu sa pàgina est bùida.
@@ -607,6 +606,9 @@ Cosas de ammentare: '''({{int:cur}})''' = diferèntzias cun sa versione currente
 'nextn' => '{{PLURAL:$1|imbeniente|imbenientes $1}}',
 'shown-title' => 'Ammustra $1 {{PLURAL:$1|resurtadu|resurtados}} pro pàgina',
 'viewprevnext' => 'Càstia ($1 {{int:pipe-separator}} $2) ($3).',
+'searchprofile-articles' => 'Pàginas de càbidu',
+'searchprofile-project' => 'Pàginas de agiudu e de su progetu',
+'searchprofile-images' => 'Multimèdia',
 'searchprofile-everything' => 'Totu',
 'searchprofile-advanced' => 'Avantzada',
 'searchprofile-articles-tooltip' => 'Chirca in $1',
@@ -995,7 +997,7 @@ S'indiritzu chi as insertadu in is [[Special:Preferences|preferèntzias usuàriu
 
 # Watchlist
 'watchlist' => 'Sa watchlist mea',
-'mywatchlist' => 'Sa watchlist mea',
+'mywatchlist' => 'Pàginas annotadas',
 'nowatchlist' => 'No as indicadu pàginas in sa watchlist tua.',
 'watchnologin' => 'No intrau (log in)',
 'watchnologintext' => 'Devi prima fare il [[Special:UserLogin|login]]
index e7e29dd..a79fb82 100644 (file)
@@ -398,7 +398,6 @@ $1",
 'disclaimers' => 'Avvirtenzi',
 'disclaimerpage' => 'Project:Avvirtenzi ginirali',
 'edithelp' => 'Guida',
-'helppage' => 'Help:Cuntinuti',
 'mainpage' => 'Pàggina principali',
 'mainpage-description' => 'Pàggina principali',
 'policy-url' => 'Project:Policy',
@@ -571,8 +570,6 @@ Accura chi quarchi pàggina pò cuntinuari a èssiri ammustrata comu si nun avis
 'gotaccountlink' => 'Trasi',
 'userlogin-resetlink' => "T'ascurdasti li dittagli pâ trasuta?",
 '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)',
@@ -749,7 +746,7 @@ Forsi ca fu spustata o cancillata na mentri ca stàvutu taliannu la pàggina.',
 La password pi stu novu account pò essiri canciata â accessu nâ pàggina pi [[Special:ChangePassword|canciari password]].',
 'newarticle' => '(Novu)',
 'newarticletext' => "Sta pàggina ancora nun esisti.
-Pi criari na pàggina cu stu tìtulu, accumenza a scrìviri ccassutta (talìa la [[{{MediaWiki:Helppage}}|pàggina d'aiutu]] pi aviri maiuri nfurmazzioni).
+Pi criari na pàggina cu stu tìtulu, accumenza a scrìviri ccassutta (talìa la [$1 pàggina d'aiutu] pi aviri maiuri nfurmazzioni).
 Si agghicasti ccà pi sbagghiu, clicca lu buttuni ''''n arreri (back)''' dû tò browser.",
 'anontalkpagetext' => "----''Chista è la pàggina di discussioni di n’utenti anònimu, ca nun criau ancora n’accessu o ca nun l’usa.
 P’idintificàrilu è pirciò nicissariu usari lu nùmmiru di lu sò nnirizzu IP.
@@ -919,8 +916,6 @@ All'amministratura è ancora possibili [$1 talìari lu confrontu] si nicissariu.
 'revdelete-show-file-submit' => 'Sì',
 'revdelete-selected' => "'''{{PLURAL:$2|Virsioni silizziunata|Virsioni silizziunati}} di [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Eventu dû riggistru silizziunatu|Eventi dû riggistru silizziunati}}:'''",
-'revdelete-text' => "'''Li virsioni cancillati rèstanu visìbbili ntâ cronoluggìa dâ pàggina, mentri lu testu cuntinutu nun è accissìbbili a lu pùbbricu.'''
-L'àutri amministratura dû situ ponnu accèdiri comu è gghiè a li cuntinuti ammucciati e ripristinàrili attraversu sta stissa nterfaccia, siddu nun hannu statu mpustati àutri limitazzioni n fasi di nstallazzioni dû situ.",
 'revdelete-suppress-text' => "La rimozzioni havi a essiri utilizzata '''sulu''' ni sti casi:
 * Dati pirsonali inoppurtuni
 *: ''ndirizzi, nnummara di telefunu, codici fiscali, ecc.''",
index 62148c4..136a516 100644 (file)
@@ -8,6 +8,7 @@
  * @file
  *
  * @author (vinny)
+ * @author AmaryllisGardener
  * @author Avicennasis
  * @author Derek Ross
  * @author John Reid
@@ -29,39 +30,40 @@ $messages = array(
 'tog-hideminor' => 'Skauk smaa eidits in recent chynges',
 'tog-hidepatrolled' => 'Skauk patrolled eidits in recent chynges',
 'tog-newpageshidepatrolled' => 'Skauk patrolled pages frae the new page leet',
-'tog-extendwatchlist' => 'Mak watchleet bigger tae shaw aw chynges,no jyst the maist recent',
-'tog-usenewrc' => 'Groop chynges bi page in recent chynges and watchleet',
+'tog-extendwatchlist' => 'Mak watchleet bigger tae shaw aw chynges, no just the maist recent',
+'tog-usenewrc' => 'Groop chynges bi page in recent chynges n watchleet',
 'tog-numberheadings' => 'Auto-nummer heidins',
-'tog-showtoolbar' => 'Shaw edit tuilbar',
-'tog-editondblclick' => 'Edit pages on dooble-clap (JavaScript)',
+'tog-showtoolbar' => 'Shaw eidit tuilbaur',
+'tog-editondblclick' => 'Eidit pages oan dooble-clap (JavaScript)',
 'tog-editsectiononrightclick' => 'Enable section editin bi richt-clapin on section teitles',
 'tog-rememberpassword' => 'Mynd ma password oan this browser (fer ae maximum o $1 {{PLURAL:$1|day|days}})',
-'tog-watchcreations' => 'Add pages that Ah mak an files Ah uplaid til ma watchleet',
-'tog-watchdefault' => 'Add pages an files that Ah edit til ma watchleet',
-'tog-watchmoves' => 'Eik pages an files that Ah muiv til ma watchleet',
-'tog-watchdeletion' => 'Eik pages an files that Ah get rid o til ma watchleet',
+'tog-watchcreations' => 'Add pages that Ah cræft n files that Ah uplaid til ma watchleet',
+'tog-watchdefault' => 'Add pages n files that Ah eedit til ma watchleet',
+'tog-watchmoves' => 'Add pages n files that Ah muiv til ma watchleet',
+'tog-watchdeletion' => 'Eik pages n files that Ah get rid o til ma watchleet',
 'tog-minordefault' => 'Mairk aa edits "smaa" bi defaut',
-'tog-previewontop' => 'Shaw owerview afore eidit kist an no efter it',
-'tog-previewonfirst' => 'Shaw scance on first edit',
+'tog-previewontop' => 'Shaw owerview afore eedit kist n naw efter it',
+'tog-previewonfirst' => 'Shaw luikower oan firstwhile eidit',
 'tog-enotifwatchlistpages' => 'Wab-mail me whan ae page or file on ma watchleet is chynged',
-'tog-enotifusertalkpages' => 'Send me ae email whan ma uiser talk page is chynged',
-'tog-enotifminoredits' => 'Send me ae wab-mail fer wee edits o pages an files ava',
+'tog-enotifusertalkpages' => 'Send me ae wab-mail whan ma uiser tauk page is chynged',
+'tog-enotifminoredits' => 'Send me ae wab-mail fer wee eedits o pages n files ava',
 'tog-enotifrevealaddr' => 'Shaw ma email address in notification mails',
 'tog-shownumberswatching' => 'Shaw the nummer o watching uisers',
+'tog-oldsig' => 'Exeestin signatur:',
 'tog-fancysig' => 'Treat signature as wikitext (wioot aen autæmatic airtin)',
-'tog-uselivepreview' => 'Uise live preview (experimental)',
-'tog-forceeditsummary' => 'Gie me a jottin when A dinnae put in a edit summary',
+'tog-uselivepreview' => 'Uise live luik ower (experimental)',
+'tog-forceeditsummary' => 'Gie me ae jottin when Ah dinnae put in aen eidit owerview',
 'tog-watchlisthideown' => 'Skauk ma eidits frae the watchleet',
 'tog-watchlisthidebots' => 'Skauk bot eidits frae the watchleet',
-'tog-watchlisthideminor' => 'Dinna shaw sma edits on ma watchleet',
-'tog-watchlisthideliu' => 'Skauk eidits bi loggit in uisers frae the watchleet',
-'tog-watchlisthideanons' => 'Skauk eidits bi nameless uisers frae the watchleet',
-'tog-watchlisthidepatrolled' => 'Skauk patrolled eidits frae the watchlist',
+'tog-watchlisthideminor' => 'Dinna shaw smaa eidits oan ma watchleet',
+'tog-watchlisthideliu' => 'Skauk eidits bi loggit in uisers fae the watchleet',
+'tog-watchlisthideanons' => 'Skauk eidits bi nameless uisers fae the watchleet',
+'tog-watchlisthidepatrolled' => 'Skauk patrolled eidits fae the watchleet',
 'tog-ccmeonemails' => 'Gie me copies o emails A write tae ither uisers',
 'tog-diffonly' => 'Dinna shaw page contents ablo diffs',
-'tog-showhiddencats' => 'Shaw hidden categories',
+'tog-showhiddencats' => "Shaw Skauk't categeries",
 'tog-norollbackdiff' => 'Lave oot diff efter rowin back',
-'tog-useeditwarning' => 'Warnish me whan a lea aen edit page wi onsaved chynges',
+'tog-useeditwarning' => 'Warnish me whan Ah lea aen eidit page wi onhained chynges',
 'tog-prefershttps' => 'Aye uise ae secure connection whan loggit in',
 
 'underline-always' => 'Aye',
@@ -80,8 +82,8 @@ $messages = array(
 'tuesday' => 'Tysday',
 'wednesday' => 'Wadensday',
 'thursday' => 'Fuirsday',
-'friday' => 'Friday',
-'saturday' => 'Seturday',
+'friday' => 'Fryday',
+'saturday' => 'Setturday',
 'sun' => 'Sun',
 'mon' => 'Mon',
 'tue' => 'Tue',
@@ -102,9 +104,9 @@ $messages = array(
 'november' => 'November',
 'december' => 'December',
 'january-gen' => 'Januair',
-'february-gen' => 'February',
+'february-gen' => 'Febuair',
 'march-gen' => 'Mairch',
-'april-gen' => 'Apryle',
+'april-gen' => 'Aprile',
 'may-gen' => 'Mey',
 'june-gen' => 'Juin',
 'july-gen' => 'Julie',
@@ -131,7 +133,7 @@ $messages = array(
 'april-date' => '$1 Apryl',
 'may-date' => '$1 Mey',
 'june-date' => '$1 Juin',
-'july-date' => '$1 Juli',
+'july-date' => '$1 Julie',
 'august-date' => '$1 August',
 'september-date' => '$1 September',
 'october-date' => '$1 October',
@@ -144,8 +146,8 @@ $messages = array(
 'subcategories' => 'Subcategories',
 'category-media-header' => 'Eetems in category "$1"',
 'category-empty' => "''This category haes no pages or eetems at the meenit.''",
-'hidden-categories' => '{{PLURAL:$1|Hidden categorie|Hidden categories}}',
-'hidden-category-category' => 'Hidden cætegories',
+'hidden-categories' => "{{PLURAL:$1|Skauk't categerie|Skauk't categeries}}",
+'hidden-category-category' => "Skauk't cætegories",
 'category-subcat-count' => '{{PLURAL:$2|This category juist haes the follaein subcategory.|This category haes the follaein {{PLURAL:$1|subcategory|$1 subcategories}}, oot o $2 awthegither.}}',
 'category-subcat-count-limited' => 'This category haes the follaein {{PLURAL:$1|subcategory|$1 subcategories}}.',
 'category-article-count' => '{{PLURAL:$2|This category contains the ae follaein page.|The follaein {{PLURAL:$1|page|$1 pages}} is in this category, oot o $2 total.}}',
@@ -155,7 +157,7 @@ $messages = array(
 'listingcontinuesabbrev' => 'cont.',
 'index-category' => "Index't pages",
 'noindex-category' => 'Noindexed pages',
-'broken-file-category' => 'Pages wi broken file airtins',
+'broken-file-category' => 'Pages wi broken file links',
 
 'about' => 'Aboot',
 'article' => 'Content page',
@@ -165,14 +167,14 @@ $messages = array(
 'morenotlisted' => 'This leet isna complete.',
 'mypage' => 'Ma page',
 'mytalk' => 'Ma tauk',
-'anontalk' => 'Talk fer this IP address',
+'anontalk' => 'Tauk fer this IP address',
 'navigation' => 'Navigation',
-'and' => '&#32;an',
+'and' => '&#32;n',
 
 # Cologne Blue skin
 'qbfind' => 'Rake',
 'qbbrowse' => 'Brouse',
-'qbedit' => 'Edit',
+'qbedit' => 'Eidit',
 'qbpageoptions' => 'This page',
 'qbmyoptions' => 'Ma pages',
 'faq' => 'ASQ',
@@ -181,13 +183,13 @@ $messages = array(
 # Vector skin
 'vector-action-addsection' => 'Add topic',
 'vector-action-delete' => 'Delyte',
-'vector-action-move' => 'Flit',
+'vector-action-move' => 'Muiv',
 'vector-action-protect' => 'Fend',
 'vector-action-undelete' => 'Ondelyte',
 'vector-action-unprotect' => 'Chynge protection',
 'vector-view-create' => 'Mak',
-'vector-view-edit' => 'Edit',
-'vector-view-history' => 'See history',
+'vector-view-edit' => 'Eedit',
+'vector-view-history' => 'See histerie',
 'vector-view-view' => 'Read',
 'vector-view-viewsource' => 'View soorce',
 'actions' => 'Actions',
@@ -196,29 +198,29 @@ $messages = array(
 
 'navigation-heading' => 'Navigâtion menu',
 'errorpagetitle' => 'Mistak',
-'returnto' => 'Return tae $1.',
+'returnto' => 'Return til $1.',
 'tagline' => 'Frae {{SITENAME}}',
 'help' => 'Help',
 'search' => 'Rake',
 'searchbutton' => 'Rake',
 'go' => 'Gang',
 'searcharticle' => 'Gang',
-'history' => 'Page history',
-'history_short' => 'History',
+'history' => 'Page histerie',
+'history_short' => 'Histerie',
 'updatedmarker' => 'chynged sin ma hindermast visit',
 'printableversion' => 'Prent version',
 'permalink' => 'Permanent airtin',
 'print' => 'Prent',
 'view' => 'View.',
-'edit' => 'Edit',
+'edit' => 'Eedit',
 'create' => 'Mak',
-'editthispage' => 'Edit this page',
+'editthispage' => 'Eedit this page',
 'create-this-page' => 'Mak this page',
 'delete' => 'Delyte',
 'deletethispage' => 'Delyte this page',
 'undeletethispage' => 'Ondelyte this page',
 'undelete_short' => 'Undelete {{PLURAL:$1|ane edit|$1 edits}}',
-'viewdeleted_short' => 'View {{PLURAL:$1|yin deletit eidit|$1 deletit eidits}}',
+'viewdeleted_short' => 'See {{PLURAL:$1|yin delytit eedit|$1 delytit eedits}}',
 'protect' => 'Fend',
 'protect_change' => 'chynge',
 'protectthispage' => 'Fend this page',
@@ -226,29 +228,29 @@ $messages = array(
 'unprotectthispage' => 'Chynge fend fer this page',
 'newpage' => 'New page',
 'talkpage' => 'Blether ower this page',
-'talkpagelinktext' => 'Talk',
+'talkpagelinktext' => 'Tauk',
 'specialpage' => 'Byordinar Page',
 'personaltools' => 'Personal tuils',
-'postcomment' => 'Eik a message',
+'postcomment' => 'New section',
 'articlepage' => 'Leuk at content page',
 'talk' => 'Collogue',
 'views' => 'Views',
 'toolbox' => 'Tuilkist',
 'userpage' => 'View uiser page',
-'projectpage' => 'View project page',
+'projectpage' => 'See waurk page',
 'imagepage' => 'look ower image page',
 'mediawikipage' => 'View message page',
 'templatepage' => 'View template page',
 'viewhelppage' => 'View help page',
-'categorypage' => 'Scance category page',
-'viewtalkpage' => 'Scance ower collogue',
+'categorypage' => 'See categerie page',
+'viewtalkpage' => 'See tauk',
 'otherlanguages' => 'In ither leids',
 'redirectedfrom' => '(Reguidit frae $1)',
-'redirectpagesub' => 'Redirect page',
+'redirectpagesub' => 'Reguidal page',
 'lastmodifiedat' => 'This page wis hindermaist chynged $2, $1.',
 'viewcount' => 'This page haes been accesst $1 {{PLURAL:$1|once|$1 times}}.',
 'protectedpage' => 'Protectit page',
-'jumpto' => 'Lowp tae:',
+'jumpto' => 'Jump til:',
 'jumptonavigation' => 'navigation',
 'jumptosearch' => 'rake',
 'view-pool-error' => 'Sorrie, the servers ar owerlaided at the moment.
@@ -265,12 +267,11 @@ $1',
 'aboutpage' => 'Project:Aboot',
 'copyright' => 'Content is available unner $1 onless itherwise noted.',
 'copyrightpage' => '{{ns:project}}:Copyrichts',
-'currentevents' => 'Gaun on the nou',
-'currentevents-url' => 'Project:Gaun on the nou',
+'currentevents' => 'Gaun oan the nou',
+'currentevents-url' => 'Project:Gaun oan the nou',
 'disclaimers' => 'Disclamation',
 'disclaimerpage' => 'Project:General_disclamation',
 'edithelp' => 'Editin help',
-'helppage' => 'Help:Contents',
 'mainpage' => 'Main Page',
 'mainpage-description' => 'Main Page',
 'policy-url' => 'Project:Policy',
@@ -280,10 +281,10 @@ $1',
 'privacypage' => 'Project:Privacy policy',
 
 'badaccess' => 'Permeission mishanter',
-'badaccess-group0' => 'WARNIN: Ye arnae alloued tae dae whit you hae requestit!',
+'badaccess-group0' => "Ye'r no permited tae dae whit ye hae requestit!",
 'badaccess-groups' => 'The action ye hae requestit is limitit tae uisers in {{PLURAL:$2|the group|ane o the groups}}: $1.',
 
-'versionrequired' => 'Version $1 of MediaWiki requirit',
+'versionrequired' => 'Version $1 o MediaWiki needit',
 'versionrequiredtext' => 'Version $1 o MediaWiki is requirit tae uise this page. Tak a keek at the [[Special:Version|version page]].',
 
 'ok' => 'Okay',
@@ -293,21 +294,21 @@ $1',
 'youhavenewmessagesmanyusers' => 'Ye hae $1 fae moni uisers ($2).',
 'newmessageslinkplural' => '{{PLURAL:$1|ae new message|999=new messages}}',
 'newmessagesdifflinkplural' => 'last {{PLURAL:$1|chynge|999=chynges}}',
-'youhavenewmessagesmulti' => 'Ye hae neow messages on $1',
-'editsection' => 'edit',
-'editold' => 'edit',
+'youhavenewmessagesmulti' => 'Ye hae new messages oan $1',
+'editsection' => 'eedit',
+'editold' => 'eedit',
 'viewsourceold' => 'ken soorce',
-'editlink' => 'edit',
-'viewsourcelink' => 'Scance ower the source',
-'editsectionhint' => 'Edit section: $1',
-'toc' => 'Table o contents',
+'editlink' => 'eedit',
+'viewsourcelink' => 'see soorce',
+'editsectionhint' => 'Eedit section: $1',
+'toc' => 'Contents',
 'showtoc' => 'shaw',
 'hidetoc' => 'scouk',
 'collapsible-collapse' => 'Collapse.',
 'collapsible-expand' => 'Mak mair muckle',
 'thisisdeleted' => 'View or cower $1?',
 'viewdeleted' => 'View $1?',
-'restorelink' => '{{PLURAL:$1|yin delyte eidit|$1 delyte eidits}}',
+'restorelink' => '{{PLURAL:$1|yin delytit eidit|$1 delytit eidits}}',
 'feedlinks' => 'Feed:',
 'feed-invalid' => "This feeds subscrieve's teep isnae habile.",
 'feed-unavailable' => 'Syndication feeds isna available',
@@ -315,7 +316,7 @@ $1',
 'site-atom-feed' => '$1 Atom Feed',
 'page-rss-feed' => '"$1" RSS Feed',
 'page-atom-feed' => '"$1" Atom Feed',
-'red-link-title' => '$1 (page disna exist)',
+'red-link-title' => '$1 (page disna exeest)',
 'sort-descending' => 'Sort descending.',
 'sort-ascending' => 'Sort ascending.',
 
@@ -324,7 +325,7 @@ $1',
 'nstab-user' => 'Uiser page',
 'nstab-media' => 'Eetem page',
 'nstab-special' => 'Byordinar page',
-'nstab-project' => 'Project page',
+'nstab-project' => 'Waurk page',
 'nstab-image' => 'Eimage',
 'nstab-mediawiki' => 'Message',
 'nstab-template' => 'Template',
@@ -333,13 +334,13 @@ $1',
 
 # Main script and global functions
 'nosuchaction' => 'Nae sic action',
-'nosuchactiontext' => "The action specifiee'd bi the URL isna recognised
-Ye micht hae mistyped the URL, or follaed a wrang link
-This micht forby be caused by a bug in the saftware uised by {{SITENAME}}.",
+'nosuchactiontext' => 'The action speceefieed bi the URL isna recognised
+Ye micht hae mistyped the URL, or follaed ae wrang link
+This micht forby be caused bi ae bug in the saffware uised bi {{SITENAME}}.',
 'nosuchspecialpage' => 'Nae sic byordinar page',
-'nospecialpagetext' => '<strong>Ye hae requestit an invalid byordinar page.</strong>
+'nospecialpagetext' => '<strong>Ye hae requestit aen onvalid byordinar page.</strong>
 
-A leet o valid byordinar pages can be funnd at [[Special:SpecialPages|{{int:specialpages}}]].',
+A leet o valid byordinar pages can be foond at [[Special:SpecialPages|{{int:specialpages}}]].',
 
 # General errors
 'error' => 'Mistak',
@@ -348,30 +349,29 @@ A leet o valid byordinar pages can be funnd at [[Special:SpecialPages|{{int:spec
 This micht be cause o ae bug in the saffware.',
 'databaseerror-textcl' => 'Ae database speirin mistak has occurred.',
 'databaseerror-query' => 'Speirin: $1',
-'databaseerror-function' => 'Fwnction: $1',
+'databaseerror-function' => 'Function: $1',
 'databaseerror-error' => 'Mistake: $1',
-'laggedslavemode' => 'Warning: Page micht nae contain recent updates',
+'laggedslavemode' => '<strong>Warnishment:</strong> Page micht naw contain recent updates',
 'readonly' => 'Database lockit',
 'enterlockreason' => "Enter ae raeson fer the lock, inclædin aen estimate o whan the lock'll be lowsed",
-'readonlytext' => "The databae is lockit tae new entries an ither modifeecations the nou,
-likely for routine database maintenance; efter that it'll be back tae normal.
-The adminstration that lockit it gied this explanation:
-$1",
-'missing-article' => 'The database didna find the text o a page that it shuid hae fund, cawed "$1" $2.
+'readonlytext' => "The databae is lockit tae new entries n ither modifeecations the nou,
+likelie fer routine database maintenance; efter that it'll be back til normal.
+The admeenstration that lockit it gied this explanation: $1",
+'missing-article' => 'The database didna fynd the tex o ae page that it shid hae foond, cawed "$1" $2.
 
-Maistly this is caused by follaein an ootdated diff or history link tae a page that haes been delete.
+Maistlie this is caused bi follaein aen ootdated diff or histerie link til ae page that haes been delytit.
 
-If this isna the case, you micht hae fund a bug in the saftware.
-Please lat an [[Special:ListUsers/sysop|administrator]] ken aboot this, makin note o the URL.',
-'missingarticle-rev' => '(revision#: $1)',
+Gif this isna the case, ye micht hae foond ae bug in the saffware.
+Please lat aen [[Special:ListUsers/sysop|admeenistrater]] ken aneat this, makin note o the URL.',
+'missingarticle-rev' => '(reveesion#: $1)',
 'missingarticle-diff' => '(Diff: $1, $2)',
 'readonly_lag' => 'The database haes been autaematically lockit while the sclave database servers catch up tae the maister',
 'internalerror' => 'Internal mishanter',
 'internalerror_info' => 'Internal mistak: $1',
 'fileappenderrorread' => 'Coudna read "$1" durin append.',
 'fileappenderror' => 'Coudna append "$1" til "$2".',
-'filecopyerror' => 'Cuidna copy file "$1" tae "$2".',
-'filerenameerror' => 'Cuidna rename file "$1" tae "$2".',
+'filecopyerror' => 'Cuidna copie file "$1" til "$2".',
+'filerenameerror' => 'Cuidna rename file "$1" til "$2".',
 'filedeleteerror' => 'Cuidna delyte file "$1".',
 'directorycreateerror' => 'Culdnae mak directory "$1".',
 'filenotfound' => 'Cuidna fin file "$1".',
@@ -387,22 +387,22 @@ It gae nae explanâtion.',
 'no-null-revision' => 'Coudna mak new null reveesion fer page "$1"',
 'badtitle' => 'Bad teitle',
 'badtitletext' => 'The requestit page teitle wis invalid, tuim, or a wranglie airtit inter-leid or inter-wiki teitle. It mibbe haes ane or mair chairacters that canna be uised in teitles.',
-'perfcached' => 'The follaeing data is cached an michtna be richt up til date. A maximum o {{PLURAL:$1|yin result is|$1 results ar}} available in the cache.',
-'perfcachedts' => 'The followin data is cached, an wis hindermaist updated $1. Ae maximum o {{PLURAL:$4|yin result is|$4 results ar}} available in the cache.',
+'perfcached' => 'The follaein data is cached n michtna be richt up til date. Ae maist muckle o {{PLURAL:$1|yin result is|$1 results ar}} available in the cache.',
+'perfcachedts' => 'The follaein data is cached, n wis hindermaist updated $1. Ae maist muckkle o {{PLURAL:$4|yin result is|$4 results ar}} available in the cache.',
 'querypage-no-updates' => 'Updates for this page ar disablit at the meenit. Data here wilnae be refreshit at the meenit.',
 'viewsource' => 'View soorce',
-'viewsource-title' => 'View source fer $1',
+'viewsource-title' => 'See soorce fer $1',
 'actionthrottled' => 'Action devalit',
-'actionthrottledtext' => 'As an anti-spam meisur, ye ar limitit frae daein this action ower mony times in a ower short tid, an ye hae exceedit this limit. Please try again in a wee.',
-'protectedpagetext' => 'This page haes been protected fer tae prevent eiditing or ither actions.',
-'viewsourcetext' => 'Ye can leuk at an copy the soorce o this page:',
-'viewyourtext' => 'Ye can view an copy the source o <strong>yer eidits</strong> til this page:',
-'protectedinterface' => 'This page provides interface tex fer the saffware on this wiki, an is protected fer tae prevent abuse.
-Tae add or chynge owersets fer aw wikis, please uise [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.',
+'actionthrottledtext' => "Aes aen anti-spam meisur, ye'r limitit fae daein this action ower monie times in aen ower short time, n ye'v exceedit this limit. Please try again in ae few minutes.",
+'protectedpagetext' => 'This page haes been protected fer tae hider eeditin or ither actions.',
+'viewsourcetext' => 'Ye can leuk at n copie the soorce o this page:',
+'viewyourtext' => 'Ye can see n copie the soorce o <strong>yer eedits</strong> til this page:',
+'protectedinterface' => 'This page provides interface tex fer the saffware oan this wiki, n is protected fer tae hinder abuise.
+Tae add or chynge owersets fer aw wikis, please uise [//translatewiki.net/ translatewiki.net], the MediaWiki localisation waurk.',
 'editinginterface' => "<strong>Warnishment:</strong> Ye'r eiditing ae page that is uised tae provide interface tex fer the saffware.
 Chynges til this page will affect the appearance o the uiser interface fer ither uisers oan this wiki.
 Tae add or chynge owersets fer aw wikis, please uise [//translatewiki.net/ translatewiki.net], the MediaWiki localisation project.",
-'cascadeprotected' => 'This page haes been protectit fra editin, acause it is includit in the followin {{PLURAL:$1|page|pages}}, that are protectit wi the "cascading" option turnit on:
+'cascadeprotected' => 'This page haes been protectit fae eiditin, cause it is inclædit in the follaein {{PLURAL:$1|page|pages}}, that ar protectit wi the "cascadin" optie turnit oan:
 $2',
 'namespaceprotected' => "Ye dinna hae permeession tae edit pages in the '''$1''' namespace.",
 'customcssprotected' => "Ye dinna hae permeession tae eidit this CSS page cause it contains anither uiser's personal settings.",
@@ -412,13 +412,13 @@ $2',
 'myprivateinfoprotected' => 'Ye dinna hae permeession tae eidit yer private information.',
 'mypreferencesprotected' => 'Ye dinna hae permeession tae eidit yer preferences.',
 'ns-specialprotected' => 'Byordinar pages canna be editit.',
-'titleprotected' => "This teetle haes been protectit frae bein makkit by [[User:$1|$1]].
-The grunds for this are: ''$2''.",
+'titleprotected' => "This teetle haes been protectit fae bein makit bi [[User:$1|$1]].
+The groonds fer this ar: ''$2''.",
 'filereadonlyerror' => 'Canna modify the file "$1" cause the file repository "$2" is in read-yinly mode.
 
 The administrater that lock\'t it affered this explanation: "$3".',
-'invalidtitle-knownnamespace' => 'Onvalid title wi namespace "$2" an tex "$3"',
-'invalidtitle-unknownnamespace' => 'Onvalid title wi onken\'t namespace nummer $1 an tex "$2"',
+'invalidtitle-knownnamespace' => 'Onvalit title wi namespace "$2" n tex "$3"',
+'invalidtitle-unknownnamespace' => 'Onvalit title wi onkent namespace nummer $1 n tex "$2"',
 'exception-nologin' => 'No loggit in',
 'exception-nologin-text' => 'Please [[Special:Userlogin|log in]] tae be able tae access this page or action.',
 'exception-nologin-text-manual' => 'Please $1 tae be able tae access this page or action.',
@@ -431,46 +431,45 @@ The administrater that lock\'t it affered this explanation: "$3".',
 # Login and logout pages
 'logouttext' => "<strong>Ye'r nou loggit oot.</strong>
 
-Note that some pages micht continue tae be displayed as gif ye were still loggit in, til ye clear yer brouser cache.",
+Mynd that some pages micht continue tae be displeyed aes gif ye were still loggit in, til ye clear yer brouser cache.",
 'welcomeuser' => 'Weelcome, $1!',
-'welcomecreation-msg' => 'Yer accoont haes been creatit.
-Ye can chynge yer {{SITENAME}} [[Special:Preferences|preferences]] gif ye like.',
+'welcomecreation-msg' => 'Yer accoont haes been cræftit.
+Ye can chynge yer {{SITENAME}} [[Special:Preferences|preeferences]] gif ye like.',
 'yourname' => 'Yer uiser name',
 'userlogin-yourname' => 'Uisername',
 'userlogin-yourname-ph' => 'Enter yer uisername',
 'createacct-another-username-ph' => 'Enter the uisername',
 'yourpassword' => 'Passwaird:',
-'userlogin-yourpassword' => 'Password.',
-'userlogin-yourpassword-ph' => 'Enter yer password',
-'createacct-yourpassword-ph' => 'Enter ae password',
+'userlogin-yourpassword' => 'Passwaird.',
+'userlogin-yourpassword-ph' => 'Enter yer passwaird',
+'createacct-yourpassword-ph' => 'Enter ae passwaird',
 'yourpasswordagain' => 'Retype passwaird:',
-'createacct-yourpasswordagain' => 'Confirm password.',
-'createacct-yourpasswordagain-ph' => 'Enter password again.',
+'createacct-yourpasswordagain' => 'Confirm passwaird.',
+'createacct-yourpasswordagain-ph' => 'Enter passwaird again.',
 'remembermypassword' => 'Mynd ma login oan this brouser (fer $1 {{PLURAL:$1|day|days}} at the maist)',
 'userlogin-remembermypassword' => 'Keep me loggit in',
 'userlogin-signwithsecure' => 'Uise secure connection',
 'yourdomainname' => 'Yer domain:',
 'password-change-forbidden' => 'Ye canna chynge passwords oan this wiki.',
-'externaldberror' => "Aither the wis an external authenteication database mishanter, or ye'r no alloued tae update yer external accoont.",
+'externaldberror' => "Aither thaur wis aen external authentication database mistak, or ye'r naw permitit tae update yer external accoont.",
 'login' => 'Log in',
-'nav-login-createaccount' => 'Log in / mak an accoont',
+'nav-login-createaccount' => 'Log in / cræft aen accoont',
 'loginprompt' => 'Ye maun hae cookies enabled tae log in tae {{SITENAME}}.',
-'userlogin' => 'Mak an accoont or log in',
+'userlogin' => 'Cræft aen accoont or log in',
 'userloginnocreate' => 'Log in.',
 'logout' => 'Log oot',
 'userlogout' => 'Log oot',
-'notloggedin' => 'No loggit in',
+'notloggedin' => 'Naw loggit in',
 'userlogin-noaccount' => 'Dinna hae aen accoont?',
 'userlogin-joinproject' => 'Jyn {{SITENAME}}',
-'nologin' => "Dinna hae an accoont? '''$1'''.",
-'nologinlink' => 'Mak an accoont',
+'nologin' => 'Dinna hae aen accoont? $1.',
+'nologinlink' => 'Cræft aen accoont',
 'createaccount' => 'Mak new accoont',
-'gotaccount' => "Got an accoont afore? '''$1'''.",
+'gotaccount' => 'Awreadie hae aen accoont? $1.',
 'gotaccountlink' => 'Log in',
 'userlogin-resetlink' => 'Forgotten yer login details?',
 'userlogin-resetpassword-link' => 'Fergot yer password?',
-'helplogin-url' => 'Help:Loggin in',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Heelp wi loggin in]]',
+'userlogin-helplink2' => 'Heelp wi loggin in',
 'userlogin-loggedin' => "Ye'r awreadie loggit in as {{GENDER:$1|$1}}.
 Uise the form ablow tae log in as anither uiser.",
 'userlogin-createanother' => 'Mak anither accoont',
@@ -480,7 +479,7 @@ Uise the form ablow tae log in as anither uiser.",
 'createacct-emailoptional' => 'Wab-mail address (optional)',
 'createacct-email-ph' => 'Enter yer wab-mail address',
 'createacct-another-email-ph' => 'Enter wab-mail address',
-'createaccountmail' => 'Uise ae temporarie random password an send it til the speceefied wab-mail address',
+'createaccountmail' => 'Uise ae temporarie random passwaird n send it til the speceefied wab-mail address',
 'createacct-realname' => 'Real name (optional).',
 'createaccountreason' => 'Raison:',
 'createacct-reason' => 'Raison',
@@ -489,46 +488,46 @@ Uise the form ablow tae log in as anither uiser.",
 'createacct-imgcaptcha-ph' => 'Enter the tex ye see abuin',
 'createacct-submit' => 'Mak yer accoont',
 'createacct-another-submit' => 'Mak anither accoont',
-'createacct-benefit-heading' => '{{SITENAME}} is made bi fowk like ye.',
+'createacct-benefit-heading' => '{{SITENAME}} is makit bi fowk like ye.',
 'createacct-benefit-body1' => '{{PLURAL:$1|eidit|eidits}}',
 'createacct-benefit-body2' => '{{PLURAL:$1|page|pages}}.',
 'createacct-benefit-body3' => 'recent {{PLURAL:$1|contreebuter|contreebuters}}',
 'badretype' => 'The passwords ye entered disna match.',
 'userexists' => 'The uiser name ye entered is awreadie in uiss. Please chuise ae different name.',
 'loginerror' => 'Login mishanter',
-'createacct-error' => 'Accoont creation mistak',
+'createacct-error' => 'Accoont cræftin mistak',
 'createaccounterror' => 'Coudna mak accoont: $1',
-'nocookiesnew' => "The uiser accoont wis creatit, but ye'r no loggit in. {{SITENAME}} uises cookies tae log uisers in. Ye hae cookies disabled. Please enable them, than log in wi yer new uisername and password.",
+'nocookiesnew' => "The uiser accoont wis cræftit, but ye'r naw loggit in. {{SITENAME}} uises cookies tae log uisers in. Ye hae cookies disabled. Please enable them, than log in wi yer new uisername n passwaird.",
 'nocookieslogin' => '{{SITENAME}} uises cookies tae log in uisers. Ye hae cookies disabled. Please enable thaim an gie it anither shot.',
-'nocookiesfornew' => 'The uiser accoont wisna created, as we couda confirm its source.
-Ensure that ye have cookies enabled, relaid this page an try again.',
+'nocookiesfornew' => 'The uiser accoont wisna cræftit, aes we couda confirm its soorce.
+Ensure that ye have cookies enabled, relaid this page n gie it anither shote.',
 'noname' => "Ye hivna specifee'd a valid uisername.",
 'loginsuccesstitle' => 'Login fine',
 'loginsuccess' => 'Ye\'re nou loggit in tae {{SITENAME}} as "$1".',
-'nosuchuser' => 'The\'r nae sic uiser as "$1".
-Uiser names are case-sensitive.
-Check yer spellin, or uise [[Special:UserLogin/signup|mak a new accoont]].',
+'nosuchuser' => 'Thaur\'s nae sic uiser aes "$1".
+Uiser names ar case-sensiteeve.
+Check yer speelin, or [[Special:UserLogin/signup|mak ae new accoont]].',
 'nosuchusershort' => 'The\'r nae sic uiser as "$1". Check yer spellin.',
-'nouserspecified' => 'Ye hae tae merk up a uisername.',
-'login-userblocked' => 'Uiser "$1" is blockit. Log-in no alloued.',
+'nouserspecified' => 'Ye hae tae merk up ae uisername.',
+'login-userblocked' => 'Uiser "$1" is blockit. Log-in naw permitit.',
 'wrongpassword' => 'The password ye entered is wrang. Please gie it anither shot.',
 'wrongpasswordempty' => 'The password ye entered is blank. Please gie it anither shot.',
 'passwordtooshort' => 'Yer password is ower short.
 It maun hae at laest {{PLURAL:$1|1 chairacter|$1 chairacters}}.',
-'password-name-match' => 'Yer password maun be different fae yer uisername.',
-'password-login-forbidden' => 'The uise o this uisername an password haes been ferbidden.',
+'password-name-match' => 'Yer passwaird maun be different fae yer uisername.',
+'password-login-forbidden' => 'The uise o this uisername n passwaird haes been ferbidden.',
 'mailmypassword' => 'Reset password',
 'passwordremindertitle' => 'Password reminder frae {{SITENAME}}',
 'passwordremindertext' => 'Somebodie (liklie ye, fae IP address $1) requested ae new
-password fer {{SITENAME}} ($4). Ae temporarie password fer uiser "$2" haes been creatit an wis set til "$3". Gif this wis yer intent, ye will need tae log in an chuise ae new password now.
-Yer temporarie password will expire in {{PLURAL:$5|one day|$5 days}}.
+passwaird fer {{SITENAME}} ($4). Ae temporarie passwaird fer uiser "$2" haes been cræftit n wis set til "$3". Gif this wis yer intent, ye will need tae log in n chuise ae new passwaird nou.
+Yer temporarie passwaird will expire in {{PLURAL:$5|yin day|$5 days}}.
 
-Gif somebodie else made this request, or gif ye hae mindit yer password, an ye nae langer wish tae chynge it, ye can ignore this message an continue uising yer auld password.',
+Gif some ither bodie makit this request, or gif ye hae myndit yer passwaird, n ye nae langer wish tae chynge it, ye can ignore this message n continue uisin yer auld passwaird.',
 'noemail' => 'Thaur\'s nae wab-mail address recordit fer uiser "$1".',
 'noemailcreate' => 'Ye need tae provide ae valid wab-mail address.',
 'passwordsent' => 'A new password haes been sent tae the e-mail address registert for "$1". Please log in again efter ye receive it.',
-'blocked-mailpassword' => 'Yer IP address is blockit frae editin, sae it
-canna uise the password recovery function, for tae prevent abuiss.',
+'blocked-mailpassword' => 'Yer IP address is blockit fae eeditin, sae it
+canna uise the passwaird recoverie function, for tae hinder abuiss.',
 'eauthentsent' => "Ae confirmation wab-mail haes been sent til the speceefied wab-mail address.
 Afore oni ither wab-mail is sent til the accoont, ye'll hae tae follae the instructions in the wab-mail, sae as tae confirm that the accoont is reallie yers.",
 'throttled-mailpassword' => 'Ae password reset wab-mail haes awreadie been sent, wiin the laist {{PLURAL:$1|hoor|$1 hoors}}.
@@ -541,26 +540,27 @@ Sae veesitors uisin this IP address canna mak ony mair accoonts juist noo.',
 Nae wab-mail will be sent fer oni o the follaein features.',
 'noemailprefs' => "Nae email address haes been specifee'd, the follaein featurs willna wirk.",
 'emailconfirmlink' => 'Check yer e-mail address',
-'invalidemailaddress' => 'The email address canna be acceptit syne it seems tae be formattit wrang.
-Please enter a weel-formattit address or mak that field tuim.',
+'invalidemailaddress' => 'The wab-mail address canna be acceptit sin it seems tae be formattit wrang.
+Please enter ae weel-formattit address or mak that field tuim.',
 'cannotchangeemail' => 'Accoont wab-mail addresses canna be chynged oan this wiki.',
 'emaildisabled' => 'This site canna send wab-mails.',
-'accountcreated' => 'Accoont creatit',
-'accountcreatedtext' => 'The uiser accoont fer [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|talk]]) haes been creatit.',
+'accountcreated' => 'Accoont cræftit',
+'accountcreatedtext' => 'The uiser accoont fer [[{{ns:User}}:$1|$1]] ([[{{ns:User talk}}:$1|tauk]]) haes been cræftit.',
 'createaccount-title' => 'Accoont makin for {{SITENAME}}',
-'createaccount-text' => 'Somebodie creatit aen accoont fer yer wab-mail address oan {{SITENAME}} ($4) named "$2", wi password "$3".
-You should log in and change your password now.
+'createaccount-text' => 'Somebodie cræftit aen accoont fer yer wab-mail address oan {{SITENAME}} ($4) named "$2", wi passwaird "$3".
+Ye shid log in n chynge yer passwaird nou.
 
-Ye can ignore this message, gif this accoont wis creatit bi mistak.',
+Ye can ignore this message, gif this accoont wis cræftit bi mistak.',
 'usernamehasherror' => 'Uisername canna contain hash chairacters',
-'login-throttled' => "Ye'v made ower moni recent login attempts.
-Please wait $1 afore trying again.",
+'login-throttled' => "Ye'v makit ower monie recynt login attempts.
+Please wait $1 afore giein it anither gae.",
 'login-abort-generic' => 'Yer login wisna successful - Aborted',
 'loginlanguagelabel' => 'Leid: $1',
 'suspicious-userlogout' => 'Yer request tae log oot wis denied cause it luiks like it wis sent bi ae broken brouser or caching proxy.',
 'createacct-another-realname-tip' => 'Real name is aen optie.
 Gif ye chuise tae provide it, this will be uised fer giein the uiser attreebution fer their wark.',
 'pt-login' => 'Log in',
+'pt-login-button' => 'Log in',
 'pt-createaccount' => 'Mak accoont',
 'pt-userlogout' => 'Log oot',
 
@@ -571,15 +571,15 @@ Gif ye chuise tae provide it, this will be uised fer giein the uiser attreebutio
 
 # Change password dialog
 'changepassword' => 'Chynge password',
-'resetpass_announce' => 'Tae finish loggin in, ye maun set ae new password.',
+'resetpass_announce' => 'Tae finish loggin in, ye maun set ae new passwaird.',
 'resetpass_header' => 'Chynge accoont password',
-'oldpassword' => 'Auld password',
+'oldpassword' => 'Auld passwaird',
 'newpassword' => 'New passwaird:',
 'retypenew' => 'Retype new passwaird:',
-'resetpass_submit' => 'Mak passwaird an log in',
+'resetpass_submit' => 'Set passwaird n log in',
 'changepassword-success' => 'Yer passwaird chynge wis braw!',
-'changepassword-throttled' => "Ye'v made ower moni recent login attempts.
-Please wait $1 afore trying again.",
+'changepassword-throttled' => "Ye'v makit ower monie recynt login attempts.
+Please wait $1 afore giein it anither gae.",
 'resetpass_forbidden' => 'Passwords canna be chynged',
 'resetpass-no-info' => 'Ye maun be loggit in tae access this page directly.',
 'resetpass-submit-loggedin' => 'Chynge passwaird',
@@ -592,7 +592,10 @@ Tae finish loggin in, ye maun set ae new passwaird here:',
 'resetpass-temp-password' => 'Temperie passwaird:',
 'resetpass-abort-generic' => 'Passwaird chynge haes been aborted bi aen extension.',
 'resetpass-expired' => 'Yer passwaird haes expired. Please set ae new passwaird tae log-in.',
-'resetpass-expired-soft' => 'Yer passwaird haes expired, an needs tae be reset. Please chuise ae new passwaird nou, or clap oan cancel tae reset it later.',
+'resetpass-expired-soft' => 'Yer passwaird haes expired n needs tae be reset. Please chuise ae new passwaird nou, or clap oan "{{int:resetpass-submit-cancel}}" tae reset it later.',
+'resetpass-validity-soft' => 'Yer passwaird isna valid: $1
+
+Please chuise ae new passwaird nou, or clap "{{int:resetpass-submit-cancel}}" tae reset it later.',
 
 # Special:PasswordReset
 'passwordreset' => 'Reset passwaird',
@@ -603,7 +606,7 @@ Tae finish loggin in, ye maun set ae new passwaird here:',
 'passwordreset-emaildisabled' => 'Wab-mail features hae been disabled oan this wiki.',
 'passwordreset-username' => 'Uisername:',
 'passwordreset-capture' => 'View the resultin wab-mail?',
-'passwordreset-capture-help' => 'Gif ye check this kist, the wab-mail (wi the temperie passwaird) will be shawn til ye an be sent til the uiser ava.',
+'passwordreset-capture-help' => 'Gif ye check this kist, the wab-mail (wi the temperie passwaird) will be shawn til ye n be sent til the uiser ava.',
 'passwordreset-email' => 'Wab-mail address:',
 'passwordreset-emailtitle' => 'Accoont details oan {{SITENAME}}',
 'passwordreset-emailtext-ip' => "Somebodie (likely ye, fae IP address $1) requested ae reset o yer passwaird fer {{SITENAME}} ($4). The follaein uiser {{PLURAL:$3|accoont is|accoonts ar}}
@@ -611,17 +614,16 @@ associated wi this wab-mail address:
 
 $2
 
-{{PLURAL:$3|This temperie passwaird|These temperie passwairds}} will expire in {{PLURAL:$5|yin day|$5 days}}.
-Ye shid log in an chuise ae new passwaird nou. Gif some ither bodie made this request, or gif ye'v mynded yer oreeginal passwaird, an ye nae longer
-wish tae chynge it, ye can ignore this message an continue uising yer auld passwaird.",
+{{PLURAL:$3|This temperie passwaird|Thir temperie passwairds}} will expire in {{PLURAL:$5|yin day|$5 days}}.
+Ye shid log in n chuise ae new passwaird nou. Gif some ither bodie makit this request, or gif ye'v mynded yer oreeginal passwaird, n ye nae longer
+wish tae chynge it, ye can ignore this message n continue uisin yer auld passwaird.",
 'passwordreset-emailtext-user' => "Uiser $1 oan {{SITENAME}} requested ae reset o yer passwaird fer {{SITENAME}}
 ($4). The follaein uiser {{PLURAL:$3|accoont is|accoonts ar}} associated wi this wab-mail address:
 
 $2
 
-{{PLURAL:$3|This temperie passwaird|These temperie passwairds}} will expire in {{PLURAL:$5|yin day|$5 days}}.
-Ye shid log in an chuise ae new password nou. Gif some ither bodie made this request, or gif ye'v mynded yer oreeginal passwaird, an ye nae longer wish tae chynge it, ye can ignore this message an continue uisin yer auld
-passwaird.",
+{{PLURAL:$3|This temperie passwaird|Thir temperie passwairds}} will expire in {{PLURAL:$5|yin day|$5 days}}.
+Ye shid log in n chuise ae new password nou. Gif some ither bodie haes makit this request, or gif ye'v mynded yer oreeginal passwaird, n ye nae langer wish tae chynge it, ye can ignore this message n continue uisin yer auld passwaird.",
 'passwordreset-emailelement' => 'Uisername: $1
 Temperie passwaird: $2',
 'passwordreset-emailsent' => 'Ae passwaird reset wab-mail haes been sent.',
@@ -639,8 +641,8 @@ Temperie passwaird: $2',
 'changeemail-password' => 'Yer {{SITENAME}} passwaird:',
 'changeemail-submit' => 'Chynge wab-mail',
 'changeemail-cancel' => 'Cancel.',
-'changeemail-throttled' => "Ye'v made ower moni recent login attempts.
-Please wait $1 afore trying again.",
+'changeemail-throttled' => "Ye'v makit ower monie recynt login attempts.
+Please wait $1 afore giein it anither gae.",
 
 # Special:ResetTokens
 'resettokens' => 'Reset tokens.',
@@ -656,17 +658,17 @@ Ye shid dae it gif ye accidentally shaired theim wi somebodie or gif yer accoont
 'resettokens-resetbutton' => 'Reset selected tokens.',
 
 # Edit page toolbar
-'bold_sample' => 'Bauld text',
-'bold_tip' => 'Bauld text',
-'italic_sample' => 'Italic text',
-'italic_tip' => 'Italic text',
+'bold_sample' => 'Baud tex',
+'bold_tip' => 'Baud tex',
+'italic_sample' => 'Italic tex',
+'italic_tip' => 'Italic tex',
 'link_sample' => 'Airtin teitle',
 'link_tip' => 'Internal airtin',
 'extlink_sample' => 'http://www.example.com airtin teitle',
-'extlink_tip' => 'Airtin tae an outby steid (mynd the http:// prefix)',
-'headline_sample' => 'Heidline text',
+'extlink_tip' => 'External link (mynd the http:// prefix)',
+'headline_sample' => 'Heidline tex',
 'headline_tip' => 'Level 2 heidline',
-'nowiki_sample' => 'Insert non-formattit text here',
+'nowiki_sample' => 'Insert non-formattit tex here',
 'nowiki_tip' => 'Ignore wiki formattin',
 'image_sample' => 'Exemplar.jpg',
 'image_tip' => 'Embeddit eimage',
@@ -678,86 +680,86 @@ Ye shid dae it gif ye accidentally shaired theim wi somebodie or gif yer accoont
 # Edit pages
 'summary' => 'Ootline:',
 'subject' => 'Subject/headline:',
-'minoredit' => 'This is a smaa edit',
+'minoredit' => 'This is ae smaa eedit',
 'watchthis' => 'Leuk ower this page',
 'savearticle' => 'Hain page',
-'preview' => 'Scance',
-'showpreview' => 'Scance ower',
+'preview' => 'Luikower',
+'showpreview' => 'Shaw luikower',
 'showlivepreview' => 'Live leuk ower',
 'showdiff' => 'Shaw chynges',
-'anoneditwarning' => "Ye arna loggit in. Yer IP address will be recordit in this page's edit history.",
-'anonpreviewwarning' => "<em>Ye'r no loggit in. hainin will record yer IP address in this page's eidit history.</em>",
-'missingsummary' => "'''Mynd:''' Ye hivna gien an edit summary. Gin ye dab on Hain again, yer edit will be haint athoot ane.",
+'anoneditwarning' => "<strong>Warnishment:</strong>Ye'r naw loggit in. Yer IP address will be recordit in this page's eedit histerie.",
+'anonpreviewwarning' => "<em>Ye'r no loggit in. Hainin will record yer IP address in this page's eedit histerie.</em>",
+'missingsummary' => '<strong>Mynd:</strong> Ye\'v naw gien aen eedit owerview. Gif ye clap oan "{{int:savearticle}}" again, yer eedit will be haint wioot ane.',
 'missingcommenttext' => 'Please enter a comment ablo.',
-'missingcommentheader' => '<strong>Mynd:</strong> Ye\'v no provided ae subject/headline fer this comment.
-If you clap "{{int:savearticle}}" again, yer edit will be saved wiout yin.',
+'missingcommentheader' => '<strong>Mynd:</strong> Ye\'v na gien ae subject/heidline fer this comment.
+Gif ye clap "{{int:savearticle}}" again, yer eedit will be hained wioot yin.',
 'summary-preview' => 'Ootline leuk ower:',
 'subject-preview' => 'Subject/headline leuk ower:',
 'blockedtitle' => 'Uiser is blockit',
 'blockedtext' => '<strong>Yer uisername or IP address haes been blockit.</strong>
 
-The block wis made bi $1.
+The block wis makit bi $1.
 The raison gieen is <em>$2</em>.
 
-* Stert o block: $8
-* Expiry o block: $6
+* Stairt o block: $8
+* Expirie o block: $6
 * Intended blockee: $7
 
-Ye can contact $1 or anither [[{{MediaWiki:Grouppage-sysop}}|admeenistræter]] tae discuss the block.
-Ye canna uise the "wab-mail this uiser" feature onless ae valid wab-mail address is speceefied in yer [[Special:Preferences|accoont preferences]] an ye\'v no been blockit fae uising it.
-Your current IP address is $3, an the block ID is #$5.
-Please inclæde aw the abuin details in oni speirins ye mak.',
-'autoblockedtext' => 'Yer IP address haes been autæmaticly blockit cause it wis uised bi anither uiser, wha wis blockit bi $1.
-The raison gieen is:
+Ye can contact $1 or anither [[{{MediaWiki:Grouppage-sysop}}|admeenistrater]] tae discuss the block.
+Ye canna uise the "wab-mail this uiser" feature onless ae valid wab-mail address is speceefied in yer [[Special:Preferences|accoont preferences]] n ye\'v naw been blockit fae uisin it.
+Yer current IP address is $3, n the block ID is #$5.
+Please incluide aw the abuin details in onie speirins that ye mak.',
+'autoblockedtext' => 'Yer IP address haes been autæmateeclie blockit cause it wis uised bi anither uiser that wis blockit bi $1.
+The raison gien is:
 
 :<em>$2</em>
 
 * Stairt o block: $8
-* Expiry o block: $6
+* Expirie o block: $6
 * Intended blockee: $7
 
-Ye can contact $1 or yin o the ither [[{{MediaWiki:Grouppage-sysop}}|admeenistræters]] tae discuss the block.
+Ye can contact $1 or yin o the ither [[{{MediaWiki:Grouppage-sysop}}|admeenistraters]] tae discuss the block.
 
-Note that ye canna uise the "wab-mail this uiser" feature onless ye hae ae valid wab-mail address registered in yer [[Special:Preferences|uiser preferences]] an ye haena been blockit fae uising it.
+Mynd that ye canna uise the "wab-mail this uiser" feature onless ye hae ae valid wab-mail address registered in yer [[Special:Preferences|uiser preeferances]] n ye\'v na been blockit fae uisin it.
 
-Yer current IP address is $3, an the block ID is #$5.
-Please inclæde aw abuin details in oni speirins ye mak.',
+Yer current IP address is $3, n the block ID is #$5.
+Please incluid aw abuin details in onie speirins that ye mak.',
 'blockednoreason' => 'nae grunds put',
-'whitelistedittext' => 'Ye hae tae $1 tae edit pages.',
-'confirmedittext' => 'Ye maun confirm yer e-mail address afore editin pages. Please set an validate yer e-mail address throu yer [[Special:Preferences|uiser settins]].',
+'whitelistedittext' => 'Pleas $1 tae eedit pages.',
+'confirmedittext' => 'Ye maun confirm yer wab-mail address afore eeditin pages. Please set n validate yer wab-mail address throogh yer [[Special:Preferences|uiser settins]].',
 'nosuchsectiontitle' => 'Canna find section',
-'nosuchsectiontext' => 'Ye tried tae eidit ae section that disna exist.
-It micht hae been muived or delytit while ye were viewing the page.',
+'nosuchsectiontext' => 'Ye tried tae eedit ae section that disna exeest.
+It micht hae been muived or delytit while ye were luikin at the page.',
 'loginreqtitle' => 'Login Requirit!',
 'loginreqlink' => 'log in',
-'loginreqpagetext' => 'Ye maun $1 tae view ither pages.',
+'loginreqpagetext' => 'Please $1 tae see ither pages.',
 'accmailtitle' => 'Passwaird sent.',
 'accmailtext' => 'Ae randomly generated passwaird fer [[User talk:$1|$1]] haes been sent til $2. It can be chynged oan the <em>[[Special:ChangePassword|chynge passwaird]]</em> page upo loggin in.',
 'newarticle' => '(New)',
-'newarticletext' => "Ye'v follaed ae link til ae page that disna exist yet. Tae mak the page, stairt typin in the kist ablo (see the [[{{MediaWiki:Helppage}}|heelp page]] fer mair info). Gif ye'r here bi mistak, juist clap yer brouser's '''back''' button.",
+'newarticletext' => "Ye'v follaed ae link til ae page that disna exeest yet. Tae cræft the page, stairt typin in the kist ablo (see the [$1 heelp page] fer mair info). Gif ye'r here bi mistak, jist clap yer brouser's <strong>back</strong> button.",
 'anontalkpagetext' => "----
-<em>This is the discussion page fer aen anonymous uiser wha's no makit aen accoont yet, or wha disna uise it.</em>
+<em>This is the discussion page fer aen anonymoos uiser that's naw cræftit aen accoont yet, or that disna uise it.</em>
 We maun therefore uise the numerical IP address tae identifie him/her.
 Sic aen IP address can be shaired bi several uisers.
-Gif ye'r aen anonymous uiser an feel that onrelevant comments hae been directed at ye, please [[Special:UserLogin/signup|mak aen accoont]] or [[Special:UserLogin|log in]] tae avoid future confusion wi ither anonymous uisers.",
-'noarticletext' => 'The\'r nae text on this page the nou. 
-Ye can [[Special:Search/{{PAGENAME}}|rake for this page teitle]] in ither pages,
-<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} rake th\' related logs],
- or [{{fullurl:{{FULLPAGENAME}}|action=edit}} edit this page].</span>',
+Gif ye'r aen anonymos uiser n feel that onreelavant comments hae been directed at ye, please [[Special:UserLogin/signup|cræft aen accoont]] or [[Special:UserLogin|log in]] tae avoid futur confusion wi ither anonymoos uisers.",
+'noarticletext' => 'Thaur\'s naw tex oan this page the nou. 
+Ye can [[Special:Search/{{PAGENAME}}|rake fer this page teitle]] in ither pages,
+<span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} rake the related logs],
+ or [{{fullurl:{{FULLPAGENAME}}|action=edit}} eidit this page].</span>',
 'noarticletext-nopermission' => 'There isna oni tex in this page the nou.
 Ye can [[Special:Search/{{PAGENAME}}|rake fer this page title]] in ither pages, or <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} rake the relatit logs]</span>, but ye dina hae permeession tae mak this page.',
-'missing-revision' => 'The reveesion #$1 o the page named "{{PAGENAME}}" disna exist.
+'missing-revision' => 'The reveesion #$1 o the page named "{{PAGENAME}}" disna exeest.
 
-This is usuallie caused bi follaein aen ootdated histerie link til ae page that haes been delytit.
+This is uissuallie caused bi follaein aen ootdated histerie link til ae page that haes been delytit.
 Details can be foond in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} delytion log].',
-'userpage-userdoesnotexist' => 'Uiser accoont "<nowiki>$1</nowiki>" hasnae been registerit. Please check gin ye wint tae mak or edit this page.',
+'userpage-userdoesnotexist' => 'Uiser accoont "<nowiki>$1</nowiki>" hasnae been registerit. Please check gin ye wint tae mak or eidit this page.',
 'userpage-userdoesnotexist-view' => 'Uiser accoont "$1" isna registered.',
-'blocked-notice-logextract' => 'This uiser is currently blockit.
-The latest block log entry is provided ablow fer reference:',
-'clearyourcache' => "<strong>Tak tent:</strong> Efter hainin, ye micht hae tae bypass yer brouser's cache tae see the chynges.
-* <strong>Firefox / Safari:</strong> Hold <em>Shift</em> while clapin <em>Relaid</em>, or press either <em>Ctrl-F5</em> or <em>Ctrl-R</em> (<em>⌘-R</em> on a Mac)
+'blocked-notice-logextract' => 'This uiser is nou blockit.
+The laitest block log entrie is gien ablo fer referance:',
+'clearyourcache' => "<strong>Tak tent:</strong> Efter hainin, ye micht hae tae bipass yer brouser's cache tae see the chynges.
+* <strong>Firefox / Safari:</strong> Haud <em>Shift</em> while clapin <em>Relaid</em>, or press either <em>Ctrl-F5</em> or <em>Ctrl-R</em> (<em>⌘-R</em> oan ae Mac)
 * <strong>Google Chrome:</strong> Press <em>Ctrl-Shift-R</em> (<em>⌘-Shift-R</em> on a Mac)
-* <strong>Internet Explorer:</strong> Hold <em>Ctrl</em> while clapin <em>Refresh</em>, or press <em>Ctrl-F5</em>
+* <strong>Internet Explorer:</strong> Haud <em>Ctrl</em> while clapin <em>Refresh</em>, or press <em>Ctrl-F5</em>
 * <strong>Opera:</strong> Clear the cache in <em>Tuils → Preferences</em>",
 'usercssyoucanpreview' => '<strong>Tip:</strong> Uise the "{{int:showpreview}}" button tae test yer new CSS afore hainin.',
 'userjsyoucanpreview' => '<strong>Tip:</strong> Uise the "{{int:showpreview}}" button tae test yer new JavaScript afore hainin.',
@@ -768,95 +770,95 @@ It haesna been hained yet!</strong>",
 It's no been hained yet!</strong>",
 'sitejspreview' => "<strong>Mynd that ye'r yinly previewing this JavaScript code.
 It's no been hained yet!</strong>",
-'userinvalidcssjstitle' => "'''Warnin:''' There isnae a skin \"\$1\". Mynd that yer ain .css an .js pages uise a lowercase teetle, e.g. {{ns:user}}:Foo/vector.css instead o {{ns:user}}:Foo/Vector.css.",
+'userinvalidcssjstitle' => '<strong>Warnishment</strong> There isnae ae skin "$1". Mynd that yer ain .css an .js pages uise a lowercase teetle, e.g. {{ns:user}}:Foo/vector.css instead o {{ns:user}}:Foo/Vector.css.',
 'updated' => '(Updatit)',
 'note' => "'''Mynd:'''",
 'previewnote' => '<strong>Mynd that this is yinly ae scænce-ower.</strong>
 Yer chynges hae no been hained yet!',
 'continue-editing' => 'Gae til eiditing area',
-'previewconflict' => 'This scance reflects the text in the upper text editin area like it will kythe gin ye chuise tae save.',
-'session_fail_preview' => "'''Sairy! We culdnae process yer edit acause o a loss o term data.
-Please try again. Gin it disnae wairk still, try loggin oot an loggin in again.'''",
-'session_fail_preview_html' => '<strong>Sairrie! We coudna process yer eidit cause o ae loss o session data.</strong>
-
-<em>Cause {{SITENAME}} haes raw HTML enabled, the preview is hidden aes ae precaution again JavaScript attacks.</em>
-
-<strong>Gif this is ae legitimate eidit attempt, please try again.</strong>
-Gif it still disna wairk, try [[Special:UserLogout|loggin oot]] an loggin back in.',
-'token_suffix_mismatch' => "'''Yer edit haes been rejectit acause yer client made a richt mess o the punctuation characters
-in the edit token. The edit haes been rejectit tae hinder corruption o the page text.
-This whiles happens when ye are uisin a bruken web-based anonymous proxy service.'''",
-'edit_form_incomplete' => '<strong>Some pairts o the eidit form didna reach the server; dooble-check that yer eidits ar intact an try again.</strong>',
+'previewconflict' => 'This luikower reflects the tex in the upper tex eeditin airt like it will kith gif ye chuise tae hain.',
+'session_fail_preview' => "'''Sairy! We culdnae process yer eidit acause o ae loss o term data.'''
+Please gie it anither gae. Gin it disnae wairk still, gie [[Special:UserLogout|loggin oot]] n loggin back in again ae gae.",
+'session_fail_preview_html' => '<strong>Sairrie! We coudna process yer eedit cause o ae loss o session data.</strong>
+
+<em>Cause {{SITENAME}} haes raw HTML enabled, the owerluik is skaukt aes ae precaution again JavaScript attacks.</em>
+
+<strong>Gif this is ae legeetimate eedit attempt, please gei it anither gae.</strong>
+Gif it still disna wairk, try [[Special:UserLogout|loggin oot]] n loggin back in.',
+'token_suffix_mismatch' => "<strong>Yer eedit haes been rejectit cause yer client makit ae richt mess o the punctuation chairacters in the eedit token.</strong>
+The eedit haes been rejectit tae hinder rot o the page tex.
+This whiles happens when ye'r uisin ae broken wab-based anonymoos proxie service.",
+'edit_form_incomplete' => '<strong>Some pairts o the eedit form didna reach the server; dooble-check that yer edits ar intact n gie it anither gae.</strong>',
 'editing' => 'Editin $1',
 'creating' => 'Makin $1',
 'editingsection' => 'Editin $1 (section)',
 'editingcomment' => 'Editin $1 (new section)',
-'editconflict' => 'Edit conflict: $1',
-'explainconflict' => "Some ither body haes chynged this page syne ye stertit editin it.
-The upper text area hauds the page text as it currently exists.
-Yer chynges is shawn in the lower text area.
-Ye'll hae tae merge yer chynges intae the existin text.
-'''Juist''' the text in the upper text area will be hained whan ye press \"{{int:savearticle}}\".",
-'yourtext' => 'Yer text',
+'editconflict' => 'Eidit conflict: $1',
+'explainconflict' => 'Some ither body haes chynged this page syne ye stertit eiditin it.
+The upper tex area hauds the page tex aes it currentlie exeests.
+Yer chynges is shawn in the lower tex area.
+Ye\'ll hae tae merge yer chynges intil the exeestin tex.
+<strong>Juist</strong> the tex in the upper tex area will be hained whan ye press "{{int:savearticle}}".',
+'yourtext' => 'Yer tex',
 'storedversion' => 'Storit version',
-'nonunicodebrowser' => "'''Warnishment: Yer brouser isna unicode compliant. Ae warkaroond is in place tae permit ye tae sauflie eidit airticles: no-ASCII chairacters will kythe in the eidit kist aes hexadecimal codes.'''",
-'editingold' => "'''WARNIN: Ye'r editin an oot-o-date reveision o this page. Gin ye hain it, onie chynges made syne this reveision will be lost.'''",
+'nonunicodebrowser' => '<strong>Warnishment: Yer brouser isna unicode compliant.</strong> Ae wairkaroond is in place tae permit ye tae sauflie eedit airticles: non-ASCII chairacters will kythe in the eedit kist aes hexadecimal codes.',
+'editingold' => "<strong>Warnishment:</strong> Ye'r eiditin aen oot-o-date reveesion o this page. Gin ye hain it, onie chynges makit sin this reveesion will be lost.",
 'yourdiff' => 'Differs',
-'copyrightwarning' => "Please mynd that aa contreebutions til {{SITENAME}} is conseedert tae be released unner the $2 (see $1 for details). Gin ye dinna want yer writin tae be eiditit wioot mercy an redistributed at will, than dinna haun it it here.<br /> Forbye thon, ye'r promisin us that ye wrat this yersel, or copied it frae ae public domain or siclike free resoorce. <strong>DINNA SUBMIT COPIERICHTIT WARK WIOOT PERMEESSION!</strong>",
-'copyrightwarning2' => "Please mynd that aa contreebutions til {{SITENAME}} micht be eiditit, chynged, or remuived bi ither contreebuters.
-Gin ye dinna want yer writin tae be eiditit wioot mercie an redistreebuted at will, than dinna haun it in here.<br />
-Ye'r promisin us forbye that ye wrat this yersel, or copied it frae ae
-public domain or siclike free resoorce (see $1 for details).
-<strong>DINNA HAUN IN COPIERICHTIT WARK WIOOT PERMEESSION!</strong>",
-'longpageerror' => "<strong>Mistak: The tex ye'v submitted is {{PLURAL:$1|yin kilobyte|$1 kilobytes}} lang, an this is langer nor the maximum o {{PLURAL:$2|yin kilobyte|$2 kilobytes}}.</strong>
+'copyrightwarning' => "Please mynd that aw contreebutions til {{SITENAME}} is conseedert tae be released unner the $2 (see $1 for details). Gif ye dinna want yer writin tae be eeditit wioot mercie n redistreebuted at will, than dinna haun it it here.<br /> Forbye thon, ye'r promisin us that ye wrat this yersel, or copied it fae ae publeec domain or siclike free resoorce. <strong>Dinna haun in copierichtit wark wioot permeession!</strong>",
+'copyrightwarning2' => "Please mynd that aa contreebutions til {{SITENAME}} micht be eeditit, chynged, or remuived bi ither contreebuters.
+Gin ye dinna want yer writin tae be eeditit wioot mercie n redistreebuted at will, than dinna haun it in here.<br />
+Ye'r promisin us forbye that ye wrat this yersel, or copied it fae ae
+publeec domain or siclike free resoorce (see $1 fer details).
+<strong>Dinna haun in copierichtit wark wioot permeession!</strong>",
+'longpageerror' => "<strong>Mistak: The tex ye'v submitted is {{PLURAL:$1|yin kilobyte|$1 kilobytes}} lang, n this is langer than the maist muckle o {{PLURAL:$2|yin kilobyte|$2 kilobytes}}.</strong>
 It canna be hained.",
-'readonlywarning' => "<strong>Warnishment: The database haes been lockit fer maintenance, sae ye'll no be able tae hain yer eidits richt nou.</strong>
-You micht wish tae copy an paste yer tex intil ae tex file an hain it fer later.
+'readonlywarning' => "<strong>Warnishment: The database haes been lockit fer maintenance, sae ye'll no be able tae hain yer eedits richt nou.</strong>
+Ye micht wish tae copie n paste yer tex intil ae tex file n hain it fer later.
 
 The admeenistræter that lockit it affered this explanation: $1",
-'protectedpagewarning' => '<strong>Warnishment: This page haes been protectit sae that yinly uisers wi admeenistræter privileges can edit it.</strong>
-The latest log entry is provided ablow fer reference:',
-'semiprotectedpagewarning' => '<strong>Note:</strong> This page haes been protected sae that yinly registered uisers can eidit it.
-The latest log entry is provided ablow fer reference:',
-'cascadeprotectedwarning' => "'''Warnin:''' This page haes been lockit sae that only uisers wi sysop richts can edit it, acause it is includit in the followin cascade-protectit {{PLURAL:$1|page|pages}}:",
-'titleprotectedwarning' => '<strong>Warnishment: This page haes been protected sae that [[Special:ListGroupRights|speecific richts]] ar needed tae mak it.</strong>
-The laitest log entry is provided ablo fer reference:',
-'templatesused' => '{{PLURAL:$1|Template|Templates}} used on this page:',
+'protectedpagewarning' => '<strong>Warnishment: This page haes been protectit sae that yinlie uisers wi admeenistrater preevileges can eedit it.</strong>
+The latest log entrie is gien ablo fer referance:',
+'semiprotectedpagewarning' => '<strong>Mynd:</strong> This page haes been protectit sae that yinlie registered uisers can eedit it.
+The latest log entrie is gien ablo fer referance:',
+'cascadeprotectedwarning' => '<strong>Warnishment:</strong> This page haes been lockit sae that yinlie uisers wi admeenisræter richts can eidit it, acause it is inclædit in the follaein cascade-protectit {{PLURAL:$1|page|pages}}:',
+'titleprotectedwarning' => '<strong>Warnishment: This page haes been protectit sae that [[Special:ListGroupRights|speceefic richts]] ar needed tae cræft it.</strong>
+The laitest log entrie is gien ablo fer referance:',
+'templatesused' => '{{PLURAL:$1|Template|Templates}} uised oan this page:',
 'templatesusedpreview' => '{{PLURAL:$1|Template|Templates}} uised in this scænce-ower:',
 'templatesusedsection' => '{{PLURAL:$1|Template|Templates}} uised in this section:',
 'template-protected' => '(protectit)',
 'template-semiprotected' => '(semi-protectit)',
-'hiddencategories' => 'This page is a member of {{PLURAL:$1|1 hidden category|$1 hidden categories}}:',
-'nocreatetext' => '{{SITENAME}} haes restricted the ability tae mak new pages.
-Ye can gae back an edit aen existing page, or [[Special:UserLogin|log in or mak aen accoont]].',
+'hiddencategories' => "This page is ae member o {{PLURAL:$1|1 skauk't categerie|$1 skauk't categeries}}:",
+'nocreatetext' => '{{SITENAME}} haes restricted the abeelitie tae cræft new pages.
+Ye can gang back n eedit aen exestin page, or [[Special:UserLogin|log in or cræft aen accoont]].',
 'nocreate-loggedin' => 'Ye dinnae hae the richts tae mak new pages.',
 'sectioneditnotsupported-title' => 'Section eiditin isna supported',
 'sectioneditnotsupported-text' => 'Section eiditing isna supported in this page.',
 'permissionserrors' => 'Permission mistak',
 'permissionserrorstext' => 'Ye dinnae hae the richts tae dae that, acause o the followin {{PLURAL:$1|grund|grunds}}:',
 'permissionserrorstext-withaction' => 'Ye dinna hae the richts tae $2, fer the follaein {{PLURAL:$1|raison|raisons}}:',
-'recreate-moveddeleted-warn' => "'''Warnishment: Ye'r remakin ae page that haes been delytit.'''
+'recreate-moveddeleted-warn' => "<strong>Warnishment: Ye'r recræftin ae page that haes been delytit.</strong>
 
-Ye shid check that it is guid tae keep eiditin this page.
-The delytion an muiv log fer this page is providit here:",
-'moveddeleted-notice' => 'This page haes bin delytit. 
-The delytion an muiv log fer the page ar provided ablo fer reference.',
+Ye shid check that it is guid tae keep eeditin this page.
+The delytion n muiv log fer this page is providit here fer conveeniance:",
+'moveddeleted-notice' => 'This page haes been delytit. 
+The delytion n muiv log fer the page ar gien ablo fer referance.',
 'log-fulllog' => 'View ful log',
-'edit-hook-aborted' => 'Eidit aborted bi huik.
+'edit-hook-aborted' => 'Eedit abortit bi huik.
 It gae naw explanation.',
 'edit-gone-missing' => 'Coudna update the page.
-It appears tae hae been deletit.',
-'edit-conflict' => 'Eidit conflict.',
-'edit-no-change' => 'Yer eidit wis ignored cause nae chynge wis made til the tex.',
-'postedit-confirmation' => 'Yer eidit wis hained.',
+It appears tae hae been delytit.',
+'edit-conflict' => 'Eedit confleect.',
+'edit-no-change' => 'Yer eedit wis ignored cause nae chynge wis makit til the tex.',
+'postedit-confirmation' => 'Yer eedit wis hained.',
 'edit-already-exists' => 'Coudna mak ae new page.
 It awreadie exists.',
 'defaultmessagetext' => 'Defaut message tex',
 'content-failed-to-parse' => 'Failed tae parse $2 content fer $1 model: $3',
 'invalid-content-data' => 'Onvalid content data',
 'content-not-allowed-here' => '"$1" content isna permited oan the page [[$2]]',
-'editwarning-warning' => 'Leain this page micht cause ye tae lose oni chynges ye\'v made.
-Gif ye\'r loggit in, ye can disable this warning in the "{{int:prefs-editing}}" section o yer preferences.',
+'editwarning-warning' => 'Leain this page micht cause ye tae lose oni chynges that ye\'v makit.
+Gif ye\'r loggit in, ye can disable this warnishment in the "{{int:prefs-editing}}" section o yer preferences.',
 'editpage-notsupportedcontentformat-title' => 'Content format isna supported',
 'editpage-notsupportedcontentformat-text' => 'The content format $1 isna supported bi the content model $2.',
 
@@ -869,10 +871,10 @@ Gif ye\'r loggit in, ye can disable this warning in the "{{int:prefs-editing}}"
 
 It shid hae less than $2 {{PLURAL:$2|caw|caws}}, thaur {{PLURAL:$1|is nou $1 caw|ar noo $1 caws}}.',
 'expensive-parserfunction-category' => 'Pages wi ower moni expensive parser function caws',
-'post-expand-template-inclusion-warning' => "'''Wairnin:''' Template include size is tae lairge. 
-Some templates wull nae be included.",
+'post-expand-template-inclusion-warning' => '<strong>Warnishment Template incluid size is owermuckle. 
+Some templates will na be incluidit.',
 'post-expand-template-inclusion-category' => 'Pages whaur template include size is exceeded',
-'post-expand-template-argument-warning' => 'Tak tent: This page hauds at least the ae template argument that haes an ower muckle expansion size.
+'post-expand-template-argument-warning' => '<strong>Warnishment:</strong> This page hauds at least the ae template argument that haes aen ower muckle expansion size.
 Thir arguments hae been left oot.',
 'post-expand-template-argument-category' => 'Pages containing omitted template arguments',
 'parser-template-loop-warning' => 'Template luip detected: [[$1]]',
@@ -887,107 +889,113 @@ Thir arguments hae been left oot.',
 'converter-manual-rule-error' => 'mistak detected in manual leid conversion rule',
 
 # "Undo" feature
-'undo-success' => 'The edit can be undone. Please check the chynges albo tae check that this is whit ye wint tae dae, an then hain the chynges albo tae be duin undooin the edit.',
+'undo-success' => 'The eidit can be ondun. Please check the chynges albo tae check that this is whit ye wint tae dae, n than hain the chynges albo tae be duin ondaein the eidit.',
 'undo-failure' => 'The edit culdnae be undone acause o conflictin edits inatween.',
-'undo-norev' => 'The eidit coudna be ondone cause it disna exist or wis deletit.',
+'undo-norev' => 'The eedit coudna be ondun cause it disna exeest or wis delytit.',
 'undo-nochange' => 'The edit appears tae hae awready been ondone.',
-'undo-summary' => 'Undo reveision $1 by [[Special:Contributions/$2|$2]] ([[User talk:$2|Talk]])',
-'undo-summary-username-hidden' => 'Ondae revision $1 bi ae hidden uiser',
+'undo-summary' => 'Ondae reveesion $1 bi [[Special:Contributions/$2|$2]] ([[User talk:$2|Tauk]])',
+'undo-summary-username-hidden' => "Ondae reveesion $1 bi ae skauk't uiser",
 
 # Account creation failure
 'cantcreateaccounttitle' => 'Canna mak accoont',
-'cantcreateaccount-text' => "Accoont makkin frae this IP address ('''$1''') haes been blockit by [[User:$3|$3]].
+'cantcreateaccount-text' => "Accoont cræftin fae this IP address ('''$1''') haes been blockit bi [[User:$3|$3]].
 
-The grund for this, given by $3 is ''$2''",
-'cantcreateaccount-range-text' => "Accoont creation fae IP addresses in the range '''$1''', that inclædes yer IP address ('''$4'''), haes been blockit bi [[User:$3|$3]].
+The raison fer this, gien bi $3 is ''$2''",
+'cantcreateaccount-range-text' => "Accoont cræftin fae IP addresses in the range '''$1''', that inclædes yer IP address ('''$4'''), haes been blockit bi [[User:$3|$3]].
 
 The raison gien bi $3 is ''$2''",
 
 # History pages
 'viewpagelogs' => 'Leuk at logs fer this page',
-'nohistory' => "Thaur's nae eidit histerie fer this page.",
-'currentrev' => 'Current reveision',
-'currentrev-asof' => 'Latest revision as of $1',
-'revisionasof' => 'Reveision as o $1',
-'revision-info' => 'Revision as o $1 by $2',
-'previousrevision' => '← Aulder reveision',
-'nextrevision' => 'Newer reveision →',
-'currentrevisionlink' => 'see current reveision',
+'nohistory' => "Thaur's nae eedit histerie fer this page.",
+'currentrev' => 'Reveesion the nou',
+'currentrev-asof' => 'Latest reveesion aes o $1',
+'revisionasof' => 'Reveesion aes o $1',
+'revision-info' => 'Reveesion aes o $1 bi $2',
+'previousrevision' => '← Aulder reveesion',
+'nextrevision' => 'Newer reveesion →',
+'currentrevisionlink' => 'Latest reveesion',
 'cur' => 'nou',
 'next' => 'neist',
 'last' => 'hind',
 'page_first' => 'first',
 'page_last' => 'hindermaist',
-'histlegend' => 'Diff selection: mairk the radio boxes o the versions tae compare an press enter or the button at the bottom.<br /> Legend: (cur) = difference frae current version, (last) = difference frae foregaun version, s = smaa edit.',
-'history-fieldset-title' => 'Browse history',
-'history-show-deleted' => 'Deletit only',
+'histlegend' => 'Diff selection: Maurk the radio kists o the reveesions tae compare n hit enter or the button at the bottom.<br />
+Legend: <strong>({{int:cur}})</strong> = differance wi laitest reveesion, <strong>({{int:last}})</strong> = differance wi preceedin reveesion, <strong>{{int:minoreditletter}}</strong> = smaa eidit.',
+'history-fieldset-title' => 'Brouse histerie',
+'history-show-deleted' => 'Delytit yinlie',
 'histfirst' => 'auldest',
 'histlast' => 'newest',
 'historysize' => '({{PLURAL:$1|1 byte|$1 bytes}})',
 'historyempty' => '(empie)',
 
 # Revision feed
-'history-feed-title' => 'Revision history',
+'history-feed-title' => 'Reveesion histerie',
 'history-feed-description' => 'Reveesion histerie fer this page oan the wiki',
 'history-feed-item-nocomment' => '$1 at $2',
-'history-feed-empty' => 'The requestit page disnae exist.
-It micht hae been deletit frae the wiki, or the name micht hae been chynged.
-Try [[Special:Search|rakin on the wiki]] for new pages ye micht be interestit in.',
+'history-feed-empty' => 'The requestit page disnae exeest.
+It micht hae been delytit fae the wiki, or the name micht hae been chynged.
+Try [[Special:Search|rakin oan the wiki]] fer new pages ye micht be interestit in.',
 
 # Revision deletion
 'rev-deleted-comment' => '(eidit summarie remuived)',
 'rev-deleted-user' => '(uisername removit)',
 'rev-deleted-event' => '(log action remuived)',
-'rev-deleted-user-contribs' => '[uisername or IP address remuived - eidit hidden fae contreebutions]',
+'rev-deleted-user-contribs' => "[uisername or IP address remuived - eidit skauk't fae contreebutions]",
 'rev-deleted-text-permission' => 'This page reveesion haes been <strong>delytit</strong>.
 Details can be foond in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} delytion log].',
 'rev-deleted-text-unhide' => 'This page reveesion haes been <strong>delytit</strong>.
 Details can be foond in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} delytion log].
 Ye can still [$1 view this reveesion] gif ye wish tae proceed.',
-'rev-suppressed-text-unhide' => 'This page revision haes been <strong>suppressed</strong>.
+'rev-suppressed-text-unhide' => 'This page reveesion haes been <strong>suppressed</strong>.
 Details can be foond in the [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].
-Ye can still [$1 view this revision] gif ye wish tae proceed.',
+Ye can still [$1 view this reveesion] gif ye wish tae proceed.',
 'rev-deleted-text-view' => 'This page reveesion haes been <strong>delytit</strong>.
 Ye can view it; details can be foond in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} delytion log].',
-'rev-suppressed-text-view' => 'This page revision haes been <strong>suppressed</strong>.
+'rev-suppressed-text-view' => 'This page reveesion haes been <strong>suppressed</strong>.
 Ye can view it; details can be foond in the [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].',
 'rev-deleted-no-diff' => 'Ye canna view this diff cause yin o the reveesions haes been <strong>delytit</strong>.
 Details can be foond in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} delytion log].',
-'rev-suppressed-no-diff' => 'Ye cannae view this diff cause yin o the revisions haes been <strong>deletit</strong>.',
+'rev-suppressed-no-diff' => 'Ye cannae see this diff cause yin o the reveesions haes been <strong>delytit</strong>.',
 'rev-deleted-unhide-diff' => 'Yin o the reveesions o this diff haes been <strong>delytit</strong>.
 Details can be foond in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} delytion log].
 Ye can still [$1 view this diff] gif ye wish tae proceed.',
 'rev-suppressed-unhide-diff' => 'Yin o the reveesions o this diff haes been <strong>suppressed</strong>.
 Details can be foond in the [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].
 Ye can still [$1 view this diff] gif ye wish tee proceed.',
-'rev-suppressed-diff-view' => 'Yin o the revisions o this diff haes been <strong>suppressed</strong>.
+'rev-deleted-diff-view' => "Ane o the reveesions o this diff haes been '''delytit'''.
+Ye can see this diff; details can be foond in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} delytion log].",
+'rev-suppressed-diff-view' => 'Yin o the reveesions o this diff haes been <strong>suppressed</strong>.
 Ye can view this diff; details can be foond in the [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} suppression log].',
-'rev-delundel' => 'shaw/scug',
+'rev-delundel' => 'chynge veesibilitie',
 'rev-showdeleted' => 'shaw',
 'revisiondelete' => 'Delyte/ondelyte reveesions',
-'revdelete-nooldid-title' => 'Onvalid target revision',
-'revdelete-nooldid-text' => "Ye'v either no speecified ae target reveesion(s) tae perform this function, the speecified revision disna exist, or ye'r attemptin tae skauk the current reveesion.",
-'revdelete-no-file' => 'The file speecified disna exist.',
-'revdelete-show-file-confirm' => 'Ar ye sair ye wish tae view ae deletit reveesion o the file "<nowiki>$1</nowiki>" fae $2 at $3?',
+'revdelete-nooldid-title' => 'Onvalid target reveesion',
+'revdelete-nooldid-text' => "Aither ye'v naw speceefied ae tairget reveesion(s) tae perform this function, the speceefied reveesion disna exeest, or ye'r attemptin tae skauk the Nou reveesion.",
+'revdelete-no-file' => 'The file speceefied disna exeest.',
+'revdelete-show-file-confirm' => 'Ar ye sair ye wish tae see ae delytit reveesion o the file "<nowiki>$1</nowiki>" fae $2 at $3?',
 'revdelete-show-file-submit' => 'Ai',
 'revdelete-selected' => '<strong>{{PLURAL:$2|Selected reveesion|Selected reveesions}} o [[:$1]]:</strong>',
-'revdelete-text' => "<strong>Delytit reveesions an events will still kyth in the page histerie an logs, but pairts o their content will be onaccessible til the public.</strong>
-Ither admeenistraters oan {{SITENAME}} will still be able tae access the skauk't content an can ondelyte it again through this same interface, onless addeetional restreections ar set.",
-'revdelete-confirm' => "Please confirm that ye'r ettlin tae dae this, that ye unnerstaunn the consequences, an that ye'r daein this in accordance wi [[{{MediaWiki:Policy-url}}|the policie]].",
+'logdelete-selected' => "'''{{PLURAL:$1|Selectit log event|Selectit log events}}:'''",
+'revdelete-text-text' => 'Delytit reveesions will still kith in the page histerie, bit pairts o thair content will be onaccessible til the publeec.',
+'revdelete-text-file' => 'Delytit file versions will still kith in the file histerie, bit pairts o thair content will be onaccessible til the publeec.',
+'logdelete-text' => 'Delytit log events will still kith in the logs, bit pairts o thair content will be onaccessible til the publeec.',
+'revdelete-text-others' => 'Ither admeenistraters oan {{SITENAME}} will still be able tae access the skaukt content n can ondelyte it again throoch this same interface, onless addeetional restreections ar set.',
+'revdelete-confirm' => "Please confirm that ye'r ettlin tae dae this, that ye unnerstaunn the consequences, n that ye'r daein this in accordance wi [[{{MediaWiki:Policy-url}}|the policie]].",
 'revdelete-suppress-text' => 'Suppression shid <strong>yinly</strong> be uised fer the follaein cases:
-* poteentially libeloos information
-* onappropriate personal information
-*: <em>hame addresses an telephane nummers, national ideentification nummers, etc.</em>',
+* poteentiallie libeloos information
+* galus personal information
+*: <em>hame addresses n telephane nummers, national ideentifeecation nummers, etc.</em>',
 'revdelete-legend' => 'Set visibeelitie restreections',
 'revdelete-hide-text' => 'Reveesion tex',
 'revdelete-hide-image' => 'Skauk file content.',
-'revdelete-hide-name' => 'Skauk aiction an target',
+'revdelete-hide-name' => 'Skauk aiction n tairget',
 'revdelete-hide-comment' => 'Eidit summarie',
-'revdelete-hide-user' => "Eiditor's uisername/IP address",
+'revdelete-hide-user' => "Eiditer's uisername/IP address",
 'revdelete-hide-restricted' => 'Suppress data fae admeenistraters aes weel aes ithers',
 'revdelete-radio-same' => '(dinna chynge)',
-'revdelete-radio-set' => 'Hidden',
-'revdelete-radio-unset' => 'Visible',
+'revdelete-radio-set' => "Skauk't",
+'revdelete-radio-unset' => 'Veesible',
 'revdelete-suppress' => 'Suppress data fae admeenistraters aes weel aes ithers',
 'revdelete-unsuppress' => 'Remuiv restreections oan restored reveesions',
 'revdelete-log' => 'Raison:',
@@ -998,20 +1006,20 @@ $1',
 'logdelete-success' => '<strong>Log veesibeelitie successfully set.</strong>',
 'logdelete-failure' => '<strong>Log veesibddlitie coudna be set:</strong>
 $1',
-'revdel-restore' => 'change visibility',
-'pagehist' => 'Page history',
-'deletedhist' => 'Deletit histerie',
-'revdelete-hide-current' => 'Mistak hidin the item dated $2, $1: This is the current reveesion.
-It cannna be hidden.',
+'revdel-restore' => 'chynge veesibeelitie',
+'pagehist' => 'Page histerie',
+'deletedhist' => 'Delytit histerie',
+'revdelete-hide-current' => "Mistak skaukin the eitem dated $2, $1: This is the current reveesion.
+It cannna be skauk't.",
 'revdelete-show-no-access' => 'Mistak shawin the eitem dated $2, $1: This eitem haes been maurked "restreected".
 Ye dinna hae access til it.',
 'revdelete-modify-no-access' => 'Mistak modifiein the eitem dated $2, $1: This eitem haes been maurked "restreected".
 Ye dinna hae access til it.',
 'revdelete-modify-missing' => 'Mistak modifiein item ID $1: It is missing fae the database!',
-'revdelete-no-change' => '<strong>Warnishment:</strong> The eitem dated $2, $1 awreadie haed the requested veesibeelitie settins.',
+'revdelete-no-change' => '<strong>Warnishment:</strong> The eetem dated $2, $1 awreadie haed the requested veesibeelitie settins.',
 'revdelete-concurrent-change' => "Mistak modifiein the eitem dated $2, $1: Its status appears tae'v been chynged bi some ither bodie while ye attempted tae modifie it.
 Please check the logs.",
-'revdelete-only-restricted' => 'Mistak hidin the item dated $2, $1: Ye canna suppress eitems fae view bi admeenistraters wioot selectin yin o the ither veesibeelitie opties ava.',
+'revdelete-only-restricted' => 'Mistak skaukin the eetem dated $2, $1: Ye canna suppress eetems fae sicht bi admeenistraters wioot selectin yin o the ither veesibeelitie opties ava.',
 'revdelete-reason-dropdown' => '*Commyn delete raisons
 ** Copiericht violation
 ** Onappropriate comment or personal information
@@ -1024,8 +1032,8 @@ Please check the logs.",
 
 # Suppression log
 'suppressionlog' => 'Suppreession log',
-'suppressionlogtext' => 'Ablow is ae leet o deletions an blocks involvin content hidden fae admeenistraters.
-See the [[Special:BlockList|block leet]] fer the leet o currentlie operational bans an blocks.',
+'suppressionlogtext' => "Ablo is ae leet o delytions n blocks involvin content skauk't fae admeenistraters.
+See the [[Special:BlockList|block leet]] fer the leet o currentlie operational bans n blocks.",
 
 # History merging
 'mergehistory' => 'Merge page histeries',
@@ -1034,22 +1042,22 @@ Mak sair that this chynge will maintain historical page conteenuitie.',
 'mergehistory-box' => 'Merge reveesions o twa pages:',
 'mergehistory-from' => 'Soorce page:',
 'mergehistory-into' => 'Destinâtion page:',
-'mergehistory-list' => 'Mergeable eidit history',
-'mergehistory-merge' => 'The follaein revisions o [[:$1]] can be merged intil [[:$2]].
-Uise the radio button column tae merge in yinly the reveesions maed at an afore the speecified time.
-Note that uising the navigâtion links will reset this column.',
+'mergehistory-list' => 'Mergeable eidit histerie',
+'mergehistory-merge' => 'The follaein reveesions o [[:$1]] can be merged intil [[:$2]].
+Uise the radio button column tae merge in yinlie the reveesions cræftit at n afore the speceefied time.
+Mynd that uisin the naveegation links will reset this column.',
 'mergehistory-go' => 'Shaw mergeable eidits',
 'mergehistory-submit' => 'Merge reveesions',
 'mergehistory-empty' => 'Naw reveesions can be merged.',
 'mergehistory-success' => '$3 {{PLURAL:$3|reveesion|reveesions}} o [[:$1]] successfully merged intil [[:$2]].',
-'mergehistory-fail' => 'Onable tae perform histerie merge, please recheck the page an time parameters.',
-'mergehistory-no-source' => 'Source page $1 disna exist.',
-'mergehistory-no-destination' => 'Destinâtion page $1 disna exist.',
+'mergehistory-fail' => 'Onable tae perform histerie merge, please recheck the page n time parameters.',
+'mergehistory-no-source' => 'Soorce page $1 disna exeest.',
+'mergehistory-no-destination' => 'Destination page $1 disna exeest.',
 'mergehistory-invalid-source' => 'Source page maun be ae valid title.',
 'mergehistory-invalid-destination' => 'Destinâtion page maun be ae valid title.',
 'mergehistory-autocomment' => 'Merged [[:$1]] intil [[:$2]]',
 'mergehistory-comment' => 'Merged [[:$1]] intil [[:$2]]: $3',
-'mergehistory-same-destination' => 'Soorce an destinâtion pages canna be the same',
+'mergehistory-same-destination' => 'Soorce n destination pages canna be the same',
 'mergehistory-reason' => 'Raeson:',
 
 # Merge log
@@ -1059,17 +1067,17 @@ Note that uising the navigâtion links will reset this column.',
 'mergelogpagetext' => 'Ablow is ae leet o the maist recent merges o yin page histerie intil anither.',
 
 # Diffs
-'history-title' => 'Revision histerie o "$1"',
-'difference-title' => 'Difference atween reveesions of "$1"',
-'difference-title-multipage' => 'Difference atween pages "$1" an "$2"',
+'history-title' => 'Reveesion histerie o "$1"',
+'difference-title' => 'Difference atween reveesions o "$1"',
+'difference-title-multipage' => 'Difference atween pages "$1" n "$2"',
 'difference-multipage' => '(Difference atween pages)',
 'lineno' => 'Line $1:',
 'compareselectedversions' => 'Compare selectit versions',
 'showhideselectedversions' => 'Chynge veesibeelitie o selected reveesions',
-'editundo' => 'undo',
+'editundo' => 'ondae',
 'diff-empty' => '(Naw difference)',
-'diff-multi-sameuser' => '({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} bi the same uiser no shown)',
-'diff-multi-otherusers' => '({{PLURAL:$1|One intermediate revision|$1 intermediate revisions}} bi {{PLURAL:$2|one other user|$2 users}} not shown)',
+'diff-multi-sameuser' => '({{PLURAL:$1|yin intermeediate reveesion|$1 intermeediate reveesions}} bi the same uiser naw shawn)',
+'diff-multi-otherusers' => '({{PLURAL:$1|yin intermeediate reveesion|$1 intermeediate reveesions}} bi {{PLURAL:$2|yin ither uiser|$2 uisers}} no shawn)',
 'diff-multi-manyusers' => '({{PLURAL:$1|Yin intermeediate reveesion|$1 intermeediate reveesions}} bi mair than $2 {{PLURAL:$2|uiser|uisers}} no shawn)',
 'difference-missing-revision' => '{{PLURAL:$2|Yin reveesion|$2 reveesions}} o this difference ($1) {{PLURAL:$2|was|were}} no fond.
 
@@ -1078,11 +1086,11 @@ Details can be foond in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENA
 
 # Search results
 'searchresults' => 'Rake results',
-'searchresults-title' => 'Rake affcome fer "$1"',
+'searchresults-title' => 'Rake ootcome fer "$1"',
 'toomanymatches' => 'Ower moni matches were returned, please try ae different speirin',
 'titlematches' => 'Airticle teitle matches',
 'textmatches' => 'Page tex matches',
-'notextmatches' => 'Nae page text matches',
+'notextmatches' => 'Nae page tex matches',
 'prevn' => 'foregaun {{PLURAL:$1|$1}}',
 'nextn' => 'neist {{PLURAL:$1|$1}}',
 'prevn-title' => 'Previous $1 {{PLURAL:$1|ootcome|ootcomes}}',
@@ -1090,36 +1098,36 @@ Details can be foond in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENA
 'shown-title' => 'Shaw $1 {{PLURAL:$1|ootcome|ootcomes}} per page',
 'viewprevnext' => 'View ($1 {{int:pipe-separator}} $2) ($3)',
 'searchmenu-exists' => "'''There is a page named \"[[:\$1]]\" oan this wiki.'''",
-'searchmenu-new' => '<strong>Mak the page "[[:$1]]" oan this wiki!</strong> {{PLURAL:$2|0=|See the page foond wi yer rake ava.|See the rake affcome foond ava.}}',
+'searchmenu-new' => '<strong>Cræft the page "[[:$1]]" oan this wiki!</strong> {{PLURAL:$2|0=|See the page foond wi yer rake ava.|See the rake ootcome foond ava.}}',
 'searchprofile-articles' => 'Content pages',
-'searchprofile-project' => 'Help and Project pages',
+'searchprofile-project' => 'Heelp n Waurk pages',
 'searchprofile-images' => 'Multimedia',
 'searchprofile-everything' => 'Everything',
 'searchprofile-advanced' => 'Advanced',
 'searchprofile-articles-tooltip' => 'Rake in $1',
 'searchprofile-project-tooltip' => 'Rake in $1',
 'searchprofile-images-tooltip' => 'Rake fer files',
-'searchprofile-everything-tooltip' => 'Rake aw o content (including talk pages)',
+'searchprofile-everything-tooltip' => 'Rake aw o content (inclædin tauk pages)',
 'searchprofile-advanced-tooltip' => 'Rake in custom namespaces',
 'search-result-size' => '$1 ({{PLURAL:$2|1 word|$2 words}})',
 'search-result-category-size' => '{{PLURAL:$1|1 member|$1 members}} ({{PLURAL:$2|1 subcategory|$2 subcategories}}, {{PLURAL:$3|1 file|$3 files}})',
 'search-result-score' => 'Relevanc: $1%',
-'search-redirect' => '(redirect $1)',
+'search-redirect' => '(reguide $1)',
 'search-section' => '(section $1)',
 'search-file-match' => '(matches file content.)',
 'search-suggest' => 'Did ye mean: $1',
 'search-interwiki-caption' => "Sister projec's",
-'search-interwiki-default' => "$1 results':",
-'search-interwiki-more' => '(more)',
+'search-interwiki-default' => 'Ootcomes fae $1:',
+'search-interwiki-more' => '(mair)',
 'search-relatedarticle' => 'Relatit',
 'searcheverything-enable' => 'Rake in aw namespaces',
 'searchrelated' => 'related',
 'searchall' => 'aw',
 'showingresults' => "Shawin ablo up tae {{PLURAL:$1|'''1''' result|'''$1''' results}} stertin wi #'''$2'''.",
-'showingresultsinrange' => 'Shawin ablo up til {{PLURAL:$1|<strong>1</strong> affcome|<strong>$1</strong> affcome}} in range #<strong>$2</strong> til #<strong>$3</strong>.',
+'showingresultsinrange' => 'Shawin ablo up til {{PLURAL:$1|<strong>1</strong> ootcome|<strong>$1</strong> ootcome}} in range #<strong>$2</strong> til #<strong>$3</strong>.',
 'showingresultsnum' => "Shawin ablo {{PLURAL:$3|'''1''' result|'''$3''' results}} stertin wi #'''$2'''.",
-'showingresultsheader' => '{{PLURAL:$5|Affcome <strong>$1</strong> o <strong>$3</strong>|Affcomes <strong>$1 - $2</strong> o <strong>$3</strong>}} fer <strong>$4</strong>',
-'search-nonefound' => "Thare wur na ootcomes matching th' query.",
+'showingresultsheader' => '{{PLURAL:$5|Ootcome <strong>$1</strong> o <strong>$3</strong>|Ootcomes <strong>$1 - $2</strong> o <strong>$3</strong>}} fer <strong>$4</strong>',
+'search-nonefound' => 'Thaur were naw ootcomes matchin the speiring.',
 'powersearch-legend' => 'Advanced rake',
 'powersearch-ns' => 'Rake in namespaces:',
 'powersearch-redir' => 'Leet redirects',
@@ -1139,11 +1147,11 @@ Details can be foond in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENA
 'skin-preview' => 'First Leuk',
 'datedefault' => 'Nae preference',
 'prefs-beta' => 'Beta features.',
-'prefs-datetime' => 'Date an time',
+'prefs-datetime' => 'Date n time',
 'prefs-labs' => 'Labs featurs',
 'prefs-user-pages' => 'Uiser pages',
 'prefs-personal' => 'Uiser data',
-'prefs-rc' => 'Recent chynges an shawin stubs',
+'prefs-rc' => 'Recent chynges n shawin stubs',
 'prefs-watchlist' => 'Watchleet',
 'prefs-watchlist-days' => 'Days tae shaw in watchleet:',
 'prefs-watchlist-days-max' => 'Mucklest $1 {{PLURAL:$1|day|days}}',
@@ -1152,78 +1160,272 @@ Details can be foond in the [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENA
 'prefs-watchlist-token' => 'Watchleet token:',
 'prefs-misc' => 'Antrin settins',
 'prefs-resetpass' => 'Chynge passwaird',
+'prefs-changeemail' => 'Chynge Wab-mail address',
+'prefs-setemail' => 'Set ae wab-mail address',
+'prefs-email' => 'Wab-mail opties',
+'prefs-rendering' => 'Appearence',
 'saveprefs' => 'Hain preferences',
+'restoreprefs' => 'Restore aw defaut settins (in aw sections)',
 'prefs-editing' => 'Editin',
+'rows' => 'Raws:',
 'searchresultshead' => 'Rake result settins',
+'stub-threshold' => 'Threeshaud fer <a href="#" class="stub">stub link</a> formattin (bytes):',
 'stub-threshold-disabled' => 'Tuckie',
-'recentchangescount' => 'Nummer o eidits tae shaw bi defaut:',
+'recentchangesdays' => 'Days tae shaw in recynt chynges:',
+'recentchangesdays-max' => 'Mucklest $1 {{PLURAL:$1|day|days}}',
+'recentchangescount' => 'Nummer o eedits tae shaw bi defaut:',
+'prefs-help-recentchangescount' => 'This includes recent chynges, page histories, n logs.',
 'prefs-help-watchlist-token2' => 'This is the hidlins key til the wab feed o yer watchleet. Onibodie wha kens this can read yer watchleet, sae dinna shair it. Gif ye need to, [[Special:ResetTokens|Ye can reset it]].',
 'savedprefs' => 'Yer preferences haes been hained.',
+'timezoneuseserverdefault' => 'Uise wiki defaut ($1)',
+'timezoneuseoffset' => 'Ither (speceefie affset)',
 'servertime' => 'Server time the nou',
 'guesstimezone' => 'Fill in frae brouser',
+'timezoneregion-africa' => 'Africae',
+'timezoneregion-america' => 'Americae',
+'timezoneregion-antarctica' => 'Antairctica',
+'timezoneregion-arctic' => 'Airctic',
+'timezoneregion-asia' => 'Asie',
+'timezoneregion-atlantic' => 'Atlaunteec Ocean',
+'timezoneregion-australia' => 'Australie',
+'timezoneregion-europe' => 'Europ',
+'timezoneregion-pacific' => 'Paceefic Ocean',
 'allowemail' => 'Allou email frae ither uisers',
+'prefs-searchoptions' => 'Rake',
 'defaultns' => 'Itherwise rake in thir namespaces:',
 'default' => 'defaut',
 'prefs-files' => 'Files',
 'prefs-custom-css' => 'Custom CSS',
 'prefs-custom-js' => 'Custom JS',
+'prefs-common-css-js' => 'Shaired CSS/JavaScript fer aw skins:',
+'prefs-reset-intro' => 'Ye can uise this page tae reset yer preeferances til the steid defauts.
+This canna be ondun.',
+'prefs-emailconfirm-label' => 'Wab-mail confirmation:',
 'youremail' => 'Yer email:',
 'username' => '{{GENDER:$1|Uisername}}:',
 'uid' => '{{GENDER:$1|Uiser}} ID:',
 'prefs-memberingroups' => '{{GENDER:$2|Member}} o {{PLURAL:$1|group|groups}}:',
+'prefs-registration' => 'Regeestration time:',
 'yourrealname' => 'Yer real name:',
 'yourlanguage' => 'Interface leid:',
 'yourvariant' => 'Content leid variant',
+'prefs-help-variant' => 'Yer preferred variant or orthographie tae displey the content pages o this wiki in.',
 'yournick' => 'New seegnatur:',
+'prefs-help-signature' => 'Comments oan talk pages shid be signed wi "<nowiki>~~~~</nowiki>", this will be convertit intil yer signatur n ae timestamp.',
 'badsig' => 'Raw signature nae guid; check HTML tags.',
 'badsiglength' => 'Yer nickname is ower lang; it haes tae be $1 {{PLURAL:$1|character|characters}} or less.',
+'yourgender' => 'Hou dae ye prefer tae be described?',
+'gender-unknown' => 'Ah prefer tae na say',
+'gender-male' => 'He eedits wiki pages',
+'gender-female' => 'She eedits wiki pages',
+'prefs-help-gender' => 'Settin this preference is aen optie.
+The saffware uises its value tae address ye n tae mention ye til ithers uisin the appropriate grammatical gender.
+This information will be publeec.',
 'email' => 'E-mail',
-'prefs-help-realname' => 'Rael name is optional an gin ye chuise tae provide it this will be uised tae gie ye attreibution for yer wark.',
+'prefs-help-realname' => 'Real name is aen optie.
+Gif ye chuise tae provide it, this will be uised fer giein ye attreebution fer yer wark.',
 'prefs-help-email' => 'Wab-mail is optional, bit is needed fer passwaird resets, shid ye ferget yer passwaird.',
-'prefs-help-email-others' => 'Ye can chuise tae let ithers contact ye bi wab-mail through ae link on yer uiser or talk page.
+'prefs-help-email-others' => 'Ye can chuise tae let ithers contact ye bi wab-mail through ae link oan yer uiser or tauk page.
 Yer wab-mail address isna revealed whan ither uisers contact ye.',
 'prefs-help-email-required' => 'Yer e-mail address is needit.',
+'prefs-i18n' => 'Internaitionalisation',
+'prefs-signature' => 'Signatur',
+'prefs-timeoffset' => 'Time affset',
+'prefs-advancedediting' => 'General opties',
+'prefs-editor' => 'Eediter',
+'prefs-preview' => 'Luikower',
+'prefs-advancedrc' => 'Advanced opties',
+'prefs-advancedrendering' => 'Advanced opties',
+'prefs-advancedsearchoptions' => 'Advanced opties',
+'prefs-advancedwatchlist' => 'Advanced opties',
+'prefs-displayrc' => 'Displey opties',
+'prefs-displaysearchoptions' => 'Displey opties',
+'prefs-displaywatchlist' => 'Displey opties',
 'prefs-diffs' => 'Diffs',
+'prefs-help-prefershttps' => 'This preeferance will tak effect oan yer nex login.',
+'prefs-tabs-navigation-hint' => 'Tip: Ye can uise the cair n richt arrae keys tae naveegate atween the tabs in the tabs leet.',
+
+# User preference: email validation using jQuery
+'email-address-validity-valid' => 'Wab-mail address appears tae be valid',
+'email-address-validity-invalid' => 'Enter ae valid wab-mail address',
 
 # User rights
+'userrights' => 'Uiser richts managemant',
 'userrights-lookup-user' => 'Manish uiser boorachs',
 'userrights-user-editname' => 'Enter a uisername:',
-'editusergroup' => 'Edit uiser boorach',
+'editusergroup' => 'Eidit uiser boorach',
 'editinguser' => 'Chynging uiser richts o uiser <strong>[[User:$1|$1]]</strong> $2',
+'userrights-editusergroup' => 'Eedit uiser groops',
+'saveusergroups' => 'Hain uiser groops',
 'userrights-groupsmember' => 'Member o:',
+'userrights-groupsmember-auto' => 'Impleecit memmer o:',
+'userrights-groups-help' => "Ye can alter the groops this uiser is in:
+* Ae checkit kist means that the uiser is in that groop.
+* Aen oncheckit kist means that the uiser's no in that groop.
+* Ae * indicates that ye cannae remuiv the groop yince ye'v added it, or vice versa.",
+'userrights-reason' => 'Raison:',
+'userrights-no-interwiki' => 'Ye dinna hae permission tae eedit uiser richts oan ither wikis.',
+'userrights-nodatabase' => 'Database $1 disna exeest or isna local.',
+'userrights-nologin' => 'Ye maun [[Special:UserLogin|log in]] wi aen admeenistrater accoont tae assign uiser richts.',
+'userrights-notallowed' => 'Ye dinna hae permission tae add or remuiv uiser richts.',
+'userrights-changeable-col' => 'Groops that ye can chynge',
+'userrights-unchangeable-col' => 'Groops ye canna chynge',
+'userrights-conflict' => 'Conflict o uiser richts chynges! Please luikower n confirm yer chynges.',
+'userrights-removed-self' => "Ye'v successfulie remuived yer ain richts. N sae, ye'r naw langer able tae access this page.",
 
 # Groups
+'group' => 'Groop:',
 'group-user' => 'Uisers',
+'group-autoconfirmed' => 'Autæconfirmed uisers',
 'group-bot' => 'Bots',
+'group-sysop' => 'Admeenistraters',
+'group-suppress' => 'Owersichts',
 'group-all' => '(aw)',
 
 'group-user-member' => '{{GENDER:$1|uiser}}',
+'group-autoconfirmed-member' => '{{GENDER:$1|autæconfirmed uiser}}',
 'group-bot-member' => '{{GENDER:$1|bot}}',
+'group-sysop-member' => '{{GENDER:$1|admeenistrater}}',
+'group-suppress-member' => '{{GENDER:$1|owersicht}}',
+
+'grouppage-user' => '{{ns:project}}:Uisers',
+'grouppage-autoconfirmed' => '{{ns:project}}:Autæconfirmed uisers',
+'grouppage-sysop' => '{{ns:project}}:Admeenistraters',
+'grouppage-suppress' => '{{ns:project}}:Owersicht',
 
 # Rights
+'right-edit' => 'Eedit pages',
+'right-createpage' => 'Cræft pages (that arna tauk pages)',
+'right-createtalk' => 'Cræft discussion pages',
+'right-createaccount' => 'Cræft new uiser accoonts',
+'right-minoredit' => 'Maurk eedits aes smaa',
+'right-move' => 'Muiv pages',
+'right-move-subpages' => 'Muiv pages wi thair subpages',
+'right-move-rootuserpages' => 'Muiv ruit uiser pages',
+'right-movefile' => 'Muiv files',
+'right-suppressredirect' => 'Na cræft reguidals fae soorce pages whan muivin pages',
+'right-upload' => 'Uplaid files',
+'right-reupload' => 'Owerwrite exeestin files',
+'right-reupload-own' => 'Owerwrite exeestin files uplaidit bi yersel',
+'right-reupload-shared' => 'Owerride files oan the shaired media repositerie locallie',
+'right-upload_by_url' => 'Uplaid files fae ae URL',
+'right-purge' => 'Purge the steid cache fer ae page wioot confirmation',
+'right-autoconfirmed' => 'Na be affectit bi IP-based rate leemits',
+'right-bot' => 'Be treatit aes aen autæmatit process',
+'right-nominornewtalk' => 'Na hae smaa eedits til discussion pages trigger the new messages prompt',
+'right-apihighlimits' => 'Uise heicher leemits in API queries',
+'right-writeapi' => 'Uise o the write API',
 'right-delete' => 'Delyte pages',
+'right-bigdelete' => 'Delyte pages wi muckle histeries',
+'right-deletelogentry' => 'Delyte n ondelyte speceefic log entries',
+'right-deleterevision' => 'Delyte n ondylete speceefic reveesions o pages',
+'right-deletedhistory' => 'See delytit histerie entries, wioot thair associatit tex',
+'right-deletedtext' => 'See delytit tex n chynges atween delytit reveesions',
+'right-browsearchive' => 'Rake delytit pages',
+'right-undelete' => 'Ondelyte ae page',
+'right-suppressrevision' => 'Luikower n restore reveesions skaukt fae admeenistraters',
+'right-suppressionlog' => 'see preevate logs',
+'right-block' => 'Block ither uisers fae eeditin',
+'right-blockemail' => 'Block ae uiser fae sendin wab-mail',
+'right-hideuser' => 'Block ae uisername, skaukin it fae the publeec',
+'right-ipblock-exempt' => 'Bypass IP blocks, autae-blocks  range blocks',
+'right-proxyunbannable' => 'Bypass autaematic blocks o proxies',
+'right-unblockself' => 'Onblock yersel',
+'right-protect' => 'Chynge protection levels n eedit cascade-protected pages',
+'right-editprotected' => 'Eedit pages protected aes "{{int:protect-level-sysop}}"',
+'right-editsemiprotected' => 'Eedit pages protected aes "{{int:protect-level-autoconfirmed}}"',
+'right-editinterface' => 'Eedit the uiser interface',
+'right-editusercssjs' => "Eedit ither uisers' CSS n JavaScript files",
+'right-editusercss' => "Eedit ither uisers' CSS files",
+'right-edituserjs' => "Eedit ither uisers' JavaScript files",
+'right-editmyusercss' => 'Eidit yer ain uiser CSS files',
+'right-editmyuserjs' => 'Eedit yer ain uiser JavaScript files',
+'right-viewmywatchlist' => 'See yer ain watchleet',
+'right-editmywatchlist' => 'Eedit yer ain watchleet. Myd that some actions will still add pages even wioot this richt.',
+'right-viewmyprivateinfo' => 'See yer ain preevate data (e.g. wab-mail address, real name)',
+'right-editmyprivateinfo' => 'Eedit yer ain preevate data (e.g. wab-mail address, real name)',
+'right-editmyoptions' => 'Eedit yer ain preeferences',
+'right-rollback' => 'Quicklie rowback the eedits o the laist uiser that eeditit ae parteecular page',
+'right-markbotedits' => 'Maurk rowed-back eedits aes bot eedits',
+'right-noratelimit' => 'No be affected bi rate limits',
+'right-import' => 'Import pages fae ither wikis',
+'right-importupload' => 'Import pages fae ae file uplaid',
+'right-patrol' => "Maurk ithers' eedits aes patrowed",
+'right-autopatrol' => "Hae ye'r ain eedits autaematiclie maurked aes patrowed",
+'right-patrolmarks' => 'See recent chynges patrol maurks',
+'right-unwatchedpages' => 'See ae leet o onwatched pages',
+'right-mergehistory' => 'Merge the histerie o pages',
+'right-userrights' => 'Eedit aw uiser richts',
+'right-userrights-interwiki' => 'Eedit the uiser richts o uisers oan ither wikis',
+'right-siteadmin' => 'Lock n lowse the database',
+'right-override-export-depth' => 'Export pages incluidin linked pages up til ae depth o 5',
+'right-sendemail' => 'Send Wab-mail til ither uisers',
+'right-passwordreset' => 'See passwaird reset wab-mails',
 
 # Special:Log/newusers
-'newuserlogpage' => 'Uiser creation log',
+'newuserlogpage' => 'Uiser cræftin log',
+'newuserlogpagetext' => 'This is ae log o uiser cræftins.',
 
 # User rights log
 'rightslog' => 'Uiser richts log',
 'rightslogtext' => 'This is a log o chynges tae uiser richts.',
 
 # Associated actions - in the sentence "You do not have permission to X"
-'action-edit' => 'edit this page',
+'action-edit' => 'eedit this page',
+'action-createpage' => 'cræft pages',
+'action-createtalk' => 'cræft discussion pages',
+'action-createaccount' => 'cræft this uiser accoont',
+'action-minoredit' => 'maurk this eedit aes smaa',
+'action-move' => 'muiv this page',
+'action-move-subpages' => 'mui this page, n its subpages',
+'action-move-rootuserpages' => 'muiv ruit uiser pages',
+'action-movefile' => 'muiv this file',
+'action-upload' => 'uplaid this file',
+'action-reupload' => 'owerwrite this exeestin file',
+'action-reupload-shared' => 'owerride this file oan ae shaired reposeeterie',
+'action-upload_by_url' => 'uplaid this file fae ae URL',
+'action-writeapi' => 'uise the write API',
+'action-delete' => 'delyte this page',
+'action-deleterevision' => 'delyte this reveesion',
+'action-deletedhistory' => "see this page's delytit histerie",
+'action-browsearchive' => 'rake delytit pages',
+'action-undelete' => 'ondelyte this page',
+'action-suppressrevision' => 'luikower n restore this skaukt reveesion',
+'action-suppressionlog' => 'see this preevate log',
+'action-block' => 'block this uiser fae eeditin',
+'action-protect' => 'chynge protection levels fer this page',
+'action-rollback' => 'quicklie rowback the eedits o the laist uiser that eeditit ae parteecular page',
+'action-import' => 'import pages fae anither wiki',
+'action-importupload' => 'import pages fae ae file uplaid',
+'action-patrol' => "maurk ithers' eedits aes patrowed",
+'action-autopatrol' => 'hae yer eedit maurked aes patrowed',
+'action-unwatchedpages' => 'see the leet o onwatched pages',
+'action-mergehistory' => 'merge the histerie o this page',
+'action-userrights' => 'eedit aw uiser richts',
+'action-userrights-interwiki' => 'eedit the uiser richts o uisers oan ither wikis',
+'action-siteadmin' => 'lock or lowse the database',
+'action-sendemail' => 'send wab-mails',
+'action-editmywatchlist' => 'eedit yer watchleet',
+'action-viewmywatchlist' => 'see yer watchleet',
+'action-viewmyprivateinfo' => 'see yer preevate information',
+'action-editmyprivateinfo' => 'eedit yer preevate information',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|chynge|chynges}}',
+'enhancedrc-since-last-visit' => '$1 {{PLURAL:$1|sin laist veesit}}',
+'enhancedrc-history' => 'histeri',
 'recentchanges' => 'Recent chynges',
-'recentchanges-legend' => 'Recent changes options',
+'recentchanges-legend' => 'Recynt chynges opties',
 'recentchanges-summary' => 'Follae the maist recent chynges tae the wiki on this page.',
+'recentchanges-noresult' => 'Naw chynges durin the gien period matchin thir guidins.',
 'recentchanges-feed-description' => 'Follae the maist recent chynges tae the wiki in this feed.',
 'recentchanges-label-newpage' => 'This edit created a freish page',
-'recentchanges-label-minor' => 'This is a smaa edit',
-'recentchanges-label-bot' => 'This edit wis performed by a bot',
+'recentchanges-label-minor' => 'This is ae smaa eedit',
+'recentchanges-label-bot' => 'This eedit wis performed bi ae bot',
 'recentchanges-label-unpatrolled' => 'This edit haes nae yet bin patrolled',
-'rcnotefrom' => 'Ablo is the chynges syne <b>$2</b> (up tae <b>$1</b> shawn).',
+'recentchanges-label-plusminus' => 'The page size chynged bi this nummer o bytes',
+'recentchanges-legend-newpage' => '(see [[Special:NewPages|leet o new pages]] ava)',
+'rcnotefrom' => 'Ablo ar the chynges sin <strong>$2</strong> (up til <strong>$1</strong> shawn).',
 'rclistfrom' => 'Shaw new chynges stertin frae $1',
 'rcshowhideminor' => '$1 smaa edits',
 'rcshowhideminor-show' => 'Shaw',
@@ -1246,117 +1448,395 @@ Yer wab-mail address isna revealed whan ither uisers contact ye.',
 'rclinks' => 'Shaw last $1 chynges in last $2 days<br />$3',
 'diff' => 'diff',
 'hist' => 'hist',
-'hide' => 'Hod',
+'hide' => 'Skauk',
 'show' => 'shaw',
 'minoreditletter' => 's',
 'newpageletter' => 'N',
 'boteditletter' => 'b',
 'number_of_watching_users_pageview' => '[$1 watchin {{PLURAL:$1|uiser|uisers}}]',
+'rc_categories' => 'Limit til categeries (separate wi "|")',
 'rc_categories_any' => 'Ony',
+'rc-change-size-new' => '$1 {{PLURAL:$1|byte|bytes}} efter chynge',
 'rc-enhanced-expand' => 'Shaw details',
-'rc-enhanced-hide' => 'Hod details',
+'rc-enhanced-hide' => 'Skauk details',
+'rc-old-title' => 'oreeginlie cræftit aes "$1"',
 
 # Recent changes linked
 'recentchangeslinked' => 'Relatit chynges',
 'recentchangeslinked-feed' => 'Relatit chynges',
 'recentchangeslinked-toolbox' => 'Relatit chynges',
 'recentchangeslinked-title' => 'Chynges relatit til "$1"',
-'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-summary' => 'This is ae leet o chynges makit recentlie til pages linked fae ae speceefied page (or til memmers o ae speceefied categerie).
+Pages oan [[Special:Watchlist|yer watchleet]] ar <strong>baud</strong.',
 'recentchangeslinked-page' => 'Page name:',
-'recentchangeslinked-to' => "Shaw changes tae pages linked tae th' given page instead",
+'recentchangeslinked-to' => 'Shaw chynges til pages linked til the gien page instead',
 
 # Upload
 'upload' => 'Uplaid file',
 'uploadbtn' => 'Uplaid file',
-'reuploaddesc' => 'Gang back tae the uplaid form.',
+'reuploaddesc' => 'Gang back til the uplaid form.',
+'upload-tryagain' => 'Haunn in modified file descreeption',
 'uploadnologin' => 'Nae loggit in',
 'uploadnologintext' => 'Please $1 tae uplaid files.',
+'upload_directory_missing' => 'The uplaid directerie ($1) is missin n coudna be cræftit bi the wabserver.',
+'upload_directory_read_only' => 'The uplaid directerie ($1) is naw writable bi the wabserver.',
 'uploaderror' => 'Uplaid mistak',
+'upload-recreate-warning' => "'''Warnishment: Ae file bi that name haes been delytit or muived.'''
+
+The delytion n muiv log fer this page ar gien here fer conveeneeance:",
 'uploadtext' => 'Uise the form ablo tae uplaid files.
-Tae view or rake previooslei uplaided files gang til the [[Special:FileList|leet o uplaided files]], (re)uplaids ar loggit in the [[Special:Log/upload|uplaid log]] ava, delytions in the [[Special:Log/delete|delytion log]].
+Tae see or rake preeveeooslie uplaided files gang til the [[Special:FileList|leet o uplaided files]], (re)uplaids ar loggit in the [[Special:Log/upload|uplaid log]] ava, delytions in the [[Special:Log/delete|delytion log]].
 
-Tae inclæde ae file in ae page, uise ae link in yin o the follaein forms:
+Tae incluid ae file in ae page, uise ae link in yin o the follaein forms:
 * <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code></strong> tae uise the ful version o the file
-* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt text]]</nowiki></code></strong> tae uise ae 200 pixel wide rendition in ae kist in the cair margin wi "alt tex" aes descreeption
-* <strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code></strong> fer linkin directlie til the file wioot displayin the file',
+* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|alt tex]]</nowiki></code></strong> tae uise ae 200 pixel wide rendeetion in ae kist in the cair margin wi "alt tex" aes descreeption
+* <strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code></strong> fer linkin directlie til the file wioot displeyin the file.',
+'upload-permitted' => 'Permitit file types: $1.',
+'upload-prohibited' => 'Proheebited file types: $1.',
 'uploadlog' => 'uplaid log',
 'uploadlogpage' => 'Uplaid log',
 'uploadlogpagetext' => 'Ablo is a leet o the maist recent file uplaids.',
 'filedesc' => 'Ootline',
+'fileuploadsummary' => 'Ootline:',
+'filereuploadsummary' => 'File chynges:',
 'filestatus' => 'Copyricht status:',
 'filesource' => 'Soorce:',
 'uploadedfiles' => 'Uplaidit files',
-'ignorewarning' => 'Ignore warnin an hain file oniewey.',
+'ignorewarning' => 'Ignore warnishment n hain file oniewey.',
 'ignorewarnings' => 'Ignore ony warnins',
-'illegalfilename' => 'The filename "$1" haes characters that isna alloud in page teitles. Please rename the file an gie uplaidin it anither shot.',
-'badfilename' => 'Eimage name haes been chynged tae "$1".',
+'minlength1' => 'Filenames maun be at least yin letter.',
+'illegalfilename' => 'The filename "$1" haes chairacters that\'s naw permitit in page teitles. Please rename the file n gie uplaidin it anither shote.',
+'filename-toolong' => 'Filenames canna be langer than 240 bytes.',
+'badfilename' => 'Filename haes been chynged til "$1".',
+'filetype-mime-mismatch' => 'File exteension ".$1" disna match the detected MIME type o the file ($2).',
+'filetype-badmime' => 'Files o the MIME type "$1" ar no permitit tae be uplaided.',
+'filetype-bad-ie-mime' => 'Canna uplaid this file cause Internet Explorer wid detect it aes "$1", n this is ae non-permitit n potentiallie dangeroos file type.',
+'filetype-unwanted-type' => "'''\".\$1\"''' is aen onwanted file type.
+Preferred {{PLURAL:\$3|file type is|file types ar}} \$2.",
+'filetype-banned-type' => '<strong>".$1"</strong> {{PLURAL:$4|is naw ae permitted file type|ar naw permitted file types}}.
+Permitted {{PLURAL:$3|file type is|file types ar}} $2.',
+'filetype-missing' => 'The file haes nae extension (like ".jpg").',
+'empty-file' => 'The file that ye haunned in wiss tuim.',
+'file-too-large' => 'The file that ye haunned in wis ower muckle.',
+'filename-tooshort' => 'The filename is ower short.',
+'filetype-banned' => 'This type o file is banned.',
+'verification-error' => 'This file didna pass file verifeecation.',
+'hookaborted' => 'The modifeecation that ye tried tae mak wis abortit bi aen exteension.',
+'illegal-filename' => 'The filename isna permitit.',
+'overwrite' => 'Owerwritin aen exeestin file isna permeetit.',
+'unknown-error' => 'Aen onkent mistake occurred.',
+'tmp-create-error' => 'Coudna cræft temperie file.',
+'tmp-write-error' => 'Mistak writin temperie file.',
+'large-file' => "It's recommended that files ar nae muckler than $1;
+this file is $2.",
 'largefileserver' => 'This file is bigger nor the server is confeigurt tae allou.',
-'fileexists' => "A file wi this name exists aareadies, please check <strong>[[:$1]]</strong> gin ye'r no siccar that ye want tae chynge it.
+'emptyfile' => 'The file that ye uplaided seems tae be tuim.
+This micht be cause o ae typeower in the filename.
+Please check whether ye reallie want tae uplaid this file.',
+'windows-nonascii-filename' => 'This wiki disna support filenames wi speecial chairacters.',
+'fileexists' => "Ae file wi this name exeests aareadies, please check <strong>[[:$1]]</strong> gif ye'r no sair that ye want tae chynge it.
+[[$1|thumb]]",
+'filepageexists' => "The descreeption page fer this file haes awreadie been cræftit at <strong>[[:$1]]</strong>, but naw file wi this name exeests the nou.
+The ootline that ye enter willna kith oan the descreeption page.
+Tae mak yer ootlline kith there, ye'll need tae manuallie eedit it.
 [[$1|thumb]]",
-'fileexists-forbidden' => 'Ae file wi this name awreadie exists, an canna be owerwritten.
-Gif ye still wish tae uplaid yer file, please gae back an uise ae new name.
+'fileexists-extension' => 'Ae file wi ae siclike name exeests: [[$2|thumb]]
+* Name o the uplaidin file: <strong>[[:$1]]</strong>
+* Name o the exeestin file: <strong>[[:$2]]</strong>
+Please chuise ae different name.',
+'fileexists-thumbnail-yes' => "The file seems tae be aen eemage o reduced size ''(thumbnail)''.
+[[$1|thumb]]
+Please check the file <strong>[[:$1]]</strong>.
+Gif the checked file is the same eemage o oreeginal size it's no necessairie tae uplaid aen extra thumbnail.",
+'file-thumbnail-no' => "The filename begins wi <strong>$1</strong>.
+It seems tae be aen eemage o reduced size ''(thumbnail)''.
+Gif ye hae this emage in ful resolution uplaid this yin, itherwise please chynge the filename.",
+'fileexists-forbidden' => 'Ae file wi this name awreadie exists, n canna be owerwritten.
+Gif ye still wish tae uplaid yer file, please gang back n uise ae new name.
 [[File:$1|thumb|center|$1]]',
-'fileexists-shared-forbidden' => 'Ae file wi this name awreadie exists in the shaired file repository.
-Gif ye still wish tae uplaid yer file, please gae back an uise ae new name.
+'fileexists-shared-forbidden' => 'Ae file wi this name awreadie exeests in the shaired file repositerie.
+Gif ye still wish tae uplaid yer file, please gang back n uise ae new name.
 [[File:$1|thumb|center|$1]]',
-'uploadwarning' => 'Uplaid warnin',
+'file-exists-duplicate' => 'This file is ae dupleecate o the follaein {{PLURAL:$1|file|files}}:',
+'file-deleted-duplicate' => "Ae file ideentical til this file ([[:$1]]) haes been delytit afore.
+Ye shid check that file's delytion histerie afore proceedin tae re-uplaid it.",
+'file-deleted-duplicate-notitle' => 'Ae file identical til this file haes been delytit afore, n the title haes been suppressed.
+Ye shid speir somebodie wi the abeelitie tae see suppressed file data tae luik at the seetuation afore gaun oan tae re-uplaid it.',
+'uploadwarning' => 'Uplaid warnishment',
+'uploadwarning-text' => 'Please modeefie the file descreeption ablo n gie it anither gae.',
 'savefile' => 'Hain file',
 'uploadedimage' => 'uplaidit "$1"',
+'overwroteimage' => 'uplaided ae new version o "[[$1]]"',
 'uploaddisabled' => 'Sorry, uplaidin is disabled.',
+'copyuploaddisabled' => 'Uplaid bi URL disabled.',
+'uploadfromurl-queued' => 'Yer uplaid haes been pit in line.',
+'uploaddisabledtext' => 'File uplaids ar disabled.',
+'php-uploaddisabledtext' => 'File uplaids ar disabled in PHP.
+Please check the file_uploads settin.',
 'uploadscripted' => 'This file hauds HTML or script code that micht be wrang interpretit bi a wab brouser.',
+'uploadscriptednamespace' => 'This SVG file contains aen illegal namespace "$1"',
+'uploadinvalidxml' => 'The XML in the uplaided file coudna be parsed.',
 'uploadvirus' => 'The file hauds a virus! Details: $1',
+'uploadjava' => 'The file is ae ZIP file that contains ae Java .class file.
+Uplaidin Java files isna permitit cause thay can cause secureetie restreections tae be bypassed.',
+'upload-source' => 'Soorce file',
 'sourcefilename' => 'Soorce filename:',
+'sourceurl' => 'Soorce URL:',
+'destfilename' => 'Desteenation filename:',
+'upload-maxfilesize' => 'Mucklest file size: $1',
+'upload-description' => 'File descreeption',
+'upload-options' => 'Uplaid opties',
+'watchthisupload' => 'Watch this file.',
+'filewasdeleted' => 'Ae file o this name haes been preeveeooslie uplaided n than delytit.
+Ye shid check the $1 afore preceedin tae uplaid it again.',
+'filename-bad-prefix' => "The name o the file that ye'r uplaidin begins wi '''\"\$1\"''', this is ae no-descreepteeve name typiclie assigned autæmateeclie bi deegital cameras.
+Please chuise ae mai descreepteeve name fer yer file.",
+'upload-success-subj' => 'Successfu uplaid',
+'upload-success-msg' => "Yer uplaid fae [$2] wis successfu. It's available here: [[:{{ns:file}}:$1]]",
+'upload-failure-subj' => 'Uplaid problem',
+'upload-failure-msg' => 'Thaur wis ae problem wi yer uplaid fae [$2]:
+
+$1',
+'upload-warning-subj' => 'Uplaid warnishment',
+'upload-warning-msg' => 'Thaur wis ae proablem wi yer uplaid fae [$2]. Ye can return til the [[Special:Upload/stash/$1|uplaid form]] tae correct this proablem.',
+
+'upload-proto-error' => 'Oncorrect protocol',
+'upload-proto-error-text' => 'Remote uplaid needs URLs beginnin wi <code>http://</code> or <code>ftp://</code>.',
+'upload-file-error' => 'Internal mistak',
+'upload-file-error-text' => 'Aen internal mitake occurred whan attemptin tae cræft ae temperie file oan the server.
+Please contact aen [[Special:ListUsers/sysop|admeenistrater]].',
+'upload-misc-error' => 'Onkent uplaid mistake',
+'upload-misc-error-text' => 'Aen onkent mistak occurred during the uplaid.
+Please vereefie that the URL is valit n accessible n gie it anither gae.
+Gif the proablem persists, contact aen [[Special:ListUsers/sysop|admeenistrater]].',
+'upload-too-many-redirects' => 'The URL contained oewr monie reguidals',
+'upload-unknown-size' => 'Onkent size',
+'upload-http-error' => 'Aen HTTP mistake occurred: $1',
+'upload-copy-upload-invalid-domain' => 'Copie uplaids arna available fae this domain.',
+
+# File backend
+'backend-fail-stream' => 'Coudna stream file "$1".',
+'backend-fail-backup' => 'Coudna backup file "$1".',
+'backend-fail-notexists' => 'The file $1 disna exeest.',
+'backend-fail-hashes' => 'Coudna get file hashes fer comparison.',
+'backend-fail-notsame' => 'Ae non-identeecal file awreadie exeests at "$1".',
+'backend-fail-invalidpath' => '"$1" isna ae valid storage path.',
+'backend-fail-delete' => 'Coudna delyte file "$1".',
+'backend-fail-describe' => 'Coudna chynge metadata fer file "$1".',
+'backend-fail-alreadyexists' => 'The file "$1" awreadiw exeests.',
+'backend-fail-store' => 'Coudna store file "$1" at "$2".',
+'backend-fail-copy' => 'Coudna copie file "$1" til "$2".',
+'backend-fail-move' => 'Coudna muiv file "$1" til "$2".',
+'backend-fail-opentemp' => 'Coudna apen temperie file.',
+'backend-fail-writetemp' => 'Coudna write til temperie file.',
+'backend-fail-closetemp' => 'Coudna claise temperie file.',
+'backend-fail-read' => 'Coudna read file "$1".',
+'backend-fail-create' => 'Coudna write file "$1".',
+'backend-fail-maxsize' => 'Coudna write file "$1" cause it\'s muckler than {{PLURAL:$2|yin byte|$2 bytes}}.',
+'backend-fail-readonly' => 'The storage backend "$1" is read-yinlie the nou. The raison gien is: "\'\'$2\'\'"',
+'backend-fail-synced' => 'The file "$1" is in aen onconseestent state wiin the internal storage backends',
+'backend-fail-connect' => 'Coudna connect til storage backend "$1".',
+'backend-fail-internal' => 'Aen onkent mistak occurred in storage backend "$1".',
+'backend-fail-contenttype' => 'Coudna determine the content type o the file tae store at "$1".',
+'backend-fail-batchsize' => 'The storage backend wis gien ae batch o $1 file {{PLURAL:$1|operation|operations}}; the limit is $2 {{PLURAL:$2|operation|operations}}.',
+'backend-fail-usable' => 'Coudna read or write file "$1" cause o onsuffeecient permeessions or missin directeries/containers.',
+
+# File journal errors
+'filejournal-fail-dbconnect' => 'Coudna connect til the journal database fer storage backend "$1".',
+'filejournal-fail-dbquery' => 'Coudna update the journal database fer storage backend "$1".',
+
+# Lock manager
+'lockmanager-notlocked' => 'Coudna lowse "$1"; it\'s no lockit.',
+'lockmanager-fail-closelock' => 'Coud no claise lock file fer "$1".',
+'lockmanager-fail-deletelock' => 'Coudna delyte lock file fer "$1".',
+'lockmanager-fail-acquirelock' => 'Coudna acquire lock fer "$1".',
+'lockmanager-fail-openlock' => 'Coudna apen lock file fer "$1".',
+'lockmanager-fail-releaselock' => 'Coudna release lock fer "$1".',
+'lockmanager-fail-db-bucket' => 'Coudna contact enoogh lock databases in bucket $1.',
+'lockmanager-fail-db-release' => 'Coudna release locks oan database $1.',
+'lockmanager-fail-svr-acquire' => 'Coudna acquire locks oan server $1.',
+'lockmanager-fail-svr-release' => 'Coudna release locks oan server $1.',
+
+# ZipDirectoryReader
+'zip-file-open-error' => 'Ae mistak wis encoontered whan apenin the file fer ZIP checks.',
+'zip-wrong-format' => 'The speceefied file wisna ae ZIP file.',
+'zip-bad' => 'The file is ae rotten or itherwise onreadable ZIP file.
+It canna be properlie checkt fer securitie.',
+'zip-unsupported' => "The file is ae ZIP file that uises ZIP featurs that'r naw supported bi MediaWiki.
+It canna be properlie checkt fer securitie.",
+
+# Special:UploadStash
+'uploadstash' => 'Uplaid stash',
+'uploadstash-summary' => 'This page provides access til files that ar uplaided or in the process o uplaidin, but ar no yet published til the wiki. Thir files ar no veesible til oniebodie but the uiser that uplaided thaim.',
+'uploadstash-clear' => 'Clear stashed files.',
+'uploadstash-nofiles' => "Ye'v naw stashed files.",
+'uploadstash-badtoken' => 'The performin o that action wis onnsuccessfu, perhaps cause yer eeditin creeedentials hae expired. Gie it anither gae.',
+'uploadstash-errclear' => 'Clearin the files wis onsuccessfu.',
+'uploadstash-refresh' => 'Refresh the leet o files',
+'invalid-chunk-offset' => 'Onvalid chunk affset',
+
+# img_auth script messages
+'img-auth-accessdenied' => 'Access denied.',
+'img-auth-nopathinfo' => 'Missin PATH_INFO.
+Yer server isna set up tae pass this information.
+It micht be CGI-based n canna support img_auth.
+See https://www.mediawiki.org/wiki/Manual:Image_Authorization.',
+'img-auth-notindir' => 'Requested path isna in the confeegured uplaid directerie.',
+'img-auth-badtitle' => 'Onable tae cræft ae valid title fae "$1".',
+'img-auth-nologinnWL' => 'Ye\'r naw loggit in n "$1" isna in the whiteleet.',
+'img-auth-nofile' => 'File "$1" disna exeest.',
+'img-auth-isdir' => 'Ye\'r attemptin tae access ae directerie "$1".
+Yinlie file access is premitit.',
+'img-auth-streaming' => 'Streamin "$1".',
+'img-auth-public' => 'The function o img_auth.php is tae ootpit files fae ae preevate wiki.
+This wiki is confeegured aes ae publeec wiki.
+Fr optimal securitie, img_auth.php is disabled.',
+'img-auth-noread' => 'Uiser disna hae access tae read "$1".',
+'img-auth-bad-query-string' => 'The URL haaes aen onvalid speirin string.',
+
+# HTTP errors
+'http-invalid-url' => 'Onvalid URL: $1',
+'http-invalid-scheme' => 'URLs wi the "$1" preefix ar naw supported.',
+'http-request-error' => 'HTTP request failed cause o onkent mistak.',
+'http-read-error' => 'HTTP read mistak.',
+'http-timed-out' => 'HTTP request haes timed oot.',
+'http-curl-error' => 'Mistake fetchin URL: $1',
+'http-bad-status' => 'Thaur wis ae proablem wi the HTTP request: $1 $2',
+
+# Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
+'upload-curl-error6' => 'Coudna reach URL',
+'upload-curl-error6-text' => 'The URL gien coudna be reached.
+Please dooble-check that the URL is correct n the site is up.',
+'upload-curl-error28' => 'Uplaid timeoot',
+'upload-curl-error28-text' => 'The site tuik ower lang tae respond.
+Please check that the site is up, wait ae short while n gei it anither gae.
+Ye micht want tae try at ae less busie time.',
 
 'license' => 'Licensing:',
-'license-header' => 'Licensing',
+'license-header' => 'Licensin',
 'nolicense' => 'Nane selected',
+'license-nopreview' => '(Luikower naw available)',
+'upload_source_url' => '(ae valid, publeeclie accessible URL)',
+'upload_source_file' => '(ae file oan yer computer)',
 
 # Special:ListFiles
+'listfiles-summary' => 'This speecial page shaws aw uplaided files.',
+'listfiles_search_for' => 'Rake fer media name:',
 'imgfile' => 'file',
 'listfiles' => 'Eimage leet',
+'listfiles_thumb' => 'Thummnail',
 'listfiles_name' => 'Name',
 'listfiles_user' => 'Uiser',
 'listfiles_size' => 'Size',
+'listfiles_description' => 'Descreeption',
+'listfiles-show-all' => 'Incluide auld versions o eemages',
+'listfiles-latestversion' => 'The Nou version',
+'listfiles-latestversion-yes' => 'Ay',
+'listfiles-latestversion-no' => 'Naw',
 
 # File description page
 'file-anchor-link' => 'Eimage',
-'filehist' => 'File history',
-'filehist-help' => "Click oan a date/time tae view th' file as it appeared at that time.",
+'filehist' => 'File histerie',
+'filehist-help' => 'Clap oan ae date/time tae view the file aes it appeared at that time.',
+'filehist-deleteall' => 'delyte aw',
 'filehist-deleteone' => 'delyte',
 'filehist-revert' => 'revert',
 'filehist-current' => 'current',
 'filehist-datetime' => 'Date/Time',
 'filehist-thumb' => 'Thumbnail',
 'filehist-thumbtext' => 'Thumbnail fer version aes o $1',
+'filehist-nothumb' => 'Naw thummnail',
 'filehist-user' => 'Uiser',
 'filehist-dimensions' => 'Dimensions',
 'filehist-comment' => 'Comment',
+'filehist-missing' => 'File missin',
 'imagelinks' => 'File uisage',
 'linkstoimage' => 'The follaein {{PLURAL:$1|page airts|$1 pages airt}} tae this file:',
-'nolinkstoimage' => "The'r nae pages airts tae this eimage.",
-'sharedupload-desc-here' => 'This file is frae $1 an micht be uised bi ither projects.
+'linkstoimage-more' => 'Mair than $1 {{PLURAL:$1|page links|pages link}} til this file.
+The follaein leet shaws the {{PLURAL:$1|first page link|first $1 page links}} til this file yinlie.
+Ae [[Special:WhatLinksHere/$2|ful leet]] is available.',
+'nolinkstoimage' => "Thaur's nae pages that link til this eemage.",
+'morelinkstoimage' => 'See [[Special:WhatLinksHere/$1|mair links]] til this file.',
+'linkstoimage-redirect' => '$1 (file reguidal) $2',
+'duplicatesoffile' => 'The follaein {{PLURAL:$1|file is ae dupleecate|$1 files ar dupleecates}} o this file ([[Special:FileDuplicateSearch/$2|mair details]]):',
+'sharedupload' => 'This file is fae $1 n can be uised bi ither waurks.',
+'sharedupload-desc-there' => 'This file is fae $1 n can be uised bi ither waurks.
+Please see the [$2 file deescreeption page] fer further information.',
+'sharedupload-desc-here' => 'This file is fae $1 n micht be uised bi ither waurks.
 The descreeption oan its [$2 file descreeption page] thaur is shawn ablo.',
+'sharedupload-desc-edit' => 'This file is fae $1 n can be uised bi ither waurks.
+Perhaps ye want tae eedit the deescreeption oan its [$2 file deescreeption page] thaur.',
+'sharedupload-desc-create' => 'This file is fae $1 n can be uised bi ither waurks.
+Perhaps ye want tae eedit the deescreeption oan its [$2 file deescreeption page] thaur.',
+'filepage-nofile' => 'Naw file b this name exeests.',
+'filepage-nofile-link' => 'Nae file bi this name exeests, but ye can [$1 uplaid it].',
+'uploadnewversion-linktext' => 'Uplaid ae new version o this file',
+'shared-repo-from' => 'fae $1',
+'shared-repo' => 'ae shared repositerie',
+'upload-disallowed-here' => 'Ye canna owerwrite this file.',
 
 # File reversion
 'filerevert' => 'Revert $1',
 'filerevert-legend' => 'Revert file',
+'filerevert-intro' => "Ye'r aboot tae revert the file '''[[Media:$1|$1]]''' til the [$4 version aes o $3, $2].",
+'filerevert-comment' => 'Raison:',
+'filerevert-defaultcomment' => 'Reverted til version aes o $2, $1',
 'filerevert-submit' => 'Revert',
+'filerevert-success' => "'''[[Media:$1|$1]]''' haes been reverted til the [$4 version aes o $3, $2].",
+'filerevert-badversion' => "Thaur's naw preeveeoos local version o this file wi the gien timestamp.",
 
 # File deletion
+'filedelete' => 'Delyte $1',
+'filedelete-legend' => 'Delyte file',
+'filedelete-intro' => "Ye'r aboot tae delyte the file '''[[Media:$1|$1]]''' alang wi aw o its histerie.",
+'filedelete-intro-old' => "Ye'r delytin the version o '''[[Media:$1|$1]]''' aes o [$4 $3, $2].",
+'filedelete-comment' => 'Raison:',
 'filedelete-submit' => 'Delyte',
+'filedelete-success' => "'''$1''' haes been delytit.",
+'filedelete-success-old' => "The version o '''[[Media:$1|$1]]''' aes o $3, $2 haes been delytit.",
+'filedelete-nofile' => "'''$1''' disna exeest.",
+'filedelete-nofile-old' => "Thaur's naw archived version o '''$1''' wi the speceefied attreebutes.",
+'filedelete-otherreason' => 'Ither/addeetional raison:',
+'filedelete-reason-otherlist' => 'Ither raison',
+'filedelete-reason-dropdown' => '*Commyn delyte raisons
+** Copiericht violation
+** Dupleecatit file',
+'filedelete-edit-reasonlist' => 'Eedit delyte raisons',
+'filedelete-maintenance' => 'Delytion n restoration o files tempralie disabled during maintenance.',
+'filedelete-maintenance-title' => 'Canna delyte file',
 
 # MIME search
+'mimesearch' => 'MIME rake',
+'mimesearch-summary' => 'This page enables the filterin o files fer thair MIME type.
+Input: contenttype/subtype, e.g. <code>image/jpeg</code>.',
 'mimetype' => 'MIME type:',
 'download' => 'dounlaid',
 
+# Unwatched pages
+'unwatchedpages' => 'Onwatched pages',
+
+# List redirects
+'listredirects' => 'Leet o reguidals',
+
 # Unused templates
 'unusedtemplates' => 'Templates that arena uised',
-'unusedtemplatestext' => 'This page leets aw pages in the {{ns:template}} namespace that arna incæded in anither page. Mynd an check fer ither airtins til the templates afore deletin theim.',
+'unusedtemplatestext' => "This page leets aw pages in the {{ns:template}} namespace that's naw incuidit in anither page. Mynd n check fer ither links til the templates afore delytin thaim.",
 'unusedtemplateswlh' => 'ither links',
 
 # Random page
 'randompage' => 'Wale page allevolie',
+'randompage-nopages' => "Thaur's naw pages in the follaein {{PLURAL:$2|namespace|namespaces}}: $1.",
+
+# Random page in category
+'randomincategory' => 'Random page in categerie',
+'randomincategory-invalidcategory' => '"$1" isna ae valid categerie name.',
+'randomincategory-nopages' => "Thaur's naw pages in the [[:Category:$1|$1]] categerie.",
+'randomincategory-selectcategory' => 'Get random page fae categerie: $1 $2.',
+'randomincategory-selectcategory-submit' => 'Gae',
+
+# Random redirect
+'randomredirect' => 'Random reguidal',
+'randomredirect-nopages' => 'Thaur\'s naw reguidals in the namespace "$1".',
 
 # Statistics
 'statistics' => 'Stateestics',
@@ -1366,43 +1846,92 @@ The descreeption oan its [$2 file descreeption page] thaur is shawn ablo.',
 'statistics-header-users' => 'Uiser stateestics',
 'statistics-header-hooks' => 'Ither stateestics',
 'statistics-pages' => 'Pages',
+'statistics-pages-desc' => 'Aw pages in the wiki, incluidin tauk pages, reguidals, etc.',
+'statistics-files' => 'Uplaided files',
+'statistics-edits' => 'Page eedits sin {{SITENAME}} wis set up',
+'statistics-edits-average' => 'Average eedits per page',
+'statistics-views-total' => 'Seeins total',
+'statistics-views-total-desc' => "Seeins til non-exeestant pages n speecial pages'r naw incluidit",
+'statistics-views-peredit' => 'Seeins per eedit',
+'statistics-users' => 'Registered [[Special:ListUsers|uisers]]',
+'statistics-users-active' => 'Acteeve uisers',
+'statistics-users-active-desc' => 'Uisers that hae performed aen action in the laist {{PLURAL:$1|day|$1 days}}',
+'statistics-mostpopular' => 'Maist seen pages',
+
+'pageswithprop' => 'Pages wi ae page propertie',
+'pageswithprop-legend' => 'Pages wi ae page propertie',
+'pageswithprop-text' => 'This page leets pages that uise ae particular page propertie.',
+'pageswithprop-prop' => 'Propertie name:',
+'pageswithprop-submit' => 'Gae',
+'pageswithprop-prophidden-long' => 'lang tex propertie value skaukt ($1)',
+'pageswithprop-prophidden-binary' => 'binarie propertie value skaukt ($1)',
 
 'doubleredirects' => 'Dooble reguidals',
-'doubleredirectstext' => 'This page leets pages that redirect til ither redirect pages.
-Ilka rou contains airtins til the first and seicont redirect, aes weel aes the terget o the secont redirect, whilk is usually the "real" terget page whaur the first redirect shid point.
+'doubleredirectstext' => 'This page leets pages that reguide til ither reguidal pages.
+Ilka raw contains links til the first n seicont reguidals, n the tairget o the seicont reguidal ava, this is uisuallie the "real" tairget page whaur the first reguidal shid poynt.
 <del>Crossed oot</del> entries hae been solved.',
+'double-redirect-fixed-move' => '[[$1]] haes been muived.
+It nou reguides til [[$2]].',
+'double-redirect-fixed-maintenance' => 'Fixin dooble reguidal fae [[$1]] til [[$2]].',
+'double-redirect-fixer' => 'Reguidal fixer',
 
 'brokenredirects' => 'Brucken reguidals',
 'brokenredirectstext' => 'The folling redirects link til non-existent pages:',
-'brokenredirects-edit' => 'edit',
+'brokenredirects-edit' => 'eedit',
 'brokenredirects-delete' => 'delyte',
 
 'withoutinterwiki' => 'Pages athoot leid links',
+'withoutinterwiki-summary' => 'The follaein pages dinan link til ither leid versions.',
 'withoutinterwiki-legend' => 'Prefix',
 'withoutinterwiki-submit' => 'Shaw',
 
+'fewestrevisions' => 'Pages wi the fewest reeveesions',
+
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|byte|bytes}}',
 'ncategories' => '$1 {{PLURAL:$1|category|categories}}',
 'nlinks' => '$1 {{PLURAL:$1|link|links}}',
 'nmembers' => '$1 {{PLURAL:$1|membir|membirs}}',
-'nrevisions' => '$1 {{PLURAL:$1|reveision|reveisions}}',
+'nmemberschanged' => '$1 → $2 {{PLURAL:$2|memmer|memmers}}',
+'nrevisions' => '$1 {{PLURAL:$1|reveesion|reveesions}}',
 'nviews' => '$1 {{PLURAL:$1|view|views}}',
+'nimagelinks' => 'Uised oan $1 {{PLURAL:$1|page|pages}}',
+'ntransclusions' => 'uised oan $1 {{PLURAL:$1|page|pages}}',
+'specialpage-empty' => "Thaur's naw ootcomes fer this report.",
+'lonelypages' => 'Orphant pages',
+'lonelypagestext' => "The follaein pages'r naw linkt fae or transcluided intil ither pages in {{SITENAME}}.",
 'uncategorizedpages' => 'Uncategoreised pages',
 'uncategorizedcategories' => 'Uncategoreised categories',
+'uncategorizedimages' => 'Oncategerized files',
+'uncategorizedtemplates' => 'Oncategerized templates',
 'unusedcategories' => 'Unuised categories',
 'unusedimages' => 'Unuised images',
 'wantedcategories' => 'Wantit categories',
 'wantedpages' => 'Wantit pages',
+'wantedpages-badtitle' => 'Onvalid title in ootcome set: $1',
+'wantedfiles' => 'Wantit files',
+'wantedfiletext-cat' => 'The follaein files ar uised but dinna exeest. Files fae foreign repositeries micht be leetit despite exeestin. Onie sic false poseeteeves will be <del>struck oot</del>. Addeetionallie, pages that embed files that dinna exeest ar leetit in [[:$1]].',
+'wantedfiletext-nocat' => 'The follaein files ar uised but dinna exeest. Files fae foreign repositeries micht be leetit despite exeestin. Onie sic false poseeteeves will be <del>struck oot</del>.',
+'wantedtemplates' => 'Wantit templates',
 'mostlinked' => 'Maist airtit-til pages',
 'mostlinkedcategories' => 'Maist airtit-til categories',
-'mostcategories' => 'Airticles wi the maist categories',
+'mostlinkedtemplates' => 'Maist linkt-til templates',
+'mostcategories' => 'Airticles wi the maist categeries',
 'mostimages' => 'Maist uised eimages',
+'mostinterwikis' => 'Pages wi the maist interwikis',
 'mostrevisions' => 'Maist revised airticles',
-'prefixindex' => 'All pages with prefix',
+'prefixindex' => 'Aw pages wi prefix',
+'prefixindex-namespace' => 'Aw pages wi preefix ($1 namespace)',
+'prefixindex-strip' => 'Strip preefix in leet',
 'longpages' => 'Lang pages',
 'deadendpages' => 'Deid-end pages',
-'protectedpages-summary' => 'This page leets existing pages that are nou protectit. Fer a leet o titles that are protectit fae creation, see [[{{#special:ProtectedTitles}}]].',
+'deadendpagestext' => 'The follaein pages dinna link til ither pages in {{SITENAME}}.',
+'protectedpages' => 'Pretectit pages',
+'protectedpages-indef' => 'Indefineet pretections yinlie',
+'protectedpages-summary' => 'This page leets existin pages that ar nou protectit. Fer a leet o titles that ar protectit fae cræftin, see [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
+'protectedpages-cascade' => 'Cascadin protections yinlie',
+'protectedpages-noredirect' => 'Skauk reguidals',
+'protectedpagesempty' => 'Naw pages ar Nou pretectit wi thir parameters.',
 'protectedpages-timestamp' => 'Timestamp.',
 'protectedpages-page' => 'Page.',
 'protectedpages-expiry' => 'Dies',
@@ -1411,221 +1940,463 @@ Ilka rou contains airtins til the first and seicont redirect, aes weel aes the t
 'protectedpages-reason' => 'Raison',
 'protectedpages-unknown-timestamp' => "Onken't",
 'protectedpages-unknown-performer' => "Onken't user",
-'protectedtitles-summary' => 'This page leets titles that are nou protectit fae creation. Fer a leet of exeesting pages that are protectit, see [[{{#special:ProtectedPages}}]].',
+'protectedtitles' => 'Pretectit titles',
+'protectedtitles-summary' => 'This page leets titles that ar nou protectit fae cræftin. Fer ae leet o exeestin pages that ar protectit, see [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
+'protectedtitlesempty' => 'Naw titles ar the Nou protected wi thir parameters.',
 'listusers' => 'Uiser leet',
-'usercreated' => '{{GENDER:$3|Created}} on $1 at $2',
+'listusers-editsonly' => 'Shaw yinlie uisers wi eedits',
+'listusers-creationsort' => 'Sort bi cræftin date',
+'listusers-desc' => 'Sort in descendin order',
+'usereditcount' => '$1 {{PLURAL:$1|eedit|eedits}}',
+'usercreated' => '{{GENDER:$3|Cræftit}} oan $1 at $2',
 'newpages' => 'New pages',
 'newpages-username' => 'Uisername:',
 'ancientpages' => 'Auldest pages',
-'move' => 'Flit',
-'movethispage' => 'Flit this page',
-'unusedimagestext' => 'The follaeing files exist but arna embeddit in oni page.
-Please note that ither wab sites micht airt til ae file wi ae direct URL, an sae micht still be leetit here despite being in active uiss.',
+'move' => 'Muiv',
+'movethispage' => 'Muiv this page',
+'unusedimagestext' => 'The follaein files exeest but arna embeddit in onie page.
+Please mynd that ither wab sites micht link til ae file wi ae direct URL, n sae micht still be leetit here despite being in acteeve uiss.',
 'unusedcategoriestext' => 'The follaein category pages exists, tho nae ither airticle or category maks uiss o thaim.',
 'notargettitle' => 'Nae target',
 'notargettext' => "Ye hivna specifee'd a tairget page or uiser tae perform this function on.",
+'nopagetitle' => 'Naw sic tairget page',
+'nopagetext' => "The tairget page that ye'v speeceefied disna exeest.",
 'pager-newer-n' => '{{PLURAL:$1|newer 1|newer $1}}',
 'pager-older-n' => '{{PLURAL:$1|older 1|older $1}}',
+'suppress' => 'Owersicht',
+'querypage-disabled' => 'This speecial page is disablit fer performance raisons.',
 
 # Book sources
 'booksources' => 'Beuk sources',
 'booksources-search-legend' => 'Rake fer buik soorces',
 'booksources-go' => 'Gang',
+'booksources-text' => "Ablo is ae leet o links til ither sites that sell new n uised buiks, n mmicht hae further information aneat buiks that ye'r seekin ava:",
+'booksources-invalid-isbn' => 'The gien ISBN disna seem tae be valid; check fer mistaks copiein fae the oreeginal soorce.',
 
 # Special:Log
 'specialloguserlabel' => 'Performer:',
 'speciallogtitlelabel' => 'Target (title or uiser):',
 'log' => 'Logs',
 'all-logs-page' => 'Aw public logs',
-'alllogstext' => 'Combined display o aw available logs o {{SITENAME}}.
-Ye can narrae down the view bi selectin ae log type, the uisername (case-sensitive), or the affected page (case-sensitive ava).',
+'alllogstext' => 'Combined displey o aw available logs o {{SITENAME}}.
+Ye can narrae doon the whit ye see bi selectin ae log type, the uisername (case-sensiteeve), or the affected page (case-sensiteeve ava).',
 'logempty' => 'Nae matchin items in log.',
+'log-title-wildcard' => 'Rake titles stairtin wi this tex',
+'showhideselectedlogentries' => 'Chynge veesibeelitie o selectit log entries',
 
 # Special:AllPages
-'allpages' => 'Aa pages',
-'alphaindexline' => '$1 tae $2',
+'allpages' => 'Aw pages',
+'alphaindexline' => '$1 til $2',
 'nextpage' => 'Neist page ($1)',
 'prevpage' => 'Page afore ($1)',
 'allpagesfrom' => 'Shaw pages stairtin at:',
+'allpagesto' => 'Displey pages endin at:',
 'allarticles' => 'Aa airticles',
 'allinnamespace' => 'Aa pages ($1 namespace)',
 'allpagessubmit' => 'Gang',
 'allpagesprefix' => 'Shaw pages wi prefix:',
 'allpagesbadtitle' => 'The page teitle gien wis wrang or haed a cross-lied or cross-wiki prefix. It micht hae ane or twa characters that canna be uised in teitles',
 'allpages-bad-ns' => '{{SITENAME}} disna hae a namespace "$1".',
+'allpages-hide-redirects' => 'Skauk reguidals',
+
+# SpecialCachedPage
+'cachedspecial-viewing-cached-ttl' => "Ye'r seein ae cached version o this page, this can be up til $1 auld.",
+'cachedspecial-viewing-cached-ts' => "Ye'r seein ae cached version o this page, this micht naw be compleatelie actual.",
+'cachedspecial-refresh-now' => 'See latest.',
 
 # Special:Categories
 'categories' => 'Categories',
-'categoriespagetext' => 'The follaeing {{PLURAL:$1|categorie contains|categories contain}} pages or media.
-[[Special:UnusedCategories|Onuised categories]] arna shawn here.
-See [[Special:WantedCategories|wanted categories]] ava.',
+'categoriespagetext' => 'The follaein {{PLURAL:$1|categerie contains|categeries contain}} pages or media.
+[[Special:UnusedCategories|Onuised categeries]] arna shawn here.
+See [[Special:WantedCategories|wanted categeries]] ava.',
+'categoriesfrom' => 'Displey categeries stairtin at:',
 'special-categories-sort-count' => 'sairt bi coont',
-'special-categories-sort-abc' => 'sairt by the alphabet',
+'special-categories-sort-abc' => 'sairt bi the alphabet',
 
 # Special:DeletedContributions
-'sp-deletedcontributions-contribs' => 'contreibutions',
+'deletedcontributions' => 'Delytit uiser contreebutions',
+'deletedcontributions-title' => 'Delytit uiser contreebutions',
+'sp-deletedcontributions-contribs' => 'contreebutions',
 
 # Special:LinkSearch
+'linksearch' => 'External links rake',
+'linksearch-pat' => 'Rake pattern:',
 'linksearch-ns' => 'Namespace:',
 'linksearch-ok' => 'Rake',
+'linksearch-text' => 'Wildcairds like "*.wikipedia.org" can be uised.
+Needs at least ae top-level domain, fer example "*.org".<br />
+Supported {{PLURAL:$2|protocol|protocols}}: <code>$1</code> (defaults to http:// gif naw protocol is speceefied).',
 'linksearch-line' => '$1 is linked from $2',
+'linksearch-error' => 'Wildcards micht appear yinlie at the stairt o the hoastname.',
 
 # Special:ListUsers
+'listusersfrom' => 'Displey uisers stairtin at:',
 'listusers-submit' => 'Shaw',
+'listusers-noresult' => 'Naw uiser foond.',
 'listusers-blocked' => '(blockit)',
 
+# Special:ActiveUsers
+'activeusers' => 'Acteeve uisers leet',
+'activeusers-intro' => 'This is ae leet o uisers that had some kynd o acteevitie wiin the last $1 {{PLURAL:$1|day|days}}.',
+'activeusers-count' => '$1 {{PLURAL:$1|action|actions}} in the laist {{PLURAL:$3|day|$3 days}}',
+'activeusers-from' => 'Displey uisers stairtin at:',
+'activeusers-hidebots' => 'Skauk bots',
+'activeusers-hidesysops' => 'Skauk admeenistraters',
+'activeusers-noresult' => 'Naw uisers foond.',
+
 # Special:ListGroupRights
+'listgrouprights' => 'Uiser groop richts',
+'listgrouprights-summary' => 'The follaein is aae leet o uiser groops defined oan this wiki, wi thair associated access richts.
+There micht be [[{{MediaWiki:Listgrouprights-helppage}}|addeetional information]] aneat indiveedual richts.',
+'listgrouprights-key' => 'Legend:
+* <span class="listgrouprights-granted">Grantit richt</span>
+* <span class="listgrouprights-revoked">Revokt richt</span>',
+'listgrouprights-group' => 'Groop',
+'listgrouprights-rights' => 'Richts',
+'listgrouprights-helppage' => 'Help:Groop richts',
 'listgrouprights-members' => '(leet o members)',
+'listgrouprights-addgroup' => 'Add {{PLURAL:$2|groop|groops}}: $1',
+'listgrouprights-removegroup' => 'Remuiv {{PLURAL:$2|grop|groops}}: $1',
+'listgrouprights-addgroup-all' => 'Add aw groops',
+'listgrouprights-removegroup-all' => 'Remui aw groops',
+'listgrouprights-addgroup-self' => 'Add {{PLURAL:$2|groop|groops}} til yer accoont: $1',
+'listgrouprights-removegroup-self' => 'Remuiv {{PLURAL:$2|groop|groops}} fae yer accoont: $1',
+'listgrouprights-addgroup-self-all' => 'Add aw groops til yer accoont',
+'listgrouprights-removegroup-self-all' => 'Remuiv aw groops fae yer accoont',
 
 # Email user
 'mailnologin' => 'Nae send address',
-'mailnologintext' => 'Ye maun be [[Special:UserLogin|loggit in]] an hae a valid e-mail address in yer [[Special:Preferences|preferences]] tae send e-mail til ither uisers.',
+'mailnologintext' => 'Ye maun be [[Special:UserLogin|loggit in]] n hae ae valid wab-mail address in yer [[Special:Preferences|preferences]] tae send Wab-mail til ither uisers.',
 'emailuser' => 'E-mail this uiser',
+'emailuser-title-target' => 'Wab-mail this {{GENDER:$1|uiser}}',
+'emailuser-title-notarget' => 'Wab-mail uiser',
+'emailpage' => 'Wab-mail uiser',
+'emailpagetext' => 'Ye can uise the form ablo tae send ae wab-mail message til this {{GENDER:$1|uiser}}.
+The wab-mail address that ye entered in [[Special:Preferences|yer uiser preeferances]] will kith aes the "Fae" address o the wab-mail, sae that the receepient will be able tae replie directlie til ye.',
+'usermailererror' => 'Mail object returned mistak:',
+'defemailsubject' => '{{SITENAME}} wab-mail fae uiser "$1"',
+'usermaildisabled' => 'Uiser wab-mail disablit',
+'usermaildisabledtext' => 'Ye canna send wab-mail til ither uisers oan this wiki',
 'noemailtitle' => 'Nae e-mail address',
 'noemailtext' => 'This uiser haesna speceefied ae valid wab-mail address.',
+'nowikiemailtitle' => 'Naw wab-mail permitit',
+'nowikiemailtext' => 'This uiser haes choosen tae naw receeve wab-mail fae ither uisers.',
+'emailnotarget' => 'Non-exeestent or onvalit uisername fer receepeeant.',
+'emailtarget' => 'Enter uisername o reeceepeeant',
+'emailusername' => 'Uisername:',
+'emailusernamesubmit' => 'Haun-in',
+'email-legend' => 'Send ae wab-mail til anither {{SITENAME}} uiser',
+'emailfrom' => 'Fae:',
+'emailto' => 'Til:',
+'emailsubject' => 'Aneat:',
 'emailmessage' => 'Message:',
+'emailccme' => 'Wab-mail me ae copie o ma message.',
+'emailccsubject' => 'Copie o yer message til $1: $2',
+'emailsent' => 'Wab-mail sent',
+'emailsenttext' => 'Yer wab-mail message haes been sent.',
+'emailuserfooter' => 'This wab-mail wis sent bi $1 til $2 bi the "Wab-mail uiser" function at {{SITENAME}}.',
+
+# User Messenger
+'usermessage-summary' => 'Leain seestem message.',
+'usermessage-editor' => 'Seestem messenger',
 
 # Watchlist
 'watchlist' => 'Ma watchleet',
 'mywatchlist' => 'Ma watchleet',
 'watchlistfor2' => 'For $1 $2',
-'nowatchlist' => 'Ye hivna onie eitems on yer watchleet.',
+'nowatchlist' => "Ye'v nae eitems oan yer watchleet.",
+'watchlistanontext' => 'Please $1 tae see or eedit eetems oan yer watchlet.',
 'watchnologin' => 'Nae loggit in',
 'watchnologintext' => 'Ye maun be [[Special:UserLogin|loggit in]] tae modify yer watchleet.',
+'addwatch' => 'Add til watchleet',
 'addedwatchtext' => 'The page "[[:$1]]" haes been added til yer [[Special:Watchlist|watchleet]].
-Future chynges til this page an its associated tauk page will be leeted there.',
+Futur chynges til this page n its associated tauk page will be leeted thaur.',
+'removewatch' => 'Remuiv fae watchleet',
 'removedwatchtext' => 'The page "[[:$1]]" haes been remuied fae [[Special:Watchlist|yer watchleet]].',
 'watch' => 'Watch',
 'watchthispage' => 'Leuk ower this page',
 'unwatch' => 'Unwatch',
-'notanarticle' => 'No a content page',
-'watchlist-details' => '{{PLURAL:$1|$1 page|$1 pages}} on yer watchleet, no countin talk pages.',
+'unwatchthispage' => 'Stap watchin',
+'notanarticle' => 'Naw ae content page',
+'notvisiblerev' => 'The last reeveesion bi ae differant uiser haes been delytit',
+'watchlist-details' => '{{PLURAL:$1|$1 page|$1 pages}} oan yer watchleet, na coontin tauk pages.',
+'wlheader-enotif' => 'Wab-mail annooncemant is enabled.',
+'wlheader-showupdated' => "Pages that hae been chynged sin ye last veesitit thaim ar shawn in '''baud'''.",
+'watchmethod-recent' => 'checkin recent eedits fer watched pages',
+'watchmethod-list' => 'checking watched pages fer recent eedits',
 'watchlistcontains' => 'Yer watchleet contains $1 {{PLURAL:$1|page|pages}}.',
-'iteminvalidname' => "Trouble wi eitem '$1', invalid name...",
-'wlnote2' => 'Ablow ar the chynges in the hainmaist {{PLURAL:$1|hour|<strong>$1</strong> hours}}, as of $3, $2.',
+'iteminvalidname' => "Proablem wi eetem '$1', onvalit name...",
+'wlnote2' => 'Ablo ar the chynges in the hainmaist {{PLURAL:$1|hoor|<strong>$1</strong> hours}}, aes o $3, $2.',
 'wlshowlast' => 'Shaw lest $1 hours $2 days $3',
 'watchlist-options' => 'Watchleet options',
 
 # Displayed when you click the "watch" button and it is in the process of watching
 'watching' => 'Watchin...',
 'unwatching' => 'Unwatchin...',
+'watcherrortext' => 'Ae mistak occurred while chyngin yer watchleet settins fer "$1".',
 
+'enotif_mailer' => '{{SITENAME}} annooncemant mailer',
 'enotif_reset' => 'Merk aa pages visitit',
+'enotif_impersonal_salutation' => '{{SITENAME}} uiser',
+'enotif_subject_deleted' => '{{SITENAME}} page $1 haes been {{GENDER:$2|delytit}} bi $2',
+'enotif_subject_created' => '{{SITENAME}} page $1 haes been {{GENDER:$2|cræftit}} bi $2',
+'enotif_subject_moved' => '{{SITENAME}} page $1 haes been {{GENDER:$2|muived}} bi $2',
+'enotif_subject_restored' => '{{SITENAME}} page $1 haes been {{GENDER:$2|restored}} bi $2',
+'enotif_subject_changed' => '{{SITENAME}} page $1 haes been {{GENDER:$2|chynged}} bi $2',
+'enotif_body_intro_deleted' => 'The {{SITENAME}} page $1 haes been {{GENDER:$2|delytit}} oan $PAGEEDITDATE bi $2, see $3.',
+'enotif_body_intro_created' => 'The {{SITENAME}} page $1 haes been {{GENDER:$2|cræftit}} oan $PAGEEDITDATE bi $2, see $3 fer the Nou reeveesion.',
+'enotif_body_intro_moved' => 'The {{SITENAME}} page $1 haes been {{GENDER:$2|muived}} oan $PAGEEDITDATE bi $2, see $3 fer the Nou reeveesion.',
+'enotif_body_intro_restored' => 'The {{SITENAME}} page $1 haes been {{GENDER:$2|restored}} oan $PAGEEDITDATE bi $2, see $3 fer the Nou reveesion.',
+'enotif_body_intro_changed' => 'The {{SITENAME}} page $1 haes been {{GENDER:$2|chynged}} oan $PAGEEDITDATE bi $2, see $3 fer the Nou reeveesion.',
 'enotif_lastvisited' => 'Hae ae leuk at $1 fer aa chynges sin yer laist veesit.',
-'created' => 'creatit',
+'enotif_lastdiff' => 'See $1 tae see this chynge.',
+'enotif_anon_editor' => 'anonymoos uiser $1',
+'enotif_body' => 'Dear $WATCHINGUSERNAME,
+
+$PAGEINTRO $NEWPAGE
+
+Eediter\'s ootline: $PAGESUMMARY $PAGEMINOREDIT
+
+Contact the eediter:
+mail: $PAGEEDITOR_EMAIL
+wiki: $PAGEEDITOR_WIKI
+
+Thaur\'ll be naw ither annooncemants in case o further acteevitie onless ye veesit this page while loggit in. Ye coud forby reset the annooncemant flags fer aw yer watched pages oan yer watchleet.
+
+Yer freendlie {{SITENAME}} annooncemant system
+
+--
+Taae chynge yer wab-mail annooncemant settins, veesit
+{{canonicalurl:{{#special:Preferences}}}}
+
+Tae chynge yer watchleet settins, veesit
+{{canonicalurl:{{#special:EditWatchlist}}}}
+
+Tae delyte the page fae yer watchleet, veesit
+$UNWATCHURL
+
+Feedback n further asseestance:
+{{canonicalurl:{{MediaWiki:Helppage}}}}',
+'created' => 'cræftit',
 'changed' => 'chynged',
 
 # Delete
 'deletepage' => 'Delyte page',
 'excontent' => "content wis: '$1'",
-'excontentauthor' => "content wis: '$1' (an the ae contreibutor wis '[[Special:Contributions/$2|$2]]')",
+'excontentauthor' => "content wis: '$1' (n the ae contreebuter wis '[[Special:Contributions/$2|$2]]')",
 'exbeforeblank' => "content afore blankin wis: '$1'",
 'exblank' => 'page wis tuim',
 'delete-confirm' => 'Delyte "$1"',
 'delete-legend' => 'Delyte',
-'historywarning' => "<strong>Warnishment:</strong> The page ye'r aboot tae delete haes ae histerie wi approximately $1 {{PLURAL:$1|revision|revisions}}:",
-'confirmdeletetext' => "Ye'r aboot tae permanently delete a page or eimage alang wi aa its history frae the database.
+'historywarning' => "<strong>Warnishment:</strong> The page that ye'r aboot tae delyte haes ae histerie wi approximatelie $1 {{PLURAL:$1|reveesion|reveesions}}:",
+'confirmdeletetext' => "Ye'r aboot tae delyte ae page or eemage alang wi aw its histerie fae the database.
 Please confirm that ye intend tae dae this, that ye unnerstaun the consequences,
-an that ye'r daein this in accord wi [[{{MediaWiki:Policy-url}}]].",
+n that ye'r daein this in accord wi [[{{MediaWiki:Policy-url}}]].",
 'actioncomplete' => 'Action duin',
 'actionfailed' => 'Action failed',
 'deletedtext' => '"$1" haes been delytit. See $2 fer ae record o recent delytions.',
 'dellogpage' => 'Delytion log',
-'dellogpagetext' => 'Ablo is a leet o the maist recent deletions.',
+'dellogpagetext' => 'Ablo is ae leet o the maist recynt delytions.',
 'deletionlog' => 'delytion log',
-'reverted' => 'Revertit tae aulder reveision',
+'reverted' => 'Revertit til aulder reveesion',
 'deletecomment' => 'Raeson:',
+'deleteotherreason' => 'Ither/addeetional raison:',
 'deletereasonotherlist' => 'Ither raeson',
+'deletereason-dropdown' => '* Commyn delyte raisons
+** Spam
+** Vandaleesm
+** Copiericht violation
+** Writer request
+** Broken reguidal',
+'delete-edit-reasonlist' => 'Eedit delytion raisons',
+'delete-toobig' => 'This page haes ae muckle eedit histerie, ower $1 {{PLURAL:$1|reveesion|reveesions}}.
+Delytion o sic pages haes been restrictit tae stap accidental disruption o {{SITENAME}}.',
+'delete-warning-toobig' => 'This page haes ae muckle eedit histerie, ower $1 {{PLURAL:$1|reveesion|reveesions}}.
+Delytin it micht disrupt database operations o {{SITENAME}};
+proceed wi caution.',
+'deleting-backlinks-warning' => "'''Warnishment:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Ither pages]] link til or transcluide the page ye'r aboot tae delyte.",
 
 # Rollback
 'rollback' => 'Row back edits',
 'rollback_short' => 'Rowback',
 'rollbacklink' => 'rowback',
+'rollbacklinkcount' => 'rowback $1 {{PLURAL:$1|eedit|eedits}}',
+'rollbacklinkcount-morethan' => 'rowback mair than $1 {{PLURAL:$1|eedit|eedits}}',
 'rollbackfailed' => 'Rowback failed',
-'cantrollback' => 'Canna revert edit; last contreibutor is the ae author o this page.',
+'cantrollback' => 'Canna revert eidit; laist contreebuter is the ae auther o this page.',
 'alreadyrolled' => 'Canna rollback laist eidit o [[:$1]] bi [[User:$2|$2]] ([[User talk:$2|tauk]]{{int:pipe-separater}}[[Special:Contributions/$2|{{int:contribslink}}]]);
 some ither bodie haes eidited or rolled back the page awreadie.
 
 The laist eidit til the page wis bi [[User:$3|$3]] ([[User talk:$3|tauk]]{{int:pipe-separater}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "The eidit summarie wis: \"''\$1''\".",
-'revertpage' => 'Reverted eidits bi [[Special:Contributions/$2|$2]] ([[User talk:$2|tauk]]) til laist revision bi [[User:$1|$1]]',
+'revertpage' => 'Reverted eidits bi [[Special:Contributions/$2|$2]] ([[User talk:$2|tauk]]) til laist reveesion bi [[User:$1|$1]]',
+'revertpage-nouser' => 'Reverted eedits bi ae skaukt uiser til laist revesion bi {{GENDER:$1|[[User:$1|$1]]}}',
+'rollback-success' => 'Reverted eedits b $1;
+chynged back til the laist reveesion bi $2.',
+
+# Edit tokens
+'sessionfailure' => 'Thaur seems tae be ae proablem wi yer login session;
+this action haes been canceled aes ae precaution again session hijackin.
+Gang back til the preeveeoos page, relaid that page n than gie it anither gae.',
 
 # Protect
 'protectlogpage' => 'Fend log',
 'protectlogtext' => 'Ablow is ae leet o chynges til page protections.
 See the [[Special:ProtectedPages|protected pages leet]] fer the leet o currently operational page protections.',
 'protectedarticle' => 'protectit "[[$1]]"',
+'modifiedarticleprotection' => 'chynged protection level fer "[[$1]]"',
 'unprotectedarticle' => 'remuied protection fae "[[$1]]"',
+'movedarticleprotection' => 'muived protection settins fae "[[$2]]" til "[[$1]]"',
 'protect-title' => 'Protectin "$1"',
+'protect-title-notallowed' => 'See protection level o "$1"',
 'prot_1movedto2' => '[[$1]] flittit til [[$2]]',
+'protect-badnamespace-text' => 'Pages in this namespace canna be protected.',
+'protect-norestrictiontypes-text' => "This page canna be protected aes thaur's naw restreection types available.",
 'protectcomment' => 'Raeson:',
 'protectexpiry' => 'Expires:',
-'protect-text' => "Ye can see an chynge the protection level here for the page '''$1'''.",
+'protect_expiry_invalid' => 'Expirie time is onvalit.',
+'protect_expiry_old' => 'Expirie time is in the past.',
+'protect-unchain-permissions' => 'Lowse mair protect opties',
+'protect-text' => 'Ye can see n chynge the protection level here fer the page <strong>$1</strong>.',
+'protect-locked-blocked' => 'Ye canna chynge protection levels while blockt.
+Here ar the settins fer the page <strong>$1</strong> the nou:',
+'protect-locked-dblock' => 'Protection levels canna be chynged cause o aen acteeve database lock.
+Here ar the settins fer the page <strong>$1</strong> nou:',
+'protect-locked-access' => 'Yer accont disna hae permeession tae chynge page protection levels.
+Here ar the settins fer the page <strong>$1</strong> the nou:',
+'protect-cascadeon' => "This page is nou protected cause it is incluided in the follaein {{PLURAL:$1|page, this haes|pages, thir hae}} cascadin protection turned oan.
+Chynges til this page's protection level will na affect the cascadin protection.",
 'protect-default' => 'Allow aw uisers',
+'protect-fallback' => 'permit yinlie uisers wi "$1" permission',
 'protect-level-autoconfirmed' => 'Allou yinly autæconfirmed uisers',
 'protect-level-sysop' => 'Allou admeenistraters yinly',
+'protect-summary-cascade' => 'cascadin',
+'protect-expiring' => 'dees $1 (UTC)',
+'protect-expiring-local' => 'dees $1',
+'protect-expiry-indefinite' => 'indefineet',
+'protect-cascade' => 'Protect pages incluided in this page (cascadin protection)',
+'protect-cantedit' => 'Ye canna chynge the protection levels o this page cause ye dinna hae permeession tae eedit it.',
 'protect-othertime' => 'Ither time:',
 'protect-othertime-op' => 'ither time',
+'protect-existing-expiry' => 'Exeestin expirie time: $3, $2',
+'protect-otherreason' => 'Ither/addeetional raison:',
+'protect-otherreason-op' => 'Ither raison',
+'protect-dropdown' => '*Commyn protection raisons
+** Excesseeve vandaleesm
+** Excesseeve spammin
+** Coonter-producteeve eedit warrin
+** Hei traffeec page',
+'protect-edit-reasonlist' => 'Eedit protection raisons',
 'protect-expiry-options' => '1 hoor:1 hour,1 day:1 day,1 week:1 week,2 weeks:2 weeks,1 month:1 month,3 months:3 months,6 months:6 months,1 year:1 year,eenfinite:infinite',
+'restriction-type' => 'Permeession:',
+'restriction-level' => 'Restreection level:',
+'minimum-size' => 'Smaaest size',
+'maximum-size' => 'Mucklest size:',
 
 # Restrictions (nouns)
-'restriction-edit' => 'Edit',
-'restriction-move' => 'Flit',
+'restriction-edit' => 'Eidit',
+'restriction-move' => 'Muiv',
 'restriction-create' => 'Mak',
 'restriction-upload' => 'Uplaid',
 
+# Restriction levels
+'restriction-level-sysop' => 'fulie protected',
+'restriction-level-autoconfirmed' => 'semie protected',
+'restriction-level-all' => 'onie level',
+
 # Undelete
-'undelete' => 'Restore delyte page',
-'undeletepage' => 'View an restore delytit pages',
+'undelete' => 'See delytit page',
+'undeletepage' => 'See n restore delytit pages',
+'undeletepagetitle' => '<strong>The follaein conseests o delytit reveesions o [[:$1|$1]]</strong>.',
 'viewdeletedpage' => 'View delyte pages',
-'undeletepagetext' => 'The follaeing {{PLURAL:$1|page haes been deletit but is|$1 pages hae been deletit but ar}} still in the archive an can be restored.
-The archive micht be cleaned oot nou an then.',
-'undeleteextrahelp' => "In order tae restore the page's entire histerie, lea aw checkboxes onselected an clap on <strong><em>{{int:undeletebtn}}</em></strong>.
-Tae perform ae selective restoration, check the boxes corresponding til the revisions tae be restored, an clap on <strong><em>{{int:undeletebtn}}</em></strong>.",
-'undeletehistory' => 'Gif ye restore the page, aw revisions will be restored til the histerie.
+'undeletepagetext' => 'The follaein {{PLURAL:$1|page haes been delytit but is|$1 pages hae been delytit but ar}} still in the archive n can be restored.
+The archive micht be cleaned oot nou n than.',
+'undelete-fieldset-title' => 'Restore reveesions',
+'undeleteextrahelp' => "In order tae restore the page's entire histerie, lea aw checkkists onselected n clap oan <strong><em>{{int:undeletebtn}}</em></strong>.
+Tae perform ae selecteeve restoration, check the kists correspondin til the reveesions tae be restored, n clap oan <strong><em>{{int:undeletebtn}}</em></strong>.",
+'undeleterevisions' => '$1 {{PLURAL:$1|reveesion|reveesions}} archived',
+'undeletehistory' => 'Gif ye restore the page, aw reveesions will be restored til the histerie.
 Gif ae new page wi the same name haes been makit sin the delytion, the restored reveesions will kyth in the prior histerie.',
+'undeleterevdel' => 'Ondelytion will na be performed gif it will result in the tap page or file reveesion bein pairtlie delyted.
+In sic cases, ye maun oncheck or onskauk the newest delytit reveesion.',
 'undeletehistorynoadmin' => 'This airticle haes been delytit. The raeson fer delytion is
 shawn in the owerview ablo, alang wi parteeculars o the uisers that haed eiditit this page afore it wis delytit. The actual tex o thir delytit reveesions is available tae admeenistraters juist.',
-'undeletelink' => 'view/restore',
+'undelete-revision' => 'Deleted reveesion o $1 (aes o $4, at $5) bi $3:',
+'undeleterevision-missing' => 'Onvalid or missin reveesion.
+Ye micht hae ae bad link, or the reveesion micht hae been restored or remuived fae the archive.',
+'undelete-nodiff' => 'Naw preeveeoos reveesion foond.',
+'undeletelink' => 'see/restore',
 'undeleteviewlink' => 'view',
-'undeletedrevisions' => '{{PLURAL:$1|1 reveision|$1 reveisions}} restored',
+'undeletecomment' => 'Raison:',
+'undeletedrevisions' => '{{PLURAL:$1|1 reveesion|$1 reveesions}} restored',
+'undeletedrevisions-files' => '{{PLURAL:$1|1 reveesion|$1 reveesions}} n {{PLURAL:$2|1 file|$2 files}} restored',
 'cannotundelete' => 'Ondelyte failed:
 $1',
 'undeletedpage' => '<strong>$1 haes been restored</strong>
 
 Consult the [[Special:Log/delete|delytion log]] fer ae record o recent delytions an restorâtions.',
+'undelete-header' => 'See [[Special:Log/delete|the delytion log]] fer recentlie delytit pages.',
+'undelete-search-title' => 'Rake delytit pages',
+'undelete-search-box' => 'Rake delytit pages',
+'undelete-search-prefix' => 'Shaw pages stairtin wi:',
+'undelete-search-submit' => 'Rake',
+'undelete-no-results' => 'Naw matchin pages foond in the delytion airchive.',
+'undelete-filename-mismatch' => 'Canna ondelyte file reveesion wi timestamp $1: Filename mismatch.',
+'undelete-bad-store-key' => 'Canna ondelyte file reveesion wi timestamp $1: File wis missin afore delytion.',
+'undelete-cleanup-error' => 'Mistak delytin onuised airchive file "$1".',
+'undelete-missing-filearchive' => "Onable tae restore file airchive ID $1 cause it's na in the database.
+It micht awreadie hae been ondelytit.",
+'undelete-error' => 'Mistak ondelytin page',
+'undelete-error-short' => 'Mistak ondelytin file: $1',
+'undelete-error-long' => 'Mistaks were encoontered while ondelytin the file:
+
+$1',
+'undelete-show-file-confirm' => 'Ar ye sair that ye want tae see the delytit reveesion o the file "<nowiki>$1</nowiki>" fae $2 at $3?',
+'undelete-show-file-submit' => 'Ay',
 
 # Namespace form on various pages
 'namespace' => 'Namespace:',
 'invert' => 'Invert selection',
+'tooltip-invert' => 'Check this kist tae skauk chynges til pages wiin the selectit namespace (n the associated namespace gif checked)',
+'tooltip-namespace_association' => 'Check this kist forby tae incluid the tauk or subject namespace associated wi the selectit namespace',
 'blanknamespace' => '(Main)',
 
 # Contributions
 'contributions' => '{{GENDER:$1|Uiser}} contributions',
-'contributions-title' => 'Uiser contreibutions fer $1',
-'mycontris' => 'Ma contreibutions',
+'contributions-title' => 'Uiser contreebutions fer $1',
+'mycontris' => 'Ma contreebutions',
 'contribsub2' => 'Fer {{GENDER:$3|$1}} ($2)',
 'nocontribs' => 'Nae chynges wis funnd matchin thir criteria.',
 'uctop' => '(current)',
-'month' => 'Frae month (an afore):',
-'year' => 'Frae year (an afore):',
+'month' => 'Fae month (n afore):',
+'year' => 'Fae year (n afore):',
 
-'sp-contributions-newbies' => "Shaw contreibutions o' freish accounts ainlie",
+'sp-contributions-newbies' => 'Shaw contreebutions o freish accoonts ainlie',
+'sp-contributions-newbies-sub' => 'Fer new accoonts',
+'sp-contributions-newbies-title' => 'Uiser contreebutions fer new accoonts',
 'sp-contributions-blocklog' => 'block log',
+'sp-contributions-deleted' => 'delytit uiser contreebutions',
 'sp-contributions-uploads' => 'uploads',
 'sp-contributions-logs' => 'logs',
-'sp-contributions-talk' => 'talk',
+'sp-contributions-talk' => 'tauk',
+'sp-contributions-userrights' => 'uiser richts management',
+'sp-contributions-blocked-notice' => 'This uiser is nou blockit.
+The latest block log entrie is gien ablo fer referance:',
+'sp-contributions-blocked-notice-anon' => 'This IP address is blockit the nou.
+The latest block log entrie is gien ablo fer referance:',
 'sp-contributions-search' => 'Rake fer contreebutions',
+'sp-contributions-suppresslog' => 'suppressed uiser contreebutions',
 'sp-contributions-username' => 'IP address or uisername:',
-'sp-contributions-toponly' => 'Ainlie shaw edits that are latest revisions',
+'sp-contributions-toponly' => 'Ainlie shaw eedits that ar laitest reveesions',
+'sp-contributions-newonly' => 'Yinlie shaw eidits that ar page cræftins',
 'sp-contributions-submit' => 'Rake',
 
 # What links here
-'whatlinkshere' => 'Whit airts tae here',
+'whatlinkshere' => 'Whit links here',
 'whatlinkshere-title' => 'Pages that link til "$1"',
 'whatlinkshere-page' => 'Page:',
-'linkshere' => "The follaein pages airts tae '''[[:$1]]''':",
-'nolinkshere' => "Nae pages airt tae '''[[:$1]]'''.",
+'linkshere' => 'The follaein pages link til <strong>[[:$1]]</strong>:',
+'nolinkshere' => "Nae pages link wi '''[[:$1]]'''.",
 'nolinkshere-ns' => 'No pages aiet til <strong>[[:$1]]</strong> in the choosen namespace.',
 'isredirect' => 'reguidal page',
 'istemplate' => 'transclusion',
@@ -1640,201 +2411,408 @@ Consult the [[Special:Log/delete|delytion log]] fer ae record o recent delytions
 'whatlinkshere-filters' => 'Filters',
 
 # Block/unblock
+'autoblockid' => 'Autæblock #$1',
+'block' => 'Block uiser',
+'unblock' => 'Onblock uiser',
 'blockip' => 'Block uiser',
-'blockiptext' => 'Uise the form ablo tae block write access frae a specific IP address or uisername. This shuid be duin juist tae prevent vandalism, and in accord wi [[{{MediaWiki:Policy-url}}|policy]]. Fill in a specific raeson ablo (for exemplar, citin parteicular pages that wis damaged).',
+'blockip-legend' => 'Block uiser',
+'blockiptext' => 'Uise the form ablo tae block write access fae ae speceefic IP address or uisername. This shid be dun juist tae hinder vandaleesm, n in accord wi [[{{MediaWiki:Policy-url}}|policie]]. Fil in ae speceefic raison ablo (fer exemplar, citin parteecular pages that were vandalised).',
 'ipadressorusername' => 'IP Address or uisername',
+'ipbexpiry' => 'Expirie:',
 'ipbreason' => 'Raeson:',
+'ipbreason-dropdown' => '*Commyn block raisons
+** Insertin false information
+** Remuivin content fae pages
+** Spammin links til external sites
+** Insertin nonsense/gibberish intil pages
+** Inteemidatin behavier/harassment
+** Abuisin multiple accoonts
+** Onacceptable uisername',
+'ipb-hardblock' => 'Stap loggit-in uisers fae eeditin fae this IP address',
+'ipbcreateaccount' => 'Stap accoont cræftin',
+'ipbemailban' => 'Stap uiser fae sendin wab-mail',
+'ipbenableautoblock' => 'Autæmateeclie block the laist IP address uised bi this uiser, n onie subsequent IP addresses that thay attempt tae eedit fae',
 'ipbsubmit' => 'Block this uiser',
 'ipbother' => 'Ither time',
 'ipboptions' => '2 hours:2 hours,1 day:1 day,3 days:3 days,1 week:1 week,2 weeks:2 weeks,1 month:1 month,3 months:3 months,6 months:6 months,1 year:1 year,indefinite:infinite',
+'ipbhidename' => 'Skauk uisername fae eedits n leets',
+'ipbwatchuser' => "Watch this uiser's uiser n tauk pages",
+'ipb-disableusertalk' => 'Stap this uiser fae eeditin thair ain tauk page while blockit',
+'ipb-change-block' => 'Re-block the uiser wi thir settins',
 'badipaddress' => 'That IP address is nae guid',
 'blockipsuccesssub' => 'Block succeedit',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] haes been blockit.
 <br />See [[Special:BlockList|block leet]] tae review blocks.',
-'ipb-unblock-addr' => 'Unblock $1',
-'unblockip' => 'Unblock uiser',
-'unblockiptext' => 'Uise the form ablo tae restore screivin richts
-tae an afore-blockit IP address or uisername.',
+'ipb-blockingself' => "Ye'r aboot tae block yersel! Ar ye sair that ye want tae dae that?",
+'ipb-confirmhideuser' => 'Ye\'r aboot tae block ae uiser wi "skauk uiser" enabled. This will suppress the uiser\'s name in aw leets n log entries. Ar ye sair that ye want tae dae that?',
+'ipb-confirmaction' => 'Gif ye\'r sair that ye reelie want tae dae it, please check the "{{int:ipb-confirm}}" field at the bottom.',
+'ipb-edit-dropdown' => 'Eedit block raisons',
+'ipb-unblock-addr' => 'Onblock $1',
+'ipb-unblock' => 'Onblock ae uisername or IP address',
+'ipb-blocklist' => 'See exeestin blocks',
+'ipb-blocklist-contribs' => 'Contreebutions fer $1',
+'unblockip' => 'Onblock uiser',
+'unblockiptext' => 'Uise the form ablo tae restore screevin richts
+til aen afore-blockit IP address or uisername.',
+'ipusubmit' => 'Remuive this block',
+'unblocked' => '[[User:$1|$1]] haes been onblockit.',
+'unblocked-range' => '$1 haes been onblockit.',
+'unblocked-id' => 'Block $1 haes been remuived.',
+'blocklist' => 'Blockit uisers',
 'ipblocklist' => 'Blockit uisers',
+'ipblocklist-legend' => 'Fynd ae blockit uiser',
+'blocklist-userblocks' => 'Skauk accoont blocks',
+'blocklist-tempblocks' => 'Skauk temparie blocks',
+'blocklist-addressblocks' => 'Skauk single IP blocks',
+'blocklist-rangeblocks' => 'Skauk range blocks',
+'blocklist-target' => 'Tairget',
+'blocklist-expiry' => 'Dies',
+'blocklist-by' => 'Blockin admeen',
+'blocklist-params' => 'Block boonds',
+'blocklist-reason' => 'Raison',
+'ipblocklist-submit' => 'Rake',
+'ipblocklist-otherblocks' => 'Ither {{PLURAL:$1|block|blocks}}',
+'infiniteblock' => 'infeenite',
+'expiringblock' => 'dies oan $1 at $2',
 'anononlyblock' => 'anon. juist',
+'noautoblockblock' => 'autæblock disabled',
 'createaccountblock' => 'accoont-makkin blockit',
+'emailblock' => 'wab-mail disabled',
+'blocklist-nousertalk' => 'canna eedit yer ain tauk page',
+'ipblocklist-empty' => 'The block leet is tuim.',
+'ipblocklist-no-results' => 'The requested IP address or uisername isna blockit.',
 'blocklink' => 'block',
-'unblocklink' => 'unblock',
+'unblocklink' => 'onblock',
 'change-blocklink' => 'chynge block',
-'contribslink' => 'contreibs',
-'autoblocker' => 'Autaematically blockit syne yer IP address haes been uised recently bi "[[User:$1|$1]]". The raeson gien fer $1\'s block is "$2"',
+'contribslink' => 'contreebs',
+'emaillink' => 'send wab-mail',
+'autoblocker' => 'Autaematicallie blockit sin yer IP address haes been uised recentlie bi "[[User:$1|$1]]". The raeson gien fer $1\'s block is "$2"',
 'blocklogpage' => 'Block log',
-'blocklogentry' => 'blockit [[$1]] wi an expiry time o $2 $3',
-'blocklogtext' => 'This is ae log o uiser blockin an onblockin actions. Autaematically blockit IP addresses isna leetit. See the [[Special:BlockList|block leet]] fer the leet o bans and blocks oan nou.',
+'blocklog-showlog' => 'This uiser haes been blockit afore.
+The block log is gien ablo fer referance:',
+'blocklog-showsuppresslog' => 'This uiser haes been blockit n skaukt afore.
+The suppress log is gien ablo fer referance:',
+'blocklogentry' => 'blockit [[$1]] wi aen expirie time o $2 $3',
+'reblock-logentry' => 'chynged block settins fer [[$1]] wi ae diein time o $2 $3',
+'blocklogtext' => 'This is ae log o uiser blockin n onblockin actions. Autaematiclie blockit IP addresses isna leetit. See the [[Special:BlockList|block leet]] fer the leet o bans n blocks oan the nou.',
 'unblocklogentry' => 'unblockit $1',
+'block-log-flags-anononly' => 'anonymos uisers yinlie',
 'block-log-flags-nocreate' => 'accoont-makkin blockit',
+'block-log-flags-noautoblock' => 'autæblock disabled',
+'block-log-flags-noemail' => 'wab-mail disabled',
+'block-log-flags-nousertalk' => 'canna eedit yer ain tauk page',
+'block-log-flags-angry-autoblock' => 'enhanced autæblock enabled',
+'block-log-flags-hiddenname' => 'uisername skaukt',
 'range_block_disabled' => 'The administrator abeility tae mak range blocks is disabled.',
-'proxyblockreason' => 'Yer IP address haes been blockit sith it is an open proxy. Please contact yer Internet service provider or tech support an inform them o this serious security problem.',
+'ipb_expiry_invalid' => 'Expirie time is onvalit.',
+'ipb_expiry_temp' => 'Skaukt uisername blocks maun be permanent.',
+'ipb_hide_invalid' => 'Onable tae suppress this accoont; it haes mair than {{PLURAL:$1|yin eedit|$1 eedits}}.',
+'ipb_already_blocked' => '"$1" is awreadie blockit.',
+'ipb-needreblock' => '$1 is awreadie blockit. Div ye want tae chynge the settins?',
+'ipb-otherblocks-header' => 'Ither {{PLURAL:$1|block|blocks}}',
+'unblock-hideuser' => 'Ye canna onblock this uiser, aes thair uisername haes been skaukt.',
+'ipb_cant_unblock' => 'Mistak: Block ID $1 na foond. It micht hae been onblockit awreadie.',
+'ipb_blocked_as_range' => 'Mistak: The IP address $1 isna blockit directlir n canna be onblockit.
+It is, houever, blockit aes pairt o the range $2, n this can be onblockit.',
+'ip_range_invalid' => 'Onvalid IP range.',
+'ip_range_toolarge' => 'Range blocks muckler than /$1 ar na permitit.',
+'proxyblocker' => 'Proxie blocker',
+'proxyblockreason' => "Yer IP address haes been blockit cause it's aen apen proxie. Please contact yer Internet service provider or tech support n inform them o this serious securitie problem.",
 'sorbsreason' => 'Yer IP address is leeted aes aen apen proxy in the DNSBL uised bi {{SITENAME}}.',
 'sorbs_create_account_reason' => 'Yer IP address is leeted aes aen apen proxy in the DNSBL uised bi {{SITENAME}}.
 Ye canna mak aen accoont.',
+'xffblockreason' => "Aen IP address present in the X-Forwarded-For heider, either yers or that o ae proxie server that ye'r uisin, haes been block. The oreeginal block raison wis: $1",
+'cant-see-hidden-user' => "The uiser that ye'r attemptin tae block haes awreadie been blockit n skaukt.
+Aes ye dinna hae the skaukuiser richt, ye canna see or eedit the uiser's block.",
+'ipbblocked' => 'Ye canna block or onblock ither uisers cause ye yersel is blockit.',
+'ipbnounblockself' => 'Yer na permitit tae onblock yersel.',
 
 # Developer tools
 'unlockdb' => 'Lowse database',
-'lockdbtext' => "Lockin the database will suspend the abeility o aa uisers tae edit pages, chynge thair preferences, edit thair watchleets, an ither things requirin chynges in the database. Please confirm that this is whit ye intend tae dae, an that ye'll unlock the database whan yer maintenance is duin.",
-'unlockdbtext' => 'Lowsin the database will gie back the abeility for aa uisers tae edit pages, chynge their preferences, edit their watchleets, an ither things needin chynges in the database. Please confirm that this is whit ye ettle tae dae.',
-'lockconfirm' => 'Aye, A raellie want tae lock the database.',
-'unlockconfirm' => 'Aye, A raelly want tae lowse the database.',
+'lockdbtext' => "Lockin the database will suspend the abeelitie o aw uisers tae eedit pages, chynge thair preeferences, eedit thair watchleets, n ither things needin chynges in the database. Please confirm that this is whit ye'r etlin tae dae, n that ye'll lowse the database whan yer maintenance is dun.",
+'unlockdbtext' => 'Lowsin the database will gie back the abeelitie fer aa uisers tae eidit pages, chynge their preeferences, eidit their watchleets, an ither things needin chynges in the database. Please confirm that this is whit ye ettle tae dae.',
+'lockconfirm' => 'Ai, Ah reellie want tae lock the database.',
+'unlockconfirm' => 'Ai, Ah reellie want tae lowse the database.',
+'unlockbtn' => 'Lowse database',
 'locknoconfirm' => 'Ye didna tick the confirmâtion kist.',
 'lockdbsuccesssub' => 'Database lock fine',
 'unlockdbsuccesssub' => 'Database lowsed',
 'lockdbsuccesstext' => 'The database haes been lockit. <br />Mynd an tak the lock aff efter yer maintenance is feinisht.',
 'unlockdbsuccesstext' => 'The database haes bin lowsed.',
+'lockfilenotwritable' => 'The database lock file isna writable.
+Tae lock or lowse the database, this needs tae be writable bi the wab server.',
 'databasenotlocked' => 'The database isna lockit.',
+'lockedbyandtime' => '(bi {{GENDER:$1|$1}} oan $2 at $3)',
 
 # Move page
-'move-page-legend' => 'Flit page',
-'movepagetext' => "Uisin the form ablow will rename ae page, muiving aw o its histerie til the new name.
-The auld title will become ae redirect page til the new title.
-Ye can update redirects that point til the original title autaematicly.
-Gif ye chuis no tae, be sair tae check fer [[Special:DoubleRedirects|double]] or [[Special:BrokenRedirects|broken redirects]].
-Ye'r responsible fer making sair that airtins continue tae pynt til whaur they'r supposed to gae.
-
-Note that the page will <strong>no</strong> be muived gif there is awready ae page at the new title, onless the latter is ae redirect an has nae past edit history.
-This means that ye can rename ae page back til whaur it wis renamed fae gif ye mak ae mistak, an ye canna o'erwrite aen existing page.
-
-<strong>Warning!</strong>
-This can be ae drastic an onexpected chynge fer ae popular page;
-please be sair ye unnerstaun the consequences o this afore proceeding.",
-'movepagetext-noredirectfixer' => "Uising the form ablow will rename ae page, muiving aw o its histerie til the new name.
-The auld title will become ae redirect page til the new title.
-Be sair tae check fer [[Special:DoubleRedirects|double]] or [[Special:BrokenRedirects|broken redirects]].
-Ye'r responsible fer making sair that airtins continue tae pynt whaur thay'r supposed to gae.
-
-Note that the page will <strong>no</strong> be muived gif there's awready ae page at the new title, onless it is tuim an has naw past edit history.
-This means that you can rename a page back to whaur it wis renamed fae gif ye mak ae mistak, an ye canna o'erwrite an existin page.
-
-<strong>Warnin!</strong>
-This can be ae drastic an onexpectit chynge fer ae popular page;
-please be sair ye unnerstaun the consequences of this afore proceedin.",
-'movepagetalktext' => 'The associated talk page will be autaematicly muived alang wi it <strong>onless:</strong>
-*A no-tuim talk page awreadie exists unner the new name, or
+'move-page' => 'Muiv $1',
+'move-page-legend' => 'Muiv page',
+'movepagetext' => "Uisin the form ablo will rename ae page, muivin aw o its histerie til the new name.
+The auld title will become ae reguidal page til the new title.
+Ye can update reguidals that poynt til the oreeginal title autæmateeclie.
+Gif ye chuise na tae, be sair tae check fer [[Special:DoubleRedirects|dooble]] or [[Special:BrokenRedirects|broken reguidals]].
+Ye'r responsible fer makin sair that links continue tae poynt til whaur thay'r supposed to gae.
+
+Mynd that the page will <strong>na</strong> be muived gif thaur is awreadie ae page at the new title, onless the latter is ae reguidal n haes nae past eedit histerie.
+This means that ye can rename ae page back til whaur it wis renamed fae gif ye mak ae mistak, n ye canna owerwrite aen exeestin page.
+
+<strong>Warnishment!</strong>
+This can be ae drasteec n onexpectit chynge fer ae popular page;
+please be sair ye unnerstaunn the consequences o this afore proceedin.",
+'movepagetext-noredirectfixer' => "Uising the form ablo will rename ae page, muivin aw o its histerie til the new name.
+The auld title will become ae reguidal page til the new title.
+Be sair tae check fer [[Special:DoubleRedirects|dooble]] or [[Special:BrokenRedirects|broken reguidals]].
+Ye'r responsible fer makin sair that airtins continue tae poynt whaur thay'r supposed tae gae.
+
+Tak tent that the page will <strong>naw</strong> be muived gif thaur's awreadie ae page at the new title, onless it is tuim n haes naw past eedit histerie.
+This means that ye can rename ae page back til whaur it wis renamed fae gif ye mak ae mistak, n ye canna owerwrite aen existin page.
+
+<strong>Warnishment!</strong>
+This can be ae drastic n onexpectit chynge fer ae popular page;
+please be sair that ye unnerstaun the consequences o this afore preceedin.",
+'movepagetalktext' => 'The associated tauk page will be autaematiclie muived alang wi it <strong>onless:</strong>
+*A no-tuim tauk page awreadie exeests unner the new name, or
 *Ye oncheck the kist ablo.
 
-In thae cases, ye will hae tae muiv or merge the page manually gif ye sae desire.',
-'movearticle' => 'Flit page:',
-'moveuserpage-warning' => "<strong>Warning:</strong> Ye'r aboot tae muiv ae uiser page. Please note that yinly the page will be muivd and the uiser will <em>no</em> be renamed.",
-'movenologintext' => 'Ye maun be a registert uiser an [[Special:UserLogin|loggit in]] tae flit a page.',
-'newtitle' => 'Tae new teitle',
-'movepagebtn' => 'Flit page',
+In thae cases, ye will hae tae muiv or merge the page manuallie gif ye sae desire.',
+'movearticle' => 'Muiv page:',
+'moveuserpage-warning' => "<strong>Warnishment:</strong> Ye'r aboot tae muiv ae uiser page. Please tak tent that yinlie the page will be muivd n the uiser will <em>naw</em> be renamed.",
+'movenologintext' => 'Ye maun be a registert uiser n [[Special:UserLogin|loggit in]] tae muiv ae page.',
+'movenotallowed' => 'Ye dinna hae permeession tae muiv pages.',
+'movenotallowedfile' => 'Ye dinna hae permeession tae muiv files.',
+'cant-move-user-page' => 'Ye dinna hae permeession tae muiv uiser pages (aside fae subpages).',
+'cant-move-to-user-page' => 'Ye dinna hae permeession tae muiv ae page til ae uiser page (except til ae uiser subpage).',
+'newtitle' => 'Til new teitle',
+'move-watch' => 'Watch soorce page n tairget page',
+'movepagebtn' => 'Muiv page',
 'pagemovedsub' => 'Flittin succeedit',
 'movepage-moved' => '<strong>"$1" has been muived til "$2"</strong>',
+'movepage-moved-redirect' => 'Ae reguidal haes been cræftit.',
+'movepage-moved-noredirect' => 'The cræftin o ae reguidal haes been suppressed.',
 'articleexists' => "A page o that name aareadies exists, or the name ye'v waled isna guid. Please wale anither name.",
-'movetalk' => 'Muiv associated talk page',
-'movelogpage' => 'Flit log',
+'cantmove-titleprotected' => 'Ye canna muiv ae page til this location cause the new title haes been protected fae cræftin',
+'movetalk' => 'Muiv associated tauk page',
+'move-subpages' => 'Muiv subpages (up til $1)',
+'move-talk-subpages' => 'Muiv subpages o tauk page (up til $1)',
+'movepage-page-exists' => 'The page $1 awreadie exeests n canna be autæmateeclie owerwritten.',
+'movepage-page-moved' => 'The page $1 haes been muived til $2.',
+'movepage-page-unmoved' => 'The page $1 coudna be muived til $2.',
+'movepage-max-pages' => 'The mmucklest o $1 {{PLURAL:$1|page|pages}} haes been muived n naw mair will be muived autæmateeclie.',
+'movelogpage' => 'Muiv log',
 'movelogpagetext' => "A leet o pages that's flitted is ablo.",
+'movesubpagetext' => 'This page haes $1 {{PLURAL:$1|subpage|subpages}} shawn ablo.',
+'movenosubpage' => 'This page haes naw subpages.',
 'movereason' => 'Raeson:',
 'revertmove' => 'revert',
-'delete_and_move' => 'Delete an muiv',
+'delete_and_move' => 'Delyte n muiv',
 'delete_and_move_text' => '==Delytion caad fer==
 
 The destination airticle "[[:$1]]" aareadies exists. Div ye want tae delyte it fer tae mak wey fer the muiv?',
 'delete_and_move_confirm' => 'Ai, delyte the page',
-'delete_and_move_reason' => 'Deletit fer tae mak way fer muiv fae "[[$1]]"',
-'selfmove' => 'Ootgaun an incomin teitles is the same; canna flit a page ower itsel.',
-'protectedpagemovewarning' => '<strong>Warning:</strong> This page has been protected sae that yinly uisers wi administrater preevileges can muiv it.
-The hainmaist log entry is provided ablow fer reference:',
-'semiprotectedpagemovewarning' => '<strong>Note:</strong> This page has been protected sae that yinly registered uisers can muiv it.
-The hainmaist log entry is provided ablow fer reference:',
+'delete_and_move_reason' => 'Delytit fer tae mak wa fer muiv fae "[[$1]]"',
+'selfmove' => 'Ootgaun n incomin teitles ar the same; canna muiv ae page ower itsel.',
+'immobile-source-namespace' => 'Canna muiv pages in namespace "$1"',
+'immobile-target-namespace' => 'Canna muiv pages intil namespace "$1"',
+'immobile-target-namespace-iw' => 'Interwiki link isna ae valeed tairget fer page muiv.',
+'immobile-source-page' => 'This page is na muivable.',
+'immobile-target-page' => 'Canna muiv til that desteenation title.',
+'bad-target-model' => 'The desired desteenation uises ae differant content model. Canna convert fae $1 til $2.',
+'imagenocrossnamespace' => 'Canna muiv file til non-file namespace',
+'nonfile-cannot-move-to-file' => 'Canna muiv non-file til file namespace',
+'imagetypemismatch' => 'The new file extension disna match its type',
+'imageinvalidfilename' => 'The tairget filename is onvalit',
+'fix-double-redirects' => 'Update onie reguidals that poynt til the oreeginal title',
+'move-leave-redirect' => 'Lea ae reguidal ahint',
+'protectedpagemovewarning' => '<strong>Warnishment:</strong> This page haes been protected sae that yinlie uisers wi admeenistrater preevleges can muiv it.
+The latest log entrie is gien ablo fer referance:',
+'semiprotectedpagemovewarning' => '<strong>Mynd:</strong> This page haes been protected sae that yinlie registered uisers can muiv it.
+The hainmaist log entrie is gien ablo fer referance:',
+'move-over-sharedrepo' => '== File exeests ==
+[[:$1]] exeests oan ae shaired reposeeterie. Muiving ae file til this title will owerride the shaired file.',
+'file-exists-sharedrepo' => 'The filename chosen is awreadie in uise oan ae shaired reposeeterie.
+Please chuise anither name.',
 
 # Export
 'export' => 'Export pages',
-'exporttext' => 'Ye can export the tex an eiditin histerie o ae parteecular page or set o pages wrapped in some XML.
+'exporttext' => 'Ye can export the tex n eeditin histerie o ae parteecular page or set o pages wrapped in some XML.
 This can be imported intil anither wiki uisin MediaWiki bi waa o the [[Special:Import|import page]].
 
-Tae export pages, enter the titles in the tex kist ablo, yin title per line, an select whether ye want the current reveesion aes weel aes aw auld reveesions, wi the page histerie lines, or the current reveesion wi the info aneat the laist eidit.
+Tae export pages, enter the titles in the tex kist ablo, yin title per line, n select whether ye want the Nou reveesion  aw auld reveesions ava, wi the page histerie lines, or the Nou reveesion wi the info aneat the laist eedit.
 
-In the latter case ye can ava uise ae link, fer example [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] fer the page "[[{{MediaWiki:Mainpage}}]]".',
-'exportcuronly' => 'Include juist the current revision, no the fou history',
+In the latter case ye can uise ae link ava, fer example [[{{#Special:Export}}/{{MediaWiki:Mainpage}}]] fer the page "[[{{MediaWiki:Mainpage}}]]".',
+'exportall' => 'Export aw pages',
+'exportcuronly' => 'Inclæde juist the nou reveesion, naw the ful histerie',
 'exportnohistory' => '----
-<strong>Note:</strong> Exporting the ful histerie o pages through this form has been disabled caus o performance raisons.',
+<strong>Mynd:</strong> Exportin the ful histerie o pages throogh this form haes been disabled cause o performance raisons.',
+'exportlistauthors' => 'Incluid ae ful leet o contreebuters fer ilka page',
+'export-addcattext' => 'Add pages fae categerie:',
+'export-addnstext' => 'Add pages fae namespace:',
+'export-download' => 'Hain aes file',
+'export-templates' => 'Incluid templates',
+'export-pagelinks' => 'Incluid linkt pages til ae depth o:',
 
 # Namespace 8 related
 'allmessages' => 'Aa seestem messages',
 'allmessagesname' => 'Name',
-'allmessagesdefault' => 'Defaut text',
-'allmessagescurrent' => 'Text the nou',
+'allmessagesdefault' => 'Defaut message tex',
+'allmessagescurrent' => 'Message tex the nou',
 'allmessagestext' => 'This is ae leet o system messages available in the MediaWiki namespace.
-Please visit [https://www.mediawiki.org/wiki/Localisation MediaWiki Localisation] an [//translatewiki.net translatewiki.net] gif ye wish tae contreebute til the generic MediaWiki localisation.',
+Please veesit [https://www.mediawiki.org/wiki/Localisation MediaWiki Localisation] n [//translatewiki.net translatewiki.net] gif ye wish tae contreebute til the generic MediaWiki localisation.',
 'allmessagesnotsupportedDB' => "'''{{ns:special}}:AllMessages''' nae supportit acause '''\$wgUseDatabaseMessages''' is aff.",
+'allmessages-filter' => 'Filter b custymization state:',
+'allmessages-filter-unmodified' => 'Onmodified',
+'allmessages-filter-all' => 'Aw',
+'allmessages-filter-modified' => 'Modeefied',
+'allmessages-prefix' => 'Filter bi prefix:',
+'allmessages-language' => 'Leid:',
+'allmessages-filter-submit' => 'Gang',
 'allmessages-filter-translate' => 'Owerset',
 
 # Thumbnails
 'thumbnail-more' => 'Eik',
 'filemissing' => 'File missin',
 'thumbnail_error' => 'Mistak makin thummnail: $1',
+'thumbnail_error_remote' => 'Mistak message fae $1:
+$2',
+'djvu_page_error' => 'DjVu page oot o range',
+'djvu_no_xml' => 'Onable tae fetch XML fer DjVu file',
+'thumbnail-temp-create' => 'Onable tae cræft temprie thummnail file',
+'thumbnail-dest-create' => 'Onable tae hain thummnail til desteenation',
+'thumbnail_invalid_params' => 'Onvalit thummnail parameters',
+'thumbnail_dest_directory' => 'Onable tae cræft desteenation directerie',
+'thumbnail_image-type' => 'Eemage type na supported',
+'thumbnail_gd-library' => 'Oncompleate GD librie confeeguration: Missin function $1',
+'thumbnail_image-missing' => 'File seems tae be missin: $1',
 'thumbnail_image-failure-limit' => 'There hae been ower moni recent failed attempts ($1 or mair) tae render this thumbnail. Please try again later.',
 
 # Special:Import
-'importtext' => 'Please export the file fae the soorce wiki uising the [[Special:Export|export utility]].
-Hain it til yer computer an uplaid it here.',
-'importnotext' => 'Tuim or nae text',
+'import-interwiki-text' => "Select ae wiki n page title tae import.
+Reveesion dates n eediters' names will be preserved.
+Aw transwiki import actions ar loggit at the [[Special:Log/import|import log]].",
+'import-interwiki-source' => 'Soorce wiki/page:',
+'import-interwiki-history' => 'Copie aw histerie reveesions fer this page',
+'import-interwiki-templates' => 'Incluid aw templates',
+'import-interwiki-namespace' => 'Desteenation namespace:',
+'import-interwiki-rootpage' => 'Desteenation ruit page (aen optie):',
+'importtext' => 'Please export the file fae the soorce wiki uising the [[Special:Export|export utilitie]].
+Hain it til yer computer n uplaid it here.',
+'importstart' => 'Importin pages...',
+'import-revision-count' => '$1 {{PLURAL:$1|reveesion|reveesions}}',
+'importnopages' => 'Naw pages tae import.',
+'imported-log-entries' => 'Imported $1 {{PLURAL:$1|log entrie|log entries}}.',
+'importunknownsource' => 'Onkent import soorce type',
+'importcantopen' => 'Coudna apen import file',
+'importnotext' => 'Tuim or nae tex',
 'importsuccess' => 'Importit fine!',
-'importhistoryconflict' => 'Conflictin history revision exists (micht hae importit this page afore)',
-'importnosources' => 'Nae transwiki import soorces haes been defined an direct history uplaids is disabled.',
-'import-nonewrevisions' => 'Nae revisions imported (aw were either awready present, or skipped cause o errors).',
-'import-error-bad-location' => 'Revision $2 uising content model $3 canna be stored on "$1" on this wiki, syn that model isna supported on that page.',
+'importhistoryconflict' => 'Conflictin histerie reveesion exeests (micht hae importit this page afore)',
+'importnosources' => 'Nae transwiki import soorces haes been defined n direct histerie uplaids is disabled.',
+'importnofile' => 'Naw import file wis uplaided.',
+'importuploaderrorsize' => 'Uplaid o import file failed.
+The file is muckler than the permitit uplaid size.',
+'importuploaderrorpartial' => 'Uplaid o import file failed.
+The file wis yinlie pairtlie uplaided.',
+'importuploaderrortemp' => 'Uplaid o import file failed.
+Ae temparie fauder is missin.',
+'import-noarticle' => 'Naw page tae import!',
+'import-nonewrevisions' => 'Nae reveesions imported (aw were either awreadie present, or skipt cause o mistaks).',
+'import-upload' => 'Uplaid XML data',
+'import-token-mismatch' => 'Loss o session data.
+Please gie it anither gae.',
+'import-invalid-interwiki' => 'Canna import fae the speceefied wiki.',
+'import-error-edit' => 'Page "$1" isna importit cause ye\'r na permitit tae eedit it.',
+'import-error-create' => 'Page "$1" is na importit cause ye\'r na permitit tae cræft it.',
+'import-error-interwiki' => 'Page "$1" is na importit cause its name is reserved fer external linkin (interwiki).',
+'import-error-special' => 'Page "$1" is na importit cause it belangs til ae speecial namespace that disna permit pages.',
+'import-error-invalid' => 'Page "$1" is na importit cause its name is onvalit.',
+'import-error-unserialize' => 'Reveesion $2 o page "$1" coudna be onsereealized. The reveesion wis reported til uiss content model $3 sereealized aes $4.',
+'import-error-bad-location' => 'Reveesion $2 uisin content model $3 canna be stored oan "$1" oan this wiki, syn that model isna supported oan that page.',
+'import-options-wrong' => 'Wrang {{PLURAL:$2|optie|opties}}: <nowiki>$1</nowiki>',
+'import-rootpage-invalid' => 'Gien ruit page is aen onvalit title.',
+'import-rootpage-nosubpage' => 'Namespace "$1" o the ruit page disna permit subpages.',
+
+# Import log
+'importlogpagetext' => 'Admeenistrateeve imports o pages wi eedit histerie fae ither wikis.',
+'import-logentry-upload' => 'imported [[$1]] bi file uplaid',
+'import-logentry-upload-detail' => '$1 {{PLURAL:$1|reveesion|reveesions}}',
+'import-logentry-interwiki-detail' => '$1 {{PLURAL:$1|reveesion|reveesions}} fae $2',
+
+# JavaScriptTest
+'javascripttest' => 'JavaScript testin',
+'javascripttest-title' => 'Rinnin $1 tests',
+'javascripttest-pagetext-noframework' => 'This page is reserved fer rinnin JavaScript tests.',
+'javascripttest-pagetext-unknownframework' => 'Onkent testin framewairk "$1".',
+'javascripttest-pagetext-frameworks' => 'Please chuise yin o the follaein testin framewairks: $1',
+'javascripttest-pagetext-skins' => 'Chuise ae skin tae rin the tests wi:',
+'javascripttest-qunit-intro' => 'See [$1 testin documentation] oan mediawiki.org.',
 
 # Tooltip help for the actions
 'tooltip-pt-userpage' => 'Yer uiser page',
-'tooltip-pt-mytalk' => 'Yer talk page',
+'tooltip-pt-anonuserpage' => "The uiser page fer the IP address that ye'r eeditin aes",
+'tooltip-pt-mytalk' => 'Yer tauk page',
+'tooltip-pt-anontalk' => 'Discussion aneat eedits fae this IP address',
 'tooltip-pt-preferences' => 'Ma preferences',
 'tooltip-pt-watchlist' => "Ae leet o pages ye'r moniterin fer chynges",
-'tooltip-pt-mycontris' => 'Leet o yer contreibutions',
+'tooltip-pt-mycontris' => 'Leet o yer contreebutions',
 'tooltip-pt-login' => "It's a guid idea tae log i, but ye dinna hae tae.",
 'tooltip-pt-logout' => 'Log oot',
-'tooltip-ca-talk' => "Discussion aboot th' content page",
-'tooltip-ca-edit' => "Ye kin edit this page. Please uise th' preview button afore saving",
-'tooltip-ca-addsection' => 'Start a new section',
+'tooltip-ca-talk' => 'Discussion aneat the content page',
+'tooltip-ca-edit' => 'Ye can eedit this page. Please uise the luikower button afore hainin',
+'tooltip-ca-addsection' => 'Stairt ae new section',
 'tooltip-ca-viewsource' => 'This page is protectit.
-You ken view its source',
-'tooltip-ca-history' => "Bygane revisions o' this page",
+Ye can view its soorce',
+'tooltip-ca-history' => 'Bygane reveesions o this page',
 'tooltip-ca-protect' => 'Fend this page',
+'tooltip-ca-unprotect' => 'Chynge protection o this page',
 'tooltip-ca-delete' => 'Delyte this page',
-'tooltip-ca-move' => 'Flit this page',
-'tooltip-ca-watch' => 'Add this page tae yer watchleet',
+'tooltip-ca-undelete' => 'Restore the eedits dun oan this page afore it wis delytit',
+'tooltip-ca-move' => 'Muiv this page',
+'tooltip-ca-watch' => 'Add this page til yer watchleet',
 'tooltip-ca-unwatch' => 'Remove this page frum yer watchleet',
 'tooltip-search' => 'Rake {{SITENAME}}',
-'tooltip-search-go' => "Gang tae a page wi' this exact name if exists",
-'tooltip-search-fulltext' => "Rake th' pages fer this tex",
-'tooltip-p-logo' => 'Gang tae the Main Page',
-'tooltip-n-mainpage' => 'Gang tae the Main Page',
-'tooltip-n-mainpage-description' => 'Gang tae the Main Page',
-'tooltip-n-portal' => "Aboot th' project, whit ye kin dae, whaur tae fin' things",
+'tooltip-search-go' => 'Gang til ae page wi this exact name gif exeests',
+'tooltip-search-fulltext' => 'Rake the pages fer this tex',
+'tooltip-p-logo' => 'Gang til the Main Page',
+'tooltip-n-mainpage' => 'Gang til the Main Page',
+'tooltip-n-mainpage-description' => 'Gang til the Main Page',
+'tooltip-n-portal' => 'Aneat the project, whit ye can dae, whaur tae fynd things',
 'tooltip-n-currentevents' => "Fin' background speirins oan current events",
 'tooltip-n-recentchanges' => 'The leet o recent chynges in the wiki',
-'tooltip-n-randompage' => 'Load a random page',
-'tooltip-n-help' => "Th' steid tae fin' oot",
+'tooltip-n-randompage' => 'Laid ae random page',
+'tooltip-n-help' => 'The steid tae fynd oot',
 'tooltip-t-whatlinkshere' => "List o' a' wiki pages that link 'ere",
-'tooltip-t-recentchangeslinked' => 'Recent changes in pages linked frae this page',
+'tooltip-t-recentchangeslinked' => 'Recynt chynges in pages linkt fae this page',
+'tooltip-feed-rss' => 'RSS feed fer this page',
 'tooltip-feed-atom' => 'Atom feed fer this page',
-'tooltip-t-contributions' => "View this uiser's contreibutions",
+'tooltip-t-contributions' => "View this uiser's contreebutions",
 'tooltip-t-emailuser' => 'Send ae wab-mail til this uiser',
 'tooltip-t-upload' => 'Uplaid files',
 'tooltip-t-specialpages' => 'Leet o byordinar pages',
 'tooltip-t-print' => "Printable version o' this page",
-'tooltip-t-permalink' => "Permanent link tae this revision o' th' page",
+'tooltip-t-permalink' => 'Permanent link til this reveesion o the page',
 'tooltip-ca-nstab-main' => 'Leuk at content page',
 'tooltip-ca-nstab-user' => 'View the uiser page',
-'tooltip-ca-nstab-special' => "This is a byordinar page, ye cannae edit th' page itself",
-'tooltip-ca-nstab-project' => 'View the project page',
+'tooltip-ca-nstab-media' => 'See the media page',
+'tooltip-ca-nstab-special' => 'This is ae byordinair page, ye canna eedit the page itsel',
+'tooltip-ca-nstab-project' => 'See the waurk page',
 'tooltip-ca-nstab-image' => 'View the file page',
+'tooltip-ca-nstab-mediawiki' => 'See the system message',
 'tooltip-ca-nstab-template' => 'View the template',
-'tooltip-ca-nstab-category' => "View th' category page",
+'tooltip-ca-nstab-help' => 'See the heelp page',
+'tooltip-ca-nstab-category' => 'View the categerie page',
 'tooltip-minoredit' => 'Mairk this as a smaa edit',
 'tooltip-save' => 'Hain yer chynges',
-'tooltip-preview' => 'Scance ower yer chynges, please uise this afore hainin!',
-'tooltip-diff' => 'Shaw the chynges that you made tae the text.',
+'tooltip-preview' => 'Luikower yer chynges, please uise this afore hainin!',
+'tooltip-diff' => 'Shaw the chynges that ye makit til the tex.',
 'tooltip-compareselectedversions' => 'See the differs atween the twa selectit versions o this page.',
 'tooltip-watch' => 'Add this page tae yer watchleet',
-'tooltip-rollback' => '"Rowback" reverts edit(s) tae this page o\' th\' lest contributor in yin click',
-'tooltip-undo' => "\"Undo\" reverts this edit 'n' opens th' edit form in preview mode. It allows adding a reason in th' summary.",
-'tooltip-summary' => 'Enter a short summary',
+'tooltip-watchlistedit-normal-submit' => 'Remuiv titles',
+'tooltip-watchlistedit-raw-submit' => 'Update watchleet',
+'tooltip-recreate' => "Recræft the page even thoogh it's been delytit",
+'tooltip-upload' => 'Stairt uplaid',
+'tooltip-rollback' => '"Rowback" reverts eedit(s) til this page o the laist contreebuter in yin clap',
+'tooltip-undo' => '"Ondae" reverts this eedit n apens the eedit form in luikower mode. It permits addin ae raison in the owerview.',
+'tooltip-preferences-save' => 'Hain preeferances',
+'tooltip-summary' => 'Enter ae short owerview',
 
 # Metadata
 'notacceptable' => 'The wiki server canna provide data in a format yer client can read.',
@@ -1842,86 +2820,464 @@ You ken view its source',
 # Attribution
 'anonymous' => 'Nameless {{PLURAL:$1|uiser|uisers}} o {{SITENAME}}',
 'siteuser' => '{{SITENAME}} uiser $1',
-'othercontribs' => 'Based on wark bi $1.',
+'anonuser' => '{{SITENAME}} anonymoos uiser $1',
+'lastmodifiedatby' => 'This page wis laist modified $2, $1 bi $3.',
+'othercontribs' => 'Based oan wark bi $1.',
 'others' => 'ithers',
 'siteusers' => '{{SITENAME}} {{PLURAL:$2|uiser|uisers}} $1',
+'anonusers' => '{{SITENAME}} anonymoos {{PLURAL:$2|uiser|uisers}} $1',
+'creditspage' => 'Page creeedits',
 'nocredits' => "Thaur's nae creedit info available fer this page.",
 
 # Spam protection
 'spamprotectiontext' => 'The tex ye wished tae save wis blockit bi the spam filter.
 This is maistlikly caused bi aen airtin til ae blaickleeted external site.',
-'spamprotectionmatch' => 'The follaein text is whit triggered wir spam filter: $1',
+'spamprotectionmatch' => 'The follaein tex is whit triggered wir spam filter: $1',
+'spam_reverting' => 'Revertin til the laist reveesion na containin links til $1',
+'spam_blanking' => 'Aw reveesions contained links til $1, blankin',
+'spam_deleting' => 'Aw reveesions contained links til $1, delytin',
 'simpleantispam-label' => 'Anti-spam check.
-Dae <strong>NO</strong> ful this in!',
+Div <strong>NAW</strong> ful this in!',
+
+# Info page
+'pageinfo-title' => 'Information fer "$1"',
+'pageinfo-not-current' => "Sairrie, it's na possible tae provide this information fer auld reveesions.",
+'pageinfo-header-edits' => 'Eedit histerie',
+'pageinfo-display-title' => 'Displey title',
+'pageinfo-default-sort' => 'Defaut sort key',
+'pageinfo-language' => 'Page content leid',
+'pageinfo-robot-policy' => 'Indexin bi robots',
+'pageinfo-robot-index' => 'Permitit',
+'pageinfo-robot-noindex' => 'Na permitit',
+'pageinfo-views' => 'Nummer o luiks',
+'pageinfo-watchers' => 'Nummer o page watchers',
+'pageinfo-few-watchers' => 'Less than $1 {{PLURAL:$1|watcher|watchers}}',
+'pageinfo-redirects-name' => 'Nummer o reguidals til this page',
+'pageinfo-subpages-name' => 'Nummer o subpages o this page',
+'pageinfo-subpages-value' => '$1 ($2 {{PLURAL:$2|reguidal|reguidals}}; $3 {{PLURAL:$3|non-reguidal|non-reguidals}})',
+'pageinfo-firstuser' => 'Page cræfter',
+'pageinfo-firsttime' => 'Date o page cræftin',
+'pageinfo-lastuser' => 'Latest eediter',
+'pageinfo-lasttime' => 'Date o latest eedit',
+'pageinfo-edits' => 'Total nummer o eedits',
+'pageinfo-authors' => 'Total nummer o disteenct writers',
+'pageinfo-recent-edits' => 'Recent nummer o eedits (wiin past $1)',
+'pageinfo-recent-authors' => 'Recynt nummer o disteenct writers',
+'pageinfo-magic-words' => 'Magic {{PLURAL:$1|waird|wairds}} ($1)',
+'pageinfo-hidden-categories' => 'Skaukt {{PLURAL:$1|categerie|categeries}} ($1)',
+'pageinfo-templates' => 'Transcluided {{PLURAL:$1|template|templates}} ($1)',
+'pageinfo-transclusions' => '{{PLURAL:$1|Page|Pages}} transcluided oan ($1)',
+'pageinfo-redirectsto' => 'Reguidals til',
+'pageinfo-contentpage' => 'Coonted aes ae content page',
+'pageinfo-contentpage-yes' => 'Ay',
+'pageinfo-protect-cascading' => 'Protections ar cascadin fae here',
+'pageinfo-protect-cascading-yes' => 'Ay',
+'pageinfo-protect-cascading-from' => 'Protections ar cascadin fae here',
+'pageinfo-category-info' => 'Categerie information',
+'pageinfo-category-pages' => 'Nummer o pages',
+'pageinfo-category-subcats' => 'Nummer o subcategeries',
+'pageinfo-category-files' => 'Nummer o files',
 
 # Patrolling
 'markaspatrolleddiff' => 'Merk as patrolled',
 'markaspatrolledtext' => 'Merk this airticle as patrolled',
 'markedaspatrolled' => 'Merkit as patrolled',
-'markedaspatrolledtext' => 'The selected revision o [[:$1]] haes been maurked aes patrolled.',
-'rcpatroldisabledtext' => 'The Recent Changes Patrol feature is disabled the nou.',
+'markedaspatrolledtext' => 'The selected reveesion o [[:$1]] haes been maurked aes patrolled.',
+'rcpatroldisabled' => 'Recynt chynges patrol disabled',
+'rcpatroldisabledtext' => 'The Recynt Chynges Patrol featur is disabled the nou.',
+'markedaspatrollederror' => 'Canna maurk aes patrowed',
+'markedaspatrollederrortext' => 'Ye need tae speceefie ae reveesion tae maurk aes patrowed.',
+'markedaspatrollederror-noautopatrol' => "Ye'r na permitit tae maurk yer ain chynges aes patrowed.",
+'markedaspatrollednotify' => 'This chynge til $1 haes been maurked aes patrowed.',
+'markedaspatrollederrornotify' => 'Maurking aes patrowed failed.',
+
+# Patrol log
+'patrol-log-page' => 'Patrow log',
+'patrol-log-header' => 'This is ae log o patrowed reveesions.',
+'log-show-hide-patrol' => '$1 patrow log',
 
 # Image deletion
-'deletedrevision' => 'Deletit auld revision $1.',
+'deletedrevision' => 'Delytit auld reveesion $1.',
+'filedeleteerror-short' => 'Mistak delytin file: $1',
+'filedeleteerror-long' => 'mistaks were encoontered while delytin the file:
+
+$1',
+'filedelete-missing' => 'The file "$1" canna be delytit cause it disna exeest.',
+'filedelete-old-unregistered' => 'The speceefied file reveesion "$1" isna in the database.',
+'filedelete-current-unregistered' => 'The speceefied file "$1" isna in the database.',
+'filedelete-archive-read-only' => 'The archyve directerie "$1" isna writable bi the wabserver.',
 
 # Browsing diffs
-'previousdiff' => '← Aulder edit',
-'nextdiff' => 'Newer edit →',
+'previousdiff' => '← Aulder eedit',
+'nextdiff' => 'Newer eedit →',
 
 # Media information
-'mediawarning' => '<strong>Warning:</strong> This file type micht contain maleecious code.
-Bi executing it, yer system micht be compromised.',
+'mediawarning' => '<strong>Warnishment:</strong> This file type micht contain maleecious code.
+Bi executin it, yer system micht be compromised.',
 'imagemaxsize' => 'Eimage size limit:<br /><em>(fer file description pages)</em>',
+'thumbsize' => 'Thummnail size:',
 'file-info-size' => '$1 × $2 pixels, file size: $3, MIME type: $4',
 'file-nohires' => 'Na higher resolution available.',
 'svg-long-desc' => 'SVG file, nominally $1 × $2 pixels, file size: $3',
+'svg-long-desc-animated' => 'Animated SVG file, nominallie $1 × $2 pixels, file size: $3',
+'svg-long-error' => 'Onvalit SVG file: $1',
 'show-big-image' => 'Oreeginal file',
-'file-no-thumb-animation' => '<strong>Note: Due til technical limitations, thumbnails o this file will no be animated.</strong>',
-'file-no-thumb-animation-gif' => '<strong>Note: Due til technical limitations, thumbnails o hich resolution GIF eimages sic as this will no be animated.</strong>',
+'show-big-image-preview' => 'Size o this luikower: $1.',
+'show-big-image-other' => 'Ither {{PLURAL:$2|resolution|resolutions}}: $1.',
+'file-info-gif-looped' => "luip't",
+'file-info-png-looped' => "luip't",
+'file-info-png-repeat' => 'pleyed $1 {{PLURAL:$1|time|times}}',
+'file-no-thumb-animation' => '<strong>Mynd: Due til techneecal limitations, thummnails o this file will na be animated.</strong>',
+'file-no-thumb-animation-gif' => '<strong>Mynd: Due til techneecal limitations, thummnails o hei resolution GIF eemages sic aes this will na be animated.</strong>',
 
 # Special:NewFiles
 'newimages' => 'Gallery o new files',
 'imagelisttext' => 'Ablo is a leet o $1 {{PLURAL:$1|eimage|eimages}} sortit $2.',
-'noimages' => 'Naething tae see.',
+'newimages-summary' => 'This byordinair page shaws the last uplaidit files.',
+'newimages-label' => 'Filename (or ae pairt o it):',
+'noimages' => 'Nawthing tae see.',
 'ilsubmit' => 'Rake',
 'bydate' => 'bi date',
+'sp-newimages-showfrom' => 'Shaw new files stairtin fae $2, $1',
+
+# Video information, used by Language::formatTimePeriod() to format lengths in the above messages
+'seconds' => '{{PLURAL:$1|$1 seicont|$1 seiconts}}',
+'hours' => '{{PLURAL:$1|$1 hoor|$1 hoors}}',
+'ago' => '$1 sin',
+'just-now' => 'richt nou',
+
+# Human-readable timestamps
+'hours-ago' => '$1 {{PLURAL:$1|hoor|hoors}} sin',
+'minutes-ago' => '$1 {{PLURAL:$1|minute|minutes}} sin',
+'seconds-ago' => '$1 {{PLURAL:$1|seicont|seiconts}} sin',
+'monday-at' => 'Monenday at $1',
+'wednesday-at' => 'Wedensday at $1',
+'friday-at' => 'Frisday at $1',
 
 # Bad image list
-'bad_image_list' => "Th' format is as follows:
+'bad_image_list' => 'The format is aes follaes:
 
-Ainlie list items (lines starting wi' *) are considered. Th' foremaist link oan a line mist be a link tae a ill image. Ony subsequent links oan th' same line are considered tae be exceptions, i,e., pages whaur th' image kin occur inline.",
+Ainlie leet items (lines stairtin wi *) ar considered. The foremaist link oan ae line maun be ae link til aen ill file. Oni subsequent links oan the same line ar considered tae be exceptions, i,e., pages whaur the eimage can occur inline.',
 
 # Metadata
 'metadata' => 'Metadata',
-'metadata-help' => 'This file contains addeetional speirins, likelie added frae the deegital camera or scanner uised tae mak or deegitize it. 
-Gif the file haes bin modified frae its oreeginal state, some details micht no fullie reflect the modified file.',
-'metadata-fields' => "Image metadata fields listed in this message wull be included oan image page display whin th' metadata buird is collapsed. Others wull be hidden by default. 
-*mak
+'metadata-help' => 'This file contains addeetional speirins, likelie added fae the deegital camera or scanner uised tae cræft or deegitize it. 
+Gif the file haes bin modified fae its oreeginal state, some details micht naw fullie reflect the modified file.',
+'metadata-expand' => 'Shaw extendit details',
+'metadata-collapse' => 'Skauk extendit details',
+'metadata-fields' => "Eemage metadata fields leetit in this message will be incluidit oan eemage page displey whan the metadata buird is collaps't. Ithers will be skaukt bi defaut. 
+* mak
 * model
-* datetimeoriginal
+* datetimeoreeginal
 * exposuretime
-* fnumber
-* isospeedratings
+* fnummer
+* isospeedratins
 * focallength
-* artist
-* copyricht
-* imagedescription
-* gpslatitude
-* gpslongitude
-* gpsaltitude",
+* airtist
+* copiericht
+* eemagedescreeption
+* gpslateetuid
+* gpslangeetuid
+* gpsalteetuid",
 
 # Exif tags
+'exif-imagelength' => 'Heicht',
+'exif-photometricinterpretation' => 'Pixel composeetion',
+'exif-samplesperpixel' => 'Nummer o components',
+'exif-ycbcrsubsampling' => 'Subsamplin ratio o Y til C',
+'exif-ycbcrpositioning' => 'Y n C poseetionin',
+'exif-yresolution' => 'Verteecal resolution',
+'exif-stripoffsets' => 'Eemage data location',
+'exif-rowsperstrip' => 'Nummer o raws per streep',
+'exif-stripbytecounts' => 'Bytes per compressed streep',
+'exif-jpeginterchangeformat' => 'Affset til JPEG SOI',
+'exif-jpeginterchangeformatlength' => 'Bytes o JPEG data',
+'exif-whitepoint' => 'White poynt chromateeceetie',
+'exif-primarychromaticities' => 'Chromateeceeties o primarities',
+'exif-ycbcrcoefficients' => 'Colour space transformation matrix coeffeecients',
+'exif-referenceblackwhite' => 'Pair o blaick n white referance values',
+'exif-datetime' => 'File chynge date n time',
+'exif-imagedescription' => 'Eemage title',
+'exif-software' => 'Saffware uised',
+'exif-artist' => 'Writer',
 'exif-copyright' => 'Copyricht hauder',
+'exif-flashpixversion' => 'Supportit Flashpix version',
 'exif-colorspace' => 'Colour space',
 'exif-componentsconfiguration' => 'Meanin o ilka component',
 'exif-compressedbitsperpixel' => 'Eimage compression mode',
+'exif-pixelydimension' => 'Eemage width',
+'exif-pixelxdimension' => 'Eemage heicht',
+'exif-usercomment' => 'Uiser comments',
+'exif-relatedsoundfile' => 'Relatit audío file',
+'exif-datetimeoriginal' => 'Date n time o data generation',
+'exif-datetimedigitized' => 'Date n time o deegeetizin',
+'exif-subsectime' => 'DateTime subseiconts',
+'exif-subsectimeoriginal' => 'DateTimeOreeginal subseiconts',
+'exif-subsectimedigitized' => 'DateTimeDeegeetized subseiconts',
+'exif-fnumber' => 'F Nummer',
+'exif-spectralsensitivity' => 'Spectral sensiteevitie',
+'exif-isospeedratings' => 'ISO speed ratin',
 'exif-brightnessvalue' => 'APEX brichtness',
-
-'exif-componentsconfiguration-0' => 'disna exist',
+'exif-maxaperturevalue' => 'Mucklest launn aperture',
+'exif-meteringmode' => 'Meterin mode',
+'exif-lightsource' => 'Licht soorce',
+'exif-subjectarea' => 'Subject airt',
+'exif-flashenergy' => 'Flash energie',
+'exif-sensingmethod' => 'Sensin methyd',
+'exif-filesource' => 'File soorce',
+'exif-customrendered' => 'Custym eemage processin',
+'exif-digitalzoomratio' => 'Deegeetal zuim ratio',
+'exif-sharpness' => 'Shairpness',
+'exif-devicesettingdescription' => 'Device settins descreeption',
+'exif-subjectdistancerange' => 'Subject deestance range',
+'exif-imageuniqueid' => 'Uníque eemage ID',
+'exif-gpslatituderef' => 'Nort or sooth lateetude',
+'exif-gpslatitude' => 'Lateetude',
+'exif-gpslongituderef' => 'Aest or west langeetude',
+'exif-gpslongitude' => 'Langeetude',
+'exif-gpsaltituderef' => 'Altítude reference',
+'exif-gpsaltitude' => 'Altítude',
+'exif-gpstimestamp' => 'GPS time (atomeec clock)',
+'exif-gpssatellites' => 'Satellites uised fer measurement',
+'exif-gpsstatus' => 'Receever status',
+'exif-gpsdop' => 'Measurement preeceesion',
+'exif-gpsspeed' => 'Speed o GPS receever',
+'exif-gpstrackref' => 'Referance fer direction o muivement',
+'exif-gpstrack' => 'Direction o muivement',
+'exif-gpsimgdirectionref' => 'Referance fer direction o eemage',
+'exif-gpsimgdirection' => 'Direction o eemage',
+'exif-gpsmapdatum' => 'Geodeteec survey data uised',
+'exif-gpsdestlatituderef' => 'Referance fer lateetude o destination',
+'exif-gpsdestlatitude' => 'Lateetude destination',
+'exif-gpsdestlongituderef' => 'Reference fer langeetude o destination',
+'exif-gpsdestlongitude' => 'Langeetude o destination',
+'exif-gpsdestbearingref' => 'Referance fer bearin o destination',
+'exif-gpsdestbearing' => 'Bearin o destination',
+'exif-gpsdestdistanceref' => 'Reference fer distance til destination',
+'exif-gpsdestdistance' => 'Distance til destination',
+'exif-gpsprocessingmethod' => 'Name o GPS processin methyd',
+'exif-gpsareainformation' => 'Name o GPS airt',
+'exif-gpsdifferential' => 'GPS differantial correction',
+'exif-keywords' => 'Keywairds',
+'exif-worldregioncreated' => 'Region o the Yird that the picture wis taen in',
+'exif-countrycreated' => 'Kintra that the picture wis taen in',
+'exif-countrycodecreated' => 'Code fer the kintra that the picture wis taen in',
+'exif-provinceorstatecreated' => 'Provínce or state that the picture wis taen in',
+'exif-citycreated' => 'Ceetie that the picture wis taen in',
+'exif-sublocationcreated' => 'Sublocation o the ceetie that the picture wis taen in',
+'exif-worldregiondest' => 'Yird region shawn',
+'exif-countrydest' => 'Kintra shawn',
+'exif-countrycodedest' => 'Code fer kintra shawn',
+'exif-provinceorstatedest' => 'Provínce or state shawn',
+'exif-citydest' => 'Ceetie shawn',
+'exif-sublocationdest' => 'Sublocation o ceetie shawn',
+'exif-specialinstructions' => 'Byordiair insructions',
+'exif-headline' => 'Heidline',
+'exif-credit' => 'Creedit/Provider',
+'exif-source' => 'Soorce',
+'exif-editstatus' => 'Eediterial status o eemage',
+'exif-urgency' => 'Urgencie',
+'exif-fixtureidentifier' => 'Fixtur name',
+'exif-locationdest' => 'Location depeected',
+'exif-locationdestcode' => 'Code o location depeected',
+'exif-objectcycle' => 'Time o day that media is intended fer',
+'exif-languagecode' => 'Leid',
+'exif-iimcategory' => 'Categerie',
+'exif-iimsupplementalcategory' => 'Supplemental categeries',
+'exif-datetimeexpires' => 'Dinna uise efter',
+'exif-datetimereleased' => 'Released oan',
+'exif-originaltransmissionref' => 'Oreeginal transmeession location code',
+'exif-identifier' => 'Identefier',
+'exif-lens' => 'Lens uised',
+'exif-serialnumber' => 'Serial nummer o camera',
+'exif-cameraownername' => 'Ainer o camera',
+'exif-datetimemetadata' => 'Date metadata wis laist modeefied',
+'exif-nickname' => 'Informal name o eemage',
+'exif-rating' => 'Ratin (oot o 5)',
+'exif-rightscertificate' => 'Richts management certeeficate',
+'exif-copyrighted' => 'Copiericht status',
+'exif-copyrightowner' => 'Copiericht ainer',
+'exif-usageterms' => 'Uisage terms',
+'exif-webstatement' => 'Online copiericht statement',
+'exif-originaldocumentid' => 'Uníque ID o oreeginal document',
+'exif-licenseurl' => 'URL fer copiericht license',
+'exif-morepermissionsurl' => 'Alternative licensin information',
+'exif-attributionurl' => 'Whan re-uisin this wairk, please link til',
+'exif-preferredattributionname' => 'Whan re-uisin this wairk, please creedit',
+'exif-contentwarning' => 'Content warnishment',
+'exif-intellectualgenre' => 'Type o eetem',
+'exif-event' => 'Event depected',
+'exif-organisationinimage' => 'Organization depected',
+'exif-personinimage' => 'Person depected',
+'exif-originalimageheight' => 'Heicht o eemage afore it wis crappit',
+'exif-originalimagewidth' => 'Width o eemage afore it wis crappit',
+
+# Exif attributes
+'exif-compression-1' => "Oncompress't",
+'exif-compression-2' => 'CCITT Groop 3 1-Dimensional Modified Huffman rin length encodin',
+'exif-compression-3' => 'CCITT Groop 3 fax encodin',
+'exif-compression-4' => 'CCITT Groop 4 fax encodin',
+
+'exif-copyrighted-true' => 'Copierichted',
+'exif-copyrighted-false' => 'Copiericht status na set',
+
+'exif-unknowndate' => 'Onkent date',
+
+'exif-orientation-2' => 'Flipt horizontallie',
+'exif-orientation-3' => 'Rotatit 180°',
+'exif-orientation-4' => 'Flipt verticlie',
+'exif-orientation-5' => 'Rotatit 90° CCW n flip verticlie',
+'exif-orientation-6' => 'Rotatit 90° CCW',
+'exif-orientation-7' => 'Rotatit 90° CW n flipt verticlie',
+'exif-orientation-8' => 'Rotatit 90° CW',
+
+'exif-planarconfiguration-1' => 'chunkie format',
+
+'exif-colorspace-65535' => 'Oncalibratit',
+
+'exif-componentsconfiguration-0' => 'disna exeest',
+
+'exif-exposureprogram-0' => 'Na defined',
+'exif-exposureprogram-3' => 'Apertur prioritie',
+'exif-exposureprogram-4' => 'Shutter prioritie',
+'exif-exposureprogram-5' => 'Cræftie program (biased thewaird the depth o field)',
+'exif-exposureprogram-6' => 'Action program (biased thewaird fast shutter speed)',
+'exif-exposureprogram-7' => 'Portrait mode (fer closeup photæs wi the backgroond oot o focus)',
+'exif-exposureprogram-8' => 'Launnscape mode (fer launnscape photæs wi the backgroonn in focus)',
+
+'exif-meteringmode-0' => 'Onkent',
+'exif-meteringmode-2' => 'Center weichtit average',
+'exif-meteringmode-4' => 'Multí-Spot',
+'exif-meteringmode-6' => 'Pairtial',
+'exif-meteringmode-255' => 'Ither',
+
+'exif-lightsource-0' => 'Onkent',
+'exif-lightsource-1' => 'Daylicht',
+'exif-lightsource-2' => 'Fluorescant',
+'exif-lightsource-3' => 'Tungsten (incandescant licht)',
+'exif-lightsource-10' => 'Cloodie weather',
+'exif-lightsource-12' => 'Daylicht fluorescant (D 5700 – 7100K)',
+'exif-lightsource-13' => 'Day white fluorescant (N 4600 – 5400K)',
+'exif-lightsource-14' => 'Cuil white fluorescant (W 3900 – 4500K)',
+'exif-lightsource-15' => 'White fluorescant (WW 3200 – 3700K)',
+'exif-lightsource-17' => 'Staunart licht A',
+'exif-lightsource-18' => 'Staunart licht B',
+'exif-lightsource-19' => 'Staunart licht C',
+'exif-lightsource-255' => 'Ither licht soorce',
+
+# Flash modes
+'exif-flash-fired-0' => 'Flash didna fire',
+'exif-flash-return-0' => 'naw flash return detection function',
+'exif-flash-return-2' => 'flash return licht na detectit',
+'exif-flash-return-3' => 'flash return licht detectit',
+'exif-flash-mode-1' => 'compulserie flash firin',
+'exif-flash-mode-2' => 'compulserie flash suppression',
+'exif-flash-mode-3' => 'autæ mode',
+'exif-flash-function-1' => 'Naw flash function',
+'exif-flash-redeye-1' => 'reid-ee reduction mode',
+
+'exif-sensingmethod-1' => 'Ondefined',
+'exif-sensingmethod-2' => 'Yin-chip colour airt senser',
+'exif-sensingmethod-3' => 'Twa-chip colour airt senser',
+'exif-sensingmethod-4' => 'Three-chip colour airt senser',
+'exif-sensingmethod-5' => 'Colour sequential airt senser',
+'exif-sensingmethod-7' => 'Trilinear senser',
+'exif-sensingmethod-8' => 'Colour sequential linear senser',
+
+'exif-filesource-3' => 'Deegeetal still camera',
+
+'exif-scenetype-1' => 'Ae directlie photægraphed eemage',
+
+'exif-customrendered-1' => 'Custym process',
+
+'exif-exposuremode-0' => 'Autæ exposure',
+'exif-exposuremode-2' => 'Autæ bracket',
+
+'exif-whitebalance-0' => 'Autæ white balance',
+
+'exif-scenecapturetype-0' => 'Staunart',
+'exif-scenecapturetype-1' => 'Launscape',
+'exif-scenecapturetype-3' => 'Nicht scene',
 
 'exif-gaincontrol-0' => 'Nane',
+'exif-gaincontrol-1' => 'Law gain up',
+'exif-gaincontrol-2' => 'Hei gain up',
+'exif-gaincontrol-3' => 'Law gain doon',
+'exif-gaincontrol-4' => 'Hei gain doon',
 
 'exif-contrast-1' => 'Saft',
+'exif-contrast-2' => 'Haurd',
+
+'exif-saturation-1' => 'Law saturation',
+'exif-saturation-2' => 'Hei saturation',
+
+'exif-sharpness-1' => 'Saff',
+'exif-sharpness-2' => 'Haurd',
+
+'exif-subjectdistancerange-0' => 'Onkent',
+'exif-subjectdistancerange-2' => 'Claise luik at',
+'exif-subjectdistancerange-3' => 'Distance sechtline',
+
+# Pseudotags used for GPSLatitudeRef and GPSDestLatitudeRef
+'exif-gpslatitude-n' => 'Nort lateetude',
+'exif-gpslatitude-s' => 'Sooth lateetude',
+
+# Pseudotags used for GPSLongitudeRef and GPSDestLongitudeRef
+'exif-gpslongitude-e' => 'Aest langeetude',
+'exif-gpslongitude-w' => 'West langeetude',
+
+# Pseudotags used for GPSAltitudeRef
+'exif-gpsaltitude-above-sealevel' => '$1 {{PLURAL:$1|meter|meters}} abuin sea level',
+'exif-gpsaltitude-below-sealevel' => '$1 {{PLURAL:$1|meter|meters}} ablo sea level',
+
+'exif-gpsstatus-v' => 'Measurement interoperabeelitie',
+
+# Pseudotags used for GPSSpeedRef
+'exif-gpsspeed-k' => 'Kilometers aen hoor',
+'exif-gpsspeed-m' => 'Miles aen hoor',
+
+# Pseudotags used for GPSDestDistanceRef
+'exif-gpsdestdistance-n' => 'Nauteecal miles',
+
+'exif-gpsdop-excellent' => 'Excellant ($1)',
+'exif-gpsdop-good' => 'Guid ($1)',
+'exif-gpsdop-poor' => 'Puir ($1)',
+
+'exif-objectcycle-a' => 'Mornin yinlie',
+'exif-objectcycle-p' => 'Evenin yinlie',
+'exif-objectcycle-b' => 'Baith mornin n evenin',
+
+# Pseudotags used for GPSTrackRef, GPSImgDirectionRef and GPSDestBearingRef
+'exif-gpsdirection-m' => 'Magneteec direction',
+
+'exif-dc-contributor' => 'Contreebuters:',
+'exif-dc-coverage' => 'Spatial or tempral scope o media',
+'exif-dc-relation' => 'Relatit media',
+'exif-dc-rights' => 'Richts',
+'exif-dc-source' => 'Soorce media',
+'exif-dc-type' => 'Type o media',
+
+'exif-rating-rejected' => 'Rejectit',
+
+'exif-isospeedratings-overflow' => 'Muckler than 65535',
+
+'exif-iimcategory-ace' => 'Arts, cultur n entertainmant',
+'exif-iimcategory-clj' => 'Crime n law',
+'exif-iimcategory-dis' => 'Disasters n accidants',
+'exif-iimcategory-fin' => 'Economie n business',
+'exif-iimcategory-hth' => 'The Heal',
+'exif-iimcategory-hum' => 'Fawk interest',
+'exif-iimcategory-lab' => 'Laber',
+'exif-iimcategory-lif' => 'Lifestyle n leisure',
+'exif-iimcategory-pol' => 'Poleeteecs',
+'exif-iimcategory-rel' => 'Releegion n truent',
+'exif-iimcategory-sci' => 'Sciance n technologie',
+'exif-iimcategory-soi' => 'Social eessues',
+'exif-iimcategory-war' => 'War, conflict n onrest',
+
+'exif-urgency-low' => 'Law ($1)',
+'exif-urgency-high' => 'Hei ($1)',
+'exif-urgency-other' => 'Uiser-defined prioritie ($1)',
 
 # 'all' in various places, this might be different for inflected languages
 'watchlistall2' => 'aw',
@@ -1929,94 +3285,416 @@ Gif the file haes bin modified frae its oreeginal state, some details micht no f
 'monthsall' => 'aw',
 
 # Email address confirmation
+'confirmemail' => 'Confirm wab-mail address',
 'confirmemail_noemail' => 'Ye dinna hae a valid email address set in yer [[Special:Preferences|uiser preferences]].',
-'confirmemail_text' => 'This wiki requires ye tae validate yer e-mail address
-afore uisin e-mail featurs. Activate the button ablo tae send a confirmation
-mail tae yer address. The mail will include an airtin containing a code; laid the
-airtin in yer brouser tae confirm that yer e-mail address is guid.',
+'confirmemail_text' => 'This wiki needs ye tae validate yer wab-mail address
+afore uisin wab-mail featurs. Acteevate the button ablo tae send a confirmation
+mail til yer address. The mail will incluide ae link containin ae code; laid the
+ link in yer brouser tae confirm that yer wab-mail address is guid.',
+'confirmemail_pending' => 'Ae confirmation code haes awreadie been wab-mailed til ye;
+gif ye recantlie cræftit yer accoont, ye micht wish tae wait ae few minutes fer it tae arrive afore speirin fer ae new code.',
+'confirmemail_send' => 'Mail ae confirmation code',
+'confirmemail_sent' => 'Confirmation wab-mail sent.',
+'confirmemail_oncreate' => "Ae confirmation code wis sent til yer wab-mail address.
+This code isna required tae log in, but ye'll need tae gie it afore enablin onie wab-mail-based featurs in the wiki.",
 'confirmemail_sendfailed' => '{{SITENAME}} coudna send yer confirmation mail.
 Please check yer wab-mail address fer onvalid chairacters.
 
 Mailer returned: $1',
 'confirmemail_invalid' => 'Confirmation code nae guid. The code haes mibbe expired.',
 'confirmemail_needlogin' => 'Please $1 fer tae confirm yer wab-mail address.',
-'confirmemail_success' => 'Yer e-mail address haes been confirmed. Ye can nou log in an enjoy the wiki.',
+'confirmemail_success' => 'Yer wab-mail address haes been confirmed. Ye can nou [[Special:UserLogin|login]]  n enjoy the wiki.',
 'confirmemail_loggedin' => 'Yer e-mail address haes noo been confirmed.',
+'confirmemail_subject' => '{{SITENAME}} wab-mail address confirmation',
 'confirmemail_body' => 'Somebodie, maist likely ye, fae IP address $1,
 haes registered aen accoont "$2" wi this wab-mail address oan {{SITENAME}}.
 
-Tae confirm that this accont really is yers an activate
-wab-mail features oan {{SITENAME}}, apen this airtin in yer brouser:
+Tae confirm that this accoont reallie is yers n acteevate wab-mail featurs oan {{SITENAME}}, apen this link in yer brouser:
 
 $3
 
-Gif ye did *no* register the accoont, follae this airtin
+Gif ye div *naw* register the accoont, follae this link
 tae cancel the wab-mail address confirmation:
 
 $5
 
 This confirmation code will expire oan $4.',
+'confirmemail_body_changed' => 'Somebodie, proabablie ye, from IP address $1,
+haes chynged the wab-mail address o the accoont "$2" til this address oan {{SITENAME}}.
+
+Tae confirm that this accoont reallie dis belang til ye n reacteevate
+wab-mail featurs oan {{SITENAME}}, apen this link in yer brouser:
+
+$3
+
+Gif the account dis *na* belang til ye, follae this link
+tae cancel the wab-mail address confirmation:
+
+$5
+
+This confirmation code will die oan $4.',
+'confirmemail_body_set' => 'Somebodie, proablie ye, fae IP address $1,
+haes set the wab-mail address o the accoont "$2" til this address oan {{SITENAME}}.
+
+Tae confirm that this accoont reallie dis belang til ye n acteevate
+wab-mail featurs oan {{SITENAME}}, apen this link in yer brouser:
+
+$3
+
+Gif the accoont dis *na* belang til ye, follae this link
+tae cancel the wab-mail address confirmation:
+
+$5
+
+This confirmation code will dee at $4.',
+'confirmemail_invalidated' => 'Wab-mail address confirmation canceled',
+'invalidateemail' => 'Cancel wab-mail confirmation',
+
+# Scary transclusion
+'scarytranscludedisabled' => '[Interwiki transcluidin is disabled]',
+'scarytranscludefailed' => '[Template fetch failed fer $1]',
+'scarytranscludefailed-httpstatus' => '[Template fetch failed fer $1: HTTP $2]',
+'scarytranscludetoolong' => '[URL is ower lang]',
 
 # Delete conflict
-'deletedwhileediting' => '<strong>Warning:</strong> This page wis deletit efter ye sterted editing!',
-'confirmrecreate' => 'Uiser [[User:$1|$1]] ([[User talk:$1|talk]]) delytit this page efter ye stairted eiditin wi raison:
+'deletedwhileediting' => '<strong>Warnishment:</strong> This page wis delytit efter ye stairted eeditin!',
+'confirmrecreate' => 'Uiser [[User:$1|$1]] ([[User talk:$1|tauk]]) delytit this page efter ye stairted eiditin wi raison:
 : <em>$2</em>
-Please confirm that ye reallie want tae remak this page.',
+Please confirm that ye reallie want tae recræft this page.',
+'confirmrecreate-noreason' => 'Uiser [[User:$1|$1]] ([[User talk:$1|tauk]]) delytit this page efter ye stairted eeditin. Please confirm that ye reallie want tae recræft this page.',
+'recreate' => 'Recræft',
 
 # action=purge
-'confirm_purge_button' => 'Aye',
+'confirm_purge_button' => 'OK',
 'confirm-purge-top' => 'Clair the cache o this page?',
+'confirm-purge-bottom' => 'Purgin ae page clears the cache n forces the maist recynt reveesion tae appear.',
+
+# action=watch/unwatch
+'confirm-watch-top' => 'Add this page til yer watchleet?',
+'confirm-unwatch-top' => 'Remuiv this page fae yer watchleet?',
 
 # Multipage image navigation
+'imgmultipageprev' => '← preeveeoos page',
+'imgmultipagenext' => 'nex page →',
 'imgmultigo' => 'Gang!',
+'imgmultigoto' => 'Gang til page $1',
+
+# Language selector for translatable SVGs
+'img-lang-default' => '(defaut leid)',
+'img-lang-info' => 'Render this eemage in $1. $2',
+'img-lang-go' => 'Gang',
 
 # Table pager
 'table_pager_next' => 'Page aifter',
 'table_pager_prev' => 'Page afore',
+'table_pager_last' => 'Laist page',
+'table_pager_limit' => 'Shaw $1 eetems per page',
+'table_pager_limit_label' => 'Eetems per page:',
 'table_pager_limit_submit' => 'Gang',
 'table_pager_empty' => 'Nae results',
 
 # Auto-summaries
 'autosumm-blank' => 'Blanked the page',
 'autosumm-replace' => "Replacin page wi '$1'",
-'autoredircomment' => 'Reguidin tae [[$1]]',
+'autoredircomment' => 'Reguidin til [[$1]]',
+'autosumm-new' => 'Cræftit page wi "$1"',
+
+# Live preview
+'livepreview-loading' => 'Laidin...',
+'livepreview-ready' => 'Laidin... Readie!',
+'livepreview-failed' => 'Live luikower failed!
+Gie normal luikower ae gae.',
+'livepreview-error' => 'Failed tae connect: $1 "$2".
+Gie normal luikower ae gae.',
+
+# Friendlier slave lag warnings
+'lag-warn-normal' => 'Chynges newer than $1 {{PLURAL:$1|seicont|seiconts}} micht na be shawn in this leet.',
+'lag-warn-high' => 'Cause o hei database server lag, chynges newer than $1 {{PLURAL:$1|seicont|seiconts}} micht na be shawn in this leet.',
+
+# Watchlist editor
+'watchlistedit-numitems' => 'Yer watchleet contains {{PLURAL:$1|1 title|$1 titles}}, na coontin tauk pages.',
+'watchlistedit-noitems' => 'Yer watchleet contains naw titles.',
+'watchlistedit-normal-title' => 'Eedit watchleet',
+'watchlistedit-normal-legend' => 'Remuiv titles fae watchleet',
+'watchlistedit-normal-explain' => 'Titles oan yer watchleet ar shawn ablo.
+Tae remuiv ae title, check the kist nex til it, n clap "{{int:Watchlistedit-normal-submit}}".
+Ye can [[Special:EditWatchlist/raw|eedit the raw leet]] ava.',
+'watchlistedit-normal-submit' => 'Remuiv titles',
+'watchlistedit-normal-done' => '{{PLURAL:$1|1 title wis|$1 titles were}} remuived fae yer watchleet:',
+'watchlistedit-raw-title' => 'Eedit raw watchleet',
+'watchlistedit-raw-legend' => 'Eedit raw watchleet',
+'watchlistedit-raw-explain' => 'Titles oan yer watchleet ar shawn ablo, n can be eeditit bi addin til n remuivin fae the leet;
+yin title per line.
+Whan dun, clap "{{int:Watchlistedit-raw-submit}}".
+Ye can [[Special:EditWatchlist|uise the staundairt eediter]] ava.',
+'watchlistedit-raw-submit' => 'Update watchleet',
+'watchlistedit-raw-done' => 'Yer watchleet haes been updated.',
+'watchlistedit-raw-added' => '{{PLURAL:$1|1 title wis|$1 titles were}} added:',
+'watchlistedit-raw-removed' => '{{PLURAL:$1|1 title wis|$1 titles were}} remuived:',
 
 # Watchlist editing tools
-'watchlisttools-view' => 'View relevant changes',
-'watchlisttools-edit' => 'View an edit watchleet',
-'watchlisttools-raw' => 'Edit raw watchleet',
+'watchlisttools-view' => 'See reelavant chynges',
+'watchlisttools-edit' => 'See n eedit watchleet',
+'watchlisttools-raw' => 'Eedit raw watchleet',
+
+# Signatures
+'signature' => '[[{{ns:user}}:$1|$2]] ([[{{ns:user_talk}}:$1|tauk]])',
 
 # Core parser functions
-'duplicate-defaultsort' => '\'\'\'Wairnin:\'\'\' Default sort key "$2" overrides earlier default sort key "$1".',
+'unknown_extension_tag' => 'Onkent extension tag "$1"',
+'duplicate-defaultsort' => '<strong>Warnishment:</strong> Defaut sort key "$2" owerrides earlier defaut sort key "$1".',
 
 # Special:Version
+'version-extensions' => 'Instawed extensions',
+'version-specialpages' => 'Byordinar pages',
+'version-parserhooks' => 'Parser huiks',
+'version-variables' => 'Vareeables',
+'version-other' => 'Ither',
+'version-mediahandlers' => 'Media haunnlers',
+'version-hooks' => 'Huiks',
+'version-parser-function-hooks' => 'Parser function huiks',
+'version-hook-name' => 'Huik name',
+'version-hook-subscribedby' => 'Subscribed bi',
+'version-ext-colheader-description' => 'Descreeption',
+'version-ext-colheader-credits' => 'Writers',
+'version-license-title' => 'License fer $1',
+'version-license-not-found' => 'Naw detailed license information wis foond fer this extension.',
+'version-credits-title' => 'Creedits fer $1',
+'version-credits-not-found' => 'Naw detailed creedits information wis foond fer this extension.',
 'version-poweredby-credits' => 'This wiki is pwred bi <strong>[https://www.mediawiki.org/ MediaWiki]</strong>, copiericht © 2001-$1 $2.',
+'version-poweredby-others' => 'ithers',
+'version-poweredby-translators' => 'translatewiki.net owerseters',
+'version-credits-summary' => "We'd like tae recognize the follaein fawk fer thair contreebution til [[Special:Version|MediaWiki]].",
+'version-license-info' => 'MediaWiki is free saffware; ye can reedistreebute it n/or modifie it unner the terms o the GNU General Public License aes publeesht bi the Free Software Foundation; either version 2 o the License, or (bi yer optie) onie later version.
+
+MediaWiki is distreebuted in the hope that it will be uissfu, bit WIOOT ONIE WARRANTIE; wioot even the implied warrantie o MERCHANTABILITIE or FITNESS FER AE PARTEECULAR PURPYSS. See the GNU General Public License fer mair details.
+
+Ye shid hae receeved [{{SERVER}}{{SCRIPTPATH}}/COPIEIN ae copie o the GNU General Public License] alang wi this program; gif na, write til 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' => 'Instawed saffware',
+'version-entrypoints' => 'Entrie point URLs',
+'version-entrypoints-header-entrypoint' => 'Entrie point',
+
+# Special:Redirect
+'redirect' => 'Reguidal bi file, uiser, page or reveesion ID',
+'redirect-legend' => 'Reguidal til ae file or page',
+'redirect-summary' => 'This byordiair page reguides til ae file (gien the file name), ae page (gien ae reveesion ID or page ID), or ae uiser page (gien ae numereec uiser ID). Uissage: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/reveesion/328429]], or [[{{#Special:Redirect}}/uiser/101]].',
+'redirect-submit' => 'Gang',
+'redirect-lookup' => 'Luikup:',
+'redirect-user' => 'Uiser ID',
+'redirect-revision' => 'Page reveesion',
+'redirect-not-exists' => 'Value na foond',
 
 # Special:FileDuplicateSearch
+'fileduplicatesearch' => 'Rake fer dupleecate files',
+'fileduplicatesearch-summary' => 'Rake fer dupleecate files based oan hash values.',
+'fileduplicatesearch-legend' => 'Rake fer ae dupleecate',
 'fileduplicatesearch-filename' => 'Filename:',
 'fileduplicatesearch-submit' => 'Rake',
+'fileduplicatesearch-result-1' => 'The file "$1" haes naw identeecal dupleecation.',
+'fileduplicatesearch-result-n' => 'The file "$1" haes {{PLURAL:$2|1 identeecal dupleecation|$2 identeecal dupleecations}}.',
+'fileduplicatesearch-noresults' => 'Naw file named "$1" foond.',
 
 # Special:SpecialPages
 'specialpages' => 'Byordinar pages',
-'specialpages-group-users' => 'Uisers an richts',
+'specialpages-note' => '* Normal byordinair pages.
+* <span class="mw-specialpagerestricted">Restreected byordinair pages.</span>',
+'specialpages-group-other' => 'Ither byordinair pages',
+'specialpages-group-login' => 'Login / cræft accoont',
+'specialpages-group-changes' => 'Recynt chynges n logs',
+'specialpages-group-media' => 'Media reports n uplaids',
+'specialpages-group-users' => 'Uisers n richts',
+'specialpages-group-highuse' => 'Hei uiss pages',
 'specialpages-group-pages' => 'leet o pages',
+'specialpages-group-pagetools' => 'Page tuils',
+'specialpages-group-wiki' => 'Data n tuils',
+'specialpages-group-redirects' => 'Reguidin byordinair pages',
+'specialpages-group-spam' => 'Spam tuils',
+
+# Special:BlankPage
+'intentionallyblankpage' => 'This page is intentionlie left blank.',
 
 # External image whitelist
-'external_image_whitelist' => ' #Leave this line exactly as it is<pre>
-#Put regular expression fragments (just the part that goes between the //) below
-#These will be matched with the URLs of external (hotlinked) images
-#Those that match will be displayed as images, otherwise only a link to the image will be shown
-#Lines beginning with # are treated as comments
-#This is case-insensitive
+'external_image_whitelist' => ' #Lea this line exactlie aes it is<pre>
+#Put regulair expression fragments (juist the pairt that gaes atween the //) ablo
+#Thir will be matched wi the URLs o external (hotlinked) eimages
+#Thae that match will be displeyed aes eimages, itherwise yinlie ae link til the eimage will be shawn
+#Lines beginnin wi # ar treated aes comments
+#This is case-onsensiteeve
 
-#Put all regex fragments above this line. Leave this line exactly as it is</pre>',
+#Put aw regex fragments abuin this line. Lea this line exactlie aes it is</pre>',
 
 # Special:Tags
+'tags' => 'Valit chynge tags',
 'tag-filter' => '[[Special:Tags|Tag]] filter:',
 'tag-filter-submit' => 'Filter',
-'tags-edit' => 'edit',
+'tags-intro' => 'This page leets the tags that the saffware can maurk aen eedit wi, n thair meanin.',
+'tags-display-header' => 'Appearance oan chynge leets',
+'tags-description-header' => 'Ful descreeption o meanin',
+'tags-active-header' => 'Acteeve?',
+'tags-hitcount-header' => 'Tagged chynges',
+'tags-active-yes' => 'Ay',
+'tags-active-no' => 'Naw',
+'tags-edit' => 'eedit',
+'tags-hitcount' => '$1 {{PLURAL:$1|chynge|chynges}}',
+
+# Special:ComparePages
+'compare-rev1' => 'Reveesion 1',
+'compare-rev2' => 'Reveesion 2',
+'compare-invalid-title' => 'The title that ye speceefied is onvalit.',
+'compare-title-not-exists' => 'The title that ye speceefied disna exeest.',
+'compare-revision-not-exists' => 'The reveesion that ye speceefied disna exeest.',
+
+# Database error messages
+'dberr-header' => 'This wiki haes ae proablem',
+'dberr-problems' => 'Sairrie! This site is expereeancin techneecal diffeculties.',
+'dberr-again' => 'Gie it ae few minutes n than relaid.',
+'dberr-info' => '(Canna contact the database server: $1)',
+'dberr-info-hidden' => '(Canna contact the database server)',
+'dberr-usegoogle' => 'Ye can dae ae rake bi wa o Google in the meanwhile.',
+'dberr-outofdate' => 'Mynd that thair indexes o oor content micht be oot o date.',
+'dberr-cachederror' => 'This is ae cached copie o the requested page, n micht na be up til date.',
 
 # HTML forms
+'htmlform-invalid-input' => 'Thau ar proablems wi some o yer input.',
+'htmlform-select-badoption' => 'The value that ye speceefied isna ae valit optie.',
+'htmlform-int-invalid' => 'The value that ye speceefied isna aen integer.',
+'htmlform-float-invalid' => 'The value that ye speceefied isna ae nummer.',
+'htmlform-int-toolow' => 'The value that ye speceefied is ablo the smaaest o $1.',
+'htmlform-int-toohigh' => 'The value that ye speceefied is abuin the mucklest o $1.',
+'htmlform-required' => 'This value is needit.',
+'htmlform-submit' => 'Haun-in',
+'htmlform-reset' => 'Ondae chynges',
 'htmlform-selectorother-other' => 'Ither',
+'htmlform-no' => 'Naw',
+'htmlform-yes' => 'Ay',
+'htmlform-chosen-placeholder' => 'Select aen optie',
+
+# SQLite database support
+'sqlite-has-fts' => '$1 wi ful-tex rake support',
+'sqlite-no-fts' => '$1 wioot ful-tex rake support',
+
+# New logging system
+'logentry-delete-delete' => '$1 {{GENDER:$2|delytit}} page $3',
+'logentry-delete-event' => '$1 {{GENDER:$2|chynged}} veesibeelitie o {{PLURAL:$5|ae log event|$5 log events}} oan $3: $4',
+'logentry-delete-revision' => '$1 {{GENDER:$2|chynged}} veesibeelitie o {{PLURAL:$5|ae reveesion|$5 reveesions}} oan page $3: $4',
+'logentry-delete-event-legacy' => '$1 {{GENDER:$2|chynged}} veesibeelitie o log events oan $3',
+'logentry-delete-revision-legacy' => '$1 {{GENDER:$2|chynged}} veesibeelitie o reveesions oan page $3',
+'logentry-suppress-event' => '$1 hidlinswise {{GENDER:$2|chynged}} veesibeelitie o {{PLURAL:$5|ae log event|$5 log events}} oan $3: $4',
+'logentry-suppress-revision' => '$1 hidlinswise {{GENDER:$2|chynged}} veesibeelity o {{PLURAL:$5|ae reveesion|$5 reveesions}} oan page $3: $4',
+'logentry-suppress-event-legacy' => '$1 hidlinswise {{GENDER:$2|chynged}} veesibeelitie o log events oan $3',
+'logentry-suppress-revision-legacy' => '$1 hidlinswise {{GENDER:$2|chynged}} veesibeelitie o reveesions oan page $3',
+'revdelete-content-hid' => 'content skaukt',
+'revdelete-summary-hid' => 'eedit ootline skaukt',
+'revdelete-uname-hid' => 'uisername skaukt',
+'revdelete-content-unhid' => 'content onskaukt',
+'revdelete-summary-unhid' => 'eedit ootline onskaukt',
+'revdelete-uname-unhid' => 'uisername onskaukt',
+'revdelete-restricted' => 'applied restreections til admeenistraters',
+'revdelete-unrestricted' => 'remuived restreections fer admeenistraters',
+'logentry-move-move' => '$1 {{GENDER:$2|muived}} page $3 til $4',
+'logentry-move-move-noredirect' => '$1 {{GENDER:$2|muived}} page $3 til $4 wioot leain ae reguidal',
+'logentry-move-move_redir' => '$1 {{GENDER:$2|muived}} page $3 til $4 ower reguidal',
+'logentry-move-move_redir-noredirect' => '$1 {{GENDER:$2|muived}} page $3 til $4 ower ae reguidal wioot leain ae reguidal',
+'logentry-patrol-patrol' => '$1 {{GENDER:$2|maurkt}} reveesion $4 o page $3 patrowed',
+'logentry-patrol-patrol-auto' => '$1 autæmateeclie {{GENDER:$2|maurkt}} reveesion $4 o page $3 patrowed',
+'logentry-newusers-newusers' => 'Uiser accoont $1 wis {{GENDER:$2|cræftit}}',
+'logentry-newusers-create' => 'Uiser accoont $1 wis {{GENDER:$2|cræftit}}',
+'logentry-newusers-create2' => 'Uiser accoont $3 wis {{GENDER:$2|cræftit}} bi $1',
+'logentry-newusers-byemail' => 'Uiser accoont $3 wis {{GENDER:$2|cræftit}} bi $1 n passwaird wis sent bi wab-mail',
+'logentry-newusers-autocreate' => 'Uiser accoont $1 wis {{GENDER:$2|cræftit}} autæmateeclie',
+'logentry-rights-rights' => '$1 {{GENDER:$2|chynged}} groop memmership fer $3 fae $4 til $5',
+'logentry-rights-rights-legacy' => '$1 {{GENDER:$2|chynged}} groop memmership fer $3',
+'logentry-rights-autopromote' => '$1 wis autæmateeclie {{GENDER:$2|promoted}} fae $4 til $5',
+'rightsnone' => '(nane)',
+
+# Feedback
+'feedback-bugornote' => 'Gif yer readie tae describe ae techneecal problem in detail please [$1 report ae bug].
+Itherwise, ye can uiss the easie form ablo. Yer comment will be added til the page "[$3 $2]", alang wi yer uisername.',
+'feedback-adding' => 'Addin feedback til page...',
+'feedback-error1' => 'Mistak: Onrecognised ootcome fae API',
+'feedback-error2' => 'Mistak: Eedit failed',
+'feedback-error3' => 'Mistak: Naw response fae API',
+'feedback-thanks' => 'Thanks! Yer feedback haes been posted til the page "[$2 $1]".',
+'feedback-close' => 'Dun',
+'feedback-bugcheck' => "Wunnerfu! Just check that it's na awreadie yin o the [$1 knawn bugs].",
+'feedback-bugnew' => 'Ah checkt. Report ae new bug',
+
+# Search suggestions
+'searchsuggest-search' => 'Rake',
+'searchsuggest-containing' => 'containin...',
+
+# API errors
+'api-error-badaccess-groups' => "Ye'r na permittit tae uplaid files til this wiki.",
+'api-error-copyuploaddisabled' => 'Uplaidin bi URL is disabled oan this server.',
+'api-error-duplicate' => 'Thaur {{PLURAL:$1|is [$2 anither file]|ar [$2 some ither files]}} awreadie oan the site wi the same content.',
+'api-error-duplicate-archive' => 'Thaur {{PLURAL:$1|wis [$2 anither file]|were [$2 some ither files]}} awreadie oan the site wi the same content, but {{PLURAL:$1|it wis|thay were}} delytit.',
+'api-error-duplicate-archive-popup-title' => 'Dupleecate {{PLURAL:$1|file that haes|files that hae}} awreadie been delytit.',
+'api-error-duplicate-popup-title' => 'Dupleecate {{PLURAL:$1|file|files}}.',
+'api-error-empty-file' => 'The file that ye haunnit in wis tuim.',
+'api-error-emptypage' => 'Cræftin new, tuim pages isna permittit.',
+'api-error-fetchfileerror' => 'Internal mistak: Sommit went wrang while fetchin the file.',
+'api-error-fileexists-forbidden' => 'Ae file wi the name "$1" awreadie exeests, n canna be owerwritten.',
+'api-error-fileexists-shared-forbidden' => 'Ae file wi the name "$1" awreadie exeests in the shaired file reposeetair, n canna be owerwritten.',
+'api-error-file-too-large' => 'The file that ye haunnit in wis ower muckle.',
+'api-error-filename-tooshort' => 'The filename is ower short.',
+'api-error-filetype-banned' => 'This type o file is banned.',
+'api-error-filetype-banned-type' => '$1 {{PLURAL:$4|isna ae permittit file type|arna permittit file types}}. Permittit {{PLURAL:$3|file type is|file types ar}} $2.',
+'api-error-filetype-missing' => 'The filename is missin aen extension.',
+'api-error-hookaborted' => 'The modeefication that ye gave makin ae gae wis abortit bi aen extension.',
+'api-error-http' => 'Internal mistak: Onable tae connect til server.',
+'api-error-illegal-filename' => 'The filename isna permitit.',
+'api-error-internal-error' => 'Internal mistak: Sommit went wrang wi processin yer uplaid oan the wiki.',
+'api-error-invalid-file-key' => 'Internal mistak: File wisna foond in temparie storage.',
+'api-error-missingparam' => 'Internal mistak: Missin boonds oan request.',
+'api-error-missingresult' => 'Internal mistak: Coudna determine gif the copie succeeded.',
+'api-error-mustbeloggedin' => 'Ye maun be loggit in tae uplaid files.',
+'api-error-mustbeposted' => 'Internal mistak: Request needs HTTP POST.',
+'api-error-noimageinfo' => 'The uplaid succeeded, bit the server didna gie us onie information aneat the file.',
+'api-error-nomodule' => 'Internal mistak: Naw uplaid module set.',
+'api-error-ok-but-empty' => 'Internal mistak: Naw response fae server.',
+'api-error-overwrite' => 'Owerwritin aen exeestin file isna permitit.',
+'api-error-stashfailed' => 'Internal mistak: Server failed tae store temparie file.',
+'api-error-publishfailed' => 'Internal mistak: Server failed tae publeesh temparie file.',
+'api-error-stasherror' => 'Thaur wis ae mistak while uplaidin the file tae stash.',
+'api-error-timeout' => 'The server didna respond wiin the expectit time.',
+'api-error-unclassified' => 'Aen onkent mistake occurred.',
+'api-error-unknown-error' => 'Internal mistak: Sommit went wrang whan uplaidin yer file.',
+'api-error-uploaddisabled' => 'Uplaidin is disabled oan this wiki.',
+'api-error-verification-error' => 'This file micht be rotten, or hae the wrang extension.',
+
+# Durations
+'duration-seconds' => '$1 {{PLURAL:$1|seicont|seiconts}}',
+'duration-hours' => '$1 {{PLURAL:$1|hoor|hoors}}',
+'duration-centuries' => '$1 {{PLURAL:$1|centuair|centuairs}}',
+
+# Image rotation
+'rotate-comment' => 'Eemage rotated bi $1 {{PLURAL:$1|degree|degrees}} clockwise',
+
+# Limit report
+'limitreport-title' => 'Parser profilin data:',
+'limitreport-cputime' => 'CPU time uissage',
+'limitreport-cputime-value' => '$1 {{PLURAL:$1|seicont|seiconts}}',
+'limitreport-walltime' => 'Real time uissage',
+'limitreport-walltime-value' => '$1 {{PLURAL:$1|seicont|seiconts}}',
+'limitreport-ppvisitednodes' => 'Preprocessor veesitit node coont',
+'limitreport-ppgeneratednodes' => 'Preprocessor generated node coont',
+'limitreport-postexpandincludesize' => 'Post-expand incluid size',
+'limitreport-expansiondepth' => 'Heiest expansion depth',
+'limitreport-expensivefunctioncount' => 'Expensive parser function coont',
+
+# Special:ExpandTemplates
+'expand_templates_intro' => 'This byordiair page taks tex n expauns aw templates in it recurseevelie.
+It foreby expaunds supported parser functions like
+<code><nowiki>{{</nowiki>#language:…}}</code> n vareeables like
+<code><nowiki>{{</nowiki>CURRENTDAY}}</code>.
+In fact, it expauns just aboot awthings in dooble-braces.',
+'expand_templates_title' => 'Contex title, fer {{FULLPAGENAME}}, etc.:',
+'expand_templates_output' => 'Ootcome',
+'expand_templates_xml_output' => 'XML ootpit',
+'expand_templates_html_output' => 'Raw HTML ootpit',
+'expand_templates_remove_nowiki' => 'Suppress <nowiki> tags in ootcome',
+'expand_templates_generate_xml' => 'Shaw XML parse tree',
+'expand_templates_generate_rawhtml' => 'Shaw raw HTML',
+'expand_templates_preview' => 'Luikower',
 
 );
index 26ef7d2..9726a71 100644 (file)
@@ -318,7 +318,6 @@ $messages = array(
 'disclaimers' => 'Avvirthènzi',
 'disclaimerpage' => 'Project:Avvirthènzi ginarari',
 'edithelp' => 'Ghia',
-'helppage' => 'Help:Indizi',
 'mainpage' => 'Pàgina prinzipari',
 'mainpage-description' => 'Pàgina prinzipari',
 'policy-url' => 'Project:Policy',
@@ -589,7 +588,7 @@ La paràura d'órdhini pa chistha noba registhrazioni pò assé mudifiggadda a l
 'newarticle' => '(Nóbu)',
 'newarticletext' => "Lu cullegamentu sighiddu curripondi a'na pàgina nò ancora esisthenti.
 
-Si vói crià la pàgina abà, pói sùbidu ischribì in giossu (abbaidda li [[{{MediaWiki:Helppage}}|pàgini d'aggiuddu]] pà maggiori infuimmazioni).
+Si vói crià la pàgina abà, pói sùbidu ischribì in giossu (abbaidda li [$1 pàgini d'aggiuddu] pà maggiori infuimmazioni).
 
 S'ài sighiddu lu cullegamentu pa un'errori, è suffizenti incalchà lu buttoni '''Indareddu''' i' lu propriu nabiggadori.",
 'anontalkpagetext' => "----''Chistha è la pàgina di dischussioni di un'utenti anònimu, chi no ha ancora criaddu una registhrazioni o, in dugna modu, no la usa. Pa identifiggallu è dunca nezzessàriu usà lu sóiu nùmaru di l'indirizzu IP. L'indirizzi IP, parò, poni assé cundibisi da più utenti. Si sei un'utenti anònimu e vói chi li cummenti prisenti in chistha pàgina no si rifèrini a te, [[Special:UserLogin|crea una noba registhrazion o intra]] cu' chidda ch'hai già pa evità d'assé confusu cu' althri utenti anònimi in futuru.''",
index a289b87..b3949da 100644 (file)
@@ -192,7 +192,6 @@ $messages = array(
 'disclaimers' => 'Isój cacóomx',
 'disclaimerpage' => 'Project:Isoj cacóomx geniiraloj',
 'edithelp' => 'Help ticpatlöx',
-'helppage' => 'Help:Caálixötöj',
 'mainpage' => 'Caálixötöj',
 'mainpage-description' => 'Caálixötöj',
 'policy-url' => 'Project:Cáyun',
@@ -436,7 +435,7 @@ Me IDde block coccebj $5. Includam 1 jöx 2 pac querinám iti.",
 'newarticle' => '(Quiih)',
 'newarticletext' => 'Meclickom linkamde páhina tazo necoccebj zo.
 Huants createnom jan páhina, startom type mii box !-cmaa iti
-([[{{MediaWiki:Helppage}}|páhinade helpom]] zo viside plus informacion).
+([$1 páhinade helpom] zo viside plus informacion).
 Me coccebj römjasi poop, clickom meback-buttonde browser coccebj perfectua.',
 'anontalkpagetext' => "----''Jan coccebj czaxö zode caitomde IDde adressade IP. Isój necoccebj caápo. Jan coccebj rae'de usadadde adressade IP numerical identificacion 'prenisój. Plusöxde caitom pos-coccebj jan adressade IP. Me pos-coccebj anonimo ö commentua irrevelantua coccebj directomde me poop, [[Special:UserLogin|caápo-jande]] exitom confucion diijömde IP-caitóm mii.''",
 'noarticletext' => 'Jan páhina necoccebj textua zo, me pos-coccebj [[Special:Search/{{PAGENAME}}|yahöx jan páhina]] diijömde páhinám iti jöx [{{fullurl:{{FULLPAGENAME}}|action=edit}} ticpatlöx jan páhina].',
index ee3fd90..a480664 100644 (file)
@@ -283,7 +283,6 @@ $1',
 'disclaimers' => 'Atsakuomībės aprėbuojims',
 'disclaimerpage' => 'Project:Atsakuomībės aprėbuojims',
 'edithelp' => 'Kāp redagoutė',
-'helppage' => 'Help:Torėnīs',
 'mainpage' => 'Pėrms poslapis',
 'mainpage-description' => 'Pėrms poslapis',
 'policy-url' => 'Project:Puolitėka',
@@ -536,7 +535,7 @@ Prašuom nuruodītė šėtūs doumenis visūmet, kumet kreipiatės diel bluokav
 'newarticle' => '(Naus)',
 'newarticletext' => "Tamsta pakliovuot i nūnā neesoti poslapi.
 Nuoriedamė sokortė poslapi, pradiekėt rašītė žemiau esontiamė ivedima pluotė
-(platiau [[{{MediaWiki:Helppage}}|pagelbas poslapī]]).
+(platiau [$1 pagelbas poslapī]).
 Jēgo pakliovuot čė netīčiuom, paprastiausē paspauskėt naršīklės mīgtoka '''atgal'''.",
 'anontalkpagetext' => "----''Tas īr anonimėnė nauduotuojė, katros nier sosėkūrės aba nenauduo paskīruos, aptarėmu poslapis.
 Dielē tuo nauduojams IP adresos anuo atpažėnėmō.
@@ -668,8 +667,6 @@ Pamiegīkėt [[Special:Search|ėiškoutė pruojektė]] sosėjosiu naujū poslapi
 'rev-delundel' => 'ruodītė/kavuotė',
 'revisiondelete' => 'Trintė/atkortė versėjės',
 'logdelete-selected' => "{{PLURAL:$2|Pasėrinkts|Pasėrinktė|Pasėrinktė}} '''$1''' istuorėjės {{PLURAL:$2|atėtėkims|atsėtėkimā|atsėtėkimā}}:",
-'revdelete-text' => "'''Ėštrintuos versėjės ėr ivīkē vistėik da bus ruodomė poslapė istuorėjuo ėr specēliūju veiksmū istuorėjuo, no anū torėnė dalīs nabus vėišā pasėikiamos.'''
-Kėtė admėnėstratuorē šėtom pruojekte vėsdar galės pasėiktė pasliepta torėni ėr galės ana atkortė viel par šėta pate sasaja, nabent īr nostatītė papėlduomė aprėbuojėmā.",
 'revdelete-unsuppress' => 'Šalėntė apribuojėmos atkortuos versėjės',
 'revdel-restore' => 'Keistė veizėmuma',
 'revdelete-edit-reasonlist' => 'Keistė trīnėma prīžastis',
index 4a58588..67311a5 100644 (file)
@@ -454,7 +454,6 @@ $1',
 'disclaimers' => 'Odricanje odgovornosti',
 'disclaimerpage' => 'Project:Uslovi korištenja, pravne napomene i odricanje odgovornosti',
 'edithelp' => 'Pomoć pri uređivanju',
-'helppage' => 'Help:Sadržaj',
 'mainpage' => 'Glavna stranica / Главна страница',
 'mainpage-description' => 'Glavna stranica / Главна страница',
 'policy-url' => 'Project:Pravila',
@@ -646,8 +645,6 @@ Ne zaboravite izmijeniti vlastite [[Special:Preferences|{{SITENAME}} postavke]].
 'gotaccountlink' => 'Prijavite 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',
@@ -902,7 +899,7 @@ Možda je premještena ili obrisana dok ste pregledavali stranicu.',
 Шифра за налог '$1' је послата на адресу $2.",
 'newarticle' => '(Novi)',
 'newarticletext' => "Preko linka ste došli na stranicu koja još uvijek ne postoji.
-* Ako želite stvoriti stranicu, počnite tipkati u okviru dolje (v. [[{{MediaWiki:Helppage}}|stranicu za pomoć]] za više informacija).
+* Ako želite stvoriti stranicu, počnite tipkati u okviru dolje (v. [$1 stranicu za pomoć] za više informacija).
 * Ukoliko ste došli greškom, pritisnike dugme '''Nazad''' ('''back''') na vašem pregledniku.",
 'anontalkpagetext' => "----''Ovo je stranica za razgovor za anonimnog korisnika koji još nije napravio račun ili ga ne koristi.
 Zbog toga moramo da koristimo brojčanu IP adresu kako bismo identifikovali njega ili nju.
@@ -1150,8 +1147,6 @@ ili ta revizija ne postoji, ili pokušavate sakriti trenutnu reviziju.',
 'revdelete-show-file-submit' => 'Da',
 'revdelete-selected' => "'''{{PLURAL:$2|Odabrana revizija|Odabrane revizije}} od [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Označena stavka registra|Označene stavke registra}}:'''",
-'revdelete-text' => "'''Obrisane revizije i događaji će i dalje biti vidljivi u historiji stranice i registrima, ali dijelovi njenog sadržaja neće biti dostupni javnosti.'''
-Drugi administratori projekta {{SITENAME}} će i dalje moći pristupiti sakrivenom sadržaju i mogu ga ponovo vratiti kroz ovaj interfejs, osim ako nisu postavljena dodatna ograničenja.",
 'revdelete-confirm' => 'Molimo potvrdite da namjeravate ovo učiniti, da razumijete posljedice i da to činite u skladu s [[{{MediaWiki:Policy-url}}|pravilima]].',
 'revdelete-suppress-text' => "Ograničenja bi trebala biti korištena '''samo''' u sljedećim slučajevima:
 * Osjetljive korisničke informacije
index 87f6958..0ba9402 100644 (file)
@@ -240,7 +240,6 @@ $1',
 'disclaimers' => 'Ur darssuq',
 'disclaimerpage' => 'Project: Ur illa maddar illa ssuq',
 'edithelp' => 'Aws ɣ tirra',
-'helppage' => 'Help:Mayllan',
 'mainpage' => 'Tasana tamzwarut',
 'mainpage-description' => 'Tasna tamzwarut',
 'policy-url' => 'Project:Tasrtit',
@@ -454,7 +453,7 @@ Kcm zwar tft tansan nk tbratin ɣ [[Special:Preferences|Timssusmin n umqdac]].',
 'accmailtitle' => 'awal ihdan hatin yuznak nnit',
 'newarticle' => '(Amaynu)',
 'newarticletext' => "Tfrt yan uzday s yat tasna lli ur ta jju illan [{{fullurl:Special:Log|type=delete&page={{FULLPAGENAMEE}}}} ttuykkas].
-Iɣ rast daɣ tskrt skcm atṛiṣ nk ɣ tanaka  yad (Tẓḍaṛt an taggt γi [[{{MediaWiki:Helppage}}|tasna u usaws]] iɣ trit inɣmisn yaḍn).
+Iɣ rast daɣ tskrt skcm atṛiṣ nk ɣ tanaka  yad (Tẓḍaṛt an taggt γi [$1 tasna u usaws] iɣ trit inɣmisn yaḍn).
 Ivd tlkmt {{GENDER:||e|(e)}} ɣis bla trit, klikki f tajrrayt n '''urrir''' n iminig nk (navigateur).",
 'noarticletext' => 'ɣilad ur illa walu may ityuran  f tasnatad ad, tzdart at [[Special:Search/{{PAGENAME}}|search for this page title]] in other pages,
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} search the related logs],
index e216380..5e64413 100644 (file)
@@ -229,7 +229,6 @@ $messages = array(
 'tog-ccmeonemails' => 'මා විසින් අනෙකුත් පරිශීලකයන් හට යවන විද්‍යුත්-තැපෑලයන්හි පිටපත් මාහට එවන්න',
 'tog-diffonly' => '“වෙනස් ”පදයන්ට පහළින්, පිටුවල අන්තර්ගතය   නොපෙන්වන්න',
 'tog-showhiddencats' => 'සැඟවුනු ප්‍රවර්ග පෙන්වන්න',
-'tog-noconvertlink' => 'සබැඳියන්ගේ ශීර්ෂ පෙරැළීම අක්‍රීය කරන්න',
 'tog-norollbackdiff' => 'පුනරාවර්තනයක් කිරීමෙන් පසු වෙනස්වීම් අත්හරින්න',
 'tog-useeditwarning' => 'මා සංස්කරණ පිටුවක් සුරකිනු නොලැබූ වෙනස්කිරීම් සමඟ අතහැර යන විට අවවාද කරන්න',
 'tog-prefershttps' => 'සැම විටම ඇතුළු වීමේදී ආරක්ෂාකාරී ජාලයක් භාවිතා කරන්න',
@@ -441,7 +440,6 @@ $1",
 'disclaimers' => 'වියාචනයන්',
 'disclaimerpage' => 'Project:පොදු වියාචන',
 'edithelp' => 'සංස්කරණ උදවු',
-'helppage' => 'Help:අන්තර්ගතයන්',
 'mainpage' => 'මුල් පිටුව',
 'mainpage-description' => 'මුල් පිටුව',
 'policy-url' => 'Project:ප්‍රතිපත්තිය',
@@ -638,8 +636,6 @@ $2',
 'gotaccountlink' => 'පිවිසෙන්න',
 'userlogin-resetlink' => 'ඔබේ පිවිසුම් තොරතුරු අමතකද?',
 'userlogin-resetpassword-link' => 'ඔබේ මුරපදය නැති වුනාද?',
-'helplogin-url' => 'Help:ප්‍රවිෂ්ට වීම',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|ප්‍රවිෂ්ට වීමට උදවු වන්න]]',
 'userlogin-loggedin' => 'ඔබ දැනටමත් {{GENDER:$1|}} ලෙස පිවිසී ඇත.
 නව පරිශීලකයෙකු ලෙස ඇතුළු වීමට පහත ආකෘතිය පුරවන්න.',
 'userlogin-createanother' => 'තවත් ගිණුමක් ආරම්භ කරන්න',
@@ -902,7 +898,7 @@ $2
 මෙම නව ගිණුම සඳහා මුරපදය, ප්‍රවිෂ්ට වීමෙන් අනතුරුව, ''[[Special:ChangePassword|මුර පදය වෙනස් කරන්න]]''  පිටුව තුලදී වෙනස් කල හැක.",
 'newarticle' => '(නව)',
 'newarticletext' => "බැඳියක් ඔස්සේ පැමිණ ඔබ පිවිස ඇත්තේ දැනට නොපවතින පිටුවකටයි.
-මෙම ලිපිය තැනීමට අවශ්‍ය නම්, පහත ඇති කොටුව තුල අකුරු ලිවීම අරඹන්න (වැඩිදුර තොරතුරු සඳහා [[{{MediaWiki:Helppage}}|උදවු පිටුව]] බලන්න).
+මෙම ලිපිය තැනීමට අවශ්‍ය නම්, පහත ඇති කොටුව තුල අකුරු ලිවීම අරඹන්න (වැඩිදුර තොරතුරු සඳහා [$1 උදවු පිටුව] බලන්න).
 ඔබ මෙහි පිවිස ඇත්තේ අත්වැරැද්දකින් නම්, ඔබගේ ගවේෂකයෙහි '''ආපසු''' බොත්තම ඔබන්න.",
 'anontalkpagetext' => "----''මෙම සංවාද පිටුව අයත් වන්නේ තවමත් ගිණුමක් තනා නැති හෝ එසේ කොට එනමුදු එය භාවිතා නොකරන හෝ නිර්නාමික පරිශීලකයෙකුටය.
 එබැවින්, ඔහු/ඇය හැඳින්වීමට සංඛ්‍යාත්මක IP ලිපිනය භාවිතා කිරීමට අප හට සිදුවේ.
@@ -1134,8 +1130,6 @@ $3 විසින් සපයා ඇති හේතුව ''$2'' වේ",
 'revdelete-show-file-submit' => 'ඔව්',
 'revdelete-selected' => "'''[[:$1]] හි {{PLURAL:$2|තෝරාගත් සංශෝධනය|තෝරාගත් සංශෝධනයන්}} :'''",
 'logdelete-selected' => "'''{{PLURAL:$1|තෝරාගත් ලඝු-සිදුවීම|තෝරාගත් ලඝු-සිදුවීම්}}:'''",
-'revdelete-text' => "'''මකාදැමුණු සංශෝධනයන් හා සිද්ධීන් තවදුරටත් පිටු විත්ති හා ලඝු-සටහන් හි දර්ශනය වුවද, ප්‍රජාව ට ප්‍රවිෂ්ඨ විය හැක්කේ ඒවායේ අන්තර්ගතයෙන් කොටසකටය.'''
-අමතර සීමා පණවා නොමැති නම්, සැඟවුනු අන්තර්ගතයට එළඹී, යම් අතුරුමුහුණතක් ඔස්සේ,   එය මකාදැමුම යළි අවලංගු කිරීමට, {{SITENAME}} හි අනෙකුත් පරිපාලකයන්හට තවමත් අවතාශ ඇත්තේය.",
 'revdelete-confirm' => 'කරුණාකර ඔබ මෙය කිරීමට අදහස් කරන බවත්,එහි ප්‍රතිඵලය අවබෝධ කර ගන්නා බවත්,මෙය සිදු කරනුයේ [[{{MediaWiki:Policy-url}}| ප්‍රතිපත්තියට]] අනුකූලව බවත් තහවුරු කරන්න.',
 'revdelete-suppress-text' => "යටපත්කිරීම පහත අවස්ථාවන්හිදී  '''පමණක්''' භාවිතා කල යුතුය:
 * නුසුදුසු පෞද්ගලික තොරතුරු
index 63ebd3b..75f5ce3 100644 (file)
@@ -320,7 +320,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Posielať mi kópie mojich emailov, ktoré pošlem ostatným používateľom',
 'tog-diffonly' => 'Nezobrazovať obsah stránky pod rozdielmi',
 'tog-showhiddencats' => 'Zobraziť skryté kategórie',
-'tog-noconvertlink' => 'Vypnúť konverziu názvov odkazov',
 'tog-norollbackdiff' => 'Vynechať rozdiel po vykonaní rollbacku',
 'tog-useeditwarning' => 'Upozorniť ma, keď opúšťam upravovaciu stránku s neuloženými zmenami',
 'tog-prefershttps' => 'Po prihlásení používať vždy zabezpečené pripojenie',
@@ -532,7 +531,6 @@ $1',
 'disclaimers' => 'Vylúčenie zodpovednosti',
 'disclaimerpage' => 'Project:Vylúčenie zodpovednosti',
 'edithelp' => 'Ako upravovať stránku',
-'helppage' => 'Help:Obsah',
 'mainpage' => 'Hlavná stránka',
 'mainpage-description' => 'Hlavná stránka',
 'policy-url' => 'Project:Zásady a smernice',
@@ -729,8 +727,6 @@ Nezabudnite zmeniť svoje [[Special:Preferences|Predvoľby {{GRAMMAR:genitív|{{
 'gotaccountlink' => 'Prihlásiť',
 'userlogin-resetlink' => 'Zabudli ste svoje prihlasovacie údaje?',
 'userlogin-resetpassword-link' => 'Zabudli ste heslo?',
-'helplogin-url' => 'Help:Prihlasovanie',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoc s prihlásením]]',
 'userlogin-loggedin' => 'Ste už {{GENDER:$1|prihĺasený|prihlásená}} ako $1.
 Pomocou formulára nižšie sa môžete prihlásiť ako iný redaktor.',
 'userlogin-createanother' => 'Vytvoriť ďalší účet',
@@ -823,6 +819,10 @@ Prosím, počkajte $1 predtým, než to skúsite znova.',
 'suspicious-userlogout' => 'Vaša požiadavka odhlásiť sa bola zamietnutá, pretože to vyzerá, že ju poslal pokazený prehliadač alebo proxy server.',
 'createacct-another-realname-tip' => 'Skutočné meno je nepovinné.
 Ak sa rozhodnete ho poskytnúť, použije sa na označenie vašej práce.',
+'pt-login' => 'Prihlásiť sa',
+'pt-login-button' => 'Prihlásiť sa',
+'pt-createaccount' => 'Vytvoriť účet',
+'pt-userlogout' => 'Odhlásiť sa',
 
 # Email sending
 'php-mail-error-unknown' => 'Neznáma chyba vo funkcii PHP mail()',
@@ -831,7 +831,7 @@ Ak sa rozhodnete ho poskytnúť, použije sa na označenie vašej práce.',
 
 # Change password dialog
 'changepassword' => 'Zmeniť heslo',
-'resetpass_announce' => 'Prishlásili ste sa pomocou dočasného emailom zaslaného kódu. Pre dokončenie prihlásenia je potrebné tu nastaviť nové heslo:',
+'resetpass_announce' => 'Pre dokončenie prihlásenia je potrebné nastaviť nové heslo.',
 'resetpass_text' => '<!-- Sem pridajte text -->',
 'resetpass_header' => 'Zmeniť heslo k účtu',
 'oldpassword' => 'Staré heslo:',
@@ -846,6 +846,7 @@ Ak sa rozhodnete ho poskytnúť, použije sa na označenie vašej práce.',
 'resetpass-submit-cancel' => 'Zrušiť',
 '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-recycled' => 'Ako nové heslo si prosím nastavte niečo iné než súčasné heslo.',
 'resetpass-temp-password' => 'Dočasné heslo:',
 'resetpass-abort-generic' => 'Zmena hesla bola zablokovaná rozšírením.',
 
@@ -995,7 +996,7 @@ Možno bola presunutá alebo zmazaná odkedy ste si stránku zobrazili.',
 'newarticle' => '(Nový)',
 'newarticletext' => "Sledovali ste odkaz na stránku, ktorá zatiaľ neexistuje.
 Stránku vytvoríte tak, že začnete písať do dolného poľa a potom stlačíte tlačidlo „Uložiť stránku“.
-(Viac informácií nájdete na stránkach [[{{MediaWiki:Helppage}}|Pomocníka]]).
+(Viac informácií nájdete na stránkach [$1 Pomocníka]).
 Ak ste sa sem dostali nechtiac, iba kliknite na tlačidlo '''späť''' vo svojom prehliadači.",
 'anontalkpagetext' => "----''Toto je diskusná stránka anonymného používateľa, ktorý nemá vytvorené svoje konto alebo ho nepoužíva.
 Preto musíme na jeho identifikáciu použiť numerickú IP adresu. Je možné, že takúto IP adresu používajú viacerí používatelia.
@@ -1233,8 +1234,6 @@ Ako správca si môžete tento rozdiel zobraziť; podrobnosti môžete nájsť v
 'revdelete-show-file-submit' => 'Áno',
 'revdelete-selected' => "'''{{PLURAL:$2|Vybraná jedna revízia|Vybrané $2 revízie|Vybraných $2 revízií}} z [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Vybraná udalosť záznamu|Vybrané udalosti záznamu}}:'''",
-'revdelete-text' => "'''Zmazané revízie a udalosti sú stále viditeľné v histórii úprav stránky, ale časti ich obsahu nebudú prístupné verejnosti.'''
-Iní správcovia {{GRAMMAR:genitív|{{SITENAME}}}} budú stále môcť pristupovať k skrytému obsahu a môžu ho znova obnoviť použitím tohto rozhrania v prípade, že nie sú stanovené ďalšie obmedzenia.",
 'revdelete-confirm' => 'Prosím, potvrďte, že to naozaj chcete vykonať, rozumiete následkom a že to robíte v súlade s [[{{MediaWiki:Policy-url}}|politikou]].',
 'revdelete-suppress-text' => "Zatajenie by sa malo používať '''výlučne''' v nasledovných prípadoch:
 * Potenciálne hanlivé informácie
@@ -1684,14 +1683,26 @@ Softvér používa toto nastavenie na správne oslovenie a označenie vás ostat
 'recentchanges-label-plusminus' => 'Veľkosť stránky sa zmenila o toľkoto bajtov',
 'recentchanges-legend-heading' => "'''Legenda:'''",
 'recentchanges-legend-newpage' => '(pozri tiež [[Special:NewPages|zoznam nových stránok]])',
-'rcnotefrom' => "Nižšie sú zobrazené úpravy od '''$2''' (do '''$1''').",
+'rcnotefrom' => 'Nižšie sú zobrazené úpravy od <strong>$2</strong> (do <strong>$1</strong>).',
 'rclistfrom' => 'Zobraziť nové úpravy počnúc od $1',
 'rcshowhideminor' => '$1 drobné úpravy',
+'rcshowhideminor-show' => 'Zobraziť',
+'rcshowhideminor-hide' => 'Skryť',
 'rcshowhidebots' => '$1 botov',
+'rcshowhidebots-show' => 'Zobraziť',
+'rcshowhidebots-hide' => 'Skryť',
 'rcshowhideliu' => '$1 registrovaní užívatelia',
+'rcshowhideliu-show' => 'Zobraziť',
+'rcshowhideliu-hide' => 'Skryť',
 'rcshowhideanons' => '$1 anonymných používateľov',
+'rcshowhideanons-show' => 'Zobraziť',
+'rcshowhideanons-hide' => 'Skryť',
 'rcshowhidepatr' => '$1 úpravy strážených stránok',
+'rcshowhidepatr-show' => 'Zobraziť',
+'rcshowhidepatr-hide' => 'Skryť',
 'rcshowhidemine' => '$1 moje úpravy',
+'rcshowhidemine-show' => 'Zobraziť',
+'rcshowhidemine-hide' => 'Skryť',
 'rclinks' => 'Zobraziť posledných $1 úprav v posledných $2 dňoch<br />$3',
 'diff' => 'rozdiel',
 'hist' => 'história',
@@ -2179,7 +2190,15 @@ Každý riadok obsahuje odkaz na prvé a druhé presmerovanie a tiež prvý riad
 'protectedpages' => 'Zamknuté stránky',
 'protectedpages-indef' => 'Zamknutia iba na neurčito',
 'protectedpages-cascade' => 'Iba kaskádové zamykanie',
+'protectedpages-noredirect' => 'Skryť presmerovania',
 'protectedpagesempty' => 'Momentálne nie sú žiadne stránky s týmito parametrami zamknuté.',
+'protectedpages-timestamp' => 'Časová známka',
+'protectedpages-page' => 'Stránka',
+'protectedpages-expiry' => 'Koniec platnosti',
+'protectedpages-params' => 'Nastavenie zámku',
+'protectedpages-reason' => 'Dôvod',
+'protectedpages-unknown-timestamp' => 'Neznáme',
+'protectedpages-unknown-performer' => 'Neznámy redaktor',
 'protectedtitles' => 'Zamknuté názvy',
 'protectedtitlesempty' => 'Tieto parametre momentálne nezamykajú žiadne názvy stránok.',
 'listusers' => 'Zoznam používateľov',
@@ -3797,6 +3816,10 @@ Prosím, potvrďte, že túto stránku chcete skutočne znovu vytvoriť.",
 'imgmultigo' => 'Vykonať',
 'imgmultigoto' => 'Prejsť na stránku $1',
 
+# Language selector for translatable SVGs
+'img-lang-default' => '(predvolený jazyk)',
+'img-lang-go' => 'Vykonať',
+
 # Table pager
 'ascending_abbrev' => 'vzostupne',
 'descending_abbrev' => 'zostupne',
@@ -3880,7 +3903,13 @@ Tiež môžete [[Special:EditWatchlist|použiť štandardný editor]].',
 'version-hook-subscribedby' => 'Pripojené',
 'version-version' => '(Verzia $1)',
 'version-license' => 'Licencia',
+'version-ext-license' => 'Licencia',
+'version-ext-colheader-name' => 'Rozšírenie',
 'version-ext-colheader-version' => 'Verzia',
+'version-ext-colheader-license' => 'Licencia',
+'version-ext-colheader-description' => 'Popis',
+'version-ext-colheader-credits' => 'Autori',
+'version-license-title' => 'Licencia pre $1',
 'version-poweredby-credits' => "Táto wiki beží na '''[https://www.mediawiki.org/ MediaWiki]''', copyright © 2001-$1 $2.",
 'version-poweredby-others' => 'ďalší',
 'version-poweredby-translators' => 'prekladatelia na translatewiki.net',
index b1b0f65..f670c63 100644 (file)
@@ -434,7 +434,6 @@ $1',
 'disclaimers' => 'Zanikanja odgovornosti',
 'disclaimerpage' => 'Project:Splošno zanikanje odgovornosti',
 'edithelp' => 'Pomoč pri urejanju',
-'helppage' => 'Help:Vsebina',
 'mainpage' => 'Glavna stran',
 'mainpage-description' => 'Glavna stran',
 'policy-url' => 'Project:Pravila',
@@ -636,8 +635,7 @@ Ne pozabite si prilagoditi vaših [[Special:Preferences|nastavitev {{GRAMMAR:rod
 'gotaccountlink' => 'Prijavite se',
 'userlogin-resetlink' => 'Ste pozabili svoje prijavne podatke?',
 'userlogin-resetpassword-link' => 'Ste pozabili svoje geslo?',
-'helplogin-url' => 'Help:Prijava',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Pomoč pri prijavi]]',
+'userlogin-helplink2' => 'Pomoč pri prijavi',
 'userlogin-loggedin' => 'Prijavljeni ste že kot {{GENDER:$1|$1}}.
 Uporabite spodnji obrazec, da se prijavite kot drug uporabnik.',
 'userlogin-createanother' => 'Ustvari drug račun',
@@ -738,6 +736,7 @@ Prosimo, počakajte $1, preden poskusite znova.',
 'createacct-another-realname-tip' => 'Pravo ime ni obvezno.
 Če se ga odločite navesti, bo uporabljeno za priznavanje uporabnikovega dela.',
 'pt-login' => 'Prijava',
+'pt-login-button' => 'Prijava',
 'pt-createaccount' => 'Ustvari račun',
 'pt-userlogout' => 'Odjava',
 
@@ -769,7 +768,10 @@ Morda ste že uspešno spremenili geslo ali pa ste zahtevali novo začasno geslo
 'resetpass-temp-password' => 'Začasno geslo:',
 'resetpass-abort-generic' => 'Razširitev je prekinila spremembo gesla.',
 'resetpass-expired' => 'Vaše geslo je poteklo. Prosimo, nastavite novo geslo za prijavo.',
-'resetpass-expired-soft' => 'Vaše geslo je poteklo in ga morate ponastaviti. Prosimo, izberite novo geslo zdaj ali kliknite Prekliči, da ga ponastavite pozneje.',
+'resetpass-expired-soft' => 'Vaše geslo je poteklo in ga morate ponastaviti. Prosimo, izberite novo geslo zdaj ali kliknite »{{int:resetpass-submit-cancel}}«, da ga ponastavite pozneje.',
+'resetpass-validity-soft' => 'Vaše geslo ni veljavno: $1
+
+Prosimo, izberite novo geslo zdaj ali kliknite »{{int:resetpass-submit-cancel}}«, da ga ponastavite pozneje.',
 
 # Special:PasswordReset
 'passwordreset' => 'Ponastavitev gesla',
@@ -919,7 +921,7 @@ Morda je bil premaknjen ali izbrisan, medtem ko ste gledali stran.',
 'newarticle' => '(Nov)',
 'newarticletext' => "Sledili ste povezavi na stran, ki še ne obstaja.
 Da bi stran ustvarili, vnesite v spodnji obrazec besedilo
-(za več informacij glej [[{{MediaWiki:Helppage}}|pomoč]]).
+(za več informacij glej [$1 pomoč]).
 Če ste sem prišli po pomoti, v svojem brskalniku kliknite gumb ''Nazaj''.",
 'anontalkpagetext' => "---- ''To je pogovorna stran brezimnega uporabnika, ki si še ni ustvaril računa ali pa ga ne uporablja. Zaradi tega moramo uporabiti IP-naslov za njegovo/njeno ugotavljanje istovetnosti. Takšen IP-naslov si lahko deli več uporabnikov. Če ste brezimni uporabnik in menite, da so nepomembne pripombe namenjene vam, prosimo [[Special:UserLogin|ustvarite račun]] ali pa se [[Special:UserLogin/signup|vpišite]], da preprečite zmedo z drugimi nepodpisanimi uporabniki.''",
 'noarticletext' => 'Na tej strani ni trenutno nobenega besedila. Naslov strani lahko poskusite [[Special:Search/{{PAGENAME}}|poiskati]] na drugih straneh, <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} v dnevniških zapisih] ali pa [{{fullurl:{{FULLPAGENAME}}|action=edit}} stran uredite]</span>.',
@@ -1160,8 +1162,10 @@ To redakcijo si lahko ogledate; podrobnosti lahko najdete v [{{fullurl:{{#Specia
 'revdelete-show-file-submit' => 'Da',
 'revdelete-selected' => "'''{{PLURAL:$2|Izbrana redakcija|Izbrani redakciji|Izbrane redakcije}} strani [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Izbran dnevniški dogodek|Izbrana dnevniška dogodka|Izbrani dnevniški dogodki}}:'''",
-'revdelete-text' => "'''Izbrisane redakcije in dogodki bodo v zgodovini strani in dnevniki še vedno navedene, vendar bo njihova vsebina za javnost nedostopna.'''
-Do skrite vsebine bodo še vedno lahko dostopali drugi administratorji {{GRAMMAR:rodilnik|{{SITENAME}}}} in jo z uporabo istega vmesnika tudi obnovili, razen kjer bodo uveljavljene dodatne omejitve.",
+'revdelete-text-text' => 'Izbrisane redakcije bodo še vedno prikazane v zgodovini strani, vendar bodo deli njihovih vsebin nedostopni javnosti.',
+'revdelete-text-file' => 'Izbrisane različice datoteke bodo še vedno prikazane v zgodovini datoteke, vendar bodo deli njihovih vsebin nedostopni javnosti.',
+'logdelete-text' => 'Izbrisani dnevniški vnosi bodo še vedno prikazani v dnevnikih, vendar bodo deli njihovih vsebin nedostopni javnosti.',
+'revdelete-text-others' => 'Drugi administratorji na strani {{SITENAME}} bodo še vedno lahko dostopali do skrite vsebine in jo obnovili z enakim vmesnikom, razen če so nastavljene dodatne omejitve.',
 'revdelete-confirm' => 'Prosim potrdite da nameravate to storiti, da se zavedate posledic in da to počnete v skladu s [[{{MediaWiki:Policy-url}}|politiko]].',
 'revdelete-suppress-text' => "Zadrževanje naj bi bilo uporabljeno '''le''' v sledečih primerih:
 * Morebitni klevetniški podatki
@@ -1298,7 +1302,7 @@ Podrobnosti lahko najdete v [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENA
 'search-file-match' => '(ujema se z vsebino datoteke)',
 'search-suggest' => 'Iščete morda: $1',
 'search-interwiki-caption' => 'Sorodni projekti',
-'search-interwiki-default' => '$1 zadetkov:',
+'search-interwiki-default' => 'Rezultati s strani $1:',
 'search-interwiki-more' => '(več)',
 'search-relatedarticle' => 'Podobno',
 'searcheverything-enable' => 'Iskanje po vseh imenskih prostorih',
@@ -1625,7 +1629,7 @@ Ko vas drugi uporabniki kontaktirajo, jim vašega e-poštnega naslova ne bomo ra
 'recentchanges-label-plusminus' => 'uporabnik je velikost strani spremenil za tolikšno število bajtov',
 'recentchanges-legend-heading' => "'''Legenda:'''",
 'recentchanges-legend-newpage' => '(glej tudi [[Special:NewPages|seznam novih strani]])',
-'rcnotefrom' => "Navedene so spremembe od '''$2''' dalje (prikazujem jih do '''$1''').",
+'rcnotefrom' => 'Navedene so spremembe od <strong>$2</strong> dalje (prikazujem jih do <strong>$1</strong>).',
 'rclistfrom' => 'Prikaži spremembe od $1 naprej',
 'rcshowhideminor' => '$1 manjša urejanja',
 'rcshowhideminor-show' => 'Prikaži',
@@ -2038,6 +2042,11 @@ Vnesite: vrstavsebine/podvrsta, npr. <code>image/jpeg</code>.',
 # List redirects
 'listredirects' => 'Seznam preusmeritev',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Seznam datotek z dvojniki',
+'listduplicatedfiles-summary' => 'Seznam datotek, kjer je najnovejša različica datoteke dvojnik najnovejše različice neke druge datoteke. Upoštevamo samo lokalne datoteke.',
+'listduplicatedfiles-entry' => '[[:File:$1|$1]] ima [[$3|{{PLURAL:$2|dvojnik|$2 dvojnika|$2 dvojnike|$2 dvojnikov}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Osirotele predloge',
 'unusedtemplatestext' => 'Naslednji seznam navaja vse strani v imenskem prostoru {{ns:template}}, ki niso vključene v nobeno stran.
@@ -2153,7 +2162,7 @@ Sedaj je preusmeritev na [[$2]].',
 'deadendpagestext' => 'Spodaj navedene strani se ne povezujejo na druge članke v {{GRAMMAR:dajalnik|{{SITENAME}}}}.',
 'protectedpages' => 'Zaščitene strani',
 'protectedpages-indef' => 'Samo neomejene zaščite',
-'protectedpages-summary' => 'Stran navaja obstoječe strani, ki so trenutno zaščitene. Za seznam strani, ki so zaščitene pred ustvarjanjem, glej [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Stran navaja obstoječe strani, ki so trenutno zaščitene. Za seznam strani, ki so zaščitene pred ustvarjanjem, glej [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Le kaskadne zaščite',
 'protectedpages-noredirect' => 'Skrij preusmeritve',
 'protectedpagesempty' => 'Nobena stran ni trenutno zaščitena s temi parametri.',
@@ -2166,7 +2175,7 @@ Sedaj je preusmeritev na [[$2]].',
 'protectedpages-unknown-timestamp' => 'Neznano',
 'protectedpages-unknown-performer' => 'Neznani uporabnik',
 'protectedtitles' => 'Zaščiteni naslovi',
-'protectedtitles-summary' => 'Stran navaja obstoječe strani, ki so trenutno zaščitene pred ustvarjanjem. Za seznam obstoječih strani, ki so zaščitene, glej [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Stran navaja obstoječe strani, ki so trenutno zaščitene pred ustvarjanjem. Za seznam obstoječih strani, ki so zaščitene, glej [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Noben naslov ni trenutno zaščiten s temi parametri.',
 'listusers' => 'Seznam uporabnikov',
 'listusers-editsonly' => 'Pokaži samo uporabnike z urejanji',
@@ -2441,7 +2450,7 @@ Izbris takšnih strani je bil omejen v izogib neželenim motnjam {{GRAMMAR:dativ
 'delete-warning-toobig' => 'Ta stran ima obsežno zgodovino urejanja, tj. čez $1 {{PLURAL:$1|redakcijo|redakciji|redakcije|redakcij}}.
 Njeno brisanje lahko zmoti obratovanje zbirke podatkov {{GRAMMAR:dative|{{SITENAME}}}};
 nadaljujte s previdnostjo.',
-'deleting-backlinks-warning' => "'''Opozorilo:''' Druge strani se povezujejo na ali vključujejo stran, ki jo nameravate izbrisati.",
+'deleting-backlinks-warning' => "'''Opozorilo:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|Druge strani]] se povezujejo na ali vključujejo stran, ki jo nameravate izbrisati.",
 
 # Rollback
 'rollback' => 'Vrni spremembe',
@@ -2493,8 +2502,8 @@ To so trenutne nastavitve za stran '''$1''':",
 To so trenutne nastavitve za stran '''$1''':",
 'protect-locked-access' => "Vaš uporabniški račun nima dovoljenja za spreminjanje stopnje zaščite strani.
 Trenutne nastavitve za stran '''$1''' so:",
-'protect-cascadeon' => 'Ta stran je trenutno uaščitena, ker je vključena v {{PLURAL:$1|naslednjo stran, ki ima|naslednji strani, ki imata|naslednje strani, ki imajo|naslednjih strani, ki imajo}} vključeno kaskadno zaščito.
-Stopnjo zaščite te strani lahko spremenite, vendar to ne bo vplivalo na kaskadno zaščito.',
+'protect-cascadeon' => 'Ta stran je trenutno zaščitena, ker je vključena v {{PLURAL:$1|naslednjo stran, ki ima|naslednji strani, ki imata|naslednje strani, ki imajo|naslednjih strani, ki imajo}} vključeno kaskadno zaščito.
+Spremembe stopnje zaščite strani ne bodo vplivale na kaskadno zaščito.',
 'protect-default' => 'Dovoli vsem uporabnikom',
 'protect-fallback' => 'Dovoli samo uporabnikom s pravico »$1«',
 'protect-level-autoconfirmed' => 'Dovoli samo samodejno potrjenim uporabnikom',
@@ -2620,6 +2629,7 @@ Najnovejši vnos v dnevniku blokad je naveden spodaj:',
 'sp-contributions-blocked-notice-anon' => 'Ta IP-naslov je trenutno blokiran.
 Najnovejši vnos v dnevniku blokad je naveden spodaj:',
 'sp-contributions-search' => 'Išči prispevke',
+'sp-contributions-suppresslog' => 'zatrti uporabnikovi prispevki',
 'sp-contributions-username' => 'IP-naslov ali uporabniško ime:',
 'sp-contributions-toponly' => 'Prikaži samo vrhnje redakcije',
 'sp-contributions-newonly' => 'Prikaži samo urejanja, ki so ustvarila nove strani',
index 05af20c..634634b 100644 (file)
@@ -237,7 +237,6 @@ $1",
 'disclaimers' => 'Impressum',
 'disclaimerpage' => 'Project:Impressum',
 'edithelp' => 'Bearbeitungshilfe',
-'helppage' => 'Help:Hilfe',
 'mainpage' => 'Hauptseite',
 'mainpage-description' => 'Hauptseite',
 'policy-url' => 'Project:Leitlinien',
@@ -506,7 +505,7 @@ Vermutlich wurde ar verschuba oder geläscht, nachdem du de Seite uffgeruffa hos
 'accmailtitle' => 'Passwurt wourde verschickt',
 'newarticle' => '(Neu)',
 'newarticletext' => "Du best an'm Link zu anner Seite gefulgt, de nee vorhanden ies.
-Im de Seite oazulega, trage denn Text ei de undastehende Box a (siehe de [[{{MediaWiki:Helppage}}|Hilfeseite]] fier meh Informationen).
+Im de Seite oazulega, trage denn Text ei de undastehende Box a (siehe de [$1 Hilfeseite] fier meh Informationen).
 Best du fälschlicherweise hier, klicke de '''Zerricke'''-Schaltfläche dennes Browsers.",
 'anontalkpagetext' => "----''Diese Seite dient dazu, a'm nee oagemeldeta Benutzer Noachrichta zu hinterlassa. 'S werd senne IP-Atresse zur Identifizierung verwendet. IP-Atressen kinna vu mehrera Nutzern gemeensam verwendet waan. Wenn du miet dann Kommentarn uff dieser Seite nischt oafanga koast, richta se siech vermutlich oa an'n friehera Inhaber denner IP-Atresse und du koast se ignorieren. Du koast dir au a [[Special:UserLogin/signup|Nutzerkonto erstalla]] oder dich [[Special:UserLogin|oamelda]], im kinftig Verwechslunga miet andern anonyma Nutzern zu vermeida.''",
 'noarticletext' => 'Diese Seite enthält momentan noo kenn Text.
@@ -662,8 +661,6 @@ Administratorn kinna se eensahn; Details stiehn eim [{{fullurl:{{#Special:Log}}/
 'revdelete-show-file-submit' => 'Ju',
 'revdelete-selected' => "'''{{PLURAL:$2|Ausgewählte Version|Ausgewählte Versionen}} vu [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Ausgewählter Logbucheintrag|Ausgewählte Logbucheinträge}}:'''",
-'revdelete-text' => "'''Geläschte Versionen und Aksjonna verbleiba ei der Versionsgeschichte und den Logbichern, jedoch sein Teele davon fier de Effentlichkeit unzugänglich.'''
-Andere Administratoren uff {{SITENAME}} hoan Zugriff uff dann versteckta Inhalt und kinna ihn mit der gleichen Seite wiederherstella, sufern nee zusätzliche Einschränkungen bestieha.",
 'revdelete-legend' => 'Setza der Sichtbarkeits-Einschränkunga',
 'revdelete-hide-text' => 'Text dar Version verstecka',
 'revdelete-hide-image' => 'Bildinhalt verstecka',
index 536882e..689a1b0 100644 (file)
@@ -245,7 +245,6 @@ $1',
 'disclaimers' => "Masuul la'aan",
 'disclaimerpage' => "Project:Masuul la'aan guud",
 'edithelp' => 'Caawinaada wax ka bedelka',
-'helppage' => 'Help:Caawinaad',
 'mainpage' => 'Bogga Hore',
 'mainpage-description' => 'Bogga Hore',
 'policy-url' => 'Project: Xeerka',
@@ -407,7 +406,6 @@ Waad sii isticmaali kartaa {{SITENAME}} adoona lagu aqoon, ama <span class='plai
 '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',
@@ -484,6 +482,7 @@ Waa iska dhago tiri kartaa fariintaan, hadii akoonkaan oo ku sameysmay qalad.',
 Fadlan waxyar sug intii aadan soo gelin.',
 'login-abort-generic' => 'Ma u soo gali karin gudaha - waa la noqay',
 'loginlanguagelabel' => 'Luqada: $1',
+'pt-userlogout' => 'Ka bax',
 
 # Email sending
 'user-mail-no-addy' => "Isku dayday in aa dirto e-mail ayada oo ciwaan e-mail la'aan ah.",
@@ -607,7 +606,7 @@ Waxaa laga yaabaa in la wareejiyay ama la tirtiray adiga oo fiirinaayo bogga.',
 Akoonkaan cusub eraysirkiisa waxaa ku badali kartaa  bogga ''[[Special:ChangePassword|bedel eraysirka]]'' si aad u soo gashid.",
 'newarticle' => '(Cusub)',
 'newarticletext' => "Waxaa soo raacday link kula soo xiriiriyay bog oo hadda wali jirin.
-Hadii aad rabto in aad sameyso bogga, hoos ka bilaaw qoraalkaada (fiiri [[{{MediaWiki:Helppage}}|bogga caawinaada]] wax war ah oo kale).
+Hadii aad rabto in aad sameyso bogga, hoos ka bilaaw qoraalkaada (fiiri [$1 bogga caawinaada] wax war ah oo kale).
 hadii aad meeshaan ku soo qaldantay, riix batoonka barowsahaaga  '''gadaal uuga noqo''' .",
 'anontalkpagetext' => "----''Meeshaan waa bogga wadahadalka isticmaalayaasha la aqoon oo aanan weli sameysanin akoon, ama  wali isticmaalin. 
 Sidaas darteed, waa in aan isticmaalnaa lambar cinwaaneedka IP:ga si aan u ogaano asiga/ayada. Cinwaanka IP:ga waxaa suurto gal ah in ay qeybsadaan isticmaaleyaal badan.
@@ -789,11 +788,14 @@ sababteeda neh waxaa laga heli kartaa  [{{fullurl:{{#Special:Log}}/delete|page={
 'skin-preview' => 'Horfiirin',
 'datedefault' => "Ma'jiro dooq",
 'prefs-datetime' => 'Taariikhda iyo waqtiga',
+'prefs-personal' => 'Galka isticmaalaha',
 'prefs-rc' => 'Isbedelada dhow',
 'prefs-watchlist' => 'liiska-waardiyaha',
 'prefs-watchlist-days' => 'Tirada maalamaha ay ku jirayaan liiska-waardiyaha:',
 'prefs-email' => 'E-mail aad dooran kartaa',
+'prefs-rendering' => 'Muuqaalka',
 'saveprefs' => 'Kaydi',
+'restoreprefs' => 'Dib u soo celin qaabeynta (dhammaan qaybaha)',
 'prefs-editing' => 'Wax ka bedelka',
 'searchresultshead' => 'Raadi',
 'recentchangesdays' => 'Tirada maalmaha lagu tusaayo isbedelada dhow:',
@@ -1092,8 +1094,8 @@ si aad ugu dirto E-boosto isticmaalayaasha kale.',
 'emailsenttext' => 'Fariintaadii E-mailka aheeyd waa la diray.',
 
 # Watchlist
-'watchlist' => 'Liiskeyga waardiyeynta',
-'mywatchlist' => 'Liiskeyga waardiyeynta',
+'watchlist' => 'Liiska-waardiyaha',
+'mywatchlist' => 'Liiska-waardiyaha',
 'watchlistfor2' => 'Ku socoto $1 $2',
 'nowatchlist' => 'Waxba kuma jiraan liiskaaga waardiyeynta.',
 'watchlistanontext' => 'Fadlan $1 si aad u fiirisid ama wax uga bedeshid qoraalada ku jira liiska waardiyeyska.',
@@ -1379,6 +1381,7 @@ Waxaa fiiri kartaa cadaadkiisa',
 
 # Info page
 'pageinfo-title' => 'Macluumaad ku saabsan "$1"',
+'pageinfo-header-basic' => 'Macaaluumaadka asaasiga ah',
 'pageinfo-toolboxlink' => 'Macluumad ku saabsan',
 
 # Browsing diffs
@@ -1471,6 +1474,7 @@ waxaad awoodaa [[Special:EditWatchlist/raw|Liiska wax ka bedel]].',
 
 # Special:Tags
 'tag-filter' => '[[Special:Tags|Filtaraha]] tag:',
+'tags-display-header' => 'Muuqaalka liiska bedelka',
 
 # Database error messages
 'dberr-usegoogle' => 'Waxaa baroobeen kartaa in aad ka raadiso google',
index e4c82b0..eb7a959 100644 (file)
@@ -17,6 +17,7 @@
  * @author Ergon
  * @author Euriditi
  * @author FatosMorina
+ * @author GretaDoci
  * @author Kaganer
  * @author Marinari
  * @author Mdupont
@@ -463,7 +464,6 @@ $1",
 'disclaimers' => 'Shfajësimet',
 'disclaimerpage' => 'Project:Shfajësimet e përgjithshme',
 'edithelp' => 'Ndihmë për redaktim',
-'helppage' => 'Help:Përmbajtje',
 'mainpage' => 'Faqja kryesore',
 'mainpage-description' => 'Faqja kryesore',
 'policy-url' => 'Project:Politika e rregullave',
@@ -651,7 +651,6 @@ Mos harroni të ndryshoni [[Special:Preferences|{{SITENAME}} preferencat]] tuaja
 'gotaccountlink' => 'Hyni',
 'userlogin-resetlink' => 'Keni harruar të dhënat tuaja të identifikimit?',
 'userlogin-resetpassword-link' => 'Rivendos fjalëkalimin',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Më ndihmo të futem në Wikipedia]]',
 'createacct-join' => 'Jepni informacionin tuaj më poshtë',
 'createaccountmail' => 'me email',
 'createaccountreason' => 'Arsyeja:',
@@ -735,6 +734,8 @@ Për të hyrë tërësisht duhet të vendosni një fjalëkalim të ri këtu:',
 'resetpass-submit-cancel' => 'Anulo',
 'resetpass-wrong-oldpass' => 'Fjalëkalimi momental ose i përkohshëm nuk është i vlefshëm. Ndoshta tanimë me sukses keni ndërruar fjalëkalimin, ose keni kërkuar fjalëkalim të përkohshëm.',
 'resetpass-temp-password' => 'Fjalëkalimi i përkohshëm:',
+'resetpass-expired' => 'Fjalëkalimin tuaj ka skaduar. Ju lutem vendosni një fjalëkalim të ri për të hyr.',
+'resetpass-expired-soft' => 'Fjalëkalimi juaj ka skaduar dhe duhet të rivendoset. Ju lutem zgjidhni një fjalëkalim të ri tani, ose klikoni "{{int:resetpass-submit-cancel}}" për ta rivendosur më vonë.',
 
 # Special:PasswordReset
 'passwordreset' => 'Ndrysho fjalkalimin',
@@ -861,7 +862,7 @@ Mund të jetë zhvendosur ose fshirë ndërkohë që ju ishit duke parë këtë
 Fjalëkalimi për këtë llogari mund të ndryshohet në faqen ''[[Special:ChangePassword|ndrysho fjalëkalimin]]'' pasi të jeni identifikuar.",
 'newarticle' => '(I ri)',
 'newarticletext' => "Ju keni ndjekur nje lidhje drejt një faqeje që nuk ekziston.
-Për ta krijuar këtë faqe ju mund të shkruani në kutinë e mëposhtme (shih [[{{MediaWiki:Helppage}}|faqen e ndihmës]] për më shumë informacion).
+Për ta krijuar këtë faqe ju mund të shkruani në kutinë e mëposhtme (shih [$1 faqen e ndihmës] për më shumë informacion).
 Nëse ju keni mbërritur këtu gabimisht, atëherë klikoni butonin '''pas''' të shfletuesit tuaj.",
 'anontalkpagetext' => "----'' Kjo është një faqe diskutimi për një përdorues anonim i cili nuk ka krijuar akoma një llogari, ose qe nuk e përdor atë. 
  Prandaj, ne duhet të përdorim adresën IP numerike për identifikimin e tij. 
@@ -1085,7 +1086,6 @@ Ju mund ta shikoni këtë ndryshim; detajet mund të gjenden te [{{fullurl:{{#Sp
 'revdelete-show-file-submit' => 'Po',
 'revdelete-selected' => "'''{{PLURAL:$2|Versioni i zgjedhur i|Versionet e zgjedhura të}} [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Veprimi i zgjedhur në regjistër|Veprimet e zgjedhura në regjistër}}:'''",
-'revdelete-text' => "'''Përmbajtja dhe pjesët e tjera nuk janë të dukshme për të gjithë, por figurojnë në historikun e versioneve.''' Administratorët munden përmbajtjen e larguar ta shikojnë dhe restaurojnë, përveç në rastet kur një gjë e tillë është ndaluar ekstra.",
 'revdelete-confirm' => 'Ju lutem konfirmoni që keni ndër mënd ta bëni këtë, që i kuptoni pasojat, dhe që ju po veproni në përputhje me [[{{MediaWiki:Policy-url}}|politiken]].',
 'revdelete-suppress-text' => "Shuarje duhet'''vetëm'''të përdoret për rastet e mëposhtme: 
  * Potencialisht e informacionit shpifës 
@@ -2420,6 +2420,7 @@ Bllokimi i fundit është shfaqur më poshtë për referencë:',
 'sp-contributions-blocked-notice-anon' => 'Kjo adresë IP është e bllokuar aktualisht.
 Bllokimi i funditë është më poshtë për referencë:',
 'sp-contributions-search' => 'Kërko tek kontributet',
+'sp-contributions-suppresslog' => 'Anëtar me Kontribute të kufizuara',
 'sp-contributions-username' => 'IP Addresa ose Përdoruesi:',
 'sp-contributions-toponly' => 'Trego vetëm redaktimet që janë versionet më të fundit',
 'sp-contributions-submit' => 'Kërko',
index 244efe1..4b3e87b 100644 (file)
@@ -431,7 +431,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Пошаљи ми копије е-порука које пошаљем другим корисницима',
 'tog-diffonly' => 'Не приказуј садржај странице испод разлика',
 'tog-showhiddencats' => 'Прикажи скривене категорије',
-'tog-noconvertlink' => 'Онемогући претварање наслова веза',
 'tog-norollbackdiff' => 'Изостави разлику након извршеног враћања',
 'tog-useeditwarning' => 'Упозори ме када напуштам страницу са несачуваним променама',
 'tog-prefershttps' => 'Увек користи сигурну конекцију када сам пријављен.',
@@ -643,7 +642,6 @@ $1',
 'disclaimers' => 'Одрицање одговорности',
 'disclaimerpage' => 'Project:Одрицање одговорности',
 'edithelp' => 'Помоћ при уређивању',
-'helppage' => 'Help:Садржај',
 'mainpage' => 'Главна страна',
 'mainpage-description' => 'Главна страна',
 'policy-url' => 'Project:Правила',
@@ -844,8 +842,6 @@ $2',
 'gotaccountlink' => 'Пријава',
 'userlogin-resetlink' => 'Заборавили сте податке за пријаву?',
 'userlogin-resetpassword-link' => 'Заборавили сте лозинку?',
-'helplogin-url' => 'Help:Logging in',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Помоћ при пријављивању]]',
 'userlogin-loggedin' => 'Већ сте пријављени као {{GENDER:$1|$1}}.
 Користите доњи образац да бисте се пријавили као други корисник.',
 'userlogin-createanother' => 'Отвори још један налог',
@@ -941,6 +937,7 @@ $2',
 'createacct-another-realname-tip' => 'Право име није обавезно.
 Ако изаберете да га унесете, оно ће бити коришћено за приписивање вашег рада.',
 'pt-login' => 'Пријави ме',
+'pt-login-button' => 'Пријави ме',
 'pt-createaccount' => 'Отвори налог',
 'pt-userlogout' => 'Одјави ме',
 
@@ -977,6 +974,7 @@ $2',
 # Special:PasswordReset
 'passwordreset' => 'Обнављање лозинке',
 'passwordreset-text-one' => 'Попуните овај образац да бисте ресетовали лозинку.',
+'passwordreset-text-many' => '{{PLURAL:$1|Испуните једно од поља како би сте добили привремену лозинку на е-пошту.}}',
 'passwordreset-legend' => 'Поништи лозинку',
 'passwordreset-disabled' => 'Обнављање лозинке је онемогућено на овом викију.',
 'passwordreset-emaildisabled' => 'Е-пошта је онемогућена на овом викију.',
@@ -1018,6 +1016,9 @@ $2
 'changeemail-submit' => 'Промени',
 'changeemail-cancel' => 'Откажи',
 
+# Special:ResetTokens
+'resettokens-token-label' => '$1 (тренутна вредност: $2)',
+
 # Edit page toolbar
 'bold_sample' => 'Подебљан текст',
 'bold_tip' => 'Подебљан текст',
@@ -1101,7 +1102,7 @@ $2
 'accmailtext' => 'Лозинка за {{GENDER:$1|корисника|корисницу}} [[User talk:$1|$1]] је послата на $2. Након пријаве, лозинка се може променити [[Special:ChangePassword|овде]].',
 'newarticle' => '(нови)',
 'newarticletext' => 'Дошли сте на страницу која још не постоји.
-Да бисте је направили, почните куцати у прозор испод овог текста (погледајте [[{{MediaWiki:Helppage}}|страницу за помоћ]]).
+Да бисте је направили, почните куцати у прозор испод овог текста (погледајте [$1 страницу за помоћ]).
 Ако сте овде дошли грешком, вратите се на претходну страницу.',
 'anontalkpagetext' => '---- Ово је страница за разговор с анонимним корисником који још нема налог или га не користи.
 Због тога морамо да користимо бројчану ИП адресу како бисмо га препознали.
@@ -1348,8 +1349,6 @@ $2
 'revdelete-show-file-submit' => 'Да',
 'revdelete-selected' => "'''{{PLURAL:$2|Изабрана измена|Изабране измене}} странице [[:$1]]'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Изабрана ставка у историји|Изабране ставке у историји}}:'''",
-'revdelete-text' => "'''Обрисане измене ће и даље бити приказане у историји страница и записима, али делови њиховог садржаја неће бити доступни јавности.'''
-Други администратори на овом викију ће и даље имати приступ сакривеном садржају, а они ће тај садржај моћи да врате путем овог сучеља, осим ако нису постављена додатна ограничења.",
 'revdelete-confirm' => 'Потврдите да намеравате ово урадити, да разумете последице и да то чините у складу с [[{{MediaWiki:Policy-url}}|правилима]].',
 'revdelete-suppress-text' => "Сакривање измена би требало користити '''само''' у следећим случајевима:
 * Злонамерни или погрдни подаци
@@ -1797,7 +1796,7 @@ $1",
 'recentchanges-label-plusminus' => 'Промена величине странице (у бајтовима)',
 'recentchanges-legend-heading' => "'''Легенда:'''",
 'recentchanges-legend-newpage' => '([[Special:NewPages|списак нових страница]])',
-'rcnotefrom' => 'Испод су измене од <b>$3; $4</b> (до <b>$1</b> измена).',
+'rcnotefrom' => 'Испод су измене од <strong>$2</strong> (до <strong>$1</strong> измена).',
 'rclistfrom' => 'Прикажи нове измене почев од $1',
 'rcshowhideminor' => '$1 мање измене',
 'rcshowhideminor-show' => 'Прикажи',
@@ -1805,7 +1804,7 @@ $1",
 'rcshowhidebots' => '$1 ботове',
 'rcshowhidebots-show' => 'Прикажи',
 'rcshowhidebots-hide' => 'Сакриј',
-'rcshowhideliu' => '$1 пријављене кориснике',
+'rcshowhideliu' => '$1 регисторваних корисника',
 'rcshowhideliu-show' => 'Прикажи',
 'rcshowhideliu-hide' => 'Сакриј',
 'rcshowhideanons' => '$1 анонимне кориснике',
@@ -1820,7 +1819,7 @@ $1",
 'rclinks' => 'Прикажи последњих $1 измена {{PLURAL:$2|претходни дан|у последња $2 дана|у последњих $2 дана}}<br />$3',
 'diff' => 'разл',
 'hist' => 'ист',
-'hide' => 'сакриј',
+'hide' => 'Сакриј',
 'show' => 'Прикажи',
 'minoreditletter' => ' м',
 'newpageletter' => 'Н',
@@ -2315,20 +2314,32 @@ $1',
 'mostrevisions' => 'Странице с највише измена',
 'prefixindex' => 'Све странице с префиксом',
 'prefixindex-namespace' => 'Све странице с предметком (именски простор $1)',
+'prefixindex-strip' => 'Сакриј префикс у списку',
 'shortpages' => 'Кратке странице',
 'longpages' => 'Дугачке странице',
 'deadendpages' => 'Странице без унутрашњих веза',
 'deadendpagestext' => 'Следеће странице немају везе до других страница на овом викију.',
 'protectedpages' => 'Заштићене странице',
-'protectedpages-indef' => 'само неограничене заштите',
-'protectedpages-cascade' => 'само преносиве заштите',
-'protectedpages-noredirect' => 'сакриј преусмерења',
+'protectedpages-indef' => 'Само неограничене заштите',
+'protectedpages-summary' => 'На овој страници се налази списак тренутно заштићених страница. За списак заштићених наслова види [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
+'protectedpages-cascade' => 'Само преносиве заштите',
+'protectedpages-noredirect' => 'Сакриј преусмерења',
 'protectedpagesempty' => 'Нема заштићених страница с овим параметрима.',
+'protectedpages-timestamp' => 'Време и датум',
+'protectedpages-page' => 'Страница',
+'protectedpages-expiry' => 'Истиче',
+'protectedpages-performer' => 'Заштитио',
+'protectedpages-params' => 'Ниво заштите',
+'protectedpages-reason' => 'Разлог',
+'protectedpages-unknown-timestamp' => 'нема',
+'protectedpages-unknown-performer' => 'нема',
 'protectedtitles' => 'Заштићени наслови',
+'protectedtitles-summary' => 'На овој страници се налази списак тренутно заштићених наслова. За списак тренутно заштићених страница види [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Нема заштићених наслова с овим параметрима.',
 'listusers' => 'Списак корисника',
-'listusers-editsonly' => 'прикажи само кориснике који су уређивали',
-'listusers-creationsort' => 'поређај по датуму стварања',
+'listusers-editsonly' => 'Прикажи само кориснике који су уређивали',
+'listusers-creationsort' => 'Поређај по датуму стварања',
+'listusers-desc' => 'Сортирај у опадајућем редоследу',
 'usereditcount' => '$1 {{PLURAL:$1|измена|измене|измена}}',
 'usercreated' => '{{GENDER:$3|је направио|је направила|је направио}} дана $1 у $2',
 'newpages' => 'Нове странице',
@@ -3084,6 +3095,7 @@ $1',
 'allmessages-prefix' => 'Филтрирај по префиксу:',
 'allmessages-language' => 'Језик:',
 'allmessages-filter-submit' => 'Иди',
+'allmessages-filter-translate' => 'Преведи',
 
 # Thumbnails
 'thumbnail-more' => 'Повећај',
@@ -3731,7 +3743,7 @@ $8',
 'exif-compression-34712' => 'JPEG2000',
 
 'exif-copyrighted-true' => 'Заштићено ауторским правом',
-'exif-copyrighted-false' => 'СÑ\82аÑ\82Ñ\83Ñ\81 Ð°Ñ\83Ñ\82оÑ\80Ñ\81киÑ\85 Ð¿Ñ\80ава Ð½Ð¸Ñ\98е Ð¿Ð¾Ð´ÐµÑ\88ен',
+'exif-copyrighted-false' => 'СÑ\82аÑ\82Ñ\83Ñ\81 Ð°Ñ\83Ñ\82оÑ\80Ñ\81киÑ\85 Ð¿Ñ\80ава Ð½Ð¸Ñ\98е Ð´ÐµÑ\84иниÑ\81ан',
 
 'exif-photometricinterpretation-2' => 'RGB',
 'exif-photometricinterpretation-6' => 'YCbCr',
@@ -4066,6 +4078,7 @@ $5
 
 # Language selector for translatable SVGs
 'img-lang-default' => '(подразумевани језик)',
+'img-lang-go' => 'Иди',
 
 # Table pager
 'ascending_abbrev' => 'раст.',
@@ -4214,7 +4227,14 @@ $5
 'version-hook-subscribedby' => 'Пријављено од',
 'version-version' => '(издање $1)',
 'version-svn-revision' => '(изм. $2)',
-'version-license' => 'Лиценца',
+'version-license' => 'Медијавики лиценца',
+'version-ext-license' => 'Лиценца',
+'version-ext-colheader-name' => 'Екстензија',
+'version-ext-colheader-version' => 'Верзија',
+'version-ext-colheader-license' => 'Лиценца',
+'version-ext-colheader-description' => 'Опис',
+'version-ext-colheader-credits' => 'Аутори',
+'version-license-title' => 'Лиценца за $1',
 'version-poweredby-credits' => "Овај вики покреће '''[https://www.mediawiki.org/ Медијавики]''', ауторска права © 2001-$1 $2.",
 'version-poweredby-others' => 'остали',
 'version-poweredby-translators' => 'translatewiki.net преводиоци',
@@ -4235,6 +4255,7 @@ $5
 'redirect-legend' => 'Преусмери на датотеку или страницу',
 'redirect-submit' => 'Иди',
 'redirect-value' => 'Вредност:',
+'redirect-user' => 'Кориснички ID:',
 'redirect-page' => 'ID странице',
 'redirect-file' => 'Назив датотеке',
 'redirect-not-exists' => 'Вредност није пронађена',
@@ -4451,9 +4472,10 @@ $5
 'rotate-comment' => 'Слика је ротирана у смеру казаљке на сату за {{PLURAL:$1|степени}}',
 
 # Limit report
+'limitreport-cputime-value' => '$1 {{PLURAL:$1|секунда|секунд|секунди}}',
 'limitreport-walltime-value' => '$1 {{PLURAL:$1|секунда|секунди}}',
-'limitreport-postexpandincludesize-value' => '$1/$2 бајтова',
-'limitreport-templateargumentsize-value' => '$1/$2 бајтова',
+'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|бајт|бајта|бајтова}}',
+'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|бајт|бајта|бајтова}}',
 
 # Special:ExpandTemplates
 'expandtemplates' => 'Замена шаблона',
index d1b9c2b..f30eb87 100644 (file)
@@ -342,7 +342,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Pošalji mi primerke e-poruka koje pošaljem drugim korisnicima',
 'tog-diffonly' => 'Ne prikazuj sadržaj stranice ispod razlika',
 'tog-showhiddencats' => 'Prikaži skrivene kategorije',
-'tog-noconvertlink' => 'Onemogući pretvaranje naslova veza',
 'tog-norollbackdiff' => 'Izostavi razliku nakon izvršenog vraćanja',
 'tog-useeditwarning' => 'Upozori me kada napuštam stranicu sa nesačuvanim promenama',
 'tog-prefershttps' => 'Uvek koristi sigurnu konekciju kada sam prijavljen.',
@@ -552,7 +551,6 @@ $1',
 'disclaimers' => 'Odricanje odgovornosti',
 'disclaimerpage' => 'Project:Odricanje odgovornosti',
 'edithelp' => 'Pomoć pri uređivanju',
-'helppage' => 'Help:Sadržaj',
 'mainpage' => 'Glavna strana',
 'mainpage-description' => 'Glavna strana',
 'policy-url' => 'Project:Pravila',
@@ -743,8 +741,6 @@ Imajte na umu da neke stranice mogu nastaviti da se prikazuju kao da ste još pr
 'gotaccountlink' => 'Prijava',
 'userlogin-resetlink' => 'Zaboravili ste podatke za prijavu?',
 'userlogin-resetpassword-link' => 'Zaboravili ste 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 (opciono)',
@@ -829,6 +825,10 @@ Molimo vas da sačekate $1 pre nego što pokušate ponovo.',
 'login-abort-generic' => 'Neuspešna prijava – prekinuto',
 'loginlanguagelabel' => 'Jezik: $1',
 'suspicious-userlogout' => 'Vaš zahtev za odjavu je odbijen jer je poslat od strane neispravnog pregledača ili posrednika.',
+'pt-login' => 'Prijavi me',
+'pt-login-button' => 'Prijavi me',
+'pt-createaccount' => 'Otvori nalog',
+'pt-userlogout' => 'Odjavi me',
 
 # Email sending
 'php-mail-error-unknown' => 'Nepoznata greška u funkciji PHP mail().',
@@ -856,6 +856,7 @@ Možda ste već promenili lozinku ili ste zatražili novu privremenu lozinku.',
 # Special:PasswordReset
 'passwordreset' => 'Obnavljanje lozinke',
 'passwordreset-text-one' => 'Popunite ovaj obrazac da biste resetovali lozinku.',
+'passwordreset-text-many' => '{{PLURAL:$1|Ispunite jedno od polja kako bi ste dobili privremenu lozinku na e-poštu.}}',
 'passwordreset-legend' => 'Poništi lozinku',
 'passwordreset-disabled' => 'Obnavljanje lozinke je onemogućeno na ovom vikiju.',
 'passwordreset-username' => 'Korisničko ime:',
@@ -978,7 +979,7 @@ Možda je premešten ili obrisan dok ste pregledali stranicu.',
 'accmailtext' => 'Lozika za {{GENDER:$1|korisnika|korisnicu}} [[User talk:$1|$1]] je poslata na $2. Nakon prijave, lozinka se može promeniti [[Special:ChangePassword|ovde]].',
 'newarticle' => '(novi)',
 'newarticletext' => 'Došli ste na stranicu koja još ne postoji.
-Da biste je napravili, počnite kucati u prozor ispod ovog teksta (pogledajte [[{{MediaWiki:Helppage}}|stranicu za pomoć]]).
+Da biste je napravili, počnite kucati u prozor ispod ovog teksta (pogledajte [$1 stranicu za pomoć]).
 Ako ste ovde došli greškom, vratite se na prethodnu stranicu.',
 'anontalkpagetext' => '---- Ovo je stranica za razgovor s anonimnim korisnikom koji još nema nalog ili ga ne koristi.
 Zbog toga moramo da koristimo brojčanu IP adresu kako bismo ga prepoznali.
@@ -1224,8 +1225,6 @@ Ipak možete da vidite ovu razliku; više detalja možete naći u [{{fullurl:{{#
 'revdelete-show-file-submit' => 'Da',
 'revdelete-selected' => "'''{{PLURAL:$2|Izabrana izmena|Izabrane izmene}} stranice [[:$1]]'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Izabrana stavka u istoriji|Izabrane stavke u istoriji}}:'''",
-'revdelete-text' => "'''Obrisane izmene će i dalje biti prikazane u istoriji stranica i zapisima, ali delovi njihovog sadržaja neće biti dostupni javnosti.'''
-Drugi administratori na ovom vikiju će i dalje imati pristup sakrivenom sadržaju, a oni će taj sadržaj moći da vrate putem ovog sučelja, osim ako nisu postavljena dodatna ograničenja.",
 'revdelete-confirm' => 'Potvrdite da nameravate ovo uraditi, da razumete posledice i da to činite u skladu s [[{{MediaWiki:Policy-url}}|pravilima]].',
 'revdelete-suppress-text' => "Sakrivanje izmena bi trebalo koristiti '''samo''' u sledećim slučajevima:
 * Zlonamerni ili pogrdni podaci
@@ -1663,18 +1662,30 @@ Ako izaberete da ga unesete, ono će biti korišćeno za pripisivanje vašeg rad
 'recentchanges-label-plusminus' => 'Promena veličine stranice (u bajtovima)',
 'recentchanges-legend-heading' => "'''Legenda:'''",
 'recentchanges-legend-newpage' => '([[Special:NewPages|spisak novih stranica]])',
-'rcnotefrom' => 'Ispod su izmene od <b>$3; $4</b> (do <b>$1</b> izmena).',
+'rcnotefrom' => 'Ispod su izmene od <b>$2</b> (do <b>$1</b> izmena).',
 'rclistfrom' => 'Prikaži nove izmene počev od $1',
 'rcshowhideminor' => '$1 manje izmene',
+'rcshowhideminor-show' => 'Prikaži',
+'rcshowhideminor-hide' => 'Sakrij',
 'rcshowhidebots' => '$1 botove',
+'rcshowhidebots-show' => 'Prikaži',
+'rcshowhidebots-hide' => 'Sakrij',
 'rcshowhideliu' => '$1 prijavljene korisnike',
+'rcshowhideliu-show' => 'Prikaži',
+'rcshowhideliu-hide' => 'Sakrij',
 'rcshowhideanons' => '$1 anonimne korisnike',
+'rcshowhideanons-show' => 'Prikaži',
+'rcshowhideanons-hide' => 'Sakrij',
 'rcshowhidepatr' => '$1 patrolirane izmene',
+'rcshowhidepatr-show' => 'Prikaži',
+'rcshowhidepatr-hide' => 'Sakrij',
 'rcshowhidemine' => '$1 moje izmene',
+'rcshowhidemine-show' => 'Prikaži',
+'rcshowhidemine-hide' => 'Sakrij',
 'rclinks' => 'Prikaži poslednjih $1 izmena {{PLURAL:$2|prethodni dan|u poslednja $2 dana|u poslednjih $2 dana}}<br />$3',
 'diff' => 'razl',
 'hist' => 'ist',
-'hide' => 'sakrij',
+'hide' => 'Sakrij',
 'show' => 'Prikaži',
 'minoreditletter' => ' m',
 'newpageletter' => 'N',
@@ -2166,15 +2177,24 @@ Sada je preusmerenje na [[$2]].',
 'deadendpages' => 'Stranice bez unutrašnjih veza',
 'deadendpagestext' => 'Sledeće stranice nemaju veze do drugih stranica na ovom vikiju.',
 'protectedpages' => 'Zaštićene stranice',
-'protectedpages-indef' => 'samo neograničene zaštite',
-'protectedpages-cascade' => 'samo prenosive zaštite',
-'protectedpages-noredirect' => 'sakrij preusmerenja',
+'protectedpages-indef' => 'Samo neograničene zaštite',
+'protectedpages-cascade' => 'Samo prenosive zaštite',
+'protectedpages-noredirect' => 'Sakrij preusmerenja',
 'protectedpagesempty' => 'Nema zaštićenih stranica s ovim parametrima.',
+'protectedpages-timestamp' => 'Vreme i datum',
+'protectedpages-page' => 'Stranica',
+'protectedpages-expiry' => 'Ističe',
+'protectedpages-performer' => 'Zaštitio',
+'protectedpages-params' => 'Nivo zaštite',
+'protectedpages-reason' => 'Razlog',
+'protectedpages-unknown-timestamp' => 'nema',
+'protectedpages-unknown-performer' => 'nema',
 'protectedtitles' => 'Zaštićeni naslovi',
 'protectedtitlesempty' => 'Nema zaštićenih naslova s ovim parametrima.',
 'listusers' => 'Spisak korisnika',
-'listusers-editsonly' => 'prikaži samo korisnike koji su uređivali',
-'listusers-creationsort' => 'poređaj po datumu stvaranja',
+'listusers-editsonly' => 'Prikaži samo korisnike koji su uređivali',
+'listusers-creationsort' => 'Poređaj po datumu stvaranja',
+'listusers-desc' => 'Sortiraj u opadajućem redosledu',
 'usereditcount' => '$1 {{PLURAL:$1|izmena|izmene|izmena}}',
 'usercreated' => '{{GENDER:$3|je napravio|je napravila|je napravio}} dana $1 u $2',
 'newpages' => 'Nove stranice',
@@ -2622,6 +2642,7 @@ Izveštaj o blokiranim korisnicima se nalazi ispod:',
 'sp-contributions-search' => 'Pretraga doprinosa',
 'sp-contributions-username' => 'IP adresa ili korisničko ime:',
 'sp-contributions-toponly' => 'Prikaži samo najnovije izmene',
+'sp-contributions-newonly' => 'Prikaži samo izmene kojima su kreirane nove stranice',
 'sp-contributions-submit' => 'Pretraži',
 
 # What links here
@@ -2919,6 +2940,7 @@ Posetite [https://www.mediawiki.org/wiki/Localisation Medijaviki lokalizaciju] i
 'allmessages-prefix' => 'Filtriraj po prefiksu:',
 'allmessages-language' => 'Jezik:',
 'allmessages-filter-submit' => 'Idi',
+'allmessages-filter-translate' => 'Prevedi',
 
 # Thumbnails
 'thumbnail-more' => 'Povećaj',
@@ -3553,7 +3575,7 @@ $8',
 'exif-compression-34712' => 'JPEG2000',
 
 'exif-copyrighted-true' => 'Zaštićeno autorskim pravom',
-'exif-copyrighted-false' => 'Status autorskih prava nije podešen',
+'exif-copyrighted-false' => 'Status autorskih prava nije definisan',
 
 'exif-photometricinterpretation-2' => 'RGB',
 'exif-photometricinterpretation-6' => 'YCbCr',
@@ -3885,6 +3907,9 @@ Potvrdite da stvarno želite da napravite stranicu.",
 'imgmultigo' => 'Idi!',
 'imgmultigoto' => 'Idi na stranicu $1',
 
+# Language selector for translatable SVGs
+'img-lang-go' => 'Idi',
+
 # Table pager
 'ascending_abbrev' => 'rast.',
 'descending_abbrev' => 'opad.',
@@ -4033,6 +4058,11 @@ Možete da [[Special:EditWatchlist|koristite i običan uređivač]].',
 'version-version' => '(izdanje $1)',
 'version-svn-revision' => '(izm. $2)',
 'version-license' => 'Licenca',
+'version-ext-license' => 'Licenca',
+'version-ext-colheader-version' => 'Verzija',
+'version-ext-colheader-license' => 'Licenca',
+'version-ext-colheader-description' => 'Opis',
+'version-ext-colheader-credits' => 'Autori',
 'version-poweredby-credits' => "Ovaj viki pokreće '''[https://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]].',
@@ -4068,6 +4098,7 @@ Trebalo bi da ste primili [{{SERVER}}{{SCRIPTPATH}}/COPYING primerak GNU-ove op
 
 # Special:SpecialPages
 'specialpages' => 'Posebne stranice',
+'specialpages-note-top' => 'Legenda',
 'specialpages-note' => '* Normalne posebne stranice
 * <span class="mw-specialpagerestricted">Ograničene posebne stranice</span>',
 'specialpages-group-maintenance' => 'Izveštaji održavanja',
index a7cde7e..8b65866 100644 (file)
@@ -338,7 +338,6 @@ $messages = array(
 'disclaimers' => 'Disclaimers',
 'disclaimerpage' => 'Project:Disclaimer gi ala',
 'edithelp' => 'Yepi nanga kenki',
-'helppage' => 'Help:San de',
 'mainpage' => 'Fesipapira',
 'mainpage-description' => 'Fesipapira',
 'policy-url' => 'Project:Polisi',
@@ -545,7 +544,7 @@ Yu IP now na $3 en a tapu pasi ID na #$5. Gi wan, noso ala tu, ini yu brifi te y
 'accmailtitle' => 'Waktiwortu ben stir.',
 'accmailtext' => 'A waktiwortu fu "$1" ben stir na $2.',
 'newarticle' => '(Nyun)',
-'newarticletext' => "Yu e pruberi fu opo wan papira di no de ete. Fu meki a papira, bigin skrifi ini a boksu dyaso na ondrosey (luku ini [[{{MediaWiki:Helppage}}|yepipapira]] gi yepi).
+'newarticletext' => "Yu e pruberi fu opo wan papira di no de ete. Fu meki a papira, bigin skrifi ini a boksu dyaso na ondrosey (luku ini [$1 yepipapira] gi yepi).
 Kebroiki a '''back''' knopo ini yu browser, efu yu no ben wan opo a papira disi.",
 'noarticletext' => 'A papira disi leigi.
 Yu kan [[Special:Search/{{PAGENAME}}|suku a papira nen disi]] ini tra papira noso <span class="plainlinks">[{{fullurl:{{FULLPAGENAME}}|action=edit}} kenki a papira disi]</span>.',
index 90f54a7..9b54756 100644 (file)
@@ -275,7 +275,6 @@ $1',
 'disclaimers' => 'Begriepskläärenge',
 'disclaimerpage' => 'Project:Siede tou Begriepskläärenge',
 'edithelp' => 'Beoarbaidengshälpe',
-'helppage' => 'Help:Hälpe',
 'mainpage' => 'Haudsiede',
 'mainpage-description' => 'Haudsiede',
 'policy-url' => 'Project:Laitlienjen',
@@ -621,7 +620,7 @@ Dät Paaswoud foar dit näie Benutserkonto kon ap ju Spezioalsiede
 „[[Special:ChangePassword|Paaswoud annerje]]“ annerd wäide.',
 'newarticle' => '(Näi)',
 'newarticletext' => "Du hääst n Link foulged ätter ne Siede, ju dät noch nit rakt.
-Uum ju Siede tou moakjen, dien Text fon dän näie Artikkel iendreege in ju unnerstoundene Box (sjuch ju [[{{MediaWiki:Helppage}}|Hälpesiede]] foar moor Informatione).
+Uum ju Siede tou moakjen, dien Text fon dän näie Artikkel iendreege in ju unnerstoundene Box (sjuch ju [$1 Hälpesiede] foar moor Informatione).
 Bäst du hier bie Fersjoon, klik ju '''Tourääch'''-Skaltfläche fon din Browser.",
 'anontalkpagetext' => "----''Dit is ju Diskussionssiede fon n uunbekoanden Benutser, die sik nit anmälded häd.
 Wail naan Noome deer is, wäd ju nuumeriske IP-Adrässe tou Identifizierenge ferwoand.
@@ -832,8 +831,6 @@ Du koast dissen Versionsunnerskeed bekiekje, wan du wolt. Details fiende sik in
 'revdelete-show-file-submit' => 'Jee',
 'revdelete-selected' => "'''{{PLURAL:$2|Uutwäälde Version|Uutwäälde Versione}} fon [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Uutwäälden Logboukiendraach|Uutwäälde Logboukiendraage}}:'''",
-'revdelete-text' => "'''Läskede Versione un Aktione ferblieuwe in ju Versionsgeskichte un do Logbouke, man Deele deerfon sunt nit eepentelk ientoukiekjen.'''
-Uur Administratore ap {{SITENAME}} hääbe Tougriep ap dän ferstatte Inhoold un konnen him mäd ju glieke Siede wier moakje, insowied uurhoop neen Ientuunengen bestounde.",
 'revdelete-confirm' => 'Bestäätigje, dät du dit wuddelk dwo wolt, dät du do Konsequenze ferstoanst un dät in Uureenstimmenge mäd do [[{{MediaWiki:Policy-url}}|Gjuchtlienjen]] dääst.',
 'revdelete-suppress-text' => "Unnerdrukkengen skuulen '''bloot''' in do foulgjende Fälle foarnuumen waide:
 * Uunpaasende persöönelke Informatione
index 687b18c..c1b56c2 100644 (file)
@@ -164,7 +164,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Kirimkeun ogé salinan surélékna ka alamat kuring',
 'tog-diffonly' => 'Ulah némbongkeun eusi kaca di handapeun béda éditan',
 'tog-showhiddencats' => 'Témbongkeun kategori nyumput',
-'tog-noconvertlink' => 'Non-aktifkeun konvérsi judul tumbu',
 'tog-norollbackdiff' => 'Liwat béda sanggeus malikkeun révisi',
 'tog-useeditwarning' => 'Béjaan kuring lamun ninggalkeun kaca édit anu parobahanana can disimpen',
 
@@ -360,7 +359,6 @@ $1',
 'disclaimers' => 'Bantahan',
 'disclaimerpage' => 'Project:Bantahan_umum',
 'edithelp' => 'Pitulung ngédit',
-'helppage' => 'Help:Pitulung',
 'mainpage' => 'Tepas',
 'mainpage-description' => 'Tepas',
 'policy-url' => 'Project:Kawijakan',
@@ -719,7 +717,7 @@ Sandi pikeun rekening anyar ieu bisa diganti dina kaca ''[[Special:ChangePasswor
 'newarticle' => '(anyar)',
 'newarticletext' => "Anjeun geus nuturkeun tutumbu ka kaca nu can aya.
 Pikeun nyieun kaca, mimitian ku ngetik jeroeun kotak di handap
-(tempo [[{{MediaWiki:Helppage}}|kaca pitulung]] pikeun leuwih écés).
+(tempo [$1 kaca pitulung] pikeun leuwih écés).
 Mun anjeun ka dieu teu ngahaja, klik baé tombol '''back''' na panyungsi anjeun.",
 'anontalkpagetext' => "----''Ieu mangrupa kaca sawala pikeun pamaké anonim nu can (henteu) nyieun rekening, kusabab kitu alamat IP dipaké dina hal ieu pikeun nyirikeun anjeunna. Alamat IP ieu bisa dipaké ku sababaraha urang. Mun anjeun salasahiji pamaké anonim sarta ngarasa aya koméntar nu teu pakait geus ditujukeun ka anjeun, leuwih hadé [[Special:UserLogin|nyieun rekening atawa asup log]] sangkan teu pahili jeung pamaké anonim séjén.''",
 'noarticletext' => 'Kiwari can aya téks dina ieu kaca.
@@ -904,8 +902,6 @@ Salaku kuncen, mun perlu, anjeun bisa kénéh [$1 nempo bédana].",
 'revdelete-show-file-submit' => 'Enya',
 'revdelete-selected' => "'''{{PLURAL:$2|Révisi pilihan|Révisi pilihan}} pikeun '''$1''''''",
 'logdelete-selected' => "'''{{PLURAL:$1|pilihan keur log|pilihan keur log}}:'''",
-'revdelete-text' => "'''Revisi sarta tindakan anu geus dihapus baris tetep mecenghul di kaca vérsi tiheula, tapi teks eusi henteu bisa diakses ku publik.'''
-Kuncén séjén bakalan bisa ngakses eusi nu nyumput sarta bisa ngabolaykeun hapusan ngaliwatan antarmuka anu sarua, kajaba lamun aya pangbates séjén anu dijieun ku operator loka",
 'revdelete-confirm' => 'Mangga geura konfirmasi yen Anjeun gaduh maksad pikeun ngalakukeun hal ieu, paham kana konsekwensina, tur nu dilakukeun ieu teh luyu sareng [[{{MediaWiki:Policy-url}}|kawijakanana]]',
 'revdelete-suppress-text' => "Nyumputkeun revisi '''ukur''' bisa digunakeun keur kasus-kasus di handap ieu:
 * Informasi nu boga potensi mitenah
index c710c70..4de2191 100644 (file)
@@ -362,7 +362,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Skicka kopior till mig av e-post jag skickar till andra användare',
 'tog-diffonly' => 'Visa inte sidinnehåll under diffar',
 'tog-showhiddencats' => 'Visa dolda kategorier',
-'tog-noconvertlink' => 'Stäng av konvertering av sidtitlar',
 'tog-norollbackdiff' => 'Visa inte diff efter tillbakarullning',
 'tog-useeditwarning' => 'Varna mig om jag lämnar en redigeringssida där jag gjort ändringar men inte sparat.',
 'tog-prefershttps' => 'Använd alltid en säker anslutning när jag är inloggad',
@@ -574,7 +573,6 @@ $1',
 'disclaimers' => 'Förbehåll',
 'disclaimerpage' => 'Project:Allmänt förbehåll',
 'edithelp' => 'Redigeringshjälp',
-'helppage' => 'Help:Innehåll',
 'mainpage' => 'Huvudsida',
 'mainpage-description' => 'Huvudsida',
 'policy-url' => 'Project:Riktlinjer',
@@ -773,8 +771,7 @@ Glöm inte att justera dina [[Special:Preferences|{{SITENAME}}-inställningar]].
 'gotaccountlink' => 'Logga in',
 'userlogin-resetlink' => 'Har du glömt dina inloggningsuppgifter?',
 'userlogin-resetpassword-link' => 'Glömt ditt lösenord?',
-'helplogin-url' => 'Help:Logga in',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hjälp med inloggning]]',
+'userlogin-helplink2' => 'Hjälp med inloggning',
 'userlogin-loggedin' => 'Du är redan inloggad som {{GENDER:$1|$1}}.
 Använd formuläret nedan för att logga in som en annan användare.',
 'userlogin-createanother' => 'Skapa ett annat konto',
@@ -865,6 +862,7 @@ Vänta $1 innan du försöker igen.',
 'createacct-another-realname-tip' => 'Riktiga namnet är valfritt.
 Om du väljer att ange det, kommer det användas för att tillskriva användaren för sitt arbete.',
 'pt-login' => 'Logga in',
+'pt-login-button' => 'Logga in',
 'pt-createaccount' => 'Skapa konto',
 'pt-userlogout' => 'Logga ut',
 
@@ -897,7 +895,10 @@ För att slutföra inloggningen måste du välja ett nytt lösenord här:',
 'resetpass-temp-password' => 'Tillfälligt lösenord:',
 'resetpass-abort-generic' => 'Lösenordsändring av har avbrutits av ett tillägg.',
 'resetpass-expired' => 'Ditt lösenord har gått ut. Var god välj ett nytt lösenord för att logga in.',
-'resetpass-expired-soft' => 'Ditt lösenord har gått ut och behöver återställas. Var god välj ett nytt lösenord nu eller klicka på avbryt för att återställa det senare.',
+'resetpass-expired-soft' => 'Ditt lösenord har gått ut och behöver återställas. Var god välj ett nytt lösenord nu eller klicka på "{{int:resetpass-submit-cancel}}" för att återställa det senare.',
+'resetpass-validity-soft' => 'Ditt lösenord är ogiltigt: $1
+
+Var god välj ett nytt lösenord nu eller klicka på "{{int:resetpass-submit-cancel}}" för att återställa det senare.',
 
 # Special:PasswordReset
 'passwordreset' => 'Återställ lösenord',
@@ -1038,7 +1039,7 @@ Det kan ha flyttats eller raderats medan du tittade på sidan.',
 'accmailtitle' => 'Lösenord skickat.',
 'accmailtext' => "Ett slumpgenererat lösenord för [[User talk:$1|$1]] har skickats till $2. Det kan ändras på sidan ''[[Special:ChangePassword|ändra lösenord]]'' när du loggar in.",
 'newarticle' => '(Ny)',
-'newarticletext' => 'Du har klickat på en länk till en sida som inte finns ännu. För att skapa sidan, börja att skriva i fältet nedan (du kan läsa mer på [[{{MediaWiki:Helppage}}|hjälpsidan]]). Om du kom hit av misstag kan du bara trycka på <strong>tillbaka</strong>-knappen i din webbläsare.',
+'newarticletext' => 'Du har klickat på en länk till en sida som inte finns ännu. För att skapa sidan, börja att skriva i fältet nedan (du kan läsa mer på [$1 hjälpsidan]). Om du kom hit av misstag kan du bara trycka på <strong>tillbaka</strong>-knappen i din webbläsare.',
 'anontalkpagetext' => "----''Detta är diskussionssidan för en anonym användare som inte ännu skapat ett konto, eller som inte använder det.
 Därför måste vi använda den numeriska IP-adressen för att identifiera honom/henne.
 En sådan IP-adress kan delas av flera användare.
@@ -1286,8 +1287,10 @@ eller så försöker du gömma den senaste versionen av sidan.',
 'revdelete-show-file-submit' => 'Ja',
 'revdelete-selected' => "'''{{PLURAL:$2|Vald version|Valda versioner}} av [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Vald loggåtgärd|Valda loggåtgärder}}:'''",
-'revdelete-text' => "'''Borttagna versioner och åtgärder kommer fortfarande att synas i historiken och i loggar, men deras innehåll kommer ej att vara tillgängligt för allmänheten.'''
-Andra administratörer på {{SITENAME}} kommer fortfarande att kunna läsa det dolda innehållet och kan återställa sidan genom samma gränssnitt, om inte ytterligare begränsningar finns.",
+'revdelete-text-text' => 'Raderade sidversioner kommer fortfarande synas i sidans historik, men delar av innehållet kommer inte att bli tillgängligt offentligt.',
+'revdelete-text-file' => 'Raderade filversioner kommer fortfarande synas i filens historik, men delar av innehållet kommer inte att bli tillgängligt offentligt.',
+'logdelete-text' => 'Raderade logghändelser kommer fortfarande synas i loggarna, men delar av innehållet kommer inte att bli tillgängligt offentligt.',
+'revdelete-text-others' => 'Andra administratörer på {{SITENAME}} kommer fortfarande att kunna komma åt det dolda innehållet och återställa det igen genom samma gränssnitt om inte tilläggande begränsningar används.',
 'revdelete-confirm' => 'Var god bekräfta att du vill göra detta, och att du förstår konsekvenserna, och att du gör så i enlighet med [[{{MediaWiki:Policy-url}}|policyn]].',
 'revdelete-suppress-text' => "Undanhållande ska '''bara''' användas i följande fall:
 * Eventuell förolämpande information
@@ -1423,7 +1426,7 @@ Detaljer kan hittas i [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}
 'search-file-match' => '(överensstämmer filens innehåll)',
 'search-suggest' => 'Menade du: $1',
 'search-interwiki-caption' => 'Systerprojekt',
-'search-interwiki-default' => 'Resultat i $1:',
+'search-interwiki-default' => 'Resultat från $1:',
 'search-interwiki-more' => '(mer)',
 'search-relatedarticle' => 'Relaterad',
 'searcheverything-enable' => 'Sök i alla namnrymder',
@@ -1750,7 +1753,7 @@ Om du väljer att ange ditt riktiga namn, kommer det att användas för att till
 'recentchanges-legend-heading' => "'''Teckenförklaring:'''",
 'recentchanges-legend-newpage' => '(se även [[Special:NewPages|listan över nya sidor]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "Nedan visas ändringar sedan '''$2''' (upp till '''$1''' ändringar visas).",
+'rcnotefrom' => 'Nedan visas ändringar sedan <strong>$2</strong> (upp till <strong>$1</strong> ändringar visas).',
 'rclistfrom' => 'Visa ändringar från och med $1',
 'rcshowhideminor' => '$1 mindre ändringar',
 'rcshowhideminor-show' => 'Visa',
@@ -1897,6 +1900,7 @@ Du borde be någon som kan se undanhållen fildata att granska situationen innan
 'uploaddisabledtext' => 'Uppladdning av filer är avstängd.',
 'php-uploaddisabledtext' => 'PHP filuppladdningar är avaktiverade. Kolla inställningarna för file_uploads.',
 'uploadscripted' => 'Denna fil innehåller HTML eller script som felaktigt kan komma att tolkas av webbläsare.',
+'uploadscriptednamespace' => 'Denna SVG-fil innehåller den ogiltiga namnrymden "$1"',
 'uploadinvalidxml' => 'XML-koden i den uppladdade filen kunde inte tolkas.',
 'uploadvirus' => 'Filen innehåller virus! Detaljer: $1',
 'uploadjava' => 'Filen är en ZIP-fil som innehåller en Java .class fil.
@@ -2265,7 +2269,7 @@ Varje rad innehåller länkar till den första och andra omdirigeringsidan, samt
 'deadendpagestext' => 'Följande sidor saknar länkar till andra sidor på {{SITENAME}}.',
 'protectedpages' => 'Skyddade sidor',
 'protectedpages-indef' => 'Endast skydd på obestämd tid',
-'protectedpages-summary' => 'Denna sida listar befintliga sidor som för närvarande är skyddade. För en lista över titlar som skyddas från att skapas, se [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Denna sida listar befintliga sidor som för närvarande är skyddade. För en lista över titlar som skyddas från att skapas, se [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Endast kaskaderande skydd',
 'protectedpages-noredirect' => 'Dölj omdirigeringar',
 'protectedpagesempty' => 'Inga sidor är skyddade under de villkoren.',
@@ -2278,7 +2282,7 @@ Varje rad innehåller länkar till den första och andra omdirigeringsidan, samt
 'protectedpages-unknown-timestamp' => 'Okänd',
 'protectedpages-unknown-performer' => 'Okänd användare',
 'protectedtitles' => 'Skyddade titlar',
-'protectedtitles-summary' => 'Denna sida listar de titlar som skyddas från att skapas. För en lista över befintliga sidor som är skyddade, se [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Denna sida listar de titlar som skyddas från att skapas. För en lista över befintliga sidor som är skyddade, se [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Just nu finns inga skyddade sidtitlar med de parametrarna.',
 'listusers' => 'Användarlista',
 'listusers-editsonly' => 'Visa endast användare som redigerat',
@@ -2550,7 +2554,8 @@ Se $2 för noteringar om de senaste raderingarna.',
 'delete-edit-reasonlist' => 'Redigera anledningar för radering',
 'delete-toobig' => 'Denna sida har en lång redigeringshistorik med mer än $1 {{PLURAL:$1|sidversion|sidversioner}}. Borttagning av sådana sidor har begränsats för att förhindra oavsiktliga driftstörningar på {{SITENAME}}.',
 'delete-warning-toobig' => 'Denna sida har en lång redigeringshistorik med mer än $1 {{PLURAL:$1|sidversion|sidversioner}}. Att radera sidan kan skapa problem med hanteringen av databasen på {{SITENAME}}; var försiktig.',
-'deleting-backlinks-warning' => "'''Varning:''' Andra sidor länkar till eller inkluderar sidan som du är på väg att radera.",
+'deleting-backlinks-warning' => "'''Varning:'''
+[[Special:WhatLinksHere/{{FULLPAGENAME}}|Andra sidor]] länkar till eller inkluderar sidan som du är på väg att radera.",
 
 # Rollback
 'rollback' => 'Rulla tillbaka ändringar',
@@ -2602,7 +2607,7 @@ Nuvarande skrivskyddsinställning för sidan '''$1''' är:",
 'protect-locked-access' => "Ditt konto har inte behörighet att ändra skrivskydd på sidor.
 Nuvarande skrivskyddsinställning för sidan '''$1''' är:",
 'protect-cascadeon' => 'Den här sidan är skrivskyddad eftersom den inkluderas på följande {{PLURAL:$1|sida|sidor}} som har ett kaskaderande skydd.
-Du kan ändra skyddet av den här sidan, men det påverkar inte det kaskaderande skyddet.',
+Ändringar i skyddet för den här sidan kommer inte påverka det kaskaderande skyddet.',
 'protect-default' => 'Tillåt alla användare',
 'protect-fallback' => 'Kräv "$1"-behörighet',
 'protect-level-autoconfirmed' => 'Blockera nya och oregistrerade användare',
@@ -2724,8 +2729,10 @@ Orsaken till senaste blockeringen kan ses nedan:',
 'sp-contributions-blocked-notice-anon' => 'Denna IP-adress är för närvarande blockerad.
 Den senaste posten i blockeringsloggen visas nedan som referens:',
 'sp-contributions-search' => 'Sök efter användarbidrag',
+'sp-contributions-suppresslog' => 'undanhållna användarbidrag',
 'sp-contributions-username' => 'IP-adress eller användarnamn:',
 'sp-contributions-toponly' => 'Visa endast aktuella sidversioner',
+'sp-contributions-newonly' => 'Visa endast redigeringar där sidor skapas',
 'sp-contributions-submit' => 'Sök',
 
 # What links here
@@ -3137,7 +3144,7 @@ Vänligen använd förhandsgranskningsknappen innan du sparar.',
 'tooltip-n-currentevents' => 'Hitta bakgrundsinformation om aktuella händelser',
 'tooltip-n-recentchanges' => 'Lista över senaste ändringar i wikin',
 'tooltip-n-randompage' => 'Gå till en slumpmässigt vald sida',
-'tooltip-n-help' => 'Platsen för att hitta',
+'tooltip-n-help' => 'Platsen där du hittar hjälp',
 'tooltip-t-whatlinkshere' => 'Lista över alla wikisidor som länkar hit',
 'tooltip-t-recentchangeslinked' => 'Visa senaste ändringarna av sidor som den här sidan länkar till',
 'tooltip-feed-rss' => 'RSS-flöde för den här sidan',
index e36071a..0f03506 100644 (file)
@@ -160,7 +160,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Nitumie nakala ya barua pepe nitakazo tuma kwa watumiaji wengine',
 'tog-diffonly' => 'Usionyeshe yaliyomo kwenye ukurasa chini ya faili za diff',
 'tog-showhiddencats' => 'Onyesha jamii zilizofichwa',
-'tog-noconvertlink' => 'Lemaza kiungo cha jina la badiliko',
 'tog-norollbackdiff' => 'Ondoa faili za diff baada ya kufanyakazi ya kurejesha',
 'tog-useeditwarning' => 'Unionyeshe ilani ninapotaka kutoka kwenye ukurasa ninouhariri, bila kuhifadhi mabadiliko',
 
@@ -369,7 +368,6 @@ $1',
 'disclaimers' => 'Kanusho',
 'disclaimerpage' => 'Project:Kanusho kwa jumla',
 'edithelp' => 'Usaidizi kwa uhariri',
-'helppage' => 'Help:Yaliyomo',
 'mainpage' => 'Mwanzo',
 'mainpage-description' => 'Mwanzo',
 'policy-url' => 'Project:Sera',
@@ -772,7 +770,7 @@ Labda ilihamishwa au ilifutwa endapo unatazama ukurasa.',
 
 Unaweza kubadilisha neno la siri hili kwenye ukurasa wa ''[[Special:ChangePassword|kubadilisha neno la siri]]'' baada ya kuingia kwenye wiki.",
 'newarticle' => '(Mpya)',
-'newarticletext' => "Ukurasa unaotaka haujaandikwa bado. Ukipenda unaweza kuuandika wewe mwenyewe kwa kutumia sanduku la hapa chini (tazama [[{{MediaWiki:Helppage}}|Mwongozo]] kwa maelezo zaidi). Ukifika hapa kwa makosa, bofya kibonyezi '''back''' (nyuma) cha programu yako.",
+'newarticletext' => "Ukurasa unaotaka haujaandikwa bado. Ukipenda unaweza kuuandika wewe mwenyewe kwa kutumia sanduku la hapa chini (tazama [$1 Mwongozo] kwa maelezo zaidi). Ukifika hapa kwa makosa, bofya kibonyezi '''back''' (nyuma) cha programu yako.",
 'anontalkpagetext' => "----''Huu ni ukurasa wa majadiliano wa mtumiaji ambaye hana jina na bado hajaumba akaunti bado, au hajawahi kutumia kabisa.
 Kwa hiyo tunatumia namba za anwani ya IP yake kumtambulisha.
 Anwani ya IP kama hiyo inaweza kutumika na watumiaji kadhaa.
@@ -978,8 +976,6 @@ Unaweza masasisho; maelezo mengine yapo kwenye [{{fullurl:{{#Special:Log}}/delet
 'revdelete-show-file-submit' => 'Ndiyo',
 'revdelete-selected' => "'''{{PLURAL:$2|Pitio lililoteuliwa|Mapitio yaliyoteuliwa}} ya [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Tukio la kumbukumbu lililoteuliwa|Matukio ya kumbukumbu yaliyoteuliwa}}:'''",
-'revdelete-text' => "'''Mapitio bado yataonekana kwenye ukurasa wa historia na matukio bado yataonekana kwenye kumbukumbu, lakini baadhi ya yaliyomo haitaonekana mbele ya watu wote.'''
-Wakabidhi wengine wa {{SITENAME}} bado wataweza kuliona lile lililofichwa pamoja na kulirudisha kwa kuutumia ukurasa maalum huu huu, isipowekewa vizuio vingine.",
 'revdelete-confirm' => 'Tafadhali uthibitishe kwamba unataka kufanya hivyo, pamoja na kwamba unaelewa matokeo yake, na unafanya hivyo kutokana na [[{{MediaWiki:Policy-url}}|sera yetu]].',
 'revdelete-suppress-text' => "Kuficha kunaruhisiwa '''tu''' wakati hizo:
 * Taarifa zinazowezekana kwamba ni za kukashifu
index d1e150d..38d85b5 100644 (file)
@@ -309,7 +309,6 @@ $1',
 'disclaimers' => 'Prawne informacyje',
 'disclaimerpage' => 'Project:Prawne informacyje',
 'edithelp' => 'Půmoc we půmjyńańy',
-'helppage' => 'Help:Treść',
 'mainpage' => 'Przodńo zajta',
 'mainpage-description' => 'Przodńo zajta',
 'policy-url' => 'Project:Prawidła',
@@ -497,8 +496,6 @@ Pamjyntej coby posztalować [[Special:Preferences|preferencyji]]',
 'gotaccountlink' => 'Naloguj śe',
 'userlogin-resetlink' => 'Zapomńoł żeś dane lo nalogowańo?',
 'userlogin-resetpassword-link' => 'Ńy pamjyntosz hasła?',
-'helplogin-url' => 'Help:Logowańy',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Hilfa ze logowańym]]',
 'userlogin-loggedin' => 'Zalogowano kej {{GENDER:$1|$1}}. Użyj formulara půńiżyj, coby zalogować śe kej inkszy używocz.',
 'userlogin-createanother' => 'Twůrz inksze kůnto',
 'createacct-join' => 'Wszkryflej půńiżyj swoje dane.',
@@ -712,7 +709,7 @@ Możesz to zrobić we [[Special:Preferences|swojich sztalowańach]].',
 'accmailtitle' => 'Hasło posłane.',
 'accmailtext' => "Cufalńe hasło lo [[User talk:$1|$1]] uostoło posłane do $2. Hasło lo tygo nowygo kůnta po zalogowańu je mogebność pomjyńić na zajće ''[[Special:ChangePassword|pomjyńańe hasła]]''.",
 'newarticle' => '(Nowy)',
-'newarticletext' => 'Ńy mo sam jeszcze artikla uo takijj titli. Eli chcesz go sprowjać, naszkryflej niżyj jego tekst (wjyncy informacyj nojdźesz [[{{MediaWiki:Helppage}}|na zajće půmocy]]). Eli żeś chćoł zrobić cośik inksze, naćiś ino knefel "Nazod".',
+'newarticletext' => 'Ńy mo sam jeszcze artikla uo takijj titli. Eli chcesz go sprowjać, naszkryflej niżyj jego tekst (wjyncy informacyj nojdźesz [$1 na zajće půmocy]). Eli żeś chćoł zrobić cośik inksze, naćiś ino knefel "Nazod".',
 'anontalkpagetext' => "---- ''To je zajta godki lo anůnimowych używoczy  - takich, kerzi ńy majům jeszcze swojigo kůnta abo ńy chcům go terozki używać.
 By jejich idyntyfikować, używomy numerůw IP.
 Eli jeżeś anůnimowym używoczym a wydowo Ći śe, aże zamjyszczůne sam kůmyntorze ńy sům skjyrowane do Ćebje, [[Special:UserLogin/signup|utwůrz kůnto]] abo [[Special:UserLogin|zaloguj śe]] - beztůż uńikńesz potym podobnych ńyporozumjyń.''",
@@ -885,9 +882,6 @@ Powody wyćepańo idźe znejść we [{{fullurl:{{#Special:Log}}/suppress|page={{
 'revdelete-show-file-submit' => 'Ja',
 'revdelete-selected' => "'''{{PLURAL:$2|Wybrano wersyjo|Wybrane wersyje}} zajty [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Wybrane zdarzyńy ze rejeru|Wybrane zdarzyńa ze rejeru}}:'''",
-'revdelete-text' => "'''Wyćepane wersyje bydům dali widoczne w historyji zajty, nale jejich treść ńy bydźe publiczńy dostympna.'''
-
-Inkśi admińistratorzi {{GRAMMAR:D.lp|{{SITENAME}}}} dali bydům mjeć dostymp do schrůńůnych wersyji a bydům můgli je wćepać nazod, chyba aże uoperator serwisu nouożůł dodatkowe uograńiczyńo.",
 'revdelete-legend' => 'Naštaluj uograńičyńo lo wersyji:',
 'revdelete-hide-text' => 'Schrůń tekst wersyji',
 'revdelete-hide-image' => 'Schrůń zawartość plika',
index 9f41dbf..dc1338e 100644 (file)
@@ -336,7 +336,6 @@ $1',
 'disclaimers' => 'பொறுப்புத் துறப்புகள்',
 'disclaimerpage' => 'Project:பொதுவான பொறுப்புத் துறப்புகள்',
 'edithelp' => 'தொகுத்தலுக்கான உதவி',
-'helppage' => 'Help:உதவி',
 'mainpage' => 'முதற் பக்கம்',
 'mainpage-description' => 'முதற் பக்கம்',
 'policy-url' => 'Project:கொள்கை',
@@ -517,8 +516,6 @@ $1',
 'gotaccountlink' => 'புகுபதிகை',
 'userlogin-resetlink' => 'உங்கள் புகுபதிகைக் குறிப்புகளை மறந்துவிட்டீர்களா?',
 'userlogin-resetpassword-link' => 'உங்கள் கடவுச் சொல்லை மறந்து விட்டீர்களா?',
-'helplogin-url' => 'Help:புகுபதிகை',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|புகுபதிவதற்கான உதவி]]',
 'userlogin-createanother' => 'மற்றொரு கணக்கு ஒன்றை உருவாக்கவும்',
 'createacct-join' => 'உங்களின் தகவலை கீழிடவும்',
 'createacct-another-join' => 'கீழே புதிய கணக்கிற்கான தகவல்களை உள்ளிடவும்.',
@@ -605,6 +602,9 @@ $1',
 'suspicious-userlogout' => 'உங்கள் விடுபதிகை கோரிக்கை மறுக்கப்பட்டது ஏனென்றால் அது அறுபட்ட உலாவி அல்லது மாற்று இடைக்கிடங்கியால் அனுப்பப்பட்டுள்ளது.',
 'createacct-another-realname-tip' => 'உண்மையான பெயர் கட்டாயமற்றது.
 நீங்கள் இதை கொடுத்தால் உங்கள் ஆக்கங்களுக்கான உரிமையளிப்புகளின் போது இது பயன்படும்.',
+'pt-login' => 'புகுபதிகை',
+'pt-createaccount' => 'புதிய கணக்கை உருவாக்கவும்',
+'pt-userlogout' => 'விடுபதிகை',
 
 # Email sending
 'php-mail-error-unknown' => "PHP 's mail() செயல்பாட்டில் அறியப்படாத பிழை.",
@@ -613,7 +613,7 @@ $1',
 
 # Change password dialog
 'changepassword' => 'கடவுச்சொல்லை மாற்று',
-'resetpass_announce' => 'நà¯\80à®\99à¯\8dà®\95ளà¯\8d à®¤à®±à¯\8dà®\95ாலிà®\95 à®®à®¿à®©à¯\8dனà®\9eà¯\8dà®\9aலà¯\8d à®\95à¯\81றியà¯\80à®\9fà¯\8dà®\9fà¯\81à®\9fனà¯\8d à®ªà¯\81à®\95à¯\81பதிà®\95à¯\88 à®\9aà¯\86யà¯\8dதà¯\81ளà¯\8dளà¯\80à®°à¯\8dà®\95ளà¯\8d. à®ªà¯\81à®\95à¯\81பதிà®\95à¯\88யà¯\88 à®¨à®¿à®±à¯\88வà¯\81à®\9aà¯\8d à®\9aà¯\86யà¯\8dய à®ªà¯\81தியà®\95à¯\8d à®\95à®\9fவà¯\81à®\9aà¯\8d à®\9aà¯\8aலà¯\8dலà¯\8aனà¯\8dà®±à¯\88 à®\87à®\99à¯\8dà®\95à¯\87 à®¤à®\9fà¯\8dà®\9fà®\9aிà®\9fà¯\81à®\95:',
+'resetpass_announce' => 'பà¯\81à®\95à¯\81பதிà®\95à¯\88யà¯\88 à®¨à®¿à®±à¯\88வà¯\81à®\9aà¯\8d à®\9aà¯\86யà¯\8dய à®ªà¯\81தியà®\95à¯\8d à®\95à®\9fவà¯\81à®\9aà¯\8d à®\9aà¯\8aலà¯\8dலà¯\8aனà¯\8dà®±à¯\88 à®¤à¯\87à®°à¯\8dவà¯\81 à®\9aà¯\86யà¯\8dயவà¯\87ணà¯\8dà®\9fà¯\81à®®à¯\8d.',
 'resetpass_header' => 'கணக்கிற்கான கடவுச்சொல்லை மாற்றியமை',
 'oldpassword' => 'பழைய கடவுச்சொல்:',
 'newpassword' => 'புதிய கடவுச்சொல்:',
@@ -627,6 +627,7 @@ $1',
 'resetpass-wrong-oldpass' => 'செல்லுபடியற்ற தற்காலிகமான அல்லது நடப்புக் கடவுச்சொல்.
 உங்கள் கடவுச் சொல்லை நீங்கள் வெற்றிகரமாக மாற்றிவிட்டீர்கள் அல்லது புதிய தற்காலிகக் கடவுச்சொல்லைக் கோரியுள்ளீர்கள்.',
 'resetpass-temp-password' => 'தற்காலிக கடவுச்சொல்:',
+'resetpass-expired' => 'உங்கள் கடவுச்சொல் காலாவதியாகிவிட்டது. உள்நுழைய ஒரு புதிய கடவுச்சொல்லை தெரிவுசெய்யவும்.',
 
 # Special:PasswordReset
 'passwordreset' => 'கடவுச்சொல்லை மீட்டமை',
@@ -748,7 +749,7 @@ $1 எனும் பயனரையோ வேறு [[{{MediaWiki:Grouppage-sy
 'accmailtitle' => 'கடவுச்சொல் அனுப்பப்பட்டுள்ளது.',
 'accmailtext' => "தானியக்கமாக [[User talk:$1|$1]]-க்கு ஒரு கடவுச்சொலை உறுவாக்கி $2-க்கு அனுப்பி வைக்கப்பட்டுள்ளது. இதனை புகுபதிகை செய்தவுடன் ''[[Special:ChangePassword|கடவுச்சொல்லை மாற்று]]'' பக்கத்தில் மாற்றிக்கொள்ளளாம்.",
 'newarticle' => '(புதிது)',
-'newarticletext' => 'ஒரு இணைப்பினூடாக நீங்கள் வந்துள்ள இப்பக்கம் இன்னும் உருவாக்கப்படவில்லை. பக்கத்தை உருவாக்குவதற்குக் கீழேயுள்ள கட்டத்துள் தட்டச்சிடத் தொடங்குங்கள். (மேலதிக விபரங்களுக்கு [[{{MediaWiki:Helppage}}|உதவிப் பக்கத்தைப்]] பார்க்கவும்). நீங்கள் தவறுதலாக இங்கே வந்திருந்தால், உங்கள் உலாவியின் பின் செல்வதற்கான பொத்தானைச் சொடுக்கவும்.',
+'newarticletext' => 'ஒரு இணைப்பினூடாக நீங்கள் வந்துள்ள இப்பக்கம் இன்னும் உருவாக்கப்படவில்லை. பக்கத்தை உருவாக்குவதற்குக் கீழேயுள்ள கட்டத்துள் தட்டச்சிடத் தொடங்குங்கள். (மேலதிக விபரங்களுக்கு [$1 உதவிப் பக்கத்தைப்] பார்க்கவும்). நீங்கள் தவறுதலாக இங்கே வந்திருந்தால், உங்கள் உலாவியின் பின் செல்வதற்கான பொத்தானைச் சொடுக்கவும்.',
 'anontalkpagetext' => "----''இது இன்னும் கணக்கொன்று ஏற்படுத்தாத அல்லது வழமையாக பயனர் கணக்கை பயன்படுத்தாத பயனர்களுக்குரிய கலந்துரையாடல் பக்கமாகும். அதனால் நாங்கள் இவரை அடையாளம் காண்பதற்கு எண்சார்ந்த ஐபி முகவரியைப் பயன்படுத்த வேண்டியதாய் இருக்கின்றது. இவ்வாறான ஐபி முகவரிகள் பல பயனர்களினால் பகிர்ந்துகொள்ளப்படலாம்.
 நீங்கள் ஒரு முகவரியற்ற பயனராயிருந்து, தொடர்பற்ற கருத்துக்கள் உங்களைக் குறித்துச் சொல்லப்பட்டிருப்பதாக நீங்கள் உணர்ந்தால், முகவரியற்ற ஏனைய பயனர்களுடனான குழப்பங்களை எதிர்காலத்தில் தவிர்ப்பதற்கு, தயவுசெய்து [[Special:UserLogin/signup|புதிய கணக்கொன்றை ஏற்படுத்துங்கள்]] அல்லது [[Special:UserLogin|புகுபதிகை]] செய்யுங்கள்.''",
 'noarticletext' => 'இப் பக்கத்தில் தற்பொழுது உள்ளடக்கம் எதுவுமில்லை. நீங்கள் இப்பக்க [[Special:Search/{{PAGENAME}}|தலைப்பை வேறு பக்கங்களில் தேடவோ]] அல்லது [{{fullurl:{{FULLPAGENAME}}|action=edit}} இப்பக்கத்தை தொகுக்கவோ] முடியும்.',
@@ -972,9 +973,6 @@ $1 எனும் பயனரையோ வேறு [[{{MediaWiki:Grouppage-sy
 'revdelete-show-file-submit' => 'ஆம்',
 'revdelete-selected' => "'''[[:$1]] பக்கத்தின் தெரிவுச் செய்யப்பட்ட {{PLURAL:$2|திருத்தம்|திருத்தங்கள்}}:'''",
 'logdelete-selected' => "'''தெரிவு செய்யப்பட்ட பதிகை {{PLURAL:$1|நிகழ்வு|நிகழ்வுகள்}}:'''",
-'revdelete-text' => "'''நீக்கப்பட்ட நிகழ்வுகள் மற்றும் திருத்தங்கள், வரலாற்றுப் பக்கத்திலும் குறிப்புகளிலும் தெரியும். ஆனால் அவற்றின் உள்ளடக்கத்தை எல்லோரும் பார்க்கமுடியாது.'''
-
-மேலதிக கட்டுப்பாடுகளை விதிக்காமல் இருந்தால்,  {{SITENAME}} இத்தளத்தில் உள்ள மற்ற நிர்வாகிகள், இந்த இணைப்பின் மூலம்,  மறைந்துள்ள பகுதிகளை அணுகவும் மீட்டெடுக்கவும் முடியும்.",
 'revdelete-confirm' => 'நீங்கள் கண்டிப்பாக இதைச் செய்ய விரும்புகிறீர்கள் என்பதையும்,  இதன் விளைவுகளை புரிந்துகொண்டிருக்கின்றீர்கள் என்பதையும், மேலும் நீங்கள் [[{{MediaWiki:Policy-url}}|செயல் திட்டம்]] படி செய்கிறீர்கள் என்பதையும் உறுதிசெயுங்கள்.',
 'revdelete-suppress-text' => "ஒடுக்கப்படுவது கீழ்காணும் '''காரணங்களுக்காக''' மட்டுமே செய்யப்படும்.
 *அவதூறான தீங்கு விளைவிக்கக்கூடிய தகவல்
@@ -2270,6 +2268,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'இந்த IP முகவரி தற்போது தடுக்கப்பட்டுள்ளது.
 சமீபத்திய தடுப்பு குறிப்பேடு  கீழே குறிப்பிற்காக வழங்கப்பட்டுள்ளது :',
 'sp-contributions-search' => 'பங்களிப்புகளைத் தேடு',
+'sp-contributions-suppresslog' => 'பயனரின் நீக்கப்பட்ட பங்களிப்புகள்',
 'sp-contributions-username' => 'ஐ.பி. அல்லது பயனர் பெயர்:',
 'sp-contributions-toponly' => 'சமீபத்திய பரிசீலனைகளுக்குட்பட்ட  திருத்தங்களை மட்டும் காண்பி',
 'sp-contributions-submit' => 'தேடுக',
index 6027b74..f098128 100644 (file)
@@ -235,7 +235,6 @@ $messages = array(
 'disclaimers' => 'ಅಬಾಧ್ಯತೆಲು',
 'disclaimerpage' => 'Project:ಸಾಮಾನ್ಯ ಅಬಾಧ್ಯತೆಲು',
 'edithelp' => 'ಸಂಪಾದನೆ(ಎಡಿಟ್) ಮಲ್ಪೆರೆ ಸಹಾಯ',
-'helppage' => 'Help:ಪರಿವಿಡಿ',
 'mainpage' => 'ಮುಖ್ಯ ಪುಟ',
 'mainpage-description' => 'ಮುಖ್ಯ ಪುಟ',
 'policy-url' => 'Project:ನಿಯಮಾವಳಿ',
@@ -465,7 +464,7 @@ $messages = array(
 'newarticle' => '(ಪೊಸತ್)',
 'newarticletext' => "ನನಲ ಅಸ್ಥಿತ್ವಡ್ ಉಪ್ಪಂದಿನ ಪುಟೊಗು ಈರ್ ಬೈದರ್.
 ಈ ಪುಟೊನು ಸೃಷ್ಟಿ ಮಲ್ಪೆರೆ ತಿರ್ತ್’ದ ಚೌಕೊಡು ಬರೆಯೆರೆ ಸುರು ಮಲ್ಪುಲೆ.
-(ಜಾಸ್ತಿ ಮಾಹಿತಿಗ್ [[{{MediaWiki:Helppage}}|ಸಹಾಯ ಪುಟೊನು]] ತೂಲೆ).
+(ಜಾಸ್ತಿ ಮಾಹಿತಿಗ್ [$1 ಸಹಾಯ ಪುಟೊನು] ತೂಲೆ).
 ಈ ಪುಟೊಕು ಈರ್ ತಪ್ಪಾದ್ ಬತ್ತಿತ್ತ್’ನ್ಡ ಇರೆನ ಬ್ರೌಸರ್’ದ '''back''' ಬಟನ್’ನ್ ಒತ್ತ್’ಲೆ.",
 'noarticletext' => 'ಈ ಪುಟೊಟು ಸದ್ಯಗ್ ಓ ಬರಹಲಾ ಇಜ್ಜಿ, ಈರ್ ಬೇತೆ ಪೂಟೊಲೆಡ್ [[Special:Search/{{PAGENAME}}|ಈ ಲೇಖನೊನು ನಾಡೊಲಿ]] ಅತ್ತ್’ನ್ಡ [{{fullurl:{{FULLPAGENAME}}|action=edit}} ಈ ಪುಟೊನು ಸಂಪಾದನೆ ಮಲ್ಪೊಲಿ].',
 'userpage-userdoesnotexist' => 'ಬಳಕೆದಾರ ಖಾತೆ "<nowiki>$1</nowiki>" ದಾಖಲಾತ್‘ಜ್ಜಿ. ಈರ್ ಉಂದುವೇ ಪುಟನ್ ಸಂಪಾದನೆ ಮಲ್ಪರ ಉಂಡಾಂದ್ ಖಾತ್ರಿ ಮಲ್ತೊನಿ.',
index fd38a03..7a6e429 100644 (file)
@@ -304,7 +304,7 @@ $messages = array(
 'vector-action-delete' => 'తొలగించు',
 'vector-action-move' => 'తరలించు',
 'vector-action-protect' => 'సంరక్షించు',
-'vector-action-undelete' => 'తిరిà°\97à°¿ à°\9aà±\87à°°à±\8dà°\9aà±\81',
+'vector-action-undelete' => 'à°¤à±\8aà°²à°\97à°¿à°\82à°ªà±\81à°¨à±\81 à°°à°¦à±\8dà°¦à±\81à°\9aà±\86à°¯à±\8dయి',
 'vector-action-unprotect' => 'సంరక్షణను మార్చు',
 'vector-view-create' => 'సృష్టించు',
 'vector-view-edit' => 'సవరించు',
@@ -313,7 +313,7 @@ $messages = array(
 'vector-view-viewsource' => 'మూలాన్ని చూపించు',
 'actions' => 'పనులు',
 'namespaces' => 'పేరుబరులు',
-'variants' => 'à°°à°\95à°°à°\95ాలు',
+'variants' => 'వివిధ à°°à±\82à°ªాలు',
 
 'navigation-heading' => 'మార్గదర్శకపు మెనూ',
 'errorpagetitle' => 'లోపం',
@@ -338,7 +338,7 @@ $messages = array(
 'delete' => 'తొలగించు',
 'deletethispage' => 'ఈ పేజీని తొలగించండి',
 'undeletethispage' => 'ఈ పేజీ తొలగింపును ఆపు',
-'undelete_short' => '{{PLURAL:$1|ఒక్క రచనను|$1 రచనలను}} పునఃస్థాపించు',
+'undelete_short' => '{{PLURAL:$1|ఒక్క రచన|$1 రచనల}} తొలగింపును రద్దుచెయ్యి',
 'viewdeleted_short' => '{{PLURAL:$1|తొలగించిన ఒక మార్పు|$1 తొలగించిన మార్పుల}}ను చూడండి',
 'protect' => 'సంరక్షించు',
 'protect_change' => 'మార్చు',
@@ -365,7 +365,7 @@ $messages = array(
 'viewtalkpage' => 'చర్చను చూడు',
 'otherlanguages' => 'ఇతర భాషలలో',
 'redirectedfrom' => '($1 నుండి మళ్ళించబడింది)',
-'redirectpagesub' => 'దారిమారà±\8dà°ªà±\81 à°ªà±\81à°\9f',
+'redirectpagesub' => 'దారిమారà±\8dà°ªà±\81 à°ªà±\87à°\9cà±\80',
 'lastmodifiedat' => 'ఈ పేజీలో చివరి మార్పు $1 న $2 కు జరిగింది.',
 'viewcount' => 'ఈ పేజీ {{PLURAL:$1|ఒక్క సారి|$1 సార్లు}} దర్శించబడింది.',
 'protectedpage' => 'సంరక్షణలోని పేజీ',
@@ -385,13 +385,12 @@ $1',
 'aboutsite' => '{{SITENAME}} గురించి',
 'aboutpage' => 'Project:గురించి',
 'copyright' => 'విషయం $1 కి లోబడి లభ్యం, వేరుగా పేర్కొంటే తప్ప.',
-'copyrightpage' => '{{ns:project}}:à°ªà±\8dà°°à°\9aà±\81à°°à°£ హక్కులు',
+'copyrightpage' => '{{ns:project}}:à°\95ాపà±\80హక్కులు',
 'currentevents' => 'వర్తమాన ఘటనలు',
 'currentevents-url' => 'Project:వర్తమాన ఘటనలు',
 'disclaimers' => 'అస్వీకారములు',
 'disclaimerpage' => 'Project:సాధారణ నిష్పూచీ',
 'edithelp' => 'దిద్దుబాటు సహాయం',
-'helppage' => 'Help:సూచిక',
 'mainpage' => 'మొదటి పేజీ',
 'mainpage-description' => 'మొదటి పేజీ',
 'policy-url' => 'Project:విధానం',
@@ -402,7 +401,7 @@ $1',
 
 'badaccess' => 'అనుమతి లోపం',
 'badaccess-group0' => 'మీరు చేయతలపెట్టిన పనికి మీకు హక్కులు లేవు.',
-'badaccess-groups' => 'మీరు చేయతలపెట్టిన పని ఈ {{PLURAL:$2|గుంపు|గుంపుల}} లోని వాడుకర్లకు మాత్రమే పరిమితం: $1.',
+'badaccess-groups' => 'మీరు చేయతలపెట్టిన పని ఈ {{PLURAL:$2|గుంపు|గుంపులలో ఒకదాని}} లోని వాడుకర్లకు మాత్రమే పరిమితం: $1.',
 
 'versionrequired' => 'మీడియావికీ సాఫ్టువేరు వెర్షను $1 కావాలి',
 'versionrequiredtext' => 'ఈ పేజీని వాడటానికి మీకు మీడియావికీ సాఫ్టువేరు వెర్షను $1 కావాలి. [[Special:Version|వెర్షను పేజీ]]ని చూడండి.',
@@ -502,24 +501,24 @@ $1',
 'badarticleerror' => 'ఈ పేజీపై ఈ పని చేయడం కుదరదు.',
 'cannotdelete' => '"$1" అనే పేజీ లేదా ఫైలుని తొలగించలేకపోయాం.
 దాన్ని ఇప్పటికే ఎవరైనా తొలగించి ఉండవచ్చు.',
-'cannotdelete-title' => '"$1" పుటను తొలగించలేరు',
+'cannotdelete-title' => 'పేజీ "$1" ని తొలగించలేరు',
 'delete-hook-aborted' => 'తొలగింపును హుక్ ఆపేసింది.
 వివరణ ఏమీ ఇవ్వలేదు.',
 'no-null-revision' => '"$1" పేజీకి కొత్త శూన్య కూర్పు (నల్ రివిజన్) ను సృష్టించలేకపోయాం',
 'badtitle' => 'తప్పు శీర్షిక',
-'badtitletext' => 'à°®à±\80à°°à±\81 à°\95à±\8bà°°à°¿à°¨ à°ªà±\81à°\9f à°¯à±\8aà°\95à±\8dà°\95 à°ªà±\87à°°à±\81 à°\9aà±\86à°²à±\8dలనిది, à°\96ాళà±\80à°\97à°¾ à°\89à°\82ది, à°²à±\87దా à°¤à°ªà±\8dà°ªà±\81à°\97à°¾ à°\87à°\9aà±\8dà°\9aిన అంతర్వికీ లేదా అంతర-భాషా శీర్షిక అయివుండాలి.
+'badtitletext' => 'à°®à±\80à°°à±\81 à°\95à±\8bà°°à°¿à°¨ à°ªà±\87à°\9cà±\80 à°¯à±\8aà°\95à±\8dà°\95 à°ªà±\87à°°à±\81 à°\9aà±\86à°²à±\8dలనిది, à°\96ాళà±\80à°\97à°¾ à°\89à°\82ది, à°²à±\87దా à°¤à°ªà±\8dà°ªà±\81 à°²à°¿à°\82à°\95à±\81à°¤à±\8b à°\95à±\82à°¡ిన అంతర్వికీ లేదా అంతర-భాషా శీర్షిక అయివుండాలి.
 శీర్షికలలో ఉపయోగించకూడని అక్షరాలు దానిలో ఉండివుండొచ్చు.',
 'perfcached' => 'కింది డేటా ముందే సేకరించి పెట్టుకున్నది. కాబట్టి తాజా డేటాతో పోలిస్తే తేడాలుండవచ్చు. ఈ కాషెలో గరిష్టంగా {{PLURAL:$1|ఒక్క ఫలితం ఉంది|$1 ఫలితాలు ఉన్నాయి}}.',
 'perfcachedts' => 'కింది సమాచారం ముందే సేకరించి పెట్టుకున్నది. దీన్ని $1న చివరిసారిగా తాజాకరించారు. ఈ కాషెలో గరిష్టంగా {{PLURAL:$4|ఒక్క ఫలితం ఉంది|$4 ఫలితాలు ఉన్నాయి}}.',
-'querypage-no-updates' => 'à°ªà±\8dà°°à°¸à±\8dà°¤à±\81à°¤à°\82 à°\88 à°ªà±\81à°\9fకి తాజాకరణలని అచేతనం చేసారు.
-à°\87à°\95à±\8dà°\95à°¡à±\81à°¨à±\8dà°¨ à°­à±\8bà°\97à°\9fà±\8dà°\9fà°¾ à°\95à±\82à°¡à°¾ తాజాకరించబడదు.',
+'querypage-no-updates' => 'à°ªà±\8dà°°à°¸à±\8dà°¤à±\81à°¤à°\82 à°\88 à°ªà±\87à°\9cà±\80కి తాజాకరణలని అచేతనం చేసారు.
+à°\87à°\95à±\8dà°\95à°¡à±\81à°¨à±\8dà°¨ à°¡à±\87à°\9fà°¾ à°\95à±\82à°¡à°¾ à°ªà±\8dà°°à°¸à±\8dà°¤à±\81à°¤à°\82 తాజాకరించబడదు.',
 'viewsource' => 'మూలాన్ని చూపించు',
 'viewsource-title' => '$1 యొక్క సోర్సు చూడండి',
 'actionthrottled' => 'కార్యాన్ని ఆపేసారు',
-'actionthrottledtext' => 'à°¸à±\8dపామà±\81à°¨à±\81 à°¤à°\97à±\8dà°\97à°¿à°\82à°\9aà°\9fానిà°\95à°¿ à°¤à±\80à°¸à±\81à°\95à±\81à°¨à±\8dà°¨ à°¨à°¿à°°à±\8dణయాల à°µà°²à±\8dà°², à°®à±\80à°°à±\81 à°\88 à°\95ారà±\8dయానà±\8dని à°\85తి à°¤à°\95à±\8dà°\95à±\81à°µ à°¸à°®à°¯à°\82à°²à±\8b à°¬à±\8bà°²à±\86à°¡à°¨à±\8dని à°¸à°¾à°°à±\8dà°²à±\81 à°\9aà±\87à°¯à°\95à±\81à°\82à°¡à°¾ à°\85à°¡à±\8dà°¡à±\81à°\95à±\81à°\82à°\9fà±\81à°¨à±\8dనాము. కొన్ని నిమిషాలు ఆగి మరలా ప్రయత్నించండి.',
+'actionthrottledtext' => 'à°¸à±\8dపామà±\81à°¨à±\81 à°¨à°¿à°°à±\8bధిà°\82à°\9aà±\87à°\82à°¦à±\81à°\95à±\81 à°\97ానà±\81, à°¤à°\95à±\8dà°\95à±\81à°µ à°¸à°®à°¯à°\82à°²à±\8b à°®à°°à±\80 à°\8eà°\95à±\8dà°\95à±\81à°µ à°¸à°¾à°°à±\8dà°²à±\81 à°\88 à°ªà°¨à°¿ à°\9aà±\87à°¯à°\95à±\81à°\82à°¡à°¾ à°ªà°°à°¿à°®à°¿à°¤à°¿ à°µà°¿à°§à°¿à°\82à°\9aà°¾à°\82. à°®à±\80à°°à±\81 à°¦à°¾à°¨à±\8dని à°\85ధిà°\97మిà°\82à°\9aారు. కొన్ని నిమిషాలు ఆగి మరలా ప్రయత్నించండి.',
 'protectedpagetext' => 'ఈ పేజీలో మార్పులు వగైరాలు చెయ్యకుండా ఉండేందుకు గాను, సంరక్షించబడింది.',
 'viewsourcetext' => 'మీరీ పేజీ సోర్సును చూడవచ్చు, కాపీ చేసుకోవచ్చు:',
-'viewyourtext' => "ఈ పేజీకి '''మీ మార్పుల''' యొక్క మూలాన్ని చూడవచ్చు లేదా కాపీచేసుకోవచ్చు:",
+'viewyourtext' => 'ఈ పేజీలోని <strong>మీ మార్పుల</strong> యొక్క మూలాన్ని చూడవచ్చు, కాపీచేసుకోవచ్చు:',
 'protectedinterface' => 'ఈ పేజీ, ఈ వికీ యొక్క సాఫ్టువేరు ఇంటరుఫేసుకు చెందిన టెక్స్టును అందిస్తుంది. దుశ్చర్యల నివారణ కోసమై దీన్ని సంరక్షించాం. వికీలన్నిటిలోను అనువాదాలను చేర్చాలన్నా, మార్చాలన్నా మీడియావికీ స్థానికీకరణ ప్రాజెక్టైన [//translatewiki.net/ translatewiki.net] ను వాడండి.',
 'editinginterface' => '<strong>హెచ్చరిక:</strong> సాఫ్టువేరుకు ఇంటరుఫేసు టెక్స్టును అందించేందుకు పనికొచ్చే పేజీని మీరు సరిదిద్దుతున్నారు.
 ఈ పేజీలో చేసే మార్పుల వల్ల ఇతర వాడుకరులకు ఇంటరుఫేసు కనబడే విధానంలో తేడావస్తుంది.
@@ -534,19 +533,19 @@ $2',
 'myprivateinfoprotected' => 'మీ అంతరంగిక సమాచారాన్ని సవరించేందుకు మీకు అనుమతి లేదు.',
 'mypreferencesprotected' => 'మీ అభీష్టాలను సవరించేందుకు మీకు అనుమతి లేదు.',
 'ns-specialprotected' => 'ప్రత్యేక పేజీలపై దిద్దుబాట్లు చేయలేరు.',
-'titleprotected' => "సభ్యులు [[User:$1|$1]] ఈ పేజీని సృష్టించనివ్వకుండా నిరోదిస్తున్నారు.
-అందుకు ఇచ్చిన కారణం: ''$2''.",
+'titleprotected' => '[[User:$1|$1]] ఈ శీర్షికని సృష్టించకుండా ఇది సంరక్షించబడింది.
+అందుకు ఇచ్చిన కారణం: "<em>$2</em>".',
 'filereadonlyerror' => 'ఫైలు ఖజానా "$2" రీడ్-ఓన్లీ స్థితిలో ఉండటం చేత "$1" ఫైలులో మార్పులు చెయ్యలేకపోయాం.
 
 దానికి తాళం వేసిన అధికారి ఇచ్చిన వివరణ ఇది: "$3".',
 'invalidtitle-knownnamespace' => 'పేరుబరి "$2", పాఠ్యము "$3" తో కూడిన ఈ శీర్షిక చెల్లనిది',
 'invalidtitle-unknownnamespace' => 'అపరిచితమైన పేరుబరి సంఖ్య "$1", పాఠ్యము "$2" తో కూడిన ఈ శీర్షిక చెల్లనిది',
-'exception-nologin' => 'à°²à±\8bనిà°\95à°¿ à°ªà±\8dà°°à°µà±\87శిà°\82à°\9aà°¿లేరు',
-'exception-nologin-text' => 'à°\88 à°ªà±\87à°\9cà±\80ని à°\9aà±\82డడానిà°\95à°¿ à°²à±\87దా à°\88 à°\9aà°°à±\8dయనà±\81 à°\9aà±\86à°¯à±\8dయడానిà°\95à°¿ à°¦à°¯à°\9aà±\87సి [[Special:Userlogin|à°ªà±\8dà°°à°µà±\87శిà°\82à°\9aండి]].',
+'exception-nologin' => 'లాà°\97à°¿à°¨à±\88 లేరు',
+'exception-nologin-text' => 'à°\88 à°ªà±\87à°\9cà±\80ని à°\9aà±\82డడానిà°\95à°¿ à°²à±\87దా à°\88 à°ªà°¨à°¿ à°\9aà±\86à°¯à±\8dయడానిà°\95à°¿ [[Special:Userlogin|లాà°\97ినవండి]].',
 'exception-nologin-text-manual' => 'ఈ పేజీ చూసేందుకు లేదా ఈ పని చేసేందుకు $1.',
 
 # Virus scanner
-'virus-badscanner' => "తప్పుడు స్వరూపణం: తెలియని వైరస్ స్కానర్: ''$1''",
+'virus-badscanner' => 'తప్పుడు స్వరూపణం: తెలియని వైరస్ స్కానర్: <em>$1</em>',
 'virus-scanfailed' => 'స్కాన్ విఫలమైంది (సంకేతం $1)',
 'virus-unknownscanner' => 'అజ్ఞాత యాంటీవైరస్:',
 
@@ -564,7 +563,7 @@ $2',
 'yourname' => 'వాడుకరి పేరు:',
 'userlogin-yourname' => 'వాడుకరి పేరు',
 'userlogin-yourname-ph' => 'మీ వాడుకరి పేరును ఇవ్వండి',
-'createacct-another-username-ph' => 'à°®à±\80 à°µà°¾à°¡à±\81à°\95à°°à°¿ à°ªà±\87à°°à±\81à°¨à±\81 à°ªà±\8dà°°à°µà±\87శపà±\86à°\9fà±\8dà°\9fండి',
+'createacct-another-username-ph' => 'à°®à±\80 à°µà°¾à°¡à±\81à°\95à°°à°¿ à°ªà±\87à°°à±\81à°¨à±\81 à°\87à°µà±\8dà°µండి',
 'yourpassword' => 'సంకేతపదం:',
 'userlogin-yourpassword' => 'సంకేతపదం',
 'userlogin-yourpassword-ph' => 'మీ సంకేతపదాన్ని ఇవ్వండి',
@@ -573,30 +572,29 @@ $2',
 'createacct-yourpasswordagain' => 'సంకేతపదాన్ని నిర్ధారించండి',
 'createacct-yourpasswordagain-ph' => 'సంకేతపదాన్ని మళ్ళీ ఇవ్వండి',
 'remembermypassword' => 'ఈ కంప్యూటరులో నా ప్రవేశాన్ని గుర్తుంచుకో (గరిష్ఠంగా $1 {{PLURAL:$1|రోజు|రోజుల}}కి)',
-'userlogin-remembermypassword' => 'ననà±\8dà°¨à±\81 à°ªà±\8dà°°à°µà±\87శిà°\82à°ªà°\9cà±\87సి ఉంచు',
+'userlogin-remembermypassword' => 'ననà±\8dà°¨à±\81 à°²à°¾à°\97à°¿à°¨à±\8d à°\9aà±\87à°¸à±\87 ఉంచు',
 'userlogin-signwithsecure' => 'సురక్షిత కనెక్షను వాడు',
 'yourdomainname' => 'మీ డోమైను',
 'password-change-forbidden' => 'ఈ వికీలో మీరు సంకేతపదాలను మార్చలేరు.',
 'externaldberror' => 'డేటాబేసు అధీకరణలో లోపం జరిగింది లేదా మీ బయటి ఖాతాను తాజాకరించడానికి మీకు అనుమతి లేదు.',
-'login' => 'à°²à±\8bనిà°\95à°¿ à°°ండి',
+'login' => 'లాà°\97ినవండి',
 'nav-login-createaccount' => 'లాగినవండి / ఖాతాని సృష్టించుకోండి',
 'loginprompt' => '{{SITENAME}}లోకి ప్రవేశించాలంటే మీ విహారిణిలో కూకీలు చేతనమై ఉండాలి.',
-'userlogin' => 'à°ªà±\8dà°°à°µà±\87శిà°\82à°\9aండి / ఖాతాను సృష్టించుకోండి',
-'userloginnocreate' => 'à°ªà±\8dà°°à°µà±\87శిà°\82à°\9aండి',
+'userlogin' => 'లాà°\97ినవండి / ఖాతాను సృష్టించుకోండి',
+'userloginnocreate' => 'లాà°\97ినవండి',
 'logout' => 'నిష్క్రమించు',
 'userlogout' => 'లాగౌట్',
-'notloggedin' => 'à°²à±\8bనిà°\95à°¿ à°ªà±\8dà°°à°µà±\87శిà°\82à°\9aà°¿ లేరు',
+'notloggedin' => 'లాà°\97à°¿à°¨à±\8dâ\80\8c à°\85యిలేరు',
 'userlogin-noaccount' => 'మీకు ఖాతా లేదా?',
 'userlogin-joinproject' => '{{SITENAME}}లో చేరండి',
 'nologin' => 'ఖాతా లేదా? $1.',
 'nologinlink' => 'ఖాతాని సృష్టించుకోండి',
 'createaccount' => 'ఖాతాని సృష్టించు',
 'gotaccount' => 'ఇప్పటికే మీకు ఖాతా ఉందా? $1.',
-'gotaccountlink' => 'à°ªà±\8dà°°à°µà±\87శిà°\82à°\9aండి',
-'userlogin-resetlink' => 'à°®à±\80 à°ªà±\8dà°°à°µà±\87à°¶ వివరాలను మరచిపోయారా?',
+'gotaccountlink' => 'లాà°\97ినవండి',
+'userlogin-resetlink' => 'à°®à±\80 à°²à°¾à°\97à°¿à°¨à±\8d వివరాలను మరచిపోయారా?',
 'userlogin-resetpassword-link' => 'మీ సంకేతపదాన్ని మర్చిపోయారా?',
-'helplogin-url' => 'Help:ప్రవేశించడం',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|ప్రవేశించడానికి సహాయం]]',
+'userlogin-helplink2' => 'లాగినవడంలో సహాయం',
 'userlogin-loggedin' => 'మీరు ఈసరికే {{GENDER:$1|$1}} గా లాగిన్ అయి ఉన్నారు.
 వేరే వాడుకరిగా లాగినయేందుకు కింది ఫారమును వాడండి.',
 'userlogin-createanother' => 'మరొక ఖాతాను సృష్టించండి',
@@ -652,23 +650,23 @@ $2',
 'passwordremindertitle' => '{{SITENAME}} కోసం కొత్త తాత్కాలిక సంకేతపదం',
 'passwordremindertext' => '{{SITENAME}} ($4) లో కొత్త సంకేతపదం పంపించమని ఎవరో (బహుశ మీరే, ఐ.పీ. చిరునామా $1 నుండి) అడిగారు. వాడుకరి "$2" కొరకు "$3" అనే తాత్కాలిక సంకేతపదం సిద్ధంచేసి ఉంచాం. మీ ఉద్దేశం అదే అయితే, ఇప్పుడు మీరు సైటులోనికి ప్రవేశించి కొత్త సంకేతపదాన్ని ఎంచుకోవచ్చు. మీ తాత్కాలిక సంకేతపదం {{PLURAL:$5|ఒక రోజు|$5 రోజుల}}లో కాలంచెల్లుతుంది.
 
-à°\92à°\95à°µà±\87à°³ à°\88 à°\85à°­à±\8dయరà±\8dథన à°®à±\80à°°à±\81à°\95à°¾à°\95 à°®à°°à±\86వరà±\8b à°\9aà±\87సారనà±\81à°\95à±\81à°¨à±\8dనా à°²à±\87దా à°®à±\80 à°¸à°\82à°\95à±\87తపదà°\82 à°®à±\80à°\95à±\81 à°\97à±\81à°°à±\8dà°¤à±\81à°\95à±\81à°µà°\9aà±\8dà°\9aà°¿ à°¦à°¾à°¨à±\8dని à°®à°¾à°°à±\8dà°\9aà°\95à±\82à°¡à°¦à±\81 à°\85à°¨à±\81à°\95à±\81à°\82à°\9fà±\81à°¨à±\8dనా, à°\88 à°¸à°\82à°¦à±\87శానà±\8dని à°®à°°à±\8dà°\9aà°¿à°ªà±\8bà°¯ి మీ పాత సంకేతపదాన్ని వాడడం కొనసాగించవచ్చు.',
-'noemail' => 'సభà±\8dà°¯à±\81à°²à±\81 "$1"à°\95à±\81 à°\88-మెయిలు చిరునామా నమోదయి లేదు.',
+à°\92à°\95à°µà±\87à°³ à°\88 à°\85à°­à±\8dయరà±\8dథన à°®à±\80à°°à±\81à°\95à°¾à°\95 à°®à°°à±\86వరà±\8b à°\9aà±\87సారనà±\81à°\95à±\81à°¨à±\8dనా à°²à±\87దా à°®à±\80 à°¸à°\82à°\95à±\87తపదà°\82 à°®à±\80à°\95à±\81 à°\97à±\81à°°à±\8dà°¤à±\81à°\95à±\81à°µà°\9aà±\8dà°\9aà°¿ à°¦à°¾à°¨à±\8dని à°®à°¾à°°à±\8dà°\9aà°\95à±\82à°¡à°¦à±\81 à°\85à°¨à±\81à°\95à±\81à°\82à°\9fà±\81à°¨à±\8dనా, à°\88 à°¸à°\82à°¦à±\87శానà±\8dని à°µà°¿à°¸à±\8dమరిà°\82à°\9aి మీ పాత సంకేతపదాన్ని వాడడం కొనసాగించవచ్చు.',
+'noemail' => 'వాడà±\81à°\95à°°à°¿ "$1" à°\95à±\81 à°\88మెయిలు చిరునామా నమోదయి లేదు.',
 'noemailcreate' => 'మీరు సరైన ఈమెయిల్ చిరునామాని ఇవ్వాలి',
 'passwordsent' => '"$1" కొరకు నమోదైన ఈ-మెయిలు చిరునామాకి కొత్త సంకేతపదాన్ని పంపించాం.
 అది అందిన తర్వాత ప్రవేశించి చూడండి.',
-'blocked-mailpassword' => 'దిదà±\8dà°¦à±\81బాà°\9fà±\8dà°²à±\81 à°\9aà±\86à°¯à±\8dà°¯à°\95à±\81à°\82à°¡à°¾ à°\88 à°\90à°ªà±\80à°\85à°¡à±\8dà°°à°¸à±\81à°¨à±\81 à°¨à°¿à°°à±\8bధిà°\82à°\9aà°¾à°\82. à°\85à°\82à°\9aà±\87à°¤, à°¦à±\81à°¶à±\8dà°\9aà°°à±\8dయల à°¨à°¿à°µà°¾à°°à°£ à°\95à±\8bà°¸à°\82 à°\97ానà±\81, à°®à°°à°\9aà°¿à°ªà±\8bయిన à°¸à°\82à°\95à±\87తపదానà±\8dని à°ªà±\8aà°\82à°¦à±\87 à°\85à°\82శానà±\8dని à°\85à°¨à±\81మతిà°\82à°\9aà°®ు.',
+'blocked-mailpassword' => 'దిదà±\8dà°¦à±\81బాà°\9fà±\8dà°²à±\81 à°\9aà±\86à°¯à±\8dà°¯à°\95à±\81à°\82à°¡à°¾ à°®à±\80 à°\90à°ªà±\80à°\85à°¡à±\8dà°°à°¸à±\81à°¨à±\81 à°¨à°¿à°°à±\8bధిà°\82à°\9aà°¾à°\82. à°\85à°\82à°\9aà±\87à°¤, à°¦à±\81à°¶à±\8dà°\9aà°°à±\8dయల à°¨à°¿à°µà°¾à°°à°£ à°\95à±\8bà°¸à°\82 à°\97ానà±\81, à°®à°°à°\9aà°¿à°ªà±\8bయిన à°¸à°\82à°\95à±\87తపదానà±\8dని à°ªà±\8aà°\82à°¦à±\87 à°µà±\80à°²à±\81 à°\88 à°\90à°ªà±\80à°\95à°¿ à°²à±\87à°¦ు.',
 'eauthentsent' => 'ఇచ్చిన ఈ-మెయిలు అడ్రసుకు ధృవీకరణ మెయిలు పంపించాం.
 ఇకపై మేము ఆ ఖాతాకు మెయిలు పంపాలంటే, ముందుగా మీరు ఆ మెయిల్లో సూచించినట్లుగా చేసి, ఈ చిరునామా మీదేనని ధృవీకరించాలి.',
-'throttled-mailpassword' => 'à°\97à°¡à°\9aà°¿à°¨ {{PLURAL:$1|à°\92à°\95 à°\97à°\82à°\9fà°²à±\8b|$1 à°\97à°\82à°\9fà°²à±\8dà°²à±\8b}} à°\87à°ªà±\8dà°ªà°\9fà°¿à°\95à±\87  à°¦à°¾à°\9fà±\81మాà°\9f à°®à°¾à°°à±\8dà°\9aà°¿à°¨à°\9fà±\8dà°²à±\81à°\97à°¾ à°\92à°\95 à°®à±\86యిలà±\8d  పంపించివున్నాం.
-à°¦à±\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 పంపిస్తాము.',
+'throttled-mailpassword' => 'à°\97à°¡à°\9aà°¿à°¨ {{PLURAL:$1|à°\92à°\95 à°\97à°\82à°\9fà°²à±\8b|$1 à°\97à°\82à°\9fà°²à±\8dà°²à±\8b}} à°¸à°\82à°\95à±\87తపదà°\82 à°®à°¾à°°à±\8dà°\9aà°¿à°¨à°\9fà±\8dà°²à±\81à°\97à°¾ à°\92à°\95 à°®à±\86యిలà±\81 పంపించివున్నాం.
+à°¦à±\81à°¶à±\8dà°\9aà°°à±\8dయలనà±\81 à°¨à°¿à°µà°¾à°°à°¿à°\82à°\9aà±\87à°\82à°¦à±\81à°\95à±\81 à°\97ానà±\81, {{PLURAL:$1|à°\92à°\95 à°\97à°\82à°\9fà°\95à±\81|$1 à°\97à°\82à°\9fà°²à°\95à±\81}} à°\92à°\95à±\8dà°\95సారి à°®à°¾à°¤à±\8dà°°à°®à±\87 à°¸à°\82à°\95à±\87తపదà°\82 à°®à°¾à°°à±\8dà°ªà±\81 à°®à±\86యిలà±\81 పంపిస్తాము.',
 'mailerror' => 'మెయిలు పంపించడంలో లోపం: $1',
 'acct_creation_throttle_hit' => 'మీ ఐపీ చిరునామా వాడుతున్న ఈ వికీ సందర్శకులు గత ఒక్క రోజులో {{PLURAL:$1|1 ఖాతాని|$1 ఖాతాలను}} సృష్టించారు, ఈ కాల వ్యవధిలో అది గరిష్ఠ పరిమితి.
 అందువల్ల, ఈ ఐపీని వాడుతున్న సందర్శకులు ప్రస్తుతానికి ఇంక ఖాతాలని సృష్టించలేరు.',
 'emailauthenticated' => 'మీ ఈ-మెయిలు చిరునామా $2న $3కి ధృవీకరింపబడింది.',
 'emailnotauthenticated' => 'మీ ఈ-మెయిలు చిరునామాను ఇంకా ధృవీకరించలేదు. 
 కింద పేర్కొన్న అంశాలకు సంబంధించి ఎటువంటి ఈ-మెయిలునూ పంపించము.',
-'noemailprefs' => 'à°\95à°¿à°\82ది à°\85à°\82శాలà±\81 à°ªà°¨à°¿ à°\9aà±\86à°¯à±\8dà°¯à°\9fానిà°\95à°¿ à°\88-à°®à±\86యిలà±\81 à°\9aà°¿à°°à±\81నామానà±\81 à°¨à°®à±\8aà°¦à±\81à°\9aà°¯à±\8dà°¯ండి.',
+'noemailprefs' => 'à°\88 à°\85à°\82శాలà±\81 à°ªà°¨à°¿ à°\9aà±\86à°¯à±\8dయడానిà°\95à°¿ à°®à±\80 à°\85à°­à°¿à°°à±\81à°\9aà±\81à°²à±\8dà°²à±\8b à°\88à°®à±\86యిలà±\81 à°\9aà°¿à°°à±\81నామా à°\87à°µà±\8dà°µండి.',
 'emailconfirmlink' => 'మీ ఈ-మెయిలు చిరునామాను ధృవీకరించండి',
 'invalidemailaddress' => 'మీరు ఇచ్చిన ఈ-మెయిలు చిరునామా సరైన రీతిలో లేనందున అంగీకరించటంలేదు.
 దయచేసి ఈ-మెయిలు చిరునామాను సరైన రీతిలో ఇవ్వండి లేదా ఖాళీగా వదిలేయండి.',
@@ -690,12 +688,13 @@ $2',
 'createacct-another-realname-tip' => 'అసలు పేరు ఐచ్ఛికం.
 మీరు దాన్ని ఇస్తే, వాడుకరి పనుల శ్రేయస్సు ఆ పేరుకు ఆపాదించబడుతుంది.',
 'pt-login' => 'లాగినవండి',
+'pt-login-button' => 'లాగినవండి',
 'pt-createaccount' => 'ఖాతా సృష్టించు',
-'pt-userlogout' => 'నిషà±\8dà°\95à±\8dరమిà°\82à°\9aà±\81',
+'pt-userlogout' => 'లాà°\97à±\8cà°\9fà°µà°\82à°¡à°¿',
 
 # Email sending
 'php-mail-error-unknown' => 'PHP యొక్క mail() ఫంక్షన్‍లో ఏదో తెలియని లోపం దొర్లింది',
-'user-mail-no-addy' => 'ఈ-మెయిలు చిరునామాని ఇవ్వకుండానే ఈ-మెయిలు పంపడానికి ప్రయత్నించారు.',
+'user-mail-no-addy' => 'ఈమెయిలు చిరునామా ఇవ్వకుండానే ఈమెయిలు పంపడానికి ప్రయత్నించారు.',
 'user-mail-no-body' => 'ఈమెయిలును ఖాళీగానో, మరీ తక్కువ విషయంతోనో పంపేందుకు ప్రయత్నించారు.',
 
 # Change password dialog
@@ -705,22 +704,24 @@ $2',
 'oldpassword' => 'పాత సంకేతపదం:',
 'newpassword' => 'కొత్త సంకేతపదం:',
 'retypenew' => 'సంకేతపదం, మళ్ళీ',
-'resetpass_submit' => 'à°¸à°\82à°\95à±\87తపదానà±\8dని à°®à°¾à°°à±\8dà°\9aà°¿ à°²à±\8bనిà°\95à°¿ à°ªà±\8dà°°à°µà±\87శిà°\82à°\9aండి',
+'resetpass_submit' => 'à°¸à°\82à°\95à±\87తపదానà±\8dని à°®à°¾à°°à±\8dà°\9aà°¿ à°²à°¾à°\97ినవండి',
 'changepassword-success' => 'మీ సంకేతపదం విజయవంతంగా మార్చబడింది.',
 'changepassword-throttled' => 'కొద్దిసేపటిగా మీరు చాలా లాగిన్ ప్రయత్నాలు చేసారు.
 మళ్ళీ ప్రయత్నించే ముందు $1 ఆగండి.',
 'resetpass_forbidden' => 'సంకేతపదాలను మార్చటం కుదరదు',
-'resetpass-no-info' => 'à°\88 à°ªà±\87à°\9cà±\80ని à°¨à±\87à°°à±\81à°\97à°¾ à°\9aà±\82à°¡à°\9fానిà°\95à°¿ à°®à±\80à°°à±\81 à°²à±\8bనిà°\95à°¿ à°ªà±\8dà°°à°µà±\87శిà°\82à°\9aà°¿వుండాలి.',
+'resetpass-no-info' => 'à°\88 à°ªà±\87à°\9cà±\80ని à°¨à±\87à°°à±\81à°\97à°¾ à°\9aà±\82à°¡à°\9fానిà°\95à°¿ à°®à±\80à°°à±\81 à°²à°¾à°\97ినయి వుండాలి.',
 'resetpass-submit-loggedin' => 'సంకేతపదాన్ని మార్చు',
 'resetpass-submit-cancel' => 'రద్దుచేయి',
 'resetpass-wrong-oldpass' => 'తప్పుడు తాత్కాలిక లేదా ప్రస్తుత సంకేతపదం.
 మీరు మీ సంకేతపదాన్ని ఇప్పటికే విజయవంతంగా మార్చుకొనివుండవచ్చు లేదా కొత్త తాత్కాలిక సంకేతపదం కోసం అభ్యర్థించారు.',
 'resetpass-recycled' => 'మీ ప్రస్తుత సంకేతపదాన్ని వేరే సంకేతపదంతో మార్చుకోండి',
-'resetpass-temp-emailed' => 'à°®à±\80à°°à±\81 à°®à±\80 à°\88à°®à±\86యిలà±\81à°\95à±\81 à°ªà°\82పిà°\82à°\9aà°¿à°¨ à°¤à°¾à°¤à±\8dà°\95ాలిà°\95 à°\95à±\8bà°¡à±\81à°¤à±\8b à°²à±\8bపలిà°\95à°¿ à°µà°\9aà±\8dà°\9aారà±\81. à°ªà±\8dà°°à°µà±\87à°¶à°\82 à°ªà±\82à°°à±\8dతి à°\95ావడానిà°\95à°¿, à°\87à°\95à±\8dà°\95à°¡ à°®à±\80à°°à±\81 à°¤à°ªà±\8dపనిసరిà°\97à°¾ à°\95à±\8aà°¤à±\8dà°¤ à°¸à°\82à°\95à±\87తపదà°\82 à°\87à°µà±\8dవాలి:',
+'resetpass-temp-emailed' => 'à°®à±\80à°°à±\81 à°®à±\80 à°\88à°®à±\86యిలà±\81à°\95à±\81 à°ªà°\82పిà°\82à°\9aà°¿à°¨ à°¤à°¾à°¤à±\8dà°\95ాలిà°\95 à°\95à±\8bà°¡à±\81à°¤à±\8b à°²à°¾à°\97ినయà±\8dయారà±\81. à°²à°¾à°\97à°¿à°¨à±\8dà°¨à±\81 à°ªà±\82à°°à±\8dతి à°\9aà±\87à°¸à±\87à°\82à°¦à±\81à°\95à±\81, à°\87à°\95à±\8dà°\95à°¡ à°®à±\80à°°à±\81 à°¤à°ªà±\8dపనిసరిà°\97à°¾ à°¸à°\82à°\95à±\87తపదà°\82 à°®à°¾à°°à±\8dà°\9aà±\81à°\95à±\8bవాలి:',
 'resetpass-temp-password' => 'తాత్కాలిక సంకేతపదం:',
 'resetpass-abort-generic' => 'ఓ పొడిగింత (ఎక్స్టెన్‍షన్) సంకేతపదం మార్పిడిని ఆపేసింది.',
 'resetpass-expired' => 'మీ సంకేతపదానికి కాలం చెల్లింది. కొత్త సంకేతపదం ఇచ్చి లాగినవండి.',
-'resetpass-expired-soft' => 'మీ సంకేతపదానికి కాలం చెల్లింది, కాబట్టి కొత్తది ఇవ్వాలి. కొత్తది ఇప్పుడే ఇవ్వండి లేదా రద్దు నొక్కి, తరువాత మార్చుకోండి.',
+'resetpass-expired-soft' => 'మీ సంకేతపదానికి కాలం చెల్లింది, కాబట్టి కొత్తది ఇవ్వాలి. కొత్తది ఇప్పుడే ఇవ్వండి లేదా "{{int:resetpass-submit-cancel}}" నొక్కి, తరువాత మార్చుకోండి.',
+'resetpass-validity-soft' => 'మీ సంకేతపదానికి కాలం చెల్లింది:$1
+కొత్తది ఇప్పుడే ఇవ్వండి లేదా "{{int:resetpass-submit-cancel}}" నొక్కి, తరువాత మార్చుకోండి.',
 
 # Special:PasswordReset
 'passwordreset' => 'సంకేతపదాన్ని మార్చుకోండి',
@@ -759,7 +760,7 @@ $2
 'changeemail' => 'ఈ-మెయిలు చిరునామా మార్పు',
 'changeemail-header' => 'ఖాతా ఈ-మెయిల్ చిరునామాని మార్చండి',
 'changeemail-text' => 'మీ ఈమెయిలు చిరునామాని మార్చుకోడానికి ఈ ఫారాన్ని నింపండి. ఈ మార్పుని నిర్ధారించడానికి మీ సంకేతపదాన్ని ఇవ్వాల్సివస్తుంది.',
-'changeemail-no-info' => 'à°\88 à°ªà±\87à°\9cà±\80ని à°¨à±\87à°°à±\81à°\97à°¾ à°\9aà±\82à°¡à°\9fానిà°\95à°¿ à°®à±\80à°°à±\81 à°²à±\8bనిà°\95à°¿ à°ªà±\8dà°°à°µà±\87శిà°\82à°\9aà°¿వుండాలి.',
+'changeemail-no-info' => 'à°\88 à°ªà±\87à°\9cà±\80ని à°¨à±\87à°°à±\81à°\97à°¾ à°\9aà±\82à°¡à°\9fానిà°\95à°¿ à°®à±\80à°°à±\81 à°²à°¾à°\97ినయి వుండాలి.',
 'changeemail-oldemail' => 'ప్రస్తుత ఈ-మెయిలు చిరునామా:',
 'changeemail-newemail' => 'కొత్త ఈ-మెయిలు చిరునామా:',
 'changeemail-none' => '(ఏమీలేదు)',
@@ -810,33 +811,33 @@ $2
 'showpreview' => 'మునుజూపు చూపు',
 'showlivepreview' => 'తక్షణ మునుజూపు',
 'showdiff' => 'తేడాలను చూపించు',
-'anoneditwarning' => "'''హెచ్చరిక:''' మీరు లోనికి ప్రవేశించలేదు.
-ఈ పేజీ దిద్దుబాటు చరిత్రలో మీ ఐపీ చిరునామా నమోదవుతుంది.",
-'anonpreviewwarning' => "''మీరు లోనికి ప్రవేశించలేదు. భద్రపరిస్తే ఈ పేజీ యొక్క దిద్దుబాటు చరిత్రలో మీ ఐపీ చిరునామా నమోదవుతుంది.''",
-'missingsummary' => "'''గుర్తు చేస్తున్నాం:''' మీరు దిద్దుబాటు సారాంశమేమీ ఇవ్వలేదు. పేజీని మళ్ళీ భద్రపరచమని చెబితే సారాంశమేమీ లేకుండానే దిద్దుబాటును భద్రపరుస్తాం.",
+'anoneditwarning' => '<strong>హెచ్చరిక:</strong> మీరు లాగినవలేదు.
+ఈ పేజీ దిద్దుబాటు చరిత్రలో మీ ఐపీ చిరునామా నమోదవుతుంది.',
+'anonpreviewwarning' => '<em>మీరు లాగినవలేదు. భద్రపరిస్తే ఈ పేజీ యొక్క దిద్దుబాటు చరిత్రలో మీ ఐపీ చిరునామా నమోదవుతుంది.</em>',
+'missingsummary' => '<strong>గుర్తు చేస్తున్నాం:</strong> మీరు దిద్దుబాటు సారాంశమేమీ ఇవ్వలేదు. పేజీని మళ్ళీ భద్రపరచమని చెబితే సారాంశమేమీ లేకుండానే దిద్దుబాటును భద్రపరుస్తాం.',
 'missingcommenttext' => 'కింద ఓ వ్యాఖ్య రాయండి.',
-'missingcommentheader' => "'''గుర్తు చేస్తున్నాం''': ఈ వ్యాఖ్యకు మీరు విషయం/శీర్షిక పెట్టలేదు.
-\"{{int:savearticle}}\"ని మళ్ళీ నొక్కితే, మీ మార్పుకి విషయం/శీర్షిక ఏమీ లేకుండానే భద్రపరుస్తాం.",
+'missingcommentheader' => '<strong>గుర్తు చేస్తున్నాం:</strong> ఈ వ్యాఖ్యకు మీరు విషయం/శీర్షిక పెట్టలేదు.
+"{{int:savearticle}}"ని మళ్ళీ నొక్కితే, అది లేకుండానే మీ మార్పును భద్రపరుస్తాం.',
 'summary-preview' => 'సారాంశం మునుజూపు:',
 'subject-preview' => 'విషయం/శీర్షిక మునుజూపు:',
 'blockedtitle' => 'వాడుకరి నిరోధించబడ్డారు',
-'blockedtext' => "'''మీ వాడుకరి పేరుని లేదా ఐ.పీ. చిరునామాని నిరోధించారు.'''
+'blockedtext' => "<strong>మీ వాడుకరి పేరు లేదా ఐ.పీ. చిరునామా నిరోధించబడింది.</strong>
 
 నిరోధించినది $1.
-అందుకు ఇచ్చిన కారణం: ''$2''
+అందుకు ఇచ్చిన కారణం: <em>$2</em>.
 
 * నిరోధం మొదలైన సమయం: $8
 * నిరోధించిన కాలం: $6
 * నిరోధానికి గురైనవారు: $7
 
-ఈ నిరోధంపై చర్చించేందుకు మీరు $1ను గాని, మరెవరైనా [[{{MediaWiki:Grouppage-sysop}}|నిర్వాహకులను]] గాని సంప్రదించవచ్చు.
+ఈ నిరోధంపై చర్చించేందుకు మీరు $1 ను గాని, మరెవరైనా [[{{MediaWiki:Grouppage-sysop}}|నిర్వాహకులను]] గాని సంప్రదించవచ్చు.
 మీ [[Special:Preferences|ఖాతా అభిరుచులలో]] సరైన ఈ-మెయిలు చిరునామా ఇచ్చివుండకపోయినా లేదా మిమ్మల్ని  'ఈ వాడుకరికి ఈ-మెయిలు పంపు' సౌలభ్యాన్ని వాడుకోవడం నుండి నిరోధించివున్నా మీరు ఈమెయిలు ద్వారా సంప్రదించలేరు.
 మీ ప్రస్తుత ఐ.పీ. చిరునామా $3, మరియు నిరోధపు ID #$5.
 మీ సంప్రదింపులన్నిటిలోనూ వీటిని పేర్కొనండి.",
 'autoblockedtext' => 'మీ ఐపీ చిరునామా ఆటోమాటిగ్గా నిరోధించబడింది. ఎందుకంటే ఇదే ఐపీ చిరునామాని ఓ నిరోధిత వాడుకరి ఉపయోగించారు. ఆ వాడుకరిని $1 నిరోధించారు.
 అందుకు ఇచ్చిన కారణం ఇదీ:
 
-:\'\'$2\'\'
+:<em>$2</em>
 
 * నిరోధం మొదలైన సమయం: $8
 * నిరోధించిన కాలం: $6
@@ -850,19 +851,23 @@ $2
 మీ సంప్రదింపులన్నిటిలోను అన్ని పై వివరాలను ఉదహరించండి.',
 'blockednoreason' => 'కారణమేమీ ఇవ్వలేదు',
 'whitelistedittext' => 'పుటలలో మార్పులు చెయ్యడానికి $1.',
-'confirmedittext' => 'పేజీల్లో మార్పులు చేసేముందు మీ ఈ-మెయిలు చిరునామా ధృవీకరించాలి. [[Special:Preferences|మీ అభిరుచుల]]లో మీ ఈ-మెయిలు చిరునామా రాసి, ధృవీకరించండి.',
+'confirmedittext' => 'పేజీల్లో మార్పులు చేసేముందు మీ ఈమెయిలు చిరునామాను ధృవీకరించాలి. [[Special:Preferences|మీ అభిరుచుల]]లో మీ ఈమెయిలు చిరునామా రాసి, ధృవీకరించండి.',
 'nosuchsectiontitle' => 'విభాగాన్ని కనగొనలేకపోయాం',
-'nosuchsectiontext' => 'à°®à±\80à°°à±\81 à°²à±\87ని à°µà°¿à°­à°¾à°\97ానà±\8dని à°®à°¾à°°à±\8dà°\9aడానిà°\95à°¿ ప్రయత్నించారు.
+'nosuchsectiontext' => 'à°\85సలà±\81 à°²à±\87à°¨à±\87 à°²à±\87ని à°µà°¿à°­à°¾à°\97ానà±\8dని à°®à°¾à°°à±\8dà°\9aడానిà°\95à°¿ à°®à±\80à°°à±\81 ప్రయత్నించారు.
 మీరు పేజీని చూస్తూన్నప్పుడు దాన్ని ఎవరైనా తరలించి లేదా తొలగించి ఉండవచ్చు.',
-'loginreqtitle' => 'à°ªà±\8dà°°à°µà±\87శమà±\81 తప్పనిసరి',
+'loginreqtitle' => 'లాà°\97ినవడà°\82 తప్పనిసరి',
 'loginreqlink' => 'లాగినవండి',
-'loginreqpagetext' => 'ఇతర పుటలను చూడడానికి మీరు $1 ఉండాలి.',
+'loginreqpagetext' => 'ఇతర పుటలను చూడడానికి $1.',
 'accmailtitle' => 'సంకేతపదం పంపించబడింది.',
 'accmailtext' => "[[User talk:$1|$1]] కొరకు ఒక యాదృచ్ఛిక సంకేతపదాన్ని $2కి పంపించాం. లాగినయ్యాక, ''[[Special:ChangePassword|సంకేతపదాన్ని మార్చుకోండి]]'' అనే పేజీలో ఈ సంకేతపదాన్ని మార్చుకోవచ్చు.",
 'newarticle' => '(కొత్తది)',
-'newarticletext' => "ఈ లింకుకు సంబంధించిన పేజీ ఉనికిలొ లేదు.
-కింది పెట్టెలో మీ రచనను టైపు చేసి ఆ పేజీని సృష్టించండి (దీనిపై సమాచారం కొరకు [[{{MediaWiki:Helppage}}|సహాయం]] పేజీ చూడండి). మీరిక్కడికి పొరపాటున వచ్చి ఉంటే, మీ బ్రౌజరు '''back''' మీట నొక్కండి.",
-'anontalkpagetext' => "----''ఇది ఒక అజ్ఞాత వాడుకరి చర్చా పేజీ. ఆ వాడుకరి ఇంకా తనకై ఖాతాను సృష్టించుకోలేదు, లేదా ఖాతా ఉన్నా దానిని ఉపయోగించడం లేదు. అజ్ఞాత వాడుకరులను గుర్తించడానికి అంకెలతో ఉండే ఐ.పీ. చిరునామాను వాడుతాం. కానీ, ఒకే ఐ.పీ. చిరునామాని చాలా మంది వాడుకరులు ఉపయోగించే అవకాశం ఉంది. మీరు అజ్ఞాత వాడుకరి అయితే మరియు సంబంధంలేని వ్యాఖ్యలు మిమ్మల్ని ఉద్దేశించినట్టుగా అనిపిస్తే, భవిష్యత్తులో ఇతర అజ్ఞాత వాడుకరులతో అయోమయం లేకుండా ఉండటానికి, దయచేసి [[Special:UserLogin/signup|ఖాతాను సృష్టించుకోండి]] లేదా [[Special:UserLogin|లోనికి ప్రవేశించండి]].''",
+'newarticletext' => 'ఈ లింకుకు సంబంధించిన పేజీ లేనే లేదు.
+కింది పెట్టెలో మీ రచనను టైపు చేసి ఆ పేజీని సృష్టించండి (దీనిపై సమాచారం కొరకు [$1 సహాయం పేజీ] చూడండి). మీరిక్కడికి పొరపాటున వచ్చి ఉంటే, మీ బ్రౌజరు <strong>back</strong> మీట నొక్కండి.',
+'anontalkpagetext' => "----
+<em>ఇది ఒక అజ్ఞాత వాడుకరి చర్చా పేజీ. ఆ వాడుకరి ఇంకా తనకై ఖాతాను సృష్టించుకోలేదు, లేదా ఖాతా ఉన్నా దానిని ఉపయోగించడం లేదు.</em>
+అంచేత, అతణ్ణి/ఆమెను గుర్తించడానికి ఐ.పీ. చిరునామాను వాడాల్సి వచ్చింది. 
+ఒకే ఐ.పీ. చిరునామాని చాలా మంది వాడుకరులు ఉపయోగించే అవకాశం ఉంది. 
+మీరూ అజ్ఞాత వాడుకరి అయితే, మీకు సంబంధంలేని వ్యాఖ్యలు మిమ్మల్ని ఉద్దేశించినట్టుగా అనిపిస్తే, భవిష్యత్తులో ఇతర అజ్ఞాత వాడుకరులతో అయోమయం లేకుండా ఉండటానికి, [[Special:UserLogin/signup|ఖాతాను సృష్టించుకోండి]] లేదా [[Special:UserLogin|లాగినవండి]].''",
 'noarticletext' => 'ప్రస్తుతం ఈ పేజీలో పాఠ్యమేమీ లేదు.
 వేరే పేజీలలో [[Special:Search/{{PAGENAME}}|ఈ పేజీ శీర్షిక కోసం వెతకవచ్చు]],
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} సంబంధిత చిట్టాలు చూడవచ్చు],
@@ -870,7 +875,7 @@ $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' => '"<nowiki>$1</nowiki>" అనే వాడుకరి ఖాతా నమోదయిలేదు. మీరు ఈ పేజీని సృష్టించ/సరిదిద్దాలనుకుంటే, సరిచూసుకోండి.',
+'userpage-userdoesnotexist' => '"$1" అనే వాడుకరి ఖాతా నమోదయిలేదు. మీరు ఈ పేజీని సృష్టించాలని/సరిదిద్దాలని అనుకుంటున్నారేమో చూడండి.',
 'userpage-userdoesnotexist-view' => 'వాడుకరి ఖాతా "$1" నమోదుకాలేదు.',
 'blocked-notice-logextract' => 'ప్రస్తుతం ఈ వాడుకరిని నిరోధించారు.
 నిరోధపు చిట్టాలోని చివరి పద్దుని మీ సమాచారం కోసం ఈ క్రింద ఇస్తున్నాం:',
@@ -879,37 +884,37 @@ $2
 * <strong>గూగుల్ క్రోమ్:</strong> <em>Ctrl-Shift-R</em> (మాక్ లో <em>⌘-Shift-R</em>) నొక్కండి
 *<strong>ఇంటర్నెట్ ఎక్ప్లోరర్:</strong> <em>Ctrl</em> ను నొక్కిపట్టి <em>Refresh</em> నొక్కండి లేదా <em>Ctrl-F5</em> నొక్కండి.
 *<em>ఒపెరా:</em> <em>Tools → Preferences</em> ద్వారా కోశాన్ని ఖాళీ చెయ్యండి',
-'usercssyoucanpreview' => "'''చిట్కా:''' భద్రపరిచేముందు మీ కొత్త CSSని పరీక్షించడానికి \"{{int:showpreview}}\" అనే బొత్తాన్ని వాడండి.",
-'userjsyoucanpreview' => "'''చిట్కా:''' భద్రపరిచేముందు మీ కొత్త జావాస్క్రిప్టుని పరీక్షించడానికి \"{{int:showpreview}}\" అనే బొత్తాన్ని వాడండి.",
-'usercsspreview' => "'''మీరు వాడుకరి CSSను కేవలం సరిచూస్తున్నారని గుర్తుంచుకోండి.'''
-'''దాన్నింకా భద్రపరచలేదు!'''",
-'userjspreview' => "'''గుర్తుంచుకోండి, మీరింకా మీ వాడుకరి జావాస్క్రిప్ట్&zwnj;ను భద్రపరచలేదు, కేవలం పరీక్షిస్తున్నారు/సరిచూస్తున్నారు!'''",
+'usercssyoucanpreview' => '<strong>చిట్కా:</strong> భద్రపరిచేముందు మీ కొత్త CSSని పరీక్షించడానికి "{{int:showpreview}}" బొత్తాన్ని వాడండి.',
+'userjsyoucanpreview' => '<strong>చిట్కా:</strong> భద్రపరిచేముందు మీ కొత్త జావాస్క్రిప్టుని పరీక్షించడానికి "{{int:showpreview}}" బొత్తాన్ని వాడండి.',
+'usercsspreview' => '<strong>మీరు వాడుకరి CSSను కేవలం సరిచూస్తున్నారని గుర్తుంచుకోండి.
+దాన్నింకా భద్రపరచలేదు!</strong>',
+'userjspreview' => '<strong>గుర్తుంచుకోండి, మీరింకా మీ వాడుకరి జావాస్క్రిప్ట్&zwnj;ను భద్రపరచలేదు, కేవలం పరీక్షిస్తున్నారు/సరిచూస్తున్నారు!</strong>',
 'sitecsspreview' => "'''మీరు చూస్తున్నది ఈ CSS మునుజూపును మాత్రమేనని గుర్తుంచుకోండి.'''
 '''దీన్నింకా భద్రపరచలేదు!'''",
 'sitejspreview' => "'''మీరు చూస్తున్నది ఈ JavaScript మునుజూపును మాత్రమేనని గుర్తుంచుకోండి.''' 
 '''దీన్నింకా భద్రపరచలేదు!'''",
-'userinvalidcssjstitle' => "'''హెచ్చరిక:''' \"\$1\" అనే అలంకారం లేదు.
-అభిమత .css మరియు .js పుటల శీర్షికలు ఇంగ్లీషు చిన్నబడి అక్షరాల లోనే ఉండాలని గుర్తుంచుకోండి, ఉదాహరణకు ఇలా {{ns:user}}:Foo/vector.css అంతేగానీ, {{ns:user}}:Foo/Vector.css ఇలా కాదు.",
+'userinvalidcssjstitle' => '<strong>హెచ్చరిక:</strong> "$1" అనే రూపు లేదు.
+అభిమత .css మరియు .js పుటల శీర్షికలు ఇంగ్లీషు చిన్నబడి అక్షరాల లోనే ఉండాలని గుర్తుంచుకోండి, ఉదాహరణకు ఇలా {{ns:user}}:Foo/vector.css అంతేగానీ, {{ns:user}}:Foo/Vector.css ఇలా కాదు.',
 'updated' => '(నవీకరించబడింది)',
-'note' => "'''గమనిక:'''",
-'previewnote' => "'''ఇది మునుజూపు మాత్రమేనని గుర్తుంచుకోండి.'''
-మీ మార్పులు ఇంకా భద్రమవ్వలేదు!",
+'note' => '<strong>గమనిక:</strong>',
+'previewnote' => '<strong>ఇది మునుజూపు మాత్రమేనని గుర్తుంచుకోండి.</strong>
+మీ మార్పులు ఇంకా భద్రమవ్వలేదు!',
 'continue-editing' => 'సరిదిద్దే చోటుకి వెళ్ళండి',
 'previewconflict' => 'భద్రపరచిన తరువాత పై టెక్స్ట్‌ ఏరియాలోని టెక్స్టు ఇలాగ కనిపిస్తుంది.',
-'session_fail_preview' => "'''క్షమించండి! సెషను డేటా పోవడం వలన మీ మార్పులను స్వీకరించలేకపోతున్నాం.'''
-దయà°\9aà±\87సి à°®à°³à±\8dà°³à±\80 à°ªà±\8dరయతà±\8dనిà°\82à°\9aà°\82à°¡à°¿.
-à°\85యినా à°ªà°¨à°¿ à°\9cà°°à°\95à±\8dà°\95à°ªà±\8bà°¤à±\87, à°\93సారి [[Special:UserLogout|నిషà±\8dà°\95à±\8dరమిà°\82à°\9aà°¿]] à°®à°³à±\8dà°³à±\80 à°²à±\8bనిà°\95à°¿ à°ªà±\8dà°°à°µà±\87శిà°\82à°\9aà°¿ à°ªà±\8dరయతà±\8dనిà°\82à°\9aà°\82à°¡à°¿.",
-'session_fail_preview_html' => "'''సారీ! సెషను డేటా పోవడం వలన మీ దిద్దుబాటును ప్రాసెస్ చెయ్యలేలేక పోతున్నాం.'''
+'session_fail_preview' => '<strong>క్షమించండి! సెషను డేటా పోవడం వలన మీ మార్పులను స్వీకరించలేకపోతున్నాం.</strong>
+మళ్ళీ ప్రయత్నించండి.
+à°\85యినా à°ªà°¨à°¿ à°\9cà°°à°\95à±\8dà°\95à°ªà±\8bà°¤à±\87, à°\93సారి [[Special:UserLogout|లాà°\97à±\8cà°\9fà±\88]] à°®à°³à±\8dà°³à±\80 à°²à°¾à°\97ినయి à°ªà±\8dరయతà±\8dనిà°\82à°\9aà°\82à°¡à°¿.',
+'session_fail_preview_html' => "<strong>సారీ! సెషను డేటా పోవడం వలన మీ దిద్దుబాటును ప్రాసెస్ చెయ్యలేలేక పోతున్నాం.</strong>
 
 ''{{SITENAME}}లో ముడి HTML సశక్తమై ఉంది కాబట్టి, జావాస్క్రిప్టు దాడుల నుండి రక్షణగా మునుజూపును దాచేశాం.''
 
-'''మీరు చేసినది సరైన దిద్దుబాటే అయితే, మళ్ళీ ప్రయత్నించండి. అయినా పనిచెయ్యకపోతే, ఓ సారి లాగౌటయ్యి, మళ్ళీ లాగినయి చూడండి.'''",
+<strong>మీరు చేసినది సరైన దిద్దుబాటే అయితే, మళ్ళీ ప్రయత్నించండి. అయినా పనిచెయ్యకపోతే, ఓ సారి [[Special:UserLogout|లాగౌటై]], మళ్ళీ లాగినయి చూడండి.</strong>",
 'token_suffix_mismatch' => "'''మీ క్లయంటు, దిద్దుబాటు టోకెన్‌లోని వ్యాకరణ గుర్తులను గజిబిజి చేసింది కాబట్టి మీ దిద్దుబాటును తిరస్కరించాం. పేజీలోని పాఠ్యాన్ని చెడగొట్టకుండా ఉండేందుకు గాను, ఆ దిద్దుబాటును రద్దు చేశాం. వెబ్‌లో ఉండే లోపభూయిష్టమైన అజ్ఞాత ప్రాక్సీ సర్వీసులను వాడినపుడు ఒక్కోసారి ఇలా జరుగుతుంది.'''",
 'edit_form_incomplete' => '’’’ఈ ఎడిట్ ఫారంలోని కొన్ని భాగాలు సర్వరును చేరలేదు; మీ మార్పుచేర్పులు భద్రంగా ఉన్నాయని ధృవపరచుకుని, మళ్ళీ ప్రయత్నించండి.’’’',
-'editing' => '$1కి మార్పులు',
+'editing' => '$1 ని సవరిస్తున్నారు',
 'creating' => '$1 పేజీని సృష్టిస్తున్నారు',
-'editingsection' => '$1కు మార్పులు (విభాగం)',
-'editingcomment' => '$1 à°¦à°¿à°¦à±\8dà°¦à±\81బాà°\9fు (కొత్త విభాగం)',
+'editingsection' => '$1 ని సవరిస్తున్నారు (విభాగం)',
+'editingcomment' => '$1 à°¨à°¿ à°¸à°µà°°à°¿à°¸à±\8dà°¤à±\81à°¨à±\8dనారు (కొత్త విభాగం)',
 'editconflict' => 'దిద్దుబాటు ఘర్షణ: $1',
 'explainconflict' => "మీరు మార్పులు చెయ్యడం మొదలుపెట్టిన తరువాత, వేరే ఎవరో ఈ పుటని మార్పారు.
 పైన ఉన్న పాఠ్య పేటికలో ఈ పుట యొక్క ప్రస్తుతపు పాఠ్యం ఉంది.
@@ -918,26 +923,27 @@ $2
 మీరు \"{{int:savearticle}}\"ను నొక్కినపుడు, పై పాఠ్య పేటికలో ఉన్న పాఠ్యం '''మాత్రమే''' భద్రపరచబడుతుంది.",
 'yourtext' => 'మీ పాఠ్యం',
 'storedversion' => 'భద్రపరచిన కూర్పు',
-'nonunicodebrowser' => "'''WARNING: Your browser is not unicode compliant. A workaround is in place to allow you to safely edit pages: non-ASCII characters will appear in the edit box as hexadecimal codes.'''",
-'editingold' => "'''హెచ్చ రిక: ఈ పేజీ యొక్క కాలం చెల్లిన సంచికను మీరు మరుస్తున్నారు. దీనిని భద్రపరిస్తే, ఆ సంచిక తరువాత ఈ పేజీలో జరిగిన మార్పులన్నీ పోతాయి.'''",
+'nonunicodebrowser' => '<strong>హెచ్చరిక: మీ బ్రౌజరు యూనికోడుకు అనుకూలంగా లేదు.</strong>
+పేజీలను క్షేమంగా సవరించేందుకు ఓ దారి ఉంది: ASCII యేతర కారెక్టర్లు ఎడిట్ పెట్టెలో హెక్సాడెసిమల్ కోడ్‍లుగా కనిపిస్తాయి.',
+'editingold' => '<strong>హెచ్చ రిక: ఈ పేజీ యొక్క కాలం చెల్లిన సంచికను మీరు మరుస్తున్నారు.</strong> దీనిని భద్రపరిస్తే, ఆ సంచిక తరువాత జరిగిన మార్పులన్నీ పోతాయి.',
 'yourdiff' => 'తేడాలు',
-'copyrightwarning' => "{{SITENAME}}కు సమర్పించే అన్ని రచనలూ $2కు లోబడి ప్రచురింపబడినట్లుగా భావించబడతాయి (వివరాలకు $1 చూడండి). మీ రచనలను ఎవ్వరూ మార్చ రాదనీ లెదా వేరే ఎవ్వరూ వాడుకో రాదని మీరు భావిస్తే, ఇక్కడ ప్రచురించకండి.<br /> మీ స్వీయ రచనను గాని, సార్వజనీనమైన రచననుగాని, ఇతర ఉచిత వనరుల నుండి సేకరించిన రచననుగాని మాత్రమే ప్రచురిస్తున్నానని కూడా మీరు ప్రమాణం చేస్తున్నారు. '''కాపీహక్కులుగల రచనను తగిన అనుమతి లేకుండా సమర్పించకండి!'''",
-'copyrightwarning2' => "{{SITENAME}}లో ప్రచురించే రచనలన్నిటినీ ఇతర రచయితలు సరిదిద్దడం, మార్చడం, తొలగించడం చేసే అవకాశం ఉంది. మీ రచనలను అలా నిర్దాక్షిణ్యంగా దిద్దుబాట్లు చెయ్యడం మీకిష్టం లేకపోతే, వాటిని ఇక్కడ ప్రచురించకండి. <br />
-à°\88 à°°à°\9aననà±\81 à°®à±\80à°°à±\87 à°\9aà±\87సారని, à°²à±\87దా à°\8fà°¦à±\88నా à°¸à°¾à°°à±\8dà°µà°\9cనిà°\95 à°µà°¨à°°à±\81 à°¨à±\81à°\82à°¡à°¿ à°\95ాపà±\80 à°\9aà±\87సి à°¤à±\86à°\9aà±\8dà°\9aారని, à°²à±\87దా à°\85లాà°\82à°\9fà°¿ à°\89à°\9aà°¿à°¤, à°¸à±\8dà°µà±\87à°\9aà±\8dà°\9bà°¾ à°µà°¨à°°à±\81 à°¨à±\81à°\82à°¡ి తెచ్చారని మాకు వాగ్దానం చేస్తున్నారు. (వివరాలకు $1 చూడండి).
-'''తగు అనుమతులు లేకుండా కాపీ హక్కులు గల రచనలను సమర్పించకండి!'''",
-'longpageerror' => "'''పొరపాటు: మీరు సమర్పించిన పాఠ్యం, గరిష్ఠ పరిమితి అయిన {{PLURAL:$2|ఒక కిలోబైటుని|$2 కిలోబైట్లను}} మించి {{PLURAL:$1|ఒక కిలోబైటు|$1 కిలోబైట్ల}} పొడవుంది.'''
- దీన్ని భద్రపరచలేము.",
+'copyrightwarning' => '{{SITENAME}}కు సమర్పించే అన్ని రచనలూ $2కు లోబడి ప్రచురింపబడినట్లుగా భావించబడతాయి (వివరాలకు $1 చూడండి). మీ రచనలను ఎవ్వరూ మార్చ రాదనీ లెదా వేరే ఎవ్వరూ వాడుకో రాదని మీరు భావిస్తే, ఇక్కడ ప్రచురించకండి.<br /> మీ స్వీయ రచనను గాని, సార్వజనీనమైన రచననుగాని, ఇతర ఉచిత వనరుల నుండి సేకరించిన రచననుగాని మాత్రమే ప్రచురిస్తున్నానని కూడా మీరు ప్రమాణం చేస్తున్నారు. <strong>కాపీహక్కులుగల రచనను తగిన అనుమతి లేకుండా సమర్పించకండి!</strong>',
+'copyrightwarning2' => '{{SITENAME}}లో ప్రచురించే రచనలన్నిటినీ ఇతర రచయితలు సరిదిద్దడం, మార్చడం, తొలగించడం జరగవచ్చు. మీ రచనలను అలా నిర్దాక్షిణ్యంగా దిద్దుబాట్లు చెయ్యడం మీకిష్టం లేకపోతే, వాటిని ఇక్కడ ప్రచురించకండి. <br />
+à°\85లాà°\97à±\87, à°\88 à°°à°\9aననà±\81 à°®à±\80à°°à±\87 à°\9aà±\87సారని, à°²à±\87దా à°\8fà°¦à±\88నా à°¸à°¾à°°à±\8dà°µà°\9cనిà°\95 à°µà°¨à°°à±\81 à°¨à±\81à°\82à°¡à°¿ à°\97ానà±\80, à°\85లాà°\82à°\9fà°¿ à°\89à°\9aà°¿à°¤, à°¸à±\8dà°µà±\87à°\9aà±\8dà°\9bà°¾ à°µà°¨à°°à±\81 à°¨à±\81à°\82à°¡à°¿ à°\97ానà±\80 à°\95ాపà±\80 à°\9aà±\87à°¸ి తెచ్చారని మాకు వాగ్దానం చేస్తున్నారు. (వివరాలకు $1 చూడండి).
+<strong>తగు అనుమతులు లేకుండా కాపీ హక్కులు గల రచనలను సమర్పించకండి!</strong>',
+'longpageerror' => '<strong>లోపం: మీరు సమర్పించిన పాఠ్యం {{PLURAL:$1|ఒక కిలోబైటు|$1 కిలోబైట్ల}} నిడివి కలిగి ఉంది. ఇది గరిష్ఠ పరిమితి అయిన {{PLURAL:$2|ఒక కిలోబైటుని|$2 కిలోబైట్లను}} మించింది.</strong>
+ దీన్ని భద్రపరచలేము.',
 'readonlywarning' => '<strong>హెచ్చరిక: నిర్వహణ కొరకు డేటాబేసుకి తాళం వేసారు. కాబట్టి మీ మార్పుచేర్పులను ఇప్పుడు భద్రపరచలేరు.</strong> 
 మీ మార్పులను ఒక ఫాఠ్య ఫైలులోకి కాపీ చేసి భద్రపరచుకొని, తరువాత సమర్పించండి.
 
 తాళం వేసిన నిర్వాహకుడి వివరణ ఇదీ: $1',
-'protectedpagewarning' => "'''హెచ్చరిక: ఈ పేజీ సంరక్షించబడినది, కనుక నిర్వాహక అనుమతులు ఉన్న వాడుకరులు మాత్రమే మార్చగలరు.'''
-à°\9aివరి à°\9aà°¿à°\9fà±\8dà°\9fà°¾ à°ªà°¦à±\8dà°¦à±\81ని à°®à±\80 à°¸à°®à°¾à°\9aారà°\82 à°\95à±\8bà°¸à°\82 à°\87à°\95à±\8dà°\95à°¡ à°\87à°¸à±\8dà°¤à±\81à°¨à±\8dనాà°\82:",
-'semiprotectedpagewarning' => "'''గమనిక:''' నమోదయిన వాడుకరులు మాత్రమే మార్పులు చెయ్యగలిగేలా ఈ పేజీకి సంరక్షించారు.
-à°®à±\80 à°¸à°®à°¾à°\9aారà°\82 à°\95à±\8bà°¸à°\82 à°\9aివరి à°\9aà°¿à°\9fà±\8dà°\9fà°¾ à°ªà°¦à±\8dà°¦à±\81ని à°\87à°\95à±\8dà°\95à°¡ à°\87à°¸à±\8dà°¤à±\81à°¨à±\8dనాà°\82:",
-'cascadeprotectedwarning' => "'''హెచ్చరిక:''' ఈ పేజీ, కాస్కేడింగు రక్షణలో ఉన్న కింది {{PLURAL:$1|పేజీ|పేజీల్లో}} ఇంక్లూడు అయి ఉంది కాబట్టి, నిర్వాహకులు తప్ప ఇతరులు దిద్దుబాటు చేసే వీలు లేకుండా పేజీని లాకు చేసాం:",
-'titleprotectedwarning' => "హెచ్చరిక:  ఈ పేజీని సంరక్షించారు కాబట్టి దీన్ని సృష్టించడానికి [[Special:ListGroupRights|ప్రత్యేక హక్కులు]] ఉండాలి.'''
-మీ సమాచారం కోసం చివరి చిట్టా పద్దుని ఇక్కడ ఇస్తున్నాం:",
+'protectedpagewarning' => '<strong>హెచ్చరిక: ఈ పేజీ సంరక్షించబడింది. కాబట్టి నిర్వాహక అనుమతులు ఉన్న వాడుకరులు మాత్రమే మార్చగలరు.</strong>
+à°\9aివరి à°²à°¾à°\97à±\8d à°ªà°¦à±\8dà°¦à±\81à°¨à±\81 à°®à±\80 à°¸à°®à°¾à°\9aారà°\82 à°\95à±\8bà°¸à°\82 à°\87à°\95à±\8dà°\95à°¡ à°\87à°¸à±\8dà°¤à±\81à°¨à±\8dనాà°\82:',
+'semiprotectedpagewarning' => '<strong>గమనిక:</strong> నమోదయిన వాడుకరులు మాత్రమే మార్పులు చెయ్యగలిగేలా ఈ పేజీకి సంరక్షించారు.
+à°®à±\80 à°¸à°®à°¾à°\9aారà°\82 à°\95à±\8bà°¸à°\82 à°\9aివరి à°²à°¾à°\97à±\8d à°ªà°¦à±\8dà°¦à±\81ని à°\87à°\95à±\8dà°\95à°¡ à°\87à°¸à±\8dà°¤à±\81à°¨à±\8dనాà°\82:',
+'cascadeprotectedwarning' => "'''హెచ్చరిక:''' ఈ పేజీ, కాస్కేడింగు రక్షణలో ఉన్న కింది {{PLURAL:$1|పేజీ|పేజీల్లో}} ఇంక్లూడు అయి ఉంది కాబట్టి, నిర్వాహకులు తప్ప ఇతరులు దిద్దుబాటు చేసే వీలు లేకుండా {{PLURAL:$1|పేజీని|పేజీలను}} లాకు చేసాం:",
+'titleprotectedwarning' => '<strong>హెచ్చరిక: ఈ పేజీని సంరక్షించారు కాబట్టి దీన్ని సృష్టించడానికి [[Special:ListGroupRights|ప్రత్యేక హక్కులు]] ఉండాలి.</strong>
+మీ సమాచారం కోసం చివరి చిట్టా పద్దుని ఇక్కడ ఇస్తున్నాం:',
 'templatesused' => 'ఈ పేజీలో వాడిన {{PLURAL:$1|మూస|మూసలు}}:',
 'templatesusedpreview' => 'ఈ మునుజూపులో వాడిన {{PLURAL:$1|మూస|మూసలు}}:',
 'templatesusedsection' => 'ఈ విభాగంలో వాడిన {{PLURAL:$1|మూస|మూసలు}}:',
@@ -947,26 +953,26 @@ $2
 'nocreatetext' => '{{SITENAME}}లో కొత్త పేజీలు సృష్టించడాన్ని నియంత్రించారు.
 మీరు వెనక్కి వెళ్ళి వేరే పేజీలు మార్చవచ్చు, లేదా [[Special:UserLogin|లోనికి ప్రవేశించండి లేదా ఖాతా సృష్టించుకోండి]].',
 'nocreate-loggedin' => 'కొత్త పేజీలను సృష్టించేందుకు మీకు అనుమతి లేదు.',
-'sectioneditnotsupported-title' => 'విభాà°\97à°ªà±\81 à°¦à°¿à°¦à±\8dదిబాà°\9fà±\8dà°²à°\95à°¿ à°¤à±\8aడ్పాటు లేదు',
+'sectioneditnotsupported-title' => 'విభాà°\97à°ªà±\81 à°¦à°¿à°¦à±\8dà°¦à±\81బాà°\9fà±\8dà°²à°\95à±\81 à°¤à±\8bడ్పాటు లేదు',
 'sectioneditnotsupported-text' => 'ఈ పేజీలో విభాగాల దిద్దుబాటుకి తోడ్పాటు లేదు.',
 'permissionserrors' => 'అనుమతి లోపం',
 'permissionserrorstext' => 'కింద పేర్కొన్న {{PLURAL:$1|కారణం|కారణాల}} మూలంగా, ఆ పని చెయ్యడానికి మీకు అనుమతిలేదు:',
 'permissionserrorstext-withaction' => 'ఈ క్రింది {{PLURAL:$1|కారణం|కారణాల}} వల్ల, $2 అనుమతి మీకు లేదు:',
-'recreate-moveddeleted-warn' => "'''హెచ్చరిక: ఇంతకు మునుపు ఒకసారి తొలగించిన పేజీని మళ్లీ సృష్టిద్దామని మీరు ప్రయత్నిస్తున్నారు.'''
+'recreate-moveddeleted-warn' => '<strong>హెచ్చరిక: ఇంతకు మునుపు ఒకసారి తొలగించిన పేజీని మళ్లీ సృష్టిద్దామని మీరు ప్రయత్నిస్తున్నారు.</strong>
 
 ఈ పేజీపై మార్పులు చేసేముందు, అవి ఇక్కడ ఉండతగినవేనా కాదా అని ఒకసారి ఆలోచించండి.
-మీ సౌలభ్యం కొరకు ఈ పేజీ యొక్క తొలగింపు మరియు తరలింపు చిట్టా ఇక్కడ ఇచ్చాము:",
+మీ సౌలభ్యం కొరకు ఈ పేజీ యొక్క తొలగింపు మరియు తరలింపు చిట్టా ఇక్కడ ఇచ్చాము:',
 'moveddeleted-notice' => 'ఈ పేజీని తొలగించారు.
 సమాచారం కొరకు ఈ పేజీ యొక్క తొలగింపు మరియు తరలింపు చిట్టాని క్రింద ఇచ్చాం.',
 'log-fulllog' => 'పూర్తి చిట్టాని చూడండి',
-'edit-hook-aborted' => 'కొక్కెం మార్పుని విచ్ఛిన్నం చేసింది.
+'edit-hook-aborted' => 'à°\95à±\8aà°\95à±\8dà°\95à±\86à°\82 à°\88 à°®à°¾à°°à±\8dà°ªà±\81ని à°µà°¿à°\9aà±\8dà°\9bà°¿à°¨à±\8dà°¨à°\82 à°\9aà±\87సిà°\82ది.
 అది ఎటువంటి వివరణా ఇవ్వలేదు.',
-'edit-gone-missing' => 'à°ªà±\87à°\9cà±\80ని à°®à°¾à°°à±\8dà°\9aà°²à±\87à°®à±\81.
-à°¦à±\80న్ని తొలగించినట్టున్నారు.',
-'edit-conflict' => 'మారà±\8dà°ªà±\81 à°¸à°\82ఘర్షణ.',
-'edit-no-change' => 'పాఠà±\8dà°¯à°\82à°²à±\8b à°\8fà°®à±\80 à°®à°¾à°°à±\8dà°ªà±\81à°²à±\81 à°²à±\87à°µà±\81 à°\97à°¨à°\95, à°®à±\80 à°®à°¾à°°à±\8dà°ªà±\81ని పట్టించుకోవట్లేదు.',
+'edit-gone-missing' => 'à°ªà±\87à°\9cà±\80ని à°¤à°¾à°\9cà°¾à°\95à°°à°¿à°\82à°\9aà°²à±\87à°\95à°ªà±\8bయాà°\82.
+దాన్ని తొలగించినట్టున్నారు.',
+'edit-conflict' => 'దిదà±\8dà°¦à±\81బాà°\9fà±\81 ఘర్షణ.',
+'edit-no-change' => 'పాఠà±\8dà°¯à°\82à°²à±\8b à°®à°¾à°°à±\8dà°ªà±\81à°²à±\87à°®à±\80 à°\9aà±\86à°¯à±\8dయలà±\87à°¦à±\81 à°\95ాబà°\9fà±\8dà°\9fà°¿, à°®à±\80 à°®à°¾à°°à±\8dà°ªà±\81à°¨à±\81 పట్టించుకోవట్లేదు.',
 'postedit-confirmation' => 'మీ మార్పు భద్రమయ్యింది.',
-'edit-already-exists' => 'à°\95à±\8aà°¤à±\8dà°¤ à°ªà±\87à°\9cà±\80ని à°¸à±\83à°·à±\8dà°\9fà°¿à°\82à°\9aà°²à±\87à°®à±\81.
+'edit-already-exists' => 'à°\95à±\8aà°¤à±\8dà°¤ à°ªà±\87à°\9cà±\80ని à°¸à±\83à°·à±\8dà°\9fà°¿à°\82à°\9aà°²à±\87à°\95à°ªà±\8bయాà°\82.
 అది ఇప్పటికే ఉంది.',
 'defaultmessagetext' => 'అప్రమేయ సందేశపు పాఠ్యం',
 'content-failed-to-parse' => '$1 మోడల్ కొరకు $2 పాఠ్యాన్ని పార్స్ చెయ్యలేకపోయాం: $3',
@@ -984,25 +990,33 @@ $2
 'content-model-css' => 'CSS',
 
 # Parser/template warnings
-'expensive-parserfunction-warning' => 'హెచ్చరిక: ఈ పేజీలో ఖరీదైన పార్సరు పిలుపులు చాలా ఉన్నాయి.
+'expensive-parserfunction-warning' => '<strong>హెచ్చరిక:</strong> ఈ పేజీలో ఖరీదైన పార్సరు పిలుపులు చాలా ఉన్నాయి.
 
 పార్సరు {{PLURAL:$2|పిలుపు|పిలుపులు}} $2 కంటే తక్కువ ఉండాలి,  ప్రస్తుతం {{PLURAL:$1|$1 పిలుపు ఉంది|$1  పిలుపులు ఉన్నాయి}}.',
 'expensive-parserfunction-category' => 'పార్సరు సందేశాలు అధికంగా ఉన్న పేజీలు',
 'post-expand-template-inclusion-warning' => '<strong>హెచ్చరిక:</strong> మూస ఇముడ్పు సైజు చాలా పెద్దదిగా ఉంది.
 కొన్ని మూసలు ఇమడ్చబడవు.',
 'post-expand-template-inclusion-category' => 'మూస చేర్పు సైజును అధిగమించిన పేజీలు',
-'post-expand-template-argument-warning' => 'హెచ్చరిక: చాల పెద్ద సైజున్న మూస ఆర్గ్యుమెంటు, కనీసం ఒకటి, ఈ పేజీలో ఉంది.
+'post-expand-template-argument-warning' => '<strong>హెచ్చరిక:</strong> చాల పెద్ద సైజున్న మూస ఆర్గ్యుమెంటు, కనీసం ఒకటి, ఈ పేజీలో ఉంది.
 ఈ ఆర్గ్యుమెంట్లను వదలివేసాం.',
 'post-expand-template-argument-category' => 'తొలగించిన మూస ఆర్గ్యుమెంట్లు ఉన్న పేజీలు',
 '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)',
+'converter-manual-rule-error' => 'మానవిక భాషాంతరీకరణ పరికరంలో లోపాన్ని కనుక్కున్నాం',
 
 # "Undo" feature
 'undo-success' => 'దిద్దుబాటును రద్దు చెయ్యవచ్చు. కింది పోలికను చూసి, మీరు చెయ్యదలచినది ఇదేనని నిర్ధారించుకోండి. ఆ తరువాత మార్పులను భద్రపరచి దిద్దుబాటు రద్దును పూర్తి చెయ్యండి.',
 'undo-failure' => 'మధ్యలో జరిగిన దిద్దుబాట్లతో తలెత్తిన ఘర్షణ కారణంగా ఈ దిద్దుబాటును రద్దు చెయ్యలేక పోయాం.',
-'undo-norev' => 'ఈ దిద్దుబాటును అసలు లేకపోవటం వలన, లేదా తొలగించేయడం వలన రద్దుచేయలేకపోతున్నాం.',
-'undo-summary' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|చర్చ]]) దిద్దుబాటు చేసిన కూర్పు $1 ను రద్దు చేసారు',
+'undo-norev' => 'ఈ దిద్దుబాటు అసలు లేకపోవటం వలన గానీ, లేదా తొలగించేయడం వలన గానీ దాన్ని రద్దుచేయలేకపోతున్నాం.',
+'undo-nochange' => 'ఆ మార్పును ఈసరికే రద్దు చేసినట్లుగా కనిపిస్తోంది.',
+'undo-summary' => '[[Special:Contributions/$2|$2]] ([[User talk:$2|చర్చ]]) యొక్క కూర్పు $1 ను రద్దుచెయ్యి',
 'undo-summary-username-hidden' => 'దాచబడిన వాడుకరి చేసిన కూర్పు $1 ని వెనక్కి తిప్పండి',
 
 # Account creation failure
@@ -1022,26 +1036,26 @@ $3 ఇచ్చిన కారణం: ''$2''",
 'revisionasof' => '$1 నాటి కూర్పు',
 'revision-info' => '$1 నాటి కూర్పు. రచయిత: $2',
 'previousrevision' => '← పాత కూర్పు',
-'nextrevision' => 'à°¦à±\80ని à°¤à°°à±\81వాతి à°¸à°\82à°\9aà°¿à°\95→',
-'currentrevisionlink' => 'ప్రస్తుతపు సంచిక',
+'nextrevision' => 'తరà±\81వాతి à°\95à±\82à°°à±\8dà°ªà±\81 →',
+'currentrevisionlink' => 'ప్రస్తుత కూర్పు',
 'cur' => 'ప్రస్తుత',
-'next' => 'తరà±\8dవాతి',
+'next' => 'తరà±\81వాతి',
 'last' => 'గత',
 'page_first' => 'మొదటి',
 'page_last' => 'చివరి',
 'histlegend' => 'తేడా ఎంపిక: సంచికల యొక్క రేడియో బాక్సులను ఎంచుకొని ఎంటర్‌ నొక్కండి, లేదా పైన/ కింద ఉన్న మీటను నొక్కండి.<br />
-సూచిక: (ప్రస్తుత) = ప్రస్తుత సంచికతో కల తేడాలు, (గత) = ఇంతకు ముందరి సంచికతో గల తేడాలు, చి = చిన్న మార్పు',
-'history-fieldset-title' => 'చరిత్రలో చూడండి',
+సూచిక: <strong>({{int:cur}})</strong> = ప్రస్తుత సంచికతో కల తేడాలు, <strong>({{int:last}})</strong> = ఇంతకు ముందరి సంచికతో గల తేడాలు, <strong>{{int:minoreditletter}}</strong> = చిన్న మార్పు',
+'history-fieldset-title' => 'చరిత్ర చూడండి',
 'history-show-deleted' => 'తొలగించినవి మాత్రమే',
-'histfirst' => 'à°¤à±\8aà°\9fà±\8dà°\9fà°¤à±\8aà°²ి',
-'histlast' => 'à°\9aà°¿à°\9fà±\8dà°\9fà°\9aివరి',
+'histfirst' => 'à°\85తి à°ªà°¾à°¤à°µి',
+'histlast' => 'సరిà°\95à±\8aà°¤à±\8dà°¤',
 'historysize' => '({{PLURAL:$1|ఒక బైటు|$1 బైట్లు}})',
 'historyempty' => '(ఖాళీ)',
 
 # Revision feed
 'history-feed-title' => 'కూర్పుల చరిత్ర',
 'history-feed-description' => 'ఈ పేజీకి వికీలో కూర్పుల చరిత్ర',
-'history-feed-item-nocomment' => '$2 à°µà°¦à±\8dà°¦ à°\89à°¨à±\8dà°¨ $1',
+'history-feed-item-nocomment' => '$2 న $1',
 'history-feed-empty' => 'మీరడిగిన పేజీ లేదు.
 దాన్ని వికీలోంచి తొలగించి ఉండొచ్చు, లేదా పేరు మార్చి ఉండొచ్చు.
 సంబంధిత కొత్త పేజీల కోసం [[Special:Search|వికీలో వెతికి చూడండి]].',
@@ -1051,8 +1065,8 @@ $3 ఇచ్చిన కారణం: ''$2''",
 'rev-deleted-user' => '(వాడుకరి పేరుని తొలగించారు)',
 'rev-deleted-event' => '(దినచర్యని తొలగించాం)',
 'rev-deleted-user-contribs' => '[వాడుకరిపేరు లేదా ఐపీ చిరునామాని తొలగించారు  - మార్పుచేర్పుల నుండి మార్పుని దాచారు]',
-'rev-deleted-text-permission' => "ఈ పేజీ కూర్పుని '''తొలగించారు'''.
-[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à°¤à±\8aà°²à°\97à°¿à°\82à°ªà±\81 à°\9aà°¿à°\9fà±\8dà°\9fà°¾]à°²à±\8b à°ªà±\82à°°à±\8dతి à°µà°¿à°µà°°à°¾à°²à±\81 à°\89à°\82à°¡à°µà°\9aà±\8dà°\9aà±\81.",
+'rev-deleted-text-permission' => 'ఈ పేజీ కూర్పుని <strong>తొలగించారు</strong>.
+[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à°¤à±\8aà°²à°\97à°¿à°\82à°ªà±\81 à°\9aà°¿à°\9fà±\8dà°\9fà°¾]à°²à±\8b à°ªà±\82à°°à±\8dతి à°µà°¿à°µà°°à°¾à°²à±\81 à°\9aà±\82à°¡à°µà°\9aà±\8dà°\9aà±\81.',
 'rev-deleted-text-unhide' => "పేజీ యొక్క ఈ కూర్పును '''తొలగించాం'''.
 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} తొలగింపు చిట్టా]లో వివరాలు చూడవచ్చు.
 మీరు కావాలనుకుంటే, [$1 ఈ కూర్పుని చూడవచ్చు].",
@@ -1063,8 +1077,8 @@ $3 ఇచ్చిన కారణం: ''$2''",
 మీరు దాన్ని చూడవచ్చు; [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} తొలగింపు చిట్టా]లో వివరాలు దొరుకుతాయి.',
 'rev-suppressed-text-view' => 'ఈ పేజీకూర్పును <strong>అణచి పెట్టాం</strong>.
 మీరు దాన్ని చూడవచ్చు; [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} అణచివేత చిట్టా]లోవివరాలు ఉంటాయి.',
-'rev-deleted-no-diff' => "మీరు తేడాలను చూడలేదు ఎందుకంటే ఒక కూర్పుని '''తొలగించారు'''.
-[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à°¤à±\8aà°²à°\97à°¿à°\82à°ªà±\81 à°\9aà°¿à°\9fà±\8dà°\9fà°¾]à°²à±\8b à°µà°¿à°µà°°à°¾à°²à±\81 à°\89à°\82à°¡à°µà°\9aà±\8dà°\9aà±\81.",
+'rev-deleted-no-diff' => 'మీరు ఈ తేడాను చూడలేరు. ఎందుకంటే ఒక కూర్పు <strong>తొలగించబడింది</strong>.
+[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} à°¤à±\8aà°²à°\97à°¿à°\82à°ªà±\81 à°\9aà°¿à°\9fà±\8dà°\9fà°¾]à°²à±\8b à°µà°¿à°µà°°à°¾à°²à±\81 à°\9aà±\82à°¡à°µà°\9aà±\8dà°\9aà±\81.',
 'rev-suppressed-no-diff' => "ఈ తేడాని మీరు చూడలేరు ఎందుకంటే ఒక కూర్పుని '''తొలగించారు'''.",
 'rev-deleted-unhide-diff' => 'ఈ తేడాల యొక్క కూర్పులలో ఒకదాన్ని <strong>తొలగించారు</strong>.
 [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} తొలగింపు చిట్టా]లో వివరాలు ఉంటాయి.
@@ -1076,29 +1090,31 @@ $3 ఇచ్చిన కారణం: ''$2''",
 మీరు ఈ తేడాను చూడవచ్చు; [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} తొలగింపు చిట్టా]లోవివరాలు ఉంటాయి.',
 'rev-suppressed-diff-view' => 'ఈ తేడా లోని ఒక కూర్పును <strong>అణచి పెట్టాం</strong>.
 మీరు ఈ తేడాను చూడవచ్చు; [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} అణచివేత చిట్టా]లోవివరాలు ఉంటాయి.',
-'rev-delundel' => 'à°\9aà±\82పిà°\82à°\9aà±\81/దాచు',
+'rev-delundel' => 'à°¦à±\83à°¶à±\8dయతనà±\81 à°®à°¾à°°à±\8dచు',
 'rev-showdeleted' => 'చూపించు',
 'revisiondelete' => 'కూర్పులను తొలగించు/తొలగింపును రద్దుచెయ్యి',
 'revdelete-nooldid-title' => 'తప్పుడు లక్ష్యపు కూర్పు',
 'revdelete-nooldid-text' => 'ఈ పని ఏ కూర్పు లేదా కూర్పుల మీద చెయ్యాలో మీరు సూచించలేదు, లేదా మీరు సూచించిన కూర్పు లేదు, లేదా ప్రస్తుత కూర్పునే దాచాలని ప్రయత్నిస్తున్నారు.',
-'revdelete-no-file' => 'à°\86 à°ªà±\87à°°à±\8dà°\95à±\8aà°¨à±\8dà°¨ à°«à±\88à°²à±\81 à°\89నిà°\95à°¿à°²à±\8b à°²à±\87à°¦à±\81.',
+'revdelete-no-file' => 'పేర్కొన్న ఫైలు ఉనికిలో లేదు.',
 'revdelete-show-file-confirm' => 'మీరు నిజంగానే "<nowiki>$1</nowiki>"  ఫైలు యొక్క $2 $3 నాటి తొలగించిన కూర్పుని చూడాలనుకుంటున్నారా?',
 'revdelete-show-file-submit' => 'అవును',
-'revdelete-selected' => "'''[[:$1]] యొక్క {{PLURAL:$2|ఎంచుకున్న కూర్పు|ఎంచుకున్న కూర్పులు}}:'''",
-'logdelete-selected' => "'''{{PLURAL:$1|ఎంచుకున్న చిట్టా ఘటన|ఎంచుకున్న చిట్టా ఘటనలు}}:'''",
-'revdelete-text' => "'''తొలగించిన కూర్పులు, ఘటనలూ పేజీ చరితం లోనూ, చిట్టాలలోనూ కనిపిస్తాయి, కానీ వాటిలో కొన్ని భాగాలు సార్వజనికంగా అందుబాటులో ఉండవు.'''
-{{SITENAME}} లోని ఇతర నిర్వాహకులు ఆ దాచిన భాగాలను చూడగలరు మరియు (ఏవిధమైన నియంత్రణలూ లేకుంటే) ఇదే అంతరవర్తి ద్వారా వాటిని పునస్థాపించగలరు.",
-'revdelete-confirm' => 'మీరు దీన్ని చేయగోరుతున్నారనీ, దీని పర్యవసానాలు మీకు తెలుసుననీ, మరియు మీరు దీన్ని [[{{MediaWiki:Policy-url}}|విధానం]] ప్రకారమే చేస్తున్నారనీ దయచేసి నిర్ధారించండి.',
+'revdelete-selected' => '<strong>[[:$1]] యొక్క {{PLURAL:$2|ఎంచుకున్న కూర్పు|ఎంచుకున్న కూర్పులు}}:</strong>',
+'logdelete-selected' => '<strong>{{PLURAL:$1|ఎంచుకున్న చిట్టా ఘటన|ఎంచుకున్న చిట్టా ఘటనలు}}:</strong>',
+'revdelete-text-text' => 'తొలగించిన కూర్పులు పేజీ చరిత్రలో కనిపిస్తూనే ఉంటాయి. కానీ వాటి విషయసంగ్రహంలోని భాగాలు అందరికీ కనిపించవు.',
+'revdelete-text-file' => 'తొలగించిన ఫైలు కూర్పులు పేజీ చరిత్రలో కనిపిస్తూనే ఉంటాయి. కానీ వాటి విషయసంగ్రహంలోని భాగాలు అందరికీ కనిపించవు.',
+'logdelete-text' => 'తొలగించిన ఘటనలు లాగ్‍లో కనిపిస్తూనే ఉంటాయి. కానీ వాటి విషయసంగ్రహంలోని భాగాలు అందరికీ కనిపించవు.',
+'revdelete-text-others' => '{{SITENAME}} లోని ఇతర నిర్వాహకులు దాచిన విషయాన్ని చూడగలరు. వేరే నిబంధనలేమీ విధించకపోతే, ఇదే ఇంటరుఫేసు ద్వారా వారు ఈ తొలగింపును రద్దు చేయనూ గలరు.',
+'revdelete-confirm' => 'మీరు దీన్ని చేయగోరుతున్నారనీ, దీని పర్యవసానాలు మీకు తెలుసుననీ, దీన్ని సంబంధిత [[{{MediaWiki:Policy-url}}|విధానం]] ప్రకారమే చేస్తున్నారనీ నిర్ధారించండి.',
 'revdelete-suppress-text' => 'అణచివేతను కింది సందర్భాలలో <strong>మాత్రమే</strong> వాడాలి:
 * బురదజల్లే ధోరణిలో ఉన్న సమాచారం
 * అనుచితమైన వ్యక్తిగత సమాచారం
 *<em>ఇంటి చిరునామాలు, టెలిఫోను నంబర్లు, జాతీయ ఐడీ నంబర్లు, వగైరాలు</em>',
 'revdelete-legend' => 'సందర్శక నిబంధనలు అమర్చు',
-'revdelete-hide-text' => 'à°ªà±\81à°¨à°\83పరిశà±\80లన పాఠ్యం',
+'revdelete-hide-text' => 'à°\95à±\82à°°à±\8dà°ªà±\81 పాఠ్యం',
 'revdelete-hide-image' => 'ఫైలులోని విషయాన్ని దాచు',
 'revdelete-hide-name' => 'చర్యను, లక్ష్యాన్నీ దాచు',
 'revdelete-hide-comment' => 'దిద్దుబాటు సారాంశం',
-'revdelete-hide-user' => 'దిద్దుబాటు చేసినవారి వాడుకరి పేరు/ఐపీ చిరునామా',
+'revdelete-hide-user' => 'దిద్దుబాటు చేసిన వాడుకరి పేరు/ఐపీ చిరునామా',
 'revdelete-hide-restricted' => 'డేటాను అందరిలాగే నిర్వాహకులకు కూడా కనబడనివ్వకు',
 'revdelete-radio-same' => '(మార్చకు)',
 'revdelete-radio-set' => 'దాచు',
@@ -1107,10 +1123,10 @@ $3 ఇచ్చిన కారణం: ''$2''",
 'revdelete-unsuppress' => 'పునస్థాపిత కూర్పులపై నిబంధనలను తీసివెయ్యి',
 'revdelete-log' => 'కారణం:',
 'revdelete-submit' => 'ఎంచుకున్న {{PLURAL:$1|కూర్పుకు|కూర్పులకు}} ఆపాదించు',
-'revdelete-success' => "'''కూర్పు కనబడే విధానాన్ని జయప్రదంగా తాజాకరించాం.'''",
-'revdelete-failure' => "'''కూర్పు కనబడే పద్ధతిని తాజాపరచలేకపోయాం:'''
-$1",
-'logdelete-success' => "'''ఘటన కనబడే విధానాన్ని జయప్రదంగా సెట్ చేసాం.'''",
+'revdelete-success' => '<strong>కూర్పు కనబడే విధానాన్ని జయప్రదంగా తాజాకరించాం.</strong>',
+'revdelete-failure' => '<strong>కూర్పు కనబడే పద్ధతిని తాజాపరచలేకపోయాం:</strong>
+$1',
+'logdelete-success' => '<strong>ఘటన కనబడే విధానాన్ని జయప్రదంగా సెట్ చేసాం.</strong>',
 'logdelete-failure' => "'''చిట్టా కనబడే పద్ధతిని అమర్చలేకపోయాం:'''
 $1",
 'revdel-restore' => 'దృశ్యతని మార్చు',
@@ -1172,7 +1188,7 @@ $1",
 
 # Diffs
 'history-title' => '"$1" యొక్క కూర్పుల చరిత్ర',
-'difference-title' => '"$1" à°¯à±\8aà°\95à±\8dà°\95 à°¤à°¿à°°à°¿à°\97à°¿à°\9aà±\82à°ªà±\81à°² à°¨à°¡à±\81à°® తేడాలు',
+'difference-title' => '"$1" à°¯à±\8aà°\95à±\8dà°\95 à°\95à±\82à°°à±\8dà°ªà±\81à°² à°®à°§à±\8dà°¯ తేడాలు',
 'difference-title-multipage' => '"$1" మరియు "$2" పేజీల మధ్య తేడా',
 'difference-multipage' => '(పేజీల మధ్య తేడా)',
 'lineno' => 'పంక్తి $1:',
@@ -1182,7 +1198,7 @@ $1",
 'diff-empty' => '(తేడా లేదు)',
 'diff-multi-sameuser' => '(ఇదే వాడుకరి యొక్క {{PLURAL:$1|ఒక మధ్యంతర కూర్పును|$1 మధ్యంతర కూర్పులను}} చూపించలేదు)',
 'diff-multi-otherusers' => '({{PLURAL:$2|మరో వాడుకరి|$2 వాడుకరుల}} యొక్క {{PLURAL:$1|ఒక మధ్యంతర కూర్పును|$1 మధ్యంతర కూర్పులను}} చూపించలేదు)',
-'diff-multi-manyusers' => '$2 à°®à°\82ది à°ªà±\88à°¨ ({{PLURAL:$2|ఒక వాడుకరి|వాడుకరుల}} యొక్క {{PLURAL:$1|ఒక మధ్యంతర కూర్పును|$1 మధ్యంతర కూర్పులను}} చూపించట్లేదు)',
+'diff-multi-manyusers' => '$2 à°\95à°\82à°\9fà±\87 à°\8eà°\95à±\8dà°\95à±\81à°µ ({{PLURAL:$2|ఒక వాడుకరి|వాడుకరుల}} యొక్క {{PLURAL:$1|ఒక మధ్యంతర కూర్పును|$1 మధ్యంతర కూర్పులను}} చూపించట్లేదు)',
 'difference-missing-revision' => 'ఈ తేడా ($1) యొక్క {{PLURAL:$2|ఒక కూర్పు|$2 కూర్పులు}} {{PLURAL:$2|కనబడలేదు}}.
 
 సాధారణంగా, తొలగించబడిన పేజీ యొక్క కాలం చెల్లిన ’తేడా’ లింకును నొక్కినపుడు ఇది జరుగుతుంది. 
@@ -1191,7 +1207,7 @@ $1",
 # Search results
 'searchresults' => 'వెతుకులాట ఫలితాలు',
 'searchresults-title' => '"$1" కి వెతుకులాట ఫలితాలు',
-'toomanymatches' => 'à°\9aాలా పోలికలు వచ్చాయి, దయచేసి మరో ప్రశ్నని ప్రయత్నించండి',
+'toomanymatches' => 'మరà±\80 à°\8eà°\95à±\8dà°\95à±\81à°µ పోలికలు వచ్చాయి, దయచేసి మరో ప్రశ్నని ప్రయత్నించండి',
 'titlematches' => 'వ్యాస శీర్షిక సరిపోయింది',
 'textmatches' => 'పేజిలోని పాఠం సరిపోలింది',
 'notextmatches' => 'పేజీ పాఠ్యమేదీ సరిపోలడం లేదు',
@@ -1201,7 +1217,7 @@ $1",
 'nextn-title' => 'తరువాతి $1 {{PLURAL:$1|ఫలితం|ఫలితాలు}}',
 'shown-title' => 'పేజీకి $1 {{PLURAL:$1|ఫలితాన్ని|ఫలితాలను}} చూపించు',
 'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3) చూపించు.',
-'searchmenu-exists' => "'''ఈ వికీలో \"[[:\$1]]\" అనే పేజీ ఉంది'''",
+'searchmenu-exists' => '<strong>ఈ వికీలో "[[:$1]]" అనే పేజీ ఉంది.</strong> {{PLURAL:$2|0=|ఇతర ఫలితాలను కూడా చూడండి.}}',
 'searchmenu-new' => '<strong>ఈ వికీలో "[[:$1]]" అనే పేరుతో పేజీని సృష్టించండి!</strong> {{PLURAL:$2|0=|మీ వెతుకులాటలో దొరికిన పేజీని కూడా చూడండి.|వెతుకులాట ఫలితాలను కూడా చూడండి.}}',
 'searchprofile-articles' => 'విషయపు పేజీలు',
 'searchprofile-project' => 'సహాయం మరియు ప్రాజెక్టు పేజీలు',
@@ -1221,15 +1237,16 @@ $1",
 'search-file-match' => '(ఫైలు విషయంతో సరిపోలుతోంది)',
 'search-suggest' => 'మీరు అంటున్నది ఇదా: $1',
 'search-interwiki-caption' => 'సోదర ప్రాజెక్టులు',
-'search-interwiki-default' => '$1 ఫలితాలు:',
+'search-interwiki-default' => '$1 à°¨à±\81à°\82à°¡à°¿ à°«à°²à°¿à°¤à°¾à°²à±\81:',
 'search-interwiki-more' => '(మరిన్ని)',
 'search-relatedarticle' => 'సంబంధించినవి',
 'searcheverything-enable' => 'అన్ని పేరుబరుల్లో వెతుకు',
 'searchrelated' => 'సంబంధించినవి',
 'searchall' => 'అన్నీ',
-'showingresults' => "కింద ఉన్న {{PLURAL:$1|'''ఒక్క''' ఫలితం|'''$1''' ఫలితాలు}}, #'''$2''' నుండి మొదలుకొని చూపిస్తున్నాం.",
-'showingresultsnum' => "కింద ఉన్న {{PLURAL:$3|'''ఒక్క''' ఫలితం|'''$3''' ఫలితాలు}}, #'''$2''' నుండి మొదలుకొని చూపిస్తున్నాం.",
-'showingresultsheader' => "'''$4''' కొరకై {{PLURAL:$5|'''$3'''లో '''$1''' ఫలితం|'''$3''' ఫలితాల్లో '''$1 - $2''' వరకు}}",
+'showingresults' => '#<strong>$2</strong> నుండి మొదలుకొని {{PLURAL:$1|</strong>ఒక్క</strong> ఫలితాన్ని|<strong>$1</strong> ఫలితాలను}} కింద చూపించాం.',
+'showingresultsinrange' => '#<strong>$2</strong> నుండి  #<strong>$3</strong> వరకు ఉన్న ఫలితాల శ్రేణి నుండి {{PLURAL:$1|<strong>ఒక్క</strong> ఫలితం|<strong>$1</strong> ఫలితాల}} వరకు కింద చూపించాం.',
+'showingresultsnum' => '#<strong>$2</strong> నుండి మొదలుకొని {{PLURAL:$3|<strong>ఒక్క</strong> ఫలితాన్ని|<strong>$3</strong> ఫలితాలను}} కింద చూపించాం.',
+'showingresultsheader' => '<strong>$4</strong> కోసం వచ్చిన ఫలితాలు {{PLURAL:$5|<strong>$3</strong> లో <strong>$1</strong>|</strong>$3</strong> లో <strong>$1 - $2</strong>}}',
 'search-nonefound' => 'మీ ప్రశ్నకి సరిపోలిన ఫలితాలేమీ లేవు.',
 'powersearch-legend' => 'నిశితమైన అన్వేషణ',
 'powersearch-ns' => 'ఈ పేరుబరుల్లో వెతుకు:',
@@ -1238,7 +1255,7 @@ $1",
 'powersearch-toggleall' => 'అన్నీ',
 'powersearch-togglenone' => 'ఏదీకాదు',
 'search-external' => 'బయటి అన్వేషణ',
-'searchdisabled' => '{{SITENAME}} à°\85à°¨à±\8dà°µà±\87à°·à°£ à°¤à°¾à°¤à±\8dà°\95ాలిà°\95à°\82à°\97à°¾ à°ªà°¨à°¿ à°\9aà±\86à°¯à±\8dయడà°\82 à°²à±\87à°¦à±\81. à°\88à°²à±\8bà°\97à°¾ à°®à±\80à°°à±\81 à°\97à±\82à°\97à±\81à°²à±\8dâ\80\8c à°\89పయà±\8bà°\97à°¿à°\82à°\9aà°¿ à°\85à°¨à±\8dà°µà±\87à°·à°¿à°\82à°\9aà°µà°\9aà±\8dà°\9aà±\81. à°\92à°\95 à°\97మనిà°\95: à°\97à±\82à°\97à±\81à°²à±\8dâ\80\8c à°¦à±\8dవారా à°\95ాలదà±\8bà°·à°\82 à°ªà°\9fà±\8dà°\9fà°¿à°¨ à°«à°²à°¿à°¤à°¾à°²à±\81 à°°à°¾à°µà°¡à°¾à°¨à°¿à°\95à°¿ అవకాశం ఉంది.',
+'searchdisabled' => '{{SITENAME}} à°\85à°¨à±\8dà°µà±\87à°·à°£ à°¤à°¾à°¤à±\8dà°\95ాలిà°\95à°\82à°\97à°¾ à°ªà°¨à°¿ à°\9aà±\86à°¯à±\8dయడà°\82 à°²à±\87à°¦à±\81. à°\88à°²à±\8bà°\97à°¾ à°®à±\80à°°à±\81 à°\97à±\82à°\97à±\81à°²à±\8dâ\80\8c à°\89పయà±\8bà°\97à°¿à°\82à°\9aà°¿ à°\85à°¨à±\8dà°µà±\87à°·à°¿à°\82à°\9aà°µà°\9aà±\8dà°\9aà±\81. à°\97మనిà°\95: à°\97à±\82à°\97à±\81à°²à±\8dâ\80\8c à°µà°¾à°°à°¿ {{SITENAME}} à°«à°²à°¿à°¤à°¾à°²à±\81 à°\95ాలదà±\8bà°·à°\82 à°ªà°\9fà±\8dà°\9fà°¿ à°\89à°\82à°¡à±\87 అవకాశం ఉంది.',
 'search-error' => '$1 కోసం వెతికేటపుడు లోపమేదో దొర్లింది.',
 
 # Preferences page
@@ -1264,19 +1281,19 @@ $1",
 'prefs-misc' => 'ఇతరత్రా',
 'prefs-resetpass' => 'సంకేతపదాన్ని మార్చుకోండి',
 'prefs-changeemail' => 'ఈ-మెయిలు చిరునామా మార్పు',
-'prefs-setemail' => 'à°\92à°\95 à°\88-à°®à±\86యిలà±\8d à°\9aà°¿à°°à±\81నామాని à°\85మరà±\8dà°\9aండి',
+'prefs-setemail' => 'à°\93 à°\88à°®à±\86యిలà±\8d à°\9aà°¿à°°à±\81నామా à°\87à°µà±\8dà°µండి',
 'prefs-email' => 'ఈ-మెయిల్ ఎంపికలు',
 'prefs-rendering' => 'రూపురేఖలు',
 'saveprefs' => 'భద్రపరచు',
 'restoreprefs' => 'అప్రమేయ అమరికలను పునఃస్థాపించు (అన్ని విభాగాల్లోనూ)',
-'prefs-editing' => 'మారà±\8dà°ªà±\81à°²ు',
+'prefs-editing' => 'సవరిసà±\8dà°¤à±\81à°¨à±\8dనారు',
 'rows' => 'అడ్డు వరుసలు:',
 'columns' => 'నిలువు వరుసలు:',
 'searchresultshead' => 'వెతుకు',
 'stub-threshold' => '<a href="#" class="stub">మొలక లింకు</a> ఫార్మాటింగు కొరకు హద్దు (బైట్లు):',
 'stub-threshold-disabled' => 'అచేతనం',
 'recentchangesdays' => 'ఇటీవలి మార్పులు లో చూపించవలసిన రోజులు:',
-'recentchangesdays-max' => '($1 {{PLURAL:$1|రోజు|రోజులు}} గరిష్ఠం)',
+'recentchangesdays-max' => 'గరిష్ఠంగా $1 {{PLURAL:$1|రోజు|రోజులు}}',
 'recentchangescount' => 'అప్రమేయంగా చూపించాల్సిన దిద్దుబాట్ల సంఖ్య:',
 'prefs-help-recentchangescount' => 'ఇది ఇటీవలి మార్పులు, పేజీ చరిత్రలు, మరియు చిట్టాలకు వర్తిస్తుంది.',
 'prefs-help-watchlist-token2' => 'మీ వీక్షణజాబితా యొక్క జాలవడ్డింపుకు చెందిన రహస్య తాళమిది.
@@ -1307,7 +1324,7 @@ $1",
 'prefs-files' => 'ఫైళ్ళు',
 'prefs-custom-css' => 'ప్రత్యేక CSS',
 'prefs-custom-js' => 'ప్రత్యేక JS',
-'prefs-common-css-js' => 'à°\85à°¨à±\8dని à°\85à°²à°\82à°\95ారాలà°\95à±\88 à°ªà°\82à°\9aà±\81à°\95à±\8bబడిన CSS/JS:',
+'prefs-common-css-js' => 'à°\85à°¨à±\8dని à°°à±\82à°ªà±\81లలà±\8bà°¨à±\82 à°\89à°¨à±\8dన CSS/JS:',
 'prefs-reset-intro' => 'ఈ పేజీలో, మీ అభిరుచులను సైటు డిఫాల్టు విలువలకు మార్చుకోవచ్చు. మళ్ళీ వెనక్కి తీసుకుపోలేరు.',
 'prefs-emailconfirm-label' => 'ఈ-మెయిల్ నిర్ధారణ:',
 'youremail' => 'ఈమెయిలు:',
@@ -1319,9 +1336,10 @@ $1",
 'yourlanguage' => 'భాష:',
 'yourvariant' => 'విషయపు భాషా వైవిధ్యం:',
 'prefs-help-variant' => 'ఈ వికీ లోని విషయపు పేజీలను చూపించడానికి మీ అభిమత వైవిధ్యం లేదా ఆర్ధోగ్రఫీ.',
-'yournick' => 'à°®à±\81à°¦à±\8dà°¦à±\81 à°ªà±\87à°°à±\81',
+'yournick' => 'à°\95à±\8aà°¤à±\8dà°¤ à°¸à°\82à°¤à°\95à°\82:',
 'prefs-help-signature' => 'చర్చా పేజీల లోని వ్యాఖ్యలకు "<nowiki>~~~~</nowiki>"తో సంతకం చేస్తే అది మీ సంతకం మరియు కాలముద్రగా మారుతుంది.',
-'badsig' => 'సంతకాన్ని సరిగ్గా ఇవ్వలేదు; HTML ట్యాగులను ఒకసారి పరిశీలించండి.',
+'badsig' => 'సంతకం చెల్లనిది.
+HTML ట్యాగులను ఒకసారి సరిచూసుకోండి.',
 'badsiglength' => 'మీ సంతకం చాలా పెద్దగా ఉంది.
 ఇది తప్పనిసరిగా $1 {{PLURAL:$1|అక్షరం|అక్షరాల}} లోపులోనే ఉండాలి.',
 'yourgender' => 'మిమ్మల్ని మీరు ఎలా వర్ణించుకుంటారు?',
@@ -1332,8 +1350,9 @@ $1",
 మిమ్మల్ని సంబోధించేప్పుడూ మిమ్మల్ని పేర్కొనేప్పుడూ వ్యాకరణపరంగా సరైన లింగాన్ని  వాడటానికి ఈ విలువ ఉపయోగపడుతుంది.
 ఈ సమాచారం బహిరంగం.',
 'email' => 'ఈ-మెయిలు',
-'prefs-help-realname' => 'అసలు పేరు (తప్పనిసరి కాదు), మీ అసలు పేరు ఇస్తేగనక, మీ రచనలన్నీ మీ అసలు పేరుతోనే గుర్తిస్తూ ఉంటారు.',
-'prefs-help-email' => 'ఈ-మెయిలు చిరునామా ఐచ్చికం, కానీ మీరు సంకేతపదాన్ని మర్చిపోతే కొత్త సంకేతపదాన్ని మీకు పంపించడానికి అవసరమవుతుంది.',
+'prefs-help-realname' => 'అసలు పేరు తప్పనిసరి కాదు. 
+అసలు పేరు ఇస్తే, మీ రచనల శ్రేయస్సు మీ అసలు పేరుకే ఆపాదించబడుతుంది.',
+'prefs-help-email' => 'ఈమెయిలు చిరునామా ఐచ్చికం. కానీ మీరు సంకేతపదాన్ని మర్చిపోతే కొత్త సంకేతపదాన్ని మీకు పంపించడానికి ఇది అవసరం.',
 'prefs-help-email-others' => 'మీ వాడుకరి లేదా చర్చా పేజీలలో ఉండే లంకె ద్వారా ఇతరులు మిమ్మల్ని ఈ-మెయిలు ద్వారా సంప్రదించే వీలుకల్పించవచ్చు.
 ఇతరులు మిమ్మల్ని సంప్రదించినప్పుడు మీ ఈ-మెయిలు చిరునామా బహిర్గతమవదు.',
 'prefs-help-email-required' => 'ఈ-మెయిలు చిరునామా తప్పనిసరి.',
@@ -1341,9 +1360,9 @@ $1",
 'prefs-i18n' => 'అంతర్జాతీయకరణ',
 'prefs-signature' => 'సంతకం',
 'prefs-dateformat' => 'తేదీ ఆకృతి',
-'prefs-timeoffset' => 'సమయ సవరణ',
+'prefs-timeoffset' => 'సమయపు తేడా',
 'prefs-advancedediting' => 'సాధారణ ఎంపికలు',
-'prefs-editor' => 'à°\95à±\82à°°à±\8dపరి',
+'prefs-editor' => 'à°°à°\9aయిత',
 'prefs-preview' => 'మునుజూపు',
 'prefs-advancedrc' => 'ఉన్నత ఎంపికలు',
 'prefs-advancedrendering' => 'ఉన్నత ఎంపికలు',
@@ -1363,22 +1382,22 @@ $1",
 
 # User rights
 'userrights' => 'వాడుకరి హక్కుల నిర్వహణ',
-'userrights-lookup-user' => 'వాడà±\81à°\95à°°à°¿ à°¸à°®à±\82హాలనà±\81 à°¸à°\82భాళించండి',
-'userrights-user-editname' => 'సభà±\8dయనామానà±\8dని ఇవ్వండి:',
+'userrights-lookup-user' => 'వాడà±\81à°\95à°°à°¿ à°¸à°®à±\82హాలనà±\81 à°¨à°¿à°°à±\8dవహించండి',
+'userrights-user-editname' => 'వాడà±\81à°\95à°°à°¿à°ªà±\87à°°à±\81à°¨à±\81 ఇవ్వండి:',
 'editusergroup' => 'వాడుకరి గుంపులను మార్చు',
 'editinguser' => "వాడుకరి '''[[User:$1|$1]]''' $2 యొక్క వాడుకరి హక్కులను మారుస్తున్నారు",
 'userrights-editusergroup' => 'వాడుకరి సమూహాలను మార్చండి',
 'saveusergroups' => 'వాడుకరి గుంపులను భద్రపరచు',
 'userrights-groupsmember' => 'సభ్యులు:',
 'userrights-groupsmember-auto' => 'సంభావిత సభ్యులు:',
-'userrights-groups-help' => 'à°\88 à°µà°¾à°¡à±\81à°\95à°°à°¿ à°\8fà°¯à±\87 à°\97à±\81à°\82à°ªà±\81లలà±\8b à°\89à°\82à°¡à°µà°\9aà±\8dà°\9aో మీరు మార్చవచ్చు.
+'userrights-groups-help' => 'à°\88 à°µà°¾à°¡à±\81à°\95à°°à°¿ à°\8fà°¯à±\87 à°\97à±\81à°\82à°ªà±\81లలà±\8b à°\89à°\82డాలో మీరు మార్చవచ్చు.
 * టిక్కు పెట్టివుంటే ఆ గుంపులో ఈ వాడుకరి ఉన్నట్టు.
 * టిక్కు లేకుంటే ఆ గుంపులో ఈ వాడుకరి లేనట్టు.
-* <nowiki>*</nowiki> ఉంటే ఒకసారి ఆ గుంపుని చేర్చాకా మీరు తీసివేయలేరు, లేదా తీసివేసాకా తిరిగి చేర్చలేరు.',
+* * ఉంటే ఒకసారి ఆ గుంపుని చేర్చాక మీరు తీసివేయలేరు, లేదా తీసివేసాక తిరిగి చేర్చలేరు.',
 'userrights-reason' => 'కారణం:',
 'userrights-no-interwiki' => 'ఇతర వికీలలో వాడుకరి హక్కులను మార్చడానికి మీకు అనుమతి లేదు.',
 'userrights-nodatabase' => '$1 అనే డేటాబేసు లేదు లేదా అది స్థానికం కాదు.',
-'userrights-nologin' => 'వాడà±\81à°\95à°°à°¿ à°¹à°\95à±\8dà°\95à±\81లనà±\81 à°\87à°µà±\8dవడానిà°\95à°¿ à°®à±\80à°°à±\81 à°¤à°ªà±\8dపనిసరిà°\97à°¾ à°\93 à°¨à°¿à°°à±\8dవాహà°\95 à°\96ాతాతà±\8b [[Special:UserLogin|à°²à±\8bనిà°\95à°¿ à°ªà±\8dà°°à°µà±\87శిà°\82à°\9aాలి]].',
+'userrights-nologin' => 'వాడà±\81à°\95à°°à°¿ à°¹à°\95à±\8dà°\95à±\81లనà±\81 à°\87à°µà±\8dవడానిà°\95à°¿ à°®à±\80à°°à±\81 à°¤à°ªà±\8dపనిసరిà°\97à°¾ à°\93 à°¨à°¿à°°à±\8dవాహà°\95 à°\96ాతాతà±\8b [[Special:UserLogin|లాà°\97ినవà±\8dà°µాలి]].',
 'userrights-notallowed' => 'వాడుకరి హక్కులను చేర్చే మరియు తొలగించే అనుమతి మీకు లేదు.',
 'userrights-changeable-col' => 'మీరు మార్చదగిన గుంపులు',
 'userrights-unchangeable-col' => 'మీరు మార్చలేని గుంపులు',
@@ -1406,7 +1425,7 @@ $1",
 'grouppage-autoconfirmed' => '{{ns:project}}:ఆటోమాటిగ్గా నిర్ధారించబడిన వాడుకరులు',
 'grouppage-bot' => '{{ns:project}}:బాట్లు',
 'grouppage-sysop' => '{{ns:project}}:నిర్వాహకులు',
-'grouppage-bureaucrat' => '{{ns:project}}:à°\85ధిà°\95ారà±\8dలు',
+'grouppage-bureaucrat' => '{{ns:project}}:à°\85ధిà°\95ారà±\81లు',
 'grouppage-suppress' => '{{ns:project}}:పూర్తి తొలగింపు',
 
 # Rights
@@ -1425,19 +1444,20 @@ $1",
 'right-reupload' => 'ఇప్పటికే ఉన్న ఫైలును తిరగరాయి',
 'right-reupload-own' => 'తానే ఇదివరలో అప్‌లోడు చేసిన ఫైలును తిరగరాయి',
 'right-reupload-shared' => 'స్థానికంగా ఉమ్మడి మీడియా సొరుగులోని ఫైళ్ళను అధిక్రమించు',
-'right-upload_by_url' => 'URL à°\85à°¡à±\8dà°°à°¸à±\81à°¨à±\81à°\82à°¡à°¿ à°«à±\88à°²à±\81à°¨à±\81 à°\85à°ªà±\8dâ\80\8cà°²à±\8bà°¡à±\81 à°\9aà±\86à°¯à±\8dయి',
+'right-upload_by_url' => 'URL à°\85à°¡à±\8dà°°à°¸à±\81à°¨à±\81à°\82à°¡à°¿ à°«à±\88à°²à±\81à°¨à±\81 à°\85à°ªà±\8dâ\80\8cà°²à±\8bà°¡à±\81 à°\9aà±\86à°¯à±\8dయడà°\82',
 'right-purge' => 'పేజీకి సంబంధించిన సైటు కాషెను, నిర్ధారణ కోరకుండానే తొలగించు',
 'right-autoconfirmed' => 'ఐపీ ఆధారిత రేటు పరిమితులు ప్రభావం చూపవు',
 'right-bot' => 'ఆటోమాటిక్ ప్రాసెస్ లాగా భావించబడు',
-'right-nominornewtalk' => 'à°\9aà°°à±\8dà°\9aà°¾ à°ªà±\87à°\9cà±\80à°²à±\8dà°²à±\8b à°\9cà°°à°¿à°\97à°¿à°¨ à°\85తి à°\9aà°¿à°¨à±\8dà°¨ à°®à°¾à°°à±\8dà°ªà±\81à°²à°\95à±\81 à°\95à±\8aà°¤à±\8dతసà°\82à°¦à±\87శమà±\81 à°µà°\9aà±\8dà°\9aà°¿à°\82దనà±\8dà°¨ à°¸à±\82à°\9aà°¨ à°\9aà±\86à°¯à±\8dయవదà±\8dదు',
-'right-apihighlimits' => 'API à°ªà±\8dà°°à°¶à±\8dనలà±\8dà°²à±\8b à°\89à°¨à±\8dనత à°ªà°°à°¿à°®à°¿à°¤à±\81లనà±\81 à°µà°¾à°¡à±\81',
+'right-nominornewtalk' => 'à°\9aà°°à±\8dà°\9aà°¾ à°ªà±\87à°\9cà±\80à°²à±\8dà°²à±\8b à°\9aà±\87à°¸à±\87 à°\9aà°¿à°¨à±\8dà°¨ à°®à°¾à°°à±\8dà°ªà±\81à°²à°\95à±\81 à°\95à±\8aà°¤à±\8dతసà°\82à°¦à±\87శపà±\81 à°¸à±\82à°\9aà°¨ à°ªà°\82à°ªà°\95à±\82à°¡దు',
+'right-apihighlimits' => 'API à°ªà±\8dà°°à°¶à±\8dనలà±\8dà°²à±\8b à°\89à°¨à±\8dనత à°ªà°°à°¿à°®à°¿à°¤à±\81లనà±\81 à°µà°¾à°¡à°¡à°\82',
 'right-writeapi' => 'రైట్ API వినియోగం',
 'right-delete' => 'పేజీలను తొలగించడం',
 'right-bigdelete' => 'చాలా పెద్ద చరితం ఉన్న పేజీలను తొలగించు',
+'right-deletelogentry' => 'లాగ్ ఎంట్రీలను తొలగించడం, తొలగింపులను రద్దు చెయ్యడం',
 'right-deleterevision' => 'పేజీల ప్రత్యేకించిన కూర్పులను తొలగించు, తొలగింపును నివారించు',
 'right-deletedhistory' => 'తొలగింపులను, వాటి పాఠ్యం లేకుండా, చరితంలో చూడు',
 'right-deletedtext' => 'తొలగించిన పాఠ్యాన్ని మరియు తొలగించిన కూర్పుల మధ్య మార్పలని చూడగలగడం',
-'right-browsearchive' => 'à°¤à±\8aà°²à°\97à°¿à°\82à°\9aà°¿à°¨ à°ªà±\87à°\9cà±\80లనà±\81 à°µà±\86à°¤à±\81à°\95à±\81',
+'right-browsearchive' => 'à°¤à±\8aà°²à°\97à°¿à°\82à°\9aà°¿à°¨ à°ªà±\87à°\9cà±\80à°²à±\8dà°²à±\8b à°µà±\86à°¤à°\95à°¡à°\82',
 'right-undelete' => 'పేజీ తొలగింపును రద్దు చెయ్యి',
 'right-suppressrevision' => 'నిర్వాహకులకు కనబడకుండా ఉన్న కూర్పులను సమీక్షించి పునస్థాపించడం',
 'right-suppressionlog' => 'గోప్యంగా ఉన్న లాగ్‌లను చూడడం',
@@ -1452,8 +1472,8 @@ $1",
 'right-editsemiprotected' => '"{{int:protect-level-autoconfirmed}}" గా సంరక్షించబడ్డ పేజీలను మార్చు',
 'right-editinterface' => 'యూజరు ఇంటరుఫేసులో దిద్దుబాటు చెయ్యి',
 'right-editusercssjs' => 'ఇతర వాడుకరుల CSS, JS ఫైళ్ళలో దిద్దుబాటు చెయ్యి',
-'right-editusercss' => 'à°\87తర à°µà°¾à°¡à±\81à°\95à°°à±\81à°² CSS à°«à±\88à°³à±\8dళలà±\8b à°¦à°¿à°¦à±\8dà°¦à±\81బాà°\9fà±\81 à°\9aà±\86à°¯à±\8dయి',
-'right-edituserjs' => 'à°\87తర à°µà°¾à°¡à±\81à°\95à°°à±\81à°² JS à°«à±\88à°³à±\8dళలà±\8b à°¦à°¿à°¦à±\8dà°¦à±\81బాà°\9fà±\81 à°\9aà±\86à°¯à±\8dయి',
+'right-editusercss' => 'à°\87తర à°µà°¾à°¡à±\81à°\95à°°à±\81à°² CSS à°«à±\88à°³à±\8dళలà±\8b à°¦à°¿à°¦à±\8dà°¦à±\81బాà°\9fà±\81 à°\9aà±\86à°¯à±\8dయడà°\82',
+'right-edituserjs' => 'à°\87తర à°µà°¾à°¡à±\81à°\95à°°à±\81à°² JS à°«à±\88à°³à±\8dళలà±\8b à°¦à°¿à°¦à±\8dà°¦à±\81బాà°\9fà±\81 à°\9aà±\86à°¯à±\8dయడà°\82',
 'right-editmyusercss' => 'మీ స్వంత వాడుకరి CSS ఫైళ్ళను సరిదిద్దండి',
 'right-editmyuserjs' => 'మీ స్వంత JavaScript దస్త్రాలను మార్చండి',
 'right-viewmywatchlist' => 'మీ స్వంత వీక్షణజాబితాను చూడండి',
@@ -1461,22 +1481,22 @@ $1",
 'right-viewmyprivateinfo' => 'మీ స్వంత గోపనీయ డేటాను చూడండి (ఉదా: ఈమెయిలు చిరునామా, అసలు పేరు)',
 'right-editmyprivateinfo' => 'మీ స్వంత గోపనీయ డేటాను మార్చుకోండి (ఉదా: ఈమెయిలు చిరునామా, అసలు పేరు)',
 'right-editmyoptions' => 'మీ స్వంత అభిరుచులను మార్చుకోండి',
-'right-rollback' => 'à°\92à°\95ానà±\8aà°\95 à°ªà±\87à°\9cà±\80à°²à±\8b à°\9aివరి à°¦à°¿à°¦à±\8dà°¦à±\81బాà°\9fà±\81 à°\9aà±\87సిన à°µà°¾à°¡à±\81à°\95à°°à°¿ à°\9aà±\87సిన à°¦à°¿à°¦à±\8dà°¦à±\81బాà°\9fà±\8dలనà±\81 à°°à°¦à±\8dà°¦à±\81à°\9aà±\87యి',
+'right-rollback' => 'à°\92à°\95ానà±\8aà°\95 à°ªà±\87à°\9cà±\80à°²à±\8b à°\9aివరి à°¦à°¿à°¦à±\8dà°¦à±\81బాà°\9fà±\81 à°\9aà±\87సిన à°µà°¾à°¡à±\81à°\95à°°à°¿ à°\9aà±\87సిన à°¦à°¿à°¦à±\8dà°¦à±\81బాà°\9fà±\8dలనà±\81 à°°à°¦à±\8dà°¦à±\81à°\9aà±\87యడà°\82',
 'right-markbotedits' => 'వెనక్కి తెచ్చిన దిద్దుబాట్లను బాట్ దిద్దుబాట్లుగా గుర్తించు',
 'right-noratelimit' => 'రేటు పరిమితులు ప్రభావం చూపవు',
-'right-import' => 'ఇతర వికీల నుండి పేజీలను దిగుమతి చేసుకో',
-'right-importupload' => 'à°«à±\88à°²à±\81 à°\85à°ªà±\8dâ\80\8cà°²à±\8bà°¡à±\81 à°¨à±\81à°\82à°¡à°¿ à°ªà±\87à°\9cà±\80లనà±\81 à°¦à°¿à°\97à±\81మతి à°\9aà±\87à°¸à±\81à°\95à±\8b',
+'right-import' => 'ఇతర వికీల నుండి పేజీలను దిగుమతి చేసుకోవడం',
+'right-importupload' => 'à°«à±\88à°²à±\81 à°\8eà°\95à±\8dà°\95à°¿à°\82à°ªà±\81 à°¨à±\81à°\82à°¡à°¿ à°ªà±\87à°\9cà±\80లనà±\81 à°¦à°¿à°\97à±\81మతి à°\9aà±\87à°¸à±\81à°\95à±\8bవడà°\82',
 'right-patrol' => 'ఇతరుల దిద్దుబాట్లను నిఘాలో ఉన్నట్లుగా గుర్తించు',
 'right-autopatrol' => 'తానే చేసిన మార్పులను నిఘాలో ఉన్నట్లుగా ఆటోమాటిగా గుర్తించు',
 'right-patrolmarks' => 'ఇటీవలి మార్పుల నిఘా గుర్తింపులను చూడు',
 'right-unwatchedpages' => 'వీక్షణలో లేని పేజీల జాబితాను చూడు',
-'right-mergehistory' => 'à°ªà±\87à°\9cà±\80à°² à°¯à±\8aà°\95à±\8dà°\95 à°\9aà°°à°¿à°¤à±\8dరలని à°µà°¿à°²à±\80à°¨à°\82 à°\9aà±\87à°¯à°\97à°²à°\97à°¡à°\82',
+'right-mergehistory' => 'పేజీల యొక్క చరిత్రలని విలీనం చేయడం',
 'right-userrights' => 'వాడుకరులందరి హక్కులను మార్చు',
 'right-userrights-interwiki' => 'ఇతర వికీల్లోని వాడుకరుల హక్కులను మార్చు',
 'right-siteadmin' => 'డేటాబేసును లాక్, అన్‌లాక్ చెయ్యి',
 'right-override-export-depth' => '5 లింకుల లోతు వరకు ఉన్న పేజీలతో సహా, పేజీలను ఎగుమతి చెయ్యి',
-'right-sendemail' => 'à°\87తర à°µà°¾à°¡à±\81à°\95à°°à±\81à°²à°\95à±\81 à°\88-à°®à±\86యిలà±\81 à°ªà°\82పిà°\82à°\9aà°\97à°²à°\97à°¡à°\82',
-'right-passwordreset' => 'à°¸à°\82à°\95à±\87తపదానà±\8dని à°ªà±\81నరà±\81à°¦à±\8dధరిà°\82à°\9aà°¿à°¨ à°\88-à°®à±\86యిళà±\8dà°³à±\81',
+'right-sendemail' => 'ఇతర వాడుకరులకు ఈ-మెయిలు పంపించడం',
+'right-passwordreset' => 'à°¸à°\82à°\95à±\87తపదà°\82 à°®à°¾à°°à±\8dà°ªà±\81 à°\88à°®à±\86యిళà±\8dళనà±\81 à°\9aà±\82à°¡à°¡à°\82',
 
 # Special:Log/newusers
 'newuserlogpage' => 'కొత్త వాడుకరుల చిట్టా',
@@ -1487,15 +1507,15 @@ $1",
 'rightslogtext' => 'ఇది వాడుకరుల హక్కులకు జరిగిన మార్పుల చిట్టా.',
 
 # Associated actions - in the sentence "You do not have permission to X"
-'action-read' => 'à°\88 à°ªà±\87à°\9cà±\80ని à°\9aదవà°\82à°¡à°¿',
+'action-read' => 'à°\88 à°ªà±\87à°\9cà±\80ని à°\9aదివà±\87',
 'action-edit' => 'ఈ పేజీని సవరించే',
 'action-createpage' => 'పేజీలను సృష్టించే',
 'action-createtalk' => 'చర్చాపేజీలను సృష్టించే',
 'action-createaccount' => 'ఈ వాడుకరి ఖాతాని సృష్టించే',
-'action-minoredit' => 'à°\88 à°®à°¾à°°à±\8dà°ªà±\81ని à°\9aà°¿à°¨à±\8dనదానిà°\97à°¾ à°\97à±\81à°°à±\8dతిà°\82à°\9aà±\87',
+'action-minoredit' => 'ఈ మార్పుని చిన్నదిగా గుర్తించే',
 'action-move' => 'ఈ పేజీని తరలించే',
-'action-move-subpages' => 'ఈ పేజీని మరియు దీని ఉపపేజీలను తరలించే',
-'action-move-rootuserpages' => 'à°ªà±\8dరధాన à°µà°¾à°¡à±\81à°\95à°°à°¿ à°ªà±\87à°\9cà±\80లని à°¤à°°à°²à°¿à°\82à°\9aà°\97à°¡à°\97à°¡à°\82',
+'action-move-subpages' => 'ఈ పేజీని, దీని ఉపపేజీలనూ తరలించే',
+'action-move-rootuserpages' => 'à°ªà±\8dరధాన à°µà°¾à°¡à±\81à°\95à°°à°¿ à°ªà±\87à°\9cà±\80లని à°¤à°°à°²à°¿à°\82à°\9aà±\87',
 'action-movefile' => 'ఈ ఫైలుని తరలించే',
 'action-upload' => 'ఈ దస్త్రాన్ని ఎక్కించే',
 'action-reupload' => 'ఈ ఫైలుని తిరగవ్రాసే',
@@ -1521,7 +1541,7 @@ $1",
 'action-userrights' => 'అందరు వాడుకరుల హక్కులను మార్చే',
 'action-userrights-interwiki' => 'ఇతర వికీలలో వాడుకరుల యొక్క హక్కులను మార్చే',
 'action-siteadmin' => 'డాటాబేసుకి తాళం వేసే లేదా తీసే',
-'action-sendemail' => 'ఈ-మెయిల్స్ పంపించు',
+'action-sendemail' => 'ఈమెయిళ్ళు పంపించే',
 'action-editmywatchlist' => 'మీ వీక్షణ జాబితాను సరిదిద్దండి',
 'action-viewmywatchlist' => 'మీ వీక్షణ జాబితాను చూడండి',
 'action-viewmyprivateinfo' => 'మీ గోపనీయ సమాచారాన్ని చూడండి',
@@ -1529,7 +1549,7 @@ $1",
 
 # Recent changes
 'nchanges' => '{{PLURAL:$1|ఒక మార్పు|$1 మార్పులు}}',
-'enhancedrc-since-last-visit' => '$1 {{PLURAL:$1|చివరి దర్శనం నుండి}}',
+'enhancedrc-since-last-visit' => '{{PLURAL:$1|చివరి సందర్శన తరువాత}}, $1',
 'enhancedrc-history' => 'చరితం',
 'recentchanges' => 'ఇటీవలి మార్పులు',
 'recentchanges-legend' => 'ఇటీవలి మార్పుల ఎంపికలు',
@@ -1543,8 +1563,8 @@ $1",
 'recentchanges-label-plusminus' => 'ఈ పేజి పరిమాణంలో  జరిగిన మార్పుల  బైట్ల సంఖ్య',
 'recentchanges-legend-heading' => "'''సూచిక :'''",
 'recentchanges-legend-newpage' => '([[Special:NewPages|కొత్త పేజీల జాబితా]]ను కూడా చూడండి)',
-'rcnotefrom' => '<b>$2</b> నుండి జరిగిన మార్పులు (<b>$1</b> వరకు చూపబడ్డాయి).',
-'rclistfrom' => '$1 నుండి జరిగిన మార్పులను చూపించు',
+'rcnotefrom' => '<strong>$2</strong> నుండి జరిగిన మార్పులు (<strong>$1</strong> వరకు) కింద చూపబడ్డాయి.',
+'rclistfrom' => '$3, $2 నుండి జరిగిన మార్పులను చూపించు',
 'rcshowhideminor' => 'చిన్న మార్పులను $1',
 'rcshowhideminor-show' => 'చూపించు',
 'rcshowhideminor-hide' => 'దాచు',
@@ -1584,10 +1604,10 @@ $1",
 'recentchangeslinked' => 'సంబంధిత మార్పులు',
 'recentchangeslinked-feed' => 'సంబంధిత మార్పులు',
 'recentchangeslinked-toolbox' => 'సంబంధిత మార్పులు',
-'recentchangeslinked-title' => '$1 కు సంబంధించిన మార్పులు',
+'recentchangeslinked-title' => '"$1" కు సంబంధించిన మార్పులు',
 'recentchangeslinked-summary' => 'ఏదైనా పేజీకి లింకై ఉన్న పేజీల్లో (లేదా ఏదైనా వర్గంలోని పేజీల్లో) జరిగిన ఇటీవలి మార్పుల జాబితా ఇది.  [[Special:Watchlist|మీ వీక్షణ జాబితా]]లో ఉన్న పేజీలు <strong>బొద్దు</strong>గా ఉంటాయి.',
 'recentchangeslinked-page' => 'పేజీ పేరు:',
-'recentchangeslinked-to' => 'ఇచ్చిన పేజీకి లింకయివున్న పేజీలలో జరిగిన మార్పులను చూపించు',
+'recentchangeslinked-to' => 'à°²à±\87à°¦à°\82à°\9fà±\87, à°\87à°\9aà±\8dà°\9aà°¿à°¨ à°ªà±\87à°\9cà±\80à°\95à°¿ à°²à°¿à°\82à°\95యివà±\81à°¨à±\8dà°¨ à°ªà±\87à°\9cà±\80లలà±\8b à°\9cà°°à°¿à°\97à°¿à°¨ à°®à°¾à°°à±\8dà°ªà±\81లనà±\81 à°\9aà±\82పిà°\82à°\9aà±\81',
 
 # Upload
 'upload' => 'దస్త్రపు ఎక్కింపు',
@@ -1596,12 +1616,12 @@ $1",
 'upload-tryagain' => 'మార్చిన ఫైలు వివరణని దాఖలుచేయండి',
 'uploadnologin' => 'లాగిన్‌ అయిలేరు',
 'uploadnologintext' => 'దస్త్రాలను ఎక్కించడానికి మీరు $1 ఉండాలి.',
-'upload_directory_missing' => 'à°\8eà°\97à±\81మతి à°¡à±\88à°°à±\86à°\95à±\8dà°\9fà°°à±\80 ($1) à°¤à°ªà±\8dపిà°\82ది à°®à°°à°¿à°¯à±\81 à°µà±\86à°¬à±\8d à°¸à°°à±\8dవరà±\8d à°¦à°¾à°¨à±\8dని à°¸à±\83à°·à±\8dà°\9fà°¿à°\82à°\9aà°²à±\87à°\95à±\81à°¨à±\8dà°¨ది.',
-'upload_directory_read_only' => 'à°\85à°ªà±\8dâ\80\8cà°²à±\8bà°¡ు డైరెక్టరీ ($1), వెబ్‌సర్వరు రాసేందుకు అనుకూలంగా లేదు.',
+'upload_directory_missing' => 'à°\8eà°\95à±\8dà°\95à°¿à°\82à°ªà±\81 à°¡à±\88à°°à±\86à°\95à±\8dà°\9fà°°à±\80 ($1) à°\95నబడలà±\87à°¦à±\81. à°ªà±\88à°\97à°¾ à°µà±\86à°¬à±\8d à°¸à°°à±\8dవరà±\8d à°¦à°¾à°¨à±\8dని à°¸à±\83à°·à±\8dà°\9fà°¿à°\82à°\9aà°²à±\87à°\95à°ªà±\8bయిà°\82ది.',
+'upload_directory_read_only' => 'à°\8eà°\95à±\8dà°\95à°¿à°\82à°ªు డైరెక్టరీ ($1), వెబ్‌సర్వరు రాసేందుకు అనుకూలంగా లేదు.',
 'uploaderror' => 'ఎక్కింపు లోపం',
-'upload-recreate-warning' => "'''హెచ్చరిక: ఆ పేరుతో ఉన్న దస్త్రాన్ని తరలించి లేదా తొలగించి ఉన్నారు.'''
+'upload-recreate-warning' => '<strong>హెచ్చరిక: ఆ పేరుతో ఉన్న దస్త్రాన్ని తరలించడం లేదా తొలగించడం జరిగింది.</strong>
 
-à°®à±\80 à°¸à±\8cà°\95à°°à±\8dà°¯à°\82 à°\95à±\8bà°¸à°\82 à°\88 à°ªà±\81à°\9f à°¯à±\8aà°\95à±\8dà°\95 à°¤à±\8aà°²à°\97à°¿à°\82à°ªà±\81 à°®à°°à°¿à°¯à±\81 à°¤à°°à°²à°¿à°\82à°ªà±\81 à°\9aà°¿à°\9fà±\8dà°\9fాని à°\87à°\95à±\8dà°\95à°¡ à°\87à°¸à±\8dà°¤à±\81à°¨à±\8dనాà°\82:",
+à°®à±\80 à°¸à±\8cà°\95à°°à±\8dà°¯à°\82 à°\95à±\8bà°¸à°\82 à°\88 à°ªà±\87à°\9cà±\80 à°¯à±\8aà°\95à±\8dà°\95 à°¤à±\8aà°²à°\97à°¿à°\82à°ªà±\81 à°®à°°à°¿à°¯à±\81 à°¤à°°à°²à°¿à°\82à°ªà±\81 à°\9aà°¿à°\9fà±\8dà°\9fాని à°\87à°\95à±\8dà°\95à°¡ à°\87à°¸à±\8dà°¤à±\81à°¨à±\8dనాà°\82:',
 'uploadtext' => "దస్త్రాలను ఎక్కించడానికి ఈ కింది ఫారాన్ని ఉపయోగించండి.
 గతంలో ఎక్కించిన దస్త్రాలను చూడడానికి లేదా వెతకడానికి [[Special:FileList|ఎక్కించిన దస్త్రాల యొక్క జాబితా]]కు వెళ్ళండి, (పునః)ఎక్కింపులు [[Special:Log/upload|ఎక్కింపుల చిట్టా]] లోనూ తొలగింపులు [[Special:Log/delete|తొలగింపుల చిట్టా]] లోనూ కూడా నమోదవుతాయి.
 
@@ -1614,29 +1634,30 @@ $1",
 'upload-prohibited' => 'నిషేధించిన ఫైలు రకాలు: $1.',
 'uploadlog' => 'ఎక్కింపుల చిట్టా',
 'uploadlogpage' => 'ఎక్కింపుల చిట్టా',
-'uploadlogpagetext' => 'ఇటీవల జరిగిన ఫైలు అప్‌లోడుల జాబితా ఇది.',
+'uploadlogpagetext' => 'ఇటీవల జరిగిన ఫైలు అప్‌లోడుల జాబితా ఇది.
+మరింత దృశ్యాత్మకంగా చూడటం కోసం [[Special:NewFiles|కొత్త ఫైళ్ళ కొలువు]]కు వెళ్ళండి.',
 'filename' => 'ఫైలు పేరు',
 'filedesc' => 'సారాంశం',
 'fileuploadsummary' => 'సారాంశం:',
 'filereuploadsummary' => 'ఫైలు మార్పులు:',
 'filestatus' => 'కాపీహక్కు స్థితి:',
 'filesource' => 'మూలం:',
-'uploadedfiles' => 'à°\8eà°\97à±\81మతయిన ఫైళ్ళు',
+'uploadedfiles' => 'à°\8eà°\95à±\8dà°\95à°¿à°\82à°\9aిన ఫైళ్ళు',
 'ignorewarning' => 'హెచ్చరికను పట్టించుకోకుండా ఫైలును భద్రపరచు',
 'ignorewarnings' => 'హెచ్చరికలను పట్టించుకోవద్దు',
-'minlength1' => 'పైలు పేర్ల కనీసం ఒక్క అక్షరమైనా ఉండాలి.',
+'minlength1' => 'పైలు పేర్ల నిడివి కనీసం ఒక్క అక్షరమైనా ఉండాలి.',
 'illegalfilename' => '"$1" అనే దస్త్రపుపేరు పేజీ శీర్షికలలో వాడకూడని అక్షరాలను కలిగివుంది.
 దస్త్రపు పేరుని మార్చి మళ్ళీ ఎక్కించడానికి ప్రయత్నించండి.',
 'filename-toolong' => 'దస్త్రపు పేరు 240 బైట్ల కంటే పొడవు ఉండకూడదు.',
 'badfilename' => 'ఫైలు పేరు "$1"కి మార్చబడినది.',
-'filetype-mime-mismatch' => 'దసà±\8dà°¤à±\8dà°°à°ªà±\81 à°ªà±\8aà°¡à°\97à°¿à°\82à°ªà±\81 ".$1" ఆ దస్త్రం యొక్క MIME రకం ($2) తో సరిపోలలేదు.',
+'filetype-mime-mismatch' => 'దసà±\8dà°¤à±\8dà°°à°ªà±\81 à°\8eà°\95à±\8dà°¸à±\8dà°\9fà±\86à°¨à±\8dà°·à°¨à±\81 ".$1", ఆ దస్త్రం యొక్క MIME రకం ($2) తో సరిపోలలేదు.',
 'filetype-badmime' => '"$1" MIME రకం ఉన్న ఫైళ్ళను ఎగుమతికి అనుమతించం.',
-'filetype-bad-ie-mime' => 'ఈ ఫైలుని ఎగుమతి చేయలేరు ఎందుకంటే ఇంటర్నెట్ ఎక్స్‌ప్లోరర్ దీన్ని "$1" గా చూపిస్తుంది, ఇది అనుమతి లేని మరియు ప్రమాదకారమైన ఫైలు రకం.',
-'filetype-unwanted-type' => "'''\".\$1\"''' అనేది అవాంఛిత ఫైలు రకం.
-\$2 {{PLURAL:\$3|అనేది వాడదగ్గ ఫైలు రకం|అనేవి వాడదగ్గ ఫైలు రకాలు}}.",
+'filetype-bad-ie-mime' => 'ఈ ఫైలుని ఎగుమతి చేయలేరు. ఎందుకంటే ఇంటర్నెట్ ఎక్స్‌ప్లోరర్ దీన్ని "$1" గా చూపిస్తుంది. ఇది అనుమతి లేని మరియు ప్రమాదకరమైన ఫైలు రకం.',
+'filetype-unwanted-type' => '<strong>".$1"</strong> అనేది అవాంఛిత ఫైలు రకం.
+$2 {{PLURAL:$3|అనేది వాడదగ్గ ఫైలు రకం|అనేవి వాడదగ్గ ఫైలు రకాలు}}.',
 'filetype-banned-type' => '\'\'\'".$1"\'\'\' {{PLURAL:$4|అనేది అనుమతించబడిన ఫైలు రకం కాదు|అనేవి అనుమతించబడిన ఫైలు రకాలు కాదు}}.
 అనుమతించబడిన {{PLURAL:$3|ఫైలు రకం|ఫైలు రకాలు}} $2.',
-'filetype-missing' => 'à°«à±\88à°²à±\81à°\95à°¿ à°ªà±\8aà°¡à°\97à°¿à°\82à°ªు (".jpg" లాంటిది) లేదు.',
+'filetype-missing' => 'à°«à±\88à°²à±\81à°\95à°¿ à°\8eà°\95à±\8dà°¸à±\8dà°\9fà±\86à°¨à±\8dà°·à°¨ు (".jpg" లాంటిది) లేదు.',
 'empty-file' => 'మీరు సమర్పించిన దస్త్రం ఖాళీగా ఉంది.',
 'file-too-large' => 'మీరు సమర్పించిన దస్త్రం చాలా పెద్దగా ఉంది.',
 'filename-tooshort' => 'దస్త్రపు పేరు మరీ చిన్నగా ఉంది.',
@@ -1644,23 +1665,24 @@ $1",
 'verification-error' => 'దస్త్రపు తనిఖీలో ఈ దస్త్రం ఉత్తీర్ణమవలేదు.',
 'hookaborted' => 'మీరు చేయప్రత్నించిన మార్పుని ఒక పొడగింత కొక్కెం విచ్ఛిన్నం చేసింది.',
 'illegal-filename' => 'ఆ దస్త్రపుపేరు అనుమతించబడదు.',
-'overwrite' => 'à°\87à°ªà±\8dà°ªà°\9fà°¿à°\95à±\87 à°\89à°¨à±\8dà°¨ à°¦à°¸à±\8dà°¤à±\8dరానà±\8dని à°¤à°¿à°°à°¿à°\97రాయడà°\82 à°\85à°¨à±\81మతిà°\82à°\9aబడదు.',
-'unknown-error' => 'à°\8fà°¦à±\8b à°¤à±\86లియని à°ªà±\8aరపాà°\9fà±\81 à°\9cà°°à°¿à°\97ింది.',
+'overwrite' => 'à°\87à°ªà±\8dà°ªà°\9fà°¿à°\95à±\87 à°\89à°¨à±\8dà°¨ à°¦à°¸à±\8dà°¤à±\8dరానà±\8dని à°¤à°¿à°°à°\97రాయడానిà°\95à°¿ à°\85à°¨à±\81మతి à°²à±\87దు.',
+'unknown-error' => 'à°\8fà°¦à±\8b à°¤à±\86లియని à°²à±\8bà°ªà°\82 à°¦à±\8aà°°à±\8dà°²ింది.',
 'tmp-create-error' => 'తాత్కాలిక దస్త్రాన్ని సృష్టించలేకపోయాం.',
 'tmp-write-error' => 'తాత్కాలిక దస్త్రాన్ని రాయడంలో పొరపాటు.',
 'large-file' => 'ఫైళ్ళు $1 కంటే పెద్దవిగా ఉండకుండా ఉంటే మంచిది; ఈ ఫైలు $2 ఉంది.',
 'largefileserver' => 'ఈ ఫైలు సైజు సర్వరులో విధించిన పరిమితి కంటే ఎక్కువగా ఉంది.',
 'emptyfile' => 'మీరు అప్‌లోడు చేసిన ఫైలు ఖాళీగా ఉన్నట్లుంది. ఫైలు పేరును ఇవ్వడంలో స్పెల్లింగు తప్పు దొర్లి ఉండొచ్చు. మీరు అప్‌లోడు చెయ్యదలచింది ఇదో కాదో నిర్ధారించుకోండి.',
-'windows-nonascii-filename' => 'దస్త్రాల పేర్లలో ప్రత్యేక అక్షరాలకు ఈ వికీలో తోడ్పాటు లేదు.',
-'fileexists' => 'ఈ పేరుతో ఒక ఫైలు ఇప్పటికే ఉంది.
-దీనిని మీరు మార్చాలో లేదో తెలియకపోతె ఫైలు <strong>[[:$1]]</strong>ని చూడండి.
+'windows-nonascii-filename' => 'దస్త్రాల పేర్లలో ప్రత్యేక అక్షరాలకు ఈ వికీలో అనుకూలత లేదు.',
+'fileexists' => 'ఈ పేరుతో ఒక ఫైలు ఇప్పటికే ఉంది. దీనిని మార్చాలో లేదో తెలియకపోతే ఫైలు <strong>[[:$1]]</strong>ను చూడండి.
 [[$1|thumb]]',
-'filepageexists' => 'ఈ ఫైలు కొరకు వివరణ పేజీని <strong>[[:$1]]</strong> వద్ద ఈసరికే సృష్టించారు, కానీ ఆ పేరుతో ప్రస్తుతం ఏ ఫైలూ లేదు. మీరు ఇస్తున్న సంగ్రహం ఆ వివరణ పేజీలో కనబడదు. మీ సంగ్రహం అక్కడ కనబడాలంటే, నేరుగా అక్కడే చేర్చాలి.
+'filepageexists' => 'ఈ ఫైలు కొరకు వివరణ పేజీని <strong>[[:$1]]</strong> వద్ద ఈసరికే సృష్టించారు, కానీ ఆ పేరుతో ప్రస్తుతం ఫైలేదీ లేదు.
+మీరు ఇస్తున్న సంగ్రహం ఆ వివరణ పేజీలో కనబడదు. 
+మీ సంగ్రహం అక్కడ కనబడాలంటే, నేరుగా అక్కడే చేర్చాలి.
 [[$1|thumb]]',
-'fileexists-extension' => 'ఇటువంటి పేరుతో మరో ఫైలు ఉంది: [[$2|thumb]]
-* à°\8eà°\97à±\81మతి à°\9aà±\87స్తున్న ఫైలు పేరు: <strong>[[:$1]]</strong>
+'fileexists-extension' => 'ఇటువంటి పేరుతోటే మరో ఫైలు ఉంది: [[$2|thumb]]
+* à°\8eà°\95à±\8dà°\95à°¿స్తున్న ఫైలు పేరు: <strong>[[:$1]]</strong>
 * ప్రస్తుతం ఉన్న ఫైలు పేరు: <strong>[[:$2]]</strong>
-దయà°\9aà±\87సి à°®à°°à±\8b à°ªà±\87à°°à±\81 à°\8eà°\82à°\9aà±\81à°\95à±\8bà°\82à°¡à°¿.',
+మరో పేరు ఎంచుకోండి.',
 'fileexists-thumbnail-yes' => "ఈ ఫైలు కుదించిన బొమ్మ లాగా ఉంది ''(థంబ్‌నెయిలు)''. [[$1|thumb]]
 <strong>[[:$1]]</strong> ఫైలు చూడండి.
 గుర్తు పెట్టబడిన ఫైలు అసలు సైజే అది అయితే, మరో థంబ్‌నెయిలును అప్‌లోడు చెయ్యాల్సిన అవసరం లేదు.",
@@ -1671,22 +1693,23 @@ $1",
 మీరు ఇప్పటికీ ఈ ఫైలుని ఎగుమతి చేయాలనుకుంటే, వెనక్కి వెళ్ళి మరో పేరుతో ఎగుమతి చేయండి. [[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => 'ఈ పేరుతో ఇప్పటికే ఒక ఫైలు అందరి ఫైళ్ళ ఖజానాలో ఉంది.
 ఇప్పటికీ మీ ఫైలుని ఎగుమతి చేయాలనుకుంటే, వెనక్కివెళ్ళి మరో పేరు వాడండి. [[File:$1|thumb|center|$1]]',
-'file-exists-duplicate' => 'à°\88 à°«à±\88à°²à±\81 à°\95à±\8dà°°à°¿à°\82à°¦ à°ªà±\87à°°à±\8dà°\95à±\8aà°¨à±\8dà°¨ {{PLURAL:$1|à°«à±\88à°²à±\81à°\95à°¿|à°«à±\88à°³à±\8dà°³à°\95à°¿}} నకలు:',
-'file-deleted-duplicate' => 'à°\97à°¤à°\82à°²à±\8b à°\88 à°«à±\88à°²à±\81 à°²à°¾à°\82à°\9fà°¿à°¦à±\87 à°\92à°\95 à°«à±\88à°²à±\81ని ([[:$1]]) à°¤à±\8aà°²à°\97à°¿à°\82à°\9aà°¿à°µà±\81à°¨à±\8dనారà±\81. à°®à±\80à°°à±\81 à°¦à±\80à°¨à±\8dని à°\8eà°\97à±\81మతి à°\9aà±\87à°¸à±\87à°®à±\81à°\82à°¦à±\81 à°\86 à°«à±\88à°²à±\81 à°¯à±\8aà°\95à±\8dà°\95 à°¤à±\8aà°²à°\97à°¿à°\82à°ªà±\81 à°\9aà°°à°¿à°¤à±\8dరని à°\92à°\95à±\8dà°\95సారి చూడండి.',
+'file-exists-duplicate' => 'à°\88 à°«à±\88à°²à±\81 à°\95à±\8dà°°à°¿à°\82à°¦ à°ªà±\87à°°à±\8dà°\95à±\8aà°¨à±\8dà°¨ {{PLURAL:$1|à°«à±\88à°²à±\81à°\95à±\81|à°«à±\88à°³à±\8dà°³à°\95à±\81}} నకలు:',
+'file-deleted-duplicate' => 'à°\97à°¤à°\82à°²à±\8b à°\88 à°«à±\88à°²à±\81 à°²à°¾à°\82à°\9fà°¿à°¦à±\87 à°\92à°\95 à°«à±\88à°²à±\81ని ([[:$1]]) à°¤à±\8aà°²à°\97à°¿à°\82à°\9aà°¿à°µà±\81à°¨à±\8dనారà±\81. à°®à±\80à°°à±\81 à°¦à±\80à°¨à±\8dని à°¤à°¿à°°à°¿à°\97à°¿ à°\8eà°\95à±\8dà°\95à°¿à°\82à°\9aà±\87 à°®à±\81à°\82à°¦à±\81 à°\86 à°«à±\88à°²à±\81 à°¯à±\8aà°\95à±\8dà°\95 à°¤à±\8aà°²à°\97à°¿à°\82à°ªà±\81 à°\9aà°°à°¿à°¤à±\8dà°°à°¨à±\81 చూడండి.',
 'file-deleted-duplicate-notitle' => 'సరిగ్గా ఈ ఫైలునే పోలిన మరో ఫైలును గతంలో తొలగించాం. దాని పేరును అణచిపెట్టాం.
 దాన్ని తిరిగి ఎక్కించే ముందు, పరిస్థితిని సమీక్షించేందుకు గాను, అణచబడిన ఫైళ్ళ డేటాను చూడగలిగే వారిని అడగండి.',
 'uploadwarning' => 'ఎక్కింపు హెచ్చరిక',
-'uploadwarning-text' => 'à°«à±\88à°²à±\81 à°µà°¿à°µà°°à°£à°¨à°¿ à°\95à±\8dà°°à°¿à°\82à°¦ à°®à°¾à°°à±\8dà°\9aà°¿ మళ్ళీ ప్రయత్నించండి.',
+'uploadwarning-text' => 'à°\95à°¿à°\82à°¦ à°\88 à°«à±\88à°²à±\81 à°µà°¿à°µà°°à°£à°¨à±\81 à°®à°¾à°°à±\8dà°\9aà°¿, మళ్ళీ ప్రయత్నించండి.',
 'savefile' => 'దస్త్రాన్ని భద్రపరచు',
 'uploadedimage' => '"[[$1]]"ని ఎక్కించారు',
 'overwroteimage' => '"[[$1]]" యొక్క కొత్త కూర్పును ఎక్కించారు',
-'uploaddisabled' => 'à°\95à±\8dషమిà°\82à°\9aà°\82à°¡à°¿, à°\85à°ªà±\8dâ\80\8cà°²à±\8bà°¡à±\81 à°\9aà±\86à°¯à±\8dయడà°\82 à°ªà±\8dà°°à°¸à±\8dà°¤à±\81తానిà°\95à°¿ à°\86పబడిà°\82ది',
+'uploaddisabled' => 'à°\8eà°\95à±\8dà°\95à°¿à°\82à°ªà±\81à°²à±\81 à°\85à°\9aà±\87తనà°\82 à°\9aà±\86à°¯à±\8dయబడà±\8dడాయి.',
 'copyuploaddisabled' => 'URL ద్వారా ఎక్కింపుని అశక్తం చేసారు.',
 'uploadfromurl-queued' => 'మీ ఎక్కింపు వరుసలో ఉంది.',
-'uploaddisabledtext' => 'à°«à±\88à°³à±\8dà°³ à°\8eà°\97à±\81మతులను అచేతనం చేసారు.',
+'uploaddisabledtext' => 'à°«à±\88à°³à±\8dà°³ à°\8eà°\95à±\8dà°\95à°¿à°\82à°ªులను అచేతనం చేసారు.',
 'php-uploaddisabledtext' => 'PHPలో ఫైలు ఎక్కింపులు అచేతనమై ఉన్నాయి.
 దయచేసి file_uploads అమరికని చూడండి.',
 'uploadscripted' => 'ఈ ఫైల్లో HTML కోడు గానీ స్క్రిప్టు కోడు గానీ ఉంది. వెబ్ బ్రౌజరు దాన్ని పొరపాటుగా అనువదించే అవకాశం ఉంది.',
+'uploadscriptednamespace' => 'ఈ SVG ఫైలులోని పేరుబరి "$1" చెల్లనిది',
 'uploadinvalidxml' => 'ఎక్కించిన ఫైలులోని XML ను పార్సు చెయ్యలేకపోయాం.',
 'uploadvirus' => 'ఈ ఫైలులో వైరస్‌ ఉంది! వివరాలు: $1',
 'uploadjava' => 'ఇదొక ZIP ఫైలు, ఇందులో ఒక Java .class ఫైలు ఉంది.
@@ -1699,9 +1722,9 @@ Java ఫైళ్ళ వలన భద్రతకు తూట్లు పడ
 'upload-description' => 'దస్త్రపు వివరణ',
 'upload-options' => 'ఎక్కింపు వికల్పాలు',
 'watchthisupload' => 'ఈ ఫైలుని గమనించు',
-'filewasdeleted' => 'à°\87à°¦à±\87 à°ªà±\87à°°à±\81à°¤à±\8b à°\89à°¨à±\8dà°¨ à°\92à°\95 à°«à±\88à°²à±\81à°¨à±\81 à°\97à°¤à°\82à°²à±\8b à°\85à°ªà±\8dà°²à±\8bà°¡à±\81 à°\9aà±\87సారà±\81, à°¤à°°à±\81వాతి à°\95ాలà°\82à°²à±\8b à°¦à°¾à°¨à±\8dని à°¤à±\8aà°²à°\97à°¿à°\82à°\9aారà±\81. à°¦à°¾à°¨à±\8dà°¨à±\80 à°®à°³à±\8dà°³à±\80 à°\85à°ªà±\8dà°²à±\8bà°¡à±\81 à°\9aà±\87à°¸à±\87 à°®à±\81à°\82à°¦à±\81, à°®à±\80à°°à±\81 $1 à°¨à±\81 à°\9aà±\82డాలి',
-'filename-bad-prefix' => "మీరు అప్లోడు చేస్తున్న ఫైలు పేరు '''\"\$1\"''' తో మొదలవుతుంది. ఇది డిజిటల్ కెమెరాలు ఆటోమాటిగ్గా ఇచ్చే పేరు. మరింత వివరంగా ఉండే పేరును ఎంచుకోండి.",
-'upload-success-subj' => 'à°\85à°ªà±\8dâ\80\8cà°²à±\8bà°¡à±\81 à°\9cయపà±\8dà°°à°¦à°\82',
+'filewasdeleted' => 'à°\87à°¦à±\87 à°ªà±\87à°°à±\81à°¤à±\8b à°\89à°¨à±\8dà°¨ à°\92à°\95 à°«à±\88à°²à±\81à°¨à±\81 à°\97à°¤à°\82à°²à±\8b à°\8eà°\95à±\8dà°\95à°¿à°\82à°\9aారà±\81. à°¤à°°à±\81వాతి à°\95ాలà°\82à°²à±\8b à°¦à°¾à°¨à±\8dని à°¤à±\8aà°²à°\97à°¿à°\82à°\9aారà±\81. à°¦à°¾à°¨à±\8dà°¨à±\80 à°®à°³à±\8dà°³à±\80 à°\8eà°\95à±\8dà°\95à°¿à°\82à°\9aà±\87 à°®à±\81à°\82à°¦à±\81, à°®à±\80à°°à±\81 $1 à°¨à±\81 à°\9aà±\82డాలి.',
+'filename-bad-prefix' => 'మీరు అప్లోడు చేస్తున్న ఫైలు పేరు <strong>"$1"</strong> తో మొదలవుతుంది. ఇది డిజిటల్ కెమెరాలు ఆటోమాటిగ్గా ఇచ్చే పేరు. మరింత వివరంగా ఉండే పేరును ఎంచుకోండి.',
+'upload-success-subj' => 'విà°\9cయవà°\82తమà±\88à°¨ à°\8eà°\95à±\8dà°\95à°¿à°\82à°ªà±\81',
 'upload-success-msg' => '[$2] నుండి మీ ఎక్కింపు సఫలమైంది. అది ఇక్కడ అందుబాటులో ఉంది: [[:{{ns:file}}:$1]]',
 'upload-failure-subj' => 'ఎక్కింపు సమస్య',
 'upload-failure-msg' => '[$2] నుండి మీ ఎక్కింపుతో ఏదో సమస్య ఉంది:
@@ -1714,8 +1737,9 @@ $1',
 'upload-proto-error-text' => 'రిమోట్ అప్‌లోడులు చెయ్యాలంటే URLలు <code>http://</code> లేదా <code>ftp://</code> తో మొదలు కావాలి.',
 'upload-file-error' => 'అంతర్గత లోపం',
 'upload-file-error-text' => 'సర్వరులో తాత్కాలిక ఫైలును సృష్టించబోగా ఏదో అంతర్గత లోపం తలెత్తింది. ఎవరైనా [[Special:ListUsers/sysop|నిర్వాహకుడిని]] సంప్రదించండి.',
-'upload-misc-error' => 'తెలియని అప్‌లోడు లోపం',
-'upload-misc-error-text' => 'అప్‌లోడు చేస్తూండగా ఏదో తెలియని లోపం తలెత్తింది. URL సరైనదేనని, అది అందుబాటులోనే ఉందని నిర్ధారించుకుని మళ్ళీ ప్రయత్నిందండి. సమస్య అలాగే ఉంటే, సిస్టము నిర్వాహకుని సంప్రదించండి.',
+'upload-misc-error' => 'తెలియని ఎక్కింపు లోపం',
+'upload-misc-error-text' => 'ఎక్కిస్తూండగా ఏదో తెలియని లోపం తలెత్తింది. 
+URL సరైనదేనని, అది అందుబాటులోనే ఉందని నిర్ధారించుకుని మళ్ళీ ప్రయత్నించండి. సమస్య అలాగే ఉంటే, [[Special:ListUsers/sysop|నిర్వాహకులు]] ఎవరినైనా సంప్రదించండి.',
 'upload-too-many-redirects' => 'ఆ URLలో చాలా దారిమార్పులు ఉన్నాయి',
 'upload-unknown-size' => 'సైజు తెలియదు',
 'upload-http-error' => 'ఒక HTTP పొరపాటు జరిగింది: $1',
@@ -1734,19 +1758,24 @@ $1',
 'backend-fail-store' => '"$1" ఫైలును "$2" వద్ద భద్రపరచలేకపోయాం.',
 'backend-fail-copy' => '"$1" నుండి "$2" కి ఫైలును కాపీ చెయ్యలేకపోయాం.',
 'backend-fail-move' => '"$1" నుండి "$2" కి ఫైలును తరలించలేకపోయాం.',
-'backend-fail-opentemp' => 'తాతà±\8dà°\95ాలిà°\95 à°¦à°¸à±\8dà°¤à±\8dరానà±\8dని à°¤à±\86రవలà±\87à°\95à°ªà±\8bà°¤à±\81à°¨à±\8dà°¨ాం.',
+'backend-fail-opentemp' => 'తాతà±\8dà°\95ాలిà°\95 à°¦à°¸à±\8dà°¤à±\8dరానà±\8dని à°¤à±\86రవలà±\87à°\95à°ªà±\8bà°¯ాం.',
 'backend-fail-writetemp' => 'తాత్కాలిక ఫైలులో రాయలేకపోయాం.',
 'backend-fail-closetemp' => 'తాత్కాలిక దస్త్రాన్ని మూసివేయలేకపోయాం.',
-'backend-fail-read' => '$1 దస్త్రము చదువలేకపోతిమి.',
-'backend-fail-create' => '$1 ఫైలులో రాయలేకున్నాం.',
+'backend-fail-read' => 'దస్త్రము "$1" ని చదువలేకపోయాం.',
+'backend-fail-create' => 'ఫైలు "$1" లో రాయలేకపోయాం.',
 'backend-fail-maxsize' => '"$1" ఫైలు {{PLURAL:$2|ఒక బైట్|$2 బైట్ల}} కంటే పెద్దది కావడం చేత దాన్ని రాయలేకపోయాం.',
 'backend-fail-readonly' => 'స్టోరేజి బ్యాక్‍ఎండ్ "$1" ప్రస్తుతం రీడ్-ఓన్లీ స్థితిలో ఉంది. దానికి కారణం: "<em>$2</em>"',
+'backend-fail-synced' => 'ఫైలు "$1" అంతర్గత స్టోరేజి బ్యాక్‍ఎండ్లలో అసమ స్థితిలో ఉంది',
 'backend-fail-connect' => 'స్టోరేజీ బ్యాక్‍ఎండ్ "$1" కి కనెక్టు కాలేక పోయాం.',
 'backend-fail-internal' => 'స్టోరేజీ బ్యాక్‍ఎండ్ "$1" లో ఏదో తెలియని లోపం దొర్లింది.',
 'backend-fail-contenttype' => '"$1" లో దాచాల్సిన ఫైలు యొక్క కంటెంటు రకమేంటో నిర్ధారించలేకపోయాం.',
 'backend-fail-batchsize' => 'స్టోరేజీ బ్యాక్‍ఎండ్ కు $1 ఫైలు {{PLURAL:$1|ఆపరేషన్|ఆపరేషన్ల}} తో కూడిన బ్యాచ్ ఒకటి ఇవ్వబడింది; పరిమితి: $2 {{PLURAL:$2|ఆపరేషన్|ఆపరేషన్లు}}.',
 'backend-fail-usable' => 'సరిపడా అనుమతులు లేకపోవడం వలన గానీ, అవసరమైన డైరెక్టరీలు/కంటెయినర్లు లేకపోవడం వలనగానీ "$1" ఫైలును చదవడం, రాయడం చెయ్యలేకపోయాం.',
 
+# File journal errors
+'filejournal-fail-dbconnect' => 'స్టోరేజి బ్యాక్‍ఎండ్ "$1" కోసం జర్నల్ డేటాబేసుకు కనెక్టు కాలేకపోయాం..',
+'filejournal-fail-dbquery' => 'స్టోరేజి బ్యాక్‍ఎండ్ "$1" కోసం జర్నల్ డేటాబేసును తాజాకరించలేకపోయాం.',
+
 # Lock manager
 'lockmanager-notlocked' => '"$1" తాళం తియ్యలేకపోయాం; అదసలు లాక్ అయ్యేలేదు..',
 'lockmanager-fail-closelock' => '"$1" యొక్క లాక్ ఫైలును మూయలేకపోయాం.',
@@ -1754,6 +1783,7 @@ $1',
 'lockmanager-fail-acquirelock' => '"$1" కోసం లాక్ ను పొందలేకపోయాం.',
 'lockmanager-fail-openlock' => '"$1" కోసం లాక్ ఫైలును తెరవలేకపోయాం.',
 'lockmanager-fail-releaselock' => '"$1" యొక్క లాక్ ను విడుదల చెయ్యలేకపోయాం.',
+'lockmanager-fail-db-bucket' => 'బకెట్ $1 లోని లాక్ డేటాబేసులు సరిపోయినన్నిటిని కాంటాక్టు చెయ్యలేకపోయాం.',
 'lockmanager-fail-db-release' => 'డేటాబేసు $1 పై లాకులను విడుదల చెయ్యలేకపోయాం.',
 'lockmanager-fail-svr-acquire' => 'సర్వరు $1 పై లాకులను పొందలేకపోయాం.',
 'lockmanager-fail-svr-release' => 'సర్వరు $1 పై లాకులను విడుదల చెయ్యలేకపోయాం.',
@@ -1774,6 +1804,7 @@ $1',
 'uploadstash-badtoken' => 'ఆ చర్య విఫలమైంది. బహుశా మీ ఎడిటింగు అనుమతులకు కాలం చెల్లిందేమో. మళ్ళీ ప్రయత్నించండి.',
 'uploadstash-errclear' => 'ఫైళ్ళ తీసివేత విఫలమైంది.',
 'uploadstash-refresh' => 'దస్త్రాల జాబిజాను తాజాకరించు',
+'invalid-chunk-offset' => 'చెల్లని చంక్ ఆఫ్‍సెట్',
 
 # img_auth script messages
 'img-auth-accessdenied' => 'అనుమతిని నిరాకరించారు',
@@ -1783,7 +1814,7 @@ $1',
 https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'img-auth-notindir' => 'అభ్యర్థించిన తోవ ఎక్కింపు సంచయంలో లేదు.',
 'img-auth-badtitle' => '"$1" నుండి సరైన శీర్షికని నిర్మించలేకపోయాం.',
-'img-auth-nologinnWL' => 'à°®à±\80à°°à±\81 à°ªà±\8dà°°à°µà±\87శిà°\82à°\9aà°¿ à°²à±\87à°°à±\81 à°®à°°à°¿à°¯à±\81 "$1" అనేది తెల్లజాబితాలో లేదు.',
+'img-auth-nologinnWL' => 'à°®à±\80à°°à±\81 à°²à°¾à°\97ినయి à°²à±\87à°°à±\81. à°ªà±\88à°\97à°¾ "$1" అనేది తెల్లజాబితాలో లేదు.',
 'img-auth-nofile' => '"$1" అనే ఫైలు ఉనికిలో లేదు.',
 'img-auth-isdir' => 'మీరు "$1" అనే సంచయాన్ని చూడడానికి ప్రయత్నిస్తున్నారు.
 ఫైళ్ళను చూడడానికి మాత్రమే అనుమతివుంది.',
@@ -1795,18 +1826,18 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'img-auth-bad-query-string' => 'ఈ URL లో తప్పుడు క్వెరీ స్ట్రింగు ఉంది.',
 
 # HTTP errors
-'http-invalid-url' => 'తపà±\8dà°ªà±\81à°¡à±\81 URL: $1',
+'http-invalid-url' => 'à°\9aà±\86à°²à±\8dలని URL: $1',
 'http-invalid-scheme' => '"$1" ప్రణాళికలో ఉన్న URLలకు తోడ్పాటులేదు',
 'http-request-error' => 'తెలియని లోపం వల్ల HTTP అభ్యర్థన విఫలమైంది.',
 'http-read-error' => 'HTTP చదువుటలో పొరపాటు.',
 'http-timed-out' => 'HTTP అభ్యర్థనకి కాలం చెల్లింది.',
-'http-curl-error' => 'URLని à°¤à±\87వడà°\82à°²à±\8b à°ªà±\8aరపాà°\9fà±\81: $1',
+'http-curl-error' => 'URLని à°¤à±\87వడà°\82à°²à±\8b à°²à±\8bà°ªà°\82: $1',
 'http-bad-status' => 'HTTP అభ్యర్ధన చేస్తున్నప్పుడు సమస్య ఉంది: $1 $2',
 
 # Some likely curl errors. More could be added from <http://curl.haxx.se/libcurl/c/libcurl-errors.html>
 'upload-curl-error6' => 'URL కు వెళ్ళలేకపోయాం',
 'upload-curl-error6-text' => 'ఇచ్చిన URL కు వెళ్ళలేకపోయాం. URL సరైనదేనని, సైటు పనిచేస్తూనే ఉన్నదనీ నిర్ధారించుకోండి.',
-'upload-curl-error28' => 'à°\85à°ªà±\8dà°²à±\8bà°¡ు కాలాతీతం',
+'upload-curl-error28' => 'à°\8eà°\95à±\8dà°\95à°¿à°\82à°ªు కాలాతీతం',
 'upload-curl-error28-text' => 'చాలా సమయం తరువాత కూడా సైటు స్పందించలేదు. సైటు పనిచేస్తూనే ఉందని నిర్ధారించుకుని, కాస్త ఆగి మళ్ళీ ప్రయత్నించండి. రద్దీ కాస్త తక్కువగా ఉన్నపుడు ప్రయత్నిస్తే నయం.',
 
 'license' => 'లైసెన్సు వివరాలు:',
@@ -1852,15 +1883,15 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'filehist-missing' => 'ఫైలు కనిపించుటలేదు',
 'imagelinks' => 'దస్త్రపు వాడుక',
 'linkstoimage' => 'కింది {{PLURAL:$1|పేజీ|$1 పేజీల}} నుండి ఈ ఫైలుకి లింకులు ఉన్నాయి:',
-'linkstoimage-more' => '$1 కంటే ఎక్కువ {{PLURAL:$1|పేజీలు|పేజీలు}} ఈ ఫైలుకి లింకుని కలిగివున్నాయి.
-à°\88 à°«à±\88à°²à±\81à°\95à°¿ à°²à°¿à°\82à°\95à±\81à°¨à±\8dà°¨ {{PLURAL:$1|à°®à±\8aà°¦à°\9fà°¿ à°\92à°\95 పేజీని|మొదటి $1 పేజీలను}} ఈ క్రింది జాబితా చూపిస్తుంది.
+'linkstoimage-more' => 'ఈ ఫైలుకు $1 కంటే ఎక్కువ {{PLURAL:$1|పేజీ లింకై ఉంది|పేజీలు లింకై ఉన్నాయి}}.
+à°\88 à°«à±\88à°²à±\81à°\95à°¿ à°®à°¾à°¤à±\8dà°°à°®à±\87 à°²à°¿à°\82à°\95à±\88 à°\89à°¨à±\8dà°¨ {{PLURAL:$1|à°®à±\8aà°¦à°\9fà°¿ పేజీని|మొదటి $1 పేజీలను}} ఈ క్రింది జాబితా చూపిస్తుంది.
 [[Special:WhatLinksHere/$2|పూర్తి జాబితా]] కూడా ఉంది.',
 'nolinkstoimage' => 'ఈ ఫైలుకు లింకున్న పేజీలు లేవు.',
-'morelinkstoimage' => 'à°\88 à°«à±\88à°²à±\81à°\95à±\81 à°\87à°\82à°\95à°¾ [[Special:WhatLinksHere/$1| à°²à°¿à°\82à°\95à±\81లనà±\81]] à°\9aà±\82à°¡ు',
+'morelinkstoimage' => 'à°\88 à°«à±\88à°²à±\81à°\95à±\81 à°\89à°¨à±\8dà°¨ à°®à°°à°¿à°¨à±\8dని [[Special:WhatLinksHere/$1| à°²à°¿à°\82à°\95à±\81లనà±\81]] à°\9aà±\82పిà°\82à°\9aు',
 'linkstoimage-redirect' => '$1 (దస్త్రపు దారిమార్పు) $2',
 'duplicatesoffile' => 'క్రింద పేర్కొన్న {{PLURAL:$1|ఫైలు ఈ ఫైలుకి నకలు|$1 ఫైళ్ళు ఈ ఫైలుకి నకళ్ళు}} ([[Special:FileDuplicateSearch/$2|మరిన్ని వివరాలు]]):',
-'sharedupload' => 'à°\88 à°«à±\88à°²à±\81 $1 à°¨à±\81à°\82à°¡à°¿ à°®à°°à°¿à°¯à±\81 à°¦à±\80నిని à°\87తర à°ªà±\8dà°°à°¾à°\9cà±\86à°\95à±\8dà°\9fà±\81లలà±\8b à°\95à±\82à°¡à°¾ à°\89పయà±\8bà°\97à°¿à°¸à±\8dà°¤à±\82à°µà±\81ండవచ్చు.',
-'sharedupload-desc-there' => 'à°\88 à°«à±\88à°²à±\81 $1 à°¨à±\81à°\82à°¡à°¿ à°µà°\9aà±\8dà°\9aà°¿à°\82ది à°\85లానà±\87 à°\87తర à°ªà±\8dà°°à°¾à°\9cà±\86à°\95à±\8dà°\9fà±\81లలà±\8b à°\95à±\82à°¡à°¾ à°\89పయà±\8bà°\97à°¿à°¸à±\8dà°¤à±\82 ఉండవచ్చు.
+'sharedupload' => 'à°\88 à°«à±\88à°²à±\81 $1 à°²à±\8bనిది. à°¦à±\80నిని à°\87తర à°ªà±\8dà°°à°¾à°\9cà±\86à°\95à±\8dà°\9fà±\81లలà±\8b à°\95à±\82à°¡à°¾ à°\89పయà±\8bà°\97à°¿à°¸à±\8dà°¤à±\82 à°\89à°\82à°¡à°¿ à°\89ండవచ్చు.',
+'sharedupload-desc-there' => 'à°\88 à°«à±\88à°²à±\81 $1 à°²à±\8bనిది. à°\85లానà±\87 à°\87తర à°ªà±\8dà°°à°¾à°\9cà±\86à°\95à±\8dà°\9fà±\81లలà±\8b à°\95à±\82à°¡à°¾ à°\89పయà±\8bà°\97à°¿à°¸à±\8dà°¤à±\82 à°\89à°\82à°¡à°¿ ఉండవచ్చు.
 మరింత సమాచారం కోసం, దయచేసి [$2 ఫైలు వివరణ పేజీ]ని చూడండి.',
 'sharedupload-desc-here' => 'ఈ ఫైలు $1 లోనిది. దీనిని ఇతర ప్రాజెక్టులు కూడా ఉపయోగిస్తూ ఉండవచ్చు.
 అక్కడ దీని [$2 ఫైలు వివరణ పేజీ] లో ఉన్న వివరణని కింద చూపించాం.',
@@ -1868,8 +1899,8 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 దాని [$2 ఫైలు వివరణ పేజీ] లోని వివరణను మారుస్తారేమో చూడండి.',
 'sharedupload-desc-create' => 'ఈ ఫైలు $1 లోనిది. దాన్ని ఇతర ప్రాజెక్టులు కూడా వాడుతూ ఉండి ఉండవచ్చు.
 దాని [$2 ఫైలు వివరణ పేజీ] లోని వివరణను మారుస్తారేమో చూడండి.',
-'filepage-nofile' => 'à°\88 à°ªà±\87à°°à±\81à°¤à±\8b à°\8f à°«à±\88à°²à±\81 లేదు.',
-'filepage-nofile-link' => 'à°\88 à°ªà±\87à°°à±\81à°¤à±\8b à°\8f à°«à±\88à°²à±\82 à°²à±\87à°¦à±\81, à°\95ానà±\80 à°®à±\80à°°à±\81 $1 à°¨à±\81 à°\85à°ªà±\8dâ\80\8cà°²à±\8bà°¡à±\8d à°\9aà±\86à°¯à±\8dయవà°\9aà±\8dà°\9aà±\81.',
+'filepage-nofile' => 'à°\88 à°ªà±\87à°°à±\81à°¤à±\8b à°«à±\88à°²à±\87à°¦à±\80 లేదు.',
+'filepage-nofile-link' => 'à°\88 à°ªà±\87à°°à±\81à°¤à±\8b à°«à±\88à°²à±\87à°¦à±\80 à°²à±\87à°¦à±\81, à°®à±\80à°°à±\81 [$1 à°¦à°¾à°¨à±\8dని à°\8eà°\95à±\8dà°\95à°¿à°\82à°\9aà°µà°\9aà±\8dà°\9aà±\81].',
 'uploadnewversion-linktext' => 'ఈ దస్త్రపు కొత్త కూర్పును ఎక్కించండి',
 'shared-repo-from' => '$1 నుండి',
 'shared-repo' => 'సామూహిక నిక్షేపం',
@@ -1883,14 +1914,14 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'filerevert-comment' => 'కారణం:',
 'filerevert-defaultcomment' => '$2, $1 నాటి కూర్పుకు తీసుకువెళ్ళాం',
 'filerevert-submit' => 'వెనక్కు తీసుకువెళ్ళు',
-'filerevert-success' => "'''[[Media:$1|$1]]''' ను  [$3, $2 నాటి $4 కూర్పు]కు తీసుకువెళ్ళాం.",
+'filerevert-success' => '<strong>[[Media:$1|$1]]</strong> ను  [$4 $2 $3 నాటి కూర్పు]కు తీసుకువెళ్ళాం.',
 'filerevert-badversion' => 'మీరిచ్చిన టైముస్టాంపుతో ఈ ఫైలుకు స్థానిక కూర్పేమీ లేదు.',
 
 # File deletion
 'filedelete' => '$1ని తొలగించు',
 'filedelete-legend' => 'ఫైలుని తొలగించు',
-'filedelete-intro' => "మీరు '''[[Media:$1|$1]]''' ఫైలుని దాని చరిత్రతో సహా తొలగించబోతున్నారు.",
-'filedelete-intro-old' => "మీరు '''[[Media:$1|$1]]''' యొక్క  [$4 $3, $2] నాటి కూర్పును తొలగిస్తున్నారు.",
+'filedelete-intro' => 'మీరు <strong>[[Media:$1|$1]]</strong> ఫైలును దాని చరిత్రతో సహా తొలగించబోతున్నారు.',
+'filedelete-intro-old' => 'మీరు <strong>[[Media:$1|$1]]</strong> యొక్క  [$4 $2, $3 నాటి కూర్పును] తొలగిస్తున్నారు.',
 'filedelete-comment' => 'కారణం:',
 'filedelete-submit' => 'తొలగించు',
 'filedelete-success' => "'''$1'''ని తొలగించాం.",
@@ -1903,7 +1934,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 ** కాపీహక్కుల ఉల్లంఘన
 ** వేరొక దస్త్రానికి నకలు',
 'filedelete-edit-reasonlist' => 'తొలగింపు కారణాలని మార్చండి',
-'filedelete-maintenance' => 'à°¸à°\82à°°à°\95à±\8dà°·à°£ à°¨à°¿à°®à°¿à°¤à±\8dà°¤à°\82 à°«à±\88à°³à±\8dà°³ à°¤à±\8aà°²à°\97à°¿à°\82à°ªà±\81 à°®à°°à°¿à°¯à±\81 à°ªà±\81నసà±\8dథాపనలనà±\81 à°¤à°¾à°¤à±\8dà°\95ాలిà°\95à°\82à°\97à°¾ à°\85à°\9aà±\87యతనà°\82 à°\9aà±\87సారà±\81.',
+'filedelete-maintenance' => 'నిరà±\8dవహణ à°¸à°\82దరà±\8dà°­à°\82à°\97à°¾ à°«à±\88à°³à±\8dà°³ à°¤à±\8aà°²à°\97à°¿à°\82à°ªà±\81, à°ªà±\81నసà±\8dథాపనలనà±\81 à°¤à°¾à°¤à±\8dà°\95ాలిà°\95à°\82à°\97à°¾ à°\85à°\9aà±\87తనà°\82 à°\9aà±\87సాà°\82.',
 'filedelete-maintenance-title' => 'దస్త్రాన్ని తొలగించలేకపోయాం',
 
 # MIME search
@@ -1955,9 +1986,9 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'statistics-views-total' => 'మొత్తం వీక్షణలు',
 'statistics-views-total-desc' => 'ఉనికిలో లేని పుటలకు మరియు ప్రత్యేక పుటలకు వచ్చిన సందర్శనలని కలుపలేదు',
 'statistics-views-peredit' => 'ఒక మార్పుకి వీక్షణలు',
-'statistics-users' => 'నమà±\8bà°¦à±\88à°¨ [[Special:ListUsers|వాడà±\81à°\95à°°à±\8dలు]]',
-'statistics-users-active' => 'à°\95à±\8dరియాశà±\80à°² à°µà°¾à°¡à±\81à°\95à°°à±\8dలు',
-'statistics-users-active-desc' => 'à°\97à°¤ {{PLURAL:$1|à°°à±\8bà°\9cà±\81|$1 à°°à±\8bà°\9cà±\81à°²}}à°²à±\8b à°\92à°\95à±\8dà°\95 à°\9aà°°à±\8dà°¯à±\88నా చేసిన వాడుకరులు',
+'statistics-users' => 'నమà±\8bà°¦à±\88à°¨ [[Special:ListUsers|వాడà±\81à°\95à°°à±\81లు]]',
+'statistics-users-active' => 'à°\95à±\8dరియాశà±\80à°² à°µà°¾à°¡à±\81à°\95à°°à±\81లు',
+'statistics-users-active-desc' => 'à°\97à°¤ {{PLURAL:$1|à°°à±\8bà°\9cà±\81|$1 à°°à±\8bà°\9cà±\81à°²}}à°²à±\8b à°ªà°¨à°¿ చేసిన వాడుకరులు',
 'statistics-mostpopular' => 'ఎక్కువగా చూసిన పేజీలు',
 
 'pageswithprop' => 'ఒక పేజీ లక్షణం కలిగిన పేజీలు',
@@ -1977,7 +2008,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'double-redirect-fixer' => 'దారిమార్పు సరిద్దువారు',
 
 'brokenredirects' => 'తెగిపోయిన దారిమార్పులు',
-'brokenredirectstext' => 'à°\95à°¿à°\82ది à°¦à°¾à°°à°¿à°®à°¾à°°à±\8dà°ªà±\81à°²à±\81 à°²à±\87ని-à°ªà±\87à°\9cà±\80à°²à°\95à±\81 à°®à°³à±\8dళిà°\82à°\9aà±\81తున్నాయి:',
+'brokenredirectstext' => 'à°\95à°¿à°\82ది à°¦à°¾à°°à°¿à°®à°¾à°°à±\8dà°ªà±\81à°²à±\81 à°\89నిà°\95à°¿à°²à±\8bà°¨à±\87 à°²à±\87ని à°ªà±\87à°\9cà±\80à°²à°\95à±\81 à°µà±\86à°³à±\8dతున్నాయి:',
 'brokenredirects-edit' => 'సవరించు',
 'brokenredirects-delete' => 'తొలగించు',
 
@@ -1993,10 +2024,10 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'ncategories' => '$1 {{PLURAL:$1|వర్గం|వర్గాలు}}',
 'ninterwikis' => '$1 {{PLURAL:$1|అంతర్వికీ|అంతర్వికీలు}}',
 'nlinks' => '$1 {{PLURAL:$1|లింకు|లింకులు}}',
-'nmembers' => '{{PLURAL:$1|ఒక ఉపవర్గం/పేజీ/ఫైలు|$1 ఉపవర్గాలు/పేజీలు/ఫైళ్లు}}',
+'nmembers' => '$1 {{PLURAL:$1|సభ్యుడు|సభ్యులు}}',
 'nmemberschanged' => '$1 → $2 {{PLURAL:$2|సభ్యుడు|సభ్యులు}}',
-'nrevisions' => '{{PLURAL:$1|à°\92à°\95 à°¸à°\82à°\9aà°¿à°\95|$1 à°¸à°\82à°\9aà°¿à°\95లు}}',
-'nviews' => '$1 {{PLURAL:$1|దరà±\8dశనమà±\81|దర్శనలు}}',
+'nrevisions' => '{{PLURAL:$1|à°\95à±\82à°°à±\8dà°ªà±\81|$1 à°\95à±\82à°°à±\8dà°ªà±\81లు}}',
+'nviews' => '$1 {{PLURAL:$1|à°¸à°\82దరà±\8dశన|à°¸à°\82దర్శనలు}}',
 'nimagelinks' => '$1 {{PLURAL:$1|పుట|పుటల}}లో ఉపయోగించారు',
 'ntransclusions' => '$1 {{PLURAL:$1|పుట|పుటల}}లో ఉపయోగించారు',
 'specialpage-empty' => 'ఈ పేజీ ఖాళీగా ఉంది.',
@@ -2007,7 +2038,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'uncategorizedimages' => 'వర్గీకరించని బొమ్మలు',
 'uncategorizedtemplates' => 'వర్గీకరించని మూసలు',
 'unusedcategories' => 'ఉపయోగించని వర్గాలు',
-'unusedimages' => 'à°\89పయà±\8bà°\97à°¿à°\82à°\9aబడని à°«à±\88à°³à±\8dà°³à±\81',
+'unusedimages' => 'ఉపయోగించని ఫైళ్ళు',
 'popularpages' => 'ప్రజాదరణ పొందిన పేజీలు',
 'wantedcategories' => 'కోరిన వర్గాలు',
 'wantedpages' => 'కోరిన పేజీలు',
@@ -2032,6 +2063,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'deadendpagestext' => 'కింది పేజీల నుండి ఈ వికీ లోని ఏ ఇతర పేజీకీ లింకులు లేవు.',
 'protectedpages' => 'సంరక్షిత పేజీలు',
 'protectedpages-indef' => 'అనంత సంరక్షణ మాత్రమే',
+'protectedpages-summary' => 'ప్రస్తుతం సంరక్షణలో ఉన్న పేజీల జాబితాను ఈ పేజీ చూపిస్తుంది. అసలు సృష్టించకుండా సంరక్షించబడిన పేజీశీర్షికల కోసం [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]] చూడండి.',
 'protectedpages-cascade' => 'కాస్కేడింగు రక్షణలు మాత్రమే',
 'protectedpages-noredirect' => 'దారిమార్పులను దాచు',
 'protectedpagesempty' => 'ఈ పరామితులతో ప్రస్తుతం ఏ పేజీలు కూడా సంరక్షించబడి లేవు.',
@@ -2044,7 +2076,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'protectedpages-unknown-timestamp' => 'తెలియని',
 'protectedpages-unknown-performer' => 'తెలియని వాడుకరి',
 'protectedtitles' => 'సంరక్షిత శీర్షికలు',
-'protectedtitles-summary' => 'యీ పేజీలో ప్రస్తుతానికి నిర్మాణం నిషిద్దమైన శీర్ణికలన్నీ పొందుపరచబడ్డాయి.ప్రస్తుతం ఉన్న రక్షిత పేజీలకోసం యిక్కడ చూడండి [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'యీ పేజీలో ప్రస్తుతానికి నిర్మాణం నిషిద్దమైన శీర్ణికలన్నీ పొందుపరచబడ్డాయి.ప్రస్తుతం ఉన్న రక్షిత పేజీలకోసం యిక్కడ చూడండి [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'ఈ పరామితులతో ప్రస్తుతం శీర్షికలేమీ సరక్షించబడి లేవు.',
 'listusers' => 'వాడుకరుల జాబితా',
 'listusers-editsonly' => 'మార్పులు చేసిన వాడుకరులను మాత్రమే చూపించు',
@@ -2095,11 +2127,11 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'allpagesfrom' => 'ఇక్కడ మొదలు పెట్టి పేజీలు చూపించు:',
 'allpagesto' => 'ఇక్కడవరకు ఉన్న పేజీలు చూపించు:',
 'allarticles' => 'అన్ని పేజీలు',
-'allinnamespace' => 'అన్ని పేజీలు ($1 namespace)',
+'allinnamespace' => 'అన్ని పేజీలు ($1 పేరుబరి)',
 'allpagessubmit' => 'వెళ్లు',
 'allpagesprefix' => 'ఈ ఆదిపదం కలిగిన పేజీలను చూపించు:',
 'allpagesbadtitle' => 'మీరిచ్చిన పేజీ పేరు సరైనది కాకపోయి ఉండాలి లేదా దానికి భాషాంతర లేదా అంతర్వికీ ఆదిపదమైనా ఉండి ఉండాలి. పేర్లలో వాడకూడని కారెక్టర్లు ఆ పేరులో ఉండి ఉండవచ్చు.',
-'allpages-bad-ns' => '{{SITENAME}} à°²à±\8b "$1" à°\85à°¨à±\87 à°¨à±\87à°®à±\8d&zwnj;à°¸à±\8dà°ªà±\87à°¸à±\8d లేదు.',
+'allpages-bad-ns' => '{{SITENAME}} à°²à±\8b "$1" à°\85à°¨à±\87 à°ªà±\87à°°à±\81బరి లేదు.',
 'allpages-hide-redirects' => 'దారిమార్పులను దాచు',
 
 # SpecialCachedPage
@@ -2119,7 +2151,7 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 # Special:DeletedContributions
 'deletedcontributions' => 'తొలగించబడిన వాడుకరి రచనలు',
 'deletedcontributions-title' => 'తొలగించబడిన వాడుకరి రచనలు',
-'sp-deletedcontributions-contribs' => 'మారà±\8dà°ªà±\81à°²à±\81 à°\9aà±\87à°°à±\8dà°ªà±\81à°²à±\81',
+'sp-deletedcontributions-contribs' => 'మార్పుచేర్పులు',
 
 # Special:LinkSearch
 'linksearch' => 'బయటి లింకుల అన్వేషణ',
@@ -2160,9 +2192,9 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'listgrouprights-removegroup' => '{{PLURAL:$2|గుంపుని|గుంపులను}} తొలగించగలరు: $1',
 'listgrouprights-addgroup-all' => 'అన్ని గుంపులను చేర్చగలరు',
 'listgrouprights-removegroup-all' => 'అన్ని గుంపులను తొలగించగలరు',
-'listgrouprights-addgroup-self' => '{{PLURAL:$2|సమà±\82హానà±\8dని|సమà±\82హాలని}} à°¤à°¨ à°¸à±\8dà°µà°\82à°¤ à°\96ాతాà°\95à°¿ చేర్చుకోగలగడం: $1',
+'listgrouprights-addgroup-self' => '{{PLURAL:$2|à°\97à±\81à°\82à°ªà±\81à°¨à±\81|à°\97à±\81à°\82à°ªà±\81లనà±\81}} à°¤à°¨ à°¸à±\8dà°µà°\82à°¤ à°\96ాతాà°\95à±\81 చేర్చుకోగలగడం: $1',
 'listgrouprights-removegroup-self' => '{{PLURAL:$2|సమూహాన్ని|సమూహాలని}} తన స్వంత ఖాతా నుండి తొలగించుకోవడం: $1',
-'listgrouprights-addgroup-self-all' => 'à°\85à°¨à±\8dని à°¸à°®à±\82హాలని à°¸à±\8dà°µà°\82à°¤ à°\96ాతాà°\95à°¿ చేర్చుకోలగడటం',
+'listgrouprights-addgroup-self-all' => 'à°\85à°¨à±\8dని à°¸à°®à±\82హాలని à°¸à±\8dà°µà°\82à°¤ à°\96ాతాà°\95à±\81 చేర్చుకోలగడటం',
 'listgrouprights-removegroup-self-all' => 'స్వంత ఖాతా నుండి అన్ని సమూహాలనూ తొలగించుకోగలగడం',
 
 # Email user
@@ -2170,23 +2202,23 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'mailnologintext' => 'ఇతరులకు ఈ-మెయిలు పంపించాలంటే, మీరు [[Special:UserLogin|లాగిన్‌]] అయి ఉండాలి, మరియు మీ [[Special:Preferences|అభిరుచుల]]లో సరైన ఈ-మెయిలు చిరునామా ఇచ్చి ఉండాలి.',
 'emailuser' => 'ఈ వాడుకరికి ఈ-మెయిలుని పంపించండి',
 'emailuser-title-target' => 'ఈ {{GENDER:$1|వాడుకరికి}} ఈమెయిలు పంపించండి',
-'emailuser-title-notarget' => 'à°\88-à°®à±\86యిలà±\81 à°µà°¾à°¡à±\81à°\95à°°ి',
+'emailuser-title-notarget' => 'వాడà±\81à°\95à°°à°¿à°\95à°¿ à°\88à°®à±\86యిలà±\81 à°ªà°\82పిà°\82à°\9aà°\82à°¡ి',
 'emailpage' => 'వాడుకరికి ఈ-మెయిలుని పంపించు',
 'emailpagetext' => 'ఈ {{GENDER:$1|వాడుకరికి}} ఈమెయిలు సందేశము పంపించుటకు క్రింది ఫారంను ఉపయోగించవచ్చు. [[Special:Preferences|మీ వాడుకరి అభిరుచుల]]లో మీరిచ్చిన ఈ-మెయిలు చిరునామా "నుండి" ఆ సందేశం వచ్చినట్లుగా ఉంటుంది, కనుక వేగుని అందుకునేవారు నేరుగా మీకు జవాబివ్వగలుగుతారు.',
 'usermailererror' => 'మెయిలు ఆబ్జెక్టు ఈ లోపాన్ని చూపింది:',
 'defemailsubject' => 'వాడుకరి "$1" నుండి {{SITENAME}} ఈ-మెయిలు',
-'usermaildisabled' => 'వాడుకరి ఈ-మెయిళ్ళు అచేతనం చేసారు',
+'usermaildisabled' => 'వాడుకరి ఈమెయిలు అచేతనం చెయ్యబడింది',
 'usermaildisabledtext' => 'ఈ వికీలో మీరు ఇతర వాడుకరులకి ఈ-మెయిళ్ళని పంపించలేరు',
 'noemailtitle' => 'ఈ-మెయిలు చిరునామా లేదు',
 'noemailtext' => 'ఈ వాడుకరి సరైన ఈ-మెయిలు చిరునామాని ఇవ్వలేదు.',
-'nowikiemailtitle' => 'ఈ-మెయిళ్ళను అనుమతించరు',
+'nowikiemailtitle' => 'ఈమెయిలుకు అనుమతి లేదు',
 'nowikiemailtext' => 'ఇతర వాడుకరుల నుండి ఈ-మెయిళ్ళను అందుకోడానికి ఈ వాడుకరి సుముఖంగా లేరు.',
 'emailnotarget' => 'గ్రహీతగా ఇచ్చిన వాడుకరిపేరు తప్పైనా కావచ్చు, లేదా అసలే ఉండి ఉండకపోవచ్చు',
 'emailtarget' => 'అందుకొనేవారి వాడుకరిపేరు ఇవ్వండి',
 'emailusername' => 'వాడుకరి పేరు:',
-'emailusernamesubmit' => 'దాà°\96à°²à±\81à°\9aà±\86à°¯à±\8dయి',
+'emailusernamesubmit' => 'à°ªà°\82పిà°\82à°\9aà±\81',
 'email-legend' => 'మరో {{SITENAME}} వాడుకరికి వేగు పంపించండి',
-'emailfrom' => 'à°\8eవరà±\81:',
+'emailfrom' => 'à°\8eవరి à°¨à±\81à°\82à°¡à°¿:',
 'emailto' => 'ఎవరికి:',
 'emailsubject' => 'విషయం:',
 'emailmessage' => 'సందేశం:',
@@ -2228,12 +2260,12 @@ https://www.mediawiki.org/wiki/Manual:Image_Authorization చూడండి.',
 'watchlistcontains' => 'మీ వీక్షణ జాబితాలో {{PLURAL:$1|ఒక పేజీ ఉంది|$1 పేజీలు ఉన్నాయి}}.',
 'iteminvalidname' => "'$1' తో ఇబ్బంది, సరైన పేరు కాదు...",
 'wlnote2' => '$2, $3 సమయానికి, గత {{PLURAL:$1|గంటలో|<strong>$1</strong> గంటల్లో}}, జరిగిన మార్పులు కింద ఇవ్వబడ్డాయి.',
-'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
-'watching' => 'à°\97మనిసà±\8dà°¤à±\81à°¨à±\8dనాà°\82...',
-'unwatching' => 'à°µà±\80à°\95à±\8dà°·à°£ à°¨à±\81à°\82à°¡à°¿ à°¤à±\8aà°²à°\97à°¿à°¸à±\8dà°¤à±\81à°¨à±\8dనా...',
+'watching' => 'à°\97మనిసà±\8dà°¤à±\81à°¨à±\8dనారà±\81...',
+'unwatching' => 'à°\97మనిà°\82à°\9aà°¡à°\82 à°²à±\87à°¦à±\81...',
 'watcherrortext' => '"$1" కు మీ సెట్టింగులను మార్చేటపుడు ఏదో లోపం దొర్లింది.',
 
 'enotif_mailer' => '{{SITENAME}} ప్రకటన మెయిలు పంపునది',
@@ -2284,7 +2316,7 @@ $UNWATCHURL
 # Delete
 'deletepage' => 'పేజీని తొలగించు',
 'confirm' => 'ధృవీకరించు',
-'excontent' => "à°\87దివరà°\95à±\81 విషయ సంగ్రహం: '$1'",
+'excontent' => "à°\89à°¨à±\8dà°¨ విషయ సంగ్రహం: '$1'",
 'excontentauthor' => 'ఉన్న విషయ సంగ్రహం: "$1" (మరియు దీని ఒకే ఒక్క రచయిత "[[Special:Contributions/$2|$2]]")',
 'exbeforeblank' => "ఖాళీ చెయ్యకముందు పేజీలో ఉన్న విషయ సంగ్రహం: '$1'",
 'exblank' => 'పేజీ ఖాళీగా ఉంది',
@@ -2311,7 +2343,7 @@ $UNWATCHURL
 'delete-edit-reasonlist' => 'తొలగింపు కారణాలని మార్చండి',
 'delete-toobig' => 'ఈ పేజీకి $1 {{PLURAL:$1|కూర్పుకు|కూర్పులకు}} మించిన, చాలా పెద్ద దిద్దుబాటు చరితం ఉంది. {{SITENAME}}కు అడ్డంకులు కలగడాన్ని నివారించేందుకు గాను, అలాంటి పెద్ద పేజీల తొలగింపును నియంత్రించాం.',
 'delete-warning-toobig' => 'ఈ పేజీకి $1 {{PLURAL:$1|కూర్పుకు|కూర్పులకు}} మించిన, చాలా పెద్ద దిద్దుబాటు చరితం ఉంది. దాన్ని తొలగిస్తే {{SITENAME}}కి చెందిన డేటాబేసు కార్యాలకు ఆటంకం కలగొచ్చు; అప్రమత్తతో ముందుకుసాగండి.',
-'deleting-backlinks-warning' => "'''హెచ్చరిక:''' మీరు తొలగించబోతున్న పేజీకి ఇతర పేజీల నుండి లింకులు ఉన్నాయి లేదా ఇక్కడ నుండి ట్రాన్స్‍క్లూడు అవుతున్నాయి.",
+'deleting-backlinks-warning' => "'''హెచ్చరిక:''' మీరు తొలగించబోతున్న పేజీకి [[Special:WhatLinksHere/{{FULLPAGENAME}}|ఇతర పేజీల]] నుండి లింకులు ఉన్నాయి లేదా ఇక్కడ నుండి ట్రాన్స్‍క్లూడు అవుతున్నాయి.",
 
 # Rollback
 'rollback' => 'దిద్దుబాట్లను రద్దుచేయి',
@@ -2349,6 +2381,7 @@ $UNWATCHURL
 'prot_1movedto2' => '$1, $2కు తరలించబడింది',
 'protect-badnamespace-title' => 'సంరక్షించజాలని పేరుబరి',
 'protect-badnamespace-text' => 'ఈ పేరుబరిలో ఉన్న పేజీలను సంరక్షించలేరు.',
+'protect-norestrictiontypes-text' => 'నిరోధ రకాలేవీ అందుబాటులో లేనందువలన ఈ పేజీని సంరక్షించలేం.',
 'protect-norestrictiontypes-title' => 'సంరక్షించజాలని పేజీ',
 'protect-legend' => 'సంరక్షణను నిర్ధారించు',
 'protectcomment' => 'కారణం:',
@@ -2455,6 +2488,7 @@ $1',
 'invert' => 'ఎంపికను తిరగవెయ్యి',
 'tooltip-invert' => 'ఎంచుకున్న పేరుబరి (చెక్ చేసి ఉంటే అనుబంధ పేరుబరి కూడా) లోని పేజీల్లో జరిగిన మార్పులను దాచేందుకు ఈ పెట్టెను చెక్ చెయ్యండి',
 'namespace_association' => 'సంబంధిత పేరుబరి',
+'tooltip-namespace_association' => 'ఎంచుకున్న పేరుబరికి చెందిన చర్చ లేదా విషయం పేరుబరిని కూడా ఎంచుకునేందుకు ఈ పెట్టెను చెక్ చెయ్యండి.',
 'blanknamespace' => '(మొదటి)',
 
 # Contributions
@@ -2481,15 +2515,17 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'ఈ ఐపీ చిరునామాపై ప్రస్తుతం నిరోధం ఉంది.
 నిరోధపు చిట్టాలోని చివరి పద్దుని మీ సమాచారంకోసం ఇస్తున్నాం:',
 'sp-contributions-search' => 'రచనల కోసం అన్వేషణ',
+'sp-contributions-suppresslog' => 'అణచిపెట్టబడిన వాడుకరి రచనలు',
 'sp-contributions-username' => 'ఐపీ చిరునామా లేదా వాడుకరిపేరు:',
 'sp-contributions-toponly' => 'చిట్టచివరి కూర్పులను మాత్రమే చూపించు',
+'sp-contributions-newonly' => 'పేజీని సృష్టించిన మార్పులను మాత్రమే చూపించు',
 'sp-contributions-submit' => 'వెతుకు',
 
 # What links here
 'whatlinkshere' => 'ఇక్కడికి లింకైనవి',
 'whatlinkshere-title' => '"$1"కి లింకున్న పుటలు',
 'whatlinkshere-page' => 'పేజీ:',
-'linkshere' => "కిందనున్న పేజీల నుండి '''[[:$1]]'''కు లింకులు ఉన్నాయి:",
+'linkshere' => 'కింది పేజీల నుండి <strong>[[:$1]]</strong>కు లింకులు ఉన్నాయి:',
 'nolinkshere' => "'''[[:$1]]'''కు ఏ పేజీ నుండీ లింకు లేదు.",
 'nolinkshere-ns' => "'''[[:$1]]''' పేజీకి లింకయ్యే పేజీలు ఎంచుకున్న నేంస్పేసులో లేవు.",
 'isredirect' => 'దారిమార్పు పుట',
@@ -2531,7 +2567,7 @@ $1',
 'ipbenableautoblock' => 'ఈ వాడుకరి వాడిన చివరి ఐపీ అడ్రసును, అలాగే ఆ తరువాత వాడే అడ్రసులను కూడా ఆటోమాటిగ్గా నిరోధించు',
 '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 day,3 రోజులు:3 days,ఒక వారం:1 week,2 వారాలు:2 weeks,ఒక నెల:1 month,3 నెలలు:3 months,6 నెలలు:6 months,ఒక సంవత్సరం:1 year,ఎప్పటికీ:infinite',
 'ipbhidename' => 'మార్పులు మరియు జాబితాల నుండి ఈ వాడుకరిపేరుని దాచు',
 'ipbwatchuser' => 'ఈ సభ్యుని సభ్యుని పేజీ, చర్చాపేజీలను వీక్షణలో ఉంచు',
 'ipb-disableusertalk' => 'నిరోధంలో ఉండగా ఈ వాడుకరి తన స్వంత చర్చ పేజీలో మార్పుచేర్పులు చెయ్యకుండా నిరోధించు',
@@ -2542,6 +2578,7 @@ $1',
 'blockipsuccesstext' => '[[Special:Contributions/$1|$1]] నిరోధించబడింది.<br />
 నిరోధాల సమీక్ష కొరకు [[Special:BlockList|నిరోధాల జాబితా]] చూడండి.',
 'ipb-blockingself' => 'మిమ్మల్ని మీరే నిరోధించుకోబోతున్నారు! అదే మీ నిశ్చయమా?',
+'ipb-confirmhideuser' => '"వాడుకరిని దాచు" చేతనంగా ఉన్న వాడుకరిని మీరు నిరోధించబోతున్నారు. దీంతో ఈ వాడుకరి పేరు అన్ని జాబితాల్లోనూ, లాగ్ ఎంట్రీలలోనూ అణచి ఉంచబడుతుంది. ఈ పని చెయ్యాలనే మీరు నిశ్చయించుకున్నారా?',
 'ipb-confirmaction' => 'మీరు నిజంగానే ఆ పని చెయ్యాలనుకుంటే, కింద ఉన్న "{{int:ipb-confirm}}" ఫీల్డును చెక్ చెయ్యండి.',
 'ipb-edit-dropdown' => 'నిరోధపు కారణాలను మార్చండి',
 'ipb-unblock-addr' => '$1 పై ఉన్న నిరోధాన్ని తొలగించండి',
@@ -2591,7 +2628,7 @@ $1 ను నిరోధించడానికి కారణం: "$2"',
 మీ సమాచారం కోసం నిరోధపు చిట్టాని క్రింద ఇచ్చాం:',
 'blocklog-showsuppresslog' => 'ఈ వాడుకరిని గతంలో నిరోధించి, దాచి ఉంచారు.
 వివరాల కోసం అణచివేత చిట్టా కింద చూపబడింది:',
-'blocklogentry' => '"[[$1]]" పై నిరోధం అమలయింది. నిరోధ కాలం $2 $3',
+'blocklogentry' => '"[[$1]]" పై నిరోధం అమలయింది. నిరోధ కాలం $2. $3',
 'reblock-logentry' => '[[$1]] కై నిరోధపు అమరికలను $2 $3 గడువుతో మార్చారు',
 'blocklogtext' => 'వాడుకరుల నిరోధాలు, పునస్థాపనల చిట్టా ఇది. 
 ఆటోమాటిక్‌గా నిరోధానికి గురైన ఐ.పి. చిరునామాలు ఈ జాబితాలో ఉండవు. 
@@ -2835,6 +2872,7 @@ $2',
 'import-error-interwiki' => 'పేజీ "$1" యొక్క పేరు బయటి లింకుల (అంతరవికీ) కోసం అట్టేపెట్టబడింది కాబట్టి దాన్ని దిగుమతి చెయ్యలేదు.',
 'import-error-special' => 'పేజీ "$1" ప్రత్యేక పేరుబరికి చెందినది. ఈ పేరుబరిలో పేజీలు సృష్టించే అనుమతి లేదు. అందుచేత దాన్ని దిగుమతి చెయ్యలేదు.',
 'import-error-invalid' => 'పేజీ "$1" పేరు సరైనది కాదు కాబట్టి దాన్ని దిగుమతి చెయ్యలేదు.',
+'import-error-unserialize' => 'పేజీ "$1" యొక్క కూర్పు $2ను సీరియలించలేకపోయాం. ఈ కూర్పు వాడుతున్న కంటెంటు మోడల్ $3 అని తెలియవచ్చింది. ఈ మోడల్ $4 లాగా సీరియలించబడుతుంది.',
 'import-options-wrong' => 'తప్పు {{PLURAL:$2|ఐచ్ఛికం|ఐచ్ఛికాలు}}: <nowiki>$1</nowiki>',
 'import-rootpage-invalid' => 'ఇచ్చిన మూలపు పేజీ సరైన శీర్షిక కాదు.',
 'import-rootpage-nosubpage' => 'మూలపేజీ యొక్క పేరుబరి "$1" ఉపపేజీలను అనుమతించదు.',
@@ -2853,6 +2891,7 @@ $2',
 'javascripttest-pagetext-noframework' => 'ఈ పేజీ JavaScript పరీక్షల కోసం ఉద్దేశించబడింది.',
 'javascripttest-pagetext-unknownframework' => 'తెలియని పరీక్షా ఫ్రేమ్‍వర్కు "$1".',
 'javascripttest-pagetext-frameworks' => 'కింది పరీక్షా ఫ్రేమ్‍వర్కులలో ఒకదాన్ని ఎంచుకోండి: $1',
+'javascripttest-pagetext-skins' => 'పరీక్షలు నడిపేందుకు ఓ రూపును ఎంచుకోండి:',
 'javascripttest-qunit-intro' => 'mediawiki.org లోని [$1 పరీక్షా డాక్యుమెంటేషన్] చూడండి.',
 
 # Tooltip help for the actions
@@ -2876,9 +2915,9 @@ $2',
 'tooltip-ca-undelete' => 'ఈ పేజీని తొలగించడానికి ముందు చేసిన మార్పులను పునఃస్థాపించు',
 'tooltip-ca-move' => 'ఈ పేజీని తరలించండి',
 'tooltip-ca-watch' => 'ఈ పేజీని మీ వీక్షణ జాబితాకు చేర్చుకోండి',
-'tooltip-ca-unwatch' => 'à°\88 à°ªà±\87à°\9cà±\80ని à°®à±\80 à°µà°¿à°\95à±\8dషణా జాబితా నుండి తొలగించండి',
+'tooltip-ca-unwatch' => 'à°\88 à°ªà±\87à°\9cà±\80ని à°®à±\80 à°µà±\80à°\95à±\8dà°·à°£ జాబితా నుండి తొలగించండి',
 'tooltip-search' => '{{SITENAME}} లో వెతకండి',
-'tooltip-search-go' => 'ఇదే పేరుతో పేజీ ఉంటే అక్కడికి తీసుకెళ్ళు',
+'tooltip-search-go' => 'à°\95à°\9aà±\8dà°\9aà°¿à°¤à°\82à°\97à°¾ à°\87à°¦à±\87 à°ªà±\87à°°à±\81à°¤à±\8b à°ªà±\87à°\9cà±\80 à°\89à°\82à°\9fà±\87 à°\85à°\95à±\8dà°\95à°¡à°¿à°\95à°¿ à°¤à±\80à°¸à±\81à°\95à±\86à°³à±\8dà°³à±\81',
 'tooltip-search-fulltext' => 'పేజీలలో ఈ పాఠ్యం కొరకు వెతుకు',
 'tooltip-p-logo' => 'మొదటి పేజీ చూడండి',
 'tooltip-n-mainpage' => 'మొదటి పేజీ చూడండి',
@@ -2895,7 +2934,7 @@ $2',
 'tooltip-t-contributions' => 'ఈ వాడుకరి యొక్క రచనల జాబితా చూడండి',
 'tooltip-t-emailuser' => 'ఈ వాడుకరికి ఓ ఈమెయిలు పంపండి',
 'tooltip-t-upload' => 'దస్త్రాలను ఎక్కించండి',
-'tooltip-t-specialpages' => 'à°\85à°¨à±\8dని à°ªà±\8dà°°à°¤à±\8dà°¯à±\87à°\95 à°ªà±\81à°\9fà°² à°¯à±\8aà°\95à±\8dà°\95 à°\9cాబితా',
+'tooltip-t-specialpages' => 'అన్ని ప్రత్యేక పుటల జాబితా',
 'tooltip-t-print' => 'ఈ పేజీ యొక్క ముద్రణా రూపు',
 'tooltip-t-permalink' => 'పేజీ యొక్క ఈ కూర్పుకి శాశ్వత లంకె',
 'tooltip-ca-nstab-main' => 'విషయపు పేజీని చూడండి',
@@ -2911,16 +2950,16 @@ $2',
 'tooltip-minoredit' => 'దీన్ని చిన్న మార్పుగా గుర్తించు',
 'tooltip-save' => 'మీ మార్పులను భద్రపరచండి',
 'tooltip-preview' => 'మీ మార్పులను మునుజూడండి, భద్రపరిచేముందు ఇది వాడండి!',
-'tooltip-diff' => 'పాఠానిà°\95à°¿ à°®à±\80à°°à±\81 à°\9aà±\87సిన à°®à°¾à°°à±\8dà°ªà±\81లనà±\81 à°\9aà±\82à°ªà±\81à°\82à°\9aà±\81. [alt-v]',
-'tooltip-compareselectedversions' => 'ఈ పేజీలో ఎంచుకున్న రెండు కూర్పులకు మధ్య తేడాలను చూడండి. [alt-v]',
-'tooltip-watch' => 'à°\88 à°ªà±\87à°\9cà±\80ని à°®à±\80 à°µà°¿à°\95à±\8dషణా జాబితాకు చేర్చండి',
+'tooltip-diff' => 'పాఠానిà°\95à°¿ à°®à±\80à°°à±\81 à°\8f à°®à°¾à°°à±\8dà°ªà±\81à°²à±\81 à°\9aà±\87సారà±\8b à°\9aà±\82పిసà±\8dà°¤à±\81à°\82ది',
+'tooltip-compareselectedversions' => 'ఈ పేజీలో ఎంచుకున్న రెండు కూర్పులకు మధ్య తేడాలను చూడండి',
+'tooltip-watch' => 'à°\88 à°ªà±\87à°\9cà±\80ని à°®à±\80 à°µà±\80à°\95à±\8dà°·à°£ జాబితాకు చేర్చండి',
 'tooltip-watchlistedit-normal-submit' => 'శీర్షికలను తీసివెయ్యి',
 'tooltip-watchlistedit-raw-submit' => 'వీక్షణ జాబితాను తాజాకరించు',
 'tooltip-recreate' => 'పేజీ తుడిచివేయబడ్డాకానీ మళ్ళీ సృష్టించు',
 'tooltip-upload' => 'ఎగుమతి మొదలుపెట్టు',
 'tooltip-rollback' => '"రద్దుచేయి" అనేది ఈ పేజీని చివరిగా మార్చినవారి మార్పులను ఒక్కనొక్కుతో రద్దుచేస్తుంది',
-'tooltip-undo' => '"దిదà±\8dà°¦à±\81బాà°\9fà±\81ని à°°à°¦à±\8dà°¦à±\81à°\9aà±\87యి" à°\88 à°®à°¾à°°à±\8dà°ªà±\81ని à°°à°¦à±\8dà°¦à±\81à°\9aà±\87à°¸à±\8dà°¤à±\81à°\82ది à°®à°°à°¿à°¯à±\81 దిద్దుబాటు ఫారాన్ని మునుజూపులో తెరుస్తుంది.
-సారాంశానికి కారణాన్ని చేర్చే వీలుకల్పిస్తుంది',
+'tooltip-undo' => '"à°°à°¦à±\8dà°¦à±\81à°\9aà±\87యి" à°\88 à°®à°¾à°°à±\8dà°ªà±\81ని à°°à°¦à±\8dà°¦à±\81à°\9aà±\87సి, దిద్దుబాటు ఫారాన్ని మునుజూపులో తెరుస్తుంది.
+సారాంశానికి కారణాన్ని చేర్చే వీలుకల్పిస్తుంది.',
 'tooltip-preferences-save' => 'అభిరుచులను భద్రపరచు',
 'tooltip-summary' => 'చిన్న సారాంశాన్ని ఇవ్వండి',
 
@@ -3045,6 +3084,7 @@ $1',
 'file-info-size-pages' => '$1 × $2 పిక్సెళ్ళు, దస్త్రపు పరిమాణం: $3, MIME రకం: $4, $5 {{PLURAL:$5|పేజీ|పేజీలు}}',
 '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.',
@@ -3104,7 +3144,7 @@ $1',
 
 # Metadata
 'metadata' => 'మెటాడేటా',
-'metadata-help' => 'à°\88 à°«à±\88à°²à±\81à°²à±\8b à°\85దనపà±\81 à°¸à°®à°¾à°\9aారà°\82 à°\89à°\82ది, à°¬à°¹à±\81శా à°¦à±\80à°¨à±\8dని à°¸à±\83à°·à±\8dà°\9fà°¿à°\82à°\9aడానిà°\95à°¿ à°²à±\87దా à°¸à°¾à°\82à°\96à±\8dà°¯à±\80à°\95à°°à°¿à°\82à°\9aడానిà°\95à°¿ à°µà°¾à°¡à°¿à°¨ à°¡à°¿à°\9cà°¿à°\9fà°²à±\8d à°\95à±\87à°®à±\86à°°à°¾ à°²à±\87దా à°¸à±\8dà°\95ానరà±\8d à°\86 à°¸à°®à°¾à°\9aారానà±\8dని à°\9aà±\87à°°à±\8dà°\9aà°¿à°µà±\81à°\82à°µà°\9aà±\8dà°\9aà±\81. à°\88 à°«à±\88à°²à±\81ని à°\85సలà±\81 à°¸à±\8dథితి à°¨à±\81à°\82à°¡à°¿ à°®à°¾à°°à°¿à°¸à±\8dà°¤à±\87, à°\95à±\8aà°¨à±\8dని à°µà°¿à°µà°°à°¾à°²à±\81 à°\86 à°®à°¾à°°à°¿à°¨ à°«à±\88à°²à±\81à°²à±\8b పూర్తిగా ప్రతిఫలించకపోవచ్చు.',
+'metadata-help' => 'à°\88 à°«à±\88à°²à±\81à°²à±\8b à°\85దనపà±\81 à°¸à°®à°¾à°\9aారà°\82 à°\89à°\82ది, à°¬à°¹à±\81శా à°¦à±\80à°¨à±\8dని à°¸à±\83à°·à±\8dà°\9fà°¿à°\82à°\9aడానిà°\95à°¿ à°²à±\87దా à°¸à°¾à°\82à°\96à±\8dà°¯à±\80à°\95à°°à°¿à°\82à°\9aడానిà°\95à°¿ à°µà°¾à°¡à°¿à°¨ à°¡à°¿à°\9cà°¿à°\9fà°²à±\8d à°\95à±\87à°®à±\86à°°à°¾ à°²à±\87దా à°¸à±\8dà°\95ానరà±\8d à°\86 à°¸à°®à°¾à°\9aారానà±\8dని à°\9aà±\87à°°à±\8dà°\9aà°¿à°µà±\81à°\82à°¡à°µà°\9aà±\8dà°\9aà±\81. à°\88 à°«à±\88à°²à±\81à°¨à±\81 à°\85సలà±\81 à°¸à±\8dథితి à°¨à±\81à°\82à°¡à°¿ à°®à°¾à°°à°¿à°¸à±\8dà°¤à±\87, à°\86 à°®à°¾à°°à°¿à°¨ à°«à±\88à°²à±\81à°²à±\8b à°\95à±\8aà°¨à±\8dని à°µà°¿à°µà°°à°¾à°²à±\81 పూర్తిగా ప్రతిఫలించకపోవచ్చు.',
 'metadata-expand' => 'విస్తరిత వివరాలను చూపించు',
 'metadata-collapse' => 'విస్తరిత వివరాలను దాచు',
 'metadata-fields' => 'కింది జాబితాలో ఉన్న మెటాడేటా ఫీల్డులు, బొమ్మ పేజీలో మేటాడేటా టేబులు మూసుకొన్నపుడు కనబడతాయి. మిగతావి దాచేసి ఉంటాయి. 
@@ -3272,12 +3312,18 @@ $1',
 'exif-serialnumber' => 'కెమేరా యొక్క సీరియల్ నంబర్',
 'exif-cameraownername' => 'కేమెరా యజమాని',
 'exif-label' => 'సూచిక (లేబెల్)',
+'exif-nickname' => 'బొమ్మ పేరు',
 'exif-rating' => 'రేటింగు (5 కి గాను)',
 'exif-rightscertificate' => 'హక్కుల నిర్వాహణ ధృవీకరణ పత్రం',
 'exif-copyrighted' => 'కాపీహక్కుల స్థితి',
 'exif-copyrightowner' => 'కాపీ హక్కుదారు',
 'exif-usageterms' => 'వాడుక నియమాలు',
+'exif-webstatement' => 'ఆన్‌లైన్ కాపీరైటు పాఠ్యం',
+'exif-originaldocumentid' => 'మూల దస్త్రం యొక్క విశిష్ఠ ఐడీ',
+'exif-licenseurl' => 'కాపీరైటు లైసెన్సు URL',
 'exif-morepermissionsurl' => 'ప్రత్యామ్నాయ లైసెన్సు సమాచారం',
+'exif-attributionurl' => 'దీనిని తిరిగి వాడుకోవాలంటే, ఇక్కడికి లంకె వేయండి',
+'exif-preferredattributionname' => 'దీనిని తిరిగి వాడుకోవాలంటే, వీరిని పేర్కొనండి',
 'exif-pngfilecomment' => 'PNG ఫైలు వ్యాఖ్య',
 'exif-disclaimer' => 'నిష్పూచీ',
 'exif-contentwarning' => 'విషయపు హెచ్చరిక',
@@ -3582,7 +3628,7 @@ $5
 
 # Language selector for translatable SVGs
 'img-lang-default' => '(అప్రమేయ భాష)',
-'img-lang-info' => 'ఈ బొమ్మను $1.$2 లో పెట్టు',
+'img-lang-info' => 'ఈ బొమ్మను $1 లో చూపెట్టు. $2',
 'img-lang-go' => 'వెళ్ళు',
 
 # Table pager
@@ -3690,11 +3736,13 @@ $5
 'version-entrypoints-header-url' => 'చిరునామా',
 
 # Special:Redirect
+'redirect' => 'ఫైలు, వాడుకరి, పేజీ లేదా కూర్పు ఐడీ ప్రకారం దారిమార్పు',
+'redirect-legend' => 'ఫైలు లేదా పేజీకి దారిమార్పు',
 'redirect-submit' => 'వెళ్ళు',
 'redirect-lookup' => 'చూడు:',
 'redirect-value' => 'విలువ:',
 'redirect-user' => 'వాడుకరి ID',
-'redirect-page' => 'à°ªà±\81à°\9f ఐడీ',
+'redirect-page' => 'à°ªà±\87à°\9cà±\80 ఐడీ',
 'redirect-revision' => 'పేజీ కూర్పు',
 'redirect-file' => 'దస్త్రపు పేరు',
 'redirect-not-exists' => 'విలువ కనబడలేదు',
@@ -3918,7 +3966,10 @@ $5
 'limitreport-walltime' => 'నిజ సమయం వినియోగం',
 'limitreport-walltime-value' => '$1 {{PLURAL:$1|క్షణం|క్షణాలు}}',
 'limitreport-postexpandincludesize-value' => '$1/$2 {{PLURAL:$2|బైట్|బైట్లు}}',
+'limitreport-templateargumentsize' => 'మూస ఆర్గ్యుమెంట్ పరిమాణం',
 'limitreport-templateargumentsize-value' => '$1/$2 {{PLURAL:$2|బైటు|బైట్లు}}',
+'limitreport-expansiondepth' => 'గరిష్ట విస్తరణ లోతు',
+'limitreport-expensivefunctioncount' => 'ఖరీదైన పార్సర్ ఫంక్షన్ల సంఖ్య',
 
 # Special:ExpandTemplates
 'expandtemplates' => 'మూసలను విస్తరించు',
index 70773de..adeff6b 100644 (file)
@@ -314,7 +314,6 @@ $1',
 'disclaimers' => 'Такзибнома',
 'disclaimerpage' => 'Project:Такзибномаи умумӣ',
 'edithelp' => 'Роҳнамои вироиш',
-'helppage' => 'Help:Мундариҷа',
 'mainpage' => 'Саҳифаи Аслӣ',
 'mainpage-description' => 'Саҳифаи Аслӣ',
 'policy-url' => 'Project:Сиёсатҳо',
@@ -619,7 +618,7 @@ $1',
 'accmailtext' => 'Калимаи убур барои "$1" ба $2 фиристода шуд.',
 'newarticle' => '(Нав)',
 'newarticletext' => "Шумо пайвандеро интихоб кардед, ки саҳифа дар он арзи вуҷуд надорад.
-Барои сохтани саҳифа, ба қуттии зерин нависед ([[{{MediaWiki:Helppage}}|саҳифаи роҳнаморо]] барои маълумоти бештар нигаред).
+Барои сохтани саҳифа, ба қуттии зерин нависед ([$1 саҳифаи роҳнаморо] барои маълумоти бештар нигаред).
 Агар аз сабаби хатогӣ ва ё иштибоҳ омадед, тугмаи '''Ба оқиб'''-ро дар браузери худ пахш кунед.",
 'anontalkpagetext' => "----''Ин саҳифае баҳсе барои корбари гумном (аноним) аст, ки ҳануз ҳисоби ҷадид эчод накардааст ва ё аз он истифода намекунад. Бинобар ин барои шиносоиаш маҷбурем аз нишонаи IP истифода кунем. Чунин нишонаи IP мумкин аст аз тарафи чандин корбарон ба шакли муштарак истифода шавад. Агар шумо корбари гумном ҳастед ва ҳис мекунед, изҳори назари номарбуте ба шумо сурат гирифтааст, лутфан барои пешгири аз иштибоҳ гирифта шудан бо корбарони гумноми дигар дар оянда [[Special:UserLogin|ҳисобе эҷод кунед ё вориди систем шавед]].''",
 'noarticletext' => 'Дар ин саҳифа то кунун матне вуҷуд надорад.
@@ -757,9 +756,6 @@ $1',
 'revdelete-nooldid-text' => 'Шумо ин ё он нусхаи(ҳои) мақсадро барои иҷрои ин амал мушаххас накардаед, нусхаи мушаххасшуда вуҷуд надорад, ё  шумо дар ҳоли кӯшиши пинҳон кардани нусхаи кунуниаш ҳастед.',
 'revdelete-selected' => "'''{{PLURAL:$2|Нусхаи интихобшуда|Нусхаҳои интихобшуда}} аз [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Гузориши маврид интихобшуда|Гузориши мавориди интихобшуда}}:'''",
-'revdelete-text' => "'''Нусхаҳои ва мавориди ҳазфшуда камокам дар таърих ва гузоришҳои саҳифа қобили мушоҳида ҳастанд, аммо бахшҳои аз мӯҳтавои он ба умум қобили мушоҳида нахоҳанд буд.'''
-
-Дигар мудирон дар {{SITENAME}} ҳанӯз метавонанд ба ин мӯҳтавои пинҳонро дастрасӣ кунанд ва ҳатто мавориди ҳазфшударо эҳё кунанд, магар он ки маҳдудиятҳои дигаре амалӣ гардад.",
 'revdelete-legend' => 'Танзими маҳдудиятҳои падидорӣ',
 'revdelete-hide-text' => 'Пинҳон кардани нусхаи матн',
 'revdelete-hide-image' => 'Пинҳон кардани мӯҳтавиёти парванда',
index de5f959..406b33e 100644 (file)
@@ -238,7 +238,6 @@ $1",
 'disclaimers' => 'Takzibnoma',
 'disclaimerpage' => 'Project:Takzibnomai umumī',
 'edithelp' => 'Rohnamoi viroiş',
-'helppage' => 'Help:Mundariça',
 'mainpage' => 'Sahifai Aslī',
 'mainpage-description' => 'Sahifai Aslī',
 'policy-url' => 'Project:Sijosatho',
@@ -498,7 +497,7 @@ Lutfan in jo onro va jo hardui onro dar darxosthoi xud zikr kuned.",
 'accmailtitle' => 'Kalimai ubur firistoda şud.',
 'newarticle' => '(Nav)',
 'newarticletext' => "Şumo pajvandero intixob karded, ki sahifa dar on arzi vuçud nadorad.
-Baroi soxtani sahifa, ba quttiji zerin navised ([[{{MediaWiki:Helppage}}|sahifai rohnamoro]] baroi ma'lumoti beştar nigared).
+Baroi soxtani sahifa, ba quttiji zerin navised ([$1 sahifai rohnamoro] baroi ma'lumoti beştar nigared).
 Agar az sababi xatogī va jo iştiboh omaded, tugmai '''Ba oqib'''-ro dar brauzeri xud paxş kuned.",
 'noarticletext' => 'Dar in sahifa to kunun matne vuçud nadorad.
 Şumo metavoned dar digar sahifaho [[Special:Search/{{PAGENAME}}|unvoni in sahifaro çustuçū kuned]],
index a910e8e..40fc31c 100644 (file)
@@ -232,13 +232,12 @@ $messages = array(
 'tog-ccmeonemails' => 'ส่งสำเนาอีเมลที่ฉันส่งหาผู้อื่นให้ฉัน',
 'tog-diffonly' => 'ไม่แสดงเนื้อหาใต้ส่วนต่างการแก้ไข',
 'tog-showhiddencats' => 'แสดงหมวดหมู่ที่ซ่อนอยู่',
-'tog-noconvertlink' => 'ปิดใช้งานการแปลงชื่อเรื่องของลิงก์',
 'tog-norollbackdiff' => 'ไม่แสดงการเปลี่ยนแปลงหลังดำเนินการย้อนกลับฉุกเฉิน',
 'tog-useeditwarning' => 'เตือนฉัน เมื่อฉันกำลังจะออกจากหน้าแก้ไขโดยมีข้อมูลที่ยังไม่ได้บันทึก',
 'tog-prefershttps' => 'ใช้การเชื่อมต่อปลอดภัยทุกครั้งเมื่อล็อกอิน',
 
-'underline-always' => 'à¹\80สมอ',
-'underline-never' => 'ไม่เคย',
+'underline-always' => 'à¸\97ุà¸\81à¸\84รัà¹\89à¸\87',
+'underline-never' => 'ไม่',
 'underline-default' => 'ค่าโดยปริยายของหน้าตาหรือเบราว์เซอร์',
 
 # Font style option in Special:Preferences
@@ -444,7 +443,6 @@ $1',
 'disclaimers' => 'ข้อปฏิเสธความรับผิดชอบ',
 'disclaimerpage' => 'Project:ข้อปฏิเสธความรับผิดชอบทั่วไป',
 'edithelp' => 'วิธีแก้ไขหน้า',
-'helppage' => 'Help:สารบัญ',
 'mainpage' => 'หน้าหลัก',
 'mainpage-description' => 'หน้าหลัก',
 'policy-url' => 'Project:นโยบาย',
@@ -639,8 +637,7 @@ $1',
 'gotaccountlink' => 'ล็อกอิน',
 'userlogin-resetlink' => 'ลืมรายละเอียดล็อกอินของคุณหรือ',
 'userlogin-resetpassword-link' => 'ลืมรหัสผ่านหรือ',
-'helplogin-url' => 'Help:การล็อกอิน',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|คำอธิบายเรื่องการล็อกอิน]]',
+'userlogin-helplink2' => 'วิธีใช้เรื่องการล็อกอิน',
 'userlogin-loggedin' => 'คุณล็อกอินในชื่อ {{GENDER:$1|$1}} แล้ว
 ใช้แบบด้านล่างเพื่อล็อกอินเป็นอีกผู้ใช้หนึ่ง',
 'userlogin-createanother' => 'สร้างอีกบัญชี',
@@ -725,6 +722,10 @@ $1',
 'suspicious-userlogout' => 'คำขอล็อกเอาต์ของคุณถูกปฏิเสธเพราะดูเหมือนส่งมาจากเบราว์เซอร์หรือพร็อกซีแคชที่เสีย',
 'createacct-another-realname-tip' => 'ไม่จำเป็นต้องใส่ชื่อจริง
 หากคุณเลือกใส่ชื่อจริง จะใช้เพื่อแสดงที่มาสำหรับงานของตน',
+'pt-login' => 'ล็อกอิน',
+'pt-login-button' => 'ล็อกอิน',
+'pt-createaccount' => 'สร้างบัญชี',
+'pt-userlogout' => 'ล็อกเอาต์',
 
 # Email sending
 'php-mail-error-unknown' => 'เกิดข้อผิดพลาดไม่ทราบสาเหตุในฟังก์ชัน mail() ของพีเอชพี',
@@ -733,7 +734,7 @@ $1',
 
 # Change password dialog
 'changepassword' => 'เปลี่ยนรหัสผ่าน',
-'resetpass_announce' => 'à¸\84ุà¸\93à¹\83à¸\8aà¹\89รหัสอีà¹\80มลà¸\8aัà¹\88วà¸\84ราวลà¹\87อà¸\81อิà¸\99 à¸\84ุà¸\93à¸\95à¹\89อà¸\87à¸\81ำหà¸\99à¸\94รหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88à¸\95รà¸\87à¸\99ีà¹\89 à¸\88ึà¸\87à¸\88ะà¹\80สรà¹\87à¸\88สิà¹\89à¸\99à¸\82ัà¹\89à¸\99à¸\95อà¸\99à¸\81ารลà¹\87อà¸\81อิà¸\99:',
+'resetpass_announce' => 'à¸\84ุà¸\93à¸\95à¹\89อà¸\87à¸\95ัà¹\89à¸\87รหัสà¸\9cà¹\88าà¸\99à¹\83หมà¹\88à¸\88ึà¸\87à¸\88ะà¹\80สรà¹\87à¸\88สิà¹\89à¸\99à¸\81ารลà¹\87อà¸\81อิà¸\99',
 'resetpass_text' => '<!-- เพิ่มข้อความที่นี่ -->',
 'resetpass_header' => 'เปลี่ยนรหัสผ่าน',
 'oldpassword' => 'รหัสผ่านเดิม:',
@@ -749,8 +750,16 @@ $1',
 'resetpass-submit-cancel' => 'ยกเลิก',
 'resetpass-wrong-oldpass' => 'รหัสผ่านชั่วคราวหรือปัจจุบันไม่ถูกต้อง
 คุณอาจเปลี่ยนรหัสผ่านของคุณไปแล้ว หรือขอรหัสผ่านชั่วคราวใหม่แล้ว',
+'resetpass-recycled' => 'โปรดตั้งรหัสผ่านใหม่ให้ต่างจากรหัสผ่านปัจจุบัน',
+'resetpass-temp-emailed' => 'คุณล็อกอินด้วยรหัสผ่านชั่วคราวที่ส่งทางอีเมล
+คุณต้องตั้งรหัสผ่านใหม่ที่นี่จึงจะเสร็จสิ้นการล็อกอิน:',
 'resetpass-temp-password' => 'รหัสผ่านชั่วคราว:',
 'resetpass-abort-generic' => 'การเปลี่ยนรหัสผ่านถูกส่วนขยายยกเลิก',
+'resetpass-expired' => 'รหัสผ่านของคุณหมดอายุแล้ว โปรดตั้งรหัสผ่านใหม่เพื่อล็อกอิน',
+'resetpass-expired-soft' => 'รหัสผ่านของคุณหมดอายุแล้วและจำเป็นต้องตั้งใหม่ โปรดเลือกรหัสผ่านใหม่ขณะนี้ หรือคลิก "{{int:resetpass-submit-cancel}}" เพื่อตั้งใหม่ทีหลัง',
+'resetpass-validity-soft' => 'รหัสผ่านของคุณไม่สมเหตุสมผล: $1
+
+โปรดเลือดรหัสผ่านใหม่ในขณะนี้ หรือคลิก "{{int:resetpass-submit-cancel}}" เพื่อตั้งใหม่ทีหลัง',
 
 # Special:PasswordReset
 'passwordreset' => 'ตั้งรหัสผ่านใหม่',
@@ -886,7 +895,7 @@ $2
 'accmailtext' => "รหัสผ่านแบบสุ่มของ [[User talk:$1|$1]] ถูกส่งไปยัง $2 แล้ว สามารถเปลี่ยนรหัสผ่านในหน้า''[[Special:ChangePassword|เปลี่ยนรหัสผ่าน]]'' หลังล็อกอิน",
 'newarticle' => '(ใหม่)',
 'newarticletext' => "คุณตามลิงก์ไปยังหน้าที่ยังไม่มีในขณะนี้
-ในการสร้างหน้า เริ่มพิมพ์ในกล่องด้านล่าง (ดูข้อมูลเพิ่มเติมใน[[{{MediaWiki:Helppage}}|หน้าคำอธิบาย]])
+ในการสร้างหน้า เริ่มพิมพ์ในกล่องด้านล่าง (ดูข้อมูลเพิ่มเติมใน[$1 หน้าคำอธิบาย])
 ถ้าคุณเข้ามาหน้านี้โดยผิดพลาด ให้กดปุ่ม'''ถอยหลัง''' (back) ของเบราว์เซอร์",
 'anontalkpagetext' => "----''หน้านี้เป็นหน้าคุยกับผู้ใช้สำหรับผู้ใช้นิรนามซึ่งยังไม่ได้สร้างบัญชีหรือไม่ได้ล็อกอิน
 ดังนั้นเราจึงระบุตัวตนโดยใช้เลขที่อยู่ไอพีแทน
@@ -1064,7 +1073,7 @@ $2
 'page_first' => 'แรกสุด',
 'page_last' => 'ท้ายสุด',
 'histlegend' => 'วิธีเปรียบเทียบ: เลือกปุ่มของรุ่นสองรุ่นที่ต้องการเปรียบเทียบ และกดปุ่มเริ่มเปรียบเทียบด้านล่าง<br />
-คำอธิบาย: (ป) = เทียบกับรุ่นปัจจุบัน, (ก) = เทียบกับรุ่นก่อนหน้า, ล = การแก้ไขเล็กน้อย',
+คำอธิบาย: <strong>({{int:cur}})</strong> = เทียบกับรุ่นปัจจุบัน, <strong>({{int:last}})</strong> = เทียบกับรุ่นก่อนหน้า, <strong>{{int:minoreditletter}}</strong> = การแก้ไขเล็กน้อย',
 'history-fieldset-title' => 'ค้นหาประวัติ',
 'history-show-deleted' => 'เฉพาะที่ถูกลบ',
 'histfirst' => 'แรกสุด',
@@ -1120,8 +1129,10 @@ $2
 'revdelete-show-file-submit' => 'ใช่',
 'revdelete-selected' => "'''{{PLURAL:$2|รุ่นการปรับปรุงที่ถูกเลือก|รุ่นการปรับปรุงที่ถูกเลือก}}ของ [[:$1]] :'''",
 'logdelete-selected' => "'''{{PLURAL:$1|เหตุการณ์ปูมที่เลือก|เหตุการณ์ปูมที่เลือก}} :'''",
-'revdelete-text' => "'''รุ่นการปรับปรุงและเหตุการณ์ที่ถูกลบยังปรากฏในประวัติและปูมของหน้า แต่สาธารณะไม่สามารถเข้าถึงเนื้อหาบางส่วนได้'''
-ผู้ดูแลระบบคนอื่นบน {{SITENAME}} ยังสามารถเข้าถึงเนื้อหาที่ถูกซ่อน และสามารถกู้คืนอีกครั้งในลักษณะเดิมเช่นนี้ เว้นแต่จะมีการกำหนดการจำกัดเพิ่มเติม",
+'revdelete-text-text' => 'รุ่นที่ถูกลบจะยังปรากฏในประวัติหน้า แต่สาธารณะจะไม่สามารถเข้าถึงเนื้อหาบางส่วนได้',
+'revdelete-text-file' => 'รุ่นที่ถูกลบจะยังปรากฏในประวัติไฟล์ แต่สาธารณะจะไม่สามารถเข้าถึงเนื้อหาบางส่วนได้',
+'logdelete-text' => 'รายการปูมที่ถูกลบจะยังปรากฏในปูม แต่สาธารณะจะไม่สามารถเข้าถึงเนื้อหาบางส่วนได้',
+'revdelete-text-others' => 'ผู้ดูแลระบบคนอื่นบน {{SITENAME}} จะยังสามารถเข้าถึงเนื้อหาที่ถูกซ่อน และสามารถกู้คืนได้อีกผ่านอินเตอร์เฟซเดียวกันนี้ ยกเว้นตั้งข้อจำกัดเพิ่มเติม',
 'revdelete-confirm' => 'กรุณายืนยันว่าคุณมีเจตนาลบจริง และเข้าใจผลลัพธ์ และกระทำภายใต้[[{{MediaWiki:Policy-url}}|นโยบาย]]',
 'revdelete-suppress-text' => "การระงับควรใช้'''เฉพาะ'''กรณีต่อไปนี้:
 * ข้อมูลที่อาจหมิ่นประมาท
@@ -1236,7 +1247,8 @@ $1",
 'nextn-title' => '$1 ผลลัพธ์ถัดไป',
 'shown-title' => 'แสดง $1 ผลลัพธ์ต่อหน้า',
 'viewprevnext' => 'ดู ($1 {{int:pipe-separator}} $2) ($3)',
-'searchmenu-exists' => "'''มีหน้าชื่อ \"[[:\$1]]\" บนวิกินี้'''",
+'searchmenu-exists' => '<strong>มีหน้าชื่อ "[[:$1]]" บนวิกินี้</strong>
+{{PLURAL:$2|0=|ดูผลการค้นหาอื่นที่พบเพิ่มเติม}}',
 'searchmenu-new' => '<strong>สร้างหน้า "[[:$1]]" บนวิกินี้!</strong> {{PLURAL:$2|0=|ดูหน้าที่พบด้วยการค้นหาของคุณ|ดูผลการค้นหาที่พบเพิ่มเติม}}',
 'searchprofile-articles' => 'หน้าเนื้อหา',
 'searchprofile-project' => 'คำอธิบายและหน้าโครงการ',
@@ -1253,9 +1265,10 @@ $1",
 'search-result-score' => 'ความเกี่ยวข้อง : $1%',
 'search-redirect' => '(เปลี่ยนทาง $1)',
 'search-section' => '(ส่วน $1)',
+'search-file-match' => '(จับคู่เนื้อหาไฟล์)',
 'search-suggest' => 'คุณอาจหมายถึง: $1',
 'search-interwiki-caption' => 'โครงการพี่น้อง',
-'search-interwiki-default' => '$1 ผลลัพธ์:',
+'search-interwiki-default' => 'ผลลัพธ์จาก $1 :',
 'search-interwiki-more' => '(เพิ่มเติม)',
 'search-relatedarticle' => 'สัมพันธ์',
 'searcheverything-enable' => 'ค้นหาในทุกเนมสเปซ',
@@ -1576,14 +1589,26 @@ $1",
 'recentchanges-label-plusminus' => 'ขนาดของหน้าเปลี่ยนไปด้วยจำนวนไบต์เท่านี้',
 'recentchanges-legend-heading' => "'''คำอธิบายสัญลักษณ์:'''",
 'recentchanges-legend-newpage' => '(ดูเพิ่มที่[[Special:NewPages|รายชื่อหน้าใหม่]])',
-'rcnotefrom' => "ด้านล่างเป็นการเปลี่ยนแปลงตั้งแต่ '''$2''' (มากสุด '''$1''' รายการ)",
+'rcnotefrom' => 'ด้านล่างเป็นการเปลี่ยนแปลงตั้งแต่ <strong>$2</strong> (มากสุด <strong>$1</strong> รายการ)',
 'rclistfrom' => 'แสดงการเปลี่ยนแปลงใหม่เริ่มตั้งแต่ $1',
 'rcshowhideminor' => '$1การแก้ไขเล็กน้อย',
+'rcshowhideminor-show' => 'แสดง',
+'rcshowhideminor-hide' => 'ซ่อน',
 'rcshowhidebots' => '$1บอต',
+'rcshowhidebots-show' => 'แสดง',
+'rcshowhidebots-hide' => 'ซ่อน',
 'rcshowhideliu' => '$1ผู้ใช้ลงทะเบียน',
+'rcshowhideliu-show' => 'แสดง',
+'rcshowhideliu-hide' => 'ซ่อน',
 'rcshowhideanons' => '$1ผู้ใช้นิรนาม',
+'rcshowhideanons-show' => 'แสดง',
+'rcshowhideanons-hide' => 'ซ่อน',
 'rcshowhidepatr' => '$1การแก้ไขที่ตรวจสอบแล้ว',
+'rcshowhidepatr-show' => 'แสดง',
+'rcshowhidepatr-hide' => 'ซ่อน',
 'rcshowhidemine' => '$1การแก้ไขของฉัน',
+'rcshowhidemine-show' => 'แสดง',
+'rcshowhidemine-hide' => 'ซ่อน',
 'rclinks' => 'แสดงการปรับปรุงล่าสุด $1 รายการ ในช่วง $2 วันที่ผ่านมา<br />$3',
 'diff' => 'ต่าง',
 'hist' => 'ประวัติ',
@@ -1609,7 +1634,7 @@ $1",
 'recentchangeslinked-title' => 'การปรับปรุงที่โยงมายัง "$1"',
 'recentchangeslinked-summary' => "หน้านี้เป็นรายการปรับปรุงล่าสุดของหน้าที่ถูกโยงไป (หรือไปยังหน้าต่าง ๆ ของหมวดหมู่ที่กำหนด) โดยหน้าที่อยู่ใน[[Special:Watchlist|รายการเฝ้าดู]]แสดงเป็น'''ตัวหนา'''",
 'recentchangeslinked-page' => 'ชื่อหน้า:',
-'recentchangeslinked-to' => 'à¹\81สà¸\94à¸\87à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87à¸\97ีà¹\88à¹\80à¸\8aืà¹\88อมà¹\82ยà¸\87มายัà¸\87หà¸\99à¹\89าà¸\99ีà¹\89แทน',
+'recentchangeslinked-to' => 'à¹\81สà¸\94à¸\87à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87à¹\84à¸\9bยัà¸\87หà¸\99à¹\89าà¸\97ีà¹\88à¹\80à¸\8aืà¹\88อมà¹\82ยà¸\87มายัà¸\87หà¸\99à¹\89าà¸\97ีà¹\88ระà¸\9aุแทน',
 
 # Upload
 'upload' => 'อัปโหลดไฟล์',
@@ -1639,7 +1664,7 @@ $1",
 'uploadlogpagetext' => 'ด้านล่างเป็นรายการการอัปโหลดไฟล์ล่าสุด
 ดูภาพรวมที่ [[Special:NewFiles|แกลอรีไฟล์ใหม่]]',
 'filename' => 'ชื่อไฟล์',
-'filedesc' => 'รายละà¹\80อียà¸\94à¹\84à¸\9fลà¹\8c',
+'filedesc' => 'à¸\84วามยà¹\88อ',
 'fileuploadsummary' => 'รายละเอียดไฟล์:',
 'filereuploadsummary' => 'เปลี่ยนแปลงไฟล์:',
 'filestatus' => 'สถานะลิขสิทธิ์:',
@@ -1698,6 +1723,7 @@ $1",
 'file-exists-duplicate' => 'ไฟล์นี้ซ้ำกับ{{PLURAL:$1|ไฟล์|ไฟล์}}ต่อไปนี้:',
 'file-deleted-duplicate' => 'ไฟล์ที่เหมือนไฟล์นี้ ([[:$1]]) เคยถูกลบไปก่อนหน้านี้แล้ว
 คุณควรตรวจสอบว่าประวัติการลบของไฟล์ก่อนดำเนินการอัปโหลดใหม่',
+'file-deleted-duplicate-notitle' => 'ไฟล์ที่เหมือนกับไฟล์นี้เคยถูกลบมาก่อน และชื่อดังกล่าวถูกห้ามใช้ คุณควรสอบถามผู้ที่สามารถดูข้อมูลไฟล์ที่ถูกระงับเพื่อทบทวนสถานการณ์ก่อนดำเนินการอัปโหลดไฟล์อีกครั้ง',
 'uploadwarning' => 'คำเตือนการอัปโหลด',
 'uploadwarning-text' => 'กรุณาแก้ไขคำอธิบายไฟล์ด้านล่างนี้ แล้วลองใหม่อีกครั้ง',
 'savefile' => 'บันทึกไฟล์',
@@ -1994,6 +2020,7 @@ $1',
 'ninterwikis' => '$1 ลิงก์ข้ามโครงการ',
 'nlinks' => '$1 ลิงก์',
 'nmembers' => '$1 หน้า',
+'nmemberschanged' => '$1 → $2 สมาชิก',
 'nrevisions' => '$1 รุ่น',
 'nviews' => '$1 ครั้ง',
 'nimagelinks' => 'ใช้ใน $1 {{PLURAL:$1|หน้า|หน้า}}',
@@ -2031,14 +2058,25 @@ $1',
 'deadendpagestext' => 'หน้าต่อไปนี้ไม่เชื่อมโยงไปหน้าอื่นใน {{SITENAME}}',
 'protectedpages' => 'หน้าที่ถูกล็อก',
 'protectedpages-indef' => 'การล็อกแบบไม่มีกำหนดเท่านั้น',
+'protectedpages-summary' => 'หน้านี้แสดงรายการหน้าที่มีอยู่ซึ่งปัจจุบันถูกล็อก สำหรับรายการชื่อเรื่องที่ถูกป้องกันมิให้สร้าง ดู [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]]',
 'protectedpages-cascade' => 'การล็อกแบบสืบทอดเท่านั้น',
 'protectedpages-noredirect' => 'ซ่อนการเปลี่ยนทาง',
 'protectedpagesempty' => 'ขณะนี้ไม่มีหน้าใดถูกล็อกตามพารามิเตอร์เหล่านี้',
+'protectedpages-timestamp' => 'ตราเวลา',
+'protectedpages-page' => 'หน้า',
+'protectedpages-expiry' => 'หมดอายุ',
+'protectedpages-performer' => 'ผู้ใช้ที่ล็อก',
+'protectedpages-params' => 'พารามิเตอร์การล็อก',
+'protectedpages-reason' => 'เหตุผล',
+'protectedpages-unknown-timestamp' => 'ไม่ทราบ',
+'protectedpages-unknown-performer' => 'ไม่ทราบผู้ใช้',
 'protectedtitles' => 'ชื่อเรื่องที่ถูกป้องกัน',
+'protectedtitles-summary' => 'หน้านี้แสดงรายการชื่อที่ปัจจุบันถูกป้องกันมิให้สร้าง สำหรับรายการหน้าที่มีอยู่ที่ถูกล็อก ดู [[{{#special:ProtectedPages}}|{{int:protectedpages}}]]',
 'protectedtitlesempty' => 'ปัจจุบันไม่มีหัวเรื่องที่ได้รับการป้องกันด้วยพารามิเตอร์เหล่านี้',
 'listusers' => 'รายนามผู้ใช้',
 'listusers-editsonly' => 'แสดงเฉพาะผู้ใช้ที่มีการแก้ไข',
 'listusers-creationsort' => 'เรียงลำดับตามวันสร้าง',
+'listusers-desc' => 'เรียงตามลำดับลด',
 'usereditcount' => 'การแก้ไข $1 ครั้ง',
 'usercreated' => '{{GENDER:$3|ถูกสร้าง}}เมื่อ $1 เวลา $2',
 'newpages' => 'หน้าใหม่',
@@ -2304,7 +2342,7 @@ $UNWATCHURL
 'delete-edit-reasonlist' => 'แก้ไขเหตุผลการลบ',
 'delete-toobig' => 'หน้านี้มีประวัติการแก้ไขนาดใหญ่ คือ กว่า $1 รุ่น การลบหน้าเช่นนี้ถูกจำกัดเพื่อป้องกันการรบกวน{{SITENAME}}โดยบังเอิญ',
 'delete-warning-toobig' => 'หน้านี้มีประวัติการแก้ไขขนาดใหญ่ กว่า $1 รุ่น การลบหน้านี้อาจรบกวนการทำงานของฐานข้อมูลของ {{SITENAME}} โปรดดำเนินการด้วยความระมัดระวัง',
-'deleting-backlinks-warning' => "'''คำเตือน:''' หน้าอื่นเชื่อมโยงมายังหรือดึงข้อมูลจากหน้าที่คุณกำลังลบ",
+'deleting-backlinks-warning' => "'''คำเตือน:''' [[Special:WhatLinksHere/{{FULLPAGENAME}}|หน้าอื่น]]เชื่อมโยงมายังหรือดึงข้อมูลจากหน้าที่คุณกำลังจะลบ",
 
 # Rollback
 'rollback' => 'ย้อนการแก้ไขกลับฉุกเฉิน',
@@ -2354,7 +2392,7 @@ $UNWATCHURL
 'protect-locked-dblock' => "ไม่สามารถเปลี่ยนระดับการล็อกได้เนื่องจากฐานข้อมูลถูกล็อก การตั้งค่าปัจจุบันของหน้า '''$1''' คือ:",
 'protect-locked-access' => "บัญชีของคุณไม่ได้รับอนุญาตให้เปลี่ยนแปลงระดับการล็อกหน้า การตั้งค่าปัจจุบันของหน้า '''$1''' คือ:",
 'protect-cascadeon' => 'หน้านี้ถูกล็อกเนื่องจากเป็นส่วนหนึ่งของ{{PLURAL:$1|หน้า|หน้า}}ที่เปิดการล็อกแบบสืบทอด
-à¸\84ุà¸\93สามารà¸\96à¹\80à¸\9bลีà¹\88ยà¸\99ระà¸\94ัà¸\9aà¸\81ารลà¹\87อà¸\81à¹\84à¸\94à¹\89 à¹\81à¸\95à¹\88จะไม่มีผลต่อการล็อกแบบสืบทอด',
+à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99ระà¸\94ัà¸\9aà¸\81ารลà¹\87อà¸\81à¸\82อà¸\87หà¸\99à¹\89าà¸\99ีà¹\89จะไม่มีผลต่อการล็อกแบบสืบทอด',
 'protect-default' => 'อนุญาตผู้ใช้ทั้งหมด',
 'protect-fallback' => 'อนุญาตเฉพาะผู้ใช้ที่มีสิทธิ "$1"',
 'protect-level-autoconfirmed' => 'อนุญาตเฉพาะผู้ใช้ยืนยันอัตโนมัติ',
@@ -2457,14 +2495,14 @@ $1',
 'blanknamespace' => '(หลัก)',
 
 # Contributions
-'contributions' => 'เรื่องที่ผู้ใช้รายนี้เขียน',
+'contributions' => 'เรื่องที่{{GENDER:$1|ผู้ใช้}}รายนี้เขียน',
 'contributions-title' => 'เรื่องที่เขียนโดย $1',
 'mycontris' => 'เรื่องที่เขียน',
 'contribsub2' => 'สำหรับ {{GENDER:$3|$1}} ($2)',
 'nocontribs' => 'ไม่พบการเปลี่ยนแปลงตรงกับเงื่อนไขเหล่านี้',
 'uctop' => '(ปัจจุบัน)',
-'month' => 'à¸\88าà¸\81เดือน (และก่อนหน้า):',
-'year' => 'à¸\88าà¸\81ปี (และก่อนหน้า):',
+'month' => 'à¸\95ัà¹\89à¸\87à¹\81à¸\95à¹\88เดือน (และก่อนหน้า):',
+'year' => 'à¸\95ัà¹\89à¸\87à¹\81à¸\95à¹\88ปี (และก่อนหน้า):',
 
 'sp-contributions-newbies' => 'แสดงการแก้ไขของบัญชีใหม่เท่านั้น',
 'sp-contributions-newbies-sub' => 'สำหรับบัญชีใหม่',
@@ -2482,6 +2520,7 @@ $1',
 'sp-contributions-search' => 'ค้นหาการแก้ไข',
 'sp-contributions-username' => 'เลขที่อยู่ไอพีหรือชื่อผู้ใช้:',
 'sp-contributions-toponly' => 'แสดงเฉพาะการแก้ไขรุ่นล่าสุด',
+'sp-contributions-newonly' => 'แสดงเฉพาะการแก้ไขที่เป็นการสร้างหน้า',
 'sp-contributions-submit' => 'สืบค้น',
 
 # What links here
@@ -2540,6 +2579,7 @@ $1',
 ดู[[Special:BlockList|รายการบล็อก]]เพื่อทบทวนการบล็อก',
 'ipb-blockingself' => 'คุณกำลังบล็อกตัวเอง! แน่ใจแล้วหรือว่าต้องการทำอย่างนั้น',
 'ipb-confirmhideuser' => 'คุณกำลังบล็อกผู้ใช้โดยเป็นผู้ใช้ "ซ่อนผู้ใช้" ซึ่งจะระงับชื่อผู้ใช้ในรายการและหน่วยปูมทั้งหมด คุณแน่ใจหรือว่าต้องการดำเนินการเช่นนั้น',
+'ipb-confirmaction' => 'หากคุณแน่ใจว่าคุณต้องการดำเนินการ โปรดเลือกเขตข้อมูล "{{int:ipb-confirm}}"  ที่อยู่ล่างสุด',
 'ipb-edit-dropdown' => 'แก้ไขสาเหตุการบล็อก',
 'ipb-unblock-addr' => 'ปลดบล็อก $1',
 'ipb-unblock' => 'ปลดบล็อกผู้ใช้หรือเลขที่อยู่ไอพี',
@@ -2893,7 +2933,7 @@ $1',
 'tooltip-ca-nstab-template' => 'ดูหน้าแม่แบบ',
 'tooltip-ca-nstab-help' => 'ดูหน้าคำอธิบาย',
 'tooltip-ca-nstab-category' => 'ดูหน้าหมวดหมู่',
-'tooltip-minoredit' => 'à¸\81ำหà¸\99à¸\94เป็นการแก้ไขเล็กน้อย',
+'tooltip-minoredit' => 'à¸\97ำà¹\80à¸\84รืà¹\88อà¸\87หมายเป็นการแก้ไขเล็กน้อย',
 'tooltip-save' => 'บันทึกการแก้ไข',
 'tooltip-preview' => 'แสดงตัวอย่างการเปลี่ยนแปลงของคุณ กรุณาใช้คำสั่งนี้ก่อนบันทึก!',
 'tooltip-diff' => 'แสดงการเปลี่ยนการต่อข้อความ',
@@ -3632,7 +3672,7 @@ $5
 # Special:Redirect
 'redirect' => 'การเปลี่ยนทางตามชื่อไฟล์ รหัสประจำผู้ใช้ หน้าหรือรุ่น',
 'redirect-legend' => 'การเปลี่ยนทางไปยังไฟล์หรือหน้า',
-'redirect-summary' => 'หน้าพิเศษนี้เปลี่ยนทางไปยังไฟล์ (ระบุเป็นชื่อไฟล์) หน้า (ระบุเป็นรหัสรุ่น) หรือหน้าผู้ใช้ (ระบุเป็นรหัสผู้ใช้)',
+'redirect-summary' => 'หน้าพิเศษนี้เปลี่ยนทางไปยังไฟล์ (ระบุเป็นชื่อไฟล์) หน้า (ระบุเป็นรหัสรุ่นหรือรหัสหน้า) หรือหน้าผู้ใช้ (ระบุเป็นรหัสผู้ใช้ตัวเลข) การใช้งาน: [[{{#Special:Redirect}}/file/Example.jpg]], [[{{#Special:Redirect}}/page/64308]], [[{{#Special:Redirect}}/revision/328429]] หรือ [[{{#Special:Redirect}}/user/101]]',
 'redirect-submit' => 'ไป',
 'redirect-lookup' => 'ค้นดู:',
 'redirect-value' => 'ค่า:',
@@ -3746,7 +3786,7 @@ $5
 'logentry-delete-delete' => '$1 ลบหน้า $3',
 'logentry-delete-restore' => '$1 กู้คืนหน้า $3',
 'logentry-delete-event' => '$1 เปลี่ยนทัศนวิสัยของ $5 รายการปูมใน $3: $4',
-'logentry-delete-revision' => '$1 เปลี่ยนทัศนวิสัยของ $5 รุ่น ในหน้า $3: $4',
+'logentry-delete-revision' => '$1 เปลี่ยนทัศนวิสัยของ $5 รุ่นในหน้า $3: $4',
 'logentry-delete-event-legacy' => '$1 เปลี่ยนทัศนวิสัยของเหตุการณ์ปูมในหน้า $3',
 'logentry-delete-revision-legacy' => '$1 เปลี่ยนทัศนวิสัยของรุ่นในหน้า $3',
 'logentry-suppress-delete' => '$1 ระงับหน้า $3',
index c738797..ef1ba81 100644 (file)
@@ -132,8 +132,8 @@ $messages = array(
 'mar' => 'mar',
 'apr' => 'apr',
 'may' => 'maý',
-'jun' => 'iýun',
-'jul' => 'iýul',
+'jun' => 'iýn',
+'jul' => 'iýl',
 'aug' => 'awg',
 'sep' => 'sen',
 'oct' => 'okt',
@@ -187,8 +187,8 @@ kiçi kategoriýadan {{PLURAL:$1|sany kiçi kategoriýa|$1 sany kiçi kategoriý
 'vector-action-undelete' => 'Öçürmäni yzyna al',
 'vector-action-unprotect' => 'Goragy üýtget',
 'vector-view-create' => 'Döret',
-'vector-view-edit' => 'Redaktirle',
-'vector-view-history' => 'Geçmişi gör',
+'vector-view-edit' => 'Üýtget',
+'vector-view-history' => 'Taryhy gör',
 'vector-view-view' => 'Oka',
 'vector-view-viewsource' => 'Çeşmäni gör',
 'actions' => 'Hereketler',
@@ -199,19 +199,19 @@ kiçi kategoriýadan {{PLURAL:$1|sany kiçi kategoriýa|$1 sany kiçi kategoriý
 'errorpagetitle' => 'Säwlik',
 'returnto' => '$1.',
 'tagline' => '{{SITENAME}} saýtyndan',
-'help' => 'Ýardam',
-'search' => 'Gözle',
+'help' => 'Kömek',
+'search' => 'Gözleg',
 'searchbutton' => 'Gözle',
 'go' => 'Git',
 'searcharticle' => 'Git',
 'history' => 'Sahypanyň geçmişi',
-'history_short' => 'Geçmiş',
+'history_short' => 'Taryh',
 'updatedmarker' => 'soňky gezek görelim bäri täzelenen',
-'printableversion' => 'Print ediş wersiýasy',
+'printableversion' => 'Çap edilýän wersiýa',
 'permalink' => 'Hemişelik çykgyt',
 'print' => 'Print et',
 'view' => 'Görkez',
-'edit' => 'Redaktirle',
+'edit' => 'Üýtget',
 'create' => 'Döret',
 'editthispage' => 'Bu sahypany redaktirle',
 'create-this-page' => 'Bu sahypany döret',
@@ -225,14 +225,14 @@ kiçi kategoriýadan {{PLURAL:$1|sany kiçi kategoriýa|$1 sany kiçi kategoriý
 'unprotectthispage' => 'Sahypanyň goragyny aýyr',
 'newpage' => 'Täze sahypa',
 'talkpage' => 'Sahypany ara alyp maslahatlaş',
-'talkpagelinktext' => 'Çekişme',
+'talkpagelinktext' => 'Pikir alyşma',
 'specialpage' => 'Ýörite Sahypa',
 'personaltools' => 'Şahsy gurallar',
 'postcomment' => 'Täze bölüm',
 'articlepage' => 'Makalany görkez',
 'talk' => 'Çekişme',
-'views' => 'Keşpler',
-'toolbox' => 'Gural sandygy',
+'views' => 'Görnüşler',
+'toolbox' => 'Gurallar',
 'userpage' => 'Ulanyjy sahypasyny görkez',
 'projectpage' => 'Taslama sahypasyny görkez',
 'imagepage' => 'Faýl sahypasyny görkez',
@@ -244,11 +244,11 @@ kiçi kategoriýadan {{PLURAL:$1|sany kiçi kategoriýa|$1 sany kiçi kategoriý
 'otherlanguages' => 'Başga dillerde',
 'redirectedfrom' => '($1 sahypasyndan gönükdirildi)',
 'redirectpagesub' => 'Gönükdirme sahypasy',
-'lastmodifiedat' => 'Bu sahypa iň soňky gezek $2, $1 senesinde üýtgedildi.',
+'lastmodifiedat' => 'Bu sahypanyň iň soňky üýtgedilen gezegi: $2, $1.',
 'viewcount' => 'Bu sahypa {{PLURAL:$1|bir|$1 }} gezek görülipdir.',
 'protectedpage' => 'Goragly sahypa',
-'jumpto' => 'Git we:',
-'jumptonavigation' => 'ulan',
+'jumpto' => 'Şuňa git:',
+'jumptonavigation' => 'nawigasiýa',
 'jumptosearch' => 'gözle',
 'view-pool-error' => 'Gynansak-da, şu wagt serwerler hetdenaşa işli.
 Biçak köp ulanyjy şu sahypany görmäge synanyşýar.
@@ -266,17 +266,16 @@ $1',
 'copyrightpage' => '{{ns:project}}:Awtorlyk hukugy',
 'currentevents' => 'Oba güzeri',
 'currentevents-url' => 'Project:Oba güzeri',
-'disclaimers' => 'Jogapkärçilikden boýun gaçyrma',
-'disclaimerpage' => 'Project:Umumy jogapkärçilikden boýun gaçyrma',
+'disclaimers' => 'Jogapkärçilikden boýun gaçyrmak',
+'disclaimerpage' => 'Project:Umumy jogapkärçilikden boýun gaçyrmak',
 'edithelp' => 'Nähili redaktirlenýär?',
-'helppage' => 'Help:Içindäkiler',
 'mainpage' => 'Baş Sahypa',
-'mainpage-description' => 'Baş Sahypa',
+'mainpage-description' => 'Baş sahypa',
 'policy-url' => 'Project:Ýörelge',
 'portal' => 'Çaýhana',
 'portal-url' => 'Project:Çaýhana',
-'privacy' => 'Gizlinlik ýörelgesi',
-'privacypage' => 'Project:Gizlinlik ýörelgesi',
+'privacy' => 'Gizlinlik syýasaty',
+'privacypage' => 'Project:Gizlinlik syýasaty',
 
 'badaccess' => 'Rugsat säwligi',
 'badaccess-group0' => 'Talap edýän bu işiňizi ýerine ýetirmäge size ygtyýar berilmeýär.',
@@ -288,15 +287,15 @@ See [[Special:Version|version page]].
 Bu sahypany ulanmak üçin MediaWikiniň $1 wersiýasy talap edilýär. [[Special:Version|Wersiýa sahypasyna]] serediň.',
 
 'ok' => 'OK',
-'retrievedfrom' => '"$1" adresinden alyndy.',
+'retrievedfrom' => 'Çeşmesi: "$1"',
 'youhavenewmessages' => 'Size $1 bar. ($2)',
 'youhavenewmessagesmulti' => 'Size $1-de täze habar bar.',
-'editsection' => 'redaktirle',
-'editold' => 'redaktirle',
+'editsection' => 'üýtget',
+'editold' => 'üýtget',
 'viewsourceold' => 'çeşmäni gör',
-'editlink' => 'redaktirle',
-'viewsourcelink' => 'çeşmesini gör',
-'editsectionhint' => '$1 bölümini redaktirle',
+'editlink' => 'üýtget',
+'viewsourcelink' => 'çeşmäni gör',
+'editsectionhint' => 'Bölümi üýtget: $1',
 'toc' => 'Mazmuny',
 'showtoc' => 'görkez',
 'hidetoc' => 'gizle',
@@ -309,10 +308,10 @@ Bu sahypany ulanmak üçin MediaWikiniň $1 wersiýasy talap edilýär. [[Specia
 'feed-invalid' => 'Nädogry ýazylyşyk kanaly görnüşi.',
 'feed-unavailable' => 'Sindikasiýa lentalary elýeterli däl',
 'site-rss-feed' => '$1 RSS lentasy',
-'site-atom-feed' => '$1 Atom lentasy',
+'site-atom-feed' => '$1 — Atom-lenta',
 'page-rss-feed' => '"$1" RSS lentasy',
 'page-atom-feed' => '"$1" Atom lentasy',
-'red-link-title' => '$1 (bu sahypa heniz ýazylmandyr)',
+'red-link-title' => '$1 (heniz ýazylmandyr)',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
 'nstab-main' => 'Sahypa',
@@ -322,7 +321,7 @@ Bu sahypany ulanmak üçin MediaWikiniň $1 wersiýasy talap edilýär. [[Specia
 'nstab-project' => 'Taslama sahypasy',
 'nstab-image' => 'Faýl',
 'nstab-mediawiki' => 'Habarlaşyk',
-'nstab-template' => 'Å\9fablon',
+'nstab-template' => 'Å\9eablon',
 'nstab-help' => 'Ýardam sahypasy',
 'nstab-category' => 'Kategoriýa',
 
@@ -347,9 +346,9 @@ Bar bolan ähli ýörite sahypalary [[Special:SpecialPages|ýörite sahypalar]]
 Maglumat bazasyny gulplan administratoryň düşündirişi: $1',
 'missing-article' => 'Maglumat bazasy tapylmagy talap edilýän "$1" $2 atly sahypa degişli teksti tapyp bilmedi.
 
-Bu Ã½agdaý sahypanyÅ\88 Ã¶Ã§Ã¼rilen bir sahypanyň ozalky wersiýasy bolmaklygyndan ýüze çykýan bolup biler.
+Bu Ã½agdaý sahypanyÅ\88 Ã½oklanylan bir sahypanyň ozalky wersiýasy bolmaklygyndan ýüze çykýan bolup biler.
 
-Eger sebäp ol däl bolsa, programma serişdesinde bir säwlige duşan bolmagyňyz ahmal.
+Eger sebäp ol däl bolsa, programma serişdesinde bir ýalňyşlyga duşan bolmagyňyz ahmal.
 Muny bir [[Special:ListUsers/sysop|administratora]] URL-ni belläp alyp ýetirmekligiňizi haýyş edýäris.',
 'missingarticle-rev' => '(wersiýa#: $1)',
 'missingarticle-diff' => '(Tapawut: $1, $2)',
@@ -408,7 +407,7 @@ Web brauzeriňiziň keşini arassalaýançaňyz käbir sahypalar sessiýaňyzyň
 'yourdomainname' => 'Siziň domeniňiz:',
 'externaldberror' => 'Ýa tassyklama maglumat bazasynyň säwligi bar ýa-da öz ulanyjy hasabyňyzy täzelemegiňize rugsat berilmeýär.',
 'login' => 'Hasaba gir',
-'nav-login-createaccount' => 'Hasaba gir / täze hasap aç',
+'nav-login-createaccount' => 'Hasaba gir / Hasap döret',
 'loginprompt' => '{{SITENAME}} saýtynda sessiýa açmak üçin kukileri işletmegiňiz zerurdyr.',
 'userlogin' => 'Hasaba gir / täze hasap aç',
 'userloginnocreate' => 'Sessiýa aç',
@@ -448,7 +447,7 @@ Ulanyjy atlary baş hem-de setir harplara duýgurdyr.
 'wrongpasswordempty' => 'Paroly boş girizdiňiz. Gaýtadan synanyşmagyňyzy haýyş edýäris.',
 'passwordtooshort' => 'Parollar iň bolmanda {{PLURAL:$1|1 simwoldan|$1 simwoldan}} ybarat bolmalydyr.',
 'password-name-match' => 'Parolyňyz ulanyjy adyňyzdan tapawutly bolmalydyr.',
-'mailmypassword' => 'Maňa e-poçta bilen täze parol iber',
+'mailmypassword' => 'Paroly nol et',
 'passwordremindertitle' => '{{SITENAME}} üçin täze wagtlaýyn parol',
 'passwordremindertext' => 'Kimdir biri (ähtimal özüňiz $1 IP adresinden) {{SITENAME}} ($4) üçin täze parol iberilmegini talap etdi. "$2" ulanyjysy üçin wagtlaýynça "$3" paroly döredildi. Eger bu siziň öz talabyňyz bolsa, onda sessiýa açyp, bir täze parol saýlap almagyňyz zerurdyr. Wagtlaýyn parolyňyzyň möhleti {{PLURAL:$5|1 günden|$5 günden}} gutarjakdyr.
 
@@ -599,15 +598,15 @@ Sahypany görýän mahalayňyz onuň ady üýtgedilen ýa-da öçürilen bolmagy
 
 Bu paroly sessiýa açanyňyzdan soňra ''[[Special:ChangePassword|paroly üýtget]]'' sahypasynda üýtgedip bilersiňiz.",
 'newarticle' => '(Täze)',
-'newarticletext' => "Häzirlikçe ýazylmadyk bir sahypa goýlan çykgyda tykladyňyz. Bu sahypany döretmek üçin aşakdaky tekst gutusyndan peýdalanyň. Maglumat üçin [[{{MediaWiki:Helppage}}|ýardam sahypasyna]] serediň. Bu ýere ýalňyşlyk bilen gelen bolsaňyz, programmanyň '''Yza''' düwmesine tyklaň.",
+'newarticletext' => "Häzirlikçe ýazylmadyk bir sahypa goýlan çykgyda tykladyňyz. Bu sahypany döretmek üçin aşakdaky tekst gutusyndan peýdalanyň. Maglumat üçin [$1 ýardam sahypasyna] serediň. Bu ýere ýalňyşlyk bilen gelen bolsaňyz, programmanyň '''Yza''' düwmesine tyklaň.",
 'anontalkpagetext' => "----''Bu sahypa heniz ulanyjy hasaby edinmedik ýa-da hasabyny ulanmaýan bir anonim ulanyjynyň pikir alyşma sahypasydyr.
 Şonuň üçinem biz ony görkezmek üçin sanlaýyn IP adresini ulanmaly bolýarys.
 Şunuň ýaly IP adresinden ençeme ulanyjy peýdalanýan bolmagy ahmal.
 Eger-de sizem anonim ulanyjy bolsaňyz we size siziň bilen dahyly ýok habarlaşyklar gelýän bolsa, onda mundan beýläk başga anonim ulanyjylar bilen garjaşmazlygyňyz üçin [[Special:UserLogin/signup|özüňize hasap ediniň]] ýa-da [[Special:UserLogin|sessiýa açyň]].''",
-'noarticletext' => 'Bu sahypa häzirki wagtda boş dur.
+'noarticletext' => 'Bu sahypa şu wagt boş dur.
 Bu ady başga sahypalarda [[Special:Search/{{PAGENAME}}|gözläp bilersiňiz]],
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} degişli gündeliklerde gözleg geçirip bilersiňiz],
-ýa-da bu sahypany [{{fullurl:{{FULLPAGENAME}}|action=edit}} redaktirläp bilersiňiz]</span>.',
+ýa-da bu sahypany [{{fullurl:{{FULLPAGENAME}}|action=edit}} üýtgedip bilersiňiz]</span>.',
 'noarticletext-nopermission' => 'Häzirki wagtda bu sahypada tekst ýok.
 Bu sahypa adyny [[Special:Search/{{PAGENAME}}|başga sahypalarda gözläp]]
 ýa-da <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} degişli gündeliklerde gözleg geçirip bilersiňiz]</span>, ýöne bu sahypany döretmäge rugsadyňyz ýok.',
@@ -725,7 +724,7 @@ Ol eýýäm bar.',
 Ol $2 {{PLURAL:$2|çagyryşdan|çagyryşdan}} az bolmalydyr, häzir bu ýerde {{PLURAL:$1|1 sany çagyryş|$1 sany çagyryş}} bar.",
 'expensive-parserfunction-category' => 'Resurs talap ediji funksiýalara çakdanaşa köp çagyryşy bar bolan sahypalar',
 'post-expand-template-inclusion-warning' => "'''Duýduryş''': Girizilen şablonlaryň göwrümi çakdanaşa uly.
-Käbir şablonlar sahypa giriziljek däldir.",
+Käbir şablonlar sahypa girizilmez.",
 'post-expand-template-inclusion-category' => 'Girizilýän şablonlarynyň göwrümi çakdanaşa uly bolan sahypalar',
 'post-expand-template-argument-warning' => "'''Duýduryş:''' Bu sahypa çakdanaşa uly giňeme ölçegi bar bolan iň bolmanda bir sany şablon argumentini öz içine alýar.
 Ol argumentler hasap edilmedi.",
@@ -751,8 +750,8 @@ $3 tarapyndan görkezilen sebäp: ''$2''",
 'viewpagelogs' => 'Bu sahypanyň gündeliklerini görkez',
 'nohistory' => 'Bu sahypanyň özgerdişler geçmişi ýok.',
 'currentrev' => 'Häzirki wersiýa',
-'currentrev-asof' => '$1 senesinden başlap sahypanyň şu wagtky wersiýasy',
-'revisionasof' => 'Sahypanyň $1 senesindäki wersiýasy',
+'currentrev-asof' => '$1 senesinde sahypanyň iň soňky wersiýasy',
+'revisionasof' => '$1 senesindäki wersiýa',
 'revision-info' => '$2 tarapyndan döredilen $1 seneli wersiýa',
 'previousrevision' => '← Ozalkysy',
 'nextrevision' => 'Indikisi →',
@@ -820,8 +819,6 @@ Administrator hökmünde bu aratapawudy görüp bilersiňiz; [{{fullurl:{{#Speci
 'revdelete-show-file-submit' => 'Hawa',
 'revdelete-selected' => "'''[[:$1]] sahypasynyň {{PLURAL:$2|saýlanylan wersiýasy|saýlanylan wersiýalary}}:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Saýlanylan gündelik wakasy|Saýlanylan gündelik wakalary}}:'''",
-'revdelete-text' => "'''Öçürilen wersiýalar we wakalar sahypa geçmişlerinde we gündeliklerde ýene-de görkeziljekdir, emma olaryň mazmunynyň käbir bölekleri jemgyýetçilige açyk boljak däldir.'''
-{{SITENAME}} saýtyndaky başga administratorlar gizlin mazmuny ýene-de görüp hem-de goşmaça çäklendirme goýulmadyk ýagdaýynda şol bir interfeýsiň üsti bilen ony yzyna dikeldip bilýärler.",
 'revdelete-confirm' => 'Şu işi anyk isleýändigiňizi, ýagny onuň netijelerine düşünýändiňizi we [[{{MediaWiki:Policy-url}}|kadalar boýunça]] amala aşyrýandygyňyzy tassyklamagyňyzy haýyş edýäris.',
 'revdelete-suppress-text' => "Gizlemeklik '''diňe''' aşakdaky ýagdaýlarda ulanylmalydyr:
 * Potensial taýdan töhmetçilikli maglumat
@@ -847,7 +844,7 @@ $1",
 'logdelete-success' => "'''Gündelik görünme derejesi şowlulyk bilen sazlandy.'''",
 'logdelete-failure' => "'''Gündelik görünme derejesini sazlap bolmaýar:'''
 $1",
-'revdel-restore' => 'Görnüşi üýtget',
+'revdel-restore' => 'Görnüş ukybyny üýtget',
 'pagehist' => 'Sahypanyň geçmişi',
 'deletedhist' => 'Öçürilen geçmiş',
 'revdelete-hide-current' => '$2, $1 seneli ýazgyda gizleme säwligi: bu häzirki wersiýa.
@@ -902,7 +899,7 @@ Nawigasiýa çykgytlaryny ulanmaklygyň bu sütüni başky ýagdaýyna getirjekd
 # Merge log
 'mergelog' => 'Birleşdirme gündeligi',
 'pagemerge-logentry' => '[[$1]] bilen [[$2]] birleşdirildi (şuňa çenliki wersiýalar: $3)',
-'revertmerge' => 'Böl',
+'revertmerge' => 'Dargat',
 'mergelogpagetext' => 'Aşakdaky sanaw sahypalaryň geçmişleriniň iň soňky birleşdirmelerini görkezýär.',
 
 # Diffs
@@ -916,7 +913,7 @@ Nawigasiýa çykgytlaryny ulanmaklygyň bu sütüni başky ýagdaýyna getirjekd
 
 # Search results
 'searchresults' => 'Gözleg netijeleri',
-'searchresults-title' => '"$1" üçin gözleg netijeleri',
+'searchresults-title' => '"$1" hakda gözleg netijeleri',
 'toomanymatches' => 'Çakdanaşa köp gabat gelme tapyldy, başgaçarak talap ýazyp görüň',
 'titlematches' => 'Sahypa ady gabat gelýär',
 'textmatches' => 'Sahypa teksti gabat gelýär',
@@ -926,19 +923,20 @@ Nawigasiýa çykgytlaryny ulanmaklygyň bu sütüni başky ýagdaýyna getirjekd
 'prevn-title' => 'Öňki $1 {{PLURAL:$1|netije|netije}}',
 'nextn-title' => 'Indiki $1 {{PLURAL:$1|netije|netije}}',
 'shown-title' => 'Sahypa başyna $1 {{PLURAL:$1|netije|netije}} görkez',
-'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3).',
+'viewprevnext' => '($1 {{int:pipe-separator}} $2) ($3) gör',
 'searchmenu-exists' => "'''Bu wikide \"[[:\$1]]\" atly sahypa bar'''",
-'searchmenu-new' => "'''Bu wikide \"[[:\$1]]\" sahypasyny döret!'''",
-'searchprofile-articles' => 'Mazmunly sahypalar',
-'searchprofile-project' => 'Ýardam we Taslama sahypalary',
+'searchmenu-new' => '<strong>Bu wikide "[[:$1]]" sahypasyny dörediň!</strong> 
+{{PLURAL:$2|0=|Gözlegde tapylan sahypa-da serediň.|Tapylan gözleg netijelerine-de serediň.}}',
+'searchprofile-articles' => 'Esasy sahypalar',
+'searchprofile-project' => 'Kömek we taslama sahypalary',
 'searchprofile-images' => 'Multimedia',
 'searchprofile-everything' => 'Ähli zatlar',
-'searchprofile-advanced' => 'Giňeldilen',
-'searchprofile-articles-tooltip' => '$1 boýunça gözle',
-'searchprofile-project-tooltip' => '$1 boýunça gözle',
+'searchprofile-advanced' => 'Giňişleýin',
+'searchprofile-articles-tooltip' => '$1 içinden gözle',
+'searchprofile-project-tooltip' => '$1 içinden gözle',
 'searchprofile-images-tooltip' => 'Faýllary gözle',
-'searchprofile-everything-tooltip' => 'Ähli sahypalardan gözle (şol sanda çekişme sahypalaryndan)',
-'searchprofile-advanced-tooltip' => 'Hususy at giňişliklerinde gözle',
+'searchprofile-everything-tooltip' => 'Ähli sahypalardan gözle (şol sanda pikir alyşma sahypalaryndan)',
+'searchprofile-advanced-tooltip' => 'Laýyk at giňişliklerinde gözle',
 'search-result-size' => '$1 ({{PLURAL:$2|1 söz|$2 söz}})',
 'search-result-category-size' => '{{PLURAL:$1|1 agza|$1 agza}} ({{PLURAL:$2|1 kiçi kategoriýa|$2 kiçi kategoriýa}}, {{PLURAL:$3|1 faýl|$3 faýl}})',
 'search-result-score' => 'Kybapdaşlyk: $1%',
@@ -954,7 +952,7 @@ Nawigasiýa çykgytlaryny ulanmaklygyň bu sütüni başky ýagdaýyna getirjekd
 'searchall' => 'ählisi',
 'showingresults' => "Aşakda №'''$2''' netijeden başlap, {{PLURAL:$1|'''1''' netije|'''$1''' netije}} görkezilýär.",
 'showingresultsnum' => "Aşakda №'''$2''' netijeden başlap, {{PLURAL:$3|'''1''' netije|'''$3''' netije}} görkezilýär.",
-'showingresultsheader' => "'''$4''' üçin {{PLURAL:$5|'''$3''' netijeden '''$1''' sanysy|'''$3''' netijeden '''$1 - $2''' aralygy}}",
+'showingresultsheader' => "'''$4''' hakda {{PLURAL:$5|'''$3''' netijeden '''$1''' sanysy|'''$3''' netijeden '''$1 - $2''' aralygy}}",
 'search-nonefound' => 'Talaba gabat gelýän hiç hili netije ýok.',
 'powersearch-legend' => 'Giňişleýin gözleg',
 'powersearch-ns' => 'At giňişliklerinde gözleg:',
@@ -1218,7 +1216,7 @@ $1 {{PLURAL:$1|simwoldan|simwoldan}} köp bolmaly däl.',
 
 # Recent changes
 'nchanges' => '$1 {{PLURAL:$1|üýtgeşme|üýtgeşme}}',
-'recentchanges' => 'Soňky üýtgeşmeler',
+'recentchanges' => 'Soňky üýtgetmeler',
 'recentchanges-legend' => 'Soňky üýtgeşmeleriň opsiýalary',
 'recentchanges-summary' => 'Wikidäki iň soňky üýtgeşmeleri şu sahypadan yzarlaň.',
 'recentchanges-feed-description' => 'Bu lentadaky wikide edilen iň soňky üýtgeşmeleri yzarlaň.',
@@ -1227,19 +1225,19 @@ $1 {{PLURAL:$1|simwoldan|simwoldan}} köp bolmaly däl.',
 'recentchanges-label-bot' => 'Bu özgerdiş bir bot tarapyndan amala aşyryldy',
 'recentchanges-label-unpatrolled' => 'Bu özgerdişe heniz patrullyk edilmändir',
 'recentchanges-legend-newpage' => '$1 - täze sahypa',
-'rcnotefrom' => '<b>$2</b> senesinden bäri edilen özgerdişler aşakda görkezilýär (<b>$1</b> sanysyna çenli).',
+'rcnotefrom' => '<strong>$2</strong> senesinden soňky üýtgetmeler aşakda görkezilýär (<strong>$1</strong> sanysyna çenli).',
 'rclistfrom' => '$1 senesinden bäri edilen özgerdişleri görkez',
 'rcshowhideminor' => 'ujypsyzja özgerdişleri $1',
 'rcshowhidebots' => 'botlary $1',
-'rcshowhideliu' => 'sessiýasy açyk ulanyjylary $1',
+'rcshowhideliu' => 'Hasaba alnan ulanyjylary $1',
 'rcshowhideanons' => 'anonim ulanyjylary $1',
 'rcshowhidepatr' => 'patrullyk edilen özgerdişleri $1',
 'rcshowhidemine' => 'özgerdişlerimi $1',
 'rclinks' => 'Soňky $2 günde edilen iň soňky $1 üýtgeşmäni görkez;<br /> $3',
 'diff' => 'tapawut',
-'hist' => 'geçmiş',
-'hide' => 'gizle',
-'show' => 'görkez',
+'hist' => 'taryh',
+'hide' => 'Gizle',
+'show' => 'Görkez',
 'minoreditletter' => 'uj',
 'newpageletter' => 'T',
 'boteditletter' => 'b',
@@ -1253,10 +1251,10 @@ $1 {{PLURAL:$1|simwoldan|simwoldan}} köp bolmaly däl.',
 # Recent changes linked
 'recentchangeslinked' => 'Degişli üýtgeşmeler',
 'recentchangeslinked-feed' => 'Degişli üýtgeşmeler',
-'recentchangeslinked-toolbox' => 'Degişli üýtgeşmeler',
+'recentchangeslinked-toolbox' => 'Dahylly üýtgetmeler',
 'recentchangeslinked-title' => '"$1" bilen baglanyşykly üýtgeşmeler',
-'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-summary' => 'Görkezilen sahypa (ýa-da görkezilen kategoriýanyň agzalaryna) çykgyt berýän sahypalarda edilen soňky üýtgetmeleriň sanawy.
+[[Special:Watchlist|Gözegçilik sanawyňyzdaky]] sahypalar <strong>goýy</strong> bilen görkezilýär.',
 'recentchangeslinked-page' => 'Sahypanyň ady:',
 'recentchangeslinked-to' => 'Tersine, berlen sahypa çykgyt berýän sahypalary görkez',
 
@@ -1453,7 +1451,7 @@ Bir sütüniň adyna tyklap sortirowkanyň tertibini üýtgedip bilersiňiz.',
 
 # File description page
 'file-anchor-link' => 'Faýl',
-'filehist' => 'Faýlyň geçmişi',
+'filehist' => 'Faýlyň taryhy',
 'filehist-help' => 'Faýlyň geçmişini görmek üçin Sene/Wagt bölümündäki senelere tyklaň.',
 'filehist-deleteall' => 'ählisini öçür',
 'filehist-deleteone' => 'öçür',
@@ -1466,7 +1464,7 @@ Bir sütüniň adyna tyklap sortirowkanyň tertibini üýtgedip bilersiňiz.',
 'filehist-user' => 'Ulanyjy',
 'filehist-dimensions' => 'Ölçegler',
 'filehist-filesize' => 'Faýl ölçegi',
-'filehist-comment' => 'Teswirleme',
+'filehist-comment' => 'Teswir',
 'filehist-missing' => 'Faýl ýok',
 'imagelinks' => 'Faýlyň ulanylyşy',
 'linkstoimage' => 'Bu faýla çykgydy bar bolan {{PLURAL:$1|sahypa|$1 sahypa}}:',
@@ -1479,8 +1477,8 @@ Aşakdaky sanaw diňe şu faýla çykgyt berýän {{PLURAL:$1|ilkinji faýly |il
 'sharedupload' => 'Bu faýl $1 ammaryndan, özem beýleki taslamalarda ulanylýan bolmagy ahmal.',
 'sharedupload-desc-there' => 'Bu faýl $1 ammaryndan, özem beýleki taslamalarda ulanylýan bolmagy ahmal.
 Goşmaça maglumat üçin [$2 faýl düşündiriş sahypasyna] serediň.',
-'sharedupload-desc-here' => 'Bu faýl $1 ammaryndan, özem beýleki taslamalarda ulanylýan bolmagy ahmal.
-[$2 Onuň faýl düşündiriş sahypasyndaky] düşündirişi aşakda görkezilýär.',
+'sharedupload-desc-here' => 'Bu faýl $1 toplaýjysyndan, özem başga taslamalarda ulanylýan bolmagy mümkin.
+Onuň [$2 faýl düşündiriş sahypasyndaky] maglumatlar aşakda görkezilýär.',
 'filepage-nofile' => 'Şeýle atly faýl ýok.',
 'filepage-nofile-link' => 'Şeýle atly faýl ýok, ama siz [$1 ony ýükläp bilersiňiz].',
 'uploadnewversion-linktext' => 'Bu faýlyň täze wersiýasyny ýükläň',
@@ -1535,7 +1533,7 @@ Giriş formaty: mazmuntip/kiçitip, meselem <code>surat/jpeg</code>.',
 'unusedtemplateswlh' => 'başga çykgytlar',
 
 # Random page
-'randompage' => 'Mesaýy makala',
+'randompage' => 'Çemgeldik sahypa',
 'randompage-nopages' => 'Aşakdaky {{PLURAL:$2|at giňişliginde|at giňişliklerinde}} hiç hili sahypa ýok: $1.',
 
 # Random redirect
@@ -1975,8 +1973,8 @@ Sahypanyň geçmişini saýlap dikeltmek üçin dikeldilmeli wersiýalaryň gutu
 Ulanan çykgydyňyz nädogry bolmagy ýa-da onuň arhiwden dikeldilen ýa-da aýyrylan bolmagy mümkin.',
 'undelete-nodiff' => 'Hiç hili öňki wersiýa tapylmady.',
 'undeletebtn' => 'Dikelt',
-'undeletelink' => 'görkez/dikelt',
-'undeleteviewlink' => 'görkez',
+'undeletelink' => 'gör/dikelt',
+'undeleteviewlink' => 'gör',
 'undeleteinvert' => 'Saýlanmadyklar',
 'undeletecomment' => 'Sebäp:',
 'undeletedrevisions' => '{{PLURAL:$1|1 wersiýa|$1 wersiýa}} dikeldildi',
@@ -2038,7 +2036,7 @@ Salgylanmak üçin iň soňky blokirleme gündeligi ýazgysy aşakda berilýär:
 'sp-contributions-submit' => 'Gözle',
 
 # What links here
-'whatlinkshere' => 'Bu sahypa çykgytlar',
+'whatlinkshere' => 'Şu ýere çykgytlar',
 'whatlinkshere-title' => '"$1" makalasyna çykgyt berýän sahypalar',
 'whatlinkshere-page' => 'Sahypa:',
 'linkshere' => "'''[[:$1]]''' sahypasyna çykgyt berýän sahypalar:",
@@ -2111,8 +2109,8 @@ Aşakda blokirlemäniň takyk sebäbini ýazyň (meselem: wandalizm eden sahypal
 'ipblocklist-empty' => 'Blokirleme sanawy boş.',
 'ipblocklist-no-results' => 'Talap edilen IP adresi ýa-da ulanyjy ady blokirlengi däl.',
 'blocklink' => 'blokirle',
-'unblocklink' => 'blokirowkany aýyr',
-'change-blocklink' => 'blokirowkany üýtget',
+'unblocklink' => 'blokirlemäni aýyr',
+'change-blocklink' => 'blokirlemäni üýtget',
 'contribslink' => 'goşantlar',
 'autoblocker' => 'Awtomatik usulda blokirlendiňiz, çünki ýaňy-ýakynda IP adresiňiz "[[User:$1|$1]]" ulanyjysy tarapyndan ulanyldy. $1 atly ulanyjynyň blokirlenmegi üçin görkezilen sebäp: "\'\'\'$2\'\'\'"',
 'blocklogpage' => 'Blokirleme gündeligi',
@@ -2253,7 +2251,7 @@ Gündeligiň iň soňky ýazgysy salgylanmak üçin aşakda berilýär:",
 Başga bir at saýlaň.',
 
 # Export
-'export' => 'Sahypa eksportirle',
+'export' => 'Sahypalary çykar',
 'exporttext' => 'Belli bir sahypanyň ýa-da sahypalar toplumynyň tekstini we redaktirleme geçmişini XML arkaly eksportirläp bilersiňiz.
 Soňra ony [[Special:Import|importirleme sahypasynyň]] üsti bilen MediaWiki ulanýan başga bir wikä importirläp bolýar.
 
@@ -2353,54 +2351,53 @@ Kompýuteriňize ýazdyryň we şu ýere ýükläň.',
 'tooltip-pt-mytalk' => 'Pikir alyşma sahypaňyz',
 'tooltip-pt-anontalk' => 'Bu IP adresinden edilen özgerdişler barada pikir alyş',
 'tooltip-pt-preferences' => 'Ileri tutmalaryňyz',
-'tooltip-pt-watchlist' => 'Gözegçilikde saklaýan sahypalarym',
+'tooltip-pt-watchlist' => 'Üýtgetmelerini gözegçilikde saklaýan sahypalaryňyz',
 'tooltip-pt-mycontris' => 'Eden goşantlaryňyzyň sanawy',
-'tooltip-pt-login' => 'Hasaba girmegiňiz maslahat berilýär, ýöne hökmany däl.',
+'tooltip-pt-login' => 'Hasaba girmegiňiz maslahat berilýär, ýöne hökman däl.',
 'tooltip-pt-logout' => 'Hasapdan çyk',
-'tooltip-ca-talk' => 'Sahypanyň mazmuny barada garaýşyňy beýan et',
-'tooltip-ca-edit' => 'Bu sahypany redaktirläp bilersiňiz. Ýazdyrmankaňyz synlap görmekligi ýatdan çykarmaň.',
+'tooltip-ca-talk' => 'Esasy sahypa barada çekişme',
+'tooltip-ca-edit' => 'Bu sahypany üýtgedip bilersiňiz. Ýazdyrmankaňyz "synlaw" düwmesine basyp, synlap görüň.',
 'tooltip-ca-addsection' => 'Täze bölüm başlat',
-'tooltip-ca-viewsource' => 'Bu sahypa gorag astynda.
-Onuň çeşmesini görüp bilersiňiz',
-'tooltip-ca-history' => 'Bu sahypanyň ozalky wersiýalary',
+'tooltip-ca-viewsource' => 'Bu sahypa goragly, ýöne onuň çeşmesini görüp bilersiňiz',
+'tooltip-ca-history' => 'Sahypanyň öňki wersiýalary',
 'tooltip-ca-protect' => 'Sahypany goraga al',
 'tooltip-ca-unprotect' => 'Bu sahypanyň goragyny üýtget',
 'tooltip-ca-delete' => 'Sahypany öçür',
 'tooltip-ca-undelete' => 'Bu sahypadaky özgerdişleri öçürilmänkäki ýagdaýyna yzyna dikelt',
 'tooltip-ca-move' => 'Sahypanyň adyny üýtget',
-'tooltip-ca-watch' => 'Bu sahypany gözegçilige al',
+'tooltip-ca-watch' => 'Sahypany gözegçilik sanawyňa goş',
 'tooltip-ca-unwatch' => 'Bu sahypany gözegçilik sanawyňdan aýyr',
-'tooltip-search' => '{{SITENAME}} boýunça gözle',
+'tooltip-search' => '{{SITENAME}} saýtynda gözle',
 'tooltip-search-go' => 'Eger bar bolsa, anyk şu atdaky sahypa git',
-'tooltip-search-fulltext' => 'Şu tekst bar bolan sahypalary gözle',
+'tooltip-search-fulltext' => 'Sahypalardan şu teksti gözle',
 'tooltip-p-logo' => 'Baş sahypa baryp gör',
 'tooltip-n-mainpage' => 'Baş sahypa baryp gör',
 'tooltip-n-mainpage-description' => 'Baş sahypa baryp gör',
 'tooltip-n-portal' => 'Taslama hakynda, nämeler edip bolar, nämeler nirede',
 'tooltip-n-currentevents' => 'Bolup geçýän wakalar barada iň täze maglumatlar',
-'tooltip-n-recentchanges' => 'Wikidäki soňky üýtgeşmeleriň sanawy',
-'tooltip-n-randompage' => 'Çem gelen sahypa git',
-'tooltip-n-help' => 'Kömek almak üçin',
-'tooltip-t-whatlinkshere' => 'Bu sahypa çykgyt berýän ähli wiki sahypalarynyň sanawy',
-'tooltip-t-recentchangeslinked' => 'Bu sahypa çykgyt berýän sahypalardaky soňky üýtgeşmeler',
+'tooltip-n-recentchanges' => 'Wikidäki soňky üýtgetmeleriň sanawy',
+'tooltip-n-randompage' => 'Çem gelen sahypany aç',
+'tooltip-n-help' => 'Kömek soralýan ýer',
+'tooltip-t-whatlinkshere' => 'Şu ýere çykgyt berýän ähli wiki-sahypalaryň sanawy',
+'tooltip-t-recentchangeslinked' => 'Bu sahypadan çykgyt alýan sahypalardaky soňky üýtgetmeler',
 'tooltip-feed-rss' => 'Bu sahypa üçin RSS lentasy',
-'tooltip-feed-atom' => 'Bu sahypa üçin atom lentasy',
+'tooltip-feed-atom' => 'Bu sahypanyň atom lentasy',
 'tooltip-t-contributions' => 'Şu ulanyjynyň goşantlarynyň sanawyny gör',
 'tooltip-t-emailuser' => 'Bu ulanyja e-poçta iber',
-'tooltip-t-upload' => 'Suratlary ýa-da multimediýa faýllaryny ýükläň',
-'tooltip-t-specialpages' => 'Ähli ýörite sahypalaryň sanawyny görkez',
-'tooltip-t-print' => 'Bu sahypanyň print etmäge taýýar wersiýasy',
-'tooltip-t-permalink' => 'Sahypanyň bu wersiýasyna hemişelik çykgyt',
-'tooltip-ca-nstab-main' => 'Sahypany görkez',
+'tooltip-t-upload' => 'Faýllary ýükle',
+'tooltip-t-specialpages' => 'Ähli ýörite sahypalaryň sanawy',
+'tooltip-t-print' => 'Bu sahypanyň çap edilýän wersiýasy',
+'tooltip-t-permalink' => 'Sahypanyň şu wersiýasyna hemişelik çykgyt',
+'tooltip-ca-nstab-main' => 'Esasy sahypany gör',
 'tooltip-ca-nstab-user' => 'Ulanyjynyň sahypasyny görkez',
 'tooltip-ca-nstab-media' => 'Media sahypasyny görkez',
 'tooltip-ca-nstab-special' => 'Bu ýörite sahypa, ony redaktirläp bolmaýar',
 'tooltip-ca-nstab-project' => 'Taslama sahypasyny görkez',
-'tooltip-ca-nstab-image' => 'Suratyň sahypasyny görkez',
+'tooltip-ca-nstab-image' => 'Faýlyň sahypasyny gör',
 'tooltip-ca-nstab-mediawiki' => 'Ulgam habarlaşygyny görkez',
 'tooltip-ca-nstab-template' => 'Şablony görkez',
 'tooltip-ca-nstab-help' => 'Ýardam sahypasyny görkez',
-'tooltip-ca-nstab-category' => 'Kategoriýanyň sahypasyny görkez',
+'tooltip-ca-nstab-category' => 'Kategoriýanyň sahypasyny gör',
 'tooltip-minoredit' => 'Ujypsyzja özgerdiş hökmünde belle',
 'tooltip-save' => 'Özgerdişleriňi ýazdyr',
 'tooltip-preview' => 'Deslapky syn; ýazdyrmankaňyz şuny ulanyp özgerdişleriňizi gözden geçiriň!',
@@ -2410,8 +2407,7 @@ Onuň çeşmesini görüp bilersiňiz',
 'tooltip-recreate' => 'Öçürilendigine garamazdan sahypany gaýtadan döret',
 'tooltip-upload' => 'Ýüklemäni başlat',
 'tooltip-rollback' => '"Öňki katdyna getir" ýeke gezek tyklananda bu sahypa iň soňky goşant goşanyň özgerdişlerini yzyna getirýär',
-'tooltip-undo' => '"Yzyna al" bu özgerdişi yzyna getirýär we özgerdiş formuny deslapky syn modunda açýar.
-Mazmun üçin bir sebäp goşmaga rugsat berýär',
+'tooltip-undo' => '"Yzyna al" bu özgerdişi yzyna getirýär we özgerdiş formuny synlaw modunda açýar. Yzyna almagyň sebäbini ýazmaga mümkinçilik berýär.',
 'tooltip-preferences-save' => 'Ileri tutmalary ýazdyr',
 'tooltip-summary' => 'Gysgaça düşündiriş giriziň',
 
@@ -2481,7 +2477,7 @@ Ony işletseňiz iş ulgamyňyza howp astyna salmagyňyz mümkin.",
 'file-info-size' => '$1 × $2 piksel, faýlyň ölçegi: $3, MIME tipli: $4',
 'file-nohires' => 'Wersiýanyň mundan uly ölçegi ýok.',
 'svg-long-desc' => 'SVG faýly, nominal $1 × $2 piksel, faýl ölçegi: $3',
-'show-big-image' => 'Suratyň doly ölçegi',
+'show-big-image' => 'Original faýl',
 'file-info-gif-looped' => 'halkaly',
 'file-info-gif-frames' => '$1 {{PLURAL:$1|kadr|kadr}}',
 'file-info-png-looped' => 'halkaly',
@@ -2504,7 +2500,7 @@ Ony işletseňiz iş ulgamyňyza howp astyna salmagyňyz mümkin.",
 'bad_image_list' => 'Format aşakdaky ýaly bolmalydyr:
 
 Diňe sanawyň elementleri (* bilen başlaýanlar) nazara alynýar. Setirdäki ilkinji çykgyt ýaramaz suratyň çykgydy bolmalydyr.
-Ondan soňraky çykgyt(lar) kadadan çykma hökmünde kabul edilýär, meselem: surat sahypada setiriçinde görünip biler.',
+Ondan soňraky çykgyt(lar) kadadan çykma hökmünde kabul edilýär, meselem: surat sahypada setiriçinde görp biler.',
 
 # Metadata
 'metadata' => 'Meta-maglumat',
index 7275cec..c63bd5b 100644 (file)
@@ -149,8 +149,8 @@ $specialPageAliases = array(
 
 $messages = array(
 # User preference toggles
-'tog-underline' => 'Pagsasalungguhit ng kawing:',
-'tog-hideminor' => 'Itago ang mga maliliit na pagbabago sa mga huling binago',
+'tog-underline' => 'Pagsasalungguhit ng link:',
+'tog-hideminor' => 'Itago ang mga maliliit na pagbabago mula sa mga huling binago',
 'tog-hidepatrolled' => 'Ikubli ang napatrolyang mga pagbabagong nasa kamakailang mga pagbabago',
 'tog-newpageshidepatrolled' => 'Itago ang napatrolyang mga pahina mula talaan ng bagong pahina',
 'tog-extendwatchlist' => 'Palawigin ang talaan ng mga binabantayan upang maipakita ang lahat ng mga pagbabago, hindi lamang ang pinakakamakailan lamang',
@@ -185,9 +185,9 @@ $messages = array(
 'tog-ccmeonemails' => 'Padalahan ako ng mga kopya ng mga ipinadala kong e-liham sa ibang mga tagagamit',
 'tog-diffonly' => 'Huwag ipakita ang nilalaman ng pahinang nasa ilalim ng mga pagkakaiba',
 'tog-showhiddencats' => 'Ipakita ang mga nakatagong kategorya',
-'tog-noconvertlink' => 'Huwag paganahin ang pagpapalit ng pamagat na pangkawing',
 'tog-norollbackdiff' => 'Alisin ang mga pagkakaiba pagkatapos isagawa ang pagpapagulong na pabalik sa dati',
 'tog-useeditwarning' => 'Magbabala sa akin kapag umalis ako sa isang pahina ng pampatnugot na hindi pa nasasagip ang mga pagbabago',
+'tog-prefershttps' => 'Laging gamitin ang isang matibay na koneksiyon kapag naka-login',
 
 'underline-always' => 'Palagi',
 'underline-never' => 'Hindi magpakailanman',
@@ -289,6 +289,7 @@ $messages = array(
 'newwindow' => '(magbubukas sa bagong bintana)',
 'cancel' => 'Kanselahin',
 'moredotdotdot' => 'Damihan pa...',
+'morenotlisted' => 'Hindi kumpleto ang talang ito.',
 'mypage' => 'Pahina ko',
 'mytalk' => 'Usapan',
 'anontalk' => 'Usapan para sa IP na ito',
@@ -342,6 +343,7 @@ $messages = array(
 'create-this-page' => 'Likhain ang pahinang ito',
 'delete' => 'Burahin',
 'deletethispage' => 'Burahin itong pahina',
+'undeletethispage' => 'Ibalik mula sa pagkakabura ang pahinang ito',
 'undelete_short' => 'Baligtarin ang pagbura ng {{PLURAL:$1|isang pagbabago|$1 pagbabago}}',
 'viewdeleted_short' => 'Tingnan ang {{PLURAL:$1|isang binurang pagbabagp|$1 binurang pagbabago}}',
 'protect' => 'Ipagsanggalang',
@@ -388,14 +390,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).
 'aboutsite' => 'Tungkol sa {{SITENAME}}',
 'aboutpage' => 'Project:Patungkol',
-'copyright' => 'Maaaring gamitin ang nilalaman sa ilalim ng $1.',
+'copyright' => 'Maaaring gamitin ang nilalaman sa ilalim ng $1 maliban kung nabanggit.',
 'copyrightpage' => '{{ns:project}}:Mga karapatang-ari',
 'currentevents' => 'Mga kasalukuyang pangyayari',
 'currentevents-url' => 'Project:Mga kasalukuyang pangyayari',
 'disclaimers' => 'Mga pagtatanggi',
 'disclaimerpage' => 'Project:Pangkalahatang pagtatanggi',
 'edithelp' => 'Tulong sa pagbabago',
-'helppage' => 'Help:Mga nilalaman',
 'mainpage' => 'Unang Pahina',
 'mainpage-description' => 'Unang Pahina',
 'policy-url' => 'Project:Patakaran',
@@ -475,6 +476,8 @@ Matatagpuan ang isang tala ng mga tamang natatanging pahina sa [[Special:Special
 # General errors
 'error' => 'Kamalian',
 'databaseerror' => 'Kamalian sa kalipunan ng datos',
+'databaseerror-text' => 'Mayroong kamalian sa pagtanong o pag-query sa database.
+Maaring ipinapahiwatig nito ang depekto o bug sa software.',
 'laggedslavemode' => "'''Babala:''' Maaaring hindi naglalaman ang pahina ng mga huling dagdag.",
 'readonly' => 'Nakakandado ang kalipunan ng datos',
 'enterlockreason' => 'Maglagay ng dahilan sa pagkakandado, kasama ang taya kung kailan magtatapos ang pagkakandado',
@@ -560,15 +563,15 @@ Tandaan na may ilang pahinang maaaring magpatuloy na nagpapakitang parang nakala
 Huwag kalimutang baguhin ang iyong [[Special:Preferences|mga kagustuhan sa {{SITENAME}}]].',
 'yourname' => 'Bansag:',
 'userlogin-yourname' => 'Pangngalan',
-'userlogin-yourname-ph' => 'Ilagay ang iyong Pangngalan',
-'createacct-another-username-ph' => 'Ilagay ang Pangngalan',
+'userlogin-yourname-ph' => 'Ilagay ang iyong Pangalan',
+'createacct-another-username-ph' => 'Ilagay ang Pangalan',
 'yourpassword' => 'Hudyat:',
 'userlogin-yourpassword' => 'Hudyat',
 'userlogin-yourpassword-ph' => 'Ipasok ang iyong hudyat',
-'createacct-yourpassword-ph' => 'Ilagay ang hudyat',
+'createacct-yourpassword-ph' => 'Ilagay ang hudyat (password)',
 'yourpasswordagain' => 'Hudyat mo uli:',
 'createacct-yourpasswordagain' => 'Tiyakin ang hudyat',
-'createacct-yourpasswordagain-ph' => 'Muling ilagay ang hudyat',
+'createacct-yourpasswordagain-ph' => 'Muling ilagay ang hudyat (password)',
 'remembermypassword' => 'Tandaan ang paglagda ko sa kompyuter na ito (pinakamarami na ang $1 {{PLURAL:$1|araw|mga araw}})',
 'userlogin-remembermypassword' => 'Panatilihin akong nakalagda',
 'userlogin-signwithsecure' => 'Gumamit ng ligtas na koneksyon',
@@ -591,7 +594,7 @@ Huwag kalimutang baguhin ang iyong [[Special:Preferences|mga kagustuhan sa {{SIT
 'gotaccount' => 'May kuwenta ka na ba? $1.',
 'gotaccountlink' => 'Lumagda',
 'userlogin-resetlink' => 'Nakalimutan mo ang iyong mga detalyeng panglagda?',
-'userlogin-resetpassword-link' => 'Nakalimutan ba ang iyong hudyat?',
+'userlogin-resetpassword-link' => 'Nakalimutan ba ang iyong hudyat (password)?',
 'userlogin-createanother' => 'Lumikha ng iba pang akawnt',
 'createacct-join' => 'Ilagay ang iyong impormasyon sa ibaba.',
 'createacct-another-join' => 'Ilagay ang impormasyon ng bagong akawnt sa ibaba.',
@@ -833,7 +836,7 @@ Maaaring inilipat o ibinura ito habang tinitingnan mo ang pahina.',
 'accmailtext' => "Ipinadala na sa $2 ang isang hudyat na nilikha ng pagkakataon para kay [[User talk:$1|$1]].  Maaari itong baguhin sa pahinang ''[[Special:ChangePassword|palitan ng hudyat]]'' kapag lumagdang papasok.",
 'newarticle' => '(Bago)',
 'newarticletext' => "Sinundan mo ang isang kawing para sa isang pahinang hindi pa umiiral.
-Para likhain ang pahina, magsimulang magmakinilya sa loob ng kahong nasa ibaba (tingnan ang [[{{MediaWiki:Helppage}}|pahina ng tulong]] para sa mas maraming kabatiran).
+Para likhain ang pahina, magsimulang magmakinilya sa loob ng kahong nasa ibaba (tingnan ang [$1 pahina ng tulong] para sa mas maraming kabatiran).
 Kung napunta ka rito dahil sa pagkakamali, pakipindot ang pinduntang '''balik''' ('''''back''''') ng iyong pantingin-tingin (''browser'').",
 'anontalkpagetext' => "Ito ang pahinang usapan para sa isang hindi nakikilalang tagagamit na hindi pa lumilikha ng kuwenta, o kaya hindi ito ginagamit.
 Kaya't kinailangan naming gamitin ang may bilang na direksiyonng IP para makilala siya.
@@ -1074,8 +1077,6 @@ Makikita mo ang pagkakaibang ito; matatagpuan ang mga detalye sa [{{fullurl:{{#S
 'revdelete-show-file-submit' => 'Oo',
 'revdelete-selected' => "{{PLURAL:$2|Piniling|Mga piniling}} pagbabago ng '''$1:'''",
 'logdelete-selected' => '{{PLURAL:$1|Piniling tala ng pangyayari|Piniling tala ng mga pangyayari}}:',
-'revdelete-text' => "'''Makikita pa rin ang mga binurang pagbabago at mga kaganapan sa pahina ng kasaysayan at mga talaan, ngunit hindi mapupuntahan ng madla ang mga bahagi ng kanilang nilalaman.
-Makikita pa rin ng iba pang mga tagapangasiwang nasa {{SITENAME}} ang mga tinagong nilalaman at maaaring ibalik ito mula sa pagkakabura sa pamamagitan ng kaparehong ugnayang-hangganan, maliban na lamang kung may itinakdang karagdagang mga restriksyon.",
 'revdelete-confirm' => 'Pakitiyak po na nais mo itong gawin, na nauunawaan mo ang mga kahihinatnan, at na ginagawa mo ito alinsunod sa [[{{MediaWiki:Policy-url}}|patakaran]].',
 'revdelete-suppress-text' => "Ang paglilingid ay dapat na gamitin '''lamang''' para sa sumusunod na mga pagkakataon:
 * Hindi naaangkop na kabatirang pansarili
index 0088bad..3dbe1c0 100644 (file)
@@ -346,7 +346,6 @@ $messages = array(
 'disclaimers' => 'Çe məsuliyyətiku imtino.',
 'disclaimerpage' => 'Project:Дејни бә гиј ныгәтеј',
 'edithelp' => 'Арајиш бо редактә кардеј',
-'helppage' => 'Help:Мындәриҹот',
 'mainpage' => 'Əsosə səhifə',
 'mainpage-description' => 'Әсосә сәһифә',
 'policy-url' => 'Project:Ғајдон',
@@ -487,7 +486,7 @@ $messages = array(
 'loginreqlink' => 'ыштәни едаштеј',
 'newarticle' => '(Нујә)',
 'newarticletext' => 'Шымә давардијон де сәбони бә сәһифә, әмма жыго сәһифә ни.
-Бо сәһифә офәјеј мәтн бынывыштән жиннә пенҹәдә (мыффәссәл дијә быкән [[{{MediaWiki:Helppage}}|араијшә сәһифә]]).
+Бо сәһифә офәјеј мәтн бынывыштән жиннә пенҹәдә (мыффәссәл дијә быкән [$1 араијшә сәһифә]).
 Гирәм шымә ијо де сәһви бешијон, һиччекәни ыштә браузери "думо" егәтән.',
 'noarticletext' => "Есәт бы сәһифәдә мәтн ни.
 Шымә бәзынешон [[Special:Search/{{PAGENAME}}|пәјдо кардеј конҹо ым ном һесте]] бә ҹо мәғолонәдә,
index 01b04a6..b1d0a36 100644 (file)
@@ -349,7 +349,7 @@ Kapau naʻe kole ia ʻe he tokotaha kehe, pea ʻosi hoʻo manatuʻi ʻo e leatap
 'accmailtitle' => 'ʻOsi ʻave ʻa e leatapu',
 'accmailtext' => "ʻOsi ʻave ʻa e leatapu maʻa [[User talk:$1|$1]] ki he $2. Te ke lava liliu ia ʻi he ''[[Special:ChangePassword|peesi liliu leatapu]]''.",
 'newarticle' => '(Foʻou)',
-'newarticletext' => "Naʻa ke muimui ha fehokotaki ki he peesi ʻoku teʻeki fakatupu. Kapau te ke fiefakatupi he pēsí ni, kamata hoʻo tohi ʻi he puha ʻi lalo. (Vakai ki he [[{{MediaWiki:Helppage}}|tokoni]] mo hano ongoongo lahi ange.) Kapau ʻoku hala pē heni, lomiʻi pē he meʻa-lolomi 'ki mui' ʻo ho palausa.",
+'newarticletext' => "Naʻa ke muimui ha fehokotaki ki he peesi ʻoku teʻeki fakatupu. Kapau te ke fiefakatupi he pēsí ni, kamata hoʻo tohi ʻi he puha ʻi lalo. (Vakai ki he [$1 tokoni] mo hano ongoongo lahi ange.) Kapau ʻoku hala pē heni, lomiʻi pē he meʻa-lolomi 'ki mui' ʻo ho palausa.",
 'anontalkpagetext' => "----''Ko e peesi ʻeni ko e peesi alea ia maʻa e ʻetita taʻehingoa teʻeki ʻene fakatupu ʻo e tohi kau-ki-ai pe ʻoku ʻikai ngāueʻaki mo ia. Ko ia ai ʻoku fakapapauʻi ia ʻe he tuʻasila IP fakafika pē. Ka ʻe lava ʻoku vahevahe ʻa e tuʻasila IP pehē ʻe he kau ʻetita tokolahi. Kapau ko koe ko e ʻetita taʻehingoa, ʻoku ke tui ko e ngaahi fakamatala ʻi heni ʻoku ʻikai maʻau, mahalo pē ʻoku sai ange ke ke [[Special:UserLogin|fai ha tohi kau-ki-ai, pe kau-ki-ai]] he taimí ni pea fakaʻehiʻehi ha ngaahi meʻafihi ē ʻi he kahaʻu.''",
 'noarticletext' => 'Ko e pēsi ni, ʻoku ʻikai haʻane tohi ʻi ai he taimi ni. ʻE lava koe ʻo [[Special:Search/{{PAGENAME}}|kumi ki heʻene hingoa]] ʻi ha ngaahi peesi ʻe taha, pe [{{fullurl:{{FULLPAGENAME}}|action=edit}} ʻetita ʻi ai.]',
 'clearyourcache' => "'''Tokanga''', ʻosi he haofaki e peesi, mahalo pē ʻoku pau te ke fakaʻatā ʻa e fafaʻo ʻo ho palausa, naʻa ʻikai te ke sio ʻa e paaki foʻou.",
index 7333c67..4fa35ad 100644 (file)
@@ -50,6 +50,7 @@
  * @author Rhinestorm
  * @author Runningfridgesrule
  * @author Sadrettin
+ * @author SiLveRLeaD
  * @author Srhat
  * @author Stultiwikia
  * @author Suelnur
@@ -394,7 +395,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Diğer kullanıcılara gönderdiğim e-postaların kopyalarını bana da gönder',
 'tog-diffonly' => 'Sayfa içeriğini sürüm farklarının altında gösterme',
 'tog-showhiddencats' => 'Gizli kategorileri göster',
-'tog-noconvertlink' => 'Bağlantı başlığı dönüştürmesini devre dışı bırakma',
 'tog-norollbackdiff' => 'Geridönüş uygulandıktan sonra değişikliği atla',
 'tog-useeditwarning' => 'Kaydedilmemiş değişikliğe sahip bir değişiklik sayfasından çıkarken beni uyar',
 'tog-prefershttps' => 'Oturumu açarken her zaman güvenli bağlantı kullan',
@@ -606,7 +606,6 @@ $1',
 'disclaimers' => 'Sorumluluk reddi',
 'disclaimerpage' => 'Project:Genel sorumluluk reddi',
 'edithelp' => 'Nasıl değiştirilir?',
-'helppage' => 'Help:İçindekiler',
 'mainpage' => 'Ana Sayfa',
 'mainpage-description' => 'Ana sayfa',
 'policy-url' => 'Project:İlkeler',
@@ -803,8 +802,6 @@ Tarayıcınızın önbelleğini temizleyinceye kadar bazı sayfalarda, oturumunu
 'gotaccountlink' => 'Oturum açın',
 'userlogin-resetlink' => 'Giriş bilgilerinizi mi unuttunuz?',
 'userlogin-resetpassword-link' => 'Parolanızı mı unuttunuz?',
-'helplogin-url' => 'Help:Oturum açma',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Oturum açma konusunda yardım alın]]',
 'userlogin-loggedin' => 'Zaten {{GENDER:$1|$1}} olarak oturum açtınız.
 Başka bir kullanıcı olarak oturum açmak için aşağıdaki formu kullanın.',
 'userlogin-createanother' => 'Başka bir hesap oluşturun',
@@ -895,6 +892,7 @@ Devam etmeden önce $1 bekleyin.',
 'createacct-another-realname-tip' => 'Gerçek adınız isteğe bağlıdır.
 Eğer gerçek adınızı belirtirseniz, çalışmalarınıza atıfta bulunulması için de kullanılacaktır.',
 'pt-login' => 'Giriş yap',
+'pt-login-button' => 'Oturum aç',
 'pt-createaccount' => 'Hesap oluştur',
 'pt-userlogout' => 'Oturumu kapat',
 
@@ -925,7 +923,7 @@ Lütfen tekrar denemeden önce $1 bekleyin.',
 'resetpass-temp-password' => 'Geçici parola:',
 'resetpass-abort-generic' => 'Parola değişikliği bir uzantı tarafından iptal edildi.',
 'resetpass-expired' => 'Parolanızın süresi bitti. Lütfen, giriş için yeni bir parola oluşturun.',
-'resetpass-expired-soft' => 'Parolanızın süresi bitti ve değiştirilmesi gerekiyor. Lütfen, yeni bir parola seçin veya daha sonra oluşturmak için vazgeç e tıklayın.',
+'resetpass-expired-soft' => 'Parolanızın süresi bitti ve değiştirilmesi gerekiyor. Lütfen, yeni bir parola seçin veya daha sonra oluşturmak için "{{int:resetpass-submit-cancel}}" butonuna tıklayın.',
 
 # Special:PasswordReset
 'passwordreset' => 'Parola sıfırlama',
@@ -1069,7 +1067,7 @@ Siz sayfayı görüntülerken taşınmış veya silinmiş olabilir.',
 Bu yeni hesap için parola, giriş yapıldıktan sonra ''[[Special:ChangePassword|parolayı değiştir]]'' bölümünde değiştirilebilir.",
 'newarticle' => '(Yeni)',
 'newarticletext' => "Henüz varolmayan bir sayfaya konulmuş bir bağlantıya tıkladınız.
-Sayfayı oluşturmak için aşağıdaki metin kutusunu kullanın. ([[{{MediaWiki:Helppage}}|yardım sayfasına]] bakınız).
+Sayfayı oluşturmak için aşağıdaki metin kutusunu kullanın. ([$1 yardım sayfasına] bakınız).
 Buraya yanlışlıkla geldiyseniz tarayıcınızın '''geri''' tuşuna tıklayın.",
 'anontalkpagetext' => "----''Bu sayfa henüz bir kullanıcı hesabı oluşturmamış veya hesabını kullanmayan bir anonim kullanıcının mesaj sayfasıdır. Bu nedenle bu kişiyi belirtmek için rakamsal IP adresini kullanmak zorundayız. Bu gibi IP adresleri birçok kullanıcı tarafından paylaşılabilir. Eğer siz de bir anonim kullanıcıysanız ve size sizin ilginiz olmayan iletiler geliyorsa, lütfen diğer anonim kullanıcılarla olabilecek olan karmaşayı önlemek için [[Special:UserLogin/signup|bir hesap edinin]] veya [[Special:UserLogin|oturum açın]].''",
 'noarticletext' => 'Bu sayfa şu anda boştur.
@@ -1308,8 +1306,6 @@ Bir hizmetli olarak bu değişikliği görebilirsiniz; [{{fullurl:{{#Special:Log
 'revdelete-show-file-submit' => 'Evet',
 'revdelete-selected' => "'''[[:$1]] sayfasının {{PLURAL:$2|seçili değişikliği|seçili değişiklikleri}}:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Seçili kayıt olayı|Seçili kayıt olayları}}:'''",
-'revdelete-text' => "'''Silinen revizyonlar ve olaylar hala sayfa geçmişinde ve günlüklerde görünecektir, fakat içeriğin parçaları umumi olarak erişilemeyecektir.'''
-{{SITENAME}} sitesindeki diğer hizmetliler gizli içeriğe erişebilir ve ilave kısıtlamalar ayarlanmadıysa bu arayüz ile geri getirebilir.",
 'revdelete-confirm' => 'Lütfen, bunu yapmak istediğinizi , sonuçlarını anladığınızı, ve bunu [[{{MediaWiki:Policy-url}}|ilkelere]] göre yapıyor olduğunuzu onaylayın.',
 'revdelete-suppress-text' => "Saklama '''sadece''' aşağıdaki durumlarda kullanılmalıdır:
 * Muhtemel iftira niteliğindeki bilgi
@@ -2282,7 +2278,7 @@ Her satırın içerdiği bağlantılar; birinci ve ikinci yönlendirme, ayrıca
 'deadendpagestext' => 'Aşağıdaki sayfalar, {{SITENAME}} sitesinde diğer sayfalara bağlantı vermiyor.',
 'protectedpages' => 'Koruma altındaki sayfalar',
 'protectedpages-indef' => 'Sadece süresiz korumalar',
-'protectedpages-summary' => 'Bu sayfa şu anda koruma altında olan mevcut sayfaları listeler. Oluşturulması korunan başlıkların bir listesi için [[{{#special:ProtectedTitles}}]] sayfasına bakın.',
+'protectedpages-summary' => 'Bu sayfa şu anda koruma altında olan mevcut sayfaları listeler. Oluşturulması korunan başlıkların bir listesi için [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]] sayfasına bakın.',
 'protectedpages-cascade' => 'Sadece ardışık korumalar',
 'protectedpages-noredirect' => 'Yönlendirmeleri gizle',
 'protectedpagesempty' => 'Şu anda, bu parametrelerle korunan hiç bir sayfa yok.',
@@ -2295,7 +2291,7 @@ Her satırın içerdiği bağlantılar; birinci ve ikinci yönlendirme, ayrıca
 'protectedpages-unknown-timestamp' => 'Bilinmiyor',
 'protectedpages-unknown-performer' => 'Bilinmeyen kullanıcı',
 'protectedtitles' => 'Korunan başlıklar',
-'protectedtitles-summary' => 'Bu sayfa şu anda oluşturulması korunan başlıkları listeler. Koruma altında olan mevcut sayfaların bir listesi için [[{{#special:ProtectedPages}}]] sayfasına bakın.',
+'protectedtitles-summary' => 'Bu sayfa şu anda oluşturulması korunan başlıkları listeler. Koruma altında olan mevcut sayfaların bir listesi için [[{{#special:ProtectedPages}}|{{int:protectedpages}}]] sayfasına bakın.',
 'protectedtitlesempty' => 'Şu anda, bu parametrelerle korunan hiç bir başlık yok.',
 'listusers' => 'Kullanıcı listesi',
 'listusers-editsonly' => 'Sadece değişiklik yapan kullanıcıları göster',
@@ -2580,10 +2576,10 @@ dikkatle devam edin.',
 'rollbacklinkcount-morethan' => '$1 {{PLURAL:$1|değişiklikten|değişiklikten}} fazla geri döndür',
 'rollbackfailed' => 'geri alma işlemi başarısız',
 'cantrollback' => 'Sayfaya son katkıda bulunan kullanıcı, sayfaya katkıda bulunmuş tek kişi olduğu için, değişiklikler geri alınamıyor.',
-'alreadyrolled' => '[[User:$2|$2]] ([[User talk:$2|Talk]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) tarafından [[:$1]] sayfasında yapılmış son değişiklik geriye alınamıyor;
-başka biri sayfada değişiklik yaptı ya da sayfayı geriye aldı.
+'alreadyrolled' => '[[User:$2|$2]] ([[User talk:$2|Tartışma]]{{int:pipe-separator}}[[Special:Contributions/$2|{{int:contribslink}}]]) tarafından [[:$1]] sayfasında yapılmış son değişiklik geriye alınamıyor;
+başka birisi sayfada değişiklik yaptı ya da sayfayı geriye aldı.
 
-Son değişikliği yapan: [[User:$3|$3]] ([[User talk:$3|Talk]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
+Son değişikliği yapan: [[User:$3|$3]] ([[User talk:$3|Tartışma]]{{int:pipe-separator}}[[Special:Contributions/$3|{{int:contribslink}}]]).',
 'editcomment' => "Değişiklik özeti: \"''\$1''\" idi.",
 'revertpage' => '[[Special:Contributions/$2|$2]] [[User talk:$2|mesaj]] tarafından yapılan değişiklikler geri alınarak, [[User:$1|$1]] tarafından değiştirilmiş önceki sürüm geri getirildi.',
 'revertpage-nouser' => 'Gizli bir kullanıcı tarafından yapılan değişiklikler geri alınarak {{GENDER:$1|[[User:$1|$1]]}} tarafından yapılan son revizyon geri getirildi',
index bd6f6a4..d717911 100644 (file)
@@ -167,7 +167,6 @@ $messages = array(
 'disclaimers' => 'Disclaimers',
 'disclaimerpage' => 'Project: Disclaimer gawonoyo',
 'edithelp' => 'Editing help',
-'helppage' => 'Help: Ḥbişoṭo',
 'mainpage' => 'Faṭo rişoyto',
 'mainpage-description' => 'Faṭo rişoyto',
 'portal' => 'Portal diJama³a',
@@ -301,7 +300,7 @@ uIP-Adresayḍux gmikṭaw buMaktabzabno diFaṭaṭe. Kul Noşo kibe ḥozele u
 'loginreqpagetext' => 'Glozım $1 qanna dqudrat ḥozat Faṭoṭe ḥrene.',
 'newarticle' => '(Ḥaṭo)',
 'newarticletext' => "You have followed a link to a page that does not exist yet.
-To create the page, start typing in the box below (see the [[{{MediaWiki:Helppage}}|help page]] for more info).
+To create the page, start typing in the box below (see the [$1 help page] for more info).
 If you are here by mistake, click your browser's '''back''' button.",
 'noarticletext' => 'There is currently no text in this page.
 You can [[Special:Search/{{PAGENAME}}|search for this page title]] in other pages,
index 38f405f..6cd56c4 100644 (file)
@@ -220,7 +220,6 @@ $messages = array(
 'disclaimers' => 'Swi alanandzu',
 'disclaimerpage' => 'Project:Swithsuxa nadzu hikuangara',
 'edithelp' => 'Mpfuno hi ta mindzulamiso',
-'helppage' => 'Help:Leswinga ndzeni',
 'mainpage' => 'Tlukankulu',
 'mainpage-description' => 'Tluka-Nkulu',
 'policy-url' => 'Project:Policy',
@@ -403,7 +402,7 @@ Tsundzuka leswaku matluka man'wana mangaha komba onge upfule unghena eka wiki, l
 Adirese ya khompuyuta ya wena ya IP yita tsariwa eka matimu ya ku lulamisiwa ka tluka leri.",
 'newarticle' => '(yintswa)',
 'newarticletext' => "Ulandzele xikhwekerisi lexi kombaka tluka leringasi tsariwaka.
-Leswaku u tumbuluxa tluka leri, tsala eka bokisi leringa e hansi (Nkambe unga ye eka [[{{MediaWiki:Helppage}}|tluka ra mpfuno]] kukuma vuxokoxoko lebyi engetelekeke).
+Leswaku u tumbuluxa tluka leri, tsala eka bokisi leringa e hansi (Nkambe unga ye eka [$1 tluka ra mpfuno] kukuma vuxokoxoko lebyi engetelekeke).
 Loko ufike eka tluka leri hixihoxo, thlava bhatheni leyinge '''thlelela'''.",
 'noarticletext' => 'Kuhava matsalwa eka tluka leri.
 Unga [[Special:Search/{{PAGENAME}}|lavalava nhlokomhaka ya tluka leri]] eka matluka man\'wana,
index ea628b1..32cee15 100644 (file)
@@ -10,9 +10,3 @@
  */
 
 $fallback = 'tt-cyrl, ru';
-
-$messages = array(
-# Delete
-'excontentauthor' => '',
-
-);
index eb963a4..404d52e 100644 (file)
@@ -12,6 +12,7 @@
  * @author Don Alessandro
  * @author Haqmar
  * @author Himiq Dzyu
+ * @author Ilnur efende
  * @author KhayR
  * @author MF-Warburg
  * @author Marat Vildanov
@@ -353,7 +354,7 @@ $messages = array(
 'moredotdotdot' => 'Дәвамы…',
 'morenotlisted' => 'Башка берни дә юк...',
 'mypage' => 'Бит',
-'mytalk' => 'Бәхәс',
+'mytalk' => 'Бәхәс бите',
 'anontalk' => 'Бу IP адресы өчен бәхәс бите',
 'navigation' => 'Күчү',
 'and' => '&#32;һәм',
@@ -458,7 +459,6 @@ $1',
 'disclaimers' => 'Җаваплылыктан баш тарту',
 'disclaimerpage' => 'Project:Җаваплылыктан баш тарту',
 'edithelp' => 'Үзгәртү буенча ярдәм',
-'helppage' => 'Help:Эчтәлек',
 'mainpage' => 'Баш бит',
 'mainpage-description' => 'Баш бит',
 'policy-url' => 'Project:Кагыйдәләр',
@@ -632,8 +632,8 @@ $2',
 'userlogin-noaccount' => 'Аккаунт юкмы?',
 'userlogin-joinproject' => 'Проектка керү',
 'nologin' => "Кулланучы исемең юкмы? '''$1'''",
-'nologinlink' => 'Хисап язмасы төзегез',
-'createaccount' => 'Яңа кулланучы теркәү',
+'nologinlink' => 'Хисап язмасы төзү',
+'createaccount' => 'Яңа кулланучыны теркәү',
 'gotaccount' => "Сез инде теркәлдегезме? '''$1'''.",
 'gotaccountlink' => 'Керү',
 'userlogin-resetlink' => 'Серсүзегезне оныттыгызмы?',
@@ -694,6 +694,9 @@ $2',
 'login-abort-generic' => 'Системага уңышсыз керү очрагы',
 'loginlanguagelabel' => 'Тел: $1',
 'suspicious-userlogout' => 'Сезнең эшчәнлекне бетерү соравыгыз кире кагылды, чөнки ул ялгыш браузер яисә кэшлаучы прокси аша җибәрелергэ мөмкин.',
+'pt-login' => 'Керү',
+'pt-createaccount' => 'Яңа кулланучыны теркәү',
+'pt-userlogout' => 'Чыгу',
 
 # Email sending
 'php-mail-error-unknown' => 'PHP mail() функциясендә билгесез хата',
@@ -845,7 +848,7 @@ $2
 Сайтка кергәч сез ''[[Special:ChangePassword|серсүзегезне үзгәртә аласыз]]''.",
 'newarticle' => '(Яңа)',
 'newarticletext' => "Сез әлегә язылмаган биткә кердегез.
-Яңа бит ясау өчен астагы тәрәзәдә мәкалә текстын җыегыз ([[{{MediaWiki:Helppage}}|ярдәм битен]] карый аласыз).
+Яңа бит ясау өчен астагы тәрәзәдә мәкалә текстын җыегыз ([$1 ярдәм битен] карый аласыз).
 Әгәр сез бу биткә ялгышлык белән эләккән булсагыз, браузерыгызның '''артка''' төймәсенә басыгыз.",
 'anontalkpagetext' => "----''Бу бәхәс бите системада теркәлмәгән яисә үз исеме белән кермәгән кулланучыныкы.
 Аны тану өчен IP адресы файдаланыла.
@@ -1338,19 +1341,31 @@ $1",
 'recentchanges-legend' => 'Соңгы үзгәртүләр көйләүләре',
 'recentchanges-summary' => 'Бу биттә {{grammar:genitive|{{SITENAME}}}} проектының соңгы үзгәртүләре күрсәтелә.',
 'recentchanges-feed-description' => 'Бу агымда соңгы үзгәртүләрне күзәтү.',
-'recentchanges-label-newpage' => 'Ð\91Ñ\83 Ò¯Ð·Ð³Ó\99Ñ\80Ñ\82Ò¯ Ð±ÐµÐ»Ó\99н Ñ\8fңа Ð±Ð¸Ñ\82 Ñ\82өзелде',
+'recentchanges-label-newpage' => 'Ð\91Ñ\83 Ò¯Ð·Ð³Ó\99Ñ\80Ñ\82Ò¯ Ð±ÐµÐ»Ó\99н Ñ\8fңа Ð±Ð¸Ñ\82 Ñ\82өзелгÓ\99н',
 'recentchanges-label-minor' => 'Бу кече үзгәртү',
-'recentchanges-label-bot' => 'Бу үзгәртү бот белән эшләнгән иде',
+'recentchanges-label-bot' => 'Бу үзгәртү бот белән эшләнгән',
 'recentchanges-label-unpatrolled' => 'Үзгәртүне әлегә тикшермәгәннәр',
+'recentchanges-label-plusminus' => 'Битнең зурлыгы шуның кадәрле байтка үзгәрде',
 'recentchanges-legend-newpage' => '([[Special:NewPages|яңа бит]])',
 'rcnotefrom' => "Астарак '''$2''' башлап ('''$1''' кадәр) үзгәртүләр күрсәтелгән.",
 'rclistfrom' => '$1 башлап яңа үзгәртүләрне күрсәт',
 'rcshowhideminor' => 'кече үзгәртүләрне $1',
+'rcshowhideminor-show' => 'күрсәт',
+'rcshowhideminor-hide' => 'яшер',
 'rcshowhidebots' => 'ботларны $1',
-'rcshowhideliu' => '$1 кергән кулланучылар',
+'rcshowhidebots-show' => 'күрсәт',
+'rcshowhidebots-hide' => 'яшер',
+'rcshowhideliu' => 'Теркәлгән кулланучыларны $1',
+'rcshowhideliu-show' => 'күрсәт',
+'rcshowhideliu-hide' => 'яшер',
 'rcshowhideanons' => 'кермәгән кулланучыларны $1',
+'rcshowhideanons-show' => 'күрсәт',
+'rcshowhideanons-hide' => 'яшер',
 'rcshowhidepatr' => 'тикшерелгән үзгәртүләрне $1',
+'rcshowhidepatr-hide' => 'яшер',
 'rcshowhidemine' => 'минем үзгәртүләремне $1',
+'rcshowhidemine-show' => 'күрсәт',
+'rcshowhidemine-hide' => 'яшер',
 'rclinks' => 'Соңгы $2 көн эчендә соңгы $1 үзгәртүне күрсәт<br />$3',
 'diff' => 'аерма',
 'hist' => 'тарих',
index ca11cb9..3a2bbf5 100644 (file)
@@ -320,7 +320,6 @@ $1',
 'disclaimers' => 'Cawaplılıqtan baş tartu',
 'disclaimerpage' => 'Project:Cawaplılıqtan baş tartu',
 'edithelp' => 'Üzgärtü buyınça yärdäm',
-'helppage' => 'Help:Eçtälek',
 'mainpage' => 'Baş bit',
 'mainpage-description' => 'Baş bit',
 'policy-url' => 'Project:Qäğidälär',
@@ -620,7 +619,7 @@ Sez bu säxifäne qarağanda ul beterelä aldı.',
 Saytqa kergäç sez ''[[Special:ChangePassword|sersüzegezne üzgärtä alasız]]''.",
 'newarticle' => '(Yaña)',
 'newarticletext' => "Sez älegä yazılmağan bitkä kerdegez.
-Yaña bit yasaw öçen astağı täräzädä mäqälä tekstın cıyığız ([[{{MediaWiki:Helppage}}|yärdäm biten]] qarıy alasız).
+Yaña bit yasaw öçen astağı täräzädä mäqälä tekstın cıyığız ([$1 yärdäm biten] qarıy alasız).
 Ägär sez bu bitkä yalğışlıq belän eläkkän bulsağız, brauzerığıznıñ '''artqa''' töymäsenä basığız.",
 'anontalkpagetext' => "----''Bu bäxäs bite sistemada terkälmägän yäisä üz iseme belän kermägän qullanuçınıqı.
 Anı tanu öçen IP adresı faydalanıla.
index 4038be4..5174ca1 100644 (file)
@@ -302,7 +302,6 @@ $messages = array(
 'disclaimers' => 'Ажыглаар харысаалгазын чөрчүүрү (ойталаары)',
 'disclaimerpage' => 'Project:Ажыглаар харысаалгазын ойталаары',
 'edithelp' => 'Эдеринге дуза',
-'helppage' => 'Help:Допчузу',
 'mainpage' => 'Кол Арын',
 'mainpage-description' => 'Кол Арын',
 'policy-url' => 'Project:Чурум',
@@ -490,7 +489,7 @@ $messages = array(
 The password for this new account can be changed on the ''[[Special:ChangePassword|change password]]'' page upon logging in.",
 'newarticle' => '(Чаа)',
 'newarticletext' => 'Амдыызында чаяатынмаан арынче шөлүглеп шилчий бердиңер.
-Ону чаяарда адакы көзенекке сөзүглелден таналап киириңер ([[{{MediaWiki:Helppage}}|тайылбыр арынын]] тода көрүңер).. 
+Ону чаяарда адакы көзенекке сөзүглелден таналап киириңер ([$1 тайылбыр арынын] тода көрүңер).. 
 Маңаа алдаг аайы-биле шилчий берген болзуңарза, браузериңерниң "дедир"  деп таназын базыптыңар.',
 'noarticletext' => "Амдыызында ук арында сөзүглел чок.
 Ол дилеп турар [[Special:Search/{{PAGENAME}}|арыныңар дугайында өске чүүлдерге бижээнин тып аап]] болур силер,
index 6537cb5..90e540f 100644 (file)
@@ -85,7 +85,6 @@ $messages = array(
 'tog-ccmeonemails' => 'مەن باشقىلارغا يوللىغان ئېلخەتنى ئۆزەمگىمۇ بىر نۇسخا يوللا',
 'tog-diffonly' => 'تۈزىتىلگەن ئىككى نەشرىنىڭ پەرقىنى سېلىشتۇرغاندا بەت مەزمۇنىنى كۆرسەتمە',
 'tog-showhiddencats' => 'يوشۇرۇن تۈرلەرنى كۆرسەت',
-'tog-noconvertlink' => 'ئۇلانما ماۋزۇ ئالماشتۇرۇشنى چەكلە',
 'tog-norollbackdiff' => 'قايتۇرۇشنى ئىجرا قىلغاندىن كېيىن پەرقنى كۆرسەتمە',
 'tog-useeditwarning' => 'بىر تەھرىرلىگەن بەتنى ساقلىماي چېكىنگەندە مېنى ئەسكەرت',
 'tog-prefershttps' => 'تىزىمغا كىرگەندە دائىم بىخەتەر ئۇلىنىشنى ئىشلەت',
@@ -298,7 +297,6 @@ $1',
 'disclaimers' => 'ئاگاھلاندۇرۇشلار',
 'disclaimerpage' => 'Project:ئومۇمىي ئاگاھلاندۇرۇش',
 'edithelp' => 'تەھرىرلەش ياردىمى',
-'helppage' => 'Help:مەزمۇنلار',
 'mainpage' => 'باش بەت',
 'mainpage-description' => 'باش بەت',
 'policy-url' => 'Project:تاكتىكا',
@@ -518,8 +516,6 @@ $2',
 'gotaccountlink' => 'تىزىمغا كىر',
 'userlogin-resetlink' => 'تىزىمغا كىرىش تەپسىلاتىنى ئۇنۇتتىڭىز؟',
 'userlogin-resetpassword-link' => 'پارولىڭىزنى ئۇنتۇپ قالدىڭىزمۇ؟',
-'helplogin-url' => 'Help:تىزىمغا كىرىش',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|تىزىمغا كىرىش ئۈچۈن ياردەم]]',
 'userlogin-loggedin' => 'سىز ئاللىقاچان {{GENDER:$1|$1}} ھالىتىدە تىزىمغا كىرىپ بولدىڭىز. تۆۋەندىكىلەرنى تولدۇرۇپ باشقا ئىشلەتكۈچى ھالىتىدە تىزىمغا كىرىڭ.',
 'userlogin-createanother' => 'باشقا ھېسابات قۇرىمەن',
 'createacct-join' => 'تۆۋەنگە ئۇچۇرلىرىڭىزنى كىرگۈزۈڭ.',
@@ -799,7 +795,7 @@ $1 ساقلاپ، ئاندىن قايتا سىناڭ.',
 يېڭى ھېساباتقا قۇرغان ئىمنى تىزىمغا كىرىپ''[[Special:ChangePassword|ئىم ئۆزگەرت]]'' بېتىدىن ئۆزگەرتەلەيسىز.",
 'newarticle' => '(يېڭى)',
 'newarticletext' => 'سىز تېخى قۇرۇلمىغان بەتكە كىردىڭىز.
- بۇ بەتنى قۇرسىڭىز، تۆۋەندىكى تەھرىرلەش رامكىسىغا مەزمۇن كىرگۈزۈڭ(تەپسىلاتىنى  [[{{MediaWiki:Helppage}}|ياردەم بېتى]]دىن كۆرۈڭ)',
+ بۇ بەتنى قۇرسىڭىز، تۆۋەندىكى تەھرىرلەش رامكىسىغا مەزمۇن كىرگۈزۈڭ(تەپسىلاتىنى  [$1 ياردەم بېتى]دىن كۆرۈڭ)',
 'anontalkpagetext' => "----''بۇ تېخى ھېسابات قۇرمىغان ئاتسىز ئىشلەتكۈچىنىڭ مۇنازىرە بېتى ياكى ئۇنى ئىشلەتمەڭ..
 بىز ئۇنىڭ بىلەن پەقەت IP ئادرېسى بىلەنلا ئالاقە قىلالايمىز..
 بۇ خىل IP ئادرېسنى بىر قانچە ئىشلەتكۈچى ئىشلىتىشى ئورتاق ئىشلىتىشى مۇمكىن.
@@ -1049,8 +1045,6 @@ $3 تەمىنلىگەن چەكلەش سەۋەبى ''$2''",
 'revdelete-show-file-submit' => 'ھەئە',
 'revdelete-selected' => "'''[[:$1]] نىڭ {{PLURAL:$2|تاللانغان تۈزىتىش نەشرى|تاللانغان تۈزىتىش نەشرى}}:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|تاللانغان خاتىرە تۈرى|تاللانغان خاتىرە تۈرى}}:'''",
-'revdelete-text' => "'''ئۆچۈرۈلگەن تۈزىتىلگەن نەشرى ۋە ھادىسە بەت تارىخىدا كۆرۈنىدۇ ئەمما ئۇنىڭ مەزمۇنىنى كۆپچىلىك زىيارەت قىلالمايدۇ.'''
-{{SITENAME}}  دىكى باشقا باشقۇرغۇچىلار يوشۇرۇلغان مەزمۇننى يەنىلا كۆرەلەيدۇ ھەمدە بېكەت خىزمەتچىلىرى قوشۇمچە چەكلىمە ئېلىپ بارمىغانلا بولسا ئوخشاش ئارايۈزدە ئۆچۈرۈلگەننى ئەسلىگە كەلتۈرەلەيدۇ،",
 'revdelete-confirm' => 'بۇ مەشغۇلاتنى ئىجرا قىلسىڭىز ئاقىۋىتىنى چۈشىنىدىغانلىقىڭىزنى ھەمدە بۇ پروگراممىنىڭ [[{{MediaWiki:Policy-url}}|سىياسەت]]كە ئۇيغۇن كېلىدىغانلىقىنى جەزملەڭ.',
 'revdelete-suppress-text' => "'''پەقەت''' تۆۋەندىكى ئەھۋاللار يۈز بەرگەندىلا زىيارەت چەكلىنىدۇ:
 * نامۇۋاپىق شەخسىي ئۇچۇر
index f854fd2..8e6fd89 100644 (file)
  * @author Sodmy
  * @author Ua2004
  * @author Urhixidur
+ * @author Vittalio
  * @author VolodymyrF
  * @author Vox
  * @author Yuriy Apostol
  * @author Ата
  * @author Дар'я Козлова
+ * @author Максим Підліснюк
  * @author Тест
  */
 
@@ -403,7 +405,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Надсилати мені копії листів, які я надсилаю іншим користувачам',
 'tog-diffonly' => 'Не показувати вміст сторінки під різницею версій',
 'tog-showhiddencats' => 'Показувати приховані категорії',
-'tog-noconvertlink' => 'Вимкнути конвертацію назви посилання',
 'tog-norollbackdiff' => 'Не показувати різницю версій після виконання відкоту',
 'tog-useeditwarning' => 'Попереджати мене, якщо я залишаю сторінку редагування з незбереженими змінами',
 'tog-prefershttps' => "Завжди використовувати безпечне з'єднання при вході у систему",
@@ -616,7 +617,6 @@ $1',
 'disclaimers' => 'Відмова від відповідальності',
 'disclaimerpage' => 'Project:Відмова від відповідальності',
 'edithelp' => 'Довідка про редагування',
-'helppage' => 'Help:Довідка',
 'mainpage' => 'Головна сторінка',
 'mainpage-description' => 'Головна сторінка',
 'policy-url' => 'Project:Правила',
@@ -814,8 +814,7 @@ $1',
 'gotaccountlink' => 'Увійдіть',
 'userlogin-resetlink' => 'Забули дані, потрібні для входу?',
 'userlogin-resetpassword-link' => 'Забули пароль?',
-'helplogin-url' => 'Help:Вхід до системи',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Допомога в реєстрації]]',
+'userlogin-helplink2' => 'Допомога з входом у систему',
 'userlogin-loggedin' => 'Ви вже увійшли як {{GENDER:$1|$1}}.
 Використайте нижче форму для входу як інший користувач.',
 'userlogin-createanother' => 'Створити інший обліковий запис',
@@ -915,6 +914,7 @@ $1',
 'createacct-another-realname-tip' => "Справжнє ім'я є необов'язковим.
 Якщо ви вирішите надати його, то воно буде використовуватися для присвоєння користувачу авторства до його роботи.",
 'pt-login' => 'Увійти',
+'pt-login-button' => 'Вхід',
 'pt-createaccount' => 'Створити обліковий запис',
 'pt-userlogout' => 'Вийти',
 
@@ -947,7 +947,10 @@ $1',
 'resetpass-temp-password' => 'Тимчасовий пароль:',
 'resetpass-abort-generic' => 'Зміну пароля було перервано розширенням.',
 'resetpass-expired' => 'Термін дії вашого пароля закінчився. Будь ласка, встановіть новий пароль для входу в систему.',
-'resetpass-expired-soft' => 'Термін дії вашого пароля закінчився, і тепер він повинен бути змінений. Будь ласка, виберіть новий пароль або натисніть «Скасувати», щоб змінити його пізніше.',
+'resetpass-expired-soft' => 'Термін дії вашого пароля закінчився, і тепер він повинен бути змінений. Будь ласка, виберіть новий пароль або натисніть "{{int:resetpass-submit-cancel}}", щоб змінити його пізніше.',
+'resetpass-validity-soft' => 'Ваш пароль є некоректним: $1
+
+Будь ласка, виберіть новий пароль або натисніть «{{int:resetpass-submit-cancel}}», щоб скинути його пізніше.',
 
 # Special:PasswordReset
 'passwordreset' => 'Скинути пароль',
@@ -1089,7 +1092,7 @@ $2
 'newarticle' => '(Нова)',
 'newarticletext' => "Ви перейшли на сторінку, яка поки що не існує.
 
-Щоб створити нову сторінку, наберіть текст у вікні нижче (див. [[{{MediaWiki:Helppage}}|довідкову статтю]], щоб отримати більше інформації).
+Щоб створити нову сторінку, наберіть текст у вікні нижче (див. [$1 довідкову статтю], щоб отримати більше інформації).
 Якщо ви опинились тут помилково, просто натисніть кнопку браузера '''назад'''.",
 'anontalkpagetext' => "----''Це сторінка обговорення анонімного користувача, який ще не зареєструвався або не скористався зареєстрованим обліковим записом.
 Тому ми вимушені використовувати IP-адресу для його ідентифікації.
@@ -1340,9 +1343,10 @@ $3 зазначив таку причину: ''$2''",
 'revdelete-show-file-submit' => 'Так',
 'revdelete-selected' => "'''{{PLURAL:$2|1=Обрана версія|Обрані версії}} сторінки [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|1=Обраний запис|Обрані записи}} журналу:'''",
-'revdelete-text' => "'''Вилучені версії сторінок і подій будуть відображатися в історії сторінки та журналах, але частина їх вмісту не буде доступною звичайним користувачам.'''
-Доступ до прихованого змісту матимуть адміністратори проекту {{SITENAME}}, які зможуть відновити його за допомогою цього ж інтерфейсу,
-крім випадків, коли були встановлені додаткові обмеження власниками сайту.",
+'revdelete-text-text' => 'Видалені версії будуть як і раніше видно в історії сторінки, але їх частини вмісту будуть доступні для учасників.',
+'revdelete-text-file' => 'Видалені версії файлу будуть як і раніше видно в історії сторінки, але їх частини вмісту будуть доступні для учасників.',
+'logdelete-text' => 'Видалені події в журналі будуть як і раніше видно в журналах, але частини їх вмісту будуть доступні для учасників.',
+'revdelete-text-others' => 'Інші адміністратори на {{grammar:genitive|{{SITENAME}}}} як і раніше буде мати можливість доступу до прихованого вмісту і зможуть відновити його знову через цей же інтерфейс, якщо не встановлено додаткові обмеження.',
 'revdelete-confirm' => 'Будь ласка, підтвердить, що ви справді бажаєте це здійснити, усвідомлюєте наслідки та робите це згідно з [[{{MediaWiki:Policy-url}}|правилами]].',
 'revdelete-suppress-text' => "Приховування може відбуватися '''лише''' в таких випадках:
 * Потенційно наклепницькі відомості
@@ -1478,7 +1482,7 @@ $1",
 'search-file-match' => '(збігається із вмістом файлу)',
 'search-suggest' => 'Можливо, ви мали на увазі: $1',
 'search-interwiki-caption' => 'Братні проекти',
-'search-interwiki-default' => '$1 результати:',
+'search-interwiki-default' => 'Результати із $1:',
 'search-interwiki-more' => '(більше)',
 'search-relatedarticle' => "Пов'язаний",
 'searcheverything-enable' => 'Пошук у всіх просторах назв',
@@ -1810,23 +1814,23 @@ $1",
 'rcnotefrom' => 'Нижче відображені редагування з <strong>$2</strong> (до <strong>$1</strong>).',
 'rclistfrom' => 'Показати редагування починаючи з $1.',
 'rcshowhideminor' => '$1 незначні редагування',
-'rcshowhideminor-show' => 'Ð\9fоказати',
-'rcshowhideminor-hide' => 'Ð\9fриховати',
+'rcshowhideminor-show' => 'показати',
+'rcshowhideminor-hide' => 'приховати',
 'rcshowhidebots' => '$1 ботів',
-'rcshowhidebots-show' => 'Ð\9fоказати',
-'rcshowhidebots-hide' => 'Ð\9fриховати',
+'rcshowhidebots-show' => 'показати',
+'rcshowhidebots-hide' => 'приховати',
 'rcshowhideliu' => '$1 зареєстрованих користувачів',
-'rcshowhideliu-show' => 'Ð\9fоказати',
-'rcshowhideliu-hide' => 'Ð\9fриховати',
+'rcshowhideliu-show' => 'показати',
+'rcshowhideliu-hide' => 'приховати',
 'rcshowhideanons' => '$1 анонімів',
-'rcshowhideanons-show' => 'Ð\9fоказати',
-'rcshowhideanons-hide' => 'Ð\9fриховати',
+'rcshowhideanons-show' => 'показати',
+'rcshowhideanons-hide' => 'приховати',
 'rcshowhidepatr' => '$1 перевірені',
-'rcshowhidepatr-show' => 'Ð\9fоказати',
-'rcshowhidepatr-hide' => 'Ð\9fриховати',
+'rcshowhidepatr-show' => 'показати',
+'rcshowhidepatr-hide' => 'приховати',
 'rcshowhidemine' => '$1 мої редагування',
-'rcshowhidemine-show' => 'Ð\9fоказати',
-'rcshowhidemine-hide' => 'Ð\9fриховати',
+'rcshowhidemine-show' => 'показати',
+'rcshowhidemine-hide' => 'приховати',
 'rclinks' => 'Показати останні $1 редагувань за $2 днів<br />$3',
 'diff' => 'різн.',
 'hist' => 'історія',
@@ -1962,6 +1966,7 @@ $1",
 'uploaddisabledtext' => 'Можливість завантаження файлів відключена.',
 'php-uploaddisabledtext' => 'Завантаження файлів вимкнене у налаштуваннях PHP. Будь ласка, перевірте значення file_uploads.',
 'uploadscripted' => 'Файл містить HTML-код або скрипт, який може неправильно обробитися браузером.',
+'uploadscriptednamespace' => 'Цей SVG-файл містить недопустимий простір імен "$1"',
 'uploadinvalidxml' => 'Не вдалося проаналізувати XML у завантаженому файлі.',
 'uploadvirus' => 'Файл містить вірус! Див. $1',
 'uploadjava' => 'Файл є ZIP-архівом, що містить .class-файл Java.
@@ -2219,6 +2224,11 @@ $1',
 # List redirects
 'listredirects' => 'Список перенаправлень',
 
+# List duplicated files special page
+'listduplicatedfiles' => 'Список файлів з дублікатами',
+'listduplicatedfiles-summary' => 'Це список файлів, де остання версія файлу вважається дублікатом останньої версії деяких інших файлів. Враховуються тільки локальні файли.',
+'listduplicatedfiles-entry' => 'У файлу [[:File:$1|$1]] - [[$3|{{PLURAL:$2|один дублікат|$2 дублікатів|$2 дублікат}}]].',
+
 # Unused templates
 'unusedtemplates' => 'Шаблони, що не використовуються',
 'unusedtemplatestext' => 'На цій сторінці показані всі сторінки простору назв «{{ns:template}}», які не включені до інших сторінок. Не забувайте перевірити відсутність інших посилань на шаблон, перш ніж вилучити його.',
@@ -2332,6 +2342,7 @@ $1',
 'deadendpagestext' => 'Наступні сторінки не містять посилань на інші сторінки цієї вікі.',
 'protectedpages' => 'Захищені сторінки',
 'protectedpages-indef' => 'Тільки безстроково захищені',
+'protectedpages-summary' => 'На цій сторінці перераховані сторінки, які на цей момент захищені. Список назв, які захищені від створення див. [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Тільки каскадний захист',
 'protectedpages-noredirect' => 'Сховати перенаправлення',
 'protectedpagesempty' => 'Зараз нема захищених сторінок із зазначеними параметрами',
@@ -2344,6 +2355,7 @@ $1',
 'protectedpages-unknown-timestamp' => 'Невідомо',
 'protectedpages-unknown-performer' => 'Невідомий користувач',
 'protectedtitles' => 'Заборонені назви',
+'protectedtitles-summary' => 'На цій сторінці перераховані назви, які захищені від створення. Для перегляду списку сторінок, які на цей момент захищені, див. [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Зараз нема захищених назв із зазначеними параметрами.',
 'listusers' => 'Список користувачів',
 'listusers-editsonly' => 'Показати лише користувачів, які зробили принаймні одне редагування',
@@ -2622,7 +2634,7 @@ $UNWATCHURL
 'delete-warning-toobig' => 'У цієї сторінки дуже довга історія редагувань, більше $1 {{PLURAL:$1|версії|версій|версій}}.
 Її вилучення може призвести до порушень у роботі бази даних сайту {{SITENAME}};
 дійте обережно.',
-'deleting-backlinks-warning' => "'''Попередження:''' інші сторінки посилаються або містять сторінку, яку ви маєте намір видалити.",
+'deleting-backlinks-warning' => "'''Попередження:'''  [[Special:WhatLinksHere/{{FULLPAGENAME}}|інші сторінки]] посилаються або містять сторінку, яку ви маєте намір видалити.",
 
 # Rollback
 'rollback' => 'Відкинути редагування',
@@ -2674,7 +2686,7 @@ $UNWATCHURL
 Поточні установки для сторінки '''$1''':",
 'protect-locked-access' => "У вашого облікового запису недостатньо прав для зміни рівня захисту сторінки.
 Поточні установки для сторінки: '''$1''':",
-'protect-cascadeon' => 'Ця сторінка захищена, бо вона включена {{PLURAL:$1|1=до зазначеної нижче сторінки, на яку|до нижчезазначених сторінок, на які}} встановлено каскадний захист. Ви можете змінити рівень захисту цієї сторінки, але це не вплине на каскадний захист.',
+'protect-cascadeon' => "Ця сторінка зараз захищена у зв'язку з тим, що вона включена в {{PLURAL:$1/1=зазначену нижче сторінку, для якої|нижченаведені сторінки, для яких}} встановлений каскадний захист. Зміни рівня захисту цієї сторінки не вплине на каскадний захист.",
 'protect-default' => 'Дозволити всім користувачам',
 'protect-fallback' => 'Дозволено тільки користувачам із дозволом «$1»',
 'protect-level-autoconfirmed' => 'Дозволено тільки автопідтвердженим користувачам',
@@ -2793,8 +2805,10 @@ $1',
 'sp-contributions-blocked-notice-anon' => 'Доступ з цієї IP-адреси зараз заблокований.
 Далі наведено останній запис з журналу блокувань:',
 'sp-contributions-search' => 'Пошук внеску',
+'sp-contributions-suppresslog' => 'вилучений внесок користувача',
 'sp-contributions-username' => "IP-адреса або ім'я користувача:",
 'sp-contributions-toponly' => 'Показувати тільки редагування, що є останніми версіями',
+'sp-contributions-newonly' => 'Показувати тільки редагування, які є створеннями сторінок',
 'sp-contributions-submit' => 'Знайти',
 
 # What links here
index e6bf90f..15161f0 100644 (file)
@@ -405,7 +405,6 @@ $1',
 'disclaimers' => 'اعلانات',
 'disclaimerpage' => 'Project:عام اعلان',
 'edithelp' => 'معاونت براۓ ترمیم',
-'helppage' => 'Help:فہرست',
 'mainpage' => 'صفحہ اول',
 'mainpage-description' => 'صفحہ اول',
 'policy-url' => 'Project:حکمتِ عملی',
@@ -748,7 +747,7 @@ $1 نے پابندی لگائی تھی.
 داخلِ نوشتہ ہونے پر اِس جدید کھاتے کیلئے پارلفظ ''[[Special:ChangePassword|پارلفظ کی تبدیلی]]'' میں تبدیل کیا جاسکتا ہے.",
 'newarticle' => '(نیا)',
 'newarticletext' => "آپ نے ایک ایسے صفحے کے ربط کی پیروی کی ہے جو کہ ابھی موجود نہیں ہے.
-یہ صفحہ تخلیق کرنے کیلئے درج ذیل خانہ میں متن درج کیجئے (مزید معلومات کیلئے [[{{MediaWiki:Helppage}}|صفحۂ معاونت]] ملاحظہ فرمائیے).
+یہ صفحہ تخلیق کرنے کیلئے درج ذیل خانہ میں متن درج کیجئے (مزید معلومات کیلئے [$1 صفحۂ معاونت] ملاحظہ فرمائیے).
 اگر آپ یہاں غلطی سے پہنچے ہیں تو پچھلے صفحے پر واپس جانے کیلئے اپنے متصفح پر '''back''' کا بٹن ٹک کیجئے.",
 'anontalkpagetext' => "----''یہ صفحہ ایک ایسے صارف کا ہے جنہوں نے یا تو اب تک اپنا کھاتا نہیں بنایا یا پھر وہ اسے استعمال نہیں کر رہے/ رہی ہیں۔ لہٰذا ہمیں انکی شناخت کے لئے ایک عددی آئی پی پتہ استعمال کرنا پڑرہا ہے۔ اس قسم کا آئی پی پتہ ایک سے زائد صارفین کے لئے مشترک بھی ہوسکتا ہے۔ اگر آپکی موجودہ حیثیت ایک گمنام صارف کی ہے اور آپ محسوس کریں کہ اس صفحہ پر آپکی جانب منسوب یہ بیان غیرضروری ہے تو براہ کرم [[Special:UserLogin/signup|کھاتہ بنائیں]] یا [[Special:UserLogin|داخلِ نوشتہ]] ہوجائیے تاکہ مستقبل میں آپکو گمنام صارفین میں شمار کرنے سے پرہیز کیا جاسکے۔\"",
 'noarticletext' => 'اِس صفحہ میں فی الحال کوئی متن موجود نہیں ہے.
index d9240ce..17cf49c 100644 (file)
@@ -109,6 +109,23 @@ $magicWords = array(
 $linkTrail = '/^([a-zʻʼ“»]+)(.*)$/sDu';
 $linkPrefixCharset = 'a-zA-Z\\x80-\\xffʻʼ«„';
 
+/**
+ * Formats need to be overwritten. Others are inherited automatically
+ */
+$dateFormats = array(
+       'dmy date' => 'j-F Y',
+       'dmy both' => 'H:i, j-F Y',
+       'dmy pretty' => 'j-F'
+);
+
+/**
+ * Transform table for decimal point '.' and thousands separator ','
+ */
+$separatorTransformTable = array(
+       '.' => ',',
+       ',' => "\xc2\xa0", # nbsp
+);
+
 $messages = array(
 # User preference toggles
 'tog-underline' => 'Havolalarning tagiga chizish:',
@@ -118,9 +135,9 @@ $messages = array(
 'tog-extendwatchlist' => 'Kengaytirilgan kuzatuv roʻyxati: faqat oxirgi paytdagi emas, barcha oʻzgarishlar koʻrsatiladi',
 'tog-usenewrc' => 'Yangi oʻzgarishlar va kuzatuv roʻyxatidagi sahifalarni guruhlarga boʻlish (JavaScript orqali)',
 'tog-numberheadings' => 'Sarlavhalarni avtomatik raqamlash',
-'tog-showtoolbar' => 'Tahrirlash asboblari joylashgan yoʻlakchani koʻrsatish (JavaScript orqali)',
-'tog-editondblclick' => 'Sichqoncha tugmasini ikki marta bosish orqali tahrirlashni boshlash',
-'tog-editsectiononrightclick' => 'Boʻlim sarlavhasiga sichqonchaning oʻng tugmasi bilan bosib tahrirlashni boshlash',
+'tog-showtoolbar' => 'Yuqoridagi tahrirlash asboblarini koʻrsatish',
+'tog-editondblclick' => 'Sichqonchaning chap tugmasini ikki marta bosib tahrirlashni boshlash',
+'tog-editsectiononrightclick' => 'Boʻlim sarlavhasiga sichqonchaning oʻng tugmasini bosib tahrirlashni boshlash',
 'tog-rememberpassword' => 'Hisob ma’lumotlarim ushbu brauzerda eslab qolinsin (ko‘pi bilan $1 kunga)',
 'tog-watchcreations' => 'Men yaratgan sahifalar va yuklagan fayllar kuzatuv roʻyxatimga qoʻshilsin',
 'tog-watchdefault' => 'Men tahrirlagan sahifa va fayllar kuzatuv roʻyxatimga qoʻshilsin',
@@ -137,7 +154,7 @@ $messages = array(
 'tog-oldsig' => 'Joriy imzo:',
 'tog-fancysig' => 'Imzoni viki-belgi qilib koʻrsatish (avtomatik ishoratsiz)',
 'tog-uselivepreview' => 'Tez koʻrib chiqish (JavaScript orqali) (sinovda)',
-'tog-forceeditsummary' => 'Qisqa tavsif oynasi toʻldirilmagani haqida ogohlantirish koʻrsatilsin',
+'tog-forceeditsummary' => 'Qisqa tavsif oynasi toʻldirilmagani haqida ogohlantirish koʻrsatish',
 'tog-watchlisthideown' => 'Oʻz tahrirlarim kuzatuv roʻyxatimda koʻrsatilmasin',
 'tog-watchlisthidebots' => 'Botlar qilgan tahrirlar kuzatuv roʻyxatimda koʻrsatilmasin',
 'tog-watchlisthideminor' => 'Kichik tahrirlar kuzatuv roʻyxatimda koʻrsatilmasin',
@@ -147,9 +164,8 @@ $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' => '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',
+'tog-useeditwarning' => 'Oʻzgarishlarni saqlamay sahifadan chiqib ketayotganim haqida ogohlantirish',
 'tog-prefershttps' => 'Doim himoyalangan holda kirish',
 
 'underline-always' => 'Har doim',
@@ -190,18 +206,18 @@ $messages = array(
 'october' => 'oktabr',
 'november' => 'noyabr',
 'december' => 'dekabr',
-'january-gen' => 'yanvarning',
-'february-gen' => 'fevralning',
-'march-gen' => 'martning',
-'april-gen' => 'aprelning',
-'may-gen' => 'mayning',
-'june-gen' => 'iyunning',
-'july-gen' => 'iyulning',
-'august-gen' => 'avgustning',
-'september-gen' => 'sentabrning',
-'october-gen' => 'oktabrning',
-'november-gen' => 'noyabrning',
-'december-gen' => 'dekabrning',
+'january-gen' => 'yanvar',
+'february-gen' => 'fevral',
+'march-gen' => 'mart',
+'april-gen' => 'aprel',
+'may-gen' => 'may',
+'june-gen' => 'iyun',
+'july-gen' => 'iyul',
+'august-gen' => 'avgust',
+'september-gen' => 'sentabr',
+'october-gen' => 'oktabr',
+'november-gen' => 'noyabr',
+'december-gen' => 'dekabr',
 'jan' => 'yan',
 'feb' => 'fev',
 'mar' => 'mar',
@@ -214,6 +230,17 @@ $messages = array(
 'oct' => 'okt',
 'nov' => 'noy',
 'dec' => 'dek',
+'january-date' => 'Yanvar $1',
+'february-date' => 'Fevral $1',
+'march-date' => 'Mart $1',
+'april-date' => 'Aprel $1',
+'june-date' => 'Iyun $1',
+'july-date' => 'Iyul $1',
+'august-date' => 'Avgust $1',
+'september-date' => 'Sentabr $1',
+'october-date' => 'Oktabr $1',
+'november-date' => 'Noyabr $1',
+'december-date' => 'Dekabr $1',
 
 # Categories related messages
 'pagecategories' => '{{PLURAL:$1|Turkum}}',
@@ -293,7 +320,8 @@ $messages = array(
 'create-this-page' => 'Ushbu sahifani yaratish',
 'delete' => 'O‘chirish',
 'deletethispage' => 'Ushbu sahifani o‘chirish',
-'undelete_short' => '$1 ta tahrirni tiklash',
+'undeletethispage' => 'Ushbu sahifani tiklash',
+'undelete_short' => '{{PLURAL:$1|bitta tahrir|$1 ta tahrir}}ni tiklash',
 'viewdeleted_short' => '$1 ta oʻchirilgan tahrirni koʻrish',
 'protect' => 'Himoyalash',
 'protect_change' => 'Oʻzgartirish',
@@ -339,14 +367,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).
 'aboutsite' => '{{SITENAME}} haqida',
 'aboutpage' => 'Project:Haqida',
-'copyright' => 'Keltirilgan maʼlumotlar $1 orqali tarqatilmoqda.',
+'copyright' => 'Keltirilgan maʼlumotlar $1 orqali tarqatilmoqda (agar aksinchasi koʻrsatilmagan boʻlsa).',
 'copyrightpage' => '{{ns:project}}:Mualliflik huquqlari',
 'currentevents' => 'Joriy hodisalar',
 'currentevents-url' => 'Project:Joriy hodisalar',
 'disclaimers' => 'Ogohlantirishlar',
 'disclaimerpage' => 'Project:Umumiy ogohlantirish',
 'edithelp' => 'Tahrirlash yordami',
-'helppage' => 'Help:Mundarija',
 'mainpage' => 'Bosh sahifa',
 'mainpage-description' => 'Bosh sahifa',
 'policy-url' => 'Project:Qoida',
@@ -480,17 +507,19 @@ Brauzeringiz keshini tozalamaguningizgacha ayrim sahifalar tizimga kirganingizde
 'gotaccountlink' => 'Kirish',
 'userlogin-resetlink' => 'Kirish maʻlumotlaringiz esdan chiqdimi?',
 'userlogin-resetpassword-link' => 'Unutib qoʻydingizmi?',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Kirish uchun yordam]]',
 'userlogin-loggedin' => 'Siz {{GENDER:$1|$1}} nomi bilan kirgansiz.
 Boshqa hisob raqami orqali kirish uchun quyidagi formadan foydalaning.',
 'userlogin-createanother' => 'Boshqa hisob yaratish',
 'createacct-join' => 'Maʼlumotlaringizni quyiga yozing',
 'createacct-another-join' => 'Yangi hisob yozuvi maʼlumotlarini quyida koʻrsating.',
+'createacct-emailrequired' => 'Elektron pochta manzilingiz',
 'createacct-emailoptional' => 'Elektron pochta manzili (majburiy emas)',
-'createacct-email-ph' => 'Elektron pochtangiz manzilini kiriting',
+'createacct-email-ph' => 'Elektron pochta manzilingizni kiriting',
 'createacct-another-email-ph' => 'Elektron pochta manzilini kiriting',
 'createaccountmail' => 'Tasodifan tanlab beriladigan vaqtinchalik maxfiy soʻzdan foydalanish (elektron pochta manzilingizga joʻnatiladi)',
 'createaccountreason' => 'Sabab:',
+'createacct-reason' => 'Sabab',
+'createacct-reason-ph' => 'Nimaga yana boshqa hisob yaratyapsiz',
 'createacct-captcha' => 'Xavfsizlik tekshiruvi',
 'createacct-imgcaptcha-ph' => 'Yuqoridagi yozuvni bu yerga kiriting',
 'createacct-submit' => 'Hisob yaratish',
@@ -512,12 +541,15 @@ Ism yozilishini tekshirib koʻring.',
 'wrongpasswordempty' => 'Maxfiy soʻz koʻrsatilmagan. Qaytadan urinib koʻring.',
 'mailmypassword' => 'Maxfiy soʻzni yangilash',
 'passwordremindertitle' => "{{SITENAME}} uchun vaqtinchalik yangi maxfiy so'z",
-'emailauthenticated' => 'Sizning elektron pochta manzilingiz $2, $3 da tasdiqlangan.',
-'emailconfirmlink' => 'Sizning elektron pochta manzilingizni tasdiqlash',
+'emailauthenticated' => 'Elektron pochta manzilingiz $2, $3 da tasdiqlangan.',
+'emailconfirmlink' => 'Elektron pochta manzilingizni tasdiqlash',
 'emaildisabled' => 'Bu sayt elektron pochta xatlarini yubora olmaydi.',
 'accountcreated' => 'Hisob yozuvi yaratildi',
 'login-abort-generic' => 'Tizimga kirishga mufavvaqiyatsiz urinish',
 'loginlanguagelabel' => 'Til: $1',
+'pt-login' => 'Kirish',
+'pt-createaccount' => 'Hisob yaratish',
+'pt-userlogout' => 'Chiqish',
 
 # Change password dialog
 'changepassword' => 'Maxfiy soʻzni oʻzgartirish',
@@ -538,7 +570,7 @@ Ism yozilishini tekshirib koʻring.',
 'passwordreset-legend' => 'Maxfiy soʻzni yangilash',
 'passwordreset-username' => 'Foydalanuvchi nomi:',
 'passwordreset-domain' => 'Domen:',
-'passwordreset-email' => 'Elektron pochta manzili:',
+'passwordreset-email' => 'Elektron pochta manzilingiz:',
 'passwordreset-emailelement' => "Foydalanuvchi ismi: $1
 Vaqtinchalik maxfiy so'z: $2",
 
@@ -605,7 +637,7 @@ Sizning hozirgi IP manzilingiz - $3, chetlashtirish raqamingiz - #$5. Arizaga bu
 '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).
+Sahifani yaratish uchun quyida matn kiritishingiz mumkin (qoʻshimcha axborot uchun [$1 yordam sahifasini] koʻring).
 Agar bu sahifaga xatolik sabab kelib qolgan boʻlsangiz brauzeringizning '''orqaga''' tugmasini bosing.",
 'anontalkpagetext' => "----''Ushbu munozara sahifasi hali hisob yozuvini yaratmagan, yoki undan foydalanmaydigan anonim ishtirokchiga tegishli.
 Shu sababli tenglashtirish uchun raqamli IP-manzildan foydalaniladi.
@@ -951,10 +983,10 @@ Agar keltirsangiz, undan sahifa kim tomonidan tahrirlanganini koʻrsatish uchun
 'recentchanges-label-minor' => 'Bu tahrir kichik deb belgilangan',
 'recentchanges-label-bot' => 'Bu tahrirni bot bajargan',
 'recentchanges-label-unpatrolled' => 'Bu tahrir hali tekshirilmagan',
-'recentchanges-label-plusminus' => 'vazni qanchaga oʻzgargani (bayt)',
+'recentchanges-label-plusminus' => 'Sahifa vazni qanchaga oʻzgargani (bayt)',
 'recentchanges-legend-heading' => "'''Izoh:'''",
 'recentchanges-legend-newpage' => '([[Special:NewPages|alohida roʻyxat]])',
-'rcnotefrom' => "Quyida <strong>$2</strong> dan (<strong>$1</strong> gacha) bo'lgan o'zgarishlar keltirilgan.",
+'rcnotefrom' => 'Quyida <strong>$2</strong>dan boshlab boʻlgan oʻzgarishlar keltirilgan (<strong>$1</strong>dan koʻp boʻlmaganlari koʻrsatildi).',
 'rclistfrom' => '$1 dan boshlab yangi oʻzgarishlarni koʻrsat.',
 'rcshowhideminor' => 'Kichik tahrirlarni $1',
 'rcshowhidebots' => 'Botlarni $1',
@@ -1026,6 +1058,8 @@ Quyida bu sahifaga oid yoʻqotish va koʻchirish qaydlari keltirilgan:',
 'listfiles_size' => 'Oʻlchami',
 'listfiles_description' => 'Taʼrif',
 'listfiles_count' => 'Versiyalar',
+'listfiles-latestversion-yes' => 'Ha',
+'listfiles-latestversion-no' => 'Yoʻq',
 
 # File description page
 'file-anchor-link' => 'Fayl',
@@ -1069,6 +1103,9 @@ Uning [$2 fayl tavsifi sahifasidan] olingan tavsifi quyida keltirilgan.',
 # Random page
 'randompage' => 'Tasodifiy sahifa',
 
+# Random page in category
+'randomincategory-selectcategory-submit' => 'Oʻtish',
+
 # Statistics
 'statistics' => 'Statistika',
 'statistics-header-pages' => 'Sahifalar statistikasi',
@@ -1084,6 +1121,9 @@ Uning [$2 fayl tavsifi sahifasidan] olingan tavsifi quyida keltirilgan.',
 'statistics-users-active' => 'Faol foydalanuvchilar',
 'statistics-users-active-desc' => 'Oxirgi $1 kun ichida kamida bitta amal qilgan foydalanuvchilar',
 
+'pageswithprop-prop' => 'Xossa nomi:',
+'pageswithprop-submit' => 'Oʻtish',
+
 # Miscellaneous special pages
 'nbytes' => '$1 {{PLURAL:$1|bayt}}',
 'ncategories' => '$1 {{PLURAL:$1|turkum|turkumlar}}',
@@ -1115,13 +1155,13 @@ Uning [$2 fayl tavsifi sahifasidan] olingan tavsifi quyida keltirilgan.',
 
 # Special:Log
 'specialloguserlabel' => 'Ijrochi:',
-'speciallogtitlelabel' => 'Moʻljal (foydalanuvchi yoki sahifa nomi):',
+'speciallogtitlelabel' => 'Moʻljal:',
 'log' => 'Qaydlar',
 'all-logs-page' => 'Barcha ochiq qaydlar',
-'alllogstext' => "{{SITENAME}}dagi barcha jurnallar roʻyxati.
+'alllogstext' => '{{SITENAME}}dagi barcha jurnallar roʻyxati.
 Natijalarni jurnal nomi, foydalanuvchi nomi (harflar katta-kichikligi inobatga olinadi) yoki sahifa nomi boʻyicha saralashingiz mumkin.
-* Biror foydalanuvchi ''amalga oshirgan qaydni'', uning foydalanuvchi nomini \"Ijrochi\" oynasiga kiritib qidirish mumkin.
-* Biror foydalanuvchi yoki sahifaga ''nisbatan'' amalga oshirilgan qaydni, ularning nomini \"Moʻljal\" oynasiga kiritib qidirish mumkin.",
+* Biror foydalanuvchi amalga oshirgan qaydni topish uchun uning foydalanuvchi nomini „Ijrochi“ oynasiga kiriting.
+* Biror foydalanuvchi yoki sahifaga nisbatan amalga oshirilgan qaydni topish uchun ulardan birining nomini „Moʻljal“ oynasiga kiriting.',
 'logempty' => 'Talabga mos yozuvlar mavjud emas.',
 'log-title-wildcard' => 'Shu matndan boshlanuvchi sarlavhalarni izlash',
 
@@ -1552,8 +1592,8 @@ Umumiy omborda [[:$1]] mavjud. Faylning bu nomga qayta nomlanishi faylning umumi
 'tooltip-n-portal' => 'Loyiha haqida, nimalar qilishingiz mumkin, nimalarni qayerdan topish mumkin',
 'tooltip-n-currentevents' => 'Joriy hodisalar haqida ma’lumot olish',
 '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-n-randompage' => 'Tasodifiy sahifaga oʻtish',
+'tooltip-n-help' => 'Qisqa va loʻnda maʼlumotnoma',
 '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",
index b6dd205..336bc16 100644 (file)
@@ -406,7 +406,6 @@ $1',
 'disclaimers' => 'Avertense',
 'disclaimerpage' => 'Project:Avertense xenerali',
 'edithelp' => 'Guida',
-'helppage' => 'Help:Ajuto',
 'mainpage' => 'Pajina prinsipałe',
 'mainpage-description' => 'Pajina prinsipałe',
 'policy-url' => 'Project:Policy',
@@ -595,8 +594,6 @@ Nó desmentegarte de personałixare łe [[Special:Preferences|prefarense de {{SI
 'gotaccountlink' => 'Entra',
 'userlogin-resetlink' => "Desmentegà i to dati d'aceso?",
 'userlogin-resetpassword-link' => "Te gheto desmentegà ła paroła d'ordine?",
-'helplogin-url' => 'Help:Login',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ajuto col login]]',
 'createacct-join' => 'Meti le to informassion qua soto.',
 'createacct-emailrequired' => 'Indirisso e-mail',
 'createacct-emailoptional' => 'Indiriso e-mail (opsionałe)',
@@ -831,7 +828,7 @@ La password par sta nova utensa la pode vegner canbià, dopo ver fato l'acesso,
 'newarticle' => '(Novo)',
 'newarticletext' => "Te ghe sì 'ndà drio a un colegamento a na pagina che no esiste gnancora.
 Se te voli crear sta pagina, taca scrìvar el testo in te la casèla qua soto
-(varda le [[{{MediaWiki:Helppage}}|pagine de ajuto]] par saverghene de pì).
+(varda le [$1 pagine de ajuto] par saverghene de pì).
 Se te sì rivà qua par sbajo, basta che te struchi '''Indrìo''' sul to browser.",
 'anontalkpagetext' => "----''Sta qua la xe la pagina de discussion de un utente anonimo che no'l se gà gnancora registrà o che no'l xe entrà col so nome utente.
 De conseguenza xè necessario identificarlo tramite l'indirizo IP numerico.
@@ -1056,8 +1053,6 @@ Te połi uncora vixuałixare sto confronto; controłare el [{{fullurl:{{#Special
 'revdelete-show-file-submit' => 'Sì',
 'revdelete-selected' => "'''{{PLURAL:$2|Version selezionà|Versioni selezionà}} de [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Evento del registro selezionà|Eventi del registro selezionè}}:'''",
-'revdelete-text' => "'''Le revision e le azion scancelàe le restarà visibili ne la cronologia de la pagina, ma parte del testo contegnùo no'l sarà visìbile al publico.'''
-I altri aministradori de {{SITENAME}} i podarà vardar istesso i contenuti sconti e ripristinarli atraverso questa stessa interfacia, se no xe stà inpostà altre limitazion.",
 'revdelete-confirm' => 'Par piaser, conferma che vol far sta azion, che te capissi le so conseguense, e che te sì drio operar secondo le [[{{MediaWiki:Policy-url}}|linee guida]].',
 'revdelete-suppress-text' => "La sopression la se dovarìa doparar '''solo''' in sti casi qua:
 
index a5a3236..b007ae6 100644 (file)
@@ -334,7 +334,6 @@ $1",
 'disclaimers' => 'Pučind vastusenpidandaspäi',
 'disclaimerpage' => 'Project:Pučind vastusenpidandaspäi',
 'edithelp' => 'Abu redaktiruindas',
-'helppage' => 'Help:südäiolend',
 'mainpage' => 'Pälehtpol’',
 'mainpage-description' => 'Pälehtpol’',
 'policy-url' => 'Project:Ohjandimed',
@@ -699,7 +698,7 @@ Voib olda, se om sirtud vai čutud poiš lugemižen aigan.',
 'accmailtitle' => 'Peitsana om oigetud.',
 'newarticle' => '(Uz’)',
 'newarticletext' => "Tö tulit kosketustme lehtpolele, kudamb ei olend tehtud völ.
-Miše säta lehtpol', kirjutaškakat alemba sijatud iknas (kc. [[{{MediaWiki:Helppage}}|abun lehtpol']], miše sada ližainformacijad).
+Miše säta lehtpol', kirjutaškakat alemba sijatud iknas (kc. [$1 abun lehtpol'], miše sada ližainformacijad).
 Ku tö olet petnus tänna tuldes, pingat teiden kaclimen '''tagaze'''-kingitimele.",
 'noarticletext' => 'Necil lehtpolel ei ole nügüd\' tekstad.
 Tö voit [[Special:Search/{{PAGENAME}}|ectä nece nimi]] toižil lehtpolil,
@@ -866,8 +865,6 @@ Detalid voidas olda [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'revdelete-show-file-submit' => 'Ka',
 'revdelete-selected' => "'''{{PLURAL:$2|Valitud versii|Valitud versijad}} lehtpolišpäi [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Valitud kirjutez aigkirjas|Valitud kirjutesed aigkirjas}}:'''",
-'revdelete-text' => "'''Čutud versijad ozutadas lehtpolen istorijas da aigkirjoiš, no järgeližed lugijad ei voiškakoi nähta niiden südäimišton erasid paloid.'''
-Administratorad voiškatas lugeda peittud südäimištod da endištada sidä necen interfeisan kal't siloi, konz ei ole ližakaidendusid.",
 'revdelete-legend' => 'Säta kaidendused',
 'revdelete-hide-text' => 'Redakcijan tekst',
 'revdelete-hide-image' => 'Peitta failan südäiolend',
index 3ab410c..ad1270f 100644 (file)
@@ -375,7 +375,6 @@ $messages = array(
 'tog-ccmeonemails' => 'Gửi bản sao cho tôi khi gửi thư điện tử cho người khác',
 'tog-diffonly' => 'Không hiển thị nội dung trang dưới phần so sánh phiên bản',
 'tog-showhiddencats' => 'Hiển thị thể loại ẩn',
-'tog-noconvertlink' => 'Tắt liên kết chuyển đổi tựa đề',
 'tog-norollbackdiff' => 'Không so sánh sau khi lùi sửa',
 'tog-useeditwarning' => 'Cảnh báo khi tôi thoát trang sửa đổi mà chưa lưu trang',
 'tog-prefershttps' => 'Luôn kết nối an toàn khi đăng nhập',
@@ -587,7 +586,6 @@ $1',
 'disclaimers' => 'Phủ nhận',
 'disclaimerpage' => 'Project:Phủ nhận chung',
 'edithelp' => 'Trợ giúp sửa đổi',
-'helppage' => 'Help:Nội dung',
 'mainpage' => 'Trang Chính',
 'mainpage-description' => 'Trang Chính',
 'policy-url' => 'Project:Quy định và hướng dẫn',
@@ -782,8 +780,7 @@ Hãy nhớ thay đổi [[Special:Preferences|tùy chọn cá nhân {{SITENAME}}]
 'gotaccountlink' => 'Đăng nhập',
 'userlogin-resetlink' => 'Quên mất thông tin đăng nhập?',
 'userlogin-resetpassword-link' => 'Quên mật khẩu?',
-'helplogin-url' => 'Help:Đăng nhập',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Trợ giúp đăng nhập]]',
+'userlogin-helplink2' => 'Trợ giúp đăng nhập',
 'userlogin-loggedin' => 'Bạn đã đăng nhập với tên {{GENDER:$1}}$1.
 Hãy sử dụng biểu mẫu ở dưới để đăng nhập với tài khoản người dùng khác.',
 'userlogin-createanother' => 'Mở thêm tài khoản',
@@ -866,7 +863,8 @@ Xin hãy bỏ qua thông điệp này nếu tài khoản này không phải do b
 
 Nếu bạn đồng ý cung cấp, nó sẽ dùng để ghi nhận công lao của bạn.',
 'pt-login' => 'Đăng nhập',
-'pt-createaccount' => 'Tạo tài khoản',
+'pt-login-button' => 'Đăng nhập',
+'pt-createaccount' => 'Mở tài khoản',
 'pt-userlogout' => 'Đăng xuất',
 
 # Email sending
@@ -896,7 +894,10 @@ Có thể bạn đã thay đổi thành công mật khẩu của mình hoặc đ
 'resetpass-temp-password' => 'Mật khẩu tạm:',
 'resetpass-abort-generic' => 'Một phần mở rộng đã hủy bỏ tác vụ thay đổi mật khẩu.',
 'resetpass-expired' => 'Mật khẩu của bạn đã hết hạn. Xin vui lòng tạo lại mật khẩu mới để đăng nhập.',
-'resetpass-expired-soft' => 'Mật khẩu của bạn đã hết hạn và cần được đặt lại. Xin vui lòng chọn một mật khẩu mới lúc bây giờ hoặc bấm Hủy bỏ để đặt lại sau.',
+'resetpass-expired-soft' => 'Mật khẩu của bạn đã hết hạn và cần được đặt lại. Xin vui lòng chọn một mật khẩu mới lúc bây giờ hoặc bấm “{{int:resetpass-submit-cancel}}” để đặt lại sau.',
+'resetpass-validity-soft' => 'Mật khẩu của bạn không hợp lệ: $1
+
+Xin hãy chọn mật khẩu mới bây giờ hoặc bấm “{{int:resetpass-submit-cancel}}” để đặt lại sau.',
 
 # Special:PasswordReset
 'passwordreset' => 'Tái tạo mật khẩu',
@@ -1043,7 +1044,7 @@ Có thể nó đã bị di chuyển hoặc xóa đi trong khi bạn đang xem tr
 'accmailtitle' => 'Đã gửi mật khẩu.',
 'accmailtext' => "Một mật khẩu được tạo ngẫu nhiên cho [[User talk:$1|$1]] đã được gửi đến $2. Có thể đổi mật khẩu tại trang ''[[Special:ChangePassword|đổi mật khẩu]]'' sau khi đã đăng nhập.",
 'newarticle' => '(Mới)',
-'newarticletext' => "Bạn đi đến đây từ một liên kết đến một trang chưa tồn tại. Để tạo trang, hãy bắt đầu gõ vào ô bên dưới (xem [[{{MediaWiki:Helppage}}|trang trợ giúp]] để có thêm thông tin). Nếu bạn đến đây do nhầm lẫn, chỉ cần nhấn vào nút '''Lùi''' (hoặc Trở lại, Quay lại, Back) trong trình duyệt của bạn.",
+'newarticletext' => "Bạn đi đến đây từ một liên kết đến một trang chưa tồn tại. Để tạo trang, hãy bắt đầu gõ vào ô bên dưới (xem [$1 trang trợ giúp] để có thêm thông tin). Nếu bạn đến đây do nhầm lẫn, chỉ cần nhấn vào nút '''Lùi''' (hoặc Trở lại, Quay lại, Back) trong trình duyệt của bạn.",
 'anontalkpagetext' => "----''Đây là trang thảo luận của một người dùng vô danh chưa tạo tài khoản hoặc có tài khoản nhưng không đăng nhập.
 Do đó chúng ta phải dùng một dãy số gọi là địa chỉ IP để xác định anh/chị ta.
 Một địa chỉ IP như vậy có thể có nhiều người cùng dùng chung.
@@ -1284,8 +1285,10 @@ hoặc bạn đang tìm cách ẩn phiên bản hiện tại.',
 'revdelete-show-file-submit' => 'Có',
 'revdelete-selected' => "'''{{PLURAL:$2|Phiên bản|Các phiên bản}} được chọn của [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Nhật trình đã chọn|Các nhật trình đã chọn}}:'''",
-'revdelete-text' => "'''Các phiên bản và sự kiện bị xóa sẽ vẫn xuất hiện trong lịch sử trang và nhật trình, nhưng mọi người sẽ không xem được một số phần của các nội dung đó.'''
-Các quản lý khác ở {{SITENAME}} vẫn có thể truy nhập vào nội dung ẩn và phục hồi lại bằng cách dùng giao diện này, trừ trường hợp thiết lập thêm một số hạn chế.",
+'revdelete-text-text' => 'Các phiên bản đã xóa sẽ tiếp tục xuất hiện trong lịch sử trang, nhưng một số phần của nội dung sẽ bị ẩn khỏi công chúng.',
+'revdelete-text-file' => 'Các phiên bản tập tin đã xóa sẽ tiếp tục xuất hiện trong lịch sử tập tin, nhưng một số phần của nội dung sẽ bị ẩn khỏi công chúng.',
+'logdelete-text' => 'Các sự kiện đã xóa sẽ tiếp tục xuất hiện trong nhật trình, nhưng một số phần của nội dung sẽ bị ẩn khỏi công chúng.',
+'revdelete-text-others' => 'Các bảo quản viên khác trên {{SITENAME}} sẽ vẫn có quyền truy cập nội dung ẩn và có thể phục hồi nó qua cùng giao diện này, trừ khi có hạn chế bổ sung.',
 'revdelete-confirm' => 'Xin hãy xác nhận rằng bạn có ý định xóa, nhận biết tầm quan trọng của việc này, và việc xóa tuân theo [[{{MediaWiki:Policy-url}}|quy định]].',
 'revdelete-suppress-text' => "Việc ẩn giấu '''chỉ''' nên dùng trong các trường hợp sau:
 * Thông tin có thể phỉ báng
@@ -1420,7 +1423,7 @@ Xem chi tiết trong [{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}}
 'search-file-match' => '(khớp nội dung tập tin)',
 'search-suggest' => 'Có phải bạn muốn tìm: $1',
 'search-interwiki-caption' => 'Các dự án liên quan',
-'search-interwiki-default' => '$1 kết quả:',
+'search-interwiki-default' => 'Kết quả từ $1:',
 'search-interwiki-more' => '(thêm)',
 'search-relatedarticle' => 'Liên quan',
 'searcheverything-enable' => 'Tìm trong tất cả không gian tên',
@@ -1746,7 +1749,7 @@ Nếu bạn đồng ý cung cấp, nó sẽ dùng để ghi nhận công lao c
 'recentchanges-legend-heading' => "'''Chú giải:'''",
 'recentchanges-legend-newpage' => '(xem thêm [[Special:NewPages|danh sách các trang mới]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "Thay đổi từ '''$2''' (hiển thị tối đa '''$1''' thay đổi).",
+'rcnotefrom' => 'Thay đổi từ <strong>$2</strong> (hiển thị tối đa <strong>$1</strong> thay đổi).',
 'rclistfrom' => 'Hiển thị các thay đổi từ $1.',
 'rcshowhideminor' => '$1 sửa đổi nhỏ',
 'rcshowhideminor-show' => 'Hiện',
@@ -1758,8 +1761,14 @@ Nếu bạn đồng ý cung cấp, nó sẽ dùng để ghi nhận công lao c
 'rcshowhideliu-show' => 'Hiện',
 'rcshowhideliu-hide' => 'Ẩn',
 'rcshowhideanons' => '$1 sửa đổi vô danh',
+'rcshowhideanons-show' => 'Hiện',
+'rcshowhideanons-hide' => 'Ẩn',
 'rcshowhidepatr' => '$1 sửa đổi đã tuần tra',
+'rcshowhidepatr-show' => 'Hiện',
+'rcshowhidepatr-hide' => 'Ẩn',
 'rcshowhidemine' => '$1 sửa đổi của tôi',
+'rcshowhidemine-show' => 'Hiện',
+'rcshowhidemine-hide' => 'Ẩn',
 'rclinks' => 'Xem $1 sửa đổi gần đây nhất trong $2 ngày qua; $3.',
 'diff' => 'khác',
 'hist' => 'sử',
@@ -1886,6 +1895,7 @@ Bạn nên xin một người có quyền xem dữ liệu tập tin bị đàn 
 'uploaddisabledtext' => 'Chức năng tải tập tin đã bị tắt.',
 'php-uploaddisabledtext' => 'Việc tải tập tin trong PHP đã bị tắt. Xin hãy kiểm tra lại thiết lập file_uploads.',
 'uploadscripted' => 'Tập tin này có chứa mã HTML hoặc kịch bản có thể khiến trình duyệt web thông dịch sai.',
+'uploadscriptednamespace' => 'Tập tin SVG này chứa không gian tên “$1” không được cho phép',
 'uploadinvalidxml' => 'Không thể phân tích mã XML trong tập tin tải lên.',
 'uploadvirus' => 'Tập tin có virút! Chi tiết: $1',
 'uploadjava' => 'Tập tin ZIP này chứa một tập tin Java .class.
@@ -2256,7 +2266,7 @@ Các mục <del>bị gạch bỏ</del> là các trang đã được sửa.',
 'deadendpagestext' => 'Các trang này không có liên kết đến trang khác trong {{SITENAME}}.',
 'protectedpages' => 'Trang bị khóa',
 'protectedpages-indef' => 'Chỉ hiển thị khóa vô hạn',
-'protectedpages-summary' => 'Danh sách này liệt kê các trang hiện đang bị khóa. Xem danh sách các tên trang bị khóa không được tạo ra tại [[{{#special:ProtectedTitles}}]].',
+'protectedpages-summary' => 'Danh sách này liệt kê các trang hiện đang bị khóa. Xem danh sách các tên trang bị khóa không được tạo ra tại [[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]].',
 'protectedpages-cascade' => 'Chỉ hiển thị khóa theo tầng',
 'protectedpages-noredirect' => 'Ẩn trang đổi hướng',
 'protectedpagesempty' => 'Hiện không có trang nào bị khóa với các thông số này.',
@@ -2269,7 +2279,7 @@ Các mục <del>bị gạch bỏ</del> là các trang đã được sửa.',
 'protectedpages-unknown-timestamp' => 'Không rõ',
 'protectedpages-unknown-performer' => 'Người dùng không rõ',
 'protectedtitles' => 'Tên trang bị khóa',
-'protectedtitles-summary' => 'Danh sách này liệt kê các tên trang bị khóa không được tạo ra. Xem danh sách các trang tồn tại bị khóa tại [[{{#special:ProtectedPages}}]].',
+'protectedtitles-summary' => 'Danh sách này liệt kê các tên trang bị khóa không được tạo ra. Xem danh sách các trang tồn tại bị khóa tại [[{{#special:ProtectedPages}}|{{int:protectedpages}}]].',
 'protectedtitlesempty' => 'Không có tựa trang nào bị khóa với các thông số như vậy.',
 'listusers' => 'Danh sách thành viên',
 'listusers-editsonly' => 'Chỉ hiện thành viên có tham gia sửa đổi',
@@ -2541,7 +2551,7 @@ Việc xóa các trang như vậy bị hạn chế để ngăn ngừa phá hoạ
 'delete-warning-toobig' => 'Trang này có lịch sử sửa đổi lớn, đến hơn {{PLURAL:$1|lần|lần}} sửa đổi.
 Việc xóa các trang có thể làm tổn hại đến hoạt động của cơ sở dữ liệu {{SITENAME}};
 hãy cẩn trọng khi thực hiện.',
-'deleting-backlinks-warning' => "'''Cảnh báo:''' Có trang khác liên kết đến hoặc nhúng trang mà bạn sắp xóa.",
+'deleting-backlinks-warning' => "'''Cảnh báo:''' Có [[Special:WhatLinksHere/{{FULLPAGENAME}}|trang khác]] liên kết đến hoặc nhúng trang mà bạn sắp xóa.",
 
 # Rollback
 'rollback' => 'Lùi tất cả sửa đổi',
@@ -2592,7 +2602,7 @@ hiện tại của trang '''$1''':",
 Đây là trạng thái hiện tại của trang '''$1''':",
 'protect-locked-access' => "Tài khoản của bạn không được cấp quyền đổi mức khóa của trang.
 Đây là trạng thái hiện tại của trang '''$1''':",
-'protect-cascadeon' => 'Trang này hiện bị khóa vì nó được nhúng vào {{PLURAL:$1|những trang|trang}} dưới đây bị khóa với tùy chọn “khóa theo tầng” được kích hoạt. Bạn có thể đổi mức độ khóa của trang này, nhưng nó sẽ không ảnh hưởng đến việc khóa theo tầng.',
+'protect-cascadeon' => 'Trang này hiện bị khóa vì nó được nhúng vào {{PLURAL:$1|những trang|trang}} dưới đây bị khóa với tùy chọn “khóa theo tầng” được kích hoạt. Việc thay đổi mức độ khóa của trang này sẽ không ảnh hưởng đến việc khóa theo tầng.',
 'protect-default' => 'Cho phép mọi thành viên',
 'protect-fallback' => 'Chỉ cho phép những người dùng có quyền “$1”',
 'protect-level-autoconfirmed' => 'Chỉ cho phép các thành viên tự động xác nhận',
@@ -2714,8 +2724,10 @@ $1',
 'sp-contributions-blocked-notice' => 'Thành viên này hiện đang bị cấm sửa đổi. Nhật trình cấm gần nhất được ghi ở dưới để tiện theo dõi:',
 'sp-contributions-blocked-notice-anon' => 'Địa chỉ IP này đang bị cấm. Hãy tham khảo mục mới nhất trong nhật trình cấm IP này:',
 'sp-contributions-search' => 'Tìm kiếm đóng góp',
+'sp-contributions-suppresslog' => 'đóng góp đã bị đàn áp của thành viên',
 'sp-contributions-username' => 'Địa chỉ IP hay tên thành viên:',
 'sp-contributions-toponly' => 'Chỉ hiện các phiên bản mới nhất',
+'sp-contributions-newonly' => 'Chỉ hiện các sửa đổi tạo trang',
 'sp-contributions-submit' => 'Tìm kiếm',
 
 # What links here
index 18caff0..8ca38f7 100644 (file)
@@ -256,7 +256,6 @@ $1",
 'disclaimers' => 'Imbräsum',
 'disclaimerpage' => 'Project:Imbräsum',
 'edithelp' => 'Hilfe dsum beärbâdn',
-'helppage' => 'Help:Inhalds-fârdsajchnis',
 'mainpage' => 'Haubdsajdn',
 'mainpage-description' => 'Haubdsajdn',
 'policy-url' => 'Project:Reechln',
@@ -409,7 +408,7 @@ Dii schbärr-ID is: $5
 Schrajb des bide als dâdsu, wen De Dich meldsd.",
 'newarticle' => '(Naj)',
 'newarticletext' => "Duu bisd âm fârwajs gfolchd, däär noch af ghâ sajdn dsajchd.
-Um dii sajdn ôôdsleechn, schrajb Dajn dhägsd in deen rôôma dô undn naj (fir aandslhajdn, schau af dâr [[{{MediaWiki:Helppage}}|hilfesajdn]] nôôch).
+Um dii sajdn ôôdsleechn, schrajb Dajn dhägsd in deen rôôma dô undn naj (fir aandslhajdn, schau af dâr [$1 hilfesajdn] nôôch).
 Wen'D dich awâr hiirhäär bloos fârlaafn hasd, glig ââfach af '''Zurück''' in Dajm brausâr, dan geedâr dôôhi dsrig, wos'D häärghumma bisd.",
 'noarticletext' => 'Dii sajdn gibd\'s bis eds no ned.
 Duu ghâusch nach däm ausdrug aa [[Special:Search/{{PAGENAME}}|in alle sajdn suchng]],
index 1b16414..bba6edb 100644 (file)
@@ -344,7 +344,6 @@ $messages = array(
 'disclaimers' => 'Nuneds',
 'disclaimerpage' => 'Project:Gididimiedükam valemik',
 'edithelp' => 'Redakamayuf',
-'helppage' => 'Help:Ninäd',
 'mainpage' => 'Cifapad',
 'mainpage-description' => 'Cifapad',
 'policy-url' => 'Project:Dunamod',
@@ -512,8 +511,6 @@ Küpälolös, das pads anik ba nog pojenons äsva no esenunädol oli, jüs uklin
 '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',
@@ -681,7 +678,7 @@ Ladet-IP olik binon $3, e nüm blokama at binon #$5. Mäniotolös nünis löpik
 Letavöd kala at kanon pavotükön medü pad: ''[[Special:ChangePassword|votükön letavödi]]'' pö nunädam ini vük.",
 'newarticle' => '(Nulik)',
 'newarticletext' => "Esökol yümi lü pad, kel no nog dabinon.
-Ad jafön padi at, primolös ad klavön vödemi olik in penaspad dono (logolöd [[{{MediaWiki:Helppage}}|yufapadi]] tefü nüns tefik votik).
+Ad jafön padi at, primolös ad klavön vödemi olik in penaspad dono (logolöd [$1 yufapadi] tefü nüns tefik votik).
 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.
@@ -860,8 +857,6 @@ Kanol logön oni; pats ba binons in [{{fullurl:{{#Special:Log}}/delete|page={{FU
 'revdelete-show-file-submit' => 'Si',
 'revdelete-selected' => "'''{{PLURAL:$2|Fomam|Fomams}} pevalöl pada: [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Lisedajenot|Lisedajenots}} pevälöl:'''",
-'revdelete-text' => "'''Revids pemoüköl nog opubons in padajenotem, ab ninäd (vödem) onsik no gebidons publüge.'''
-Ninäd peklänedöl at binon ye nog lügolovik guvanes votik vüka: {{SITENAME}}, kels kanons nog votükön ninädi peklänedöl u geükön padi medü fometem at (üf miedöfükams u neletians votik no lonöfons).",
 'revdelete-legend' => 'Levälön miedükamis logova:',
 'revdelete-hide-text' => 'Klänedön vödemi revida',
 'revdelete-hide-image' => 'Klänedön ragivaninädi',
index 12d010e..49ec4b7 100644 (file)
@@ -165,9 +165,8 @@ $messages = array(
 'disclaimers' => 'Ceeltümin vassamizõõ',
 'disclaimerpage' => 'Project:Ceeltümin vassamizõõ',
 'edithelp' => 'Muutuzavid',
-'helppage' => 'Help:Sisälto',
-'mainpage' => 'Esicülci',
-'mainpage-description' => 'Esicülci',
+'mainpage' => 'Päälehto',
+'mainpage-description' => 'Päälehto',
 'portal' => 'Foorum',
 'portal-url' => 'Project:Foorum',
 'privacy' => 'Salaštrahuituz',
@@ -280,7 +279,7 @@ Kui cüsümüssessä ebõõ roocittu cülci, võib õlla õlõttõ löütännü
 'loginreqlink' => 'cirjut süäme',
 'newarticle' => '(Uusi)',
 'newarticletext' => 'Sitä cülciä veel ebõõ.
-Võitta loovva cüľľee cirjuttamall alla õlõvasõõ tilaa. Kui että taho loovva [[{{MediaWiki:Helppage}}|cülciä]], menka takaz Web-brauzeraa "back"-napuukaa.',
+Võitta loovva cüľľee cirjuttamall alla õlõvasõõ tilaa. Kui että taho loovva [$1 cülciä], menka takaz Web-brauzeraa "back"-napuukaa.',
 'noarticletext' => '{{GRAMMAR:inessive|{{SITENAME}}}} ebõõ sene nimissä cülciä.
 * Võid [[Special:Search/{{PAGENAME}}|ettsiä cüľľee nimellä]] muilta cüľľeltä.
 * Võid cirjuttõma uuvvõõ cüľľee <span class="plainlinks">[{{fullurl:{{FULLPAGENAME}}|action=edit}} {{PAGENAME}}]</span>.',
@@ -787,7 +786,7 @@ Että või muuttaa cülcia, mutta võittõ kattsoa sene lähtekoodi.',
 'tooltip-search-go' => 'Mee cüľľelee, kummall on vakurat sesama nimi (kui eloz on)',
 'tooltip-search-fulltext' => 'Etsi cülciltä sitä tekstiä',
 'tooltip-p-logo' => 'Mee esicüľľelee',
-'tooltip-n-mainpage' => 'Mee esicüľľelee',
+'tooltip-n-mainpage' => 'Mee päälehole',
 'tooltip-n-mainpage-description' => 'Mee esicüľľelee',
 'tooltip-n-portal' => 'Juttua projektissa: Mitä tüü võittõ tehä, kuza levvette mitä',
 'tooltip-n-currentevents' => 'Lugõ soobšeńńad nücüizess kõhtoiss',
index e69d6a2..9a3779c 100644 (file)
@@ -290,7 +290,6 @@ $1",
 'disclaimers' => 'Hoiatuisi',
 'disclaimerpage' => 'Project:Üledseq hoiatusõq',
 'edithelp' => 'Toimõndamisoppus',
-'helppage' => 'Help:Sisukõrd',
 'mainpage' => 'Pääleht',
 'mainpage-description' => 'Pääleht',
 'policy-url' => 'Project:Säädüseq',
@@ -605,7 +604,7 @@ Või ollaq, et taa kistutõdi ärq tuul aol, ku sa lehte kait.',
 Tuud salasõnna saa muutaq ''[[Special:ChangePassword|salasõba muutmisõ lehe pääl]]'' päält vahtsõ nimega sisseminemist.",
 'newarticle' => '(Vahtsõnõ)',
 'newarticletext' => "Taad lehekülge olõ-i viil luud.
-Leheküle luumisõs nakkaq kirotama alanolõvahe kasti (kaeq [[{{MediaWiki:Helppage}}|oppust]]).
+Leheküle luumisõs nakkaq kirotama alanolõvahe kasti (kaeq [$1 oppust]).
 Ku sa johtuq siiäq kogõmaldaq, sis klõpsaq võrgokaeja '''Tagasi'''-nuppi.",
 'anontalkpagetext' => "---- ''Taa om arotusleht nimeldä pruukja kotsilõ, kiä olõ-i loonuq pruukjanimme vai pruugi-i tuud. Tuuperäst tulõ meil pruukja kimmästegemises pruukiq timä puutri võrgoaadrõssit. Taa aadrõs või ollaq mitmõ pruukja pääle ütine. Ku olõt nimeldä pruukja ja lövvät, et taa leheküle pääle kirotõt jutt käü suq kotsilõ, sis olõq hää, [[Special:UserLogin/signup|luuq konto]] vai [[Special:UserLogin|mineq nimega sisse]], et edespiten segähüisi ärq hoitaq.''",
 'noarticletext' => 'Seo leht om parlaq tühi.
@@ -741,7 +740,6 @@ Lisateedüst või ollaq [{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAME
 'revdelete-nooldid-text' => 'Sa olõ-i valinuq kujjo vai kujjõ.',
 'revdelete-selected' => "'''{{PLURAL:$2|Valit kujo|Validuq kujoq}} lehele [[:$1]]'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Valit muutminõ|Validuq muutmisõq}}:'''",
-'revdelete-text' => "'''Kistudõduq kujoq ommaq olõman lehe aoluun, a näide sissu saa-i avaligult nätäq.''' Seo viki tõõsõq kõrraldajaq saavaq taad käkitüt teksti lukõq ja taa tagasi avaligult nättäväs tetäq, ku olõ-i säet muid piirdmiisi.",
 'revdelete-legend' => 'Nättävüse piirdmiseq',
 'revdelete-hide-text' => 'Käkiq kujo sisu',
 'revdelete-hide-image' => 'Käkiq teedüstü sissu',
index 143db5e..027be4b 100644 (file)
@@ -301,7 +301,6 @@ $1",
 'currentevents' => 'Actouwålités',
 'currentevents-url' => 'Project:Actouwålités',
 'edithelp' => 'Aidance',
-'helppage' => 'Help:Aidance',
 'mainpage' => 'Mwaisse pådje',
 'mainpage-description' => 'Mwaisse pådje',
 'portal' => 'Inte di nozôtes',
@@ -590,7 +589,7 @@ S' i vs plait racsegnoz totes les racsegnes chal å dzeur dins les dmandes ki vo
 Li scret po ci novea conte ci pout esse candjî sol pådje di ''[[Special:ChangePassword|candjmint di scret]]'' après l' elodjaedje.",
 'newarticle' => '(Novea)',
 'newarticletext' => "Vos avoz clitchî so on loyén viè ene pådje ki n' egzistêye nén co.
-Mins '''vos''' l' poloz askepyî! Po çoula, vos n' avoz k' a cmincî a taper vosse tecse dins l' boesse di tecse chal pa dzo (alez vey li [[{{MediaWiki:Helppage}}|pådje d' aidance]] po pus d' infôrmåcion).
+Mins '''vos''' l' poloz askepyî! Po çoula, vos n' avoz k' a cmincî a taper vosse tecse dins l' boesse di tecse chal pa dzo (alez vey li [$1 pådje d' aidance] po pus d' infôrmåcion).
 Si vos n' voloz nén scrire cisse pådje chal, clitchîz simplumint sol boton '''En erî''' di vosse betchteu waibe po rivni al pådje di dvant.",
 'anontalkpagetext' => "---- ''Çouchal, c' est li pådje di copene po èn uzeu anonime ki n' a nén (co) fwait on conte por lu s' elodjî, ou ki n' l' eploye nén.
 Ça fwait k' on doet eployî si adresse IP limerike po l' idintifyî.
@@ -744,9 +743,6 @@ Vos l' poloz co vey; i gn a des detays sol [{{fullurl:{{#Special:Log}}/suppress|
 'revdelete-show-file-submit' => 'Oyi',
 'revdelete-selected' => "'''{{PLURAL:$2|Tchoezeye modêye|Tchoezeyès modêyes}} di [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Evenmint tchoezi|Evenmints tchoezis}} ezès djournås:'''",
-'revdelete-text' => "'''Les disfacés avenmints et modêyes vont continouwer d' aparexhe dins l' pådje di l' istwere, mins leu contnou n' serè nén veyåve do publik.'''
-
-Les ôtes manaedjeus so {{SITENAME}} pôront todi vey li contnou catchî eyet l' rapexhî åd triviè di cisse minme eterface ci, a moens k' ene restriccion di pus ni soeye metowe en alaedje pås mwaisses-manaedjeus del waibe.",
 'revdelete-legend' => 'Defini des restriccions sol voeyaedje',
 'revdelete-hide-text' => "Catchî l' tecse del modêye",
 'revdelete-hide-comment' => "Catchî l' comintaire di candjmint",
index a0df6fd..77a6744 100644 (file)
@@ -311,7 +311,6 @@ $1',
 'disclaimers' => 'Mga Disclaimer',
 'disclaimerpage' => 'Project:Kasahiran nga disclaimer',
 'edithelp' => 'Bulig hin pagliwat',
-'helppage' => 'Help:Sulod',
 'mainpage' => 'Syahan nga Pakli',
 'mainpage-description' => 'Syahan nga Pakli',
 'policy-url' => 'Project:Polisiya',
@@ -514,8 +513,6 @@ Ayaw kalimti pagbalyo han imo [[Special:Preferences|{{SITENAME}} preperensya]].'
 'gotaccountlink' => 'Sakob',
 'userlogin-resetlink' => 'Nangalimot han imo detalye han pagsakob?',
 'userlogin-resetpassword-link' => '¿Nangalimot ka han imo tigaman-pansulod?',
-'helplogin-url' => 'Help:Pag-log-in',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Bulig han pag-log-in]]',
 'userlogin-loggedin' => 'Nakalog-in kana komo hi {{GENDER:$1|$1}}.
 Gamiti an porma ha ubos para makalog-in komo iba nga gumaramit.',
 'userlogin-createanother' => 'Paghimo hin iba nga akawnt',
@@ -766,7 +763,7 @@ Ini in puydi binmalhin o napara samtang ikaw in nagkikita han pakli.',
 'accmailtitle' => 'Ginpadara na an tigaman-pagsulod.',
 'accmailtext' => "Uska hinimo nga random nga tigaman-panakob para kan [[User talk:$1|$1]] in ginpadangat ha $2. Puydi ini mabal-iwan ha ''[[Special:ChangePassword|liwani an tigaman-panakob]]'' nga pakli han paglog-in.",
 'newarticle' => '(Bag-o)',
-'newarticletext' => "Ginsunod mo an pakli nga waray pa kahihimo.  Para ighimo an pakli, tikanga pagmakinilya ha kahon nga aada ha ubos (kitaa an [[{{MediaWiki:Helppage}}|nabulig nga pakli]] para han kadugangan nga pananabutan).  Kun sayop an imo pagkanhi, igpidlit an imo kanan panngaykay (''browser'') '''balik''' (''back'') nga piridlitan.",
+'newarticletext' => "Ginsunod mo an pakli nga waray pa kahihimo.  Para ighimo an pakli, tikanga pagmakinilya ha kahon nga aada ha ubos (kitaa an [$1 nabulig nga pakli] para han kadugangan nga pananabutan).  Kun sayop an imo pagkanhi, igpidlit an imo kanan panngaykay (''browser'') '''balik''' (''back'') nga piridlitan.",
 'anontalkpagetext' => "----
 ''Ini in hiruhimangraw-nga-pakli para han waray magpakilala nga gumaramit, nga waray pa hinmimo hin akawnt.''
 Magamit la kami hin IP address para makilal-an hiya.
index f1bdc20..b0b369f 100644 (file)
@@ -306,7 +306,6 @@ $1',
 'disclaimers' => 'Ay aartu',
 'disclaimerpage' => 'Project:Aartu yu daj',
 'edithelp' => 'Ndimbal',
-'helppage' => 'Help:Ndimbal',
 'mainpage' => 'Xëtu Njëlbéen',
 'mainpage-description' => 'Xët wu njëkk',
 'policy-url' => 'Project:àtte',
@@ -591,7 +590,7 @@ Sa màkkaanu IP mooy $3 xammeekaayu téye gi mooy #$5. Di la sakku nga joxe leen
 'accmailtext' => "Ab baatujàll ngir [[User talk:$1|$1]]  yónne nañu ko $2.
 Baatujàllub bii jëfandikukat bu bees man nga ko soppi ci ''[[Special:ChangePassword|soppi baatujàll]]'' soo duggee ba noppi.",
 'newarticle' => '(Bees)',
-'newarticletext' => "Da ngaa topp ab lëkkalekaay buy jëme ci aw xët wu amagul. ngir sos xët wi léegi, duggalal sa mbind ci boyot bii ci suuf (man ngaa yër [[{{MediaWiki:Helppage}}|xëtu ndimbal wi]] ngir yeneeni xamle). Su fekkee njuumtee la fi indi cuqal ci '''dellu''' bu sa joowukaay.",
+'newarticletext' => "Da ngaa topp ab lëkkalekaay buy jëme ci aw xët wu amagul. ngir sos xët wi léegi, duggalal sa mbind ci boyot bii ci suuf (man ngaa yër [$1 xëtu ndimbal wi] ngir yeneeni xamle). Su fekkee njuumtee la fi indi cuqal ci '''dellu''' bu sa joowukaay.",
 'anontalkpagetext' => "---- ''Yaa ngi ci xëtu waxtaanuwaayu ab jëfandikukatu alaxam, bu bindoogul ba fim ne mbaa jëfandikoowul am sàqam.
 Kon ngir xàmmee ko fàw nga jëfandikoo màkkaanub IP wam. Te màkkaanub IP jëfandikukat yu bari man nañ koo bokk.
 Su fekkee jëfandikukatu alaxam nga, te nga gis ne dees laa féetale ay kàddu yoo moomul, ngalla [[Special:UserLogin|bindu]] walla [[Special:UserLogin|dugg]] ngir benn jaxase bañatee am ëllëg .''",
@@ -757,8 +756,6 @@ Li nga doon yorkat tax na ba-tay nga man a [$1 gis gii wuute] su la neexee.",
 'revdelete-show-file-submit' => 'Waaw',
 'revdelete-selected' => "'''{{PLURAL:$2|Sumbum '''$1''' mi falu|Sumbi '''$1''' yi falu}} :'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Xew-xewu yéenekaay bi falu|Xew-xewi yéenekaay yi falu}}:'''",
-'revdelete-text' => "'''Sumb yi nga far dañuy wéy di feeñ ci jaar-jaaru xët wi, waaye mbind yi ñu ëmb ñépp duñ leen man a gis.'''
-Yeneen yorkat yu {{SITENAME}} di nañ man a gis ëmbit yu laqu yi te loppanti leen ci benn jokkalekaay bi, su fekkee defuñu fi ay digal yu leen koy tere man a def.",
 'revdelete-legend' => 'Taxawal ay digal ci sumb yi ñu far:',
 'revdelete-hide-text' => 'Nëbb mbindum sumb bi',
 'revdelete-hide-image' => 'Nëbb ëmbiitu dencukaay bi',
index 37f6029..3a5e710 100644 (file)
@@ -268,7 +268,6 @@ $1',
 'disclaimers' => '甮追問',
 'disclaimerpage' => 'Project:甮追問',
 'edithelp' => '编写帮助',
-'helppage' => 'Help:目录',
 'mainpage' => '封面',
 'mainpage-description' => '封面',
 'policy-url' => 'Project:策略',
@@ -448,8 +447,6 @@ $2',
 'gotaccountlink' => '登录',
 'userlogin-resetlink' => '忘记登录细节?',
 'userlogin-resetpassword-link' => '转设密码',
-'helplogin-url' => '帮助ː登进',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|登进帮忙]]',
 'userlogin-loggedin' => '你侬用{{GENDER:$1|$1}}登进来哉。用下向个表以别样身份登进。',
 'userlogin-createanother' => '建别样账号',
 'createacct-join' => '下向打进你侬个信息。',
@@ -628,7 +625,7 @@ $2',
 登录之后,侬可以垃拉 ''[[Special:ChangePassword|箇只页面]]''更改密码。",
 'newarticle' => '(新)',
 'newarticletext' => "倷跟仔链接来着一个还弗勒里个页面。
-要创建该页面呢,就勒下底个框框里向开始写([[{{MediaWiki:Helppage}}|帮助页面]]浪有更加多个信息)。
+要创建该页面呢,就勒下底个框框里向开始写([$1 帮助页面]浪有更加多个信息)。
 要是倷是弗用心到该搭个说话,只要点击倷浏览器个'''返回'''揿钮。",
 'anontalkpagetext' => "---- ''箇是一个还弗曾建立账户个匿名用户个讨论页, 箇咾我伲只好用IP地址来搭渠联络。该IP地址可能由几名用户共享。如果侬是一名匿名用户并认为箇只页面高头个评语搭侬弗搭界,请 [[Special:UserLogin/signup|创建新账户]]或[[Special:UserLogin|登录]]来避免垃拉将来搭其他匿名用户混淆。''",
 'noarticletext' => '箇页目前呒有文本。
@@ -826,8 +823,6 @@ $3封禁个原因是''$2''",
 'revdelete-show-file-submit' => '是',
 'revdelete-selected' => "'''选取'''[[:$1]]'''个$2趟修订:'''",
 'logdelete-selected' => "'''选取'''$1'''个日志事件:'''",
-'revdelete-text' => "'''删脱个修订仍然将显示拉页面历史里向,不过渠拉个文本内容公众已经弗好访问。'''
-垃拉{{SITENAME}}个其他管理员将仍旧好访问隐藏个内容并通过与此相同个界面恢复删除,除非站点工作者添加了附加限制。",
 'revdelete-confirm' => '假使侬想箇能介做个闲话,请确认侬已经清爽箇能介做个后果,外加箇个程序符合[[{{MediaWiki:Policy-url}}|政策]]。',
 'revdelete-suppress-text' => "'''只有'''出现下头眼情况再应阻止访问:
 * 弗适合个个人信息
index f9972ee..0589633 100644 (file)
@@ -281,7 +281,6 @@ $1',
 'disclaimers' => 'Дааврас эс зөвшәрлһн',
 'disclaimerpage' => 'Project:Даарас эс зөвшәрлһн',
 'edithelp' => 'Чикллһнә дөң',
-'helppage' => 'Help:Һарг',
 'mainpage' => 'Нүр халх',
 'mainpage-description' => 'Нүр халх',
 'policy-url' => 'Project:Бодлһн',
@@ -466,7 +465,7 @@ $1',
 'accmailtitle' => 'Нууц үгтә бичг йовулла.',
 'newarticle' => '(Шин)',
 'newarticletext' => "Та заалһиг дахад бәәдг уга халхд ирв.
-Терүг бүтәҗ болхла, дораһар терзд бичтн (дәкәд өггцнә төлә [[{{MediaWiki:Helppage}}|тәәлвр]] хәләтн).
+Терүг бүтәҗ болхла, дораһар терзд бичтн (дәкәд өггцнә төлә [$1 тәәлвр] хәләтн).
 Та эн һазрт эндүһәр бәәхлә, '''Хәрү''' дарциг дартн.",
 'noarticletext' => "Эн халх хоосн. Та [[Special:Search/{{PAGENAME}}|эн нернә сананд орулһна хәәх]] , <span class=\"plainlinks\">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} бүртклин бичгт хәәх], аль '''[{{fullurl:{{FULLPAGENAME}}|action=edit}} бүтәх]'''</span>.",
 'clearyourcache' => "'''Оньган өгтн:''' Кесн сольлһн үзхәр, тана хәләлгчин кеш цеврүлтн: '''Mozilla / Firefox''': ''Ctrl+Shift+R'', '''IE:''' ''Ctrl+F5'', '''Safari''': ''Cmd+Shift+R'', '''Konqueror''': ''F5'', '''Opera''': ''Tools→Preferences'' менүһәс.",
index 5f0af94..7d60c2f 100644 (file)
@@ -186,7 +186,6 @@ $messages = array(
 'disclaimers' => 'გამამინჯალაშ ვარება',
 'disclaimerpage' => 'Project:გამამინჯალაშ ვარება',
 'edithelp' => 'მოხვარა რედაქტირაფას',
-'helppage' => 'Help:დინორე',
 'mainpage' => 'დუდხასჷლა',
 'mainpage-description' => 'დუდხასჷლა',
 'portal' => 'ჯარალუაშ ხასჷლეფი',
@@ -308,7 +307,7 @@ $messages = array(
 რთხიინთ ქიმიოღანკათ თე მუნაჩემეფშე ნამდგაიჸინი (ვარა ჟირხოლო) თქვან კორესპონდენციას.",
 'newarticle' => '(ახალ)',
 'newarticletext' => "თქვა გეყ’უნელ რეთ ხასილაშ რცხის, ნამუთ დიო ვა რე დორცხუაფილ.
-ხასილაშ დარცხუაფალო გემიშეყ’ონით ტექსტ თუდონ ოჭკორიეშა. (ქოძირით[[{{MediaWiki:Helppage}}|მოხვარაშ ხასილა]] უმოს ინფორმაციაშო).
+ხასილაშ დარცხუაფალო გემიშეყ’ონით ტექსტ თუდონ ოჭკორიეშა. (ქოძირით[\$1 მოხვარაშ ხასილა] უმოს ინფორმაციაშო).
 თე ხასილას ჩილათირო მოხვადით–და, ქიგუნჭირით თქვან ბრაუზერიშ კონჭის '''უკახალე'''.\"",
 'noarticletext' => 'ასე თე ხასილას ტექსტ ვა რე. 
 თქვა შეილებუნა [[Special:Search/{{PAGENAME}}|გორათ ათე ხასილაშ ჯოხო]] შხვა ხასილეფს,
index 66e7f42..37545dd 100644 (file)
@@ -445,7 +445,6 @@ $1',
 'disclaimers' => 'געזעצליכע אויפֿקלערונג',
 'disclaimerpage' => 'Project:קלארשטעלונג',
 'edithelp' => 'הילף וויאזוי צו ענדערן',
-'helppage' => 'Help:אינהאַלט',
 'mainpage' => 'הויפט זייט',
 'mainpage-description' => 'הויפט זייט',
 'policy-url' => 'Project:פאליסי',
@@ -647,8 +646,7 @@ $2',
 'gotaccountlink' => 'אַרײַנלאגירן',
 'userlogin-resetlink' => 'פארגעסן אײַערע אַרײַנלאָגירן פרטים?',
 'userlogin-resetpassword-link' => 'פֿאַרגעסן אײַער פאַסווארט?',
-'helplogin-url' => 'Help:אריינלאגירן',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|הילף מיט אריינלאגירן]]',
+'userlogin-helplink2' => 'הילף מיט ארײַנלאגירן',
 'userlogin-loggedin' => 'איר זענט שוין אריינלאגירט ווי {{GENDER:$1|$1}}.
 ניצט די פארעם אונטן כדי אריינלאגירן ווי אן אנדער באניצער.',
 'userlogin-createanother' => 'שאפֿן נאך א קאנטע',
@@ -748,6 +746,7 @@ $2',
 'createacct-another-realname-tip' => 'עכטער נאמען איז אפציאנאל.
 אויב איר וויילט אויס צוצושטעלן אים, וועט דאס גענוצט ווערן צו געבן אטריבוציע פאר זייער ארבעט.',
 'pt-login' => 'אַרײַנלאגירן',
+'pt-login-button' => 'אַרײַנלאָגירן',
 'pt-createaccount' => 'שאַפֿן אַ קאנטע',
 'pt-userlogout' => 'אַרויסלאגירן',
 
@@ -758,7 +757,7 @@ $2',
 
 # Change password dialog
 'changepassword' => 'טוישן פאַסווארט',
-'resetpass_announce' => '×\90×\99ר ×\94×\90×\98 ×\90ר×\99×\99× ×\9c×\90×\92×\99ר×\98 ×\9e×\99×\98 ×\90 ×¤×¨×\90×\95×\95×\99×\96×\90ר×\99ש×\9f ×§×\90×\93 ×\92עש×\99ק×\98 ×\93×\95ר×\9b×\9f ×¢-פ×\90ס×\98. ×¦×\95 ×¤×\90רענ×\93×\99×\92×\9f ×\90ר×\99×\99× ×\9c×\90×\92×\99ר×\9f, ×\91ר×\95×\99×\9b×\98 ×\90×\99ר ×\90נש×\98×¢×\9c×\9f ×\90 × ×\99×\99 ×¤×\90ס×\95×\95×\90ר×\98 ×\93×\90:',
+'resetpass_announce' => 'צו פארענדיגן אריינלאגירן, ברויכט איר אנשטעלן א ניי פאסווארט דא:',
 'resetpass_text' => '<!-- לייגט צו טעקסט דא -->',
 'resetpass_header' => 'ענדערן קאנטע פאסווארט',
 'oldpassword' => 'אַלטע פאַסווארט:',
@@ -774,8 +773,11 @@ $2',
 'resetpass-submit-cancel' => 'אַנולירן',
 'resetpass-wrong-oldpass' => 'אומגילטיג צײַטווײַליק אדער לויפֿיק פאַסווארט.
 איר האט מעגלעך שוין געטוישט אייער פאַסווארט מיט הצלחה אדער געבעטן א נײַ  צײַטווײַליק פאַסווארט.',
+'resetpass-recycled' => 'זײַט אזוי גוט שטעטל אירע פאסווארט צו עפעס אנדערש פונעם לויפיקן פאסווארט.',
+'resetpass-temp-emailed' => 'איר האט זיך ארי לאגירת מיט א פראוויזארישן קאד געשיקט דורכן ע־פאסט. כדי שליסן דאס ארײַנלאגירן, דארט איר שטעלן א נײַ פאסווארט דא.',
 'resetpass-temp-password' => 'צײַטווייליק פאַסווארט:',
 'resetpass-abort-generic' => 'פאסווארט ענדערונג איז מבוטל געווארן דורך א פארברייטערונג.',
+'resetpass-expired' => 'אירע פאסווארט איז אויסגעגאנגען. זײַט אזוי גוט שטעלט א נײַ פאסווארט כדי ארײַנלאגירן.',
 
 # Special:PasswordReset
 'passwordreset' => 'צוריקשטעלן פאַסווארט',
@@ -920,7 +922,7 @@ $2
 מען קען עס טוישן אויפֿן [[Special:ChangePassword|טוישן פאַסווארט]] בלאַט נאָכן ארײַנלאגירן.',
 'newarticle' => '(ניי)',
 'newarticletext' => "איר זענט געקומען צו אַ בלאַט וואָס עקזיסטירט נאָך נישט!
-כדי שאַפֿן דעם בלאַט, קלאַפט אַרײַן טעקסט אין דעם קעסטל אונטן (זעט דעם [[{{MediaWiki:Helppage}}|הילף בלאַט]] פֿאַר מער אינפֿארמאַציע).
+כדי שאַפֿן דעם בלאַט, קלאַפט אַרײַן טעקסט אין דעם קעסטל אונטן (זעט דעם [$1 הילף בלאַט] פֿאַר מער אינפֿארמאַציע).
 אויב איר זענט אַהערגעקומען בטעות, דרוקט דאָס '''Back''' קנעפל אין אײַער בלעטערער.",
 'anontalkpagetext' => "----'''דאָס איז א רעדן בלאַט פון א אַן אַנאנימען באַניצער וואָס האט נאך נישט געשאַפֿן קיין קאנטע, אדער באניצט זיך נישט דערמיט. דערוועגן, מוזן מיר זיך באניצן מיט זיין IP אדרעס כדי אים צו אידענטיפיצירן. עס קען זיין אז עטלעכע אנדערע ניצן אויך דעם  IP אדרעס. אויב זענט איר אן אנאנימער באַניצער וואס שפירט אז איר האט באקומען מעלדונגען וואס זענען נישט שייך צו אייך, ביטע [[Special:UserLogin/signup|שאַפֿט א קאנטע]] אדער [[Special:UserLogin|טוט זיך אריינלאגירן]] כדי צו פארמיידן דאס אין די עתיד זיך פארמישן מיט אנדערע אַנאנימע באַניצערס.'''",
 'noarticletext' => 'דערווייל איז נישט פאַרהאן קיין שום טעקסט אין דעם בלאט.
@@ -1164,8 +1166,6 @@ $2
 'revdelete-show-file-submit' => 'יא',
 'revdelete-selected' => "'''{{PLURAL:$2|אויסדערוויילטע ווערסיע| אויסדערוויילטע ווערסיעס}} פון [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1| אויסדערוויילטע לאג אקציע|אויסדערוויילטע לאג אקציעס}}:'''",
-'revdelete-text' => "'''אויסגעמעקטע רעוויזיעס און געשעענישן וועלן בלייבן אין דער בלאט היסטאריע און די לאגביכער, אבער טיילן פון זייער אינהאלט וועט ווערן אומגרייכלעך צום קהל. '''
-אנדערע סיסאפן אויף {{SITENAME}} וועלן נאך האבן צוטריט צום באהאלטענעם אינהאלט און קענען אים צוריקשטעלן דורך דעם זעלבן אייבערפלאך,  אחוץ ווען מען שטעלט נאך באגרענעצונגען.",
 'revdelete-confirm' => 'זייט אזוי גוט און באשטעטיקט אז דאס איז טאקע אייער כוונה, אז איר פארשטייט די קאנסעקווענצן, און אז איר טוט דאס לויט  [[{{MediaWiki:Policy-url}}|דער פאליסי]].',
 'revdelete-suppress-text' => "אונטערדרוקן זאל בלויז גענוצט ווערן '''נאר''' אין די פאלגנדע פעלער:
 * אינפארמאציע וואס קען זיין מוציא שם רע
@@ -1260,6 +1260,7 @@ $1",
 'showhideselectedversions' => 'ווײַזן/באַהאַלטן געקליבענע רעוויזיעס',
 'editundo' => 'אַנולירן',
 'diff-empty' => '(קיין אונטערשייד)',
+'diff-multi-sameuser' => '({{PLURAL:$1|איין צווישנדיקע ווערסיע |$1 צווישנדיקע ווערסיעס}} פֿונעם זעלבן באַניצער נישט געוויזן.)',
 'diff-multi-otherusers' => '({{PLURAL:$1|איין מיטלסטע ווערסיע |$1 מיטלסטע ווערסיעס}} פֿון {{PLURAL:$2|איין אנדער באַניצער|$2 באַניצער}} נישט געוויזן.)',
 'diff-multi-manyusers' => '({{PLURAL:$1|איין מיטלסטע ווערסיע |$1 מיטלסטע ווערסיעס}} פֿון מער ווי {{PLURAL:$2|איין באַניצער|$2 באַניצער}} נישט געוויזן.)',
 'difference-missing-revision' => '{{PLURAL:$2|איין ווערסיע|$2 ווערסיעס}} פון דעם דיפערענץ ($1) {{PLURAL:$2|האט}} מען נישט געטראפן.
@@ -1300,7 +1301,7 @@ $1",
 'search-file-match' => '(פאסט צו טעקע אינהאלט)',
 'search-suggest' => 'צי האט איר געמיינט: $1',
 'search-interwiki-caption' => 'שוועסטער פראיעקטן',
-'search-interwiki-default' => '$1 רעזולטאטן:',
+'search-interwiki-default' => 'רעזולטאטן פון $1:',
 'search-interwiki-more' => '(נאך)',
 'search-relatedarticle' => 'פארבינדן',
 'searcheverything-enable' => 'זוכן אין אלע נאמענטיילן',
@@ -1625,9 +1626,11 @@ $1",
 'recentchanges-legend-heading' => "'''לעגענדע:'''",
 'recentchanges-legend-newpage' => '(זעט אויך [[Special:NewPages|די רשימה פון נייע בלעטער]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "פֿאלגנד זענען די ענדערונגען זײַט '''$2''' (ביז '''$1''')",
+'rcnotefrom' => 'פֿאלגנד זענען די ענדערונגען זײַט <strong>$2</strong> (ביז <strong>$1</strong>).',
 'rclistfrom' => 'װײַזן נײַע ענדערונגען פֿון $1',
 'rcshowhideminor' => '$1 מינערדיגע ענדערונגען',
+'rcshowhideminor-show' => 'ווײַזן',
+'rcshowhideminor-hide' => 'באהאלטן',
 'rcshowhidebots' => '$1 ראבאטן',
 'rcshowhidebots-show' => 'ווײַזן',
 'rcshowhidebots-hide' => 'באַהאַלטן',
@@ -2094,6 +2097,12 @@ $1",
 'protectedpages-cascade' => 'בלויז קאַסקאַדירנדיקע באַשיצונגען',
 'protectedpages-noredirect' => 'פֿארהיילן ווייטערפֿירונגען',
 'protectedpagesempty' => 'אצינד זענען קיין בלעטער נישט געשיצט מיט די דאזיגע פאַראַמעטערס.',
+'protectedpages-timestamp' => 'צײַטשטעמפל',
+'protectedpages-page' => 'בלאַט',
+'protectedpages-expiry' => 'גייט אויס',
+'protectedpages-reason' => 'אורזאַך',
+'protectedpages-unknown-timestamp' => 'אומבאַוואוסט',
+'protectedpages-unknown-performer' => 'אומבאוואוסטער באניצער',
 'protectedtitles' => 'געשיצטע קעפלעך',
 'protectedtitlesempty' => 'אצינד זענען קיין קעפלעך נישט באַשיצט מיט די דאזיגע פאַראַמעטערס.',
 'listusers' => 'באַניצער ליסטע',
@@ -2365,7 +2374,8 @@ $UNWATCHURL
 'delete-edit-reasonlist' => 'רעדאַקטירן די אויסמעקן סיבות',
 'delete-toobig' => 'דער בלאַט האט א גרויסע רעדאקטירונג היסטאריע, מער ווי $1 {{PLURAL:$1|רעוויזיע|רעוויזיעס}}. אויסמעקן אזעלכע בלעטער איז באַגרענעצט געווארן בכדי צו פֿאַרמײַדן א צופֿעליגע פֿאַרשטערונג פֿון  {{SITENAME}}.',
 'delete-warning-toobig' => 'דער בלאַט האט א גרויסע רעדאקטירונג היסטאריע, מער ווי $1 {{PLURAL:$1|רעוויזיע|רעוויזיעס}}. אויסמעקן אים קען פֿאַרשטערן דאַטנבאַזע אפעראַציעס פֿון {{SITENAME}}; זײַט פֿארזיכטיג איידער איר מעקט אויס.',
-'deleting-backlinks-warning' => "'''ווארענוג:''' אנדערע בלעטער פארבינדן צום בלאט אדער אריבערשליסן פונעם בלאט איר האלט ביי אויסמעקן.",
+'deleting-backlinks-warning' => "'''ווארענוג:'''
+[[Special:WhatLinksHere/{{FULLPAGENAME}}|אנדערע בלעטער]]  פארבינדן צום בלאט אדער אריבערשליסן דעם בלאט איר האלט ביי אויסמעקן.",
 
 # Rollback
 'rollback' => 'צוריקדרייען רעדאַקטירונגען',
@@ -2414,7 +2424,7 @@ $UNWATCHURL
 דא זענען די לויפֿיקע שטעלונגען פֿאַר דעם בלאַט '''$1''':",
 'protect-cascadeon' => 'דער בלאַט איז געשיצט אַצינד ווײַל ער איז אײַנגעשלאסן אין  {{PLURAL:$1|דעם פֿאלגנדן בלאַט, וואס האט|די פֿאלגנדע בלעטער, וואס האבן}} קאַסקאַדירטע שיצונג.
 
\90×\99ר ×§×¢× ×\98 ×¢× ×\93ער×\9f ×\93×¢×\9d ×©×\99צ×\95× ×\92 × ×\99×\95×\95×\90 ×¤×\95× ×¢×\9d ×\91×\9c×\90Ö·×\98, ×\90×\91ער ×\93×\90ס ×\95×\95×¢×\98 נישט ווירקן אויף דער קאַסקאַדירטער שיצונג .',
¢× ×\93ער×\95× ×\92×¢×\9f ×¦×\95×\9d ×©×\99צ×\95× ×\92 × ×\99×\95×\95×\90 ×¤×\95× ×¢×\9d ×\91×\9c×\90Ö·×\98 ×\95×\95×¢×\9c×\9f נישט ווירקן אויף דער קאַסקאַדירטער שיצונג .',
 'protect-default' => 'אלע באניצער ערלויבט',
 'protect-fallback' => 'דערלויבן נאר באניצער מיט "$1" ערלויבניש',
 'protect-level-autoconfirmed' => 'לאזן נאר אויטאמאטיש באשטעטיקטע באַניצער',
@@ -2533,6 +2543,7 @@ $1',
 'sp-contributions-search' => 'זוכן בײַשטײַערונגען',
 'sp-contributions-username' => 'באניצער נאמען אדער IP אדרעס:',
 'sp-contributions-toponly' => 'בלויז ווײַזן רעדאַקטירונגען וואָס זענען די לעצטיקע רעוויזיעס',
+'sp-contributions-newonly' => 'בלוז ווײַזן רעדאקטירונגען וואס זענען נײַ־געשאפענע בלעטער',
 'sp-contributions-submit' => 'זוכן',
 
 # What links here
index 64fd383..092b6b5 100644 (file)
@@ -300,7 +300,6 @@ $1',
 'disclaimers' => 'Ikìlọ̀',
 'disclaimerpage' => 'Project:Ìkìlọ̀ gbogbo',
 'edithelp' => 'Ìrànlọ́wọ́ fún àtúnṣe',
-'helppage' => 'Help:Àwon àkóónú',
 'mainpage' => 'Ojúewé Àkọ́kọ́',
 'mainpage-description' => 'Ojúewé Àkọ́kọ́',
 'policy-url' => 'Project:Ìpinu',
@@ -497,8 +496,6 @@ Olùṣeàmójútó tó típa ṣe àlàyé yìí: "$3".',
 'gotaccountlink' => "Ẹ w'ọlé",
 'userlogin-resetlink' => 'À bí ẹ gbàgbé ìwọlé yín?',
 'userlogin-resetpassword-link' => 'Ṣé ẹ ti gbàgbé ọ̀rọ̀ìpamọ́ yín?',
-'helplogin-url' => 'Help:Ìwolé',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|Ìrànlọ́wọ́ láti ìwọlé]]',
 'userlogin-loggedin' => 'Ẹ pilẹ̀ ti jáwọlé bíi {{GENDER:$1|$1}}.
 Ẹ lo fọ́ọ̀mù ìsàlẹ̀ látí jáwọlé gẹ́gẹ́ bíi oníṣe míràn.',
 'userlogin-createanother' => 'Ìdá àkópamọ́ míràn',
@@ -741,7 +738,7 @@ $1 ni ó ṣe ìdínà.
 'accmailtext' => "A ti fi ọ̀rọ̀ìpamọ́ àrìnàkò tí a pèsè fún [[User talk:$1|$1]] ránṣẹ́ sí $2. Ẹ le ṣe àyípadà ọ̀rọ̀ìpamọ́ fún àpamọ́ tuntun yìí ní ibi ''[[Special:ChangePassword|àyípadà ọ̀rọ̀ìpamọ́]]'' lẹ́yìn tí ẹ bá ti jáwọlé.",
 'newarticle' => '(Tuntun)',
 'newarticletext' => "Ẹ ti tẹ̀lé ìjápọ̀ mọ́ ojúewé tí kò sí.
-Láti dá ojúewé yí ẹ bẹ̀rẹ̀ síní tẹ́kọ sí inú àpótí ìsàlẹ̀ yí (ẹ wo [[{{MediaWiki:Helppage}}|ojúewé ìrànlọ́wọ́ ]] fun ẹ̀kúnrẹ́rẹ́ ).
+Láti dá ojúewé yí ẹ bẹ̀rẹ̀ síní tẹ́kọ sí inú àpótí ìsàlẹ̀ yí (ẹ wo [$1 ojúewé ìrànlọ́wọ́ ] fun ẹ̀kúnrẹ́rẹ́ ).
 T'óbá sepé àsìse ló gbé yin dé bi, ẹ kọn bọ́tìnì ìpadàsẹ́yìn.",
 'anontalkpagetext' => "''Ojúewé ìfọ̀rọ̀wérọ̀ yìí wà fún oníṣe aláílórúkọ tí kò tíì dá àkópamọ́, tàbí tí kò lò ó rárá.
 Bí bẹ́ẹ̀ laṣe únlo àdírẹ́ẹ̀sì IP oníyenọ́mbà láti dáamọ̀.
@@ -987,8 +984,6 @@ Tó bá jẹ́ pé ẹ ti wọlé, ẹ lè dẹ́kun ìkìlọ̀ yìí nínù ab
 'revdelete-show-file-submit' => 'Bẹ́ẹ̀ni',
 'revdelete-selected' => "'''{{PLURAL:$2|Àtúnyẹ̀wò síṣàyàn|Àwọn àtúnyẹ̀wò síṣàyàn}} fún [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Àkọọ́lẹ̀ ìṣẹ̀lẹ̀ síṣàyàn|Àwọn àkọọ́lẹ̀ ìṣẹ̀lẹ̀ síṣàyàn}}:'''",
-'revdelete-text' => "'''Àwọn àtúnyẹ̀wò onípíparẹ́ àti ìṣẹ̀lẹ̀ yíò sì tún hàn nínú ojúewé ìtàn àti àkọọ́lẹ̀, sùgbọ́n àwọn apá àkóónú wọn kò ní hàn jáde sí ìgboro'''
-Àwọn olùmójútó míràn lórí {{SITENAME}} yíò sí tún le wo àkóónú àbòmọ́lẹ̀ náà bẹ́ẹ̀sìni wọ́n le mú ìparẹ́ kúrò lórí ìfojúkojú yìí, àyàfi tí àwọn ìdíwọ́ míràn bá jẹ́ títòsílẹ̀.",
 'revdelete-confirm' => 'Ẹ jọ̀wọ́ ẹ rídájú pé ohun tí ẹ fẹ́ ṣe nìyí, pé ohun tí yíò ṣẹlẹ̀ yé yín, bẹ́ẹ̀sìni pé ẹ̀ únṣe é lọ́nà tó bá  [[{{MediaWiki:Policy-url}}|àdéhùn]] mu.',
 'revdelete-suppress-text' => "Ìrẹ̀mọ́lẹ̀ gbọ́dọ̀ jẹ́ lílò fún àwọn ìṣẹ̀lẹ̀ ìsàlẹ̀ wọ̀nyí '''nìkan''':
 *Ọ̀rọ̀ tó le fa ẹjọ́ wá
index ff1e984..252d030 100644 (file)
@@ -271,7 +271,6 @@ $messages = array(
 'tog-ccmeonemails' => '當我寄電郵畀其他人嗰陣寄返封副本畀我',
 'tog-diffonly' => '響差異下面唔顯示頁面內容',
 'tog-showhiddencats' => '顯示隱藏類',
-'tog-noconvertlink' => '唔轉連結標題',
 'tog-norollbackdiff' => '進行反轉之後略過差異',
 'tog-useeditwarning' => '當我離開未保存好嘅修改嗰陣警告我',
 'tog-prefershttps' => '簽到後繼續用加密連線',
@@ -479,7 +478,6 @@ $1',
 'disclaimers' => '免責聲明',
 'disclaimerpage' => 'Project:一般免責聲明',
 'edithelp' => '編輯協助',
-'helppage' => 'Help:目錄',
 'mainpage' => '頭版',
 'mainpage-description' => '頭版',
 'policy-url' => 'Project:政策',
@@ -689,6 +687,7 @@ $1',
 'login-throttled' => '你已經試咗太多次登入動作。請等多一陣再試過。',
 'loginlanguagelabel' => '語言:$1',
 'suspicious-userlogout' => '你去登出嘅要求已經拒絕咗,因為佢可能由壞咗嘅瀏覽器或者快取代理傳送。',
+'pt-createaccount' => '開戶口',
 
 # Email sending
 'php-mail-error-unknown' => '響 PHP 嘅 mail() 參數度出現咗未知嘅錯誤',
@@ -804,7 +803,7 @@ $1',
 呢個新戶口嘅密碼可以響登入咗之後嘅''[[Special:ChangePassword|改密碼]]''版度改佢。",
 'newarticle' => '(新)',
 'newarticletext' => "你連連過嚟嘅頁面重未存在。
-要起版新嘅,請你喺下面嗰格度輸入。(睇睇[[{{MediaWiki:Helppage}}|自助版]]拎多啲資料。)
+要起版新嘅,請你喺下面嗰格度輸入。(睇睇[$1 自助版]拎多啲資料。)
 如果你係唔覺意嚟到呢度,撳一次你個瀏覽器'''返轉頭'''個掣。",
 'anontalkpagetext' => "----''呢度係匿名用戶嘅討論頁,佢可能係重未開戶口,或者佢重唔識開戶口。我哋會用數字表示嘅IP地址嚟代表佢。一個IP地址係可以由幾個用戶夾來用。如果你係匿名用戶,同覺得呢啲留言係同你冇關係嘅話,唔該去[[Special:UserLogin/signup|開一個新戶口]]或[[Special:UserLogin|登入]],避免喺以後嘅留言會同埋其它用戶混淆。''",
 'noarticletext' => '喺呢一頁而家並冇任何嘅文字,你可以喺其它嘅頁面中[[Special:Search/{{PAGENAME}}|搵呢一頁嘅標題]],
@@ -1015,8 +1014,6 @@ $1',
 'revdelete-show-file-submit' => '係',
 'revdelete-selected' => "'''揀[[:$1]]嘅$2次修訂:'''",
 'logdelete-selected' => "'''揀[[:$1]]嘅日誌事件:'''",
-'revdelete-text' => "'''刪除咗嘅修訂係會仍然出現喺個頁面歷史以及日誌度,但係佢哋嘅文字內容係唔可以供公眾瀏覽。'''
-其他喺{{SITENAME}}嘅管理員仍然可以睇已經隱藏咗嘅內容,同埋可以透過同一個介面去反刪除佢,除非已經設定咗附加嘅限制。",
 'revdelete-confirm' => '請確認你肯定去做嘅話,你就要明白到後果,同埋呢個程序符合[[{{MediaWiki:Policy-url}}|政策]]。',
 'revdelete-suppress-text' => "壓制'''只'''應該響下面嘅情況之下進行:
 * 唔合適嘅個人資料
index 81f32f8..763e8a9 100644 (file)
@@ -274,7 +274,6 @@ $1",
 'disclaimers' => 'Voebehoud',
 'disclaimerpage' => 'Project:Alhemeên voebehoud',
 'edithelp' => "Ulpe bie't bewerken",
-'helppage' => 'Help:Inoud',
 'mainpage' => 'Vòblad',
 'mainpage-description' => 'Vòblad',
 'policy-url' => 'Project:Beleid',
@@ -542,7 +541,7 @@ Voer jen e-mailadres in en bevestig 't via [[Special:Preferences|je vòkeuren]].
 'accmailtitle' => 'Wachtwoord verstierd.',
 'accmailtext' => "'t Wachtwoord vò $1 is nae $2 opgestierd.",
 'newarticle' => '(Nieuw)',
-'newarticletext' => "Deêze pagina besti nie. Typ in 't onderstaende veld om de pagina an te maeken (meêr informatie sti op de [[{{MediaWiki:Helppage}}|ulppagina]]).
+'newarticletext' => "Deêze pagina besti nie. Typ in 't onderstaende veld om de pagina an te maeken (meêr informatie sti op de [$1 ulppagina]).
 Gebruuk de knoppe '''vorige''' in je browser as je ier per ongeluk terecht bin ekomm'n.",
 'anontalkpagetext' => "----''Dit is de overlegbladzie vò 'n anonieme gebruker die-a gin inlognaem eit of 'm nie gebruukt.
 Zien/eur IP-adres kan deu meêr as eên gebruker gebruukt ore.
@@ -705,9 +704,6 @@ der kunn'n details anwezig zien in 't [{{fullurl:{{#Special:Log}}/suppress|page=
 'revdelete-nooldid-text' => 'Je ei hin doelversie(s) voe deêze handelienge opeheven, de aneheven versie besti nie, of je probeer de lèste versie te verberhen.',
 'revdelete-selected' => "'''Hesillecteerde {{PLURAL:$2|bewerkieng|bewerkiengen}} van [[:$1]]:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|Hesillecteerde logboekactie|Hesillecteerde logboekacties}}:'''",
-'revdelete-text' => "'''Verwiederde bewerkiengen zien zichbaer in de heschiedenisse, mè den inoud is nie langer publiek toehankelijk.'''
-
-Aore opzichters van {{SITENAME}} kunn'n de verborhen inoud benadern en de verwiederieng onedaene maeken mie de ulpe van dit scherm, tenzie an der anvull'nde beperkiengen heln die an zien inesteld deur de systeembeheêrder.",
 'revdelete-legend' => "Zichbaereidsbeperkiengen instell'n",
 'revdelete-hide-text' => 'De bewerkte tekst verberhen',
 'revdelete-hide-image' => 'Bestandsinoud verberhen',
index ed1ee3a..6e6ad18 100644 (file)
@@ -7,16 +7,10 @@
  * @ingroup Language
  * @file
  *
- * @author Cwek
- * @author Gakmo
  * @author Kuailong
- * @author Li3939108
  * @author PhiLiP
- * @author Qiyue2001
  * @author Shizhao
- * @author StephDC
  * @author Wong128hk
- * @author Xiaomingyan
  */
 
 # Stub message file for converter code "zh"
@@ -179,84 +173,18 @@ $specialPageAliases = array(
 );
 
 $messages = array(
-# User preference toggles
-'tog-underline' => '鏈接下劃線:',
-'tog-hideminor' => '于最近更改列表中隱藏小編輯',
-'tog-showtoolbar' => '顯示編輯工具欄(需要 JavaScript)',
-'tog-editondblclick' => '双击以编辑页面',
-'tog-editsectiononrightclick' => '允许通过右击章节标题来编辑章节',
-'tog-rememberpassword' => '让浏览器记住我的登录(最大记录为$1天)',
-'tog-watchcreations' => '将我创建的页面和上传的文件添加到监视列表',
-'tog-watchdefault' => '将我编辑过的页面和上传的文件添加到监视列表',
-'tog-watchmoves' => '将我移动过的页面和上传的文件添加到监视列表',
-'tog-watchdeletion' => '将我删除的页面和文件添加到监视列表',
-'tog-minordefault' => '默认所有编辑为小编辑',
-'tog-previewontop' => '在编辑框前显示预览',
-'tog-previewonfirst' => '在第一次编辑时显示预览',
-'tog-enotifwatchlistpages' => '当在我监视列表的页面或文件发生更改时以电子邮件通知我',
-'tog-enotifusertalkpages' => '当我的用户讨论页发生更改时以电子邮件通知我',
-'tog-watchlisthideown' => '从监视列表隐藏我的编辑',
-'tog-watchlisthidebots' => '在监视列表中隐藏機器人用戶的修改',
-'tog-watchlisthideminor' => '在监视列表中隐藏小修改',
-'tog-norollbackdiff' => '進行回退後略過差異比較',
-
-# Font style option in Special:Preferences
-'editfont-monospace' => '等寬字體',
-
-# Categories related messages
-'category_header' => '分类“$1”中的页面',
-'subcategories' => '子分类',
-'hidden-category-category' => '隐藏的分类',
-
-'about' => '关于',
-'cancel' => '取消',
-'moredotdotdot' => '更多……',
-'mypage' => '页面',
-'mytalk' => '讨论',
-'anontalk' => '这个IP地址的讨论页',
-'navigation' => '导航',
-
-# Cologne Blue skin
-'qbbrowse' => '浏览',
-'qbedit' => '编辑',
-'qbpageoptions' => '该页',
-'faq' => '常见问题',
-'faqpage' => 'Project:常见问题',
-
-# Vector skin
-'vector-action-delete' => '删除',
-'vector-action-move' => '移动',
-'vector-view-create' => '创建',
-'vector-view-edit' => '编辑',
-'vector-view-history' => '查看历史',
-
-'newpage' => '最新页面',
-
-# Login and logout pages
-'userlogin-noaccount' => '没有账户?',
-'createacct-join' => '请在下面输入您的资料',
-
-# Edit pages
-'editing' => '编辑“$1”',
-
-# Miscellaneous special pages
-'newpages' => '最新页面',
-
-# Tooltip help for the actions
-'interlanguage-link-title' => '$1 – $2',
-
 /*
 Short names for language variants used for language conversion links.
 Variants for Chinese language
 */
 'variantname-zh-hans' => '简体',
 'variantname-zh-hant' => '繁體',
-'variantname-zh-cn' => '大陆简体',
-'variantname-zh-tw' => '台灣正體',
-'variantname-zh-hk' => '香港繁體',
-'variantname-zh-mo' => '澳門繁體',
-'variantname-zh-sg' => '新加坡简体',
-'variantname-zh-my' => '大马简体',
-'variantname-zh' => '不转换',
+'variantname-zh-cn'   => '大陆简体',
+'variantname-zh-tw'   => '台灣正體',
+'variantname-zh-hk'   => '香港繁體',
+'variantname-zh-mo'   => '澳門繁體',
+'variantname-zh-sg'   => '新加坡简体',
+'variantname-zh-my'   => '大马简体',
+'variantname-zh'      => '不转换',
 
 );
index cd395bb..6e72e36 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Chinese (China) (中文(中国大陆)‎)
+/** Chinese (China) (‪中文(中国大陆)‬)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -12,7 +12,6 @@
  * @author Shizhao
  * @author Wong128hk
  * @author Xiaomingyan
- * @author 范
  */
 
 # Inherit everything for now
@@ -22,21 +21,12 @@ $messages = array(
 # User preference toggles
 'tog-norollbackdiff' => '进行回退后略过差异比较',
 
-'mytalk' => '讨论',
+'mytalk' => '我的讨论页',
 
-# 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).
+# 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).
 'portal' => '社区专页',
 
-# Login and logout pages
-'createacct-benefit-body1' => '{{PLURAL:$1|次编辑}}',
-'createacct-benefit-body2' => '
-{{PLURAL:$1|个页面}}',
-'createacct-benefit-body3' => '位最近{{PLURAL:$1|贡献者}}',
-
 # Edit pages
-'editing' => '编辑“$1”',
-
-# Tooltip help for the actions
-'interlanguage-link-title' => '$1 – $2',
+'editing' => '正在编辑 $1',
 
 );
index 77ba5b1..40fcce5 100644 (file)
@@ -422,7 +422,6 @@ $messages = array(
 'tog-ccmeonemails' => '把我给其他用户发送的电子邮件的副本发送给我',
 'tog-diffonly' => '不在差异下面显示页面内容',
 'tog-showhiddencats' => '显示隐藏分类',
-'tog-noconvertlink' => '停用链接文字转换',
 'tog-norollbackdiff' => '执行回退后不显示差异',
 'tog-useeditwarning' => '当我离开有未保存更改的编辑页面时提醒我',
 'tog-prefershttps' => '登录时始终使用安全连接',
@@ -633,7 +632,6 @@ $1',
 'disclaimers' => '免责声明',
 'disclaimerpage' => 'Project:免责声明',
 'edithelp' => '编辑帮助',
-'helppage' => 'Help:目录',
 'mainpage' => '首页',
 'mainpage-description' => '首页',
 'policy-url' => 'Project:方针',
@@ -825,8 +823,7 @@ $2',
 'gotaccountlink' => '登录',
 'userlogin-resetlink' => '忘记你的登录信息?',
 'userlogin-resetpassword-link' => '忘记密码?',
-'helplogin-url' => 'Help:登录',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|登录帮助]]',
+'userlogin-helplink2' => '登录帮助',
 'userlogin-loggedin' => '你已经以{{GENDER:$1|$1}}的身份登录。使用下面的表格以其他用户的身份登录。',
 'userlogin-createanother' => '创建另一个账户',
 'createacct-join' => '请在下面输入你的信息。',
@@ -909,6 +906,7 @@ $2',
 'createacct-another-realname-tip' => '真实姓名是选填项目。
 如果你选择提供它,它将会用于贡献署名。',
 'pt-login' => '登录',
+'pt-login-button' => '登录',
 'pt-createaccount' => '创建账户',
 'pt-userlogout' => '退出',
 
@@ -938,7 +936,9 @@ $2',
 'resetpass-temp-password' => '临时密码:',
 'resetpass-abort-generic' => '密码更改已被一个扩展插件中止。',
 'resetpass-expired' => '您的密码已经过期。请设置一个新的密码登录。',
-'resetpass-expired-soft' => '您的密码已经过期,并且需要重置。请现在选择一个新密码,或单击取消以便稍后重置。',
+'resetpass-expired-soft' => '您的密码已过期并且需要重置。请现在选择一个新密码,或单击“{{int:resetpass-submit-cancel}}”以便稍后重置。',
+'resetpass-validity-soft' => '您的密码无效:$1
+请选择一个新密码,或单击“{{int:resetpass-submit-cancel}}”以稍后重置。',
 
 # Special:PasswordReset
 'passwordreset' => '重置密码',
@@ -1068,7 +1068,7 @@ $2
 'accmailtitle' => '密码已寄出',
 'accmailtext' => "为[[User talk:$1|$1]]随机生成的密码已送至$2。登录后可以在''[[Special:ChangePassword|更改密码]]''页面中修改。",
 'newarticle' => '(新页面)',
-'newarticletext' => "你点击了一个尚不存在的页面的链接。要创建该页面,请在下面的编辑框中输入内容(更多信息请见[[{{MediaWiki:Helppage}}|帮助页面]])。如果你是错误地到达这里,请点击你的浏览器的'''返回'''按钮。",
+'newarticletext' => "你点击了一个尚不存在的页面的链接。要创建该页面,请在下面的编辑框中输入内容(更多信息请见[$1 帮助页面])。如果你是错误地到达这里,请点击你的浏览器的'''返回'''按钮。",
 '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>,但你没有权限创建本页面。',
@@ -1094,7 +1094,7 @@ $2
 'updated' => '(已更新)',
 'note' => "'''注意:'''",
 'previewnote' => "'''请记住这只是预览。'''你的更改还没有保存!",
-'continue-editing' => 'å¾\80ç¼\96è¾\91æ¡\86',
+'continue-editing' => 'å\89\8då¾\80ç¼\96è¾\91å\8cº',
 'previewconflict' => '该预览反映了上面文字编辑区中的文字在你保存后的显示状况。',
 'session_fail_preview' => "'''对不起!由于会话数据丢失,我们无法处理你的编辑。'''请重试。如果仍然失败,请尝试[[Special:UserLogout|退出登录]]后重新登录。",
 'session_fail_preview_html' => "'''对不起!由于会话数据丢失,我们无法处理你的编辑。'''
@@ -1227,13 +1227,13 @@ $3给出的原因是“$2”。",
 'cur' => '当前',
 'next' => '后继',
 'last' => '先前',
-'page_first' => '最早',
-'page_last' => 'æ\9c\80å\90\8e',
+'page_first' => '首页',
+'page_last' => 'æ\9c«é¡µ',
 'histlegend' => "差异选择:选出需要对比的版本,按“回车键”或下方的按钮进行对比。<br />
 说明:'''({{int:cur}})'''=与最后版本之间的差异,'''({{int:last}})'''=与上一版本之间的差异,'''{{int:minoreditletter}}'''=小编辑。",
 'history-fieldset-title' => '浏览历史',
 'history-show-deleted' => '仅已被删除',
-'histfirst' => 'æ\9c\80æ\97©',
+'histfirst' => 'æ\9c\80æ\97§',
 'histlast' => '最新',
 'historysize' => '($1字节)',
 'historyempty' => '(空)',
@@ -1248,7 +1248,7 @@ $3给出的原因是“$2”。",
 # Revision deletion
 'rev-deleted-comment' => '(编辑摘要被删除)',
 'rev-deleted-user' => '(用户名被删除)',
-'rev-deleted-event' => 'ï¼\88æ\97¥å¿\97æ\9d¡ç\9b®被删除)',
+'rev-deleted-event' => 'ï¼\88æ\97¥å¿\97æ\93\8dä½\9c被删除)',
 'rev-deleted-user-contribs' => '[用户名或IP地址被删除 - 编辑在贡献中隐藏]',
 'rev-deleted-text-permission' => "本页面版本已被'''删除'''。详情请见[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]。",
 'rev-deleted-text-unhide' => "本页面版本已被'''删除'''。详情请见[{{fullurl:{{#Special:Log}}/delete|page={{FULLPAGENAMEE}}}} 删除日志]。如果你想继续操作,你仍然可以[$1 查看本版本]。",
@@ -1273,8 +1273,10 @@ $3给出的原因是“$2”。",
 'revdelete-show-file-submit' => '是',
 'revdelete-selected' => "'''选取'''[[:$1]]'''的$2次修订:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|选取的日志项目}}:'''",
-'revdelete-text' => "'''删除的版本仍将显示在页面历史及日志中,但公众已不能访问其文本内容。'''
-在{{SITENAME}}的其他管理员将仍能访问隐藏的内容并通过该界面恢复删除的版本,除非进行了额外限制。",
+'revdelete-text-text' => '已删除修订仍将在页面历史中显示,但涉及部分的内容将对公众不可见。',
+'revdelete-text-file' => '已删除文件版本仍将在文件历史中显示,但涉及部分的内容将对公众不可见。',
+'logdelete-text' => '已删除日志事件仍将在日志中显示,但涉及部分的内容将对公众不可见。',
+'revdelete-text-others' => '在{{SITENAME}}的其他管理员仍将可以访问隐藏内容,并在一定条件下能够通过相同界面取消删除,除非附加条件被设定。',
 'revdelete-confirm' => '请确认该操作,明白其后果,并确保该操作符合[[{{MediaWiki:Policy-url}}|方针]]。',
 'revdelete-suppress-text' => "阻止应'''仅'''用于以下情况:
 * 潜在的诽谤信息
@@ -1294,7 +1296,7 @@ $3给出的原因是“$2”。",
 'revdelete-unsuppress' => '在已恢复的修订中移除限制',
 'revdelete-log' => '原因:',
 'revdelete-submit' => '应用于选中的{{PLURAL:$1|版本}}',
-'revdelete-success' => "'''修订的可见性已经成功更新。'''",
+'revdelete-success' => '<strong>版本可见性更新成功。</strong>',
 'revdelete-failure' => "'''修订的可见性无法更新:'''
 $1",
 'logdelete-success' => "'''事件的可见性已经成功设置。'''",
@@ -1403,7 +1405,7 @@ $1",
 'search-file-match' => '(匹配文件内容)',
 'search-suggest' => '您是不是要找:$1',
 'search-interwiki-caption' => '姊妹项目',
-'search-interwiki-default' => '$1项结果:',
+'search-interwiki-default' => '来自$1的结果:',
 'search-interwiki-more' => '(更多)',
 'search-relatedarticle' => '相关',
 'searcheverything-enable' => '在所有名字空间中搜索',
@@ -1462,7 +1464,7 @@ $1",
 'recentchangesdays-max' => '最多$1天',
 'recentchangescount' => '默认显示的编辑数:',
 'prefs-help-recentchangescount' => '这包括最近更改、页面历史和日志。',
-'prefs-help-watchlist-token2' => 'è¿\99æ\98¯ä½ ç\9a\84ç\9b\91è§\86å\88\97表ç½\91页feedç\9a\84å¯\86é\92¥ã\80\82ä»»ä½\95ç\9f¥é\81\93å®\83ç\9a\84人å\9d\87å\8f¯ä»¥é\98\85读你ç\9a\84ç\9b\91è§\86å\88\97表ï¼\8cå\9b æ­¤ä¸\8dè¦\81å\88\86享å®\83ã\80\82å¦\82æ\9e\9cé\9c\80è¦\81ï¼\8c[[Special:ResetTokens|æ\82¨å\8f¯重置它]]。',
+'prefs-help-watchlist-token2' => 'è¿\99æ\98¯ä½ ç\9a\84ç\9b\91è§\86å\88\97表ç\9a\84ç½\91ç»\9cfeedç\9a\84å¯\86é\92¥ã\80\82ä»»ä½\95ç\9f¥é\81\93å®\83ç\9a\84人å\9d\87å\8f¯ä»¥é\98\85读你ç\9a\84ç\9b\91è§\86å\88\97表ï¼\8cå\9b æ­¤è¯·ä¸\8dè¦\81å\88\86享å®\83ã\80\82å¦\82æ\9e\9cé\9c\80è¦\81ï¼\8c[[Special:ResetTokens|ä½ å\8f¯ä»¥重置它]]。',
 'savedprefs' => '你的系统设置已保存。',
 'timezonelegend' => '时区:',
 'localtime' => '当地时间:',
@@ -1711,7 +1713,7 @@ $1",
 'enhancedrc-history' => '历史',
 'recentchanges' => '最近更改',
 'recentchanges-legend' => '最近更改选项',
-'recentchanges-summary' => 'å\9c¨æ­¤é¡µé\9d¢ä¸\8aè·\9f踪维å\9fºç\9a\84更改。',
+'recentchanges-summary' => 'å\9c¨æ\9c¬é¡µé\9d¢è¿½è¸ªæ\9c¬wikiç\9a\84æ\9c\80è¿\91更改。',
 'recentchanges-noresult' => '在此期间没有符合这些条件的编辑',
 'recentchanges-feed-description' => '用这个源跟踪本wiki的最近更改。',
 'recentchanges-label-newpage' => '该编辑创建了新页面',
@@ -1720,9 +1722,9 @@ $1",
 'recentchanges-label-unpatrolled' => '该编辑尚未巡查',
 'recentchanges-label-plusminus' => '该页面字节数的前后变化',
 'recentchanges-legend-heading' => "'''说明:'''",
-'recentchanges-legend-newpage' => '(见[[Special:NewPages|新页面列表]])',
+'recentchanges-legend-newpage' => '(见[[Special:NewPages|新页面列表]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "下面是'''$2'''之后的更改(最多显示'''$1'''个)。",
+'rcnotefrom' => '下面是<strong>$2</strong>之后的更改(最多显示<strong>$1</strong>个)。',
 'rclistfrom' => '显示$1之后的新更改',
 'rcshowhideminor' => '$1小编辑',
 'rcshowhideminor-show' => '显示',
@@ -1771,22 +1773,22 @@ $1",
 # Upload
 'upload' => '上传文件',
 'uploadbtn' => '上传文件',
-'reuploaddesc' => '取消上传并返回上传表单',
-'upload-tryagain' => '提交修改后的文件描述',
+'reuploaddesc' => '取消上传,返回上传表格',
+'upload-tryagain' => '提交修改过的文件说明',
 'uploadnologin' => '未登录',
 'uploadnologintext' => '您必须先$1才能上传文件。',
 'upload_directory_missing' => '上传目录($1)遗失,不能由网页服务器建立。',
 'upload_directory_read_only' => '上传目录($1)不存在或无写权限。',
-'uploaderror' => '上传错误',
+'uploaderror' => '上传出错',
 'upload-recreate-warning' => "'''警告:一个相同名字的文件曾经被删除或者移动至别处。'''
 
 这个页面的删除和移动日志在这里提供以便参考:",
-'uploadtext' => "请使用下面的表格上传文件。要查看或搜索以前上传的文件,可以进入[[Special:FileList|文件上传列表]],(重新)上传也将在[[Special:Log/upload|上传日志]]中记录,而删除将在[[Special:Log/delete|删除日志]]中记录
+'uploadtext' => '请使用下面的表格上传文件。要查看或搜索以往上传的文件,请前往[[Special:FileList|上传的文件的列表]],(重新)上传也将记录在[[Special:Log/upload|上传日志]]中,删除将记录在[[Special:Log/delete|删除日志]]中
 
-è¦\81å\9c¨é¡µé\9d¢ä¸­å\8a å\85¥文件,请使用一种以下形式的链接:
-* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code>'''使用文件的完整版本
-* '''<code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|替换文字]]</nowiki></code>'''使用放置于左侧的一个框内的200像素宽的图片,同时使用“替换文字”作为描述
-* '''<code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code>'''直接链接到文件而不显示文件",
+è¦\81å\9c¨é¡µé\9d¢ä¸­å\8c\85å\90«文件,请使用一种以下形式的链接:
+* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.jpg]]</nowiki></code></strong>使用文件的完整版本
+* <strong><code><nowiki>[[</nowiki>{{ns:file}}<nowiki>:File.png|200px|thumb|left|替代文字]]</nowiki></code></strong>使用位于页面左边的框内的200像素宽的图片,以“替代文字”作为说明
+* <strong><code><nowiki>[[</nowiki>{{ns:media}}<nowiki>:File.ogg]]</nowiki></code></strong>直接链接到文件而不显示文件',
 'upload-permitted' => '允许的文件类型:$1。',
 'upload-preferred' => '建议的文件类型:$1。',
 'upload-prohibited' => '禁止的文件类型:$1。',
@@ -1800,7 +1802,7 @@ $1",
 'filestatus' => '著作权状况:',
 'filesource' => '来源:',
 'uploadedfiles' => '已上传文件',
-'ignorewarning' => '忽视警告并继续保存文件',
+'ignorewarning' => '忽略警告,继续保存文件',
 'ignorewarnings' => '忽略所有警告',
 'minlength1' => '文件名至少要有一个字符。',
 'illegalfilename' => '文件名“$1”包含在页面标题中不允许使用的字符。请重命名该文件,然后重新上传。',
@@ -1830,10 +1832,7 @@ $1",
 'emptyfile' => '您所上传的文件不存在。这可能是由于文件名键入错误。请检查您是否真的要上传此文件。',
 'windows-nonascii-filename' => '本wiki不支持在文件名中使用特殊字符。',
 'fileexists' => '已存在相同名称的文件,如果您无法确定您是否要改变它,请检查<strong><strong>[[:$1]]</strong></strong>。 [[$1|thumb]]',
-'filepageexists' => '这个文件的描述页已经于<strong><strong>[[:$1]]</strong></strong>创建,但是这个名称的文件尚不存在。
-您输入的摘要不会显示在该描述页中。
-要令该摘要在该处中出现,您需要手动地编辑该页。
-[[$1|thumb]]',
+'filepageexists' => '该文件的说明页面已经创建于<strong>[[:$1]]</strong>,但是目前没有名称为此的文件存在。你输入的摘要不会显示在说明页面上。要使你的摘要在那里显示,你需要手工编辑它。[[$1|thumb]]',
 'fileexists-extension' => '一个相似名称的文件已经存在: [[$2|thumb]]
 * 上传文件的文件名:<strong>[[:$1]]</strong>
 * 现有文件的文件名:<strong>[[:$2]]</strong>
@@ -1858,7 +1857,7 @@ $1",
 'uploaddisabledtext' => '文件上传已停用。',
 'php-uploaddisabledtext' => 'PHP文件上传停用。请检查file_uploads设置。',
 'uploadscripted' => '该文件包含可能被网络浏览器错误解释的 HTML 或脚本代码。',
-'uploadscriptednamespace' => "此SVG文件包含非法名字空间'$1'",
+'uploadscriptednamespace' => '此SVG文件包含非法名字空间“$1”',
 'uploadinvalidxml' => '上传文件中的XML无法解析。',
 'uploadvirus' => '该文件包含病毒!
 详情:$1',
@@ -2012,7 +2011,7 @@ $1',
 # File description page
 'file-anchor-link' => '文件',
 'filehist' => '文件历史',
-'filehist-help' => '查看某一时刻的文件,请单击相应的日期/时间。',
+'filehist-help' => '单击某个日期/时间查看对应时刻的文件。',
 'filehist-deleteall' => '删除全部',
 'filehist-deleteone' => '删除',
 'filehist-revert' => '恢复',
@@ -2035,16 +2034,16 @@ $1',
 'morelinkstoimage' => '查看连接到这个文件的[[Special:WhatLinksHere/$1|更多链接]]。',
 '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' => '本文件来自$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' => '一个共文件库',
+'shared-repo-from' => '自$1',
+'shared-repo' => '一个共文件库',
 'shared-repo-name-wikimediacommons' => '维基共享资源',
 'upload-disallowed-here' => '您不可以覆盖此文件。',
 
@@ -2091,6 +2090,11 @@ $1',
 # List redirects
 'listredirects' => '重定向列表',
 
+# List duplicated files special page
+'listduplicatedfiles' => '重复文件列表',
+'listduplicatedfiles-summary' => '这是某文件的最新版本与其他文件最新版本重复的文件列表。仅考虑本地文件。',
+'listduplicatedfiles-entry' => '文件[[:File:$1|$1]]与[[$3|$2个重复]]。',
+
 # Unused templates
 'unusedtemplates' => '未使用模板',
 'unusedtemplatestext' => '本页面列出{{ns:template}}名字空间中所有未包含于其它页面的页面。请记得在删除这些模板前检查其他链至它们的链接。',
@@ -2120,7 +2124,7 @@ $1',
 'statistics-header-hooks' => '其它统计',
 'statistics-articles' => '内容页面',
 'statistics-pages' => '页面',
-'statistics-pages-desc' => '本wiki的所有页面,包括讨论页面、重定向页等',
+'statistics-pages-desc' => '本wiki的所有页面,包括讨论页面、重定向等。',
 'statistics-files' => '已上传文件',
 'statistics-edits' => '自{{SITENAME}}建立以来的页面编辑数',
 'statistics-edits-average' => '每页平均编辑数',
@@ -2129,7 +2133,7 @@ $1',
 'statistics-views-peredit' => '每编辑查看数',
 'statistics-users' => '注册[[Special:ListUsers|用户]]',
 'statistics-users-active' => '活跃用户',
-'statistics-users-active-desc' => '在前$1天中操作过的用户',
+'statistics-users-active-desc' => '在过去{{PLURAL:$1|$1天}}执行过操作的用户',
 'statistics-mostpopular' => '最多查看页面',
 
 'pageswithprop' => '有页面属性的页面',
@@ -2202,7 +2206,7 @@ $1',
 'deadendpagestext' => '以下页面没有链接至{{SITENAME}}的其它页面。',
 'protectedpages' => '受保护页面',
 'protectedpages-indef' => '仅无限期保护',
-'protectedpages-summary' => '本页面列出当前受保护的页面。要浏览受限制创建的标题列表,请参见[[{{#special:ProtectedTitles}}]]。',
+'protectedpages-summary' => '本页面列出当前受保护的页面。要浏览受限制创建的标题列表,请参见[[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]]。',
 'protectedpages-cascade' => '仅连锁保护',
 'protectedpages-noredirect' => '隐藏重定向',
 'protectedpagesempty' => '在这些参数下没有页面正在保护。',
@@ -2215,7 +2219,7 @@ $1',
 'protectedpages-unknown-timestamp' => '未知',
 'protectedpages-unknown-performer' => '未知用户',
 'protectedtitles' => '受保护标题',
-'protectedtitles-summary' => '本页面列出当前限制创建的标题。要浏览受限制页面的列表,请参见[[{{#special:ProtectedPages}}]]。',
+'protectedtitles-summary' => '本页面列出当前限制创建的标题。要浏览受限制页面的列表,请参见[[{{#special:ProtectedPages}}|{{int:protectedpages}}]]。',
 'protectedtitlesempty' => '在这些参数之下并无标题正在保护。',
 'listusers' => '用户列表',
 'listusers-editsonly' => '只显示有编辑的用户',
@@ -2307,7 +2311,7 @@ $1',
 
 # Special:ActiveUsers
 'activeusers' => '活跃用户列表',
-'activeusers-intro' => '这个列表列出了最近$1天进行过操作的用户。',
+'activeusers-intro' => '这是在过去$1{{PLURAL:$1|天}}有过某种活动的用户的列表。',
 'activeusers-count' => '最近$3天内有$1次编辑',
 'activeusers-from' => '显示用户开始于:',
 'activeusers-hidebots' => '隐藏机器人',
@@ -2409,7 +2413,7 @@ $1',
 'enotif_subject_deleted' => '{{SITENAME}}页面$1已被$2删除',
 'enotif_subject_created' => '{{SITENAME}}页面$1已被$2创建',
 'enotif_subject_moved' => '{{SITENAME}}页面$1已被$2移动',
-'enotif_subject_restored' => '{{SITENAME}}页面$1已被$2恢复',
+'enotif_subject_restored' => '{{SITENAME}}页面$1已经被$2{{GENDER:$2|还原}}',
 'enotif_subject_changed' => '{{SITENAME}}页面$1已被$2更改',
 'enotif_body_intro_deleted' => '{{SITENAME}}页面$1已于$PAGEEDITDATE被$2{{GENDER:$2|删除}},请见$3。',
 'enotif_body_intro_created' => '{{SITENAME}}页面$1已于$PAGEEDITDATE被$2{{GENDER:$2|创建}},请浏览<$3>查看当前版本。',
@@ -2477,7 +2481,7 @@ $UNWATCHURL
 'delete-edit-reasonlist' => '编辑删除原因',
 'delete-toobig' => '这个页面有一个十分大量的编辑历史,超过$1次修订。删除此类页面的动作已经被限制,以防止在{{SITENAME}}上的意外扰乱。',
 'delete-warning-toobig' => '这个页面有一个十分大量的编辑历史,超过$1次修订。删除它可能会扰乱{{SITENAME}}的数据库操作;在继续此动作前请小心。',
-'deleting-backlinks-warning' => "'''警告:'''有其他页面链接至或包含您要删除的页面。",
+'deleting-backlinks-warning' => "'''警告:'''有[[Special:WhatLinksHere/{{FULLPAGENAME}}|其他页面]]链接至或包含您要删除的页面。",
 
 # Rollback
 'rollback' => '回退编辑',
@@ -2490,7 +2494,7 @@ $UNWATCHURL
 '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' => '编辑摘要:"<i>$1</i>"。',
+'editcomment' => "编辑摘要:“''$1''”。",
 'revertpage' => '恢复[[Special:Contributions/$2|$2]]([[User talk:$2|讨论]])的编辑至[[User:$1|$1]]的最后版本',
 'revertpage-nouser' => '恢复隐藏用户的编辑至{{GENDER:$1|[[User:$1|$1]]}}的最后版本',
 'rollback-success' => '已恢复$1的编辑,更改回$2的最后版本。',
@@ -2506,7 +2510,7 @@ $UNWATCHURL
 'protectlogtext' => '下面是页面保护更改的列表。请见[[Special:ProtectedPages|受保护页面列表]]查看目前正在进行的页面保护的列表。',
 'protectedarticle' => '保护“[[$1]]”',
 'modifiedarticleprotection' => '更改“[[$1]]”的保护等级',
-'unprotectedarticle' => '解除“[[$1]]”的保护',
+'unprotectedarticle' => '移除保护自“[[$1]]”',
 'movedarticleprotection' => '移动保护设置自“[[$2]]”至“[[$1]]”',
 'protect-title' => '更改“$1”的保护等级',
 'protect-title-notallowed' => '查看“$1”的保护等级',
@@ -2520,12 +2524,12 @@ $UNWATCHURL
 'protectexpiry' => '到期:',
 'protect_expiry_invalid' => '输入的终止时间无效。',
 'protect_expiry_old' => '终止时间已过去。',
-'protect-unchain-permissions' => '解é\99¤é\94\81å®\9aæ\9b´å¤\9aç\9a\84保护选项',
+'protect-unchain-permissions' => '解é\94\81æ\9b´å¤\9a保护选项',
 'protect-text' => '您可以在这里浏览和修改对页面<strong>$1</strong>的保护级别。',
 'protect-locked-blocked' => "您不能在被封禁时更改保护级别。以下是页面'''$1'''的当前设置:",
 'protect-locked-dblock' => "您不能在数据库锁定时更改保护级别。以下是页面'''$1'''的当前设置:",
 'protect-locked-access' => "您的帐户没有足够的权限去更改保护级别。以下是页面'''$1'''的当前设置:",
-'protect-cascadeon' => '以下的{{PLURAL:$1|一个|多个}}页面包含  本页面的同时,启动了连锁保护,因此本页面目前也被保护,未能编辑。您可以设置本页面的保护级别,但这并不会对连锁保护有所影响。',
+'protect-cascadeon' => '以下$1个页面包含本页面的同时,启动了连锁保护,因此此页面也被保护。您可以设置本页面的保护级别,但这并不会对连锁保护有所影响。',
 'protect-default' => '允许所有用户',
 'protect-fallback' => '仅允许拥有“$1”权限的用户',
 'protect-level-autoconfirmed' => '仅允许自动确认用户',
@@ -2568,7 +2572,7 @@ $UNWATCHURL
 
 # Undelete
 'undelete' => '查看被删除页面',
-'undeletepage' => 'æµ\8fè§\88å\8f\8aæ\81¢å¤\8d被å\88 页面',
+'undeletepage' => 'æ\9f¥ç\9c\8bå\92\8cè¿\98å\8e\9f被å\88 é\99¤ç\9a\84页面',
 'undeletepagetitle' => "'''以下包含[[:$1]]的已删除之修订版本'''。",
 'viewdeletedpage' => '查看被删页面',
 'undeletepagetext' => '以下{{PLURAL:$1|页面|$1个页面}}已被删除,但依然在归档中并可以被恢复。归档可能会被定时清理。',
@@ -2587,9 +2591,9 @@ $UNWATCHURL
 'undeleteviewlink' => '查看',
 'undeleteinvert' => '反向选择',
 'undeletecomment' => '原因:',
-'undeletedrevisions' => '{{PLURAL:$1|$1个版本}}被还原',
-'undeletedrevisions-files' => '{{PLURAL:$1|$1个版本}}和{{PLURAL:$2|$2个文件}}被还原',
-'undeletedfiles' => '{{PLURAL:$1|$1个文件}}被还原',
+'undeletedrevisions' => '还原{{PLURAL:$1|$1个版本}}',
+'undeletedrevisions-files' => '还原{{PLURAL:$1|$1个版本}}和{{PLURAL:$2|$2个文件}}',
+'undeletedfiles' => '还原{{PLURAL:$1|$1个文件}}',
 'cannotundelete' => '恢复删除失败:
 $1',
 'undeletedpage' => "'''$1已经被恢复'''
@@ -2605,7 +2609,7 @@ $1',
 'undelete-bad-store-key' => '不能删除带有时间戳的文件修订$1:文件在删除前遗失。',
 'undelete-cleanup-error' => '删除无用的存档文件“$1”时发生错误。',
 'undelete-missing-filearchive' => '由于文件存档 ID $1 不在数据库中,不能在文件存档中恢复。它可能已经被恢复了。',
-'undelete-error' => '恢复已删除页面时出错',
+'undelete-error' => '还原页面出错',
 'undelete-error-short' => '恢复被删文件时发生错误:$1',
 'undelete-error-long' => '恢复被删除的文件时出错:
 
@@ -2645,6 +2649,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => '这个IP地址现时正在被封锁中。
 最近的封锁日志项目在下面提供以便参考:',
 'sp-contributions-search' => '搜索贡献',
+'sp-contributions-suppresslog' => '已被删除的用户贡献',
 'sp-contributions-username' => 'IP地址或用户名:',
 'sp-contributions-toponly' => '仅显示最后版本的编辑',
 'sp-contributions-newonly' => '仅显示创建页面的编辑',
@@ -2722,7 +2727,7 @@ $1',
 'blocklist' => '被封禁用户',
 'ipblocklist' => '被封禁用户',
 'ipblocklist-legend' => '查找被封禁用户',
-'blocklist-userblocks' => '隐藏户封禁',
+'blocklist-userblocks' => '隐藏户封禁',
 'blocklist-tempblocks' => '隐藏临时封禁',
 'blocklist-addressblocks' => '隐藏单个IP封禁',
 'blocklist-rangeblocks' => '隐藏IP段封禁',
@@ -2754,8 +2759,8 @@ $1被封禁的理由是“$2”',
 'blocklogpage' => '封禁日志',
 'blocklog-showlog' => '该用户曾被封禁。下面提供封禁日志以供参考:',
 'blocklog-showsuppresslog' => '该用户曾被封禁并隐藏。下面提供封锁日志以供参考:',
-'blocklogentry' => '封禁[[$1]],到期时间为$2$3',
-'reblock-logentry' => '更改[[$1]]的封禁设置,到期时间为$2$3',
+'blocklogentry' => '封禁[[$1]],终止时间为$2$3',
+'reblock-logentry' => '更改[[$1]]的封禁设置,终止时间为$2$3',
 'blocklogtext' => '这是用户封禁和解封操作的日志。自动封禁IP地址没有列出。请见[[Special:BlockList|封禁列表]]查看目前正在进行的阻止和封禁的列表。',
 'unblocklogentry' => '解封$1',
 'block-log-flags-anononly' => '仅限匿名用户',
@@ -3002,10 +3007,10 @@ $2',
 # Import log
 'importlogpage' => '导入日志',
 'importlogpagetext' => '管理性导入在其他wiki上有编辑历史的页面。',
-'import-logentry-upload' => '文件上传导入[[$1]]',
+'import-logentry-upload' => '通过文件上传导入[[$1]]',
 'import-logentry-upload-detail' => '$1个版本',
 'import-logentry-interwiki' => '跨wiki$1',
-'import-logentry-interwiki-detail' => '来自$2的$1个修订',
+'import-logentry-interwiki-detail' => '来自$2的$1个{{PLURAL:$1|版本}}',
 
 # JavaScriptTest
 'javascripttest' => 'JavaScript测试',
@@ -3026,7 +3031,7 @@ $2',
 'tooltip-pt-watchlist' => '你正在监视更改的页面的列表',
 'tooltip-pt-mycontris' => '你的贡献的列表',
 'tooltip-pt-login' => '我们鼓励您登录,不过这不是强制的',
-'tooltip-pt-logout' => '退出登录',
+'tooltip-pt-logout' => '退出',
 'tooltip-ca-talk' => '关于内容页面的讨论',
 'tooltip-ca-edit' => '你可以编辑本页面。请在保存前使用预览按钮',
 'tooltip-ca-addsection' => '开始新段落',
@@ -3414,7 +3419,7 @@ Variants for Chinese language
 'exif-contrast' => '对比度',
 'exif-saturation' => '饱和度',
 'exif-sharpness' => '锐化',
-'exif-devicesettingdescription' => '设备设定描述',
+'exif-devicesettingdescription' => '设备设置说明',
 'exif-subjectdistancerange' => '主体距离范围',
 'exif-imageuniqueid' => '唯一图像ID',
 'exif-gpsversionid' => 'GPS标签版本',
@@ -3470,7 +3475,7 @@ Variants for Chinese language
 'exif-editstatus' => '编辑状态的图像',
 'exif-urgency' => '紧急性',
 'exif-fixtureidentifier' => '夹具名称',
-'exif-locationdest' => '位置描述',
+'exif-locationdest' => '描绘的地点',
 'exif-locationdestcode' => '位置所示的代码',
 'exif-objectcycle' => '媒体文件使用时间要求',
 'exif-contact' => '联系信息',
@@ -3507,9 +3512,9 @@ Variants for Chinese language
 'exif-intellectualgenre' => '项目类型',
 'exif-subjectnewscode' => '主题代码',
 'exif-scenecode' => 'IPTC 现场代码',
-'exif-event' => '事件描述',
-'exif-organisationinimage' => '组织描述',
-'exif-personinimage' => '描述的人',
+'exif-event' => '描绘的事件',
+'exif-organisationinimage' => '描绘的组织',
+'exif-personinimage' => '描绘的人物',
 'exif-originalimageheight' => '裁剪前的图像高度',
 'exif-originalimagewidth' => '裁剪前的图像宽度',
 
@@ -3909,13 +3914,13 @@ $5
 'version-hook-subscribedby' => '署名',
 'version-version' => '(版本 $1)',
 'version-license' => 'MediaWiki协议',
-'version-ext-license' => '授权',
+'version-ext-license' => '许可协议',
 'version-ext-colheader-name' => '扩展',
 'version-ext-colheader-version' => '版本',
-'version-ext-colheader-license' => '协议',
+'version-ext-colheader-license' => '许可协议',
 'version-ext-colheader-description' => '说明',
 'version-ext-colheader-credits' => '作者',
-'version-license-title' => '用于$1的授权',
+'version-license-title' => '$1的许可协议',
 'version-license-not-found' => '没有找到与此拓展相关的授权信息。',
 'version-credits-title' => '用于$1的信用',
 'version-credits-not-found' => '没有找到与此拓展相关的信用信息。',
@@ -4052,38 +4057,38 @@ MediaWiki发表时预期有用,但对此'''无任何保证''',亦无隐含
 
 # New logging system
 'logentry-delete-delete' => '$1删除页面$3',
-'logentry-delete-restore' => '$1恢复页面$3',
-'logentry-delete-event' => '$1已更改$3中$5项日志的可见性:$4',
-'logentry-delete-revision' => '$1{{GENDER:$2|已更改}}$3中{{PLURAL:$5|$5个历史版本|$5个历史版本}}的可见性:$4',
-'logentry-delete-event-legacy' => '$1{{GENDER:$2|已更改}}$3中日志的可见性',
-'logentry-delete-revision-legacy' => '$1{{GENDER:$2|已更改}}$3中历史版本的可见性',
+'logentry-delete-restore' => '$1{{GENDER:$2|还原}}页面$3',
+'logentry-delete-event' => '$1{{GENDER:$2|更改}}$3的{{PLURAL:$5|$5个日志事件}}的可见性:$4',
+'logentry-delete-revision' => '$1{{GENDER:$2|更改}}页面$3的{{PLURAL:$5|$5个版本}}的可见性:$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|更改}}$3中{{PLURAL:$5|$5项日志|$5项日志}}的可见性:$4',
-'logentry-suppress-revision' => '$1已不可见地{{GENDER:$2|更改}}$3中{{PLURAL:$5|$5个历史版本|$5个历史版本}}的可见性:$4',
-'logentry-suppress-event-legacy' => '$1已不可见地{{GENDER:$2|更改}}$3中日志的可见性',
-'logentry-suppress-revision-legacy' => '!$1已不可见地{{GENDER:$2|更改}}$3中历史版本的可见性',
+'logentry-suppress-event' => '$1秘密地{{GENDER:$2|更改}}$3的{{PLURAL:$5|$5个日志事件}}的可见性:$4',
+'logentry-suppress-revision' => '$1秘密地{{GENDER:$2|更改}}页面$3的{{PLURAL:$5|$5个版本}}的可见性:$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' => '隐藏用户名',
-'revdelete-content-unhid' => '恢复内容',
-'revdelete-summary-unhid' => '恢复编辑摘要',
-'revdelete-uname-unhid' => '恢复用户名',
-'revdelete-restricted' => 'å·²å°\86é\99\90å\88¶åº\94ç\94¨å\88°ç®¡ç\90\86å\91\98',
-'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,不留重定向',
+'revdelete-content-unhid' => '公开内容',
+'revdelete-summary-unhid' => '公开编辑摘要',
+'revdelete-uname-unhid' => '公开用户名',
+'revdelete-restricted' => 'åº\94ç\94¨å¯¹ç®¡ç\90\86å\91\98ç\9a\84é\99\90å\88',
+'revdelete-unrestricted' => 'å\88 除对管理员的限制',
+'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|标记}}页面$3的版本$4为已巡查',
 'logentry-patrol-patrol-auto' => '$1自动{{GENDER:$2|标记}}页面$3的版本$4为已巡查',
-'logentry-newusers-newusers' => '已{{GENDER:$2|创建}}用户帐户$1',
-'logentry-newusers-create' => '{{GENDER:$2|创建}}用户帐户$1',
-'logentry-newusers-create2' => '用户帐户 $3 由 $1 创建',
+'logentry-newusers-newusers' => '用户账户$1被{{GENDER:$2|创建}}',
+'logentry-newusers-create' => '用户账户$1被{{GENDER:$2|创建}}',
+'logentry-newusers-create2' => '用户账户$3被$1{{GENDER:$2|创建}}',
 'logentry-newusers-byemail' => '$1创建用户$3,并且密码已通过电子邮件发送',
-'logentry-newusers-autocreate' => '用户帐户$1已被自动{{GENDER:$2|创建}}',
-'logentry-rights-rights' => '$1将$3的用户组从$4改为$5',
+'logentry-newusers-autocreate' => '用户账户$1被自动{{GENDER:$2|创建}}',
+'logentry-rights-rights' => '$1{{GENDER:$2|更改}}$3的用户组自$4至$5',
 'logentry-rights-rights-legacy' => '$1更改$3的用户组',
-'logentry-rights-autopromote' => '$1的用户组已自动从$4改为$5',
+'logentry-rights-autopromote' => '$1被自动地{{GENDER:$2|提升}}自$4至$5',
 'rightsnone' => '(无)',
 
 # Feedback
index ba2f515..438188e 100644 (file)
@@ -306,7 +306,6 @@ $messages = array(
 'tog-ccmeonemails' => '當我寄電子郵件給其他使用者時,也寄一份副本到我的信箱',
 'tog-diffonly' => '比對版本差異時下面不顯示頁面內容',
 'tog-showhiddencats' => '顯示隱藏分類',
-'tog-noconvertlink' => '不轉換連結標題',
 'tog-norollbackdiff' => '回退後不做差異比對',
 'tog-useeditwarning' => '當離開頁面時編輯仍未儲存,請提醒我',
 'tog-prefershttps' => '登入時始終使用安全連線',
@@ -516,7 +515,6 @@ $1',
 'disclaimers' => '免責聲明',
 'disclaimerpage' => 'Project:一般免責聲明',
 'edithelp' => '編輯幫助',
-'helppage' => 'Help:目錄',
 'mainpage' => '首頁',
 'mainpage-description' => '首頁',
 'policy-url' => 'Project:方針',
@@ -716,8 +714,7 @@ $2',
 'gotaccountlink' => '登入',
 'userlogin-resetlink' => '忘記了您的登入細節?',
 'userlogin-resetpassword-link' => '忘記您的密碼?',
-'helplogin-url' => 'Help:登入',
-'userlogin-helplink' => '[[{{MediaWiki:helplogin-url}}|登入幫助]]',
+'userlogin-helplink2' => '登入幫助',
 'userlogin-loggedin' => '您已作為{{GENDER:$1|$1}}登錄。
 利用以下表單以作為另一賬戶登錄。',
 'userlogin-createanother' => '建立另一賬戶',
@@ -807,6 +804,7 @@ $2',
 'createacct-another-realname-tip' => '真實姓名為選填。
 如果您選擇提供,它將用於貢獻署名。',
 'pt-login' => '登入',
+'pt-login-button' => '登入',
 'pt-createaccount' => '建立帳戶',
 'pt-userlogout' => '登出',
 
@@ -837,7 +835,10 @@ $2',
 'resetpass-temp-password' => '臨時密碼:',
 'resetpass-abort-generic' => '擴充元件已中止了更改密碼操作。',
 'resetpass-expired' => '您的密碼已過期。請設置新密碼以登錄。',
-'resetpass-expired-soft' => '您的密碼已過期,現需重置。請設置新密碼以登錄,或點擊取消以稍後重置。',
+'resetpass-expired-soft' => '您的密碼已過期,現需重置。請設置新密碼以登錄,或點擊“{{int:resetpass-submit-cancel}}”以稍後重置。',
+'resetpass-validity-soft' => '您的密碼無效:$1 
+
+請選擇一個新密碼,或點擊「{{int:resetpass-submit-cancel}}」以稍後重置。',
 
 # Special:PasswordReset
 'passwordreset' => '重新設定密碼',
@@ -971,7 +972,7 @@ $2
 'accmailtext' => "[[User talk:$1|$1]]的隨機產生密碼已經寄到$2。其可於登入後予以'''[[Special:ChangePassword|更改]]'''。",
 'newarticle' => '(新)',
 'newarticletext' => '您進入了一個尚未建立的頁面。
-要建立該頁面,請在下面的編輯框中輸入內容(詳情參見[[{{MediaWiki:Helppage}}|幫助]])。
+要建立該頁面,請在下面的編輯框中輸入內容(詳情參見[$1 幫助])。
 如果您是不小心來到此頁面,直接點擊您瀏覽器中的「返回」按鈕返回。',
 'anontalkpagetext' => "---- ''這是一個還未建立賬號的匿名用戶的對話頁。我們因此只能用IP地址來與他/她聯絡。該IP地址可能由幾名用戶共享。如果您是一名匿名用戶並認為本頁上的評語與您無關,請[[Special:UserLogin/signup|創建新賬號]]或[[Special:UserLogin|登入]]以避免在未來於其他匿名用戶混淆。''",
 'noarticletext' => '此頁面目前沒有內容,您可以在其它頁面[[Special:Search/{{PAGENAME}}|搜尋此頁標題]],
@@ -1202,8 +1203,10 @@ $3所述禁止原因為“$2”。",
 'revdelete-show-file-submit' => '是',
 'revdelete-selected' => "'''選取[[:$1]]的$2次修訂:'''",
 'logdelete-selected' => "'''{{PLURAL:$1|選取的日誌項目}}:'''",
-'revdelete-text' => "'''刪除的修訂仍將顯示在頁面歷史中, 但它們的文字內容已不能被公眾訪問。'''
-在{{SITENAME}}的其他管理員將仍能訪問隱藏的內容並透過與此相同的介面恢復刪除,除非網站工作者進行了一些附加的限制。",
+'revdelete-text-text' => '已刪除修訂版本仍將出現於頁面歷史中,唯將不公開內容訪問。',
+'revdelete-text-file' => '已刪除檔案版本仍將出現於檔案歷史中,唯將不公開內容訪問。',
+'logdelete-text' => '已刪除日誌活動仍將出現於日誌中,唯將不公開內容訪問。',
+'revdelete-text-others' => '於{{SITENAME}}之其他管理員仍有權限訪問隱藏內容,亦可於同一界面恢復刪除,除非設定額外條件。',
 'revdelete-confirm' => '請確認您肯定去做的話,您就要明白到後果,以及這個程序符合[[{{MediaWiki:Policy-url}}|政策]]。',
 'revdelete-suppress-text' => "禁制應'''僅'''於下述情形之一時使用:
 * 潛在誹謗性資訊
@@ -1333,7 +1336,7 @@ $1",
 'search-file-match' => '(匹配檔案內容)',
 'search-suggest' => '{{GENDER:|你|妳|你}}是不是要找:$1',
 'search-interwiki-caption' => '姊妹計劃',
-'search-interwiki-default' => '$1 項結果:',
+'search-interwiki-default' => '來自$1之結果:',
 'search-interwiki-more' => '(更多)',
 'search-relatedarticle' => '相關',
 'searcheverything-enable' => '在所有名字空間中搜尋',
@@ -1655,9 +1658,9 @@ $1",
 'recentchanges-label-unpatrolled' => '這次編輯尚未巡查過',
 'recentchanges-label-plusminus' => '更改前後頁面位元組大小的變化',
 'recentchanges-legend-heading' => "'''說明:'''",
-'recentchanges-legend-newpage' => '(見[[Special:NewPages|新頁面列表]])',
+'recentchanges-legend-newpage' => '(見[[Special:NewPages|新頁面列表]])',
 'recentchanges-legend-plusminus' => "(''±123'')",
-'rcnotefrom' => "下面是自'''$2'''(最多顯示'''$1'''):",
+'rcnotefrom' => '下面是自<strong>$2</strong>起之更改(至多顯示<strong>$1</strong>個)。',
 'rclistfrom' => '顯示自 $1 以來的新變更',
 'rcshowhideminor' => '$1小編輯',
 'rcshowhideminor-show' => '顯示',
@@ -1796,7 +1799,7 @@ $1",
 'uploaddisabledtext' => '檔案上傳不可用。',
 'php-uploaddisabledtext' => 'PHP 檔案上載已經停用。請檢查 file_uploads 設定。',
 'uploadscripted' => '該檔案包含可能被網路瀏覽器錯誤解釋的 HTML 或腳本代碼。',
-'uploadscriptednamespace' => "此SVG檔案中包含非法命名空間'$1'",
+'uploadscriptednamespace' => '此SVG檔案中包含非法命名空間「$1」',
 'uploadinvalidxml' => '上載檔案中的XML無法解析。',
 'uploadvirus' => '該檔案包含有病毒!
 詳情:$1',
@@ -2037,6 +2040,11 @@ $1',
 # List redirects
 'listredirects' => '重定向清單',
 
+# List duplicated files special page
+'listduplicatedfiles' => '重複檔案列表',
+'listduplicatedfiles-summary' => '以下列表中某檔案之最新版本與其他檔案之最新版本重複。進包含本地檔案',
+'listduplicatedfiles-entry' => '檔案[[:File:$1|$1]]與[[$3|其他$2個重複]]。',
+
 # Unused templates
 'unusedtemplates' => '未使用的模板',
 'unusedtemplatestext' => '本頁面列出{{ns:template}}名字空間下所有未被其他頁面使用的頁面。請在刪除這些模板前檢查其他連入該模板的頁面。',
@@ -2149,7 +2157,7 @@ $1',
 'deadendpagestext' => '以下頁面沒有連結到{{SITENAME}}中的其它頁面。',
 'protectedpages' => '受保護頁面',
 'protectedpages-indef' => '只有無期之保護頁面',
-'protectedpages-summary' => '此頁面列出當前受保護之頁面。欲訪問受白紙保護之標題列表,請參見[[{{#special:ProtectedTitles}}]]。',
+'protectedpages-summary' => '此頁面列出當前受保護之頁面。欲訪問受白紙保護之標題列表,請參見[[{{#special:ProtectedTitles}}|{{int:protectedtitles}}]]。',
 'protectedpages-cascade' => '只有連鎖之保護頁面',
 'protectedpages-noredirect' => '隱藏重定向',
 'protectedpagesempty' => '在這些參數下沒有頁面正在保護。',
@@ -2162,7 +2170,7 @@ $1',
 'protectedpages-unknown-timestamp' => '未知',
 'protectedpages-unknown-performer' => '未知用戶',
 'protectedtitles' => '受保護標題',
-'protectedtitles-summary' => '此頁面列出當前受白紙保護之標題。欲訪問受保護頁面之列表,請參見[[{{#special:ProtectedPages}}]]。',
+'protectedtitles-summary' => '此頁面列出當前受白紙保護之標題。欲訪問受保護頁面之列表,請參見[[{{#special:ProtectedPages}}|{{int:protectedpages}}]]。',
 'protectedtitlesempty' => '在這些參數之下並無標題正在保護。',
 'listusers' => '用戶列表',
 'listusers-editsonly' => '只顯示有編輯的用戶',
@@ -2433,7 +2441,7 @@ $UNWATCHURL
 'delete-edit-reasonlist' => '編輯刪除理由',
 'delete-toobig' => '這個頁面有一個十分大量的編輯歷史,超過$1次修訂。刪除此類頁面的動作已經被限制,以防止在{{SITENAME}}上的意外擾亂。',
 'delete-warning-toobig' => '這個頁面有一個十分大量的編輯歷史,超過$1次修訂。刪除它可能會擾亂{{SITENAME}}的資料庫操作;在繼續此動作前請小心。',
-'deleting-backlinks-warning' => "'''警告:'''您要刪除的頁面有其他頁面連接至此或包含此頁面。",
+'deleting-backlinks-warning' => "'''警告:'''您要刪除的頁面有[[Special:WhatLinksHere/{{FULLPAGENAME}}|其他頁面]]連接至此或包含此頁面。",
 
 # Rollback
 'rollback' => '回退編輯',
@@ -2486,7 +2494,7 @@ $UNWATCHURL
 以下是'''$1'''現時的保護級別:",
 'protect-locked-access' => "您的賬戶權限不能修改保護級別。
 以下是'''$1'''現時的保護級別:",
-'protect-cascadeon' => '以下的{{PLURAL:$1|一個|多個}}頁面包含着本頁面的同時,啟動了連鎖保護,因此本頁面目前也被保護,未能編輯。您可以設定本頁面的保護級別,但這並不會對連鎖保護有所影響。',
+'protect-cascadeon' => '以下$1個頁面包含着本頁面的同時,啟動了連鎖保護,因此本頁面目前也被保護。您可以設定本頁面的保護級別,但這並不會對連鎖保護有所影響。',
 'protect-default' => '容許所有用戶',
 'protect-fallback' => '僅允許有「$1」權限的用戶',
 'protect-level-autoconfirmed' => '僅允許自動確認使用者',
@@ -2606,6 +2614,7 @@ $1',
 'sp-contributions-blocked-notice-anon' => '這個IP地址現時正在被封鎖中。
 最近的封鎖日誌項目在下面提供以便參考:',
 'sp-contributions-search' => '搜尋貢獻記錄',
+'sp-contributions-suppresslog' => '已隱藏的用戶貢獻',
 'sp-contributions-username' => 'IP位址或用戶名稱:',
 'sp-contributions-toponly' => '只顯示最新修訂版本的編輯',
 'sp-contributions-newonly' => '僅顯示建立頁面之編輯',
@@ -2973,7 +2982,7 @@ $2',
 'importlogpagetext' => '來自其它 wiki 的行政性的帶編輯歷史匯入頁面。',
 'import-logentry-upload' => '透過檔案上傳匯入的$1',
 'import-logentry-upload-detail' => '$1個修訂',
-'import-logentry-interwiki' => '跨 wiki $1',
+'import-logentry-interwiki' => '跨wiki$1',
 'import-logentry-interwiki-detail' => '來自$2的$1個修訂',
 
 # JavaScriptTest
index de09791..dc28646 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Chinese (Hong Kong) (中文(香港)‎)
+/** Chinese (Hong Kong) (‪中文(香港)‬)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -7,16 +7,11 @@
  * @ingroup Language
  * @file
  *
- * @author Gakmo
  * @author Horacewai2
- * @author Justincheng12345
  * @author Kayau
- * @author Liflon
  * @author Mark85296341
- * @author Openerror
  * @author PhiLiP
  * @author Shizhao
- * @author Simon Shek
  * @author Waihorace
  * @author Wong128hk
  * @author Yukiseaside
@@ -34,235 +29,38 @@ $specialPageAliases = array(
 
 $messages = array(
 # User preference toggles
-'tog-underline' => '連結加底線:',
-'tog-hideminor' => '近期變動中隱藏細微修改',
-'tog-hidepatrolled' => '於近期變動中隱藏巡查過的編輯',
-'tog-newpageshidepatrolled' => '於新頁面清單中隱藏巡查過的頁面',
-'tog-extendwatchlist' => '展開監視清單以顯示所有更改',
-'tog-usenewrc' => '在最近更改和監視列表中整合同一頁的修改',
-'tog-numberheadings' => '標題自動編號',
-'tog-showtoolbar' => '顯示編輯工具欄',
-'tog-editondblclick' => '雙擊編輯頁面',
-'tog-editsectiononrightclick' => '允許右擊標題編輯段落',
-'tog-rememberpassword' => '在這個瀏覽器上記住我的登入資訊(可維持 $1 {{PLURAL:$1|天|天}})',
-'tog-watchcreations' => '將我建立的頁面及檔案添加到我的監視列表中',
-'tog-watchdefault' => '將我更改的頁面及檔案添加到我的監視列表中',
-'tog-watchmoves' => '將我移動的頁面及檔案添加到我的監視列表',
-'tog-watchdeletion' => '將我刪除的頁面及檔案添加到我的監視列表',
-'tog-minordefault' => '預設將編輯設定為小編輯',
-'tog-previewontop' => '在編輯框上方顯示預覽',
-'tog-previewonfirst' => '首次編輯時顯示原文內容預覽',
-'tog-enotifwatchlistpages' => '當監視列表中的頁面或檔案改變時發電子郵件給我',
-'tog-enotifusertalkpages' => '當我的對話頁有更改時發電子郵件通知我',
-'tog-enotifminoredits' => '即使是頁面或檔案的小修改也向我發電子郵件',
-'tog-enotifrevealaddr' => '在通知電子郵件中顯示我的電子郵件位址',
-'tog-shownumberswatching' => '顯示監視用戶的數目',
-'tog-oldsig' => '原有簽名:',
-'tog-fancysig' => '將簽名以維基文字對待 (不產生自動連結)',
-'tog-uselivepreview' => '使用實時預覽(試驗中)',
-'tog-forceeditsummary' => '當沒有輸入摘要時提醒我',
-'tog-watchlisthideown' => '監視列表中隱藏我的編輯',
 'tog-watchlisthidebots' => '監視列表中隱藏機械人的編輯',
-'tog-watchlisthideminor' => '監視列表中隱藏小修改',
-'tog-watchlisthideliu' => '監視列表中隱藏登入用戶',
-'tog-watchlisthideanons' => '監視列表中隱藏匿名用戶',
-'tog-watchlisthidepatrolled' => '監視清單中隱藏已巡查的編輯',
-'tog-ccmeonemails' => '當我寄電子郵件給其他用戶時,寄一份複本到我的信箱。',
-'tog-diffonly' => '在比較兩個修訂版本差異時不顯示頁面內容',
-'tog-showhiddencats' => '顯示隱藏分類',
-'tog-norollbackdiff' => '回退後略過差異比較',
-'tog-useeditwarning' => '當離開頁面時編輯仍未儲存,請提醒我',
-'tog-prefershttps' => '登入時永遠使用安全連線',
-
-'underline-always' => '總是使用',
-'underline-never' => '從不使用',
-'underline-default' => '面板或瀏覽器預設',
-
-# Font style option in Special:Preferences
-'editfont-style' => '編輯區字型樣式:',
-'editfont-default' => '瀏覽器預設',
-'editfont-monospace' => '固定間距字型',
-'editfont-sansserif' => '無襯線字型',
-'editfont-serif' => '襯線字型',
 
 # Dates
-'sunday' => '星期日',
-'monday' => '星期一',
-'tuesday' => '星期二',
-'wednesday' => '星期三',
-'thursday' => '星期四',
-'friday' => '星期五',
-'saturday' => '星期六',
-'sun' => '日',
-'mon' => '一',
-'tue' => '二',
-'wed' => '三',
-'thu' => '四',
-'fri' => '五',
-'sat' => '六',
-'january' => '一月',
-'february' => '二月',
-'march' => '三月',
-'april' => '四月',
-'may_long' => '五月',
-'june' => '六月',
-'july' => '七月',
-'august' => '八月',
+'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' => '1月',
-'feb' => '2月',
-'mar' => '3月',
-'apr' => '4月',
-'may' => '5月',
-'jun' => '6月',
-'jul' => '7月',
-'aug' => '8月',
-'sep' => '9月',
-'oct' => '10月',
-'nov' => '11月',
-'dec' => '12月',
-'january-date' => '1月$1日',
-'february-date' => '2月$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個分類',
-'category_header' => '分類中的頁面「$1」',
-'subcategories' => '子分類',
-'category-media-header' => '「$1」分類中的媒體',
-'category-empty' => "''這個分類中尚未包含任何頁面或媒體。''",
-'hidden-categories' => '$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-limited' => '這個分類下有$1個頁面。',
-'category-file-count' => '{{PLURAL:$2|這個分類中只有以下的檔案。|這個分類中有以下的$1個檔案,共有$2個檔案。}}',
-'category-file-count-limited' => '這個分類下有$1個檔案。',
-'listingcontinuesabbrev' => '續',
-'index-category' => '已索引的頁面',
-'noindex-category' => '未索引的頁面',
-'broken-file-category' => '包含損壞檔案連結的頁面',
+'october'   => '十月',
+'november'  => '十一月',
+'december'  => '十二月',
 
-'about' => '關於',
-'article' => '內容頁面',
-'newwindow' => '(於新視窗開啟)',
-'cancel' => '取消',
-'moredotdotdot' => '更多...',
-'morenotlisted' => '這不是完整的列表。',
-'mytalk' => '討論頁',
-'anontalk' => '此IP位址的討論頁',
-'navigation' => '導航',
-'and' => '和',
+'mytalk' => '我的討論頁',
 
-# Cologne Blue skin
-'qbfind' => '搜尋',
-'qbbrowse' => '瀏覽',
-'qbedit' => '編輯',
-'qbpageoptions' => '本頁',
-'qbmyoptions' => '我的用戶頁面',
-'faq' => '常見問題',
-'faqpage' => 'Project:常見問題',
-
-# Vector skin
-'vector-action-addsection' => '新增主題',
-'vector-action-delete' => '刪除',
-'vector-action-undelete' => '恢復',
-'vector-action-unprotect' => '修改保護狀態',
-'vector-view-history' => '歷史',
-'vector-view-view' => '閱覽',
-'vector-view-viewsource' => '查看原始碼',
-'variants' => '變體',
-
-'navigation-heading' => '導航菜單',
-'returnto' => '回到$1。',
-'tagline' => '從 {{SITENAME}}',
-'help' => '幫助',
-'search' => '搜尋',
-'searcharticle' => '提交',
-'updatedmarker' => '自從我上次查看後已更新',
+'tagline'          => '從 {{SITENAME}}',
+'search'           => '搜尋',
 'printableversion' => '可打印版',
-'permalink' => '永久連接',
-'print' => '打印',
-'undeletethispage' => '恢復本頁',
-'undelete_short' => '恢復{{PLURAL:$1|1次編輯|$1次編輯}}',
-'viewdeleted_short' => '查看{{PLURAL:$1|1次已刪的編輯|$1次已刪的編輯}}',
-'protect_change' => '修改',
-'unprotect' => '修改保護狀態',
-'unprotectthispage' => '修改本頁的保護狀態',
-'talkpage' => '對本頁進行討論',
-'talkpagelinktext' => '討論頁',
-'specialpage' => '特殊頁面',
-'postcomment' => '新章節',
-'articlepage' => '查看內容頁面',
-'views' => '外觀',
-'userpage' => '查看用戶頁',
-'projectpage' => '查看計劃頁面',
-'imagepage' => '查看檔案頁面',
-'mediawikipage' => '查看訊息頁面',
-'templatepage' => '查看模板頁',
-'viewhelppage' => '查看幫助頁面',
-'categorypage' => '查看分類頁面',
-'viewtalkpage' => '查看討論頁',
-'redirectpagesub' => '重定向頁',
-'lastmodifiedat' => '本頁最後更改於$1$2。',
-'viewcount' => '本頁的瀏覽次數為{{PLURAL:$1|1次|$1次}}。',
-'protectedpage' => '受保護的頁面',
-'jumpto' => '跳到:',
-'jumptonavigation' => '導航',
-'jumptosearch' => '搜尋',
-'view-pool-error' => '抱歉,伺服器現時超出負荷。
-有太多用戶想要查看本頁。
-請先稍候片刻才再嘗試查看本頁。
-
-$1',
-'pool-timeout' => '等待鎖時超出了時限',
-
-# 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).
-'aboutsite' => '關於{{SITENAME}}',
-'aboutpage' => 'Project:關於我們',
-'copyright' => '除非另外註明,否則內容以$1提供。',
-'copyrightpage' => '{{ns:project}}:版權',
-'edithelp' => '編輯方面的幫助',
-'mainpage' => '主頁',
-'mainpage-description' => '主頁',
-'portal' => '社群區入口',
-'portal-url' => 'Project:社群入口',
-'privacy' => '私隱政策',
+'permalink'        => '永久連接',
+'print'            => '打印',
+'specialpage'      => '特殊頁面',
+'jumpto'           => '跳到:',
+'jumptosearch'     => '搜尋',
+
+# 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).
+'aboutpage'   => 'Project:關於我們',
+'privacy'     => '私隱政策',
 'privacypage' => 'Project:私隱政策',
 
-'badaccess-group0' => '您無權執行您所提出的行動。',
-'badaccess-groups' => '您所提出的行動只有{{PLURAL:$2|此群組|以下群組之一}}才可執行:$1。',
-
-'versionrequired' => '需要$1版本的MediaWiki',
-'versionrequiredtext' => '要使用本頁的話需要$1版本的MediaWiki。
-請見[[Special:版本|版本頁面]]。',
-
-'retrievedfrom' => '擷取自$1',
 'red-link-title' => '$1 (頁面不存在)',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
@@ -270,14 +68,14 @@ $1',
 
 # Login and logout pages
 'nav-login-createaccount' => '登入/創造帳戶',
-'userlogin' => '登入/創造帳戶',
+'userlogin'               => '登入/創造帳戶',
 
 # Edit pages
-'editing' => '正在編輯「$1」',
+'editing' => '正在編輯 $1',
 
 # Revision deletion
-'rev-deleted-comment' => '(註釋已除)',
-'rev-deleted-event' => '(日誌已除)',
+'rev-deleted-comment'     => '(註釋已除)',
+'rev-deleted-event'       => '(日誌已除)',
 'revdelete-suppress-text' => "壓制'''只'''應用於以下的情況:
 * 不合適的個人資料
 *: ''地址、電話號碼、身份證號碼等。''",
@@ -285,6 +83,9 @@ $1',
 # Diffs
 'editundo' => '撤銷',
 
+# Search results
+'search-mwsuggest-disabled' => '沒有意見',
+
 # Preferences page
 'prefs-help-gender' => '可選:用於軟件中的性別指定。此項資料將會被公開。',
 
@@ -297,7 +98,7 @@ $1',
 
 # Recent changes
 'recentchanges-label-bot' => '這次編輯是由機械人進行',
-'rcshowhidebots' => '$1機械人的編輯',
+'rcshowhidebots'          => '$1機械人的編輯',
 
 # Special:ActiveUsers
 'activeusers-hidebots' => '隱藏機械人',
@@ -306,24 +107,17 @@ $1',
 'contribslink' => '貢獻',
 
 # Tooltip help for the actions
-'tooltip-search' => '搜尋 {{SITENAME}}',
-'tooltip-search-go' => '若是真有其頁,則進入相同名字的頁面',
-'tooltip-search-fulltext' => '在此頁面內搜尋此文字',
-'tooltip-n-mainpage' => '回到首頁',
+'tooltip-search'                 => '搜尋 {{SITENAME}}',
+'tooltip-search-go'              => '若是真有其頁,則進入相同名字的頁面',
+'tooltip-search-fulltext'        => '在此頁面內搜尋此文字',
+'tooltip-n-mainpage'             => '回到首頁',
 'tooltip-n-mainpage-description' => '回到首頁',
-'tooltip-n-randompage' => '跳到一個隨機抽取的頁面',
-'tooltip-t-print' => '這個頁面的可打印版本',
-'interlanguage-link-title' => '$1 – $2',
+'tooltip-n-randompage'           => '跳到一個隨機抽取的頁面',
+'tooltip-t-print'                => '這個頁面的可打印版本',
 
 # Special:NewFiles
 'showhidebots' => '($1機械人)',
 
-/*
-Short names for language variants used for language conversion links.
-Variants for Chinese language
-*/
-'variantname-zh-hant' => '‪繁體中文',
-
 # Special:SpecialPages
 'specialpages' => '特殊頁面',
 
index fc87626..37be152 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** 中文(澳門)‎ (中文(澳門)‎)
+/** ‪Chinese (Macau) (‪中文(澳門)‬)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -11,9 +11,3 @@
 
 # Inherit everything for now
 $fallback = 'zh-hk, zh-hant, zh-hans';
-
-$messages = array(
-# Tooltip help for the actions
-'interlanguage-link-title' => '$1 – $2',
-
-);
index f4aa157..ccf8371 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Chinese (Singapore) (中文(新加坡)‎)
+/** Chinese (Singapore) (‪中文(新加坡)‬)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -7,11 +7,9 @@
  * @ingroup Language
  * @file
  *
- * @author Liuxinyu970226
  * @author PhiLiP
  * @author Shizhao
  * @author Wong128hk
- * @author Xiaomingyan
  */
 
 # Inherit everything for now
@@ -21,15 +19,10 @@ $messages = array(
 # User preference toggles
 'tog-norollbackdiff' => '进行回退后略过差异比较',
 
-'talkpagelinktext' => '讨论页',
-
-# 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).
+# 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).
 'portal' => '社区入口',
 
 # Edit pages
-'editing' => '编辑“$1”',
-
-# Tooltip help for the actions
-'interlanguage-link-title' => '$1 – $2',
+'editing' => '正在编辑 $1',
 
 );
index 3c21302..d28642e 100644 (file)
@@ -1,5 +1,5 @@
 <?php
-/** Chinese (Taiwan) (中文(台灣)‎)
+/** Chinese (Taiwan) (‪中文(台灣)‬)
  *
  * See MessagesQqq.php for message documentation incl. usage of parameters
  * To improve a translation please visit http://translatewiki.net
@@ -10,7 +10,6 @@
  * @author Alexsh
  * @author Andrew971218
  * @author BobChao
- * @author Danny0838
  * @author Ianbu
  * @author Jidanni
  * @author Mark85296341
  * @author PhiLiP
  * @author Roc michael
  * @author Shizhao
- * @author Simon Shek
  * @author Urhixidur
- * @author Waihorace
  * @author Wong128hk
- * @author Xiaomingyan
  * @author Zerng07
  * @author לערי ריינהארט
  */
@@ -107,65 +103,66 @@ $dateFormats = array(
 
 $messages = array(
 # User preference toggles
-'tog-underline' => '連結標注底線',
-'tog-hideminor' => '近期變動中隱藏小修改',
-'tog-usenewrc' => '使用強化的近期變動 (需要JavaScript)',
-'tog-numberheadings' => '自動編號標題',
-'tog-showtoolbar' => '顯示編輯工具欄 (需要JavaScript)',
-'tog-watchcreations' => '將我建立的頁面加進我的監視列表',
-'tog-watchdefault' => '將我更改的頁面添加到我的監視列表中',
-'tog-minordefault' => '預設將編輯設定為細微修改',
+'tog-underline'            => '連結標注底線',
+'tog-justify'              => '段落對齊',
+'tog-hideminor'            => '近期變動中隱藏細微修改',
+'tog-usenewrc'             => '使用強化的近期變動 (需要JavaScript)',
+'tog-numberheadings'       => '自動編號標題',
+'tog-showtoolbar'          => '顯示編輯工具欄 (需要JavaScript)',
+'tog-watchcreations'       => '將我建立的頁面加進我的監視列表',
+'tog-watchdefault'         => '將我更改的頁面添加到我的監視列表中',
+'tog-minordefault'         => '預設將編輯設定為細微修改',
 'tog-enotifwatchlistpages' => '當我監視的頁面改變時發電子郵件給我',
-'tog-enotifusertalkpages' => '當我的對話頁有更動時發電子郵件通知我',
-'tog-shownumberswatching' => '顯示監視數目',
-'tog-uselivepreview' => '使用即時預覽 (JavaScript) (試驗中)',
-'tog-watchlisthideminor' => '監視列表中隱藏細微修改',
-'tog-ccmeonemails' => '當我寄電子郵件給其他使用者時,也寄一份複本到我的信箱。',
+'tog-enotifusertalkpages'  => '當我的對話頁有更動時發電子郵件通知我',
+'tog-shownumberswatching'  => '顯示監視數目',
+'tog-uselivepreview'       => '使用即時預覽 (JavaScript) (試驗中)',
+'tog-watchlisthideminor'   => '監視列表中隱藏細微修改',
+'tog-ccmeonemails'         => '當我寄電子郵件給其他使用者時,也寄一份複本到我的信箱。',
 
 # Dates
-'saturday' => '星期六',
-'sun' => '日',
-'mon' => '一',
-'tue' => '二',
-'wed' => '三',
-'thu' => '四',
-'fri' => '五',
-'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' => '八月',
+'saturday'      => '星期六',
+'sun'           => '日',
+'mon'           => '一',
+'tue'           => '二',
+'wed'           => '三',
+'thu'           => '四',
+'fri'           => '五',
+'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' => '1月',
-'feb' => '2月',
-'mar' => '3月',
-'apr' => '4月',
-'may' => '5月',
-'jun' => '6月',
-'jul' => '7月',
-'aug' => '8月',
-'sep' => '9月',
-'oct' => '10月',
-'nov' => '11月',
-'dec' => '12月',
+'october-gen'   => '十月',
+'november-gen'  => '十一月',
+'december-gen'  => '十二月',
+'jan'           => '1月',
+'feb'           => '2月',
+'mar'           => '3月',
+'apr'           => '4月',
+'may'           => '5月',
+'jun'           => '6月',
+'jul'           => '7月',
+'aug'           => '8月',
+'sep'           => '9月',
+'oct'           => '10月',
+'nov'           => '11月',
+'dec'           => '12月',
 
 # Categories related messages
 'subcategories' => '子分類',
@@ -175,54 +172,54 @@ $messages = array(
 
 # Vector skin
 'vector-action-protect' => '保護',
-'vector-view-create' => '建立',
-'vector-view-view' => '閱讀',
-
-'help' => '使用說明',
-'search' => '搜尋',
-'searchbutton' => '搜尋',
-'history' => '修訂記錄',
-'history_short' => '歷史',
-'edit' => '編輯',
-'create' => '建立',
-'delete' => '刪除',
+'vector-view-create'    => '建立',
+'vector-view-view'      => '閱讀',
+
+'help'           => '使用說明',
+'search'         => '搜尋',
+'searchbutton'   => '搜尋',
+'history'        => '修訂記錄',
+'history_short'  => '歷史',
+'edit'           => '編輯',
+'create'         => '建立',
+'delete'         => '刪除',
 'protect_change' => '更改',
-'postcomment' => '新段落',
-'toolbox' => '工具箱',
-'userpage' => '檢視使用者頁面',
-'projectpage' => '檢視計畫頁面',
+'postcomment'    => '新段落',
+'toolbox'        => '工具箱',
+'userpage'       => '檢視使用者頁面',
+'projectpage'    => '檢視計畫頁面',
 'lastmodifiedat' => '本頁最後更動時間在 $1 $2。',
-'jumptosearch' => '搜尋',
+'jumptosearch'   => '搜尋',
 
-# 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).
-'aboutsite' => '關於 {{SITENAME}}',
-'copyright' => '本站的文字內容除另有聲明外,全部以 $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}}',
+'copyright'   => '本站的文字內容除另有聲明外,全部以 $1 條款授權使用。',
 'disclaimers' => '免責聲明',
-'edithelp' => '編輯說明',
-'mainpage' => '首頁',
-'portal' => '社群入口',
-'portal-url' => 'Project:社群入口',
+'edithelp'    => '編輯說明',
+'mainpage'    => '首頁',
+'portal'      => '社群入口',
+'portal-url'  => 'Project:社群入口',
 
 'badaccess-groups' => '您剛才的請求只有{{PLURAL:$2|這個|這些}}使用者組的使用者才能使用: $1',
 
-'editold' => '編輯',
-'editsectionhint' => '編輯章ç¯\80:$1',
-'showtoc' => '顯示',
-'hidetoc' => '隱藏',
-'thisisdeleted' => '檢視或復原$1?',
-'site-rss-feed' => '訂閱 $1 的 RSS 資料來源',
-'site-atom-feed' => '訂閱 $1 的 Atom 資料來源',
-'page-rss-feed' => '訂閱「$1」的 RSS 資料來源',
-'page-atom-feed' => '訂閱「$1」的 Atom 資料來源',
-'red-link-title' => '$1 (頁面不存在)',
+'editold'         => '編輯',
+'editsectionhint' => 'ç¼\96è¾\91段è\90½:$1',
+'showtoc'         => '顯示',
+'hidetoc'         => '隱藏',
+'thisisdeleted'   => '檢視或復原$1?',
+'site-rss-feed'   => '訂閱 $1 的 RSS 資料來源',
+'site-atom-feed'  => '訂閱 $1 的 Atom 資料來源',
+'page-rss-feed'   => '訂閱「$1」的 RSS 資料來源',
+'page-atom-feed'  => '訂閱「$1」的 Atom 資料來源',
+'red-link-title'  => '$1 (頁面不存在)',
 
 # Short words for each namespace, by default used in the namespace tab in monobook
-'nstab-main' => '頁面',
-'nstab-user' => '使用者頁面',
-'nstab-special' => '特殊頁面',
-'nstab-project' => '計畫頁面',
+'nstab-main'      => '頁面',
+'nstab-user'      => '使用者頁面',
+'nstab-special'   => '特殊頁面',
+'nstab-project'   => '計畫頁面',
 'nstab-mediawiki' => '介面',
-'nstab-help' => '說明頁面',
+'nstab-help'      => '說明頁面',
 
 # Main script and global functions
 'nosuchactiontext' => '該URL所指定的動作無效。
@@ -230,75 +227,79 @@ $messages = array(
 這也可能是{{SITENAME}}所使用的軟件出現了錯誤。',
 
 # General errors
-'readonlytext' => '資料庫目前禁止輸入新內容及更改,
+'readonlytext'        => '資料庫目前禁止輸入新內容及更改,
 這很可能是由於資料庫正在維修,之後即可復原。
 管理員有如下解釋:
 <p>$1</p>',
-'cannotdelete' => '無法刪除選定的頁面或圖片(它可能已經被其他人刪除了)。',
+'cannotdelete'        => '無法刪除選定的頁面或圖片(它可能已經被其他人刪除了)。',
 'actionthrottledtext' => '系統因為反垃圾編輯的考量,禁止如此頻繁地修改資料,請數分鐘後再嘗試。',
-'viewsourcetext' => '你可以檢視並複製本頁面的原始碼。',
-'editinginterface' => "'''警告:''' 您正在編輯的頁面是正用在軟體上的介面文字。改變此頁將影響其他用戶的介面外觀。如要翻譯,請考慮使用 [//translatewiki.net/wiki/Main_Page?setlang=zh-hant translatewiki.net],一個用來為MediaWiki軟體本地化的計畫。",
+'viewsourcetext'      => '你可以檢視並複製本頁面的原始碼。',
+'editinginterface'    => "'''警告:''' 您正在編輯的頁面是正用在軟體上的介面文字。改變此頁將影響其他用戶的介面外觀。如要翻譯,請考慮使用 [//translatewiki.net/wiki/Main_Page?setlang=zh-hant translatewiki.net],一個用來為MediaWiki軟體本地化的計畫。",
 'ns-specialprotected' => '在{{ns:special}}名字空間中的頁面是不可以編輯的。',
 
 # Login and logout pages
-'logouttext' => "您現在已經登出。
-
-您可以以匿名方式繼續使用{{SITENAME}},或者以相同或不同用戶身份<span class='plainlinks'>[$1 登入]</span>。
-請注意,如果你再次登入,此頁或會繼續顯示,直到您清除瀏覽器快取。",
-'yourname' => '您的使用者名稱:',
-'yourpassword' => '密碼:',
-'login' => '登入',
-'nav-login-createaccount' => '登入/建立新帳號',
-'userlogin' => '登入/建立新帳號',
-'logout' => '登出',
-'userlogout' => '登出',
-'nologin' => '您還沒有帳號嗎?$1。',
-'nologinlink' => '建立新帳號',
-'createaccount' => '建立新帳號',
-'gotaccount' => '已經擁有帳號?$1。',
-'badretype' => '你所輸入的密碼並不相同。',
-'userexists' => '您所輸入的使用者名稱已經存在,請另選一個名稱。',
-'nocookiesnew' => '已成功建立新帳號!偵測到您已關閉 Cookies,請開啟它並登入。',
-'nocookieslogin' => '本站利用 Cookies 進行使用者登入,偵測到您已關閉 Cookies,請開啟它並重新登入。',
-'noname' => '你沒有輸入一個有效的使用者帳號。',
-'loginsuccess' => '你現在以 "$1"的身份登入{{SITENAME}}。',
-'nosuchuser' => '找不到使用者 "$1"。
+'logouttext'                 => '您現在已經登出。
+
+您可以以匿名方式繼續使用{{SITENAME}},或者以相同或不同用戶身份[[Special:UserLogin|登入]]。
+請注意,如果你再次登入,此頁或會繼續顯示,直到您清除瀏覽器快取。',
+'welcomecreation'            => '== 歡迎,$1! ==
+您的帳號已經建立。
+請不要忘記設定[[Special:Preferences|{{SITENAME}}的個人參數]]。',
+'yourname'                   => '您的使用者名:',
+'yourpassword'               => '密碼:',
+'login'                      => '登入',
+'nav-login-createaccount'    => '登入/建立新帳號',
+'userlogin'                  => '登入/建立新帳號',
+'logout'                     => '登出',
+'userlogout'                 => '登出',
+'nologin'                    => '您還沒有帳號嗎?$1。',
+'nologinlink'                => '建立新帳號',
+'createaccount'              => '建立新帳號',
+'gotaccount'                 => '已經擁有帳號?$1。',
+'badretype'                  => '你所輸入的密碼並不相同。',
+'userexists'                 => '您所輸入的使用者名稱已經存在,請另選一個名稱。',
+'nocookiesnew'               => '已成功建立新帳號!偵測到您已關閉 Cookies,請開啟它並登入。',
+'nocookieslogin'             => '本站利用 Cookies 進行使用者登入,偵測到您已關閉 Cookies,請開啟它並重新登入。',
+'noname'                     => '你沒有輸入一個有效的使用者帳號。',
+'loginsuccess'               => '你現在以 "$1"的身份登入{{SITENAME}}。',
+'nosuchuser'                 => '找不到使用者 "$1"。
 檢查您的拼寫,或者用下面的表格[[Special:UserLogin/signup|建立一個新帳號]]。',
-'nosuchusershort' => '沒有一個名為「$1」的使用者。請檢查您輸入的文字是否有錯誤。',
-'nouserspecified' => '你需要指定一個使用者帳號。',
-'passwordtooshort' => '您的密碼不正確或太短,不能少於$1個字元,而且必須跟使用者名不同。',
-'passwordremindertitle' => '{{SITENAME}}密碼提醒',
-'passwordremindertext' => '有人(來自IP位址$1,可能是您)已請求{{SITENAME}}的新密碼 ($4)。
+'nosuchusershort'            => '沒有一個名為「$1」的使用者。請檢查您輸入的文字是否有錯誤。',
+'nouserspecified'            => '你需要指定一個使用者帳號。',
+'passwordtooshort'           => '您的密碼不正確或太短,不能少於$1個字元,而且必須跟使用者名不同。',
+'passwordremindertitle'      => '{{SITENAME}}密碼提醒',
+'passwordremindertext'       => '有人(來自IP位址$1,可能是您)已請求{{SITENAME}}的新密碼 ($4)。
 用戶"$2"現在已設定新臨時密碼"$3"。
 如果這個動作是您所指示的,您需要立即登入並選擇一個新的密碼。
 您的臨時密碼會在{{PLURAL:$5|一|$5}}天內過期。
 
 如果是其他人發出了該請求,或者您已經想起了您的密碼而且並不打算換掉,
 您可以忽略此消息並繼續使用您的舊密碼。',
-'noemail' => '使用者"$1"沒有登記電子郵件地址。',
-'passwordsent' => '使用者"$1"的新密碼已經寄往所登記的電子郵件地址。
+'noemail'                    => '使用者"$1"沒有登記電子郵件地址。',
+'passwordsent'               => '使用者"$1"的新密碼已經寄往所登記的電子郵件地址。
 請在收到後再登入。',
-'blocked-mailpassword' => '由於這個使用者被封鎖,我們暫時禁止您請求申請新密碼。造成不便敬請見諒',
-'eauthentsent' => '一封確認信已經發送到所示的地址。在發送其它郵件到此帳號前,您必須首先依照這封信中的指導確認這個電子郵件信箱真實有效。',
+'blocked-mailpassword'       => '由於這個使用者被封鎖,我們暫時禁止您請求申請新密碼。造成不便敬請見諒',
+'eauthentsent'               => '一封確認信已經發送到所示的地址。在發送其它郵件到此帳號前,您必須首先依照這封信中的指導確認這個電子郵件信箱真實有效。',
 'acct_creation_throttle_hit' => '抱歉,使用您的IP位址拜訪此wiki網站的訪客已經在昨天創建了$1個帳號,達到了該時段的上限,所以目前使用這個IP位址的訪客不能再繼續創建帳號。',
-'emailauthenticated' => '您的電子郵件地址已經於$2 $3確認有效。',
-'emailnotauthenticated' => '您的電子郵件地址<strong>還沒被認證</strong>。以下功能將不會發送任何郵件。',
-'noemailprefs' => '指定一個電子郵件地址以使用此功能',
-'emailconfirmlink' => '確認您的電子郵件地址',
-'invalidemailaddress' => '電子郵件地址格式不正確,請輸入正確的電子郵件位址或清空該輸入框。',
-'accountcreated' => '已建立帳號',
-'accountcreatedtext' => '$1的帳號已經被建立。',
-'createaccount-title' => '在{{SITENAME}}中建立新帳號',
-'createaccount-text' => '有人在{{SITENAME}}中為 $2 建立了一個新帳號($4)。 "$2" 的密碼是 "$3" 。您應該立即登入並更改密碼。
+'emailauthenticated'         => '您的電子郵件地址已經於$2 $3確認有效。',
+'emailnotauthenticated'      => '您的電子郵件地址<strong>還沒被認證</strong>。以下功能將不會發送任何郵件。',
+'noemailprefs'               => '指定一個電子郵件地址以使用此功能',
+'emailconfirmlink'           => '確認您的電子郵件地址',
+'invalidemailaddress'        => '電子郵件地址格式不正確,請輸入正確的電子郵件位址或清空該輸入框。',
+'accountcreated'             => '已建立帳號',
+'accountcreatedtext'         => '$1的帳號已經被建立。',
+'createaccount-title'        => '在{{SITENAME}}中建立新帳號',
+'createaccount-text'         => '有人在{{SITENAME}}中為 $2 建立了一個新帳號($4)。 "$2" 的密碼是 "$3" 。您應該立即登入並更改密碼。
 
 如果該帳號建立錯誤的話,您可以忽略此訊息。',
 
 # Change password dialog
-'resetpass_announce' => '您是透過臨時發送到郵件中的代碼登入的。要完成登入,您必須在這裡設定一個新密碼:',
-'resetpass_header' => '更換帳號密碼',
-'oldpassword' => '舊密碼',
-'newpassword' => '新密碼',
-'changepassword-success' => '您的密碼已經被成功更改﹗現下正為您登入...',
+'resetpass'           => '更換密碼',
+'resetpass_announce'  => '您是透過臨時發送到郵件中的代碼登入的。要完成登入,您必須在這裡設定一個新密碼:',
+'resetpass_header'    => '更換帳號密碼',
+'oldpassword'         => '舊密碼',
+'newpassword'         => '新密碼',
+'resetpass_success'   => '您的密碼已經被成功更改﹗現下正為您登入...',
 'resetpass_forbidden' => '無法更改密碼',
 
 # Edit page toolbar
@@ -306,49 +307,49 @@ $messages = array(
 'media_tip' => '媒體檔案連結',
 
 # Edit pages
-'summary' => '摘要',
-'minoredit' => '這是一個細微修改',
-'savearticle' => '儲存頁面',
-'blockedtitle' => '使用者被封鎖',
-'confirmedittext' => '在編輯此頁之前您必須確認您的電子郵件地址。請透過[[Special:Preferences|偏好設定]]設定並驗證您的電子郵件地址。',
-'accmailtext' => "'[[User talk:$1|$1]]'的隨機產生密碼已經寄到$2。
+'summary'                    => '摘要',
+'minoredit'                  => '這是一個細微修改',
+'savearticle'                => '儲存頁面',
+'blockedtitle'               => '使用者被封鎖',
+'confirmedittext'            => '在編輯此頁之前您必須確認您的電子郵件地址。請透過[[Special:Preferences|偏好設定]]設定並驗證您的電子郵件地址。',
+'accmailtext'                => "'[[User talk:$1|$1]]'的隨機產生密碼已經寄到$2。
 
 這個新帳號的密碼可以在登入後的''[[Special:ChangePassword|更改密碼]]''頁面中更改。",
-'newarticletext' => '您進入了一個尚未建立的頁面。
+'newarticletext'             => '您進入了一個尚未建立的頁面。
 要建立該頁面,請在下面的編輯框中輸入內容(詳情參見[[{{MediaWiki:Helppage}}|說明]])。
 如果您是不小心來到此頁面,直接點擊您瀏覽器中的「返回」按鈕返回。',
-'anontalkpagetext' => "---- ''這是一個還未建立帳號的匿名使用者的對話頁。我們因此只能用IP地址來與他/她聯絡。該IP地址可能由幾名使用者共享。如果您是一名匿名使用者並認為本頁上的評語與您無關,請[[Special:UserLogin|建立新帳號或登入]]以避免在未來於其他匿名使用者混淆。''",
-'noarticletext' => '此頁目前沒有內容,您可以在其它頁[[Special:Search/{{PAGENAME}}|搜索此頁標題]],
+'anontalkpagetext'           => "---- ''這是一個還未建立帳號的匿名使用者的對話頁。我們因此只能用IP地址來與他/她聯絡。該IP地址可能由幾名使用者共享。如果您是一名匿名使用者並認為本頁上的評語與您無關,請[[Special:UserLogin|建立新帳號或登入]]以避免在未來於其他匿名使用者混淆。''",
+'noarticletext'              => '此頁目前沒有內容,您可以在其它頁[[Special:Search/{{PAGENAME}}|搜索此頁標題]],
 <span class="plainlinks">[{{fullurl:{{#Special:Log}}|page={{FULLPAGENAMEE}}}} 搜索有關日誌],
 或[{{fullurl:{{FULLPAGENAME}}|action=edit}} 編輯此頁]</span>。',
-'userpage-userdoesnotexist' => '使用者帳號「<nowiki>$1</nowiki>」未曾建立。請在建立/編輯這個頁面前先檢查一下。',
-'clearyourcache' => "'''注意:''' 在儲存以後, 您必須清除瀏覽器的快取才能看到所作出的改變。 '''Mozilla / Firefox / Safari:''' 按著 ''Shift'' 再點擊''重新整理''(或按下''Ctrl-Shift-R'',在蘋果Mac上按下''Cmd-Shift-R'');'''IE:''' 按著 ''Ctrl'' 再點擊 ''重新整理'',或按下 ''Ctrl-F5'';'''Konqueror:''' 只需點擊 ''重新整理'';'''Opera:''' 使用者需要在 ''工具-設定'' 中完整地清除它們的快取。",
-'usercsspreview' => "'''注意您只是在預覽您的個人 CSS, 還沒有儲存﹗'''",
-'userjspreview' => "'''注意您只是在測試/預覽您的個人 JavaScript,還沒有儲存﹗'''",
-'previewnote' => "'''請記住這只是預覽,內容尚未儲存!'''",
-'session_fail_preview' => "'''很抱歉!由於部份資料遺失,我們無法處理您的編輯。'''
+'userpage-userdoesnotexist'  => '使用者帳號「<nowiki>$1</nowiki>」未曾建立。請在建立/編輯這個頁面前先檢查一下。',
+'usercsspreview'             => "'''注意您只是在預覽您的個人 CSS, 還沒有儲存﹗'''",
+'userjspreview'              => "'''注意您只是在測試/預覽您的個人 JavaScript,還沒有儲存﹗'''",
+'previewnote'                => "'''請記住這只是預覽,內容尚未儲存!'''",
+'session_fail_preview'       => "'''很抱歉!由於部份資料遺失,我們無法處理您的編輯。'''
 請再試一次。
 如果仍然失敗,請[[Special:UserLogout|登出]]後重新登入。",
-'session_fail_preview_html' => "'''很抱歉!部份資料已遺失,我們無法處理您的編輯。''''''如果這個編輯過程沒有問題,請再試一次。如果仍然有問題,請登出後再重新登入一次。'''",
-'token_suffix_mismatch' => "'''由於您使用者端中的編輯信符毀損了一些標點符號字元,為防止編輯的文字損壞,您的編輯已經被拒絕。
+'session_fail_preview_html'  => "'''很抱歉!部份資料已遺失,我們無法處理您的編輯。''''''如果這個編輯過程沒有問題,請再試一次。如果仍然有問題,請登出後再重新登入一次。'''",
+'token_suffix_mismatch'      => "'''由於您使用者端中的編輯信符毀損了一些標點符號字元,為防止編輯的文字損壞,您的編輯已經被拒絕。
 這種情況通常出現於使用含有很多臭蟲、以網路為主的匿名代理服務的時候。'''",
-'editing' => '編輯「$1」',
-'editingcomment' => '正在編輯$1(新段落)',
-'storedversion' => '已保存版本',
-'nonunicodebrowser' => "'''警告: 您的瀏覽器不相容Unicode編碼。這裡有一個工作區將使您能安全地編輯頁面: 非ASCII字元將以十六進製編碼模式出現在編輯框中。'''",
-'editingold' => "'''警告:你正在編輯的是本頁的舊版本。
+'editing'                    => '正在编辑 $1',
+'editingcomment'             => '正在編輯$1(新段落)',
+'storedversion'              => '已保存版本',
+'nonunicodebrowser'          => "'''警告: 您的瀏覽器不相容Unicode編碼。這裡有一個工作區將使您能安全地編輯頁面: 非ASCII字元將以十六進製編碼模式出現在編輯框中。'''",
+'editingold'                 => "'''警告:你正在編輯的是本頁的舊版本。
 如果你保存它的話,在本版本之後的任何修改都會遺失。'''",
-'longpageerror' => "'''錯誤: 您所提交的文字長度有$1KB,這大於$2KB的最大值。該文字不能被儲存。'''",
-'protectedpagewarning' => "'''警告: 本頁已經被保護,只有擁有管理員許可權的使用者才可修改。'''",
-'semiprotectedpagewarning' => "'''注意:''' 本頁面被鎖定,僅限註冊使用者編輯。",
-'cascadeprotectedwarning' => '警告: 本頁已經被保護,只有擁有管理員權限的使用者才可修改,因為本頁已被以下連鎖保護的{{PLURAL:$1|一個|多個}}頁面所包含:',
-'nocreatetext' => '此網站限制了建立新頁面的功能。你可以返回並編輯已有的頁面,或者[[Special:UserLogin|登錄或建立新帳號]]。',
-'nocreate-loggedin' => '您在這個wiki中並無許可權去建立新頁面。',
+'longpageerror'              => "'''錯誤: 您所提交的文字長度有$1KB,這大於$2KB的最大值。該文字不能被儲存。'''",
+'protectedpagewarning'       => "'''警告: 本頁已經被保護,只有擁有管理員許可權的使用者才可修改。'''",
+'semiprotectedpagewarning'   => "'''注意:''' 本頁面被鎖定,僅限註冊使用者編輯。",
+'cascadeprotectedwarning'    => '警告: 本頁已經被保護,只有擁有管理員權限的使用者才可修改,因為本頁已被以下連鎖保護的{{PLURAL:$1|一個|多個}}頁面所包含:',
+'nocreatetitle'              => '建立頁面受限',
+'nocreatetext'               => '此網站限制了建立新頁面的功能。你可以返回並編輯已有的頁面,或者[[Special:UserLogin|登錄或建立新帳號]]。',
+'nocreate-loggedin'          => '您在這個wiki中並無許可權去建立新頁面。',
 'recreate-moveddeleted-warn' => "'''警告: 你現在重新建立一個先前曾經刪除過的頁面。'''
 
 你應該要考慮一下繼續編輯這一個頁面是否合適。
 為方便起見,這一個頁面的刪除記錄已經在下面提供:",
-'edit-hook-aborted' => '編輯被鉤取消。
+'edit-hook-aborted'          => '編輯被鉤取消。
 它並無給出解釋。',
 
 # Parser/template warnings
@@ -365,86 +366,93 @@ $messages = array(
 說明:(目前) 指與目前版本比較,(先前) 指與前一個修訂版本比較,小 = 細微修改。',
 
 # Revision feed
-'history-feed-title' => '修訂沿革',
+'history-feed-title'       => '修訂沿革',
 'history-feed-description' => '本站上此頁的修訂沿革',
-'history-feed-empty' => '所請求的頁面不存在。它可能已被刪除或重新命名。
+'history-feed-empty'       => '所請求的頁面不存在。它可能已被刪除或重新命名。
 嘗試[[Special:Search|搜尋本站]]獲得相關的新建頁面。',
 
 # Revision deletion
-'rev-deleted-comment' => '(註釋已除)',
-'rev-deleted-user' => '(使用者名已移除)',
-'rev-deleted-event' => '(日誌已除)',
+'rev-deleted-comment'         => '(註釋已除)',
+'rev-deleted-user'            => '(使用者名已移除)',
+'rev-deleted-event'           => '(日誌已除)',
 'rev-deleted-text-permission' => '該頁面修訂已經被從公共文件中移除。
+在[{{fullurl:{{#Special:Log}}/suppress|page={{PAGENAMEE}}}} 刪除日誌]中您可能會檢視到詳細的訊息。',
+'rev-deleted-text-view'       => '該頁面修訂已經被從公共文件中移除。作為此網站的管理員,您可以檢視它;
 在[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 刪除日誌]中您可能會檢視到詳細的訊息。',
-'rev-deleted-text-view' => '該頁面修訂已經被從公共文件中移除。作為此網站的管理員,您可以檢視它;
-在[{{fullurl:{{#Special:Log}}/suppress|page={{FULLPAGENAMEE}}}} 刪除日誌]中您可能會檢視到詳細的訊息。',
-'revisiondelete' => '刪除/復原刪除修訂',
-'revdelete-nooldid-title' => '沒有目標修訂',
-'revdelete-nooldid-text' => '您沒有指定此操作的目標修訂。',
-'logdelete-selected' => "'''選取的$1個日誌項目:'''",
-'revdelete-text' => "'''刪除的修訂仍將顯示在修訂記錄中, 但它們的文字內容已不能被公眾訪問。'''
+'revisiondelete'              => '刪除/復原刪除修訂',
+'revdelete-nooldid-title'     => '沒有目標修訂',
+'revdelete-nooldid-text'      => '您沒有指定此操作的目標修訂。',
+'logdelete-selected'          => "'''選取的$1個日誌項目:'''",
+'revdelete-text'              => "'''刪除的修訂仍將顯示在修訂記錄中, 但它們的文字內容已不能被公眾訪問。'''
 
 在此網站的其他管理員將仍能訪問隱藏的內容並透過與此相同的介面復原刪除,除非網站工作者進行了一些附加的限制。",
-'revdelete-legend' => '設定修訂限制:',
-'revdelete-hide-user' => '隱藏編輯者的使用者名/IP',
-'revdelete-hide-restricted' => '將此限制同樣應用於管理員',
-'revdelete-suppress' => '同時壓制由操作員以及其他使用者的資料',
-'revdelete-unsuppress' => '在已復原的修訂中移除限制',
-'revdelete-success' => '修訂的可見性已經成功設定。',
-'logdelete-success' => '事件的可見性已經成功設定。',
+'revdelete-legend'            => '設定修訂限制:',
+'revdelete-hide-user'         => '隱藏編輯者的使用者名/IP',
+'revdelete-hide-restricted'   => '將此限制同樣應用於管理員',
+'revdelete-suppress'          => '同時壓制由操作員以及其他使用者的資料',
+'revdelete-unsuppress'        => '在已復原的修訂中移除限制',
+'revdelete-success'           => '修訂的可見性已經成功設定。',
+'logdelete-success'           => '事件的可見性已經成功設定。',
 
 # History merging
-'mergehistory' => '合併修訂記錄',
+'mergehistory'        => '合併修訂記錄',
 'mergehistory-header' => "這一頁可以講您合併一個來源頁面的歷史到另一個新頁面中。
 請確認這次更改會繼續保留該頁面先前的歷史版本。
 
 '''最少該來源頁面的現時修訂必定會保持。'''",
-'mergehistory-merge' => '以下[[:$1]]的修訂可以合併到[[:$2]]。用該選項按鈕欄去合併只有在指定時間以前所建立的修訂。要留意的是使用導航連結便會重設這一欄。',
+'mergehistory-merge'  => '以下[[:$1]]的修訂可以合併到[[:$2]]。用該選項按鈕欄去合併只有在指定時間以前所建立的修訂。要留意的是使用導航連結便會重設這一欄。',
 
 # Merge log
 'mergelogpagetext' => '以下是一個最近由一個頁面的修訂沿革合併到另一個頁面的列表。',
 
 # Diffs
-'history-title' => '「$1」的修訂沿革',
+'history-title'           => '「$1」的修訂沿革',
 'compareselectedversions' => '比較選定的版本',
 
 # Search results
-'searchresults' => '搜尋結果',
-'searchdisabled' => '{{SITENAME}}由於性能方面的原因,全文搜尋已被暫時停用。您可以暫時透過Google搜尋。請留意他們的索引可能會過時。',
+'searchresults'    => '搜尋結果',
+'searchresulttext' => '有關搜尋{{SITENAME}}的更多詳情,參見[[{{MediaWiki:Helppage}}|{{int:help}}]]。',
+'searchsubtitle'   => '查詢\'\'\'[[:$1]]\'\'\'([[Special:Prefixindex/$1|所有以 "$1" 開頭的頁面]]{{int:pipe-separator}}[[Special:WhatLinksHere/$1|所有鏈接到 "$1" 的頁面]])',
+'nonefound'        => "'''注意''': 只有一些名稱空間是會作為預設搜尋。嘗試''all:''去搜尋全部的頁面(包埋討論頁面、模板等),或可用需要的名稱空間作為前綴。",
+'powersearch'      => '搜尋',
+'searchdisabled'   => '{{SITENAME}}由於性能方面的原因,全文搜尋已被暫時停用。您可以暫時透過Google搜尋。請留意他們的索引可能會過時。',
 
 # Preferences page
-'preferences' => '偏好設定',
-'mypreferences' => '偏好設定',
-'prefs-personal' => '使用者資料',
-'prefs-rc' => '近期變動',
+'preferences'          => '偏好設定',
+'mypreferences'        => '我的偏好設定',
+'prefsnologintext'     => '您必須先[[Special:UserLogin|登入]]才能設定個人參數。',
+'prefs-personal'       => '使用者資料',
+'prefs-rc'             => '近期變動',
 'prefs-watchlist-days' => '監視列表中顯示記錄的最長天數:',
-'saveprefs' => '保存偏好設定',
-'searchresultshead' => '搜尋結果設定',
-'recentchangesdays' => '近期變動中的顯示日數:',
-'recentchangescount' => '近期變動中的編輯數:',
-'savedprefs' => '您的個人偏好設定已經儲存。',
-'timezonelegend' => '時區',
-'localtime' => '當地時間',
-'servertime' => '伺服器時間:',
-'allowemail' => '接受來自其他使用者的郵件',
-'defaultns' => '否則在這些名字空間搜尋:',
-'username' => '使用者名:',
-'uid' => '使用者ID:',
-'yournick' => '暱稱:',
-'badsig' => '錯誤的原始簽名;請檢查HTML標籤。',
-'badsiglength' => '你的簽名過長;簽名長度必須在$1個字元以下。',
-'prefs-help-gender' => '可選:用於軟體中的性別指定。此項資料將會被公開。',
-'prefs-help-realname' => '真實姓名是選填的,如果您選擇提供它,那它便用以對您的貢獻署名。',
-'prefs-help-email' => '電子郵件是選填的,但當啟用它後可以在您忘記您的個密碼時需要將新密碼重設寄回給您。而在您未公開自己的使用者身分時也能透過您的用戶頁或用戶討論頁與您聯繫。',
+'saveprefs'            => '保存偏好設定',
+'resetprefs'           => '重設參數',
+'searchresultshead'    => '搜尋結果設定',
+'recentchangesdays'    => '近期變動中的顯示日數:',
+'recentchangescount'   => '近期變動中的編輯數:',
+'savedprefs'           => '您的個人偏好設定已經儲存。',
+'timezonelegend'       => '時區',
+'localtime'            => '當地時間',
+'timezoneoffset'       => '時差¹',
+'servertime'           => '伺服器時間',
+'allowemail'           => '接受來自其他使用者的郵件',
+'defaultns'            => '否則在這些名字空間搜尋:',
+'username'             => '使用者名:',
+'uid'                  => '使用者ID:',
+'yournick'             => '暱稱:',
+'badsig'               => '錯誤的原始簽名;請檢查HTML標籤。',
+'badsiglength'         => '你的簽名過長;簽名長度必須在$1個字元以下。',
+'prefs-help-gender'    => '可選:用於軟體中的性別指定。此項資料將會被公開。',
+'prefs-help-realname'  => '真實姓名是選填的,如果您選擇提供它,那它便用以對您的貢獻署名。',
+'prefs-help-email'     => '電子郵件是選填的,但當啟用它後可以在您忘記您的個密碼時需要將新密碼重設寄回給您。而在您未公開自己的使用者身分時也能透過您的用戶頁或用戶討論頁與您聯繫。',
 
 # User rights
-'userrights' => '使用者權限管理',
-'userrights-lookup-user' => '管理使用者群組',
+'userrights'               => '使用者權限管理',
+'userrights-lookup-user'   => '管理使用者群組',
 'userrights-user-editname' => '輸入使用者帳號:',
-'editusergroup' => '編輯使用者群組',
-'editinguser' => "正在編輯使用者'''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]] | [[Special:Contributions/$1|{{int:contribslink}}]])",
+'editusergroup'            => '編輯使用者群組',
+'editinguser'              => "正在編輯使用者'''[[User:$1|$1]]''' ([[User talk:$1|{{int:talkpagelinktext}}]] | [[Special:Contributions/$1|{{int:contribslink}}]])",
 'userrights-editusergroup' => '編輯使用者群組',
-'saveusergroups' => '保存使用者群組',
+'saveusergroups'           => '保存使用者群組',
 
 # Groups
 'group-autoconfirmed' => '自動確認使用者',
@@ -454,31 +462,31 @@ $messages = array(
 'grouppage-autoconfirmed' => '{{ns:project}}:自動確認使用者',
 
 # User rights log
-'rightslog' => '使用者權限日誌',
+'rightslog'     => '使用者權限日誌',
 'rightslogtext' => '以下記錄了使用者權限的更改記錄。',
 
 # Recent changes
-'recentchanges' => '近期變動',
-'recentchanges-feed-description' => '追蹤此訂閱在 wiki 上的近期變動。',
-'rcnotefrom' => '下面是自<b>$2</b>(最多顯示<b>$1</b>):',
-'rcshowhideminor' => '$1細微修改',
-'rcshowhidebots' => '$1機器人的編輯',
-'rcshowhideliu' => '$1具名使用者的編輯',
-'rcshowhideanons' => '$1匿名使用者的編輯',
-'rcshowhidepatr' => ' $1檢查過的編輯',
+'recentchanges'                     => '近期變動',
+'recentchanges-feed-description'    => '追蹤此訂閱在 wiki 上的近期變動。',
+'rcnotefrom'                        => '下面是自<b>$2</b>(最多顯示<b>$1</b>):',
+'rcshowhideminor'                   => '$1細微修改',
+'rcshowhidebots'                    => '$1機器人的編輯',
+'rcshowhideliu'                     => '$1具名使用者的編輯',
+'rcshowhideanons'                   => '$1匿名使用者的編輯',
+'rcshowhidepatr'                    => ' $1檢查過的編輯',
 'number_of_watching_users_pageview' => '[$1個關注使用者]',
 
 # Recent changes linked
-'recentchangeslinked' => '相關頁面修訂記錄',
-'recentchangeslinked-feed' => '相關頁面修訂記錄',
+'recentchangeslinked'         => '相關頁面修訂記錄',
+'recentchangeslinked-feed'    => '相關頁面修訂記錄',
 'recentchangeslinked-toolbox' => '相關頁面修訂記錄',
-'recentchangeslinked-title' => '$1 內連結頁面的修訂記錄',
+'recentchangeslinked-title'   => '$1 內連結頁面的修訂記錄',
 'recentchangeslinked-summary' => "這一個特殊頁面列示這一頁連出頁面的近期變動。在您監視列表中的頁面會以'''粗體'''表示。",
 
 # Upload
-'upload' => '上傳檔案',
-'reuploaddesc' => '返回上載表單。',
-'uploadtext' => "使用下面的表單來上傳用在頁面內新的圖片檔案。
+'upload'                      => '上傳檔案',
+'reuploaddesc'                => '返回上載表單。',
+'uploadtext'                  => "使用下面的表單來上傳用在頁面內新的圖片檔案。
 要檢視或搜尋以前上傳的圖片
 可以進入[[Special:FileList|圖片清單]],
 上傳和刪除將在[[Special:Log/upload|上傳日誌]]中記錄。
@@ -487,50 +495,50 @@ $messages = array(
 '''<nowiki>[[</nowiki>{{ns:file}}:file.jpg<nowiki>]]</nowiki>''',
 '''<nowiki>[[</nowiki>{{ns:file}}:file.png|替換文字<nowiki>]]</nowiki>''' 或
 '''<nowiki>[[</nowiki>{{ns:media}}:file.ogg<nowiki>]]</nowiki>'''。",
-'uploadlogpagetext' => '以下是最近上傳的檔案的一覽表。',
-'ignorewarning' => '忽略警告並儲存檔案。',
-'illegalfilename' => '檔案名"$1"包含有頁面標題所禁止的字符。請改名後重新上傳。',
-'badfilename' => '檔案名已被改為"$1"。',
-'hookaborted' => '您所嘗試的修改被擴展鉤捨棄。',
-'fileexists-thumbnail-yes' => "這個檔案好像是一幅圖片的縮圖版本''(縮圖)''。 [[$1|thumb]]
-請檢查清楚該檔案<strong>[[:$1]]</strong>
+'uploadlogpagetext'           => '以下是最近上傳的檔案的一覽表。',
+'ignorewarning'               => '忽略警告並儲存檔案。',
+'illegalfilename'             => '檔案名"$1"包含有頁面標題所禁止的字符。請改名後重新上傳。',
+'badfilename'                 => '檔案名已被改為"$1"。',
+'hookaborted'                 => '您所嘗試的修改被擴展鉤捨棄。',
+'fileexists-thumbnail-yes'    => "這個檔案好像是一幅圖片的縮圖版本''(縮圖)''。 [[$1|thumb]]
+請檢查清楚該檔案'''<tt>[[:$1]]</tt>'''
 如果檢查後的檔案是同原本圖片的大小是一樣的話,就不用再上載多一幅縮圖。",
-'file-thumbnail-no' => "該檔名是以<strong>$1</strong>開始。它好像一幅圖片的縮圖版本''(縮圖)''。
+'file-thumbnail-no'           => "該檔名是以'''<tt>$1</tt>'''開始。它好像一幅圖片的縮圖版本''(縮圖)''。
 如果你有該圖片的完整大小,如不是請再修改檔名。",
-'fileexists-forbidden' => '已存在相同名稱的檔案;請返回並用一個新的名稱來上傳此檔案。[[File:$1|thumb|center|$1]]',
+'fileexists-forbidden'        => '已存在相同名稱的檔案;請返回並用一個新的名稱來上傳此檔案。[[File:$1|thumb|center|$1]]',
 'fileexists-shared-forbidden' => '在共享檔案庫中已存在此名稱的檔案;請返回並用一個新的名稱來上傳此檔案。[[File:$1|thumb|center|$1]]',
-'uploaddisabledtext' => '檔案上傳在此網站不可用。',
-'watchthisupload' => '監視此頁',
+'uploaddisabledtext'          => '檔案上傳在此網站不可用。',
+'watchthisupload'             => '監視此頁',
 
-'upload-proto-error' => '協訂錯誤',
+'upload-proto-error'     => '協訂錯誤',
 'upload-file-error-text' => '當試圖在伺服器上建立臨時檔案時發生內部錯誤。請與系統管理員聯繫。',
 'upload-misc-error-text' => '在上傳時發生未知的錯誤. 請驗証使用了正確並可訪問的 URL,然後進行重試。如果問題仍然存在,請與系統管理員聯繫。',
 
 # Special:ListFiles
 'listfiles_search_for' => '按圖片名稱搜尋:',
-'listfiles_user' => '使用者',
+'listfiles_user'       => '使用者',
 
 # File description page
-'filehist' => '檔案歷史',
+'filehist'           => '檔案歷史',
 'filehist-deleteone' => '刪除這個',
-'filehist-revert' => '復原',
-'filehist-datetime' => '日期/時間',
-'filehist-user' => '使用者',
-'imagelinks' => '連結',
+'filehist-revert'    => '復原',
+'filehist-datetime'  => '日期/時間',
+'filehist-user'      => '使用者',
+'imagelinks'         => '連結',
 
 # File reversion
-'filerevert' => '復原$1',
-'filerevert-legend' => '復原檔案',
-'filerevert-intro' => '<span class="plainlinks">您現正在復原\'\'\'[[Media:$1|$1]]\'\'\'到[$4 於$2 $3的版本]。</span>',
+'filerevert'                => '復原$1',
+'filerevert-legend'         => '復原檔案',
+'filerevert-intro'          => '<span class="plainlinks">您現正在復原\'\'\'[[Media:$1|$1]]\'\'\'到[$4 於$2 $3的版本]。</span>',
 'filerevert-defaultcomment' => '已經復原到於$1 $2的版本',
-'filerevert-submit' => '復原',
-'filerevert-success' => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'已經復原到[$4 於$2 $3的版本]。</span>',
+'filerevert-submit'         => '復原',
+'filerevert-success'        => '<span class="plainlinks">\'\'\'[[Media:$1|$1]]\'\'\'已經復原到[$4 於$2 $3的版本]。</span>',
 
 # File deletion
-'filedelete-intro' => "您現正刪除'''[[Media:$1|$1]]'''。",
-'filedelete-intro-old' => '<span class="plainlinks">你現正刪除\'\'\'[[Media:$1|$1]]\'\'\'於[$4 $2 $3]的版本。</span>',
-'filedelete-comment' => '註解:',
-'filedelete-nofile' => "'''$1'''在這個網站中不存在。",
+'filedelete-intro'      => "您現正刪除'''[[Media:$1|$1]]'''。",
+'filedelete-intro-old'  => '<span class="plainlinks">你現正刪除\'\'\'[[Media:$1|$1]]\'\'\'於[$4 $2 $3]的版本。</span>',
+'filedelete-comment'    => '註解:',
+'filedelete-nofile'     => "'''$1'''在這個網站中不存在。",
 'filedelete-nofile-old' => "在已指定屬性的情況下,這裡沒有'''$1'''於 $2 $3 的版本。",
 
 # MIME search
@@ -548,57 +556,62 @@ $messages = array(
 # Statistics
 'statistics-header-users' => '使用者統計',
 
+'disambiguations'      => '消歧義',
+'disambiguations-text' => '以下的頁面都有到<b>消歧義頁</b>的鏈接,
+但它們應該是連到適當的標題。<br />
+個頁面會被視為消含糊頁如果它是連自[[MediaWiki:Disambiguationspage]]。',
+
 'withoutinterwiki-summary' => '以下的頁面是未有語言鏈接到其它語言版本:',
 
 # Miscellaneous special pages
-'lonelypagestext' => '以下頁面尚未被這個wiki中的其它頁面連結。',
+'lonelypagestext'     => '以下頁面尚未被這個wiki中的其它頁面連結。',
 'uncategorizedimages' => '待分類圖片',
-'unusedimages' => '未使用圖片',
-'popularpages' => '熱門頁面',
-'mostimages' => '最多連結圖片',
-'prefixindex' => '所有頁面之前綴',
-'deadendpagestext' => '以下頁面沒有連結到這個wiki中的其它頁面。',
-'listusers' => '使用者列表',
-'newpages-username' => '使用者帳號:',
-'move' => '移動',
-'unusedimagestext' => '請注意其它網站可能直接透過 URL 連結此圖片,所以這裡列出的圖片有可能依然被使用。',
-'notargettext' => '您還沒有指定一個目標頁面或使用者以進行此項操作。',
+'unusedimages'        => '未使用圖片',
+'popularpages'        => '熱門頁面',
+'mostimages'          => '最多連結圖片',
+'prefixindex'         => '所有頁面之前綴',
+'deadendpagestext'    => '以下頁面沒有連結到這個wiki中的其它頁面。',
+'listusers'           => '使用者列表',
+'newpages-username'   => '使用者帳號:',
+'move'                => '移動',
+'unusedimagestext'    => '請注意其它網站可能直接透過 URL 連結此圖片,所以這裡列出的圖片有可能依然被使用。',
+'notargettext'        => '您還沒有指定一個目標頁面或使用者以進行此項操作。',
 
 # Special:Log
 'specialloguserlabel' => '使用者:',
-'alllogstext' => '綜合顯示 {{SITENAME}} 的上傳、刪除、保護、查封以及站務日誌。',
+'alllogstext'         => '綜合顯示 {{SITENAME}} 的上傳、刪除、保護、查封以及站務日誌。',
 
 # Special:ListUsers
-'listusersfrom' => '給定顯示使用者條件:',
+'listusersfrom'      => '給定顯示使用者條件:',
 'listusers-noresult' => '找不到使用者。',
 
 # Special:ActiveUsers
 'activeusers-hidebots' => '隱藏機器人',
 
-# Email user
-'mailnologin' => '無E-mail地址',
+# E-mail user
+'mailnologin'     => '無E-mail地址',
 'mailnologintext' => '您必須先[[Special:UserLogin|登入]]
 並在[[Special:Preferences|偏好設定]]
 中有一個有效的e-mail地址才可以E-mail其他使用者。',
-'emailuser' => 'E-mail該使用者',
-'emailpage' => 'E-mail使用者',
-'emailpagetext' => '如果該使用者已經在他或她的偏好設定頁中輸入了有效的e-mail地址,以下的表格將寄一個訊息給該使用者。您在您偏好設定中所輸入的e-mail地址將出現在郵件「發件人」一欄中,這樣該使用者就可以回覆您。',
-'noemailtext' => '該使用者還沒有指定一個有效的e-mail地址,
+'emailuser'       => 'E-mail該使用者',
+'emailpage'       => 'E-mail使用者',
+'emailpagetext'   => '如果該使用者已經在他或她的偏好設定頁中輸入了有效的e-mail地址,以下的表格將寄一個訊息給該使用者。您在您偏好設定中所輸入的e-mail地址將出現在郵件「發件人」一欄中,這樣該使用者就可以回覆您。',
+'noemailtext'     => '該使用者還沒有指定一個有效的e-mail地址,
 或者選擇不接受來自其他使用者的e-mail。',
-'emailfrom' => '發件人',
-'emailto' => '收件人',
-'emailsubject' => '主題',
-'emailmessage' => '訊息',
-'emailccme' => '將我的消息的副本發送一份到我的E-mail信箱。',
+'emailfrom'       => '發件人',
+'emailto'         => '收件人',
+'emailsubject'    => '主題',
+'emailmessage'    => '訊息',
+'emailccme'       => '將我的消息的副本發送一份到我的E-mail信箱。',
 
 # Watchlist
-'addedwatchtext' => '已將頁面「[[:$1]]」加入您的[[Special:Watchlist|監視列表]],未來此頁面或其討論頁如有更動,都會在監視列表中列出。',
-'removedwatchtext' => '頁面「[[:$1]]」已經從您的監視頁面中移除。',
+'addedwatchtext'    => "頁面「[[:$1]]」已經被加入到您的[[Special:Watchlist|監視清單]]中。將來有關此頁面及其討論頁的任何修改將會在那裡列出,而且還會在[[Special:RecentChanges|近期變動]]中以'''粗體'''形式列出以使起更容易識別。",
+'removedwatchtext'  => '頁面「[[:$1]]」已經從您的監視頁面中移除。',
 'watchlist-details' => '不包含討論頁,您的監視列表共有 $1 頁。',
 
 'enotif_impersonal_salutation' => '{{SITENAME}}使用者',
-'enotif_anon_editor' => '匿名使用者$1',
-'enotif_body' => '親愛的 $WATCHINGUSERNAME,
+'enotif_anon_editor'           => '匿名使用者$1',
+'enotif_body'                  => '親愛的 $WATCHINGUSERNAME,
 
 $PAGEEDITOR 已經在 $PAGEEDITDATE $CHANGEDORCREATED{{SITENAME}}的 $PAGETITLE 頁面,請到 $PAGETITLE_URL 檢視目前版本。
 
@@ -626,77 +639,77 @@ $NEWPAGE
 # Delete
 'confirmdeletetext' => '您即將從資料庫中永遠刪除一個頁面或圖片以及其歷史。
 請確定您要進行此項操作,並且了解其後果,同時您的行為符合[[{{MediaWiki:Policy-url}}]]。',
-'deletedtext' => '「$1」已經被刪除。
+'deletedtext'       => '「$1」已經被刪除。
 最近刪除的紀錄請參見$2。',
-'dellogpagetext' => '以下是最近刪除的紀錄列表。
+'dellogpagetext'    => '以下是最近刪除的紀錄列表。
 所有的時間都是使用伺服器時間。',
-'reverted' => '復原到早期版本',
-'deletecomment' => '原因:',
+'reverted'          => '復原到早期版本',
+'deletecomment'     => '原因:',
 
 # Rollback
-'rollback' => '復原',
-'rollback_short' => '復原',
-'rollbacklink' => '復原',
-'rollbackfailed' => '無法復原',
-'cantrollback' => '無法復原編輯;最後的貢獻者是本文的唯一作者。',
-'alreadyrolled' => '無法復原由[[User:$2|$2]] ([[User talk:$2|討論]])進行的[[$1]]的最後編輯;
+'rollback'         => '復原',
+'rollback_short'   => '復原',
+'rollbacklink'     => '復原',
+'rollbackfailed'   => '無法復原',
+'cantrollback'     => '無法復原編輯;最後的貢獻者是本文的唯一作者。',
+'alreadyrolled'    => '無法復原由[[User:$2|$2]] ([[User talk:$2|討論]])進行的[[$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|對話]])的編輯;更改回[[User:$1|$1]]的最後一個版本',
+'editcomment'      => "編輯說明: \"''\$1''\"。",
+'revertpage'       => '復原由[[Special:Contributions/$2|$2]] ([[User talk:$2|對話]])的編輯;更改回[[User:$1|$1]]的最後一個版本',
 'rollback-success' => '復原由$1的編輯;更改回$2的最後一個版本。',
 
 # Protect
-'protect-title' => '更改「$1」的保護等級',
-'protect-locked-blocked' => "您不能在被封鎖時更改保護級別。
+'protect-title'               => '更改「$1」的保護等級',
+'protect-locked-blocked'      => "您不能在被封鎖時更改保護級別。
 以下是'''$1'''現時的保護級別:",
-'protect-locked-access' => "您的帳號權限不能修改保護級別。
+'protect-locked-access'       => "您的帳號權限不能修改保護級別。
 以下是'''$1'''現時的保護級別:",
-'protect-cascadeon' => '以下的{{PLURAL:$1|一個|多個}}頁面包含著本頁面的同時,啟動了連鎖保護,因此本頁面目前也被保護,未能編輯。您可以設定本頁面的保護級別,但這並不會對連鎖保護有所影響。',
-'protect-default' => '(預設)',
+'protect-cascadeon'           => '以下的{{PLURAL:$1|一個|多個}}頁面包含著本頁面的同時,啟動了連鎖保護,因此本頁面目前也被保護,未能編輯。您可以設定本頁面的保護級別,但這並不會對連鎖保護有所影響。',
+'protect-default'             => '(預設)',
 'protect-level-autoconfirmed' => '禁止未註冊使用者',
-'protect-expiry-options' => '2小時:2 hours,1天:1 day,1周:1 week,2周:2 weeks,1個月:1 month,3個月:3 months,6個月:6 months,1年:1 year,永久:infinite',
-'maximum-size' => '最大大小',
+'protect-expiry-options'      => '2小時:2 hours,1天:1 day,1周:1 week,2周:2 weeks,1個月:1 month,3個月:3 months,6個月:6 months,1年:1 year,永久:infinite',
+'maximum-size'                => '最大大小',
 
 # Undelete
-'undelete' => '復原被刪頁面',
-'undeletepage' => '瀏覽及復原被刪頁面',
-'undeletepagetext' => '以下頁面已經被刪除,但依然在檔案中並可以被復原。
+'undelete'                     => '復原被刪頁面',
+'undeletepage'                 => '瀏覽及復原被刪頁面',
+'undeletepagetext'             => '以下頁面已經被刪除,但依然在檔案中並可以被復原。
 檔案庫可能被定時清理。',
-'undeleteextrahelp' => "復原整個頁面時,請清除所有複選框後按 '''''復原''''' 。 復原特定版本時,請選擇相應版本前的複選框後按'''''復原''''' 。按 '''''重設''''' 將清除評論內容及所有複選框。",
-'undeletehistory' => '如果您復原了該頁面,所有版本都會被復原到修訂沿革中。
+'undeleteextrahelp'            => "復原整個頁面時,請清除所有複選框後按 '''''復原''''' 。 復原特定版本時,請選擇相應版本前的複選框後按'''''復原''''' 。按 '''''重設''''' 將清除評論內容及所有複選框。",
+'undeletehistory'              => '如果您復原了該頁面,所有版本都會被復原到修訂沿革中。
 如果本頁刪除後有一個同名的新頁面建立,被復原的版本將會稱為較新的歷史。',
-'undeleterevdel' => '如果把最新修訂部份刪除,反刪除便無法進行。如果遇到這種情況,您必須反選或反隱藏最新已刪除的修訂。對於您沒有權限去檢視的修訂是無法復原的。',
-'undeletehistorynoadmin' => '這個頁面已經被刪除,刪除原因顯示在下方編輯摘要中。被刪除前的所有修訂版本,連同刪除前貢獻使用者等等細節只有管理員可以看見。',
-'undelete-revision' => '刪除$1時由$3(在$2)所編寫的修訂版本:',
-'undeleterevision-missing' => '此版本的內容不正確或已經遺失。可能連結錯誤、被移除或已經被復原。',
-'undeletebtn' => '復原',
-'undeletedrevisions' => '$1個修訂版本已經復原',
-'undeletedrevisions-files' => '$1 個版本和 $2 個檔案被復原',
-'undeletedfiles' => '$1 個檔案被復原',
-'cannotundelete' => '復原失敗;可能之前已經被其他人復原。',
-'undeletedpage' => "'''$1已經被復原''' 請參考[[Special:Log/delete|刪除日誌]]來查詢刪除及復原記錄。",
+'undeleterevdel'               => '如果把最新修訂部份刪除,反刪除便無法進行。如果遇到這種情況,您必須反選或反隱藏最新已刪除的修訂。對於您沒有權限去檢視的修訂是無法復原的。',
+'undeletehistorynoadmin'       => '這個頁面已經被刪除,刪除原因顯示在下方編輯摘要中。被刪除前的所有修訂版本,連同刪除前貢獻使用者等等細節只有管理員可以看見。',
+'undelete-revision'            => '刪除$1時由$3(在$2)所編寫的修訂版本:',
+'undeleterevision-missing'     => '此版本的內容不正確或已經遺失。可能連結錯誤、被移除或已經被復原。',
+'undeletebtn'                  => '復原',
+'undeletedrevisions'           => '$1個修訂版本已經復原',
+'undeletedrevisions-files'     => '$1 個版本和 $2 個檔案被復原',
+'undeletedfiles'               => '$1 個檔案被復原',
+'cannotundelete'               => '復原失敗;可能之前已經被其他人復原。',
+'undeletedpage'                => "'''$1已經被復原''' 請參考[[Special:Log/delete|刪除日誌]]來查詢刪除及復原記錄。",
 'undelete-missing-filearchive' => '由於檔案存檔 ID $1 不在資料庫中,不能在檔案存檔中復原。它可能已經反刪除了。',
 
 # Contributions
 'contributions' => '使用者編修記錄',
-'mycontris' => '編修記錄',
-'contribsub2' => '$1的編修記錄 ($2)',
-'uctop' => '(最新修改)',
+'mycontris'     => '我的編修記錄',
+'contribsub2'   => '$1的編修記錄 ($2)',
+'uctop'         => '(最新修改)',
 
-'sp-contributions-newbies' => '只顯示新建立之使用者的編修記錄',
-'sp-contributions-blocklog' => '封鎖記錄',
+'sp-contributions-newbies'    => '只顯示新建立之使用者的編修記錄',
+'sp-contributions-blocklog'   => '封鎖記錄',
 'sp-contributions-userrights' => '使用者權限管理',
-'sp-contributions-username' => 'IP位址或使用者名稱:',
+'sp-contributions-username'   => 'IP位址或使用者名稱:',
 
 # What links here
 'whatlinkshere-title' => '鏈接到$1的頁面',
 
 # Block/unblock
-'blockip' => '封鎖使用者',
-'ipadressorusername' => 'IP地址或使用者名稱:',
-'ipbreason-dropdown' => '*一般的封鎖理由
+'blockip'                     => '封鎖使用者',
+'ipadressorusername'          => 'IP地址或使用者名:',
+'ipbreason-dropdown'          => '*一般的封鎖理由
 ** 屢次增加不實資料
 ** 刪除頁面內容
 ** 外部連結廣告
@@ -704,49 +717,50 @@ $NEWPAGE
 ** 無禮的行為、攻擊/騷擾別人
 ** 濫用多個帳號
 ** 不能接受的使用者名',
-'ipbcreateaccount' => '阻止建立新帳號',
-'ipbemailban' => '阻止使用者傳送E-mail',
-'ipbenableautoblock' => '自動封鎖此使用者最後所用的IP位址,以及後來試圖編輯所用的所有位址',
-'ipbsubmit' => '封鎖該地址',
-'ipbhidename' => '在封鎖日誌、活躍封鎖列表以及使用者列表中隱藏使用者名/IP',
-'blockipsuccesssub' => '封鎖成功',
-'blockipsuccesstext' => '[[Special:Contributions/$1|$1]]已經被封鎖。
+'ipbcreateaccount'            => '阻止建立新帳號',
+'ipbemailban'                 => '阻止使用者傳送E-mail',
+'ipbenableautoblock'          => '自動封鎖此使用者最後所用的IP位址,以及後來試圖編輯所用的所有位址',
+'ipbsubmit'                   => '封鎖該地址',
+'ipbhidename'                 => '在封鎖日誌、活躍封鎖列表以及使用者列表中隱藏使用者名/IP',
+'blockipsuccesssub'           => '封鎖成功',
+'blockipsuccesstext'          => '[[Special:Contributions/$1|$1]]已經被封鎖。
 <br />參看[[Special:BlockList|被封IP地址列表]]以覆審封鎖。',
-'ipb-edit-dropdown' => '編輯封鎖原因',
-'ipb-unblock-addr' => '解除封鎖$1',
-'ipb-unblock' => '解除禁封使用者名或IP地址',
-'ipb-blocklist' => '檢視現有的封鎖',
-'unblockip' => '解除禁封IP地址',
-'unblockiptext' => '用下面的表單來復原先前被禁封的IP地址的書寫權。',
-'ipusubmit' => '解除禁封',
-'unblocked' => '[[User:$1|$1]] 的封鎖已經解除。',
-'unblocked-id' => '封鎖 $1 已經被移除',
-'ipblocklist-legend' => '搜尋一位已經被封鎖的使用者',
-'anononlyblock' => '僅限匿名使用者',
-'noautoblockblock' => '禁用自動封鎖',
-'createaccountblock' => '禁止建立帳號',
-'ipblocklist-empty' => '封鎖列表為空。',
-'ipblocklist-no-results' => '所要求的IP地址/使用者名沒有被封鎖。',
-'blocklink' => '禁封',
-'blocklogentry' => '[[$1]]已被封鎖 $3 ,終止時間為$2',
-'blocklogtext' => '這是關於使用者封鎖和解除封鎖操作的記錄。被自動封鎖的IP地址沒有被列出。請參閱[[Special:BlockList|被封鎖的IP地址和使用者列表]]。',
-'block-log-flags-anononly' => '僅限匿名使用者',
-'block-log-flags-nocreate' => '禁止建立新帳號',
+'ipb-edit-dropdown'           => '編輯封鎖原因',
+'ipb-unblock-addr'            => '解除封鎖$1',
+'ipb-unblock'                 => '解除禁封使用者名或IP地址',
+'ipb-blocklist'               => '檢視現有的封鎖',
+'unblockip'                   => '解除禁封IP地址',
+'unblockiptext'               => '用下面的表單來復原先前被禁封的IP地址的書寫權。',
+'ipusubmit'                   => '解除禁封',
+'unblocked'                   => '[[User:$1|$1]] 的封鎖已經解除。',
+'unblocked-id'                => '封鎖 $1 已經被移除',
+'ipblocklist-legend'          => '搜尋一位已經被封鎖的使用者',
+'anononlyblock'               => '僅限匿名使用者',
+'noautoblockblock'            => '禁用自動封鎖',
+'createaccountblock'          => '禁止建立帳號',
+'ipblocklist-empty'           => '封鎖列表為空。',
+'ipblocklist-no-results'      => '所要求的IP地址/使用者名沒有被封鎖。',
+'blocklink'                   => '禁封',
+'blocklogentry'               => '[[$1]]已被封鎖 $3 ,終止時間為$2',
+'blocklogtext'                => '這是關於使用者封鎖和解除封鎖操作的記錄。被自動封鎖的IP地址沒有被列出。請參閱[[Special:BlockList|被封鎖的IP地址和使用者列表]]。',
+'block-log-flags-anononly'    => '僅限匿名使用者',
+'block-log-flags-nocreate'    => '禁止此IP/使用者建立新帳號',
 'block-log-flags-noautoblock' => '停用自動封鎖',
-'range_block_disabled' => '只有管理員才能建立禁止封鎖的範圍。',
-'ipb_cant_unblock' => '錯誤: 找不到封鎖ID$1。可能已經解除封鎖。',
-'ipb_blocked_as_range' => '錯誤: 該IP $1 無直接封鎖,不可以解除封鎖。但是它是在 $2 的封鎖範圍之內,該段範圍是可以解除封鎖的。',
-'sorbsreason' => '您的IP位址被 DNSBL列為屬於開放代理服務器.',
+'range_block_disabled'        => '只有管理員才能建立禁止封鎖的範圍。',
+'ipb_cant_unblock'            => '錯誤: 找不到封鎖ID$1。可能已經解除封鎖。',
+'ipb_blocked_as_range'        => '錯誤: 該IP $1 無直接封鎖,不可以解除封鎖。但是它是在 $2 的封鎖範圍之內,該段範圍是可以解除封鎖的。',
+'blockme'                     => '封鎖我',
+'sorbsreason'                 => '您的IP位址被 DNSBL列為屬於開放代理服務器.',
 'sorbs_create_account_reason' => '由於您的IP位址被 DNSBL列為屬於開放代理服務器,所以您無法建立帳號。',
 
 # Developer tools
-'lockdbtext' => '鎖住資料庫將禁止所有使用者進行編輯頁面、更改參數、編輯監視列表以及其他需要更改資料庫的操作。
+'lockdbtext'   => '鎖住資料庫將禁止所有使用者進行編輯頁面、更改參數、編輯監視列表以及其他需要更改資料庫的操作。
 請確認您的決定,並且保證您在維護工作結束後會重新開放資料庫。',
 'unlockdbtext' => '開放資料庫將會復原所有使用者進行編輯頁面、修改參數、編輯監視列表以及其他需要更改資料庫的操作。
 請確認您的決定。',
 
 # Move page
-'movepagetext' => "用下面的表單來重新命名一個頁面,並將其修訂沿革同時移動到新頁面。
+'movepagetext'    => "用下面的表單來重新命名一個頁面,並將其修訂沿革同時移動到新頁面。
 老的頁面將成為新頁面的重定向頁。
 連結到老頁面的連結並不會自動更改;
 請檢查雙重或損壞重定向連結。
@@ -762,13 +776,13 @@ $NEWPAGE
 請在行動前先了結其所可能帶來的後果。",
 'movenologintext' => '您必須是一名登記使用者並且[[Special:UserLogin|登入]]
 後才可移動一個頁面。',
-'movenotallowed' => '您在這個wiki中度並沒有許可權去移動頁面。',
-'movetalk' => '如果可能的話,請同時移動對話頁。',
+'movenotallowed'  => '您在這個wiki中度並沒有許可權去移動頁面。',
+'movetalk'        => '如果可能的話,請同時移動對話頁。',
 'movelogpagetext' => '以下是已經移動的頁面清單:',
-'revertmove' => '復原該移動',
+'revertmove'      => '復原該移動',
 
 # Export
-'exporttext' => '您可以將特定頁面或一組頁面的文字以及編輯歷史以 XML 格式匯出;這樣可以將有關頁面透過「[[Special:Import|匯入頁面]]」頁面匯入到另一個執行 MediaWiki 的網站。
+'exporttext'      => '您可以將特定頁面或一組頁面的文字以及編輯歷史以 XML 格式匯出;這樣可以將有關頁面透過「[[Special:Import|匯入頁面]]」頁面匯入到另一個執行 MediaWiki 的網站。
 
 要匯出頁面,請在下面的文字框中輸入頁面標題,每行一個標題,
 並選擇你是否需要匯出帶有修訂紀錄的以前的版本,
@@ -778,60 +792,59 @@ $NEWPAGE
 'export-download' => '提供一個檔案以供另存',
 
 # Namespace 8 related
-'allmessages' => '系統介面',
-'allmessagestext' => '這裡列出所有可定製的系統介面。',
+'allmessages'               => '系統介面',
+'allmessagestext'           => '這裡列出所有可定製的系統介面。',
 'allmessagesnotsupportedDB' => '系統介面功能處於關閉狀態 (wgUseDatabaseMessages)。',
 
 # Thumbnails
 'thumbnail_error' => '建立縮圖錯誤: $1',
 
 # Special:Import
-'import-interwiki-history' => '複製此頁的所有歷史版本',
+'import-interwiki-history'   => '複製此頁的所有歷史版本',
 'import-interwiki-namespace' => '將頁面轉移到名字空間:',
-'importtext' => '請使用 Special:Export 功能從源 wiki 匯出檔案,儲存到您的磁片並上傳到這裡。',
-'importfailed' => '匯入失敗: $1',
-'importsuccess' => '匯入成功﹗',
-'importhistoryconflict' => '存在衝突的修訂沿革(可能在之前已經匯入過此頁面)',
+'importtext'                 => '請使用 Special:Export 功能從源 wiki 匯出檔案,儲存到您的磁片並上傳到這裡。',
+'importfailed'               => '匯入失敗: $1',
+'importsuccess'              => '匯入成功﹗',
+'importhistoryconflict'      => '存在衝突的修訂沿革(可能在之前已經匯入過此頁面)',
 
 # Tooltip help for the actions
-'tooltip-pt-userpage' => '用戶頁',
-'tooltip-pt-anonuserpage' => '您編輯本站所用IP的對應使用者頁',
-'tooltip-pt-mytalk' => '討論頁',
-'tooltip-pt-preferences' => '我的偏好設定',
-'tooltip-pt-watchlist' => '我的監視列表',
-'tooltip-pt-mycontris' => '編修記錄',
-'tooltip-ca-addsection' => '於本討論頁增加新的討論主題',
-'tooltip-ca-history' => '本頁面的早前版本。',
-'tooltip-ca-undelete' => '將這個頁面復原到被刪除以前的狀態',
-'tooltip-p-logo' => '首頁',
-'tooltip-n-help' => '尋求說明',
-'tooltip-feed-rss' => '訂閱本修訂記錄的RSS資訊',
-'tooltip-feed-atom' => '訂閱本修訂記錄的Atom訊息',
-'tooltip-t-contributions' => '檢視該使用者的編修記錄',
-'tooltip-t-emailuser' => '向該使用者發送電子郵件',
-'tooltip-t-upload' => '上傳圖片或多媒體檔',
-'tooltip-t-permalink' => '這個頁面版本的永久連結',
-'tooltip-ca-nstab-user' => '檢視使用者頁',
-'tooltip-ca-nstab-image' => '查詢圖片頁面',
-'tooltip-ca-nstab-template' => '檢視模板',
-'tooltip-ca-nstab-help' => '檢視說明頁面',
-'tooltip-ca-nstab-category' => '檢視分類頁面',
-'tooltip-minoredit' => '標記為細微修改',
+'tooltip-pt-userpage'             => '用戶頁',
+'tooltip-pt-anonuserpage'         => '您編輯本站所用IP的對應使用者頁',
+'tooltip-pt-mytalk'               => '討論頁',
+'tooltip-pt-preferences'          => '我的偏好設定',
+'tooltip-pt-watchlist'            => '我的監視列表',
+'tooltip-pt-mycontris'            => '編修記錄',
+'tooltip-ca-addsection'           => '於本討論頁增加新的討論主題',
+'tooltip-ca-history'              => '本頁面的早前版本。',
+'tooltip-ca-undelete'             => '將這個頁面復原到被刪除以前的狀態',
+'tooltip-p-logo'                  => '首頁',
+'tooltip-n-help'                  => '尋求說明',
+'tooltip-feed-rss'                => '訂閱本修訂記錄的RSS資訊',
+'tooltip-feed-atom'               => '訂閱本修訂記錄的Atom訊息',
+'tooltip-t-contributions'         => '檢視該使用者的編修記錄',
+'tooltip-t-emailuser'             => '向該使用者發送電子郵件',
+'tooltip-t-upload'                => '上傳圖片或多媒體檔',
+'tooltip-t-permalink'             => '這個頁面版本的永久連結',
+'tooltip-ca-nstab-user'           => '檢視使用者頁',
+'tooltip-ca-nstab-image'          => '查詢圖片頁面',
+'tooltip-ca-nstab-template'       => '檢視模板',
+'tooltip-ca-nstab-help'           => '檢視說明頁面',
+'tooltip-ca-nstab-category'       => '檢視分類頁面',
+'tooltip-minoredit'               => '標記為細微修改',
 'tooltip-compareselectedversions' => '檢視本頁被點選的兩個版本間的差異',
-'tooltip-rollback' => '『{{int:rollbacklink}}』可以一按恢復上一位貢獻者對這個頁面的編輯',
-'tooltip-undo' => '『{{int:editundo}}』可以在編輯模式上開啟編輯表格以便復原。它容許在摘要中加入原因。',
-'interlanguage-link-title' => '$1–$2',
+'tooltip-rollback'                => '『{{int:rollbacklink}}』可以一按恢復上一位貢獻者對這個頁面的編輯',
+'tooltip-undo'                    => '『{{int:editundo}}』可以在編輯模式上開啟編輯表格以便復原。它容許在摘要中加入原因。',
 
 # Attribution
 'anonymous' => '{{SITENAME}}的匿名{{PLURAL:$1|使用者|使用者}}',
-'siteuser' => '{{SITENAME}}使用者$1',
-'anonuser' => '{{SITENAME}}匿名使用者$1',
+'siteuser'  => '{{SITENAME}}使用者$1',
+'anonuser'  => '{{SITENAME}}匿名使用者$1',
 'siteusers' => '{{SITENAME}}{{PLURAL:$2|使用者|使用者}}$1',
 'anonusers' => '{{SITENAME}}匿名{{PLURAL:$2|使用者|使用者}}$1',
 
 # Spam protection
 'spamprotectiontext' => '垃圾過濾器禁止保存您剛才提交的頁面,這可能是由於您所加入的外部網站連結所產生的問題。',
-'spam_reverting' => '復原到不包含連結至$1的最近版本',
+'spam_reverting'     => '復原到不包含連結至$1的最近版本',
 
 # Patrolling
 'markedaspatrolledtext' => '選定的版本已被標記為已檢查.',
@@ -841,18 +854,18 @@ $NEWPAGE
 
 # Browsing diffs
 'previousdiff' => '←上一個',
-'nextdiff' => '下一個→',
+'nextdiff'     => '下一個→',
 
 # Media information
-'imagemaxsize' => '在圖片描述頁對圖片大小限制為:',
-'file-nohires' => '無更高解析度可提供。',
+'imagemaxsize'   => '在圖片描述頁對圖片大小限制為:',
+'file-nohires'   => '無更高解析度可提供。',
 'show-big-image' => '完整解析度',
 
 # Special:NewFiles
-'newimages' => '新建圖片畫廊',
+'newimages'     => '新建圖片畫廊',
 'imagelisttext' => '以下是按$2排列的$1個檔案列表。',
-'showhidebots' => '(機器人$1)',
-'noimages' => '無可檢視圖片。',
+'showhidebots'  => '(機器人$1)',
+'noimages'      => '無可檢視圖片。',
 
 # Bad image list
 'bad_image_list' => '請根據以下的格式去編寫:
@@ -860,10 +873,7 @@ $NEWPAGE
 只有列示項目(以 * 開頭的項目)會被考慮。第一個連結一定要連接去壞圖片中。
 然後在同一行的連結會考慮作例外,即是幅圖片可以在哪一個頁面中同時顯示。',
 
-/*
-Short names for language variants used for language conversion links.
-Variants for Chinese language
-*/
+# Variants for Chinese language
 'variantname-zh-tw' => '台灣繁體',
 
 # Metadata
@@ -871,82 +881,72 @@ Variants for Chinese language
 
 如果此檔案的源檔案已經被修改,一些訊息在修改後的檔案中將不能完全反映出來。',
 
-# Exif tags
-'exif-bitspersample' => '每像素位元數',
+# EXIF tags
+'exif-bitspersample'             => '每像素位元數',
 'exif-photometricinterpretation' => '像素合成',
-'exif-samplesperpixel' => '像素數',
-'exif-xresolution' => '水準解析度',
-'exif-yresolution' => '垂直解析度',
-'exif-stripoffsets' => '圖片數據區',
-'exif-imagedescription' => '圖片標題',
-'exif-compressedbitsperpixel' => '圖片壓縮模式',
-'exif-pixelydimension' => '有效圖片寬度',
-'exif-pixelxdimension' => '有效圖片高度',
-'exif-usercomment' => '使用者註釋',
-'exif-focalplanexresolution' => 'X軸焦平面解析度',
-'exif-focalplaneyresolution' => 'Y軸焦平面解析度',
-'exif-focalplaneresolutionunit' => '焦平面解析度單位',
-'exif-customrendered' => '自定義圖片處理',
-'exif-imageuniqueid' => '唯一圖片ID',
-'exif-gpsimgdirectionref' => '圖片方位參照',
-'exif-gpsimgdirection' => '圖片方位',
-
-'exif-lightsource-2' => '螢光燈',
+'exif-samplesperpixel'           => '像素數',
+'exif-xresolution'               => '水準解析度',
+'exif-yresolution'               => '垂直解析度',
+'exif-stripoffsets'              => '圖片數據區',
+'exif-imagedescription'          => '圖片標題',
+'exif-compressedbitsperpixel'    => '圖片壓縮模式',
+'exif-pixelydimension'           => '有效圖片寬度',
+'exif-pixelxdimension'           => '有效圖片高度',
+'exif-usercomment'               => '使用者註釋',
+'exif-focalplanexresolution'     => 'X軸焦平面解析度',
+'exif-focalplaneyresolution'     => 'Y軸焦平面解析度',
+'exif-focalplaneresolutionunit'  => '焦平面解析度單位',
+'exif-customrendered'            => '自定義圖片處理',
+'exif-imageuniqueid'             => '唯一圖片ID',
+'exif-gpsimgdirectionref'        => '圖片方位參照',
+'exif-gpsimgdirection'           => '圖片方位',
+
+'exif-lightsource-2'  => '螢光燈',
 'exif-lightsource-12' => '日光螢光燈(色溫 D 5700    7100K)',
 'exif-lightsource-13' => '日溫白色螢光燈(N 4600    5400K)',
 'exif-lightsource-14' => '冷白色螢光燈(W 3900    4500K)',
 'exif-lightsource-15' => '白色螢光 (WW 3200    3700K)',
 
-# Email address confirmation
-'confirmemail' => '確認電子郵件地址',
-'confirmemail_noemail' => '您沒有在您的[[Special:Preferences|使用者設定]]裡面輸入一個有效的 email 位址。',
-'confirmemail_text' => '此網站要求您在使用郵件功能之前驗證您的電子郵件地址。
+# External editor support
+'edit-externally-help' => '請參見[//www.mediawiki.org/wiki/Manual:External_editors 設定步驟]了解詳細資訊。',
+
+# E-mail address confirmation
+'confirmemail'            => '確認電子郵件地址',
+'confirmemail_noemail'    => '您沒有在您的[[Special:Preferences|使用者設定]]裡面輸入一個有效的 email 位址。',
+'confirmemail_text'       => '此網站要求您在使用郵件功能之前驗證您的電子郵件地址。
 點擊以下按鈕可向您的郵箱發送一封確認郵件。該郵件包含有一行代碼連結;
 請在您的瀏覽器中加載此連結以確認您的電子郵件地址是有效的。',
 'confirmemail_sendfailed' => '不能發送確認郵件,請檢查電子郵件地址是否包含非法字元。
 
 郵件傳送員回應: $1',
-'confirmemail_needlogin' => '您需要$1以確認您的電子郵件地址。',
-'confirmemail_success' => '您的郵箱已經被確認。您現下可以登錄並使用此網站了。',
-'confirmemail_loggedin' => '您的電子郵件地址現下已被確認。',
-'confirmemail_subject' => '{{SITENAME}}電子郵件地址確認',
+'confirmemail_needlogin'  => '您需要$1以確認您的電子郵件地址。',
+'confirmemail_success'    => '您的郵箱已經被確認。您現下可以登錄並使用此網站了。',
+'confirmemail_loggedin'   => '您的電子郵件地址現下已被確認。',
+'confirmemail_subject'    => '{{SITENAME}}電子郵件地址確認',
 
 # Scary transclusion
-'scarytranscludefailed' => '[抱歉,模板$1讀取失敗]',
+'scarytranscludefailed'  => '[抱歉,模板$1讀取失敗]',
 'scarytranscludetoolong' => '[抱歉,URL 地址太長]',
 
 # Delete conflict
 'confirmrecreate' => '在您編輯這個頁面後,使用者[[User:$1|$1]]([[User talk:$1|對話]])以下列原因刪除了這個頁面: $2。請在重新建立頁面前三思。',
 
 # Auto-summaries
-'autosumm-blank' => '移除所有頁面內容',
+'autosumm-blank'   => '移除所有頁面內容',
 'autosumm-replace' => "正在將頁面替換為 '$1'",
 'autoredircomment' => '正在重定向到 [[$1]]',
-'autosumm-new' => '新頁面: $1',
+'autosumm-new'     => '新頁面: $1',
 
 # Live preview
 'livepreview-failed' => '即時預覽失敗! 嘗試標準預覽。',
 
 # Special:Version
-'version-parserhooks' => '語法鉤',
-'version-hooks' => '鉤',
+'version-parserhooks'           => '語法鉤',
+'version-hooks'                 => '鉤',
 'version-parser-function-hooks' => '語法函數鉤',
-'version-hook-name' => '鉤名',
+'version-hook-name'             => '鉤名',
 
 # Special:SpecialPages
 'specialpages' => '特殊頁面',
 
-# Special:ExpandTemplates
-'expandtemplates' => '展開模板',
-'expand_templates_intro' => '本特殊頁面用於將一些文字中的模版展開,包括模版中引用的模版。同時也展開解譯器函數如<nowiki> {{</nowiki>#language:...}},以及變數如<nowiki>{{< /nowiki>CURRENTDAY}}&mdash;實際上,幾乎所有在雙括弧中的內容都被展開。本特殊頁面是通過使用 MediaWiki的相關解釋階段的功能完成的。',
-'expand_templates_title' => '上下文標題,用於 {{FULLPAGENAME}} 等:',
-'expand_templates_input' => '輸入文字:',
-'expand_templates_output' => '結果:',
-'expand_templates_xml_output' => 'XML輸出',
-'expand_templates_ok' => '確定',
-'expand_templates_remove_comments' => '移除註釋',
-'expand_templates_remove_nowiki' => '在結果中隱藏<nowiki>標記',
-'expand_templates_generate_xml' => '顯示XML解析樹',
-'expand_templates_preview' => '預覽',
-
 );
index edd97fd..e9b7e02 100644 (file)
@@ -72,8 +72,8 @@ class CLDRPluralRuleEvaluator {
        public static function evaluateCompiled( $number, array $rules ) {
                // Calculate the values of the operand symbols
                $number = strval( $number );
-               if ( !preg_match( '/^ -? ( ([0-9]+) (?: \. ([0-9]+) )? )$/x', $number,  $m ) ) {
-                       wfDebug( __METHOD__.': invalid number input, returning "other"' );
+               if ( !preg_match( '/^ -? ( ([0-9]+) (?: \. ([0-9]+) )? )$/x', $number, $m ) ) {
+                       wfDebug( __METHOD__ . ': invalid number input, returning "other"' );
                        return count( $rules );
                }
                if ( !isset( $m[3] ) ) {
index 590cad2..02156c7 100644 (file)
@@ -3,7 +3,7 @@
  * 7z stream wrapper
  *
  * Copyright © 2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 2cf277f..3333408 100644 (file)
@@ -3,7 +3,7 @@
  * Corrects wrong values in the `page_latest` field in the database.
  *
  * Copyright © 2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
@@ -37,15 +37,21 @@ class AttachLatest extends Maintenance {
        public function __construct() {
                parent::__construct();
                $this->addOption( "fix", "Actually fix the entries, will dry run otherwise" );
+               $this->addOption( "regenerate-all",
+                       "Regenerate the page_latest field for all records in table page" );
                $this->mDescription = "Fix page_latest entries in the page table";
        }
 
        public function execute() {
                $this->output( "Looking for pages with page_latest set to 0...\n" );
                $dbw = wfGetDB( DB_MASTER );
+               $conds = array( 'page_latest' => 0 );
+               if ( $this->hasOption( 'regenerate-all' ) ) {
+                       $conds = '';
+               }
                $result = $dbw->select( 'page',
                        array( 'page_id', 'page_namespace', 'page_title' ),
-                       array( 'page_latest' => 0 ),
+                       $conds,
                        __METHOD__ );
 
                $n = 0;
index 64078b4..7161b04 100644 (file)
@@ -3,7 +3,7 @@
  * Base classes for database dumpers
  *
  * Copyright © 2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 04352b9..a0ff7fe 100644 (file)
@@ -3,7 +3,7 @@
  * Helper class for the --prefetch option of dumpTextPass.php
  *
  * Copyright © 2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index f16772c..24e7634 100644 (file)
@@ -3,7 +3,7 @@
  * BackupDumper that postprocesses XML dumps from dumpBackup.php to add page text
  *
  * Copyright (C) 2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index bd21b18..76b5e3c 100644 (file)
@@ -63,7 +63,6 @@ class bench_strtr_str_replace extends Benchmarker {
                str_replace( "_", " ", "[[MediaWiki:Some_random_test_page]]");
        }
 
-
        function benchstrtr_indirect() {
                bfNormalizeTitleStrTr( "[[MediaWiki:Some_random_test_page]]" );
        }
index 1a47ac4..321f089 100644 (file)
@@ -7,7 +7,7 @@
  *   --dry-run  don't actually try moving them
  *
  * Copyright © 2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 0e0b619..d42497d 100644 (file)
@@ -7,7 +7,7 @@
  *   --fix  Actually clean up titles; otherwise just checks for them
  *
  * Copyright © 2005-2006 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 5b5ef18..72b6aa5 100644 (file)
@@ -7,7 +7,7 @@
  *   --fix  Actually clean up titles; otherwise just checks for them
  *
  * Copyright © 2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index f1a7b48..94e90db 100644 (file)
@@ -7,7 +7,7 @@
  *   --fix  Actually remove entries; without will only report.
  *
  * Copyright © 2005,2006 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index fabc257..723a6bf 100644 (file)
@@ -7,7 +7,7 @@
  * Templates etc are pulled from the local wiki database, not from the dump.
  *
  * Copyright © 2011 Platonides
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 978d44f..2b637cb 100644 (file)
@@ -99,9 +99,6 @@ $maintenance->finalSetup();
 // Some last includes
 require_once "$IP/includes/Setup.php";
 
-// Much much faster startup than creating a title object
-$wgTitle = null;
-
 // Do the work
 try {
        $maintenance->execute();
index 25a777c..02bfd60 100644 (file)
@@ -4,7 +4,7 @@
  * wrapper format for export or backup
  *
  * Copyright © 2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 73296b7..c6b3958 100644 (file)
@@ -5,7 +5,7 @@
  * We implement below the simple task of searching inside a dump.
  *
  * Copyright © 2011 Platonides
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index be0b463..dfd1959 100644 (file)
@@ -9,7 +9,7 @@
  * Dumps ASCII text to stdout; command-line.
  *
  * Copyright © 2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 5f0c5b7..784dc7a 100644 (file)
@@ -4,7 +4,7 @@
  * http://www.eekim.com/cgi-bin/wiki.pl?SisterSites
  *
  * Copyright © 2006 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 37c2a31..71895bd 100644 (file)
@@ -3,7 +3,7 @@
  * Script that postprocesses XML dumps from dumpBackup.php to add page text
  *
  * Copyright (C) 2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 8ae5a5a..b5dc1e3 100644 (file)
@@ -3,7 +3,7 @@
  * Fix double redirects.
  *
  * Copyright © 2011 Ilmari Karonen <nospam@vyznev.net>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 9c8354c..3b2374d 100644 (file)
@@ -65,7 +65,7 @@ class GenerateJsonI18n extends Maintenance {
                        $extensionStyle = false;
                        $langcode = $this->getOption( 'langcode' );
                        $messages = array( $langcode => $messages );
-               } else if ( $this->hasOption( 'langcode' ) ) {
+               } elseif ( $this->hasOption( 'langcode' ) ) {
                        $this->output( "Warning: --langcode option set but will not be used.\n" );
                }
 
@@ -125,7 +125,7 @@ $GLOBALS['wgHooks']['LocalisationCacheRecache'][] = function ( $cache, $code, &$
 
 PHP;
 
-               $jsondir = str_replace('\\', '/', $jsondir );
+               $jsondir = str_replace( '\\', '/', $jsondir );
                $shim = str_replace( '{{OUT}}', $jsondir, $shim );
                return $shim;
        }
index 1f47cf1..cec6a0e 100644 (file)
@@ -3,7 +3,7 @@
  * Import XML dump files into the current wiki.
  *
  * Copyright © 2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
@@ -56,7 +56,7 @@ Compressed XML files may be read directly:
 
 Note that for very large data sets, importDump.php may be slow; there are
 alternate methods which can be much faster for full site restoration:
-<http://www.mediawiki.org/wiki/Manual:Importing_XML_dumps>
+<https://www.mediawiki.org/wiki/Manual:Importing_XML_dumps>
 TEXT;
                $this->stderr = fopen( "php://stderr", "wt" );
                $this->addOption( 'report',
index dadc84a..c7df6c3 100644 (file)
@@ -42,6 +42,7 @@ if ( count( $args ) < 1 || isset( $options['help'] ) ) {
 
                        echo "\nUsing title '" . $title->getPrefixedText() . "'...";
                        if ( !$title->exists() || !isset( $options['nooverwrite'] ) ) {
+                               RequestContext::getMain()->setTitle( $title );
 
                                $text = file_get_contents( $filename );
                                $user = isset( $options['user'] ) ? $options['user'] : 'Maintenance script';
index d118747..44c117e 100644 (file)
@@ -70,10 +70,9 @@ class CommandLineInstaller extends Maintenance {
        }
 
        function execute() {
-               global $IP, $wgTitle;
+               global $IP;
                $siteName = isset( $this->mArgs[0] ) ? $this->mArgs[0] : "Don't care"; // Will not be set if used with --env-checks
                $adminName = isset( $this->mArgs[1] ) ? $this->mArgs[1] : null;
-               $wgTitle = Title::newFromText( 'Installer script' );
 
                $dbpassfile = $this->getOption( 'dbpassfile', false );
                if ( $dbpassfile !== false ) {
index 179fa5c..2ad9228 100644 (file)
@@ -6,7 +6,7 @@ annotationwiki|http://www.seedwiki.com/page.cfm?wikiid=368&doc=$1|0
 arxiv|http://www.arxiv.org/abs/$1|0
 c2find|http://c2.com/cgi/wiki?FindPage&value=$1|0
 cache|http://www.google.com/search?q=cache:$1|0
-commons|http://commons.wikimedia.org/wiki/$1|0
+commons|https://commons.wikimedia.org/wiki/$1|0
 corpknowpedia|http://corpknowpedia.org/wiki/index.php/$1|0
 dictionary|http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query=$1|0
 disinfopedia|http://www.disinfopedia.org/wiki.phtml?title=$1|0
@@ -24,7 +24,7 @@ gentoo-wiki|http://gentoo-wiki.com/$1|0
 google|http://www.google.com/search?q=$1|0
 googlegroups|http://groups.google.com/groups?q=$1|0
 hammondwiki|http://www.dairiki.org/HammondWiki/$1|0
-hewikisource|http://he.wikisource.org/wiki/$1|1
+hewikisource|https://he.wikisource.org/wiki/$1|1
 hrwiki|http://www.hrwiki.org/index.php/$1|0
 imdb|http://us.imdb.com/Title?$1|0
 jargonfile|http://sunir.org/apps/meta.pl?wiki=JargonFile&redirect=$1|0
@@ -37,14 +37,14 @@ lqwiki|http://wiki.linuxquestions.org/wiki/$1|0
 lugkr|http://lug-kr.sourceforge.net/cgi-bin/lugwiki.pl?$1|0
 mathsongswiki|http://SeedWiki.com/page.cfm?wikiid=237&doc=$1|0
 meatball|http://www.usemod.com/cgi-bin/mb.pl?$1|0
-mediawikiwiki|http://www.mediawiki.org/wiki/$1|0
+mediawikiwiki|https://www.mediawiki.org/wiki/$1|0
 mediazilla|https://bugzilla.wikimedia.org/$1|1
 memoryalpha|http://www.memory-alpha.org/en/index.php/$1|0
 metawiki|http://sunir.org/apps/meta.pl?$1|0
-metawikimedia|http://meta.wikimedia.org/wiki/$1|0
+metawikimedia|https://meta.wikimedia.org/wiki/$1|0
 moinmoin|http://purl.net/wiki/moin/$1|0
 mozillawiki|http://wiki.mozilla.org/index.php/$1|0
-mw|http://www.mediawiki.org/wiki/$1|0
+mw|https://www.mediawiki.org/wiki/$1|0
 oeis|http://www.research.att.com/cgi-bin/access.cgi/as/njas/sequences/eisA.cgi?Anum=$1|0
 openfacts|http://openfacts.berlios.de/index.phtml?title=$1|0
 openwiki|http://openwiki.com/?$1|0
@@ -77,22 +77,22 @@ webseitzwiki|http://webseitz.fluxent.com/wiki/$1|0
 why|http://clublet.com/c/c/why?$1|0
 wiki|http://c2.com/cgi/wiki?$1|0
 wikia|http://www.wikia.com/wiki/$1|0
-wikibooks|http://en.wikibooks.org/wiki/$1|1
+wikibooks|https://en.wikibooks.org/wiki/$1|1
 wikicities|http://www.wikia.com/wiki/$1|0
 wikif1|http://www.wikif1.org/$1|0
 wikihow|http://www.wikihow.com/$1|0
 wikinfo|http://www.wikinfo.org/index.php/$1|0
-# The following wik[it]* interwikis but wikitravel belong to the Wikimedia Family:
-wikimedia|http://wikimediafoundation.org/wiki/$1|0
-wikinews|http://en.wikinews.org/wiki/$1|1
-wikipedia|http://en.wikipedia.org/wiki/$1|1
-wikiquote|http://en.wikiquote.org/wiki/$1|1
-wikisource|http://wikisource.org/wiki/$1|1
-wikispecies|http://species.wikimedia.org/wiki/$1|1
-wikitravel|http://wikitravel.org/en/$1|0
-wikiversity|http://en.wikiversity.org/wiki/$1|1
-wikt|http://en.wiktionary.org/wiki/$1|1
-wiktionary|http://en.wiktionary.org/wiki/$1|1
+# The following wik[it]* interwikis belong to the Wikimedia Family:
+wikimedia|https://wikimediafoundation.org/wiki/$1|0
+wikinews|https://en.wikinews.org/wiki/$1|1
+wikipedia|https://en.wikipedia.org/wiki/$1|1
+wikiquote|https://en.wikiquote.org/wiki/$1|1
+wikisource|https://wikisource.org/wiki/$1|1
+wikispecies|https://species.wikimedia.org/wiki/$1|1
+wikiversity|https://en.wikiversity.org/wiki/$1|1
+wikivoyage|https://en.wikivoyage.org/wiki/$1|1
+wikt|https://en.wiktionary.org/wiki/$1|1
+wiktionary|https://en.wiktionary.org/wiki/$1|1
 wlug|http://www.wlug.org.nz/$1|0
 zwiki|http://zwiki.org/$1|0
 zzz wiki|http://wiki.zzz.ee/index.php/$1|0
index 370460a..1d8b540 100644 (file)
@@ -8,7 +8,7 @@ REPLACE INTO /*$wgDBprefix*/interwiki (iw_prefix,iw_url,iw_local) VALUES
 ('arxiv','http://www.arxiv.org/abs/$1',0),
 ('c2find','http://c2.com/cgi/wiki?FindPage&value=$1',0),
 ('cache','http://www.google.com/search?q=cache:$1',0),
-('commons','http://commons.wikimedia.org/wiki/$1',0),
+('commons','https://commons.wikimedia.org/wiki/$1',0),
 ('corpknowpedia','http://corpknowpedia.org/wiki/index.php/$1',0),
 ('dictionary','http://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query=$1',0),
 ('disinfopedia','http://www.disinfopedia.org/wiki.phtml?title=$1',0),
@@ -26,7 +26,7 @@ REPLACE INTO /*$wgDBprefix*/interwiki (iw_prefix,iw_url,iw_local) VALUES
 ('google','http://www.google.com/search?q=$1',0),
 ('googlegroups','http://groups.google.com/groups?q=$1',0),
 ('hammondwiki','http://www.dairiki.org/HammondWiki/$1',0),
-('hewikisource','http://he.wikisource.org/wiki/$1',1),
+('hewikisource','https://he.wikisource.org/wiki/$1',1),
 ('hrwiki','http://www.hrwiki.org/index.php/$1',0),
 ('imdb','http://us.imdb.com/Title?$1',0),
 ('jargonfile','http://sunir.org/apps/meta.pl?wiki=JargonFile&redirect=$1',0),
@@ -39,14 +39,14 @@ REPLACE INTO /*$wgDBprefix*/interwiki (iw_prefix,iw_url,iw_local) VALUES
 ('lugkr','http://lug-kr.sourceforge.net/cgi-bin/lugwiki.pl?$1',0),
 ('mathsongswiki','http://SeedWiki.com/page.cfm?wikiid=237&doc=$1',0),
 ('meatball','http://www.usemod.com/cgi-bin/mb.pl?$1',0),
-('mediawikiwiki','http://www.mediawiki.org/wiki/$1',0),
+('mediawikiwiki','https://www.mediawiki.org/wiki/$1',0),
 ('mediazilla','https://bugzilla.wikimedia.org/$1',1),
 ('memoryalpha','http://www.memory-alpha.org/en/index.php/$1',0),
 ('metawiki','http://sunir.org/apps/meta.pl?$1',0),
-('metawikimedia','http://meta.wikimedia.org/wiki/$1',0),
+('metawikimedia','https://meta.wikimedia.org/wiki/$1',0),
 ('moinmoin','http://purl.net/wiki/moin/$1',0),
 ('mozillawiki','http://wiki.mozilla.org/index.php/$1',0),
-('mw','http://www.mediawiki.org/wiki/$1',0),
+('mw','https://www.mediawiki.org/wiki/$1',0),
 ('oeis','http://www.research.att.com/cgi-bin/access.cgi/as/njas/sequences/eisA.cgi?Anum=$1',0),
 ('openfacts','http://openfacts.berlios.de/index.phtml?title=$1',0),
 ('openwiki','http://openwiki.com/?$1',0),
@@ -79,22 +79,22 @@ REPLACE INTO /*$wgDBprefix*/interwiki (iw_prefix,iw_url,iw_local) VALUES
 ('why','http://clublet.com/c/c/why?$1',0),
 ('wiki','http://c2.com/cgi/wiki?$1',0),
 ('wikia','http://www.wikia.com/wiki/$1',0),
-('wikibooks','http://en.wikibooks.org/wiki/$1',1),
+('wikibooks','https://en.wikibooks.org/wiki/$1',1),
 ('wikicities','http://www.wikia.com/wiki/$1',0),
 ('wikif1','http://www.wikif1.org/$1',0),
 ('wikihow','http://www.wikihow.com/$1',0),
 ('wikinfo','http://www.wikinfo.org/index.php/$1',0),
-# The following wik[it]* interwikis but wikitravel belong to the Wikimedia Family:
-('wikimedia','http://wikimediafoundation.org/wiki/$1',0),
-('wikinews','http://en.wikinews.org/wiki/$1',1),
-('wikipedia','http://en.wikipedia.org/wiki/$1',1),
-('wikiquote','http://en.wikiquote.org/wiki/$1',1),
-('wikisource','http://wikisource.org/wiki/$1',1),
-('wikispecies','http://species.wikimedia.org/wiki/$1',1),
-('wikitravel','http://wikitravel.org/en/$1',0),
-('wikiversity','http://en.wikiversity.org/wiki/$1',1),
-('wikt','http://en.wiktionary.org/wiki/$1',1),
-('wiktionary','http://en.wiktionary.org/wiki/$1',1),
+# The following wik[it]* interwikis belong to the Wikimedia Family:
+('wikimedia','https://wikimediafoundation.org/wiki/$1',0),
+('wikinews','https://en.wikinews.org/wiki/$1',1),
+('wikipedia','https://en.wikipedia.org/wiki/$1',1),
+('wikiquote','https://en.wikiquote.org/wiki/$1',1),
+('wikisource','https://wikisource.org/wiki/$1',1),
+('wikispecies','https://species.wikimedia.org/wiki/$1',1),
+('wikiversity','https://en.wikiversity.org/wiki/$1',1),
+('wikivoyage','https://en.wikivoyage.org/wiki/$1',1),
+('wikt','https://en.wiktionary.org/wiki/$1',1),
+('wiktionary','https://en.wiktionary.org/wiki/$1',1),
 ('wlug','http://www.wlug.org.nz/$1',0),
 ('zwiki','http://zwiki.org/$1',0),
 ('zzz wiki','http://wiki.zzz.ee/index.php/$1',0);
index aa138bd..adaf114 100644 (file)
@@ -10,7 +10,6 @@
                                        "mw.Message",
                                        "mw.loader",
                                        "mw.loader.store",
-                                       "mw.log",
                                        "mw.html",
                                        "mw.html.Cdata",
                                        "mw.html.Raw",
@@ -22,8 +21,6 @@
                                "classes": [
                                        "mw.Title",
                                        "mw.Uri",
-                                       "mw.inspect",
-                                       "mw.inspect.reports",
                                        "mw.notification",
                                        "mw.Notification_",
                                        "mw.user",
                                "classes": [
                                        "mw.Feedback"
                                ]
+                       },
+                       {
+                               "name": "Development",
+                               "classes": [
+                                       "mw.log",
+                                       "mw.inspect",
+                                       "mw.inspect.reports",
+                                       "mw.Debug"
+                               ]
                        }
                ]
        },
index 7326ed2..837c00c 100644 (file)
        "--external": "HTMLElement,HTMLDocument,Window",
        "--": [
                "./external.js",
-               "../../resources/mediawiki/mediawiki.js",
-               "../../resources/mediawiki/mediawiki.htmlform.js",
-               "../../resources/mediawiki/mediawiki.feedback.js",
-               "../../resources/mediawiki/mediawiki.log.js",
-               "../../resources/mediawiki/mediawiki.util.js",
-               "../../resources/mediawiki/mediawiki.Title.js",
-               "../../resources/mediawiki/mediawiki.Uri.js",
-               "../../resources/mediawiki/mediawiki.inspect.js",
-               "../../resources/mediawiki/mediawiki.jqueryMsg.js",
-               "../../resources/mediawiki/mediawiki.notify.js",
-               "../../resources/mediawiki/mediawiki.notification.js",
-               "../../resources/mediawiki/mediawiki.user.js",
+               "../../resources/mediawiki",
                "../../resources/mediawiki.action/mediawiki.action.edit.js",
                "../../resources/mediawiki.action/mediawiki.action.view.postEdit.js",
                "../../resources/mediawiki.page/mediawiki.page.startup.js",
index dbb70c1..0fd3242 100644 (file)
@@ -4,7 +4,7 @@
  * supplementary files.
  *
  * Copyright © 2004, 2008 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 142727c..9f73c80 100644 (file)
@@ -266,7 +266,9 @@ $wgIgnoredMessages = array(
        'createacct-benefit-icon3',
        'today-at',
        'redirect-text',
+       'helppage',
        'edithelppage',
+       'helplogin-url',
        'autocomment-prefix',
        'move-redirect-text',
        'interlanguage-link-title-langonly',
@@ -279,7 +281,6 @@ $wgOptionalMessages = array(
        'feed-rss',
        'unit-pixel',
        'userrights-irreversible-marker',
-       'tog-noconvertlink',
        'variantname-zh-hans',
        'variantname-zh-hant',
        'variantname-zh-cn',
index d97a4cd..6b5506e 100644 (file)
@@ -63,7 +63,6 @@ $wgMessageStructure = array(
                'tog-ccmeonemails',
                'tog-diffonly',
                'tog-showhiddencats',
-               'tog-noconvertlink',
                'tog-norollbackdiff',
                'tog-useeditwarning',
                'tog-prefershttps'
@@ -472,7 +471,7 @@ $wgMessageStructure = array(
                'userlogin-resetlink',
                'userlogin-resetpassword-link',
                'helplogin-url',
-               'userlogin-helplink',
+               'userlogin-helplink2',
                'userlogin-loggedin',
                'userlogin-createanother',
                'createacct-join',
@@ -559,6 +558,7 @@ $wgMessageStructure = array(
                'suspicious-userlogout',
                'createacct-another-realname-tip',
                'pt-login',
+               'pt-login-button',
                'pt-createaccount',
                'pt-userlogout',
        ),
@@ -592,6 +592,7 @@ $wgMessageStructure = array(
                'resetpass-abort-generic',
                'resetpass-expired',
                'resetpass-expired-soft',
+               'resetpass-validity-soft',
        ),
        'passwordreset' => array(
                'passwordreset',
@@ -870,7 +871,10 @@ $wgMessageStructure = array(
                'revdelete-show-file-submit',
                'revdelete-selected',
                'logdelete-selected',
-               'revdelete-text',
+               'revdelete-text-text',
+               'revdelete-text-file',
+               'logdelete-text',
+               'revdelete-text-others',
                'revdelete-confirm',
                'revdelete-suppress-text',
                'revdelete-legend',
@@ -1686,6 +1690,11 @@ $wgMessageStructure = array(
                'listredirects',
                'listredirects-summary',
        ),
+       'listduplicatedfiles' => array(
+               'listduplicatedfiles',
+               'listduplicatedfiles-summary',
+               'listduplicatedfiles-entry',
+       ),
        'unusedtemplates' => array(
                'unusedtemplates',
                'unusedtemplates-summary',
@@ -2254,6 +2263,7 @@ $wgMessageStructure = array(
                'sp-contributions-blocked-notice',
                'sp-contributions-blocked-notice-anon',
                'sp-contributions-search',
+               'sp-contributions-suppresslog',
                'sp-contributions-username',
                'sp-contributions-toponly',
                'sp-contributions-newonly',
@@ -4098,6 +4108,7 @@ future releases. Also note that since each list value is wrapped in a unique
        'filedelete' => 'File deletion',
        'mimesearch' => 'MIME search',
        'unwatchedpages' => 'Unwatched pages',
+       'listduplicatedfiles' => 'List duplicated files special page',
        'listredirects' => 'List redirects',
        'unusedtemplates' => 'Unused templates',
        'randompage' => 'Random page',
index 6a538e6..4a853b0 100644 (file)
@@ -24,7 +24,7 @@
  * @author Antoine Musso <hashar at free dot fr>
  *
  * Output is posted from time to time on:
- * http://www.mediawiki.org/wiki/Localisation_statistics
+ * https://www.mediawiki.org/wiki/Localisation_statistics
  */
 $optionsWithArgs = array( 'output' );
 
index ff02468..f698508 100644 (file)
@@ -3,7 +3,7 @@
  * Check for articles to fix after adding/deleting namespaces
  *
  * Copyright © 2005-2007 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
@@ -50,10 +50,7 @@ class NamespaceConflictChecker extends Maintenance {
        }
 
        public function execute() {
-               global $wgTitle;
-
                $this->db = wfGetDB( DB_MASTER );
-               $wgTitle = Title::newFromText( 'Namespace title conflict cleanup script' );
 
                $fix = $this->hasOption( 'fix' );
                $suffix = $this->getOption( 'suffix', '' );
diff --git a/maintenance/oracle/archives/patch-user_password_expire.sql b/maintenance/oracle/archives/patch-user_password_expire.sql
new file mode 100644 (file)
index 0000000..8e752da
--- /dev/null
@@ -0,0 +1,3 @@
+define mw_prefix='{$wgDBprefix}';
+
+ALTER TABLE &mw_prefix.mwuser ADD user_password_expires TIMESTAMP(6) WITH TIME ZONE NULL DEFAULT NULL;
index b4d255a..b0f91a0 100644 (file)
@@ -6,7 +6,7 @@
  * Man this is depressing.
  *
  * Copyright © 2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
@@ -47,8 +47,6 @@ class Orphans extends Maintenance {
        }
 
        public function execute() {
-               global $wgTitle;
-               $wgTitle = Title::newFromText( 'Orphan revision cleanup script' );
                $this->checkOrphans( $this->hasOption( 'fix' ) );
                $this->checkSeparation( $this->hasOption( 'fix' ) );
                # Does not work yet, do not use
index e482141..266cb3b 100644 (file)
@@ -12,18 +12,23 @@ SET client_min_messages = 'ERROR';
 DROP SEQUENCE IF EXISTS user_user_id_seq CASCADE;
 DROP SEQUENCE IF EXISTS page_page_id_seq CASCADE;
 DROP SEQUENCE IF EXISTS revision_rev_id_seq CASCADE;
-DROP SEQUENCE IF EXISTS page_restrictions_id_seq CASCADE;
+DROP SEQUENCE IF EXISTS text_old_id_seq CASCADE;
+DROP SEQUENCE IF EXISTS page_restrictions_pr_id_seq CASCADE;
 DROP SEQUENCE IF EXISTS ipblocks_ipb_id_seq CASCADE;
+DROP SEQUENCE IF EXISTS filearchive_fa_id_seq CASCADE;
+DROP SEQUENCE IF EXISTS uploadstash_us_id_seq CASCADE;
 DROP SEQUENCE IF EXISTS recentchanges_rc_id_seq CASCADE;
 DROP SEQUENCE IF EXISTS logging_log_id_seq CASCADE;
 DROP SEQUENCE IF EXISTS job_job_id_seq CASCADE;
 DROP SEQUENCE IF EXISTS category_cat_id_seq CASCADE;
 DROP SEQUENCE IF EXISTS archive_ar_id_seq CASCADE;
 DROP SEQUENCE IF EXISTS externallinks_el_id_seq CASCADE;
+DROP SEQUENCE IF EXISTS sites_site_id_seq CASCADE;
 DROP FUNCTION IF EXISTS page_deleted() CASCADE;
 DROP FUNCTION IF EXISTS ts2_page_title() CASCADE;
 DROP FUNCTION IF EXISTS ts2_page_text() CASCADE;
 DROP FUNCTION IF EXISTS add_interwiki(TEXT,INT,SMALLINT) CASCADE;
+DROP TYPE IF EXISTS media_type CASCADE;
 
 CREATE SEQUENCE user_user_id_seq MINVALUE 0 START WITH 0;
 CREATE TABLE mwuser ( -- replace reserved word 'user'
index 0dc19e2..683de45 100644 (file)
@@ -4,7 +4,7 @@
  * It may be useful for getting preprocessor statistics or filling the
  * preprocessor cache.
  *
- * Copyright © 2011 Platonides - http://www.mediawiki.org/
+ * Copyright © 2011 Platonides - https://www.mediawiki.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
index 2f89520..85a125f 100644 (file)
@@ -51,7 +51,9 @@ class PurgeList extends Maintenance {
                $this->output( "Done!\n" );
        }
 
-       /** Purge URL coming from stdin */
+       /**
+        * Purge URL coming from stdin
+        */
        private function doPurge() {
                $stdin = $this->getStdin();
                $urls = array();
@@ -78,7 +80,9 @@ class PurgeList extends Maintenance {
                $this->sendPurgeRequest( $urls );
        }
 
-       /** Purge a namespace or all pages */
+       /**
+        * Purge a namespace or all pages
+        */
        private function purgeNamespace( $namespace = false ) {
                $dbr = wfGetDB( DB_SLAVE );
                $startId = 0;
index 12ed9fa..6ce54b9 100644 (file)
@@ -49,7 +49,7 @@ class RebuildFileCache extends Maintenance {
 
        public function execute() {
                global $wgUseFileCache, $wgReadOnly, $wgContentNamespaces, $wgRequestTime;
-               global $wgTitle, $wgOut;
+               global $wgOut;
                if ( !$wgUseFileCache ) {
                        $this->error( "Nothing to do -- \$wgUseFileCache is disabled.", true );
                }
@@ -104,22 +104,22 @@ class RebuildFileCache extends Maintenance {
                                $rebuilt = false;
                                $wgRequestTime = microtime( true ); # bug 22852
 
-                               $wgTitle = Title::makeTitleSafe( $row->page_namespace, $row->page_title );
-                               if ( null == $wgTitle ) {
+                               $title = Title::makeTitleSafe( $row->page_namespace, $row->page_title );
+                               if ( null == $title ) {
                                        $this->output( "Page {$row->page_id} has bad title\n" );
                                        continue; // broken title?
                                }
 
                                $context = new RequestContext;
-                               $context->setTitle( $wgTitle );
-                               $article = Article::newFromTitle( $wgTitle, $context );
+                               $context->setTitle( $title );
+                               $article = Article::newFromTitle( $title, $context );
                                $context->setWikiPage( $article->getPage() );
 
                                $wgOut = $context->getOutput(); // set display title
 
                                // If the article is cacheable, then load it
                                if ( $article->isFileCacheable() ) {
-                                       $cache = HTMLFileCache::newFromTitle( $wgTitle, 'view' );
+                                       $cache = HTMLFileCache::newFromTitle( $title, 'view' );
                                        if ( $cache->isCacheGood() ) {
                                                if ( $overwrite ) {
                                                        $rebuilt = true;
@@ -151,11 +151,6 @@ class RebuildFileCache extends Maintenance {
                        $blockEnd += $this->mBatchSize;
                }
                $this->output( "Done!\n" );
-
-               // Remove these to be safe
-               if ( isset( $wgTitle ) ) {
-                       unset( $wgTitle );
-               }
        }
 }
 
index ed67ccd..8b0b057 100644 (file)
@@ -8,7 +8,7 @@
  *              add them only.
  *
  * Copyright © 2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index c651f72..722db26 100644 (file)
@@ -50,8 +50,6 @@ class RebuildTextIndex extends Maintenance {
        }
 
        public function execute() {
-               global $wgTitle;
-
                // Shouldn't be needed for Postgres
                $this->db = wfGetDB( DB_MASTER );
                if ( $this->db->getType() == 'postgres' ) {
@@ -68,8 +66,6 @@ class RebuildTextIndex extends Maintenance {
                        }
                }
 
-               $wgTitle = Title::newFromText( "Rebuild text index script" );
-
                if ( $this->db->getType() == 'mysql' ) {
                        $this->dropMysqlTextIndex();
                        $this->populateSearchIndex();
index 9f73e49..2b6680d 100644 (file)
@@ -5,7 +5,7 @@
  * Usage: php refreshImageMetadata.php
  *
  * Copyright © 2011 Brian Wolff
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 0cde28c..eab5fe7 100644 (file)
@@ -7,7 +7,7 @@
  * Templates etc are pulled from the local wiki database, not from the dump.
  *
  * Copyright (C) 2006 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 7c896d2..f7d5fc0 100644 (file)
@@ -47,8 +47,6 @@ class RunJobs extends Maintenance {
        }
 
        public function execute() {
-               global $wgTitle;
-
                if ( wfReadOnly() ) {
                        $this->error( "Unable to run jobs; the wiki is in read-only mode.", 1 ); // die
                }
@@ -69,7 +67,6 @@ class RunJobs extends Maintenance {
                $maxJobs = $this->getOption( 'maxjobs', false );
                $maxTime = $this->getOption( 'maxtime', false );
                $startTime = time();
-               $wgTitle = Title::newFromText( 'RunJobs.php' );
 
                $group = JobQueueGroup::singleton();
                // Handle any required periodic queue maintenance
index 9168d6f..854910f 100644 (file)
@@ -46,16 +46,6 @@ class ShowCacheStats extends Maintenance {
                if ( get_class( $wgMemc ) == 'EmptyBagOStuff' ) {
                        $this->error( "You are running EmptyBagOStuff, I can not provide any statistics.", true );
                }
-               $session = intval( $wgMemc->get( wfMemcKey( 'stats', 'request_with_session' ) ) );
-               $noSession = intval( $wgMemc->get( wfMemcKey( 'stats', 'request_without_session' ) ) );
-               $total = $session + $noSession;
-               if ( $total == 0 ) {
-                       $this->error( "You either have no stats or the cache isn't running. Aborting.", true );
-               }
-               $this->output( "Requests\n" );
-               $this->output( sprintf( "with session:      %-10d %6.2f%%\n", $session, $session / $total * 100 ) );
-               $this->output( sprintf( "without session:   %-10d %6.2f%%\n", $noSession, $noSession / $total * 100 ) );
-               $this->output( sprintf( "total:             %-10d %6.2f%%\n", $total, 100 ) );
 
                $this->output( "\nParser cache\n" );
                $hits = intval( $wgMemc->get( wfMemcKey( 'stats', 'pcache_hit' ) ) );
index f0be709..aade17e 100644 (file)
@@ -221,6 +221,9 @@ class SyncFileBackend extends Maintenance {
                        return $status;
                }
 
+               $src->preloadFileStat( array( 'srcs' => $sPaths, 'latest' => 1 ) );
+               $dst->preloadFileStat( array( 'srcs' => $dPaths, 'latest' => 1 ) );
+
                $ops = array();
                $fsFiles = array();
                foreach ( $sPaths as $i => $sPath ) {
index 85364ee..8c1ad17 100644 (file)
@@ -83,7 +83,7 @@ class UpdateMediaWiki extends Maintenance {
        }
 
        function execute() {
-               global $wgVersion, $wgTitle, $wgLang, $wgAllowSchemaUpdates;
+               global $wgVersion, $wgLang, $wgAllowSchemaUpdates;
 
                if ( !$wgAllowSchemaUpdates && !( $this->hasOption( 'force' ) || $this->hasOption( 'schema' ) || $this->hasOption( 'noschema' ) ) ) {
                        $this->error( "Do not run update.php on this wiki. If you're seeing this you should\n"
@@ -106,7 +106,6 @@ class UpdateMediaWiki extends Maintenance {
                }
 
                $wgLang = Language::factory( 'en' );
-               $wgTitle = Title::newFromText( "MediaWiki database updater" );
 
                define( 'MW_UPDATER', true );
 
index c5ade2d..12c4a2c 100644 (file)
@@ -40,16 +40,13 @@ class UpdateSpecialPages extends Maintenance {
        }
 
        public function execute() {
-               global $IP, $wgQueryPages, $wgQueryCacheLimit, $wgDisableQueryPageUpdate;
+               global $wgQueryCacheLimit, $wgDisableQueryPageUpdate;
 
                $dbw = wfGetDB( DB_MASTER );
 
                $this->doSpecialPageCacheUpdates( $dbw );
 
-               // This is needed to initialise $wgQueryPages
-               require_once "$IP/includes/QueryPage.php";
-
-               foreach ( $wgQueryPages as $page ) {
+               foreach ( QueryPage::getPages() as $page ) {
                        list( $class, $special ) = $page;
                        $limit = isset( $page[2] ) ? $page[2] : null;
 
index 44a1aab..f20b64e 100644 (file)
@@ -3,7 +3,7 @@
  * Helper class for update.php.
  *
  * Copyright © 2005 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 7c13ea6..49b8fda 100644 (file)
@@ -759,7 +759,7 @@ return array(
        ),
        'mediawiki.debug' => array(
                'scripts' => 'resources/mediawiki/mediawiki.debug.js',
-               'styles' => 'resources/mediawiki/mediawiki.debug.css',
+               'styles' => 'resources/mediawiki/mediawiki.debug.less',
                'dependencies' => 'jquery.footHovzer',
                'position' => 'bottom',
        ),
@@ -1249,9 +1249,16 @@ return array(
        'mediawiki.special.userlogin.signup.js' => array(
                'scripts' => 'resources/mediawiki.special/mediawiki.special.userlogin.signup.js',
                'messages' => array(
+                       'createacct-error',
                        'createacct-emailrequired',
+                       'noname',
+                       'userexists',
+               ),
+               'dependencies' => array(
+                       'mediawiki.api',
+                       'mediawiki.jqueryMsg',
+                       'jquery.throttle-debounce',
                ),
-               'dependencies' => 'mediawiki.jqueryMsg',
        ),
        'mediawiki.special.javaScriptTest' => array(
                'scripts' => 'resources/mediawiki.special/mediawiki.special.javaScriptTest.js',
@@ -1369,6 +1376,10 @@ return array(
                'styles' => array(
                        'resources/oojs-ui/oojs-ui.svg.css',
                ),
+               'skinStyles' => array(
+                       'default' => 'resources/oojs-ui/oojs-ui-apex.css',
+                       'minerva' => array(),
+               ),
                'messages' => array(
                        'ooui-dialog-action-close',
                        'ooui-outline-control-move-down',
index 49a932a..a473f61 100644 (file)
@@ -146,4 +146,4 @@ $.fn.autoEllipsis = function ( options ) {
        } );
 };
 
-}( jQuery ) );
\ No newline at end of file
+}( jQuery ) );
index a8c0b06..b398fdd 100644 (file)
                                $el.attr( 'maxlength', elLimit );
                        }
 
-
                        // Safe base value, used to determine the path between the previous state
                        // and the state that triggered the event handler below - and enforce the
                        // limit approppiately (e.g. don't chop from the end if text was inserted
index 4c6a7ac..6689b7c 100644 (file)
@@ -20,7 +20,7 @@
                 *
                 * @param {Object} nav An object with atleast a 'userAgent' and 'platform' key.
                 * Defaults to the global Navigator object.
-                * @returns {Object} The resulting client object will be in the following format:
+                * @return {Object} The resulting client object will be in the following format:
                 *  {
                 *   'name': 'firefox',
                 *   'layout': 'gecko',
                 * @param {boolean} [exactMatchOnly=false] Only return true if the browser is matched, otherwise
                 * returns true if the browser is not found.
                 *
-                * @returns {boolean} The current browser is in the support map
+                * @return {boolean} The current browser is in the support map
                 */
                test: function ( map, profile, exactMatchOnly ) {
                        /*jshint evil: true */
index 8bc45c9..04f8047 100644 (file)
@@ -14,7 +14,7 @@
                var color;
 
                do {
-                       color = $.curCSS( elem, attr );
+                       color = $.css( elem, attr );
 
                        // Keep going until we find an element that has color, or we hit the body
                        if ( color !== '' && color !== 'transparent' || $.nodeName( elem, 'body' ) ) {
                'outlineColor'
        ], function ( i, attr ) {
                $.fx.step[attr] = function ( fx ) {
-                       if ( fx.state === 0 ) {
+                       if ( !fx.colorInit ) {
                                fx.start = getColor( fx.elem, attr );
                                fx.end = $.colorUtil.getRGB( fx.end );
+                               fx.colorInit = true;
                        }
 
                        fx.elem.style[attr] = 'rgb(' + [
index 9c6f9ec..37bf176 100644 (file)
@@ -12,7 +12,7 @@
                // By Blair Mitchelmore
                // http://jquery.offput.ca/highlightFade/
                // Parse strings looking for color tuples [255,255,255]
-               getRGB : function ( color ) {
+               getRGB: function ( color ) {
                        /*jshint boss:true */
                        var result;
 
@@ -28,7 +28,7 @@
 
                        // Look for rgb(num%,num%,num%)
                        if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color)) {
-                               return [parseFloat(result[1],10)*2.55, parseFloat(result[2],10)*2.55, parseFloat(result[3])*2.55];
+                               return [parseFloat(result[1],10) * 2.55, parseFloat(result[2],10) * 2.55, parseFloat(result[3]) * 2.55];
                        }
 
                        // Look for #a0b1c2
@@ -38,7 +38,7 @@
 
                        // Look for #fff
                        if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color)) {
-                               return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];
+                               return [parseInt(result[1] + result[1],16), parseInt(result[2] + result[2],16), parseInt(result[3] + result[3],16)];
                        }
 
                        // Look for rgba(0, 0, 0, 0) == transparent in Safari 3
                                        if ( t > 1 ) {
                                                t -= 1;
                                        }
-                                       if ( t < 1/6 ) {
+                                       if ( t < 1 / 6 ) {
                                                return p + (q - p) * 6 * t;
                                        }
-                                       if ( t < 1/2 ) {
+                                       if ( t < 1 / 2 ) {
                                                return q;
                                        }
-                                       if ( t < 2/3 ) {
-                                               return p + (q - p) * (2/3 - t) * 6;
+                                       if ( t < 2 / 3 ) {
+                                               return p + (q - p) * (2 / 3 - t) * 6;
                                        }
                                        return p;
                                };
 
                                q = l < 0.5 ? l * (1 + s) : l + s - l * s;
                                p = 2 * l - q;
-                               r = hue2rgb( p, q, h + 1/3 );
+                               r = hue2rgb( p, q, h + 1 / 3 );
                                g = hue2rgb( p, q, h );
-                               b = hue2rgb( p, q, h - 1/3 );
+                               b = hue2rgb( p, q, h - 1 / 3 );
                        }
 
                        return [r * 255, g * 255, b * 255];
                getColorBrightness: function ( currentColor, mod ) {
                        var rgbArr = $.colorUtil.getRGB( currentColor ),
                                hslArr = $.colorUtil.rgbToHsl(rgbArr[0], rgbArr[1], rgbArr[2] );
-                       rgbArr = $.colorUtil.hslToRgb(hslArr[0], hslArr[1], hslArr[2]+mod);
+                       rgbArr = $.colorUtil.hslToRgb(hslArr[0], hslArr[1], hslArr[2] + mod);
 
                        return 'rgb(' +
                                [parseInt( rgbArr[0], 10), parseInt( rgbArr[1], 10 ), parseInt( rgbArr[2], 10 )].join( ',' ) +
index 70bfc4e..eb29db9 100644 (file)
@@ -16,8 +16,7 @@
  *
  * Uses window.devicePixelRatio if available, or CSS media queries on IE.
  *
- * @method
- * @returns {number} Device pixel ratio
+ * @return {number} Device pixel ratio
  */
 $.devicePixelRatio = function () {
        if ( window.devicePixelRatio !== undefined ) {
@@ -51,8 +50,7 @@ $.devicePixelRatio = function () {
  * Implement responsive images based on srcset attributes, if browser has no
  * native srcset support.
  *
- * @method
- * @returns {jQuery} This selection
+ * @return {jQuery} This selection
  */
 $.fn.hidpi = function () {
        var $target = this,
@@ -81,11 +79,11 @@ $.fn.hidpi = function () {
 /**
  * Match a srcset entry for the given device pixel ratio
  *
+ * Exposed for testing.
+ *
  * @param {number} devicePixelRatio
  * @param {string} srcset
  * @return {mixed} null or the matching src string
- *
- * Exposed for testing.
  */
 $.matchSrcSet = function ( devicePixelRatio, srcset ) {
        var candidates,
index d9a2b19..8c8fb56 100644 (file)
@@ -9,7 +9,7 @@
  *
  * @param {Object} options
  * @param {string} key
- * @returns {string} Localized message
+ * @return {string} Localized message
  */
 function msg( options, key ) {
        var args = options.params[key] || [];
@@ -146,12 +146,12 @@ $.fn.localize = function ( options ) {
        } );
 
        // HTML, Text for elements which cannot have children e.g. OPTION
-       $target.find( '[data-msg-text]' ).each( function() {
+       $target.find( '[data-msg-text]' ).each( function () {
                var $el = $( this );
                $el.text( msg( options, $el.attr( 'data-msg-text' ) ) );
        } );
 
-       $target.find( '[data-msg-html]' ).each( function() {
+       $target.find( '[data-msg-html]' ).each( function () {
                var $el = $( this );
                $el.html( msg( options, $el.attr( 'data-msg-html' ) ) );
        } );
index 60c0afc..01fde4c 100644 (file)
@@ -11,7 +11,7 @@
  * @author Krinkle, 2011-2012
  *
  * Dual license:
- * @license CC-BY 3.0 <http://creativecommons.org/licenses/by/3.0>
+ * @license CC BY 3.0 <http://creativecommons.org/licenses/by/3.0>
  * @license GPL2 <http://www.gnu.org/licenses/old-licenses/gpl-2.0.html>
  */
 ( function ( $, mw ) {
index de39978..03c1c85 100644 (file)
                                                // Check for properties in B but not in A
                                                // This is about 15% faster (tested in Safari 5 and Firefox 3.6)
                                                // ...than incrementing a count variable in the above and below loops
-                                               // See also: http://www.mediawiki.org/wiki/ResourceLoader/Default_modules/compareObject_test#Results
+                                               // See also: https://www.mediawiki.org/wiki/ResourceLoader/Default_modules/compareObject_test#Results
                                                for ( prop in objectB ) {
                                                        if ( !( prop in objectA ) ) {
                                                                return false;
index 5020b37..6f7ada3 100644 (file)
@@ -13,7 +13,7 @@
  * @version 2.1.0
  * @license MIT
  */
-(function($) {
+(function ($) {
 
        var isInputSupported = 'placeholder' in document.createElement('input'),
                isTextareaSupported = 'placeholder' in document.createElement('textarea'),
 
        if (isInputSupported && isTextareaSupported) {
 
-               placeholder = prototype.placeholder = function(text) {
+               placeholder = prototype.placeholder = function (text) {
                        var hasArgs = arguments.length;
 
-                       if( hasArgs ) {
+                       if (hasArgs) {
                                changePlaceholder.call(this, text);
                        }
 
 
        } else {
 
-               placeholder = prototype.placeholder = function(text) {
+               placeholder = prototype.placeholder = function (text) {
                        var $this = this,
                                hasArgs = arguments.length;
 
-                       if(hasArgs) {
+                       if (hasArgs) {
                                changePlaceholder.call(this, text);
                        }
 
-
                        $this
                                .filter((isInputSupported ? 'textarea' : ':input') + '[placeholder]')
-                               .filter(function() {
+                               .filter(function () {
                                        return !$(this).data('placeholder-enabled');
                                })
                                .bind({
@@ -66,7 +65,7 @@
                placeholder.textarea = isTextareaSupported;
 
                hooks = {
-                       'get': function(element) {
+                       'get': function (element) {
                                var $element = $(element),
                                        $passwordInput = $element.data('placeholder-password');
                                if ($passwordInput) {
@@ -75,7 +74,7 @@
 
                                return $element.data('placeholder-enabled') && $element.hasClass('placeholder') ? '' : element.value;
                        },
-                       'set': function(element, value) {
+                       'set': function (element, value) {
                                var $element = $(element),
                                        $passwordInput = $element.data('placeholder-password');
                                if ($passwordInput) {
@@ -95,7 +94,7 @@
                                                setPlaceholder.call(element);
                                        }
                                } else if ($element.hasClass('placeholder')) {
-                                       if(!clearPlaceholder.call(element, true, value)) {
+                                       if (!clearPlaceholder.call(element, true, value)) {
                                                element.value = value;
                                        }
                                } else {
                        propHooks.value = hooks;
                }
 
-               $(function() {
+               $(function () {
                        // Look for forms
-                       $(document).delegate('form', 'submit.placeholder', function() {
+                       $(document).delegate('form', 'submit.placeholder', function () {
                                // Clear the placeholder values so they don't get submitted
                                var $inputs = $('.placeholder', this).each(clearPlaceholder);
-                               setTimeout(function() {
+                               setTimeout(function () {
                                        $inputs.each(setPlaceholder);
                                }, 10);
                        });
                });
 
                // Clear placeholder values upon page reload
-               $(window).bind('beforeunload.placeholder', function() {
-                       $('.placeholder').each(function() {
+               $(window).bind('beforeunload.placeholder', function () {
+                       $('.placeholder').each(function () {
                                this.value = '';
                        });
                });
                // Return an object of element attributes
                var newAttrs = {},
                        rinlinejQuery = /^jQuery\d+$/;
-               $.each(elem.attributes, function(i, attr) {
+               $.each(elem.attributes, function (i, attr) {
                        if (attr.specified && !rinlinejQuery.test(attr.name)) {
                                newAttrs[attr.name] = attr.value;
                        }
                        } else {
                                input.value = '';
                                $input.removeClass('placeholder');
-                               if(input === safeActiveElement()) {
+                               if (input === safeActiveElement()) {
                                        input.select();
                                }
                        }
        function changePlaceholder(text) {
                var hasArgs = arguments.length,
                        $input = this;
-               if(hasArgs) {
-                       if($input.attr('placeholder') !== text) {
+               if (hasArgs) {
+                       if ($input.attr('placeholder') !== text) {
                                $input.prop('placeholder', text);
-                               if($input.hasClass('placeholder')) {
+                               if ($input.hasClass('placeholder')) {
                                        $input[0].value = text;
                                }
                        }
index 20e6678..86fcaea 100644 (file)
@@ -79,7 +79,6 @@
                isEmptyObject: $.isEmptyObject
        };
 
-
        /**
         * CompletenessTest
         * @constructor
index f967a1d..f9a225f 100644 (file)
@@ -142,7 +142,7 @@ $.suggestions = {
                        i, expWidth, matchedText, maxWidth, text;
 
                // Validate creation using fallback values
-               switch( property ) {
+               switch ( property ) {
                        case 'fetch':
                        case 'cancel':
                        case 'special':
@@ -281,7 +281,7 @@ $.suggestions = {
                                                }
                                                // Apply new width for results box, if any
                                                if ( expWidth > context.data.$container.width() ) {
-                                                       maxWidth = context.config.maxExpandFactor*context.data.$textbox.width();
+                                                       maxWidth = context.config.maxExpandFactor * context.data.$textbox.width();
                                                        context.data.$container.width( Math.min( expWidth, maxWidth ) );
                                                }
                                                // autoEllipse the results. Has to be done after changing the width
index f9ee268..af0d897 100644 (file)
@@ -68,8 +68,6 @@
  */
 
 ( function ( $, mw ) {
-       /*jshint onevar:false */
-
        /* Local scope */
 
        var ts,
@@ -78,8 +76,9 @@
        /* Parser utility functions */
 
        function getParserById( name ) {
-               var len = parsers.length;
-               for ( var i = 0; i < len; i++ ) {
+               var i,
+                       len = parsers.length;
+               for ( i = 0; i < len; i++ ) {
                        if ( parsers[i].id.toLowerCase() === name.toLowerCase() ) {
                                return parsers[i];
                        }
        }
 
        function appendToTable( table, cache ) {
-               var row = cache.row,
+               var i, pos, l, j,
+                       row = cache.row,
                        normalized = cache.normalized,
                        totalRows = normalized.length,
                        checkCell = ( normalized[0].length - 1 ),
                        fragment = document.createDocumentFragment();
 
-               for ( var i = 0; i < totalRows; i++ ) {
-                       var pos = normalized[i][checkCell];
+               for ( i = 0; i < totalRows; i++ ) {
+                       pos = normalized[i][checkCell];
 
-                       var l = row[pos].length;
+                       l = row[pos].length;
 
-                       for ( var j = 0; j < l; j++ ) {
+                       for ( j = 0; j < l; j++ ) {
                                fragment.appendChild( row[pos][j] );
                        }
 
         * @param $table jQuery object for a <table>
         */
        function emulateTHeadAndFoot( $table ) {
-               var $rows = $table.find( '> tbody > tr' );
-               if( !$table.get(0).tHead ) {
-                       var $thead = $( '<thead>' );
+               var $thead, $tfoot, i, len,
+                       $rows = $table.find( '> tbody > tr' );
+               if ( !$table.get(0).tHead ) {
+                       $thead = $( '<thead>' );
                        $rows.each( function () {
-                               if ( $(this).children( 'td' ).length > 0 ) {
+                               if ( $(this).children( 'td' ).length ) {
                                        // This row contains a <td>, so it's not a header row
                                        // Stop here
                                        return false;
                        } );
                        $table.find(' > tbody:first').before( $thead );
                }
-               if( !$table.get(0).tFoot ) {
-                       var $tfoot = $( '<tfoot>' );
-                       var len = $rows.length;
-                       for ( var i = len-1; i >= 0; i-- ) {
-                               if( $( $rows[i] ).children( 'td' ).length > 0 ){
+               if ( !$table.get(0).tFoot ) {
+                       $tfoot = $( '<tfoot>' );
+                       len = $rows.length;
+                       for ( i = len - 1; i >= 0; i-- ) {
+                               if ( $( $rows[i] ).children( 'td' ).length ){
                                        break;
                                }
                                $tfoot.prepend( $( $rows[i] ));
                return false;
        }
 
-
        function uniqueElements( array ) {
                var uniques = [];
                $.each( array, function( index, elem ) {
        }
 
        function multisort( table, sortList, cache ) {
-               var sortFn = [];
-               var len = sortList.length;
-               for ( var i = 0; i < len; i++ ) {
+               var i,
+                       sortFn = [],
+                       len = sortList.length;
+               for ( i = 0; i < len; i++ ) {
                        sortFn[i] = ( sortList[i][1] ) ? sortTextDesc : sortText;
                }
                cache.normalized.sort( function ( array1, array2 ) {
-                       var col, ret;
-                       for ( var i = 0; i < len; i++ ) {
+                       var i, col, ret;
+                       for ( i = 0; i < len; i++ ) {
                                col = sortList[i][0];
                                ret = sortFn[i].call( this, array1[col], array2[col] );
                                if ( ret !== 0 ) {
        }
 
        function buildTransformTable() {
-               var digits = '0123456789,.'.split( '' );
-               var separatorTransformTable = mw.config.get( 'wgSeparatorTransformTable' );
-               var digitTransformTable = mw.config.get( 'wgDigitTransformTable' );
+               var ascii, localised, i, digitClass,
+                       digits = '0123456789,.'.split( '' ),
+                       separatorTransformTable = mw.config.get( 'wgSeparatorTransformTable' ),
+                       digitTransformTable = mw.config.get( 'wgDigitTransformTable' );
+
                if ( separatorTransformTable === null || ( separatorTransformTable[0] === '' && digitTransformTable[2] === '' ) ) {
                        ts.transformTable = false;
                } else {
                        ts.transformTable = {};
 
                        // Unpack the transform table
-                       var ascii = separatorTransformTable[0].split( '\t' ).concat( digitTransformTable[0].split( '\t' ) );
-                       var localised = separatorTransformTable[1].split( '\t' ).concat( digitTransformTable[1].split( '\t' ) );
+                       ascii = separatorTransformTable[0].split( '\t' ).concat( digitTransformTable[0].split( '\t' ) );
+                       localised = separatorTransformTable[1].split( '\t' ).concat( digitTransformTable[1].split( '\t' ) );
 
                        // Construct regex for number identification
-                       for ( var i = 0; i < ascii.length; i++ ) {
+                       for ( i = 0; i < ascii.length; i++ ) {
                                ts.transformTable[localised[i]] = ascii[i];
                                digits.push( $.escapeRE( localised[i] ) );
                        }
                }
-               var digitClass = '[' + digits.join( '', digits ) + ']';
+               digitClass = '[' + digits.join( '', digits ) + ']';
 
                // We allow a trailing percent sign, which we just strip. This works fine
                // if percents and regular numbers aren't being mixed.
        }
 
        function buildDateTable() {
-               var regex = [];
+               var i, name,
+                       regex = [];
+
                ts.monthNames = {};
 
-               for ( var i = 0; i < 12; i++ ) {
-                       var name = mw.language.months.names[i].toLowerCase();
+               for ( i = 0; i < 12; i++ ) {
+                       name = mw.language.months.names[i].toLowerCase();
                        ts.monthNames[name] = i + 1;
                        regex.push( $.escapeRE( name ) );
                        name = mw.language.months.genitive[i].toLowerCase();
         * @param $table jQuery object for a <table>
         */
        function explodeRowspans( $table ) {
-               var rowspanCells = $table.find( '> tbody > tr > [rowspan]' ).get();
+               var spanningRealCellIndex, rowSpan, colSpan,
+                       cell, i, $tds, $clone, $nextRows,
+                       rowspanCells = $table.find( '> tbody > tr > [rowspan]' ).get();
 
                // Short circuit
                if ( !rowspanCells.length ) {
                // account colspans. We also cache the rowIndex to avoid having to take
                // cell.parentNode.rowIndex in the sorting function below.
                $table.find( '> tbody > tr' ).each( function () {
-                       var col = 0;
-                       var l = this.cells.length;
-                       for ( var i = 0; i < l; i++ ) {
+                       var i,
+                               col = 0,
+                               l = this.cells.length;
+                       for ( i = 0; i < l; i++ ) {
                                this.cells[i].realCellIndex = col;
                                this.cells[i].realRowIndex = this.rowIndex;
                                col += this.cells[i].colSpan;
                }
                resortCells();
 
-               var spanningRealCellIndex, rowSpan, colSpan;
                function filterfunc() {
                        return this.realCellIndex >= spanningRealCellIndex;
                }
                                resortCells();
                        }
 
-                       var cell = rowspanCells.shift();
+                       cell = rowspanCells.shift();
                        rowSpan = cell.rowSpan;
                        colSpan = cell.colSpan;
                        spanningRealCellIndex = cell.realCellIndex;
                        cell.rowSpan = 1;
-                       var $nextRows = $( cell ).parent().nextAll();
-                       for ( var i = 0; i < rowSpan - 1; i++ ) {
-                               var $tds = $( $nextRows[i].cells ).filter( filterfunc );
-                               var $clone = $( cell ).clone();
+                       $nextRows = $( cell ).parent().nextAll();
+                       for ( i = 0; i < rowSpan - 1; i++ ) {
+                               $tds = $( $nextRows[i].cells ).filter( filterfunc );
+                               $clone = $( cell ).clone();
                                $clone[0].realCellIndex = spanningRealCellIndex;
                                if ( $tds.length ) {
                                        $tds.each( fixTdCellIndex );
                ts.collationTable = mw.config.get( 'tableSorterCollation' );
                ts.collationRegex = null;
                if ( ts.collationTable ) {
-                       var keys = [];
+                       var key,
+                               keys = [];
 
                        // Build array of key names
-                       for ( var key in ts.collationTable ) {
-                               if ( ts.collationTable.hasOwnProperty(key) ) { //to be safe
+                       for ( key in ts.collationTable ) {
+                               // Check hasOwn to be safe
+                               if ( ts.collationTable.hasOwnProperty(key) ) {
                                        keys.push(key);
                                }
                        }
-                       if (keys.length) {
+                       if ( keys.length ) {
                                ts.collationRegex = new RegExp( '[' + keys.join( '' ) + ']', 'ig' );
                        }
                }
                        construct: function ( $tables, settings ) {
                                return $tables.each( function ( i, table ) {
                                        // Declare and cache.
-                                       var $headers, cache, config,
+                                       var $headers, cache, config, sortCSS, sortMsg,
                                                $table = $( table ),
                                                firstTime = true;
 
                                        $.data( table, 'tablesorter', { config: config } );
 
                                        // Get the CSS class names, could be done else where.
-                                       var sortCSS = [ config.cssDesc, config.cssAsc ];
-                                       var sortMsg = [ mw.msg( 'sort-descending' ), mw.msg( 'sort-ascending' ) ];
+                                       sortCSS = [ config.cssDesc, config.cssAsc ];
+                                       sortMsg = [ mw.msg( 'sort-descending' ), mw.msg( 'sort-ascending' ) ];
 
                                        // Build headers
                                        $headers = buildHeaders( table, sortMsg );
                                                        this.order = this.count % 2;
                                                        this.count++;
 
-                                                       var cell = this;
+                                                       var cell, columns, newSortList, i;
+
+                                                       cell = this;
                                                        // Get current column index
-                                                       var columns = table.headerToColumns[ this.headerIndex ];
-                                                       var newSortList = $.map( columns, function (c) {
+                                                       columns = table.headerToColumns[ this.headerIndex ];
+                                                       newSortList = $.map( columns, function ( c ) {
                                                                // jQuery "helpfully" flattens the arrays...
                                                                return [[c, cell.order]];
                                                        });
                                                        // Index of first column belonging to this header
-                                                       var i = columns[0];
+                                                       i = columns[0];
 
                                                        if ( !e[config.sortMultiSortKey] ) {
                                                                // User only wants to sort on one column set
                                         *
                                         * @param sortList {Array} (optional) List of sort objects.
                                         */
-                                       $table.data( 'tablesorter' ).sort = function( sortList ) {
+                                       $table.data( 'tablesorter' ).sort = function ( sortList ) {
 
                                                if ( firstTime ) {
                                                        setupForFirstSort();
index 2b5a440..7262fe6 100644 (file)
@@ -2,8 +2,6 @@
  * These plugins provide extra functionality for interaction with textareas.
  */
 ( function ( $ ) {
-       /*jshint noempty:false */
-
        if ( document.selection && document.selection.createRange ) {
                // On IE, patch the focus() method to restore the windows' scroll position
                // (bug 32241)
@@ -13,7 +11,7 @@
                                        var $w, state, result;
                                        if ( arguments.length === 0 ) {
                                                $w = $( window );
-                                               state = {top: $w.scrollTop(), left: $w.scrollLeft()};
+                                               state = { top: $w.scrollTop(), left: $w.scrollLeft() };
                                                result = jqFocus.apply( this, arguments );
                                                window.scrollTo( state.top, state.left );
                                                return result;
@@ -73,7 +71,6 @@
                                        el = this.get( 0 );
 
                                if ( $(el).is( ':hidden' ) ) {
-                                       // Do nothing
                                        retval = '';
                                } else if ( document.selection && document.selection.createRange ) {
                                        activateElementOnIE( el );
                                        }
 
                                        isSample = false;
-                                       if ( this.style.display === 'none' ) {
-                                               // Do nothing
-                                       } else if ( document.selection && document.selection.createRange ) {
-                                               // IE
+                                       // Do nothing if display none
+                                       if ( this.style.display !== 'none' ) {
+                                               if ( document.selection && document.selection.createRange ) {
+                                                       // IE
 
-                                               // Note that IE9 will trigger the next section unless we check this first.
-                                               // See bug 35201.
+                                                       // Note that IE9 will trigger the next section unless we check this first.
+                                                       // See bug 35201.
 
-                                               activateElementOnIE( this );
-                                               if ( context ) {
-                                                       context.fn.restoreCursorAndScrollTop();
-                                               }
-                                               if ( options.selectionStart !== undefined ) {
-                                                       $(this).textSelection( 'setSelection', { 'start': options.selectionStart, 'end': options.selectionEnd } );
-                                               }
+                                                       activateElementOnIE( this );
+                                                       if ( context ) {
+                                                               context.fn.restoreCursorAndScrollTop();
+                                                       }
+                                                       if ( options.selectionStart !== undefined ) {
+                                                               $(this).textSelection( 'setSelection', { 'start': options.selectionStart, 'end': options.selectionEnd } );
+                                                       }
 
-                                               selText = $(this).textSelection( 'getSelection' );
-                                               scrollTop = this.scrollTop;
-                                               range = document.selection.createRange();
+                                                       selText = $(this).textSelection( 'getSelection' );
+                                                       scrollTop = this.scrollTop;
+                                                       range = document.selection.createRange();
 
-                                               checkSelectedText();
-                                               insertText = pre + selText + post;
-                                               if ( options.splitlines ) {
-                                                       insertText = doSplitLines( selText, pre, post );
-                                               }
-                                               if ( options.ownline && range.moveStart ) {
-                                                       range2 = document.selection.createRange();
-                                                       range2.collapse();
-                                                       range2.moveStart( 'character', -1 );
-                                                       // FIXME: Which check is correct?
-                                                       if ( range2.text !== '\r' && range2.text !== '\n' && range2.text !== '' ) {
-                                                               insertText = '\n' + insertText;
-                                                               pre += '\n';
+                                                       checkSelectedText();
+                                                       insertText = pre + selText + post;
+                                                       if ( options.splitlines ) {
+                                                               insertText = doSplitLines( selText, pre, post );
                                                        }
-                                                       range3 = document.selection.createRange();
-                                                       range3.collapse( false );
-                                                       range3.moveEnd( 'character', 1 );
-                                                       if ( range3.text !== '\r' && range3.text !== '\n' && range3.text !== '' ) {
-                                                               insertText += '\n';
-                                                               post += '\n';
+                                                       if ( options.ownline && range.moveStart ) {
+                                                               range2 = document.selection.createRange();
+                                                               range2.collapse();
+                                                               range2.moveStart( 'character', -1 );
+                                                               // FIXME: Which check is correct?
+                                                               if ( range2.text !== '\r' && range2.text !== '\n' && range2.text !== '' ) {
+                                                                       insertText = '\n' + insertText;
+                                                                       pre += '\n';
+                                                               }
+                                                               range3 = document.selection.createRange();
+                                                               range3.collapse( false );
+                                                               range3.moveEnd( 'character', 1 );
+                                                               if ( range3.text !== '\r' && range3.text !== '\n' && range3.text !== '' ) {
+                                                                       insertText += '\n';
+                                                                       post += '\n';
+                                                               }
                                                        }
-                                               }
 
-                                               range.text = insertText;
-                                               if ( isSample && options.selectPeri && range.moveStart ) {
-                                                       range.moveStart( 'character', - post.length - selText.length );
-                                                       range.moveEnd( 'character', - post.length );
-                                               }
-                                               range.select();
-                                               // Restore the scroll position
-                                               this.scrollTop = scrollTop;
-                                       } else if ( this.selectionStart || this.selectionStart === 0 ) {
-                                               // Mozilla/Opera
-
-                                               $(this).focus();
-                                               if ( options.selectionStart !== undefined ) {
-                                                       $(this).textSelection( 'setSelection', { 'start': options.selectionStart, 'end': options.selectionEnd } );
-                                               }
+                                                       range.text = insertText;
+                                                       if ( isSample && options.selectPeri && range.moveStart ) {
+                                                               range.moveStart( 'character', -post.length - selText.length );
+                                                               range.moveEnd( 'character', -post.length );
+                                                       }
+                                                       range.select();
+                                                       // Restore the scroll position
+                                                       this.scrollTop = scrollTop;
+                                               } else if ( this.selectionStart || this.selectionStart === 0 ) {
+                                                       // Mozilla/Opera
+
+                                                       $(this).focus();
+                                                       if ( options.selectionStart !== undefined ) {
+                                                               $(this).textSelection( 'setSelection', { 'start': options.selectionStart, 'end': options.selectionEnd } );
+                                                       }
 
-                                               selText = $(this).textSelection( 'getSelection' );
-                                               startPos = this.selectionStart;
-                                               endPos = this.selectionEnd;
-                                               scrollTop = this.scrollTop;
-                                               checkSelectedText();
-                                               if ( options.selectionStart !== undefined
-                                                               && endPos - startPos !== options.selectionEnd - options.selectionStart )
-                                               {
-                                                       // This means there is a difference in the selection range returned by browser and what we passed.
-                                                       // This happens for Chrome in the case of composite characters. Ref bug #30130
-                                                       // Set the startPos to the correct position.
-                                                       startPos = options.selectionStart;
-                                               }
+                                                       selText = $(this).textSelection( 'getSelection' );
+                                                       startPos = this.selectionStart;
+                                                       endPos = this.selectionEnd;
+                                                       scrollTop = this.scrollTop;
+                                                       checkSelectedText();
+                                                       if ( options.selectionStart !== undefined
+                                                                       && endPos - startPos !== options.selectionEnd - options.selectionStart )
+                                                       {
+                                                               // This means there is a difference in the selection range returned by browser and what we passed.
+                                                               // This happens for Chrome in the case of composite characters. Ref bug #30130
+                                                               // Set the startPos to the correct position.
+                                                               startPos = options.selectionStart;
+                                                       }
 
-                                               insertText = pre + selText + post;
-                                               if ( options.splitlines ) {
-                                                       insertText = doSplitLines( selText, pre, post );
-                                               }
-                                               if ( options.ownline ) {
-                                                       if ( startPos !== 0 && this.value.charAt( startPos - 1 ) !== '\n' && this.value.charAt( startPos - 1 ) !== '\r' ) {
-                                                               insertText = '\n' + insertText;
-                                                               pre += '\n';
+                                                       insertText = pre + selText + post;
+                                                       if ( options.splitlines ) {
+                                                               insertText = doSplitLines( selText, pre, post );
                                                        }
-                                                       if ( this.value.charAt( endPos ) !== '\n' && this.value.charAt( endPos ) !== '\r' ) {
-                                                               insertText += '\n';
-                                                               post += '\n';
+                                                       if ( options.ownline ) {
+                                                               if ( startPos !== 0 && this.value.charAt( startPos - 1 ) !== '\n' && this.value.charAt( startPos - 1 ) !== '\r' ) {
+                                                                       insertText = '\n' + insertText;
+                                                                       pre += '\n';
+                                                               }
+                                                               if ( this.value.charAt( endPos ) !== '\n' && this.value.charAt( endPos ) !== '\r' ) {
+                                                                       insertText += '\n';
+                                                                       post += '\n';
+                                                               }
+                                                       }
+                                                       this.value = this.value.substring( 0, startPos ) + insertText +
+                                                               this.value.substring( endPos, this.value.length );
+                                                       // Setting this.value scrolls the textarea to the top, restore the scroll position
+                                                       this.scrollTop = scrollTop;
+                                                       if ( window.opera ) {
+                                                               pre = pre.replace( /\r?\n/g, '\r\n' );
+                                                               selText = selText.replace( /\r?\n/g, '\r\n' );
+                                                               post = post.replace( /\r?\n/g, '\r\n' );
+                                                       }
+                                                       if ( isSample && options.selectPeri && !options.splitlines ) {
+                                                               this.selectionStart = startPos + pre.length;
+                                                               this.selectionEnd = startPos + pre.length + selText.length;
+                                                       } else {
+                                                               this.selectionStart = startPos + insertText.length;
+                                                               this.selectionEnd = this.selectionStart;
                                                        }
-                                               }
-                                               this.value = this.value.substring( 0, startPos ) + insertText +
-                                                       this.value.substring( endPos, this.value.length );
-                                               // Setting this.value scrolls the textarea to the top, restore the scroll position
-                                               this.scrollTop = scrollTop;
-                                               if ( window.opera ) {
-                                                       pre = pre.replace( /\r?\n/g, '\r\n' );
-                                                       selText = selText.replace( /\r?\n/g, '\r\n' );
-                                                       post = post.replace( /\r?\n/g, '\r\n' );
-                                               }
-                                               if ( isSample && options.selectPeri && !options.splitlines ) {
-                                                       this.selectionStart = startPos + pre.length;
-                                                       this.selectionEnd = startPos + pre.length + selText.length;
-                                               } else {
-                                                       this.selectionStart = startPos + insertText.length;
-                                                       this.selectionEnd = this.selectionStart;
                                                }
                                        }
                                        $(this).trigger( 'encapsulateSelection', [ options.pre, options.peri, options.post, options.ownline,
                        setSelection: function ( options ) {
                                return this.each( function () {
                                        var selection, length, newLines;
-                                       if ( $(this).is( ':hidden' ) ) {
-                                               // Do nothing
-                                       } else if ( this.selectionStart || this.selectionStart === 0 ) {
-                                               // Opera 9.0 doesn't allow setting selectionStart past
-                                               // selectionEnd; any attempts to do that will be ignored
-                                               // Make sure to set them in the right order
-                                               if ( options.start > this.selectionEnd ) {
-                                                       this.selectionEnd = options.end;
-                                                       this.selectionStart = options.start;
-                                               } else {
-                                                       this.selectionStart = options.start;
-                                                       this.selectionEnd = options.end;
-                                               }
-                                       } else if ( document.body.createTextRange ) {
-                                               selection = rangeForElementIE( this );
-                                               length = this.value.length;
-                                               // IE doesn't count \n when computing the offset, so we won't either
-                                               newLines = this.value.match( /\n/g );
-                                               if ( newLines ) {
-                                                       length = length - newLines.length;
+                                       // Do nothing if hidden
+                                       if ( !$(this).is( ':hidden' ) ) {
+                                               if ( this.selectionStart || this.selectionStart === 0 ) {
+                                                       // Opera 9.0 doesn't allow setting selectionStart past
+                                                       // selectionEnd; any attempts to do that will be ignored
+                                                       // Make sure to set them in the right order
+                                                       if ( options.start > this.selectionEnd ) {
+                                                               this.selectionEnd = options.end;
+                                                               this.selectionStart = options.start;
+                                                       } else {
+                                                               this.selectionStart = options.start;
+                                                               this.selectionEnd = options.end;
+                                                       }
+                                               } else if ( document.body.createTextRange ) {
+                                                       selection = rangeForElementIE( this );
+                                                       length = this.value.length;
+                                                       // IE doesn't count \n when computing the offset, so we won't either
+                                                       newLines = this.value.match( /\n/g );
+                                                       if ( newLines ) {
+                                                               length = length - newLines.length;
+                                                       }
+                                                       selection.moveStart( 'character', options.start );
+                                                       selection.moveEnd( 'character', -length + options.end );
+
+                                                       // This line can cause an error under certain circumstances (textarea empty, no selection)
+                                                       // Silence that error
+                                                       try {
+                                                               selection.select();
+                                                       } catch ( e ) { }
                                                }
-                                               selection.moveStart( 'character', options.start );
-                                               selection.moveEnd( 'character', -length + options.end );
-
-                                               // This line can cause an error under certain circumstances (textarea empty, no selection)
-                                               // Silence that error
-                                               try {
-                                                       selection.select();
-                                               } catch ( e ) { }
                                        }
                                });
                        },
                                }
                                return this.each(function () {
                                        var scroll, range, savedRange, pos, oldScrollTop;
-                                       if ( $(this).is( ':hidden' ) ) {
-                                               // Do nothing
-                                       } else if ( this.selectionStart || this.selectionStart === 0 ) {
-                                               // Mozilla
-                                               scroll = getCaretScrollPosition( this );
-                                               if ( options.force || scroll < $(this).scrollTop() ||
-                                                               scroll > $(this).scrollTop() + $(this).height() ) {
-                                                       $(this).scrollTop( scroll );
-                                               }
-                                       } else if ( document.selection && document.selection.createRange ) {
-                                               // IE / Opera
-                                               /*
-                                                * IE automatically scrolls the selected text to the
-                                                * bottom of the textarea at range.select() time, except
-                                                * if it was already in view and the cursor position
-                                                * wasn't changed, in which case it does nothing. To
-                                                * cover that case, we'll force it to act by moving one
-                                                * character back and forth.
-                                                */
-                                               range = document.body.createTextRange();
-                                               savedRange = document.selection.createRange();
-                                               pos = $(this).textSelection( 'getCaretPosition' );
-                                               oldScrollTop = this.scrollTop;
-                                               range.moveToElementText( this );
-                                               range.collapse();
-                                               range.move( 'character', pos + 1);
-                                               range.select();
-                                               if ( this.scrollTop !== oldScrollTop ) {
-                                                       this.scrollTop += range.offsetTop;
-                                               } else if ( options.force ) {
-                                                       range.move( 'character', -1 );
+                                       // Do nothing if hidden
+                                       if ( !$(this).is( ':hidden' ) ) {
+                                               if ( this.selectionStart || this.selectionStart === 0 ) {
+                                                       // Mozilla
+                                                       scroll = getCaretScrollPosition( this );
+                                                       if ( options.force || scroll < $(this).scrollTop() ||
+                                                                       scroll > $(this).scrollTop() + $(this).height() ) {
+                                                               $(this).scrollTop( scroll );
+                                                       }
+                                               } else if ( document.selection && document.selection.createRange ) {
+                                                       // IE / Opera
+                                                       /*
+                                                        * IE automatically scrolls the selected text to the
+                                                        * bottom of the textarea at range.select() time, except
+                                                        * if it was already in view and the cursor position
+                                                        * wasn't changed, in which case it does nothing. To
+                                                        * cover that case, we'll force it to act by moving one
+                                                        * character back and forth.
+                                                        */
+                                                       range = document.body.createTextRange();
+                                                       savedRange = document.selection.createRange();
+                                                       pos = $(this).textSelection( 'getCaretPosition' );
+                                                       oldScrollTop = this.scrollTop;
+                                                       range.moveToElementText( this );
+                                                       range.collapse();
+                                                       range.move( 'character', pos + 1);
                                                        range.select();
+                                                       if ( this.scrollTop !== oldScrollTop ) {
+                                                               this.scrollTop += range.offsetTop;
+                                                       } else if ( options.force ) {
+                                                               range.move( 'character', -1 );
+                                                               range.select();
+                                                       }
+                                                       savedRange.select();
                                                }
-                                               savedRange.select();
                                        }
                                        $(this).trigger( 'scrollToPosition' );
                                } );
index 299fabd..bbffe79 100644 (file)
                        };
                }
                var $image = $( '<img>' ).attr( {
-                       width : 23,
+                       width: 23,
                        height: 22,
-                       src   : b.imageFile,
-                       alt   : b.speedTip,
-                       title : b.speedTip,
-                       id    : b.imageId || undefined,
+                       src: b.imageFile,
+                       alt: b.speedTip,
+                       title: b.speedTip,
+                       id: b.imageId || undefined,
                        'class': 'mw-toolbar-editbutton'
                } ).click( function () {
                        toolbar.insertTags( b.tagOpen, b.tagClose, b.sampleText );
index 500a47a..2a02d87 100644 (file)
@@ -70,7 +70,6 @@ jQuery( function ( $ ) {
        // Set initial state
        updateDiffRadios();
 
-
        // Prettify url output for HistoryAction submissions,
        // to cover up action=historysubmit construction.
 
index d23a937..21f40c5 100644 (file)
@@ -44,4 +44,4 @@
                $table.addClass( 'collapsed' );
        } );
 
-}( mediaWiki, jQuery ) );
\ No newline at end of file
+}( mediaWiki, jQuery ) );
index d61c1c6..4321b1b 100644 (file)
@@ -3,6 +3,7 @@
  */
 ( function ( mw, $ ) {
 
+       var msg = 'Use of mediawiki.api callback params is deprecated. Use the Promise instead.';
        $.extend( mw.Api.prototype, {
                /**
                 * Determine if a category exists.
                 * @return {boolean} return.done.isCategory Whether the category exists.
                 */
                isCategory: function ( title, ok, err ) {
-                       var d = $.Deferred(),
-                               apiPromise;
+                       var apiPromise = this.get( {
+                               prop: 'categoryinfo',
+                               titles: String( title )
+                       } );
 
                        // Backwards compatibility (< MW 1.20)
-                       d.done( ok ).fail( err );
+                       if ( ok || err ) {
+                               mw.track( 'mw.deprecate', 'api.cbParam' );
+                               mw.log.warn( msg );
+                       }
 
-                       apiPromise = this.get( {
-                                       prop: 'categoryinfo',
-                                       titles: title.toString()
-                               } )
-                               .done( function ( data ) {
+                       return apiPromise
+                               .then( function ( data ) {
                                        var exists = false;
                                        if ( data.query && data.query.pages ) {
                                                $.each( data.query.pages, function ( id, page ) {
                                                        }
                                                } );
                                        }
-                                       d.resolve( exists );
+                                       return exists;
                                } )
-                               .fail( d.reject );
-
-                       return d.promise( { abort: apiPromise.abort } );
+                               .done( ok )
+                               .fail( err )
+                               .promise( { abort: apiPromise.abort } );
                },
 
                /**
                 * Get a list of categories that match a certain prefix.
-                *   e.g. given "Foo", return "Food", "Foolish people", "Foosball tables" ...
+                *
+                * E.g. given "Foo", return "Food", "Foolish people", "Foosball tables" ...
+                *
                 * @param {string} prefix Prefix to match.
                 * @param {Function} [ok] Success callback (deprecated)
                 * @param {Function} [err] Error callback (deprecated)
                 * @return {jQuery.Promise}
                 * @return {Function} return.done
-                * @return {String[]} return.done.categories Matched categories
+                * @return {string[]} return.done.categories Matched categories
                 */
                getCategoriesByPrefix: function ( prefix, ok, err ) {
-                       var d = $.Deferred(),
-                               apiPromise;
+                       // Fetch with allpages to only get categories that have a corresponding description page.
+                       var apiPromise = this.get( {
+                               list: 'allpages',
+                               apprefix: prefix,
+                               apnamespace: mw.config.get( 'wgNamespaceIds' ).category
+                       } );
 
                        // Backwards compatibility (< MW 1.20)
-                       d.done( ok ).fail( err );
+                       if ( ok || err ) {
+                               mw.track( 'mw.deprecate', 'api.cbParam' );
+                               mw.log.warn( msg );
+                       }
 
-                       // Fetch with allpages to only get categories that have a corresponding description page.
-                       apiPromise = this.get( {
-                                       list: 'allpages',
-                                       apprefix: prefix,
-                                       apnamespace: mw.config.get( 'wgNamespaceIds' ).category
-                               } )
-                               .done( function ( data ) {
+                       return apiPromise
+                               .then( function ( data ) {
                                        var texts = [];
                                        if ( data.query && data.query.allpages ) {
                                                $.each( data.query.allpages, function ( i, category ) {
                                                        texts.push( new mw.Title( category.title ).getNameText() );
                                                } );
                                        }
-                                       d.resolve( texts );
+                                       return texts;
                                } )
-                               .fail( d.reject );
-
-                       return d.promise( { abort: apiPromise.abort } );
+                               .done( ok )
+                               .fail( err )
+                               .promise( { abort: apiPromise.abort } );
                },
 
-
                /**
                 * Get the categories that a particular page on the wiki belongs to
                 * @param {mw.Title} title
                 *  if title was not found.
                 */
                getCategories: function ( title, ok, err, async ) {
-                       var d = $.Deferred(),
-                               apiPromise;
+                       var apiPromise = this.get( {
+                               prop: 'categories',
+                               titles: String( title )
+                       }, {
+                               async: async === undefined ? true : async
+                       } );
 
                        // Backwards compatibility (< MW 1.20)
-                       d.done( ok ).fail( err );
-
-                       apiPromise = this.get( {
-                                       prop: 'categories',
-                                       titles: title.toString()
-                               }, {
-                                       async: async === undefined ? true : async
-                               } )
-                               .done( function ( data ) {
-                                       var ret = false;
+                       if ( ok || err ) {
+                               mw.track( 'mw.deprecate', 'api.cbParam' );
+                               mw.log.warn( msg );
+                       }
+
+                       return apiPromise
+                               .then( function ( data ) {
+                                       var titles = false;
                                        if ( data.query && data.query.pages ) {
                                                $.each( data.query.pages, function ( id, page ) {
                                                        if ( page.categories ) {
-                                                               if ( typeof ret !== 'object' ) {
-                                                                       ret = [];
+                                                               if ( titles === false ) {
+                                                                       titles = [];
                                                                }
                                                                $.each( page.categories, function ( i, cat ) {
-                                                                       ret.push( new mw.Title( cat.title ) );
+                                                                       titles.push( new mw.Title( cat.title ) );
                                                                } );
                                                        }
                                                } );
                                        }
-                                       d.resolve( ret );
+                                       return titles;
                                } )
-                               .fail( d.reject );
-
-                       return d.promise( { abort: apiPromise.abort } );
+                               .done( ok )
+                               .fail( err )
+                               .promise( { abort: apiPromise.abort } );
                }
 
        } );
index cc83a4b..edfb34a 100644 (file)
@@ -3,6 +3,7 @@
  */
 ( function ( mw, $ ) {
 
+       var msg = 'Use of mediawiki.api callback params is deprecated. Use the Promise instead.';
        $.extend( mw.Api.prototype, {
 
                /**
                 * @return {jQuery.Promise} See #post
                 */
                postWithEditToken: function ( params, ok, err ) {
+                       if ( ok || err ) {
+                               mw.track( 'mw.deprecate', 'api.cbParam' );
+                               mw.log.warn( msg );
+                       }
                        return this.postWithToken( 'edit', params ).done( ok ).fail( err );
                },
 
                /**
                 * Api helper to grab an edit token.
                 *
-                * @param {Function} [ok] Success callback
-                * @param {Function} [err] Error callback
+                * @param {Function} [ok] Success callback (deprecated)
+                * @param {Function} [err] Error callback (deprecated)
                 * @return {jQuery.Promise}
                 * @return {Function} return.done
                 * @return {string} return.done.token Received token.
                 */
                getEditToken: function ( ok, err ) {
+                       if ( ok || err ) {
+                               mw.track( 'mw.deprecate', 'api.cbParam' );
+                               mw.log.warn( msg );
+                       }
                        return this.getToken( 'edit' ).done( ok ).fail( err );
                },
 
                 * @param {mw.Title|String} title Target page
                 * @param {string} header
                 * @param {string} message wikitext message
-                * @param {Function} [ok] Success handler
-                * @param {Function} [err] Error handler
+                * @param {Function} [ok] Success handler (deprecated)
+                * @param {Function} [err] Error handler (deprecated)
                 * @return {jQuery.Promise}
                 */
                newSection: function ( title, header, message, ok, err ) {
+                       if ( ok || err ) {
+                               mw.track( 'mw.deprecate', 'api.cbParam' );
+                               mw.log.warn( msg );
+                       }
                        return this.postWithEditToken( {
                                action: 'edit',
                                section: 'new',
                                format: 'json',
-                               title: title.toString(),
+                               title: String( title ),
                                summary: header,
                                text: message
-                       }, ok, err );
+                       } ).done( ok ).fail( err );
                }
        } );
 
index 0024f4b..04919d3 100644 (file)
@@ -49,7 +49,7 @@
                        options = {};
                }
 
-               // Force toString if we got a mw.Uri object
+               // Force a string if we got a mw.Uri object
                if ( options.ajax && options.ajax.url !== undefined ) {
                        options.ajax.url = String( options.ajax.url );
                }
                ajax: function ( parameters, ajaxOptions ) {
                        var token,
                                apiDeferred = $.Deferred(),
+                               msg = 'Use of mediawiki.api callback params is deprecated. Use the Promise instead.',
                                xhr;
 
                        parameters = $.extend( {}, this.defaults.parameters, parameters );
                        // Backwards compatibility: Before MediaWiki 1.20,
                        // callbacks were done with the 'ok' and 'err' property in ajaxOptions.
                        if ( ajaxOptions.ok ) {
+                               mw.track( 'mw.deprecate', 'api.cbParam' );
+                               mw.log.warn( msg );
                                apiDeferred.done( ajaxOptions.ok );
                                delete ajaxOptions.ok;
                        }
                        if ( ajaxOptions.err ) {
+                               mw.track( 'mw.deprecate', 'api.cbParam' );
+                               mw.log.warn( msg );
                                apiDeferred.fail( ajaxOptions.err );
                                delete ajaxOptions.err;
                        }
                 * @param {string} tokenType The name of the token, like options or edit.
                 * @param {Object} params API parameters
                 * @return {jQuery.Promise} See #post
+                * @since 1.22
                 */
                postWithToken: function ( tokenType, params ) {
                        var api = this, hasOwn = tokenCache.hasOwnProperty;
                 * @return {jQuery.Promise}
                 * @return {Function} return.done
                 * @return {string} return.done.token Received token.
+                * @since 1.22
                 */
                getToken: function ( type ) {
                        var apiPromise,
index c4d23b8..952dea4 100644 (file)
                 * @return {string} return.done.data Parsed HTML of `wikitext`.
                 */
                parse: function ( wikitext, ok, err ) {
-                       var d = $.Deferred(),
-                               apiPromise;
+                       var apiPromise = this.get( {
+                               action: 'parse',
+                               contentmodel: 'wikitext',
+                               text: wikitext
+                       } );
 
                        // Backwards compatibility (< MW 1.20)
-                       d.done( ok ).fail( err );
+                       if ( ok || err ) {
+                               mw.track( 'mw.deprecate', 'api.cbParam' );
+                               mw.log.warn( 'Use of mediawiki.api callback params is deprecated. Use the Promise instead.' );
+                       }
 
-                       apiPromise = this.get( {
-                                       action: 'parse',
-                                       contentmodel: 'wikitext',
-                                       text: wikitext
+                       return apiPromise
+                               .then( function ( data ) {
+                                       return data.parse.text['*'];
                                } )
-                               .done( function ( data ) {
-                                       if ( data.parse && data.parse.text && data.parse.text['*'] ) {
-                                               d.resolve( data.parse.text['*'] );
-                                       }
-                               } )
-                               .fail( d.reject );
-
-                       return d.promise( { abort: apiPromise.abort } );
+                               .done( ok )
+                               .fail( err )
+                               .promise( { abort: apiPromise.abort } );
                }
        } );
 
index ab8a512..9d65e1f 100644 (file)
@@ -6,44 +6,51 @@
 
        /**
         * @private
+        * @static
         * @context mw.Api
         *
-        * @param {string|mw.Title|string[]|mw.Title[]} page Full page name or instance of mw.Title or array of pages
+        * @param {string|mw.Title|string[]|mw.Title[]} pages Full page name or instance of mw.Title, or an
+        *  array thereof. If an array is passed, the return value passed to the promise will also be an
+        *  array of appropriate objects.
         * @param {Function} [ok] Success callback (deprecated)
         * @param {Function} [err] Error callback (deprecated)
         * @return {jQuery.Promise}
         * @return {Function} return.done
-        * @return {Object} return.done.watch
+        * @return {Object|Object[]} return.done.watch Object or list of objects (depends on the `pages`
+        *  parameter)
         * @return {string} return.done.watch.title Full pagename
-        * @return {boolean} return.done.watch.watched
+        * @return {boolean} return.done.watch.watched Whether the page is now watched or unwatched
         * @return {string} return.done.watch.message Parsed HTML of the confirmational interface message
         */
-       function doWatchInternal( page, ok, err, addParams ) {
-               var params,
-                       d = $.Deferred(),
-                       apiPromise;
+       function doWatchInternal( pages, ok, err, addParams ) {
+               // XXX: Parameter addParams is undocumented because we inherit this
+               // documentation in the public method..
+               var apiPromise = this.post(
+                       $.extend(
+                               {
+                                       action: 'watch',
+                                       titles: $.isArray( pages ) ? pages.join( '|' ) : String( pages ),
+                                       token: mw.user.tokens.get( 'watchToken' ),
+                                       uselang: mw.config.get( 'wgUserLanguage' )
+                               },
+                               addParams
+                       )
+               );
 
                // Backwards compatibility (< MW 1.20)
-               d.done( ok ).fail( err );
-
-               params = {
-                       action: 'watch',
-                       titles: $.isArray( page ) ? page.join( '|' ) : String( page ),
-                       token: mw.user.tokens.get( 'watchToken' ),
-                       uselang: mw.config.get( 'wgUserLanguage' )
-               };
-
-               if ( addParams ) {
-                       $.extend( params, addParams );
+               if ( ok || err ) {
+                       mw.track( 'mw.deprecate', 'api.cbParam' );
+                       mw.log.warn( 'Use of mediawiki.api callback params is deprecated. Use the Promise instead.' );
                }
 
-               apiPromise = this.post( params )
-                       .done( function ( data ) {
-                               d.resolve( data.watch );
+               return apiPromise
+                       .then( function ( data ) {
+                               // If a single page was given (not an array) respond with a single item as well.
+                               return $.isArray( pages ) ? data.watch : data.watch[0];
                        } )
-                       .fail( d.reject );
-
-               return d.promise( { abort: apiPromise.abort } );
+                       .done( ok )
+                       .fail( err )
+                       .promise( { abort: apiPromise.abort } );
        }
 
        $.extend( mw.Api.prototype, {
                 *
                 * @inheritdoc #doWatchInternal
                 */
-               watch: function ( page, ok, err ) {
-                       return doWatchInternal.call( this, page, ok, err );
+               watch: function ( pages, ok, err ) {
+                       return doWatchInternal.call( this, pages, ok, err );
                },
                /**
                 * Convenience method for `action=watch&unwatch=1`.
                 *
                 * @inheritdoc #doWatchInternal
                 */
-               unwatch: function ( page, ok, err ) {
-                       return doWatchInternal.call( this, page, ok, err, { unwatch: 1 } );
+               unwatch: function ( pages, ok, err ) {
+                       return doWatchInternal.call( this, pages, ok, err, { unwatch: 1 } );
                }
 
        } );
index 2410091..2382aae 100644 (file)
@@ -34,7 +34,7 @@ mediaWiki.language.convertGrammar = function ( word, form ) {
                        break;
                case 'illative':
                        // Double the last letter and add 'n'
-                       word += word.substr(  word.length-1 ) + 'n';
+                       word += word.substr(  word.length - 1 ) + 'n';
                        break;
                case 'inessive':
                        word += ( aou ? 'ssa' : 'ssä' );
index d1ed041..ae16f24 100644 (file)
@@ -15,7 +15,7 @@ mediaWiki.language.convertGrammar = function ( word, form ) {
        switch ( form ) {
                case 'genitive': // սեռական հոլով
                        if ( word.substr( -1 ) === 'ա' ) {
-                               word = word.substr( 0, word.length -1 )  + 'այի';
+                               word = word.substr( 0, word.length - 1 ) + 'այի';
                        } else if ( word.substr( -1 ) === 'ո' ) {
                                word = word.substr( 0, word.length - 1 ) + 'ոյի';
                        } else if ( word.substr( -4 ) === 'գիրք' ) {
index 7fc171d..04b7d0a 100644 (file)
@@ -19,7 +19,7 @@ mediaWiki.language.convertGrammar = function ( word, form ) {
                        word = word.replace( /tio$/i,'tionis' ); // 3rd declension singular (partly)
                        word = word.replace( /ns$/i, 'ntis' );
                        word = word.replace( /as$/i, 'atis' );
-                       word = word.replace( /es$/i ,'ei' ); // 5th declension singular
+                       word = word.replace( /es$/i'ei' ); // 5th declension singular
                        break;
                case 'accusative':
                        // only a few declensions, and even for those mostly the singular only
@@ -31,7 +31,7 @@ mediaWiki.language.convertGrammar = function ( word, form ) {
                        word = word.replace( /tio$/i,'tionem' ); // 3rd declension singular (partly)
                        word = word.replace( /ns$/i, 'ntem' );
                        word = word.replace( /as$/i, 'atem');
-                       word = word.replace( /es$/i ,'em' ); // 5th declension singular
+                       word = word.replace( /es$/i'em' ); // 5th declension singular
                        break;
                case 'ablative':
                        // only a few declensions, and even for those mostly the singular only
@@ -43,7 +43,7 @@ mediaWiki.language.convertGrammar = function ( word, form ) {
                        word = word.replace( /tio$/i,'tione' ); // 3rd declension singular (partly)
                        word = word.replace( /ns$/i, 'nte' );
                        word = word.replace( /as$/i, 'ate');
-                       word = word.replace( /es$/i ,'e' ); // 5th declension singular
+                       word = word.replace( /es$/i'e' ); // 5th declension singular
                        break;
        }
        return word;
index 4b50834..bdf59be 100644 (file)
@@ -30,7 +30,7 @@ mediaWiki.language.convertGrammar = function ( word, form ) {
        // Checking if word ends on 'у'. 'У' can be either consonant 'W' or vowel 'U' in cyrillic Ossetic.
        // Examples: {{grammar:genitive|аунеу}} = аунеуы, {{grammar:genitive|лæппу}} = лæппуйы.
        else if ( word.match( /у$/i ) ) {
-               if ( ! word.substring( word.length-2, word.length-1 ).match( /[аæеёиоыэюя]$/i ) ) {
+               if ( !word.substring( word.length - 2, word.length - 1 ).match( /[аæеёиоыэюя]$/i ) ) {
                        jot = 'й';
                }
        } else if ( !word.match( /[бвгджзйклмнопрстфхцчшщьъ]$/i ) ) {
index 9b63382..69f7ec5 100644 (file)
@@ -3,33 +3,33 @@
  */
 
 mediaWiki.language.convertGrammar = function ( word, form ) {
-       /*jshint noempty:false */
        var grammarForms = mediaWiki.language.getData( 'uk', 'grammarForms' );
        if ( grammarForms && grammarForms[form] ) {
                return grammarForms[form][word];
        }
        switch ( form ) {
                case 'genitive': // родовий відмінок
-                       if ( ( word.substr( word.length - 4 ) === 'вікі' ) || ( word.substr( word.length - 4 ) === 'Вікі' ) ) {
-                       } else if ( word.substr( word.length - 1 ) === 'ь' ) {
-                               word = word.substr(0, word.length - 1 ) + 'я';
-                       } else if ( word.substr( word.length - 2 ) === 'ія' ) {
-                               word = word.substr(0, word.length - 2 ) + 'ії';
-                       } else if ( word.substr( word.length - 2 ) === 'ка' ) {
-                               word = word.substr(0, word.length - 2 ) + 'ки';
-                       } else if ( word.substr( word.length - 2 ) === 'ти' ) {
-                               word = word.substr(0, word.length - 2 ) + 'тей';
-                       } else if ( word.substr( word.length - 2 ) === 'ды' ) {
-                               word = word.substr(0, word.length - 2 ) + 'дов';
-                       } else if ( word.substr( word.length - 3 ) === 'ник' ) {
-                               word = word.substr(0, word.length - 3 ) + 'ника';
+                       if ( word.substr( word.length - 4 ) !== 'вікі' && word.substr( word.length - 4 ) !== 'Вікі' ) {
+                               if ( word.substr( word.length - 1 ) === 'ь' ) {
+                                       word = word.substr(0, word.length - 1 ) + 'я';
+                               } else if ( word.substr( word.length - 2 ) === 'ія' ) {
+                                       word = word.substr(0, word.length - 2 ) + 'ії';
+                               } else if ( word.substr( word.length - 2 ) === 'ка' ) {
+                                       word = word.substr(0, word.length - 2 ) + 'ки';
+                               } else if ( word.substr( word.length - 2 ) === 'ти' ) {
+                                       word = word.substr(0, word.length - 2 ) + 'тей';
+                               } else if ( word.substr( word.length - 2 ) === 'ды' ) {
+                                       word = word.substr(0, word.length - 2 ) + 'дов';
+                               } else if ( word.substr( word.length - 3 ) === 'ник' ) {
+                                       word = word.substr(0, word.length - 3 ) + 'ника';
+                               }
                        }
                        break;
                case 'accusative': // знахідний відмінок
-                       if ( ( word.substr( word.length - 4 ) === 'вікі' ) || ( word.substr( word.length - 4 ) === 'Вікі' ) ) {
-                       }
-                       else if ( word.substr( word.length - 2 ) === 'ія' ) {
-                               word = word.substr(0, word.length - 2 ) + 'ію';
+                       if ( word.substr( word.length - 4 ) !== 'вікі' && word.substr( word.length - 4 ) !== 'Вікі' ) {
+                               if ( word.substr( word.length - 2 ) === 'ія' ) {
+                                       word = word.substr(0, word.length - 2 ) + 'ію';
+                               }
                        }
                        break;
        }
index 87018f6..a0b5569 100644 (file)
@@ -96,7 +96,7 @@ $.extend( mw.language, {
         */
        preConvertPlural: function ( forms, count ) {
                while ( forms.length < count ) {
-                       forms.push( forms[ forms.length-1 ] );
+                       forms.push( forms[ forms.length - 1 ] );
                }
                return forms;
        },
index 64efbb9..f92d372 100644 (file)
                                        imgHeight = 0;
                                }
 
-                               rows[rows.length-1][rows[rows.length-1].length] = {
+                               rows[rows.length - 1][rows[rows.length - 1].length] = {
                                        $elm: $this,
                                        width: $this.outerWidth(),
                                        imgWidth: imgWidth,
-                                       aspect: imgWidth / imgHeight, // XXX: can divide by 0 ever happen?
+                                       // XXX: can divide by 0 ever happen?
+                                       aspect: imgWidth / imgHeight,
                                        captionWidth: $this.children().children( 'div.gallerytextwrapper' ).width(),
                                        height: imgHeight
                                };
                                                // Also on the off chance there is a bug in this
                                                // code, would prevent accidentally expanding to
                                                // be 10 billion pixels wide.
-                                               mw.log( 'mw.page.gallery: Cannot fit row, aspect is ' + preferredHeight/curRowHeight );
+                                               mw.log( 'mw.page.gallery: Cannot fit row, aspect is ' + preferredHeight / curRowHeight );
                                                if ( i === rows.length - 1 ) {
                                                        // If its the last row, and we can't fit it,
                                                        // don't make the entire row huge.
                                        }
                                        if ( preferredHeight < 5 ) {
                                                // Well something clearly went wrong...
-                                               mw.log( {maxWidth: maxWidth, combinedPadding: combinedPadding, combinedAspect: combinedAspect, wantedWidth: wantedWidth } );
+                                               mw.log( {
+                                                       maxWidth: maxWidth,
+                                                       combinedPadding: combinedPadding,
+                                                       combinedAspect: combinedAspect,
+                                                       wantedWidth: wantedWidth
+                                               } );
                                                mw.log( 'mw.page.gallery: [BUG!] Fitting row ' + i + ' to too small a size: ' + preferredHeight );
                                                // Skip this row.
                                                continue;
                                                imageElm = $imageElm.length ? $imageElm[0] : null;
                                                $caption = $outerDiv.find( 'div.gallerytextwrapper' );
 
-
                                                // Since we are going to re-adjust the height, the vertical
                                                // centering margins need to be reset.
                                                $imageDiv.children( 'div' ).css( 'margin', '0px auto' );
index 8a4d526..50301bd 100644 (file)
@@ -90,4 +90,4 @@
                        }
                }
        } );
-}( mediaWiki, jQuery ) );
\ No newline at end of file
+}( mediaWiki, jQuery ) );
index 9489403..850177f 100644 (file)
        function updateWatchLink( $link, action, state ) {
                var accesskeyTip, msgKey, $li, otherAction;
 
+               // A valid but empty jQuery object shouldn't throw a TypeError
+               if ( !$link.length ) {
+                       return;
+               }
+
+               // Invalid actions shouldn't silently turn the page in an unrecoverable state
+               if ( action !== 'watch' && action !== 'unwatch' ) {
+                       throw new Error( 'Invalid action' );
+               }
+
                // message keys 'watch', 'watching', 'unwatch' or 'unwatching'.
                msgKey = state === 'loading' ? action + 'ing' : action;
                otherAction = action === 'watch' ? 'unwatch' : 'watch';
        function mwUriGetAction( url ) {
                var action, actionPaths, key, i, m, parts;
 
-               actionPaths = mw.config.get( 'wgActionPaths' );
-
                // TODO: Does MediaWiki give action path or query param
-               // precedence ? If the former, move this to the bottom
+               // precedence? If the former, move this to the bottom
                action = mw.util.getParamValue( 'action', url );
                if ( action !== null ) {
                        return action;
                }
 
+               actionPaths = mw.config.get( 'wgActionPaths' );
                for ( key in actionPaths ) {
                        if ( actionPaths.hasOwnProperty( key ) ) {
                                parts = actionPaths[key].split( '$1' );
-                               for ( i = 0; i < parts.length; i += 1 ) {
+                               for ( i = 0; i < parts.length; i++ ) {
                                        parts[i] = $.escapeRE( parts[i] );
                                }
                                m = new RegExp( parts.join( '(.+)' ) ).exec( url );
                        updateWatchLink( $link, action, 'loading' );
 
                        api = new mw.Api();
-                       api[action]( title )
-                       .done( function ( watchResponse ) {
-                               var otherAction;
 
-                               otherAction = action === 'watch' ? 'unwatch' : 'watch';
+                       api[action]( title )
+                               .done( function ( watchResponse ) {
+                                       var otherAction = action === 'watch' ? 'unwatch' : 'watch';
 
-                               mw.notify( $.parseHTML( watchResponse.message ), {
-                                       tag: 'watch-self'
-                               } );
+                                       mw.notify( $.parseHTML( watchResponse.message ), {
+                                               tag: 'watch-self'
+                                       } );
 
-                               // Set link to opposite
-                               updateWatchLink( $link, otherAction );
+                                       // Set link to opposite
+                                       updateWatchLink( $link, otherAction );
 
-                               // Bug 12395 - update the watch checkbox on edit pages when the
-                               // page is watched or unwatched via the tab.
-                               if ( watchResponse.watched !== undefined ) {
-                                       $( '#wpWatchthis' ).prop( 'checked', true );
-                               } else {
-                                       $( '#wpWatchthis' ).prop( 'checked', false );
-                               }
-                       } )
-                       .fail( function () {
-                               var cleanTitle, msg, link;
-
-                               // Reset link to non-loading mode
-                               updateWatchLink( $link, action );
-
-                               // Format error message
-                               cleanTitle = title.replace( /_/g, ' ' );
-                               link = mw.html.element(
-                                       'a', {
-                                               href: mw.util.getUrl( title ),
-                                               title: cleanTitle
-                                       }, cleanTitle
-                               );
-                               msg = mw.message( 'watcherrortext', link );
-
-                               // Report to user about the error
-                               mw.notify( msg, { tag: 'watch-self' } );
-                       } );
+                                       // Update the "Watch this page" checkbox on action=edit when the
+                                       // page is watched or unwatched via the tab (bug 12395).
+                                       $( '#wpWatchthis' ).prop( 'checked', watchResponse.watched !== undefined );
+                               } )
+                               .fail( function () {
+                                       var cleanTitle, msg, link;
+
+                                       // Reset link to non-loading mode
+                                       updateWatchLink( $link, action );
+
+                                       // Format error message
+                                       cleanTitle = title.replace( /_/g, ' ' );
+                                       link = mw.html.element(
+                                               'a', {
+                                                       href: mw.util.getUrl( title ),
+                                                       title: cleanTitle
+                                               }, cleanTitle
+                                       );
+                                       msg = mw.message( 'watcherrortext', link );
+
+                                       // Report to user about the error
+                                       mw.notify( msg, { tag: 'watch-self' } );
+                               } );
                } );
        } );
 
index ee4fc06..a877b74 100644 (file)
@@ -66,7 +66,8 @@ table.mw-listgrouprights-table tr {
 }
 
 /**** Special:Prefixindex ****/
-table#mw-prefixindex-list-table,
+table#mw-prefixindex-list-table, /* HTML backwards-compatibility, to be removed before 1.23 */
+table.mw-prefixindex-list-table,
 table#mw-prefixindex-nav-table {
        width: 98%;
 }
index 23d7837..2cd27af 100644 (file)
@@ -128,7 +128,7 @@ jQuery( function ( $ ) {
        // make the selected tab visible.
        hash = window.location.hash;
        if ( hash.match( /^#mw-prefsection-[\w\-]+/ ) ) {
-               switchPrefTab( hash.replace( '#mw-prefsection-' , '' ) );
+               switchPrefTab( hash.replace( '#mw-prefsection-', '' ) );
        }
 
        // In browsers that support the onhashchange event we will not bind click
@@ -140,7 +140,7 @@ jQuery( function ( $ ) {
        if ( 'onhashchange' in window &&
                ( document.documentMode === undefined || document.documentMode >= 8 )
        ) {
-               $( window ).on( 'hashchange' , function () {
+               $( window ).on( 'hashchange', function () {
                        var hash = window.location.hash;
                        if ( hash.match( /^#mw-prefsection-[\w\-]+/ ) ) {
                                switchPrefTab( hash.replace( '#mw-prefsection-', '' ) );
index 4ee3de3..8a5ff59 100644 (file)
                                };
                                img.src = dataURL;
                        }, mw.config.get( 'wgFileCanRotate' ) ? function ( data ) {
-                               /*jshint camelcase: false, nomen: false */
+                               /*jshint camelcase:false, nomen:false */
                                try {
                                        meta = mw.libs.jpegmeta( data, file.fileName );
                                        meta._binary_data = null;
                        return true;
                }
 
-
                /**
                 * Initialization
                 */
index c293f65..0615932 100644 (file)
@@ -3,7 +3,7 @@
  */
 ( function ( mw, $ ) {
        // When sending password by email, hide the password input fields.
-       function hidePasswordOnEmail() {
+       $( function () {
                // Always required if checked, otherwise it depends, so we use the original
                var $emailLabel = $( 'label[for="wpEmail"]' ),
                        originalText = $emailLabel.text(),
 
                $createByMailCheckbox.on( 'change', updateForCheckbox );
                updateForCheckbox();
-       }
+       } );
 
-       $( hidePasswordOnEmail );
+       // Check if the username is invalid or already taken
+       $( function () {
+               var
+                       // We need to hook to all of these events to be sure we are notified of all changes to the
+                       // value of an <input type=text> field.
+                       events = 'keyup keydown change mouseup cut paste focus blur',
+                       $input = $( '#wpName2' ),
+                       $statusContainer = $( '#mw-createacct-status-area' ),
+                       api = new mw.Api(),
+                       currentRequest;
+
+               // Hide any present status messages.
+               function clearStatus() {
+                       $statusContainer.slideUp( function () {
+                               $statusContainer
+                                       .removeAttr( 'class' )
+                                       .empty();
+                       } );
+               }
+
+               // Returns a promise receiving a { state:, username: } object, where:
+               // * 'state' is one of 'invalid', 'taken', 'ok'
+               // * 'username' is the validated username if 'state' is 'ok', null otherwise (if it's not
+               //   possible to register such an account)
+               function checkUsername( username ) {
+                       // We could just use .then() if we didn't have to pass on .abort()…
+                       var d, apiPromise;
+
+                       d = $.Deferred();
+                       apiPromise = api.get( {
+                               action: 'query',
+                               list: 'users',
+                               ususers: username // '|' in usernames is handled below
+                       } )
+                               .done( function ( resp ) {
+                                       var userinfo = resp.query.users[0];
+
+                                       if ( resp.query.users.length !== 1 ) {
+                                               // Happens if the user types '|' into the field
+                                               d.resolve( { state: 'invalid', username: null } );
+                                       } else if ( userinfo.invalid !== undefined ) {
+                                               d.resolve( { state: 'invalid', username: null } );
+                                       } else if ( userinfo.userid !== undefined ) {
+                                               d.resolve( { state: 'taken', username: null } );
+                                       } else {
+                                               d.resolve( { state: 'ok', username: username } );
+                                       }
+                               } )
+                               .fail( d.reject );
+
+                       return d.promise( { abort: apiPromise.abort } );
+               }
+
+               function updateUsernameStatus() {
+                       var
+                               username = $.trim( $input.val() ),
+                               currentRequestInternal;
+
+                       // Abort any pending requests.
+                       if ( currentRequest ) {
+                               currentRequest.abort();
+                       }
+
+                       if ( username === '' ) {
+                               clearStatus();
+                               return;
+                       }
+
+                       currentRequest = currentRequestInternal = checkUsername( username ).done( function ( info ) {
+                               var message;
+
+                               // Another request was fired in the meantime, the result we got here is no longer current.
+                               // This shouldn't happen as we abort pending requests, but you never know.
+                               if ( currentRequest !== currentRequestInternal ) {
+                                       return;
+                               }
+                               // If we're here, then the current request has finished, avoid calling .abort() needlessly.
+                               currentRequest = undefined;
+
+                               if ( info.state === 'ok' ) {
+                                       clearStatus();
+                               } else {
+                                       if ( info.state === 'invalid' ) {
+                                               message = mw.message( 'noname' ).text();
+                                       } else if ( info.state === 'taken' ) {
+                                               message = mw.message( 'userexists' ).text();
+                                       }
+
+                                       $statusContainer
+                                               .attr( 'class', 'errorbox' )
+                                               .empty()
+                                               .append(
+                                                       // Ugh…
+                                                       // @todo Change the HTML structure in includes/templates/Usercreate.php
+                                                       $( '<strong>' ).text( mw.message( 'createacct-error' ).text() ),
+                                                       $( '<br>' ),
+                                                       document.createTextNode( message )
+                                               )
+                                               .slideDown();
+                               }
+                       } ).fail( function () {
+                               clearStatus();
+                       } );
+               }
+
+               $input.on( events, $.debounce( 250, updateUsernameStatus ) );
+       } );
 }( mediaWiki, jQuery ) );
index 73b5dc4..54d1608 100644 (file)
@@ -208,11 +208,15 @@ a.mw-ui-button {
        border-radius: 0;
        float: left;
 
-       &:first-child{
+       &:first-child {
                border-top-left-radius: @buttonBorderRadius;
                border-bottom-left-radius: @buttonBorderRadius;
        }
 
+       &:not(:first-child) {
+               border-left: none;
+       }
+
        &:last-child{
                border-top-right-radius: @buttonBorderRadius;
                border-bottom-right-radius: @buttonBorderRadius;
index eb8c203..9daad74 100644 (file)
@@ -17,7 +17,8 @@
                }
        }
 
-       &:active {
+       &:active,
+       &.mw-ui-checked {
                // lessphp doesn't implement shade (https://github.com/leafo/lessphp/issues/528);
                // it passes it through, then ResourceLoader drops it.
                // background: shade(@bgColor, 20%);
@@ -51,7 +52,8 @@
 
                // make sure disabled buttons don't have hover and active states
                &:hover,
-               &:active {
+               &:active,
+               &.mw-ui-checked {
                        box-shadow: none;
                }
        }
@@ -69,7 +71,8 @@
                color: mix(#fff, @textColor, 20%);
        }
 
-       &:active {
+       &:active,
+       &.mw-ui-checked {
                // lessphp doesn't implement shade, see above
                // color: shade(@textColor, 20%);
                color: mix(#000, @textColor, 20%);
index 32c3f1e..8a7aec2 100644 (file)
                                .replace( rUnderscoreTrim, '' );
                }
 
-
                // Reject illegal characters
                if ( title.match( rInvalid ) ) {
                        return false;
                };
        }() );
 
-
        /* Static members */
 
        /**
         */
        Title.prototype.toString = Title.prototype.getPrefixedDb;
 
-
        /**
         * @alias #getPrefixedText
         * @method
diff --git a/resources/mediawiki/mediawiki.debug.css b/resources/mediawiki/mediawiki.debug.css
deleted file mode 100644 (file)
index 513cb84..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-.mw-debug {
-       width: 100%;
-       background-color: #eee;
-       border-top: 1px solid #aaa;
-}
-
-.mw-debug pre {
-       font-size: 11px;
-       padding: 0;
-       margin: 0;
-       background: none;
-       border: none;
-}
-
-.mw-debug table {
-       border-spacing: 0;
-       width: 100%;
-       table-layout: fixed;
-}
-
-.mw-debug table tr {
-       background-color: #fff;
-}
-
-.mw-debug table tr:nth-child(even) {
-       background-color: #f9f9f9;
-}
-
-.mw-debug table td, .mw-debug table th  {
-       padding: 4px 10px;
-}
-
-.mw-debug table td {
-       border-bottom: 1px solid #eee;
-       word-wrap: break-word;
-}
-
-.mw-debug table td.nr {
-       text-align: right;
-}
-
-.mw-debug table td span.stats {
-       color: #808080;
-}
-
-.mw-debug ul {
-       margin: 0;
-       list-style: none;
-}
-
-.mw-debug li {
-       padding: 4px 0;
-       width: 100%;
-}
-
-.mw-debug-bits {
-       text-align: center;
-       border-bottom: 1px solid #aaa;
-}
-
-.mw-debug-bit {
-       display: inline-block;
-       padding: 10px 5px;
-       font-size: 13px;
-       /* IE-hack for display: inline-block */
-       zoom: 1;
-       *display:inline;
-}
-
-.mw-debug-panelink {
-       background-color: #eee;
-       border-right: 1px solid #ccc;
-}
-
-.mw-debug-panelink:first-child {
-       border-left: 1px solid #ccc;
-}
-
-.mw-debug-panelink:hover {
-       background-color: #fefefe;
-       cursor: pointer;
-}
-.mw-debug-panelink.current {
-       background-color: #dedede;
-
-}
-a.mw-debug-panelabel,
-a.mw-debug-panelabel:visited {
-       color: #000;
-}
-
-.mw-debug-pane {
-       height: 300px;
-       overflow: scroll;
-       display: none;
-       font-size: 11px;
-       background-color: #e1eff2;
-       box-sizing: border-box;
-}
-
-#mw-debug-pane-debuglog,
-#mw-debug-pane-request {
-       padding: 20px;
-}
-
-#mw-debug-pane-request table {
-       width: 100%;
-       margin: 10px 0 30px;
-}
-
-#mw-debug-pane-request tr,
-#mw-debug-pane-request th,
-#mw-debug-pane-request td,
-#mw-debug-pane-request table {
-       border: 1px solid #D0DBB3;
-       border-collapse: collapse;
-       margin: 0;
-}
-
-#mw-debug-pane-request th,
-#mw-debug-pane-request td {
-       font-size: 12px;
-       padding: 8px 10px;
-}
-
-#mw-debug-pane-request th {
-       background-color: #F1F7E2;
-       font-weight: bold;
-}
-
-#mw-debug-pane-request td {
-       background-color: white;
-}
-
-#mw-debug-console tr td:first-child {
-       font-weight: bold;
-       vertical-align: top;
-}
-
-#mw-debug-console tr td:last-child {
-       vertical-align: top;
-}
-
-.mw-debug-console-log {
-       background-color: #add8e6;
-}
-
-.mw-debug-console-warn {
-       background-color: #ffa07a;
-}
-
-.mw-debug-console-deprecated {
-       background-color: #ffb6c1;
-}
-
-.mw-debug-backtrace {
-       padding: 5px 10px;
-       margin: 5px;
-       background-color: #dedede;
-}
-
-.mw-debug-backtrace span {
-       font-weight: bold;
-       color: #111;
-}
-
-.mw-debug-backtrace ul {
-       padding-left: 10px;
-}
-
-.mw-debug-backtrace li {
-       width: auto;
-       padding: 0;
-       color: #333;
-       font-size: 10px;
-       margin-bottom: 0;
-       line-height: 1em;
-}
-
-/* Cheapo hack to hide the first 3 lines of the backtrace */
-.mw-debug-backtrace li:nth-child(-n+3) {
-       display: none;
-}
index 04cfbb0..1b183d9 100644 (file)
@@ -1,37 +1,41 @@
-/**
- * JavaScript for the new debug toolbar, enabled through $wgDebugToolbar.
- *
- * @author John Du Hart
- * @since 1.19
- */
-
 ( function ( mw, $ ) {
        'use strict';
 
        var debug,
                hovzer = $.getFootHovzer();
 
+       /**
+        * Debug toolbar.
+        *
+        * Enabled server-side through `$wgDebugToolbar`.
+        *
+        * @class mw.Debug
+        * @singleton
+        * @author John Du Hart
+        * @since 1.19
+        */
        debug = mw.Debug = {
                /**
                 * Toolbar container element
                 *
-                * @var {jQuery}
+                * @property {jQuery}
                 */
                $container: null,
 
                /**
                 * Object containing data for the debug toolbar
                 *
-                * @var {Object}
+                * @property {Object}
                 */
                data: {},
 
                /**
-                * Initializes the debugging pane.
+                * Initialize the debugging pane
+                *
                 * Shouldn't be called before the document is ready
                 * (since it binds to elements on the page).
                 *
-                * @param {Object} data, defaults to 'debugInfo' from mw.config
+                * @param {Object} [data] Defaults to 'debugInfo' from mw.config
                 */
                init: function ( data ) {
 
                },
 
                /**
-                * Switches between panes
+                * Switch between panes
+                *
+                * Should be called with an HTMLElement as its thisArg,
+                * because it's meant to be an event handler.
+                *
+                * TODO: Store cookie for last pane open.
                 *
-                * @todo Store cookie for last pane open
-                * @context {Element}
                 * @param {jQuery.Event} e
                 */
                switchPane: function ( e ) {
@@ -91,7 +98,7 @@
                },
 
                /**
-                * Constructs the HTML for the debugging toolbar
+                * Construct the HTML for the debugging toolbar
                 */
                buildHtml: function () {
                        var $container, $bits, panes, id, gitInfo;
                        /**
                         * Returns a jQuery element for a debug-bit div
                         *
-                        * @param id
+                        * @ignore
+                        * @param {string} id
                         * @return {jQuery}
                         */
                        function bitDiv( id ) {
                        /**
                         * Returns a jQuery element for a pane link
                         *
-                        * @param id
-                        * @param text
+                        * @ignore
+                        * @param {string} id
+                        * @param {string} text
                         * @return {jQuery}
                         */
                        function paneLabel( id, text ) {
                        /**
                         * Returns a jQuery element for a debug-bit div with a for a pane link
                         *
-                        * @param id CSS id snippet. Will be prefixed with 'mw-debug-'
-                        * @param text Text to show
-                        * @param count Optional count to show
+                        * @ignore
+                        * @param {string} id CSS id snippet. Will be prefixed with 'mw-debug-'
+                        * @param {string} text Text to show
+                        * @param {string} count Optional count to show
                         * @return {jQuery}
                         */
                        function paneTriggerBitDiv( id, text, count ) {
                },
 
                /**
-                * Builds the console panel
+                * Build the console panel
                 */
                buildConsoleTable: function () {
                        var $table, entryTypeText, i, length, entry;
                        $( '<colgroup>' ).appendTo( $table );
                        $( '<colgroup>' ).css( 'width', 350 ).appendTo( $table );
 
-
                        entryTypeText = function ( entryType ) {
                                switch ( entryType ) {
                                        case 'log':
                },
 
                /**
-                * Query list pane
+                * Build query list pane
+                *
+                * @return {jQuery}
                 */
                buildQueryTable: function () {
                        var $table, i, length, query;
                                .appendTo( $table );
                        }
 
-
                        return $table;
                },
 
                /**
-                * Legacy debug log pane
+                * Build legacy debug log pane
+                *
+                * @return {jQuery}
                 */
                buildDebugLogTable: function () {
                        var $list, i, length, line;
                },
 
                /**
-                * Request information pane
+                * Build request information pane
+                *
+                * @return {jQuery}
                 */
                buildRequestPane: function () {
 
                },
 
                /**
-                * Included files pane
+                * Build included files pane
+                *
+                * @return {jQuery}
                 */
                buildIncludesPane: function () {
                        var $table, i, length, file;
diff --git a/resources/mediawiki/mediawiki.debug.less b/resources/mediawiki/mediawiki.debug.less
new file mode 100644 (file)
index 0000000..949c558
--- /dev/null
@@ -0,0 +1,189 @@
+.mw-debug {
+       width: 100%;
+       background-color: #eee;
+       border-top: 1px solid #aaa;
+
+       pre {
+               font-size: 11px;
+               padding: 0;
+               margin: 0;
+               background: none;
+               border: none;
+       }
+
+       table {
+               border-spacing: 0;
+               width: 100%;
+               table-layout: fixed;
+
+               td,
+               th {
+                       padding: 4px 10px;
+               }
+
+               td {
+                       border-bottom: 1px solid #eee;
+                       word-wrap: break-word;
+
+                       &.nr {
+                               text-align: right;
+                       }
+
+                       span.stats {
+                               color: #808080;
+                       }
+               }
+
+               tr {
+                       background-color: #fff;
+
+                       &:nth-child(even) {
+                               background-color: #f9f9f9;
+                       }
+               }
+       }
+
+       ul {
+               margin: 0;
+               list-style: none;
+       }
+
+       li {
+               padding: 4px 0;
+               width: 100%;
+       }
+}
+
+.mw-debug-bits {
+       text-align: center;
+       border-bottom: 1px solid #aaa;
+}
+
+.mw-debug-bit {
+       display: inline-block;
+       padding: 10px 5px;
+       font-size: 13px;
+       /* IE-hack for display: inline-block */
+       zoom: 1;
+       *display:inline;
+}
+
+.mw-debug-panelink {
+       background-color: #eee;
+       border-right: 1px solid #ccc;
+
+       &:first-child {
+               border-left: 1px solid #ccc;
+       }
+
+       &:hover {
+               background-color: #fefefe;
+               cursor: pointer;
+       }
+
+       &.current {
+               background-color: #dedede;
+       }
+}
+
+a.mw-debug-panelabel,
+a.mw-debug-panelabel:visited {
+       color: #000;
+}
+
+.mw-debug-pane {
+       height: 300px;
+       overflow: scroll;
+       display: none;
+       font-size: 11px;
+       background-color: #e1eff2;
+       box-sizing: border-box;
+}
+
+#mw-debug-pane-debuglog,
+#mw-debug-pane-request {
+       padding: 20px;
+}
+
+#mw-debug-pane-request {
+       table {
+               width: 100%;
+               margin: 10px 0 30px;
+       }
+
+       tr,
+       th,
+       td,
+       table {
+               border: 1px solid #D0DBB3;
+               border-collapse: collapse;
+               margin: 0;
+       }
+
+       th,
+       td {
+               font-size: 12px;
+               padding: 8px 10px;
+       }
+
+       th {
+               background-color: #F1F7E2;
+               font-weight: bold;
+       }
+
+       td {
+               background-color: white;
+       }
+}
+
+#mw-debug-console tr td {
+       &:first-child {
+               font-weight: bold;
+               vertical-align: top;
+       }
+
+       &:last-child {
+               vertical-align: top;
+       }
+}
+
+.mw-debug-backtrace {
+       padding: 5px 10px;
+       margin: 5px;
+       background-color: #dedede;
+
+       span {
+               font-weight: bold;
+               color: #111;
+       }
+
+       ul {
+               padding-left: 10px;
+       }
+
+       li {
+               width: auto;
+               padding: 0;
+               color: #333;
+               font-size: 10px;
+               margin-bottom: 0;
+               line-height: 1em;
+       }
+}
+
+.mw-debug-console-log {
+       background-color: #add8e6;
+}
+
+.mw-debug-console-warn {
+       background-color: #ffa07a;
+}
+
+.mw-debug-console-deprecated {
+       background-color: #ffb6c1;
+}
+
+/* Cheapo hack to hide the first 3 lines of the backtrace */
+.mw-debug-backtrace li:nth-child(-n+3) {
+       display: none;
+}
index a498484..90a6425 100644 (file)
@@ -29,6 +29,8 @@
         * You can also launch the feedback form with a prefilled subject and body.
         * See the docs for the #launch() method.
         *
+        * @class
+        * @constructor
         * @param {Object} [options]
         * @param {mw.Api} [options.api] if omitted, will just create a standard API
         * @param {mw.Title} [options.title="Feedback"] The title of the page where you collect
                 * The section of the dialog to show.
                 */
                display: function ( s ) {
-                       this.$dialog.dialog( { buttons:{} } ); // hide the buttons
-                       this.$dialog.find( '.feedback-mode' ).hide(); // hide everything
-                       this.$dialog.find( '.feedback-' + s ).show(); // show the desired div
+                       // Hide the buttons
+                       this.$dialog.dialog( { buttons: {} } );
+                       // Hide everything
+                       this.$dialog.find( '.feedback-mode' ).hide();
+                       // Show the desired div
+                       this.$dialog.find( '.feedback-' + s ).show();
                },
 
                /**
index c21dfec..adcb810 100644 (file)
@@ -1,6 +1,6 @@
-/**
      Stylesheet for mediawiki.hlist module
      @author [[User:Edokter]]
+/*!
* Stylesheet for mediawiki.hlist module
* @author [[User:Edokter]]
  */
 .hlist dl,
 .hlist ol,
index 77d8fdc..0bbf8fa 100644 (file)
@@ -1,7 +1,7 @@
-/**
      .hlist fallbacks for IE 6, 7 and 8.
      @author [[User:Edokter]]
-*/
+/*!
* .hlist fallbacks for IE 6, 7 and 8.
* @author [[User:Edokter]]
+ */
 ( function ( mw, $ ) {
        var profile = $.client.profile();
 
index e76141d..62fa410 100644 (file)
                                }
                                return [stats];
                        }
+               },
+
+               /**
+                * Perform a substring search across the JavaScript and CSS source code
+                * of all loaded modules and return an array of the names of the
+                * modules that matched.
+                *
+                * @param {string|RegExp} pattern String or regexp to match.
+                * @return {Array} Array of the names of modules that matched.
+                */
+               grep: function ( pattern ) {
+                       if ( typeof pattern.test !== 'function' ) {
+                               // Based on Y.Escape.regex from YUI v3.15.0
+                               pattern = new RegExp( pattern.replace( /[\-$\^*()+\[\]{}|\\,.?\s]/g, '\\$&' ), 'g' );
+                       }
+
+                       return $.grep( inspect.getLoadedModules(), function ( moduleName ) {
+                               var module = mw.loader.moduleRegistry[moduleName];
+
+                               // Grep module's JavaScript
+                               if ( $.isFunction( module.script ) && pattern.test( module.script.toString() ) ) {
+                                       return true;
+                               }
+
+                               // Grep module's CSS
+                               if (
+                                       $.isPlainObject( module.style ) && $.isArray( module.style.css )
+                                       && pattern.test( module.style.css.join( '' ) )
+                               ) {
+                                       // Module's CSS source matches
+                                       return true;
+                               }
+
+                               return false;
+                       } );
                }
        };
 
index d7d90f4..3a6869e 100644 (file)
@@ -1,6 +1,6 @@
 /*!
 * Experimental advanced wikitext parser-emitter.
-* See: http://www.mediawiki.org/wiki/Extension:UploadWizard/MessageParser for docs
+* See: https://www.mediawiki.org/wiki/Extension:UploadWizard/MessageParser for docs
 *
 * @author neilk@wikimedia.org
 * @author mflaschen@wikimedia.org
        var oldParser,
                slice = Array.prototype.slice,
                parserDefaults = {
-                       magic : {
-                               'SITENAME' : mw.config.get( 'wgSiteName' )
+                       magic: {
+                               'SITENAME': mw.config.get( 'wgSiteName' )
                        },
                        // This is a whitelist based on, but simpler than, Sanitizer.php.
                        // Self-closing tags are not currently supported.
-                       allowedHtmlElements : [
+                       allowedHtmlElements: [
                                'b',
                                'i'
                        ],
                        // Key tag name, value allowed attributes for that tag.
                        // See Sanitizer::setupAttributeWhitelist
-                       allowedHtmlCommonAttributes : [
+                       allowedHtmlCommonAttributes: [
                                // HTML
                                'id',
                                'class',
@@ -41,9 +41,9 @@
                        // Attributes allowed for specific elements.
                        // Key is element name in lower case
                        // Value is array of allowed attributes for that element
-                       allowedHtmlAttributesByElement : {},
-                       messages : mw.messages,
-                       language : mw.language,
+                       allowedHtmlAttributesByElement: {},
+                       messages: mw.messages,
+                       language: mw.language,
 
                        // Same meaning as in mediawiki.js.
                        //
@@ -89,7 +89,7 @@
         * Decodes the main HTML entities, those encoded by mw.html.escape.
         *
         * @private
-        * @param {string} encode Encoded string
+        * @param {string} encoded Encoded string
         * @return {string} String with those entities decoded
         */
        function decodePrimaryHtmlEntities( encoded ) {
         * If there was an error parsing, return the key and the error message (wrapped in jQuery). This should put the error right into
         * the interface, without causing the page to halt script execution, and it hopefully should be clearer how to fix it.
         * @private
-        * @param {Object} parser options
+        * @param {Object} options Parser options
         * @return {Function}
         * @return {Array} return.args First element is the key, replacements may be in array in 2nd element, or remaining elements.
         * @return {jQuery} return.return
 
                                if ( parsedCloseTagResult === null ) {
                                        // Closing tag failed.  Return the start tag and contents.
-                                       return [ 'CONCAT', input.substring( startOpenTagPos, endOpenTagPos ) ].concat( parsedHtmlContents );
+                                       return [ 'CONCAT', input.substring( startOpenTagPos, endOpenTagPos ) ]
+                                               .concat( parsedHtmlContents );
                                }
 
                                endCloseTagPos = pos;
                                wrappedAttributes = parsedOpenTagResult[2];
                                attributes = wrappedAttributes.slice( 1 );
                                if ( isAllowedHtml( startTagName, endTagName, attributes ) ) {
-                                       result = [ 'HTMLELEMENT', startTagName, wrappedAttributes ].concat( parsedHtmlContents );
+                                       result = [ 'HTMLELEMENT', startTagName, wrappedAttributes ]
+                                               .concat( parsedHtmlContents );
                                } else {
                                        // HTML is not allowed, so contents will remain how
                                        // it was, while HTML markup at this level will be
                                        // parsed HTML link.
                                        //
                                        // Concatenate everything from the tag, flattening the contents.
-                                       result = [ 'CONCAT', input.substring( startOpenTagPos, endOpenTagPos ) ].concat( parsedHtmlContents, input.substring( startCloseTagPos, endCloseTagPos ) );
+                                       result = [ 'CONCAT', input.substring( startOpenTagPos, endOpenTagPos ) ]
+                                               .concat( parsedHtmlContents, input.substring( startCloseTagPos, endCloseTagPos ) );
                                }
 
                                return result;
                                curlyBraceTransformExpressionLiteral
                        ] );
 
-
                        /**
                         * Starts the parse
                         *
                }
 
        };
+
        /**
         * htmlEmitter - object which primarily exists to emit HTML from parser ASTs
         */
                                return val;
                        };
                } );
+
                /**
                 * (We put this method definition here, and not in prototype, to make sure it's not overwritten by any magic.)
                 * Walk entire node structure, applying replacements and template functions when appropriate
-                * @param {Mixed} abstract syntax tree (top node or subnode)
+                * @param {Mixed} node Abstract syntax tree (top node or subnode)
                 * @param {Array} replacements for $1, $2, ... $n
                 * @return {Mixed} single-string node or array of nodes suitable for jQuery appending
                 */
                        return ret;
                };
        };
+
        // For everything in input that follows double-open-curly braces, there should be an equivalent parser
        // function. For instance {{PLURAL ... }} will be processed by 'plural'.
        // If you have 'magic words' then configure the parser to have them upon creation.
                 * TODO: Throw error if nodes.length > 1 ?
                 *
                 * @param {Array} nodes List of one element, integer, n >= 0
-                * @param {Array} replacements
+                * @param {Array} replacements List of at least n strings
                 * @return {String} replacement
                 */
                replace: function ( nodes, replacements ) {
                                anchor = nodes[1];
                        }
 
-                       return $( '<a />' ).attr( {
+                       return $( '<a>' ).attr( {
                                title: page,
                                href: url
                        } ).text( anchor );
                 * TODO: throw error if nodes.length > 1 ?
                 *
                 * @param {Array} nodes List of one element, integer, n >= 0
+                * @param {Array} replacements List of at least n strings
                 * @return {string} replacement
                 */
                extlinkparam: function ( nodes, replacements ) {
index 8a50363..1080df3 100644 (file)
@@ -381,7 +381,7 @@ var mw = ( function ( $, undefined ) {
                 * values with microsecond precision that are guaranteed to be monotonic. On all other browsers,
                 * it will fall back to using `Date`.
                 *
-                * @returns {number} Current time
+                * @return {number} Current time
                 */
                now: ( function () {
                        var perf = window.performance,
@@ -767,11 +767,11 @@ var mw = ( function ( $, undefined ) {
                                        return;
                                }
 
-                               // By default, always create a new <style>. Appending text
-                               // to a <style> tag means the contents have to be re-parsed (bug 45810).
-                               // Except, of course, in IE below 9, in there we default to
-                               // re-using and appending to a <style> tag due to the
-                               // IE stylesheet limit (bug 31676).
+                               // By default, always create a new <style>. Appending text to a <style>
+                               // tag is bad as it means the contents have to be re-parsed (bug 45810).
+                               //
+                               // Except, of course, in IE 9 and below. In there we default to re-using and
+                               // appending to a <style> tag due to the IE stylesheet limit (bug 31676).
                                if ( 'documentMode' in document && document.documentMode <= 9 ) {
 
                                        $style = getMarker().prev();
@@ -1138,11 +1138,14 @@ var mw = ( function ( $, undefined ) {
                                 */
                                function addLink( media, url ) {
                                        var el = document.createElement( 'link' );
-                                       getMarker().before( el ); // IE: Insert in dom before setting href
+                                       // For IE: Insert in document *before* setting href
+                                       getMarker().before( el );
                                        el.rel = 'stylesheet';
                                        if ( media && media !== 'all' ) {
                                                el.media = media;
                                        }
+                                       // If you end up here from an IE exception "SCRIPT: Invalid property value.",
+                                       // see #addEmbeddedCSS, bug 31676, and bug 47277 for details.
                                        el.href = url;
                                }
 
@@ -1172,7 +1175,9 @@ var mw = ( function ( $, undefined ) {
                                                        nestedAddScript( script, markModuleReady, registry[module].async, 0 );
                                                } else if ( $.isFunction( script ) ) {
                                                        registry[module].state = 'ready';
-                                                       script( $ );
+                                                       // Pass jQuery twice so that the signature of the closure which wraps
+                                                       // the script can bind both '$' and 'jQuery'.
+                                                       script( $, $ );
                                                        handlePending( module );
                                                }
                                        } catch ( e ) {
@@ -1402,7 +1407,7 @@ var mw = ( function ( $, undefined ) {
                                 */
                                work: function () {
                                        var     reqBase, splits, maxQueryLength, q, b, bSource, bGroup, bSourceGroup,
-                                               source, concatSource, group, g, i, modules, maxVersion, sourceLoadScript,
+                                               source, concatSource, origBatch, group, g, i, modules, maxVersion, sourceLoadScript,
                                                currReqBase, currReqBaseLength, moduleMap, l,
                                                lastDotIndex, prefix, suffix, bytesAdded, async;
 
@@ -1432,6 +1437,7 @@ var mw = ( function ( $, undefined ) {
                                        mw.loader.store.init();
                                        if ( mw.loader.store.enabled ) {
                                                concatSource = [];
+                                               origBatch = batch;
                                                batch = $.grep( batch, function ( module ) {
                                                        var source = mw.loader.store.get( module );
                                                        if ( source ) {
@@ -1440,7 +1446,29 @@ var mw = ( function ( $, undefined ) {
                                                        }
                                                        return true;
                                                } );
-                                               $.globalEval( concatSource.join( ';' ) );
+                                               try {
+                                                       $.globalEval( concatSource.join( ';' ) );
+                                               } catch ( err ) {
+                                                       // Not good, the cached mw.loader.implement calls failed! This should
+                                                       // never happen, barring ResourceLoader bugs, browser bugs and PEBKACs.
+                                                       // Depending on how corrupt the string is, it is likely that some
+                                                       // modules' implement() succeeded while the ones after the error will
+                                                       // never run and leave their modules in the 'loading' state forever.
+
+                                                       // Since this is an error not caused by an individual module but by
+                                                       // something that infected the implement call itself, don't take any
+                                                       // risks and clear everything in this cache.
+                                                       mw.loader.store.clear();
+                                                       // Re-add the ones still pending back to the batch and let the server
+                                                       // repopulate these modules to the cache.
+                                                       // This means that at most one module will be useless (the one that had
+                                                       // the error) instead of all of them.
+                                                       log( 'Error while evaluating data from mw.loader.store', err );
+                                                       origBatch = $.grep( origBatch, function ( module ) {
+                                                               return registry[module].state === 'loading';
+                                                       } );
+                                                       batch = batch.concat( origBatch );
+                                               }
                                        }
 
                                        // Early exit if there's nothing to load...
@@ -2090,6 +2118,14 @@ var mw = ( function ( $, undefined ) {
                                                }
                                        },
 
+                                       /**
+                                        * Clear the entire module store right now.
+                                        */
+                                       clear: function () {
+                                               mw.loader.store.items = {};
+                                               localStorage.removeItem( mw.loader.store.getStoreKey() );
+                                       },
+
                                        /**
                                         * Sync modules to localStorage.
                                         *
@@ -2352,7 +2388,8 @@ var mw = ( function ( $, undefined ) {
 }( jQuery ) );
 
 // Alias $j to jQuery for backwards compatibility
-window.$j = jQuery;
+// @deprecated since 1.23 Use $ or jQuery instead
+mw.log.deprecate( window, '$j', jQuery, 'Use $ or jQuery instead.' );
 
 // Attach to window and globally alias
 window.mw = window.mediaWiki = mw;
index 3aa358a..0c8152e 100644 (file)
@@ -1,7 +1,3 @@
-/**
- * Stylesheet for mediawiki.notification module
- */
-
 .mw-notification-area {
        position: absolute;
        top: 0;
index e22a3d3..6999610 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*!
  * Add search suggestions to the search form.
  */
 ( function ( mw, $ ) {
index 3279900..6eb8552 100644 (file)
@@ -1,3 +1,8 @@
+/**
+ * @private
+ * @singleton
+ * @class mw.toc
+ */
 ( function ( mw, $ ) {
        'use strict';
 
index 959ea23..fe6ea0a 100644 (file)
@@ -9,5 +9,6 @@
     "ooui-dialog-action-close": "Zarrar",
     "ooui-outline-control-move-down": "Mover abaxo l'elementu",
     "ooui-outline-control-move-up": "Mover arriba l'elementu",
+    "ooui-outline-control-remove": "Desaniciar elementu",
     "ooui-toolbar-more": "Más"
 }
\ No newline at end of file
index 8bfcf88..257680b 100644 (file)
@@ -8,5 +8,7 @@
     },
     "ooui-dialog-action-close": "Bağla",
     "ooui-outline-control-move-down": "Bəndi aşağı apar",
-    "ooui-outline-control-move-up": "Bəndi yuxarı apar"
+    "ooui-outline-control-move-up": "Bəndi yuxarı apar",
+    "ooui-outline-control-remove": "Bəndi sil",
+    "ooui-toolbar-more": "Daha artıq"
 }
\ No newline at end of file
index 67e664b..939719b 100644 (file)
@@ -3,9 +3,11 @@
         "authors": [
             "DCLXVI",
             "Hristofor.mirchev",
-            "පසිඳු කාවින්ද"
+            "පසිඳු කාවින්ද",
+            "Mitzev"
         ]
     },
     "ooui-dialog-action-close": "Затваряне",
+    "ooui-outline-control-remove": "Премахване на обекти",
     "ooui-toolbar-more": "Още"
 }
\ No newline at end of file
index 7449f07..95ba48d 100644 (file)
@@ -7,5 +7,6 @@
     "ooui-dialog-action-close": "Zatvori",
     "ooui-outline-control-move-down": "Premjesti stavku dole",
     "ooui-outline-control-move-up": "Premjesti stavku gore",
+    "ooui-outline-control-remove": "Ukloni stavku",
     "ooui-toolbar-more": "Više"
 }
\ No newline at end of file
index 1e145ea..ff14ff3 100644 (file)
@@ -8,5 +8,6 @@
     "ooui-dialog-action-close": "ДӀачӀагӀа",
     "ooui-outline-control-move-down": "Лаха яккха элемент",
     "ooui-outline-control-move-up": "Лаккха яккха элемент",
+    "ooui-outline-control-remove": "ДӀадаха меттиг",
     "ooui-toolbar-more": "Кхин тӀе"
 }
\ No newline at end of file
index 9661ec6..670073f 100644 (file)
@@ -16,5 +16,6 @@
     "ooui-dialog-action-close": "Zavřít",
     "ooui-outline-control-move-down": "Přesunout položku dolů",
     "ooui-outline-control-move-up": "Přesunout položku nahoru",
+    "ooui-outline-control-remove": "Odstranit položku",
     "ooui-toolbar-more": "Další"
 }
\ No newline at end of file
index fa9b1cf..55594c1 100644 (file)
@@ -4,5 +4,6 @@
             "ОйЛ"
         ]
     },
-    "ooui-dialog-action-close": "ꙁакрꙑи"
+    "ooui-dialog-action-close": "ꙁакрꙑи",
+    "ooui-toolbar-more": "вѧщє"
 }
\ No newline at end of file
index 3a66648..bed2b2c 100644 (file)
@@ -16,5 +16,6 @@
     "ooui-dialog-action-close": "Schließen",
     "ooui-outline-control-move-down": "Element nach unten verschieben",
     "ooui-outline-control-move-up": "Element nach oben verschieben",
+    "ooui-outline-control-remove": "Element entfernen",
     "ooui-toolbar-more": "Mehr"
 }
\ No newline at end of file
index 173acd7..3f1ad0c 100644 (file)
@@ -9,11 +9,13 @@
             "Nojan Madinehi",
             "Reza1615",
             "Taha",
-            "درفش کاویانی"
+            "درفش کاویانی",
+            "Armin1392"
         ]
     },
     "ooui-dialog-action-close": "بستن",
     "ooui-outline-control-move-down": "انتقال مورد به پایین",
     "ooui-outline-control-move-up": "انتقال مورد به بالا",
+    "ooui-outline-control-remove": "حذف مورد",
     "ooui-toolbar-more": "بیشتر"
 }
\ No newline at end of file
index dcd367f..ce2f6d0 100644 (file)
@@ -19,5 +19,6 @@
     "ooui-dialog-action-close": "Sulje",
     "ooui-outline-control-move-down": "Siirrä kohdetta alaspäin",
     "ooui-outline-control-move-up": "Siirrä kohdetta ylöspäin",
+    "ooui-outline-control-remove": "Poista kohde",
     "ooui-toolbar-more": "Lisää"
 }
\ No newline at end of file
index eb24b5a..7674d2f 100644 (file)
@@ -31,5 +31,6 @@
     "ooui-dialog-action-close": "Fermer",
     "ooui-outline-control-move-down": "Faire descendre l’élément",
     "ooui-outline-control-move-up": "Faire monter l’élément",
+    "ooui-outline-control-remove": "Supprimer l’élément",
     "ooui-toolbar-more": "Plus"
 }
\ No newline at end of file
index ee95b8a..adf8ce8 100644 (file)
@@ -8,5 +8,6 @@
     "ooui-dialog-action-close": "Slütj",
     "ooui-outline-control-move-down": "Element efter onern sküüw",
     "ooui-outline-control-move-up": "Element efter boowen sküüw",
+    "ooui-outline-control-remove": "Element wechnem",
     "ooui-toolbar-more": "Muar"
 }
\ No newline at end of file
index 5d0928f..a029456 100644 (file)
@@ -9,5 +9,6 @@
     "ooui-dialog-action-close": "Pechar",
     "ooui-outline-control-move-down": "Mover o elemento abaixo",
     "ooui-outline-control-move-up": "Mover o elemento arriba",
+    "ooui-outline-control-remove": "Eliminar o elemento",
     "ooui-toolbar-more": "Máis"
 }
\ No newline at end of file
index 65ec22b..ccabf8d 100644 (file)
@@ -9,5 +9,6 @@
     "ooui-dialog-action-close": "બંધ કરો",
     "ooui-outline-control-move-down": "વસ્તુ નીચે ખસેડો",
     "ooui-outline-control-move-up": "વસ્તુ ઉપર ખસેડો",
+    "ooui-outline-control-remove": "વસ્તુ હટાવો",
     "ooui-toolbar-more": "વધુ"
 }
\ No newline at end of file
index 31b693c..404dc82 100644 (file)
@@ -18,5 +18,6 @@
     "ooui-dialog-action-close": "סגירה",
     "ooui-outline-control-move-down": "להזיז את הפריט מטה",
     "ooui-outline-control-move-up": "להזיז את הפריט מעלה",
+    "ooui-outline-control-remove": "הסרת פריט",
     "ooui-toolbar-more": "עוד"
 }
\ No newline at end of file
index b20c5f3..f674cd2 100644 (file)
@@ -8,5 +8,6 @@
     "ooui-dialog-action-close": "Začinić",
     "ooui-outline-control-move-down": "Zapisk dele přesunyć",
     "ooui-outline-control-move-up": "Zapisk horje přesunyć",
+    "ooui-outline-control-remove": "Zapisk wotstronić",
     "ooui-toolbar-more": "Wjace"
 }
\ No newline at end of file
index 9f7b435..b2cf2c0 100644 (file)
@@ -4,11 +4,13 @@
             "Dj",
             "Einstein2",
             "Misibacsi",
-            "ViDam"
+            "ViDam",
+            "Tacsipacsi"
         ]
     },
     "ooui-dialog-action-close": "Bezár",
     "ooui-outline-control-move-down": "Elem mozgatása lefelé",
     "ooui-outline-control-move-up": "Elem mozgatása felfelé",
+    "ooui-outline-control-remove": "Elem eltávolítása",
     "ooui-toolbar-more": "Tovább..."
 }
\ No newline at end of file
index f6cb90b..4cb8821 100644 (file)
@@ -8,5 +8,6 @@
     "ooui-dialog-action-close": "Փակել",
     "ooui-outline-control-move-down": "Իջեցնել կետը",
     "ooui-outline-control-move-up": "Բարձրացնել կետը",
+    "ooui-outline-control-remove": "Հեռացնել տարրը",
     "ooui-toolbar-more": "Ավելին"
 }
\ No newline at end of file
index 15f42e5..838face 100644 (file)
@@ -7,5 +7,6 @@
     "ooui-dialog-action-close": "Irekep",
     "ooui-outline-control-move-down": "Ipababa ti banag",
     "ooui-outline-control-move-up": "Ipangato ti banag",
+    "ooui-outline-control-remove": "Ikkaten ti banag",
     "ooui-toolbar-more": "Adu pay"
 }
\ No newline at end of file
index efe0e67..fbdb5d1 100644 (file)
@@ -6,7 +6,7 @@
         ]
     },
     "ooui-dialog-action-close": "Loka",
-    "ooui-outline-control-move-down": "Færa atriða niður",
-    "ooui-outline-control-move-up": "Færa atriða upp",
+    "ooui-outline-control-move-down": "Færa atriði niður",
+    "ooui-outline-control-move-up": "Færa atriði upp",
     "ooui-toolbar-more": "Fleira"
 }
\ No newline at end of file
index 6158cff..747ec79 100644 (file)
@@ -17,5 +17,6 @@
     "ooui-dialog-action-close": "Chiudi",
     "ooui-outline-control-move-down": "Sposta in basso",
     "ooui-outline-control-move-up": "Sposta in alto",
+    "ooui-outline-control-remove": "Rimuovi elemento",
     "ooui-toolbar-more": "Altro"
 }
\ No newline at end of file
index 789fbeb..c7c0851 100644 (file)
@@ -10,5 +10,6 @@
     "ooui-dialog-action-close": "閉じる",
     "ooui-outline-control-move-down": "項目を下に移動させる",
     "ooui-outline-control-move-up": "項目を上に移動させる",
+    "ooui-outline-control-remove": "項目を除去",
     "ooui-toolbar-more": "その他"
 }
\ No newline at end of file
diff --git a/resources/oojs-ui/i18n/kn.json b/resources/oojs-ui/i18n/kn.json
new file mode 100644 (file)
index 0000000..4932f6d
--- /dev/null
@@ -0,0 +1,10 @@
+{
+    "@metadata": {
+        "authors": [
+            "Vikassy"
+        ]
+    },
+    "ooui-dialog-action-close": "ಮುಚ್ಚಿ",
+    "ooui-outline-control-remove": "ವಸ್ತು ತೆಗೆ",
+    "ooui-toolbar-more": "ಹೆಚ್ಚು"
+}
\ No newline at end of file
index f1f61df..25749ce 100644 (file)
@@ -11,5 +11,6 @@
     "ooui-dialog-action-close": "닫기",
     "ooui-outline-control-move-down": "항목을 아래로 옮기기",
     "ooui-outline-control-move-up": "항목을 위로 옮기기",
+    "ooui-outline-control-remove": "항목 지우기",
     "ooui-toolbar-more": "더 보기"
 }
\ No newline at end of file
index a18894e..6359026 100644 (file)
@@ -13,5 +13,6 @@
     "ooui-dialog-action-close": "Zoumaachen",
     "ooui-outline-control-move-down": "Element erof réckelen",
     "ooui-outline-control-move-up": "Element erop réckelen",
+    "ooui-outline-control-remove": "Element ewechhuelen",
     "ooui-toolbar-more": "Méi"
 }
\ No newline at end of file
index b3a16e8..db679bc 100644 (file)
@@ -2,8 +2,10 @@
     "@metadata": {
         "authors": [
             "Audriusa",
-            "Eitvys200"
+            "Eitvys200",
+            "Mantak111"
         ]
     },
-    "ooui-dialog-action-close": "Uždaryti"
+    "ooui-dialog-action-close": "Uždaryti",
+    "ooui-outline-control-remove": "Šalinti elementus"
 }
\ No newline at end of file
index b363a45..22fd037 100644 (file)
@@ -9,5 +9,6 @@
     "ooui-dialog-action-close": "Затвори",
     "ooui-outline-control-move-down": "Помести надолу",
     "ooui-outline-control-move-up": "Помести нагоре",
+    "ooui-outline-control-remove": "Отстрани ставка",
     "ooui-toolbar-more": "Повеќе"
 }
\ No newline at end of file
index 75db0a7..549fad2 100644 (file)
             "Saruman",
             "Siebrand",
             "Southparkfan",
-            "सरोज कुमार ढकाल"
+            "सरोज कुमार ढकाल",
+            "Sjoerddebruin"
         ]
     },
     "ooui-dialog-action-close": "Sluiten",
     "ooui-outline-control-move-down": "Item omlaag verplaatsen",
     "ooui-outline-control-move-up": "Item omhoog verplaatsen",
+    "ooui-outline-control-remove": "Item verwijderen",
     "ooui-toolbar-more": "Meer"
 }
\ No newline at end of file
index dca7b7d..cd22c40 100644 (file)
@@ -8,5 +8,6 @@
     "ooui-dialog-action-close": "Cufi",
     "ooui-outline-control-move-down": "Gad buusi",
     "ooui-outline-control-move-up": "Ol baasi",
+    "ooui-outline-control-remove": "Balleessi",
     "ooui-toolbar-more": "Dabalata"
 }
\ No newline at end of file
diff --git a/resources/oojs-ui/i18n/pfl.json b/resources/oojs-ui/i18n/pfl.json
new file mode 100644 (file)
index 0000000..40cc15d
--- /dev/null
@@ -0,0 +1,12 @@
+{
+    "@metadata": {
+        "authors": [
+            "Manuae"
+        ]
+    },
+    "ooui-dialog-action-close": "Schließe",
+    "ooui-outline-control-move-down": "Bweeschs nunna",
+    "ooui-outline-control-move-up": "Bweeschs nuff",
+    "ooui-outline-control-remove": "Leschs",
+    "ooui-toolbar-more": "Mea"
+}
\ No newline at end of file
index ba33322..33ff886 100644 (file)
             "Ty221",
             "WTM",
             "Woytecr",
-            "Wpedzich"
+            "Wpedzich",
+            "Jacenty359"
         ]
     },
     "ooui-dialog-action-close": "Zamknij",
     "ooui-outline-control-move-down": "Przenieś niżej",
     "ooui-outline-control-move-up": "Przenieś wyżej",
+    "ooui-outline-control-remove": "Usuń element",
     "ooui-toolbar-more": "Więcej"
 }
\ No newline at end of file
index a4dba27..53b5280 100644 (file)
@@ -9,11 +9,13 @@
             "Jaideraf",
             "Jdforrester",
             "Luckas",
-            "Vitorvicentevalente"
+            "Vitorvicentevalente",
+            "SandroHc"
         ]
     },
     "ooui-dialog-action-close": "Fechar",
     "ooui-outline-control-move-down": "Mover item para baixo",
     "ooui-outline-control-move-up": "Mover item para cima",
+    "ooui-outline-control-remove": "Remover elemento",
     "ooui-toolbar-more": "Mais"
 }
\ No newline at end of file
index c5b8ffa..75bbec4 100644 (file)
@@ -22,6 +22,6 @@
     "ooui-dialog-action-close": "Label text for button to exit from dialog.\n\n{{Identical|Close}}",
     "ooui-outline-control-move-down": "Tool tip for a button that moves items in a list down one place",
     "ooui-outline-control-move-up": "Tool tip for a button that moves items in a list up one place",
-    "ooui-outline-control-remove": "Tool tip for a button that removes items from a list",
+    "ooui-outline-control-remove": "Tool tip for a button that removes items from a list.\n{{Identical|Remove item}}",
     "ooui-toolbar-more": "Label for the toolbar group that contains a list of all other available tools.\n{{Identical|More}}"
 }
\ No newline at end of file
index 861b2fe..4892975 100644 (file)
@@ -10,5 +10,6 @@
     "ooui-dialog-action-close": "Închide",
     "ooui-outline-control-move-down": "Mută elementul mai jos",
     "ooui-outline-control-move-up": "Mută elementul mai sus",
+    "ooui-outline-control-remove": "Elimină elementul",
     "ooui-toolbar-more": "Mai mult"
 }
\ No newline at end of file
index be7c6a5..f6e76a6 100644 (file)
@@ -21,5 +21,6 @@
     "ooui-dialog-action-close": "Закрыть",
     "ooui-outline-control-move-down": "Переместить элемент вниз",
     "ooui-outline-control-move-up": "Переместить элемент вверх",
+    "ooui-outline-control-remove": "Удалить пункт",
     "ooui-toolbar-more": "Ещё"
 }
\ No newline at end of file
diff --git a/resources/oojs-ui/i18n/sco.json b/resources/oojs-ui/i18n/sco.json
new file mode 100644 (file)
index 0000000..f8dc77c
--- /dev/null
@@ -0,0 +1,12 @@
+{
+    "@metadata": {
+        "authors": [
+            "John Reid"
+        ]
+    },
+    "ooui-dialog-action-close": "Claise",
+    "ooui-outline-control-move-down": "Muiv eetem doon",
+    "ooui-outline-control-move-up": "Muiv eetem up",
+    "ooui-outline-control-remove": "Remuiv eitem",
+    "ooui-toolbar-more": "Mair"
+}
\ No newline at end of file
index d5bffd9..b14d47b 100644 (file)
@@ -10,5 +10,6 @@
     "ooui-dialog-action-close": "Zapri",
     "ooui-outline-control-move-down": "Prestavi predmet nižje",
     "ooui-outline-control-move-up": "Prestavi predmet višje",
+    "ooui-outline-control-remove": "Odstrani vnos",
     "ooui-toolbar-more": "Več"
 }
\ No newline at end of file
index 424f1be..24a5af2 100644 (file)
@@ -1,11 +1,14 @@
 {
     "@metadata": {
         "authors": [
-            "Euriditi"
+            "Euriditi",
+            "Kushtrim",
+            "Elioqoshi"
         ]
     },
     "ooui-dialog-action-close": "Mbylle",
     "ooui-outline-control-move-down": "Zhvendose artikullin më poshtë",
     "ooui-outline-control-move-up": "Zhvendose artikullin më lart",
+    "ooui-outline-control-remove": "Hiq artikullin",
     "ooui-toolbar-more": "Më tepër..."
 }
\ No newline at end of file
index 973baec..7eaaacd 100644 (file)
@@ -9,5 +9,6 @@
     "ooui-dialog-action-close": "Затвори",
     "ooui-outline-control-move-down": "Премести ставку на доле",
     "ooui-outline-control-move-up": "Премести ставку на горе",
+    "ooui-outline-control-remove": "Уклони ставку",
     "ooui-toolbar-more": "Више"
 }
\ No newline at end of file
index 74d654b..f7d6f04 100644 (file)
             "Per",
             "Sendelbach",
             "Skalman",
-            "WikiPhoenix"
+            "WikiPhoenix",
+            "Lokal Profil"
         ]
     },
     "ooui-dialog-action-close": "Stäng",
     "ooui-outline-control-move-down": "Flytta ned objekt",
     "ooui-outline-control-move-up": "Flytta upp objekt",
+    "ooui-outline-control-remove": "Ta bort objekt",
     "ooui-toolbar-more": "Mer"
 }
\ No newline at end of file
index 9a47ad7..42487c9 100644 (file)
@@ -20,5 +20,6 @@
     "ooui-dialog-action-close": "Закрити",
     "ooui-outline-control-move-down": "Перемістити елемент униз",
     "ooui-outline-control-move-up": "Перемістити елемент вгору",
+    "ooui-outline-control-remove": "Видалити елемент",
     "ooui-toolbar-more": "Більше"
 }
\ No newline at end of file
index b545ce6..342ad6f 100644 (file)
@@ -9,5 +9,6 @@
     "ooui-dialog-action-close": "Đóng",
     "ooui-outline-control-move-down": "Chuyển mục xuống",
     "ooui-outline-control-move-up": "Chuyển mục lên",
+    "ooui-outline-control-remove": "Xóa khoản",
     "ooui-toolbar-more": "Thêm"
 }
\ No newline at end of file
index 46cbae3..58e8ebe 100644 (file)
@@ -21,5 +21,6 @@
     "ooui-dialog-action-close": "关闭",
     "ooui-outline-control-move-down": "下移项",
     "ooui-outline-control-move-up": "上移项",
+    "ooui-outline-control-remove": "移除项",
     "ooui-toolbar-more": "更多"
 }
\ No newline at end of file
index 9aace2f..6e7b12e 100644 (file)
@@ -18,5 +18,6 @@
     "ooui-dialog-action-close": "關閉",
     "ooui-outline-control-move-down": "向下移項",
     "ooui-outline-control-move-up": "向上移項",
+    "ooui-outline-control-remove": "移除項",
     "ooui-toolbar-more": "更多"
 }
\ No newline at end of file
index aa36cd0..5cf353f 100644 (file)
Binary files a/resources/oojs-ui/images/icons/add-item.png and b/resources/oojs-ui/images/icons/add-item.png differ
index ff95399..2620e76 100644 (file)
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="iso-8859-1"?>
 <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24" height="24" viewBox="0, 0, 24, 24">
-  <g id="add-item">
-    <path d="M13,8 L11,8 L11,11 L8,11 L8,13 L11,13 L11,16 L13,16 L13,13 L16,13 L16,11 L13,11 z" fill="#000000"/>
-  </g>
-  <defs/>
+<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
+        height="24px" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
+<g id="apply" style="opacity:0.75;">
+       <path d="M13,8 L11,8 L11,11 L8,11 L8,13 L11,13 L11,16 L13,16 L13,13 L16,13 L16,11 L13,11 z"/>
+</g>
 </svg>
diff --git a/resources/oojs-ui/oojs-ui-apex.css b/resources/oojs-ui/oojs-ui-apex.css
new file mode 100644 (file)
index 0000000..66a8072
--- /dev/null
@@ -0,0 +1,663 @@
+.oo-ui-dialog {
+  background-color: #fff;
+  background-color: rgba(255, 255, 255, 0.5);
+  opacity: 0;
+  -webkit-transition: all 250ms ease-in-out;
+     -moz-transition: all 250ms ease-in-out;
+      -ms-transition: all 250ms ease-in-out;
+       -o-transition: all 250ms ease-in-out;
+          transition: all 250ms ease-in-out;
+}
+
+.oo-ui-dialog .oo-ui-window-frame {
+  background-color: #fff;
+  border: solid 1px #ccc;
+  border-radius: 0.5em;
+  -webkit-transform: scale(0.5);
+     -moz-transform: scale(0.5);
+      -ms-transform: scale(0.5);
+       -o-transform: scale(0.5);
+          transform: scale(0.5);
+  box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
+  -webkit-transition: all 250ms ease-in-out;
+     -moz-transition: all 250ms ease-in-out;
+      -ms-transition: all 250ms ease-in-out;
+       -o-transition: all 250ms ease-in-out;
+          transition: all 250ms ease-in-out;
+}
+
+.oo-ui-dialog-open {
+  opacity: 1;
+}
+
+.oo-ui-dialog-open .oo-ui-window-frame {
+  -webkit-transform: scale(1);
+     -moz-transform: scale(1);
+      -ms-transform: scale(1);
+       -o-transform: scale(1);
+          transform: scale(1);
+}
+
+.oo-ui-dialog-content .oo-ui-window-body {
+  box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
+}
+
+.oo-ui-toolbar-bar {
+  background: #f8fbfd;
+  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #ffffff), color-stop(100%, #f1f7fb));
+  background-image: -webkit-linear-gradient(top, #ffffff 0%, #f1f7fb 100%);
+  background-image: -moz-linear-gradient(top, #ffffff 0%, #f1f7fb 100%);
+  background-image: -ms-linear-gradient(top, #ffffff 0%, #f1f7fb 100%);
+  background-image: -o-linear-gradient(top, #ffffff 0%, #f1f7fb 100%);
+  background-image: linear-gradient(top, #ffffff 0%, #f1f7fb 100%);
+  border-bottom: solid 1px #ccc;
+  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#f1f7fb');
+}
+
+.oo-ui-toolbar-bar .oo-ui-toolbar-bar {
+  background: none;
+  border: none;
+}
+
+.oo-ui-toolbar-shadow {
+  bottom: -9px;
+  height: 9px;
+  background-image: /* @embed */ url(images/toolbar-shadow.png);
+  opacity: 0.125;
+  -webkit-transition: opacity 500ms ease-in-out;
+     -moz-transition: opacity 500ms ease-in-out;
+      -ms-transition: opacity 500ms ease-in-out;
+       -o-transition: opacity 500ms ease-in-out;
+          transition: opacity 500ms ease-in-out;
+}
+
+.oo-ui-toolGroup {
+  border: solid 1px transparent;
+  border-radius: 0.25em;
+  -webkit-transition: border-color 300ms ease-in-out;
+     -moz-transition: border-color 300ms ease-in-out;
+      -ms-transition: border-color 300ms ease-in-out;
+       -o-transition: border-color 300ms ease-in-out;
+          transition: border-color 300ms ease-in-out;
+}
+
+.oo-ui-toolGroup:hover {
+  border-color: rgba(0, 0, 0, 0.1);
+}
+
+.oo-ui-toolGroup .oo-ui-tool-link .oo-ui-tool-title {
+  color: #000;
+}
+
+.oo-ui-window-title {
+  color: #333;
+}
+
+.oo-ui-window-overlay {
+  font-family: sans-serif;
+  font-size: 1em;
+  line-height: 1.5em;
+}
+
+.oo-ui-buttonedElement .oo-ui-buttonedElement-button {
+  color: #333;
+}
+
+.oo-ui-buttonedElement.oo-ui-indicatedElement .oo-ui-buttonedElement-button > .oo-ui-indicatedElement-indicator,
+.oo-ui-buttonedElement.oo-ui-iconedElement .oo-ui-buttonedElement-button > .oo-ui-iconedElement-icon {
+  opacity: 0.8;
+}
+
+.oo-ui-buttonedElement-frameless .oo-ui-buttonedElement-button > .oo-ui-iconedElement-icon {
+  -webkit-transition: opacity 200ms;
+     -moz-transition: opacity 200ms;
+      -ms-transition: opacity 200ms;
+       -o-transition: opacity 200ms;
+          transition: opacity 200ms;
+}
+
+.oo-ui-buttonedElement-frameless .oo-ui-buttonedElement-button:hover > .oo-ui-iconedElement-icon,
+.oo-ui-buttonedElement-frameless .oo-ui-buttonedElement-button:focus > .oo-ui-iconedElement-icon {
+  opacity: 1;
+}
+
+.oo-ui-buttonedElement-frameless .oo-ui-buttonedElement-button:hover > .oo-ui-labeledElement-label,
+.oo-ui-buttonedElement-frameless .oo-ui-buttonedElement-button:focus > .oo-ui-labeledElement-label {
+  color: #000;
+}
+
+.oo-ui-buttonedElement-frameless .oo-ui-buttonedElement-button > .oo-ui-labeledElement-label {
+  color: #333;
+}
+
+.oo-ui-buttonedElement-frameless.oo-ui-widget-disabled .oo-ui-buttonedElement-button > .oo-ui-iconedElement-icon {
+  opacity: 0.2;
+}
+
+.oo-ui-buttonedElement-frameless.oo-ui-widget-disabled .oo-ui-buttonedElement-button > .oo-ui-labeledElement-label {
+  color: #ccc;
+}
+
+.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button {
+  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
+  background: #eeeeee;
+  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #ffffff), color-stop(100%, #dddddd));
+  background-image: -webkit-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+  background-image: -moz-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+  background-image: -ms-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+  background-image: -o-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+  background-image: linear-gradient(top, #ffffff 0%, #dddddd 100%);
+  border: 1px #c9c9c9 solid;
+  border-radius: 0.3em;
+  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd');
+  -webkit-transition: border-color 100ms ease-in-out;
+     -moz-transition: border-color 100ms ease-in-out;
+      -ms-transition: border-color 100ms ease-in-out;
+       -o-transition: border-color 100ms ease-in-out;
+          transition: border-color 100ms ease-in-out;
+}
+
+.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button:hover,
+.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button:focus {
+  border-color: #aaa;
+}
+
+.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button.oo-ui-buttonedElement-active,
+.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button.oo-ui-buttonedElement-pressed {
+  color: black;
+  background: #eeeeee;
+  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #dddddd), color-stop(100%, #ffffff));
+  background-image: -webkit-linear-gradient(top, #dddddd 0%, #ffffff 100%);
+  background-image: -moz-linear-gradient(top, #dddddd 0%, #ffffff 100%);
+  background-image: -ms-linear-gradient(top, #dddddd 0%, #ffffff 100%);
+  background-image: -o-linear-gradient(top, #dddddd 0%, #ffffff 100%);
+  background-image: linear-gradient(top, #dddddd 0%, #ffffff 100%);
+  border-color: #c9c9c9;
+  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#dddddd', endColorstr='#ffffff');
+  box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.07);
+}
+
+.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-primary .oo-ui-buttonedElement-button {
+  background: #cde7f4;
+  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #eaf4fa), color-stop(100%, #b0d9ee));
+  background-image: -webkit-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
+  background-image: -moz-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
+  background-image: -ms-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
+  background-image: -o-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
+  background-image: linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
+  border: solid 1px #a6cee1;
+  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#eaf4fa', endColorstr='#b0d9ee');
+}
+
+.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-primary .oo-ui-buttonedElement-button:hover,
+.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-primary .oo-ui-buttonedElement-button:focus {
+  border-color: #9dc2d4;
+}
+
+.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-primary .oo-ui-buttonedElement-button.oo-ui-buttonedElement-active,
+.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-primary .oo-ui-buttonedElement-button.oo-ui-buttonedElement-pressed {
+  background: #cde7f4;
+  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #b0d9ee), color-stop(100%, #eaf4fa));
+  background-image: -webkit-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
+  background-image: -moz-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
+  background-image: -ms-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
+  background-image: -o-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
+  background-image: linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
+  border: solid 1px #a6cee1;
+  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#b0d9ee', endColorstr='#eaf4fa');
+}
+
+.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-constructive .oo-ui-buttonedElement-button {
+  background: #daf0be;
+  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #f0fbe1), color-stop(100%, #c3e59a));
+  background-image: -webkit-linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
+  background-image: -moz-linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
+  background-image: -ms-linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
+  background-image: -o-linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
+  background-image: linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
+  border: solid 1px #b8d892;
+  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f0fbe1', endColorstr='#c3e59a');
+}
+
+.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-constructive .oo-ui-buttonedElement-button:hover,
+.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-constructive .oo-ui-buttonedElement-button:focus {
+  border-color: #adcb89;
+}
+
+.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-constructive .oo-ui-buttonedElement-button.oo-ui-buttonedElement-active,
+.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-constructive .oo-ui-buttonedElement-button.oo-ui-buttonedElement-pressed {
+  background: #daf0be;
+  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #c3e59a), color-stop(100%, #f0fbe1));
+  background-image: -webkit-linear-gradient(top, #c3e59a 0%, #f0fbe1 100%);
+  background-image: -moz-linear-gradient(top, #c3e59a 0%, #f0fbe1 100%);
+  background-image: -ms-linear-gradient(top, #c3e59a 0%, #f0fbe1 100%);
+  background-image: -o-linear-gradient(top, #c3e59a 0%, #f0fbe1 100%);
+  background-image: linear-gradient(top, #c3e59a 0%, #f0fbe1 100%);
+  border: solid 1px #b8d892;
+  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#c3e59a', endColorstr='#f0fbe1');
+}
+
+.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-destructive .oo-ui-buttonedElement-button {
+  color: #d45353;
+}
+
+.oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button,
+.oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button.oo-ui-buttonedElement-active,
+.oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button.oo-ui-buttonedElement-pressed {
+  color: #333;
+  background: #eee;
+  opacity: 0.5;
+  box-shadow: none;
+}
+
+.oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button:hover,
+.oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button.oo-ui-buttonedElement-active:hover,
+.oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button.oo-ui-buttonedElement-pressed:hover,
+.oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button:focus,
+.oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button.oo-ui-buttonedElement-active:focus,
+.oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button.oo-ui-buttonedElement-pressed:focus {
+  border-color: #ccc;
+  box-shadow: none;
+}
+
+.oo-ui-bookletLayout > .oo-ui-gridLayout > .oo-ui-panelLayout {
+  -webkit-transition: width 250ms ease-in-out, height 250ms ease-in-out, top 250ms ease-in-out, left 250ms ease-in-out;
+     -moz-transition: width 250ms ease-in-out, height 250ms ease-in-out, top 250ms ease-in-out, left 250ms ease-in-out;
+      -ms-transition: width 250ms ease-in-out, height 250ms ease-in-out, top 250ms ease-in-out, left 250ms ease-in-out;
+       -o-transition: width 250ms ease-in-out, height 250ms ease-in-out, top 250ms ease-in-out, left 250ms ease-in-out;
+          transition: width 250ms ease-in-out, height 250ms ease-in-out, top 250ms ease-in-out, left 250ms ease-in-out;
+}
+
+.oo-ui-bookletLayout-outlinePanel {
+  border-right: solid 1px #ddd;
+}
+
+.oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
+  box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
+}
+
+.oo-ui-fieldsetLayout {
+  border: none;
+}
+
+.oo-ui-fieldsetLayout > legend.oo-ui-labeledElement-label {
+  font-size: 1.5em;
+}
+
+.oo-ui-barToolGroup .oo-ui-tool {
+  margin: -1px 0 -1px -1px;
+  border: solid 1px transparent;
+}
+
+.oo-ui-barToolGroup .oo-ui-tool:first-child {
+  border-bottom-left-radius: 0.25em;
+  border-top-left-radius: 0.25em;
+}
+
+.oo-ui-barToolGroup .oo-ui-tool:last-child {
+  margin-right: -1px;
+  border-top-right-radius: 0.25em;
+  border-bottom-right-radius: 0.25em;
+}
+
+.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
+  border-color: rgba(0, 0, 0, 0.2);
+}
+
+.oo-ui-barToolGroup .oo-ui-tool-active.oo-ui-widget-enabled {
+  background: #f8fbfd;
+  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #f1f7fb), color-stop(100%, #ffffff));
+  background-image: -webkit-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+  background-image: -moz-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+  background-image: -ms-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+  background-image: -o-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+  background-image: linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+  border-color: rgba(0, 0, 0, 0.2);
+  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
+  box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
+}
+
+.oo-ui-barToolGroup .oo-ui-tool-active.oo-ui-widget-enabled + .oo-ui-tool-active.oo-ui-widget-enabled {
+  border-left-color: rgba(0, 0, 0, 0.1);
+}
+
+.oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-iconedElement-icon {
+  opacity: 0.8;
+}
+
+.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconedElement-icon {
+  opacity: 0.2;
+}
+
+.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-iconedElement-icon {
+  opacity: 0.8;
+}
+
+.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconedElement-icon {
+  opacity: 1;
+}
+
+.oo-ui-listToolGroup.oo-ui-popupToolGroup-active {
+  border-color: rgba(0, 0, 0, 0.2);
+}
+
+.oo-ui-listToolGroup .oo-ui-tool {
+  margin: -1px 0;
+  border: solid 1px transparent;
+}
+
+.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled {
+  background: #f8fbfd;
+  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #f1f7fb), color-stop(100%, #ffffff));
+  background-image: -webkit-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+  background-image: -moz-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+  background-image: -ms-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+  background-image: -o-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+  background-image: linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+  border-color: rgba(0, 0, 0, 0.1);
+  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
+  box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
+}
+
+.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled + .oo-ui-tool-active.oo-ui-widget-enabled {
+  border-top-color: rgba(0, 0, 0, 0.1);
+}
+
+.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled:hover {
+  border-color: rgba(0, 0, 0, 0.2);
+}
+
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
+  border-color: rgba(0, 0, 0, 0.2);
+}
+
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-iconedElement-icon {
+  opacity: 0.8;
+}
+
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconedElement-icon {
+  opacity: 1;
+}
+
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
+  color: #ccc;
+}
+
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconedElement-icon {
+  opacity: 0.2;
+}
+
+.oo-ui-menuToolGroup {
+  border-color: rgba(0, 0, 0, 0.1);
+}
+
+.oo-ui-menuToolGroup:hover {
+  border-color: rgba(0, 0, 0, 0.2);
+}
+
+.oo-ui-menuToolGroup.oo-ui-popupToolGroup-active {
+  border-color: rgba(0, 0, 0, 0.25);
+}
+
+.oo-ui-menuToolGroup .oo-ui-tool:hover {
+  background-color: #e1f3ff;
+}
+
+.oo-ui-popupToolGroup-handle .oo-ui-indicatedElement-indicator,
+.oo-ui-popupToolGroup-handle .oo-ui-iconedElement-icon {
+  opacity: 0.8;
+}
+
+.oo-ui-popupToolGroup .oo-ui-toolGroup-tools {
+  background-color: white;
+  border: solid 1px #ccc;
+  box-shadow: 0 0.25em 1em rgba(0, 0, 0, 0.25);
+}
+
+.oo-ui-popupToolGroup-active.oo-ui-widget-enabled {
+  background: #f8fbfd;
+  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #f1f7fb), color-stop(100%, #ffffff));
+  background-image: -webkit-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+  background-image: -moz-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+  background-image: -ms-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+  background-image: -o-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+  background-image: linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
+  border-bottom-right-radius: 0;
+  border-bottom-left-radius: 0;
+  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
+  box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
+}
+
+.oo-ui-optionWidget-highlighted {
+  background-color: #e1f3ff;
+}
+
+.oo-ui-optionWidget-selected {
+  background-color: #a7dcff;
+}
+
+.oo-ui-menuWidget {
+  margin-top: -1px;
+  background: #fff;
+  border: solid 1px #ccc;
+  border-radius: 0 0 0.25em 0.25em;
+  box-shadow: 0 0.15em 1em 0 rgba(0, 0, 0, 0.2);
+}
+
+.oo-ui-popupWidget-popup {
+  background-color: #fff;
+  border: solid 1px #ccc;
+  border-radius: 0.25em;
+  box-shadow: 0 0.15em 0.5em 0 rgba(0, 0, 0, 0.2);
+}
+
+.oo-ui-popupWidget-tailed .oo-ui-popupWidget-tail {
+  width: 15px;
+  height: 8px;
+  margin-left: -7px;
+  background-image: /* @embed */ url(images/tail.svg);
+}
+
+.oo-ui-popupWidget-transitioning .oo-ui-popupWidget-popup {
+  -webkit-transition: width 100ms ease-in-out, height 100ms ease-in-out, left 100ms ease-in-out;
+     -moz-transition: width 100ms ease-in-out, height 100ms ease-in-out, left 100ms ease-in-out;
+      -ms-transition: width 100ms ease-in-out, height 100ms ease-in-out, left 100ms ease-in-out;
+       -o-transition: width 100ms ease-in-out, height 100ms ease-in-out, left 100ms ease-in-out;
+          transition: width 100ms ease-in-out, height 100ms ease-in-out, left 100ms ease-in-out;
+}
+
+.oo-ui-popupWidget-body {
+  box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
+}
+
+.oo-ui-buttonGroupWidget {
+  display: inline-block;
+  white-space: nowrap;
+}
+
+.oo-ui-buttonOptionWidget.oo-ui-optionWidget-selected,
+.oo-ui-buttonOptionWidget.oo-ui-optionWidget-highlighted {
+  background-color: transparent;
+}
+
+.oo-ui-buttonSelectWidget {
+  border-radius: 0.3em;
+}
+
+.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonedElement-button {
+  margin-left: -1px;
+  border-radius: 0;
+}
+
+.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonedElement-button {
+  margin-left: 0;
+  border-bottom-left-radius: 0.3em;
+  border-top-left-radius: 0.3em;
+}
+
+.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonedElement-button {
+  border-top-right-radius: 0.3em;
+  border-bottom-right-radius: 0.3em;
+}
+
+.oo-ui-inlineMenuWidget-handle {
+  border: solid 1px rgba(0, 0, 0, 0.1);
+  border-radius: 0.25em;
+}
+
+.oo-ui-inlineMenuWidget-handle:hover {
+  border-color: rgba(0, 0, 0, 0.2);
+}
+
+.oo-ui-inlineMenuWidget-handle .oo-ui-indicatedElement-indicator,
+.oo-ui-inlineMenuWidget-handle .oo-ui-iconedElement-icon {
+  opacity: 0.8;
+}
+
+.oo-ui-menuItemWidget.oo-ui-optionWidget-highlighted {
+  background-color: #e1f3ff;
+}
+
+.oo-ui-menuSectionItemWidget {
+  color: #888;
+}
+
+.oo-ui-outlineControlsWidget {
+  background-color: #fff;
+}
+
+.oo-ui-outlineControlsWidget > .oo-ui-iconedElement-icon {
+  opacity: 0.2;
+}
+
+.oo-ui-outlineItemWidget {
+  font-size: 1.1em;
+}
+
+.oo-ui-outlineItemWidget.oo-ui-optionWidget-selected {
+  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
+  background-color: #a7dcff;
+}
+
+.oo-ui-outlineItemWidget.oo-ui-flaggableElement-important {
+  font-weight: bold;
+}
+
+.oo-ui-outlineItemWidget.oo-ui-flaggableElement-placeholder {
+  font-style: italic;
+}
+
+.oo-ui-outlineItemWidget.oo-ui-flaggableElement-empty .oo-ui-iconedElement-icon,
+.oo-ui-outlineItemWidget.oo-ui-flaggableElement-empty .oo-ui-indicatedElement-indicator {
+  opacity: 0.5;
+}
+
+.oo-ui-outlineItemWidget.oo-ui-flaggableElement-empty .oo-ui-labeledElement-label {
+  color: #777;
+}
+
+.oo-ui-searchWidget-query {
+  box-shadow: 0 0 0.5em rgba(0, 0, 0, 0.2);
+}
+
+.oo-ui-textInputWidget input,
+.oo-ui-textInputWidget textarea {
+  font-family: sans-serif;
+  font-size: 1em;
+  background-color: #fff;
+  border: solid 1px #ccc;
+  border-radius: 0.25em;
+  box-shadow: 0 0 0 white, inset 0 0.1em 0.2em #ddd;
+  -webkit-transition: border-color 200ms, box-shadow 200ms;
+     -moz-transition: border-color 200ms, box-shadow 200ms;
+      -ms-transition: border-color 200ms, box-shadow 200ms;
+       -o-transition: border-color 200ms, box-shadow 200ms;
+          transition: border-color 200ms, box-shadow 200ms;
+}
+
+.oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
+.oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
+  border-color: #a7dcff;
+  outline: none;
+  box-shadow: 0 0 0.3em #a7dcff, 0 0 0 white;
+}
+
+.oo-ui-textInputWidget input[readonly],
+.oo-ui-textInputWidget textarea[readonly] {
+  color: #777;
+  text-shadow: 0 1px 1px #fff;
+}
+
+.oo-ui-textInputWidget-pending input,
+.oo-ui-textInputWidget-pending textarea {
+  background-color: transparent;
+}
+
+.oo-ui-textInputWidget.oo-ui-widget-disabled input,
+.oo-ui-textInputWidget.oo-ui-widget-disabled input:focus,
+.oo-ui-textInputWidget.oo-ui-widget-disabled textarea,
+.oo-ui-textInputWidget.oo-ui-widget-disabled textarea:focus {
+  color: #ccc;
+  text-shadow: 0 1px 1px #fff;
+  background-color: #f3f3f3;
+  border-color: #ddd;
+}
+
+.oo-ui-toggleSwitchWidget {
+  background: #eeeeee;
+  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #dddddd), color-stop(100%, #ffffff));
+  background-image: -webkit-linear-gradient(top, #dddddd 0%, #ffffff 100%);
+  background-image: -moz-linear-gradient(top, #dddddd 0%, #ffffff 100%);
+  background-image: -ms-linear-gradient(top, #dddddd 0%, #ffffff 100%);
+  background-image: -o-linear-gradient(top, #dddddd 0%, #ffffff 100%);
+  background-image: linear-gradient(top, #dddddd 0%, #ffffff 100%);
+  border: solid 1px #ccc;
+  border-radius: 1em;
+  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#dddddd', endColorstr='#ffffff');
+  box-shadow: 0 0 0 white, inset 0 0.1em 0.2em #ddd;
+}
+
+.oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
+  opacity: 0.5;
+}
+
+.oo-ui-toggleSwitchWidget-grip {
+  background: #eeeeee;
+  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #ffffff), color-stop(100%, #dddddd));
+  background-image: -webkit-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+  background-image: -moz-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+  background-image: -ms-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+  background-image: -o-linear-gradient(top, #ffffff 0%, #dddddd 100%);
+  background-image: linear-gradient(top, #ffffff 0%, #dddddd 100%);
+  border: 1px #c9c9c9 solid;
+  border-radius: 1em;
+  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd');
+  box-shadow: 0 0.1em 0.25em rgba(0, 0, 0, 0.1);
+}
+
+.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover,
+.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover .oo-ui-toggleSwitchWidget-grip {
+  border-color: #aaa;
+}
+
+.oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
+  background: #cde7f4;
+  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #b0d9ee), color-stop(100%, #eaf4fa));
+  background-image: -webkit-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
+  background-image: -moz-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
+  background-image: -ms-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
+  background-image: -o-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
+  background-image: linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
+  border-radius: 1em;
+  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#b0d9ee', endColorstr='#eaf4fa');
+  box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.07);
+}
+
+.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-glow {
+  opacity: 1;
+}
+
+.oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
+  display: block;
+  opacity: 0;
+}
\ No newline at end of file
index 08fe6ae..19bcdfe 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (51f922ba17)
+ * OOjs UI v0.1.0
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2014 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: Fri Feb 28 2014 16:33:26 GMT-0800 (PST)
+ * Date: Mon Mar 24 2014 17:35:46 GMT-0700 (PDT)
  */
 ( function () {
 
@@ -21,6 +21,28 @@ OO.ui = {};
 
 OO.ui.bind = $.proxy;
 
+/**
+ * @property {Object}
+ */
+OO.ui.Keys = {
+       'UNDEFINED': 0,
+       'BACKSPACE': 8,
+       'DELETE': 46,
+       'LEFT': 37,
+       'RIGHT': 39,
+       'UP': 38,
+       'DOWN': 40,
+       'ENTER': 13,
+       'END': 35,
+       'HOME': 36,
+       'TAB': 9,
+       'PAGEUP': 33,
+       'PAGEDOWN': 34,
+       'ESCAPE': 27,
+       'SHIFT': 16,
+       'SPACE': 32
+};
+
 /**
  * Get the user's language and any fallback languages.
  *
@@ -29,7 +51,7 @@ OO.ui.bind = $.proxy;
  * In environments that provide a localization system, this function should be overridden to
  * return the user's language(s). The default implementation returns English (en) only.
  *
- * @returns {string[]} Language codes, in descending order of priority
+ * @return {string[]} Language codes, in descending order of priority
  */
 OO.ui.getUserLanguages = function () {
        return [ 'en' ];
@@ -41,7 +63,7 @@ OO.ui.getUserLanguages = function () {
  * @param {Object.<string,Mixed>} obj Object keyed by language code
  * @param {string|null} [lang] Language code, if omitted or null defaults to any user language
  * @param {string} [fallback] Fallback code, used if no matching language can be found
- * @returns {Mixed} Local value
+ * @return {Mixed} Local value
  */
 OO.ui.getLocalValue = function ( obj, lang, fallback ) {
        var i, len, langs;
@@ -108,7 +130,7 @@ var messages = {
  * @abstract
  * @param {string} key Message key
  * @param {Mixed...} [params] Message parameters
- * @returns {string} Translated message with parameters substituted
+ * @return {string} Translated message with parameters substituted
  */
 OO.ui.msg = function ( key ) {
        var message = messages[key], params = Array.prototype.slice.call( arguments, 1 );
@@ -125,12 +147,14 @@ OO.ui.msg = function ( key ) {
        return message;
 };
 
+/** */
 OO.ui.deferMsg = function ( key ) {
        return function () {
                return OO.ui.msg( key );
        };
 };
 
+/** */
 OO.ui.resolveMsg = function ( msg ) {
        if ( $.isFunction( msg ) ) {
                return msg();
@@ -139,31 +163,11 @@ OO.ui.resolveMsg = function ( msg ) {
 };
 
 } )();
-
-// Add more as you need
-OO.ui.Keys = {
-       'UNDEFINED': 0,
-       'BACKSPACE': 8,
-       'DELETE': 46,
-       'LEFT': 37,
-       'RIGHT': 39,
-       'UP': 38,
-       'DOWN': 40,
-       'ENTER': 13,
-       'END': 35,
-       'HOME': 36,
-       'TAB': 9,
-       'PAGEUP': 33,
-       'PAGEDOWN': 34,
-       'ESCAPE': 27,
-       'SHIFT': 16,
-       'SPACE': 32
-};
 /**
  * DOM element abstraction.
  *
- * @class
  * @abstract
+ * @class
  *
  * @constructor
  * @param {Object} [config] Configuration options
@@ -191,11 +195,6 @@ OO.ui.Element = function OoUiElement( config ) {
 
 /* Static Properties */
 
-/**
- * @static
- * @property
- * @inheritable
- */
 OO.ui.Element.static = {};
 
 /**
@@ -212,12 +211,12 @@ OO.ui.Element.static.tagName = 'div';
 /* Static Methods */
 
 /**
- * Gets a jQuery function within a specific document.
+ * Get a jQuery function within a specific document.
  *
  * @static
  * @param {jQuery|HTMLElement|HTMLDocument|Window} context Context to bind the function to
  * @param {OO.ui.Frame} [frame] Frame of the document context
- * @returns {Function} Bound jQuery function
+ * @return {Function} Bound jQuery function
  */
 OO.ui.Element.getJQuery = function ( context, frame ) {
        function wrapper( selector ) {
@@ -238,7 +237,7 @@ OO.ui.Element.getJQuery = function ( context, frame ) {
  *
  * @static
  * @param {jQuery|HTMLElement|HTMLDocument|Window} obj Object to get the document for
- * @returns {HTMLDocument} Document object
+ * @return {HTMLDocument} Document object
  * @throws {Error} If context is invalid
  */
 OO.ui.Element.getDocument = function ( obj ) {
@@ -266,7 +265,7 @@ OO.ui.Element.getDocument = function ( obj ) {
  *
  * @static
  * @param {jQuery|HTMLElement|HTMLDocument|Window} obj Context to get the window for
- * @returns {Window} Window object
+ * @return {Window} Window object
  */
 OO.ui.Element.getWindow = function ( obj ) {
        var doc = this.getDocument( obj );
@@ -278,7 +277,7 @@ OO.ui.Element.getWindow = function ( obj ) {
  *
  * @static
  * @param {jQuery|HTMLElement|HTMLDocument|Window} obj Context to get the direction for
- * @returns {string} Text direction, either `ltr` or `rtl`
+ * @return {string} Text direction, either `ltr` or `rtl`
  */
 OO.ui.Element.getDir = function ( obj ) {
        var isDoc, isWin;
@@ -306,7 +305,7 @@ OO.ui.Element.getDir = function ( obj ) {
  * @param {Window} from Window of the child frame
  * @param {Window} [to=window] Window of the parent frame
  * @param {Object} [offset] Offset to start with, used internally
- * @returns {Object} Offset object, containing left and top properties
+ * @return {Object} Offset object, containing left and top properties
  */
 OO.ui.Element.getFrameOffset = function ( from, to, offset ) {
        var i, len, frames, frame, rect;
@@ -348,7 +347,7 @@ OO.ui.Element.getFrameOffset = function ( from, to, offset ) {
  * @static
  * @param {jQuery} $from
  * @param {jQuery} $to
- * @returns {Object} Translated position coordinates, containing top and left properties
+ * @return {Object} Translated position coordinates, containing top and left properties
  */
 OO.ui.Element.getRelativePosition = function ( $from, $to ) {
        var from = $from.offset(),
@@ -465,7 +464,7 @@ OO.ui.Element.getClosestScrollableContainer = function ( el, dimension ) {
 };
 
 /**
- * Scroll element into view
+ * Scroll element into view.
  *
  * @static
  * @param {HTMLElement} el Element to scroll into view
@@ -528,7 +527,7 @@ OO.ui.Element.scrollIntoView = function ( el, config ) {
  *
  * Override this method to base the result on instance information.
  *
- * @returns {string} HTML tag name
+ * @return {string} HTML tag name
  */
 OO.ui.Element.prototype.getTagName = function () {
        return this.constructor.static.tagName;
@@ -537,7 +536,7 @@ OO.ui.Element.prototype.getTagName = function () {
 /**
  * Get the DOM document.
  *
- * @returns {HTMLDocument} Document object
+ * @return {HTMLDocument} Document object
  */
 OO.ui.Element.prototype.getElementDocument = function () {
        return OO.ui.Element.getDocument( this.$element );
@@ -546,7 +545,7 @@ OO.ui.Element.prototype.getElementDocument = function () {
 /**
  * Get the DOM window.
  *
- * @returns {Window} Window object
+ * @return {Window} Window object
  */
 OO.ui.Element.prototype.getElementWindow = function () {
        return OO.ui.Element.getWindow( this.$element );
@@ -555,7 +554,6 @@ OO.ui.Element.prototype.getElementWindow = function () {
 /**
  * Get closest scrollable container.
  *
- * @method
  * @see #static-method-getClosestScrollableContainer
  */
 OO.ui.Element.prototype.getClosestScrollableElementContainer = function () {
@@ -565,7 +563,7 @@ OO.ui.Element.prototype.getClosestScrollableElementContainer = function () {
 /**
  * Get group element is in.
  *
- * @returns {OO.ui.GroupElement|null} Group element, null if none
+ * @return {OO.ui.GroupElement|null} Group element, null if none
  */
 OO.ui.Element.prototype.getElementGroup = function () {
        return this.elementGroup;
@@ -583,9 +581,8 @@ OO.ui.Element.prototype.setElementGroup = function ( group ) {
 };
 
 /**
- * Scroll element into view
+ * Scroll element into view.
  *
- * @method
  * @see #static-method-scrollIntoView
  * @param {Object} [config={}]
  */
@@ -687,7 +684,7 @@ OO.ui.Element.prototype.scrollElementIntoView = function ( config ) {
  */
 OO.ui.Frame = function OoUiFrame( config ) {
        // Parent constructor
-       OO.ui.Element.call( this, config );
+       OO.ui.Frame.super.call( this, config );
 
        // Mixin constructors
        OO.EventEmitter.call( this );
@@ -712,6 +709,10 @@ OO.mixinClass( OO.ui.Frame, OO.EventEmitter );
 
 /* Static Properties */
 
+/**
+ * @static
+ * @inheritdoc
+ */
 OO.ui.Frame.static.tagName = 'iframe';
 
 /* Events */
@@ -921,8 +922,8 @@ OO.ui.Frame.prototype.setSize = function ( width, height ) {
  * There are two ways to specify a title: set the static `title` property or provide a `title`
  * property in the configuration options. The latter will override the former.
  *
- * @class
  * @abstract
+ * @class
  * @extends OO.ui.Element
  * @mixins OO.EventEmitter
  *
@@ -934,7 +935,7 @@ OO.ui.Frame.prototype.setSize = function ( width, height ) {
  */
 OO.ui.Window = function OoUiWindow( config ) {
        // Parent constructor
-       OO.ui.Element.call( this, config );
+       OO.ui.Window.super.call( this, config );
 
        // Mixin constructors
        OO.EventEmitter.call( this );
@@ -1029,8 +1030,7 @@ OO.ui.Window.static.title = null;
 /**
  * Check if window is visible.
  *
- * @method
- * @returns {boolean} Window is visible
+ * @return {boolean} Window is visible
  */
 OO.ui.Window.prototype.isVisible = function () {
        return this.visible;
@@ -1039,8 +1039,7 @@ OO.ui.Window.prototype.isVisible = function () {
 /**
  * Check if window is opening.
  *
- * @method
- * @returns {boolean} Window is opening
+ * @return {boolean} Window is opening
  */
 OO.ui.Window.prototype.isOpening = function () {
        return this.opening;
@@ -1049,8 +1048,7 @@ OO.ui.Window.prototype.isOpening = function () {
 /**
  * Check if window is closing.
  *
- * @method
- * @returns {boolean} Window is closing
+ * @return {boolean} Window is closing
  */
 OO.ui.Window.prototype.isClosing = function () {
        return this.closing;
@@ -1059,8 +1057,7 @@ OO.ui.Window.prototype.isClosing = function () {
 /**
  * Get the window frame.
  *
- * @method
- * @returns {OO.ui.Frame} Frame of window
+ * @return {OO.ui.Frame} Frame of window
  */
 OO.ui.Window.prototype.getFrame = function () {
        return this.frame;
@@ -1069,7 +1066,7 @@ OO.ui.Window.prototype.getFrame = function () {
 /**
  * Get the title of the window.
  *
- * @returns {string} Title text
+ * @return {string} Title text
  */
 OO.ui.Window.prototype.getTitle = function () {
        return this.title;
@@ -1078,7 +1075,7 @@ OO.ui.Window.prototype.getTitle = function () {
 /**
  * Get the window icon.
  *
- * @returns {string} Symbolic name of icon
+ * @return {string} Symbolic name of icon
  */
 OO.ui.Window.prototype.getIcon = function () {
        return this.icon;
@@ -1137,7 +1134,7 @@ OO.ui.Window.prototype.setIcon = function ( icon ) {
 };
 
 /**
- * Set the position of window to fit with contents..
+ * Set the position of window to fit with contents.
  *
  * @param {string} left Left offset
  * @param {string} top Top offset
@@ -1190,7 +1187,6 @@ OO.ui.Window.prototype.fitWidthToContents = function ( min, max ) {
  *
  * Once this method is called, this.$$ can be used to create elements within the frame.
  *
- * @method
  * @fires initialize
  * @chainable
  */
@@ -1231,7 +1227,6 @@ OO.ui.Window.prototype.initialize = function () {
  *
  * When you override this method, you must call the parent method at the very beginning.
  *
- * @method
  * @abstract
  * @param {Object} [data] Window opening data
  */
@@ -1247,7 +1242,6 @@ OO.ui.Window.prototype.setup = function () {
  *
  * When you override this method, you must call the parent method at the very end.
  *
- * @method
  * @abstract
  * @param {Object} [data] Window closing data
  */
@@ -1260,7 +1254,6 @@ OO.ui.Window.prototype.teardown = function () {
  *
  * Do not override this method. See #setup for a way to make changes each time the window opens.
  *
- * @method
  * @param {Object} [data] Window opening data
  * @fires open
  * @chainable
@@ -1287,7 +1280,6 @@ OO.ui.Window.prototype.open = function ( data ) {
  *
  * See #teardown for a way to do something each time the window closes.
  *
- * @method
  * @param {Object} [data] Window closing data
  * @fires close
  * @chainable
@@ -1319,7 +1311,7 @@ OO.ui.Window.prototype.close = function ( data ) {
  */
 OO.ui.WindowSet = function OoUiWindowSet( factory, config ) {
        // Parent constructor
-       OO.ui.Element.call( this, config );
+       OO.ui.WindowSet.super.call( this, config );
 
        // Mixin constructors
        OO.EventEmitter.call( this );
@@ -1328,13 +1320,15 @@ OO.ui.WindowSet = function OoUiWindowSet( factory, config ) {
        this.factory = factory;
 
        /**
-        * List of all windows associated with this window set
+        * List of all windows associated with this window set.
+        *
         * @property {OO.ui.Window[]}
         */
        this.windowList = [];
 
        /**
         * Mapping of OO.ui.Window objects created by name from the #factory.
+        *
         * @property {Object}
         */
        this.windows = {};
@@ -1381,7 +1375,6 @@ OO.mixinClass( OO.ui.WindowSet, OO.EventEmitter );
 /**
  * Handle a window that's being opened.
  *
- * @method
  * @param {OO.ui.Window} win Window that's being opened
  * @param {Object} [config] Window opening information
  * @fires opening
@@ -1397,7 +1390,6 @@ OO.ui.WindowSet.prototype.onWindowOpening = function ( win, config ) {
 /**
  * Handle a window that's been opened.
  *
- * @method
  * @param {OO.ui.Window} win Window that's been opened
  * @param {Object} [config] Window opening information
  * @fires open
@@ -1409,7 +1401,6 @@ OO.ui.WindowSet.prototype.onWindowOpen = function ( win, config ) {
 /**
  * Handle a window that's being closed.
  *
- * @method
  * @param {OO.ui.Window} win Window that's being closed
  * @param {Object} [config] Window closing information
  * @fires closing
@@ -1422,7 +1413,6 @@ OO.ui.WindowSet.prototype.onWindowClosing = function ( win, config ) {
 /**
  * Handle a window that's been closed.
  *
- * @method
  * @param {OO.ui.Window} win Window that's been closed
  * @param {Object} [config] Window closing information
  * @fires close
@@ -1434,8 +1424,7 @@ OO.ui.WindowSet.prototype.onWindowClose = function ( win, config ) {
 /**
  * Get the current window.
  *
- * @method
- * @returns {OO.ui.Window} Current window
+ * @return {OO.ui.Window} Current window
  */
 OO.ui.WindowSet.prototype.getCurrentWindow = function () {
        return this.currentWindow;
@@ -1454,12 +1443,22 @@ OO.ui.WindowSet.prototype.getWindow = function ( name ) {
                throw new Error( 'Unknown window: ' + name );
        }
        if ( !( name in this.windows ) ) {
-               win = this.windows[name] = this.factory.create( name, this, { '$': this.$ } );
+               win = this.windows[name] = this.createWindow( name );
                this.addWindow( win );
        }
        return this.windows[name];
 };
 
+/**
+ * Create a window for use in this window set.
+ *
+ * @param {string} name Symbolic name of window
+ * @return {OO.ui.Window} Window with specified name
+ */
+OO.ui.WindowSet.prototype.createWindow = function ( name ) {
+       return this.factory.create( name, { '$': this.$ } );
+};
+
 /**
  * Add a given window to this window set.
  *
@@ -1484,28 +1483,26 @@ OO.ui.WindowSet.prototype.addWindow = function ( win ) {
        this.$element.append( win.$element );
 };
 /**
- * Modal dialog box.
- *
- * @class
  * @abstract
+ * @class
  * @extends OO.ui.Window
  *
  * @constructor
  * @param {Object} [config] Configuration options
  * @cfg {boolean} [footless] Hide foot
- * @cfg {boolean} [small] Make the dialog small
+ * @cfg {string} [size='large'] Symbolic name of dialog size, `small`, `medium` or `large`
  */
 OO.ui.Dialog = function OoUiDialog( config ) {
        // Configuration initialization
-       config = config || {};
+       config = $.extend( { 'size': 'large' }, config );
 
        // Parent constructor
-       OO.ui.Window.call( this, config );
+       OO.ui.Dialog.super.call( this, config );
 
        // Properties
        this.visible = false;
        this.footless = !!config.footless;
-       this.small = !!config.small;
+       this.size = null;
        this.onWindowMouseWheelHandler = OO.ui.bind( this.onWindowMouseWheel, this );
        this.onDocumentKeyDownHandler = OO.ui.bind( this.onDocumentKeyDown, this );
 
@@ -1515,6 +1512,7 @@ OO.ui.Dialog = function OoUiDialog( config ) {
 
        // Initialization
        this.$element.addClass( 'oo-ui-dialog' );
+       this.setSize( config.size );
 };
 
 /* Inheritance */
@@ -1533,12 +1531,23 @@ OO.inheritClass( OO.ui.Dialog, OO.ui.Window );
  */
 OO.ui.Dialog.static.name = '';
 
+/**
+ * Map of symbolic size names and CSS classes.
+ *
+ * @static
+ * @property {Object}
+ * @inheritable
+ */
+OO.ui.Dialog.static.sizeCssClasses = {
+       'small': 'oo-ui-dialog-small',
+       'medium': 'oo-ui-dialog-medium',
+       'large': 'oo-ui-dialog-large'
+};
+
 /* Methods */
 
 /**
  * Handle close button click events.
- *
- * @method
  */
 OO.ui.Dialog.prototype.onCloseButtonClick = function () {
        this.close( { 'action': 'cancel' } );
@@ -1547,7 +1556,6 @@ OO.ui.Dialog.prototype.onCloseButtonClick = function () {
 /**
  * Handle window mouse wheel events.
  *
- * @method
  * @param {jQuery.Event} e Mouse wheel event
  */
 OO.ui.Dialog.prototype.onWindowMouseWheel = function () {
@@ -1557,7 +1565,6 @@ OO.ui.Dialog.prototype.onWindowMouseWheel = function () {
 /**
  * Handle document key down events.
  *
- * @method
  * @param {jQuery.Event} e Key down event
  */
 OO.ui.Dialog.prototype.onDocumentKeyDown = function ( e ) {
@@ -1578,7 +1585,6 @@ OO.ui.Dialog.prototype.onDocumentKeyDown = function ( e ) {
 /**
  * Handle frame document key down events.
  *
- * @method
  * @param {jQuery.Event} e Key down event
  */
 OO.ui.Dialog.prototype.onFrameDocumentKeyDown = function ( e ) {
@@ -1593,6 +1599,29 @@ OO.ui.Dialog.prototype.onOpening = function () {
        this.$element.addClass( 'oo-ui-dialog-open' );
 };
 
+/**
+ * Set dialog size.
+ *
+ * @param {string} [size='large'] Symbolic name of dialog size, `small`, `medium` or `large`
+ */
+OO.ui.Dialog.prototype.setSize = function ( size ) {
+       var name, state, cssClass,
+               sizeCssClasses = OO.ui.Dialog.static.sizeCssClasses;
+
+       if ( !sizeCssClasses[size] ) {
+               size = 'large';
+       }
+       this.size = size;
+       for ( name in sizeCssClasses ) {
+               state = name === size;
+               cssClass = sizeCssClasses[name];
+               this.$element.toggleClass( cssClass, state );
+               if ( this.frame.$content ) {
+                       this.frame.$content.toggleClass( cssClass, state );
+               }
+       }
+};
+
 /**
  * @inheritdoc
  */
@@ -1617,9 +1646,6 @@ OO.ui.Dialog.prototype.initialize = function () {
        if ( this.footless ) {
                this.frame.$content.addClass( 'oo-ui-dialog-content-footless' );
        }
-       if ( this.small ) {
-               this.$frame.addClass( 'oo-ui-window-frame-small' );
-       }
        this.closeButton.$element.addClass( 'oo-ui-window-closeButton' );
        this.$head.append( this.closeButton.$element );
 };
@@ -1666,8 +1692,8 @@ OO.ui.Dialog.prototype.close = function ( data ) {
 /**
  * Container for elements.
  *
- * @class
  * @abstract
+ * @class
  * @extends OO.ui.Element
  * @mixins OO.EventEmitter
  *
@@ -1679,7 +1705,7 @@ OO.ui.Layout = function OoUiLayout( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Element.call( this, config );
+       OO.ui.Layout.super.call( this, config );
 
        // Mixin constructors
        OO.EventEmitter.call( this );
@@ -1696,8 +1722,8 @@ OO.mixinClass( OO.ui.Layout, OO.EventEmitter );
 /**
  * User interface control.
  *
- * @class
  * @abstract
+ * @class
  * @extends OO.ui.Element
  * @mixins OO.EventEmitter
  *
@@ -1710,7 +1736,7 @@ OO.ui.Widget = function OoUiWidget( config ) {
        config = $.extend( { 'disabled': false }, config );
 
        // Parent constructor
-       OO.ui.Element.call( this, config );
+       OO.ui.Widget.super.call( this, config );
 
        // Mixin constructors
        OO.EventEmitter.call( this );
@@ -1742,7 +1768,6 @@ OO.mixinClass( OO.ui.Widget, OO.EventEmitter );
 /**
  * Check if the widget is disabled.
  *
- * @method
  * @param {boolean} Button is disabled
  */
 OO.ui.Widget.prototype.isDisabled = function () {
@@ -1752,7 +1777,6 @@ OO.ui.Widget.prototype.isDisabled = function () {
 /**
  * Update the disabled state, in case of changes in parent widget.
  *
- * @method
  * @chainable
  */
 OO.ui.Widget.prototype.updateDisabled = function () {
@@ -1765,7 +1789,6 @@ OO.ui.Widget.prototype.updateDisabled = function () {
  *
  * This should probably change the widgets's appearance and prevent it from being used.
  *
- * @method
  * @param {boolean} disabled Disable widget
  * @chainable
  */
@@ -2436,6 +2459,7 @@ OO.ui.IndicatedElement.prototype.getIndicatorTitle = function () {
  * @param {jQuery} $label Label node, assigned to #$label
  * @param {Object} [config] Configuration options
  * @cfg {jQuery|string|Function} [label] Label nodes, text or a function that returns nodes or text
+ * @cfg {boolean} [autoFitLabel=true] Whether to fit the label or not.
  */
 OO.ui.LabeledElement = function OoUiLabeledElement( $label, config ) {
        // Config intialization
@@ -2448,6 +2472,7 @@ OO.ui.LabeledElement = function OoUiLabeledElement( $label, config ) {
        // Initialization
        this.$label.addClass( 'oo-ui-labeledElement-label' );
        this.setLabel( config.label || this.constructor.static.label );
+       this.autoFitLabel = config.autoFitLabel === undefined || !!config.autoFitLabel;
 };
 
 /* Static Properties */
@@ -2518,7 +2543,7 @@ OO.ui.LabeledElement.prototype.getLabel = function () {
  * @chainable
  */
 OO.ui.LabeledElement.prototype.fitLabel = function () {
-       if ( this.$label.autoEllipsis ) {
+       if ( this.$label.autoEllipsis && this.autoFitLabel ) {
                this.$label.autoEllipsis( { 'hasSpan': false, 'tooltip': true } );
        }
        return this;
@@ -2647,8 +2672,8 @@ OO.ui.TitledElement.prototype.getTitle = function () {
 /**
  * Generic toolbar tool.
  *
- * @class
  * @abstract
+ * @class
  * @extends OO.ui.Widget
  * @mixins OO.ui.IconedElement
  *
@@ -2662,7 +2687,7 @@ OO.ui.Tool = function OoUiTool( toolGroup, config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Widget.call( this, config );
+       OO.ui.Tool.super.call( this, config );
 
        // Mixin constructors
        OO.ui.IconedElement.call( this, this.$( '<span>' ), config );
@@ -2707,6 +2732,10 @@ OO.mixinClass( OO.ui.Tool, OO.ui.IconedElement );
 
 /* Static Properties */
 
+/**
+ * @static
+ * @inheritdoc
+ */
 OO.ui.Tool.static.tagName = 'span';
 
 /**
@@ -2745,22 +2774,31 @@ OO.ui.Tool.static.group = '';
 OO.ui.Tool.static.title = '';
 
 /**
- * Tool can be automatically added to tool groups.
+ * Tool can be automatically added to catch-all groups.
+ *
+ * @static
+ * @property {boolean}
+ * @inheritable
+ */
+OO.ui.Tool.static.autoAddToCatchall = true;
+
+/**
+ * Tool can be automatically added to named groups.
  *
  * @static
  * @property {boolean}
  * @inheritable
  */
-OO.ui.Tool.static.autoAdd = true;
+OO.ui.Tool.static.autoAddToGroup = true;
 
 /**
  * Check if this tool is compatible with given data.
  *
- * @method
  * @static
+ * @method
  * @inheritable
  * @param {Mixed} data Data to check
- * @returns {boolean} Tool can be used with data
+ * @return {boolean} Tool can be used with data
  */
 OO.ui.Tool.static.isCompatibleWith = function () {
        return false;
@@ -2774,7 +2812,6 @@ OO.ui.Tool.static.isCompatibleWith = function () {
  * This is an abstract method that must be overridden in a concrete subclass.
  *
  * @abstract
- * @method
  */
 OO.ui.Tool.prototype.onUpdateState = function () {
        throw new Error(
@@ -2788,7 +2825,6 @@ OO.ui.Tool.prototype.onUpdateState = function () {
  * This is an abstract method that must be overridden in a concrete subclass.
  *
  * @abstract
- * @method
  */
 OO.ui.Tool.prototype.onSelect = function () {
        throw new Error(
@@ -2799,7 +2835,6 @@ OO.ui.Tool.prototype.onSelect = function () {
 /**
  * Check if the button is active.
  *
- * @method
  * @param {boolean} Button is active
  */
 OO.ui.Tool.prototype.isActive = function () {
@@ -2809,7 +2844,6 @@ OO.ui.Tool.prototype.isActive = function () {
 /**
  * Make the button appear active or inactive.
  *
- * @method
  * @param {boolean} state Make button appear active
  */
 OO.ui.Tool.prototype.setActive = function ( state ) {
@@ -2824,7 +2858,6 @@ OO.ui.Tool.prototype.setActive = function ( state ) {
 /**
  * Get the tool title.
  *
- * @method
  * @param {string|Function} title Title text or a function that returns text
  * @chainable
  */
@@ -2837,8 +2870,7 @@ OO.ui.Tool.prototype.setTitle = function ( title ) {
 /**
  * Get the tool title.
  *
- * @method
- * @returns {string} Title text
+ * @return {string} Title text
  */
 OO.ui.Tool.prototype.getTitle = function () {
        return this.title;
@@ -2847,8 +2879,7 @@ OO.ui.Tool.prototype.getTitle = function () {
 /**
  * Get the tool's symbolic name.
  *
- * @method
- * @returns {string} Symbolic name of tool
+ * @return {string} Symbolic name of tool
  */
 OO.ui.Tool.prototype.getName = function () {
        return this.constructor.static.name;
@@ -2856,8 +2887,6 @@ OO.ui.Tool.prototype.getName = function () {
 
 /**
  * Update the title.
- *
- * @method
  */
 OO.ui.Tool.prototype.updateTitle = function () {
        var titleTooltips = this.toolGroup.constructor.static.titleTooltips,
@@ -2888,8 +2917,6 @@ OO.ui.Tool.prototype.updateTitle = function () {
 
 /**
  * Destroy tool.
- *
- * @method
  */
 OO.ui.Tool.prototype.destroy = function () {
        this.toolbar.disconnect( this );
@@ -2904,7 +2931,7 @@ OO.ui.Tool.prototype.destroy = function () {
  * @mixins OO.ui.GroupElement
  *
  * @constructor
- * @param {OO.Factory} toolFactory Factory for creating tools
+ * @param {OO.ui.ToolFactory} toolFactory Factory for creating tools
  * @param {Object} [config] Configuration options
  * @cfg {boolean} [actions] Add an actions section opposite to the tools
  * @cfg {boolean} [shadow] Add a shadow below the toolbar
@@ -2914,7 +2941,7 @@ OO.ui.Toolbar = function OoUiToolbar( toolFactory, config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Element.call( this, config );
+       OO.ui.Toolbar.super.call( this, config );
 
        // Mixin constructors
        OO.EventEmitter.call( this );
@@ -2959,8 +2986,7 @@ OO.mixinClass( OO.ui.Toolbar, OO.ui.GroupElement );
 /**
  * Get the tool factory.
  *
- * @method
- * @returns {OO.Factory} Tool factory
+ * @return {OO.ui.ToolFactory} Tool factory
  */
 OO.ui.Toolbar.prototype.getToolFactory = function () {
        return this.toolFactory;
@@ -2969,7 +2995,6 @@ OO.ui.Toolbar.prototype.getToolFactory = function () {
 /**
  * Handles mouse down events.
  *
- * @method
  * @param {jQuery.Event} e Mouse down event
  */
 OO.ui.Toolbar.prototype.onMouseDown = function ( e ) {
@@ -2992,11 +3017,11 @@ OO.ui.Toolbar.prototype.initialize = function () {
  * Setup toolbar.
  *
  * Tools can be specified in the following ways:
- *  - A specific tool: `{ 'name': 'tool-name' }` or `'tool-name'`
- *  - All tools in a group: `{ 'group': 'group-name' }`
- *  - All tools: `'*'` - Using this will make the group a list with a "More" label by default
  *
- * @method
+ * - A specific tool: `{ 'name': 'tool-name' }` or `'tool-name'`
+ * - All tools in a group: `{ 'group': 'group-name' }`
+ * - All tools: `'*'` - Using this will make the group a list with a "More" label by default
+ *
  * @param {Object.<string,Array>} groups List of tool group configurations
  * @param {Array|string} [groups.include] Tools to include
  * @param {Array|string} [groups.exclude] Tools to exclude
@@ -3095,7 +3120,7 @@ OO.ui.Toolbar.prototype.releaseTool = function ( tool ) {
  * This is a stub that should be overridden to provide access to accelerator information.
  *
  * @param {string} name Symbolic name of tool
- * @returns {string|undefined} Tool accelerator label if available
+ * @return {string|undefined} Tool accelerator label if available
  */
 OO.ui.Toolbar.prototype.getToolAccelerator = function () {
        return undefined;
@@ -3109,7 +3134,7 @@ OO.ui.Toolbar.prototype.getToolAccelerator = function () {
  */
 OO.ui.ToolFactory = function OoUiToolFactory() {
        // Parent constructor
-       OO.Factory.call( this );
+       OO.ui.ToolFactory.super.call( this );
 };
 
 /* Inheritance */
@@ -3118,6 +3143,7 @@ OO.inheritClass( OO.ui.ToolFactory, OO.Factory );
 
 /* Methods */
 
+/** */
 OO.ui.ToolFactory.prototype.getTools = function ( include, exclude, promote, demote ) {
        var i, len, included, promoted, demoted,
                auto = [],
@@ -3144,14 +3170,15 @@ OO.ui.ToolFactory.prototype.getTools = function ( include, exclude, promote, dem
  * Get a flat list of names from a list of names or groups.
  *
  * Tools can be specified in the following ways:
- *  - A specific tool: `{ 'name': 'tool-name' }` or `'tool-name'`
- *  - All tools in a group: `{ 'group': 'group-name' }`
- *  - All tools: `'*'`
+ *
+ * - A specific tool: `{ 'name': 'tool-name' }` or `'tool-name'`
+ * - All tools in a group: `{ 'group': 'group-name' }`
+ * - All tools: `'*'`
  *
  * @private
  * @param {Array|string} collection List of tools
  * @param {Object} [used] Object with names that should be skipped as properties; extracted
- *   names will be added as properties
+ *  names will be added as properties
  * @return {string[]} List of extracted names
  */
 OO.ui.ToolFactory.prototype.extract = function ( collection, used ) {
@@ -3163,7 +3190,7 @@ OO.ui.ToolFactory.prototype.extract = function ( collection, used ) {
                        tool = this.registry[name];
                        if (
                                // Only add tools by group name when auto-add is enabled
-                               tool.static.autoAdd &&
+                               tool.static.autoAddToCatchall &&
                                // Exclude already used tools
                                ( !used || !used[name] )
                        ) {
@@ -3188,7 +3215,7 @@ OO.ui.ToolFactory.prototype.extract = function ( collection, used ) {
                                                        // Include tools with matching group
                                                        tool.static.group === item.group &&
                                                        // Only add tools by group name when auto-add is enabled
-                                                       tool.static.autoAdd &&
+                                                       tool.static.autoAddToGroup &&
                                                        // Exclude already used tools
                                                        ( !used || !used[name] )
                                                ) {
@@ -3214,16 +3241,17 @@ OO.ui.ToolFactory.prototype.extract = function ( collection, used ) {
 /**
  * Collection of tools.
  *
- * @class
+ * Tools can be specified in the following ways:
+ *
+ * - A specific tool: `{ 'name': 'tool-name' }` or `'tool-name'`
+ * - All tools in a group: `{ 'group': 'group-name' }`
+ * - All tools: `'*'`
+ *
  * @abstract
+ * @class
  * @extends OO.ui.Widget
  * @mixins OO.ui.GroupElement
  *
- * Tools can be specified in the following ways:
- *  - A specific tool: `{ 'name': 'tool-name' }` or `'tool-name'`
- *  - All tools in a group: `{ 'group': 'group-name' }`
- *  - All tools: `'*'`
- *
  * @constructor
  * @param {OO.ui.Toolbar} toolbar
  * @param {Object} [config] Configuration options
@@ -3237,7 +3265,7 @@ OO.ui.ToolGroup = function OoUiToolGroup( toolbar, config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Widget.call( this, config );
+       OO.ui.ToolGroup.super.call( this, config );
 
        // Mixin constructors
        OO.ui.GroupElement.call( this, this.$( '<div>' ), config );
@@ -3306,7 +3334,6 @@ OO.ui.ToolGroup.static.accelTooltips = false;
 /**
  * Handle mouse down events.
  *
- * @method
  * @param {jQuery.Event} e Mouse down event
  */
 OO.ui.ToolGroup.prototype.onMouseDown = function ( e ) {
@@ -3325,7 +3352,6 @@ OO.ui.ToolGroup.prototype.onMouseDown = function ( e ) {
 /**
  * Handle captured mouse up events.
  *
- * @method
  * @param {Event} e Mouse up event
  */
 OO.ui.ToolGroup.prototype.onCapturedMouseUp = function ( e ) {
@@ -3338,7 +3364,6 @@ OO.ui.ToolGroup.prototype.onCapturedMouseUp = function ( e ) {
 /**
  * Handle mouse up events.
  *
- * @method
  * @param {jQuery.Event} e Mouse up event
  */
 OO.ui.ToolGroup.prototype.onMouseUp = function ( e ) {
@@ -3355,7 +3380,6 @@ OO.ui.ToolGroup.prototype.onMouseUp = function ( e ) {
 /**
  * Handle mouse over events.
  *
- * @method
  * @param {jQuery.Event} e Mouse over event
  */
 OO.ui.ToolGroup.prototype.onMouseOver = function ( e ) {
@@ -3369,7 +3393,6 @@ OO.ui.ToolGroup.prototype.onMouseOver = function ( e ) {
 /**
  * Handle mouse out events.
  *
- * @method
  * @param {jQuery.Event} e Mouse out event
  */
 OO.ui.ToolGroup.prototype.onMouseOut = function ( e ) {
@@ -3386,10 +3409,9 @@ OO.ui.ToolGroup.prototype.onMouseOut = function ( e ) {
  * Only tool links are considered, which prevents other elements in the tool such as popups from
  * triggering tool group interactions.
  *
- * @method
  * @private
  * @param {jQuery.Event} e
- * @returns {OO.ui.Tool|null} Tool, `null` if none was found
+ * @return {OO.ui.Tool|null} Tool, `null` if none was found
  */
 OO.ui.ToolGroup.prototype.getTargetTool = function ( e ) {
        var tool,
@@ -3406,6 +3428,7 @@ OO.ui.ToolGroup.prototype.getTargetTool = function ( e ) {
  * Handle tool registry register events.
  *
  * If a tool is registered after the group is created, we must repopulate the list to account for:
+ *
  * - a tool being added that may be included
  * - a tool already included being overridden
  *
@@ -3426,8 +3449,6 @@ OO.ui.ToolGroup.prototype.getToolbar = function () {
 
 /**
  * Add and remove tools based on configuration.
- *
- * @method
  */
 OO.ui.ToolGroup.prototype.populate = function () {
        var i, len, name, tool,
@@ -3483,8 +3504,6 @@ OO.ui.ToolGroup.prototype.populate = function () {
 
 /**
  * Destroy tool group.
- *
- * @method
  */
 OO.ui.ToolGroup.prototype.destroy = function () {
        var name;
@@ -3519,7 +3538,7 @@ OO.ui.FieldsetLayout = function OoUiFieldsetLayout( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Layout.call( this, config );
+       OO.ui.FieldsetLayout.super.call( this, config );
 
        // Mixin constructors
        OO.ui.IconedElement.call( this, this.$( '<div>' ), config );
@@ -3573,7 +3592,7 @@ OO.ui.FieldLayout = function OoUiFieldLayout( field, config ) {
        config = $.extend( { 'align': 'left' }, config );
 
        // Parent constructor
-       OO.ui.Layout.call( this, config );
+       OO.ui.FieldLayout.super.call( this, config );
 
        // Mixin constructors
        OO.ui.LabeledElement.call( this, this.$( '<label>' ), config );
@@ -3671,7 +3690,7 @@ OO.ui.GridLayout = function OoUiGridLayout( panels, config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Layout.call( this, config );
+       OO.ui.GridLayout.super.call( this, config );
 
        // Properties
        this.panels = [];
@@ -3834,7 +3853,7 @@ OO.ui.BookletLayout = function OoUiBookletLayout( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Layout.call( this, config );
+       OO.ui.BookletLayout.super.call( this, config );
 
        // Properties
        this.currentPageName = null;
@@ -3842,6 +3861,7 @@ OO.ui.BookletLayout = function OoUiBookletLayout( config ) {
        this.ignoreFocus = false;
        this.stackLayout = new OO.ui.StackLayout( { '$': this.$, 'continuous': !!config.continuous } );
        this.autoFocus = !!config.autoFocus;
+       this.outlineVisible = false;
        this.outlined = !!config.outlined;
        if ( this.outlined ) {
                this.editable = !!config.editable;
@@ -3852,6 +3872,7 @@ OO.ui.BookletLayout = function OoUiBookletLayout( config ) {
                this.gridLayout = new OO.ui.GridLayout(
                        [this.outlinePanel, this.stackLayout], { '$': this.$, 'widths': [1, 2] }
                );
+               this.outlineVisible = true;
                if ( this.editable ) {
                        this.outlineControlsWidget = new OO.ui.OutlineControlsWidget(
                                this.outlineWidget,
@@ -3865,8 +3886,10 @@ OO.ui.BookletLayout = function OoUiBookletLayout( config ) {
        if ( this.outlined ) {
                this.outlineWidget.connect( this, { 'select': 'onOutlineWidgetSelect' } );
        }
-       // Event 'focus' does not bubble, but 'focusin' does
-       this.stackLayout.onDOMEvent( 'focusin', OO.ui.bind( this.onStackLayoutFocus, this ) );
+       if ( this.autoFocus ) {
+               // Event 'focus' does not bubble, but 'focusin' does
+               this.stackLayout.onDOMEvent( 'focusin', OO.ui.bind( this.onStackLayoutFocus, this ) );
+       }
 
        // Initialization
        this.$element.addClass( 'oo-ui-bookletLayout' );
@@ -3984,6 +4007,32 @@ OO.ui.BookletLayout.prototype.isEditable = function () {
        return this.editable;
 };
 
+/**
+ * Check if booklet has editing controls.
+ *
+ * @method
+ * @returns {boolean} Booklet is outlined
+ */
+OO.ui.BookletLayout.prototype.isOutlineVisible = function () {
+       return this.outlined && this.outlineVisible;
+};
+
+/**
+ * Hide or show the outline.
+ *
+ * @param {boolean} [show] Show outline, omit to invert current state
+ * @chainable
+ */
+OO.ui.BookletLayout.prototype.toggleOutline = function ( show ) {
+       if ( this.outlined ) {
+               show = show === undefined ? !this.outlineVisible : !!show;
+               this.outlineVisible = show;
+               this.gridLayout.layout( show ? [ 1, 2 ] : [ 0, 1 ], [ 1 ] );
+       }
+
+       return this;
+};
+
 /**
  * Get the outline widget.
  *
@@ -4185,21 +4234,22 @@ OO.ui.BookletLayout.prototype.setPage = function ( name ) {
        var selectedItem,
                page = this.pages[name];
 
-       if ( this.outlined ) {
-               selectedItem = this.outlineWidget.getSelectedItem();
-               if ( selectedItem && selectedItem.getData() !== name ) {
-                       this.outlineWidget.selectItem( this.outlineWidget.getItemFromData( name ) );
+       if ( name !== this.currentPageName ) {
+               if ( this.outlined ) {
+                       selectedItem = this.outlineWidget.getSelectedItem();
+                       if ( selectedItem && selectedItem.getData() !== name ) {
+                               this.outlineWidget.selectItem( this.outlineWidget.getItemFromData( name ) );
+                       }
                }
-       }
-
-       if ( page ) {
-               if ( this.currentPageName && this.pages[this.currentPageName] ) {
-                       this.pages[this.currentPageName].setActive( false );
+               if ( page ) {
+                       if ( this.currentPageName && this.pages[this.currentPageName] ) {
+                               this.pages[this.currentPageName].setActive( false );
+                       }
+                       this.currentPageName = name;
+                       this.stackLayout.setItem( page );
+                       page.setActive( true );
+                       this.emit( 'set', page );
                }
-               this.currentPageName = name;
-               this.stackLayout.setItem( page );
-               page.setActive( true );
-               this.emit( 'set', page );
        }
 };
 
@@ -4233,7 +4283,7 @@ OO.ui.PanelLayout = function OoUiPanelLayout( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Layout.call( this, config );
+       OO.ui.PanelLayout.super.call( this, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-panelLayout' );
@@ -4268,7 +4318,7 @@ OO.ui.PageLayout = function OoUiPageLayout( name, config ) {
        config = $.extend( { 'scrollable': true }, config );
 
        // Parent constructor
-       OO.ui.PanelLayout.call( this, config );
+       OO.ui.PageLayout.super.call( this, config );
 
        // Properties
        this.name = name;
@@ -4363,7 +4413,7 @@ OO.ui.StackLayout = function OoUiStackLayout( config ) {
        config = $.extend( { 'scrollable': true }, config );
 
        // Parent constructor
-       OO.ui.PanelLayout.call( this, config );
+       OO.ui.StackLayout.super.call( this, config );
 
        // Mixin constructors
        OO.ui.GroupElement.call( this, this.$element, config );
@@ -4463,18 +4513,20 @@ OO.ui.StackLayout.prototype.clearItems = function () {
  * @chainable
  */
 OO.ui.StackLayout.prototype.setItem = function ( item ) {
-       if ( !this.continuous ) {
-               this.$items.css( 'display', '' );
-       }
-       if ( $.inArray( item, this.items ) !== -1 ) {
+       if ( item !== this.currentItem ) {
                if ( !this.continuous ) {
-                       item.$element.css( 'display', 'block' );
+                       this.$items.css( 'display', '' );
                }
-       } else {
-               item = null;
+               if ( $.inArray( item, this.items ) !== -1 ) {
+                       if ( !this.continuous ) {
+                               item.$element.css( 'display', 'block' );
+                       }
+               } else {
+                       item = null;
+               }
+               this.currentItem = item;
+               this.emit( 'set', item );
        }
-       this.currentItem = item;
-       this.emit( 'set', item );
 
        return this;
 };
@@ -4491,7 +4543,7 @@ OO.ui.StackLayout.prototype.setItem = function ( item ) {
  */
 OO.ui.BarToolGroup = function OoUiBarToolGroup( toolbar, config ) {
        // Parent constructor
-       OO.ui.ToolGroup.call( this, toolbar, config );
+       OO.ui.BarToolGroup.super.call( this, toolbar, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-barToolGroup' );
@@ -4527,7 +4579,7 @@ OO.ui.PopupToolGroup = function OoUiPopupToolGroup( toolbar, config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.ToolGroup.call( this, toolbar, config );
+       OO.ui.PopupToolGroup.super.call( this, toolbar, config );
 
        // Mixin constructors
        OO.ui.IconedElement.call( this, this.$( '<span>' ), config );
@@ -4654,7 +4706,7 @@ OO.ui.PopupToolGroup.prototype.setActive = function ( value ) {
  */
 OO.ui.ListToolGroup = function OoUiListToolGroup( toolbar, config ) {
        // Parent constructor
-       OO.ui.PopupToolGroup.call( this, toolbar, config );
+       OO.ui.ListToolGroup.super.call( this, toolbar, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-listToolGroup' );
@@ -4683,7 +4735,7 @@ OO.ui.MenuToolGroup = function OoUiMenuToolGroup( toolbar, config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.PopupToolGroup.call( this, toolbar, config );
+       OO.ui.MenuToolGroup.super.call( this, toolbar, config );
 
        // Events
        this.toolbar.connect( this, { 'updateState': 'onUpdateState' } );
@@ -4736,7 +4788,7 @@ OO.ui.MenuToolGroup.prototype.onUpdateState = function () {
  */
 OO.ui.PopupTool = function OoUiPopupTool( toolbar, config ) {
        // Parent constructor
-       OO.ui.Tool.call( this, toolbar, config );
+       OO.ui.PopupTool.super.call( this, toolbar, config );
 
        // Mixin constructors
        OO.ui.PopuppableElement.call( this, config );
@@ -4795,7 +4847,7 @@ OO.ui.PopupTool.prototype.onUpdateState = function () {
  */
 OO.ui.GroupWidget = function OoUiGroupWidget( $element, config ) {
        // Parent constructor
-       OO.ui.GroupElement.call( this, $element, config );
+       OO.ui.GroupWidget.super.call( this, $element, config );
 };
 
 /* Inheritance */
@@ -4871,6 +4923,78 @@ OO.ui.ItemWidget.prototype.setElementGroup = function ( group ) {
 
        return this;
 };
+/**
+ * Creates an OO.ui.IconWidget object.
+ *
+ * @class
+ * @extends OO.ui.Widget
+ * @mixins OO.ui.IconedElement
+ * @mixins OO.ui.TitledElement
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+OO.ui.IconWidget = function OoUiIconWidget( config ) {
+       // Config intialization
+       config = config || {};
+
+       // Parent constructor
+       OO.ui.IconWidget.super.call( this, config );
+
+       // Mixin constructors
+       OO.ui.IconedElement.call( this, this.$element, config );
+       OO.ui.TitledElement.call( this, this.$element, config );
+
+       // Initialization
+       this.$element.addClass( 'oo-ui-iconWidget' );
+};
+
+/* Inheritance */
+
+OO.inheritClass( OO.ui.IconWidget, OO.ui.Widget );
+
+OO.mixinClass( OO.ui.IconWidget, OO.ui.IconedElement );
+OO.mixinClass( OO.ui.IconWidget, OO.ui.TitledElement );
+
+/* Static Properties */
+
+OO.ui.IconWidget.static.tagName = 'span';
+/**
+ * Creates an OO.ui.IndicatorWidget object.
+ *
+ * @class
+ * @extends OO.ui.Widget
+ * @mixins OO.ui.IndicatedElement
+ * @mixins OO.ui.TitledElement
+ *
+ * @constructor
+ * @param {Object} [config] Configuration options
+ */
+OO.ui.IndicatorWidget = function OoUiIndicatorWidget( config ) {
+       // Config intialization
+       config = config || {};
+
+       // Parent constructor
+       OO.ui.IndicatorWidget.super.call( this, config );
+
+       // Mixin constructors
+       OO.ui.IndicatedElement.call( this, this.$element, config );
+       OO.ui.TitledElement.call( this, this.$element, config );
+
+       // Initialization
+       this.$element.addClass( 'oo-ui-indicatorWidget' );
+};
+
+/* Inheritance */
+
+OO.inheritClass( OO.ui.IndicatorWidget, OO.ui.Widget );
+
+OO.mixinClass( OO.ui.IndicatorWidget, OO.ui.IndicatedElement );
+OO.mixinClass( OO.ui.IndicatorWidget, OO.ui.TitledElement );
+
+/* Static Properties */
+
+OO.ui.IndicatorWidget.static.tagName = 'span';
 /**
  * Container for multiple related buttons.
  *
@@ -4884,7 +5008,7 @@ OO.ui.ItemWidget.prototype.setElementGroup = function ( group ) {
  */
 OO.ui.ButtonGroupWidget = function OoUiButtonGroupWidget( config ) {
        // Parent constructor
-       OO.ui.Widget.call( this, config );
+       OO.ui.ButtonGroupWidget.super.call( this, config );
 
        // Mixin constructors
        OO.ui.GroupElement.call( this, this.$element, config );
@@ -4925,7 +5049,7 @@ OO.ui.ButtonWidget = function OoUiButtonWidget( config ) {
        config = $.extend( { 'target': '_blank' }, config );
 
        // Parent constructor
-       OO.ui.Widget.call( this, config );
+       OO.ui.ButtonWidget.super.call( this, config );
 
        // Mixin constructors
        OO.ui.ButtonedElement.call( this, this.$( '<a>' ), config );
@@ -5024,7 +5148,7 @@ OO.ui.InputWidget = function OoUiInputWidget( config ) {
        config = $.extend( { 'readOnly': false }, config );
 
        // Parent constructor
-       OO.ui.Widget.call( this, config );
+       OO.ui.InputWidget.super.call( this, config );
 
        // Properties
        this.$input = this.getInputElement( config );
@@ -5211,7 +5335,7 @@ OO.ui.InputWidget.prototype.setDisabled = function ( state ) {
  */
 OO.ui.CheckboxInputWidget = function OoUiCheckboxInputWidget( config ) {
        // Parent constructor
-       OO.ui.InputWidget.call( this, config );
+       OO.ui.CheckboxInputWidget.super.call( this, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-checkboxInputWidget' );
@@ -5281,7 +5405,7 @@ OO.ui.LabelWidget = function OoUiLabelWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Widget.call( this, config );
+       OO.ui.LabelWidget.super.call( this, config );
 
        // Mixin constructors
        OO.ui.LabeledElement.call( this, this.$element, config );
@@ -5576,7 +5700,7 @@ OO.ui.OptionWidget = function OoUiOptionWidget( data, config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Widget.call( this, config );
+       OO.ui.OptionWidget.super.call( this, config );
 
        // Mixin constructors
        OO.ui.ItemWidget.call( this );
@@ -5750,7 +5874,7 @@ OO.ui.SelectWidget = function OoUiSelectWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Widget.call( this, config );
+       OO.ui.SelectWidget.super.call( this, config );
 
        // Mixin constructors
        OO.ui.GroupWidget.call( this, this.$element, config );
@@ -6197,7 +6321,7 @@ OO.ui.MenuItemWidget = function OoUiMenuItemWidget( data, config ) {
        config = $.extend( { 'icon': 'check' }, config );
 
        // Parent constructor
-       OO.ui.OptionWidget.call( this, data, config );
+       OO.ui.MenuItemWidget.super.call( this, data, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-menuItemWidget' );
@@ -6222,7 +6346,7 @@ OO.ui.MenuWidget = function OoUiMenuWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.SelectWidget.call( this, config );
+       OO.ui.MenuWidget.super.call( this, config );
 
        // Mixin constructors
        OO.ui.ClippableElement.call( this, this.$group, config );
@@ -6467,7 +6591,7 @@ OO.ui.InlineMenuWidget = function OoUiInlineMenuWidget( config ) {
        config = $.extend( { 'indicator': 'down' }, config );
 
        // Parent constructor
-       OO.ui.Widget.call( this, config );
+       OO.ui.InlineMenuWidget.super.call( this, config );
 
        // Mixin constructors
        OO.ui.IconedElement.call( this, this.$( '<span>' ), config );
@@ -6555,7 +6679,7 @@ OO.ui.InlineMenuWidget.prototype.onClick = function ( e ) {
  */
 OO.ui.MenuSectionItemWidget = function OoUiMenuSectionItemWidget( data, config ) {
        // Parent constructor
-       OO.ui.OptionWidget.call( this, data, config );
+       OO.ui.MenuSectionItemWidget.super.call( this, data, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-menuSectionItemWidget' );
@@ -6582,7 +6706,7 @@ OO.ui.OutlineWidget = function OoUiOutlineWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.SelectWidget.call( this, config );
+       OO.ui.OutlineWidget.super.call( this, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-outlineWidget' );
@@ -6605,7 +6729,7 @@ OO.ui.OutlineControlsWidget = function OoUiOutlineControlsWidget( outline, confi
        config = $.extend( { 'icon': 'add-item' }, config );
 
        // Parent constructor
-       OO.ui.Widget.call( this, config );
+       OO.ui.OutlineControlsWidget.super.call( this, config );
 
        // Mixin constructors
        OO.ui.GroupElement.call( this, this.$( '<div>' ), config );
@@ -6722,7 +6846,7 @@ OO.ui.OutlineItemWidget = function OoUiOutlineItemWidget( data, config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.OptionWidget.call( this, data, config );
+       OO.ui.OutlineItemWidget.super.call( this, data, config );
 
        // Properties
        this.level = 0;
@@ -6831,7 +6955,7 @@ OO.ui.OutlineItemWidget.prototype.setLevel = function ( level ) {
        return this;
 };
 /**
- * Create an OO.ui.ButtonSelect object.
+ * Create an OO.ui.ButtonOptionWidget object.
  *
  * @class
  * @extends OO.ui.OptionWidget
@@ -6844,7 +6968,7 @@ OO.ui.OutlineItemWidget.prototype.setLevel = function ( level ) {
  */
 OO.ui.ButtonOptionWidget = function OoUiButtonOptionWidget( data, config ) {
        // Parent constructor
-       OO.ui.OptionWidget.call( this, data, config );
+       OO.ui.ButtonOptionWidget.super.call( this, data, config );
 
        // Mixin constructors
        OO.ui.ButtonedElement.call( this, this.$( '<a>' ), config );
@@ -6886,7 +7010,7 @@ OO.ui.ButtonOptionWidget.prototype.setSelected = function ( state ) {
  */
 OO.ui.ButtonSelectWidget = function OoUiButtonSelectWidget( config ) {
        // Parent constructor
-       OO.ui.SelectWidget.call( this, config );
+       OO.ui.ButtonSelectWidget.super.call( this, config );
 
        // Initialization
        this.$element.addClass( 'oo-ui-buttonSelectWidget' );
@@ -6916,16 +7040,17 @@ OO.ui.PopupWidget = function OoUiPopupWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Widget.call( this, config );
+       OO.ui.PopupWidget.super.call( this, config );
 
        // Mixin constructors
        OO.ui.LabeledElement.call( this, this.$( '<div>' ), config );
+       OO.ui.ClippableElement.call( this, this.$( '<div>' ), config );
 
        // Properties
        this.visible = false;
        this.$popup = this.$( '<div>' );
        this.$head = this.$( '<div>' );
-       this.$body = this.$( '<div>' );
+       this.$body = this.$clippable;
        this.$tail = this.$( '<div>' );
        this.$container = config.$container || this.$( 'body' );
        this.autoClose = !!config.autoClose;
@@ -6963,6 +7088,8 @@ OO.inheritClass( OO.ui.PopupWidget, OO.ui.Widget );
 
 OO.mixinClass( OO.ui.PopupWidget, OO.ui.LabeledElement );
 
+OO.mixinClass( OO.ui.PopupWidget, OO.ui.ClippableElement );
+
 /* Events */
 
 /**
@@ -7068,6 +7195,7 @@ OO.ui.PopupWidget.prototype.hasTail = function () {
  */
 OO.ui.PopupWidget.prototype.show = function () {
        if ( !this.visible ) {
+               this.setClipping( true );
                this.$element.show();
                this.visible = true;
                this.emit( 'show' );
@@ -7087,6 +7215,7 @@ OO.ui.PopupWidget.prototype.show = function () {
  */
 OO.ui.PopupWidget.prototype.hide = function () {
        if ( this.visible ) {
+               this.setClipping( false );
                this.$element.hide();
                this.visible = false;
                this.emit( 'hide' );
@@ -7162,7 +7291,7 @@ OO.ui.PopupWidget.prototype.display = function ( width, height, transition ) {
  */
 OO.ui.PopupButtonWidget = function OoUiPopupButtonWidget( config ) {
        // Parent constructor
-       OO.ui.ButtonWidget.call( this, config );
+       OO.ui.PopupButtonWidget.super.call( this, config );
 
        // Mixin constructors
        OO.ui.PopuppableElement.call( this, config );
@@ -7219,7 +7348,7 @@ OO.ui.SearchWidget = function OoUiSearchWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.Widget.call( this, config );
+       OO.ui.SearchWidget.super.call( this, config );
 
        // Properties
        this.query = new OO.ui.TextInputWidget( {
@@ -7352,6 +7481,13 @@ OO.ui.SearchWidget.prototype.getQuery = function () {
        return this.query;
 };
 
+/**
+ * Reset the widget to initial value.
+ */
+OO.ui.SearchWidget.prototype.clear = function () {
+       this.query.setValue( '' );
+};
+
 /**
  * Get the results list.
  *
@@ -7373,20 +7509,23 @@ OO.ui.SearchWidget.prototype.getResults = function () {
  * @cfg {string} [icon] Symbolic name of icon
  * @cfg {boolean} [multiline=false] Allow multiple lines of text
  * @cfg {boolean} [autosize=false] Automatically resize to fit content
+ * @cfg {boolean} [maxRows=10] Maximum number of rows to make visible when autosizing
  */
 OO.ui.TextInputWidget = function OoUiTextInputWidget( config ) {
-       config = config || {};
+       config = $.extend( { 'maxRows': 10 }, config );
 
        // Parent constructor
-       OO.ui.InputWidget.call( this, config );
+       OO.ui.TextInputWidget.super.call( this, config );
 
        // Properties
        this.pending = 0;
        this.multiline = !!config.multiline;
        this.autosize = !!config.autosize;
+       this.maxRows = config.maxRows;
 
        // Events
        this.$input.on( 'keypress', OO.ui.bind( this.onKeyPress, this ) );
+       this.$element.on( 'DOMNodeInsertedIntoDocument', OO.ui.bind( this.onElementAttach, this ) );
 
        // Initialization
        this.$element.addClass( 'oo-ui-textInputWidget' );
@@ -7434,13 +7573,35 @@ OO.ui.TextInputWidget.prototype.onKeyPress = function ( e ) {
        }
 };
 
+/**
+ * Handles element attach events.
+ *
+ * @param {jQuery.Event} e Element attach event
+ */
+OO.ui.TextInputWidget.prototype.onElementAttach = function () {
+       this.adjustSize();
+};
+
 /**
  * @inheritdoc
  */
 OO.ui.TextInputWidget.prototype.onEdit = function () {
-       var $clone, scrollHeight, innerHeight, outerHeight;
+       this.adjustSize();
+
+       // Parent method
+       return OO.ui.InputWidget.prototype.onEdit.call( this );
+};
+
+/**
+ * Automatically adjust the size of the text input.
+ *
+ * This only affects multi-line inputs that are auto-sized.
+ *
+ * @chainable
+ */
+OO.ui.TextInputWidget.prototype.adjustSize = function() {
+       var $clone, scrollHeight, innerHeight, outerHeight, maxInnerHeight, idealHeight;
 
-       // Automatic size adjustment
        if ( this.multiline && this.autosize ) {
                $clone = this.$input.clone()
                        .val( this.$input.val() )
@@ -7452,17 +7613,20 @@ OO.ui.TextInputWidget.prototype.onEdit = function () {
                $clone.css( 'height', '' );
                innerHeight = $clone.innerHeight();
                outerHeight = $clone.outerHeight();
+               // Measure max rows height
+               $clone.attr( 'rows', this.maxRows ).css( 'height', 'auto' );
+               maxInnerHeight = $clone.innerHeight();
+               $clone.removeAttr( 'rows' ).css( 'height', '' );
                $clone.remove();
+               idealHeight = Math.min( maxInnerHeight, scrollHeight );
                // Only apply inline height when expansion beyond natural height is needed
                this.$input.css(
                        'height',
                        // Use the difference between the inner and outer height as a buffer
-                       scrollHeight > outerHeight ? scrollHeight + ( outerHeight - innerHeight ) : ''
+                       idealHeight > outerHeight ? idealHeight + ( outerHeight - innerHeight ) : ''
                );
        }
-
-       // Parent method
-       return OO.ui.InputWidget.prototype.onEdit.call( this );
+       return this;
 };
 
 /**
@@ -7550,7 +7714,7 @@ OO.ui.TextInputWidget.prototype.popPending = function () {
  */
 OO.ui.TextInputMenuWidget = function OoUiTextInputMenuWidget( input, config ) {
        // Parent constructor
-       OO.ui.MenuWidget.call( this, config );
+       OO.ui.TextInputMenuWidget.super.call( this, config );
 
        // Properties
        this.input = input;
@@ -7714,7 +7878,7 @@ OO.ui.ToggleButtonWidget = function OoUiToggleButtonWidget( config ) {
        config = config || {};
 
        // Parent constructor
-       OO.ui.ButtonWidget.call( this, config );
+       OO.ui.ToggleButtonWidget.super.call( this, config );
 
        // Mixin constructors
        OO.ui.ToggleWidget.call( this, config );
@@ -7769,7 +7933,7 @@ OO.ui.ToggleButtonWidget.prototype.setValue = function ( value ) {
  */
 OO.ui.ToggleSwitchWidget = function OoUiToggleSwitchWidget( config ) {
        // Parent constructor
-       OO.ui.Widget.call( this, config );
+       OO.ui.ToggleSwitchWidget.super.call( this, config );
 
        // Mixin constructors
        OO.ui.ToggleWidget.call( this, config );
index 718d960..b546253 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs UI v0.1.0-pre (51f922ba17)
+ * OOjs UI v0.1.0
  * https://www.mediawiki.org/wiki/OOjs_UI
  *
  * Copyright 2011–2014 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: Fri Feb 28 2014 16:33:26 GMT-0800 (PST)
+ * Date: Mon Mar 24 2014 17:35:46 GMT-0700 (PDT)
  */
 
 /* Textures */
   left: 0;
   padding: 1em;
   line-height: 1em;
-  background-color: #fff;
-  background-color: rgba(255, 255, 255, 0.5);
-  opacity: 0;
-  -webkit-transition: all 250ms ease-in-out;
-     -moz-transition: all 250ms ease-in-out;
-      -ms-transition: all 250ms ease-in-out;
-       -o-transition: all 250ms ease-in-out;
-          transition: all 250ms ease-in-out;
+  /* Fix for strange opacity-related rendering issues.
+          CAUTION: -webkit-backface-visibility: hidden; is EXTREMELY DANGEROUS.
+          If applied to a VE surface directly, it will break selection of
+          FocusableNodes, and in the past it's caused transparent PNGs to
+          render as opaque black images. For some reason applying it to the dialog
+          wrapper in the main document fixes opacity-related behavior in the iframe
+          document, but doesn't break the surface inside the iframe. */
+
+  -webkit-backface-visibility: hidden;
+          backface-visibility: hidden;
 }
 
 .oo-ui-dialog .oo-ui-window-frame {
   right: 0;
   bottom: 1em;
   left: 0;
-  width: 800px;
-  max-height: 600px;
   min-height: 12em;
   margin: auto;
   overflow: hidden;
-  background-color: #fff;
-  border: solid 1px #ccc;
-  border-radius: 0.5em;
-  -webkit-transform: scale(0.5);
-     -moz-transform: scale(0.5);
-      -ms-transform: scale(0.5);
-       -o-transform: scale(0.5);
-          transform: scale(0.5);
-  box-shadow: 0 0.2em 1em rgba(0, 0, 0, 0.3);
-  -webkit-transition: all 250ms ease-in-out;
-     -moz-transition: all 250ms ease-in-out;
-      -ms-transition: all 250ms ease-in-out;
-       -o-transition: all 250ms ease-in-out;
-          transition: all 250ms ease-in-out;
-}
-
-.oo-ui-dialog .oo-ui-window-frame-small {
-  max-width: 600px;
-  max-height: 400px;
 }
 
-.oo-ui-dialog .oo-ui-frame {
-  width: 100%;
-  height: 100%;
+.oo-ui-dialog-small .oo-ui-window-frame {
+  width: 400px;
+  max-height: 230px;
+}
+
+.oo-ui-dialog-medium .oo-ui-window-frame {
+  width: 600px;
+  max-height: 460px;
 }
 
-.oo-ui-dialog-open {
-  opacity: 1;
+.oo-ui-dialog-large .oo-ui-window-frame {
+  width: 800px;
+  max-height: 690px;
 }
 
-.oo-ui-dialog-open .oo-ui-window-frame {
-  -webkit-transform: scale(1);
-     -moz-transform: scale(1);
-      -ms-transform: scale(1);
-       -o-transform: scale(1);
-          transform: scale(1);
+.oo-ui-dialog .oo-ui-frame {
+  width: 100%;
+  height: 100%;
 }
 
 .oo-ui-dialog-content .oo-ui-window-head,
 .oo-ui-dialog-content .oo-ui-window-body {
   top: 3.8em;
   bottom: 4.8em;
-  box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
 }
 
 .oo-ui-dialog-content .oo-ui-window-foot {
   display: none;
 }
 
-/* OO.ui.ButtonedElement */
+.oo-ui-frame {
+  padding: 0;
+  margin: 0;
+}
+
+.oo-ui-frame-body {
+  padding: 0;
+  margin: 0;
+  background: none;
+}
 
-.oo-ui-buttonedElement .oo-ui-buttonedElement-button {
+.oo-ui-frame-content {
+  font-family: sans-serif;
+  font-size: 0.8em;
+}
+
+.oo-ui-toolbar {
+  clear: both;
+}
+
+.oo-ui-toolbar-bar {
+  line-height: 1em;
+}
+
+.oo-ui-toolbar-bottom .oo-ui-toolbar-bar {
+  position: absolute;
+}
+
+.oo-ui-toolbar-actions {
+  float: right;
+}
+
+.oo-ui-toolbar-tools {
+  float: left;
+}
+
+.oo-ui-toolbar-tools,
+.oo-ui-toolbar-actions,
+.oo-ui-toolbar-shadow {
+  -webkit-user-select: none;
+     -moz-user-select: none;
+      -ms-user-select: none;
+          user-select: none;
+  -webkit-touch-callout: none;
+}
+
+.oo-ui-toolbar-actions .oo-ui-popupWidget {
+  -webkit-user-select: all;
+     -moz-user-select: all;
+      -ms-user-select: all;
+          user-select: all;
+  -webkit-touch-callout: default;
+}
+
+.oo-ui-toolbar-shadow {
+  position: absolute;
+  width: 100%;
+  pointer-events: none;
+  background-position: left top;
+  background-repeat: repeat-x;
+}
+
+.oo-ui-toolGroup {
   display: inline-block;
-  color: #333;
+  margin: 0.3em;
   vertical-align: middle;
-  cursor: pointer;
+}
+
+.oo-ui-toolGroup-empty {
+  display: none;
+}
+
+.oo-ui-toolGroup .oo-ui-tool-link .oo-ui-iconedElement-icon {
+  background-position: center center;
+  background-repeat: no-repeat;
+}
+
+.oo-ui-window-head {
   -webkit-user-select: none;
      -moz-user-select: none;
       -ms-user-select: none;
   -webkit-touch-callout: none;
 }
 
-.oo-ui-buttonedElement .oo-ui-buttonedElement-button > .oo-ui-iconedElement-icon,
-.oo-ui-buttonedElement .oo-ui-buttonedElement-button > .oo-ui-indicatedElement-indicator {
-  display: none;
+.oo-ui-window-body {
+  padding: 0 0.75em;
+}
+
+.oo-ui-window-icon {
+  float: left;
+  width: 2em;
+  height: 2em;
+  margin-right: 0.5em;
+  line-height: 2em;
+  background-position: right center;
+  background-repeat: no-repeat;
+}
+
+.oo-ui-window-title {
+  float: left;
+  line-height: 2em;
+  white-space: nowrap;
+  cursor: default;
+}
+
+.oo-ui-window-overlay {
+  position: absolute;
+  top: 0;
+  left: 0;
+}
+
+.oo-ui-buttonedElement .oo-ui-buttonedElement-button {
+  display: inline-block;
+  vertical-align: middle;
+  cursor: pointer;
+  -webkit-user-select: none;
+     -moz-user-select: none;
+      -ms-user-select: none;
+          user-select: none;
+  -webkit-touch-callout: none;
 }
 
 .oo-ui-buttonedElement .oo-ui-buttonedElement-button > .oo-ui-iconedElement-icon {
+  display: none;
   margin-left: 0;
 }
 
 .oo-ui-buttonedElement .oo-ui-buttonedElement-button > .oo-ui-indicatedElement-indicator {
+  display: none;
   margin-right: -0.75em;
 }
 
   vertical-align: middle;
   background-position: center center;
   background-repeat: no-repeat;
-  opacity: 0.8;
 }
 
 .oo-ui-buttonedElement-frameless {
   position: relative;
   display: inline-block;
-  -webkit-transition: opacity 200ms;
-     -moz-transition: opacity 200ms;
-       -o-transition: opacity 200ms;
-          transition: opacity 200ms;
-}
-
-.oo-ui-buttonedElement-frameless .oo-ui-buttonedElement-button:hover > .oo-ui-iconedElement-icon,
-.oo-ui-buttonedElement-frameless .oo-ui-buttonedElement-button:focus > .oo-ui-iconedElement-icon {
-  opacity: 1;
-}
-
-.oo-ui-buttonedElement-frameless .oo-ui-buttonedElement-button:hover > .oo-ui-labeledElement-label,
-.oo-ui-buttonedElement-frameless .oo-ui-buttonedElement-button:focus > .oo-ui-labeledElement-label {
-  color: #000;
 }
 
 .oo-ui-buttonedElement-frameless .oo-ui-buttonedElement-button > .oo-ui-labeledElement-label {
   display: inline-block;
   margin-left: 0.25em;
-  color: #333;
   vertical-align: middle;
 }
 
-.oo-ui-buttonedElement-frameless.oo-ui-widget-disabled .oo-ui-buttonedElement-button > .oo-ui-iconedElement-icon {
-  opacity: 0.2;
-}
-
-.oo-ui-buttonedElement-frameless.oo-ui-widget-disabled .oo-ui-buttonedElement-button > .oo-ui-labeledElement-label {
-  color: #ccc;
-}
-
 .oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button {
   display: inline-block;
   padding: 0.2em 0.8em;
   margin: 0.1em 0;
-  font-size: 1em;
   text-align: center;
-  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
   vertical-align: top;
-  background: #eeeeee;
-  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #ffffff), color-stop(100%, #dddddd));
-  background-image: -webkit-linear-gradient(top, #ffffff 0%, #dddddd 100%);
-  background-image: -moz-linear-gradient(top, #ffffff 0%, #dddddd 100%);
-  background-image: -ms-linear-gradient(top, #ffffff 0%, #dddddd 100%);
-  background-image: -o-linear-gradient(top, #ffffff 0%, #dddddd 100%);
-  background-image: linear-gradient(top, #ffffff 0%, #dddddd 100%);
-  border: 1px #c9c9c9 solid;
-  border-radius: 0.3em;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd');
-  -webkit-transition: border-color 100ms ease-in-out;
-     -moz-transition: border-color 100ms ease-in-out;
-      -ms-transition: border-color 100ms ease-in-out;
-       -o-transition: border-color 100ms ease-in-out;
-          transition: border-color 100ms ease-in-out;
-}
-
-.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button:hover,
-.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button:focus {
-  border-color: #aaa;
 }
 
 .oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button > .oo-ui-labeledElement-label {
   vertical-align: middle;
 }
 
-.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button.oo-ui-buttonedElement-active,
-.oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button.oo-ui-buttonedElement-pressed {
-  color: black;
-  background: #eeeeee;
-  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #dddddd), color-stop(100%, #ffffff));
-  background-image: -webkit-linear-gradient(top, #dddddd 0%, #ffffff 100%);
-  background-image: -moz-linear-gradient(top, #dddddd 0%, #ffffff 100%);
-  background-image: -ms-linear-gradient(top, #dddddd 0%, #ffffff 100%);
-  background-image: -o-linear-gradient(top, #dddddd 0%, #ffffff 100%);
-  background-image: linear-gradient(top, #dddddd 0%, #ffffff 100%);
-  border-color: #c9c9c9;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#dddddd', endColorstr='#ffffff');
-  box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.07);
-}
-
 .oo-ui-buttonedElement-framed.oo-ui-iconedElement .oo-ui-buttonedElement-button > .oo-ui-iconedElement-icon {
   margin-right: -0.5em;
   margin-left: -0.5em;
 }
 
 .oo-ui-buttonedElement-framed.oo-ui-iconedElement.oo-ui-labeledElement .oo-ui-buttonedElement-button > .oo-ui-iconedElement-icon {
-  margin-right: 0;
+  margin-right: 0.3em;
   margin-left: -0.5em;
 }
 
-.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-primary .oo-ui-buttonedElement-button {
-  background: #cde7f4;
-  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #eaf4fa), color-stop(100%, #b0d9ee));
-  background-image: -webkit-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
-  background-image: -moz-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
-  background-image: -ms-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
-  background-image: -o-linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
-  background-image: linear-gradient(top, #eaf4fa 0%, #b0d9ee 100%);
-  border: solid 1px #a6cee1;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#eaf4fa', endColorstr='#b0d9ee');
-}
-
-.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-primary .oo-ui-buttonedElement-button:hover,
-.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-primary .oo-ui-buttonedElement-button:focus {
-  border-color: #9dc2d4;
-}
-
-.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-primary .oo-ui-buttonedElement-button.oo-ui-buttonedElement-active,
-.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-primary .oo-ui-buttonedElement-button.oo-ui-buttonedElement-pressed {
-  background: #cde7f4;
-  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #b0d9ee), color-stop(100%, #eaf4fa));
-  background-image: -webkit-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
-  background-image: -moz-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
-  background-image: -ms-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
-  background-image: -o-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
-  background-image: linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
-  border: solid 1px #a6cee1;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#b0d9ee', endColorstr='#eaf4fa');
-}
-
-.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-constructive .oo-ui-buttonedElement-button {
-  background: #daf0be;
-  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #f0fbe1), color-stop(100%, #c3e59a));
-  background-image: -webkit-linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
-  background-image: -moz-linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
-  background-image: -ms-linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
-  background-image: -o-linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
-  background-image: linear-gradient(top, #f0fbe1 0%, #c3e59a 100%);
-  border: solid 1px #b8d892;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f0fbe1', endColorstr='#c3e59a');
-}
-
-.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-constructive .oo-ui-buttonedElement-button:hover,
-.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-constructive .oo-ui-buttonedElement-button:focus {
-  border-color: #adcb89;
-}
-
-.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-constructive .oo-ui-buttonedElement-button.oo-ui-buttonedElement-active,
-.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-constructive .oo-ui-buttonedElement-button.oo-ui-buttonedElement-pressed {
-  background: #daf0be;
-  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #c3e59a), color-stop(100%, #f0fbe1));
-  background-image: -webkit-linear-gradient(top, #c3e59a 0%, #f0fbe1 100%);
-  background-image: -moz-linear-gradient(top, #c3e59a 0%, #f0fbe1 100%);
-  background-image: -ms-linear-gradient(top, #c3e59a 0%, #f0fbe1 100%);
-  background-image: -o-linear-gradient(top, #c3e59a 0%, #f0fbe1 100%);
-  background-image: linear-gradient(top, #c3e59a 0%, #f0fbe1 100%);
-  border: solid 1px #b8d892;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#c3e59a', endColorstr='#f0fbe1');
-}
-
-.oo-ui-buttonedElement-framed.oo-ui-flaggableElement-destructive .oo-ui-buttonedElement-button {
-  /* Red text */
-
-  color: #d45353;
-}
-
 .oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button,
 .oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button.oo-ui-buttonedElement-active,
 .oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button.oo-ui-buttonedElement-pressed {
-  color: #333;
   cursor: default;
-  background: #eee;
-  opacity: 0.5;
-  box-shadow: none;
-}
-
-.oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button:hover,
-.oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button.oo-ui-buttonedElement-active:hover,
-.oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button.oo-ui-buttonedElement-pressed:hover,
-.oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button:focus,
-.oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button.oo-ui-buttonedElement-active:focus,
-.oo-ui-buttonedElement-framed.oo-ui-widget-disabled .oo-ui-buttonedElement-button.oo-ui-buttonedElement-pressed:focus {
-  border-color: #ccc;
-  box-shadow: none;
-}
-
-/* OO.ui.LabeledElement */
-
-.oo-ui-labeledElement-label {
-  display: block;
 }
 
-/* OO.ui.ClippableElement */
-
 .oo-ui-clippableElement-clippable {
   -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
           box-sizing: border-box;
 }
 
-/* OO.ui.Frame */
-
-.oo-ui-frame {
-  padding: 0;
-  margin: 0;
+.oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous .oo-ui-panelLayout-scrollable {
+  overflow-y: hidden;
 }
 
-.oo-ui-frame-body {
-  padding: 0;
-  margin: 0;
-  background: none;
+.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
+  width: 100%;
+  padding: 1.5em;
+  -webkit-box-sizing: border-box;
+     -moz-box-sizing: border-box;
+          box-sizing: border-box;
 }
 
-.oo-ui-frame-content {
-  font-family: sans-serif;
-  font-size: 0.8em;
+.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout-scrollable {
+  overflow-y: auto;
 }
 
-/* OO.ui.GridLayout */
-
-.oo-ui-gridLayout {
-  position: absolute;
-  top: 0;
-  right: 0;
-  bottom: 0;
-  left: 0;
+.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout-padded {
+  padding: 2em;
 }
 
-/* OO.ui.PanelLayout */
-
-.oo-ui-panelLayout {
+.oo-ui-bookletLayout-outlinePanel-editable .oo-ui-outlineWidget {
   position: absolute;
   top: 0;
   right: 0;
-  bottom: 0;
+  bottom: 3em;
   left: 0;
-}
-
-.oo-ui-panelLayout-scrollable {
   overflow-y: auto;
 }
 
-.oo-ui-panelLayout-padded {
-  padding: 2em;
-}
-
-/* OO.ui.FieldsetLayout */
-
-.oo-ui-fieldsetLayout {
-  position: relative;
-  padding: 0;
-  margin: 0;
-  border: none;
-}
-
-.oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout {
-  margin-top: 2em;
-}
-
-.oo-ui-fieldsetLayout-labeled {
-  margin-top: -0.75em;
-}
-
-.oo-ui-fieldsetLayout > legend.oo-ui-labeledElement-label {
-  padding: 0.25em 0;
-  margin-bottom: 0.5em;
-  font-size: 1.5em;
-}
-
-.oo-ui-fieldsetLayout.oo-ui-iconedElement > legend.oo-ui-labeledElement-label {
-  padding-left: 1.75em;
-}
-
-.oo-ui-fieldsetLayout.oo-ui-iconedElement > .oo-ui-iconedElement-icon {
+.oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
   position: absolute;
-  top: 0;
+  right: 0;
+  bottom: 0;
   left: 0;
-  display: block;
-  width: 2em;
-  height: 2em;
-  background-position: center center;
-  background-repeat: no-repeat;
 }
 
-/* OO.ui.FieldLayout */
-
 .oo-ui-fieldLayout {
   margin-bottom: 1em;
 }
   padding: 0.5em 0;
 }
 
-/* OO.ui.BookletLayout */
+.oo-ui-fieldsetLayout {
+  position: relative;
+  padding: 0;
+  margin: 0;
+}
 
-.oo-ui-bookletLayout-stackLayout.oo-ui-stackLayout-continuous .oo-ui-panelLayout-scrollable {
-  overflow-y: hidden;
+.oo-ui-fieldsetLayout + .oo-ui-fieldsetLayout {
+  margin-top: 2em;
 }
 
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout {
-  width: 100%;
-  padding: 1.5em;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-}
-
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout-scrollable {
-  overflow-y: auto;
+.oo-ui-fieldsetLayout-labeled {
+  margin-top: -0.75em;
 }
 
-.oo-ui-bookletLayout-stackLayout .oo-ui-panelLayout-padded {
-  padding: 2em;
+.oo-ui-fieldsetLayout > legend.oo-ui-labeledElement-label {
+  padding: 0.25em 0;
+  margin-bottom: 0.5em;
 }
 
-.oo-ui-bookletLayout-outlinePanel {
-  border-right: solid 1px #ddd;
+.oo-ui-fieldsetLayout.oo-ui-iconedElement > legend.oo-ui-labeledElement-label {
+  padding-left: 1.75em;
 }
 
-.oo-ui-bookletLayout-outlinePanel-editable .oo-ui-outlineWidget {
+.oo-ui-fieldsetLayout.oo-ui-iconedElement > .oo-ui-iconedElement-icon {
   position: absolute;
   top: 0;
-  right: 0;
-  bottom: 3em;
   left: 0;
-  overflow-y: auto;
+  display: block;
+  width: 2em;
+  height: 2em;
+  background-position: center center;
+  background-repeat: no-repeat;
 }
 
-.oo-ui-bookletLayout-outlinePanel .oo-ui-outlineControlsWidget {
+.oo-ui-gridLayout {
   position: absolute;
+  top: 0;
   right: 0;
   bottom: 0;
   left: 0;
-  box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.25);
-}
-
-.oo-ui-stackLayout > .oo-ui-panelLayout {
-  display: none;
-}
-
-.oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
-  position: relative;
-  display: block;
-}
-
-/* OO.ui.PopupTool */
-
-.oo-ui-popupTool .oo-ui-popupWidget {
-  margin-left: 1.25em;
-  font-size: 0.8em;
-}
-
-.oo-ui-popupTool .oo-ui-popupWidget-popup,
-.oo-ui-popupTool .oo-ui-popupWidget-tail {
-  z-index: 4;
-}
-
-/* OO.ui.Toolbar */
-
-.oo-ui-toolbar {
-  clear: both;
-}
-
-.oo-ui-toolbar-bar {
-  line-height: 1em;
-  background: #f8fbfd;
-  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #ffffff), color-stop(100%, #f1f7fb));
-  background-image: -webkit-linear-gradient(top, #ffffff 0%, #f1f7fb 100%);
-  background-image: -moz-linear-gradient(top, #ffffff 0%, #f1f7fb 100%);
-  background-image: -ms-linear-gradient(top, #ffffff 0%, #f1f7fb 100%);
-  background-image: -o-linear-gradient(top, #ffffff 0%, #f1f7fb 100%);
-  background-image: linear-gradient(top, #ffffff 0%, #f1f7fb 100%);
-  border-bottom: solid 1px #ccc;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#f1f7fb');
-}
-
-.oo-ui-toolbar-bar .oo-ui-toolbar-bar {
-  background: none;
-  border: none;
-}
-
-.oo-ui-toolbar-bottom .oo-ui-toolbar-bar {
-  position: absolute;
-}
-
-.oo-ui-toolbar-actions {
-  float: right;
-}
-
-.oo-ui-toolbar-tools {
-  float: left;
-}
-
-.oo-ui-toolbar-tools,
-.oo-ui-toolbar-actions,
-.oo-ui-toolbar-shadow {
-  -webkit-user-select: none;
-     -moz-user-select: none;
-      -ms-user-select: none;
-       -o-user-select: none;
-          user-select: none;
 }
 
-.oo-ui-toolbar-actions .oo-ui-popupWidget {
-  -webkit-user-select: all;
-     -moz-user-select: all;
-      -ms-user-select: all;
-          user-select: all;
-  -webkit-touch-callout: default;
+.oo-ui-labelWidget {
+  padding: 0.5em 0;
 }
 
-.oo-ui-toolbar-shadow {
+.oo-ui-panelLayout {
   position: absolute;
-  bottom: -9px;
-  width: 100%;
-  height: 9px;
-  pointer-events: none;
-  background-image: /* @embed */ url(images/toolbar-shadow.png);
-  background-position: left top;
-  background-repeat: repeat-x;
-  opacity: 0.125;
-  -webkit-transition: opacity 500ms ease-in-out;
-     -moz-transition: opacity 500ms ease-in-out;
-       -o-transition: opacity 500ms ease-in-out;
-          transition: opacity 500ms ease-in-out;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
 }
 
-/* OO.ui.ToolGroup */
-
-.oo-ui-toolGroup {
-  display: inline-block;
-  margin: 0.3em;
-  vertical-align: middle;
-  border: solid 1px transparent;
-  border-radius: 0.25em;
-  -webkit-transition: border-color 300ms ease-in-out;
-     -moz-transition: border-color 300ms ease-in-out;
-      -ms-transition: border-color 300ms ease-in-out;
-       -o-transition: border-color 300ms ease-in-out;
-          transition: border-color 300ms ease-in-out;
+.oo-ui-panelLayout-scrollable {
+  overflow-y: auto;
 }
 
-.oo-ui-toolGroup:hover {
-  border-color: rgba(0, 0, 0, 0.1);
+.oo-ui-panelLayout-padded {
+  padding: 2em;
 }
 
-.oo-ui-toolGroup-empty {
+.oo-ui-stackLayout > .oo-ui-panelLayout {
   display: none;
 }
 
-.oo-ui-toolGroup .oo-ui-tool-link .oo-ui-tool-title {
-  color: #000;
-}
-
-.oo-ui-toolGroup .oo-ui-tool-link .oo-ui-iconedElement-icon {
-  background-position: center center;
-  background-repeat: no-repeat;
+.oo-ui-stackLayout-continuous > .oo-ui-panelLayout {
+  position: relative;
+  display: block;
 }
 
-/* OO.ui.BarToolGroup */
-
 .oo-ui-barToolGroup > .oo-ui-iconedElement-icon,
 .oo-ui-barToolGroup > .oo-ui-labeledElement-label {
   display: none;
 .oo-ui-barToolGroup .oo-ui-tool {
   position: relative;
   display: inline-block;
-  margin: -1px 0 -1px -1px;
   vertical-align: top;
-  border: solid 1px transparent;
-}
-
-.oo-ui-barToolGroup .oo-ui-tool:first-child {
-  border-bottom-left-radius: 0.25em;
-  border-top-left-radius: 0.25em;
-}
-
-.oo-ui-barToolGroup .oo-ui-tool:last-child {
-  margin-right: -1px;
-  border-top-right-radius: 0.25em;
-  border-bottom-right-radius: 0.25em;
-}
-
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
-  border-color: rgba(0, 0, 0, 0.2);
-}
-
-.oo-ui-barToolGroup .oo-ui-tool-active.oo-ui-widget-enabled {
-  border-color: rgba(0, 0, 0, 0.2);
-}
-
-.oo-ui-barToolGroup .oo-ui-tool-active.oo-ui-widget-enabled + .oo-ui-tool-active.oo-ui-widget-enabled {
-  border-left-color: rgba(0, 0, 0, 0.1);
 }
 
 .oo-ui-barToolGroup .oo-ui-tool-link {
   display: block;
   width: 1.5em;
   height: 1.5em;
-  opacity: 0.8;
 }
 
 .oo-ui-barToolGroup .oo-ui-tool-link .oo-ui-tool-title {
   cursor: default;
 }
 
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconedElement-icon {
-  opacity: 0.2;
+.oo-ui-barToolGroup .oo-ui-tool-title,
+.oo-ui-barToolGroup .oo-ui-tool-accel {
+  display: none;
 }
 
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-iconedElement-icon {
-  opacity: 0.8;
+.oo-ui-listToolGroup .oo-ui-toolGroup-tools {
+  padding: 0.25em;
 }
 
-.oo-ui-barToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconedElement-icon {
-  opacity: 1;
+.oo-ui-listToolGroup .oo-ui-tool {
+  display: inline-block;
+  width: 100%;
+  -webkit-box-sizing: border-box;
+     -moz-box-sizing: border-box;
+          box-sizing: border-box;
 }
 
-.oo-ui-barToolGroup .oo-ui-tool-title,
-.oo-ui-barToolGroup .oo-ui-tool-accel {
-  display: none;
+.oo-ui-listToolGroup .oo-ui-tool-link {
+  display: block;
+  padding-right: 0.5em;
+  white-space: nowrap;
+  cursor: pointer;
 }
 
-/* OO.ui.PopupToolGroup */
+.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
+  cursor: default;
+}
+
+.oo-ui-menuToolGroup .oo-ui-popupToolGroup-handle {
+  min-width: 8em;
+}
+
+.oo-ui-menuToolGroup .oo-ui-tool {
+  display: block;
+}
+
+.oo-ui-menuToolGroup .oo-ui-tool-link {
+  display: block;
+  padding: 0.25em 1em 0.25em 0.25em;
+  white-space: nowrap;
+  cursor: pointer;
+}
+
+.oo-ui-menuToolGroup .oo-ui-tool-link .oo-ui-iconedElement-icon {
+  background-image: none;
+}
+
+.oo-ui-menuToolGroup .oo-ui-tool-active .oo-ui-tool-link .oo-ui-iconedElement-icon {
+  background-image: /* @embed */ url(images/icons/check.png);
+}
 
 .oo-ui-popupToolGroup {
   position: relative;
   height: 2em;
   background-position: center center;
   background-repeat: no-repeat;
-  opacity: 0.8;
 }
 
 .oo-ui-popupToolGroup-handle .oo-ui-indicatedElement-indicator {
 }
 
 .oo-ui-popupToolGroup.oo-ui-iconedElement .oo-ui-popupToolGroup-handle .oo-ui-labeledElement-label {
-  margin-left: 3.25em;
+  margin-left: 3em;
 }
 
 .oo-ui-popupToolGroup.oo-ui-indicatedElement .oo-ui-popupToolGroup-handle .oo-ui-labeledElement-label {
   left: -1px;
   z-index: 4;
   display: none;
-  background-color: white;
-  border: solid 1px #ccc;
-  box-shadow: 0 0.25em 1em rgba(0, 0, 0, 0.25);
 }
 
 .oo-ui-popupToolGroup .oo-ui-toolGroup-tools .oo-ui-iconedElement-icon {
   background-repeat: no-repeat;
 }
 
-.oo-ui-popupToolGroup-active.oo-ui-widget-enabled {
-  border-bottom-right-radius: 0;
-  border-bottom-left-radius: 0;
-}
-
 .oo-ui-popupToolGroup-active.oo-ui-widget-enabled > .oo-ui-toolGroup-tools {
   display: block;
 }
   display: inline-block;
   width: 2em;
   height: 2em;
-  margin-right: 0.5em;
+  margin-right: 0.25em;
   vertical-align: middle;
 }
 
   display: none;
 }
 
-/* OO.ui.ListToolGroup */
-
-.oo-ui-listToolGroup.oo-ui-popupToolGroup-active {
-  border-color: rgba(0, 0, 0, 0.2);
+.oo-ui-popupTool .oo-ui-popupWidget {
+  margin-left: 1.25em;
+  font-size: 0.8em;
 }
 
-.oo-ui-listToolGroup .oo-ui-toolGroup-tools {
-  padding: 0.25em;
+.oo-ui-popupTool .oo-ui-popupWidget-popup,
+.oo-ui-popupTool .oo-ui-popupWidget-tail {
+  z-index: 4;
 }
 
-.oo-ui-listToolGroup .oo-ui-tool {
+.oo-ui-iconWidget {
   display: inline-block;
-  width: 100%;
-  margin: -1px 0;
-  border: solid 1px transparent;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-}
-
-.oo-ui-listToolGroup .oo-ui-tool-link {
-  display: block;
-  padding-right: 0.5em;
-  white-space: nowrap;
-  cursor: pointer;
-}
-
-.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled {
-  border-color: rgba(0, 0, 0, 0.1);
-}
-
-.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled + .oo-ui-tool-active.oo-ui-widget-enabled {
-  border-top-color: rgba(0, 0, 0, 0.1);
-}
-
-.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled:hover {
-  border-color: rgba(0, 0, 0, 0.2);
-}
-
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover {
-  border-color: rgba(0, 0, 0, 0.2);
-}
-
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled .oo-ui-tool-link .oo-ui-iconedElement-icon {
+  width: 1.9em;
+  height: 1.9em;
+  line-height: 2.5em;
+  vertical-align: middle;
+  background-position: center center;
+  background-repeat: no-repeat;
   opacity: 0.8;
 }
 
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-enabled:hover .oo-ui-tool-link .oo-ui-iconedElement-icon {
-  opacity: 1;
-}
-
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link {
-  cursor: default;
-}
-
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-tool-title {
-  color: #ccc;
-}
-
-.oo-ui-listToolGroup .oo-ui-tool.oo-ui-widget-disabled .oo-ui-tool-link .oo-ui-iconedElement-icon {
+.oo-ui-iconWidget.oo-ui-widget-disabled {
   opacity: 0.2;
 }
 
-/* OO.ui.MenuToolGroup */
-
-.oo-ui-menuToolGroup {
-  border-color: rgba(0, 0, 0, 0.1);
-}
-
-.oo-ui-menuToolGroup:hover {
-  border-color: rgba(0, 0, 0, 0.2);
-}
-
-.oo-ui-menuToolGroup.oo-ui-popupToolGroup-active {
-  border-color: rgba(0, 0, 0, 0.25);
-}
-
-.oo-ui-menuToolGroup .oo-ui-popupToolGroup-handle {
-  min-width: 8em;
-}
-
-.oo-ui-menuToolGroup .oo-ui-tool {
-  display: block;
-}
-
-.oo-ui-menuToolGroup .oo-ui-tool-link {
-  display: block;
-  padding: 0.25em 1em 0.25em 0.25em;
-  white-space: nowrap;
-  cursor: pointer;
-}
-
-.oo-ui-menuToolGroup .oo-ui-tool-link .oo-ui-iconedElement-icon {
-  background-image: none;
-}
-
-.oo-ui-menuToolGroup .oo-ui-tool-active .oo-ui-tool-link .oo-ui-iconedElement-icon {
-  background-image: /* @embed */ url(images/icons/check.png);
-}
-
-.oo-ui-menuToolGroup .oo-ui-tool:hover {
-  background-color: #e1f3ff;
-}
-
-/* Common */
-
-.oo-ui-barToolGroup .oo-ui-tool-active.oo-ui-widget-enabled,
-.oo-ui-listToolGroup .oo-ui-tool-active.oo-ui-widget-enabled,
-.oo-ui-popupToolGroup-active.oo-ui-widget-enabled {
-  background: #f8fbfd;
-  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #f1f7fb), color-stop(100%, #ffffff));
-  background-image: -webkit-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
-  background-image: -moz-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
-  background-image: -ms-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
-  background-image: -o-linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
-  background-image: linear-gradient(top, #f1f7fb 0%, #ffffff 100%);
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#f1f7fb', endColorstr='#ffffff');
-  box-shadow: inset 0 0.07em 0.07em 0 rgba(0, 0, 0, 0.07);
-}
-
-/* OO.ui.ButtonWidget */
-
-.oo-ui-buttonWidget {
+.oo-ui-indicatorWidget {
   display: inline-block;
+  width: 1.9em;
+  height: 1.9em;
+  line-height: 2.5em;
   vertical-align: middle;
+  background-position: center center;
+  background-repeat: no-repeat;
+  opacity: 0.8;
 }
 
-/* OO.ui.PopupButtonWidget */
-
-.oo-ui-popupButtonWidget {
-  position: relative;
-}
-
-.oo-ui-popupButtonWidget .oo-ui-popupWidget {
-  position: absolute;
-  left: 1em;
-  cursor: auto;
-}
-
-/* OO.ui.ButtonGroupWidget */
-
-.oo-ui-buttonGroupWidget {
-  display: inline-block;
-  white-space: nowrap;
-  border-radius: 0.3em;
-}
-
-.oo-ui-buttonGroupWidget .oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button {
-  margin-bottom: -1px;
-  margin-left: -1px;
-  border-radius: 0;
-}
-
-.oo-ui-buttonGroupWidget .oo-ui-buttonedElement-framed:first-child .oo-ui-buttonedElement-button {
-  margin-left: 0;
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
-}
-
-.oo-ui-buttonGroupWidget .oo-ui-buttonedElement-framed:last-child .oo-ui-buttonedElement-button {
-  border-top-right-radius: 0.3em;
-  border-bottom-right-radius: 0.3em;
+.oo-ui-indicatorWidget.oo-ui-widget-disabled {
+  opacity: 0.2;
 }
 
-/* OO.ui.SelectWidget */
-
 .oo-ui-selectWidget {
   padding: 0;
   margin: 0;
   list-style: none;
 }
 
-/* OO.ui.OptionWidget */
-
 .oo-ui-optionWidget {
   position: relative;
   display: block;
   border: none;
 }
 
-.oo-ui-optionWidget-highlighted {
-  background-color: #e1f3ff;
-}
-
-.oo-ui-optionWidget-selected {
-  background-color: #a7dcff;
-}
-
 .oo-ui-optionWidget.oo-ui-widget-disabled {
   cursor: default;
 }
   right: 0.5em;
 }
 
-/* OO.ui.OutlineItemWidget */
-
-.oo-ui-outlineItemWidget {
-  position: relative;
-  padding: 0.75em;
-  font-size: 1.1em;
-  cursor: pointer;
-  -webkit-user-select: none;
-     -moz-user-select: none;
-      -ms-user-select: none;
-          user-select: none;
-}
-
-.oo-ui-outlineItemWidget.oo-ui-optionWidget-selected {
-  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
-  background-color: #a7dcff;
-}
-
-.oo-ui-outlineItemWidget.oo-ui-flaggableElement-important {
-  font-weight: bold;
-}
-
-.oo-ui-outlineItemWidget.oo-ui-flaggableElement-placeholder {
-  font-style: italic;
-}
-
-.oo-ui-outlineItemWidget.oo-ui-flaggableElement-empty .oo-ui-iconedElement-icon,
-.oo-ui-outlineItemWidget.oo-ui-flaggableElement-empty .oo-ui-indicatedElement-indicator {
-  opacity: 0.5;
-}
-
-.oo-ui-outlineItemWidget.oo-ui-flaggableElement-empty .oo-ui-labeledElement-label {
-  color: #777;
-}
-
-.oo-ui-outlineItemWidget.oo-ui-indicatedElement .oo-ui-labeledElement-label {
-  padding-right: 1.5em;
-}
-
-.oo-ui-outlineItemWidget-level-0 {
-  padding-left: 3.5em;
-}
-
-.oo-ui-outlineItemWidget-level-0 .oo-ui-iconedElement-icon {
-  left: 1em;
-}
-
-.oo-ui-outlineItemWidget-level-1 {
-  padding-left: 5em;
-}
-
-.oo-ui-outlineItemWidget-level-1 .oo-ui-iconedElement-icon {
-  left: 2.5em;
+.oo-ui-menuWidget {
+  position: absolute;
 }
 
-.oo-ui-outlineItemWidget-level-2 {
-  padding-left: 6.5em;
+.oo-ui-menuWidget input {
+  position: absolute;
+  width: 0;
+  height: 0;
+  overflow: hidden;
+  opacity: 0;
 }
 
-.oo-ui-outlineItemWidget-level-2 .oo-ui-iconedElement-icon {
-  left: 4em;
+.oo-ui-popupWidget-popup {
+  position: absolute;
+  overflow: hidden;
 }
 
-/* OO.ui.OutlineControlsWidget */
-
-.oo-ui-outlineControlsWidget {
-  height: 3em;
-  background-color: #fff;
+.oo-ui-popupWidget-tail {
+  display: none;
 }
 
-.oo-ui-outlineControlsWidget-adders,
-.oo-ui-outlineControlsWidget-movers {
-  float: left;
-  height: 2em;
-  padding: 0;
-  margin: 0.5em;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
+.oo-ui-popupWidget-tailed .oo-ui-popupWidget-popup {
+  margin-top: 7px;
 }
 
-.oo-ui-outlineControlsWidget > .oo-ui-iconedElement-icon {
-  float: left;
-  width: 1.5em;
-  height: 2em;
-  margin: 0.5em 0 0.5em 0.5em;
-  background-position: right center;
+.oo-ui-popupWidget-tailed .oo-ui-popupWidget-tail {
+  position: absolute;
+  display: block;
   background-repeat: no-repeat;
-  opacity: 0.2;
 }
 
-.oo-ui-outlineControlsWidget-adders {
-  float: left;
-  margin-left: 0;
-}
-
-.oo-ui-outlineControlsWidget-adders .oo-ui-buttonWidget {
-  float: left;
-}
-
-.oo-ui-outlineControlsWidget-movers {
-  float: right;
+.oo-ui-popupWidget-head {
+  height: 2.5em;
+  -webkit-user-select: none;
+     -moz-user-select: none;
+      -ms-user-select: none;
+          user-select: none;
+  -webkit-touch-callout: none;
 }
 
-.oo-ui-outlineControlsWidget-movers .oo-ui-buttonWidget {
+.oo-ui-popupWidget-head .oo-ui-buttonWidget {
   float: right;
+  margin: 0.25em;
 }
 
-/* OO.ui.LabelWidget */
-
-.oo-ui-labelWidget {
-  padding: 0.5em 0;
-}
-
-/* OO.ui.TextInputWidget */
-
-.oo-ui-textInputWidget {
-  position: relative;
-  width: 20em;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-}
-
-.oo-ui-textInputWidget input,
-.oo-ui-textInputWidget textarea {
-  display: inline-block;
-  width: 100%;
-  padding: 0.5em;
-  font-family: sans-serif;
-  font-size: 1em;
-  background-color: #fff;
-  border: solid 1px #ccc;
-  border-radius: 0.25em;
-  box-shadow: 0 0 0 white, inset 0 0.1em 0.2em #ddd;
-  -webkit-box-sizing: border-box;
-     -moz-box-sizing: border-box;
-          box-sizing: border-box;
-  -webkit-transition: border-color 200ms, box-shadow 200ms;
-     -moz-transition: border-color 200ms, box-shadow 200ms;
-      -ms-transition: border-color 200ms, box-shadow 200ms;
-       -o-transition: border-color 200ms, box-shadow 200ms;
-          transition: border-color 200ms, box-shadow 200ms;
-  resize: none;
-}
-
-.oo-ui-textInputWidget.oo-ui-widget-enabled input:focus,
-.oo-ui-textInputWidget.oo-ui-widget-enabled textarea:focus {
-  border-color: #a7dcff;
-  outline: none;
-  box-shadow: 0 0 0.3em #a7dcff, 0 0 0 white;
+.oo-ui-popupWidget-head .oo-ui-labeledElement-label {
+  float: left;
+  margin: 0.75em 1em;
+  cursor: default;
 }
 
-.oo-ui-textInputWidget input[readonly],
-.oo-ui-textInputWidget textarea[readonly] {
-  color: #777;
-  text-shadow: 0 1px 1px #fff;
+.oo-ui-popupWidget-body {
+  clear: both;
 }
 
-.oo-ui-textInputWidget-pending input,
-.oo-ui-textInputWidget-pending textarea {
-  background-color: transparent;
+.oo-ui-buttonGroupWidget {
+  border-radius: 0.3em;
 }
 
-.oo-ui-textInputWidget-decorated input,
-.oo-ui-textInputWidget-decorated textarea {
-  padding-left: 2em;
+.oo-ui-buttonGroupWidget .oo-ui-buttonedElement-framed .oo-ui-buttonedElement-button {
+  margin-bottom: -1px;
+  margin-left: -1px;
+  border-radius: 0;
 }
 
-.oo-ui-textInputWidget-icon {
-  position: absolute;
-  top: 0;
-  left: 0;
-  width: 2em;
-  height: 100%;
-  background-position: right center;
-  background-repeat: no-repeat;
+.oo-ui-buttonGroupWidget .oo-ui-buttonedElement-framed:first-child .oo-ui-buttonedElement-button {
+  margin-left: 0;
+  border-bottom-left-radius: 0.3em;
+  border-top-left-radius: 0.3em;
+}
+
+.oo-ui-buttonGroupWidget .oo-ui-buttonedElement-framed:last-child .oo-ui-buttonedElement-button {
+  border-top-right-radius: 0.3em;
+  border-bottom-right-radius: 0.3em;
 }
 
-.oo-ui-textInputWidget.oo-ui-widget-disabled input,
-.oo-ui-textInputWidget.oo-ui-widget-disabled input:focus,
-.oo-ui-textInputWidget.oo-ui-widget-disabled textarea,
-.oo-ui-textInputWidget.oo-ui-widget-disabled textarea:focus {
-  color: #ccc;
-  text-shadow: 0 1px 1px #fff;
-  background-color: #f3f3f3;
-  border-color: #ddd;
+.oo-ui-buttonOptionWidget {
+  display: inline-block;
+  padding: 0;
+  background-color: transparent;
 }
 
-/* OO.ui.MenuWidget */
+.oo-ui-buttonOptionWidget .oo-ui-buttonedElement-button {
+  position: relative;
+  height: 1.9em;
+}
 
-.oo-ui-menuWidget {
-  position: absolute;
-  margin-top: -1px;
-  background: #fff;
-  border: solid 1px #ccc;
-  border-radius: 0 0 0.25em 0.25em;
-  box-shadow: 0 0.15em 1em 0 rgba(0, 0, 0, 0.2);
+.oo-ui-buttonOptionWidget.oo-ui-iconedElement .oo-ui-iconedElement-icon,
+.oo-ui-buttonOptionWidget.oo-ui-indicatedElement .oo-ui-indicatedElement-indicator {
+  position: static;
+  display: inline-block;
+  height: 1.9em;
+  margin-top: 0;
+  vertical-align: middle;
 }
 
-.oo-ui-menuWidget input {
-  position: absolute;
-  width: 0;
-  height: 0;
-  overflow: hidden;
-  opacity: 0;
+.oo-ui-buttonSelectWidget {
+  display: inline-block;
+  white-space: nowrap;
 }
 
-/* OO.ui.InlineMenuWidget */
+.oo-ui-buttonWidget {
+  display: inline-block;
+  vertical-align: middle;
+}
 
 .oo-ui-inlineMenuWidget {
   position: relative;
   width: 100%;
   height: 2.5em;
   cursor: pointer;
-  border: solid 1px rgba(0, 0, 0, 0.1);
-  border-radius: 0.25em;
   -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
           box-sizing: border-box;
   -webkit-touch-callout: none;
 }
 
-.oo-ui-inlineMenuWidget-handle:hover {
-  border-color: rgba(0, 0, 0, 0.2);
-}
-
 .oo-ui-inlineMenuWidget-handle .oo-ui-indicatedElement-indicator,
 .oo-ui-inlineMenuWidget-handle .oo-ui-iconedElement-icon {
   position: absolute;
   height: 2.5em;
   background-position: center center;
   background-repeat: no-repeat;
-  opacity: 0.8;
 }
 
 .oo-ui-inlineMenuWidget-handle .oo-ui-indicatedElement-indicator {
   width: 100%;
 }
 
-/* OO.ui.MenuItemWidget */
-
 .oo-ui-menuItemWidget {
   position: relative;
 }
   display: block;
 }
 
-.oo-ui-menuItemWidget.oo-ui-optionWidget-highlighted {
-  background-color: #e1f3ff;
-}
-
-/* OO.ui.MenuSectionItemWidget */
-
 .oo-ui-menuSectionItemWidget {
   padding: 0.33em 0.75em;
-  color: #888;
   cursor: default;
 }
 
-/* OO.ui.ButtonSelectWidget */
+.oo-ui-outlineControlsWidget {
+  height: 3em;
+}
 
-.oo-ui-buttonSelectWidget {
-  display: inline-block;
-  white-space: nowrap;
-  border-radius: 0.3em;
+.oo-ui-outlineControlsWidget-adders,
+.oo-ui-outlineControlsWidget-movers {
+  float: left;
+  height: 2em;
+  padding: 0;
+  margin: 0.5em;
+  -webkit-box-sizing: border-box;
+     -moz-box-sizing: border-box;
+          box-sizing: border-box;
 }
 
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget .oo-ui-buttonedElement-button {
-  margin-left: -1px;
-  border-radius: 0;
+.oo-ui-outlineControlsWidget > .oo-ui-iconedElement-icon {
+  float: left;
+  width: 1.5em;
+  height: 2em;
+  margin: 0.5em 0 0.5em 0.5em;
+  background-position: right center;
+  background-repeat: no-repeat;
 }
 
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:first-child .oo-ui-buttonedElement-button {
+.oo-ui-outlineControlsWidget-adders {
+  float: left;
   margin-left: 0;
-  border-bottom-left-radius: 0.3em;
-  border-top-left-radius: 0.3em;
 }
 
-.oo-ui-buttonSelectWidget .oo-ui-buttonOptionWidget:last-child .oo-ui-buttonedElement-button {
-  border-top-right-radius: 0.3em;
-  border-bottom-right-radius: 0.3em;
+.oo-ui-outlineControlsWidget-adders .oo-ui-buttonWidget {
+  float: left;
 }
 
-/* OO.ui.ButtonOptionWidget */
-
-.oo-ui-buttonOptionWidget {
-  display: inline-block;
-  padding: 0;
-  background-color: transparent;
+.oo-ui-outlineControlsWidget-movers {
+  float: right;
 }
 
-.oo-ui-buttonOptionWidget .oo-ui-buttonedElement-button {
-  position: relative;
-  height: 1.9em;
+.oo-ui-outlineControlsWidget-movers .oo-ui-buttonWidget {
+  float: right;
 }
 
-.oo-ui-buttonOptionWidget.oo-ui-iconedElement .oo-ui-iconedElement-icon,
-.oo-ui-buttonOptionWidget.oo-ui-indicatedElement .oo-ui-indicatedElement-indicator {
-  position: static;
-  display: inline-block;
-  height: 1.9em;
-  margin-top: 0;
-  vertical-align: middle;
+.oo-ui-outlineItemWidget {
+  position: relative;
+  padding: 0.75em;
+  cursor: pointer;
+  -webkit-user-select: none;
+     -moz-user-select: none;
+      -ms-user-select: none;
+          user-select: none;
+  -webkit-touch-callout: none;
 }
 
-/* OO.ui.PopupWidget */
-
-.oo-ui-popupWidget-popup {
-  position: absolute;
-  overflow: hidden;
-  background-color: #fff;
-  border: solid 1px #ccc;
-  border-radius: 0.25em;
-  box-shadow: 0 0.15em 0.5em 0 rgba(0, 0, 0, 0.2);
+.oo-ui-outlineItemWidget.oo-ui-indicatedElement .oo-ui-labeledElement-label {
+  padding-right: 1.5em;
 }
 
-.oo-ui-popupWidget-tail {
-  display: none;
+.oo-ui-outlineItemWidget-level-0 {
+  padding-left: 3.5em;
 }
 
-.oo-ui-popupWidget-tailed .oo-ui-popupWidget-popup {
-  margin-top: 7px;
+.oo-ui-outlineItemWidget-level-0 .oo-ui-iconedElement-icon {
+  left: 1em;
 }
 
-.oo-ui-popupWidget-tailed .oo-ui-popupWidget-tail {
-  position: absolute;
-  display: block;
-  width: 15px;
-  height: 8px;
-  margin-left: -7px;
-  background-image: /* @embed */ url(images/tail.svg);
-  background-repeat: no-repeat;
+.oo-ui-outlineItemWidget-level-1 {
+  padding-left: 5em;
 }
 
-.oo-ui-popupWidget-transitioning .oo-ui-popupWidget-popup {
-  -webkit-transition: width 100ms, height 100ms, left 100ms;
-     -moz-transition: width 100ms, height 100ms, left 100ms;
-       -o-transition: width 100ms, height 100ms, left 100ms;
-          transition: width 100ms, height 100ms, left 100ms;
-  -webkit-transition-timing-function: ease-in-out;
-     -moz-transition-timing-function: ease-in-out;
-       -o-transition-timing-function: ease-in-out;
-          transition-timing-function: ease-in-out;
+.oo-ui-outlineItemWidget-level-1 .oo-ui-iconedElement-icon {
+  left: 2.5em;
 }
 
-.oo-ui-popupWidget-head {
-  height: 2.5em;
-  -webkit-user-select: none;
-     -moz-user-select: none;
-      -ms-user-select: none;
-          user-select: none;
-  -webkit-touch-callout: none;
+.oo-ui-outlineItemWidget-level-2 {
+  padding-left: 6.5em;
 }
 
-.oo-ui-popupWidget-head .oo-ui-buttonWidget {
-  float: right;
-  margin: 0.25em;
+.oo-ui-outlineItemWidget-level-2 .oo-ui-iconedElement-icon {
+  left: 4em;
 }
 
-.oo-ui-popupWidget-head .oo-ui-labeledElement-label {
-  float: left;
-  margin: 0.75em 1em;
-  cursor: default;
+.oo-ui-popupButtonWidget {
+  position: relative;
 }
 
-.oo-ui-popupWidget-body {
-  box-shadow: 0 0 0.66em rgba(0, 0, 0, 0.25);
+.oo-ui-popupButtonWidget .oo-ui-popupWidget {
+  position: absolute;
+  left: 1em;
+  cursor: auto;
 }
 
-/* OO.ui.SearchWidget */
-
 .oo-ui-searchWidget-query {
   position: absolute;
   top: 0;
   left: 0;
   height: 4em;
   padding: 0 1em;
-  box-shadow: 0 0 0.5em rgba(0, 0, 0, 0.2);
 }
 
 .oo-ui-searchWidget-query .oo-ui-textInputWidget {
   line-height: 0;
 }
 
-/* OO.ui.ToggleSwitchWidget */
+.oo-ui-textInputWidget {
+  position: relative;
+  width: 20em;
+  -webkit-box-sizing: border-box;
+     -moz-box-sizing: border-box;
+          box-sizing: border-box;
+}
+
+.oo-ui-textInputWidget input,
+.oo-ui-textInputWidget textarea {
+  display: inline-block;
+  width: 100%;
+  padding: 0.5em;
+  -webkit-box-sizing: border-box;
+     -moz-box-sizing: border-box;
+          box-sizing: border-box;
+  resize: none;
+}
+
+.oo-ui-textInputWidget-decorated input,
+.oo-ui-textInputWidget-decorated textarea {
+  padding-left: 2em;
+}
+
+.oo-ui-textInputWidget-icon {
+  position: absolute;
+  top: 0;
+  left: 0;
+  width: 2em;
+  height: 100%;
+  background-position: right center;
+  background-repeat: no-repeat;
+}
 
 .oo-ui-toggleSwitchWidget {
   position: relative;
   overflow: hidden;
   vertical-align: middle;
   cursor: pointer;
-  background: #eeeeee;
-  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #dddddd), color-stop(100%, #ffffff));
-  background-image: -webkit-linear-gradient(top, #dddddd 0%, #ffffff 100%);
-  background-image: -moz-linear-gradient(top, #dddddd 0%, #ffffff 100%);
-  background-image: -ms-linear-gradient(top, #dddddd 0%, #ffffff 100%);
-  background-image: -o-linear-gradient(top, #dddddd 0%, #ffffff 100%);
-  background-image: linear-gradient(top, #dddddd 0%, #ffffff 100%);
-  border: solid 1px #ccc;
-  border-radius: 1em;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#dddddd', endColorstr='#ffffff');
   -webkit-transform: translateZ(0);
      -moz-transform: translateZ(0);
       -ms-transform: translateZ(0);
        -o-transform: translateZ(0);
           transform: translateZ(0);
-  box-shadow: 0 0 0 white, inset 0 0.1em 0.2em #ddd;
   -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
           box-sizing: border-box;
 
 .oo-ui-toggleSwitchWidget.oo-ui-widget-disabled {
   cursor: default;
-  opacity: 0.5;
 }
 
 .oo-ui-toggleSwitchWidget-grip {
   display: block;
   width: 1.5em;
   height: 1.5em;
-  background: #eeeeee;
-  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #ffffff), color-stop(100%, #dddddd));
-  background-image: -webkit-linear-gradient(top, #ffffff 0%, #dddddd 100%);
-  background-image: -moz-linear-gradient(top, #ffffff 0%, #dddddd 100%);
-  background-image: -ms-linear-gradient(top, #ffffff 0%, #dddddd 100%);
-  background-image: -o-linear-gradient(top, #ffffff 0%, #dddddd 100%);
-  background-image: linear-gradient(top, #ffffff 0%, #dddddd 100%);
-  border: 1px #c9c9c9 solid;
-  border-radius: 1em;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#ffffff', endColorstr='#dddddd');
-  box-shadow: 0 0.1em 0.25em rgba(0, 0, 0, 0.1);
   -webkit-box-sizing: border-box;
      -moz-box-sizing: border-box;
           box-sizing: border-box;
           transition: left 200ms ease-in-out, margin-left 200ms ease-in-out;
 }
 
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover,
-.oo-ui-toggleSwitchWidget.oo-ui-widget-enabled:hover .oo-ui-toggleSwitchWidget-grip {
-  border-color: #aaa;
-}
-
 .oo-ui-toggleSwitchWidget .oo-ui-toggleSwitchWidget-glow {
   position: absolute;
   top: 0;
   right: 0;
   bottom: 0;
   left: 0;
-  background: #cde7f4;
-  background-image: -webkit-gradient(linear, right top, right bottom, color-stop(0%, #b0d9ee), color-stop(100%, #eaf4fa));
-  background-image: -webkit-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
-  background-image: -moz-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
-  background-image: -ms-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
-  background-image: -o-linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
-  background-image: linear-gradient(top, #b0d9ee 0%, #eaf4fa 100%);
-  border-radius: 1em;
-  filter: progid:DXImageTransform.Microsoft.gradient(GradientType=0, startColorstr='#b0d9ee', endColorstr='#eaf4fa');
-  box-shadow: inset 0 1px 4px 0 rgba(0, 0, 0, 0.07);
   -webkit-transition: opacity 200ms ease-in-out;
      -moz-transition: opacity 200ms ease-in-out;
       -ms-transition: opacity 200ms ease-in-out;
   margin-left: -2px;
 }
 
-.oo-ui-toggleWidget-on .oo-ui-toggleSwitchWidget-glow {
-  opacity: 1;
-}
-
 .oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-grip {
   left: 0.25em;
   margin-left: 0;
 }
 
 .oo-ui-toggleWidget-off .oo-ui-toggleSwitchWidget-glow {
-  opacity: 0;
-}
-
-/* OO.ui.Window */
-
-.oo-ui-window-head {
-  -webkit-user-select: none;
-     -moz-user-select: none;
-      -ms-user-select: none;
-          user-select: none;
-  -webkit-touch-callout: none;
-}
-
-.oo-ui-window-body {
-  padding: 0 0.75em;
-}
-
-.oo-ui-window-icon {
-  float: left;
-  width: 2em;
-  height: 2em;
-  margin-right: 0.5em;
-  line-height: 2em;
-  background-position: right center;
-  background-repeat: no-repeat;
-}
-
-.oo-ui-window-title {
-  float: left;
-  line-height: 2em;
-  color: #333;
-  white-space: nowrap;
-  cursor: default;
-}
-
-.oo-ui-window-overlay {
-  position: absolute;
-  top: 0;
-  left: 0;
-  font-family: sans-serif;
-  font-size: 1em;
-  line-height: 1.5em;
+  display: none;
 }
 
 /* Icons */
index 66536bb..6cf631f 100755 (executable)
@@ -37,6 +37,11 @@ fi
 # Undo any changes in the oojs-ui directory
 git reset resources/oojs-ui/
 git checkout resources/oojs-ui/
+
+git fetch origin
+# Create a branch of MW if needed, and reset it to master
+git checkout -B update-oojsui origin/master
+
 # Get the old oojs-ui version
 OLDVERSION=$(oojsuihash)
 if [ "x$OLDVERSION" == "x" ]
@@ -64,7 +69,8 @@ then
        exit 0
 fi
 # Build the distribution
-grunt
+npm install || exit 1
+grunt || exit 1
 # Get the list of changes
 NEWCHANGES=$(git log $OLDVERSION.. --oneline --no-merges --reverse --color=never)
 NEWCHANGESDISPLAY=$(git log $OLDVERSION.. --oneline --no-merges --reverse --color=always)
@@ -72,7 +78,7 @@ NEWCHANGESDISPLAY=$(git log $OLDVERSION.. --oneline --no-merges --reverse --colo
 cd -
 
 # Copy files from dist/ to resources/oojs-ui
-cp -a $1/dist/{oojs-ui.js,oojs-ui.svg.css,images,i18n} resources/oojs-ui/
+cp -a $1/dist/{oojs-ui.js,oojs-ui.svg.css,oojs-ui-apex.css,images,i18n} resources/oojs-ui/
 # Figure out what the new version is
 NEWVERSION=$(oojsuiversion)
 # Generate commit summary
index 70cb221..cd966b9 100644 (file)
@@ -1,12 +1,12 @@
 /*!
- * OOjs v1.0.7-pre (9c04f3e917)
+ * OOjs v1.0.8
  * https://www.mediawiki.org/wiki/OOjs
  *
  * Copyright 2011-2014 OOjs Team and other contributors.
  * Released under the MIT license
  * http://oojs.mit-license.org
  *
- * Date: Fri Feb 14 2014 17:51:43 GMT-0800 (PST)
+ * Date: Tue Mar 11 2014 19:27:31 GMT+0100 (CET)
  */
 ( function ( global ) {
 
@@ -26,7 +26,6 @@ var
 /**
  * Assert whether a value is a plain object or not.
  *
- * @method
  * @param {Mixed} obj
  * @return {boolean}
  */
@@ -61,20 +60,20 @@ oo.isPlainObject = function ( obj ) {
  *  This is how prototypal inheritance works, it can only be one straight chain
  *  (just like classical inheritance in PHP for example). If you need to work with
  *  multiple constructors consider storing an instance of the other constructor in a
- *  property instead, or perhaps use a mixin (see oo.mixinClass).
+ *  property instead, or perhaps use a mixin (see OO.mixinClass).
  *
  *     function Thing() {}
  *     Thing.prototype.exists = function () {};
  *
  *     function Person() {
- *         this.constructor.super.apply( this, arguments );
+ *         Person.super.apply( this, arguments );
  *     }
- *     oo.inheritClass( Person, Thing );
+ *     OO.inheritClass( Person, Thing );
  *     Person.static.defaultEyeCount = 2;
  *     Person.prototype.walk = function () {};
  *
  *     function Jumper() {
- *         this.constructor.super.apply( this, arguments );
+ *         Jumper.super.apply( this, arguments );
  *     }
  *     OO.inheritClass( Jumper, Person );
  *     Jumper.prototype.jump = function () {};
@@ -85,7 +84,6 @@ oo.isPlainObject = function ( obj ) {
  *     x.walk();
  *     x instanceof Thing && x instanceof Person && x instanceof Jumper;
  *
- * @method
  * @param {Function} targetFn
  * @param {Function} originFn
  * @throws {Error} If target already inherits from origin
@@ -139,7 +137,6 @@ oo.inheritClass = function ( targetFn, originFn ) {
  *     OO.inheritClass( FooBar, Foo );
  *     OO.mixinClass( FooBar, ContextLazyLoad );
  *
- * @method
  * @param {Function} targetFn
  * @param {Function} originFn
  */
@@ -187,7 +184,6 @@ oo.mixinClass = function ( targetFn, originFn ) {
  *     foo2.getAge(); // 21
  *     foo.getAge(); // 22
  *
- * @method
  * @param {Object} origin
  * @return {Object} Clone of origin
  */
@@ -206,11 +202,10 @@ oo.cloneObject = function ( origin ) {
 };
 
 /**
- * Gets an array of all property values in an object.
+ * Get an array of all property values in an object.
  *
- * @method
  * @param {Object} Object to get values from
- * @returns {Array} List of object values
+ * @return {Array} List of object values
  */
 oo.getObjectValues = function ( obj ) {
        var key, values;
@@ -236,11 +231,10 @@ oo.getObjectValues = function ( obj ) {
  * the other. An asymmetrical test may also be performed, which checks only that properties in the
  * first object are present in the second object, but not the inverse.
  *
- * @method
  * @param {Object} a First object to compare
  * @param {Object} b Second object to compare
  * @param {boolean} [asymmetrical] Whether to check only that b contains values from a
- * @returns {boolean} If the objects contain the same values as each other
+ * @return {boolean} If the objects contain the same values as each other
  */
 oo.compare = function ( a, b, asymmetrical ) {
        var aValue, bValue, aType, bType, k;
@@ -269,10 +263,9 @@ oo.compare = function ( a, b, asymmetrical ) {
  *
  * Copies are deep, and will either be an object or an array depending on `source`.
  *
- * @method
  * @param {Object} source Object to copy
  * @param {Function} [callback] Applied to leaf values before they added to the clone
- * @returns {Object} Copy of source object
+ * @return {Object} Copy of source object
  */
 oo.copy = function ( source, callback ) {
        var key, sourceValue, sourceType, destination;
@@ -310,8 +303,9 @@ oo.copy = function ( source, callback ) {
 };
 
 /**
- * Generates a hash of an object based on its name and data.
- * Performance optimization: http://jsperf.com/ve-gethash-201208#/toJson_fnReplacerIfAoForElse
+ * Generate a hash of an object based on its name and data.
+ *
+ * Performance optimization: <http://jsperf.com/ve-gethash-201208#/toJson_fnReplacerIfAoForElse>
  *
  * To avoid two objects with the same values generating different hashes, we utilize the replacer
  * argument of JSON.stringify and sort the object by key as it's being serialized. This may or may
@@ -322,20 +316,21 @@ oo.copy = function ( source, callback ) {
  * ourselves. This allows classes to define custom hashing.
  *
  * @param {Object} val Object to generate hash for
- * @returns {string} Hash of object
+ * @return {string} Hash of object
  */
 oo.getHash = function ( val ) {
        return JSON.stringify( val, oo.getHash.keySortReplacer );
 };
 
 /**
- * Helper function for oo.getHash which sorts objects by key.
+ * Helper function for OO.getHash which sorts objects by key.
  *
  * This is a callback passed into JSON.stringify.
  *
+ * @method getHash_keySortReplacer
  * @param {string} key Property name of value being replaced
  * @param {Mixed} val Property value to replace
- * @returns {Mixed} Replacement value
+ * @return {Mixed} Replacement value
  */
 oo.getHash.keySortReplacer = function ( key, val ) {
        var normalized, keys, i, len;
@@ -365,13 +360,13 @@ oo.getHash.keySortReplacer = function ( key, val ) {
 /**
  * Compute the union (duplicate-free merge) of a set of arrays.
  *
- * Arrays values must be convertable to object keys (strings)
+ * Arrays values must be convertable to object keys (strings).
  *
  * By building an object (with the values for keys) in parallel with
- * the array, a new item's existence in the union can be computed faster
+ * the array, a new item's existence in the union can be computed faster.
  *
  * @param {Array...} arrays Arrays to union
- * @returns {Array} Union of the arrays
+ * @return {Array} Union of the arrays
  */
 oo.simpleArrayUnion = function () {
        var i, ilen, arr, j, jlen,
@@ -396,16 +391,16 @@ oo.simpleArrayUnion = function () {
  *
  * An intersection checks the item exists in 'b' while difference checks it doesn't.
  *
- * Arrays values must be convertable to object keys (strings)
+ * Arrays values must be convertable to object keys (strings).
  *
  * By building an object (with the values for keys) of 'b' we can
- * compute the result faster
+ * compute the result faster.
  *
  * @private
  * @param {Array} a First array
  * @param {Array} b Second array
  * @param {boolean} includeB Whether to items in 'b'
- * @returns {Array} Combination (intersection or difference) of arrays
+ * @return {Array} Combination (intersection or difference) of arrays
  */
 function simpleArrayCombine( a, b, includeB ) {
        var i, ilen, isInB,
@@ -429,11 +424,11 @@ function simpleArrayCombine( a, b, includeB ) {
 /**
  * Compute the intersection of two arrays (items in both arrays).
  *
- * Arrays values must be convertable to object keys (strings)
+ * Arrays values must be convertable to object keys (strings).
  *
  * @param {Array} a First array
  * @param {Array} b Second array
- * @returns {Array} Intersection of arrays
+ * @return {Array} Intersection of arrays
  */
 oo.simpleArrayIntersection = function ( a, b ) {
        return simpleArrayCombine( a, b, true );
@@ -442,25 +437,28 @@ oo.simpleArrayIntersection = function ( a, b ) {
 /**
  * Compute the difference of two arrays (items in 'a' but not 'b').
  *
- * Arrays values must be convertable to object keys (strings)
+ * Arrays values must be convertable to object keys (strings).
  *
  * @param {Array} a First array
  * @param {Array} b Second array
- * @returns {Array} Intersection of arrays
+ * @return {Array} Intersection of arrays
  */
 oo.simpleArrayDifference = function ( a, b ) {
        return simpleArrayCombine( a, b, false );
 };
 /**
- * Event emitter.
- *
  * @class OO.EventEmitter
  *
  * @constructor
- * @property {Object} bindings
  */
 oo.EventEmitter = function OoEventEmitter() {
        // Properties
+
+       /**
+        * Storage of bound event handlers by event name.
+        *
+        * @property
+        */
        this.bindings = {};
 };
 
@@ -471,7 +469,6 @@ oo.EventEmitter = function OoEventEmitter() {
  *
  * If the callback/context are already bound to the event, they will not be bound again.
  *
- * @method
  * @param {string} event Type of event to listen to
  * @param {Function} callback Function to call when event occurs
  * @param {Array} [args] Arguments to pass to listener, will be prepended to emitted arguments
@@ -516,7 +513,6 @@ oo.EventEmitter.prototype.on = function ( event, callback, args, context ) {
 /**
  * Adds a one-time listener to a specific event.
  *
- * @method
  * @param {string} event Type of event to listen to
  * @param {Function} listener Listener to call when event occurs
  * @chainable
@@ -532,7 +528,6 @@ oo.EventEmitter.prototype.once = function ( event, listener ) {
 /**
  * Remove a specific listener from a specific event.
  *
- * @method
  * @param {string} event Type of event to remove listener from
  * @param {Function} [callback] Listener to remove, omit to remove all
  * @param {Object} [context=null] Object used context for callback function or method
@@ -577,13 +572,13 @@ oo.EventEmitter.prototype.off = function ( event, callback, context ) {
 
 /**
  * Emit an event.
+ *
  * TODO: Should this be chainable? What is the usefulness of the boolean
  * return value here?
  *
- * @method
  * @param {string} event Type of event
  * @param {Mixed} args First in a list of variadic arguments passed to event handler (optional)
- * @returns {boolean} If event was handled by at least one listener
+ * @return {boolean} If event was handled by at least one listener
  */
 oo.EventEmitter.prototype.emit = function ( event ) {
        var i, len, binding, bindings, args;
@@ -607,12 +602,11 @@ oo.EventEmitter.prototype.emit = function ( event ) {
 /**
  * Connect event handlers to an object.
  *
- * @method
  * @param {Object} context Object to call methods on when events occur
  * @param {Object.<string,string>|Object.<string,Function>|Object.<string,Array>} methods List of
- * event bindings keyed by event name containing either method names, functions or arrays containing
- * method name or function followed by a list of arguments to be passed to callback before emitted
- * arguments
+ *  event bindings keyed by event name containing either method names, functions or arrays containing
+ *  method name or function followed by a list of arguments to be passed to callback before emitted
+ *  arguments
  * @chainable
  */
 oo.EventEmitter.prototype.connect = function ( context, methods ) {
@@ -647,7 +641,6 @@ oo.EventEmitter.prototype.connect = function ( context, methods ) {
 /**
  * Disconnect event handlers from an object.
  *
- * @method
  * @param {Object} context Object to disconnect methods from
  * @param {Object.<string,string>|Object.<string,Function>|Object.<string,Array>} [methods] List of
  * event bindings keyed by event name containing either method names or functions
@@ -688,8 +681,6 @@ oo.EventEmitter.prototype.disconnect = function ( context, methods ) {
        return this;
 };
 /**
- * Data registry.
- *
  * @class OO.Registry
  * @mixins OO.EventEmitter
  *
@@ -722,52 +713,44 @@ oo.mixinClass( oo.Registry, oo.EventEmitter );
  *
  * Only the base name will be registered, overriding any existing entry with the same base name.
  *
- * @method
  * @param {string|string[]} name Symbolic name or list of symbolic names
  * @param {Mixed} data Data to associate with symbolic name
  * @fires register
  * @throws {Error} Name argument must be a string or array
  */
 oo.Registry.prototype.register = function ( name, data ) {
-       if ( typeof name !== 'string' && !Array.isArray( name ) ) {
-               throw new Error( 'Name argument must be a string or array, cannot be a ' + typeof name );
-       }
        var i, len;
-       if ( Array.isArray( name ) ) {
+       if ( typeof name === 'string' ) {
+               this.registry[name] = data;
+               this.emit( 'register', name, data );
+       } else if ( Array.isArray( name ) ) {
                for ( i = 0, len = name.length; i < len; i++ ) {
                        this.register( name[i], data );
                }
-       } else if ( typeof name === 'string' ) {
-               this.registry[name] = data;
-               this.emit( 'register', name, data );
        } else {
-               throw new Error( 'Name must be a string or array of strings, cannot be a ' + typeof name );
+               throw new Error( 'Name must be a string or array, cannot be a ' + typeof name );
        }
 };
 
 /**
- * Gets data for a given symbolic name.
+ * Get data for a given symbolic name.
  *
  * Lookups are done using the base name.
  *
- * @method
  * @param {string} name Symbolic name
- * @returns {Mixed|undefined} Data associated with symbolic name
+ * @return {Mixed|undefined} Data associated with symbolic name
  */
 oo.Registry.prototype.lookup = function ( name ) {
        return this.registry[name];
 };
 /**
- * Object factory.
- *
  * @class OO.Factory
  * @extends OO.Registry
  *
  * @constructor
  */
 oo.Factory = function OoFactory() {
-       // Parent constructor
-       oo.Registry.call( this );
+       oo.Factory.super.call( this );
 
        // Properties
        this.entries = [];
@@ -784,14 +767,12 @@ oo.inheritClass( oo.Factory, oo.Registry );
  *
  * Classes must have a static `name` property to be registered.
  *
- *     @example
  *     function MyClass() {};
  *     // Adds a static property to the class defining a symbolic name
  *     MyClass.static = { 'name': 'mine' };
  *     // Registers class with factory, available via symbolic name 'mine'
  *     factory.register( MyClass );
  *
- * @method
  * @param {Function} constructor Constructor to use when creating object
  * @throws {Error} Name must be a string and must not be empty
  * @throws {Error} Constructor must be a function
@@ -807,7 +788,8 @@ oo.Factory.prototype.register = function ( constructor ) {
                throw new Error( 'Name must be a string and must not be empty' );
        }
        this.entries.push( name );
-       oo.Registry.prototype.register.call( this, name, constructor );
+
+       oo.Factory.super.prototype.register.call( this, name, constructor );
 };
 
 /**
@@ -816,10 +798,9 @@ oo.Factory.prototype.register = function ( constructor ) {
  * Name is used to look up the constructor to use, while all additional arguments are passed to the
  * constructor directly, so leaving one out will pass an undefined to the constructor.
  *
- * @method
  * @param {string} name Object name
  * @param {Mixed...} [args] Arguments to pass to the constructor
- * @returns {Object} The new object
+ * @return {Object} The new object
  * @throws {Error} Unknown object name
  */
 oo.Factory.prototype.create = function ( name ) {
index 0bdea23..57c7625 100755 (executable)
@@ -37,6 +37,11 @@ fi
 # Undo any changes in the oojs directory
 git reset resources/oojs/
 git checkout resources/oojs/
+
+git fetch origin
+# Create a branch of MW if needed, and reset it to master
+git checkout -B update-oojs origin/master
+
 # Get the old oojs version
 OLDVERSION=$(oojshash)
 if [ "x$OLDVERSION" == "x" ]
@@ -64,7 +69,8 @@ then
        exit 0
 fi
 # Build the distribution
-grunt
+npm install || exit 1
+grunt || exit 1
 # Get the list of changes
 NEWCHANGES=$(git log $OLDVERSION.. --oneline --no-merges --reverse --color=never)
 NEWCHANGESDISPLAY=$(git log $OLDVERSION.. --oneline --no-merges --reverse --color=always)
diff --git a/resources/sinonjs/sinon-1.8.1.js b/resources/sinonjs/sinon-1.8.1.js
deleted file mode 100644 (file)
index 3e9865e..0000000
+++ /dev/null
@@ -1,4721 +0,0 @@
-/**
- * Sinon.JS 1.8.1, 2014/02/02
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @author Contributors: https://github.com/cjohansen/Sinon.JS/blob/master/AUTHORS
- *
- * (The BSD License)
- * 
- * Copyright (c) 2010-2013, Christian Johansen, christian@cjohansen.no
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 
- *     * Redistributions of source code must retain the above copyright notice,
- *       this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright notice,
- *       this list of conditions and the following disclaimer in the documentation
- *       and/or other materials provided with the distribution.
- *     * Neither the name of Christian Johansen nor the names of his contributors
- *       may be used to endorse or promote products derived from this software
- *       without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-this.sinon = (function () {
-var samsam, formatio;
-function define(mod, deps, fn) { if (mod == "samsam") { samsam = deps(); } else { formatio = fn(samsam); } }
-define.amd = true;
-((typeof define === "function" && define.amd && function (m) { define("samsam", m); }) ||
- (typeof module === "object" &&
-      function (m) { module.exports = m(); }) || // Node
- function (m) { this.samsam = m(); } // Browser globals
-)(function () {
-    var o = Object.prototype;
-    var div = typeof document !== "undefined" && document.createElement("div");
-
-    function isNaN(value) {
-        // Unlike global isNaN, this avoids type coercion
-        // typeof check avoids IE host object issues, hat tip to
-        // lodash
-        var val = value; // JsLint thinks value !== value is "weird"
-        return typeof value === "number" && value !== val;
-    }
-
-    function getClass(value) {
-        // Returns the internal [[Class]] by calling Object.prototype.toString
-        // with the provided value as this. Return value is a string, naming the
-        // internal class, e.g. "Array"
-        return o.toString.call(value).split(/[ \]]/)[1];
-    }
-
-    /**
-     * @name samsam.isArguments
-     * @param Object object
-     *
-     * Returns ``true`` if ``object`` is an ``arguments`` object,
-     * ``false`` otherwise.
-     */
-    function isArguments(object) {
-        if (typeof object !== "object" || typeof object.length !== "number" ||
-                getClass(object) === "Array") {
-            return false;
-        }
-        if (typeof object.callee == "function") { return true; }
-        try {
-            object[object.length] = 6;
-            delete object[object.length];
-        } catch (e) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * @name samsam.isElement
-     * @param Object object
-     *
-     * Returns ``true`` if ``object`` is a DOM element node. Unlike
-     * Underscore.js/lodash, this function will return ``false`` if ``object``
-     * is an *element-like* object, i.e. a regular object with a ``nodeType``
-     * property that holds the value ``1``.
-     */
-    function isElement(object) {
-        if (!object || object.nodeType !== 1 || !div) { return false; }
-        try {
-            object.appendChild(div);
-            object.removeChild(div);
-        } catch (e) {
-            return false;
-        }
-        return true;
-    }
-
-    /**
-     * @name samsam.keys
-     * @param Object object
-     *
-     * Return an array of own property names.
-     */
-    function keys(object) {
-        var ks = [], prop;
-        for (prop in object) {
-            if (o.hasOwnProperty.call(object, prop)) { ks.push(prop); }
-        }
-        return ks;
-    }
-
-    /**
-     * @name samsam.isDate
-     * @param Object value
-     *
-     * Returns true if the object is a ``Date``, or *date-like*. Duck typing
-     * of date objects work by checking that the object has a ``getTime``
-     * function whose return value equals the return value from the object's
-     * ``valueOf``.
-     */
-    function isDate(value) {
-        return typeof value.getTime == "function" &&
-            value.getTime() == value.valueOf();
-    }
-
-    /**
-     * @name samsam.isNegZero
-     * @param Object value
-     *
-     * Returns ``true`` if ``value`` is ``-0``.
-     */
-    function isNegZero(value) {
-        return value === 0 && 1 / value === -Infinity;
-    }
-
-    /**
-     * @name samsam.equal
-     * @param Object obj1
-     * @param Object obj2
-     *
-     * Returns ``true`` if two objects are strictly equal. Compared to
-     * ``===`` there are two exceptions:
-     *
-     *   - NaN is considered equal to NaN
-     *   - -0 and +0 are not considered equal
-     */
-    function identical(obj1, obj2) {
-        if (obj1 === obj2 || (isNaN(obj1) && isNaN(obj2))) {
-            return obj1 !== 0 || isNegZero(obj1) === isNegZero(obj2);
-        }
-    }
-
-
-    /**
-     * @name samsam.deepEqual
-     * @param Object obj1
-     * @param Object obj2
-     *
-     * Deep equal comparison. Two values are "deep equal" if:
-     *
-     *   - They are equal, according to samsam.identical
-     *   - They are both date objects representing the same time
-     *   - They are both arrays containing elements that are all deepEqual
-     *   - They are objects with the same set of properties, and each property
-     *     in ``obj1`` is deepEqual to the corresponding property in ``obj2``
-     *
-     * Supports cyclic objects.
-     */
-    function deepEqualCyclic(obj1, obj2) {
-
-        // used for cyclic comparison
-        // contain already visited objects
-        var objects1 = [],
-            objects2 = [],
-        // contain pathes (position in the object structure)
-        // of the already visited objects
-        // indexes same as in objects arrays
-            paths1 = [],
-            paths2 = [],
-        // contains combinations of already compared objects
-        // in the manner: { "$1['ref']$2['ref']": true }
-            compared = {};
-
-        /**
-         * used to check, if the value of a property is an object
-         * (cyclic logic is only needed for objects)
-         * only needed for cyclic logic
-         */
-        function isObject(value) {
-
-            if (typeof value === 'object' && value !== null &&
-                    !(value instanceof Boolean) &&
-                    !(value instanceof Date)    &&
-                    !(value instanceof Number)  &&
-                    !(value instanceof RegExp)  &&
-                    !(value instanceof String)) {
-
-                return true;
-            }
-
-            return false;
-        }
-
-        /**
-         * returns the index of the given object in the
-         * given objects array, -1 if not contained
-         * only needed for cyclic logic
-         */
-        function getIndex(objects, obj) {
-
-            var i;
-            for (i = 0; i < objects.length; i++) {
-                if (objects[i] === obj) {
-                    return i;
-                }
-            }
-
-            return -1;
-        }
-
-        // does the recursion for the deep equal check
-        return (function deepEqual(obj1, obj2, path1, path2) {
-            var type1 = typeof obj1;
-            var type2 = typeof obj2;
-
-            // == null also matches undefined
-            if (obj1 === obj2 ||
-                    isNaN(obj1) || isNaN(obj2) ||
-                    obj1 == null || obj2 == null ||
-                    type1 !== "object" || type2 !== "object") {
-
-                return identical(obj1, obj2);
-            }
-
-            // Elements are only equal if identical(expected, actual)
-            if (isElement(obj1) || isElement(obj2)) { return false; }
-
-            var isDate1 = isDate(obj1), isDate2 = isDate(obj2);
-            if (isDate1 || isDate2) {
-                if (!isDate1 || !isDate2 || obj1.getTime() !== obj2.getTime()) {
-                    return false;
-                }
-            }
-
-            if (obj1 instanceof RegExp && obj2 instanceof RegExp) {
-                if (obj1.toString() !== obj2.toString()) { return false; }
-            }
-
-            var class1 = getClass(obj1);
-            var class2 = getClass(obj2);
-            var keys1 = keys(obj1);
-            var keys2 = keys(obj2);
-
-            if (isArguments(obj1) || isArguments(obj2)) {
-                if (obj1.length !== obj2.length) { return false; }
-            } else {
-                if (type1 !== type2 || class1 !== class2 ||
-                        keys1.length !== keys2.length) {
-                    return false;
-                }
-            }
-
-            var key, i, l,
-                // following vars are used for the cyclic logic
-                value1, value2,
-                isObject1, isObject2,
-                index1, index2,
-                newPath1, newPath2;
-
-            for (i = 0, l = keys1.length; i < l; i++) {
-                key = keys1[i];
-                if (!o.hasOwnProperty.call(obj2, key)) {
-                    return false;
-                }
-
-                // Start of the cyclic logic
-
-                value1 = obj1[key];
-                value2 = obj2[key];
-
-                isObject1 = isObject(value1);
-                isObject2 = isObject(value2);
-
-                // determine, if the objects were already visited
-                // (it's faster to check for isObject first, than to
-                // get -1 from getIndex for non objects)
-                index1 = isObject1 ? getIndex(objects1, value1) : -1;
-                index2 = isObject2 ? getIndex(objects2, value2) : -1;
-
-                // determine the new pathes of the objects
-                // - for non cyclic objects the current path will be extended
-                //   by current property name
-                // - for cyclic objects the stored path is taken
-                newPath1 = index1 !== -1
-                    ? paths1[index1]
-                    : path1 + '[' + JSON.stringify(key) + ']';
-                newPath2 = index2 !== -1
-                    ? paths2[index2]
-                    : path2 + '[' + JSON.stringify(key) + ']';
-
-                // stop recursion if current objects are already compared
-                if (compared[newPath1 + newPath2]) {
-                    return true;
-                }
-
-                // remember the current objects and their pathes
-                if (index1 === -1 && isObject1) {
-                    objects1.push(value1);
-                    paths1.push(newPath1);
-                }
-                if (index2 === -1 && isObject2) {
-                    objects2.push(value2);
-                    paths2.push(newPath2);
-                }
-
-                // remember that the current objects are already compared
-                if (isObject1 && isObject2) {
-                    compared[newPath1 + newPath2] = true;
-                }
-
-                // End of cyclic logic
-
-                // neither value1 nor value2 is a cycle
-                // continue with next level
-                if (!deepEqual(value1, value2, newPath1, newPath2)) {
-                    return false;
-                }
-            }
-
-            return true;
-
-        }(obj1, obj2, '$1', '$2'));
-    }
-
-    var match;
-
-    function arrayContains(array, subset) {
-        if (subset.length === 0) { return true; }
-        var i, l, j, k;
-        for (i = 0, l = array.length; i < l; ++i) {
-            if (match(array[i], subset[0])) {
-                for (j = 0, k = subset.length; j < k; ++j) {
-                    if (!match(array[i + j], subset[j])) { return false; }
-                }
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /**
-     * @name samsam.match
-     * @param Object object
-     * @param Object matcher
-     *
-     * Compare arbitrary value ``object`` with matcher.
-     */
-    match = function match(object, matcher) {
-        if (matcher && typeof matcher.test === "function") {
-            return matcher.test(object);
-        }
-
-        if (typeof matcher === "function") {
-            return matcher(object) === true;
-        }
-
-        if (typeof matcher === "string") {
-            matcher = matcher.toLowerCase();
-            var notNull = typeof object === "string" || !!object;
-            return notNull &&
-                (String(object)).toLowerCase().indexOf(matcher) >= 0;
-        }
-
-        if (typeof matcher === "number") {
-            return matcher === object;
-        }
-
-        if (typeof matcher === "boolean") {
-            return matcher === object;
-        }
-
-        if (getClass(object) === "Array" && getClass(matcher) === "Array") {
-            return arrayContains(object, matcher);
-        }
-
-        if (matcher && typeof matcher === "object") {
-            var prop;
-            for (prop in matcher) {
-                if (!match(object[prop], matcher[prop])) {
-                    return false;
-                }
-            }
-            return true;
-        }
-
-        throw new Error("Matcher was not a string, a number, a " +
-                        "function, a boolean or an object");
-    };
-
-    return {
-        isArguments: isArguments,
-        isElement: isElement,
-        isDate: isDate,
-        isNegZero: isNegZero,
-        identical: identical,
-        deepEqual: deepEqualCyclic,
-        match: match,
-        keys: keys
-    };
-});
-((typeof define === "function" && define.amd && function (m) {
-    define("formatio", ["samsam"], m);
-}) || (typeof module === "object" && function (m) {
-    module.exports = m(require("samsam"));
-}) || function (m) { this.formatio = m(this.samsam); }
-)(function (samsam) {
-    
-    var formatio = {
-        excludeConstructors: ["Object", /^.$/],
-        quoteStrings: true
-    };
-
-    var hasOwn = Object.prototype.hasOwnProperty;
-
-    var specialObjects = [];
-    if (typeof global !== "undefined") {
-        specialObjects.push({ object: global, value: "[object global]" });
-    }
-    if (typeof document !== "undefined") {
-        specialObjects.push({
-            object: document,
-            value: "[object HTMLDocument]"
-        });
-    }
-    if (typeof window !== "undefined") {
-        specialObjects.push({ object: window, value: "[object Window]" });
-    }
-
-    function functionName(func) {
-        if (!func) { return ""; }
-        if (func.displayName) { return func.displayName; }
-        if (func.name) { return func.name; }
-        var matches = func.toString().match(/function\s+([^\(]+)/m);
-        return (matches && matches[1]) || "";
-    }
-
-    function constructorName(f, object) {
-        var name = functionName(object && object.constructor);
-        var excludes = f.excludeConstructors ||
-                formatio.excludeConstructors || [];
-
-        var i, l;
-        for (i = 0, l = excludes.length; i < l; ++i) {
-            if (typeof excludes[i] === "string" && excludes[i] === name) {
-                return "";
-            } else if (excludes[i].test && excludes[i].test(name)) {
-                return "";
-            }
-        }
-
-        return name;
-    }
-
-    function isCircular(object, objects) {
-        if (typeof object !== "object") { return false; }
-        var i, l;
-        for (i = 0, l = objects.length; i < l; ++i) {
-            if (objects[i] === object) { return true; }
-        }
-        return false;
-    }
-
-    function ascii(f, object, processed, indent) {
-        if (typeof object === "string") {
-            var qs = f.quoteStrings;
-            var quote = typeof qs !== "boolean" || qs;
-            return processed || quote ? '"' + object + '"' : object;
-        }
-
-        if (typeof object === "function" && !(object instanceof RegExp)) {
-            return ascii.func(object);
-        }
-
-        processed = processed || [];
-
-        if (isCircular(object, processed)) { return "[Circular]"; }
-
-        if (Object.prototype.toString.call(object) === "[object Array]") {
-            return ascii.array.call(f, object, processed);
-        }
-
-        if (!object) { return String((1/object) === -Infinity ? "-0" : object); }
-        if (samsam.isElement(object)) { return ascii.element(object); }
-
-        if (typeof object.toString === "function" &&
-                object.toString !== Object.prototype.toString) {
-            return object.toString();
-        }
-
-        var i, l;
-        for (i = 0, l = specialObjects.length; i < l; i++) {
-            if (object === specialObjects[i].object) {
-                return specialObjects[i].value;
-            }
-        }
-
-        return ascii.object.call(f, object, processed, indent);
-    }
-
-    ascii.func = function (func) {
-        return "function " + functionName(func) + "() {}";
-    };
-
-    ascii.array = function (array, processed) {
-        processed = processed || [];
-        processed.push(array);
-        var i, l, pieces = [];
-        for (i = 0, l = array.length; i < l; ++i) {
-            pieces.push(ascii(this, array[i], processed));
-        }
-        return "[" + pieces.join(", ") + "]";
-    };
-
-    ascii.object = function (object, processed, indent) {
-        processed = processed || [];
-        processed.push(object);
-        indent = indent || 0;
-        var pieces = [], properties = samsam.keys(object).sort();
-        var length = 3;
-        var prop, str, obj, i, l;
-
-        for (i = 0, l = properties.length; i < l; ++i) {
-            prop = properties[i];
-            obj = object[prop];
-
-            if (isCircular(obj, processed)) {
-                str = "[Circular]";
-            } else {
-                str = ascii(this, obj, processed, indent + 2);
-            }
-
-            str = (/\s/.test(prop) ? '"' + prop + '"' : prop) + ": " + str;
-            length += str.length;
-            pieces.push(str);
-        }
-
-        var cons = constructorName(this, object);
-        var prefix = cons ? "[" + cons + "] " : "";
-        var is = "";
-        for (i = 0, l = indent; i < l; ++i) { is += " "; }
-
-        if (length + indent > 80) {
-            return prefix + "{\n  " + is + pieces.join(",\n  " + is) + "\n" +
-                is + "}";
-        }
-        return prefix + "{ " + pieces.join(", ") + " }";
-    };
-
-    ascii.element = function (element) {
-        var tagName = element.tagName.toLowerCase();
-        var attrs = element.attributes, attr, pairs = [], attrName, i, l, val;
-
-        for (i = 0, l = attrs.length; i < l; ++i) {
-            attr = attrs.item(i);
-            attrName = attr.nodeName.toLowerCase().replace("html:", "");
-            val = attr.nodeValue;
-            if (attrName !== "contenteditable" || val !== "inherit") {
-                if (!!val) { pairs.push(attrName + "=\"" + val + "\""); }
-            }
-        }
-
-        var formatted = "<" + tagName + (pairs.length > 0 ? " " : "");
-        var content = element.innerHTML;
-
-        if (content.length > 20) {
-            content = content.substr(0, 20) + "[...]";
-        }
-
-        var res = formatted + pairs.join(" ") + ">" + content +
-                "</" + tagName + ">";
-
-        return res.replace(/ contentEditable="inherit"/, "");
-    };
-
-    function Formatio(options) {
-        for (var opt in options) {
-            this[opt] = options[opt];
-        }
-    }
-
-    Formatio.prototype = {
-        functionName: functionName,
-
-        configure: function (options) {
-            return new Formatio(options);
-        },
-
-        constructorName: function (object) {
-            return constructorName(this, object);
-        },
-
-        ascii: function (object, processed, indent) {
-            return ascii(this, object, processed, indent);
-        }
-    };
-
-    return Formatio.prototype;
-});
-/*jslint eqeqeq: false, onevar: false, forin: true, nomen: false, regexp: false, plusplus: false*/
-/*global module, require, __dirname, document*/
-/**
- * Sinon core utilities. For internal use only.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-var sinon = (function (formatio) {
-    var div = typeof document != "undefined" && document.createElement("div");
-    var hasOwn = Object.prototype.hasOwnProperty;
-
-    function isDOMNode(obj) {
-        var success = false;
-
-        try {
-            obj.appendChild(div);
-            success = div.parentNode == obj;
-        } catch (e) {
-            return false;
-        } finally {
-            try {
-                obj.removeChild(div);
-            } catch (e) {
-                // Remove failed, not much we can do about that
-            }
-        }
-
-        return success;
-    }
-
-    function isElement(obj) {
-        return div && obj && obj.nodeType === 1 && isDOMNode(obj);
-    }
-
-    function isFunction(obj) {
-        return typeof obj === "function" || !!(obj && obj.constructor && obj.call && obj.apply);
-    }
-
-    function mirrorProperties(target, source) {
-        for (var prop in source) {
-            if (!hasOwn.call(target, prop)) {
-                target[prop] = source[prop];
-            }
-        }
-    }
-
-    function isRestorable (obj) {
-        return typeof obj === "function" && typeof obj.restore === "function" && obj.restore.sinon;
-    }
-
-    var sinon = {
-        wrapMethod: function wrapMethod(object, property, method) {
-            if (!object) {
-                throw new TypeError("Should wrap property of object");
-            }
-
-            if (typeof method != "function") {
-                throw new TypeError("Method wrapper should be function");
-            }
-
-            var wrappedMethod = object[property],
-                error;
-
-            if (!isFunction(wrappedMethod)) {
-                error = new TypeError("Attempted to wrap " + (typeof wrappedMethod) + " property " +
-                                    property + " as function");
-            }
-
-            if (wrappedMethod.restore && wrappedMethod.restore.sinon) {
-                error = new TypeError("Attempted to wrap " + property + " which is already wrapped");
-            }
-
-            if (wrappedMethod.calledBefore) {
-                var verb = !!wrappedMethod.returns ? "stubbed" : "spied on";
-                error = new TypeError("Attempted to wrap " + property + " which is already " + verb);
-            }
-
-            if (error) {
-                if (wrappedMethod._stack) {
-                    error.stack += '\n--------------\n' + wrappedMethod._stack;
-                }
-                throw error;
-            }
-
-            // IE 8 does not support hasOwnProperty on the window object and Firefox has a problem
-            // when using hasOwn.call on objects from other frames.
-            var owned = object.hasOwnProperty ? object.hasOwnProperty(property) : hasOwn.call(object, property);
-            object[property] = method;
-            method.displayName = property;
-            // Set up a stack trace which can be used later to find what line of
-            // code the original method was created on.
-            method._stack = (new Error('Stack Trace for original')).stack;
-
-            method.restore = function () {
-                // For prototype properties try to reset by delete first.
-                // If this fails (ex: localStorage on mobile safari) then force a reset
-                // via direct assignment.
-                if (!owned) {
-                    delete object[property];
-                }
-                if (object[property] === method) {
-                    object[property] = wrappedMethod;
-                }
-            };
-
-            method.restore.sinon = true;
-            mirrorProperties(method, wrappedMethod);
-
-            return method;
-        },
-
-        extend: function extend(target) {
-            for (var i = 1, l = arguments.length; i < l; i += 1) {
-                for (var prop in arguments[i]) {
-                    if (arguments[i].hasOwnProperty(prop)) {
-                        target[prop] = arguments[i][prop];
-                    }
-
-                    // DONT ENUM bug, only care about toString
-                    if (arguments[i].hasOwnProperty("toString") &&
-                        arguments[i].toString != target.toString) {
-                        target.toString = arguments[i].toString;
-                    }
-                }
-            }
-
-            return target;
-        },
-
-        create: function create(proto) {
-            var F = function () {};
-            F.prototype = proto;
-            return new F();
-        },
-
-        deepEqual: function deepEqual(a, b) {
-            if (sinon.match && sinon.match.isMatcher(a)) {
-                return a.test(b);
-            }
-            if (typeof a != "object" || typeof b != "object") {
-                return a === b;
-            }
-
-            if (isElement(a) || isElement(b)) {
-                return a === b;
-            }
-
-            if (a === b) {
-                return true;
-            }
-
-            if ((a === null && b !== null) || (a !== null && b === null)) {
-                return false;
-            }
-
-            var aString = Object.prototype.toString.call(a);
-            if (aString != Object.prototype.toString.call(b)) {
-                return false;
-            }
-
-            if (aString == "[object Date]") {
-                return a.valueOf() === b.valueOf();
-            }
-
-            var prop, aLength = 0, bLength = 0;
-
-            if (aString == "[object Array]" && a.length !== b.length) {
-                return false;
-            }
-
-            for (prop in a) {
-                aLength += 1;
-
-                if (!deepEqual(a[prop], b[prop])) {
-                    return false;
-                }
-            }
-
-            for (prop in b) {
-                bLength += 1;
-            }
-
-            return aLength == bLength;
-        },
-
-        functionName: function functionName(func) {
-            var name = func.displayName || func.name;
-
-            // Use function decomposition as a last resort to get function
-            // name. Does not rely on function decomposition to work - if it
-            // doesn't debugging will be slightly less informative
-            // (i.e. toString will say 'spy' rather than 'myFunc').
-            if (!name) {
-                var matches = func.toString().match(/function ([^\s\(]+)/);
-                name = matches && matches[1];
-            }
-
-            return name;
-        },
-
-        functionToString: function toString() {
-            if (this.getCall && this.callCount) {
-                var thisValue, prop, i = this.callCount;
-
-                while (i--) {
-                    thisValue = this.getCall(i).thisValue;
-
-                    for (prop in thisValue) {
-                        if (thisValue[prop] === this) {
-                            return prop;
-                        }
-                    }
-                }
-            }
-
-            return this.displayName || "sinon fake";
-        },
-
-        getConfig: function (custom) {
-            var config = {};
-            custom = custom || {};
-            var defaults = sinon.defaultConfig;
-
-            for (var prop in defaults) {
-                if (defaults.hasOwnProperty(prop)) {
-                    config[prop] = custom.hasOwnProperty(prop) ? custom[prop] : defaults[prop];
-                }
-            }
-
-            return config;
-        },
-
-        format: function (val) {
-            return "" + val;
-        },
-
-        defaultConfig: {
-            injectIntoThis: true,
-            injectInto: null,
-            properties: ["spy", "stub", "mock", "clock", "server", "requests"],
-            useFakeTimers: true,
-            useFakeServer: true
-        },
-
-        timesInWords: function timesInWords(count) {
-            return count == 1 && "once" ||
-                count == 2 && "twice" ||
-                count == 3 && "thrice" ||
-                (count || 0) + " times";
-        },
-
-        calledInOrder: function (spies) {
-            for (var i = 1, l = spies.length; i < l; i++) {
-                if (!spies[i - 1].calledBefore(spies[i]) || !spies[i].called) {
-                    return false;
-                }
-            }
-
-            return true;
-        },
-
-        orderByFirstCall: function (spies) {
-            return spies.sort(function (a, b) {
-                // uuid, won't ever be equal
-                var aCall = a.getCall(0);
-                var bCall = b.getCall(0);
-                var aId = aCall && aCall.callId || -1;
-                var bId = bCall && bCall.callId || -1;
-
-                return aId < bId ? -1 : 1;
-            });
-        },
-
-        log: function () {},
-
-        logError: function (label, err) {
-            var msg = label + " threw exception: ";
-            sinon.log(msg + "[" + err.name + "] " + err.message);
-            if (err.stack) { sinon.log(err.stack); }
-
-            setTimeout(function () {
-                err.message = msg + err.message;
-                throw err;
-            }, 0);
-        },
-
-        typeOf: function (value) {
-            if (value === null) {
-                return "null";
-            }
-            else if (value === undefined) {
-                return "undefined";
-            }
-            var string = Object.prototype.toString.call(value);
-            return string.substring(8, string.length - 1).toLowerCase();
-        },
-
-        createStubInstance: function (constructor) {
-            if (typeof constructor !== "function") {
-                throw new TypeError("The constructor should be a function.");
-            }
-            return sinon.stub(sinon.create(constructor.prototype));
-        },
-
-        restore: function (object) {
-            if (object !== null && typeof object === "object") {
-                for (var prop in object) {
-                    if (isRestorable(object[prop])) {
-                        object[prop].restore();
-                    }
-                }
-            }
-            else if (isRestorable(object)) {
-                object.restore();
-            }
-        }
-    };
-
-    var isNode = typeof module !== "undefined" && module.exports;
-    var isAMD = typeof define === 'function' && typeof define.amd === 'object' && define.amd;
-
-    if (isAMD) {
-        define(function(){
-            return sinon;
-        });
-    } else if (isNode) {
-        try {
-            formatio = require("formatio");
-        } catch (e) {}
-        module.exports = sinon;
-        module.exports.spy = require("./sinon/spy");
-        module.exports.spyCall = require("./sinon/call");
-        module.exports.behavior = require("./sinon/behavior");
-        module.exports.stub = require("./sinon/stub");
-        module.exports.mock = require("./sinon/mock");
-        module.exports.collection = require("./sinon/collection");
-        module.exports.assert = require("./sinon/assert");
-        module.exports.sandbox = require("./sinon/sandbox");
-        module.exports.test = require("./sinon/test");
-        module.exports.testCase = require("./sinon/test_case");
-        module.exports.assert = require("./sinon/assert");
-        module.exports.match = require("./sinon/match");
-    }
-
-    if (formatio) {
-        var formatter = formatio.configure({ quoteStrings: false });
-        sinon.format = function () {
-            return formatter.ascii.apply(formatter, arguments);
-        };
-    } else if (isNode) {
-        try {
-            var util = require("util");
-            sinon.format = function (value) {
-                return typeof value == "object" && value.toString === Object.prototype.toString ? util.inspect(value) : value;
-            };
-        } catch (e) {
-            /* Node, but no util module - would be very old, but better safe than
-             sorry */
-        }
-    }
-
-    return sinon;
-}(typeof formatio == "object" && formatio));
-
-/* @depend ../sinon.js */
-/*jslint eqeqeq: false, onevar: false, plusplus: false*/
-/*global module, require, sinon*/
-/**
- * Match functions
- *
- * @author Maximilian Antoni (mail@maxantoni.de)
- * @license BSD
- *
- * Copyright (c) 2012 Maximilian Antoni
- */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== 'undefined' && module.exports;
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    function assertType(value, type, name) {
-        var actual = sinon.typeOf(value);
-        if (actual !== type) {
-            throw new TypeError("Expected type of " + name + " to be " +
-                type + ", but was " + actual);
-        }
-    }
-
-    var matcher = {
-        toString: function () {
-            return this.message;
-        }
-    };
-
-    function isMatcher(object) {
-        return matcher.isPrototypeOf(object);
-    }
-
-    function matchObject(expectation, actual) {
-        if (actual === null || actual === undefined) {
-            return false;
-        }
-        for (var key in expectation) {
-            if (expectation.hasOwnProperty(key)) {
-                var exp = expectation[key];
-                var act = actual[key];
-                if (match.isMatcher(exp)) {
-                    if (!exp.test(act)) {
-                        return false;
-                    }
-                } else if (sinon.typeOf(exp) === "object") {
-                    if (!matchObject(exp, act)) {
-                        return false;
-                    }
-                } else if (!sinon.deepEqual(exp, act)) {
-                    return false;
-                }
-            }
-        }
-        return true;
-    }
-
-    matcher.or = function (m2) {
-        if (!isMatcher(m2)) {
-            throw new TypeError("Matcher expected");
-        }
-        var m1 = this;
-        var or = sinon.create(matcher);
-        or.test = function (actual) {
-            return m1.test(actual) || m2.test(actual);
-        };
-        or.message = m1.message + ".or(" + m2.message + ")";
-        return or;
-    };
-
-    matcher.and = function (m2) {
-        if (!isMatcher(m2)) {
-            throw new TypeError("Matcher expected");
-        }
-        var m1 = this;
-        var and = sinon.create(matcher);
-        and.test = function (actual) {
-            return m1.test(actual) && m2.test(actual);
-        };
-        and.message = m1.message + ".and(" + m2.message + ")";
-        return and;
-    };
-
-    var match = function (expectation, message) {
-        var m = sinon.create(matcher);
-        var type = sinon.typeOf(expectation);
-        switch (type) {
-        case "object":
-            if (typeof expectation.test === "function") {
-                m.test = function (actual) {
-                    return expectation.test(actual) === true;
-                };
-                m.message = "match(" + sinon.functionName(expectation.test) + ")";
-                return m;
-            }
-            var str = [];
-            for (var key in expectation) {
-                if (expectation.hasOwnProperty(key)) {
-                    str.push(key + ": " + expectation[key]);
-                }
-            }
-            m.test = function (actual) {
-                return matchObject(expectation, actual);
-            };
-            m.message = "match(" + str.join(", ") + ")";
-            break;
-        case "number":
-            m.test = function (actual) {
-                return expectation == actual;
-            };
-            break;
-        case "string":
-            m.test = function (actual) {
-                if (typeof actual !== "string") {
-                    return false;
-                }
-                return actual.indexOf(expectation) !== -1;
-            };
-            m.message = "match(\"" + expectation + "\")";
-            break;
-        case "regexp":
-            m.test = function (actual) {
-                if (typeof actual !== "string") {
-                    return false;
-                }
-                return expectation.test(actual);
-            };
-            break;
-        case "function":
-            m.test = expectation;
-            if (message) {
-                m.message = message;
-            } else {
-                m.message = "match(" + sinon.functionName(expectation) + ")";
-            }
-            break;
-        default:
-            m.test = function (actual) {
-              return sinon.deepEqual(expectation, actual);
-            };
-        }
-        if (!m.message) {
-            m.message = "match(" + expectation + ")";
-        }
-        return m;
-    };
-
-    match.isMatcher = isMatcher;
-
-    match.any = match(function () {
-        return true;
-    }, "any");
-
-    match.defined = match(function (actual) {
-        return actual !== null && actual !== undefined;
-    }, "defined");
-
-    match.truthy = match(function (actual) {
-        return !!actual;
-    }, "truthy");
-
-    match.falsy = match(function (actual) {
-        return !actual;
-    }, "falsy");
-
-    match.same = function (expectation) {
-        return match(function (actual) {
-            return expectation === actual;
-        }, "same(" + expectation + ")");
-    };
-
-    match.typeOf = function (type) {
-        assertType(type, "string", "type");
-        return match(function (actual) {
-            return sinon.typeOf(actual) === type;
-        }, "typeOf(\"" + type + "\")");
-    };
-
-    match.instanceOf = function (type) {
-        assertType(type, "function", "type");
-        return match(function (actual) {
-            return actual instanceof type;
-        }, "instanceOf(" + sinon.functionName(type) + ")");
-    };
-
-    function createPropertyMatcher(propertyTest, messagePrefix) {
-        return function (property, value) {
-            assertType(property, "string", "property");
-            var onlyProperty = arguments.length === 1;
-            var message = messagePrefix + "(\"" + property + "\"";
-            if (!onlyProperty) {
-                message += ", " + value;
-            }
-            message += ")";
-            return match(function (actual) {
-                if (actual === undefined || actual === null ||
-                        !propertyTest(actual, property)) {
-                    return false;
-                }
-                return onlyProperty || sinon.deepEqual(value, actual[property]);
-            }, message);
-        };
-    }
-
-    match.has = createPropertyMatcher(function (actual, property) {
-        if (typeof actual === "object") {
-            return property in actual;
-        }
-        return actual[property] !== undefined;
-    }, "has");
-
-    match.hasOwn = createPropertyMatcher(function (actual, property) {
-        return actual.hasOwnProperty(property);
-    }, "hasOwn");
-
-    match.bool = match.typeOf("boolean");
-    match.number = match.typeOf("number");
-    match.string = match.typeOf("string");
-    match.object = match.typeOf("object");
-    match.func = match.typeOf("function");
-    match.array = match.typeOf("array");
-    match.regexp = match.typeOf("regexp");
-    match.date = match.typeOf("date");
-
-    if (commonJSModule) {
-        module.exports = match;
-    } else {
-        sinon.match = match;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-/**
-  * @depend ../sinon.js
-  * @depend match.js
-  */
-/*jslint eqeqeq: false, onevar: false, plusplus: false*/
-/*global module, require, sinon*/
-/**
-  * Spy calls
-  *
-  * @author Christian Johansen (christian@cjohansen.no)
-  * @author Maximilian Antoni (mail@maxantoni.de)
-  * @license BSD
-  *
-  * Copyright (c) 2010-2013 Christian Johansen
-  * Copyright (c) 2013 Maximilian Antoni
-  */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== 'undefined' && module.exports;
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    function throwYieldError(proxy, text, args) {
-        var msg = sinon.functionName(proxy) + text;
-        if (args.length) {
-            msg += " Received [" + slice.call(args).join(", ") + "]";
-        }
-        throw new Error(msg);
-    }
-
-    var slice = Array.prototype.slice;
-
-    var callProto = {
-        calledOn: function calledOn(thisValue) {
-            if (sinon.match && sinon.match.isMatcher(thisValue)) {
-                return thisValue.test(this.thisValue);
-            }
-            return this.thisValue === thisValue;
-        },
-
-        calledWith: function calledWith() {
-            for (var i = 0, l = arguments.length; i < l; i += 1) {
-                if (!sinon.deepEqual(arguments[i], this.args[i])) {
-                    return false;
-                }
-            }
-
-            return true;
-        },
-
-        calledWithMatch: function calledWithMatch() {
-            for (var i = 0, l = arguments.length; i < l; i += 1) {
-                var actual = this.args[i];
-                var expectation = arguments[i];
-                if (!sinon.match || !sinon.match(expectation).test(actual)) {
-                    return false;
-                }
-            }
-            return true;
-        },
-
-        calledWithExactly: function calledWithExactly() {
-            return arguments.length == this.args.length &&
-                this.calledWith.apply(this, arguments);
-        },
-
-        notCalledWith: function notCalledWith() {
-            return !this.calledWith.apply(this, arguments);
-        },
-
-        notCalledWithMatch: function notCalledWithMatch() {
-            return !this.calledWithMatch.apply(this, arguments);
-        },
-
-        returned: function returned(value) {
-            return sinon.deepEqual(value, this.returnValue);
-        },
-
-        threw: function threw(error) {
-            if (typeof error === "undefined" || !this.exception) {
-                return !!this.exception;
-            }
-
-            return this.exception === error || this.exception.name === error;
-        },
-
-        calledWithNew: function calledWithNew() {
-            return this.thisValue instanceof this.proxy;
-        },
-
-        calledBefore: function (other) {
-            return this.callId < other.callId;
-        },
-
-        calledAfter: function (other) {
-            return this.callId > other.callId;
-        },
-
-        callArg: function (pos) {
-            this.args[pos]();
-        },
-
-        callArgOn: function (pos, thisValue) {
-            this.args[pos].apply(thisValue);
-        },
-
-        callArgWith: function (pos) {
-            this.callArgOnWith.apply(this, [pos, null].concat(slice.call(arguments, 1)));
-        },
-
-        callArgOnWith: function (pos, thisValue) {
-            var args = slice.call(arguments, 2);
-            this.args[pos].apply(thisValue, args);
-        },
-
-        "yield": function () {
-            this.yieldOn.apply(this, [null].concat(slice.call(arguments, 0)));
-        },
-
-        yieldOn: function (thisValue) {
-            var args = this.args;
-            for (var i = 0, l = args.length; i < l; ++i) {
-                if (typeof args[i] === "function") {
-                    args[i].apply(thisValue, slice.call(arguments, 1));
-                    return;
-                }
-            }
-            throwYieldError(this.proxy, " cannot yield since no callback was passed.", args);
-        },
-
-        yieldTo: function (prop) {
-            this.yieldToOn.apply(this, [prop, null].concat(slice.call(arguments, 1)));
-        },
-
-        yieldToOn: function (prop, thisValue) {
-            var args = this.args;
-            for (var i = 0, l = args.length; i < l; ++i) {
-                if (args[i] && typeof args[i][prop] === "function") {
-                    args[i][prop].apply(thisValue, slice.call(arguments, 2));
-                    return;
-                }
-            }
-            throwYieldError(this.proxy, " cannot yield to '" + prop +
-                "' since no callback was passed.", args);
-        },
-
-        toString: function () {
-            var callStr = this.proxy.toString() + "(";
-            var args = [];
-
-            for (var i = 0, l = this.args.length; i < l; ++i) {
-                args.push(sinon.format(this.args[i]));
-            }
-
-            callStr = callStr + args.join(", ") + ")";
-
-            if (typeof this.returnValue != "undefined") {
-                callStr += " => " + sinon.format(this.returnValue);
-            }
-
-            if (this.exception) {
-                callStr += " !" + this.exception.name;
-
-                if (this.exception.message) {
-                    callStr += "(" + this.exception.message + ")";
-                }
-            }
-
-            return callStr;
-        }
-    };
-
-    callProto.invokeCallback = callProto.yield;
-
-    function createSpyCall(spy, thisValue, args, returnValue, exception, id) {
-        if (typeof id !== "number") {
-            throw new TypeError("Call id is not a number");
-        }
-        var proxyCall = sinon.create(callProto);
-        proxyCall.proxy = spy;
-        proxyCall.thisValue = thisValue;
-        proxyCall.args = args;
-        proxyCall.returnValue = returnValue;
-        proxyCall.exception = exception;
-        proxyCall.callId = id;
-
-        return proxyCall;
-    }
-    createSpyCall.toString = callProto.toString; // used by mocks
-
-    if (commonJSModule) {
-        module.exports = createSpyCall;
-    } else {
-        sinon.spyCall = createSpyCall;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-
-/**
-  * @depend ../sinon.js
-  * @depend call.js
-  */
-/*jslint eqeqeq: false, onevar: false, plusplus: false*/
-/*global module, require, sinon*/
-/**
-  * Spy functions
-  *
-  * @author Christian Johansen (christian@cjohansen.no)
-  * @license BSD
-  *
-  * Copyright (c) 2010-2013 Christian Johansen
-  */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== 'undefined' && module.exports;
-    var push = Array.prototype.push;
-    var slice = Array.prototype.slice;
-    var callId = 0;
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    function spy(object, property) {
-        if (!property && typeof object == "function") {
-            return spy.create(object);
-        }
-
-        if (!object && !property) {
-            return spy.create(function () { });
-        }
-
-        var method = object[property];
-        return sinon.wrapMethod(object, property, spy.create(method));
-    }
-
-    function matchingFake(fakes, args, strict) {
-        if (!fakes) {
-            return;
-        }
-
-        for (var i = 0, l = fakes.length; i < l; i++) {
-            if (fakes[i].matches(args, strict)) {
-                return fakes[i];
-            }
-        }
-    }
-
-    function incrementCallCount() {
-        this.called = true;
-        this.callCount += 1;
-        this.notCalled = false;
-        this.calledOnce = this.callCount == 1;
-        this.calledTwice = this.callCount == 2;
-        this.calledThrice = this.callCount == 3;
-    }
-
-    function createCallProperties() {
-        this.firstCall = this.getCall(0);
-        this.secondCall = this.getCall(1);
-        this.thirdCall = this.getCall(2);
-        this.lastCall = this.getCall(this.callCount - 1);
-    }
-
-    var vars = "a,b,c,d,e,f,g,h,i,j,k,l";
-    function createProxy(func) {
-        // Retain the function length:
-        var p;
-        if (func.length) {
-            eval("p = (function proxy(" + vars.substring(0, func.length * 2 - 1) +
-                ") { return p.invoke(func, this, slice.call(arguments)); });");
-        }
-        else {
-            p = function proxy() {
-                return p.invoke(func, this, slice.call(arguments));
-            };
-        }
-        return p;
-    }
-
-    var uuid = 0;
-
-    // Public API
-    var spyApi = {
-        reset: function () {
-            this.called = false;
-            this.notCalled = true;
-            this.calledOnce = false;
-            this.calledTwice = false;
-            this.calledThrice = false;
-            this.callCount = 0;
-            this.firstCall = null;
-            this.secondCall = null;
-            this.thirdCall = null;
-            this.lastCall = null;
-            this.args = [];
-            this.returnValues = [];
-            this.thisValues = [];
-            this.exceptions = [];
-            this.callIds = [];
-            if (this.fakes) {
-                for (var i = 0; i < this.fakes.length; i++) {
-                    this.fakes[i].reset();
-                }
-            }
-        },
-
-        create: function create(func) {
-            var name;
-
-            if (typeof func != "function") {
-                func = function () { };
-            } else {
-                name = sinon.functionName(func);
-            }
-
-            var proxy = createProxy(func);
-
-            sinon.extend(proxy, spy);
-            delete proxy.create;
-            sinon.extend(proxy, func);
-
-            proxy.reset();
-            proxy.prototype = func.prototype;
-            proxy.displayName = name || "spy";
-            proxy.toString = sinon.functionToString;
-            proxy._create = sinon.spy.create;
-            proxy.id = "spy#" + uuid++;
-
-            return proxy;
-        },
-
-        invoke: function invoke(func, thisValue, args) {
-            var matching = matchingFake(this.fakes, args);
-            var exception, returnValue;
-
-            incrementCallCount.call(this);
-            push.call(this.thisValues, thisValue);
-            push.call(this.args, args);
-            push.call(this.callIds, callId++);
-
-            try {
-                if (matching) {
-                    returnValue = matching.invoke(func, thisValue, args);
-                } else {
-                    returnValue = (this.func || func).apply(thisValue, args);
-                }
-
-                var thisCall = this.getCall(this.callCount - 1);
-                if (thisCall.calledWithNew() && typeof returnValue !== 'object') {
-                    returnValue = thisValue;
-                }
-            } catch (e) {
-                exception = e;
-            }
-
-            push.call(this.exceptions, exception);
-            push.call(this.returnValues, returnValue);
-
-            createCallProperties.call(this);
-
-            if (exception !== undefined) {
-                throw exception;
-            }
-
-            return returnValue;
-        },
-
-        getCall: function getCall(i) {
-            if (i < 0 || i >= this.callCount) {
-                return null;
-            }
-
-            return sinon.spyCall(this, this.thisValues[i], this.args[i],
-                                    this.returnValues[i], this.exceptions[i],
-                                    this.callIds[i]);
-        },
-
-        getCalls: function () {
-            var calls = [];
-            var i;
-
-            for (i = 0; i < this.callCount; i++) {
-                calls.push(this.getCall(i));
-            }
-
-            return calls;
-        },
-
-        calledBefore: function calledBefore(spyFn) {
-            if (!this.called) {
-                return false;
-            }
-
-            if (!spyFn.called) {
-                return true;
-            }
-
-            return this.callIds[0] < spyFn.callIds[spyFn.callIds.length - 1];
-        },
-
-        calledAfter: function calledAfter(spyFn) {
-            if (!this.called || !spyFn.called) {
-                return false;
-            }
-
-            return this.callIds[this.callCount - 1] > spyFn.callIds[spyFn.callCount - 1];
-        },
-
-        withArgs: function () {
-            var args = slice.call(arguments);
-
-            if (this.fakes) {
-                var match = matchingFake(this.fakes, args, true);
-
-                if (match) {
-                    return match;
-                }
-            } else {
-                this.fakes = [];
-            }
-
-            var original = this;
-            var fake = this._create();
-            fake.matchingAguments = args;
-            fake.parent = this;
-            push.call(this.fakes, fake);
-
-            fake.withArgs = function () {
-                return original.withArgs.apply(original, arguments);
-            };
-
-            for (var i = 0; i < this.args.length; i++) {
-                if (fake.matches(this.args[i])) {
-                    incrementCallCount.call(fake);
-                    push.call(fake.thisValues, this.thisValues[i]);
-                    push.call(fake.args, this.args[i]);
-                    push.call(fake.returnValues, this.returnValues[i]);
-                    push.call(fake.exceptions, this.exceptions[i]);
-                    push.call(fake.callIds, this.callIds[i]);
-                }
-            }
-            createCallProperties.call(fake);
-
-            return fake;
-        },
-
-        matches: function (args, strict) {
-            var margs = this.matchingAguments;
-
-            if (margs.length <= args.length &&
-                sinon.deepEqual(margs, args.slice(0, margs.length))) {
-                return !strict || margs.length == args.length;
-            }
-        },
-
-        printf: function (format) {
-            var spy = this;
-            var args = slice.call(arguments, 1);
-            var formatter;
-
-            return (format || "").replace(/%(.)/g, function (match, specifyer) {
-                formatter = spyApi.formatters[specifyer];
-
-                if (typeof formatter == "function") {
-                    return formatter.call(null, spy, args);
-                } else if (!isNaN(parseInt(specifyer, 10))) {
-                    return sinon.format(args[specifyer - 1]);
-                }
-
-                return "%" + specifyer;
-            });
-        }
-    };
-
-    function delegateToCalls(method, matchAny, actual, notCalled) {
-        spyApi[method] = function () {
-            if (!this.called) {
-                if (notCalled) {
-                    return notCalled.apply(this, arguments);
-                }
-                return false;
-            }
-
-            var currentCall;
-            var matches = 0;
-
-            for (var i = 0, l = this.callCount; i < l; i += 1) {
-                currentCall = this.getCall(i);
-
-                if (currentCall[actual || method].apply(currentCall, arguments)) {
-                    matches += 1;
-
-                    if (matchAny) {
-                        return true;
-                    }
-                }
-            }
-
-            return matches === this.callCount;
-        };
-    }
-
-    delegateToCalls("calledOn", true);
-    delegateToCalls("alwaysCalledOn", false, "calledOn");
-    delegateToCalls("calledWith", true);
-    delegateToCalls("calledWithMatch", true);
-    delegateToCalls("alwaysCalledWith", false, "calledWith");
-    delegateToCalls("alwaysCalledWithMatch", false, "calledWithMatch");
-    delegateToCalls("calledWithExactly", true);
-    delegateToCalls("alwaysCalledWithExactly", false, "calledWithExactly");
-    delegateToCalls("neverCalledWith", false, "notCalledWith",
-        function () { return true; });
-    delegateToCalls("neverCalledWithMatch", false, "notCalledWithMatch",
-        function () { return true; });
-    delegateToCalls("threw", true);
-    delegateToCalls("alwaysThrew", false, "threw");
-    delegateToCalls("returned", true);
-    delegateToCalls("alwaysReturned", false, "returned");
-    delegateToCalls("calledWithNew", true);
-    delegateToCalls("alwaysCalledWithNew", false, "calledWithNew");
-    delegateToCalls("callArg", false, "callArgWith", function () {
-        throw new Error(this.toString() + " cannot call arg since it was not yet invoked.");
-    });
-    spyApi.callArgWith = spyApi.callArg;
-    delegateToCalls("callArgOn", false, "callArgOnWith", function () {
-        throw new Error(this.toString() + " cannot call arg since it was not yet invoked.");
-    });
-    spyApi.callArgOnWith = spyApi.callArgOn;
-    delegateToCalls("yield", false, "yield", function () {
-        throw new Error(this.toString() + " cannot yield since it was not yet invoked.");
-    });
-    // "invokeCallback" is an alias for "yield" since "yield" is invalid in strict mode.
-    spyApi.invokeCallback = spyApi.yield;
-    delegateToCalls("yieldOn", false, "yieldOn", function () {
-        throw new Error(this.toString() + " cannot yield since it was not yet invoked.");
-    });
-    delegateToCalls("yieldTo", false, "yieldTo", function (property) {
-        throw new Error(this.toString() + " cannot yield to '" + property +
-            "' since it was not yet invoked.");
-    });
-    delegateToCalls("yieldToOn", false, "yieldToOn", function (property) {
-        throw new Error(this.toString() + " cannot yield to '" + property +
-            "' since it was not yet invoked.");
-    });
-
-    spyApi.formatters = {
-        "c": function (spy) {
-            return sinon.timesInWords(spy.callCount);
-        },
-
-        "n": function (spy) {
-            return spy.toString();
-        },
-
-        "C": function (spy) {
-            var calls = [];
-
-            for (var i = 0, l = spy.callCount; i < l; ++i) {
-                var stringifiedCall = "    " + spy.getCall(i).toString();
-                if (/\n/.test(calls[i - 1])) {
-                    stringifiedCall = "\n" + stringifiedCall;
-                }
-                push.call(calls, stringifiedCall);
-            }
-
-            return calls.length > 0 ? "\n" + calls.join("\n") : "";
-        },
-
-        "t": function (spy) {
-            var objects = [];
-
-            for (var i = 0, l = spy.callCount; i < l; ++i) {
-                push.call(objects, sinon.format(spy.thisValues[i]));
-            }
-
-            return objects.join(", ");
-        },
-
-        "*": function (spy, args) {
-            var formatted = [];
-
-            for (var i = 0, l = args.length; i < l; ++i) {
-                push.call(formatted, sinon.format(args[i]));
-            }
-
-            return formatted.join(", ");
-        }
-    };
-
-    sinon.extend(spy, spyApi);
-
-    spy.spyCall = sinon.spyCall;
-
-    if (commonJSModule) {
-        module.exports = spy;
-    } else {
-        sinon.spy = spy;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-/**
- * @depend ../sinon.js
- */
-/*jslint eqeqeq: false, onevar: false*/
-/*global module, require, sinon, process, setImmediate, setTimeout*/
-/**
- * Stub behavior
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @author Tim Fischbach (mail@timfischbach.de)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== 'undefined' && module.exports;
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    var slice = Array.prototype.slice;
-    var join = Array.prototype.join;
-    var proto;
-
-    var nextTick = (function () {
-        if (typeof process === "object" && typeof process.nextTick === "function") {
-            return process.nextTick;
-        } else if (typeof setImmediate === "function") {
-            return setImmediate;
-        } else {
-            return function (callback) {
-                setTimeout(callback, 0);
-            };
-        }
-    })();
-
-    function throwsException(error, message) {
-        if (typeof error == "string") {
-            this.exception = new Error(message || "");
-            this.exception.name = error;
-        } else if (!error) {
-            this.exception = new Error("Error");
-        } else {
-            this.exception = error;
-        }
-
-        return this;
-    }
-
-    function getCallback(behavior, args) {
-        var callArgAt = behavior.callArgAt;
-
-        if (callArgAt < 0) {
-            var callArgProp = behavior.callArgProp;
-
-            for (var i = 0, l = args.length; i < l; ++i) {
-                if (!callArgProp && typeof args[i] == "function") {
-                    return args[i];
-                }
-
-                if (callArgProp && args[i] &&
-                    typeof args[i][callArgProp] == "function") {
-                    return args[i][callArgProp];
-                }
-            }
-
-            return null;
-        }
-
-        return args[callArgAt];
-    }
-
-    function getCallbackError(behavior, func, args) {
-        if (behavior.callArgAt < 0) {
-            var msg;
-
-            if (behavior.callArgProp) {
-                msg = sinon.functionName(behavior.stub) +
-                    " expected to yield to '" + behavior.callArgProp +
-                    "', but no object with such a property was passed.";
-            } else {
-                msg = sinon.functionName(behavior.stub) +
-                    " expected to yield, but no callback was passed.";
-            }
-
-            if (args.length > 0) {
-                msg += " Received [" + join.call(args, ", ") + "]";
-            }
-
-            return msg;
-        }
-
-        return "argument at index " + behavior.callArgAt + " is not a function: " + func;
-    }
-
-    function callCallback(behavior, args) {
-        if (typeof behavior.callArgAt == "number") {
-            var func = getCallback(behavior, args);
-
-            if (typeof func != "function") {
-                throw new TypeError(getCallbackError(behavior, func, args));
-            }
-
-            if (behavior.callbackAsync) {
-                nextTick(function() {
-                    func.apply(behavior.callbackContext, behavior.callbackArguments);
-                });
-            } else {
-                func.apply(behavior.callbackContext, behavior.callbackArguments);
-            }
-        }
-    }
-
-    proto = {
-        create: function(stub) {
-            var behavior = sinon.extend({}, sinon.behavior);
-            delete behavior.create;
-            behavior.stub = stub;
-
-            return behavior;
-        },
-
-        isPresent: function() {
-            return (typeof this.callArgAt == 'number' ||
-                    this.exception ||
-                    typeof this.returnArgAt == 'number' ||
-                    this.returnThis ||
-                    this.returnValueDefined);
-        },
-
-        invoke: function(context, args) {
-            callCallback(this, args);
-
-            if (this.exception) {
-                throw this.exception;
-            } else if (typeof this.returnArgAt == 'number') {
-                return args[this.returnArgAt];
-            } else if (this.returnThis) {
-                return context;
-            }
-
-            return this.returnValue;
-        },
-
-        onCall: function(index) {
-            return this.stub.onCall(index);
-        },
-
-        onFirstCall: function() {
-            return this.stub.onFirstCall();
-        },
-
-        onSecondCall: function() {
-            return this.stub.onSecondCall();
-        },
-
-        onThirdCall: function() {
-            return this.stub.onThirdCall();
-        },
-
-        withArgs: function(/* arguments */) {
-            throw new Error('Defining a stub by invoking "stub.onCall(...).withArgs(...)" is not supported. ' +
-                            'Use "stub.withArgs(...).onCall(...)" to define sequential behavior for calls with certain arguments.');
-        },
-
-        callsArg: function callsArg(pos) {
-            if (typeof pos != "number") {
-                throw new TypeError("argument index is not number");
-            }
-
-            this.callArgAt = pos;
-            this.callbackArguments = [];
-            this.callbackContext = undefined;
-            this.callArgProp = undefined;
-            this.callbackAsync = false;
-
-            return this;
-        },
-
-        callsArgOn: function callsArgOn(pos, context) {
-            if (typeof pos != "number") {
-                throw new TypeError("argument index is not number");
-            }
-            if (typeof context != "object") {
-                throw new TypeError("argument context is not an object");
-            }
-
-            this.callArgAt = pos;
-            this.callbackArguments = [];
-            this.callbackContext = context;
-            this.callArgProp = undefined;
-            this.callbackAsync = false;
-
-            return this;
-        },
-
-        callsArgWith: function callsArgWith(pos) {
-            if (typeof pos != "number") {
-                throw new TypeError("argument index is not number");
-            }
-
-            this.callArgAt = pos;
-            this.callbackArguments = slice.call(arguments, 1);
-            this.callbackContext = undefined;
-            this.callArgProp = undefined;
-            this.callbackAsync = false;
-
-            return this;
-        },
-
-        callsArgOnWith: function callsArgWith(pos, context) {
-            if (typeof pos != "number") {
-                throw new TypeError("argument index is not number");
-            }
-            if (typeof context != "object") {
-                throw new TypeError("argument context is not an object");
-            }
-
-            this.callArgAt = pos;
-            this.callbackArguments = slice.call(arguments, 2);
-            this.callbackContext = context;
-            this.callArgProp = undefined;
-            this.callbackAsync = false;
-
-            return this;
-        },
-
-        yields: function () {
-            this.callArgAt = -1;
-            this.callbackArguments = slice.call(arguments, 0);
-            this.callbackContext = undefined;
-            this.callArgProp = undefined;
-            this.callbackAsync = false;
-
-            return this;
-        },
-
-        yieldsOn: function (context) {
-            if (typeof context != "object") {
-                throw new TypeError("argument context is not an object");
-            }
-
-            this.callArgAt = -1;
-            this.callbackArguments = slice.call(arguments, 1);
-            this.callbackContext = context;
-            this.callArgProp = undefined;
-            this.callbackAsync = false;
-
-            return this;
-        },
-
-        yieldsTo: function (prop) {
-            this.callArgAt = -1;
-            this.callbackArguments = slice.call(arguments, 1);
-            this.callbackContext = undefined;
-            this.callArgProp = prop;
-            this.callbackAsync = false;
-
-            return this;
-        },
-
-        yieldsToOn: function (prop, context) {
-            if (typeof context != "object") {
-                throw new TypeError("argument context is not an object");
-            }
-
-            this.callArgAt = -1;
-            this.callbackArguments = slice.call(arguments, 2);
-            this.callbackContext = context;
-            this.callArgProp = prop;
-            this.callbackAsync = false;
-
-            return this;
-        },
-
-
-        "throws": throwsException,
-        throwsException: throwsException,
-
-        returns: function returns(value) {
-            this.returnValue = value;
-            this.returnValueDefined = true;
-
-            return this;
-        },
-
-        returnsArg: function returnsArg(pos) {
-            if (typeof pos != "number") {
-                throw new TypeError("argument index is not number");
-            }
-
-            this.returnArgAt = pos;
-
-            return this;
-        },
-
-        returnsThis: function returnsThis() {
-            this.returnThis = true;
-
-            return this;
-        }
-    };
-
-    // create asynchronous versions of callsArg* and yields* methods
-    for (var method in proto) {
-        // need to avoid creating anotherasync versions of the newly added async methods
-        if (proto.hasOwnProperty(method) &&
-            method.match(/^(callsArg|yields)/) &&
-            !method.match(/Async/)) {
-            proto[method + 'Async'] = (function (syncFnName) {
-                return function () {
-                    var result = this[syncFnName].apply(this, arguments);
-                    this.callbackAsync = true;
-                    return result;
-                };
-            })(method);
-        }
-    }
-
-    if (commonJSModule) {
-        module.exports = proto;
-    } else {
-        sinon.behavior = proto;
-    }
-}(typeof sinon == "object" && sinon || null));
-/**
- * @depend ../sinon.js
- * @depend spy.js
- * @depend behavior.js
- */
-/*jslint eqeqeq: false, onevar: false*/
-/*global module, require, sinon*/
-/**
- * Stub functions
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== 'undefined' && module.exports;
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    function stub(object, property, func) {
-        if (!!func && typeof func != "function") {
-            throw new TypeError("Custom stub should be function");
-        }
-
-        var wrapper;
-
-        if (func) {
-            wrapper = sinon.spy && sinon.spy.create ? sinon.spy.create(func) : func;
-        } else {
-            wrapper = stub.create();
-        }
-
-        if (!object && typeof property === "undefined") {
-            return sinon.stub.create();
-        }
-
-        if (typeof property === "undefined" && typeof object == "object") {
-            for (var prop in object) {
-                if (typeof object[prop] === "function") {
-                    stub(object, prop);
-                }
-            }
-
-            return object;
-        }
-
-        return sinon.wrapMethod(object, property, wrapper);
-    }
-
-    function getDefaultBehavior(stub) {
-        return stub.defaultBehavior || getParentBehaviour(stub) || sinon.behavior.create(stub);
-    }
-
-    function getParentBehaviour(stub) {
-        return (stub.parent && getCurrentBehavior(stub.parent));
-    }
-
-    function getCurrentBehavior(stub) {
-        var behavior = stub.behaviors[stub.callCount - 1];
-        return behavior && behavior.isPresent() ? behavior : getDefaultBehavior(stub);
-    }
-
-    var uuid = 0;
-
-    sinon.extend(stub, (function () {
-        var proto = {
-            create: function create() {
-                var functionStub = function () {
-                    return getCurrentBehavior(functionStub).invoke(this, arguments);
-                };
-
-                functionStub.id = "stub#" + uuid++;
-                var orig = functionStub;
-                functionStub = sinon.spy.create(functionStub);
-                functionStub.func = orig;
-
-                sinon.extend(functionStub, stub);
-                functionStub._create = sinon.stub.create;
-                functionStub.displayName = "stub";
-                functionStub.toString = sinon.functionToString;
-
-                functionStub.defaultBehavior = null;
-                functionStub.behaviors = [];
-
-                return functionStub;
-            },
-
-            resetBehavior: function () {
-                var i;
-
-                this.defaultBehavior = null;
-                this.behaviors = [];
-
-                delete this.returnValue;
-                delete this.returnArgAt;
-                this.returnThis = false;
-
-                if (this.fakes) {
-                    for (i = 0; i < this.fakes.length; i++) {
-                        this.fakes[i].resetBehavior();
-                    }
-                }
-            },
-
-            onCall: function(index) {
-                if (!this.behaviors[index]) {
-                    this.behaviors[index] = sinon.behavior.create(this);
-                }
-
-                return this.behaviors[index];
-            },
-
-            onFirstCall: function() {
-                return this.onCall(0);
-            },
-
-            onSecondCall: function() {
-                return this.onCall(1);
-            },
-
-            onThirdCall: function() {
-                return this.onCall(2);
-            }
-        };
-
-        for (var method in sinon.behavior) {
-            if (sinon.behavior.hasOwnProperty(method) &&
-                !proto.hasOwnProperty(method) &&
-                method != 'create' &&
-                method != 'withArgs' &&
-                method != 'invoke') {
-                proto[method] = (function(behaviorMethod) {
-                    return function() {
-                        this.defaultBehavior = this.defaultBehavior || sinon.behavior.create(this);
-                        this.defaultBehavior[behaviorMethod].apply(this.defaultBehavior, arguments);
-                        return this;
-                    };
-                }(method));
-            }
-        }
-
-        return proto;
-    }()));
-
-    if (commonJSModule) {
-        module.exports = stub;
-    } else {
-        sinon.stub = stub;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-/**
- * @depend ../sinon.js
- * @depend stub.js
- */
-/*jslint eqeqeq: false, onevar: false, nomen: false*/
-/*global module, require, sinon*/
-/**
- * Mock functions.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== 'undefined' && module.exports;
-    var push = [].push;
-    var match;
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    match = sinon.match;
-
-    if (!match && commonJSModule) {
-        match = require("./match");
-    }
-
-    function mock(object) {
-        if (!object) {
-            return sinon.expectation.create("Anonymous mock");
-        }
-
-        return mock.create(object);
-    }
-
-    sinon.mock = mock;
-
-    sinon.extend(mock, (function () {
-        function each(collection, callback) {
-            if (!collection) {
-                return;
-            }
-
-            for (var i = 0, l = collection.length; i < l; i += 1) {
-                callback(collection[i]);
-            }
-        }
-
-        return {
-            create: function create(object) {
-                if (!object) {
-                    throw new TypeError("object is null");
-                }
-
-                var mockObject = sinon.extend({}, mock);
-                mockObject.object = object;
-                delete mockObject.create;
-
-                return mockObject;
-            },
-
-            expects: function expects(method) {
-                if (!method) {
-                    throw new TypeError("method is falsy");
-                }
-
-                if (!this.expectations) {
-                    this.expectations = {};
-                    this.proxies = [];
-                }
-
-                if (!this.expectations[method]) {
-                    this.expectations[method] = [];
-                    var mockObject = this;
-
-                    sinon.wrapMethod(this.object, method, function () {
-                        return mockObject.invokeMethod(method, this, arguments);
-                    });
-
-                    push.call(this.proxies, method);
-                }
-
-                var expectation = sinon.expectation.create(method);
-                push.call(this.expectations[method], expectation);
-
-                return expectation;
-            },
-
-            restore: function restore() {
-                var object = this.object;
-
-                each(this.proxies, function (proxy) {
-                    if (typeof object[proxy].restore == "function") {
-                        object[proxy].restore();
-                    }
-                });
-            },
-
-            verify: function verify() {
-                var expectations = this.expectations || {};
-                var messages = [], met = [];
-
-                each(this.proxies, function (proxy) {
-                    each(expectations[proxy], function (expectation) {
-                        if (!expectation.met()) {
-                            push.call(messages, expectation.toString());
-                        } else {
-                            push.call(met, expectation.toString());
-                        }
-                    });
-                });
-
-                this.restore();
-
-                if (messages.length > 0) {
-                    sinon.expectation.fail(messages.concat(met).join("\n"));
-                } else {
-                    sinon.expectation.pass(messages.concat(met).join("\n"));
-                }
-
-                return true;
-            },
-
-            invokeMethod: function invokeMethod(method, thisValue, args) {
-                var expectations = this.expectations && this.expectations[method];
-                var length = expectations && expectations.length || 0, i;
-
-                for (i = 0; i < length; i += 1) {
-                    if (!expectations[i].met() &&
-                        expectations[i].allowsCall(thisValue, args)) {
-                        return expectations[i].apply(thisValue, args);
-                    }
-                }
-
-                var messages = [], available, exhausted = 0;
-
-                for (i = 0; i < length; i += 1) {
-                    if (expectations[i].allowsCall(thisValue, args)) {
-                        available = available || expectations[i];
-                    } else {
-                        exhausted += 1;
-                    }
-                    push.call(messages, "    " + expectations[i].toString());
-                }
-
-                if (exhausted === 0) {
-                    return available.apply(thisValue, args);
-                }
-
-                messages.unshift("Unexpected call: " + sinon.spyCall.toString.call({
-                    proxy: method,
-                    args: args
-                }));
-
-                sinon.expectation.fail(messages.join("\n"));
-            }
-        };
-    }()));
-
-    var times = sinon.timesInWords;
-
-    sinon.expectation = (function () {
-        var slice = Array.prototype.slice;
-        var _invoke = sinon.spy.invoke;
-
-        function callCountInWords(callCount) {
-            if (callCount == 0) {
-                return "never called";
-            } else {
-                return "called " + times(callCount);
-            }
-        }
-
-        function expectedCallCountInWords(expectation) {
-            var min = expectation.minCalls;
-            var max = expectation.maxCalls;
-
-            if (typeof min == "number" && typeof max == "number") {
-                var str = times(min);
-
-                if (min != max) {
-                    str = "at least " + str + " and at most " + times(max);
-                }
-
-                return str;
-            }
-
-            if (typeof min == "number") {
-                return "at least " + times(min);
-            }
-
-            return "at most " + times(max);
-        }
-
-        function receivedMinCalls(expectation) {
-            var hasMinLimit = typeof expectation.minCalls == "number";
-            return !hasMinLimit || expectation.callCount >= expectation.minCalls;
-        }
-
-        function receivedMaxCalls(expectation) {
-            if (typeof expectation.maxCalls != "number") {
-                return false;
-            }
-
-            return expectation.callCount == expectation.maxCalls;
-        }
-
-        function verifyMatcher(possibleMatcher, arg){
-            if (match && match.isMatcher(possibleMatcher)) {
-                return possibleMatcher.test(arg);
-            } else {
-                return true;
-            }
-        }
-
-        return {
-            minCalls: 1,
-            maxCalls: 1,
-
-            create: function create(methodName) {
-                var expectation = sinon.extend(sinon.stub.create(), sinon.expectation);
-                delete expectation.create;
-                expectation.method = methodName;
-
-                return expectation;
-            },
-
-            invoke: function invoke(func, thisValue, args) {
-                this.verifyCallAllowed(thisValue, args);
-
-                return _invoke.apply(this, arguments);
-            },
-
-            atLeast: function atLeast(num) {
-                if (typeof num != "number") {
-                    throw new TypeError("'" + num + "' is not number");
-                }
-
-                if (!this.limitsSet) {
-                    this.maxCalls = null;
-                    this.limitsSet = true;
-                }
-
-                this.minCalls = num;
-
-                return this;
-            },
-
-            atMost: function atMost(num) {
-                if (typeof num != "number") {
-                    throw new TypeError("'" + num + "' is not number");
-                }
-
-                if (!this.limitsSet) {
-                    this.minCalls = null;
-                    this.limitsSet = true;
-                }
-
-                this.maxCalls = num;
-
-                return this;
-            },
-
-            never: function never() {
-                return this.exactly(0);
-            },
-
-            once: function once() {
-                return this.exactly(1);
-            },
-
-            twice: function twice() {
-                return this.exactly(2);
-            },
-
-            thrice: function thrice() {
-                return this.exactly(3);
-            },
-
-            exactly: function exactly(num) {
-                if (typeof num != "number") {
-                    throw new TypeError("'" + num + "' is not a number");
-                }
-
-                this.atLeast(num);
-                return this.atMost(num);
-            },
-
-            met: function met() {
-                return !this.failed && receivedMinCalls(this);
-            },
-
-            verifyCallAllowed: function verifyCallAllowed(thisValue, args) {
-                if (receivedMaxCalls(this)) {
-                    this.failed = true;
-                    sinon.expectation.fail(this.method + " already called " + times(this.maxCalls));
-                }
-
-                if ("expectedThis" in this && this.expectedThis !== thisValue) {
-                    sinon.expectation.fail(this.method + " called with " + thisValue + " as thisValue, expected " +
-                        this.expectedThis);
-                }
-
-                if (!("expectedArguments" in this)) {
-                    return;
-                }
-
-                if (!args) {
-                    sinon.expectation.fail(this.method + " received no arguments, expected " +
-                        sinon.format(this.expectedArguments));
-                }
-
-                if (args.length < this.expectedArguments.length) {
-                    sinon.expectation.fail(this.method + " received too few arguments (" + sinon.format(args) +
-                        "), expected " + sinon.format(this.expectedArguments));
-                }
-
-                if (this.expectsExactArgCount &&
-                    args.length != this.expectedArguments.length) {
-                    sinon.expectation.fail(this.method + " received too many arguments (" + sinon.format(args) +
-                        "), expected " + sinon.format(this.expectedArguments));
-                }
-
-                for (var i = 0, l = this.expectedArguments.length; i < l; i += 1) {
-
-                    if (!verifyMatcher(this.expectedArguments[i],args[i])) {
-                        sinon.expectation.fail(this.method + " received wrong arguments " + sinon.format(args) +
-                            ", didn't match " + this.expectedArguments.toString());
-                    }
-
-                    if (!sinon.deepEqual(this.expectedArguments[i], args[i])) {
-                        sinon.expectation.fail(this.method + " received wrong arguments " + sinon.format(args) +
-                            ", expected " + sinon.format(this.expectedArguments));
-                    }
-                }
-            },
-
-            allowsCall: function allowsCall(thisValue, args) {
-                if (this.met() && receivedMaxCalls(this)) {
-                    return false;
-                }
-
-                if ("expectedThis" in this && this.expectedThis !== thisValue) {
-                    return false;
-                }
-
-                if (!("expectedArguments" in this)) {
-                    return true;
-                }
-
-                args = args || [];
-
-                if (args.length < this.expectedArguments.length) {
-                    return false;
-                }
-
-                if (this.expectsExactArgCount &&
-                    args.length != this.expectedArguments.length) {
-                    return false;
-                }
-
-                for (var i = 0, l = this.expectedArguments.length; i < l; i += 1) {
-                    if (!verifyMatcher(this.expectedArguments[i],args[i])) {
-                        return false;
-                    }
-
-                    if (!sinon.deepEqual(this.expectedArguments[i], args[i])) {
-                        return false;
-                    }
-                }
-
-                return true;
-            },
-
-            withArgs: function withArgs() {
-                this.expectedArguments = slice.call(arguments);
-                return this;
-            },
-
-            withExactArgs: function withExactArgs() {
-                this.withArgs.apply(this, arguments);
-                this.expectsExactArgCount = true;
-                return this;
-            },
-
-            on: function on(thisValue) {
-                this.expectedThis = thisValue;
-                return this;
-            },
-
-            toString: function () {
-                var args = (this.expectedArguments || []).slice();
-
-                if (!this.expectsExactArgCount) {
-                    push.call(args, "[...]");
-                }
-
-                var callStr = sinon.spyCall.toString.call({
-                    proxy: this.method || "anonymous mock expectation",
-                    args: args
-                });
-
-                var message = callStr.replace(", [...", "[, ...") + " " +
-                    expectedCallCountInWords(this);
-
-                if (this.met()) {
-                    return "Expectation met: " + message;
-                }
-
-                return "Expected " + message + " (" +
-                    callCountInWords(this.callCount) + ")";
-            },
-
-            verify: function verify() {
-                if (!this.met()) {
-                    sinon.expectation.fail(this.toString());
-                } else {
-                    sinon.expectation.pass(this.toString());
-                }
-
-                return true;
-            },
-
-            pass: function(message) {
-              sinon.assert.pass(message);
-            },
-            fail: function (message) {
-                var exception = new Error(message);
-                exception.name = "ExpectationError";
-
-                throw exception;
-            }
-        };
-    }());
-
-    if (commonJSModule) {
-        module.exports = mock;
-    } else {
-        sinon.mock = mock;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-/**
- * @depend ../sinon.js
- * @depend stub.js
- * @depend mock.js
- */
-/*jslint eqeqeq: false, onevar: false, forin: true*/
-/*global module, require, sinon*/
-/**
- * Collections of stubs, spies and mocks.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== 'undefined' && module.exports;
-    var push = [].push;
-    var hasOwnProperty = Object.prototype.hasOwnProperty;
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    function getFakes(fakeCollection) {
-        if (!fakeCollection.fakes) {
-            fakeCollection.fakes = [];
-        }
-
-        return fakeCollection.fakes;
-    }
-
-    function each(fakeCollection, method) {
-        var fakes = getFakes(fakeCollection);
-
-        for (var i = 0, l = fakes.length; i < l; i += 1) {
-            if (typeof fakes[i][method] == "function") {
-                fakes[i][method]();
-            }
-        }
-    }
-
-    function compact(fakeCollection) {
-        var fakes = getFakes(fakeCollection);
-        var i = 0;
-        while (i < fakes.length) {
-          fakes.splice(i, 1);
-        }
-    }
-
-    var collection = {
-        verify: function resolve() {
-            each(this, "verify");
-        },
-
-        restore: function restore() {
-            each(this, "restore");
-            compact(this);
-        },
-
-        verifyAndRestore: function verifyAndRestore() {
-            var exception;
-
-            try {
-                this.verify();
-            } catch (e) {
-                exception = e;
-            }
-
-            this.restore();
-
-            if (exception) {
-                throw exception;
-            }
-        },
-
-        add: function add(fake) {
-            push.call(getFakes(this), fake);
-            return fake;
-        },
-
-        spy: function spy() {
-            return this.add(sinon.spy.apply(sinon, arguments));
-        },
-
-        stub: function stub(object, property, value) {
-            if (property) {
-                var original = object[property];
-
-                if (typeof original != "function") {
-                    if (!hasOwnProperty.call(object, property)) {
-                        throw new TypeError("Cannot stub non-existent own property " + property);
-                    }
-
-                    object[property] = value;
-
-                    return this.add({
-                        restore: function () {
-                            object[property] = original;
-                        }
-                    });
-                }
-            }
-            if (!property && !!object && typeof object == "object") {
-                var stubbedObj = sinon.stub.apply(sinon, arguments);
-
-                for (var prop in stubbedObj) {
-                    if (typeof stubbedObj[prop] === "function") {
-                        this.add(stubbedObj[prop]);
-                    }
-                }
-
-                return stubbedObj;
-            }
-
-            return this.add(sinon.stub.apply(sinon, arguments));
-        },
-
-        mock: function mock() {
-            return this.add(sinon.mock.apply(sinon, arguments));
-        },
-
-        inject: function inject(obj) {
-            var col = this;
-
-            obj.spy = function () {
-                return col.spy.apply(col, arguments);
-            };
-
-            obj.stub = function () {
-                return col.stub.apply(col, arguments);
-            };
-
-            obj.mock = function () {
-                return col.mock.apply(col, arguments);
-            };
-
-            return obj;
-        }
-    };
-
-    if (commonJSModule) {
-        module.exports = collection;
-    } else {
-        sinon.collection = collection;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-/*jslint eqeqeq: false, plusplus: false, evil: true, onevar: false, browser: true, forin: false*/
-/*global module, require, window*/
-/**
- * Fake timer API
- * setTimeout
- * setInterval
- * clearTimeout
- * clearInterval
- * tick
- * reset
- * Date
- *
- * Inspired by jsUnitMockTimeOut from JsUnit
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-if (typeof sinon == "undefined") {
-    var sinon = {};
-}
-
-(function (global) {
-    var id = 1;
-
-    function addTimer(args, recurring) {
-        if (args.length === 0) {
-            throw new Error("Function requires at least 1 parameter");
-        }
-
-        if (typeof args[0] === "undefined") {
-            throw new Error("Callback must be provided to timer calls");
-        }
-
-        var toId = id++;
-        var delay = args[1] || 0;
-
-        if (!this.timeouts) {
-            this.timeouts = {};
-        }
-
-        this.timeouts[toId] = {
-            id: toId,
-            func: args[0],
-            callAt: this.now + delay,
-            invokeArgs: Array.prototype.slice.call(args, 2)
-        };
-
-        if (recurring === true) {
-            this.timeouts[toId].interval = delay;
-        }
-
-        return toId;
-    }
-
-    function parseTime(str) {
-        if (!str) {
-            return 0;
-        }
-
-        var strings = str.split(":");
-        var l = strings.length, i = l;
-        var ms = 0, parsed;
-
-        if (l > 3 || !/^(\d\d:){0,2}\d\d?$/.test(str)) {
-            throw new Error("tick only understands numbers and 'h:m:s'");
-        }
-
-        while (i--) {
-            parsed = parseInt(strings[i], 10);
-
-            if (parsed >= 60) {
-                throw new Error("Invalid time " + str);
-            }
-
-            ms += parsed * Math.pow(60, (l - i - 1));
-        }
-
-        return ms * 1000;
-    }
-
-    function createObject(object) {
-        var newObject;
-
-        if (Object.create) {
-            newObject = Object.create(object);
-        } else {
-            var F = function () {};
-            F.prototype = object;
-            newObject = new F();
-        }
-
-        newObject.Date.clock = newObject;
-        return newObject;
-    }
-
-    sinon.clock = {
-        now: 0,
-
-        create: function create(now) {
-            var clock = createObject(this);
-
-            if (typeof now == "number") {
-                clock.now = now;
-            }
-
-            if (!!now && typeof now == "object") {
-                throw new TypeError("now should be milliseconds since UNIX epoch");
-            }
-
-            return clock;
-        },
-
-        setTimeout: function setTimeout(callback, timeout) {
-            return addTimer.call(this, arguments, false);
-        },
-
-        clearTimeout: function clearTimeout(timerId) {
-            if (!this.timeouts) {
-                this.timeouts = [];
-            }
-
-            if (timerId in this.timeouts) {
-                delete this.timeouts[timerId];
-            }
-        },
-
-        setInterval: function setInterval(callback, timeout) {
-            return addTimer.call(this, arguments, true);
-        },
-
-        clearInterval: function clearInterval(timerId) {
-            this.clearTimeout(timerId);
-        },
-
-        setImmediate: function setImmediate(callback) {
-            var passThruArgs = Array.prototype.slice.call(arguments, 1);
-
-            return addTimer.call(this, [callback, 0].concat(passThruArgs), false);
-        },
-
-        clearImmediate: function clearImmediate(timerId) {
-            this.clearTimeout(timerId);
-        },
-
-        tick: function tick(ms) {
-            ms = typeof ms == "number" ? ms : parseTime(ms);
-            var tickFrom = this.now, tickTo = this.now + ms, previous = this.now;
-            var timer = this.firstTimerInRange(tickFrom, tickTo);
-
-            var firstException;
-            while (timer && tickFrom <= tickTo) {
-                if (this.timeouts[timer.id]) {
-                    tickFrom = this.now = timer.callAt;
-                    try {
-                      this.callTimer(timer);
-                    } catch (e) {
-                      firstException = firstException || e;
-                    }
-                }
-
-                timer = this.firstTimerInRange(previous, tickTo);
-                previous = tickFrom;
-            }
-
-            this.now = tickTo;
-
-            if (firstException) {
-              throw firstException;
-            }
-
-            return this.now;
-        },
-
-        firstTimerInRange: function (from, to) {
-            var timer, smallest = null, originalTimer;
-
-            for (var id in this.timeouts) {
-                if (this.timeouts.hasOwnProperty(id)) {
-                    if (this.timeouts[id].callAt < from || this.timeouts[id].callAt > to) {
-                        continue;
-                    }
-
-                    if (smallest === null || this.timeouts[id].callAt < smallest) {
-                        originalTimer = this.timeouts[id];
-                        smallest = this.timeouts[id].callAt;
-
-                        timer = {
-                            func: this.timeouts[id].func,
-                            callAt: this.timeouts[id].callAt,
-                            interval: this.timeouts[id].interval,
-                            id: this.timeouts[id].id,
-                            invokeArgs: this.timeouts[id].invokeArgs
-                        };
-                    }
-                }
-            }
-
-            return timer || null;
-        },
-
-        callTimer: function (timer) {
-            if (typeof timer.interval == "number") {
-                this.timeouts[timer.id].callAt += timer.interval;
-            } else {
-                delete this.timeouts[timer.id];
-            }
-
-            try {
-                if (typeof timer.func == "function") {
-                    timer.func.apply(null, timer.invokeArgs);
-                } else {
-                    eval(timer.func);
-                }
-            } catch (e) {
-              var exception = e;
-            }
-
-            if (!this.timeouts[timer.id]) {
-                if (exception) {
-                  throw exception;
-                }
-                return;
-            }
-
-            if (exception) {
-              throw exception;
-            }
-        },
-
-        reset: function reset() {
-            this.timeouts = {};
-        },
-
-        Date: (function () {
-            var NativeDate = Date;
-
-            function ClockDate(year, month, date, hour, minute, second, ms) {
-                // Defensive and verbose to avoid potential harm in passing
-                // explicit undefined when user does not pass argument
-                switch (arguments.length) {
-                case 0:
-                    return new NativeDate(ClockDate.clock.now);
-                case 1:
-                    return new NativeDate(year);
-                case 2:
-                    return new NativeDate(year, month);
-                case 3:
-                    return new NativeDate(year, month, date);
-                case 4:
-                    return new NativeDate(year, month, date, hour);
-                case 5:
-                    return new NativeDate(year, month, date, hour, minute);
-                case 6:
-                    return new NativeDate(year, month, date, hour, minute, second);
-                default:
-                    return new NativeDate(year, month, date, hour, minute, second, ms);
-                }
-            }
-
-            return mirrorDateProperties(ClockDate, NativeDate);
-        }())
-    };
-
-    function mirrorDateProperties(target, source) {
-        if (source.now) {
-            target.now = function now() {
-                return target.clock.now;
-            };
-        } else {
-            delete target.now;
-        }
-
-        if (source.toSource) {
-            target.toSource = function toSource() {
-                return source.toSource();
-            };
-        } else {
-            delete target.toSource;
-        }
-
-        target.toString = function toString() {
-            return source.toString();
-        };
-
-        target.prototype = source.prototype;
-        target.parse = source.parse;
-        target.UTC = source.UTC;
-        target.prototype.toUTCString = source.prototype.toUTCString;
-
-        for (var prop in source) {
-            if (source.hasOwnProperty(prop)) {
-                target[prop] = source[prop];
-            }
-        }
-
-        return target;
-    }
-
-    var methods = ["Date", "setTimeout", "setInterval",
-                   "clearTimeout", "clearInterval"];
-
-    if (typeof global.setImmediate !== "undefined") {
-        methods.push("setImmediate");
-    }
-
-    if (typeof global.clearImmediate !== "undefined") {
-        methods.push("clearImmediate");
-    }
-
-    function restore() {
-        var method;
-
-        for (var i = 0, l = this.methods.length; i < l; i++) {
-            method = this.methods[i];
-
-            if (global[method].hadOwnProperty) {
-                global[method] = this["_" + method];
-            } else {
-                try {
-                    delete global[method];
-                } catch (e) {}
-            }
-        }
-
-        // Prevent multiple executions which will completely remove these props
-        this.methods = [];
-    }
-
-    function stubGlobal(method, clock) {
-        clock[method].hadOwnProperty = Object.prototype.hasOwnProperty.call(global, method);
-        clock["_" + method] = global[method];
-
-        if (method == "Date") {
-            var date = mirrorDateProperties(clock[method], global[method]);
-            global[method] = date;
-        } else {
-            global[method] = function () {
-                return clock[method].apply(clock, arguments);
-            };
-
-            for (var prop in clock[method]) {
-                if (clock[method].hasOwnProperty(prop)) {
-                    global[method][prop] = clock[method][prop];
-                }
-            }
-        }
-
-        global[method].clock = clock;
-    }
-
-    sinon.useFakeTimers = function useFakeTimers(now) {
-        var clock = sinon.clock.create(now);
-        clock.restore = restore;
-        clock.methods = Array.prototype.slice.call(arguments,
-                                                   typeof now == "number" ? 1 : 0);
-
-        if (clock.methods.length === 0) {
-            clock.methods = methods;
-        }
-
-        for (var i = 0, l = clock.methods.length; i < l; i++) {
-            stubGlobal(clock.methods[i], clock);
-        }
-
-        return clock;
-    };
-}(typeof global != "undefined" && typeof global !== "function" ? global : this));
-
-sinon.timers = {
-    setTimeout: setTimeout,
-    clearTimeout: clearTimeout,
-    setImmediate: (typeof setImmediate !== "undefined" ? setImmediate : undefined),
-    clearImmediate: (typeof clearImmediate !== "undefined" ? clearImmediate: undefined),
-    setInterval: setInterval,
-    clearInterval: clearInterval,
-    Date: Date
-};
-
-if (typeof module !== 'undefined' && module.exports) {
-    module.exports = sinon;
-}
-
-/*jslint eqeqeq: false, onevar: false*/
-/*global sinon, module, require, ActiveXObject, XMLHttpRequest, DOMParser*/
-/**
- * Minimal Event interface implementation
- *
- * Original implementation by Sven Fuchs: https://gist.github.com/995028
- * Modifications and tests by Christian Johansen.
- *
- * @author Sven Fuchs (svenfuchs@artweb-design.de)
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2011 Sven Fuchs, Christian Johansen
- */
-
-if (typeof sinon == "undefined") {
-    this.sinon = {};
-}
-
-(function () {
-    var push = [].push;
-
-    sinon.Event = function Event(type, bubbles, cancelable, target) {
-        this.initEvent(type, bubbles, cancelable, target);
-    };
-
-    sinon.Event.prototype = {
-        initEvent: function(type, bubbles, cancelable, target) {
-            this.type = type;
-            this.bubbles = bubbles;
-            this.cancelable = cancelable;
-            this.target = target;
-        },
-
-        stopPropagation: function () {},
-
-        preventDefault: function () {
-            this.defaultPrevented = true;
-        }
-    };
-
-    sinon.EventTarget = {
-        addEventListener: function addEventListener(event, listener) {
-            this.eventListeners = this.eventListeners || {};
-            this.eventListeners[event] = this.eventListeners[event] || [];
-            push.call(this.eventListeners[event], listener);
-        },
-
-        removeEventListener: function removeEventListener(event, listener) {
-            var listeners = this.eventListeners && this.eventListeners[event] || [];
-
-            for (var i = 0, l = listeners.length; i < l; ++i) {
-                if (listeners[i] == listener) {
-                    return listeners.splice(i, 1);
-                }
-            }
-        },
-
-        dispatchEvent: function dispatchEvent(event) {
-            var type = event.type;
-            var listeners = this.eventListeners && this.eventListeners[type] || [];
-
-            for (var i = 0; i < listeners.length; i++) {
-                if (typeof listeners[i] == "function") {
-                    listeners[i].call(this, event);
-                } else {
-                    listeners[i].handleEvent(event);
-                }
-            }
-
-            return !!event.defaultPrevented;
-        }
-    };
-}());
-
-/**
- * @depend ../../sinon.js
- * @depend event.js
- */
-/*jslint eqeqeq: false, onevar: false*/
-/*global sinon, module, require, ActiveXObject, XMLHttpRequest, DOMParser*/
-/**
- * Fake XMLHttpRequest object
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-// wrapper for global
-(function(global) {
-
-    if (typeof sinon === "undefined") {
-        global.sinon = {};
-    }
-    sinon.xhr = { XMLHttpRequest: global.XMLHttpRequest };
-
-    var xhr = sinon.xhr;
-    xhr.GlobalXMLHttpRequest = global.XMLHttpRequest;
-    xhr.GlobalActiveXObject = global.ActiveXObject;
-    xhr.supportsActiveX = typeof xhr.GlobalActiveXObject != "undefined";
-    xhr.supportsXHR = typeof xhr.GlobalXMLHttpRequest != "undefined";
-    xhr.workingXHR = xhr.supportsXHR ? xhr.GlobalXMLHttpRequest : xhr.supportsActiveX
-                                     ? function() { return new xhr.GlobalActiveXObject("MSXML2.XMLHTTP.3.0") } : false;
-    xhr.supportsCORS = 'withCredentials' in (new sinon.xhr.GlobalXMLHttpRequest());
-
-    /*jsl:ignore*/
-    var unsafeHeaders = {
-        "Accept-Charset": true,
-        "Accept-Encoding": true,
-        "Connection": true,
-        "Content-Length": true,
-        "Cookie": true,
-        "Cookie2": true,
-        "Content-Transfer-Encoding": true,
-        "Date": true,
-        "Expect": true,
-        "Host": true,
-        "Keep-Alive": true,
-        "Referer": true,
-        "TE": true,
-        "Trailer": true,
-        "Transfer-Encoding": true,
-        "Upgrade": true,
-        "User-Agent": true,
-        "Via": true
-    };
-    /*jsl:end*/
-
-    function FakeXMLHttpRequest() {
-        this.readyState = FakeXMLHttpRequest.UNSENT;
-        this.requestHeaders = {};
-        this.requestBody = null;
-        this.status = 0;
-        this.statusText = "";
-        this.upload = new UploadProgress();
-        if (sinon.xhr.supportsCORS) {
-            this.withCredentials = false;
-        }
-
-
-        var xhr = this;
-        var events = ["loadstart", "load", "abort", "loadend"];
-
-        function addEventListener(eventName) {
-            xhr.addEventListener(eventName, function (event) {
-                var listener = xhr["on" + eventName];
-
-                if (listener && typeof listener == "function") {
-                    listener(event);
-                }
-            });
-        }
-
-        for (var i = events.length - 1; i >= 0; i--) {
-            addEventListener(events[i]);
-        }
-
-        if (typeof FakeXMLHttpRequest.onCreate == "function") {
-            FakeXMLHttpRequest.onCreate(this);
-        }
-    }
-
-    // An upload object is created for each
-    // FakeXMLHttpRequest and allows upload
-    // events to be simulated using uploadProgress
-    // and uploadError.
-    function UploadProgress() {
-        this.eventListeners = {
-            "progress": [],
-            "load": [],
-            "abort": [],
-            "error": []
-        }
-    }
-
-    UploadProgress.prototype.addEventListener = function(event, listener) {
-        this.eventListeners[event].push(listener);
-    };
-
-    UploadProgress.prototype.removeEventListener = function(event, listener) {
-        var listeners = this.eventListeners[event] || [];
-
-        for (var i = 0, l = listeners.length; i < l; ++i) {
-            if (listeners[i] == listener) {
-                return listeners.splice(i, 1);
-            }
-        }
-    };
-
-    UploadProgress.prototype.dispatchEvent = function(event) {
-        var listeners = this.eventListeners[event.type] || [];
-
-        for (var i = 0, listener; (listener = listeners[i]) != null; i++) {
-            listener(event);
-        }
-    };
-
-    function verifyState(xhr) {
-        if (xhr.readyState !== FakeXMLHttpRequest.OPENED) {
-            throw new Error("INVALID_STATE_ERR");
-        }
-
-        if (xhr.sendFlag) {
-            throw new Error("INVALID_STATE_ERR");
-        }
-    }
-
-    // filtering to enable a white-list version of Sinon FakeXhr,
-    // where whitelisted requests are passed through to real XHR
-    function each(collection, callback) {
-        if (!collection) return;
-        for (var i = 0, l = collection.length; i < l; i += 1) {
-            callback(collection[i]);
-        }
-    }
-    function some(collection, callback) {
-        for (var index = 0; index < collection.length; index++) {
-            if(callback(collection[index]) === true) return true;
-        }
-        return false;
-    }
-    // largest arity in XHR is 5 - XHR#open
-    var apply = function(obj,method,args) {
-        switch(args.length) {
-        case 0: return obj[method]();
-        case 1: return obj[method](args[0]);
-        case 2: return obj[method](args[0],args[1]);
-        case 3: return obj[method](args[0],args[1],args[2]);
-        case 4: return obj[method](args[0],args[1],args[2],args[3]);
-        case 5: return obj[method](args[0],args[1],args[2],args[3],args[4]);
-        }
-    };
-
-    FakeXMLHttpRequest.filters = [];
-    FakeXMLHttpRequest.addFilter = function(fn) {
-        this.filters.push(fn)
-    };
-    var IE6Re = /MSIE 6/;
-    FakeXMLHttpRequest.defake = function(fakeXhr,xhrArgs) {
-        var xhr = new sinon.xhr.workingXHR();
-        each(["open","setRequestHeader","send","abort","getResponseHeader",
-              "getAllResponseHeaders","addEventListener","overrideMimeType","removeEventListener"],
-             function(method) {
-                 fakeXhr[method] = function() {
-                   return apply(xhr,method,arguments);
-                 };
-             });
-
-        var copyAttrs = function(args) {
-            each(args, function(attr) {
-              try {
-                fakeXhr[attr] = xhr[attr]
-              } catch(e) {
-                if(!IE6Re.test(navigator.userAgent)) throw e;
-              }
-            });
-        };
-
-        var stateChange = function() {
-            fakeXhr.readyState = xhr.readyState;
-            if(xhr.readyState >= FakeXMLHttpRequest.HEADERS_RECEIVED) {
-                copyAttrs(["status","statusText"]);
-            }
-            if(xhr.readyState >= FakeXMLHttpRequest.LOADING) {
-                copyAttrs(["responseText"]);
-            }
-            if(xhr.readyState === FakeXMLHttpRequest.DONE) {
-                copyAttrs(["responseXML"]);
-            }
-            if(fakeXhr.onreadystatechange) fakeXhr.onreadystatechange.call(fakeXhr, { target: fakeXhr });
-        };
-        if(xhr.addEventListener) {
-          for(var event in fakeXhr.eventListeners) {
-              if(fakeXhr.eventListeners.hasOwnProperty(event)) {
-                  each(fakeXhr.eventListeners[event],function(handler) {
-                      xhr.addEventListener(event, handler);
-                  });
-              }
-          }
-          xhr.addEventListener("readystatechange",stateChange);
-        } else {
-          xhr.onreadystatechange = stateChange;
-        }
-        apply(xhr,"open",xhrArgs);
-    };
-    FakeXMLHttpRequest.useFilters = false;
-
-    function verifyRequestSent(xhr) {
-        if (xhr.readyState == FakeXMLHttpRequest.DONE) {
-            throw new Error("Request done");
-        }
-    }
-
-    function verifyHeadersReceived(xhr) {
-        if (xhr.async && xhr.readyState != FakeXMLHttpRequest.HEADERS_RECEIVED) {
-            throw new Error("No headers received");
-        }
-    }
-
-    function verifyResponseBodyType(body) {
-        if (typeof body != "string") {
-            var error = new Error("Attempted to respond to fake XMLHttpRequest with " +
-                                 body + ", which is not a string.");
-            error.name = "InvalidBodyException";
-            throw error;
-        }
-    }
-
-    sinon.extend(FakeXMLHttpRequest.prototype, sinon.EventTarget, {
-        async: true,
-
-        open: function open(method, url, async, username, password) {
-            this.method = method;
-            this.url = url;
-            this.async = typeof async == "boolean" ? async : true;
-            this.username = username;
-            this.password = password;
-            this.responseText = null;
-            this.responseXML = null;
-            this.requestHeaders = {};
-            this.sendFlag = false;
-            if(sinon.FakeXMLHttpRequest.useFilters === true) {
-                var xhrArgs = arguments;
-                var defake = some(FakeXMLHttpRequest.filters,function(filter) {
-                    return filter.apply(this,xhrArgs)
-                });
-                if (defake) {
-                  return sinon.FakeXMLHttpRequest.defake(this,arguments);
-                }
-            }
-            this.readyStateChange(FakeXMLHttpRequest.OPENED);
-        },
-
-        readyStateChange: function readyStateChange(state) {
-            this.readyState = state;
-
-            if (typeof this.onreadystatechange == "function") {
-                try {
-                    this.onreadystatechange();
-                } catch (e) {
-                    sinon.logError("Fake XHR onreadystatechange handler", e);
-                }
-            }
-
-            this.dispatchEvent(new sinon.Event("readystatechange"));
-
-            switch (this.readyState) {
-                case FakeXMLHttpRequest.DONE:
-                    this.dispatchEvent(new sinon.Event("load", false, false, this));
-                    this.dispatchEvent(new sinon.Event("loadend", false, false, this));
-                    this.upload.dispatchEvent(new sinon.Event("load", false, false, this));
-                    this.upload.dispatchEvent(new ProgressEvent("progress", {loaded: 100, total: 100}));
-                    break;
-            }
-        },
-
-        setRequestHeader: function setRequestHeader(header, value) {
-            verifyState(this);
-
-            if (unsafeHeaders[header] || /^(Sec-|Proxy-)/.test(header)) {
-                throw new Error("Refused to set unsafe header \"" + header + "\"");
-            }
-
-            if (this.requestHeaders[header]) {
-                this.requestHeaders[header] += "," + value;
-            } else {
-                this.requestHeaders[header] = value;
-            }
-        },
-
-        // Helps testing
-        setResponseHeaders: function setResponseHeaders(headers) {
-            this.responseHeaders = {};
-
-            for (var header in headers) {
-                if (headers.hasOwnProperty(header)) {
-                    this.responseHeaders[header] = headers[header];
-                }
-            }
-
-            if (this.async) {
-                this.readyStateChange(FakeXMLHttpRequest.HEADERS_RECEIVED);
-            } else {
-                this.readyState = FakeXMLHttpRequest.HEADERS_RECEIVED;
-            }
-        },
-
-        // Currently treats ALL data as a DOMString (i.e. no Document)
-        send: function send(data) {
-            verifyState(this);
-
-            if (!/^(get|head)$/i.test(this.method)) {
-                if (this.requestHeaders["Content-Type"]) {
-                    var value = this.requestHeaders["Content-Type"].split(";");
-                    this.requestHeaders["Content-Type"] = value[0] + ";charset=utf-8";
-                } else {
-                    this.requestHeaders["Content-Type"] = "text/plain;charset=utf-8";
-                }
-
-                this.requestBody = data;
-            }
-
-            this.errorFlag = false;
-            this.sendFlag = this.async;
-            this.readyStateChange(FakeXMLHttpRequest.OPENED);
-
-            if (typeof this.onSend == "function") {
-                this.onSend(this);
-            }
-
-            this.dispatchEvent(new sinon.Event("loadstart", false, false, this));
-        },
-
-        abort: function abort() {
-            this.aborted = true;
-            this.responseText = null;
-            this.errorFlag = true;
-            this.requestHeaders = {};
-
-            if (this.readyState > sinon.FakeXMLHttpRequest.UNSENT && this.sendFlag) {
-                this.readyStateChange(sinon.FakeXMLHttpRequest.DONE);
-                this.sendFlag = false;
-            }
-
-            this.readyState = sinon.FakeXMLHttpRequest.UNSENT;
-
-            this.dispatchEvent(new sinon.Event("abort", false, false, this));
-
-            this.upload.dispatchEvent(new sinon.Event("abort", false, false, this));
-
-            if (typeof this.onerror === "function") {
-                this.onerror();
-            }
-        },
-
-        getResponseHeader: function getResponseHeader(header) {
-            if (this.readyState < FakeXMLHttpRequest.HEADERS_RECEIVED) {
-                return null;
-            }
-
-            if (/^Set-Cookie2?$/i.test(header)) {
-                return null;
-            }
-
-            header = header.toLowerCase();
-
-            for (var h in this.responseHeaders) {
-                if (h.toLowerCase() == header) {
-                    return this.responseHeaders[h];
-                }
-            }
-
-            return null;
-        },
-
-        getAllResponseHeaders: function getAllResponseHeaders() {
-            if (this.readyState < FakeXMLHttpRequest.HEADERS_RECEIVED) {
-                return "";
-            }
-
-            var headers = "";
-
-            for (var header in this.responseHeaders) {
-                if (this.responseHeaders.hasOwnProperty(header) &&
-                    !/^Set-Cookie2?$/i.test(header)) {
-                    headers += header + ": " + this.responseHeaders[header] + "\r\n";
-                }
-            }
-
-            return headers;
-        },
-
-        setResponseBody: function setResponseBody(body) {
-            verifyRequestSent(this);
-            verifyHeadersReceived(this);
-            verifyResponseBodyType(body);
-
-            var chunkSize = this.chunkSize || 10;
-            var index = 0;
-            this.responseText = "";
-
-            do {
-                if (this.async) {
-                    this.readyStateChange(FakeXMLHttpRequest.LOADING);
-                }
-
-                this.responseText += body.substring(index, index + chunkSize);
-                index += chunkSize;
-            } while (index < body.length);
-
-            var type = this.getResponseHeader("Content-Type");
-
-            if (this.responseText &&
-                (!type || /(text\/xml)|(application\/xml)|(\+xml)/.test(type))) {
-                try {
-                    this.responseXML = FakeXMLHttpRequest.parseXML(this.responseText);
-                } catch (e) {
-                    // Unable to parse XML - no biggie
-                }
-            }
-
-            if (this.async) {
-                this.readyStateChange(FakeXMLHttpRequest.DONE);
-            } else {
-                this.readyState = FakeXMLHttpRequest.DONE;
-            }
-        },
-
-        respond: function respond(status, headers, body) {
-            this.setResponseHeaders(headers || {});
-            this.status = typeof status == "number" ? status : 200;
-            this.statusText = FakeXMLHttpRequest.statusCodes[this.status];
-            this.setResponseBody(body || "");
-        },
-
-        uploadProgress: function uploadProgress(progressEventRaw) {
-            this.upload.dispatchEvent(new ProgressEvent("progress", progressEventRaw));
-        },
-
-        uploadError: function uploadError(error) {
-            this.upload.dispatchEvent(new CustomEvent("error", {"detail": error}));
-        }
-    });
-
-    sinon.extend(FakeXMLHttpRequest, {
-        UNSENT: 0,
-        OPENED: 1,
-        HEADERS_RECEIVED: 2,
-        LOADING: 3,
-        DONE: 4
-    });
-
-    // Borrowed from JSpec
-    FakeXMLHttpRequest.parseXML = function parseXML(text) {
-        var xmlDoc;
-
-        if (typeof DOMParser != "undefined") {
-            var parser = new DOMParser();
-            xmlDoc = parser.parseFromString(text, "text/xml");
-        } else {
-            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
-            xmlDoc.async = "false";
-            xmlDoc.loadXML(text);
-        }
-
-        return xmlDoc;
-    };
-
-    FakeXMLHttpRequest.statusCodes = {
-        100: "Continue",
-        101: "Switching Protocols",
-        200: "OK",
-        201: "Created",
-        202: "Accepted",
-        203: "Non-Authoritative Information",
-        204: "No Content",
-        205: "Reset Content",
-        206: "Partial Content",
-        300: "Multiple Choice",
-        301: "Moved Permanently",
-        302: "Found",
-        303: "See Other",
-        304: "Not Modified",
-        305: "Use Proxy",
-        307: "Temporary Redirect",
-        400: "Bad Request",
-        401: "Unauthorized",
-        402: "Payment Required",
-        403: "Forbidden",
-        404: "Not Found",
-        405: "Method Not Allowed",
-        406: "Not Acceptable",
-        407: "Proxy Authentication Required",
-        408: "Request Timeout",
-        409: "Conflict",
-        410: "Gone",
-        411: "Length Required",
-        412: "Precondition Failed",
-        413: "Request Entity Too Large",
-        414: "Request-URI Too Long",
-        415: "Unsupported Media Type",
-        416: "Requested Range Not Satisfiable",
-        417: "Expectation Failed",
-        422: "Unprocessable Entity",
-        500: "Internal Server Error",
-        501: "Not Implemented",
-        502: "Bad Gateway",
-        503: "Service Unavailable",
-        504: "Gateway Timeout",
-        505: "HTTP Version Not Supported"
-    };
-
-    sinon.useFakeXMLHttpRequest = function () {
-        sinon.FakeXMLHttpRequest.restore = function restore(keepOnCreate) {
-            if (xhr.supportsXHR) {
-                global.XMLHttpRequest = xhr.GlobalXMLHttpRequest;
-            }
-
-            if (xhr.supportsActiveX) {
-                global.ActiveXObject = xhr.GlobalActiveXObject;
-            }
-
-            delete sinon.FakeXMLHttpRequest.restore;
-
-            if (keepOnCreate !== true) {
-                delete sinon.FakeXMLHttpRequest.onCreate;
-            }
-        };
-        if (xhr.supportsXHR) {
-            global.XMLHttpRequest = sinon.FakeXMLHttpRequest;
-        }
-
-        if (xhr.supportsActiveX) {
-            global.ActiveXObject = function ActiveXObject(objId) {
-                if (objId == "Microsoft.XMLHTTP" || /^Msxml2\.XMLHTTP/i.test(objId)) {
-
-                    return new sinon.FakeXMLHttpRequest();
-                }
-
-                return new xhr.GlobalActiveXObject(objId);
-            };
-        }
-
-        return sinon.FakeXMLHttpRequest;
-    };
-
-    sinon.FakeXMLHttpRequest = FakeXMLHttpRequest;
-
-})(typeof global === "object" ? global : this);
-
-if (typeof module !== 'undefined' && module.exports) {
-    module.exports = sinon;
-}
-
-/**
- * @depend fake_xml_http_request.js
- */
-/*jslint eqeqeq: false, onevar: false, regexp: false, plusplus: false*/
-/*global module, require, window*/
-/**
- * The Sinon "server" mimics a web server that receives requests from
- * sinon.FakeXMLHttpRequest and provides an API to respond to those requests,
- * both synchronously and asynchronously. To respond synchronuously, canned
- * answers have to be provided upfront.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-if (typeof sinon == "undefined") {
-    var sinon = {};
-}
-
-sinon.fakeServer = (function () {
-    var push = [].push;
-    function F() {}
-
-    function create(proto) {
-        F.prototype = proto;
-        return new F();
-    }
-
-    function responseArray(handler) {
-        var response = handler;
-
-        if (Object.prototype.toString.call(handler) != "[object Array]") {
-            response = [200, {}, handler];
-        }
-
-        if (typeof response[2] != "string") {
-            throw new TypeError("Fake server response body should be string, but was " +
-                                typeof response[2]);
-        }
-
-        return response;
-    }
-
-    var wloc = typeof window !== "undefined" ? window.location : {};
-    var rCurrLoc = new RegExp("^" + wloc.protocol + "//" + wloc.host);
-
-    function matchOne(response, reqMethod, reqUrl) {
-        var rmeth = response.method;
-        var matchMethod = !rmeth || rmeth.toLowerCase() == reqMethod.toLowerCase();
-        var url = response.url;
-        var matchUrl = !url || url == reqUrl || (typeof url.test == "function" && url.test(reqUrl));
-
-        return matchMethod && matchUrl;
-    }
-
-    function match(response, request) {
-        var requestUrl = request.url;
-
-        if (!/^https?:\/\//.test(requestUrl) || rCurrLoc.test(requestUrl)) {
-            requestUrl = requestUrl.replace(rCurrLoc, "");
-        }
-
-        if (matchOne(response, this.getHTTPMethod(request), requestUrl)) {
-            if (typeof response.response == "function") {
-                var ru = response.url;
-                var args = [request].concat(ru && typeof ru.exec == "function" ? ru.exec(requestUrl).slice(1) : []);
-                return response.response.apply(response, args);
-            }
-
-            return true;
-        }
-
-        return false;
-    }
-
-    function log(response, request) {
-        var str;
-
-        str =  "Request:\n"  + sinon.format(request)  + "\n\n";
-        str += "Response:\n" + sinon.format(response) + "\n\n";
-
-        sinon.log(str);
-    }
-
-    return {
-        create: function () {
-            var server = create(this);
-            this.xhr = sinon.useFakeXMLHttpRequest();
-            server.requests = [];
-
-            this.xhr.onCreate = function (xhrObj) {
-                server.addRequest(xhrObj);
-            };
-
-            return server;
-        },
-
-        addRequest: function addRequest(xhrObj) {
-            var server = this;
-            push.call(this.requests, xhrObj);
-
-            xhrObj.onSend = function () {
-                server.handleRequest(this);
-
-                if (server.autoRespond && !server.responding) {
-                    setTimeout(function () {
-                        server.responding = false;
-                        server.respond();
-                    }, server.autoRespondAfter || 10);
-
-                    server.responding = true;
-                }
-            };
-        },
-
-        getHTTPMethod: function getHTTPMethod(request) {
-            if (this.fakeHTTPMethods && /post/i.test(request.method)) {
-                var matches = (request.requestBody || "").match(/_method=([^\b;]+)/);
-                return !!matches ? matches[1] : request.method;
-            }
-
-            return request.method;
-        },
-
-        handleRequest: function handleRequest(xhr) {
-            if (xhr.async) {
-                if (!this.queue) {
-                    this.queue = [];
-                }
-
-                push.call(this.queue, xhr);
-            } else {
-                this.processRequest(xhr);
-            }
-        },
-
-        respondWith: function respondWith(method, url, body) {
-            if (arguments.length == 1 && typeof method != "function") {
-                this.response = responseArray(method);
-                return;
-            }
-
-            if (!this.responses) { this.responses = []; }
-
-            if (arguments.length == 1) {
-                body = method;
-                url = method = null;
-            }
-
-            if (arguments.length == 2) {
-                body = url;
-                url = method;
-                method = null;
-            }
-
-            push.call(this.responses, {
-                method: method,
-                url: url,
-                response: typeof body == "function" ? body : responseArray(body)
-            });
-        },
-
-        respond: function respond() {
-            if (arguments.length > 0) this.respondWith.apply(this, arguments);
-            var queue = this.queue || [];
-            var requests = queue.splice(0);
-            var request;
-
-            while(request = requests.shift()) {
-                this.processRequest(request);
-            }
-        },
-
-        processRequest: function processRequest(request) {
-            try {
-                if (request.aborted) {
-                    return;
-                }
-
-                var response = this.response || [404, {}, ""];
-
-                if (this.responses) {
-                    for (var l = this.responses.length, i = l - 1; i >= 0; i--) {
-                        if (match.call(this, this.responses[i], request)) {
-                            response = this.responses[i].response;
-                            break;
-                        }
-                    }
-                }
-
-                if (request.readyState != 4) {
-                    log(response, request);
-
-                    request.respond(response[0], response[1], response[2]);
-                }
-            } catch (e) {
-                sinon.logError("Fake server request processing", e);
-            }
-        },
-
-        restore: function restore() {
-            return this.xhr.restore && this.xhr.restore.apply(this.xhr, arguments);
-        }
-    };
-}());
-
-if (typeof module !== 'undefined' && module.exports) {
-    module.exports = sinon;
-}
-
-/**
- * @depend fake_server.js
- * @depend fake_timers.js
- */
-/*jslint browser: true, eqeqeq: false, onevar: false*/
-/*global sinon*/
-/**
- * Add-on for sinon.fakeServer that automatically handles a fake timer along with
- * the FakeXMLHttpRequest. The direct inspiration for this add-on is jQuery
- * 1.3.x, which does not use xhr object's onreadystatehandler at all - instead,
- * it polls the object for completion with setInterval. Dispite the direct
- * motivation, there is nothing jQuery-specific in this file, so it can be used
- * in any environment where the ajax implementation depends on setInterval or
- * setTimeout.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-(function () {
-    function Server() {}
-    Server.prototype = sinon.fakeServer;
-
-    sinon.fakeServerWithClock = new Server();
-
-    sinon.fakeServerWithClock.addRequest = function addRequest(xhr) {
-        if (xhr.async) {
-            if (typeof setTimeout.clock == "object") {
-                this.clock = setTimeout.clock;
-            } else {
-                this.clock = sinon.useFakeTimers();
-                this.resetClock = true;
-            }
-
-            if (!this.longestTimeout) {
-                var clockSetTimeout = this.clock.setTimeout;
-                var clockSetInterval = this.clock.setInterval;
-                var server = this;
-
-                this.clock.setTimeout = function (fn, timeout) {
-                    server.longestTimeout = Math.max(timeout, server.longestTimeout || 0);
-
-                    return clockSetTimeout.apply(this, arguments);
-                };
-
-                this.clock.setInterval = function (fn, timeout) {
-                    server.longestTimeout = Math.max(timeout, server.longestTimeout || 0);
-
-                    return clockSetInterval.apply(this, arguments);
-                };
-            }
-        }
-
-        return sinon.fakeServer.addRequest.call(this, xhr);
-    };
-
-    sinon.fakeServerWithClock.respond = function respond() {
-        var returnVal = sinon.fakeServer.respond.apply(this, arguments);
-
-        if (this.clock) {
-            this.clock.tick(this.longestTimeout || 0);
-            this.longestTimeout = 0;
-
-            if (this.resetClock) {
-                this.clock.restore();
-                this.resetClock = false;
-            }
-        }
-
-        return returnVal;
-    };
-
-    sinon.fakeServerWithClock.restore = function restore() {
-        if (this.clock) {
-            this.clock.restore();
-        }
-
-        return sinon.fakeServer.restore.apply(this, arguments);
-    };
-}());
-
-/**
- * @depend ../sinon.js
- * @depend collection.js
- * @depend util/fake_timers.js
- * @depend util/fake_server_with_clock.js
- */
-/*jslint eqeqeq: false, onevar: false, plusplus: false*/
-/*global require, module*/
-/**
- * Manages fake collections as well as fake utilities such as Sinon's
- * timers and fake XHR implementation in one convenient object.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-if (typeof module !== 'undefined' && module.exports) {
-    var sinon = require("../sinon");
-    sinon.extend(sinon, require("./util/fake_timers"));
-}
-
-(function () {
-    var push = [].push;
-
-    function exposeValue(sandbox, config, key, value) {
-        if (!value) {
-            return;
-        }
-
-        if (config.injectInto && !(key in config.injectInto) ) {
-            config.injectInto[key] = value;
-        } else {
-            push.call(sandbox.args, value);
-        }
-    }
-
-    function prepareSandboxFromConfig(config) {
-        var sandbox = sinon.create(sinon.sandbox);
-
-        if (config.useFakeServer) {
-            if (typeof config.useFakeServer == "object") {
-                sandbox.serverPrototype = config.useFakeServer;
-            }
-
-            sandbox.useFakeServer();
-        }
-
-        if (config.useFakeTimers) {
-            if (typeof config.useFakeTimers == "object") {
-                sandbox.useFakeTimers.apply(sandbox, config.useFakeTimers);
-            } else {
-                sandbox.useFakeTimers();
-            }
-        }
-
-        return sandbox;
-    }
-
-    sinon.sandbox = sinon.extend(sinon.create(sinon.collection), {
-        useFakeTimers: function useFakeTimers() {
-            this.clock = sinon.useFakeTimers.apply(sinon, arguments);
-
-            return this.add(this.clock);
-        },
-
-        serverPrototype: sinon.fakeServer,
-
-        useFakeServer: function useFakeServer() {
-            var proto = this.serverPrototype || sinon.fakeServer;
-
-            if (!proto || !proto.create) {
-                return null;
-            }
-
-            this.server = proto.create();
-            return this.add(this.server);
-        },
-
-        inject: function (obj) {
-            sinon.collection.inject.call(this, obj);
-
-            if (this.clock) {
-                obj.clock = this.clock;
-            }
-
-            if (this.server) {
-                obj.server = this.server;
-                obj.requests = this.server.requests;
-            }
-
-            return obj;
-        },
-
-        create: function (config) {
-            if (!config) {
-                return sinon.create(sinon.sandbox);
-            }
-
-            var sandbox = prepareSandboxFromConfig(config);
-            sandbox.args = sandbox.args || [];
-            var prop, value, exposed = sandbox.inject({});
-
-            if (config.properties) {
-                for (var i = 0, l = config.properties.length; i < l; i++) {
-                    prop = config.properties[i];
-                    value = exposed[prop] || prop == "sandbox" && sandbox;
-                    exposeValue(sandbox, config, prop, value);
-                }
-            } else {
-                exposeValue(sandbox, config, "sandbox", value);
-            }
-
-            return sandbox;
-        }
-    });
-
-    sinon.sandbox.useFakeXMLHttpRequest = sinon.sandbox.useFakeServer;
-
-    if (typeof module !== 'undefined' && module.exports) {
-        module.exports = sinon.sandbox;
-    }
-}());
-
-/**
- * @depend ../sinon.js
- * @depend stub.js
- * @depend mock.js
- * @depend sandbox.js
- */
-/*jslint eqeqeq: false, onevar: false, forin: true, plusplus: false*/
-/*global module, require, sinon*/
-/**
- * Test function, sandboxes fakes
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== 'undefined' && module.exports;
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    function test(callback) {
-        var type = typeof callback;
-
-        if (type != "function") {
-            throw new TypeError("sinon.test needs to wrap a test function, got " + type);
-        }
-
-        return function () {
-            var config = sinon.getConfig(sinon.config);
-            config.injectInto = config.injectIntoThis && this || config.injectInto;
-            var sandbox = sinon.sandbox.create(config);
-            var exception, result;
-            var args = Array.prototype.slice.call(arguments).concat(sandbox.args);
-
-            try {
-                result = callback.apply(this, args);
-            } catch (e) {
-                exception = e;
-            }
-
-            if (typeof exception !== "undefined") {
-                sandbox.restore();
-                throw exception;
-            }
-            else {
-                sandbox.verifyAndRestore();
-            }
-
-            return result;
-        };
-    }
-
-    test.config = {
-        injectIntoThis: true,
-        injectInto: null,
-        properties: ["spy", "stub", "mock", "clock", "server", "requests"],
-        useFakeTimers: true,
-        useFakeServer: true
-    };
-
-    if (commonJSModule) {
-        module.exports = test;
-    } else {
-        sinon.test = test;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-/**
- * @depend ../sinon.js
- * @depend test.js
- */
-/*jslint eqeqeq: false, onevar: false, eqeqeq: false*/
-/*global module, require, sinon*/
-/**
- * Test case, sandboxes all test functions
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-(function (sinon) {
-    var commonJSModule = typeof module !== 'undefined' && module.exports;
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon || !Object.prototype.hasOwnProperty) {
-        return;
-    }
-
-    function createTest(property, setUp, tearDown) {
-        return function () {
-            if (setUp) {
-                setUp.apply(this, arguments);
-            }
-
-            var exception, result;
-
-            try {
-                result = property.apply(this, arguments);
-            } catch (e) {
-                exception = e;
-            }
-
-            if (tearDown) {
-                tearDown.apply(this, arguments);
-            }
-
-            if (exception) {
-                throw exception;
-            }
-
-            return result;
-        };
-    }
-
-    function testCase(tests, prefix) {
-        /*jsl:ignore*/
-        if (!tests || typeof tests != "object") {
-            throw new TypeError("sinon.testCase needs an object with test functions");
-        }
-        /*jsl:end*/
-
-        prefix = prefix || "test";
-        var rPrefix = new RegExp("^" + prefix);
-        var methods = {}, testName, property, method;
-        var setUp = tests.setUp;
-        var tearDown = tests.tearDown;
-
-        for (testName in tests) {
-            if (tests.hasOwnProperty(testName)) {
-                property = tests[testName];
-
-                if (/^(setUp|tearDown)$/.test(testName)) {
-                    continue;
-                }
-
-                if (typeof property == "function" && rPrefix.test(testName)) {
-                    method = property;
-
-                    if (setUp || tearDown) {
-                        method = createTest(property, setUp, tearDown);
-                    }
-
-                    methods[testName] = sinon.test(method);
-                } else {
-                    methods[testName] = tests[testName];
-                }
-            }
-        }
-
-        return methods;
-    }
-
-    if (commonJSModule) {
-        module.exports = testCase;
-    } else {
-        sinon.testCase = testCase;
-    }
-}(typeof sinon == "object" && sinon || null));
-
-/**
- * @depend ../sinon.js
- * @depend stub.js
- */
-/*jslint eqeqeq: false, onevar: false, nomen: false, plusplus: false*/
-/*global module, require, sinon*/
-/**
- * Assertions matching the test spy retrieval interface.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-
-(function (sinon, global) {
-    var commonJSModule = typeof module !== "undefined" && module.exports;
-    var slice = Array.prototype.slice;
-    var assert;
-
-    if (!sinon && commonJSModule) {
-        sinon = require("../sinon");
-    }
-
-    if (!sinon) {
-        return;
-    }
-
-    function verifyIsStub() {
-        var method;
-
-        for (var i = 0, l = arguments.length; i < l; ++i) {
-            method = arguments[i];
-
-            if (!method) {
-                assert.fail("fake is not a spy");
-            }
-
-            if (typeof method != "function") {
-                assert.fail(method + " is not a function");
-            }
-
-            if (typeof method.getCall != "function") {
-                assert.fail(method + " is not stubbed");
-            }
-        }
-    }
-
-    function failAssertion(object, msg) {
-        object = object || global;
-        var failMethod = object.fail || assert.fail;
-        failMethod.call(object, msg);
-    }
-
-    function mirrorPropAsAssertion(name, method, message) {
-        if (arguments.length == 2) {
-            message = method;
-            method = name;
-        }
-
-        assert[name] = function (fake) {
-            verifyIsStub(fake);
-
-            var args = slice.call(arguments, 1);
-            var failed = false;
-
-            if (typeof method == "function") {
-                failed = !method(fake);
-            } else {
-                failed = typeof fake[method] == "function" ?
-                    !fake[method].apply(fake, args) : !fake[method];
-            }
-
-            if (failed) {
-                failAssertion(this, fake.printf.apply(fake, [message].concat(args)));
-            } else {
-                assert.pass(name);
-            }
-        };
-    }
-
-    function exposedName(prefix, prop) {
-        return !prefix || /^fail/.test(prop) ? prop :
-            prefix + prop.slice(0, 1).toUpperCase() + prop.slice(1);
-    }
-
-    assert = {
-        failException: "AssertError",
-
-        fail: function fail(message) {
-            var error = new Error(message);
-            error.name = this.failException || assert.failException;
-
-            throw error;
-        },
-
-        pass: function pass(assertion) {},
-
-        callOrder: function assertCallOrder() {
-            verifyIsStub.apply(null, arguments);
-            var expected = "", actual = "";
-
-            if (!sinon.calledInOrder(arguments)) {
-                try {
-                    expected = [].join.call(arguments, ", ");
-                    var calls = slice.call(arguments);
-                    var i = calls.length;
-                    while (i) {
-                        if (!calls[--i].called) {
-                            calls.splice(i, 1);
-                        }
-                    }
-                    actual = sinon.orderByFirstCall(calls).join(", ");
-                } catch (e) {
-                    // If this fails, we'll just fall back to the blank string
-                }
-
-                failAssertion(this, "expected " + expected + " to be " +
-                              "called in order but were called as " + actual);
-            } else {
-                assert.pass("callOrder");
-            }
-        },
-
-        callCount: function assertCallCount(method, count) {
-            verifyIsStub(method);
-
-            if (method.callCount != count) {
-                var msg = "expected %n to be called " + sinon.timesInWords(count) +
-                    " but was called %c%C";
-                failAssertion(this, method.printf(msg));
-            } else {
-                assert.pass("callCount");
-            }
-        },
-
-        expose: function expose(target, options) {
-            if (!target) {
-                throw new TypeError("target is null or undefined");
-            }
-
-            var o = options || {};
-            var prefix = typeof o.prefix == "undefined" && "assert" || o.prefix;
-            var includeFail = typeof o.includeFail == "undefined" || !!o.includeFail;
-
-            for (var method in this) {
-                if (method != "export" && (includeFail || !/^(fail)/.test(method))) {
-                    target[exposedName(prefix, method)] = this[method];
-                }
-            }
-
-            return target;
-        }
-    };
-
-    mirrorPropAsAssertion("called", "expected %n to have been called at least once but was never called");
-    mirrorPropAsAssertion("notCalled", function (spy) { return !spy.called; },
-                          "expected %n to not have been called but was called %c%C");
-    mirrorPropAsAssertion("calledOnce", "expected %n to be called once but was called %c%C");
-    mirrorPropAsAssertion("calledTwice", "expected %n to be called twice but was called %c%C");
-    mirrorPropAsAssertion("calledThrice", "expected %n to be called thrice but was called %c%C");
-    mirrorPropAsAssertion("calledOn", "expected %n to be called with %1 as this but was called with %t");
-    mirrorPropAsAssertion("alwaysCalledOn", "expected %n to always be called with %1 as this but was called with %t");
-    mirrorPropAsAssertion("calledWithNew", "expected %n to be called with new");
-    mirrorPropAsAssertion("alwaysCalledWithNew", "expected %n to always be called with new");
-    mirrorPropAsAssertion("calledWith", "expected %n to be called with arguments %*%C");
-    mirrorPropAsAssertion("calledWithMatch", "expected %n to be called with match %*%C");
-    mirrorPropAsAssertion("alwaysCalledWith", "expected %n to always be called with arguments %*%C");
-    mirrorPropAsAssertion("alwaysCalledWithMatch", "expected %n to always be called with match %*%C");
-    mirrorPropAsAssertion("calledWithExactly", "expected %n to be called with exact arguments %*%C");
-    mirrorPropAsAssertion("alwaysCalledWithExactly", "expected %n to always be called with exact arguments %*%C");
-    mirrorPropAsAssertion("neverCalledWith", "expected %n to never be called with arguments %*%C");
-    mirrorPropAsAssertion("neverCalledWithMatch", "expected %n to never be called with match %*%C");
-    mirrorPropAsAssertion("threw", "%n did not throw exception%C");
-    mirrorPropAsAssertion("alwaysThrew", "%n did not always throw exception%C");
-
-    if (commonJSModule) {
-        module.exports = assert;
-    } else {
-        sinon.assert = assert;
-    }
-}(typeof sinon == "object" && sinon || null, typeof window != "undefined" ? window : (typeof self != "undefined") ? self : global));
-
-return sinon;}.call(typeof window != 'undefined' && window || {}));
diff --git a/resources/sinonjs/sinon-1.9.0.js b/resources/sinonjs/sinon-1.9.0.js
new file mode 100644 (file)
index 0000000..428b729
--- /dev/null
@@ -0,0 +1,4794 @@
+/**
+ * Sinon.JS 1.9.0, 2014/03/05
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @author Contributors: https://github.com/cjohansen/Sinon.JS/blob/master/AUTHORS
+ *
+ * (The BSD License)
+ * 
+ * Copyright (c) 2010-2014, Christian Johansen, christian@cjohansen.no
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 
+ *     * Redistributions of source code must retain the above copyright notice,
+ *       this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright notice,
+ *       this list of conditions and the following disclaimer in the documentation
+ *       and/or other materials provided with the distribution.
+ *     * Neither the name of Christian Johansen nor the names of his contributors
+ *       may be used to endorse or promote products derived from this software
+ *       without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+this.sinon = (function () {
+var samsam, formatio;
+function define(mod, deps, fn) { if (mod == "samsam") { samsam = deps(); } else { formatio = fn(samsam); } }
+define.amd = true;
+((typeof define === "function" && define.amd && function (m) { define("samsam", m); }) ||
+ (typeof module === "object" &&
+      function (m) { module.exports = m(); }) || // Node
+ function (m) { this.samsam = m(); } // Browser globals
+)(function () {
+    var o = Object.prototype;
+    var div = typeof document !== "undefined" && document.createElement("div");
+
+    function isNaN(value) {
+        // Unlike global isNaN, this avoids type coercion
+        // typeof check avoids IE host object issues, hat tip to
+        // lodash
+        var val = value; // JsLint thinks value !== value is "weird"
+        return typeof value === "number" && value !== val;
+    }
+
+    function getClass(value) {
+        // Returns the internal [[Class]] by calling Object.prototype.toString
+        // with the provided value as this. Return value is a string, naming the
+        // internal class, e.g. "Array"
+        return o.toString.call(value).split(/[ \]]/)[1];
+    }
+
+    /**
+     * @name samsam.isArguments
+     * @param Object object
+     *
+     * Returns ``true`` if ``object`` is an ``arguments`` object,
+     * ``false`` otherwise.
+     */
+    function isArguments(object) {
+        if (typeof object !== "object" || typeof object.length !== "number" ||
+                getClass(object) === "Array") {
+            return false;
+        }
+        if (typeof object.callee == "function") { return true; }
+        try {
+            object[object.length] = 6;
+            delete object[object.length];
+        } catch (e) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * @name samsam.isElement
+     * @param Object object
+     *
+     * Returns ``true`` if ``object`` is a DOM element node. Unlike
+     * Underscore.js/lodash, this function will return ``false`` if ``object``
+     * is an *element-like* object, i.e. a regular object with a ``nodeType``
+     * property that holds the value ``1``.
+     */
+    function isElement(object) {
+        if (!object || object.nodeType !== 1 || !div) { return false; }
+        try {
+            object.appendChild(div);
+            object.removeChild(div);
+        } catch (e) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * @name samsam.keys
+     * @param Object object
+     *
+     * Return an array of own property names.
+     */
+    function keys(object) {
+        var ks = [], prop;
+        for (prop in object) {
+            if (o.hasOwnProperty.call(object, prop)) { ks.push(prop); }
+        }
+        return ks;
+    }
+
+    /**
+     * @name samsam.isDate
+     * @param Object value
+     *
+     * Returns true if the object is a ``Date``, or *date-like*. Duck typing
+     * of date objects work by checking that the object has a ``getTime``
+     * function whose return value equals the return value from the object's
+     * ``valueOf``.
+     */
+    function isDate(value) {
+        return typeof value.getTime == "function" &&
+            value.getTime() == value.valueOf();
+    }
+
+    /**
+     * @name samsam.isNegZero
+     * @param Object value
+     *
+     * Returns ``true`` if ``value`` is ``-0``.
+     */
+    function isNegZero(value) {
+        return value === 0 && 1 / value === -Infinity;
+    }
+
+    /**
+     * @name samsam.equal
+     * @param Object obj1
+     * @param Object obj2
+     *
+     * Returns ``true`` if two objects are strictly equal. Compared to
+     * ``===`` there are two exceptions:
+     *
+     *   - NaN is considered equal to NaN
+     *   - -0 and +0 are not considered equal
+     */
+    function identical(obj1, obj2) {
+        if (obj1 === obj2 || (isNaN(obj1) && isNaN(obj2))) {
+            return obj1 !== 0 || isNegZero(obj1) === isNegZero(obj2);
+        }
+    }
+
+
+    /**
+     * @name samsam.deepEqual
+     * @param Object obj1
+     * @param Object obj2
+     *
+     * Deep equal comparison. Two values are "deep equal" if:
+     *
+     *   - They are equal, according to samsam.identical
+     *   - They are both date objects representing the same time
+     *   - They are both arrays containing elements that are all deepEqual
+     *   - They are objects with the same set of properties, and each property
+     *     in ``obj1`` is deepEqual to the corresponding property in ``obj2``
+     *
+     * Supports cyclic objects.
+     */
+    function deepEqualCyclic(obj1, obj2) {
+
+        // used for cyclic comparison
+        // contain already visited objects
+        var objects1 = [],
+            objects2 = [],
+        // contain pathes (position in the object structure)
+        // of the already visited objects
+        // indexes same as in objects arrays
+            paths1 = [],
+            paths2 = [],
+        // contains combinations of already compared objects
+        // in the manner: { "$1['ref']$2['ref']": true }
+            compared = {};
+
+        /**
+         * used to check, if the value of a property is an object
+         * (cyclic logic is only needed for objects)
+         * only needed for cyclic logic
+         */
+        function isObject(value) {
+
+            if (typeof value === 'object' && value !== null &&
+                    !(value instanceof Boolean) &&
+                    !(value instanceof Date)    &&
+                    !(value instanceof Number)  &&
+                    !(value instanceof RegExp)  &&
+                    !(value instanceof String)) {
+
+                return true;
+            }
+
+            return false;
+        }
+
+        /**
+         * returns the index of the given object in the
+         * given objects array, -1 if not contained
+         * only needed for cyclic logic
+         */
+        function getIndex(objects, obj) {
+
+            var i;
+            for (i = 0; i < objects.length; i++) {
+                if (objects[i] === obj) {
+                    return i;
+                }
+            }
+
+            return -1;
+        }
+
+        // does the recursion for the deep equal check
+        return (function deepEqual(obj1, obj2, path1, path2) {
+            var type1 = typeof obj1;
+            var type2 = typeof obj2;
+
+            // == null also matches undefined
+            if (obj1 === obj2 ||
+                    isNaN(obj1) || isNaN(obj2) ||
+                    obj1 == null || obj2 == null ||
+                    type1 !== "object" || type2 !== "object") {
+
+                return identical(obj1, obj2);
+            }
+
+            // Elements are only equal if identical(expected, actual)
+            if (isElement(obj1) || isElement(obj2)) { return false; }
+
+            var isDate1 = isDate(obj1), isDate2 = isDate(obj2);
+            if (isDate1 || isDate2) {
+                if (!isDate1 || !isDate2 || obj1.getTime() !== obj2.getTime()) {
+                    return false;
+                }
+            }
+
+            if (obj1 instanceof RegExp && obj2 instanceof RegExp) {
+                if (obj1.toString() !== obj2.toString()) { return false; }
+            }
+
+            var class1 = getClass(obj1);
+            var class2 = getClass(obj2);
+            var keys1 = keys(obj1);
+            var keys2 = keys(obj2);
+
+            if (isArguments(obj1) || isArguments(obj2)) {
+                if (obj1.length !== obj2.length) { return false; }
+            } else {
+                if (type1 !== type2 || class1 !== class2 ||
+                        keys1.length !== keys2.length) {
+                    return false;
+                }
+            }
+
+            var key, i, l,
+                // following vars are used for the cyclic logic
+                value1, value2,
+                isObject1, isObject2,
+                index1, index2,
+                newPath1, newPath2;
+
+            for (i = 0, l = keys1.length; i < l; i++) {
+                key = keys1[i];
+                if (!o.hasOwnProperty.call(obj2, key)) {
+                    return false;
+                }
+
+                // Start of the cyclic logic
+
+                value1 = obj1[key];
+                value2 = obj2[key];
+
+                isObject1 = isObject(value1);
+                isObject2 = isObject(value2);
+
+                // determine, if the objects were already visited
+                // (it's faster to check for isObject first, than to
+                // get -1 from getIndex for non objects)
+                index1 = isObject1 ? getIndex(objects1, value1) : -1;
+                index2 = isObject2 ? getIndex(objects2, value2) : -1;
+
+                // determine the new pathes of the objects
+                // - for non cyclic objects the current path will be extended
+                //   by current property name
+                // - for cyclic objects the stored path is taken
+                newPath1 = index1 !== -1
+                    ? paths1[index1]
+                    : path1 + '[' + JSON.stringify(key) + ']';
+                newPath2 = index2 !== -1
+                    ? paths2[index2]
+                    : path2 + '[' + JSON.stringify(key) + ']';
+
+                // stop recursion if current objects are already compared
+                if (compared[newPath1 + newPath2]) {
+                    return true;
+                }
+
+                // remember the current objects and their pathes
+                if (index1 === -1 && isObject1) {
+                    objects1.push(value1);
+                    paths1.push(newPath1);
+                }
+                if (index2 === -1 && isObject2) {
+                    objects2.push(value2);
+                    paths2.push(newPath2);
+                }
+
+                // remember that the current objects are already compared
+                if (isObject1 && isObject2) {
+                    compared[newPath1 + newPath2] = true;
+                }
+
+                // End of cyclic logic
+
+                // neither value1 nor value2 is a cycle
+                // continue with next level
+                if (!deepEqual(value1, value2, newPath1, newPath2)) {
+                    return false;
+                }
+            }
+
+            return true;
+
+        }(obj1, obj2, '$1', '$2'));
+    }
+
+    var match;
+
+    function arrayContains(array, subset) {
+        if (subset.length === 0) { return true; }
+        var i, l, j, k;
+        for (i = 0, l = array.length; i < l; ++i) {
+            if (match(array[i], subset[0])) {
+                for (j = 0, k = subset.length; j < k; ++j) {
+                    if (!match(array[i + j], subset[j])) { return false; }
+                }
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * @name samsam.match
+     * @param Object object
+     * @param Object matcher
+     *
+     * Compare arbitrary value ``object`` with matcher.
+     */
+    match = function match(object, matcher) {
+        if (matcher && typeof matcher.test === "function") {
+            return matcher.test(object);
+        }
+
+        if (typeof matcher === "function") {
+            return matcher(object) === true;
+        }
+
+        if (typeof matcher === "string") {
+            matcher = matcher.toLowerCase();
+            var notNull = typeof object === "string" || !!object;
+            return notNull &&
+                (String(object)).toLowerCase().indexOf(matcher) >= 0;
+        }
+
+        if (typeof matcher === "number") {
+            return matcher === object;
+        }
+
+        if (typeof matcher === "boolean") {
+            return matcher === object;
+        }
+
+        if (getClass(object) === "Array" && getClass(matcher) === "Array") {
+            return arrayContains(object, matcher);
+        }
+
+        if (matcher && typeof matcher === "object") {
+            var prop;
+            for (prop in matcher) {
+                if (!match(object[prop], matcher[prop])) {
+                    return false;
+                }
+            }
+            return true;
+        }
+
+        throw new Error("Matcher was not a string, a number, a " +
+                        "function, a boolean or an object");
+    };
+
+    return {
+        isArguments: isArguments,
+        isElement: isElement,
+        isDate: isDate,
+        isNegZero: isNegZero,
+        identical: identical,
+        deepEqual: deepEqualCyclic,
+        match: match,
+        keys: keys
+    };
+});
+((typeof define === "function" && define.amd && function (m) {
+    define("formatio", ["samsam"], m);
+}) || (typeof module === "object" && function (m) {
+    module.exports = m(require("samsam"));
+}) || function (m) { this.formatio = m(this.samsam); }
+)(function (samsam) {
+    
+    var formatio = {
+        excludeConstructors: ["Object", /^.$/],
+        quoteStrings: true
+    };
+
+    var hasOwn = Object.prototype.hasOwnProperty;
+
+    var specialObjects = [];
+    if (typeof global !== "undefined") {
+        specialObjects.push({ object: global, value: "[object global]" });
+    }
+    if (typeof document !== "undefined") {
+        specialObjects.push({
+            object: document,
+            value: "[object HTMLDocument]"
+        });
+    }
+    if (typeof window !== "undefined") {
+        specialObjects.push({ object: window, value: "[object Window]" });
+    }
+
+    function functionName(func) {
+        if (!func) { return ""; }
+        if (func.displayName) { return func.displayName; }
+        if (func.name) { return func.name; }
+        var matches = func.toString().match(/function\s+([^\(]+)/m);
+        return (matches && matches[1]) || "";
+    }
+
+    function constructorName(f, object) {
+        var name = functionName(object && object.constructor);
+        var excludes = f.excludeConstructors ||
+                formatio.excludeConstructors || [];
+
+        var i, l;
+        for (i = 0, l = excludes.length; i < l; ++i) {
+            if (typeof excludes[i] === "string" && excludes[i] === name) {
+                return "";
+            } else if (excludes[i].test && excludes[i].test(name)) {
+                return "";
+            }
+        }
+
+        return name;
+    }
+
+    function isCircular(object, objects) {
+        if (typeof object !== "object") { return false; }
+        var i, l;
+        for (i = 0, l = objects.length; i < l; ++i) {
+            if (objects[i] === object) { return true; }
+        }
+        return false;
+    }
+
+    function ascii(f, object, processed, indent) {
+        if (typeof object === "string") {
+            var qs = f.quoteStrings;
+            var quote = typeof qs !== "boolean" || qs;
+            return processed || quote ? '"' + object + '"' : object;
+        }
+
+        if (typeof object === "function" && !(object instanceof RegExp)) {
+            return ascii.func(object);
+        }
+
+        processed = processed || [];
+
+        if (isCircular(object, processed)) { return "[Circular]"; }
+
+        if (Object.prototype.toString.call(object) === "[object Array]") {
+            return ascii.array.call(f, object, processed);
+        }
+
+        if (!object) { return String((1/object) === -Infinity ? "-0" : object); }
+        if (samsam.isElement(object)) { return ascii.element(object); }
+
+        if (typeof object.toString === "function" &&
+                object.toString !== Object.prototype.toString) {
+            return object.toString();
+        }
+
+        var i, l;
+        for (i = 0, l = specialObjects.length; i < l; i++) {
+            if (object === specialObjects[i].object) {
+                return specialObjects[i].value;
+            }
+        }
+
+        return ascii.object.call(f, object, processed, indent);
+    }
+
+    ascii.func = function (func) {
+        return "function " + functionName(func) + "() {}";
+    };
+
+    ascii.array = function (array, processed) {
+        processed = processed || [];
+        processed.push(array);
+        var i, l, pieces = [];
+        for (i = 0, l = array.length; i < l; ++i) {
+            pieces.push(ascii(this, array[i], processed));
+        }
+        return "[" + pieces.join(", ") + "]";
+    };
+
+    ascii.object = function (object, processed, indent) {
+        processed = processed || [];
+        processed.push(object);
+        indent = indent || 0;
+        var pieces = [], properties = samsam.keys(object).sort();
+        var length = 3;
+        var prop, str, obj, i, l;
+
+        for (i = 0, l = properties.length; i < l; ++i) {
+            prop = properties[i];
+            obj = object[prop];
+
+            if (isCircular(obj, processed)) {
+                str = "[Circular]";
+            } else {
+                str = ascii(this, obj, processed, indent + 2);
+            }
+
+            str = (/\s/.test(prop) ? '"' + prop + '"' : prop) + ": " + str;
+            length += str.length;
+            pieces.push(str);
+        }
+
+        var cons = constructorName(this, object);
+        var prefix = cons ? "[" + cons + "] " : "";
+        var is = "";
+        for (i = 0, l = indent; i < l; ++i) { is += " "; }
+
+        if (length + indent > 80) {
+            return prefix + "{\n  " + is + pieces.join(",\n  " + is) + "\n" +
+                is + "}";
+        }
+        return prefix + "{ " + pieces.join(", ") + " }";
+    };
+
+    ascii.element = function (element) {
+        var tagName = element.tagName.toLowerCase();
+        var attrs = element.attributes, attr, pairs = [], attrName, i, l, val;
+
+        for (i = 0, l = attrs.length; i < l; ++i) {
+            attr = attrs.item(i);
+            attrName = attr.nodeName.toLowerCase().replace("html:", "");
+            val = attr.nodeValue;
+            if (attrName !== "contenteditable" || val !== "inherit") {
+                if (!!val) { pairs.push(attrName + "=\"" + val + "\""); }
+            }
+        }
+
+        var formatted = "<" + tagName + (pairs.length > 0 ? " " : "");
+        var content = element.innerHTML;
+
+        if (content.length > 20) {
+            content = content.substr(0, 20) + "[...]";
+        }
+
+        var res = formatted + pairs.join(" ") + ">" + content +
+                "</" + tagName + ">";
+
+        return res.replace(/ contentEditable="inherit"/, "");
+    };
+
+    function Formatio(options) {
+        for (var opt in options) {
+            this[opt] = options[opt];
+        }
+    }
+
+    Formatio.prototype = {
+        functionName: functionName,
+
+        configure: function (options) {
+            return new Formatio(options);
+        },
+
+        constructorName: function (object) {
+            return constructorName(this, object);
+        },
+
+        ascii: function (object, processed, indent) {
+            return ascii(this, object, processed, indent);
+        }
+    };
+
+    return Formatio.prototype;
+});
+/*jslint eqeqeq: false, onevar: false, forin: true, nomen: false, regexp: false, plusplus: false*/
+/*global module, require, __dirname, document*/
+/**
+ * Sinon core utilities. For internal use only.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+var sinon = (function (formatio) {
+    var div = typeof document != "undefined" && document.createElement("div");
+    var hasOwn = Object.prototype.hasOwnProperty;
+
+    function isDOMNode(obj) {
+        var success = false;
+
+        try {
+            obj.appendChild(div);
+            success = div.parentNode == obj;
+        } catch (e) {
+            return false;
+        } finally {
+            try {
+                obj.removeChild(div);
+            } catch (e) {
+                // Remove failed, not much we can do about that
+            }
+        }
+
+        return success;
+    }
+
+    function isElement(obj) {
+        return div && obj && obj.nodeType === 1 && isDOMNode(obj);
+    }
+
+    function isFunction(obj) {
+        return typeof obj === "function" || !!(obj && obj.constructor && obj.call && obj.apply);
+    }
+
+    function mirrorProperties(target, source) {
+        for (var prop in source) {
+            if (!hasOwn.call(target, prop)) {
+                target[prop] = source[prop];
+            }
+        }
+    }
+
+    function isRestorable (obj) {
+        return typeof obj === "function" && typeof obj.restore === "function" && obj.restore.sinon;
+    }
+
+    var sinon = {
+        wrapMethod: function wrapMethod(object, property, method) {
+            if (!object) {
+                throw new TypeError("Should wrap property of object");
+            }
+
+            if (typeof method != "function") {
+                throw new TypeError("Method wrapper should be function");
+            }
+
+            var wrappedMethod = object[property],
+                error;
+
+            if (!isFunction(wrappedMethod)) {
+                error = new TypeError("Attempted to wrap " + (typeof wrappedMethod) + " property " +
+                                    property + " as function");
+            }
+
+            if (wrappedMethod.restore && wrappedMethod.restore.sinon) {
+                error = new TypeError("Attempted to wrap " + property + " which is already wrapped");
+            }
+
+            if (wrappedMethod.calledBefore) {
+                var verb = !!wrappedMethod.returns ? "stubbed" : "spied on";
+                error = new TypeError("Attempted to wrap " + property + " which is already " + verb);
+            }
+
+            if (error) {
+                if (wrappedMethod._stack) {
+                    error.stack += '\n--------------\n' + wrappedMethod._stack;
+                }
+                throw error;
+            }
+
+            // IE 8 does not support hasOwnProperty on the window object and Firefox has a problem
+            // when using hasOwn.call on objects from other frames.
+            var owned = object.hasOwnProperty ? object.hasOwnProperty(property) : hasOwn.call(object, property);
+            object[property] = method;
+            method.displayName = property;
+            // Set up a stack trace which can be used later to find what line of
+            // code the original method was created on.
+            method._stack = (new Error('Stack Trace for original')).stack;
+
+            method.restore = function () {
+                // For prototype properties try to reset by delete first.
+                // If this fails (ex: localStorage on mobile safari) then force a reset
+                // via direct assignment.
+                if (!owned) {
+                    delete object[property];
+                }
+                if (object[property] === method) {
+                    object[property] = wrappedMethod;
+                }
+            };
+
+            method.restore.sinon = true;
+            mirrorProperties(method, wrappedMethod);
+
+            return method;
+        },
+
+        extend: function extend(target) {
+            for (var i = 1, l = arguments.length; i < l; i += 1) {
+                for (var prop in arguments[i]) {
+                    if (arguments[i].hasOwnProperty(prop)) {
+                        target[prop] = arguments[i][prop];
+                    }
+
+                    // DONT ENUM bug, only care about toString
+                    if (arguments[i].hasOwnProperty("toString") &&
+                        arguments[i].toString != target.toString) {
+                        target.toString = arguments[i].toString;
+                    }
+                }
+            }
+
+            return target;
+        },
+
+        create: function create(proto) {
+            var F = function () {};
+            F.prototype = proto;
+            return new F();
+        },
+
+        deepEqual: function deepEqual(a, b) {
+            if (sinon.match && sinon.match.isMatcher(a)) {
+                return a.test(b);
+            }
+            if (typeof a != "object" || typeof b != "object") {
+                return a === b;
+            }
+
+            if (isElement(a) || isElement(b)) {
+                return a === b;
+            }
+
+            if (a === b) {
+                return true;
+            }
+
+            if ((a === null && b !== null) || (a !== null && b === null)) {
+                return false;
+            }
+
+            if (a instanceof RegExp && b instanceof RegExp) {
+              return (a.source === b.source) && (a.global === b.global) && 
+                (a.ignoreCase === b.ignoreCase) && (a.multiline === b.multiline);
+            }
+
+            var aString = Object.prototype.toString.call(a);
+            if (aString != Object.prototype.toString.call(b)) {
+                return false;
+            }
+
+            if (aString == "[object Date]") {
+                return a.valueOf() === b.valueOf();
+            }
+
+            var prop, aLength = 0, bLength = 0;
+
+            if (aString == "[object Array]" && a.length !== b.length) {
+                return false;
+            }
+
+            for (prop in a) {
+                aLength += 1;
+
+                if (!deepEqual(a[prop], b[prop])) {
+                    return false;
+                }
+            }
+
+            for (prop in b) {
+                bLength += 1;
+            }
+
+            return aLength == bLength;
+        },
+
+        functionName: function functionName(func) {
+            var name = func.displayName || func.name;
+
+            // Use function decomposition as a last resort to get function
+            // name. Does not rely on function decomposition to work - if it
+            // doesn't debugging will be slightly less informative
+            // (i.e. toString will say 'spy' rather than 'myFunc').
+            if (!name) {
+                var matches = func.toString().match(/function ([^\s\(]+)/);
+                name = matches && matches[1];
+            }
+
+            return name;
+        },
+
+        functionToString: function toString() {
+            if (this.getCall && this.callCount) {
+                var thisValue, prop, i = this.callCount;
+
+                while (i--) {
+                    thisValue = this.getCall(i).thisValue;
+
+                    for (prop in thisValue) {
+                        if (thisValue[prop] === this) {
+                            return prop;
+                        }
+                    }
+                }
+            }
+
+            return this.displayName || "sinon fake";
+        },
+
+        getConfig: function (custom) {
+            var config = {};
+            custom = custom || {};
+            var defaults = sinon.defaultConfig;
+
+            for (var prop in defaults) {
+                if (defaults.hasOwnProperty(prop)) {
+                    config[prop] = custom.hasOwnProperty(prop) ? custom[prop] : defaults[prop];
+                }
+            }
+
+            return config;
+        },
+
+        format: function (val) {
+            return "" + val;
+        },
+
+        defaultConfig: {
+            injectIntoThis: true,
+            injectInto: null,
+            properties: ["spy", "stub", "mock", "clock", "server", "requests"],
+            useFakeTimers: true,
+            useFakeServer: true
+        },
+
+        timesInWords: function timesInWords(count) {
+            return count == 1 && "once" ||
+                count == 2 && "twice" ||
+                count == 3 && "thrice" ||
+                (count || 0) + " times";
+        },
+
+        calledInOrder: function (spies) {
+            for (var i = 1, l = spies.length; i < l; i++) {
+                if (!spies[i - 1].calledBefore(spies[i]) || !spies[i].called) {
+                    return false;
+                }
+            }
+
+            return true;
+        },
+
+        orderByFirstCall: function (spies) {
+            return spies.sort(function (a, b) {
+                // uuid, won't ever be equal
+                var aCall = a.getCall(0);
+                var bCall = b.getCall(0);
+                var aId = aCall && aCall.callId || -1;
+                var bId = bCall && bCall.callId || -1;
+
+                return aId < bId ? -1 : 1;
+            });
+        },
+
+        log: function () {},
+
+        logError: function (label, err) {
+            var msg = label + " threw exception: ";
+            sinon.log(msg + "[" + err.name + "] " + err.message);
+            if (err.stack) { sinon.log(err.stack); }
+
+            setTimeout(function () {
+                err.message = msg + err.message;
+                throw err;
+            }, 0);
+        },
+
+        typeOf: function (value) {
+            if (value === null) {
+                return "null";
+            }
+            else if (value === undefined) {
+                return "undefined";
+            }
+            var string = Object.prototype.toString.call(value);
+            return string.substring(8, string.length - 1).toLowerCase();
+        },
+
+        createStubInstance: function (constructor) {
+            if (typeof constructor !== "function") {
+                throw new TypeError("The constructor should be a function.");
+            }
+            return sinon.stub(sinon.create(constructor.prototype));
+        },
+
+        restore: function (object) {
+            if (object !== null && typeof object === "object") {
+                for (var prop in object) {
+                    if (isRestorable(object[prop])) {
+                        object[prop].restore();
+                    }
+                }
+            }
+            else if (isRestorable(object)) {
+                object.restore();
+            }
+        }
+    };
+
+    var isNode = typeof module !== "undefined" && module.exports;
+    var isAMD = typeof define === 'function' && typeof define.amd === 'object' && define.amd;
+
+    if (isAMD) {
+        define(function(){
+            return sinon;
+        });
+    } else if (isNode) {
+        try {
+            formatio = require("formatio");
+        } catch (e) {}
+        module.exports = sinon;
+        module.exports.spy = require("./sinon/spy");
+        module.exports.spyCall = require("./sinon/call");
+        module.exports.behavior = require("./sinon/behavior");
+        module.exports.stub = require("./sinon/stub");
+        module.exports.mock = require("./sinon/mock");
+        module.exports.collection = require("./sinon/collection");
+        module.exports.assert = require("./sinon/assert");
+        module.exports.sandbox = require("./sinon/sandbox");
+        module.exports.test = require("./sinon/test");
+        module.exports.testCase = require("./sinon/test_case");
+        module.exports.assert = require("./sinon/assert");
+        module.exports.match = require("./sinon/match");
+    }
+
+    if (formatio) {
+        var formatter = formatio.configure({ quoteStrings: false });
+        sinon.format = function () {
+            return formatter.ascii.apply(formatter, arguments);
+        };
+    } else if (isNode) {
+        try {
+            var util = require("util");
+            sinon.format = function (value) {
+                return typeof value == "object" && value.toString === Object.prototype.toString ? util.inspect(value) : value;
+            };
+        } catch (e) {
+            /* Node, but no util module - would be very old, but better safe than
+             sorry */
+        }
+    }
+
+    return sinon;
+}(typeof formatio == "object" && formatio));
+
+/* @depend ../sinon.js */
+/*jslint eqeqeq: false, onevar: false, plusplus: false*/
+/*global module, require, sinon*/
+/**
+ * Match functions
+ *
+ * @author Maximilian Antoni (mail@maxantoni.de)
+ * @license BSD
+ *
+ * Copyright (c) 2012 Maximilian Antoni
+ */
+
+(function (sinon) {
+    var commonJSModule = typeof module !== 'undefined' && module.exports;
+
+    if (!sinon && commonJSModule) {
+        sinon = require("../sinon");
+    }
+
+    if (!sinon) {
+        return;
+    }
+
+    function assertType(value, type, name) {
+        var actual = sinon.typeOf(value);
+        if (actual !== type) {
+            throw new TypeError("Expected type of " + name + " to be " +
+                type + ", but was " + actual);
+        }
+    }
+
+    var matcher = {
+        toString: function () {
+            return this.message;
+        }
+    };
+
+    function isMatcher(object) {
+        return matcher.isPrototypeOf(object);
+    }
+
+    function matchObject(expectation, actual) {
+        if (actual === null || actual === undefined) {
+            return false;
+        }
+        for (var key in expectation) {
+            if (expectation.hasOwnProperty(key)) {
+                var exp = expectation[key];
+                var act = actual[key];
+                if (match.isMatcher(exp)) {
+                    if (!exp.test(act)) {
+                        return false;
+                    }
+                } else if (sinon.typeOf(exp) === "object") {
+                    if (!matchObject(exp, act)) {
+                        return false;
+                    }
+                } else if (!sinon.deepEqual(exp, act)) {
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
+
+    matcher.or = function (m2) {
+        if (!arguments.length) {
+            throw new TypeError("Matcher expected");
+        } else if (!isMatcher(m2)) {
+            m2 = match(m2);
+        }
+        var m1 = this;
+        var or = sinon.create(matcher);
+        or.test = function (actual) {
+            return m1.test(actual) || m2.test(actual);
+        };
+        or.message = m1.message + ".or(" + m2.message + ")";
+        return or;
+    };
+
+    matcher.and = function (m2) {
+        if (!arguments.length) {
+            throw new TypeError("Matcher expected");
+        } else if (!isMatcher(m2)) {
+            m2 = match(m2);
+        }
+        var m1 = this;
+        var and = sinon.create(matcher);
+        and.test = function (actual) {
+            return m1.test(actual) && m2.test(actual);
+        };
+        and.message = m1.message + ".and(" + m2.message + ")";
+        return and;
+    };
+
+    var match = function (expectation, message) {
+        var m = sinon.create(matcher);
+        var type = sinon.typeOf(expectation);
+        switch (type) {
+        case "object":
+            if (typeof expectation.test === "function") {
+                m.test = function (actual) {
+                    return expectation.test(actual) === true;
+                };
+                m.message = "match(" + sinon.functionName(expectation.test) + ")";
+                return m;
+            }
+            var str = [];
+            for (var key in expectation) {
+                if (expectation.hasOwnProperty(key)) {
+                    str.push(key + ": " + expectation[key]);
+                }
+            }
+            m.test = function (actual) {
+                return matchObject(expectation, actual);
+            };
+            m.message = "match(" + str.join(", ") + ")";
+            break;
+        case "number":
+            m.test = function (actual) {
+                return expectation == actual;
+            };
+            break;
+        case "string":
+            m.test = function (actual) {
+                if (typeof actual !== "string") {
+                    return false;
+                }
+                return actual.indexOf(expectation) !== -1;
+            };
+            m.message = "match(\"" + expectation + "\")";
+            break;
+        case "regexp":
+            m.test = function (actual) {
+                if (typeof actual !== "string") {
+                    return false;
+                }
+                return expectation.test(actual);
+            };
+            break;
+        case "function":
+            m.test = expectation;
+            if (message) {
+                m.message = message;
+            } else {
+                m.message = "match(" + sinon.functionName(expectation) + ")";
+            }
+            break;
+        default:
+            m.test = function (actual) {
+              return sinon.deepEqual(expectation, actual);
+            };
+        }
+        if (!m.message) {
+            m.message = "match(" + expectation + ")";
+        }
+        return m;
+    };
+
+    match.isMatcher = isMatcher;
+
+    match.any = match(function () {
+        return true;
+    }, "any");
+
+    match.defined = match(function (actual) {
+        return actual !== null && actual !== undefined;
+    }, "defined");
+
+    match.truthy = match(function (actual) {
+        return !!actual;
+    }, "truthy");
+
+    match.falsy = match(function (actual) {
+        return !actual;
+    }, "falsy");
+
+    match.same = function (expectation) {
+        return match(function (actual) {
+            return expectation === actual;
+        }, "same(" + expectation + ")");
+    };
+
+    match.typeOf = function (type) {
+        assertType(type, "string", "type");
+        return match(function (actual) {
+            return sinon.typeOf(actual) === type;
+        }, "typeOf(\"" + type + "\")");
+    };
+
+    match.instanceOf = function (type) {
+        assertType(type, "function", "type");
+        return match(function (actual) {
+            return actual instanceof type;
+        }, "instanceOf(" + sinon.functionName(type) + ")");
+    };
+
+    function createPropertyMatcher(propertyTest, messagePrefix) {
+        return function (property, value) {
+            assertType(property, "string", "property");
+            var onlyProperty = arguments.length === 1;
+            var message = messagePrefix + "(\"" + property + "\"";
+            if (!onlyProperty) {
+                message += ", " + value;
+            }
+            message += ")";
+            return match(function (actual) {
+                if (actual === undefined || actual === null ||
+                        !propertyTest(actual, property)) {
+                    return false;
+                }
+                return onlyProperty || sinon.deepEqual(value, actual[property]);
+            }, message);
+        };
+    }
+
+    match.has = createPropertyMatcher(function (actual, property) {
+        if (typeof actual === "object") {
+            return property in actual;
+        }
+        return actual[property] !== undefined;
+    }, "has");
+
+    match.hasOwn = createPropertyMatcher(function (actual, property) {
+        return actual.hasOwnProperty(property);
+    }, "hasOwn");
+
+    match.bool = match.typeOf("boolean");
+    match.number = match.typeOf("number");
+    match.string = match.typeOf("string");
+    match.object = match.typeOf("object");
+    match.func = match.typeOf("function");
+    match.array = match.typeOf("array");
+    match.regexp = match.typeOf("regexp");
+    match.date = match.typeOf("date");
+
+    if (commonJSModule) {
+        module.exports = match;
+    } else {
+        sinon.match = match;
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+  * @depend ../sinon.js
+  * @depend match.js
+  */
+/*jslint eqeqeq: false, onevar: false, plusplus: false*/
+/*global module, require, sinon*/
+/**
+  * Spy calls
+  *
+  * @author Christian Johansen (christian@cjohansen.no)
+  * @author Maximilian Antoni (mail@maxantoni.de)
+  * @license BSD
+  *
+  * Copyright (c) 2010-2013 Christian Johansen
+  * Copyright (c) 2013 Maximilian Antoni
+  */
+
+(function (sinon) {
+    var commonJSModule = typeof module !== 'undefined' && module.exports;
+    if (!sinon && commonJSModule) {
+        sinon = require("../sinon");
+    }
+
+    if (!sinon) {
+        return;
+    }
+
+    function throwYieldError(proxy, text, args) {
+        var msg = sinon.functionName(proxy) + text;
+        if (args.length) {
+            msg += " Received [" + slice.call(args).join(", ") + "]";
+        }
+        throw new Error(msg);
+    }
+
+    var slice = Array.prototype.slice;
+
+    var callProto = {
+        calledOn: function calledOn(thisValue) {
+            if (sinon.match && sinon.match.isMatcher(thisValue)) {
+                return thisValue.test(this.thisValue);
+            }
+            return this.thisValue === thisValue;
+        },
+
+        calledWith: function calledWith() {
+            for (var i = 0, l = arguments.length; i < l; i += 1) {
+                if (!sinon.deepEqual(arguments[i], this.args[i])) {
+                    return false;
+                }
+            }
+
+            return true;
+        },
+
+        calledWithMatch: function calledWithMatch() {
+            for (var i = 0, l = arguments.length; i < l; i += 1) {
+                var actual = this.args[i];
+                var expectation = arguments[i];
+                if (!sinon.match || !sinon.match(expectation).test(actual)) {
+                    return false;
+                }
+            }
+            return true;
+        },
+
+        calledWithExactly: function calledWithExactly() {
+            return arguments.length == this.args.length &&
+                this.calledWith.apply(this, arguments);
+        },
+
+        notCalledWith: function notCalledWith() {
+            return !this.calledWith.apply(this, arguments);
+        },
+
+        notCalledWithMatch: function notCalledWithMatch() {
+            return !this.calledWithMatch.apply(this, arguments);
+        },
+
+        returned: function returned(value) {
+            return sinon.deepEqual(value, this.returnValue);
+        },
+
+        threw: function threw(error) {
+            if (typeof error === "undefined" || !this.exception) {
+                return !!this.exception;
+            }
+
+            return this.exception === error || this.exception.name === error;
+        },
+
+        calledWithNew: function calledWithNew() {
+            return this.proxy.prototype && this.thisValue instanceof this.proxy;
+        },
+
+        calledBefore: function (other) {
+            return this.callId < other.callId;
+        },
+
+        calledAfter: function (other) {
+            return this.callId > other.callId;
+        },
+
+        callArg: function (pos) {
+            this.args[pos]();
+        },
+
+        callArgOn: function (pos, thisValue) {
+            this.args[pos].apply(thisValue);
+        },
+
+        callArgWith: function (pos) {
+            this.callArgOnWith.apply(this, [pos, null].concat(slice.call(arguments, 1)));
+        },
+
+        callArgOnWith: function (pos, thisValue) {
+            var args = slice.call(arguments, 2);
+            this.args[pos].apply(thisValue, args);
+        },
+
+        "yield": function () {
+            this.yieldOn.apply(this, [null].concat(slice.call(arguments, 0)));
+        },
+
+        yieldOn: function (thisValue) {
+            var args = this.args;
+            for (var i = 0, l = args.length; i < l; ++i) {
+                if (typeof args[i] === "function") {
+                    args[i].apply(thisValue, slice.call(arguments, 1));
+                    return;
+                }
+            }
+            throwYieldError(this.proxy, " cannot yield since no callback was passed.", args);
+        },
+
+        yieldTo: function (prop) {
+            this.yieldToOn.apply(this, [prop, null].concat(slice.call(arguments, 1)));
+        },
+
+        yieldToOn: function (prop, thisValue) {
+            var args = this.args;
+            for (var i = 0, l = args.length; i < l; ++i) {
+                if (args[i] && typeof args[i][prop] === "function") {
+                    args[i][prop].apply(thisValue, slice.call(arguments, 2));
+                    return;
+                }
+            }
+            throwYieldError(this.proxy, " cannot yield to '" + prop +
+                "' since no callback was passed.", args);
+        },
+
+        toString: function () {
+            var callStr = this.proxy.toString() + "(";
+            var args = [];
+
+            for (var i = 0, l = this.args.length; i < l; ++i) {
+                args.push(sinon.format(this.args[i]));
+            }
+
+            callStr = callStr + args.join(", ") + ")";
+
+            if (typeof this.returnValue != "undefined") {
+                callStr += " => " + sinon.format(this.returnValue);
+            }
+
+            if (this.exception) {
+                callStr += " !" + this.exception.name;
+
+                if (this.exception.message) {
+                    callStr += "(" + this.exception.message + ")";
+                }
+            }
+
+            return callStr;
+        }
+    };
+
+    callProto.invokeCallback = callProto.yield;
+
+    function createSpyCall(spy, thisValue, args, returnValue, exception, id) {
+        if (typeof id !== "number") {
+            throw new TypeError("Call id is not a number");
+        }
+        var proxyCall = sinon.create(callProto);
+        proxyCall.proxy = spy;
+        proxyCall.thisValue = thisValue;
+        proxyCall.args = args;
+        proxyCall.returnValue = returnValue;
+        proxyCall.exception = exception;
+        proxyCall.callId = id;
+
+        return proxyCall;
+    }
+    createSpyCall.toString = callProto.toString; // used by mocks
+
+    if (commonJSModule) {
+        module.exports = createSpyCall;
+    } else {
+        sinon.spyCall = createSpyCall;
+    }
+}(typeof sinon == "object" && sinon || null));
+
+
+/**
+  * @depend ../sinon.js
+  * @depend call.js
+  */
+/*jslint eqeqeq: false, onevar: false, plusplus: false*/
+/*global module, require, sinon*/
+/**
+  * Spy functions
+  *
+  * @author Christian Johansen (christian@cjohansen.no)
+  * @license BSD
+  *
+  * Copyright (c) 2010-2013 Christian Johansen
+  */
+
+(function (sinon) {
+    var commonJSModule = typeof module !== 'undefined' && module.exports;
+    var push = Array.prototype.push;
+    var slice = Array.prototype.slice;
+    var callId = 0;
+
+    if (!sinon && commonJSModule) {
+        sinon = require("../sinon");
+    }
+
+    if (!sinon) {
+        return;
+    }
+
+    function spy(object, property) {
+        if (!property && typeof object == "function") {
+            return spy.create(object);
+        }
+
+        if (!object && !property) {
+            return spy.create(function () { });
+        }
+
+        var method = object[property];
+        return sinon.wrapMethod(object, property, spy.create(method));
+    }
+
+    function matchingFake(fakes, args, strict) {
+        if (!fakes) {
+            return;
+        }
+
+        for (var i = 0, l = fakes.length; i < l; i++) {
+            if (fakes[i].matches(args, strict)) {
+                return fakes[i];
+            }
+        }
+    }
+
+    function incrementCallCount() {
+        this.called = true;
+        this.callCount += 1;
+        this.notCalled = false;
+        this.calledOnce = this.callCount == 1;
+        this.calledTwice = this.callCount == 2;
+        this.calledThrice = this.callCount == 3;
+    }
+
+    function createCallProperties() {
+        this.firstCall = this.getCall(0);
+        this.secondCall = this.getCall(1);
+        this.thirdCall = this.getCall(2);
+        this.lastCall = this.getCall(this.callCount - 1);
+    }
+
+    var vars = "a,b,c,d,e,f,g,h,i,j,k,l";
+    function createProxy(func) {
+        // Retain the function length:
+        var p;
+        if (func.length) {
+            eval("p = (function proxy(" + vars.substring(0, func.length * 2 - 1) +
+                ") { return p.invoke(func, this, slice.call(arguments)); });");
+        }
+        else {
+            p = function proxy() {
+                return p.invoke(func, this, slice.call(arguments));
+            };
+        }
+        return p;
+    }
+
+    var uuid = 0;
+
+    // Public API
+    var spyApi = {
+        reset: function () {
+            this.called = false;
+            this.notCalled = true;
+            this.calledOnce = false;
+            this.calledTwice = false;
+            this.calledThrice = false;
+            this.callCount = 0;
+            this.firstCall = null;
+            this.secondCall = null;
+            this.thirdCall = null;
+            this.lastCall = null;
+            this.args = [];
+            this.returnValues = [];
+            this.thisValues = [];
+            this.exceptions = [];
+            this.callIds = [];
+            if (this.fakes) {
+                for (var i = 0; i < this.fakes.length; i++) {
+                    this.fakes[i].reset();
+                }
+            }
+        },
+
+        create: function create(func) {
+            var name;
+
+            if (typeof func != "function") {
+                func = function () { };
+            } else {
+                name = sinon.functionName(func);
+            }
+
+            var proxy = createProxy(func);
+
+            sinon.extend(proxy, spy);
+            delete proxy.create;
+            sinon.extend(proxy, func);
+
+            proxy.reset();
+            proxy.prototype = func.prototype;
+            proxy.displayName = name || "spy";
+            proxy.toString = sinon.functionToString;
+            proxy._create = sinon.spy.create;
+            proxy.id = "spy#" + uuid++;
+
+            return proxy;
+        },
+
+        invoke: function invoke(func, thisValue, args) {
+            var matching = matchingFake(this.fakes, args);
+            var exception, returnValue;
+
+            incrementCallCount.call(this);
+            push.call(this.thisValues, thisValue);
+            push.call(this.args, args);
+            push.call(this.callIds, callId++);
+
+            try {
+                if (matching) {
+                    returnValue = matching.invoke(func, thisValue, args);
+                } else {
+                    returnValue = (this.func || func).apply(thisValue, args);
+                }
+
+                var thisCall = this.getCall(this.callCount - 1);
+                if (thisCall.calledWithNew() && typeof returnValue !== 'object') {
+                    returnValue = thisValue;
+                }
+            } catch (e) {
+                exception = e;
+            }
+
+            push.call(this.exceptions, exception);
+            push.call(this.returnValues, returnValue);
+
+            createCallProperties.call(this);
+
+            if (exception !== undefined) {
+                throw exception;
+            }
+
+            return returnValue;
+        },
+
+        getCall: function getCall(i) {
+            if (i < 0 || i >= this.callCount) {
+                return null;
+            }
+
+            return sinon.spyCall(this, this.thisValues[i], this.args[i],
+                                    this.returnValues[i], this.exceptions[i],
+                                    this.callIds[i]);
+        },
+
+        getCalls: function () {
+            var calls = [];
+            var i;
+
+            for (i = 0; i < this.callCount; i++) {
+                calls.push(this.getCall(i));
+            }
+
+            return calls;
+        },
+
+        calledBefore: function calledBefore(spyFn) {
+            if (!this.called) {
+                return false;
+            }
+
+            if (!spyFn.called) {
+                return true;
+            }
+
+            return this.callIds[0] < spyFn.callIds[spyFn.callIds.length - 1];
+        },
+
+        calledAfter: function calledAfter(spyFn) {
+            if (!this.called || !spyFn.called) {
+                return false;
+            }
+
+            return this.callIds[this.callCount - 1] > spyFn.callIds[spyFn.callCount - 1];
+        },
+
+        withArgs: function () {
+            var args = slice.call(arguments);
+
+            if (this.fakes) {
+                var match = matchingFake(this.fakes, args, true);
+
+                if (match) {
+                    return match;
+                }
+            } else {
+                this.fakes = [];
+            }
+
+            var original = this;
+            var fake = this._create();
+            fake.matchingAguments = args;
+            fake.parent = this;
+            push.call(this.fakes, fake);
+
+            fake.withArgs = function () {
+                return original.withArgs.apply(original, arguments);
+            };
+
+            for (var i = 0; i < this.args.length; i++) {
+                if (fake.matches(this.args[i])) {
+                    incrementCallCount.call(fake);
+                    push.call(fake.thisValues, this.thisValues[i]);
+                    push.call(fake.args, this.args[i]);
+                    push.call(fake.returnValues, this.returnValues[i]);
+                    push.call(fake.exceptions, this.exceptions[i]);
+                    push.call(fake.callIds, this.callIds[i]);
+                }
+            }
+            createCallProperties.call(fake);
+
+            return fake;
+        },
+
+        matches: function (args, strict) {
+            var margs = this.matchingAguments;
+
+            if (margs.length <= args.length &&
+                sinon.deepEqual(margs, args.slice(0, margs.length))) {
+                return !strict || margs.length == args.length;
+            }
+        },
+
+        printf: function (format) {
+            var spy = this;
+            var args = slice.call(arguments, 1);
+            var formatter;
+
+            return (format || "").replace(/%(.)/g, function (match, specifyer) {
+                formatter = spyApi.formatters[specifyer];
+
+                if (typeof formatter == "function") {
+                    return formatter.call(null, spy, args);
+                } else if (!isNaN(parseInt(specifyer, 10))) {
+                    return sinon.format(args[specifyer - 1]);
+                }
+
+                return "%" + specifyer;
+            });
+        }
+    };
+
+    function delegateToCalls(method, matchAny, actual, notCalled) {
+        spyApi[method] = function () {
+            if (!this.called) {
+                if (notCalled) {
+                    return notCalled.apply(this, arguments);
+                }
+                return false;
+            }
+
+            var currentCall;
+            var matches = 0;
+
+            for (var i = 0, l = this.callCount; i < l; i += 1) {
+                currentCall = this.getCall(i);
+
+                if (currentCall[actual || method].apply(currentCall, arguments)) {
+                    matches += 1;
+
+                    if (matchAny) {
+                        return true;
+                    }
+                }
+            }
+
+            return matches === this.callCount;
+        };
+    }
+
+    delegateToCalls("calledOn", true);
+    delegateToCalls("alwaysCalledOn", false, "calledOn");
+    delegateToCalls("calledWith", true);
+    delegateToCalls("calledWithMatch", true);
+    delegateToCalls("alwaysCalledWith", false, "calledWith");
+    delegateToCalls("alwaysCalledWithMatch", false, "calledWithMatch");
+    delegateToCalls("calledWithExactly", true);
+    delegateToCalls("alwaysCalledWithExactly", false, "calledWithExactly");
+    delegateToCalls("neverCalledWith", false, "notCalledWith",
+        function () { return true; });
+    delegateToCalls("neverCalledWithMatch", false, "notCalledWithMatch",
+        function () { return true; });
+    delegateToCalls("threw", true);
+    delegateToCalls("alwaysThrew", false, "threw");
+    delegateToCalls("returned", true);
+    delegateToCalls("alwaysReturned", false, "returned");
+    delegateToCalls("calledWithNew", true);
+    delegateToCalls("alwaysCalledWithNew", false, "calledWithNew");
+    delegateToCalls("callArg", false, "callArgWith", function () {
+        throw new Error(this.toString() + " cannot call arg since it was not yet invoked.");
+    });
+    spyApi.callArgWith = spyApi.callArg;
+    delegateToCalls("callArgOn", false, "callArgOnWith", function () {
+        throw new Error(this.toString() + " cannot call arg since it was not yet invoked.");
+    });
+    spyApi.callArgOnWith = spyApi.callArgOn;
+    delegateToCalls("yield", false, "yield", function () {
+        throw new Error(this.toString() + " cannot yield since it was not yet invoked.");
+    });
+    // "invokeCallback" is an alias for "yield" since "yield" is invalid in strict mode.
+    spyApi.invokeCallback = spyApi.yield;
+    delegateToCalls("yieldOn", false, "yieldOn", function () {
+        throw new Error(this.toString() + " cannot yield since it was not yet invoked.");
+    });
+    delegateToCalls("yieldTo", false, "yieldTo", function (property) {
+        throw new Error(this.toString() + " cannot yield to '" + property +
+            "' since it was not yet invoked.");
+    });
+    delegateToCalls("yieldToOn", false, "yieldToOn", function (property) {
+        throw new Error(this.toString() + " cannot yield to '" + property +
+            "' since it was not yet invoked.");
+    });
+
+    spyApi.formatters = {
+        "c": function (spy) {
+            return sinon.timesInWords(spy.callCount);
+        },
+
+        "n": function (spy) {
+            return spy.toString();
+        },
+
+        "C": function (spy) {
+            var calls = [];
+
+            for (var i = 0, l = spy.callCount; i < l; ++i) {
+                var stringifiedCall = "    " + spy.getCall(i).toString();
+                if (/\n/.test(calls[i - 1])) {
+                    stringifiedCall = "\n" + stringifiedCall;
+                }
+                push.call(calls, stringifiedCall);
+            }
+
+            return calls.length > 0 ? "\n" + calls.join("\n") : "";
+        },
+
+        "t": function (spy) {
+            var objects = [];
+
+            for (var i = 0, l = spy.callCount; i < l; ++i) {
+                push.call(objects, sinon.format(spy.thisValues[i]));
+            }
+
+            return objects.join(", ");
+        },
+
+        "*": function (spy, args) {
+            var formatted = [];
+
+            for (var i = 0, l = args.length; i < l; ++i) {
+                push.call(formatted, sinon.format(args[i]));
+            }
+
+            return formatted.join(", ");
+        }
+    };
+
+    sinon.extend(spy, spyApi);
+
+    spy.spyCall = sinon.spyCall;
+
+    if (commonJSModule) {
+        module.exports = spy;
+    } else {
+        sinon.spy = spy;
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend ../sinon.js
+ */
+/*jslint eqeqeq: false, onevar: false*/
+/*global module, require, sinon, process, setImmediate, setTimeout*/
+/**
+ * Stub behavior
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @author Tim Fischbach (mail@timfischbach.de)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+    var commonJSModule = typeof module !== 'undefined' && module.exports;
+
+    if (!sinon && commonJSModule) {
+        sinon = require("../sinon");
+    }
+
+    if (!sinon) {
+        return;
+    }
+
+    var slice = Array.prototype.slice;
+    var join = Array.prototype.join;
+    var proto;
+
+    var nextTick = (function () {
+        if (typeof process === "object" && typeof process.nextTick === "function") {
+            return process.nextTick;
+        } else if (typeof setImmediate === "function") {
+            return setImmediate;
+        } else {
+            return function (callback) {
+                setTimeout(callback, 0);
+            };
+        }
+    })();
+
+    function throwsException(error, message) {
+        if (typeof error == "string") {
+            this.exception = new Error(message || "");
+            this.exception.name = error;
+        } else if (!error) {
+            this.exception = new Error("Error");
+        } else {
+            this.exception = error;
+        }
+
+        return this;
+    }
+
+    function getCallback(behavior, args) {
+        var callArgAt = behavior.callArgAt;
+
+        if (callArgAt < 0) {
+            var callArgProp = behavior.callArgProp;
+
+            for (var i = 0, l = args.length; i < l; ++i) {
+                if (!callArgProp && typeof args[i] == "function") {
+                    return args[i];
+                }
+
+                if (callArgProp && args[i] &&
+                    typeof args[i][callArgProp] == "function") {
+                    return args[i][callArgProp];
+                }
+            }
+
+            return null;
+        }
+
+        return args[callArgAt];
+    }
+
+    function getCallbackError(behavior, func, args) {
+        if (behavior.callArgAt < 0) {
+            var msg;
+
+            if (behavior.callArgProp) {
+                msg = sinon.functionName(behavior.stub) +
+                    " expected to yield to '" + behavior.callArgProp +
+                    "', but no object with such a property was passed.";
+            } else {
+                msg = sinon.functionName(behavior.stub) +
+                    " expected to yield, but no callback was passed.";
+            }
+
+            if (args.length > 0) {
+                msg += " Received [" + join.call(args, ", ") + "]";
+            }
+
+            return msg;
+        }
+
+        return "argument at index " + behavior.callArgAt + " is not a function: " + func;
+    }
+
+    function callCallback(behavior, args) {
+        if (typeof behavior.callArgAt == "number") {
+            var func = getCallback(behavior, args);
+
+            if (typeof func != "function") {
+                throw new TypeError(getCallbackError(behavior, func, args));
+            }
+
+            if (behavior.callbackAsync) {
+                nextTick(function() {
+                    func.apply(behavior.callbackContext, behavior.callbackArguments);
+                });
+            } else {
+                func.apply(behavior.callbackContext, behavior.callbackArguments);
+            }
+        }
+    }
+
+    proto = {
+        create: function(stub) {
+            var behavior = sinon.extend({}, sinon.behavior);
+            delete behavior.create;
+            behavior.stub = stub;
+
+            return behavior;
+        },
+
+        isPresent: function() {
+            return (typeof this.callArgAt == 'number' ||
+                    this.exception ||
+                    typeof this.returnArgAt == 'number' ||
+                    this.returnThis ||
+                    this.returnValueDefined);
+        },
+
+        invoke: function(context, args) {
+            callCallback(this, args);
+
+            if (this.exception) {
+                throw this.exception;
+            } else if (typeof this.returnArgAt == 'number') {
+                return args[this.returnArgAt];
+            } else if (this.returnThis) {
+                return context;
+            }
+
+            return this.returnValue;
+        },
+
+        onCall: function(index) {
+            return this.stub.onCall(index);
+        },
+
+        onFirstCall: function() {
+            return this.stub.onFirstCall();
+        },
+
+        onSecondCall: function() {
+            return this.stub.onSecondCall();
+        },
+
+        onThirdCall: function() {
+            return this.stub.onThirdCall();
+        },
+
+        withArgs: function(/* arguments */) {
+            throw new Error('Defining a stub by invoking "stub.onCall(...).withArgs(...)" is not supported. ' +
+                            'Use "stub.withArgs(...).onCall(...)" to define sequential behavior for calls with certain arguments.');
+        },
+
+        callsArg: function callsArg(pos) {
+            if (typeof pos != "number") {
+                throw new TypeError("argument index is not number");
+            }
+
+            this.callArgAt = pos;
+            this.callbackArguments = [];
+            this.callbackContext = undefined;
+            this.callArgProp = undefined;
+            this.callbackAsync = false;
+
+            return this;
+        },
+
+        callsArgOn: function callsArgOn(pos, context) {
+            if (typeof pos != "number") {
+                throw new TypeError("argument index is not number");
+            }
+            if (typeof context != "object") {
+                throw new TypeError("argument context is not an object");
+            }
+
+            this.callArgAt = pos;
+            this.callbackArguments = [];
+            this.callbackContext = context;
+            this.callArgProp = undefined;
+            this.callbackAsync = false;
+
+            return this;
+        },
+
+        callsArgWith: function callsArgWith(pos) {
+            if (typeof pos != "number") {
+                throw new TypeError("argument index is not number");
+            }
+
+            this.callArgAt = pos;
+            this.callbackArguments = slice.call(arguments, 1);
+            this.callbackContext = undefined;
+            this.callArgProp = undefined;
+            this.callbackAsync = false;
+
+            return this;
+        },
+
+        callsArgOnWith: function callsArgWith(pos, context) {
+            if (typeof pos != "number") {
+                throw new TypeError("argument index is not number");
+            }
+            if (typeof context != "object") {
+                throw new TypeError("argument context is not an object");
+            }
+
+            this.callArgAt = pos;
+            this.callbackArguments = slice.call(arguments, 2);
+            this.callbackContext = context;
+            this.callArgProp = undefined;
+            this.callbackAsync = false;
+
+            return this;
+        },
+
+        yields: function () {
+            this.callArgAt = -1;
+            this.callbackArguments = slice.call(arguments, 0);
+            this.callbackContext = undefined;
+            this.callArgProp = undefined;
+            this.callbackAsync = false;
+
+            return this;
+        },
+
+        yieldsOn: function (context) {
+            if (typeof context != "object") {
+                throw new TypeError("argument context is not an object");
+            }
+
+            this.callArgAt = -1;
+            this.callbackArguments = slice.call(arguments, 1);
+            this.callbackContext = context;
+            this.callArgProp = undefined;
+            this.callbackAsync = false;
+
+            return this;
+        },
+
+        yieldsTo: function (prop) {
+            this.callArgAt = -1;
+            this.callbackArguments = slice.call(arguments, 1);
+            this.callbackContext = undefined;
+            this.callArgProp = prop;
+            this.callbackAsync = false;
+
+            return this;
+        },
+
+        yieldsToOn: function (prop, context) {
+            if (typeof context != "object") {
+                throw new TypeError("argument context is not an object");
+            }
+
+            this.callArgAt = -1;
+            this.callbackArguments = slice.call(arguments, 2);
+            this.callbackContext = context;
+            this.callArgProp = prop;
+            this.callbackAsync = false;
+
+            return this;
+        },
+
+
+        "throws": throwsException,
+        throwsException: throwsException,
+
+        returns: function returns(value) {
+            this.returnValue = value;
+            this.returnValueDefined = true;
+
+            return this;
+        },
+
+        returnsArg: function returnsArg(pos) {
+            if (typeof pos != "number") {
+                throw new TypeError("argument index is not number");
+            }
+
+            this.returnArgAt = pos;
+
+            return this;
+        },
+
+        returnsThis: function returnsThis() {
+            this.returnThis = true;
+
+            return this;
+        }
+    };
+
+    // create asynchronous versions of callsArg* and yields* methods
+    for (var method in proto) {
+        // need to avoid creating anotherasync versions of the newly added async methods
+        if (proto.hasOwnProperty(method) &&
+            method.match(/^(callsArg|yields)/) &&
+            !method.match(/Async/)) {
+            proto[method + 'Async'] = (function (syncFnName) {
+                return function () {
+                    var result = this[syncFnName].apply(this, arguments);
+                    this.callbackAsync = true;
+                    return result;
+                };
+            })(method);
+        }
+    }
+
+    if (commonJSModule) {
+        module.exports = proto;
+    } else {
+        sinon.behavior = proto;
+    }
+}(typeof sinon == "object" && sinon || null));
+/**
+ * @depend ../sinon.js
+ * @depend spy.js
+ * @depend behavior.js
+ */
+/*jslint eqeqeq: false, onevar: false*/
+/*global module, require, sinon*/
+/**
+ * Stub functions
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+    var commonJSModule = typeof module !== 'undefined' && module.exports;
+
+    if (!sinon && commonJSModule) {
+        sinon = require("../sinon");
+    }
+
+    if (!sinon) {
+        return;
+    }
+
+    function stub(object, property, func) {
+        if (!!func && typeof func != "function") {
+            throw new TypeError("Custom stub should be function");
+        }
+
+        var wrapper;
+
+        if (func) {
+            wrapper = sinon.spy && sinon.spy.create ? sinon.spy.create(func) : func;
+        } else {
+            wrapper = stub.create();
+        }
+
+        if (!object && typeof property === "undefined") {
+            return sinon.stub.create();
+        }
+
+        if (typeof property === "undefined" && typeof object == "object") {
+            for (var prop in object) {
+                if (typeof object[prop] === "function") {
+                    stub(object, prop);
+                }
+            }
+
+            return object;
+        }
+
+        return sinon.wrapMethod(object, property, wrapper);
+    }
+
+    function getDefaultBehavior(stub) {
+        return stub.defaultBehavior || getParentBehaviour(stub) || sinon.behavior.create(stub);
+    }
+
+    function getParentBehaviour(stub) {
+        return (stub.parent && getCurrentBehavior(stub.parent));
+    }
+
+    function getCurrentBehavior(stub) {
+        var behavior = stub.behaviors[stub.callCount - 1];
+        return behavior && behavior.isPresent() ? behavior : getDefaultBehavior(stub);
+    }
+
+    var uuid = 0;
+
+    sinon.extend(stub, (function () {
+        var proto = {
+            create: function create() {
+                var functionStub = function () {
+                    return getCurrentBehavior(functionStub).invoke(this, arguments);
+                };
+
+                functionStub.id = "stub#" + uuid++;
+                var orig = functionStub;
+                functionStub = sinon.spy.create(functionStub);
+                functionStub.func = orig;
+
+                sinon.extend(functionStub, stub);
+                functionStub._create = sinon.stub.create;
+                functionStub.displayName = "stub";
+                functionStub.toString = sinon.functionToString;
+
+                functionStub.defaultBehavior = null;
+                functionStub.behaviors = [];
+
+                return functionStub;
+            },
+
+            resetBehavior: function () {
+                var i;
+
+                this.defaultBehavior = null;
+                this.behaviors = [];
+
+                delete this.returnValue;
+                delete this.returnArgAt;
+                this.returnThis = false;
+
+                if (this.fakes) {
+                    for (i = 0; i < this.fakes.length; i++) {
+                        this.fakes[i].resetBehavior();
+                    }
+                }
+            },
+
+            onCall: function(index) {
+                if (!this.behaviors[index]) {
+                    this.behaviors[index] = sinon.behavior.create(this);
+                }
+
+                return this.behaviors[index];
+            },
+
+            onFirstCall: function() {
+                return this.onCall(0);
+            },
+
+            onSecondCall: function() {
+                return this.onCall(1);
+            },
+
+            onThirdCall: function() {
+                return this.onCall(2);
+            }
+        };
+
+        for (var method in sinon.behavior) {
+            if (sinon.behavior.hasOwnProperty(method) &&
+                !proto.hasOwnProperty(method) &&
+                method != 'create' &&
+                method != 'withArgs' &&
+                method != 'invoke') {
+                proto[method] = (function(behaviorMethod) {
+                    return function() {
+                        this.defaultBehavior = this.defaultBehavior || sinon.behavior.create(this);
+                        this.defaultBehavior[behaviorMethod].apply(this.defaultBehavior, arguments);
+                        return this;
+                    };
+                }(method));
+            }
+        }
+
+        return proto;
+    }()));
+
+    if (commonJSModule) {
+        module.exports = stub;
+    } else {
+        sinon.stub = stub;
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend ../sinon.js
+ * @depend stub.js
+ */
+/*jslint eqeqeq: false, onevar: false, nomen: false*/
+/*global module, require, sinon*/
+/**
+ * Mock functions.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+    var commonJSModule = typeof module !== 'undefined' && module.exports;
+    var push = [].push;
+    var match;
+
+    if (!sinon && commonJSModule) {
+        sinon = require("../sinon");
+    }
+
+    if (!sinon) {
+        return;
+    }
+
+    match = sinon.match;
+
+    if (!match && commonJSModule) {
+        match = require("./match");
+    }
+
+    function mock(object) {
+        if (!object) {
+            return sinon.expectation.create("Anonymous mock");
+        }
+
+        return mock.create(object);
+    }
+
+    sinon.mock = mock;
+
+    sinon.extend(mock, (function () {
+        function each(collection, callback) {
+            if (!collection) {
+                return;
+            }
+
+            for (var i = 0, l = collection.length; i < l; i += 1) {
+                callback(collection[i]);
+            }
+        }
+
+        return {
+            create: function create(object) {
+                if (!object) {
+                    throw new TypeError("object is null");
+                }
+
+                var mockObject = sinon.extend({}, mock);
+                mockObject.object = object;
+                delete mockObject.create;
+
+                return mockObject;
+            },
+
+            expects: function expects(method) {
+                if (!method) {
+                    throw new TypeError("method is falsy");
+                }
+
+                if (!this.expectations) {
+                    this.expectations = {};
+                    this.proxies = [];
+                }
+
+                if (!this.expectations[method]) {
+                    this.expectations[method] = [];
+                    var mockObject = this;
+
+                    sinon.wrapMethod(this.object, method, function () {
+                        return mockObject.invokeMethod(method, this, arguments);
+                    });
+
+                    push.call(this.proxies, method);
+                }
+
+                var expectation = sinon.expectation.create(method);
+                push.call(this.expectations[method], expectation);
+
+                return expectation;
+            },
+
+            restore: function restore() {
+                var object = this.object;
+
+                each(this.proxies, function (proxy) {
+                    if (typeof object[proxy].restore == "function") {
+                        object[proxy].restore();
+                    }
+                });
+            },
+
+            verify: function verify() {
+                var expectations = this.expectations || {};
+                var messages = [], met = [];
+
+                each(this.proxies, function (proxy) {
+                    each(expectations[proxy], function (expectation) {
+                        if (!expectation.met()) {
+                            push.call(messages, expectation.toString());
+                        } else {
+                            push.call(met, expectation.toString());
+                        }
+                    });
+                });
+
+                this.restore();
+
+                if (messages.length > 0) {
+                    sinon.expectation.fail(messages.concat(met).join("\n"));
+                } else {
+                    sinon.expectation.pass(messages.concat(met).join("\n"));
+                }
+
+                return true;
+            },
+
+            invokeMethod: function invokeMethod(method, thisValue, args) {
+                var expectations = this.expectations && this.expectations[method];
+                var length = expectations && expectations.length || 0, i;
+
+                for (i = 0; i < length; i += 1) {
+                    if (!expectations[i].met() &&
+                        expectations[i].allowsCall(thisValue, args)) {
+                        return expectations[i].apply(thisValue, args);
+                    }
+                }
+
+                var messages = [], available, exhausted = 0;
+
+                for (i = 0; i < length; i += 1) {
+                    if (expectations[i].allowsCall(thisValue, args)) {
+                        available = available || expectations[i];
+                    } else {
+                        exhausted += 1;
+                    }
+                    push.call(messages, "    " + expectations[i].toString());
+                }
+
+                if (exhausted === 0) {
+                    return available.apply(thisValue, args);
+                }
+
+                messages.unshift("Unexpected call: " + sinon.spyCall.toString.call({
+                    proxy: method,
+                    args: args
+                }));
+
+                sinon.expectation.fail(messages.join("\n"));
+            }
+        };
+    }()));
+
+    var times = sinon.timesInWords;
+
+    sinon.expectation = (function () {
+        var slice = Array.prototype.slice;
+        var _invoke = sinon.spy.invoke;
+
+        function callCountInWords(callCount) {
+            if (callCount == 0) {
+                return "never called";
+            } else {
+                return "called " + times(callCount);
+            }
+        }
+
+        function expectedCallCountInWords(expectation) {
+            var min = expectation.minCalls;
+            var max = expectation.maxCalls;
+
+            if (typeof min == "number" && typeof max == "number") {
+                var str = times(min);
+
+                if (min != max) {
+                    str = "at least " + str + " and at most " + times(max);
+                }
+
+                return str;
+            }
+
+            if (typeof min == "number") {
+                return "at least " + times(min);
+            }
+
+            return "at most " + times(max);
+        }
+
+        function receivedMinCalls(expectation) {
+            var hasMinLimit = typeof expectation.minCalls == "number";
+            return !hasMinLimit || expectation.callCount >= expectation.minCalls;
+        }
+
+        function receivedMaxCalls(expectation) {
+            if (typeof expectation.maxCalls != "number") {
+                return false;
+            }
+
+            return expectation.callCount == expectation.maxCalls;
+        }
+
+        function verifyMatcher(possibleMatcher, arg){
+            if (match && match.isMatcher(possibleMatcher)) {
+                return possibleMatcher.test(arg);
+            } else {
+                return true;
+            }
+        }
+
+        return {
+            minCalls: 1,
+            maxCalls: 1,
+
+            create: function create(methodName) {
+                var expectation = sinon.extend(sinon.stub.create(), sinon.expectation);
+                delete expectation.create;
+                expectation.method = methodName;
+
+                return expectation;
+            },
+
+            invoke: function invoke(func, thisValue, args) {
+                this.verifyCallAllowed(thisValue, args);
+
+                return _invoke.apply(this, arguments);
+            },
+
+            atLeast: function atLeast(num) {
+                if (typeof num != "number") {
+                    throw new TypeError("'" + num + "' is not number");
+                }
+
+                if (!this.limitsSet) {
+                    this.maxCalls = null;
+                    this.limitsSet = true;
+                }
+
+                this.minCalls = num;
+
+                return this;
+            },
+
+            atMost: function atMost(num) {
+                if (typeof num != "number") {
+                    throw new TypeError("'" + num + "' is not number");
+                }
+
+                if (!this.limitsSet) {
+                    this.minCalls = null;
+                    this.limitsSet = true;
+                }
+
+                this.maxCalls = num;
+
+                return this;
+            },
+
+            never: function never() {
+                return this.exactly(0);
+            },
+
+            once: function once() {
+                return this.exactly(1);
+            },
+
+            twice: function twice() {
+                return this.exactly(2);
+            },
+
+            thrice: function thrice() {
+                return this.exactly(3);
+            },
+
+            exactly: function exactly(num) {
+                if (typeof num != "number") {
+                    throw new TypeError("'" + num + "' is not a number");
+                }
+
+                this.atLeast(num);
+                return this.atMost(num);
+            },
+
+            met: function met() {
+                return !this.failed && receivedMinCalls(this);
+            },
+
+            verifyCallAllowed: function verifyCallAllowed(thisValue, args) {
+                if (receivedMaxCalls(this)) {
+                    this.failed = true;
+                    sinon.expectation.fail(this.method + " already called " + times(this.maxCalls));
+                }
+
+                if ("expectedThis" in this && this.expectedThis !== thisValue) {
+                    sinon.expectation.fail(this.method + " called with " + thisValue + " as thisValue, expected " +
+                        this.expectedThis);
+                }
+
+                if (!("expectedArguments" in this)) {
+                    return;
+                }
+
+                if (!args) {
+                    sinon.expectation.fail(this.method + " received no arguments, expected " +
+                        sinon.format(this.expectedArguments));
+                }
+
+                if (args.length < this.expectedArguments.length) {
+                    sinon.expectation.fail(this.method + " received too few arguments (" + sinon.format(args) +
+                        "), expected " + sinon.format(this.expectedArguments));
+                }
+
+                if (this.expectsExactArgCount &&
+                    args.length != this.expectedArguments.length) {
+                    sinon.expectation.fail(this.method + " received too many arguments (" + sinon.format(args) +
+                        "), expected " + sinon.format(this.expectedArguments));
+                }
+
+                for (var i = 0, l = this.expectedArguments.length; i < l; i += 1) {
+
+                    if (!verifyMatcher(this.expectedArguments[i],args[i])) {
+                        sinon.expectation.fail(this.method + " received wrong arguments " + sinon.format(args) +
+                            ", didn't match " + this.expectedArguments.toString());
+                    }
+
+                    if (!sinon.deepEqual(this.expectedArguments[i], args[i])) {
+                        sinon.expectation.fail(this.method + " received wrong arguments " + sinon.format(args) +
+                            ", expected " + sinon.format(this.expectedArguments));
+                    }
+                }
+            },
+
+            allowsCall: function allowsCall(thisValue, args) {
+                if (this.met() && receivedMaxCalls(this)) {
+                    return false;
+                }
+
+                if ("expectedThis" in this && this.expectedThis !== thisValue) {
+                    return false;
+                }
+
+                if (!("expectedArguments" in this)) {
+                    return true;
+                }
+
+                args = args || [];
+
+                if (args.length < this.expectedArguments.length) {
+                    return false;
+                }
+
+                if (this.expectsExactArgCount &&
+                    args.length != this.expectedArguments.length) {
+                    return false;
+                }
+
+                for (var i = 0, l = this.expectedArguments.length; i < l; i += 1) {
+                    if (!verifyMatcher(this.expectedArguments[i],args[i])) {
+                        return false;
+                    }
+
+                    if (!sinon.deepEqual(this.expectedArguments[i], args[i])) {
+                        return false;
+                    }
+                }
+
+                return true;
+            },
+
+            withArgs: function withArgs() {
+                this.expectedArguments = slice.call(arguments);
+                return this;
+            },
+
+            withExactArgs: function withExactArgs() {
+                this.withArgs.apply(this, arguments);
+                this.expectsExactArgCount = true;
+                return this;
+            },
+
+            on: function on(thisValue) {
+                this.expectedThis = thisValue;
+                return this;
+            },
+
+            toString: function () {
+                var args = (this.expectedArguments || []).slice();
+
+                if (!this.expectsExactArgCount) {
+                    push.call(args, "[...]");
+                }
+
+                var callStr = sinon.spyCall.toString.call({
+                    proxy: this.method || "anonymous mock expectation",
+                    args: args
+                });
+
+                var message = callStr.replace(", [...", "[, ...") + " " +
+                    expectedCallCountInWords(this);
+
+                if (this.met()) {
+                    return "Expectation met: " + message;
+                }
+
+                return "Expected " + message + " (" +
+                    callCountInWords(this.callCount) + ")";
+            },
+
+            verify: function verify() {
+                if (!this.met()) {
+                    sinon.expectation.fail(this.toString());
+                } else {
+                    sinon.expectation.pass(this.toString());
+                }
+
+                return true;
+            },
+
+            pass: function(message) {
+              sinon.assert.pass(message);
+            },
+            fail: function (message) {
+                var exception = new Error(message);
+                exception.name = "ExpectationError";
+
+                throw exception;
+            }
+        };
+    }());
+
+    if (commonJSModule) {
+        module.exports = mock;
+    } else {
+        sinon.mock = mock;
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend ../sinon.js
+ * @depend stub.js
+ * @depend mock.js
+ */
+/*jslint eqeqeq: false, onevar: false, forin: true*/
+/*global module, require, sinon*/
+/**
+ * Collections of stubs, spies and mocks.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+    var commonJSModule = typeof module !== 'undefined' && module.exports;
+    var push = [].push;
+    var hasOwnProperty = Object.prototype.hasOwnProperty;
+
+    if (!sinon && commonJSModule) {
+        sinon = require("../sinon");
+    }
+
+    if (!sinon) {
+        return;
+    }
+
+    function getFakes(fakeCollection) {
+        if (!fakeCollection.fakes) {
+            fakeCollection.fakes = [];
+        }
+
+        return fakeCollection.fakes;
+    }
+
+    function each(fakeCollection, method) {
+        var fakes = getFakes(fakeCollection);
+
+        for (var i = 0, l = fakes.length; i < l; i += 1) {
+            if (typeof fakes[i][method] == "function") {
+                fakes[i][method]();
+            }
+        }
+    }
+
+    function compact(fakeCollection) {
+        var fakes = getFakes(fakeCollection);
+        var i = 0;
+        while (i < fakes.length) {
+          fakes.splice(i, 1);
+        }
+    }
+
+    var collection = {
+        verify: function resolve() {
+            each(this, "verify");
+        },
+
+        restore: function restore() {
+            each(this, "restore");
+            compact(this);
+        },
+
+        verifyAndRestore: function verifyAndRestore() {
+            var exception;
+
+            try {
+                this.verify();
+            } catch (e) {
+                exception = e;
+            }
+
+            this.restore();
+
+            if (exception) {
+                throw exception;
+            }
+        },
+
+        add: function add(fake) {
+            push.call(getFakes(this), fake);
+            return fake;
+        },
+
+        spy: function spy() {
+            return this.add(sinon.spy.apply(sinon, arguments));
+        },
+
+        stub: function stub(object, property, value) {
+            if (property) {
+                var original = object[property];
+
+                if (typeof original != "function") {
+                    if (!hasOwnProperty.call(object, property)) {
+                        throw new TypeError("Cannot stub non-existent own property " + property);
+                    }
+
+                    object[property] = value;
+
+                    return this.add({
+                        restore: function () {
+                            object[property] = original;
+                        }
+                    });
+                }
+            }
+            if (!property && !!object && typeof object == "object") {
+                var stubbedObj = sinon.stub.apply(sinon, arguments);
+
+                for (var prop in stubbedObj) {
+                    if (typeof stubbedObj[prop] === "function") {
+                        this.add(stubbedObj[prop]);
+                    }
+                }
+
+                return stubbedObj;
+            }
+
+            return this.add(sinon.stub.apply(sinon, arguments));
+        },
+
+        mock: function mock() {
+            return this.add(sinon.mock.apply(sinon, arguments));
+        },
+
+        inject: function inject(obj) {
+            var col = this;
+
+            obj.spy = function () {
+                return col.spy.apply(col, arguments);
+            };
+
+            obj.stub = function () {
+                return col.stub.apply(col, arguments);
+            };
+
+            obj.mock = function () {
+                return col.mock.apply(col, arguments);
+            };
+
+            return obj;
+        }
+    };
+
+    if (commonJSModule) {
+        module.exports = collection;
+    } else {
+        sinon.collection = collection;
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/*jslint eqeqeq: false, plusplus: false, evil: true, onevar: false, browser: true, forin: false*/
+/*global module, require, window*/
+/**
+ * Fake timer API
+ * setTimeout
+ * setInterval
+ * clearTimeout
+ * clearInterval
+ * tick
+ * reset
+ * Date
+ *
+ * Inspired by jsUnitMockTimeOut from JsUnit
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+if (typeof sinon == "undefined") {
+    var sinon = {};
+}
+
+(function (global) {
+    var id = 1;
+
+    function addTimer(args, recurring) {
+        if (args.length === 0) {
+            throw new Error("Function requires at least 1 parameter");
+        }
+
+        if (typeof args[0] === "undefined") {
+            throw new Error("Callback must be provided to timer calls");
+        }
+
+        var toId = id++;
+        var delay = args[1] || 0;
+
+        if (!this.timeouts) {
+            this.timeouts = {};
+        }
+
+        this.timeouts[toId] = {
+            id: toId,
+            func: args[0],
+            callAt: this.now + delay,
+            invokeArgs: Array.prototype.slice.call(args, 2)
+        };
+
+        if (recurring === true) {
+            this.timeouts[toId].interval = delay;
+        }
+
+        return toId;
+    }
+
+    function parseTime(str) {
+        if (!str) {
+            return 0;
+        }
+
+        var strings = str.split(":");
+        var l = strings.length, i = l;
+        var ms = 0, parsed;
+
+        if (l > 3 || !/^(\d\d:){0,2}\d\d?$/.test(str)) {
+            throw new Error("tick only understands numbers and 'h:m:s'");
+        }
+
+        while (i--) {
+            parsed = parseInt(strings[i], 10);
+
+            if (parsed >= 60) {
+                throw new Error("Invalid time " + str);
+            }
+
+            ms += parsed * Math.pow(60, (l - i - 1));
+        }
+
+        return ms * 1000;
+    }
+
+    function createObject(object) {
+        var newObject;
+
+        if (Object.create) {
+            newObject = Object.create(object);
+        } else {
+            var F = function () {};
+            F.prototype = object;
+            newObject = new F();
+        }
+
+        newObject.Date.clock = newObject;
+        return newObject;
+    }
+
+    sinon.clock = {
+        now: 0,
+
+        create: function create(now) {
+            var clock = createObject(this);
+
+            if (typeof now == "number") {
+                clock.now = now;
+            }
+
+            if (!!now && typeof now == "object") {
+                throw new TypeError("now should be milliseconds since UNIX epoch");
+            }
+
+            return clock;
+        },
+
+        setTimeout: function setTimeout(callback, timeout) {
+            return addTimer.call(this, arguments, false);
+        },
+
+        clearTimeout: function clearTimeout(timerId) {
+            if (!this.timeouts) {
+                this.timeouts = [];
+            }
+
+            if (timerId in this.timeouts) {
+                delete this.timeouts[timerId];
+            }
+        },
+
+        setInterval: function setInterval(callback, timeout) {
+            return addTimer.call(this, arguments, true);
+        },
+
+        clearInterval: function clearInterval(timerId) {
+            this.clearTimeout(timerId);
+        },
+
+        setImmediate: function setImmediate(callback) {
+            var passThruArgs = Array.prototype.slice.call(arguments, 1);
+
+            return addTimer.call(this, [callback, 0].concat(passThruArgs), false);
+        },
+
+        clearImmediate: function clearImmediate(timerId) {
+            this.clearTimeout(timerId);
+        },
+
+        tick: function tick(ms) {
+            ms = typeof ms == "number" ? ms : parseTime(ms);
+            var tickFrom = this.now, tickTo = this.now + ms, previous = this.now;
+            var timer = this.firstTimerInRange(tickFrom, tickTo);
+
+            var firstException;
+            while (timer && tickFrom <= tickTo) {
+                if (this.timeouts[timer.id]) {
+                    tickFrom = this.now = timer.callAt;
+                    try {
+                      this.callTimer(timer);
+                    } catch (e) {
+                      firstException = firstException || e;
+                    }
+                }
+
+                timer = this.firstTimerInRange(previous, tickTo);
+                previous = tickFrom;
+            }
+
+            this.now = tickTo;
+
+            if (firstException) {
+              throw firstException;
+            }
+
+            return this.now;
+        },
+
+        firstTimerInRange: function (from, to) {
+            var timer, smallest = null, originalTimer;
+
+            for (var id in this.timeouts) {
+                if (this.timeouts.hasOwnProperty(id)) {
+                    if (this.timeouts[id].callAt < from || this.timeouts[id].callAt > to) {
+                        continue;
+                    }
+
+                    if (smallest === null || this.timeouts[id].callAt < smallest) {
+                        originalTimer = this.timeouts[id];
+                        smallest = this.timeouts[id].callAt;
+
+                        timer = {
+                            func: this.timeouts[id].func,
+                            callAt: this.timeouts[id].callAt,
+                            interval: this.timeouts[id].interval,
+                            id: this.timeouts[id].id,
+                            invokeArgs: this.timeouts[id].invokeArgs
+                        };
+                    }
+                }
+            }
+
+            return timer || null;
+        },
+
+        callTimer: function (timer) {
+            if (typeof timer.interval == "number") {
+                this.timeouts[timer.id].callAt += timer.interval;
+            } else {
+                delete this.timeouts[timer.id];
+            }
+
+            try {
+                if (typeof timer.func == "function") {
+                    timer.func.apply(null, timer.invokeArgs);
+                } else {
+                    eval(timer.func);
+                }
+            } catch (e) {
+              var exception = e;
+            }
+
+            if (!this.timeouts[timer.id]) {
+                if (exception) {
+                  throw exception;
+                }
+                return;
+            }
+
+            if (exception) {
+              throw exception;
+            }
+        },
+
+        reset: function reset() {
+            this.timeouts = {};
+        },
+
+        Date: (function () {
+            var NativeDate = Date;
+
+            function ClockDate(year, month, date, hour, minute, second, ms) {
+                // Defensive and verbose to avoid potential harm in passing
+                // explicit undefined when user does not pass argument
+                switch (arguments.length) {
+                case 0:
+                    return new NativeDate(ClockDate.clock.now);
+                case 1:
+                    return new NativeDate(year);
+                case 2:
+                    return new NativeDate(year, month);
+                case 3:
+                    return new NativeDate(year, month, date);
+                case 4:
+                    return new NativeDate(year, month, date, hour);
+                case 5:
+                    return new NativeDate(year, month, date, hour, minute);
+                case 6:
+                    return new NativeDate(year, month, date, hour, minute, second);
+                default:
+                    return new NativeDate(year, month, date, hour, minute, second, ms);
+                }
+            }
+
+            return mirrorDateProperties(ClockDate, NativeDate);
+        }())
+    };
+
+    function mirrorDateProperties(target, source) {
+        if (source.now) {
+            target.now = function now() {
+                return target.clock.now;
+            };
+        } else {
+            delete target.now;
+        }
+
+        if (source.toSource) {
+            target.toSource = function toSource() {
+                return source.toSource();
+            };
+        } else {
+            delete target.toSource;
+        }
+
+        target.toString = function toString() {
+            return source.toString();
+        };
+
+        target.prototype = source.prototype;
+        target.parse = source.parse;
+        target.UTC = source.UTC;
+        target.prototype.toUTCString = source.prototype.toUTCString;
+
+        for (var prop in source) {
+            if (source.hasOwnProperty(prop)) {
+                target[prop] = source[prop];
+            }
+        }
+
+        return target;
+    }
+
+    var methods = ["Date", "setTimeout", "setInterval",
+                   "clearTimeout", "clearInterval"];
+
+    if (typeof global.setImmediate !== "undefined") {
+        methods.push("setImmediate");
+    }
+
+    if (typeof global.clearImmediate !== "undefined") {
+        methods.push("clearImmediate");
+    }
+
+    function restore() {
+        var method;
+
+        for (var i = 0, l = this.methods.length; i < l; i++) {
+            method = this.methods[i];
+
+            if (global[method].hadOwnProperty) {
+                global[method] = this["_" + method];
+            } else {
+                try {
+                    delete global[method];
+                } catch (e) {}
+            }
+        }
+
+        // Prevent multiple executions which will completely remove these props
+        this.methods = [];
+    }
+
+    function stubGlobal(method, clock) {
+        clock[method].hadOwnProperty = Object.prototype.hasOwnProperty.call(global, method);
+        clock["_" + method] = global[method];
+
+        if (method == "Date") {
+            var date = mirrorDateProperties(clock[method], global[method]);
+            global[method] = date;
+        } else {
+            global[method] = function () {
+                return clock[method].apply(clock, arguments);
+            };
+
+            for (var prop in clock[method]) {
+                if (clock[method].hasOwnProperty(prop)) {
+                    global[method][prop] = clock[method][prop];
+                }
+            }
+        }
+
+        global[method].clock = clock;
+    }
+
+    sinon.useFakeTimers = function useFakeTimers(now) {
+        var clock = sinon.clock.create(now);
+        clock.restore = restore;
+        clock.methods = Array.prototype.slice.call(arguments,
+                                                   typeof now == "number" ? 1 : 0);
+
+        if (clock.methods.length === 0) {
+            clock.methods = methods;
+        }
+
+        for (var i = 0, l = clock.methods.length; i < l; i++) {
+            stubGlobal(clock.methods[i], clock);
+        }
+
+        return clock;
+    };
+}(typeof global != "undefined" && typeof global !== "function" ? global : this));
+
+sinon.timers = {
+    setTimeout: setTimeout,
+    clearTimeout: clearTimeout,
+    setImmediate: (typeof setImmediate !== "undefined" ? setImmediate : undefined),
+    clearImmediate: (typeof clearImmediate !== "undefined" ? clearImmediate: undefined),
+    setInterval: setInterval,
+    clearInterval: clearInterval,
+    Date: Date
+};
+
+if (typeof module !== 'undefined' && module.exports) {
+    module.exports = sinon;
+}
+
+/*jslint eqeqeq: false, onevar: false*/
+/*global sinon, module, require, ActiveXObject, XMLHttpRequest, DOMParser*/
+/**
+ * Minimal Event interface implementation
+ *
+ * Original implementation by Sven Fuchs: https://gist.github.com/995028
+ * Modifications and tests by Christian Johansen.
+ *
+ * @author Sven Fuchs (svenfuchs@artweb-design.de)
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2011 Sven Fuchs, Christian Johansen
+ */
+
+if (typeof sinon == "undefined") {
+    this.sinon = {};
+}
+
+(function () {
+    var push = [].push;
+
+    sinon.Event = function Event(type, bubbles, cancelable, target) {
+        this.initEvent(type, bubbles, cancelable, target);
+    };
+
+    sinon.Event.prototype = {
+        initEvent: function(type, bubbles, cancelable, target) {
+            this.type = type;
+            this.bubbles = bubbles;
+            this.cancelable = cancelable;
+            this.target = target;
+        },
+
+        stopPropagation: function () {},
+
+        preventDefault: function () {
+            this.defaultPrevented = true;
+        }
+    };
+
+    sinon.ProgressEvent = function ProgressEvent(type, progressEventRaw, target) {
+        this.initEvent(type, false, false, target);
+        this.loaded = progressEventRaw.loaded || null;
+        this.total = progressEventRaw.total || null;
+    };
+
+    sinon.ProgressEvent.prototype = new sinon.Event();
+
+    sinon.ProgressEvent.prototype.constructor =  sinon.ProgressEvent;
+
+    sinon.CustomEvent = function CustomEvent(type, customData, target) {
+        this.initEvent(type, false, false, target);
+        this.detail = customData.detail || null;
+    };
+
+    sinon.CustomEvent.prototype = new sinon.Event();
+
+    sinon.CustomEvent.prototype.constructor =  sinon.CustomEvent;
+
+    sinon.EventTarget = {
+        addEventListener: function addEventListener(event, listener) {
+            this.eventListeners = this.eventListeners || {};
+            this.eventListeners[event] = this.eventListeners[event] || [];
+            push.call(this.eventListeners[event], listener);
+        },
+
+        removeEventListener: function removeEventListener(event, listener) {
+            var listeners = this.eventListeners && this.eventListeners[event] || [];
+
+            for (var i = 0, l = listeners.length; i < l; ++i) {
+                if (listeners[i] == listener) {
+                    return listeners.splice(i, 1);
+                }
+            }
+        },
+
+        dispatchEvent: function dispatchEvent(event) {
+            var type = event.type;
+            var listeners = this.eventListeners && this.eventListeners[type] || [];
+
+            for (var i = 0; i < listeners.length; i++) {
+                if (typeof listeners[i] == "function") {
+                    listeners[i].call(this, event);
+                } else {
+                    listeners[i].handleEvent(event);
+                }
+            }
+
+            return !!event.defaultPrevented;
+        }
+    };
+}());
+
+/**
+ * @depend ../../sinon.js
+ * @depend event.js
+ */
+/*jslint eqeqeq: false, onevar: false*/
+/*global sinon, module, require, ActiveXObject, XMLHttpRequest, DOMParser*/
+/**
+ * Fake XMLHttpRequest object
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+// wrapper for global
+(function(global) {
+    if (typeof sinon === "undefined") {
+        global.sinon = {};
+    }
+
+    var supportsProgress = typeof ProgressEvent !== "undefined";
+    var supportsCustomEvent = typeof CustomEvent !== "undefined";
+    sinon.xhr = { XMLHttpRequest: global.XMLHttpRequest };
+    var xhr = sinon.xhr;
+    xhr.GlobalXMLHttpRequest = global.XMLHttpRequest;
+    xhr.GlobalActiveXObject = global.ActiveXObject;
+    xhr.supportsActiveX = typeof xhr.GlobalActiveXObject != "undefined";
+    xhr.supportsXHR = typeof xhr.GlobalXMLHttpRequest != "undefined";
+    xhr.workingXHR = xhr.supportsXHR ? xhr.GlobalXMLHttpRequest : xhr.supportsActiveX
+                                     ? function() { return new xhr.GlobalActiveXObject("MSXML2.XMLHTTP.3.0") } : false;
+    xhr.supportsCORS = 'withCredentials' in (new sinon.xhr.GlobalXMLHttpRequest());
+
+    /*jsl:ignore*/
+    var unsafeHeaders = {
+        "Accept-Charset": true,
+        "Accept-Encoding": true,
+        "Connection": true,
+        "Content-Length": true,
+        "Cookie": true,
+        "Cookie2": true,
+        "Content-Transfer-Encoding": true,
+        "Date": true,
+        "Expect": true,
+        "Host": true,
+        "Keep-Alive": true,
+        "Referer": true,
+        "TE": true,
+        "Trailer": true,
+        "Transfer-Encoding": true,
+        "Upgrade": true,
+        "User-Agent": true,
+        "Via": true
+    };
+    /*jsl:end*/
+
+    function FakeXMLHttpRequest() {
+        this.readyState = FakeXMLHttpRequest.UNSENT;
+        this.requestHeaders = {};
+        this.requestBody = null;
+        this.status = 0;
+        this.statusText = "";
+        this.upload = new UploadProgress();
+        if (sinon.xhr.supportsCORS) {
+            this.withCredentials = false;
+        }
+
+
+        var xhr = this;
+        var events = ["loadstart", "load", "abort", "loadend"];
+
+        function addEventListener(eventName) {
+            xhr.addEventListener(eventName, function (event) {
+                var listener = xhr["on" + eventName];
+
+                if (listener && typeof listener == "function") {
+                    listener.call(this, event);
+                }
+            });
+        }
+
+        for (var i = events.length - 1; i >= 0; i--) {
+            addEventListener(events[i]);
+        }
+
+        if (typeof FakeXMLHttpRequest.onCreate == "function") {
+            FakeXMLHttpRequest.onCreate(this);
+        }
+    }
+
+    // An upload object is created for each
+    // FakeXMLHttpRequest and allows upload
+    // events to be simulated using uploadProgress
+    // and uploadError.
+    function UploadProgress() {
+        this.eventListeners = {
+            "progress": [],
+            "load": [],
+            "abort": [],
+            "error": []
+        }
+    }
+
+    UploadProgress.prototype.addEventListener = function(event, listener) {
+        this.eventListeners[event].push(listener);
+    };
+
+    UploadProgress.prototype.removeEventListener = function(event, listener) {
+        var listeners = this.eventListeners[event] || [];
+
+        for (var i = 0, l = listeners.length; i < l; ++i) {
+            if (listeners[i] == listener) {
+                return listeners.splice(i, 1);
+            }
+        }
+    };
+
+    UploadProgress.prototype.dispatchEvent = function(event) {
+        var listeners = this.eventListeners[event.type] || [];
+
+        for (var i = 0, listener; (listener = listeners[i]) != null; i++) {
+            listener(event);
+        }
+    };
+
+    function verifyState(xhr) {
+        if (xhr.readyState !== FakeXMLHttpRequest.OPENED) {
+            throw new Error("INVALID_STATE_ERR");
+        }
+
+        if (xhr.sendFlag) {
+            throw new Error("INVALID_STATE_ERR");
+        }
+    }
+
+    // filtering to enable a white-list version of Sinon FakeXhr,
+    // where whitelisted requests are passed through to real XHR
+    function each(collection, callback) {
+        if (!collection) return;
+        for (var i = 0, l = collection.length; i < l; i += 1) {
+            callback(collection[i]);
+        }
+    }
+    function some(collection, callback) {
+        for (var index = 0; index < collection.length; index++) {
+            if(callback(collection[index]) === true) return true;
+        }
+        return false;
+    }
+    // largest arity in XHR is 5 - XHR#open
+    var apply = function(obj,method,args) {
+        switch(args.length) {
+        case 0: return obj[method]();
+        case 1: return obj[method](args[0]);
+        case 2: return obj[method](args[0],args[1]);
+        case 3: return obj[method](args[0],args[1],args[2]);
+        case 4: return obj[method](args[0],args[1],args[2],args[3]);
+        case 5: return obj[method](args[0],args[1],args[2],args[3],args[4]);
+        }
+    };
+
+    FakeXMLHttpRequest.filters = [];
+    FakeXMLHttpRequest.addFilter = function(fn) {
+        this.filters.push(fn)
+    };
+    var IE6Re = /MSIE 6/;
+    FakeXMLHttpRequest.defake = function(fakeXhr,xhrArgs) {
+        var xhr = new sinon.xhr.workingXHR();
+        each(["open","setRequestHeader","send","abort","getResponseHeader",
+              "getAllResponseHeaders","addEventListener","overrideMimeType","removeEventListener"],
+             function(method) {
+                 fakeXhr[method] = function() {
+                   return apply(xhr,method,arguments);
+                 };
+             });
+
+        var copyAttrs = function(args) {
+            each(args, function(attr) {
+              try {
+                fakeXhr[attr] = xhr[attr]
+              } catch(e) {
+                if(!IE6Re.test(navigator.userAgent)) throw e;
+              }
+            });
+        };
+
+        var stateChange = function() {
+            fakeXhr.readyState = xhr.readyState;
+            if(xhr.readyState >= FakeXMLHttpRequest.HEADERS_RECEIVED) {
+                copyAttrs(["status","statusText"]);
+            }
+            if(xhr.readyState >= FakeXMLHttpRequest.LOADING) {
+                copyAttrs(["responseText"]);
+            }
+            if(xhr.readyState === FakeXMLHttpRequest.DONE) {
+                copyAttrs(["responseXML"]);
+            }
+            if(fakeXhr.onreadystatechange) fakeXhr.onreadystatechange.call(fakeXhr, { target: fakeXhr });
+        };
+        if(xhr.addEventListener) {
+          for(var event in fakeXhr.eventListeners) {
+              if(fakeXhr.eventListeners.hasOwnProperty(event)) {
+                  each(fakeXhr.eventListeners[event],function(handler) {
+                      xhr.addEventListener(event, handler);
+                  });
+              }
+          }
+          xhr.addEventListener("readystatechange",stateChange);
+        } else {
+          xhr.onreadystatechange = stateChange;
+        }
+        apply(xhr,"open",xhrArgs);
+    };
+    FakeXMLHttpRequest.useFilters = false;
+
+    function verifyRequestOpened(xhr) {
+        if (xhr.readyState != FakeXMLHttpRequest.OPENED) {
+            throw new Error("INVALID_STATE_ERR - " + xhr.readyState);
+        }
+    }
+
+    function verifyRequestSent(xhr) {
+        if (xhr.readyState == FakeXMLHttpRequest.DONE) {
+            throw new Error("Request done");
+        }
+    }
+
+    function verifyHeadersReceived(xhr) {
+        if (xhr.async && xhr.readyState != FakeXMLHttpRequest.HEADERS_RECEIVED) {
+            throw new Error("No headers received");
+        }
+    }
+
+    function verifyResponseBodyType(body) {
+        if (typeof body != "string") {
+            var error = new Error("Attempted to respond to fake XMLHttpRequest with " +
+                                 body + ", which is not a string.");
+            error.name = "InvalidBodyException";
+            throw error;
+        }
+    }
+
+    sinon.extend(FakeXMLHttpRequest.prototype, sinon.EventTarget, {
+        async: true,
+
+        open: function open(method, url, async, username, password) {
+            this.method = method;
+            this.url = url;
+            this.async = typeof async == "boolean" ? async : true;
+            this.username = username;
+            this.password = password;
+            this.responseText = null;
+            this.responseXML = null;
+            this.requestHeaders = {};
+            this.sendFlag = false;
+            if(sinon.FakeXMLHttpRequest.useFilters === true) {
+                var xhrArgs = arguments;
+                var defake = some(FakeXMLHttpRequest.filters,function(filter) {
+                    return filter.apply(this,xhrArgs)
+                });
+                if (defake) {
+                  return sinon.FakeXMLHttpRequest.defake(this,arguments);
+                }
+            }
+            this.readyStateChange(FakeXMLHttpRequest.OPENED);
+        },
+
+        readyStateChange: function readyStateChange(state) {
+            this.readyState = state;
+
+            if (typeof this.onreadystatechange == "function") {
+                try {
+                    this.onreadystatechange();
+                } catch (e) {
+                    sinon.logError("Fake XHR onreadystatechange handler", e);
+                }
+            }
+
+            this.dispatchEvent(new sinon.Event("readystatechange"));
+
+            switch (this.readyState) {
+                case FakeXMLHttpRequest.DONE:
+                    this.dispatchEvent(new sinon.Event("load", false, false, this));
+                    this.dispatchEvent(new sinon.Event("loadend", false, false, this));
+                    this.upload.dispatchEvent(new sinon.Event("load", false, false, this));
+                    if (supportsProgress) {
+                        this.upload.dispatchEvent(new sinon.ProgressEvent('progress', {loaded: 100, total: 100}));
+                    }
+                    break;
+            }
+        },
+
+        setRequestHeader: function setRequestHeader(header, value) {
+            verifyState(this);
+
+            if (unsafeHeaders[header] || /^(Sec-|Proxy-)/.test(header)) {
+                throw new Error("Refused to set unsafe header \"" + header + "\"");
+            }
+
+            if (this.requestHeaders[header]) {
+                this.requestHeaders[header] += "," + value;
+            } else {
+                this.requestHeaders[header] = value;
+            }
+        },
+
+        // Helps testing
+        setResponseHeaders: function setResponseHeaders(headers) {
+            verifyRequestOpened(this);
+            this.responseHeaders = {};
+
+            for (var header in headers) {
+                if (headers.hasOwnProperty(header)) {
+                    this.responseHeaders[header] = headers[header];
+                }
+            }
+
+            if (this.async) {
+                this.readyStateChange(FakeXMLHttpRequest.HEADERS_RECEIVED);
+            } else {
+                this.readyState = FakeXMLHttpRequest.HEADERS_RECEIVED;
+            }
+        },
+
+        // Currently treats ALL data as a DOMString (i.e. no Document)
+        send: function send(data) {
+            verifyState(this);
+
+            if (!/^(get|head)$/i.test(this.method)) {
+                if (this.requestHeaders["Content-Type"]) {
+                    var value = this.requestHeaders["Content-Type"].split(";");
+                    this.requestHeaders["Content-Type"] = value[0] + ";charset=utf-8";
+                } else {
+                    this.requestHeaders["Content-Type"] = "text/plain;charset=utf-8";
+                }
+
+                this.requestBody = data;
+            }
+
+            this.errorFlag = false;
+            this.sendFlag = this.async;
+            this.readyStateChange(FakeXMLHttpRequest.OPENED);
+
+            if (typeof this.onSend == "function") {
+                this.onSend(this);
+            }
+
+            this.dispatchEvent(new sinon.Event("loadstart", false, false, this));
+        },
+
+        abort: function abort() {
+            this.aborted = true;
+            this.responseText = null;
+            this.errorFlag = true;
+            this.requestHeaders = {};
+
+            if (this.readyState > sinon.FakeXMLHttpRequest.UNSENT && this.sendFlag) {
+                this.readyStateChange(sinon.FakeXMLHttpRequest.DONE);
+                this.sendFlag = false;
+            }
+
+            this.readyState = sinon.FakeXMLHttpRequest.UNSENT;
+
+            this.dispatchEvent(new sinon.Event("abort", false, false, this));
+
+            this.upload.dispatchEvent(new sinon.Event("abort", false, false, this));
+
+            if (typeof this.onerror === "function") {
+                this.onerror();
+            }
+        },
+
+        getResponseHeader: function getResponseHeader(header) {
+            if (this.readyState < FakeXMLHttpRequest.HEADERS_RECEIVED) {
+                return null;
+            }
+
+            if (/^Set-Cookie2?$/i.test(header)) {
+                return null;
+            }
+
+            header = header.toLowerCase();
+
+            for (var h in this.responseHeaders) {
+                if (h.toLowerCase() == header) {
+                    return this.responseHeaders[h];
+                }
+            }
+
+            return null;
+        },
+
+        getAllResponseHeaders: function getAllResponseHeaders() {
+            if (this.readyState < FakeXMLHttpRequest.HEADERS_RECEIVED) {
+                return "";
+            }
+
+            var headers = "";
+
+            for (var header in this.responseHeaders) {
+                if (this.responseHeaders.hasOwnProperty(header) &&
+                    !/^Set-Cookie2?$/i.test(header)) {
+                    headers += header + ": " + this.responseHeaders[header] + "\r\n";
+                }
+            }
+
+            return headers;
+        },
+
+        setResponseBody: function setResponseBody(body) {
+            verifyRequestSent(this);
+            verifyHeadersReceived(this);
+            verifyResponseBodyType(body);
+
+            var chunkSize = this.chunkSize || 10;
+            var index = 0;
+            this.responseText = "";
+
+            do {
+                if (this.async) {
+                    this.readyStateChange(FakeXMLHttpRequest.LOADING);
+                }
+
+                this.responseText += body.substring(index, index + chunkSize);
+                index += chunkSize;
+            } while (index < body.length);
+
+            var type = this.getResponseHeader("Content-Type");
+
+            if (this.responseText &&
+                (!type || /(text\/xml)|(application\/xml)|(\+xml)/.test(type))) {
+                try {
+                    this.responseXML = FakeXMLHttpRequest.parseXML(this.responseText);
+                } catch (e) {
+                    // Unable to parse XML - no biggie
+                }
+            }
+
+            if (this.async) {
+                this.readyStateChange(FakeXMLHttpRequest.DONE);
+            } else {
+                this.readyState = FakeXMLHttpRequest.DONE;
+            }
+        },
+
+        respond: function respond(status, headers, body) {
+            this.status = typeof status == "number" ? status : 200;
+            this.statusText = FakeXMLHttpRequest.statusCodes[this.status];
+            this.setResponseHeaders(headers || {});
+            this.setResponseBody(body || "");
+        },
+
+        uploadProgress: function uploadProgress(progressEventRaw) {
+            if (supportsProgress) {
+                this.upload.dispatchEvent(new sinon.ProgressEvent("progress", progressEventRaw));
+            }
+        },
+
+        uploadError: function uploadError(error) {
+            if (supportsCustomEvent) {
+                this.upload.dispatchEvent(new sinon.CustomEvent("error", {"detail": error}));
+            }
+        }
+    });
+
+    sinon.extend(FakeXMLHttpRequest, {
+        UNSENT: 0,
+        OPENED: 1,
+        HEADERS_RECEIVED: 2,
+        LOADING: 3,
+        DONE: 4
+    });
+
+    // Borrowed from JSpec
+    FakeXMLHttpRequest.parseXML = function parseXML(text) {
+        var xmlDoc;
+
+        if (typeof DOMParser != "undefined") {
+            var parser = new DOMParser();
+            xmlDoc = parser.parseFromString(text, "text/xml");
+        } else {
+            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
+            xmlDoc.async = "false";
+            xmlDoc.loadXML(text);
+        }
+
+        return xmlDoc;
+    };
+
+    FakeXMLHttpRequest.statusCodes = {
+        100: "Continue",
+        101: "Switching Protocols",
+        200: "OK",
+        201: "Created",
+        202: "Accepted",
+        203: "Non-Authoritative Information",
+        204: "No Content",
+        205: "Reset Content",
+        206: "Partial Content",
+        300: "Multiple Choice",
+        301: "Moved Permanently",
+        302: "Found",
+        303: "See Other",
+        304: "Not Modified",
+        305: "Use Proxy",
+        307: "Temporary Redirect",
+        400: "Bad Request",
+        401: "Unauthorized",
+        402: "Payment Required",
+        403: "Forbidden",
+        404: "Not Found",
+        405: "Method Not Allowed",
+        406: "Not Acceptable",
+        407: "Proxy Authentication Required",
+        408: "Request Timeout",
+        409: "Conflict",
+        410: "Gone",
+        411: "Length Required",
+        412: "Precondition Failed",
+        413: "Request Entity Too Large",
+        414: "Request-URI Too Long",
+        415: "Unsupported Media Type",
+        416: "Requested Range Not Satisfiable",
+        417: "Expectation Failed",
+        422: "Unprocessable Entity",
+        500: "Internal Server Error",
+        501: "Not Implemented",
+        502: "Bad Gateway",
+        503: "Service Unavailable",
+        504: "Gateway Timeout",
+        505: "HTTP Version Not Supported"
+    };
+
+    sinon.useFakeXMLHttpRequest = function () {
+        sinon.FakeXMLHttpRequest.restore = function restore(keepOnCreate) {
+            if (xhr.supportsXHR) {
+                global.XMLHttpRequest = xhr.GlobalXMLHttpRequest;
+            }
+
+            if (xhr.supportsActiveX) {
+                global.ActiveXObject = xhr.GlobalActiveXObject;
+            }
+
+            delete sinon.FakeXMLHttpRequest.restore;
+
+            if (keepOnCreate !== true) {
+                delete sinon.FakeXMLHttpRequest.onCreate;
+            }
+        };
+        if (xhr.supportsXHR) {
+            global.XMLHttpRequest = sinon.FakeXMLHttpRequest;
+        }
+
+        if (xhr.supportsActiveX) {
+            global.ActiveXObject = function ActiveXObject(objId) {
+                if (objId == "Microsoft.XMLHTTP" || /^Msxml2\.XMLHTTP/i.test(objId)) {
+
+                    return new sinon.FakeXMLHttpRequest();
+                }
+
+                return new xhr.GlobalActiveXObject(objId);
+            };
+        }
+
+        return sinon.FakeXMLHttpRequest;
+    };
+
+    sinon.FakeXMLHttpRequest = FakeXMLHttpRequest;
+
+})(typeof global === "object" ? global : this);
+
+if (typeof module !== 'undefined' && module.exports) {
+    module.exports = sinon;
+}
+
+/**
+ * @depend fake_xml_http_request.js
+ */
+/*jslint eqeqeq: false, onevar: false, regexp: false, plusplus: false*/
+/*global module, require, window*/
+/**
+ * The Sinon "server" mimics a web server that receives requests from
+ * sinon.FakeXMLHttpRequest and provides an API to respond to those requests,
+ * both synchronously and asynchronously. To respond synchronuously, canned
+ * answers have to be provided upfront.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+if (typeof sinon == "undefined") {
+    var sinon = {};
+}
+
+sinon.fakeServer = (function () {
+    var push = [].push;
+    function F() {}
+
+    function create(proto) {
+        F.prototype = proto;
+        return new F();
+    }
+
+    function responseArray(handler) {
+        var response = handler;
+
+        if (Object.prototype.toString.call(handler) != "[object Array]") {
+            response = [200, {}, handler];
+        }
+
+        if (typeof response[2] != "string") {
+            throw new TypeError("Fake server response body should be string, but was " +
+                                typeof response[2]);
+        }
+
+        return response;
+    }
+
+    var wloc = typeof window !== "undefined" ? window.location : {};
+    var rCurrLoc = new RegExp("^" + wloc.protocol + "//" + wloc.host);
+
+    function matchOne(response, reqMethod, reqUrl) {
+        var rmeth = response.method;
+        var matchMethod = !rmeth || rmeth.toLowerCase() == reqMethod.toLowerCase();
+        var url = response.url;
+        var matchUrl = !url || url == reqUrl || (typeof url.test == "function" && url.test(reqUrl));
+
+        return matchMethod && matchUrl;
+    }
+
+    function match(response, request) {
+        var requestUrl = request.url;
+
+        if (!/^https?:\/\//.test(requestUrl) || rCurrLoc.test(requestUrl)) {
+            requestUrl = requestUrl.replace(rCurrLoc, "");
+        }
+
+        if (matchOne(response, this.getHTTPMethod(request), requestUrl)) {
+            if (typeof response.response == "function") {
+                var ru = response.url;
+                var args = [request].concat(ru && typeof ru.exec == "function" ? ru.exec(requestUrl).slice(1) : []);
+                return response.response.apply(response, args);
+            }
+
+            return true;
+        }
+
+        return false;
+    }
+
+    function log(response, request) {
+        var str;
+
+        str =  "Request:\n"  + sinon.format(request)  + "\n\n";
+        str += "Response:\n" + sinon.format(response) + "\n\n";
+
+        sinon.log(str);
+    }
+
+    return {
+        create: function () {
+            var server = create(this);
+            this.xhr = sinon.useFakeXMLHttpRequest();
+            server.requests = [];
+
+            this.xhr.onCreate = function (xhrObj) {
+                server.addRequest(xhrObj);
+            };
+
+            return server;
+        },
+
+        addRequest: function addRequest(xhrObj) {
+            var server = this;
+            push.call(this.requests, xhrObj);
+
+            xhrObj.onSend = function () {
+                server.handleRequest(this);
+
+                if (server.autoRespond && !server.responding) {
+                    setTimeout(function () {
+                        server.responding = false;
+                        server.respond();
+                    }, server.autoRespondAfter || 10);
+
+                    server.responding = true;
+                }
+            };
+        },
+
+        getHTTPMethod: function getHTTPMethod(request) {
+            if (this.fakeHTTPMethods && /post/i.test(request.method)) {
+                var matches = (request.requestBody || "").match(/_method=([^\b;]+)/);
+                return !!matches ? matches[1] : request.method;
+            }
+
+            return request.method;
+        },
+
+        handleRequest: function handleRequest(xhr) {
+            if (xhr.async) {
+                if (!this.queue) {
+                    this.queue = [];
+                }
+
+                push.call(this.queue, xhr);
+            } else {
+                this.processRequest(xhr);
+            }
+        },
+
+        respondWith: function respondWith(method, url, body) {
+            if (arguments.length == 1 && typeof method != "function") {
+                this.response = responseArray(method);
+                return;
+            }
+
+            if (!this.responses) { this.responses = []; }
+
+            if (arguments.length == 1) {
+                body = method;
+                url = method = null;
+            }
+
+            if (arguments.length == 2) {
+                body = url;
+                url = method;
+                method = null;
+            }
+
+            push.call(this.responses, {
+                method: method,
+                url: url,
+                response: typeof body == "function" ? body : responseArray(body)
+            });
+        },
+
+        respond: function respond() {
+            if (arguments.length > 0) this.respondWith.apply(this, arguments);
+            var queue = this.queue || [];
+            var requests = queue.splice(0);
+            var request;
+
+            while(request = requests.shift()) {
+                this.processRequest(request);
+            }
+        },
+
+        processRequest: function processRequest(request) {
+            try {
+                if (request.aborted) {
+                    return;
+                }
+
+                var response = this.response || [404, {}, ""];
+
+                if (this.responses) {
+                    for (var l = this.responses.length, i = l - 1; i >= 0; i--) {
+                        if (match.call(this, this.responses[i], request)) {
+                            response = this.responses[i].response;
+                            break;
+                        }
+                    }
+                }
+
+                if (request.readyState != 4) {
+                    log(response, request);
+
+                    request.respond(response[0], response[1], response[2]);
+                }
+            } catch (e) {
+                sinon.logError("Fake server request processing", e);
+            }
+        },
+
+        restore: function restore() {
+            return this.xhr.restore && this.xhr.restore.apply(this.xhr, arguments);
+        }
+    };
+}());
+
+if (typeof module !== 'undefined' && module.exports) {
+    module.exports = sinon;
+}
+
+/**
+ * @depend fake_server.js
+ * @depend fake_timers.js
+ */
+/*jslint browser: true, eqeqeq: false, onevar: false*/
+/*global sinon*/
+/**
+ * Add-on for sinon.fakeServer that automatically handles a fake timer along with
+ * the FakeXMLHttpRequest. The direct inspiration for this add-on is jQuery
+ * 1.3.x, which does not use xhr object's onreadystatehandler at all - instead,
+ * it polls the object for completion with setInterval. Dispite the direct
+ * motivation, there is nothing jQuery-specific in this file, so it can be used
+ * in any environment where the ajax implementation depends on setInterval or
+ * setTimeout.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function () {
+    function Server() {}
+    Server.prototype = sinon.fakeServer;
+
+    sinon.fakeServerWithClock = new Server();
+
+    sinon.fakeServerWithClock.addRequest = function addRequest(xhr) {
+        if (xhr.async) {
+            if (typeof setTimeout.clock == "object") {
+                this.clock = setTimeout.clock;
+            } else {
+                this.clock = sinon.useFakeTimers();
+                this.resetClock = true;
+            }
+
+            if (!this.longestTimeout) {
+                var clockSetTimeout = this.clock.setTimeout;
+                var clockSetInterval = this.clock.setInterval;
+                var server = this;
+
+                this.clock.setTimeout = function (fn, timeout) {
+                    server.longestTimeout = Math.max(timeout, server.longestTimeout || 0);
+
+                    return clockSetTimeout.apply(this, arguments);
+                };
+
+                this.clock.setInterval = function (fn, timeout) {
+                    server.longestTimeout = Math.max(timeout, server.longestTimeout || 0);
+
+                    return clockSetInterval.apply(this, arguments);
+                };
+            }
+        }
+
+        return sinon.fakeServer.addRequest.call(this, xhr);
+    };
+
+    sinon.fakeServerWithClock.respond = function respond() {
+        var returnVal = sinon.fakeServer.respond.apply(this, arguments);
+
+        if (this.clock) {
+            this.clock.tick(this.longestTimeout || 0);
+            this.longestTimeout = 0;
+
+            if (this.resetClock) {
+                this.clock.restore();
+                this.resetClock = false;
+            }
+        }
+
+        return returnVal;
+    };
+
+    sinon.fakeServerWithClock.restore = function restore() {
+        if (this.clock) {
+            this.clock.restore();
+        }
+
+        return sinon.fakeServer.restore.apply(this, arguments);
+    };
+}());
+
+/**
+ * @depend ../sinon.js
+ * @depend collection.js
+ * @depend util/fake_timers.js
+ * @depend util/fake_server_with_clock.js
+ */
+/*jslint eqeqeq: false, onevar: false, plusplus: false*/
+/*global require, module*/
+/**
+ * Manages fake collections as well as fake utilities such as Sinon's
+ * timers and fake XHR implementation in one convenient object.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+if (typeof module !== 'undefined' && module.exports) {
+    var sinon = require("../sinon");
+    sinon.extend(sinon, require("./util/fake_timers"));
+}
+
+(function () {
+    var push = [].push;
+
+    function exposeValue(sandbox, config, key, value) {
+        if (!value) {
+            return;
+        }
+
+        if (config.injectInto && !(key in config.injectInto)) {
+            config.injectInto[key] = value;
+            sandbox.injectedKeys.push(key);
+        } else {
+            push.call(sandbox.args, value);
+        }
+    }
+
+    function prepareSandboxFromConfig(config) {
+        var sandbox = sinon.create(sinon.sandbox);
+
+        if (config.useFakeServer) {
+            if (typeof config.useFakeServer == "object") {
+                sandbox.serverPrototype = config.useFakeServer;
+            }
+
+            sandbox.useFakeServer();
+        }
+
+        if (config.useFakeTimers) {
+            if (typeof config.useFakeTimers == "object") {
+                sandbox.useFakeTimers.apply(sandbox, config.useFakeTimers);
+            } else {
+                sandbox.useFakeTimers();
+            }
+        }
+
+        return sandbox;
+    }
+
+    sinon.sandbox = sinon.extend(sinon.create(sinon.collection), {
+        useFakeTimers: function useFakeTimers() {
+            this.clock = sinon.useFakeTimers.apply(sinon, arguments);
+
+            return this.add(this.clock);
+        },
+
+        serverPrototype: sinon.fakeServer,
+
+        useFakeServer: function useFakeServer() {
+            var proto = this.serverPrototype || sinon.fakeServer;
+
+            if (!proto || !proto.create) {
+                return null;
+            }
+
+            this.server = proto.create();
+            return this.add(this.server);
+        },
+
+        inject: function (obj) {
+            sinon.collection.inject.call(this, obj);
+
+            if (this.clock) {
+                obj.clock = this.clock;
+            }
+
+            if (this.server) {
+                obj.server = this.server;
+                obj.requests = this.server.requests;
+            }
+
+            return obj;
+        },
+
+        restore: function () {
+            sinon.collection.restore.apply(this, arguments);
+            this.restoreContext();
+        },
+
+        restoreContext: function () {
+            if (this.injectedKeys) {
+                for (var i = 0, j = this.injectedKeys.length; i < j; i++) {
+                    delete this.injectInto[this.injectedKeys[i]];
+                }
+                this.injectedKeys = [];
+            }
+        },
+
+        create: function (config) {
+            if (!config) {
+                return sinon.create(sinon.sandbox);
+            }
+
+            var sandbox = prepareSandboxFromConfig(config);
+            sandbox.args = sandbox.args || [];
+            sandbox.injectedKeys = [];
+            sandbox.injectInto = config.injectInto;
+            var prop, value, exposed = sandbox.inject({});
+
+            if (config.properties) {
+                for (var i = 0, l = config.properties.length; i < l; i++) {
+                    prop = config.properties[i];
+                    value = exposed[prop] || prop == "sandbox" && sandbox;
+                    exposeValue(sandbox, config, prop, value);
+                }
+            } else {
+                exposeValue(sandbox, config, "sandbox", value);
+            }
+
+            return sandbox;
+        }
+    });
+
+    sinon.sandbox.useFakeXMLHttpRequest = sinon.sandbox.useFakeServer;
+
+    if (typeof module !== 'undefined' && module.exports) {
+        module.exports = sinon.sandbox;
+    }
+}());
+
+/**
+ * @depend ../sinon.js
+ * @depend stub.js
+ * @depend mock.js
+ * @depend sandbox.js
+ */
+/*jslint eqeqeq: false, onevar: false, forin: true, plusplus: false*/
+/*global module, require, sinon*/
+/**
+ * Test function, sandboxes fakes
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+    var commonJSModule = typeof module !== 'undefined' && module.exports;
+
+    if (!sinon && commonJSModule) {
+        sinon = require("../sinon");
+    }
+
+    if (!sinon) {
+        return;
+    }
+
+    function test(callback) {
+        var type = typeof callback;
+
+        if (type != "function") {
+            throw new TypeError("sinon.test needs to wrap a test function, got " + type);
+        }
+
+        return function () {
+            var config = sinon.getConfig(sinon.config);
+            config.injectInto = config.injectIntoThis && this || config.injectInto;
+            var sandbox = sinon.sandbox.create(config);
+            var exception, result;
+            var args = Array.prototype.slice.call(arguments).concat(sandbox.args);
+
+            try {
+                result = callback.apply(this, args);
+            } catch (e) {
+                exception = e;
+            }
+
+            if (typeof exception !== "undefined") {
+                sandbox.restore();
+                throw exception;
+            }
+            else {
+                sandbox.verifyAndRestore();
+            }
+
+            return result;
+        };
+    }
+
+    test.config = {
+        injectIntoThis: true,
+        injectInto: null,
+        properties: ["spy", "stub", "mock", "clock", "server", "requests"],
+        useFakeTimers: true,
+        useFakeServer: true
+    };
+
+    if (commonJSModule) {
+        module.exports = test;
+    } else {
+        sinon.test = test;
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend ../sinon.js
+ * @depend test.js
+ */
+/*jslint eqeqeq: false, onevar: false, eqeqeq: false*/
+/*global module, require, sinon*/
+/**
+ * Test case, sandboxes all test functions
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon) {
+    var commonJSModule = typeof module !== 'undefined' && module.exports;
+
+    if (!sinon && commonJSModule) {
+        sinon = require("../sinon");
+    }
+
+    if (!sinon || !Object.prototype.hasOwnProperty) {
+        return;
+    }
+
+    function createTest(property, setUp, tearDown) {
+        return function () {
+            if (setUp) {
+                setUp.apply(this, arguments);
+            }
+
+            var exception, result;
+
+            try {
+                result = property.apply(this, arguments);
+            } catch (e) {
+                exception = e;
+            }
+
+            if (tearDown) {
+                tearDown.apply(this, arguments);
+            }
+
+            if (exception) {
+                throw exception;
+            }
+
+            return result;
+        };
+    }
+
+    function testCase(tests, prefix) {
+        /*jsl:ignore*/
+        if (!tests || typeof tests != "object") {
+            throw new TypeError("sinon.testCase needs an object with test functions");
+        }
+        /*jsl:end*/
+
+        prefix = prefix || "test";
+        var rPrefix = new RegExp("^" + prefix);
+        var methods = {}, testName, property, method;
+        var setUp = tests.setUp;
+        var tearDown = tests.tearDown;
+
+        for (testName in tests) {
+            if (tests.hasOwnProperty(testName)) {
+                property = tests[testName];
+
+                if (/^(setUp|tearDown)$/.test(testName)) {
+                    continue;
+                }
+
+                if (typeof property == "function" && rPrefix.test(testName)) {
+                    method = property;
+
+                    if (setUp || tearDown) {
+                        method = createTest(property, setUp, tearDown);
+                    }
+
+                    methods[testName] = sinon.test(method);
+                } else {
+                    methods[testName] = tests[testName];
+                }
+            }
+        }
+
+        return methods;
+    }
+
+    if (commonJSModule) {
+        module.exports = testCase;
+    } else {
+        sinon.testCase = testCase;
+    }
+}(typeof sinon == "object" && sinon || null));
+
+/**
+ * @depend ../sinon.js
+ * @depend stub.js
+ */
+/*jslint eqeqeq: false, onevar: false, nomen: false, plusplus: false*/
+/*global module, require, sinon*/
+/**
+ * Assertions matching the test spy retrieval interface.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+
+(function (sinon, global) {
+    var commonJSModule = typeof module !== "undefined" && module.exports;
+    var slice = Array.prototype.slice;
+    var assert;
+
+    if (!sinon && commonJSModule) {
+        sinon = require("../sinon");
+    }
+
+    if (!sinon) {
+        return;
+    }
+
+    function verifyIsStub() {
+        var method;
+
+        for (var i = 0, l = arguments.length; i < l; ++i) {
+            method = arguments[i];
+
+            if (!method) {
+                assert.fail("fake is not a spy");
+            }
+
+            if (typeof method != "function") {
+                assert.fail(method + " is not a function");
+            }
+
+            if (typeof method.getCall != "function") {
+                assert.fail(method + " is not stubbed");
+            }
+        }
+    }
+
+    function failAssertion(object, msg) {
+        object = object || global;
+        var failMethod = object.fail || assert.fail;
+        failMethod.call(object, msg);
+    }
+
+    function mirrorPropAsAssertion(name, method, message) {
+        if (arguments.length == 2) {
+            message = method;
+            method = name;
+        }
+
+        assert[name] = function (fake) {
+            verifyIsStub(fake);
+
+            var args = slice.call(arguments, 1);
+            var failed = false;
+
+            if (typeof method == "function") {
+                failed = !method(fake);
+            } else {
+                failed = typeof fake[method] == "function" ?
+                    !fake[method].apply(fake, args) : !fake[method];
+            }
+
+            if (failed) {
+                failAssertion(this, fake.printf.apply(fake, [message].concat(args)));
+            } else {
+                assert.pass(name);
+            }
+        };
+    }
+
+    function exposedName(prefix, prop) {
+        return !prefix || /^fail/.test(prop) ? prop :
+            prefix + prop.slice(0, 1).toUpperCase() + prop.slice(1);
+    }
+
+    assert = {
+        failException: "AssertError",
+
+        fail: function fail(message) {
+            var error = new Error(message);
+            error.name = this.failException || assert.failException;
+
+            throw error;
+        },
+
+        pass: function pass(assertion) {},
+
+        callOrder: function assertCallOrder() {
+            verifyIsStub.apply(null, arguments);
+            var expected = "", actual = "";
+
+            if (!sinon.calledInOrder(arguments)) {
+                try {
+                    expected = [].join.call(arguments, ", ");
+                    var calls = slice.call(arguments);
+                    var i = calls.length;
+                    while (i) {
+                        if (!calls[--i].called) {
+                            calls.splice(i, 1);
+                        }
+                    }
+                    actual = sinon.orderByFirstCall(calls).join(", ");
+                } catch (e) {
+                    // If this fails, we'll just fall back to the blank string
+                }
+
+                failAssertion(this, "expected " + expected + " to be " +
+                              "called in order but were called as " + actual);
+            } else {
+                assert.pass("callOrder");
+            }
+        },
+
+        callCount: function assertCallCount(method, count) {
+            verifyIsStub(method);
+
+            if (method.callCount != count) {
+                var msg = "expected %n to be called " + sinon.timesInWords(count) +
+                    " but was called %c%C";
+                failAssertion(this, method.printf(msg));
+            } else {
+                assert.pass("callCount");
+            }
+        },
+
+        expose: function expose(target, options) {
+            if (!target) {
+                throw new TypeError("target is null or undefined");
+            }
+
+            var o = options || {};
+            var prefix = typeof o.prefix == "undefined" && "assert" || o.prefix;
+            var includeFail = typeof o.includeFail == "undefined" || !!o.includeFail;
+
+            for (var method in this) {
+                if (method != "export" && (includeFail || !/^(fail)/.test(method))) {
+                    target[exposedName(prefix, method)] = this[method];
+                }
+            }
+
+            return target;
+        },
+
+        match: function match(actual, expectation) {
+            var matcher = sinon.match(expectation);
+            if (matcher.test(actual)) {
+                assert.pass("match");
+            } else {
+                var formatted = [
+                    "expected value to match",
+                    "    expected = " + sinon.format(expectation),
+                    "    actual = " + sinon.format(actual)
+                ]
+                failAssertion(this, formatted.join("\n"));
+            }
+        }
+    };
+
+    mirrorPropAsAssertion("called", "expected %n to have been called at least once but was never called");
+    mirrorPropAsAssertion("notCalled", function (spy) { return !spy.called; },
+                          "expected %n to not have been called but was called %c%C");
+    mirrorPropAsAssertion("calledOnce", "expected %n to be called once but was called %c%C");
+    mirrorPropAsAssertion("calledTwice", "expected %n to be called twice but was called %c%C");
+    mirrorPropAsAssertion("calledThrice", "expected %n to be called thrice but was called %c%C");
+    mirrorPropAsAssertion("calledOn", "expected %n to be called with %1 as this but was called with %t");
+    mirrorPropAsAssertion("alwaysCalledOn", "expected %n to always be called with %1 as this but was called with %t");
+    mirrorPropAsAssertion("calledWithNew", "expected %n to be called with new");
+    mirrorPropAsAssertion("alwaysCalledWithNew", "expected %n to always be called with new");
+    mirrorPropAsAssertion("calledWith", "expected %n to be called with arguments %*%C");
+    mirrorPropAsAssertion("calledWithMatch", "expected %n to be called with match %*%C");
+    mirrorPropAsAssertion("alwaysCalledWith", "expected %n to always be called with arguments %*%C");
+    mirrorPropAsAssertion("alwaysCalledWithMatch", "expected %n to always be called with match %*%C");
+    mirrorPropAsAssertion("calledWithExactly", "expected %n to be called with exact arguments %*%C");
+    mirrorPropAsAssertion("alwaysCalledWithExactly", "expected %n to always be called with exact arguments %*%C");
+    mirrorPropAsAssertion("neverCalledWith", "expected %n to never be called with arguments %*%C");
+    mirrorPropAsAssertion("neverCalledWithMatch", "expected %n to never be called with match %*%C");
+    mirrorPropAsAssertion("threw", "%n did not throw exception%C");
+    mirrorPropAsAssertion("alwaysThrew", "%n did not always throw exception%C");
+
+    if (commonJSModule) {
+        module.exports = assert;
+    } else {
+        sinon.assert = assert;
+    }
+}(typeof sinon == "object" && sinon || null, typeof window != "undefined" ? window : (typeof self != "undefined") ? self : global));
+
+return sinon;}.call(typeof window != 'undefined' && window || {}));
diff --git a/resources/sinonjs/sinon-ie-1.8.1.js b/resources/sinonjs/sinon-ie-1.8.1.js
deleted file mode 100644 (file)
index f92e9db..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/**
- * Sinon.JS 1.8.1, 2014/02/02
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @author Contributors: https://github.com/cjohansen/Sinon.JS/blob/master/AUTHORS
- *
- * (The BSD License)
- * 
- * Copyright (c) 2010-2013, Christian Johansen, christian@cjohansen.no
- * All rights reserved.
- * 
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 
- *     * Redistributions of source code must retain the above copyright notice,
- *       this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above copyright notice,
- *       this list of conditions and the following disclaimer in the documentation
- *       and/or other materials provided with the distribution.
- *     * Neither the name of Christian Johansen nor the names of his contributors
- *       may be used to endorse or promote products derived from this software
- *       without specific prior written permission.
- * 
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-/*global sinon, setTimeout, setInterval, clearTimeout, clearInterval, Date*/
-/**
- * Helps IE run the fake timers. By defining global functions, IE allows
- * them to be overwritten at a later point. If these are not defined like
- * this, overwriting them will result in anything from an exception to browser
- * crash.
- *
- * If you don't require fake timers to work in IE, don't include this file.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-function setTimeout() {}
-function clearTimeout() {}
-function setImmediate() {}
-function clearImmediate() {}
-function setInterval() {}
-function clearInterval() {}
-function Date() {}
-
-// Reassign the original functions. Now their writable attribute
-// should be true. Hackish, I know, but it works.
-setTimeout = sinon.timers.setTimeout;
-clearTimeout = sinon.timers.clearTimeout;
-setImmediate = sinon.timers.setImmediate;
-clearImmediate = sinon.timers.clearImmediate;
-setInterval = sinon.timers.setInterval;
-clearInterval = sinon.timers.clearInterval;
-Date = sinon.timers.Date;
-
-/*global sinon*/
-/**
- * Helps IE run the fake XMLHttpRequest. By defining global functions, IE allows
- * them to be overwritten at a later point. If these are not defined like
- * this, overwriting them will result in anything from an exception to browser
- * crash.
- *
- * If you don't require fake XHR to work in IE, don't include this file.
- *
- * @author Christian Johansen (christian@cjohansen.no)
- * @license BSD
- *
- * Copyright (c) 2010-2013 Christian Johansen
- */
-function XMLHttpRequest() {}
-
-// Reassign the original function. Now its writable attribute
-// should be true. Hackish, I know, but it works.
-XMLHttpRequest = sinon.xhr.XMLHttpRequest || undefined;
diff --git a/resources/sinonjs/sinon-ie-1.9.0.js b/resources/sinonjs/sinon-ie-1.9.0.js
new file mode 100644 (file)
index 0000000..c9fbd9d
--- /dev/null
@@ -0,0 +1,86 @@
+/**
+ * Sinon.JS 1.9.0, 2014/03/05
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @author Contributors: https://github.com/cjohansen/Sinon.JS/blob/master/AUTHORS
+ *
+ * (The BSD License)
+ * 
+ * Copyright (c) 2010-2014, Christian Johansen, christian@cjohansen.no
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without modification,
+ * are permitted provided that the following conditions are met:
+ * 
+ *     * Redistributions of source code must retain the above copyright notice,
+ *       this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above copyright notice,
+ *       this list of conditions and the following disclaimer in the documentation
+ *       and/or other materials provided with the distribution.
+ *     * Neither the name of Christian Johansen nor the names of his contributors
+ *       may be used to endorse or promote products derived from this software
+ *       without specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+ * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/*global sinon, setTimeout, setInterval, clearTimeout, clearInterval, Date*/
+/**
+ * Helps IE run the fake timers. By defining global functions, IE allows
+ * them to be overwritten at a later point. If these are not defined like
+ * this, overwriting them will result in anything from an exception to browser
+ * crash.
+ *
+ * If you don't require fake timers to work in IE, don't include this file.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+function setTimeout() {}
+function clearTimeout() {}
+function setImmediate() {}
+function clearImmediate() {}
+function setInterval() {}
+function clearInterval() {}
+function Date() {}
+
+// Reassign the original functions. Now their writable attribute
+// should be true. Hackish, I know, but it works.
+setTimeout = sinon.timers.setTimeout;
+clearTimeout = sinon.timers.clearTimeout;
+setImmediate = sinon.timers.setImmediate;
+clearImmediate = sinon.timers.clearImmediate;
+setInterval = sinon.timers.setInterval;
+clearInterval = sinon.timers.clearInterval;
+Date = sinon.timers.Date;
+
+/*global sinon*/
+/**
+ * Helps IE run the fake XMLHttpRequest. By defining global functions, IE allows
+ * them to be overwritten at a later point. If these are not defined like
+ * this, overwriting them will result in anything from an exception to browser
+ * crash.
+ *
+ * If you don't require fake XHR to work in IE, don't include this file.
+ *
+ * @author Christian Johansen (christian@cjohansen.no)
+ * @license BSD
+ *
+ * Copyright (c) 2010-2013 Christian Johansen
+ */
+function XMLHttpRequest() {}
+
+// Reassign the original function. Now its writable attribute
+// should be true. Hackish, I know, but it works.
+XMLHttpRequest = sinon.xhr.XMLHttpRequest || undefined;
index a7c62b3..7c2860e 100644 (file)
@@ -90,21 +90,37 @@ class CologneBlueTemplate extends BaseTemplate {
                        return "";
                }
 
+               $html = '';
+
                // We override SkinTemplate->formatLanguageName() in SkinCologneBlue
                // not to capitalize the language names.
                $language_urls = $this->data['language_urls'];
-               if ( empty( $language_urls ) ) {
-                       return "";
-               }
+               if ( !empty( $language_urls ) ) {
+                       $s = array();
+                       foreach ( $language_urls as $key => $data ) {
+                               $s[] = $this->makeListItem( $key, $data, array( 'tag' => 'span' ) );
+                       }
 
-               $s = array();
-               foreach ( $language_urls as $key => $data ) {
-                       $s[] = $this->makeListItem( $key, $data, array( 'tag' => 'span' ) );
+                       $html = wfMessage( 'otherlanguages' )->text()
+                               . wfMessage( 'colon-separator' )->text()
+                               . $this->getSkin()->getLanguage()->pipeList( $s );
                }
 
-               return wfMessage( 'otherlanguages' )->text()
-                       . wfMessage( 'colon-separator' )->text()
-                       . $this->getSkin()->getLanguage()->pipeList( $s );
+               $html .= $this->renderAfterPortlet( 'lang' );
+
+               return $html;
+       }
+
+       /**
+        * @param string $name
+        */
+       protected function renderAfterPortlet( $name ) {
+               $content = '';
+               wfRunHooks( 'BaseTemplateAfterPortlet', array( $this, $name, &$content ) );
+
+               $html = $content !== '' ? "<div class='after-portlet after-portlet-$name'>$content</div>" : '';
+
+               return $html;
        }
 
        function pageTitleLinks() {
@@ -367,9 +383,10 @@ class CologneBlueTemplate extends BaseTemplate {
                                Title::newFromText( wfMessage( 'aboutpage' )->inContentLanguage()->text() ),
                                wfMessage( 'about' )->text()
                        ),
-                       Linker::linkKnown(
-                               Title::newFromText( wfMessage( 'helppage' )->inContentLanguage()->text() ),
-                               wfMessage( 'help' )->text()
+                       Linker::makeExternalLink(
+                               Skin::makeInternalOrExternalUrl( wfMessage( 'helppage' )->inContentLanguage()->text() ),
+                               wfMessage( 'help' )->text(),
+                               false
                        ),
                        Linker::linkKnown(
                                Title::newFromText( wfMessage( 'faqpage' )->inContentLanguage()->text() ),
@@ -517,6 +534,8 @@ class CologneBlueTemplate extends BaseTemplate {
                                $role = ( $heading == 'search' ) ? 'search' : 'navigation';
                                $s .= "<div class=\"portlet\" id=\"$portletId\" role=\"$role\">\n$headingHTML\n$listHTML\n</div>\n";
                        }
+
+                       $s .= $this->renderAfterPortlet( $heading );
                }
 
                $s .= "</div>\n";
index bd914ce..34f5965 100644 (file)
@@ -221,6 +221,8 @@ echo $footerEnd;
                                } ?>
 
                        </form>
+
+                       <?php $this->renderAfterPortlet( 'search' ); ?>
                </div>
        </div>
 <?php
@@ -242,6 +244,7 @@ echo $footerEnd;
                                } ?>
 
                        </ul>
+<?php          $this->renderAfterPortlet( 'cactions' ); ?>
                </div>
        </div>
 <?php
@@ -263,6 +266,7 @@ echo $footerEnd;
                wfRunHooks( 'SkinTemplateToolboxEnd', array( &$this, true ) );
 ?>
                        </ul>
+<?php          $this->renderAfterPortlet( 'tb' ); ?>
                </div>
        </div>
 <?php
@@ -270,7 +274,7 @@ echo $footerEnd;
 
        /*************************************************************************************************/
        function languageBox() {
-               if ( $this->data['language_urls'] ) {
+               if ( $this->data['language_urls'] !== false ) {
 ?>
        <div id="p-lang" class="portlet" role="navigation">
                <h3<?php $this->html( 'userlangattributes' ) ?>><?php $this->msg( 'otherlanguages' ) ?></h3>
@@ -281,6 +285,8 @@ echo $footerEnd;
 
 <?php          } ?>
                        </ul>
+
+<?php          $this->renderAfterPortlet( 'lang' ); ?>
                </div>
        </div>
 <?php
@@ -315,9 +321,12 @@ echo $footerEnd;
                        # allow raw HTML block to be defined by extensions
                        print $cont;
                }
+
+               $this->renderAfterPortlet( $bar );
 ?>
                </div>
        </div>
 <?php
        }
+
 } // end of class
index 899a272..5b944eb 100644 (file)
@@ -167,6 +167,7 @@ class VectorTemplate extends BaseTemplate {
                                $this->data['pageLanguage'] = $this->getSkin()->getTitle()->getPageViewLanguage()->getHtmlCode();
                                $this->text( 'pageLanguage' );
                        ?>"><span dir="auto"><?php $this->html( 'title' ) ?></span></h1>
+                       <?php $this->html( 'prebodyhtml' ) ?>
                        <div id="bodyContent">
                                <?php if ( $this->data['isarticle'] ) { ?>
                                <div id="siteSub"><?php $this->msg( 'tagline' ) ?></div>
@@ -274,7 +275,7 @@ class VectorTemplate extends BaseTemplate {
                                        $this->renderPortal( 'tb', $this->getToolbox(), 'toolbox', 'SkinTemplateToolboxEnd' );
                                        break;
                                case 'LANGUAGES':
-                                       if ( $this->data['language_urls'] ) {
+                                       if ( $this->data['language_urls'] !== false ) {
                                                $this->renderPortal( 'lang', $this->data['language_urls'], 'otherlanguages' );
                                        }
                                        break;
@@ -316,9 +317,12 @@ class VectorTemplate extends BaseTemplate {
                </ul>
 <?php
                } else { ?>
-               <?php echo $content; /* Allow raw HTML block to be defined by extensions */ ?>
-<?php
-               } ?>
+               <?php
+                       echo $content; /* Allow raw HTML block to be defined by extensions */
+               }
+
+               $this->renderAfterPortlet( $name );
+               ?>
        </div>
 </div>
 <?php
index 40a9432..ef9cf8f 100644 (file)
@@ -133,6 +133,11 @@ textarea {
        line-height: inherit;
 }
 
+div.after-portlet {
+       display: inline;
+       padding-left: .5em;
+}
+
 h1 {
        color: #666666;
        font-family: Verdana, Arial, sans-serif;
index e35fcd1..03f133e 100644 (file)
@@ -91,7 +91,7 @@ relativeforfloats = window.relativeforfloats = function () {
 setrelative = window.setrelative = function ( nodes ) {
        var i = 0;
        while ( i < nodes.length ) {
-               if( ( ( nodes[i].style.float && nodes[i].style.float !== ( 'none' ) ||
+               if ( ( ( nodes[i].style.float && nodes[i].style.float !== ( 'none' ) ||
                        ( nodes[i].align && nodes[i].align !== ( 'none' ) ) ) &&
                        ( !nodes[i].style.position || nodes[i].style.position !== 'relative' ) ) )
                {
@@ -135,7 +135,7 @@ window.onbeforeprint = function () {
        }
 };
 
-window.onafterprint = function() {
+window.onafterprint = function () {
        for ( var i = 0; i < expandedURLs.length; i++ ) {
                if ( expandedURLs[i] ) {
                        expandedURLs[i].removeNode( true );
index ca74b38..c017e3c 100644 (file)
@@ -5,7 +5,7 @@
  * http://www.modernmethod.com/sajax/
  */
 
-/*jshint camelcase:false, onevar:false */
+/*jshint camelcase:false */
 /*global alert */
 ( function ( mw ) {
 
@@ -89,9 +89,7 @@ function createXhr() {
  * with id = showFoo
  */
 function doAjaxRequest( func_name, args, target ) {
-       var i, x;
-       var uri;
-       var post_data;
+       var i, x, uri, post_data;
        uri = mw.util.wikiScript() + '?action=ajax';
        if ( window.sajax_request_type === 'GET' ) {
                if ( uri.indexOf( '?' ) === -1 ) {
@@ -146,7 +144,7 @@ function doAjaxRequest( func_name, args, target ) {
                } else if ( typeof target === 'object' ) {
                        if ( target.tagName === 'INPUT' ) {
                                if ( x.status === 200 ) {
-                                       target.value= x.responseText;
+                                       target.value = x.responseText;
                                }
                                //else alert( 'Error: ' + x.status + ' ' + x.statusText + ' (' + x.responseText + ')' );
                        } else {
@@ -173,8 +171,9 @@ function doAjaxRequest( func_name, args, target ) {
  * @return {boolean} Whether the browser supports AJAX
  */
 function wfSupportsAjax() {
-       var request = createXhr();
-       var supportsAjax = request ? true : false;
+       var request = createXhr(),
+               supportsAjax = request ? true : false;
+
        request = undefined;
        return supportsAjax;
 }
index a869923..41d20fb 100644 (file)
@@ -149,14 +149,3 @@ div.magnify a, div.magnify img {
 img.thumbborder {
        border: 1px solid #dddddd;
 }
-
-/**
- * Basic styles for the user login and create account forms
- */
-#loginend {
-       margin: 0.5em;
-}
-
-#loginend table {
-       width: 100%;
-}
index fb8edc1..2886e08 100644 (file)
@@ -98,7 +98,7 @@
                // Show/Hide memcached servers when needed
                $( 'input[name$="config_wgMainCacheType"]' ).change( function () {
                        var $memc = $( '#config-memcachewrapper' );
-                       if( $( 'input[name$="config_wgMainCacheType"]:checked' ).val() === 'memcached' ) {
+                       if ( $( 'input[name$="config_wgMainCacheType"]:checked' ).val() === 'memcached' ) {
                                $memc.show( 'slow' );
                        } else {
                                $memc.hide( 'slow' );
index 1657d97..942cbac 100644 (file)
@@ -221,15 +221,15 @@ td.mw-label {
 }
 
 .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 */
+        * compatibility (browsers able to understand gradient syntax support also SVG).
+        * http://pauginer.tumblr.com/post/36614680636/invisible-gradient-technique */
+       background-image: url(images/question-small.png);
        /* @embed */
-       background: -webkit-linear-gradient(transparent, transparent), url('images/question.svg') no-repeat;
+       background-image: -webkit-linear-gradient(transparent, transparent), url(images/question.svg);
        /* @embed */
-       background: linear-gradient(transparent, transparent), url('images/question.svg') no-repeat;
+       background-image: linear-gradient(transparent, transparent), url(images/question.svg);
+       background-repeat: no-repeat;
        background-size: 13px 13px;
        display: inline-block;
        height: 13px;
@@ -484,8 +484,13 @@ a.new {
 
 /* feed links */
 a.feedlink {
-       /* @embed */
+       /* SVG support using a transparent gradient to guarantee cross-browser
+        * compatibility (browsers able to understand gradient syntax support also SVG).
+        * http://pauginer.tumblr.com/post/36614680636/invisible-gradient-technique */
        background-image: url(images/feed-icon.png);
+       /* @embed */
+       background-image: -webkit-linear-gradient(transparent, transparent), url(images/feed-icon.svg);
+       /* @embed */
        background-image: linear-gradient(transparent, transparent), url(images/feed-icon.svg);
        background-position: center left;
        background-repeat: no-repeat;
@@ -1046,7 +1051,7 @@ ol:lang(or) li {
        margin-bottom: -8px;
        padding: 0 0 0 15px;
        /* @embed */
-       background-image: url('images/help-question.gif');
+       background-image: url(images/help-question.gif);
        background-position: left center;
        background-repeat: no-repeat;
        cursor: pointer;
@@ -1056,7 +1061,7 @@ ol:lang(or) li {
 }
 .mw-help-field-hint:hover {
        /* @embed */
-       background-image: url('images/help-question-hover.gif');
+       background-image: url(images/help-question-hover.gif);
 }
 .mw-help-field-data {
        display: block;
index d639f63..7933caf 100644 (file)
@@ -85,7 +85,6 @@ function uploadSetup() {
                wpLicenseTbody.insertBefore( row, wpLicenseRow.nextSibling );
        }
 
-
        // fillDestFile setup
        uploadSourceIds = mw.config.get( 'wgUploadSourceIds' );
        len = uploadSourceIds.length;
@@ -98,7 +97,7 @@ function uploadSetup() {
 }
 
 wgUploadWarningObj = window.wgUploadWarningObj = {
-       responseCache: { '' : '&nbsp;' },
+       responseCache: { '': '&nbsp;' },
        nameToCheck: '',
        typing: false,
        delay: 500, // ms
@@ -303,7 +302,7 @@ window.toggleFilenameFiller = function () {
 
 wgUploadLicenseObj = window.wgUploadLicenseObj = {
 
-       responseCache: { '' : '' },
+       responseCache: { '': '' },
 
        fetchPreview: function ( license ) {
                var cached, title;
index f0aa943..df5682e 100644 (file)
@@ -240,7 +240,7 @@ win.importStylesheet = function ( page ) {
        return win.importStylesheetURI( uri );
 };
 
-win.importStylesheetURI = function( url, media ) {
+win.importStylesheetURI = function ( url, media ) {
        var l = document.createElement( 'link' );
        l.rel = 'stylesheet';
        l.href = url;
index 534d333..f3e4100 100644 (file)
@@ -36,6 +36,16 @@ div#footer {
        border-right: 1px solid #fabd23;
 }
 
+/* float/negative margin brokenness */
+* html div#footer {
+       margin-top: 0;
+}
+
+* html div#column-content {
+       display: inline;
+       margin-bottom: 0;
+}
+
 /* the tabs */
 
 #p-cactions {
index 145b375..c32e869 100644 (file)
@@ -250,6 +250,12 @@ table.rimage {
        border: 1px solid #aaa;
        padding: 0 .8em .3em .5em;
 }
+/* allows .pBody styles to wrap around content added via BaseTemplateAfterPortlet hook */
+.pBody:after {
+       content: '';
+       clear: both;
+       display: block;
+}
 .portlet ul {
        line-height: 1.5em;
        font-size: 95%;
@@ -636,10 +642,6 @@ td.htmlform-tip {
        margin-top: 2em;
 }
 
-#loginend, #signupend {
-       clear: both;
-}
-
 #userloginprompt, #languagelinks {
        font-size: 85%;
 }
@@ -654,59 +656,17 @@ td.htmlform-tip {
        font-weight: bold;
 }
 
-/*
-** IE/Mac fixes, hope to find a validating way to move this
-** to a separate stylesheet. This would work but doesn't validate:
-** @import("IEMacFixes.css");
-*/
-/* tabs: border on the a, not the div */
-* > html #p-cactions li {
-       border: none;
-}
-* > html #p-cactions li a {
-       border: 1px solid #aaa;
-       border-bottom: none;
-}
-* > html #p-cactions li.selected a {
-       border-color: #fabd23;
-}
-/* footer icons need a fixed width */
-* > html #f-poweredbyico,
-* > html #f-copyrightico {
-       width: 88px;
-}
-* > html #bodyContent,
-* > html #bodyContent pre {
-       overflow-x: auto;
-       width: 100%;
-       padding-bottom: 25px;
-}
-
-/* more IE fixes */
-/* float/negative margin brokenness */
-* html div#footer {
-       margin-top: 0;
-}
-* html div#column-content {
-       display: inline;
-       margin-bottom: 0;
-}
+/**
+ * This was originally added by Gabriel Wicke in r3681 (committed on 25 May 2004)
+ * with the commit message "tweaks to page history".
+ * Unlike the other IE/Mac fixes that used to be present here, this seems to get
+ * applied on more modern browsers, so let's keep it here until someone has the
+ * time to properly test it out.
+ */
 #pagehistory li.selected {
        position: relative;
 }
 
-/* Mac IE 5.0 fix; floated content turns invisible */
-* > html div#column-content {
-       float: none;
-}
-* > html div#column-one {
-       position: absolute;
-       left: 0;
-       top: 0;
-}
-* > html div#footer {
-       margin-left: 13.2em;
-}
 .redirectText {
        font-size: 150%;
        margin: 5px;
diff --git a/skins/vector/components/animations.less b/skins/vector/components/animations.less
new file mode 100644 (file)
index 0000000..9163779
--- /dev/null
@@ -0,0 +1,28 @@
+/* Animate between standard and high definition layouts */
+body.vector-animateLayout {
+       div#content,
+       div#footer,
+       #left-navigation {
+               .transition(margin-left 250ms, padding 250ms;);
+       }
+
+       #p-logo {
+               .transition(left 250ms);
+       }
+
+       #mw-panel {
+               .transition(padding-right 250ms);
+       }
+
+       #p-search {
+               .transition(margin-right 250ms);
+       }
+
+       #p-personal {
+               .transition(right 250ms);
+       }
+
+       #mw-head-base {
+               .transition(margin-left 250ms);
+       }
+}
index cb89a7b..8e7fc4d 100644 (file)
@@ -87,32 +87,3 @@ pre, .mw-code {
 .tipsy {
        font-size: 0.8em;
 }
-
-/* Animate between standard and high definition layouts */
-body.vector-animateLayout {
-       div#content,
-       div#footer,
-       #left-navigation {
-               .transition(margin-left 250ms, padding 250ms;);
-       }
-
-       #p-logo {
-               .transition(left 250ms);
-       }
-
-       #mw-panel {
-               .transition(padding-right 250ms);
-       }
-
-       #p-search {
-               .transition(margin-right 250ms);
-       }
-
-       #p-personal {
-               .transition(right 250ms);
-       }
-
-       #mw-head-base {
-               .transition(margin-left 250ms);
-       }
-}
index 365995d..46c3030 100644 (file)
@@ -111,41 +111,3 @@ div#simpleSearch {
                z-index: 1;
        }
 }
-
-// The following styles exist only for backwards-compatibility with
-// cached HTML and are to be removed before 1.23 release.
-
-/* Fix direction changed for awful hacks */
-.sitedir-ltr div#simpleSearch button#searchButton {
-       /* @noflip */
-       direction: ltr;
-}
-.sitedir-rtl div#simpleSearch button#searchButton {
-       /* @noflip */
-       direction: rtl;
-}
-
-div#simpleSearch button#searchButton {
-       position: absolute;
-       padding: 0;
-       padding-top: 0.3em;
-       padding-bottom: 0.2em;
-       padding-right: 0.4em;
-       margin: 0;
-       border: none;
-       background-color: transparent;
-       background-image: none;
-       text-indent: 0;
-
-       /* OVERRIDDEN BY COMPLIANT BROWSERS */
-       img {
-               border: none;
-               margin: 0;
-               margin-top: -3px;
-               padding: 0;
-       }
-       /* IGNORED BY IE6 */
-       > img {
-               margin: 0;
-       }
-}
index 8d5423a..819286e 100644 (file)
@@ -2,6 +2,7 @@
 
 @media screen {
        @import "components/common.less";
+       @import "components/animations.less";
        @import "components/navigation.less";
        @import "components/footer.less";
        @import 'components/notifications.less';
index 8420431..0bc114a 100644 (file)
@@ -8,7 +8,7 @@ jQuery( function ( $ ) {
                        .attr( 'tabindex', '0' )
                        // For accessibility, show the menu when the h3 is clicked (bug 24298/46486)
                        .on( 'click keypress', function ( e ) {
-                               if( e.type === 'click' || e.which === 13 ) {
+                               if ( e.type === 'click' || e.which === 13 ) {
                                        $el.toggleClass( 'menuForceShow' );
                                        e.preventDefault();
                                }
index ea4b0f6..7a048bf 100644 (file)
@@ -40,6 +40,9 @@ $wgAutoloadClasses += array(
        'MediaWikiPHPUnitCommand' => "$testDir/phpunit/MediaWikiPHPUnitCommand.php",
        'MediaWikiPHPUnitTestListener' => "$testDir/phpunit/MediaWikiPHPUnitTestListener.php",
        'MediaWikiLangTestCase' => "$testDir/phpunit/MediaWikiLangTestCase.php",
+       'ResourceLoaderTestCase' => "$testDir/phpunit/ResourceLoaderTestCase.php",
+       'ResourceLoaderTestModule' => "$testDir/phpunit/ResourceLoaderTestCase.php",
+       'ResourceLoaderFileModuleTestModule' => "$testDir/phpunit/ResourceLoaderTestCase.php",
        'TestUser' => "$testDir/phpunit/includes/TestUser.php",
 
        # tests/phpunit/includes
diff --git a/tests/frontend/Gruntfile.js b/tests/frontend/Gruntfile.js
new file mode 100644 (file)
index 0000000..a8aad41
--- /dev/null
@@ -0,0 +1,51 @@
+/*!
+ * Grunt file
+ */
+
+/*jshint node:true */
+module.exports = function ( grunt ) {
+       grunt.loadNpmTasks( 'grunt-contrib-jshint' );
+       grunt.loadNpmTasks( 'grunt-contrib-watch' );
+       grunt.loadNpmTasks( 'grunt-jscs-checker' );
+
+       grunt.file.setBase(  __dirname + '/../..' );
+
+       grunt.initConfig( {
+               pkg: grunt.file.readJSON( __dirname + '/package.json' ),
+               jshint: {
+                       options: {
+                               jshintrc: '.jshintrc'
+                       },
+                       all: [ '*.js', '{includes,languages,resources,skins,tests}/**/*.js' ]
+               },
+               jscs: {
+                       // Known issues:
+                       // - https://github.com/mdevils/node-jscs/issues/277
+                       // - https://github.com/mdevils/node-jscs/issues/278
+                       all: [
+                               '<%= jshint.all %>',
+                               // Auto-generated file with JSON (double quotes)
+                               '!tests/qunit/data/mediawiki.jqueryMsg.data.js'
+
+                       // Exclude all files ignored by jshint
+                       ].concat( grunt.file.read( '.jshintignore' ).split( '\n' ).reduce( function ( patterns, pattern ) {
+                               // Filter out empty lines
+                               if ( pattern.length && pattern[0] !== '#' ) {
+                                       patterns.push( '!' + pattern );
+                               }
+                               return patterns;
+                       }, [] ) )
+               },
+               watch: {
+                       files: [
+                               '.{jshintrc,jscs.json,jshintignore,csslintrc}',
+                               '<%= jshint.all %>'
+                       ],
+                       tasks: ['test']
+               }
+       } );
+
+       grunt.registerTask( 'lint', ['jshint', 'jscs'] );
+       grunt.registerTask( 'test', ['lint'] );
+       grunt.registerTask( 'default', ['test'] );
+};
diff --git a/tests/frontend/package.json b/tests/frontend/package.json
new file mode 100644 (file)
index 0000000..5eb5c0a
--- /dev/null
@@ -0,0 +1,13 @@
+{
+  "name": "mediawiki",
+  "version": "0.0.0",
+  "scripts": {
+    "test": "grunt test"
+  },
+  "devDependencies": {
+    "grunt": "0.4.2",
+    "grunt-contrib-jshint": "0.8.0",
+    "grunt-contrib-watch": "0.5.3",
+    "grunt-jscs-checker": "0.4.0"
+  }
+}
index d9ad773..7b0fc44 100644 (file)
@@ -35,7 +35,10 @@ class ParserTestResult {
                $this->description = $description;
        }
 
-       /** Whether the test passed */
+       /**
+        * Whether the test passed
+        * @return bool
+        */
        public function isSuccess() {
                return $this->expected === $this->actual;
        }
index 55e93e2..f20d73a 100644 (file)
@@ -5,7 +5,7 @@
  * at the same time.
  *
  * Copyright © 2004, 2010 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
@@ -387,7 +387,7 @@ class ParserTest {
 
                foreach ( $filenames as $filename ) {
                        $contents = file_get_contents( $filename );
-                       preg_match_all( '/!!\s*input\n(.*?)\n!!\s*result/s', $contents, $matches );
+                       preg_match_all( '/!!\s*(input|wikitext)\n(.*?)\n!!\s*(result|html|html\/\*|html\/php)/s', $contents, $matches );
 
                        foreach ( $matches[1] as $match ) {
                                $dict .= $match . "\n";
@@ -672,7 +672,7 @@ class ParserTest {
                                )
                        )
                )';
-               $regex = '/'.$defs.'\b
+               $regex = '/' . $defs . '\b
                        (?<k>[\w-]+)                            # Key
                        \b
                        (?:\s*
@@ -688,7 +688,7 @@ class ParserTest {
                                )
                        )?
                        /x';
-               $valueregex = '/'.$defs.'(?&value)/x';
+               $valueregex = '/' . $defs . '(?&value)/x';
 
                if ( preg_match_all( $regex, $instring, $matches, PREG_SET_ORDER ) ) {
                        foreach ( $matches as $bits ) {
@@ -787,6 +787,7 @@ class ParserTest {
                        'wgSVGConverters' => array( 'null' => 'echo "1">$output' ),
                        'wgLocaltimezone' => 'UTC',
                        'wgAllowExternalImages' => self::getOptionValue( 'wgAllowExternalImages', $opts, true ),
+                       'wgThumbLimits' => array( self::getOptionValue( 'thumbsize', $opts, 180 ) ),
                        'wgUseTidy' => false,
                        'wgDefaultLanguageVariant' => $variant,
                        'wgVariantArticlePath' => false,
@@ -841,8 +842,10 @@ class ParserTest {
                $context = new RequestContext();
                $GLOBALS['wgLang'] = $context->getLanguage();
                $GLOBALS['wgOut'] = $context->getOutput();
+               $GLOBALS['wgUser'] = $context->getUser();
 
-               $GLOBALS['wgUser'] = new User();
+               // We (re)set $wgThumbLimits to a single-element array above.
+               $context->getUser()->setOption( 'thumbsize', 0 );
 
                global $wgHooks;
 
@@ -1074,10 +1077,10 @@ class ParserTest {
                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" />' );
+                       '<svg xmlns="http://www.w3.org/2000/svg"' .
+                       ' version="1.1" width="240" height="180"/>' );
                return $dir;
        }
 
index a868214..1e0f78d 100644 (file)
 # language=XXX  set content language to XXX for this test
 # variant=XXX   set the variant of language for this test (eg zh-tw)
 # disabled      do not run test
-# parsoid       parsoid-only test (not run by PHP parser)
-# php           php-only test (not run by the parsoid parser)
+# parsoid       parsoid-specific options (not run by PHP parser unless
+#                 the test includes an html/php section)
+# php           php-only test (not run by the parsoid parser unless
+#                 the test includes an html/parsoid section)
 # showtitle     make the first line the title
 # comment       run through Linker::formatComment() instead of main parser
 # local         format section links in edit comment text as local links
 # notoc         disable table of contents
+# thumbsize=NNN set the default thumb size to NNNpx for this test
 #
 # You can also set the following parser properties via test options:
 #  wgEnableUploads, wgAllowExternalImages, wgMaxTocLevel,
@@ -157,23 +160,23 @@ Template:OpenTable
 ###
 !! test
 Blank input
-!! input
-!! result
+!! wikitext
+!! html
 !! end
 
 
 !! test
 Simple paragraph
-!! input
+!! wikitext
 This is a simple paragraph.
-!! result
+!! html
 <p>This is a simple paragraph.
 </p>
 !! end
 
 !! test
 Paragraphs with extra newline spacing
-!! input
+!! wikitext
 foo
 
 bar
@@ -184,7 +187,7 @@ baz
 
 
 booz
-!! result
+!! html
 <p>foo
 </p><p>bar
 </p><p><br />
@@ -196,7 +199,7 @@ baz
 
 !! test
 Paragraphs with newline spacing with comment lines in between
-!! input
+!! wikitext
 ----
 a
 <!--foo-->
@@ -232,7 +235,7 @@ a
 <!--foo-->
 b
 ----
-!! result
+!! html
 <hr />
 <p>a
 b
@@ -269,7 +272,7 @@ b
 
 !! test
 Paragraphs with newline spacing with non-empty white-space lines in between
-!! input
+!! wikitext
 ----
 a
  
@@ -280,7 +283,7 @@ a
  
 b
 ----
-!! result
+!! html
 <hr />
 <p>a
 </p><p>b
@@ -296,7 +299,7 @@ b
 
 !! test
 Paragraphs with newline spacing with non-empty mixed comment and white-space lines in between
-!! input
+!! wikitext
 ----
 a
  <!--foo-->
@@ -319,7 +322,7 @@ a
  
 b
 ----
-!! result
+!! html
 <hr />
 <p>a
 b
@@ -343,13 +346,13 @@ b
 
 !! test
 Extra newlines: More paragraphs with indented comment
-!! input
+!! wikitext
 a
 
    <!--boo-->
 
 b
-!!result
+!! html
 <p>a
 </p><p><br />
 b
@@ -358,7 +361,7 @@ b
 
 !! test
 Extra newlines followed by heading
-!! input
+!! wikitext
 a
 
 
@@ -368,7 +371,7 @@ a
 
 
 =b=
-!! result
+!! html
 <p>a
 </p><p><br />
 </p>
@@ -382,13 +385,13 @@ a
 
 !! test
 Extra newlines between heading and content are swallowed
-!! input
+!! wikitext
 =b=
 
 
 
 [[a]]
-!! result
+!! html
 <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>
@@ -396,20 +399,20 @@ Extra newlines between heading and content are swallowed
 
 !! test
 Parsing an URL
-!! input
+!! wikitext
 http://fr.wikipedia.org/wiki/🍺
 <!-- EasterEgg we love beer, better be able be able to link to it -->
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://fr.wikipedia.org/wiki/🍺">http://fr.wikipedia.org/wiki/🍺</a>
 </p>
 !! end
 
 !! test
 Simple list
-!! input
+!! wikitext
 * Item 1
 * Item 2
-!! result
+!! html
 <ul>
 <li> Item 1
 </li>
@@ -421,7 +424,7 @@ Simple list
 
 !! test
 Italics and bold
-!! input
+!! wikitext
 * plain
 * plain''italic''plain
 * plain''italic''plain''italic''plain
@@ -437,7 +440,7 @@ Italics and bold
 * plain'''bold''bold-italic'''''plain
 * plain l'''italic''plain
 * plain l''''bold''' plain
-!! result
+!! html
 <ul>
 <li> plain
 </li>
@@ -476,9 +479,9 @@ Italics and bold
 # this example taken from the [[simple:Moon]] article (bug 47326)
 !! test
 Italics and possessives (1)
-!! input
+!! wikitext
 obtained by ''[[Lunar Prospector]]'''s gamma-ray spectrometer
-!! result
+!! html
 <p>obtained by <i><a href="/index.php?title=Lunar_Prospector&amp;action=edit&amp;redlink=1" class="new" title="Lunar Prospector (page does not exist)">Lunar Prospector</a>'</i>s gamma-ray spectrometer
 </p>
 !! end
@@ -486,9 +489,9 @@ obtained by ''[[Lunar Prospector]]'''s gamma-ray spectrometer
 # this example taken from [[en:Flaming Pie]] (bug 49926)
 !! test
 Italics and possessives (2)
-!! input
+!! wikitext
 '''''Flaming Pie''''' is ... released in 1997. In ''Flaming Pie'''s liner notes
-!! result
+!! html
 <p><i><b>Flaming Pie</b></i> is ... released in 1997. In <i>Flaming Pie'</i>s liner notes
 </p>
 !! end
@@ -496,9 +499,9 @@ Italics and possessives (2)
 # this example taken from [[en:Dictionary]] (bug 49926)
 !! test
 Italics and possessives (3)
-!! input
+!! wikitext
 The first monolingual dictionary written in a Romance language was ''Sebastián Covarrubias''' ''Tesoro de la lengua castellana o española'', published in 1611 in Madrid. In 1612 the first edition of the ''Vocabolario dell'[[Accademia della Crusca]]'', for Italian, was published. In 1690 in Rotterdam was published, posthumously, the ''Dictionnaire Universel''.
-!! result
+!! html
 <p>The first monolingual dictionary written in a Romance language was <i>Sebastián Covarrubias'</i> <i>Tesoro de la lengua castellana o española</i>, published in 1611 in Madrid. In 1612 the first edition of the <i>Vocabolario dell'<a href="/index.php?title=Accademia_della_Crusca&amp;action=edit&amp;redlink=1" class="new" title="Accademia della Crusca (page does not exist)">Accademia della Crusca</a></i>, for Italian, was published. In 1690 in Rotterdam was published, posthumously, the <i>Dictionnaire Universel</i>.
 </p>
 !! end
@@ -509,9 +512,9 @@ The first monolingual dictionary written in a Romance language was ''Sebastián
 ###
 !! test
 Italics and bold: 2-quote opening sequence: (2,2)
-!! input
+!! wikitext
 ''foo''
-!! result
+!! html
 <p><i>foo</i>
 </p>
 !!end
@@ -519,9 +522,9 @@ Italics and bold: 2-quote opening sequence: (2,2)
 
 !! test
 Italics and bold: 2-quote opening sequence: (2,3)
-!! input
+!! wikitext
 ''foo'''
-!! result
+!! html
 <p><i>foo'</i>
 </p>
 !!end
@@ -529,32 +532,23 @@ Italics and bold: 2-quote opening sequence: (2,3)
 
 !! test
 Italics and bold: 2-quote opening sequence: (2,4)
-!! input
+!! wikitext
 ''foo''''
-!! result
+!! html
 <p><i>foo''</i>
 </p>
 !!end
 
 
+# The PHP parser strips the empty tags out for giggles; parsoid doesn't.
 !! test
-Italics and bold: 2-quote opening sequence: (2,5) (php)
-!! options
-php
-!! input
+Italics and bold: 2-quote opening sequence: (2,5)
+!! wikitext
 ''foo'''''
-!! result
+!! html/php
 <p><i>foo</i>
 </p>
-!!end
-# The PHP parser strips the empty tags out for giggles; parsoid doesn't.
-!! test
-Italics and bold: 2-quote opening sequence: (2,5) (parsoid)
-!! options
-parsoid
-!! input
-''foo'''''
-!! result
+!! html/parsoid
 <p><i>foo</i><b></b>
 </p>
 !!end
@@ -566,9 +560,9 @@ parsoid
 
 !! test
 Italics and bold: 3-quote opening sequence: (3,2)
-!! input
+!! wikitext
 '''foo''
-!! result
+!! html
 <p>'<i>foo</i>
 </p>
 !!end
@@ -576,9 +570,9 @@ Italics and bold: 3-quote opening sequence: (3,2)
 
 !! test
 Italics and bold: 3-quote opening sequence: (3,3)
-!! input
+!! wikitext
 '''foo'''
-!! result
+!! html
 <p><b>foo</b>
 </p>
 !!end
@@ -586,32 +580,23 @@ Italics and bold: 3-quote opening sequence: (3,3)
 
 !! test
 Italics and bold: 3-quote opening sequence: (3,4)
-!! input
+!! wikitext
 '''foo''''
-!! result
+!! html
 <p><b>foo'</b>
 </p>
 !!end
 
 
+# The PHP parser strips the empty tags out for giggles; parsoid doesn't.
 !! test
-Italics and bold: 3-quote opening sequence: (3,5) (php)
-!! options
-php
-!! input
+Italics and bold: 3-quote opening sequence: (3,5)
+!! wikitext
 '''foo'''''
-!! result
+!! html/php
 <p><b>foo</b>
 </p>
-!!end
-# The PHP parser strips the empty tags out for giggles; parsoid doesn't.
-!! test
-Italics and bold: 3-quote opening sequence: (3,5) (parsoid)
-!! options
-parsoid
-!! input
-'''foo'''''
-!! result
+!! html/parsoid
 <p><b>foo</b><i></i>
 </p>
 !!end
@@ -623,9 +608,9 @@ parsoid
 
 !! test
 Italics and bold: 4-quote opening sequence: (4,2)
-!! input
+!! wikitext
 ''''foo''
-!! result
+!! html
 <p>''<i>foo</i>
 </p>
 !!end
@@ -633,9 +618,9 @@ Italics and bold: 4-quote opening sequence: (4,2)
 
 !! test
 Italics and bold: 4-quote opening sequence: (4,3)
-!! input
+!! wikitext
 ''''foo'''
-!! result
+!! html
 <p>'<b>foo</b>
 </p>
 !!end
@@ -643,32 +628,23 @@ Italics and bold: 4-quote opening sequence: (4,3)
 
 !! test
 Italics and bold: 4-quote opening sequence: (4,4)
-!! input
+!! wikitext
 ''''foo''''
-!! result
+!! html
 <p>'<b>foo'</b>
 </p>
 !!end
 
 
+# The PHP parser strips the empty tags out for giggles; parsoid doesn't.
 !! test
-Italics and bold: 4-quote opening sequence: (4,5) (php)
-!! options
-php
-!! input
+Italics and bold: 4-quote opening sequence: (4,5)
+!! wikitext
 ''''foo'''''
-!! result
+!! html/php
 <p>'<b>foo</b>
 </p>
-!!end
-# The PHP parser strips the empty tags out for giggles; parsoid doesn't.
-!! test
-Italics and bold: 4-quote opening sequence: (4,5) (parsoid)
-!! options
-parsoid
-!! input
-''''foo'''''
-!! result
+!! html/parsoid
 <p>'<b>foo</b><i></i>
 </p>
 !!end
@@ -681,9 +657,9 @@ parsoid
 !! test
 Italics and bold: 5-quote opening sequence: (5,2)
 !! options
-!! input
+!! wikitext
 '''''foo''
-!! result
+!! html
 <p><b><i>foo</i></b>
 </p>
 !!end
@@ -691,9 +667,9 @@ Italics and bold: 5-quote opening sequence: (5,2)
 
 !! test
 Italics and bold: 5-quote opening sequence: (5,3)
-!! input
+!! wikitext
 '''''foo'''
-!! result
+!! html
 <p><i><b>foo</b></i>
 </p>
 !!end
@@ -701,9 +677,9 @@ Italics and bold: 5-quote opening sequence: (5,3)
 
 !! test
 Italics and bold: 5-quote opening sequence: (5,4)
-!! input
+!! wikitext
 '''''foo''''
-!! result
+!! html
 <p><i><b>foo'</b></i>
 </p>
 !!end
@@ -711,9 +687,9 @@ Italics and bold: 5-quote opening sequence: (5,4)
 
 !! test
 Italics and bold: 5-quote opening sequence: (5,5)
-!! input
+!! wikitext
 '''''foo'''''
-!! result
+!! html
 <p><i><b>foo</b></i>
 </p>
 !!end
@@ -723,9 +699,9 @@ Italics and bold: 5-quote opening sequence: (5,5)
 ###
 !! test
 Italics and bold: multiple quote sequences: (2,4,2)
-!! input
+!! wikitext
 ''foo''''bar''
-!! result
+!! html
 <p><i>foo'<b>bar</b></i>
 </p>
 !!end
@@ -733,9 +709,9 @@ Italics and bold: multiple quote sequences: (2,4,2)
 
 !! test
 Italics and bold: multiple quote sequences: (2,4,3)
-!! input
+!! wikitext
 ''foo''''bar'''
-!! result
+!! html
 <p><i>foo'<b>bar</b></i>
 </p>
 !!end
@@ -743,55 +719,37 @@ Italics and bold: multiple quote sequences: (2,4,3)
 
 !! test
 Italics and bold: multiple quote sequences: (2,4,4)
-!! input
+!! wikitext
 ''foo''''bar''''
-!! result
+!! html
 <p><i>foo'<b>bar'</b></i>
 </p>
 !!end
 
 
+# The PHP parser strips the empty tags out for giggles; parsoid doesn't.
 !! test
-Italics and bold: multiple quote sequences: (3,4,2) (php)
-!! options
-php
-!! input
+Italics and bold: multiple quote sequences: (3,4,2)
+!! wikitext
 '''foo''''bar''
-!! result
+!! html/php
 <p><b>foo'</b>bar
 </p>
-!!end
-# The PHP parser strips the empty tags out for giggles; parsoid doesn't.
-!! test
-Italics and bold: multiple quote sequences: (3,4,2) (parsoid)
-!! options
-parsoid
-!! input
-'''foo''''bar''
-!! result
+!! html/parsoid
 <p><b>foo'</b>bar<i></i>
 </p>
 !!end
 
 
+# The PHP parser strips the empty tags out for giggles; parsoid doesn't.
 !! test
-Italics and bold: multiple quote sequences: (3,4,3) (php)
-!! options
-php
-!! input
+Italics and bold: multiple quote sequences: (3,4,3)
+!! wikitext
 '''foo''''bar'''
-!! result
+!! html/php
 <p><b>foo'</b>bar
 </p>
-!!end
-# The PHP parser strips the empty tags out for giggles; parsoid doesn't.
-!! test
-Italics and bold: multiple quote sequences: (3,4,3) (parsoid)
-!! options
-parsoid
-!! input
-'''foo''''bar'''
-!! result
+!! html/parsoid
 <p><b>foo'</b>bar<b></b>
 </p>
 !!end
@@ -801,9 +759,9 @@ parsoid
 ###
 !! test
 Italics and bold: other quote tests: (2,3,5)
-!! input
+!! wikitext
 ''this is about '''foo's family'''''
-!! result
+!! html
 <p><i>this is about <b>foo's family</b></i>
 </p>
 !!end
@@ -811,9 +769,9 @@ Italics and bold: other quote tests: (2,3,5)
 
 !! test
 Italics and bold: other quote tests: (2,(3,3),2)
-!! input
+!! wikitext
 ''this is about '''foo's''' family''
-!! result
+!! html
 <p><i>this is about <b>foo's</b> family</i>
 </p>
 !!end
@@ -821,9 +779,9 @@ Italics and bold: other quote tests: (2,(3,3),2)
 
 !! test
 Italics and bold: other quote tests: (3,2,3,2)
-!! input
+!! wikitext
 '''this is about ''foo'''s family''
-!! result
+!! html
 <p><b>this is about <i>foo</i></b><i>s family</i>
 </p>
 !!end
@@ -832,9 +790,9 @@ Italics and bold: other quote tests: (3,2,3,2)
 !! test
 Italics and bold: other quote tests: (3,2,3,3)
 !! options
-!! input
+!! wikitext
 '''this is about ''foo'''s family'''
-!! result
+!! html
 <p>'<i>this is about </i>foo<b>s family</b>
 </p>
 !!end
@@ -842,9 +800,9 @@ Italics and bold: other quote tests: (3,2,3,3)
 
 !! test
 Italics and bold: other quote tests: (3,(2,2),3)
-!! input
+!! wikitext
 '''this is about ''foo's'' family'''
-!! result
+!! html
 <p><b>this is about <i>foo's</i> family</b>
 </p>
 !!end
@@ -852,9 +810,9 @@ Italics and bold: other quote tests: (3,(2,2),3)
 
 !! test
 Italicized possessive
-!! input
+!! wikitext
 The ''[[Main Page]]'''s talk page.
-!! result
+!! html
 <p>The <i><a href="/wiki/Main_Page" title="Main Page">Main Page</a>'</i>s talk page.
 </p>
 !! end
@@ -864,12 +822,12 @@ Parsoid only: Quote balancing context should be restricted to td/th cells on the
 (Requires tidy for PHP parser output to be fixed up)
 !! options
 parsoid=wt2html,wt2wt
-!! input
+!! wikitext
 {|
 !''a!!''b
 |''a||''b
 |}
-!! result
+!! html
 <table>
 <tbody><tr><th><i>a</i></th><th><i>b</i></th>
 <td><i>a</i></td><td><i>b</i></td></tr>
@@ -882,13 +840,13 @@ parsoid=wt2html,wt2wt
 
 !! test
 Non-html5 tags should be accepted
-!! input
+!! wikitext
 <center>''foo''</center>
 <big>''foo''</big>
 <font>''foo''</font>
 <strike>''foo''</strike>
 <tt>''foo''</tt>
-!! result
+!! html
 <center><i>foo</i></center>
 <p><big><i>foo</i></big>
 <font><i>foo</i></font>
@@ -899,9 +857,9 @@ Non-html5 tags should be accepted
 
 !! test
 <wbr> is valid wikitext (bug 52468)
-!! input
+!! wikitext
 <wbr>
-!! result
+!! html
 <p><wbr />
 </p>
 !! end
@@ -909,11 +867,11 @@ Non-html5 tags should be accepted
 # <strike> is HTML4, <s> is HTML4/5.
 !! test
 <s> or <strike> for strikethrough
-!! input
+!! wikitext
 <strike>strike</strike>
 
 <s>s</s>
-!! result
+!! html
 <p><strike>strike</strike>
 </p><p><s>s</s>
 </p>
@@ -921,7 +879,7 @@ Non-html5 tags should be accepted
 
 !! test
 Non-word characters don't terminate tag names (bug 17663, 40670, 52022)
-!! input
+!! wikitext
 <b→> doesn't work! </b→>
 
 <bä> doesn't work! </bä>
@@ -931,7 +889,7 @@ Non-word characters don't terminate tag names (bug 17663, 40670, 52022)
 <s.foo>s.foo</s.foo>
 
 <sub-ID#1>
-!! result
+!! html
 <p>&lt;b→&gt; doesn't work! &lt;/b→&gt;
 </p><p>&lt;bä&gt; doesn't work! &lt;/bä&gt;
 </p><p>&lt;boo&gt; works fine &lt;/boo&gt;
@@ -942,11 +900,11 @@ Non-word characters don't terminate tag names (bug 17663, 40670, 52022)
 
 !! test
 Isolated close tags should be treated as literal text (bug 52760)
-!! input
+!! wikitext
 </b>
 
 <s.foo>s</s>
-!! result
+!! html
 <p>&lt;/b&gt;
 </p><p>&lt;s.foo&gt;s&lt;/s&gt;
 </p>
@@ -958,18 +916,18 @@ Isolated close tags should be treated as literal text (bug 52760)
 
 !! test
 Bare pipe character (bug 52363)
-!! input
+!! wikitext
 |
-!! result
+!! html
 <p>|
 </p>
 !! end
 
 !! test
 Bare pipe character from a template (bug 52363)
-!! input
+!! wikitext
 {{pipe}}
-!! result
+!! html
 <p>|
 </p>
 !! end
@@ -980,16 +938,16 @@ Bare pipe character from a template (bug 52363)
 
 !! test
 <nowiki> unordered list
-!! input
+!! wikitext
 <nowiki>* This is not an unordered list item.</nowiki>
-!! result
+!! html
 <p>* This is not an unordered list item.
 </p>
 !! end
 
 !! test
 <nowiki> spacing
-!! input
+!! wikitext
 <nowiki>Lorem ipsum dolor
 
 sed abit.
@@ -997,7 +955,7 @@ sed abit.
 
 :and a colon
 </nowiki>
-!! result
+!! html
 <p>Lorem ipsum dolor
 
 sed abit.
@@ -1010,7 +968,7 @@ sed abit.
 
 !! test
 nowiki 3
-!! input
+!! wikitext
 :There is not nowiki.
 :There is <nowiki>nowiki</nowiki>.
 
@@ -1019,7 +977,7 @@ nowiki 3
 
 *There is not nowiki.
 *There is <nowiki>nowiki</nowiki>.
-!! result
+!! html
 <dl>
 <dd>There is not nowiki.
 </dd>
@@ -1043,9 +1001,9 @@ nowiki 3
 
 !! test
 Entities inside <nowiki>
-!! input
+!! wikitext
 <nowiki>&lt;</nowiki>
-!! result
+!! html
 <p>&lt;
 </p>
 !! end
@@ -1054,9 +1012,9 @@ Entities inside <nowiki>
 Entities inside template parameters
 !! options
 parsoid
-!! input
+!! wikitext
 {{echo|&ndash;}}
-!! result
+!! html
 <p><span typeof="mw:Transclusion mw:Entity" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&amp;ndash;"}},"i":0}}]}'>&ndash;</span>
 </p>
 !! end
@@ -1066,7 +1024,7 @@ parsoid
 ###
 !! test
 Comments and Indent-Pre
-!! input
+!! wikitext
 <!-- comment 1 --> asdf
 
 <!-- comment 1 --> asdf
@@ -1077,7 +1035,7 @@ Comments and Indent-Pre
 
 <!-- comment 1 --> asdf
 <!-- comment 2 --> xyz
-!! result
+!! html
 <pre>asdf
 </pre>
 <pre>asdf
@@ -1093,11 +1051,11 @@ xyz
 
 !! test
 Comment test 2a
-!! input
+!! wikitext
 asdf
 <!-- comment 1 -->
 jkl
-!! result
+!! html
 <p>asdf
 jkl
 </p>
@@ -1105,12 +1063,12 @@ jkl
 
 !! test
 Comment test 2b
-!! input
+!! wikitext
 asdf
 <!-- comment 1 -->
 
 jkl
-!! result
+!! html
 <p>asdf
 </p><p>jkl
 </p>
@@ -1118,12 +1076,12 @@ jkl
 
 !! test
 Comment test 3
-!! input
+!! wikitext
 asdf
 <!-- comment 1 -->
 <!-- comment 2 -->
 jkl
-!! result
+!! html
 <p>asdf
 jkl
 </p>
@@ -1131,20 +1089,20 @@ jkl
 
 !! test
 Comment test 4
-!! input
+!! wikitext
 asdf<!-- comment 1 -->jkl
-!! result
+!! html
 <p>asdfjkl
 </p>
 !! end
 
 !! test
 Comment spacing
-!! input
+!! wikitext
 a
  <!-- foo --> b <!-- bar -->
 c
-!! result
+!! html
 <p>a
 </p>
 <pre> b 
 
 !! test
 Comment whitespace
-!! input
+!! wikitext
 <!-- returns a single newline, not nothing, since the newline after > is not stripped -->
-!! result
+!! html
 
 !! end
 
 !! test
 Comment semantics and delimiters
-!! input
+!! wikitext
 <!-- --><!----><!-----><!------>
-!! result
+!! html
 
 !! end
 
 !! test
 Comment semantics and delimiters, redux
-!! input
+!! wikitext
 <!-- In SGML every "foo" here would actually show up in the text -- foo -- bar
 -- foo -- funky huh? ... -->
-!! result
+!! html
 
 !! end
 
 !! test
 Comment semantics and delimiters: directors cut
-!! input
+!! wikitext
 <!-- ... However we like to keep things simple and somewhat XML-ish so we eat
 everything starting with < followed by !-- until the first -- and > we see,
 that wouldn't be valid XML however, since in XML -- has to terminate a comment
 -->-->
-!! result
+!! html
 <p>--&gt;
 </p>
 !! end
 
 !! test
 Comment semantics: nesting
-!! input
+!! wikitext
 <!--<!-- no, we're not going to do anything fancy here -->-->
-!! result
+!! html
 <p>--&gt;
 </p>
 !! end
 
 !! test
 Comment semantics: unclosed comment at end
-!! input
+!! wikitext
 <!--This comment will run out to the end of the document
-!! result
+!! html
 
 !! end
 
 !! test
 Comment in template title
-!! input
+!! wikitext
 {{f<!---->oo}}
-!! result
+!! html
 <p>FOO
 </p>
 !! end
 
 !! test
 Comment on its own line post-expand
-!! input
+!! wikitext
 a
 {{blank}}<!---->
 b
-!! result
+!! html
 <p>a
 </p><p>b
 </p>
 
 !! test
 Comment on its own line post-expand with non-significant whitespace
-!! input
+!! wikitext
 a
  {{blank}} <!----> 
 b
-!! result
+!! html
 <p>a
 </p><p>b
 </p>
 ###
 !! test
 No block tags
-!! input
+!! wikitext
 a
 
 b
-!! result
+!! html
 <p>a
 </p><p>b
 </p>
 
 !! test
 Block tag on one line (<div>)
-!! input
+!! wikitext
 a <div>foo</div>
 
 b
-!! result
+!! html
 a <div>foo</div>
 <p>b
 </p>
@@ -1269,11 +1227,11 @@ a <div>foo</div>
 
 !! test
 Block tag on one line (<blockquote>)
-!! input
+!! wikitext
 a <blockquote>foo</blockquote>
 
 b
-!! result
+!! html
 a <blockquote>foo</blockquote>
 <p>b
 </p>
@@ -1281,11 +1239,11 @@ a <blockquote>foo</blockquote>
 
 !! test
 Block tag on both lines (<div>)
-!! input
+!! wikitext
 a <div>foo</div>
 
 b <div>foo</div>
-!! result
+!! html
 a <div>foo</div>
 b <div>foo</div>
 
@@ -1293,11 +1251,11 @@ b <div>foo</div>
 
 !! test
 Block tag on both lines (<blockquote>)
-!! input
+!! wikitext
 a <blockquote>foo</blockquote>
 
 b <blockquote>foo</blockquote>
-!! result
+!! html
 a <blockquote>foo</blockquote>
 b <blockquote>foo</blockquote>
 
@@ -1305,13 +1263,13 @@ b <blockquote>foo</blockquote>
 
 !! test
 Multiple lines without block tags
-!! input
+!! wikitext
 <div>foo</div> a
 b
 c
 d<!--foo--> e
 x <div>foo</div> z
-!! result
+!! html
 <div>foo</div> a
 <p>b
 c
@@ -1323,7 +1281,7 @@ x <div>foo</div> z
 
 !! test
 Empty lines between lines with block tags
-!! input
+!! wikitext
 <div></div>
 
 
@@ -1336,7 +1294,7 @@ b
 
 
 <div>e</div>
-!! result
+!! html
 <div></div>
 <p><br />
 </p>
 ## PHP parser emits output which is broken
 !! test
 Unclosed HTML p-tags should be handled properly
-!! options
-parsoid
-!! input
+!! wikitext
 <div><p>foo</div>
 a
 
 b
-!! result
+!! html/parsoid
 <div data-parsoid='{"stx":"html"}'><p data-parsoid='{"stx":"html", "autoInsertedEnd":true}'>foo</p></div>
 <p>a</p>
 <p>b</p>
 ###
 !! test
 Preformatted text
-!! input
+!! wikitext
  This is some
  Preformatted text
  With ''italic''
  And '''bold'''
  And a [[Main Page|link]]
-!! result
+!! html
 <pre>This is some
 Preformatted text
 With <i>italic</i>
@@ -1389,12 +1345,12 @@ And a <a href="/wiki/Main_Page" title="Main Page">link</a>
 
 !! test
 Tabs don't trigger preformatted text
-!! input
+!! wikitext
        This is not
         preformatted text.
  This is preformatted text.
        So is this.
-!! result
+!! html
 <p>    This is not
         preformatted text.
 </p>
@@ -1405,10 +1361,10 @@ Tabs don't trigger preformatted text
 
 !! test
 Ident preformatting with inline content
-!! input
+!! wikitext
  a
  ''b''
-!! result
+!! html
 <pre>a
 <i>b</i>
 </pre>
@@ -1416,13 +1372,13 @@ Ident preformatting with inline content
 
 !! test
 <pre> with <nowiki> inside (compatibility with 1.6 and earlier)
-!! input
+!! wikitext
 <pre><nowiki>
 <b>
 <cite>
 <em>
 </nowiki></pre>
-!! result
+!! html
 <pre>
 &lt;b&gt;
 &lt;cite&gt;
@@ -1433,11 +1389,11 @@ Ident preformatting with inline content
 
 !! test
 Regression with preformatted in <center>
-!! input
+!! wikitext
 <center>
  Blah
 </center>
-!! result
+!! html
 <center>
 <pre>Blah
 </pre>
@@ -1447,7 +1403,7 @@ Regression with preformatted in <center>
 
 !! test
 Bug 52763: Preformatted in <blockquote>
-!! input
+!! wikitext
 <blockquote>
  Blah
 {|
@@ -1455,7 +1411,7 @@ Bug 52763: Preformatted in <blockquote>
  indented cell (no pre-wrapping!)
 |}
 </blockquote>
-!! result
+!! html
 <blockquote>
 <p> Blah
 </p>
@@ -1471,13 +1427,13 @@ Bug 52763: Preformatted in <blockquote>
 
 !! test
 Bug 51086: Double newlines in blockquotes should be turned into paragraphs
-!! input
+!! wikitext
 <blockquote>
 Foo
 
 Bar
 </blockquote>
-!! result
+!! html
 <blockquote>
 <p>Foo
 </p><p>Bar
@@ -1488,11 +1444,11 @@ Bar
 
 !! test
 Bug 15491: <ins>/<del> in blockquote
-!! input
+!! wikitext
 <blockquote>
 Foo <del>bar</del> <ins>baz</ins> quux
 </blockquote>
-!! result
+!! html
 <blockquote>
 <p>Foo <del>bar</del> <ins>baz</ins> quux
 </p>
@@ -1505,10 +1461,10 @@ Foo <del>bar</del> <ins>baz</ins> quux
 # below in a <p> tag. (see comment 23-25 of bug #6200)
 !! test
 Bug 15491: <ins>/<del> in blockquote (2)
-!! input
+!! wikitext
 <blockquote>Foo <del>bar</del> <ins>baz</ins> quux
 </blockquote>
-!! result
+!! html
 <blockquote>Foo <del>bar</del> <ins>baz</ins> quux
 </blockquote>
 
@@ -1516,52 +1472,52 @@ Bug 15491: <ins>/<del> in blockquote (2)
 
 !! test
 <pre> with attributes (bug 3202)
-!! input
+!! wikitext
 <pre style="background: blue; color:white">Bluescreen of WikiDeath</pre>
-!! result
+!! html
 <pre style="background: blue; color:white">Bluescreen of WikiDeath</pre>
 
 !! end
 
 !! test
 <pre> with width attribute (bug 3202)
-!! input
+!! wikitext
 <pre width="8">Narrow screen goodies</pre>
-!! result
+!! html
 <pre width="8">Narrow screen goodies</pre>
 
 !! end
 
 !! test
 <pre> with forbidden attribute (bug 3202)
-!! input
+!! wikitext
 <pre width="8" onmouseover="alert(document.cookie)">Narrow screen goodies</pre>
-!! result
+!! html
 <pre width="8">Narrow screen goodies</pre>
 
 !! end
 
 !! test
 Entities inside <pre>
-!! input
+!! wikitext
 <pre>&lt;</pre>
-!! result
+!! html
 <pre>&lt;</pre>
 
 !! end
 
 !! test
 <pre> with forbidden attribute values (bug 3202)
-!! input
+!! wikitext
 <pre width="8" style="border-width: expression(alert(document.cookie))">Narrow screen goodies</pre>
-!! result
+!! html
 <pre width="8" style="/* insecure input */">Narrow screen goodies</pre>
 
 !! end
 
 !! test
 <nowiki> inside <pre> (bug 13238)
-!! input
+!! wikitext
 <pre>
 <nowiki>
 </pre>
@@ -1569,7 +1525,7 @@ Entities inside <pre>
 <nowiki></nowiki>
 </pre>
 <pre><nowiki><nowiki></nowiki>Foo<nowiki></nowiki></nowiki></pre>
-!! result
+!! html
 <pre>
 &lt;nowiki&gt;
 </pre>
@@ -1582,7 +1538,7 @@ Entities inside <pre>
 
 !! test
 <nowiki> and <pre> preference (first one wins)
-!! input
+!! wikitext
 <pre>
 <nowiki>
 </pre>
@@ -1596,7 +1552,7 @@ Entities inside <pre>
 </nowiki>
 </pre>
 
-!! result
+!! html
 <pre>
 &lt;nowiki&gt;
 </pre>
@@ -1613,23 +1569,23 @@ Entities inside <pre>
 
 !! test
 </pre> inside nowiki
-!! input
+!! wikitext
 <nowiki></pre></nowiki>
-!! result
+!! html
 <p>&lt;/pre&gt;
 </p>
 !! end
 
 !! test
 Empty pre; pre inside other HTML tags (bug 54946)
-!! input
+!! wikitext
 a
 
 <div><pre>
 foo
 </pre></div>
 <pre></pre>
-!! result
+!! html
 <p>a
 </p>
 <div><pre>
@@ -1641,10 +1597,10 @@ foo
 
 !! test
 HTML pre followed by indent-pre
-!! input
+!! wikitext
 <pre>foo</pre>
  bar
-!! result
+!! html
 <pre>foo</pre>
 <pre>bar
 </pre>
@@ -1654,36 +1610,36 @@ HTML pre followed by indent-pre
 Block tag pre
 !!options
 parsoid
-!!input
+!! wikitext
 <p><pre>foo</pre></p>
-!!result
-<p data-parsoid='{"stx":"html","autoInsertedEnd":true,"dsr":[0,3,3,0]}'></p><pre data-parsoid='{"stx":"html","dsr":[3,17,5,6]}'>foo</pre><p data-parsoid='{"autoInsertedStart":true,"stx":"html","dsr":[17,21,0,null]}'></p>
+!! html
+<p data-parsoid='{"stx":"html","autoInsertedEnd":true}'></p><pre data-parsoid='{"stx":"html"}'>foo</pre><p data-parsoid='{"autoInsertedStart":true,"stx":"html"}'></p>
 !!end
 
 !!test
 Templates: Indent-Pre: 1a. Templates that break a line should suppress <pre>
-!!input
+!! wikitext
  {{echo|}}
-!!result
+!! html
 
 !!end
 
 !!test
 Templates: Indent-Pre: 1b. Templates that break a line should suppress <pre>
-!!input
+!! wikitext
  {{echo|
 foo}}
-!!result
+!! html
 <p>foo
 </p>
 !!end
 
 !! test
 Templates: Indent-Pre: 1c: Wrapping should be based on expanded content
-!! input
+!! wikitext
  {{echo|a
 b}}
-!!result
+!! html
 <pre>a
 </pre>
 <p>b
@@ -1692,14 +1648,14 @@ b}}
 
 !! test
 Templates: Indent-Pre: 1d: Wrapping should be based on expanded content
-!! input
+!! wikitext
  {{echo|a
 b
 c
  d
 e
 }}
-!!result
+!! html
 <pre>a
 </pre>
 <p>b
@@ -1713,7 +1669,7 @@ c
 
 !!test
 Templates: Indent-Pre: 1e. Wrapping should be based on expanded content
-!!input
+!! wikitext
 {{echo| foo}}
 
 {{echo| foo}}{{echo| bar}}
@@ -1726,7 +1682,7 @@ Templates: Indent-Pre: 1e. Wrapping should be based on expanded content
 <!--cmt-->{{echo| foo}}
 
 {{echo|{{echo| }}bar}}
-!!result
+!! html
 <pre>foo
 </pre>
 <pre>foo bar
@@ -1744,7 +1700,7 @@ bar
 
 !! test
 Templates: Indent-Pre: 1f: Wrapping should be based on expanded content
-!! input
+!! wikitext
 {{echo| }}a
 
 {{echo|
@@ -1758,7 +1714,7 @@ Templates: Indent-Pre: 1f: Wrapping should be based on expanded content
 
 {{echo|a
 }} b
-!!result
+!! html
 <pre>a
 </pre>
 <p><br />
@@ -1781,9 +1737,9 @@ Templates: Indent-Pre: 1f: Wrapping should be based on expanded content
 
 !! test
 Things that look like <pre> tags aren't treated as such
-!! input
+!! wikitext
 Barack Obama <President> of the United States
-!! result
+!! html
 <p>Barack Obama &lt;President&gt; of the United States
 </p>
 !! end
@@ -1792,9 +1748,9 @@ Barack Obama <President> of the United States
 Parsoid: handle pre with space after attribute
 !! options
 parsoid=wt2html
-!! input
+!! wikitext
 <pre style="width:50%;" >{{echo|foo}}</pre>
-!! result
+!! html
 <pre style="width:50%;">{{echo|foo}}</pre>
 !! end
 
@@ -1803,7 +1759,7 @@ parsoid=wt2html
 Parsoid: Don't paragraph-wrap fosterable content
 !! options
 parsoid=wt2html
-!! input
+!! wikitext
 {|
 <td></td>
 <td></td>
@@ -1811,7 +1767,7 @@ parsoid=wt2html
 
 
 |}
-!! result
+!! html
 <table>
 
 <tbody>
@@ -1829,7 +1785,7 @@ parsoid=wt2html
 Parsoid: Don't paragraph-wrap fosterable content even if table syntax is unbalanced
 !! options
 parsoid=wt2html
-!! input
+!! wikitext
 {|
 <td>
 <td>
@@ -1838,7 +1794,7 @@ parsoid=wt2html
 
 
 |}
-!! result
+!! html
 <table>
 
 <tbody>
@@ -1860,7 +1816,7 @@ parsoid=wt2html
 #--------------------------------------------------------------------
 !! test
 Templates: Strip leading and trailing whitespace from named-param values
-!! input
+!! wikitext
 {{echo|1= a }}
 
 {{echo|1= {{echo|b}} }}
@@ -1871,7 +1827,7 @@ Templates: Strip leading and trailing whitespace from named-param values
 {{echo| 1 =
 * d
 }}
-!! result
+!! html
 <p>a
 </p><p>b
 </p><p>c
@@ -1885,7 +1841,7 @@ Templates: Strip leading and trailing whitespace from named-param values
 
 !! test
 Templates: Don't strip whitespace from positional-param values
-!! input
+!! wikitext
 {{echo|a }}
 
 {{echo|{{echo|b}} }}
@@ -1904,7 +1860,7 @@ Templates: Don't strip whitespace from positional-param values
 
 {{echo|
  }}g
-!! result
+!! html
 <p>a 
 </p><p>b 
 </p>
@@ -1932,12 +1888,12 @@ Templates: Don't strip whitespace from positional-param values
 
 !! test
 Templates: Handle empty comment-and-ws-only lines correctly
-!! input
+!! wikitext
 {{echo|foo
 <!--should be ignored-->
  <!--should be ignored as well-->
 bar}}
-!! result
+!! html
 <p>foo
 bar
 </p>
@@ -1950,9 +1906,9 @@ bar
 Templates: Parsoid parameter escaping test 1
 !! options
 parsoid
-!! input
+!! wikitext
 {{echo|[foo]|{{echo|[bar]}}}}
-!! result
+!! html
 <p about="#mwt1" typeof="mw:Transclusion"
 data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[foo]"},"2":{"wt":"{{echo|[bar]}}"}},"i":0}}]}'>[foo]</p>
 !! end
@@ -1961,9 +1917,9 @@ data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},
 Parsoid: Pipes in external links in template parameter
 !! options
 parsoid
-!! input
+!! wikitext
 {{echo|[{{echo|http://example.com}} link]}}
-!! result
+!! html
 <p><a rel="mw:ExtLink" href="http://example.com" about="#mwt31" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[{{echo|http://example.com}} link]"}},"i":0}}]}'>link</a></p>
 !! end
 
@@ -1971,9 +1927,9 @@ parsoid
 Parsoid: pipe in transclusion parameter
 !! options
 parsoid
-!! input
+!! wikitext
 {{echo|http://foo.com/a&#124;b}}
-!! result
+!! html
 <p><a rel="mw:ExtLink" href="http://foo.com/a|b" about="#mwt1"
 typeof="mw:Transclusion"
 data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"http://foo.com/a&amp;#124;b"}},"i":0}}]}'>http://foo.com/a|b</a></p>
@@ -1983,9 +1939,9 @@ data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},
 Parsoid: Pipe in external link target and content in template parameter
 !! options
 parsoid=html2wt,wt2wt
-!! input
+!! wikitext
 {{echo|[http://foo.com/a&#124;b a&#124;b]}}
-!! result
+!! html
 <p><a rel="mw:ExtLink" href="http://foo.com/a|b" about="#mwt1"
 typeof="mw:Transclusion"
 data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},
@@ -1996,11 +1952,11 @@ data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},
 Templates: Don't escape already nowiki-escaped text in template parameters
 !! options
 parsoid=html2wt,wt2wt
-!! input
+!! wikitext
 {{echo|foo<nowiki>|</nowiki>bar}}
 {{echo|<nowiki>&lt;div&gt;</nowiki>}}
 {{echo|<nowiki></nowiki>}}
-!! result
+!! html
 <p><span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"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='{"parts":[{"template":{"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='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<nowiki></nowiki>"}},"i":0}}]}'></span>
@@ -2012,9 +1968,9 @@ parsoid=html2wt,wt2wt
 Templates: '=' char in nested transclusions should not trigger nowiki escapes or conversion to named param
 !! options
 parsoid=html2wt,wt2wt
-!! input
+!! wikitext
 {{echo|{{echo|1=bar}}}}
-!! result
+!! html
 <p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"{{echo|1=bar}}"}},"i":0}}]}'>bar</p>
 !! end
 
@@ -2023,9 +1979,9 @@ parsoid=html2wt,wt2wt
 Templates parameters with special tokenizing behavior dont get modified because of arg escaping
 !! options
 parsoid
-!! input
+!! wikitext
 {{echo|a : b}}
-!! result
+!! html
 <p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a : b"}},"i":0}}]}'>a<span typeof="mw:Placeholder" data-parsoid='{"isDisplayHack":true}'> </span>: b</p>
 !! end
 
@@ -2035,11 +1991,11 @@ parsoid
 
 !!test
 1a. Indent-Pre and Comments
-!!input
+!! wikitext
  a
 <!--a-->
 c
-!!result
+!! html
 <pre>a
 </pre>
 <p>c
 
 !!test
 1b. Indent-Pre and Comments
-!!input
+!! wikitext
  a
  <!--a-->
 c
-!!result
+!! html
 <pre>a
 </pre>
 <p>c
 
 !!test
 1c. Indent-Pre and Comments
-!!input
+!! wikitext
 <!--a-->  a
 
  <!--a--> a
-!!result
+!! html
 <pre> a
 </pre>
 <pre> a
 !!test
 1d. Indent-Pre and Comments
 (Pre-handler currently cannot distinguish between comment/ws order and normalizes them to [comment,ws] order)
-!!input
+!! wikitext
 <!--a--> a
 
  <!--b-->b
-!!result
+!! html
 <pre>a
 </pre>
 <pre>b
 
 !!test
 2a. Indent-Pre and tables
-!!input
+!! wikitext
  {|
  |-
  !h1!!h2
  |foo||bar
  |}
-!!result
+!! html
 <table>
 
 <tr>
 
 !!test
 2b. Indent-Pre and tables
-!!input
+!! wikitext
   {|
  |-
 |foo
 |}
-!!result
+!! html
 <table>
 
 <tr>
 
 !!test
 2c. Indent-Pre and tables (bug 42252)
-!!input
+!! wikitext
 {|
  |+ foo
  !  | bar
 |}
-!!result
+!! html
 <table>
 <caption> foo
 </caption>
 
 !!test
 3a. Indent-Pre and block tags (single-line html)
-!!input
+!! wikitext
  a <p> foo </p>
  b <div> foo </div>
  c <blockquote> foo </blockquote>
  <span> foo </span>
-!!result
+!! html
  a <p> foo </p>
  b <div> foo </div>
  c <blockquote> foo </blockquote>
 !!end
 
 !!test
-3c. Indent-Pre and block tags (multi-line html)
-!!input
+3b. Indent-Pre and block tags (multi-line html)
+!! wikitext
  a <span>foo</span>
  b <div> foo </div>
-!!result
+!! html
 <pre>a <span>foo</span>
 </pre>
  b <div> foo </div>
@@ -2168,8 +2124,8 @@ c
 !!end
 
 !!test
-3b. Indent-Pre and block tags (pre-content on separate line)
-!!input
+3c. Indent-Pre and block tags (pre-content on separate line)
+!! wikitext
 <p>
  foo
 </p>
@@ -2200,7 +2156,7 @@ foo
   foo
 </li></ul>
 
-!!result
+!! html
 <p>
  foo
 </p>
@@ -2231,15 +2187,87 @@ foo
 
 !!end
 
+!!test
+4. Indent-Pre and extension tags
+!! wikitext
+ a <gallery>
+File:foobar.jpg
+</gallery>
+!! html
+ a <ul class="gallery mw-gallery-traditional">
+               <li class="gallerybox" style="width: 155px"><div style="width: 155px">
+                       <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div></div>
+                       <div class="gallerytext">
+                       </div>
+               </div></li>
+</ul>
+
+!!end
+
+!! test
+Leading pipes outside of tables
+!! options
+parsoid
+!! wikitext
+| foo
+!! html
+<p>| foo</p>
+!! end
+
+!! test
+Leading pipes outside of tables 2
+!! options
+parsoid
+!! wikitext
+a
+| foo
+b
+!! html
+<p>a
+| foo
+b</p>
+!! end
+
+!! test
+Leading pipes outside of tables 3
+!! options
+parsoid
+!! wikitext
+a
+| class="foo bar" | baz
+b
+!! html
+<p>a
+| class="foo bar" | baz
+b</p>
+!! end
+
+!!test
+Render paragraphs when indent-pre is suppressed in blocklevels
+!! wikitext
+<blockquote>
+ foo
+
+ bar
+</blockquote>
+!! html
+<blockquote>
+<p> foo
+</p><p> bar
+</p>
+</blockquote>
+
+!!end
+
 !!test
 4. Multiple spaces at start-of-line
-!!input
+!! wikitext
     <p> foo </p>
     foo
        {|
 |foo
 |}
-!!result
+!! html
     <p> foo </p>
 <pre>   foo
 </pre>
@@ -2253,11 +2281,11 @@ foo
 ## NOTE: the leading white-space chars on empty line are significant
 !! test
 5a. White-space in indent-pre
-!! input
+!! wikitext
  a<br />
  
  b
-!! result
+!! html
 <pre>a<br />
 
 b
 ## NOTE: the leading white-space chars on empty line are significant
 !! test
 5b. White-space in indent-pre
-!! input
+!! wikitext
  a
  
  b
  
  
  c
-!! result
+!! html
 <pre>a
 
 b
 
 !! test
 5c. White-space in indent-pre
-!! input
+!! wikitext
  ''a''
   ''b''
    ''c''
-!! result
+!! html
 <pre><i>a</i>
  <i>b</i>
   <i>c</i>
@@ -2299,7 +2327,7 @@ c
 
 !! test
 6. Pre-blocks should extend across lines with leading WS even when there is no wrappable content
-!! input
+!! wikitext
  a
  
  <!-- continue -->
@@ -2308,7 +2336,7 @@ c
  c
  
 d
-!! result
+!! html
 <pre>a
 
 b
 7a. Indent-pre and category links
 !! options
 parsoid=wt2html,wt2wt
-!! input
+!! wikitext
  [[Category:foo]] <!-- No pre-wrapping -->
 {{echo| [[Category:foo]]}} <!-- No pre-wrapping -->
-!! result
+!! html
  <link rel="mw:PageProp/Category" href="./Category:Foo"> <!-- No pre-wrapping -->
 <span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":" [[Category:foo]]"}},"i":0}}]}'> </span>
 <link rel="mw:PageProp/Category" href="./Category:Foo" about="#mwt1"> <!-- No pre-wrapping -->
@@ -2337,10 +2365,10 @@ parsoid=wt2html,wt2wt
 7b. Indent-pre and category links
 !! options
 parsoid=wt2html,wt2wt
-!! input
+!! wikitext
  [[Category:foo]] a
  [[Category:foo]] {{echo|b}}
-!! result
+!! html
 <pre>
 <link rel="mw:PageProp/Category" href="./Category:Foo"> a
 
@@ -2353,7 +2381,7 @@ parsoid=wt2html,wt2wt
 
 !!test
 HTML-pre: 1. embedded newlines
-!!input
+!! wikitext
 <pre>foo</pre>
 
 <pre>
@@ -2370,7 +2398,7 @@ foo
 
 foo
 </pre>
-!!result
+!! html
 <pre>foo</pre>
 <pre>
 foo
@@ -2389,11 +2417,11 @@ foo
 
 !!test
 HTML-pre: 2: indented text
-!!input
+!! wikitext
 <pre>
  foo
 </pre>
-!!result
+!! html
 <pre>
  foo
 </pre>
@@ -2402,7 +2430,7 @@ HTML-pre: 2: indented text
 
 !!test
 HTML-pre: 3: other wikitext
-!!input
+!! wikitext
 <pre>
 * foo
 # bar
@@ -2410,7 +2438,7 @@ HTML-pre: 3: other wikitext
 '' no-italic ''
 [[ NoLink ]]
 </pre>
-!!result
+!! html
 <pre>
 * foo
 # bar
@@ -2426,9 +2454,9 @@ HTML-pre: 3: other wikitext
 ###
 !! test
 Simple definition
-!! input
+!! wikitext
 ; name : Definition
-!! result
+!! html
 <dl>
 <dt> name&#160;</dt>
 <dd> Definition
@@ -2439,9 +2467,9 @@ Simple definition
 
 !! test
 Definition list for indentation only
-!! input
+!! wikitext
 : Indented text
-!! result
+!! html
 <dl>
 <dd> Indented text
 </dd>
@@ -2451,9 +2479,9 @@ Definition list for indentation only
 
 !! test
 Definition list with no space
-!! input
+!! wikitext
 ;name:Definition
-!! result
+!! html
 <dl>
 <dt>name</dt>
 <dd>Definition
@@ -2464,9 +2492,9 @@ Definition list with no space
 
 !! test
 Definition list with URL link
-!! input
+!! wikitext
 ; http://example.com/ : definition
-!! result
+!! html
 <dl>
 <dt> <a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a>&#160;</dt>
 <dd> definition
@@ -2477,9 +2505,9 @@ Definition list with URL link
 
 !! test
 Definition list with bracketed URL link
-!! input
+!! wikitext
 ;[http://www.example.com/ Example]:Something about it
-!! result
+!! html
 <dl>
 <dt><a rel="nofollow" class="external text" href="http://www.example.com/">Example</a></dt>
 <dd>Something about it
@@ -2490,9 +2518,9 @@ Definition list with bracketed URL link
 
 !! test
 Definition list with wikilink containing colon
-!! input
+!! wikitext
 ; [[Help:FAQ]]: The least-read page on Wikipedia
-!! result
+!! html
 <dl>
 <dt> <a href="/index.php?title=Help:FAQ&amp;action=edit&amp;redlink=1" class="new" title="Help:FAQ (page does not exist)">Help:FAQ</a></dt>
 <dd> The least-read page on Wikipedia
@@ -2504,9 +2532,9 @@ Definition list with wikilink containing colon
 # At Brion's and JeLuF's insistence... :)
 !! test
 Definition list with news link containing colon
-!! input
+!! wikitext
 ;  news:alt.wikipedia.rox: This isn't even a real newsgroup!
-!! result
+!! html
 <dl>
 <dt>  <a rel="nofollow" class="external free" href="news:alt.wikipedia.rox">news:alt.wikipedia.rox</a></dt>
 <dd> This isn't even a real newsgroup!
@@ -2517,9 +2545,9 @@ Definition list with news link containing colon
 
 !! test
 Malformed definition list with colon
-!! input
+!! wikitext
 ;  news:alt.wikipedia.rox -- don't crash or enter an infinite loop
-!! result
+!! html
 <dl>
 <dt>  <a rel="nofollow" class="external free" href="news:alt.wikipedia.rox">news:alt.wikipedia.rox</a> -- don't crash or enter an infinite loop
 </dt>
@@ -2529,9 +2557,9 @@ Malformed definition list with colon
 
 !! test
 Definition lists: colon in external link text
-!! input
+!! wikitext
 ; [http://www.wikipedia2.org/ Wikipedia : The Next Generation]: OK, I made that up
-!! result
+!! html
 <dl>
 <dt> <a rel="nofollow" class="external text" href="http://www.wikipedia2.org/">Wikipedia&#160;: The Next Generation</a></dt>
 <dd> OK, I made that up
@@ -2542,9 +2570,9 @@ Definition lists: colon in external link text
 
 !! test
 Definition lists: colon in HTML attribute
-!! input
+!! wikitext
 ;<b style="display: inline">bold</b>
-!! result
+!! html
 <dl>
 <dt><b style="display: inline">bold</b>
 </dt>
@@ -2554,9 +2582,9 @@ Definition lists: colon in HTML attribute
 
 !! test
 Definition lists: self-closed tag
-!! input
+!! wikitext
 ;one<br/>two : two-line fun
-!! result
+!! html
 <dl>
 <dt>one<br />two&#160;</dt>
 <dd> two-line fun
@@ -2567,14 +2595,14 @@ Definition lists: self-closed tag
 
 !! test
 Bug 11748: Literal closing tags
-!! input
+!! wikitext
 <dl>
 <dt>test 1</dt>
 <dd>test test test test test</dd>
 <dt>test 2</dt>
 <dd>test test test test test</dd>
 </dl>
-!! result
+!! html
 <dl>
 <dt>test 1</dt>
 <dd>test test test test test</dd>
@@ -2586,12 +2614,12 @@ Bug 11748: Literal closing tags
 
 !! test
 Definition and unordered list using wiki syntax nested in unordered list using html tags.
-!! input
+!! wikitext
 <ul><li>
 ; term : description
 * unordered
 </li></ul>
-!! result
+!! html
 <ul><li>
 <dl>
 <dt> term&#160;</dt>
@@ -2609,10 +2637,10 @@ Definition and unordered list using wiki syntax nested in unordered list using h
 !! test
 
 Definition list with empty definition and following paragraph
-!! input
+!! wikitext
 ; term:
 Paragraph text
-!! result
+!! html
 <dl>
 <dt> term</dt>
 <dd>
@@ -2624,13 +2652,13 @@ Paragraph text
 
 !! test
 Nested definition lists using html syntax
-!! input
+!! wikitext
 <dl><dd>
 <dl>
 <dd>Foo</dd>
 </dl>
 </dd></dl>
-!! result
+!! html
 <dl><dd>
 <dl>
 <dd>Foo</dd>
@@ -2641,11 +2669,11 @@ Nested definition lists using html syntax
 
 !! test
 Definition Lists: No nesting: Multiple dd's
-!! input
+!! wikitext
 ;x
 :a
 :b
-!! result
+!! html
 <dl>
 <dt>x
 </dt>
@@ -2659,11 +2687,11 @@ Definition Lists: No nesting: Multiple dd's
 
 !! test
 Definition Lists: Indentation: Regular
-!! input
+!! wikitext
 :i1
 ::i2
 :::i3
-!! result
+!! html
 <dl>
 <dd>i1
 <dl>
@@ -2681,10 +2709,10 @@ Definition Lists: Indentation: Regular
 
 !! test
 Definition Lists: Indentation: Missing 1st level
-!! input
+!! wikitext
 ::i2
 :::i3
-!! result
+!! html
 <dl>
 <dd><dl>
 <dd>i2
@@ -2701,9 +2729,9 @@ Definition Lists: Indentation: Missing 1st level
 
 !! test
 Definition Lists: Indentation: Multi-level indent
-!! input
+!! wikitext
 :::i3
-!! result
+!! html
 <dl>
 <dd><dl>
 <dd><dl>
@@ -2719,14 +2747,14 @@ Definition Lists: Indentation: Multi-level indent
 
 !! test
 Definition Lists: Hacky use to indent tables
-!! input
+!! wikitext
 ::{|
 |foo
 |bar
 |}
 this text
 should be left alone
-!! result
+!! html
 <dl><dd><dl><dd><table>
 <tr>
 <td>foo
@@ -2743,11 +2771,11 @@ should be left alone
 Definition Lists: Hacky use to indent tables (WS-insensitive)
 !! options
 parsoid
-!! input
+!! wikitext
 : {|
 |a
 |} 
-!! result
+!! html
 <dl>
 <dd> <table><tr><td>a</td></tr></table> </dd>
 </dl>
@@ -2789,7 +2817,7 @@ parsoid
 
 !! test
 Table / list interaction: indented table with lists in table contents
-!! input
+!! wikitext
 :{|
 |-
 | a
@@ -2798,7 +2826,7 @@ Table / list interaction: indented table with lists in table contents
 | c
 * d
 |}
-!! result
+!! html
 <dl><dd><table>
 
 <tr>
@@ -2820,7 +2848,7 @@ Table / list interaction: indented table with lists in table contents
 
 !!test
 Table / list interaction: lists nested in tables nested in indented lists
-!!input
+!! wikitext
 :{|
 |
 :a
@@ -2832,7 +2860,7 @@ Table / list interaction: lists nested in tables nested in indented lists
 
 *e
 *f
-!!result
+!! html
 <dl><dd><table>
 <tr>
 <td>
@@ -2864,11 +2892,11 @@ Table / list interaction: lists nested in tables nested in indented lists
 Definition Lists: Nesting: Multi-level (Parsoid only)
 !! options
 parsoid
-!! input
+!! wikitext
 ;t1 :d1
 ;;t2 ::d2
 ;;;t3 :::d3
-!! result
+!! html
 <dl>
   <dt>t1 </dt>
   <dd>d1</dd>
@@ -2894,10 +2922,10 @@ parsoid
 Definition Lists: Nesting: Test 2 (Parsoid only)
 !! options
 parsoid
-!! input
+!! wikitext
 ;t1
 ::d2
-!! result
+!! html
 <dl>
   <dt>t1</dt>
   <dd>
@@ -2914,10 +2942,10 @@ parsoid
 Definition Lists: Nesting: Test 3 (Parsoid only)
 !! options
 parsoid
-!! input
+!! wikitext
 :;t1
 ::::d2
-!! result
+!! html
 <dl>
   <dd>
     <dl>
@@ -2940,10 +2968,10 @@ parsoid
 
 !! test
 Definition Lists: Nesting: Test 4
-!! input
+!! wikitext
 ::;t3
 :::d3
-!! result
+!! html
 <dl>
 <dd><dl>
 <dd><dl>
@@ -2964,14 +2992,12 @@ Definition Lists: Nesting: Test 4
 ## bug in the PHP parser.  (Parsoid team thinks the PHP parser is
 ## wrong to close the <dl> after the <dt> containing the <ul>.)
 !! test
-Definition Lists: Mixed Lists: Test 1 (php)
-!! options
-php
-!! input
+Definition Lists: Mixed Lists: Test 1
+!! wikitext
 :;* foo
 ::* bar
 :; baz
-!! result
+!! html/php
 <dl>
 <dd><dl>
 <dt><ul>
@@ -2989,16 +3015,7 @@ php
 </dd>
 </dl>
 
-!! end
-!! test
-Definition Lists: Mixed Lists: Test 1 (parsoid)
-!! options
-parsoid
-!! input
-:;* foo
-::* bar
-:; baz
-!! result
+!! html/parsoid
 <dl>
 <dd><dl>
 <dt><ul>
@@ -3016,10 +3033,10 @@ parsoid
 
 !! test
 Definition Lists: Mixed Lists: Test 2
-!! input
+!! wikitext
 *: d1
 *: d2
-!! result
+!! html
 <ul>
 <li><dl>
 <dd> d1
@@ -3035,10 +3052,10 @@ Definition Lists: Mixed Lists: Test 2
 
 !! test
 Definition Lists: Mixed Lists: Test 3
-!! input
+!! wikitext
 *::: d1
 *::: d2
-!! result
+!! html
 <ul>
 <li><dl>
 <dd><dl>
@@ -3060,10 +3077,10 @@ Definition Lists: Mixed Lists: Test 3
 
 !! test
 Definition Lists: Mixed Lists: Test 4
-!! input
+!! wikitext
 *;d1 :d2
 *;d3 :d4
-!! result
+!! html
 <ul>
 <li><dl>
 <dt>d1&#160;</dt>
@@ -3081,10 +3098,10 @@ Definition Lists: Mixed Lists: Test 4
 
 !! test
 Definition Lists: Mixed Lists: Test 5
-!! input
+!! wikitext
 *:d1
 *:: d2
-!! result
+!! html
 <ul>
 <li><dl>
 <dd>d1
@@ -3102,10 +3119,10 @@ Definition Lists: Mixed Lists: Test 5
 
 !! test
 Definition Lists: Mixed Lists: Test 6
-!! input
+!! wikitext
 #*:d1
 #*::: d3
-!! result
+!! html
 <ol>
 <li><ul>
 <li><dl>
@@ -3129,10 +3146,10 @@ Definition Lists: Mixed Lists: Test 6
 
 !! test
 Definition Lists: Mixed Lists: Test 7
-!! input
+!! wikitext
 :* d1
 :* d2
-!! result
+!! html
 <dl>
 <dd><ul>
 <li> d1
@@ -3148,10 +3165,10 @@ Definition Lists: Mixed Lists: Test 7
 
 !! test
 Definition Lists: Mixed Lists: Test 8
-!! input
+!! wikitext
 :* d1
 ::* d2
-!! result
+!! html
 <dl>
 <dd><ul>
 <li> d1
@@ -3172,9 +3189,9 @@ Definition Lists: Mixed Lists: Test 8
 
 !! test
 Definition Lists: Mixed Lists: Test 9
-!! input
+!! wikitext
 *;foo :bar
-!! result
+!! html
 <ul>
 <li><dl>
 <dt>foo&#160;</dt>
@@ -3189,9 +3206,9 @@ Definition Lists: Mixed Lists: Test 9
 
 !! test
 Definition Lists: Mixed Lists: Test 10
-!! input
+!! wikitext
 *#;foo :bar
-!! result
+!! html
 <ul>
 <li><ol>
 <li><dl>
@@ -3212,13 +3229,11 @@ Definition Lists: Mixed Lists: Test 10
 # still-open tags around until the nesting is complete.
 
 !! test
-Definition Lists: Mixed Lists: Test 11 (php)
-!! options
-php
-!! input
+Definition Lists: Mixed Lists: Test 11
+!! wikitext
 *#*#;*;;foo :bar
 *#*#;boo :baz
-!! result
+!! html/php
 <ul>
 <li><ol>
 <li><ul>
@@ -3251,15 +3266,7 @@ php
 </li>
 </ul>
 
-!! end
-!! test
-Definition Lists: Mixed Lists: Test 11 (parsoid)
-!! options
-parsoid
-!! input
-*#*#;*;;foo :bar
-*#*#;boo :baz
-!! result
+!! html/parsoid
 <ul>
 <li>
 <ol>
@@ -3291,12 +3298,10 @@ parsoid
 
 
 !! test
-Definition Lists: Weird Ones: Test 1 (php)
-!! options
-php
-!! input
+Definition Lists: Weird Ones: Test 1
+!! wikitext
 *#;*::;; foo : bar (who uses this?)
-!! result
+!! html/php
 <ul>
 <li><ol>
 <li><dl>
@@ -3324,14 +3329,7 @@ php
 </li>
 </ul>
 
-!! end
-!! test
-Definition Lists: Weird Ones: Test 1 (parsoid)
-!! options
-parsoid
-!! input
-*#;*::;; foo : bar (who uses this?)
-!! result
+!! html/parsoid
 <ul>
 <li>
 <ol>
@@ -3364,20 +3362,20 @@ parsoid
 ###
 !! test
 External links: non-bracketed
-!! input
+!! wikitext
 Non-bracketed: http://example.com
-!! result
+!! html
 <p>Non-bracketed: <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
 </p>
 !! end
 
 !! test
 External links: numbered
-!! input
+!! wikitext
 Numbered: [http://example.com]
 Numbered: [http://example.net]
 Numbered: [http://example.com]
-!! result
+!! html
 <p>Numbered: <a rel="nofollow" class="external autonumber" href="http://example.com">[1]</a>
 Numbered: <a rel="nofollow" class="external autonumber" href="http://example.net">[2]</a>
 Numbered: <a rel="nofollow" class="external autonumber" href="http://example.com">[3]</a>
@@ -3386,73 +3384,73 @@ Numbered: <a rel="nofollow" class="external autonumber" href="http://example.com
 
 !! test
 External links: specified text
-!! input
+!! wikitext
 Specified text: [http://example.com link]
-!! result
+!! html
 <p>Specified text: <a rel="nofollow" class="external text" href="http://example.com">link</a>
 </p>
 !!end
 
 !! test
 External links: trail
-!! input
+!! wikitext
 Linktrails should not work for external links: [http://example.com link]s
-!! result
+!! html
 <p>Linktrails should not work for external links: <a rel="nofollow" class="external text" href="http://example.com">link</a>s
 </p>
 !! end
 
 !! test
 External links: dollar sign in URL
-!! input
+!! wikitext
 http://example.com/1$2345
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://example.com/1$2345">http://example.com/1$2345</a>
 </p>
 !! end
 
 !! test
 External links: dollar sign in URL (named)
-!! input
+!! wikitext
 [http://example.com/1$2345]
-!! result
+!! html
 <p><a rel="nofollow" class="external autonumber" href="http://example.com/1$2345">[1]</a>
 </p>
 !!end
 
 !! test
 External links: open square bracket forbidden in URL (bug 4377)
-!! input
+!! wikitext
 http://example.com/1[2345
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://example.com/1">http://example.com/1</a>[2345
 </p>
 !! end
 
 !! test
 External links: open square bracket forbidden in URL (named) (bug 4377)
-!! input
+!! wikitext
 [http://example.com/1[2345]
-!! result
+!! html
 <p><a rel="nofollow" class="external text" href="http://example.com/1">[2345</a>
 </p>
 !!end
 
 !! test
 External links: nowiki in URL link text (bug 6230)
-!!input
+!! wikitext
 [http://example.com/ <nowiki>''example site''</nowiki>]
-!! result
+!! html
 <p><a rel="nofollow" class="external text" href="http://example.com/">''example site''</a>
 </p>
 !! end
 
 !! test
 External links: newline forbidden in text (bug 6230 regression check)
-!! input
+!! wikitext
 [http://example.com/ first
 second]
-!! result
+!! html
 <p>[<a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a> first
 second]
 </p>
@@ -3460,63 +3458,63 @@ second]
 
 !! test
 External links: Pipe char between url and text
-!! input
+!! wikitext
 [http://example.com | link]
-!! result
+!! html
 <p><a rel="nofollow" class="external text" href="http://example.com">| link</a>
 </p>
 !!end
 
 !! test
 External links: protocol-relative URL in brackets
-!! input
+!! wikitext
 [//example.com/ Test]
-!! result
+!! html
 <p><a rel="nofollow" class="external text" href="//example.com/">Test</a>
 </p>
 !! end
 
 !! test
 External links: protocol-relative URL in brackets without text
-!! input
+!! wikitext
 [//example.com]
-!! result
+!! html
 <p><a rel="nofollow" class="external autonumber" href="//example.com">[1]</a>
 </p>
 !! end
 
 !! test
 External links: protocol-relative URL in free text is left alone
-!! input
+!! wikitext
 //example.com/Foo
-!! result
+!! html
 <p>//example.com/Foo
 </p>
 !!end
 
 !! test
 External links: protocol-relative URL in the middle of a word is left alone (bug 30269)
-!! input
+!! wikitext
 foo//example.com/Foo
-!! result
+!! html
 <p>foo//example.com/Foo
 </p>
 !! end
 
 !! test
 External image
-!! input
+!! wikitext
 External image: http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
-!! result
+!! html
 <p>External image: <img src="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" />
 </p>
 !! end
 
 !! test
 External image from https
-!! input
+!! wikitext
 External image from https: https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
-!! result
+!! html
 <p>External image from https: <img src="https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" />
 </p>
 !! end
@@ -3525,135 +3523,135 @@ External image from https: https://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
 External image (when not allowed)
 !! options
 wgAllowExternalImages=0
-!! input
+!! wikitext
 External image: http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png
-!! result
+!! html
 <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
+!! wikitext
 Link to non-http image, no img tag: ftp://example.com/test.jpg
-!! result
+!! html
 <p>Link to non-http image, no img tag: <a rel="nofollow" class="external free" href="ftp://example.com/test.jpg">ftp://example.com/test.jpg</a>
 </p>
 !! end
 
 !! test
 External links: terminating separator
-!! input
+!! wikitext
 Terminating separator: http://example.com/thing,
-!! result
+!! html
 <p>Terminating separator: <a rel="nofollow" class="external free" href="http://example.com/thing">http://example.com/thing</a>,
 </p>
 !! end
 
 !! test
 External links: intervening separator
-!! input
+!! wikitext
 Intervening separator: http://example.com/1,2,3
-!! result
+!! html
 <p>Intervening separator: <a rel="nofollow" class="external free" href="http://example.com/1,2,3">http://example.com/1,2,3</a>
 </p>
 !! end
 
 !! test
 External links: old bug with URL in query
-!! input
+!! wikitext
 Old bug with URL in query: [http://example.com/thing?url=http://example.com link]
-!! result
+!! html
 <p>Old bug with URL in query: <a rel="nofollow" class="external text" href="http://example.com/thing?url=http://example.com">link</a>
 </p>
 !! end
 
 !! test
 External links: old URL-in-URL bug, mixed protocols
-!! input
+!! wikitext
 And again with mixed protocols: [ftp://example.com?url=http://example.com link]
-!! result
+!! html
 <p>And again with mixed protocols: <a rel="nofollow" class="external text" href="ftp://example.com?url=http://example.com">link</a>
 </p>
 !!end
 
 !! test
 External links: URL in text
-!! input
+!! wikitext
 URL in text: [http://example.com http://example.com]
-!! result
+!! html
 <p>URL in text: <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
 </p>
 !! end
 
 !! test
 External links: Clickable images
-!! input
+!! wikitext
 ja-style clickable images: [http://example.com http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png]
-!! result
+!! html
 <p>ja-style clickable images: <a rel="nofollow" class="external text" href="http://example.com"><img src="http://meta.wikimedia.org/upload/f/f1/Ncwikicol.png" alt="Ncwikicol.png" /></a>
 </p>
 !!end
 
 !! test
 External links: raw ampersand
-!! input
+!! wikitext
 Old &amp; use: http://x&y
-!! result
+!! html
 <p>Old &amp; use: <a rel="nofollow" class="external free" href="http://x&amp;y">http://x&amp;y</a>
 </p>
 !! end
 
 !! test
 External links: encoded ampersand
-!! input
+!! wikitext
 Old &amp; use: http://x&amp;y
-!! result
+!! html
 <p>Old &amp; use: <a rel="nofollow" class="external free" href="http://x&amp;y">http://x&amp;y</a>
 </p>
 !! end
 
 !! test
 External links: encoded equals (bug 6102)
-!! input
+!! wikitext
 http://example.com/?foo&#61;bar
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://example.com/?foo=bar">http://example.com/?foo=bar</a>
 </p>
 !! end
 
 !! test
 External links: [raw ampersand]
-!! input
+!! wikitext
 Old &amp; use: [http://x&y]
-!! result
+!! html
 <p>Old &amp; use: <a rel="nofollow" class="external autonumber" href="http://x&amp;y">[1]</a>
 </p>
 !! end
 
 !! test
 External links: [encoded ampersand]
-!! input
+!! wikitext
 Old &amp; use: [http://x&amp;y]
-!! result
+!! html
 <p>Old &amp; use: <a rel="nofollow" class="external autonumber" href="http://x&amp;y">[1]</a>
 </p>
 !! end
 
 !! test
 External links: [encoded equals] (bug 6102)
-!! input
+!! wikitext
 [http://example.com/?foo&#61;bar]
-!! result
+!! html
 <p><a rel="nofollow" class="external autonumber" href="http://example.com/?foo=bar">[1]</a>
 </p>
 !! end
 
 !! test
 External links: [IDN ignored character reference in hostname; strip it right off]
-!! input
+!! wikitext
 [http://e&zwnj;xample.com/]
-!! result
+!! html
 <p><a rel="nofollow" class="external autonumber" href="http://example.com/">[1]</a>
 </p>
 !! end
@@ -3677,118 +3675,118 @@ External links: [IDN ignored character reference in hostname; strip it right off
 # The Parsoid team.
 !! test
 External links: IDN ignored character reference in hostname; strip it right off
-!! input
+!! wikitext
 http://e&zwnj;xample.com/
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a>
 </p>
 !! end
 
 !! test
 External links: www.jpeg.org (bug 554)
-!! input
+!! wikitext
 http://www.jpeg.org
-!!result
+!! html
 <p><a rel="nofollow" class="external free" href="http://www.jpeg.org">http://www.jpeg.org</a>
 </p>
 !! end
 
 !! test
 External links: URL within URL (original bug 2)
-!! input
+!! wikitext
 [http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp]
-!! result
+!! html
 <p><a rel="nofollow" class="external autonumber" href="http://www.unausa.org/newindex.asp?place=http://www.unausa.org/programs/mun.asp">[1]</a>
 </p>
 !! end
 
 !! test
 BUG 361: URL inside bracketed URL
-!! input
+!! wikitext
 [http://www.example.com/foo http://www.example.com/bar]
-!! result
+!! html
 <p><a rel="nofollow" class="external text" href="http://www.example.com/foo">http://www.example.com/bar</a>
 </p>
 !! end
 
 !! test
 BUG 361: URL within URL, not bracketed
-!! input
+!! wikitext
 http://www.example.com/foo?=http://www.example.com/bar
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://www.example.com/foo?=http://www.example.com/bar">http://www.example.com/foo?=http://www.example.com/bar</a>
 </p>
 !! end
 
 !! test
 BUG 289: ">"-token in URL-tail
-!! input
+!! wikitext
 http://www.example.com/<hello>
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://www.example.com/">http://www.example.com/</a>&lt;hello&gt;
 </p>
 !!end
 
 !! test
 BUG 289: literal ">"-token in URL-tail
-!! input
+!! wikitext
 http://www.example.com/<b>html</b>
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://www.example.com/">http://www.example.com/</a><b>html</b>
 </p>
 !!end
 
 !! test
 BUG 289: ">"-token in bracketed URL
-!! input
+!! wikitext
 [http://www.example.com/<hello> stuff]
-!! result
+!! html
 <p><a rel="nofollow" class="external text" href="http://www.example.com/">&lt;hello&gt; stuff</a>
 </p>
 !!end
 
 !! test
 BUG 289: literal ">"-token in bracketed URL
-!! input
+!! wikitext
 [http://www.example.com/<b>html</b> stuff]
-!! result
+!! html
 <p><a rel="nofollow" class="external text" href="http://www.example.com/"><b>html</b> stuff</a>
 </p>
 !!end
 
 !! test
 BUG 289: literal double quote at end of URL
-!! input
+!! wikitext
 http://www.example.com/"hello"
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://www.example.com/">http://www.example.com/</a>"hello"
 </p>
 !!end
 
 !! test
 BUG 289: literal double quote in bracketed URL
-!! input
+!! wikitext
 [http://www.example.com/"hello" stuff]
-!! result
+!! html
 <p><a rel="nofollow" class="external text" href="http://www.example.com/">"hello" stuff</a>
 </p>
 !!end
 
 !! test
 External links: multiple legal whitespace is fine, Magnus. Don't break it please. (bug 5081)
-!! input
+!! wikitext
 [http://www.example.com  test]
-!! result
+!! html
 <p><a rel="nofollow" class="external text" href="http://www.example.com">test</a>
 </p>
 !! end
 
 !! test
 External links: link text with spaces
-!! input
+!! wikitext
 [http://www.example.com a b c]
 [http://www.example.com ''a'' ''b'']
-!! result
+!! html
 <p><a rel="nofollow" class="external text" href="http://www.example.com">a b c</a>
 <a rel="nofollow" class="external text" href="http://www.example.com"><i>a</i> <i>b</i></a>
 </p>
@@ -3796,32 +3794,22 @@ External links: link text with spaces
 
 !! test
 External links: wiki links within external link (Bug 3695)
-!! options
-php
-!! input
+!! wikitext
 [http://example.com [[wikilink]] embedded in ext link]
-!! result
+!! html/php
 <p><a rel="nofollow" class="external text" href="http://example.com"></a><a href="/index.php?title=Wikilink&amp;action=edit&amp;redlink=1" class="new" title="Wikilink (page does not exist)">wikilink</a><a rel="nofollow" class="external text" href="http://example.com"> embedded in ext link</a>
 </p>
-!! end
-
-!! test
-Parsoid: External links: wiki links within external link (Bug 3695)
-!! options
-parsoid
-!! input
-[http://example.com [[wikilink]] embedded in ext link]
-!! result
+!! html/parsoid
 <p><a rel="mw:ExtLink" href="http://example.com"></a><a rel="mw:WikiLink" href="./Wikilink">wikilink</a><span> embedded in ext link</span></p>
 !! end
 
 !! test
 BUG 787: Links with one slash after the url protocol are invalid
-!! input
+!! wikitext
 http:/example.com
 
 [http:/example.com title]
-!! result
+!! html
 <p>http:/example.com
 </p><p>[http:/example.com title]
 </p>
@@ -3829,22 +3817,22 @@ http:/example.com
 
 !! test
 Bracketed external links with template-generated invalid target
-!! input
+!! wikitext
 [{{echo|http:/example.com}} title]
-!! result
+!! html
 <p>[http:/example.com title]
 </p>
 !! end
 
 !! test
 Bug 2702: Mismatched <i>, <b> and <a> tags are invalid
-!! input
+!! wikitext
 ''[http://example.com text'']
 [http://example.com '''text]'''
 ''Something [http://example.com in italic'']
 ''Something [http://example.com mixed''''', even bold]'''
 '''''Now [http://example.com both''''']
-!! result
+!! html
 <p><a rel="nofollow" class="external text" href="http://example.com"><i>text</i></a>
 <a rel="nofollow" class="external text" href="http://example.com"><b>text</b></a>
 <i>Something </i><a rel="nofollow" class="external text" href="http://example.com"><i>in italic</i></a>
@@ -3856,9 +3844,9 @@ Bug 2702: Mismatched <i>, <b> and <a> tags are invalid
 
 !! test
 Bug 4781: %26 in URL
-!! input
+!! wikitext
 http://www.example.com/?title=AT%26T
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://www.example.com/?title=AT%26T">http://www.example.com/?title=AT%26T</a>
 </p>
 !! end
@@ -3867,18 +3855,18 @@ http://www.example.com/?title=AT%26T
 # % is actually legal in HTML5. Any change in output would need testing though.
 !! test
 Bug 4781, 5267: %25 in URL
-!! input
+!! wikitext
 http://www.example.com/?title=100%25_Bran
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://www.example.com/?title=100%25_Bran">http://www.example.com/?title=100%25_Bran</a>
 </p>
 !! end
 
 !! test
 Bug 4781, 5267: %28, %29 in URL
-!! input
+!! wikitext
 http://www.example.com/?title=Ben-Hur_%281959_film%29
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://www.example.com/?title=Ben-Hur_%281959_film%29">http://www.example.com/?title=Ben-Hur_%281959_film%29</a>
 </p>
 !! end
@@ -3886,27 +3874,27 @@ http://www.example.com/?title=Ben-Hur_%281959_film%29
 
 !! test
 Bug 4781: %26 in autonumber URL
-!! input
+!! wikitext
 [http://www.example.com/?title=AT%26T]
-!! result
+!! html
 <p><a rel="nofollow" class="external autonumber" href="http://www.example.com/?title=AT%26T">[1]</a>
 </p>
 !! end
 
 !! test
 Bug 4781, 5267: %26 in autonumber URL
-!! input
+!! wikitext
 [http://www.example.com/?title=100%25_Bran]
-!! result
+!! html
 <p><a rel="nofollow" class="external autonumber" href="http://www.example.com/?title=100%25_Bran">[1]</a>
 </p>
 !! end
 
 !! test
 Bug 4781, 5267: %28, %29 in autonumber URL
-!! input
+!! wikitext
 [http://www.example.com/?title=Ben-Hur_%281959_film%29]
-!! result
+!! html
 <p><a rel="nofollow" class="external autonumber" href="http://www.example.com/?title=Ben-Hur_%281959_film%29">[1]</a>
 </p>
 !! end
@@ -3914,104 +3902,94 @@ Bug 4781, 5267: %28, %29 in autonumber URL
 
 !! test
 Bug 4781: %26 in bracketed URL
-!! input
+!! wikitext
 [http://www.example.com/?title=AT%26T link]
-!! result
+!! html
 <p><a rel="nofollow" class="external text" href="http://www.example.com/?title=AT%26T">link</a>
 </p>
 !! end
 
 !! test
 Bug 4781, 5267: %26 in bracketed URL
-!! input
+!! wikitext
 [http://www.example.com/?title=100%25_Bran link]
-!! result
+!! html
 <p><a rel="nofollow" class="external text" href="http://www.example.com/?title=100%25_Bran">link</a>
 </p>
 !! end
 
 !! test
 Bug 4781, 5267: %28, %29 in bracketed URL
-!! input
+!! wikitext
 [http://www.example.com/?title=Ben-Hur_%281959_film%29 link]
-!! result
+!! html
 <p><a rel="nofollow" class="external text" href="http://www.example.com/?title=Ben-Hur_%281959_film%29">link</a>
 </p>
 !! end
 
 !! test
 External link containing double-single-quotes in text '' (bug 4598 sanity check)
-!! input
+!! wikitext
 Some [http://example.com/ pretty ''italics'' and stuff]!
-!! result
+!! html
 <p>Some <a rel="nofollow" class="external text" href="http://example.com/">pretty <i>italics</i> and stuff</a>!
 </p>
 !! end
 
 !! test
 External link containing double-single-quotes in text embedded in italics (bug 4598 sanity check)
-!! input
+!! wikitext
 ''Some [http://example.com/ pretty ''italics'' and stuff]!''
-!! result
+!! html
 <p><i>Some </i><a rel="nofollow" class="external text" href="http://example.com/"><i>pretty </i>italics<i> and stuff</i></a><i>!</i>
 </p>
 !! end
 
 !! test
 External link containing double-single-quotes with no space separating the url from text in italics
-!! options
-php
-!! input
+!! wikitext
 [http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].]
-!! result
+!! html/php
 <p><a rel="nofollow" class="external text" href="http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm"><i>La muerte de Casagemas</i> (1901) en el sitio de <a href="/index.php?title=Museo_Picasso_(Par%C3%ADs)&amp;action=edit&amp;redlink=1" class="new" title="Museo Picasso (París) (page does not exist)">Museo Picasso</a>.</a>
 </p>
-!! end
-
-!! test
-Parsoid:External link containing double-single-quotes with no space separating the url from text in italics
-!! options
-parsoid
-!! input
-[http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm''La muerte de Casagemas'' (1901) en el sitio de [[Museo Picasso (París)|Museo Picasso]].]
-!! result
+!! html/parsoid
 <p><a rel="mw:ExtLink" href="http://www.musee-picasso.fr/pages/page_id18528_u1l2.htm"><i>La muerte de Casagemas</i> (1901) en el sitio de </a><a rel="mw:WikiLink" href="./Museo_Picasso_(París)">Museo Picasso</a><span>.</span></p>
 !! end
 
 !! test
 External link with comments in link text
-!! input
+!! wikitext
 [http://www.google.com Google <!-- comment -->]
-!! result
+!! html
 <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
+!! wikitext
 {{localurl:Some page|amp=&}}
-!! result
+!! html
 <p>/index.php?title=Some_page&amp;amp=&amp;
 </p>
 !! end
 
 !! test
 URL-encoding in URL functions (multiple parameters)
-!! input
+!! wikitext
 {{localurl:Some page|q=?&amp=&}}
-!! result
+!! html
 <p>/index.php?title=Some_page&amp;q=?&amp;amp=&amp;
 </p>
 !! end
 
 !! test
 Brackets in urls
-!! input
+!! wikitext
 http://example.com/index.php?foozoid%5B%5D=bar
 
 http://example.com/index.php?foozoid&#x5B;&#x5D;=bar
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://example.com/index.php?foozoid%5B%5D=bar">http://example.com/index.php?foozoid%5B%5D=bar</a>
 </p><p><a rel="nofollow" class="external free" href="http://example.com/index.php?foozoid%5B%5D=bar">http://example.com/index.php?foozoid%5B%5D=bar</a>
 </p>
@@ -4021,16 +3999,16 @@ http://example.com/index.php?foozoid&#x5B;&#x5D;=bar
 IPv6 urls (bug 21261)
 !! options
 disabled
-!! input
+!! wikitext
 http://[2404:130:0:1000::187:2]/index.php
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://[2404:130:0:1000::187:2]/index.php">http://[2404:130:0:1000::187:2]/index.php</a>
 </p>
 !! end
 
 !! test
 Non-extlinks in brackets
-!! input
+!! wikitext
 [foo]
 [foo bar]
 [foo ''bar'']
@@ -4043,7 +4021,7 @@ Non-extlinks in brackets
 [{{echo|foo}}l's errand]
 [url={{echo|foo}}]
 [url=http://example.com]
-!! result
+!! html
 <p>[foo]
 [foo bar]
 [foo <i>bar</i>]
@@ -4060,32 +4038,31 @@ Non-extlinks in brackets
 !! end
 
 !! test
-Parsoid: Percent encoding in external links
-!! options
-parsoid
-!! input
+Percent encoding in external links
+!! wikitext
 [https://github.com/search?l=&q=ResourceLoader+%40wikimedia Search]
-!! result
+!! html/php
+<p><a rel="nofollow" class="external text" href="https://github.com/search?l=&amp;q=ResourceLoader+%40wikimedia">Search</a>
+</p>
+!! html/parsoid
 <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
+Use url link syntax for links where the content is equal the link target
+!! wikitext
 http://example.com
-!! result
+!! html/php
+<p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>
+</p>
+!! html/parsoid
 <p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a></p>
 !! end
 
 !! test
 Parenthesis in external links, especially URL links
-!! options
-php
-!! input 
+!! wikitext
 http://example.com)
 
 http://example.com/test)
@@ -4101,7 +4078,7 @@ http://example.com/((test)
 http://example.com/a)b
 
 [http://example.com) foo]
-!! result
+!! html/php
 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>)
 </p><p><a rel="nofollow" class="external free" href="http://example.com/test">http://example.com/test</a>)
 </p><p><a rel="nofollow" class="external free" href="http://example.com/(test)">http://example.com/(test)</a>
@@ -4111,29 +4088,7 @@ http://example.com/a)b
 </p><p><a rel="nofollow" class="external free" href="http://example.com/a)b">http://example.com/a)b</a>
 </p><p><a rel="nofollow" class="external text" href="http://example.com)">foo</a>
 </p>
-!! end
-
-!! test
-Parenthesis in external links, especially URL links (Parsoid)
-!! options
-parsoid
-!! input 
-http://example.com)
-
-http://example.com/test)
-
-http://example.com/(test)
-
-http://example.com/((test)
-
-(http://example.com/(test))
-
-(http://example.com/(test)))))
-
-http://example.com/a)b
-
-[http://example.com) foo]
-!! result
+!! html/parsoid
 <p><a rel="mw:ExtLink" href="http://example.com">http://example.com</a>)</p>
 <p><a rel="mw:ExtLink" href="http://example.com/test">http://example.com/test</a>)</p>
 <p><a rel="mw:ExtLink" href="http://example.com/(test)">http://example.com/(test)</a></p>
@@ -4146,16 +4101,18 @@ http://example.com/a)b
 
 !! test
 Parenthesis in external links, w/ transclusion or comment
-!! options
-parsoid
-!! input
+!! wikitext
 (http://example.com/{{echo|hi}})
 
 (http://example.com<!-- hi -->)
-!! result
-<p>(<a data-mw='{"attribs":[[{"txt":"href"},{"html":"http://example.com/&lt;span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-mw=\"{&amp;quot;parts&amp;quot;:[{&amp;quot;template&amp;quot;:{&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;hi&amp;quot;}},&amp;quot;i&amp;quot;:0}}]}\" data-parsoid=\"{&amp;quot;dsr&amp;quot;:[20,31,null,null],&amp;quot;pi&amp;quot;:[[{&amp;quot;k&amp;quot;:&amp;quot;1&amp;quot;,&amp;quot;spc&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]}]]}\">hi&lt;/span>"}]]}' typeof="mw:ExpandedAttrs" about="#mwt2" rel="mw:ExtLink" href="http://example.com/hi" data-parsoid='{"stx":"url","a":{"href":"http://example.com/hi"},"sa":{"href":"http://example.com/{{echo|hi}}"},"dsr":[1,31,0,0]}'>http://example.com/hi</a>)</p>
+!! html/php
+<p>(<a rel="nofollow" class="external free" href="http://example.com/hi">http://example.com/hi</a>)
+</p><p>(<a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>)
+</p>
+!! html/parsoid
+<p>(<a data-mw='{"attribs":[[{"txt":"href"},{"html":"http://example.com/&lt;span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-mw=\"{&amp;quot;parts&amp;quot;:[{&amp;quot;template&amp;quot;:{&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;hi&amp;quot;}},&amp;quot;i&amp;quot;:0}}]}\" data-parsoid=\"{&amp;quot;dsr&amp;quot;:[20,31,null,null],&amp;quot;pi&amp;quot;:[[{&amp;quot;k&amp;quot;:&amp;quot;1&amp;quot;,&amp;quot;spc&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]}]]}\">hi&lt;/span>"}]]}' typeof="mw:ExpandedAttrs" about="#mwt2" rel="mw:ExtLink" href="http://example.com/hi" data-parsoid='{"stx":"url","a":{"href":"http://example.com/hi"},"sa":{"href":"http://example.com/{{echo|hi}}"}}'>http://example.com/hi</a>)</p>
 
-<p>(<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url","a":{"href":"http://example.com"},"sa":{"href":"http://example.com&lt;!-- hi -->"},"dsr":[35,64,0,0]}'>http://example.com</a>)</p>
+<p>(<a rel="mw:ExtLink" href="http://example.com" data-parsoid='{"stx":"url","a":{"href":"http://example.com"},"sa":{"href":"http://example.com&lt;!-- hi -->"}}'>http://example.com</a>)</p>
 !! end
 
 ###
@@ -4164,22 +4121,23 @@ parsoid
 
 !! test
 Quotes
-!! input
+!! wikitext
 Normal text. '''Bold text.''' Normal text. ''Italic text.''
 
 Normal text. '''''Bold italic text.''''' Normal text.
-!!result
+!! html
 <p>Normal text. <b>Bold text.</b> Normal text. <i>Italic text.</i>
 </p><p>Normal text. <i><b>Bold italic text.</b></i> Normal text.
 </p>
 !! end
 
 
+# Parsoid inserts an empty bold tag pair at the end of the line, that the PHP
+# parser strips. The wikitext contains just the first half of the bold
+# quote pair.
 !! test
-Unclosed and unmatched quotes (php)
-!! options
-php
-!! input
+Unclosed and unmatched quotes
+!! wikitext
 '''''Bold italic text '''with bold deactivated''' in between.'''''
 
 '''''Bold italic text ''with italic deactivated'' in between.'''''
@@ -4200,7 +4158,7 @@ Normal text.
 ''Tom'''s car is bigger than ''Susan'''s.
 
 Plain ''italic'''s plain
-!! result
+!! html/php
 <p><i><b>Bold italic text </b>with bold deactivated<b> in between.</b></i>
 </p><p><b><i>Bold italic text </i>with italic deactivated<i> in between.</i></b>
 </p><p><b>Bold text..</b>
@@ -4212,36 +4170,7 @@ Plain ''italic'''s plain
 </p><p><i>Tom<b>s car is bigger than </b></i><b>Susan</b>s.
 </p><p>Plain <i>italic'</i>s plain
 </p>
-!! end
-# Parsoid inserts an empty bold tag pair at the end of the line, that the PHP
-# parser strips. The wikitext contains just the first half of the bold
-# quote pair.
-!! test
-Unclosed and unmatched quotes (parsoid)
-!! options
-parsoid
-!! input
-'''''Bold italic text '''with bold deactivated''' in between.'''''
-
-'''''Bold italic text ''with italic deactivated'' in between.'''''
-
-'''Bold text..
-
-..spanning two paragraphs (should not work).'''
-
-'''Bold tag left open
-
-''Italic tag left open
-
-Normal text.
-
-<!-- Unmatching number of opening, closing tags: -->
-'''This year''''s election ''should'' beat '''last year''''s.
-
-''Tom'''s car is bigger than ''Susan'''s.
-
-Plain ''italic'''s plain
-!! result
+!! html/parsoid
 <p><i><b>Bold italic text </b>with bold deactivated<b> in between.</b></i>
 </p><p><b><i>Bold italic text </i>with italic deactivated<i> in between.</i></b>
 </p><p><b>Bold text..</b>
@@ -4264,24 +4193,16 @@ Plain ''italic'''s plain
 # This should not produce <table></table> as <table><tr><td></td></tr></table>
 # 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)
-!! options
-php
-!! input
-{||}
-!! result
-
-!! end
-
 # Parsoid team replies: empty table tags are legal in HTML5
 !! test
-A table with no data. (parsoid)
+A table with no data.
 !! options
 parsoid=wt2html
-!! input
+!! wikitext
 {||}
-!! result
+!! html/php
+
+!! html/parsoid
 <table></table>
 
 !! end
@@ -4290,7 +4211,7 @@ parsoid=wt2html
 A table with stray table end tags on start tag line (wt2html)
 !! options
 parsoid=wt2html
-!! input
+!! wikitext
 {|style="color: red;"|}
 
 {|style="color: red;" |}
@@ -4304,7 +4225,7 @@ parsoid=wt2html
 {|style="color: red;" |} id="foo"
 |foo
 |}
-!! result
+!! html
 <table style="color: red;"></table>
 
 <table style="color: red;">
@@ -4328,54 +4249,41 @@ parsoid=wt2html
 !! end
 
 !! test
-A table with no data (take 2) (parsoid)
-!! options
-parsoid
-!! input
+A table with no data (take 2)
+!! wikitext
 {|
 |}
-!! result
+!! html/parsoid
 <table></table>
 !! end
 
 # A table with nothing but a caption is invalid XHTML, we might want to render
 # this as <p>caption</p>
+# Parsoid team replies: table with only a caption is legal in HTML5
 !! test
-A table with nothing but a caption (php)
-!! options
-php
-!! input
+A table with nothing but a caption
+!! wikitext
 {|
 |+ caption
 |}
-!! result
+!! html/php
 <table>
 <caption> caption
 </caption><tr><td></td></tr></table>
 
-!! end
-# Parsoid team replies: table with only a caption is legal in HTML5
-!! test
-A table with nothing but a caption (parsoid)
-!! options
-parsoid
-!! input
-{|
-|+ caption
-|}
-!! result
+!! html/parsoid
 <table><caption> caption</caption></table>
 !! end
 
 !! test
 A table with caption with default-spaced attributes and a table row
-!! input
+!! wikitext
 {|
 |+ style="color: red;" | caption1
 |-
 | foo
 |}
-!! result
+!! html
 <table>
 <caption style="color: red;"> caption1
 </caption>
@@ -4387,14 +4295,14 @@ A table with caption with default-spaced attributes and a table row
 
 !! test
 A table with captions with non-default spaced attributes and a table row
-!! input
+!! wikitext
 {|
 |+style="color: red;"|caption2
 |+ style="color: red;"| caption3
 |-
 | foo
 |}
-!! result
+!! html
 <table>
 <caption style="color: red;">caption2
 </caption>
@@ -4408,14 +4316,14 @@ A table with captions with non-default spaced attributes and a table row
 
 !! test
 Table td-cell syntax variations
-!! input
+!! wikitext
 {|
 | foo bar foo | baz
 | foo bar foo || baz
 | style='color:red;' | baz
 | style='color:red;' || baz
 |}
-!! result
+!! html
 <table>
 <tr>
 <td> baz
@@ -4433,13 +4341,13 @@ Table td-cell syntax variations
 
 !! test
 Simple table
-!! input
+!! wikitext
 {|
 | 1 || 2
 |-
 | 3 || 4
 |}
-!! result
+!! html
 <table>
 <tr>
 <td> 1 </td>
@@ -4454,13 +4362,13 @@ Simple table
 
 !! test
 Simple table but with multiple dashes for row wikitext
-!! input
+!! wikitext
 {|
 | foo
 |-----
 | bar
 |}
-!! result
+!! html
 <table>
 <tr>
 <td> foo
@@ -4472,7 +4380,7 @@ Simple table but with multiple dashes for row wikitext
 !! end
 !! test
 Multiplication table
-!! input
+!! wikitext
 {| border="1" cellpadding="2"
 |+Multiplication table
 |-
@@ -4493,7 +4401,7 @@ Multiplication table
 ! 5
 | 5 || 10 || 15
 |}
-!! result
+!! html
 <table border="1" cellpadding="2">
 <caption>Multiplication table
 </caption>
@@ -4543,11 +4451,11 @@ Multiplication table
 
 !! test
 Accept "||" in table headings
-!! input
+!! wikitext
 {|
 !h1 || h2
 |}
-!! result
+!! html
 <table>
 <tr>
 <th>h1 </th>
@@ -4558,11 +4466,11 @@ Accept "||" in table headings
 
 !! test
 Accept "||" in indented table headings
-!! input
+!! wikitext
 :{|
 !h1 || h2
 |}
-!! result
+!! html
 <dl><dd><table>
 <tr>
 <th>h1 </th>
@@ -4573,12 +4481,12 @@ Accept "||" in indented table headings
 
 !! test
 Accept empty attributes in td/th cells (td/th cells starting with leading ||)
-!! input
+!! wikitext
 {|
 !| h1
 || a
 |}
-!! result
+!! html
 <table>
 <tr>
 <th> h1
@@ -4590,12 +4498,12 @@ Accept empty attributes in td/th cells (td/th cells starting with leading ||)
 
 !!test
 Accept "| !" at start of line in tables (ignore !-attribute)
-!!input
+!! wikitext
 {|
 |-
 | !style="color:red" | bar
 |}
-!!result
+!! html
 <table>
 
 <tr>
@@ -4606,7 +4514,7 @@ Accept "| !" at start of line in tables (ignore !-attribute)
 
 !!test
 Allow +/- in 2nd and later cells in a row, in 1st cell when td-attrs are present, or in 1st cell when there is a space between "|" and +/- 
-!!input
+!! wikitext
 {|
 |-
 |style='color:red;'|+1
@@ -4618,7 +4526,7 @@ Allow +/- in 2nd and later cells in a row, in 1st cell when td-attrs are present
 | +1
 | -1
 |}
-!!result
+!! html
 <table>
 
 <tr>
@@ -4645,7 +4553,7 @@ Allow +/- in 2nd and later cells in a row, in 1st cell when td-attrs are present
 
 !! test
 Table rowspan
-!! input
+!! wikitext
 {| border=1
 | Cell 1, row 1
 |rowspan=2| Cell 2, row 1 (and 2)
@@ -4654,7 +4562,7 @@ Table rowspan
 | Cell 1, row 2
 | Cell 3, row 2
 |}
-!! result
+!! html
 <table border="1">
 <tr>
 <td> Cell 1, row 1
@@ -4673,7 +4581,7 @@ Table rowspan
 
 !! test
 Nested table
-!! input
+!! wikitext
 {| border=1
 | &alpha;
 |
@@ -4684,7 +4592,7 @@ Nested table
 |}
 |the original table again
 |}
-!! result
+!! html
 <table border="1">
 <tr>
 <td> &#945;
@@ -4705,11 +4613,11 @@ Nested table
 
 !! test
 Invalid attributes in table cell (bug 1830)
-!! input
+!! wikitext
 {|
 |Cell:|broken
 |}
-!! result
+!! html
 <table>
 <tr>
 <td>broken
@@ -4720,10 +4628,10 @@ Invalid attributes in table cell (bug 1830)
 
 !! test
 Table security: embedded pipes (http://lists.wikimedia.org/mailman/htdig/wikitech-l/2006-April/022293.html)
-!! input
+!! wikitext
 {|
 | |[ftp://|x||]" onmouseover="alert(document.cookie)">test
-!! result
+!! html
 <table>
 <tr>
 <td>[<a rel="nofollow" class="external free" href="ftp://%7Cx">ftp://%7Cx</a></td>
@@ -4737,7 +4645,7 @@ Table security: embedded pipes (http://lists.wikimedia.org/mailman/htdig/wikitec
 
 !! test
 Indented table markup mixed with indented pre content (proposed in bug 6200)
-!! input
+!! wikitext
  <table>
  <tr>
  <td>
@@ -4745,7 +4653,7 @@ Indented table markup mixed with indented pre content (proposed in bug 6200)
  </td>
  </tr>
  </table>
-!! result
+!! html
  <table>
  <tr>
  <td>
@@ -4759,12 +4667,12 @@ Indented table markup mixed with indented pre content (proposed in bug 6200)
 
 !! test
 Template-generated table cell attributes and cell content
-!! input
+!! wikitext
 {|
 |{{table_attribs}}
 | {{table_attribs}}
 |}
-!! result
+!! html
 <table>
 <tr>
 <td style="color: red"> Foo
@@ -4776,11 +4684,11 @@ Template-generated table cell attributes and cell content
 
 !! test
 Template-generated table cell attributes and cell content (2)
-!! input
+!! wikitext
 {|
 |align=center {{table_attribs}}
 |}
-!! result
+!! html
 <table>
 <tr>
 <td align="center" style="color: red"> Foo
@@ -4790,11 +4698,11 @@ Template-generated table cell attributes and cell content (2)
 
 !! test
 Template-generated table cell attributes and cell content (3)
-!! input
+!! wikitext
 {|
 |align=center {{table_cells}}
 |}
-!! result
+!! html
 <table>
 <tr>
 <td align="center" style="color: red"> Foo </td>
@@ -4806,13 +4714,13 @@ Template-generated table cell attributes and cell content (3)
 
 !! test
 Table with row followed by newlines and table heading
-!! input
+!! wikitext
 {|
 |-
 
 ! foo
 |}
-!! result
+!! html
 <table>
 
 
@@ -4824,13 +4732,13 @@ Table with row followed by newlines and table heading
 
 !! test
 Table with empty line following the start tag
-!! input
+!! wikitext
 {|
 
 |-
 | foo
 |}
-!! result
+!! html
 <table>
 
 
@@ -4844,13 +4752,11 @@ Table with empty line following the start tag
 # the PHP parser. Parsoid implements the behavior below.
 !! test
 Table attributes with empty value
-!! options
-parsoid
-!! input
+!! wikitext
 {|
 | style=| hello
 |}
-!! result
+!! html/parsoid
 <table>
 <tbody>
 <tr>
@@ -4861,7 +4767,7 @@ parsoid
 
 !! test
 Wikitext table with a lot of comments
-!! input
+!! wikitext
 {|
 <!-- c0 -->
 | foo
@@ -4871,7 +4777,7 @@ Wikitext table with a lot of comments
 |<!-- c4 -->
 <!-- c5 -->
 |}
-!! result
+!! html
 <table>
 <tr>
 <td> foo
@@ -4884,12 +4790,12 @@ Wikitext table with a lot of comments
 
 !! test
 Wikitext table with double-line table cell
-!! input
+!! wikitext
 {|
 |a
 b
 |}
-!! result
+!! html
 <table>
 <tr>
 <td>a
 
 !! test
 Table cell with a single comment
-!! input
+!! wikitext
 {|
 | <!-- c1 -->
 | a
 |}
-!! result
+!! html
 <table>
 <tr>
 <td>
@@ -4920,15 +4826,13 @@ Table cell with a single comment
 # not parse this kind of table at all. The main focus for Parsoid is on
 # round-tripping, so this output is ok for now. TODO: revisit!
 !! test
-Wikitext table with html-syntax row (Parsoid)
-!! options
-parsoid
-!! input
+Wikitext table with html-syntax row
+!! wikitext
 {|
 |-
 <td>foo</td>
 |}
-!! result
+!! html/parsoid
 <table>
 <tbody>
 <tr>
@@ -4940,12 +4844,12 @@ Implicit <td> after a |-
 (PHP parser relies on Tidy to add the missing <td> tags)
 !! options
 parsoid=wt2html,wt2wt
-!! input
+!! wikitext
 {|
 |-
 a
 |}
-!! result
+!! html
 <table>
 <tr><td>a</td></tr>
 </table>
@@ -4956,7 +4860,7 @@ Pres should be recognized in an explicit <td> context, but not in an implicit <t
 (PHP parser relies on Tidy to add the missing <td> tags)
 !! options
 parsoid=wt2html,wt2wt
-!! input
+!! wikitext
 {|
 |-
 |
@@ -4964,7 +4868,7 @@ parsoid=wt2html,wt2wt
 |-
  b
 |}
-!! result
+!! html
 <table>
 <tbody>
 <tr><td><pre>a</pre></td></tr>
@@ -4978,12 +4882,12 @@ 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
+!! wikitext
 {|
 |-
 *a
 |}
-!! result
+!! html
 <table>
 <tr>
 <td><ul>
@@ -4997,7 +4901,7 @@ parsoid=wt2html,wt2wt
 Parsoid: Round-trip tables directly followed by content (bug 51219)
 !! options
 parsoid=wt2html,wt2wt
-!! input
+!! wikitext
 {|
 |foo
 |} bar
@@ -5005,7 +4909,7 @@ parsoid=wt2html,wt2wt
 {|
 |baz
 |}<b>quux</b>
-!! result
+!! html
 <table><tbody>
 <tr>
 <td>foo</td></tr></tbody></table> bar
@@ -5019,7 +4923,7 @@ parsoid=wt2html,wt2wt
 Parsoid: Default to a newline after tables in new content (bug 51219)
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 {|
 |foo
 |}
@@ -5028,7 +4932,7 @@ parsoid=html2wt
 |baz
 |}
 '''quux'''
-!! result
+!! html
 <table><tbody>
 <tr><td>foo</td></tr></tbody></table> bar
 <table><tbody>
@@ -5039,11 +4943,11 @@ parsoid=html2wt
 Parsoid: newline inducing block nodes don't suppress <nowiki>
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 <nowiki> </nowiki>a
 
 = foo =
-!! result
+!! html
  a<h1>foo</h1>
 !! end
 
@@ -5052,90 +4956,90 @@ parsoid=html2wt
 ###
 !! test
 Plain link, capitalized
-!! input
+!! wikitext
 [[Main Page]]
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>
 </p>
 !! end
 
 !! test
 Plain link, uncapitalized
-!! input
+!! wikitext
 [[main Page]]
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">main Page</a>
 </p>
 !! end
 
 !! test
 Piped link
-!! input
+!! wikitext
 [[Main Page|The Main Page]]
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">The Main Page</a>
 </p>
 !! end
 
 !! test
 Piped link with comment in link text
-!! input
+!! wikitext
 [[Main Page|The Main<!--front--> Page]]
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">The Main Page</a>
 </p>
 !! end
 
 !! test
 Broken link
-!! input
+!! wikitext
 [[Zigzagzogzagzig]]
-!! result
+!! html
 <p><a href="/index.php?title=Zigzagzogzagzig&amp;action=edit&amp;redlink=1" class="new" title="Zigzagzogzagzig (page does not exist)">Zigzagzogzagzig</a>
 </p>
 !! end
 
 !! test
 Broken link with fragment
-!! input
+!! wikitext
 [[Zigzagzogzagzig#zug]]
-!! result
+!! html
 <p><a href="/index.php?title=Zigzagzogzagzig&amp;action=edit&amp;redlink=1" class="new" title="Zigzagzogzagzig (page does not exist)">Zigzagzogzagzig#zug</a>
 </p>
 !! end
 
 !! test
 Special page link with fragment
-!! input
+!! wikitext
 [[Special:Version#anchor]]
-!! result
+!! html
 <p><a href="/wiki/Special:Version#anchor" title="Special:Version">Special:Version#anchor</a>
 </p>
 !! end
 
 !! test
 Nonexistent special page link with fragment
-!! input
+!! wikitext
 [[Special:ThisNameWillHopefullyNeverBeUsed#anchor]]
-!! result
+!! html
 <p><a href="/wiki/Special:ThisNameWillHopefullyNeverBeUsed" class="new" title="Special:ThisNameWillHopefullyNeverBeUsed (page does not exist)">Special:ThisNameWillHopefullyNeverBeUsed#anchor</a>
 </p>
 !! end
 
 !! test
 Link with prefix
-!! input
+!! wikitext
 xxx[[main Page]], xxx[[Main Page]], Xxx[[main Page]] XXX[[main Page]], XXX[[Main Page]]
-!! result
+!! html
 <p>xxx<a href="/wiki/Main_Page" title="Main Page">main Page</a>, xxx<a href="/wiki/Main_Page" title="Main Page">Main Page</a>, Xxx<a href="/wiki/Main_Page" title="Main Page">main Page</a> XXX<a href="/wiki/Main_Page" title="Main Page">main Page</a>, XXX<a href="/wiki/Main_Page" title="Main Page">Main Page</a>
 </p>
 !! end
 
 !! test
 Link with suffix
-!! input
+!! wikitext
 [[Main Page]]xxx, [[Main Page]]XXX, [[Main Page]]!!!
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">Main Pagexxx</a>, <a href="/wiki/Main_Page" title="Main Page">Main Page</a>XXX, <a href="/wiki/Main_Page" title="Main Page">Main Page</a>!!!
 </p>
 !! end
@@ -5148,13 +5052,13 @@ Some text
 
 !! test
 Bug 43661: Piped links with identical prefixes
-!! input
+!! wikitext
 [[prefixed article|prefixed articles with spaces]]
 
 [[prefixed article|prefixed articlesaoeu]]
 
 [[Main Page|Main Page test]]
-!! result
+!! html
 <p><a href="/wiki/Prefixed_article" title="Prefixed article">prefixed articles with spaces</a>
 </p><p><a href="/wiki/Prefixed_article" title="Prefixed article">prefixed articlesaoeu</a>
 </p><p><a href="/wiki/Main_Page" title="Main Page">Main Page test</a>
@@ -5164,37 +5068,46 @@ Bug 43661: Piped links with identical prefixes
 
 !! test
 Link with HTML entity in suffix / tail
-!! input
+!! wikitext
 [[Main Page]]&quot;, [[Main Page]]&#97;
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>&quot;, <a href="/wiki/Main_Page" title="Main Page">Main Page</a>&#97;
 </p>
 !! end
 
 !! test
 Link with 3 brackets
-!! input
-[[[main page]]]
-!! result
-<p>[[[main page]]]
+!! wikitext
+[[[Main Page]]]
+!! html
+<p>[[[Main Page]]]
+</p>
+!! end
+
+!! test
+Link with 4 brackets
+!! wikitext
+[[[[Main Page]]]]
+!! html
+<p>[[<a href="/wiki/Main_Page" title="Main Page">Main Page</a>]]
 </p>
 !! end
 
 !! test
 Piped link with 3 brackets
-!! input
+!! wikitext
 [[[main page|the main page]]]
-!! result
+!! html
 <p>[[[main page|the main page]]]
 </p>
 !! end
 
 !! test
 Piped link with extlink-like text
-!! input
+!! wikitext
 [[Main Page|[bar]]]
 [[Main Page|This is a [bar]]]
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">[bar]</a>
 <a href="/wiki/Main_Page" title="Main Page">This is a [bar]</a>
 </p>
@@ -5202,18 +5115,18 @@ Piped link with extlink-like text
 
 !! test
 Link with multiple pipes
-!! input
+!! wikitext
 [[Main Page|The|Main|Page]]
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">The|Main|Page</a>
 </p>
 !! end
 
 !! test
 Link to namespaces
-!! input
+!! wikitext
 [[Talk:Parser testing]], [[Meta:Disclaimers]]
-!! result
+!! html
 <p><a href="/index.php?title=Talk:Parser_testing&amp;action=edit&amp;redlink=1" class="new" title="Talk:Parser testing (page does not exist)">Talk:Parser testing</a>, <a href="/index.php?title=Meta:Disclaimers&amp;action=edit&amp;redlink=1" class="new" title="Meta:Disclaimers (page does not exist)">Meta:Disclaimers</a>
 </p>
 !! end
@@ -5227,9 +5140,9 @@ This is an article in the MemoryAlpha namespace
 
 !! test
 Namespace takes precedence over interwiki link (bug 51680)
-!! input
+!! wikitext
 [[MemoryAlpha:AlphaTest]]
-!! result
+!! html
 <p><a href="/wiki/MemoryAlpha:AlphaTest" title="MemoryAlpha:AlphaTest">MemoryAlpha:AlphaTest</a>
 </p>
 !! end
@@ -5240,54 +5153,54 @@ Namespace takes precedence over interwiki link (bug 51680)
 Link to namespace preferred over interwiki with correct rel attribute
 !! options
 parsoid=html2wt,html2html
-!! input
+!! wikitext
 [[MemoryAlpha:AlphaTest]]
-!! result
+!! html
 <p><a rel="mw:WikiLink" href="./MemoryAlpha:AlphaTest">MemoryAlpha:AlphaTest</a>
 </p>
 !! end
 
 !! test
 Piped link to namespace
-!! input
+!! wikitext
 [[Meta:Disclaimers|The disclaimers]]
-!! result
+!! html
 <p><a href="/index.php?title=Meta:Disclaimers&amp;action=edit&amp;redlink=1" class="new" title="Meta:Disclaimers (page does not exist)">The disclaimers</a>
 </p>
 !! end
 
 !! test
 Link containing }
-!! input
+!! wikitext
 [[Usually caused by a typo (oops}]]
-!! result
+!! html
 <p>[[Usually caused by a typo (oops}]]
 </p>
 !! end
 
 !! test
 Link containing % (not as a hex sequence)
-!! input
+!! wikitext
 [[7% Solution]]
-!! result
+!! html
 <p><a href="/index.php?title=7%25_Solution&amp;action=edit&amp;redlink=1" class="new" title="7% Solution (page does not exist)">7% Solution</a>
 </p>
 !! end
 
 !! test
 Link containing % as a single hex sequence interpreted to char
-!! input
+!! wikitext
 [[7%25 Solution]]
-!! result
+!! html
 <p><a href="/index.php?title=7%25_Solution&amp;action=edit&amp;redlink=1" class="new" title="7% Solution (page does not exist)">7% Solution</a>
 </p>
 !!end
 
 !! test
 Link containing % as a double hex sequence interpreted to hex sequence
-!! input
+!! wikitext
 [[7%2525 Solution]]
-!! result
+!! html
 <p>[[7%2525 Solution]]
 </p>
 !!end
@@ -5295,27 +5208,27 @@ Link containing % as a double hex sequence interpreted to hex sequence
 !! test
 Link containing "#<" and "#>" % as a hex sequences- these are valid section anchors
 Example for such a section: == < ==
-!! input
+!! wikitext
 [[%23%3c]][[%23%3e]]
-!! result
+!! html
 <p><a href="#.3C">#&lt;</a><a href="#.3E">#&gt;</a>
 </p>
 !! end
 
 !! test
 Link containing "<#" and ">#" as a hex sequences
-!! input
+!! wikitext
 [[%3c%23]][[%3e%23]]
-!! result
+!! html
 <p>[[%3c%23]][[%3e%23]]
 </p>
 !! end
 
 !! test
 Link containing an equals sign
-!! input
+!! wikitext
 [[Special:BookSources/isbn=4-00-026157-6]]
-!! result
+!! html
 <p><a href="/wiki/Special:BookSources/isbn%3D4-00-026157-6" title="Special:BookSources/isbn=4-00-026157-6">Special:BookSources/isbn=4-00-026157-6</a>
 </p>
 !! end
@@ -5331,43 +5244,43 @@ Just a test of an article title containing a tilde.
 # seen by the parser.
 !! test
 Link containing a tilde
-!! input
+!! wikitext
 [[Foo~bar]]
-!! result
+!! html
 <p><a href="/wiki/Foo%7Ebar" title="Foo~bar">Foo~bar</a>
 </p>
 !! end
 
 !! test
 Link containing double-single-quotes '' (bug 4598)
-!! input
+!! wikitext
 [[Lista d''e paise d''o munno]]
-!! result
+!! html
 <p><a href="/index.php?title=Lista_d%27%27e_paise_d%27%27o_munno&amp;action=edit&amp;redlink=1" class="new" title="Lista d''e paise d''o munno (page does not exist)">Lista d''e paise d''o munno</a>
 </p>
 !! end
 
 !! test
 Link containing double-single-quotes '' in text (bug 4598 sanity check)
-!! input
+!! wikitext
 Some [[Link|pretty ''italics'' and stuff]]!
-!! result
+!! html
 <p>Some <a href="/index.php?title=Link&amp;action=edit&amp;redlink=1" class="new" title="Link (page does not exist)">pretty <i>italics</i> and stuff</a>!
 </p>
 !! end
 
 !! test
 Link containing double-single-quotes '' in text embedded in italics (bug 4598 sanity check)
-!! input
+!! wikitext
 ''Some [[Link|pretty ''italics'' and stuff]]!
-!! result
+!! html
 <p><i>Some <a href="/index.php?title=Link&amp;action=edit&amp;redlink=1" class="new" title="Link (page does not exist)">pretty <i>italics</i> and stuff</a>!</i>
 </p>
 !! end
 
 !! test
 Link with double quotes in title part (literal) and alternate part (interpreted)
-!! input
+!! wikitext
 [[File:Denys Savchenko ''Pentecoste''.jpg]]
 
 [[''Pentecoste'']]
@@ -5375,7 +5288,7 @@ Link with double quotes in title part (literal) and alternate part (interpreted)
 [[''Pentecoste''|Pentecoste]]
 
 [[''Pentecoste''|''Pentecoste'']]
-!! result
+!! html
 <p><a href="/index.php?title=Special:Upload&amp;wpDestFile=Denys_Savchenko_%27%27Pentecoste%27%27.jpg" class="new" title="File:Denys Savchenko &#39;&#39;Pentecoste&#39;&#39;.jpg">File:Denys Savchenko <i>Pentecoste</i>.jpg</a>
 </p><p><a href="/index.php?title=%27%27Pentecoste%27%27&amp;action=edit&amp;redlink=1" class="new" title="''Pentecoste'' (page does not exist)">''Pentecoste''</a>
 </p><p><a href="/index.php?title=%27%27Pentecoste%27%27&amp;action=edit&amp;redlink=1" class="new" title="''Pentecoste'' (page does not exist)">Pentecoste</a>
@@ -5385,12 +5298,12 @@ Link with double quotes in title part (literal) and alternate part (interpreted)
 
 !! test
 Broken image links with HTML captions (bug 39700)
-!! input
+!! wikitext
 [[File:Nonexistent|<script></script>]]
 [[File:Nonexistent|100px|<script></script>]]
 [[File:Nonexistent|&lt;]]
 [[File:Nonexistent|a<i>b</i>c]]
-!! result
+!! html
 <p><a href="/index.php?title=Special:Upload&amp;wpDestFile=Nonexistent" class="new" title="File:Nonexistent">&lt;script&gt;&lt;/script&gt;</a>
 <a href="/index.php?title=Special:Upload&amp;wpDestFile=Nonexistent" class="new" title="File:Nonexistent">&lt;script&gt;&lt;/script&gt;</a>
 <a href="/index.php?title=Special:Upload&amp;wpDestFile=Nonexistent" class="new" title="File:Nonexistent">&lt;</a>
@@ -5400,47 +5313,47 @@ Broken image links with HTML captions (bug 39700)
 
 !! test
 Plain link to URL
-!! input
+!! wikitext
 [[http://www.example.com]]
-!! result
+!! html
 <p>[<a rel="nofollow" class="external autonumber" href="http://www.example.com">[1]</a>]
 </p>
 !! end
 
 !! test
 Plain link to URL with link text
-!! input
+!! wikitext
 [[http://www.example.com Link text]]
-!! result
+!! html
 <p>[<a rel="nofollow" class="external text" href="http://www.example.com">Link text</a>]
 </p>
 !! end
 
 !! test
 Plain link to protocol-relative URL
-!! input
+!! wikitext
 [[//www.example.com]]
-!! result
+!! html
 <p>[<a rel="nofollow" class="external autonumber" href="//www.example.com">[1]</a>]
 </p>
 !! end
 
 !! test
 Plain link to protocol-relative URL with link text
-!! input
+!! wikitext
 [[//www.example.com Link text]]
-!! result
+!! html
 <p>[<a rel="nofollow" class="external text" href="//www.example.com">Link text</a>]
 </p>
 !! end
 
 !! test
 Plain link to page with question mark in title
-!! input
+!! wikitext
 [[A?b]]
 
 [[A?b|Baz]]
-!! result
+!! html
 <p><a href="/wiki/A%3Fb" title="A?b">A?b</a>
 </p><p><a href="/wiki/A%3Fb" title="A?b">Baz</a>
 </p>
@@ -5460,18 +5373,18 @@ Plain link to page with question mark in title
 # -- wtm
 !! test
 Piped link to URL
-!! input
+!! wikitext
 Piped link to URL: [[http://www.example.com|an example URL]]
-!! result
+!! html
 <p>Piped link to URL: [<a rel="nofollow" class="external text" href="http://www.example.com%7Can">example URL</a>]
 </p>
 !! end
 
 !! test
 BUG 2: [[page|http://url/]] should link to page, not http://url/
-!! input
+!! wikitext
 [[Main Page|http://url/]]
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">http://url/</a>
 </p>
 !! end
@@ -5480,9 +5393,9 @@ BUG 2: [[page|http://url/]] should link to page, not http://url/
 BUG 337: Escaped self-links should be bold
 !! options
 title=[[Bug462]]
-!! input
+!! wikitext
 [[Bu&#103;462]] [[Bug462]]
-!! result
+!! html
 <p><strong class="selflink">Bu&#103;462</strong> <strong class="selflink">Bug462</strong>
 </p>
 !! end
@@ -5491,9 +5404,9 @@ title=[[Bug462]]
 Self-link to section should not be bold
 !! options
 title=[[Main Page]]
-!! input
+!! wikitext
 [[Main Page#section]]
-!! result
+!! html
 <p><a href="/wiki/Main_Page#section" title="Main Page">Main Page#section</a>
 </p>
 !! end
@@ -5508,9 +5421,9 @@ This is 00.
 Self-link to numeric title
 !!options
 title=[[0]]
-!!input
+!! wikitext
 [[0]]
-!!result
+!! html
 <p><strong class="selflink">0</strong>
 </p>
 !!end
@@ -5519,27 +5432,27 @@ title=[[0]]
 Link to numeric-equivalent title
 !!options
 title=[[0]]
-!!input
+!! wikitext
 [[00]]
-!!result
+!! html
 <p><a href="/wiki/00" title="00">00</a>
 </p>
 !!end
 
 !! test
 <nowiki> inside a link
-!! input
+!! wikitext
 [[Main<nowiki> Page</nowiki>]] [[Main Page|the main page <nowiki>[it's not very good]</nowiki>]]
-!! result
+!! html
 <p>[[Main Page]] <a href="/wiki/Main_Page" title="Main Page">the main page [it's not very good]</a>
 </p>
 !! end
 
 !! test
 Non-breaking spaces in title
-!! input
+!! wikitext
 [[&nbsp; Main &nbsp; Page &nbsp;]]
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">&#160; Main &#160; Page &#160;</a>
 </p>
 !!end
@@ -5548,9 +5461,9 @@ Non-breaking spaces in title
 Internal link with ca linktrail, surrounded by bold apostrophes (bug 27473 primary issue)
 !! options
 language=ca
-!! input
+!! wikitext
 '''[[Main Page]]'''
-!! result
+!! html
 <p><b><a href="/wiki/Main_Page" title="Main Page">Main Page</a></b>
 </p>
 !! end
@@ -5559,9 +5472,9 @@ language=ca
 Internal link with ca linktrail, surrounded by italic apostrophes (bug 27473 primary issue)
 !! options
 language=ca
-!! input
+!! wikitext
 ''[[Main Page]]''
-!! result
+!! html
 <p><i><a href="/wiki/Main_Page" title="Main Page">Main Page</a></i>
 </p>
 !! end
@@ -5570,9 +5483,9 @@ language=ca
 Internal link with en linktrail: no apostrophes (bug 27473)
 !! options
 language=en
-!! input
+!! wikitext
 [[Something]]'nice
-!! result
+!! html
 <p><a href="/index.php?title=Something&amp;action=edit&amp;redlink=1" class="new" title="Something (page does not exist)">Something</a>'nice
 </p>
 !! end
@@ -5581,9 +5494,9 @@ language=en
 Internal link with ca linktrail with apostrophes (bug 27473)
 !! options
 language=ca
-!! input
+!! wikitext
 [[Something]]'nice
-!! result
+!! html
 <p><a href="/index.php?title=Something&amp;action=edit&amp;redlink=1" class="new" title="Something (encara no existeix)">Something'nice</a>
 </p>
 !! end
@@ -5592,13 +5505,43 @@ language=ca
 Internal link with kaa linktrail with apostrophes (bug 27473)
 !! options
 language=kaa
-!! input
+!! wikitext
 [[Something]]'nice
-!! result
+!! html
 <p><a href="/index.php?title=Something&amp;action=edit&amp;redlink=1" class="new" title="Something (bet ele jaratılmag'an)">Something'nice</a>
 </p>
 !! end
 
+!! test
+1. Interaction of linktrail and template encapsulation
+!! options
+parsoid
+!! wikitext
+{{echo|[[Foo]]}}l
+!! html
+<p><a rel="mw:WikiLink" href="Foo" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"[[Foo]]"}},"i":0}},"l"]}'>Fool</a></p>
+!! end
+
+!! test
+2. Interaction of linktrail and template encapsulation
+!! options
+parsoid
+!! wikitext
+{{echo|Some [[Fool]]}}s
+!! html
+<p data-parsoid='{}'><span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"Some [[Fool]]"}},"i":0}},"s"]}' data-parsoid='{"pi":[[{"k":"1","spc":["","","",""]}]]}'>Some </span><a rel="mw:WikiLink" href="./Fool" about="#mwt1" data-parsoid='{"stx":"simple","a":{"href":"./Fool"},"sa":{"href":"Fool"},"tail":"s"}'>Fools</a></p>
+!! end
+
+!! test
+3. Interaction of linktrail and template encapsulation
+!! options
+parsoid
+!! wikitext
+{{echo|Some [[Fool]]s are '''bold and foolish'''}}
+!! html
+<p about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"Some [[Fool]]s are &#39;&#39;&#39;bold and foolish&#39;&#39;&#39;"}},"i":0}}]}' data-parsoid='{"pi":[[{"k":"1","spc":["","","",""]}]]}'>Some <a rel="mw:WikiLink" href="./Fool" data-parsoid='{"stx":"simple","a":{"href":"./Fool"},"sa":{"href":"Fool"},"tail":"s"}'>Fools</a> are <b data-parsoid="{}">bold and foolish</b></p>
+!! end
+
 !! article
 Söfnuður
 !! text
@@ -5609,9 +5552,9 @@ Test.
 Internal link with is link prefix
 !! options
 language=is
-!! input
+!! wikitext
 Aðrir mótmælenda[[söfnuður|söfnuðir]] og
-!! result
+!! html
 <p>Aðrir <a href="/wiki/S%C3%B6fnu%C3%B0ur" title="Söfnuður">mótmælendasöfnuðir</a> og
 </p>
 !! end
@@ -5626,13 +5569,13 @@ Test.
 Internal link with is link trail and link prefix
 !! options
 language=is
-!! input
+!! wikitext
 [[mótmælendatrú|xxx]]ar
 [[mótmælendatrú]]ar
 mótmælenda[[söfnuður]]
 mótmælenda[[söfnuður|söfnuðir]]
 mótmælenda[[söfnuður|söfnuðir]]xxx
-!! result
+!! html
 <p><a href="/wiki/M%C3%B3tm%C3%A6lendatr%C3%BA" title="Mótmælendatrú">xxxar</a>
 <a href="/wiki/M%C3%B3tm%C3%A6lendatr%C3%BA" title="Mótmælendatrú">mótmælendatrúar</a>
 <a href="/wiki/S%C3%B6fnu%C3%B0ur" title="Söfnuður">mótmælendasöfnuður</a>
@@ -5645,9 +5588,9 @@ mótmælenda[[söfnuður|söfnuðir]]xxx
 Parsoid link trail escaping
 !! options
 parsoid=html2wt,html2html
-!! input
+!! wikitext
 [[apple]]<nowiki/>s
-!! result
+!! html
 <p><a rel="mw:WikiLink" href="Apple">apple</a>s</p>
 !! end
 
@@ -5656,15 +5599,15 @@ Parsoid link prefix escaping
 !! options
 language=is
 parsoid=html2wt,html2html
-!! input
+!! wikitext
 Aðrir mótmælenda<nowiki/>[[söfnuður]]
-!! result
+!! html
 <p>Aðrir mótmælenda<a rel="mw:WikiLink" href="Söfnuður">söfnuður</a></p>
 !! end
 
 !! test
 Parsoid-centric test: Whitespace in ext- and wiki-links should be preserved
-!! input
+!! wikitext
 [[Foo|  bar]]
 
 [[Foo|  ''bar'']]
@@ -5672,7 +5615,7 @@ Parsoid-centric test: Whitespace in ext- and wiki-links should be preserved
 [http://wp.org   foo]
 
 [http://wp.org   ''foo'']
-!! result
+!! html
 <p><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">  bar</a>
 </p><p><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">  <i>bar</i></a>
 </p><p><a rel="nofollow" class="external text" href="http://wp.org">foo</a>
@@ -5684,10 +5627,10 @@ Parsoid-centric test: Whitespace in ext- and wiki-links should be preserved
 Parsoid: Scoped parsing should handle mixed transclusions and plain text
 !! options
 parsoid
-!! input
+!! wikitext
 [[Foo|{{echo|a}} b {{echo|c}}]]
-!! result
-<p data-parsoid='{"dsr":[0,20,0,0]}'><a rel="mw:WikiLink" href="Foo"><span about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a"}},"i":0}}]}'>a</span> b <span about="#mwt3" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"c"}},"i":0}}]}'>c</span></a></p>
+!! html
+<p><a rel="mw:WikiLink" href="Foo"><span about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"a"}},"i":0}}]}'>a</span> b <span about="#mwt3" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"c"}},"i":0}}]}'>c</span></a></p>
 !! end
 
 ###
@@ -5696,28 +5639,28 @@ parsoid
 
 !! test
 Inline interwiki link
-!! input
+!! wikitext
 [[MeatBall:SoftSecurity]]
-!! result
+!! html
 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity" class="extiw" title="meatball:SoftSecurity">MeatBall:SoftSecurity</a>
 </p>
 !! end
 
 !! test
 Inline interwiki link with empty title (bug 2372)
-!! input
+!! wikitext
 [[MeatBall:]]
-!! result
+!! html
 <p><a href="http://www.usemod.com/cgi-bin/mb.pl" class="extiw" title="meatball:">MeatBall:</a>
 </p>
 !! end
 
 !! test
 Interwiki link encoding conversion (bug 1636)
-!! input
+!! wikitext
 *[[Wikipedia:ro:Olteni&#0355;a]]
 *[[Wikipedia:ro:Olteni&#355;a]]
-!! result
+!! html
 <ul>
 <li><a href="http://en.wikipedia.org/wiki/ro:Olteni%C5%A3a" class="extiw" title="wikipedia:ro:Olteniţa">Wikipedia:ro:Olteni&#355;a</a>
 </li>
@@ -5729,9 +5672,9 @@ Interwiki link encoding conversion (bug 1636)
 
 !! test
 Interwiki link with fragment (bug 2130)
-!! input
+!! wikitext
 [[MeatBall:SoftSecurity#foo]]
-!! result
+!! html
 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?SoftSecurity#foo" class="extiw" title="meatball:SoftSecurity">MeatBall:SoftSecurity#foo</a>
 </p>
 !! end
@@ -5741,29 +5684,28 @@ Interwiki link with fragment (bug 2130)
 Different interwiki prefixes mapping to the same URL
 !! options
 parsoid
-!! input
+!! wikitext
 [[wikipedia:Foo]]
 
 [[:en:Foo]]
-!! result
-<p data-parsoid='{"dsr":[0,17,0,0]}'><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/Foo"},"sa":{"href":"wikipedia:Foo"},"isIW":true,"dsr":[0,17,null,1]}'>wikipedia:Foo</a></p>
-
+!! html
+<p><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"simple","a":{"href":"http://en.wikipedia.org/wiki/Foo"},"sa":{"href":"wikipedia:Foo"},"isIW":true}'>wikipedia:Foo</a></p>
 
-<p data-parsoid='{"dsr":[19,30,0,0]}'><a rel="mw:ExtLink" href="//en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"simple","a":{"href":"//en.wikipedia.org/wiki/Foo"},"sa":{"href":":en:Foo"},"isIW":true,"dsr":[19,30,null,1]}'>en:Foo</a></p>
+<p><a rel="mw:ExtLink" href="//en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"simple","a":{"href":"//en.wikipedia.org/wiki/Foo"},"sa":{"href":":en:Foo"},"isIW":true}'>en:Foo</a></p>
 !! end
 
 !! test
 Interwiki links that cannot be represented in wiki syntax
 !! options
 parsoid
-!! input
+!! wikitext
 [[meatball:ok]]
 [[meatball:ok#foo|ok with fragment]]
 [[meatball:ok_as_well?|ok ending with ? mark]]
 [http://de.wikipedia.org/wiki/Foo?action=history has query]
 [http://de.wikipedia.org/wiki/#foo is just fragment]
 
-!! result
+!! html
 <p><a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?ok">meatball:ok</a>
 <a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?ok#foo">ok with fragment</a>
 <a rel="mw:ExtLink" href="http://www.usemod.com/cgi-bin/mb.pl?ok_as_well%3F">ok ending with ? mark</a>
@@ -5771,6 +5713,15 @@ parsoid
 <a rel="mw:ExtLink" href="http://de.wikipedia.org/wiki/#foo">is just fragment</a></p>
 !! end
 
+!! test
+Interwiki links: trail
+!! options
+parsoid
+!! wikitext
+[[wikipedia:Foo|Ba]]r
+!! html
+<p data-parsoid='{}'><a rel="mw:ExtLink" href="http://en.wikipedia.org/wiki/Foo" data-parsoid='{"stx":"piped","a":{"href":"http://en.wikipedia.org/wiki/Foo"},"sa":{"href":"wikipedia:Foo"},"isIW":true,"tail":"r"}'>Bar</a></p>
+!! end
 
 ###
 ### Interlanguage links
@@ -5779,21 +5730,21 @@ parsoid
 
 !! test
 Interlanguage link
-!! input
+!! wikitext
 Blah blah blah
 [[zh:Chinese]]
-!!result
+!! html
 <p>Blah blah blah
 </p>
 !! end
 
 !! test
 Double interlanguage link
-!! input
+!! wikitext
 Blah blah blah
 [[es:Spanish]]
 [[zh:Chinese]]
-!!result
+!! html
 <p>Blah blah blah
 </p>
 !! end
@@ -5802,10 +5753,10 @@ Blah blah blah
 Interlanguage link, with prefix links
 !! options
 language=ln
-!! input
+!! wikitext
 Blah blah blah
 [[zh:Chinese]]
-!!result
+!! html
 <p>Blah blah blah
 </p>
 !! end
@@ -5814,11 +5765,11 @@ Blah blah blah
 Double interlanguage link, with prefix links (bug 8897)
 !! options
 language=ln
-!! input
+!! wikitext
 Blah blah blah
 [[es:Spanish]]
 [[zh:Chinese]]
-!!result
+!! html
 <p>Blah blah blah
 </p>
 !! end
@@ -5827,9 +5778,9 @@ Blah blah blah
 Parsoid-specific test: Wikilinks with &nbsp; should RT properly
 !! options
 language=ln
-!! input
+!! wikitext
 [[WW&nbsp;II]]
-!!result
+!! html
 <p><a href="/index.php?title=WW_II&amp;action=edit&amp;redlink=1" class="new" title="WW II (lonkásá  ezalí tɛ̂)">WW&#160;II</a>
 </p>
 !! end
@@ -5838,11 +5789,11 @@ language=ln
 Parsoid bug 53221: Wikilinks should be properly entity-escaped
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 He&amp;nbsp;llo [[Foo|He&amp;nbsp;llo]]
 
 He&amp;nbsp;llo [[He&amp;nbsp;llo]]
-!!result
+!! html
 <p>He&amp;nbsp;llo <a href="Foo" rel="mw:WikiLink">He&amp;nbsp;llo</a></p>
 <p>He&amp;nbsp;llo <a href="He&amp;nbsp;llo" rel="mw:WikiLink">He&amp;nbsp;llo</a></p>
 !! end
@@ -5851,24 +5802,23 @@ He&amp;nbsp;llo [[He&amp;nbsp;llo]]
 Parsoid: handle constructor well
 !! options
 parsoid
-!! input
+!! wikitext
 [[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>
+!! html
+<p><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;}}">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>
+<p><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;}}">constructor:foo</a></p>
 !! end
 
 !! test
 Parsoid: recognize interlanguage links without a target page
 !! options
 parsoid
-!! input
+!! wikitext
 [[ko:]]
-!! result
+!! html
 <p>
 <link rel="mw:PageProp/Language" href="http://ko.wikipedia.org/wiki/"></p>
 !! end
@@ -5877,23 +5827,46 @@ parsoid
 Parsoid: recognize interwiki links without a target page
 !! options
 parsoid
-!! input
+!! wikitext
 [[:ko:]]
-!! result
+!! html
 <p><a rel="mw:ExtLink" href="//ko.wikipedia.org/wiki/">ko:</a></p>
 !! end
 
+!! test
+Parsoid: Bug #45209, handle interwiki links pointing to the current wiki as plain wiki links
+!! options
+parsoid
+!! wikitext
+[[en:Foo]]
+!! html
+<p><a rel="mw:WikiLink" href="./Foo" data-parsoid='{"stx":"simple","a":{"href":"./Foo"},"sa":{"href":"en:Foo"}}'>Foo</a></p>
+!! end
+
 ###
 ### Redirects, Parsoid-only
 ###
 !! test
-Simple redirect to page
+1. Simple redirect to page
 !! options
 parsoid
-!! input
+!! wikitext
 #REDIRECT [[Main Page]]
-!! result
+!! html
+<link rel="mw:PageProp/redirect" href="./Main_Page">
+!! end
+
+# Only wt2html and html2html since "Main_Page" will serialize to "Main Page"
+!! test
+2. Other redirect variants
+!! options
+parsoid=wt2html,wt2wt
+!! wikitext
+#REDIRECT [[Main_Page]]
+#REDIRECT [[<nowiki>[[Bar]]</nowiki>]]
+!! html
 <link rel="mw:PageProp/redirect" href="./Main_Page">
+<link rel="mw:PageProp/redirect" href="./%5B%5BBar%5D%5D">
 !! end
 
 !! test
@@ -5902,9 +5875,9 @@ Optional colon in #REDIRECT
 # the colon is archaic syntax.  we support it for wt2html, but we
 # don't care that it roundtrips back to the modern syntax.
 parsoid=wt2html,html2html
-!! input
+!! wikitext
 #REDIRECT:[[Main Page]]
-!! result
+!! html
 <link rel="mw:PageProp/redirect" href="./Main_Page">
 !! end
 
@@ -5915,12 +5888,12 @@ Whitespace in #REDIRECT with optional colon
 # it for wt2html, but we don't care that it roundtrips back to the
 # modern syntax (without extra whitespace)
 parsoid=wt2html,html2html
-!! input
+!! wikitext
  
  #REDIRECT 
 : 
 [[Main Page]]
-!! result
+!! html
 <link rel="mw:PageProp/redirect" href="./Main_Page">
 !! end
 
@@ -5930,9 +5903,9 @@ Piped link in #REDIRECT
 # content after piped link is ignored.  we support this syntax,
 # but don't care that the piped link is lost when we roundtrip this.
 parsoid=wt2html
-!! input
+!! wikitext
 #REDIRECT [[Main Page|bar]]
-!! result
+!! html
 <link rel="mw:PageProp/redirect" href="./Main_Page">
 !! end
 
@@ -5940,9 +5913,9 @@ parsoid=wt2html
 Redirect to category
 !! options
 parsoid=wt2html
-!! input
+!! wikitext
 #REDIRECT [[Category:Foo]]
-!! result
+!! html
 <link rel="mw:PageProp/redirect" href="./Category:Foo"><link rel="mw:PageProp/Category" href="./Category:Foo">
 !! end
 
@@ -5950,9 +5923,9 @@ parsoid=wt2html
 Redirect to category with URL encoding
 !! options
 parsoid=wt2html
-!! input
+!! wikitext
 #REDIRECT [[Category%3AFoo]]
-!! result
+!! html
 <link rel="mw:PageProp/redirect" href="./Category:Foo"><link rel="mw:PageProp/Category" href="./Category:Foo">
 !! end
 
@@ -5960,9 +5933,9 @@ parsoid=wt2html
 Redirect to category page
 !! options
 parsoid=wt2html,html2html
-!! input
+!! wikitext
 #REDIRECT [[:Category:Foo]]
-!! result
+!! html
 <p><a rel="mw:WikiLink" href="Category:Foo">Category:Foo</a></p>
 !! end
 
@@ -5970,9 +5943,9 @@ parsoid=wt2html,html2html
 Redirect to image page (1)
 !! options
 parsoid
-!! input
+!! wikitext
 #REDIRECT [[File:Wiki.png]]
-!! result
+!! html
 <link rel="mw:PageProp/redirect" href="./File:Wiki.png">
 !! end
 
@@ -5980,9 +5953,9 @@ parsoid
 Redirect to image page (2)
 !! options
 parsoid
-!! input
+!! wikitext
 #REDIRECT [[Image:Wiki.png]]
-!! result
+!! html
 <link rel="mw:PageProp/redirect" href="./File:Wiki.png">
 !! end
 
@@ -5990,9 +5963,9 @@ parsoid
 Redirect to language
 !! options
 parsoid
-!! input
+!! wikitext
 #REDIRECT [[en:File:Wiki.png]]
-!! result
+!! html
 <link rel="mw:PageProp/redirect" href="File:Wiki.png">
 !! end
 
@@ -6000,9 +5973,9 @@ parsoid
 Redirect to interwiki
 !! options
 parsoid
-!! input
+!! wikitext
 #REDIRECT [[meatball:File:Wiki.png]]
-!! result
+!! html
 <link rel="mw:PageProp/redirect" href="File:Wiki.png">
 !! end
 
@@ -6011,32 +5984,41 @@ Non-English #REDIRECT
 !! options
 parsoid
 language=is
-!! input
+!! wikitext
 #TILVÍSUN [[Main Page]]
-!! result
+!! html
 <link rel="mw:PageProp/redirect" href="./Main_Page">
 !! end
 
+!! test
+New redirect
+!! options
+parsoid=html2wt
+!! wikitext
+Foo
+#REDIRECT [[Foo]]
+!! html
+<p>Foo<link rel="mw:PageProp/redirect" href="./Foo"></p>
+!! end
+
 ##
 ## XHTML tidiness
 ###
 
 !! test
 <br> to <br />
-!! input
+!! wikitext
 1<br>2<br />3
-!! result
+!! html
 <p>1<br />2<br />3
 </p>
 !! end
 
 !! test
 Broken br tag sanitization
-!! options
-php
-!! input
+!! wikitext
 </br>
-!! result
+!! html/php
 <p>&lt;/br&gt;
 </p>
 !! end
@@ -6046,28 +6028,28 @@ php
 Parsoid: Broken br tag recognition
 !! options
 parsoid=wt2html
-!! input
+!! wikitext
 </br>
-!! result
+!! html/parsoid
 <p><br></p>
 !! end
 
 !! test
 Incorrecly removing closing slashes from correctly formed XHTML
-!! input
+!! wikitext
 <br style="clear:both;" />
-!! result
+!! html
 <p><br style="clear:both;" />
 </p>
 !! end
 
 !! test
 Failing to transform badly formed HTML into correct XHTML
-!! input
+!! wikitext
 <br style="clear: left;">
 <br style="clear: right;">
 <br style="clear: both;">
-!! result
+!! html
 <p><br style="clear: left;" />
 <br style="clear: right;" />
 <br style="clear: both;" />
@@ -6076,14 +6058,14 @@ Failing to transform badly formed HTML into correct XHTML
 
 !! test
 Handling html with a div self-closing tag
-!! input
+!! wikitext
 <div title />
 <div title/>
 <div title/ >
 <div title=bar />
 <div title=bar/>
 <div title=bar/ >
-!! result
+!! html
 <p>&lt;div title /&gt;
 &lt;div title/&gt;
 </p>
@@ -6098,14 +6080,14 @@ Handling html with a div self-closing tag
 
 !! test
 Handling html with a br self-closing tag
-!! input
+!! wikitext
 <br title />
 <br title/>
 <br title/ >
 <br title=bar />
 <br title=bar/>
 <br title=bar/ >
-!! result
+!! html
 <p><br title="title" />
 <br title="title" />
 <br />
@@ -6117,12 +6099,12 @@ Handling html with a br self-closing tag
 
 !! test
 Horizontal ruler (should it add that extra space?)
-!! input
+!! wikitext
 <hr>
 <hr >
 foo <hr
 > bar
-!! result
+!! html
 <hr />
 <hr />
 foo <hr /> bar
@@ -6131,28 +6113,28 @@ foo <hr /> bar
 
 !! test
 Horizontal ruler -- 4+ dashes render hr
-!! input
+!! wikitext
 ----
-!! result
+!! html
 <hr />
 
 !! end
 
 !! test
 Horizontal ruler -- eats additional dashes on the same line
-!! input
+!! wikitext
 ---------
-!! result
+!! html
 <hr />
 
 !! end
 
 !! test
 Horizontal ruler -- does not collapse dashes on consecutive lines
-!! input
+!! wikitext
 ----
 ----
-!! result
+!! html
 <hr />
 <hr />
 
@@ -6160,18 +6142,18 @@ Horizontal ruler -- does not collapse dashes on consecutive lines
 
 !! test
 Horizontal ruler -- <4 dashes render as plain text
-!! input
+!! wikitext
 ---
-!! result
+!! html
 <p>---
 </p>
 !! end
 
 !! test
 Horizontal ruler -- Supports content following dashes on same line
-!! input
+!! wikitext
 ---- Foo
-!! result
+!! html
 <hr /> Foo
 
 !! end
@@ -6181,11 +6163,11 @@ Horizontal ruler -- Supports content following dashes on same line
 ###
 !! test
 Common list
-!! input
+!! wikitext
 *Common list
 * item 2
 *item 3
-!! result
+!! html
 <ul>
 <li>Common list
 </li>
@@ -6199,11 +6181,11 @@ Common list
 
 !! test
 Numbered list
-!! input
+!! wikitext
 #Numbered list
 #item 2
 # item 3
-!! result
+!! html
 <ol>
 <li>Numbered list
 </li>
@@ -6217,7 +6199,7 @@ Numbered list
 
 !! test
 Mixed list
-!! input
+!! wikitext
 *Mixed list
 *# with numbers
 ** and bullets
@@ -6233,7 +6215,7 @@ Mixed list
 *Level 1
 *** Level 3
 #** Level 3, but ordered
-!! result
+!! html
 <ul>
 <li>Mixed list
 <ol>
@@ -6300,10 +6282,10 @@ Mixed list
 
 !! test
 Nested lists 1
-!! input
+!! wikitext
 *foo
 **bar
-!! result
+!! html
 <ul>
 <li>foo
 <ul>
@@ -6317,10 +6299,10 @@ Nested lists 1
 
 !! test
 Nested lists 2
-!! input
+!! wikitext
 **foo
 *bar
-!! result
+!! html
 <ul>
 <li><ul>
 <li>foo
@@ -6335,10 +6317,10 @@ Nested lists 2
 
 !! test
 Nested lists 3 (first element empty)
-!! input
+!! wikitext
 *
 **bar
-!! result
+!! html
 <ul>
 <li>
 <ul>
@@ -6352,10 +6334,10 @@ Nested lists 3 (first element empty)
 
 !! test
 Nested lists 4 (first element empty)
-!! input
+!! wikitext
 **
 *bar
-!! result
+!! html
 <ul>
 <li><ul>
 <li>
@@ -6370,10 +6352,10 @@ Nested lists 4 (first element empty)
 
 !! test
 Nested lists 5 (both elements empty)
-!! input
+!! wikitext
 **
 *
-!! result
+!! html
 <ul>
 <li><ul>
 <li>
@@ -6388,10 +6370,10 @@ Nested lists 5 (both elements empty)
 
 !! test
 Nested lists 6 (both elements empty)
-!! input
+!! wikitext
 *
 **
-!! result
+!! html
 <ul>
 <li>
 <ul>
@@ -6405,9 +6387,9 @@ Nested lists 6 (both elements empty)
 
 !! test
 Nested lists 7 (skip initial nesting levels)
-!! input
+!! wikitext
 *** foo
-!! result
+!! html
 <ul>
 <li><ul>
 <li><ul>
@@ -6423,12 +6405,12 @@ Nested lists 7 (skip initial nesting levels)
 
 !! test
 Nested lists 8 (multiple nesting transitions)
-!! input
+!! wikitext
 * foo
 *** bar
 ** baz
 * boo
-!! result
+!! html
 <ul>
 <li> foo
 <ul>
@@ -6449,11 +6431,11 @@ Nested lists 8 (multiple nesting transitions)
 
 !! test
 1. Lists with start-of-line-transparent tokens before bullets: Comments
-!! input
+!! wikitext
 *foo
 *<!--cmt-->bar
 <!--cmt-->*baz
-!! result
+!! html
 <ul>
 <li>foo
 </li>
@@ -6467,10 +6449,10 @@ Nested lists 8 (multiple nesting transitions)
 
 !! test
 2. Lists with start-of-line-transparent tokens before bullets: Template close
-!! input
+!! wikitext
 *foo {{echo|bar
 }}*baz
-!! result
+!! html
 <ul>
 <li>foo bar
 </li>
@@ -6482,11 +6464,11 @@ Nested lists 8 (multiple nesting transitions)
 
 !! test
 List items are not parsed correctly following a <pre> block (bug 785)
-!! input
+!! wikitext
 * <pre>foo</pre>
 * <pre>bar</pre>
 * zar
-!! result
+!! html
 <ul>
 <li> <pre>foo</pre>
 </li>
@@ -6500,7 +6482,7 @@ List items are not parsed correctly following a <pre> block (bug 785)
 
 !! test
 List items from template
-!! input
+!! wikitext
 
 {{inner list}}
 * item 2
@@ -6512,7 +6494,7 @@ List items from template
 * item 0
 * notSOL{{inner list}}
 * item 2
-!! result
+!! html
 <ul>
 <li> item 1
 </li>
@@ -6542,13 +6524,13 @@ List items from template
 
 !! test
 List interrupted by empty line or heading
-!! input
+!! wikitext
 * foo
 
 ** bar
 == A heading ==
 * Another list item
-!! result
+!! html
 <ul>
 <li> foo
 </li>
@@ -6570,11 +6552,11 @@ List interrupted by empty line or heading
 
 !!test
 Multiple list tags generated by templates
-!!input
+!! wikitext
 {{echo|<li>}}a
 {{echo|<li>}}b
 {{echo|<li>}}c
-!!result
+!! html
 <li>a
 <li>b
 <li>c</li>
@@ -6585,7 +6567,7 @@ Multiple list tags generated by templates
 
 !!test
 Single-comment whitespace lines dont break lists, and neither do multi-comment whitespace lines
-!!input
+!! wikitext
 *a
 <!--This line will NOT split the list-->
 *b
@@ -6593,7 +6575,7 @@ Single-comment whitespace lines dont break lists, and neither do multi-comment w
 *c
  <!--foo--> <!----> <!--This line NOT split the list either--> 
 *d
-!!result
+!! html
 <ul>
 <li>a
 </li>
@@ -6609,7 +6591,7 @@ Single-comment whitespace lines dont break lists, and neither do multi-comment w
 
 !!test
 Replacing whitespace with tabs still doesn't break the list (gerrit 78327)
-!!input
+!! wikitext
 *a
 <!--This line will NOT split the list-->       
 *b
@@ -6618,7 +6600,7 @@ Replacing whitespace with tabs still doesn't break the list (gerrit 78327)
        <!--foo--> <!---->      <!--This line NOT split the list
         either-->       
 *d
-!!result
+!! html
 <ul>
 <li>a
 </li>
@@ -6637,7 +6619,7 @@ Test the li-hack
 (Cannot test this with PHP parser since it relies on Tidy for the hack)
 !!options
 parsoid=wt2html,wt2wt
-!!input
+!! wikitext
 * foo
 * <li>li-hack
 * {{echo|<li>templated li-hack}}
@@ -6647,7 +6629,7 @@ parsoid=wt2html,wt2wt
 <li><li>not a li-hack
 </li>
 </ul>
-!!result
+!! html
 <ul>
 <li> foo</li>
 <li>li-hack</li>
@@ -6667,14 +6649,14 @@ parsoid=wt2html,wt2wt
 Parsoid: Make sure nested lists are serialized on their own line even if HTML contains no newlines
 !! options
 parsoid
-!! input
+!! wikitext
 # foo
 ## bar
 * foo
 ** bar
 : foo
 :: bar
-!! result
+!! html
 <ol>
 <li> foo<ol>
 <li> bar</li>
@@ -6694,9 +6676,9 @@ parsoid
 Parsoid: Test of whitespace serialization with Templated bullets
 !! options
 parsoid
-!! input
+!! wikitext
 * {{bullet}}
-!! result
+!! html
 <ul>
 <li> </li><li about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"bullet","href":"./Template:Bullet"},"params":{},"i":0}}]}'> Bar</li>
 </ul>
@@ -6710,13 +6692,11 @@ parsoid
 !! 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
+!! wikitext
 <div>
 *a</div><div>
 *b</div>
-!! result
+!! html/parsoid
 <div>
 <ul>
 <li>a
@@ -6731,13 +6711,11 @@ parsoid
 !! 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
+!! wikitext
 <span>
 *a</span><span>
 *b</span>
-!! result
+!! html/parsoid
 <p><span></span>
 </p>
 <ul>
@@ -6751,12 +6729,10 @@ parsoid
 !! 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
+!! wikitext
 # <s> a
 # b </s>
-!! result
+!! html/parsoid
 <ol>
 <li> <s> a </s>
 </li>
@@ -6768,13 +6744,11 @@ parsoid
 !!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
+!! wikitext
 <small>
 * foo
 </small>
-!!result
+!! html/parsoid
 <p><small></small></p>
 <small>
 <ul>
@@ -6788,12 +6762,12 @@ parsoid
 Table with missing opening <tr> tag
 !! options
 parsoid=wt2html,wt2wt
-!! input
+!! wikitext
 <table>
 <td>foo</td>
 </tr>
 </table>
-!! result
+!! html/parsoid
 <table>
 <tr>
 <td>foo</td>
@@ -6812,133 +6786,133 @@ parsoid=wt2html,wt2wt
 
 !! test
 Magic Word: {{CURRENTDAY}}
-!! input
+!! wikitext
 {{CURRENTDAY}}
-!! result
+!! html
 <p>1
 </p>
 !! end
 
 !! test
 Magic Word: {{CURRENTDAY2}}
-!! input
+!! wikitext
 {{CURRENTDAY2}}
-!! result
+!! html
 <p>01
 </p>
 !! end
 
 !! test
 Magic Word: {{CURRENTDAYNAME}}
-!! input
+!! wikitext
 {{CURRENTDAYNAME}}
-!! result
+!! html
 <p>Thursday
 </p>
 !! end
 
 !! test
 Magic Word: {{CURRENTDOW}}
-!! input
+!! wikitext
 {{CURRENTDOW}}
-!! result
+!! html
 <p>4
 </p>
 !! end
 
 !! test
 Magic Word: {{CURRENTMONTH}}
-!! input
+!! wikitext
 {{CURRENTMONTH}}
-!! result
+!! html
 <p>01
 </p>
 !! end
 
 !! test
 Magic Word: {{CURRENTMONTH1}}
-!! input
+!! wikitext
 {{CURRENTMONTH1}}
-!! result
+!! html
 <p>1
 </p>
 !! end
 
 !! test
 Magic Word: {{CURRENTMONTHABBREV}}
-!! input
+!! wikitext
 {{CURRENTMONTHABBREV}}
-!! result
+!! html
 <p>Jan
 </p>
 !! end
 
 !! test
 Magic Word: {{CURRENTMONTHNAME}}
-!! input
+!! wikitext
 {{CURRENTMONTHNAME}}
-!! result
+!! html
 <p>January
 </p>
 !! end
 
 !! test
 Magic Word: {{CURRENTMONTHNAMEGEN}}
-!! input
+!! wikitext
 {{CURRENTMONTHNAMEGEN}}
-!! result
+!! html
 <p>January
 </p>
 !! end
 
 !! test
 Magic Word: {{CURRENTTIME}}
-!! input
+!! wikitext
 {{CURRENTTIME}}
-!! result
+!! html
 <p>00:02
 </p>
 !! end
 
 !! test
 Magic Word: {{CURRENTHOUR}}
-!! input
+!! wikitext
 {{CURRENTHOUR}}
-!! result
+!! html
 <p>00
 </p>
 !! end
 
 !! test
 Magic Word: {{CURRENTWEEK}} (@bug 4594)
-!! input
+!! wikitext
 {{CURRENTWEEK}}
-!! result
+!! html
 <p>1
 </p>
 !! end
 
 !! test
 Magic Word: {{CURRENTYEAR}}
-!! input
+!! wikitext
 {{CURRENTYEAR}}
-!! result
+!! html
 <p>1970
 </p>
 !! end
 
 !! test
 Magic Word: {{CURRENTTIMESTAMP}}
-!! input
+!! wikitext
 {{CURRENTTIMESTAMP}}
-!! result
+!! html
 <p>19700101000203
 </p>
 !! end
 
 !! test
 Magic Words LOCAL (UTC)
-!! input
+!! wikitext
 * {{LOCALMONTH}}
 * {{LOCALMONTH1}}
 * {{LOCALMONTHNAME}}
@@ -6953,7 +6927,7 @@ Magic Words LOCAL (UTC)
 * {{LOCALWEEK}}
 * {{LOCALDOW}}
 * {{LOCALTIMESTAMP}}
-!! result
+!! html
 <ul>
 <li> 01
 </li>
@@ -6991,9 +6965,9 @@ Magic Words LOCAL (UTC)
 Magic Word: {{FULLPAGENAME}}
 !! options
 title=[[User:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{FULLPAGENAME}}
-!! result
+!! html
 <p>User:Ævar Arnfjörð Bjarmason
 </p>
 !! end
@@ -7002,9 +6976,9 @@ title=[[User:Ævar Arnfjörð Bjarmason]]
 Magic Word: {{FULLPAGENAMEE}}
 !! options
 title=[[User:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{FULLPAGENAMEE}}
-!! result
+!! html
 <p>User:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
 </p>
 !! end
@@ -7013,9 +6987,9 @@ title=[[User:Ævar Arnfjörð Bjarmason]]
 Magic Word: {{TALKSPACE}}
 !! options
 title=[[User:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{TALKSPACE}}
-!! result
+!! html
 <p>User talk
 </p>
 !! end
@@ -7024,9 +6998,9 @@ title=[[User:Ævar Arnfjörð Bjarmason]]
 Magic Word: {{TALKSPACE}}, same namespace
 !! options
 title=[[User talk:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{TALKSPACE}}
-!! result
+!! html
 <p>User talk
 </p>
 !! end
@@ -7035,9 +7009,9 @@ title=[[User talk:Ævar Arnfjörð Bjarmason]]
 Magic Word: {{TALKSPACE}}, main namespace
 !! options
 title=[[Parser Test]]
-!! input
+!! wikitext
 {{TALKSPACE}}
-!! result
+!! html
 <p>Talk
 </p>
 !! end
@@ -7046,9 +7020,9 @@ title=[[Parser Test]]
 Magic Word: {{TALKSPACEE}}
 !! options
 title=[[User:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{TALKSPACEE}}
-!! result
+!! html
 <p>User_talk
 </p>
 !! end
@@ -7057,9 +7031,9 @@ title=[[User:Ævar Arnfjörð Bjarmason]]
 Magic Word: {{SUBJECTSPACE}}
 !! options
 title=[[User talk:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{SUBJECTSPACE}}
-!! result
+!! html
 <p>User
 </p>
 !! end
@@ -7068,9 +7042,9 @@ title=[[User talk:Ævar Arnfjörð Bjarmason]]
 Magic Word: {{SUBJECTSPACE}}, same namespace
 !! options
 title=[[User:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{SUBJECTSPACE}}
-!! result
+!! html
 <p>User
 </p>
 !! end
@@ -7079,9 +7053,9 @@ title=[[User:Ævar Arnfjörð Bjarmason]]
 Magic Word: {{SUBJECTSPACE}}, main namespace
 !! options
 title=[[Parser Test]]
-!! input
+!! wikitext
 {{SUBJECTSPACE}}
-!! result
+!! html
 
 !! end
 
@@ -7089,9 +7063,9 @@ title=[[Parser Test]]
 Magic Word: {{SUBJECTSPACEE}}
 !! options
 title=[[User talk:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{SUBJECTSPACEE}}
-!! result
+!! html
 <p>User
 </p>
 !! end
@@ -7100,9 +7074,9 @@ title=[[User talk:Ævar Arnfjörð Bjarmason]]
 Magic Word: {{NAMESPACE}}
 !! options
 title=[[User:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{NAMESPACE}}
-!! result
+!! html
 <p>User
 </p>
 !! end
@@ -7111,9 +7085,9 @@ title=[[User:Ævar Arnfjörð Bjarmason]]
 Magic Word: {{NAMESPACEE}}
 !! options
 title=[[User:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{NAMESPACEE}}
-!! result
+!! html
 <p>User
 </p>
 !! end
@@ -7122,9 +7096,9 @@ title=[[User:Ævar Arnfjörð Bjarmason]]
 Magic Word: {{NAMESPACENUMBER}}
 !! options
 title=[[User:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{NAMESPACENUMBER}}
-!! result
+!! html
 <p>2
 </p>
 !! end
@@ -7133,9 +7107,9 @@ title=[[User:Ævar Arnfjörð Bjarmason]]
 Magic Word: {{SUBPAGENAME}}
 !! options
 title=[[Ævar Arnfjörð Bjarmason/sub ö]] subpage
-!! input
+!! wikitext
 {{SUBPAGENAME}}
-!! result
+!! html
 <p>sub ö
 </p>
 !! end
@@ -7144,9 +7118,9 @@ title=[[Ævar Arnfjörð Bjarmason/sub ö]] subpage
 Magic Word: {{SUBPAGENAMEE}}
 !! options
 title=[[Ævar Arnfjörð Bjarmason/sub ö]] subpage
-!! input
+!! wikitext
 {{SUBPAGENAMEE}}
-!! result
+!! html
 <p>sub_%C3%B6
 </p>
 !! end
@@ -7155,9 +7129,9 @@ title=[[Ævar Arnfjörð Bjarmason/sub ö]] subpage
 Magic Word: {{ROOTPAGENAME}}
 !! options
 title=[[Ævar Arnfjörð Bjarmason/sub/sub2]] subpage
-!! input
+!! wikitext
 {{ROOTPAGENAME}}
-!! result
+!! html
 <p>Ævar Arnfjörð Bjarmason
 </p>
 !! end
@@ -7166,9 +7140,9 @@ title=[[Ævar Arnfjörð Bjarmason/sub/sub2]] subpage
 Magic Word: {{ROOTPAGENAMEE}}
 !! options
 title=[[Ævar Arnfjörð Bjarmason/sub/sub2]] subpage
-!! input
+!! wikitext
 {{ROOTPAGENAMEE}}
-!! result
+!! html
 <p>%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
 </p>
 !! end
@@ -7177,9 +7151,9 @@ title=[[Ævar Arnfjörð Bjarmason/sub/sub2]] subpage
 Magic Word: {{BASEPAGENAME}}
 !! options
 title=[[Ævar Arnfjörð Bjarmason/sub]] subpage
-!! input
+!! wikitext
 {{BASEPAGENAME}}
-!! result
+!! html
 <p>Ævar Arnfjörð Bjarmason
 </p>
 !! end
@@ -7188,9 +7162,9 @@ title=[[Ævar Arnfjörð Bjarmason/sub]] subpage
 Magic Word: {{BASEPAGENAMEE}}
 !! options
 title=[[Ævar Arnfjörð Bjarmason/sub]] subpage
-!! input
+!! wikitext
 {{BASEPAGENAMEE}}
-!! result
+!! html
 <p>%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
 </p>
 !! end
@@ -7199,9 +7173,9 @@ title=[[Ævar Arnfjörð Bjarmason/sub]] subpage
 Magic Word: {{TALKPAGENAME}}
 !! options
 title=[[User:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{TALKPAGENAME}}
-!! result
+!! html
 <p>User talk:Ævar Arnfjörð Bjarmason
 </p>
 !! end
@@ -7210,9 +7184,9 @@ title=[[User:Ævar Arnfjörð Bjarmason]]
 Magic Word: {{TALKPAGENAMEE}}
 !! options
 title=[[User:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{TALKPAGENAMEE}}
-!! result
+!! html
 <p>User_talk:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
 </p>
 !! end
@@ -7221,9 +7195,9 @@ title=[[User:Ævar Arnfjörð Bjarmason]]
 Magic Word: {{SUBJECTPAGENAME}}
 !! options
 title=[[User talk:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{SUBJECTPAGENAME}}
-!! result
+!! html
 <p>User:Ævar Arnfjörð Bjarmason
 </p>
 !! end
@@ -7232,18 +7206,18 @@ title=[[User talk:Ævar Arnfjörð Bjarmason]]
 Magic Word: {{SUBJECTPAGENAMEE}}
 !! options
 title=[[User talk:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{SUBJECTPAGENAMEE}}
-!! result
+!! html
 <p>User:%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
 </p>
 !! end
 
 !! test
 Magic Word: {{NUMBEROFFILES}}
-!! input
+!! wikitext
 {{NUMBEROFFILES}}
-!! result
+!! html
 <p>4
 </p>
 !! end
@@ -7252,9 +7226,9 @@ Magic Word: {{NUMBEROFFILES}}
 Magic Word: {{PAGENAME}}
 !! options
 title=[[User:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{PAGENAME}}
-!! result
+!! html
 <p>Ævar Arnfjörð Bjarmason
 </p>
 !! end
@@ -7263,9 +7237,9 @@ title=[[User:Ævar Arnfjörð Bjarmason]]
 Magic Word: {{PAGENAME}} with metacharacters
 !! options
 title=[['foo & bar = baz']]
-!! input
+!! wikitext
 ''{{PAGENAME}}''
-!! result
+!! html
 <p><i>&#39;foo &#38; bar &#61; baz&#39;</i>
 </p>
 !! end
@@ -7274,9 +7248,9 @@ title=[['foo & bar = baz']]
 Magic Word: {{PAGENAME}} with metacharacters (bug 26781)
 !! options
 title=[[*RFC 1234 http://example.com/]]
-!! input
+!! wikitext
 {{PAGENAME}}
-!! result
+!! html
 <p>&#42;RFC&#32;1234 http&#58;//example.com/
 </p>
 !! end
@@ -7285,9 +7259,9 @@ title=[[*RFC 1234 http://example.com/]]
 Magic Word: {{PAGENAMEE}}
 !! options
 title=[[User:Ævar Arnfjörð Bjarmason]]
-!! input
+!! wikitext
 {{PAGENAMEE}}
-!! result
+!! html
 <p>%C3%86var_Arnfj%C3%B6r%C3%B0_Bjarmason
 </p>
 !! end
@@ -7296,75 +7270,75 @@ title=[[User:Ævar Arnfjörð Bjarmason]]
 Magic Word: {{PAGENAMEE}} with metacharacters (bug 26781)
 !! options
 title=[[*RFC 1234 http://example.com/]]
-!! input
+!! wikitext
 {{PAGENAMEE}}
-!! result
+!! html
 <p>&#42;RFC_1234_http&#58;//example.com/
 </p>
 !! end
 
 !! test
 Magic Word: {{REVISIONID}}
-!! input
+!! wikitext
 {{REVISIONID}}
-!! result
+!! html
 <p>1337
 </p>
 !! end
 
 !! test
 Magic Word: {{SCRIPTPATH}}
-!! input
+!! wikitext
 {{SCRIPTPATH}}
-!! result
+!! html
 <p>/
 </p>
 !! end
 
 !! test
 Magic Word: {{STYLEPATH}}
-!! input
+!! wikitext
 {{STYLEPATH}}
-!! result
+!! html
 <p>/skins
 </p>
 !! end
 
 !! test
 Magic Word: {{SERVER}}
-!! input
+!! wikitext
 {{SERVER}}
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://example.org">http://example.org</a>
 </p>
 !! end
 
 !! test
 Magic Word: {{SERVERNAME}}
-!! input
+!! wikitext
 {{SERVERNAME}}
-!! result
+!! html
 <p>example.org
 </p>
 !! end
 
 !! test
 Magic Word: {{SITENAME}}
-!! input
+!! wikitext
 {{SITENAME}}
-!! result
+!! html
 <p>MediaWiki
 </p>
 !! end
 
 !! test
 Case-sensitive magic words, when cased differently, should just be template transclusions
-!! input
+!! wikitext
 {{CurrentMonth}}
 {{currentday}}
 {{cURreNTweEK}}
 {{currentHour}}
-!! result
+!! html
 <p><a href="/index.php?title=Template:CurrentMonth&amp;action=edit&amp;redlink=1" class="new" title="Template:CurrentMonth (page does not exist)">Template:CurrentMonth</a>
 <a href="/index.php?title=Template:Currentday&amp;action=edit&amp;redlink=1" class="new" title="Template:Currentday (page does not exist)">Template:Currentday</a>
 <a href="/index.php?title=Template:CURreNTweEK&amp;action=edit&amp;redlink=1" class="new" title="Template:CURreNTweEK (page does not exist)">Template:CURreNTweEK</a>
@@ -7374,12 +7348,12 @@ Case-sensitive magic words, when cased differently, should just be template tran
 
 !! test
 Case-insensitive magic words should still work with weird casing.
-!! input
+!! wikitext
 {{sErVeRNaMe}}
 {{LCFirst:AOEU}}
 {{ucFIRST:aoeu}}
 {{SERver}}
-!! result
+!! html
 <p>example.org
 aOEU
 Aoeu
@@ -7389,88 +7363,88 @@ Aoeu
 
 !! test
 Namespace 1 {{ns:1}}
-!! input
+!! wikitext
 {{ns:1}}
-!! result
+!! html
 <p>Talk
 </p>
 !! end
 
 !! test
 Namespace 1 {{ns:01}}
-!! input
+!! wikitext
 {{ns:01}}
-!! result
+!! html
 <p>Talk
 </p>
 !! end
 
 !! test
 Namespace 0 {{ns:0}} (bug 4783)
-!! input
+!! wikitext
 {{ns:0}}
-!! result
+!! html
 
 !! end
 
 !! test
 Namespace 0 {{ns:00}} (bug 4783)
-!! input
+!! wikitext
 {{ns:00}}
-!! result
+!! html
 
 !! end
 
 !! test
 Namespace -1 {{ns:-1}}
-!! input
+!! wikitext
 {{ns:-1}}
-!! result
+!! html
 <p>Special
 </p>
 !! end
 
 !! test
 Namespace User {{ns:User}}
-!! input
+!! wikitext
 {{ns:User}}
-!! result
+!! html
 <p>User
 </p>
 !! end
 
 !! test
 Namespace User talk {{ns:User_talk}}
-!! input
+!! wikitext
 {{ns:User_talk}}
-!! result
+!! html
 <p>User talk
 </p>
 !! end
 
 !! test
 Namespace User talk {{ns:uSeR tAlK}}
-!! input
+!! wikitext
 {{ns:uSeR tAlK}}
-!! result
+!! html
 <p>User talk
 </p>
 !! end
 
 !! test
 Namespace File {{ns:File}}
-!! input
+!! wikitext
 {{ns:File}}
-!! result
+!! html
 <p>File
 </p>
 !! end
 
 !! test
 Namespace File {{ns:Image}}
-!! input
+!! wikitext
 {{ns:Image}}
-!! result
+!! html
 <p>File
 </p>
 !! end
@@ -7479,9 +7453,9 @@ Namespace File {{ns:Image}}
 Namespace (lang=de) Benutzer {{ns:User}}
 !! options
 language=de
-!! input
+!! wikitext
 {{ns:User}}
-!! result
+!! html
 <p>Benutzer
 </p>
 !! end
@@ -7490,9 +7464,9 @@ language=de
 Namespace (lang=de) Benutzer Diskussion {{ns:3}}
 !! options
 language=de
-!! input
+!! wikitext
 {{ns:3}}
-!! result
+!! html
 <p>Benutzer Diskussion
 </p>
 !! end
@@ -7500,12 +7474,12 @@ language=de
 
 !! test
 Urlencode
-!! input
+!! wikitext
 {{urlencode:hi world?!}}
 {{urlencode:hi world?!|WIKI}}
 {{urlencode:hi world?!|PATH}}
 {{urlencode:hi world?!|QUERY}}
-!! result
+!! html
 <p>hi+world%3F%21
 hi_world%3F!
 hi%20world%3F%21
@@ -7513,41 +7487,74 @@ hi+world%3F%21
 </p>
 !! end
 
+!! test
+Magic Word: prioritize type info over data-parsoid
+!! options
+parsoid=html2wt
+!! wikitext
+__FORCETOC__
+!! html
+<meta property="mw:PageProp/forcetoc" data-parsoid='{"src":"__NOTOC__","magicSrc":"__NOTOC__"}'/>
+!! end
+
+!! test
+Magic Word: serialize on separate line (parsoid)
+!! options
+parsoid=wt2wt,html2wt
+!! wikitext
+foo
+__NOTOC__
+bar
+!! html
+foo<meta property="mw:PageProp/notoc"/>bar
+!! end
+
+!! test
+Magic Word: rt non-english wikis
+!! options
+parsoid=wt2wt
+language=de
+!! wikitext
+__NOEDITSECTION__
+!! html
+<meta property="mw:PageProp/noeditsection" data-parsoid='{"src":"__NOEDITSECTION__","magicSrc":"__NOEDITSECTION__"}'/>
+!! end
+
 ###
 ### Magic links
 ###
 !! test
 Magic links: internal link to RFC (bug 479)
-!! input
+!! wikitext
 [[RFC 123]]
-!! result
+!! html
 <p><a href="/index.php?title=RFC_123&amp;action=edit&amp;redlink=1" class="new" title="RFC 123 (page does not exist)">RFC 123</a>
 </p>
 !! end
 
 !! test
 Magic links: RFC (bug 479)
-!! input
+!! wikitext
 RFC 822
-!! result
+!! html
 <p><a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc822">RFC 822</a>
 </p>
 !! end
 
 !! test
 Magic links: ISBN (bug 1937)
-!! input
+!! wikitext
 ISBN 0-306-40615-2
-!! result
+!! html
 <p><a href="/wiki/Special:BookSources/0306406152" class="internal mw-magiclink-isbn">ISBN 0-306-40615-2</a>
 </p>
 !! end
 
 !! test
 Magic links: PMID incorrectly converts space to underscore
-!! input
+!! wikitext
 PMID 1234
-!! result
+!! html
 <p><a class="external mw-magiclink-pmid" rel="nofollow" href="//www.ncbi.nlm.nih.gov/pubmed/1234?dopt=Abstract">PMID 1234</a>
 </p>
 !! end
@@ -7558,31 +7565,42 @@ PMID 1234
 
 !! test
 Nonexistent template
-!! input
+!! wikitext
 {{thistemplatedoesnotexist}}
-!! result
+!! html
 <p><a href="/index.php?title=Template:Thistemplatedoesnotexist&amp;action=edit&amp;redlink=1" class="new" title="Template:Thistemplatedoesnotexist (page does not exist)">Template:Thistemplatedoesnotexist</a>
 </p>
 !! end
 
 !! test
 Template with invalid target containing tags
-!! input
+!! wikitext
 {{a<b>b</b>|{{echo|foo}}|{{echo|a}}={{echo|b}}|a = b}}
-!! result
+!! html
 <p>{{a<b>b</b>|foo|a=b|a = b}}
 </p>
 !! end
 
 !! test
 Template with invalid target containing unclosed tag
-!! input
+!! wikitext
 {{a<b>|{{echo|foo}}|{{echo|a}}={{echo|b}}|a = b}}
-!! result
+!! html
 <p>{{a<b>|foo|a=b|a = b}}</b>
 </p>
 !! end
 
+!! test
+Template with invalid target containing wikilink
+!! wikitext
+{{[[Main Page]]}}
+!! html/php
+<p>{{<a href="/wiki/Main_Page" title="Main Page">Main Page</a>}}
+</p>
+!! html/parsoid
+<p><span typeof="mw:Transclusion" about="#mwt1" data-mw='{"parts":[{"template":{"target":{"wt":"[[Main Page]]"},"params":{},"i":0}}]}'>{{</span><a rel="mw:WikiLink" href="./Main_Page" about="#mwt1">Main Page</a><span about="#mwt1">}}</span></p>
+!! end
+
 !! article
 Template:test
 !! text
@@ -7591,18 +7609,18 @@ This is a test template
 
 !! test
 Simple template
-!! input
+!! wikitext
 {{test}}
-!! result
+!! html
 <p>This is a test template
 </p>
 !! end
 
 !! test
 Template with explicit namespace
-!! input
+!! wikitext
 {{Template:test}}
-!! result
+!! html
 <p>This is a test template
 </p>
 !! end
@@ -7616,9 +7634,9 @@ This is a test template with parameter {{{param}}}
 
 !! test
 Template parameter
-!! input
+!! wikitext
 {{paramtest|param=foo}}
-!! result
+!! html
 <p>This is a test template with parameter foo
 </p>
 !! end
@@ -7631,9 +7649,9 @@ Template:paramtestnum
 
 !! test
 Template unnamed parameter
-!! input
+!! wikitext
 {{paramtestnum|Main Page|the main page}}
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">the main page</a>
 </p>
 !! end
@@ -7670,27 +7688,27 @@ Template:templateasargtest2
 
 !! test
 Template with template name as unnamed argument
-!! input
+!! wikitext
 {{templateasargtestnum|templatesimple}}
-!! result
+!! html
 <p>(test)
 </p>
 !! end
 
 !! test
 Template with template name as argument
-!! input
+!! wikitext
 {{templateasargtest|templ=simple}}
-!! result
+!! html
 <p>(test)
 </p>
 !! end
 
 !! test
 Template with template name as argument (2)
-!! input
+!! wikitext
 {{templateasargtest2|templ=templatesimple}}
-!! result
+!! html
 <p>(test)
 </p>
 !! end
@@ -7709,58 +7727,58 @@ Template:templa
 
 !! test
 Template with default value
-!! input
+!! wikitext
 {{templateasargtestdefault}}
-!! result
+!! html
 <p>(test)
 </p>
 !! end
 
 !! test
 Template with default value (value set)
-!! input
+!! wikitext
 {{templateasargtestdefault|templ=templa}}
-!! result
+!! html
 <p><b>templ</b>
 </p>
 !! end
 
 !! test
 Template redirect
-!! input
+!! wikitext
 {{templateredirect}}
-!! result
+!! html
 <p>(test)
 </p>
 !! end
 
 !! test
 Template with argument in separate line
-!! input
+!! wikitext
 {{ templateasargtest  |
  templ = simple }}
-!! result
+!! html
 <p>(test)
 </p>
 !! end
 
 !! test
 Template with complex template as argument
-!! input
+!! wikitext
 {{paramtest|
   param ={{ templateasargtest  |
  templ = simple }}}}
-!! result
+!! html
 <p>This is a test template with parameter (test)
 </p>
 !! end
 
 !! test
 Template with thumb image (with link in description)
-!! input
+!! wikitext
 {{paramtest|
   param =[[Image:noimage.png|thumb|[[no link|link]] [[no link|caption]]]]}}
-!! result
+!! html
 This is a test template with parameter <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/index.php?title=Special:Upload&amp;wpDestFile=Noimage.png" class="new" title="File:Noimage.png">File:Noimage.png</a>  <div class="thumbcaption"><a href="/index.php?title=No_link&amp;action=edit&amp;redlink=1" class="new" title="No link (page does not exist)">link</a> <a href="/index.php?title=No_link&amp;action=edit&amp;redlink=1" class="new" title="No link (page does not exist)">caption</a></div></div></div>
 
 !! end
@@ -7774,22 +7792,22 @@ Template:complextemplate
 
 !! test
 Template with complex arguments
-!! input
+!! wikitext
 {{complextemplate|
   param ={{ templateasargtest  |
  templ = simple }}|[[Template:complextemplate|link]]}}
-!! result
+!! html
 <p><a href="/wiki/Template:Complextemplate" title="Template:Complextemplate">link</a> This is a test template with parameter (test)
 </p>
 !! end
 
 !! test
 BUG 553: link with two variables in a piped link
-!! input
+!! wikitext
 {|
 |[[{{{1}}}|{{{2}}}]]
 |}
-!! result
+!! html
 <table>
 <tr>
 <td>[[{{{1}}}|{{{2}}}]]
@@ -7799,9 +7817,9 @@ BUG 553: link with two variables in a piped link
 
 !! test
 Magic variable as template parameter
-!! input
+!! wikitext
 {{paramtest|param={{SITENAME}}}}
-!! result
+!! html
 <p>This is a test template with parameter MediaWiki
 </p>
 !! end
@@ -7814,18 +7832,18 @@ Template:linktest
 
 !! test
 Template parameter as link source
-!! input
+!! wikitext
 {{linktest|param=Main Page}}
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">link</a>
 </p>
 !! end
 
 !!test
 Template-generated attribute string (k='v')
-!!input
+!! wikitext
 <span {{attr_str|id|v1}}>bar</span>
-!!result
+!! html
 <p><span id="v1">bar</span>
 </p>
 !!end
@@ -7838,9 +7856,9 @@ including another template, {{paramtest|param={{{arg}}}}}
 
 !! test
 Template passing argument to another template
-!! input
+!! wikitext
 {{paramtest2|arg='hmm'}}
-!! result
+!! html
 <p>including another template, This is a test template with parameter 'hmm'
 </p>
 !! end
@@ -7853,13 +7871,13 @@ Main Page
 
 !! test
 Template as link source
-!! input
+!! wikitext
 [[{{linktest2}}]]
 
 [[{{linktest2}}|Main Page]]
 
 [[{{linktest2}}]]Page
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>
 </p><p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>
 </p><p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>Page
@@ -7881,18 +7899,18 @@ Template:loop2
 
 !! test
 Template infinite loop
-!! input
+!! wikitext
 {{loop1}}
-!! result
+!! html
 <p><span class="error">Template loop detected: <a href="/wiki/Template:Loop1" title="Template:Loop1">Template:Loop1</a></span>
 </p>
 !! end
 
 !! test
 Template from main namespace
-!! input
+!! wikitext
 {{:Main Page}}
-!! result
+!! html
 <p>blah blah
 </p>
 !! end
@@ -7909,9 +7927,9 @@ Template:table
 
 !! test
 BUG 529: Template with table, not included at beginning of line
-!! input
+!! wikitext
 foo {{table}}
-!! result
+!! html
 <p>foo 
 </p>
 <table>
@@ -7928,10 +7946,10 @@ foo {{table}}
 
 !! test
 BUG 523: Template shouldn't eat newline (or add an extra one before table)
-!! input
+!! wikitext
 foo
 {{table}}
-!! result
+!! html
 <p>foo
 </p>
 <table>
@@ -7948,22 +7966,22 @@ foo
 
 !! test
 BUG 41: Template parameters shown as broken links
-!! input
+!! wikitext
 {{{parameter}}}
-!! result
+!! html
 <p>{{{parameter}}}
 </p>
 !! end
 
 !! test
 Template with targets containing wikilinks
-!! input
+!! wikitext
 {{[[foo]]}}
 
 {{[[{{echo|foo}}]]}}
 
 {{{{echo|[[foo}}]]}}
-!! result
+!! html
 <p>{{<a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">foo</a>}}
 </p><p>{{<a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">foo</a>}}
 </p><p>{{[[foo}}]]
@@ -7984,9 +8002,9 @@ Template:MSGNW test
 msgnw keyword
 !! options
 disabled
-!! input
+!! wikitext
 {{msgnw:MSGNW test}}
-!! result
+!! html
 <p>''None'' of '''this''' should be 
 * interpreted
  but rather passed unmodified
@@ -7996,9 +8014,9 @@ disabled
 
 !! test
 int keyword
-!! input
+!! wikitext
 {{int:youhavenewmessages|lots of money|not!}}
-!! result
+!! html
 <p>You have lots of money (not!).
 </p>
 !! end
@@ -8011,9 +8029,9 @@ Foo<noinclude>zar</noinclude><includeonly>bar</includeonly>
 
 !! test
 <includeonly> and <noinclude> being included
-!! input
+!! wikitext
 {{Includes}}
-!! result
+!! html
 <p>Foobar
 </p>
 !! end
@@ -8026,9 +8044,9 @@ Template:Includes2
 
 !! test
 <onlyinclude> being included
-!! input
+!! wikitext
 {{Includes2}}
-!! result
+!! html
 <p>Foo
 </p>
 !! end
@@ -8042,66 +8060,66 @@ Template:Includes3
 
 !! test
 <onlyinclude> and <includeonly> being included
-!! input
+!! wikitext
 {{Includes3}}
-!! result
+!! html
 <p>Foo
 </p>
 !! end
 
 !! test
 <includeonly> and <noinclude> on a page
-!! input
+!! wikitext
 Foo<noinclude>zar</noinclude><includeonly>bar</includeonly>
-!! result
+!! html
 <p>Foozar
 </p>
 !! end
 
 !! test
 Un-closed <noinclude>
-!! input
+!! wikitext
 <noinclude>
-!! result
+!! html
 !! end
 
 !! test
 <onlyinclude> on a page
-!! input
+!! wikitext
 <onlyinclude>Foo</onlyinclude>bar
-!! result
+!! html
 <p>Foobar
 </p>
 !! end
 
 !! test
 Un-closed <onlyinclude>
-!! input
+!! wikitext
 <onlyinclude>
-!! result
+!! html
 !! end
 
 !!test
 Self-closed noinclude, includeonly, onlyinclude tags
-!!input
+!! wikitext
 <noinclude />
 <includeonly />
 <onlyinclude />
-!!result
+!! html
 <p><br />
 </p>
 !!end
 
 !!test
 Unbalanced includeonly and noinclude tags
-!!input
+!! wikitext
 {|
 |a</noinclude>
 |b</noinclude></noinclude>
 |c</noinclude></includeonly>
 |d</includeonly></includeonly>
 |}
-!!result
+!! html
 <table>
 <tr>
 <td>a
@@ -8126,9 +8144,9 @@ Template:Includeonly section
 
 !! test
 Bug 6563: Edit link generation for section shown by <includeonly>
-!! input
+!! wikitext
 {{includeonly section}}
-!! result
+!! html
 <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>
 
@@ -8139,23 +8157,23 @@ Bug 6563: Edit link generation for section shown by <includeonly>
 Bug 6563: Section extraction for section shown by <includeonly>
 !! options
 section=T-2
-!! input
+!! wikitext
 <includeonly>
 ==Includeonly section==
 </includeonly>
 ==Section T-2==
-!! result
+!! html
 ==Section T-2==
 !! end
 
 !! test
 Bug 6563: Edit link generation for section suppressed by <includeonly>
-!! input
+!! wikitext
 <includeonly>
 ==Includeonly section==
 </includeonly>
 ==Section 1==
-!! result
+!! html
 <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
@@ -8164,20 +8182,20 @@ Bug 6563: Edit link generation for section suppressed by <includeonly>
 Bug 6563: Section extraction for section suppressed by <includeonly>
 !! options
 section=1
-!! input
+!! wikitext
 <includeonly>
 ==Includeonly section==
 </includeonly>
 ==Section 1==
-!! result
+!! html
 ==Section 1==
 !! end
 
 !! test
 Un-closed <includeonly>
-!! input
+!! wikitext
 <includeonly>
-!! result
+!! html
 !! end
 
 # TODO: test with DOM fragment reuse!
@@ -8185,7 +8203,7 @@ Un-closed <includeonly>
 Parsoid: DOM fragment reuse
 !! options
 parsoid=wt2wt,wt2html
-!! input
+!! wikitext
 a{{echo|b<table></table>c}}d
 
 a{{echo|b
@@ -8197,7 +8215,7 @@ c}}d
 <table></table>
 
 b}}
-!! result
+!! html
 a<span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"b
 <table></table>c"}},"i":0}}]}'>b</span>
 <table about="#mwt1"></table><span about="#mwt1">c</span>d
@@ -8223,11 +8241,11 @@ a<span about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"t
 Parsoid: Merge double tds (bug 50603)
 !! options
 parsoid
-!! input
+!! wikitext
 {|
 |{{echo|{{!}} foo}}
 |}
-!! result
+!! html
 <table><tbody>
 <tr><td about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":["|",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"{{!}} foo"}},"i":0}}]}'> foo</td></tr>
 </tbody></table>
@@ -8237,13 +8255,13 @@ parsoid
 Parsoid: Merge double tds in nested transclusion content (bug 50603)
 !! options
 parsoid
-!! input
+!! wikitext
 {{echo|<div>}}
 {|
 |{{echo|{{!}} foo}}
 |}
 {{echo|</div>}}
-!! result
+!! html
 <div about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"<div>"}},"i":0}},"\n{|\n|",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"{{!}} foo"}},"i":1}},"\n|}\n",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"</div>"}},"i":2}}]}'>
 <table><tbody>
 <tr><td data-mw='{"parts":["|"]}'> foo</td></tr>
@@ -8256,28 +8274,28 @@ parsoid
 ###
 !!test
 0. includeonly around the entire attribute
-!!input
+!! wikitext
 <span <includeonly>id="v1"</includeonly><noinclude>id="v2"</noinclude>>bar</span>
-!!result
+!! html
 <p><span id="v2">bar</span>
 </p>
 !!end
 
 !!test
 1. includeonly in html attr key
-!!input
+!! wikitext
 <span <noinclude>id</noinclude><includeonly>about</includeonly>="foo">bar</span>
-!!result
+!! html
 <p><span id="foo">bar</span>
 </p>
 !!end
 
 !!test
 2. includeonly in html attr value
-!!input
+!! wikitext
 <span id="<noinclude>v1</noinclude><includeonly>v2</includeonly>">bar</span>
 <span id=<noinclude>"v1"</noinclude><includeonly>"v2"</includeonly>>bar</span>
-!!result
+!! html
 <p><span id="v1">bar</span>
 <span id="v1">bar</span>
 </p>
@@ -8285,16 +8303,16 @@ parsoid
 
 !!test
 3. includeonly in part of an attr value
-!!input
+!! wikitext
 <span style="color:<noinclude>red</noinclude><includeonly>blue</includeonly>;">bar</span>
-!!result
+!! html
 <p><span style="color:red;">bar</span>
 </p>
 !!end
 
 !!test
 4. includeonly in table attributes
-!!input
+!! wikitext
 {|
 |- <noinclude>
 |-
@@ -8305,7 +8323,7 @@ parsoid
 |b
 </includeonly>
 |}
-!!result
+!! html
 <table>
 
 
@@ -8329,27 +8347,27 @@ Template:quote
 
 !!test
 Templates: Template Name/Arg clash: 1. Use of positional param
-!!input
+!! wikitext
 {{quote|foo}}
-!!result
+!! html
 <p>foo
 </p>
 !!end
 
 !!test
 Templates: Template Name/Arg clash: 2. Use of named param
-!!input
+!! wikitext
 {{quote|quote=foo}}
-!!result
+!! html
 <p>foo
 </p>
 !!end
 
 !!test
 Templates: Template Name/Arg clash: 3. Use of named param with empty input
-!!input
+!! wikitext
 {{quote|quote}}
-!!result
+!! html
 <p>quote
 </p>
 !!end
@@ -8360,19 +8378,19 @@ Templates: Template Name/Arg clash: 3. Use of named param with empty input
 
 !!test
 Templates: 1. Simple use
-!!input
+!! wikitext
 {{echo|Foo}}
-!!result
+!! html
 <p>Foo
 </p>
 !!end
 
 !!test
 Templates: 2. Inside a block tag
-!!input
+!! wikitext
 <div>{{echo|Foo}}</div>
 <blockquote>{{echo|Foo}}</blockquote>
-!!result
+!! html
 <div>Foo</div>
 <blockquote>Foo</blockquote>
 
@@ -8380,10 +8398,10 @@ Templates: 2. Inside a block tag
 
 !!test
 Templates: P-wrapping: 1a. Templates on consecutive lines
-!!input
+!! wikitext
 {{echo|Foo}}
 {{echo|bar}}
-!!result
+!! html
 <p>Foo
 bar
 </p>
@@ -8391,12 +8409,12 @@ bar
 
 !!test
 Templates: P-wrapping: 1b. Templates on consecutive lines
-!!input
+!! wikitext
 Foo
 
 {{echo|bar}}
 {{echo|baz}}
-!!result
+!! html
 <p>Foo
 </p><p>bar
 baz
@@ -8405,10 +8423,10 @@ baz
 
 !!test
 Templates: P-wrapping: 1c. Templates on consecutive lines
-!!input
+!! wikitext
 {{echo|Foo}}
 {{echo|bar}} <div>baz</div>
-!!result
+!! html
 <p>Foo
 </p>
 bar <div>baz</div>
@@ -8419,10 +8437,10 @@ bar <div>baz</div>
 Templates: P-wrapping: 1d. Template preceded by comment-only line
 !!options
 parsoid
-!!input
+!! wikitext
 <!-- foo -->
 {{echo|Bar}}
-!!result
+!! html
 <!-- foo -->
 
 <p about="#mwt223" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"Bar"}},"i":0}}]}'>Bar</p>
@@ -8430,61 +8448,61 @@ parsoid
 
 !!test
 Templates: Inline Text: 1. Multiple tmeplate uses
-!!input
+!! wikitext
 {{echo|Foo}}bar{{echo|baz}}
-!!result
+!! html
 <p>Foobarbaz
 </p>
 !!end
 
 !!test
 Templates: Inline Text: 2. Back-to-back template uses
-!!input
+!! wikitext
 {{echo|Foo}}{{echo|bar}}
-!!result
+!! html
 <p>Foobar
 </p>
 !!end
 
 !!test
 Templates: Block Tags: 1. Multiple template uses
-!!input
+!! wikitext
 {{echo|<div>Foo</div>}}<div>bar</div>{{echo|<div>baz</div>}}
-!!result
+!! html
 <div>Foo</div><div>bar</div><div>baz</div>
 
 !!end
 
 !!test
 Templates: Block Tags: 2. Back-to-back template uses
-!!input
+!! wikitext
 {{echo|<div>Foo</div>}}{{echo|<div>bar</div>}}
-!!result
+!! html
 <div>Foo</div><div>bar</div>
 
 !!end
 
 !!test
 Templates: Links: 1. Simple example
-!!input
+!! wikitext
 {{echo|[[Foo|bar]]}}
-!!result
+!! html
 <p><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">bar</a>
 </p>
 !!end
 
 !!test
 Templates: Links: 2. Generation of link href
-!!input
+!! wikitext
 [[{{echo|Foo}}|bar]]
-!!result
+!! html
 <p><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">bar</a>
 </p>
 !!end
 
 !!test
 Templates: Links: 3. Generation of part of a link href
-!!input
+!! wikitext
 [[Fo{{echo|o}}|bar]]
 
 [[Foo{{echo|bar}}]]
@@ -8496,7 +8514,7 @@ Templates: Links: 3. Generation of part of a link href
 [[:Foo{{echo|bar}}]]
 
 [[:Foo{{echo|bar}}|bar]]
-!!result
+!! html
 <p><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">bar</a>
 </p><p><a href="/index.php?title=Foobar&amp;action=edit&amp;redlink=1" class="new" title="Foobar (page does not exist)">Foobar</a>
 </p><p><a href="/index.php?title=Foobarbaz&amp;action=edit&amp;redlink=1" class="new" title="Foobarbaz (page does not exist)">Foobarbaz</a>
@@ -8508,180 +8526,180 @@ Templates: Links: 3. Generation of part of a link href
 
 !!test
 Templates: Links: 4. Multiple templates generating link href
-!!input
+!! wikitext
 [[{{echo|F}}{{echo|o}}ob{{echo|ar}}]]
-!!result
+!! html
 <p><a href="/index.php?title=Foobar&amp;action=edit&amp;redlink=1" class="new" title="Foobar (page does not exist)">Foobar</a>
 </p>
 !!end
 
 !!test
 Templates: Links: 5. Generation of link text
-!!input
+!! wikitext
 [[Foo|{{echo|bar}}]]
-!!result
+!! html
 <p><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">bar</a>
 </p>
 !!end
 
 !!test
 Templates: Links: 5. Nested templates (only outermost template should be marked)
-!!input
+!! wikitext
 {{echo|[[{{echo|Foo}}|bar]]}}
-!!result
+!! html
 <p><a href="/index.php?title=Foo&amp;action=edit&amp;redlink=1" class="new" title="Foo (page does not exist)">bar</a>
 </p>
 !!end
 
 !!test
 Templates: HTML Tag: 1. Generation of HTML attr. key
-!!input
+!! wikitext
 <div {{echo|style}}="color:red;">foo</div>
-!!result
+!! html
 <div style="color:red;">foo</div>
 
 !!end
 
 !!test
 Templates: HTML Tag: 2. Generation of HTML attr. value
-!!input
+!! wikitext
 <div style={{echo|'color:red;'}}>foo</div>
-!!result
+!! html
 <div style="color:red;">foo</div>
 
 !!end
 
 !!test
 Templates: HTML Tag: 3. Generation of HTML attr key and value
-!!input
+!! wikitext
 <div {{echo|style}}={{echo|'color:red;'}}>foo</div>
-!!result
+!! html
 <div style="color:red;">foo</div>
 
 !!end
 
 !!test
 Templates: HTML Tag: 4. Generation of starting piece of HTML attr value
-!!input
+!! wikitext
 <div title="{{echo|This is a long title}} with just one piece templated">foo</div>
-!!result
+!! html
 <div title="This is a long title with just one piece templated">foo</div>
 
 !!end
 
 !!test
 Templates: HTML Tag: 5. Generation of middle piece of HTML attr value
-!!input
+!! wikitext
 <div title="This is a long title with just {{echo|one piece}} templated">foo</div>
-!!result
+!! html
 <div title="This is a long title with just one piece templated">foo</div>
 
 !!end
 
 !!test
 Templates: HTML Tag: 6. Generation of end piece of HTML attr value
-!!input
+!! wikitext
 <div title="This is a long title with just one piece {{echo|templated}}">foo</div>
-!!result
+!! html
 <div title="This is a long title with just one piece templated">foo</div>
 
 !!end
 
 !!test
 Templates: HTML Tag: 7. Generation of partial attribute key string
-!!input
+!! wikitext
 <div st{{echo|yle}}="color:red;">foo</div>
-!!result
+!! html
 <div style="color:red;">foo</div>
 
 !!end
 
 !!test
 Templates: HTML Tables: 1. Generating start of a HTML table
-!!input
+!! wikitext
 {{echo|<table><tr><td>foo</td>}}</tr></table>
-!!result
+!! html
 <table><tr><td>foo</td></tr></table>
 
 !!end
 
 !!test
 Templates: HTML Tables: 2a. Generating middle of a HTML table
-!!input
+!! wikitext
 <table><tr>{{echo|<td>foo</td>}}</tr></table>
-!!result
+!! html
 <table><tr><td>foo</td></tr></table>
 
 !!end
 
 !!test
 Templates: HTML Tables: 2b. Generating middle of a HTML table
-!!input
+!! wikitext
 <table>{{echo|<tr><td>foo</td></tr>}}</table>
-!!result
+!! html
 <table><tr><td>foo</td></tr></table>
 
 !!end
 
 !!test
 Templates: HTML Tables: 3. Generating end of a HTML table
-!!input
+!! wikitext
 <table><tr>{{echo|<td>foo</td></tr></table>}}
-!!result
+!! html
 <table><tr><td>foo</td></tr></table>
 
 !!end
 
 !!test
 Templates: HTML Tables: 4a. Generating a single tag of a HTML table
-!!input
+!! wikitext
 {{echo|<table>}}<tr><td>foo</td></tr></table>
-!!result
+!! html
 <table><tr><td>foo</td></tr></table>
 
 !!end
 
 !!test
 Templates: HTML Tables: 4b. Generating a single tag of a HTML table
-!!input
+!! wikitext
 <table>{{echo|<tr>}}<td>foo</td></tr></table>
-!!result
+!! html
 <table><tr><td>foo</td></tr></table>
 
 !!end
 
 !!test
 Templates: HTML Tables: 4c. Generating a single tag of a HTML table
-!!input
+!! wikitext
 <table><tr>{{echo|<td>}}foo</td></tr></table>
-!!result
+!! html
 <table><tr><td>foo</td></tr></table>
 
 !!end
 
 !!test
 Templates: HTML Tables: 4d. Generating a single tag of a HTML table
-!!input
+!! wikitext
 <table><tr><td>foo{{echo|</td>}}</tr></table>
-!!result
+!! html
 <table><tr><td>foo</td></tr></table>
 
 !!end
 
 !!test
 Templates: HTML Tables: 4e. Generating a single tag of a HTML table
-!!input
+!! wikitext
 <table><tr><td>foo</td>{{echo|</tr>}}</table>
-!!result
+!! html
 <table><tr><td>foo</td></tr></table>
 
 !!end
 
 !!test
 Templates: HTML Tables: 4f. Generating a single tag of a HTML table
-!!input
+!! wikitext
 <table><tr><td>foo</td></tr>{{echo|</table>}}
-!!result
+!! html
 <table><tr><td>foo</td></tr></table>
 
 !!end
@@ -8690,11 +8708,11 @@ Templates: HTML Tables: 4f. Generating a single tag of a HTML table
 Templates: HTML Tables: 5. Proper fostering of categories from inside
 !!options
 parsoid=wt2html,wt2wt
-!!input
+!! wikitext
 <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
+!! html
 <link rel="mw:PageProp/Category" href="./Category:Foo1"><table><tbody><tr><td>foo</td></tr></tbody></table>
 <!--Two categories (Bug 50330)-->
 <link rel="mw:PageProp/Category" href="./Category:Bar1"><link rel="mw:PageProp/Category" href="./Category:Bar2"><table><tbody><tr><td>foo</td></tr></tbody></table>
@@ -8702,11 +8720,11 @@ parsoid=wt2html,wt2wt
 
 !!test
 Templates: Wiki Tables: 1a. Fostering of entire template content
-!!input
+!! wikitext
 {|
 {{echo|a}}
 |}
-!!result
+!! html
 <table>
 a
 <tr><td></td></tr></table>
 
 !!test
 Templates: Wiki Tables: 1b. Fostering of entire template content
-!!input
+!! wikitext
 {|
 {{echo|<div>}}
 foo
 {{echo|</div>}}
 |}
-!!result
+!! html
 <table>
 <div>
 <p>foo
@@ -8733,12 +8751,12 @@ foo
 
 !!test
 Templates: Wiki Tables: 2. Fostering of partial template content
-!!input
+!! wikitext
 {|
 {{echo|a
 <div>b</div>}}
 |}
-!!result
+!! html
 <table>
 a
 <div>b</div>
 
 !!test
 Templates: Wiki Tables: 3. td-content via multiple templates
-!!input
+!! wikitext
 {|
 {{echo|{{pipe}}a}}{{echo|b}}
 |}
-!!result
+!! html
 <table>
 <tr>
 <td>ab
@@ -8762,10 +8780,10 @@ Templates: Wiki Tables: 3. td-content via multiple templates
 
 !!test
 Templates: Wiki Tables: 4. Templated tags, no content
-!!input
+!! wikitext
 {{tbl-start}}
 {{tbl-end}}
-!!result
+!! html
 <table>
 <tr><td></td></tr></table>
 
@@ -8773,11 +8791,11 @@ Templates: Wiki Tables: 4. Templated tags, no content
 
 !!test
 Templates: Wiki Tables: 5. Templated tags, regular td-tags
-!!input
+!! wikitext
 {{tbl-start}}
 |foo
 {{tbl-end}}
-!!result
+!! html
 <table>
 <tr>
 <td>foo
@@ -8787,11 +8805,11 @@ Templates: Wiki Tables: 5. Templated tags, regular td-tags
 
 !!test
 Templates: Wiki Tables: 6. Templated tags, templated td-tags
-!!input
+!! wikitext
 {{tbl-start}}
 {{!}}foo
 {{tbl-end}}
-!!result
+!! html
 <table>
 <tr>
 <td>foo
@@ -8801,12 +8819,12 @@ Templates: Wiki Tables: 6. Templated tags, templated td-tags
 
 !!test
 Templates: Lists: Multi-line list-items via templates
-!!input
+!! wikitext
 *{{echo|a {{nonexistent|
 unused}}}}
 *{{echo|b {{nonexistent|
 unused}}}}
-!!result
+!! html
 <ul>
 <li>a <a href="/index.php?title=Template:Nonexistent&amp;action=edit&amp;redlink=1" class="new" title="Template:Nonexistent (page does not exist)">Template:Nonexistent</a>
 </li>
@@ -8818,9 +8836,9 @@ unused}}}}
 
 !!test
 Templates: Ugly nesting: 1. Quotes opened/closed across templates (echo)
-!!input
+!! wikitext
 {{echo|''a}}{{echo|b''c''d}}{{echo|''e}}
-!!result
+!! html
 <p><i>ab</i>c<i>d</i>e
 </p>
 !!end
@@ -8828,11 +8846,9 @@ Templates: Ugly nesting: 1. Quotes opened/closed across templates (echo)
 !!test
 Templates: Ugly nesting: 2. Quotes opened/closed across templates (echo_with_span)
 (PHP parser generates misnested html)
-!! options
-parsoid
-!!input
+!! wikitext
 {{echo_with_span|''a}}{{echo_with_span|b''c''d}}{{echo_with_span|''e}}
-!!result
+!! html/parsoid
 <p><span about="#mwt1" typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo_with_span&quot;,&quot;href&quot;:&quot;./Template:Echo_with_span&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;''a&quot;}},&quot;i&quot;:0}}]}"><i>a</i></span><i about="#mwt2" typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo_with_span&quot;,&quot;href&quot;:&quot;./Template:Echo_with_span&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;b''c''d&quot;}},&quot;i&quot;:0}},{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo_with_span&quot;,&quot;href&quot;:&quot;./Template:Echo_with_span&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;''e&quot;}},&quot;i&quot;:1}}]}"><span>b</span></i><span about="#mwt2">c</span><i about="#mwt2">d<span></span></i><span about="#mwt2">e</span></p>
 !!end
 
@@ -8841,9 +8857,9 @@ Templates: Ugly nesting: 3. Quotes opened/closed across templates (echo_with_div
 (PHP parser generates misnested html; Parsoid html2wt mode adds newlines between {{echo}}s)
 !! options
 parsoid=wt2html,wt2wt
-!!input
+!! wikitext
 {{echo_with_div|''a}}{{echo_with_div|b''c''d}}{{echo_with_div|''e}}
-!!result
+!! html
 <div about="#mwt1" typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo_with_div&quot;,&quot;href&quot;:&quot;./Template:Echo_with_div&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;''a&quot;}},&quot;i&quot;:0}}]}"><i>a</i></div>
 <div about="#mwt2" typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo_with_div&quot;,&quot;href&quot;:&quot;./Template:Echo_with_div&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;b''c''d&quot;}},&quot;i&quot;:0}}]}"><i>b</i>c<i>d</i></div>
 <div about="#mwt3" typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo_with_div&quot;,&quot;href&quot;:&quot;./Template:Echo_with_div&quot;},&quot;params&quot;:{&quot;1&quot;:{&quot;wt&quot;:&quot;''e&quot;}},&quot;i&quot;:0}}]}">e</div>
@@ -8851,9 +8867,9 @@ parsoid=wt2html,wt2wt
 
 !!test
 Templates: Ugly nesting: 4. Divs opened/closed across templates
-!!input
+!! wikitext
 a<div>b{{echo|c</div>d}}e
-!!result
+!! html
 a<div>bc</div>de
 
 !!end
@@ -8863,19 +8879,19 @@ Templates: Ugly templates: 1. Navbox template parses badly leading to table misn
 (Parsoid-centric)
 !! options
 parsoid
-!!input
+!! wikitext
 {|
 |{{echo|foo</table>}}
 |bar
 |}
-!!result
+!! html
 <table about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":["{|\n|",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo</table>"}},"i":0}},"\n|bar\n|}"]}'>
 
 <tbody>
 <tr>
 <td>foo</td></tr></tbody></table><span about="#mwt1">
-</span><span about="#mwt1">bar</span><span about="#mwt1">
-</span>
+</span><span about="#mwt1">|bar</span><span about="#mwt1">
+|}</span>
 !!end
 
 !!test
@@ -8883,7 +8899,7 @@ Templates: Ugly templates: 2. Navbox template parses badly leading to table misn
 (Parsoid-centric)
 !! options
 parsoid
-!!input
+!! wikitext
 <table>
   <tr>
     <td>
@@ -8903,7 +8919,7 @@ parsoid
     <td>xyz</td>
   </tr>
 </table>
-!!result
+!! html
 <table about="#mwt2" typeof="mw:Transclusion" data-mw='{"parts":["<table>\n  <tr>\n    <td>\n    <table>\n      <tr>\n        <td>1. ",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"foo </table>"}},"i":0}},"</td>\n        <td> bar </td>\n        <td>2. ",{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"baz </table>"}},"i":1}},"</td>\n      </tr>\n      <tr>\n        <td>abc</td>\n      </tr>\n    </table>\n    </td>\n  </tr>\n  <tr>\n    <td>xyz</td>\n  </tr>\n</table>"]}'>
   <tbody><tr>
     <td>
@@ -8927,10 +8943,10 @@ parsoid
 
 !! test
 Templates: Ugly templates: 3. newline-only template parameter
-!! input
+!! wikitext
 foo {{echo|
 }}
-!! result
+!! html
 <p>foo 
 </p>
 !! end
@@ -8938,10 +8954,10 @@ foo {{echo|
 # This looks like a bug: a single newline triggers p/br for some reason.
 !! test
 Templates: Ugly templates: 4. newline-only template parameter inconsistency
-!! input
+!! wikitext
 {{echo|
 }}
-!! result
+!! html
 <p><br />
 </p>
 !! end
@@ -8949,18 +8965,18 @@ Templates: Ugly templates: 4. newline-only template parameter inconsistency
 
 !!test
 Parser Functions: 1. Simple example
-!!input
+!! wikitext
 {{uc:foo}}
-!!result
+!! html
 <p>FOO
 </p>
 !!end
 
 !!test
 Parser Functions: 2. Nested use (only outermost should be marked up)
-!!input
+!! wikitext
 {{uc:{{lc:FOO}}}}
-!!result
+!! html
 <p>FOO
 </p>
 !!end
@@ -8972,9 +8988,9 @@ Parser Functions: 2. Nested use (only outermost should be marked up)
 pre-save transform: subst:
 !! options
 PST
-!! input
+!! wikitext
 {{subst:test}}
-!! result
+!! html
 This is a test template
 !! end
 
@@ -8982,9 +8998,9 @@ This is a test template
 pre-save transform: normal template
 !! options
 PST
-!! input
+!! wikitext
 {{test}}
-!! result
+!! html
 {{test}}
 !! end
 
@@ -8992,9 +9008,9 @@ PST
 pre-save transform: nonexistent template
 !! options
 PST
-!! input
+!! wikitext
 {{thistemplatedoesnotexist}}
-!! result
+!! html
 {{thistemplatedoesnotexist}}
 !! end
 
@@ -9003,9 +9019,9 @@ PST
 pre-save transform: subst magic variables
 !! options
 PST
-!! input
+!! wikitext
 {{subst:SITENAME}}
-!! result
+!! html
 MediaWiki
 !! end
 
@@ -9014,9 +9030,9 @@ MediaWiki
 pre-save transform: subst: templates with parameters
 !! options
 pst
-!! input
+!! wikitext
 {{subst:paramtest|param="something else"}}
-!! result
+!! html
 This is a test template with parameter "something else"
 !! end
 
@@ -9030,9 +9046,9 @@ Template:nowikitest
 pre-save transform: nowiki in subst (bug 1188)
 !! options
 pst
-!! input
+!! wikitext
 {{subst:nowikitest}}
-!! result
+!! html
 <nowiki>'''not wiki'''</nowiki>
 !! end
 
@@ -9047,9 +9063,9 @@ This template has <!-- a comment --> in it.
 pre-save transform: comment in subst (bug 1936)
 !! options
 pst
-!! input
+!! wikitext
 {{subst:commenttest}}
-!! result
+!! html
 This template has <!-- a comment --> in it.
 !! end
 
@@ -9057,9 +9073,9 @@ This template has <!-- a comment --> in it.
 pre-save transform: unclosed tag
 !! options
 pst noxml
-!! input
+!! wikitext
 <nowiki>'''not wiki'''
-!! result
+!! html
 <nowiki>'''not wiki'''
 !! end
 
@@ -9067,9 +9083,9 @@ pst noxml
 pre-save transform: mixed tag case
 !! options
 pst noxml
-!! input
+!! wikitext
 <NOwiki>'''not wiki'''</noWIKI>
-!! result
+!! html
 <NOwiki>'''not wiki'''</noWIKI>
 !! end
 
@@ -9077,9 +9093,9 @@ pst noxml
 pre-save transform: unclosed comment in <nowiki>
 !! options
 pst noxml
-!! input
+!! wikitext
 wiki<nowiki>nowiki<!--nowiki</nowiki>wiki
-!! result
+!! html
 wiki<nowiki>nowiki<!--nowiki</nowiki>wiki
 !!end
 
@@ -9094,9 +9110,9 @@ Template:dangerous
 
 !!test
 (confirming safety of fix for subst bug 1936)
-!! input
+!! wikitext
 {{Template:dangerous}}
-!! result
+!! html
 <p>@<span>Oh no</span>
 </p>
 !! end
@@ -9105,9 +9121,9 @@ Template:dangerous
 pre-save transform: comment containing gallery (bug 5024)
 !! options
 pst
-!! input
+!! wikitext
 <!-- <gallery>data</gallery> -->
-!!result
+!! html
 <!-- <gallery>data</gallery> -->
 !!end
 
@@ -9115,9 +9131,9 @@ pst
 pre-save transform: comment containing extension
 !! options
 pst
-!! input
+!! wikitext
 <!-- <tag>data</tag> -->
-!!result
+!! html
 <!-- <tag>data</tag> -->
 !!end
 
@@ -9125,9 +9141,9 @@ pst
 pre-save transform: comment containing nowiki
 !! options
 pst
-!! input
+!! wikitext
 <!-- <nowiki>data</nowiki> -->
-!!result
+!! html
 <!-- <nowiki>data</nowiki> -->
 !!end
 
@@ -9135,9 +9151,9 @@ pst
 pre-save transform: <noinclude> in subst (bug 3298)
 !! options
 pst
-!! input
+!! wikitext
 {{subst:Includes}}
-!! result
+!! html
 Foobar
 !! end
 
@@ -9145,9 +9161,9 @@ Foobar
 pre-save transform: <onlyinclude> in subst (bug 3298)
 !! options
 pst
-!! input
+!! wikitext
 {{subst:Includes2}}
-!! result
+!! html
 Foo
 !! end
 
@@ -9167,26 +9183,26 @@ Template:SafeSubstTest
 bug 22297: safesubst: works during PST
 !! options
 pst
-!! input
+!! wikitext
 {{subst:SafeSubstTest}}{{safesubst:SubstTest}}
-!! result
+!! html
 FoobarFoobar
 !! end
 
 !! test
 bug 22297: safesubst: works during normal parse
-!! input
+!! wikitext
 {{SafeSubstTest}}
-!! result
+!! html
 <p>Foobar
 </p>
 !! end
 
-!! test:
+!! test
 subst: does not work during normal parse
-!! input
+!! wikitext
 {{SubstTest}}
-!! result
+!! html
 <p>{{subst:Includes}}
 </p>
 !! end
@@ -9195,7 +9211,7 @@ subst: does not work during normal parse
 pre-save transform: context links ("pipe trick")
 !! options
 pst
-!! input
+!! wikitext
 [[Article (context)|]]
 [[Bar:Article|]]
 [[:Bar:Article|]]
@@ -9205,7 +9221,7 @@ pst
 [[|Article (context)]]
 [[Bar:X (Y) Z|]]
 [[:Bar:X (Y) Z|]]
-!! result
+!! html
 [[Article (context)|Article]]
 [[Bar:Article|Article]]
 [[:Bar:Article|Article]]
@@ -9221,12 +9237,12 @@ pst
 pre-save transform: context links ("pipe trick") with interwiki prefix
 !! options
 pst
-!! input
+!! wikitext
 [[interwiki:Article|]]
 [[:interwiki:Article|]]
 [[interwiki:Bar:Article|]]
 [[:interwiki:Bar:Article|]]
-!! result
+!! html
 [[interwiki:Article|Article]]
 [[:interwiki:Article|Article]]
 [[interwiki:Bar:Article|Bar:Article]]
@@ -9237,9 +9253,9 @@ pst
 pre-save transform: context links ("pipe trick") with parens in title
 !! options
 pst title=[[Somearticle (context)]]
-!! input
+!! wikitext
 [[|Article]]
-!! result
+!! html
 [[Article (context)|Article]]
 !! end
 
@@ -9247,11 +9263,11 @@ pst title=[[Somearticle (context)]]
 pre-save transform: context links ("pipe trick") with comma in title
 !! options
 pst title=[[Someplace, Somewhere]]
-!! input
+!! wikitext
 [[|Otherplace]]
 [[Otherplace, Elsewhere|]]
 [[Otherplace, Elsewhere, Anywhere|]]
-!! result
+!! html
 [[Otherplace, Somewhere|Otherplace]]
 [[Otherplace, Elsewhere|Otherplace]]
 [[Otherplace, Elsewhere, Anywhere|Otherplace]]
@@ -9261,10 +9277,10 @@ pst title=[[Someplace, Somewhere]]
 pre-save transform: context links ("pipe trick") with parens and comma
 !! options
 pst title=[[Someplace (IGNORED), Somewhere]]
-!! input
+!! wikitext
 [[|Otherplace]]
 [[Otherplace (place), Elsewhere|]]
-!! result
+!! html
 [[Otherplace, Somewhere|Otherplace]]
 [[Otherplace (place), Elsewhere|Otherplace]]
 !! end
@@ -9273,10 +9289,10 @@ pst title=[[Someplace (IGNORED), Somewhere]]
 pre-save transform: context links ("pipe trick") with comma and parens
 !! options
 pst title=[[Who, me? (context)]]
-!! input
+!! wikitext
 [[|Yes, you.]]
 [[Me, Myself, and I (1937 song)|]]
-!! result
+!! html
 [[Yes, you. (context)|Yes, you.]]
 [[Me, Myself, and I (1937 song)|Me, Myself, and I]]
 !! end
@@ -9285,9 +9301,9 @@ pst title=[[Who, me? (context)]]
 pre-save transform: context links ("pipe trick") with namespace
 !! options
 pst title=[[Ns:Somearticle]]
-!! input
+!! wikitext
 [[|Article]]
-!! result
+!! html
 [[Ns:Article|Article]]
 !! end
 
@@ -9295,9 +9311,9 @@ pst title=[[Ns:Somearticle]]
 pre-save transform: context links ("pipe trick") with namespace and parens
 !! options
 pst title=[[Ns:Somearticle (context)]]
-!! input
+!! wikitext
 [[|Article]]
-!! result
+!! html
 [[Ns:Article (context)|Article]]
 !! end
 
@@ -9305,9 +9321,9 @@ pst title=[[Ns:Somearticle (context)]]
 pre-save transform: context links ("pipe trick") with namespace and comma
 !! options
 pst title=[[Ns:Somearticle, Context, Whatever]]
-!! input
+!! wikitext
 [[|Article]]
-!! result
+!! html
 [[Ns:Article, Context, Whatever|Article]]
 !! end
 
@@ -9315,9 +9331,9 @@ pst title=[[Ns:Somearticle, Context, Whatever]]
 pre-save transform: context links ("pipe trick") with namespace, comma and parens
 !! options
 pst title=[[Ns:Somearticle, Context (context)]]
-!! input
+!! wikitext
 [[|Article]]
-!! result
+!! html
 [[Ns:Article (context)|Article]]
 !! end
 
@@ -9325,9 +9341,9 @@ pst title=[[Ns:Somearticle, Context (context)]]
 pre-save transform: context links ("pipe trick") with namespace, parens and comma
 !! options
 pst title=[[Ns:Somearticle (IGNORED), Context]]
-!! input
+!! wikitext
 [[|Article]]
-!! result
+!! html
 [[Ns:Article, Context|Article]]
 !! end
 
@@ -9335,14 +9351,14 @@ pst title=[[Ns:Somearticle (IGNORED), Context]]
 pre-save transform: context links ("pipe trick") with full-width parens and no space (Japanese and Chinese style, bug 30149)
 !! options
 pst
-!! input
+!! wikitext
 [[Article(context)|]]
 [[Bar:Article(context)|]]
 [[:Bar:Article(context)|]]
 [[|Article(context)]]
 [[Bar:X(Y)Z|]]
 [[:Bar:X(Y)Z|]]
-!! result
+!! html
 [[Article(context)|Article]]
 [[Bar:Article(context)|Article]]
 [[:Bar:Article(context)|Article]]
@@ -9355,14 +9371,14 @@ pst
 pre-save transform: context links ("pipe trick") with full-width parens and space (Japanese and Chinese style, bug 30149)
 !! options
 pst
-!! input
+!! wikitext
 [[Article (context)|]]
 [[Bar:Article (context)|]]
 [[:Bar:Article (context)|]]
 [[|Article (context)]]
 [[Bar:X (Y) Z|]]
 [[:Bar:X (Y) Z|]]
-!! result
+!! html
 [[Article (context)|Article]]
 [[Bar:Article (context)|Article]]
 [[:Bar:Article (context)|Article]]
@@ -9375,14 +9391,14 @@ pst
 pre-save transform: context links ("pipe trick") with parens and no space (Korean style, bug 30149)
 !! options
 pst
-!! input
+!! wikitext
 [[Article(context)|]]
 [[Bar:Article(context)|]]
 [[:Bar:Article(context)|]]
 [[|Article(context)]]
 [[Bar:X(Y)Z|]]
 [[:Bar:X(Y)Z|]]
-!! result
+!! html
 [[Article(context)|Article]]
 [[Bar:Article(context)|Article]]
 [[:Bar:Article(context)|Article]]
@@ -9395,14 +9411,14 @@ pst
 pre-save transform: context links ("pipe trick") with commas (bug 21660)
 !! options
 pst
-!! input
+!! wikitext
 [[Article (context), context|]]
 [[Article (context),context|]]
 [[Bar:Article (context), context|]]
 [[Bar:Article (context),context|]]
 [[:Bar:Article (context), context|]]
 [[:Bar:Article (context),context|]]
-!! result
+!! html
 [[Article (context), context|Article]]
 [[Article (context),context|Article]]
 [[Bar:Article (context), context|Article]]
@@ -9415,13 +9431,13 @@ pst
 pre-save transform: trim trailing empty lines
 !! options
 pst
-!! input
+!! wikitext
 Empty lines are trimmed
 
 
 
 
-!! result
+!! html
 Empty lines are trimmed
 !! end
 
@@ -9429,12 +9445,12 @@ Empty lines are trimmed
 pre-save transform: Signature expansion
 !! options
 pst
-!! input
+!! wikitext
 * ~~~
 * <noinclude>~~~</noinclude>
 * <includeonly>~~~</includeonly>
 * <onlyinclude>~~~</onlyinclude>
-!! result
+!! html
 * [[Special:Contributions/127.0.0.1|127.0.0.1]]
 * <noinclude>[[Special:Contributions/127.0.0.1|127.0.0.1]]</noinclude>
 * <includeonly>[[Special:Contributions/127.0.0.1|127.0.0.1]]</includeonly>
@@ -9446,7 +9462,7 @@ pst
 pre-save transform: Signature expansion in nowiki tags (bug 93)
 !! options
 pst disabled
-!! input
+!! wikitext
 Shall not expand:
 
 <nowiki>~~~~</nowiki>
@@ -9465,7 +9481,7 @@ As well as inside noinclude/onlyinclude
 
 But not inside includeonly
 <includeonly>{{subst:Foo}}</includeonly>
-!! result
+!! html
 Shall not expand:
 
 <nowiki>~~~~</nowiki>
@@ -9490,7 +9506,7 @@ But not inside includeonly
 Parsoid: Recognize nowiki with trailing space in tags
 !! options
 parsoid=wt2html
-!! input
+!! wikitext
 <nowiki ><div>[[foo]]</nowiki >
 
 a<nowiki / >b
@@ -9498,7 +9514,7 @@ a<nowiki / >b
 c<nowiki />d
 
 e<nowiki/ >f
-!! result
+!! html
 <p><span typeof="mw:Nowiki">&lt;div&gt;[[foo]]</span></p>
 <p>ab</p>
 <p>cd</p>
@@ -9509,9 +9525,9 @@ e<nowiki/ >f
 Parsoid: Recognize nowiki with odd capitalization
 !! options
 parsoid=wt2html
-!! input
+!! wikitext
 <noWikI ><div>[[foo]]</Nowiki >
-!! result
+!! html
 <p><span typeof="mw:Nowiki">&lt;div&gt;[[foo]]</span></p>
 !! end
 
@@ -9520,13 +9536,13 @@ parsoid=wt2html
 Parsoid: Escape nowiki with trailing space in tags
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 &lt;nowiki &gt; foo &lt;/nowiki &gt;
 
 a&lt;nowiki /&gt;b
 
 c&lt;nowiki/ &gt;d
-!! result
+!! html
 <p>&lt;nowiki &gt; foo &lt/nowiki ></p>
 <p>a&lt;nowiki /&gt;b</p>
 <p>c&lt;nowiki/ &gt;d</p>
@@ -9536,9 +9552,9 @@ c&lt;nowiki/ &gt;d
 Parsoid: Escape weird noWikI capitalizations
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 &lt;noWikI &gt; foo &lt;/NoWikI &gt;
-!! result
+!! html
 <p>&lt;noWikI &gt; foo &lt/NoWikI ></p>
 !! end
 
@@ -9549,9 +9565,9 @@ parsoid=html2wt
 message transform: magic variables
 !! options
 msg
-!! input
+!! wikitext
 {{SITENAME}}
-!! result
+!! html
 MediaWiki
 !! end
 
@@ -9559,9 +9575,9 @@ MediaWiki
 message transform: should not transform wiki markup
 !! options
 msg
-!! input
+!! wikitext
 ''test''
-!! result
+!! html
 ''test''
 !! end
 
@@ -9569,9 +9585,9 @@ msg
 message transform: <noinclude> in transcluded template (bug 4926)
 !! options
 msg
-!! input
+!! wikitext
 {{Includes}}
-!! result
+!! html
 Foobar
 !! end
 
@@ -9579,9 +9595,9 @@ Foobar
 message transform: <onlyinclude> in transcluded template (bug 4926)
 !! options
 msg
-!! input
+!! wikitext
 {{Includes2}}
-!! result
+!! html
 Foo
 !! end
 
@@ -9589,9 +9605,9 @@ Foo
 {{#special:}} page name, known
 !! options
 msg
-!! input
+!! wikitext
 {{#special:Recentchanges}}
-!! result
+!! html
 Special:RecentChanges
 !! end
 
@@ -9599,9 +9615,9 @@ Special:RecentChanges
 {{#special:}} page name with subpage, known
 !! options
 msg
-!! input
+!! wikitext
 {{#special:Recentchanges/param}}
-!! result
+!! html
 Special:RecentChanges/param
 !! end
 
@@ -9609,9 +9625,9 @@ Special:RecentChanges/param
 {{#special:}} page name, unknown
 !! options
 msg
-!! input
+!! wikitext
 {{#special:foobar nonexistent}}
-!! result
+!! html
 Special:Foobar nonexistent
 !! end
 
@@ -9619,9 +9635,9 @@ Special:Foobar nonexistent
 {{#speciale:}} page name, known
 !! options
 msg
-!! input
+!! wikitext
 {{#speciale:Recentchanges}}
-!! result
+!! html
 Special:RecentChanges
 !! end
 
@@ -9629,9 +9645,9 @@ Special:RecentChanges
 {{#speciale:}} page name with subpage, known
 !! options
 msg
-!! input
+!! wikitext
 {{#speciale:Recentchanges/param}}
-!! result
+!! html
 Special:RecentChanges/param
 !! end
 
@@ -9639,9 +9655,9 @@ Special:RecentChanges/param
 {{#speciale:}} page name, unknown
 !! options
 msg
-!! input
+!! wikitext
 {{#speciale:foobar nonexistent}}
-!! result
+!! html
 Special:Foobar_nonexistent
 !! end
 
@@ -9649,620 +9665,746 @@ Special:Foobar_nonexistent
 ### Images
 ###
 ### For Parsoid-specific tests, see
-#### http://www.mediawiki.org/wiki/Parsoid/MediaWiki_DOM_spec#Images
+#### https://www.mediawiki.org/wiki/Parsoid/MediaWiki_DOM_spec#Images
 
 !! test
-Simple image (php)
+Simple image
 !! options
-php
-!! input
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
 [[Image:foobar.jpg]]
-!! result
+!! html/php
 <p><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>
 </p>
-!! end
-
-!! test
-Simple image (parsoid)
-!! options
-parsoid=wt2html
-!! input
-[[Image:foobar.jpg]]
-!! result
+!! html/parsoid
 <p><span class="mw-default-size" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a></span>
 </p>
 !! end
 
 !! test
-Simple image (using File: namespace, now canonical) (php)
-!! options
-php
-!! input
-[[File:foobar.jpg]]
-!! result
+Simple image (using File: namespace, now canonical)
+!! wikitext
+[[File:Foobar.jpg]]
+!! html/php
 <p><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>
 </p>
-!! end
-
-!! test
-Simple image (using File: namespace, now canonical) (parsoid)
-!! options
-parsoid
-!! input
-[[File:Foobar.jpg]]
-!! result
+!! html/parsoid
 <p><span class="mw-default-size" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a></span>
 </p>
 !! end
 
 !! test
-Right-aligned image (php)
-!! options
-php
-!! input
-[[Image:foobar.jpg|right]]
-!! result
+Right-aligned image
+!! wikitext
+[[File:Foobar.jpg|right]]
+!! html/php
 <div class="floatright"><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></div>
 
-!! end
-
-!! test
-Right-aligned image (parsoid)
-!! options
-parsoid
-!! input
-[[File:Foobar.jpg|right]]
-!! result
+!! html/parsoid
 <figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a></figure>
 !! end
 
 !! test
-Image with caption (php)
-!! options
-php
-!! input
+Image with caption
+!! wikitext
 [[File:Foobar.jpg|right|Caption text]]
-!! result
+!! html/php
 <div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption text"><img alt="Caption text" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
 
-!! end
-
-!! test
-Image with caption (parsoid)
-!! options
-parsoid
-!! input
-[[File:Foobar.jpg|right|Caption text]]
-!! result
+!! html/parsoid
 <figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a><figcaption>Caption text</figcaption></figure>
 !! end
 
 !! test
-Image with caption, bug 53312 #1 (parsoid)
-!! options
-parsoid
-!! input
+Image with caption, bug 53312 #1
+!! wikitext
 [[File:Foobar.jpg|right|Caption page stuff]]
-!! result
+!! html/php
+<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption page stuff"><img alt="Caption page stuff" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
+
+!! html/parsoid
 <figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a><figcaption>Caption page stuff</figcaption></figure>
 !! end
 
 !! test
-Image with caption, bug 53312 #2 (parsoid)
-!! options
-parsoid
-!! input
+Image with caption, bug 53312 #2
+!! wikitext
 [[File:Foobar.jpg|right|Caption page=]]
-!! result
+!! html/php
+<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption page="><img alt="Caption page=" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
+
+!! html/parsoid
 <figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a><figcaption>Caption page=</figcaption></figure>
 !! end
 
 !! test
-Image with caption, bug 53312 #3 (parsoid)
-!! options
-parsoid
-!! input
+Image with caption, bug 53312 #3
+!! wikitext
 [[File:Foobar.jpg|right|Caption page=stuff]]
-!! result
+!! html/php
+<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption page=stuff"><img alt="Caption page=stuff" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
+
+!! html/parsoid
 <figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a><figcaption>Caption page=stuff</figcaption></figure>
 !! end
 
 !! test
-Image with empty attribute (php)
+Allow empty links in image captions (Bug 60753)
 !! options
-php
-!! input
-[[File:Foobar.jpg|right||Caption text]]
-!! result
-<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption text"><img alt="Caption text" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
+thumbsize=220
+!! wikitext
+[[File:Foobar.jpg|thumb|Caption [[Link1]]
+[[]]
+[[Link2]]
+]]
+!! html/php
+<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Caption <a href="/index.php?title=Link1&amp;action=edit&amp;redlink=1" class="new" title="Link1 (page does not exist)">Link1</a> [[]] <a href="/index.php?title=Link2&amp;action=edit&amp;redlink=1" class="new" title="Link2 (page does not exist)">Link2</a></div></div></div>
+
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"Caption [[Link1]]\n[[]]\n[[Link2]]\n"}],"dsr":[0,59,2,2]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"dsr":[2,null,null,null]}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" height="25" width="220" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"25","width":"220"},"sa":{"resource":"File:Foobar.jpg"}}'/></a><figcaption data-parsoid='{"dsr":[null,57,null,null]}'>Caption <a rel="mw:WikiLink" href="./Link1" data-parsoid='{"stx":"simple","a":{"href":"./Link1"},"sa":{"href":"Link1"},"dsr":[32,41,2,2]}'>Link1</a>
+[[]]
+<a rel="mw:WikiLink" href="./Link2" data-parsoid='{"stx":"simple","a":{"href":"./Link2"},"sa":{"href":"Link2"},"dsr":[47,56,2,2]}'>Link2</a>
+</figcaption></figure>
+!! end
 
+!! test
+Link with empty target
+!! wikitext
+[[]]
+!! html
+<p>[[]]
+</p>
 !! end
 
 !! test
-Image with empty attribute (parsoid)
+Image with empty attribute
 !! options
-parsoid=wt2html
-!! input
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
 [[File:Foobar.jpg|right||Caption text]]
-!! result
+!! html/php
+<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption text"><img alt="Caption text" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
+
+!! html/parsoid
 <figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a><figcaption>Caption text</figcaption></figure>
 !! end
 
 !! test
-Image with attributes from template (php)
-!! options
-php
-!! input
-[[File:Foobar.jpg|{{image_attribs}}]]
-!! result
-<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption text"><img alt="Caption text" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
+1. Block image with individual attributes from templates
+!! wikitext
+[[File:Foobar.jpg|thumb|{{echo|137px}}|This is a caption]]
+!! html/php
+<div class="thumb tright"><div class="thumbinner" style="width:139px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/137px-Foobar.jpg" width="137" height="16" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/206px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/274px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This is a caption</div></div></div>
 
+!! html/parsoid
+<figure typeof="mw:Image/Thumb mw:ExpandedAttrs" data-mw='{"attribs":[["thumbnail",{"html":"thumb"}],["width",{"html":"&lt;span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-mw=\"{&amp;quot;parts&amp;quot;:[{&amp;quot;template&amp;quot;:{&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;137px&amp;quot;}},&amp;quot;i&amp;quot;:0}}]}\" data-parsoid=\"{&amp;quot;dsr&amp;quot;:[24,38,null,null],&amp;quot;pi&amp;quot;:[[{&amp;quot;k&amp;quot;:&amp;quot;1&amp;quot;,&amp;quot;spc&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]}]]}\">137px&lt;/span>"}]]}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="16" width="137"/></a><figcaption>This is a caption</figcaption></figure>
 !! end
 
 !! test
-Image with attributes from template (parsoid)
-!! options
-parsoid
-!! input
-[[File:Foobar.jpg|{{image_attribs}}]]
-!! result
-<figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a><figcaption>Caption text</figcaption></figure>
+2. Block Image with individual attributes from templates
+!! wikitext
+[[File:Foobar.jpg|{{echo|thumb}}|{{echo|137px}}|This is a caption]]
+!! html/php
+<div class="thumb tright"><div class="thumbinner" style="width:139px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/137px-Foobar.jpg" width="137" height="16" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/206px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/274px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This is a caption</div></div></div>
+
+!! html/parsoid
+<figure typeof="mw:Image/Thumb mw:ExpandedAttrs" data-mw='{"attribs":[["thumbnail",{"html":"&lt;span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-mw=\"{&amp;quot;parts&amp;quot;:[{&amp;quot;template&amp;quot;:{&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;thumb&amp;quot;}},&amp;quot;i&amp;quot;:0}}]}\" data-parsoid=\"{&amp;quot;dsr&amp;quot;:[18,32,null,null],&amp;quot;pi&amp;quot;:[[{&amp;quot;k&amp;quot;:&amp;quot;1&amp;quot;,&amp;quot;spc&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]}]]}\">thumb&lt;/span>"}],["width",{"html":"&lt;span about=\"#mwt2\" typeof=\"mw:Transclusion\" data-mw=\"{&amp;quot;parts&amp;quot;:[{&amp;quot;template&amp;quot;:{&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;137px&amp;quot;}},&amp;quot;i&amp;quot;:0}}]}\" data-parsoid=\"{&amp;quot;dsr&amp;quot;:[33,47,null,null],&amp;quot;pi&amp;quot;:[[{&amp;quot;k&amp;quot;:&amp;quot;1&amp;quot;,&amp;quot;spc&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]}]]}\">137px&lt;/span>"}]]}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="16" width="137"/></a><figcaption>This is a caption</figcaption></figure>
 !! end
 
 !! test
-Image with link tails (php)
-!! options
-php
-!! input
-123[[File:Foobar.jpg]]456
-123[[File:Foobar.jpg|right]]456
-123[[File:Foobar.jpg|thumb]]456
-!! result
-<p>123<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>456
+3. Inline image with individual attributes from templates
+!! wikitext
+[[File:Foobar.jpg|{{echo|50px}}]]
+!! html/php
+<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" width="50" height="6" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" /></a>
 </p>
-123<div class="floatright"><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></div>456
-123<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div></div></div></div>456
+!! html/parsoid
+<p><span typeof="mw:Image mw:ExpandedAttrs" about="#mwt2" data-mw='{"attribs":[["width",{"html":"&lt;span about=\"#mwt1\" typeof=\"mw:Transclusion\" data-mw=\"{&amp;quot;parts&amp;quot;:[{&amp;quot;template&amp;quot;:{&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;50px&amp;quot;}},&amp;quot;i&amp;quot;:0}}]}\" data-parsoid=\"{&amp;quot;dsr&amp;quot;:[18,31,null,null],&amp;quot;pi&amp;quot;:[[{&amp;quot;k&amp;quot;:&amp;quot;1&amp;quot;,&amp;quot;spc&amp;quot;:[&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;,&amp;quot;&amp;quot;]}]]}\">50px&lt;/span>"}]]}' data-parsoid='{"optList":[{"ck":"width","ak":"{{echo|50px}}"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" height="6" width="50" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+!! end
+
+## Parsoid does not provide editing support for images where templates produce multiple image attributes.
+## To signal this, we add a 'mw:Placeholder' type to such images. This could change in the future.
+!! test
+Image with multiple attributes from the same template
+!! wikitext
+[[File:Foobar.jpg|{{image_attribs}}]]
+!! html/php
+<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption text"><img alt="Caption text" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
 
+!! html/parsoid
+<figure class="mw-default-size mw-halign-right" typeof="mw:Image mw:Placeholder"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a><figcaption>Caption text</figcaption></figure>
 !! end
 
 !! test
-Image with link tails (parsoid)
+Image with link tails
 !! options
-parsoid
-!! input
+thumbsize=220
+!! wikitext
 123[[File:Foobar.jpg]]456
 123[[File:Foobar.jpg|right]]456
 123[[File:Foobar.jpg|thumb]]456
-!! result
+!! html/php
+<p>123<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>456
+</p>
+123<div class="floatright"><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></div>456
+123<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div></div></div></div>456
+
+!! html/parsoid
 <p>123<span class="mw-default-size" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a></span>456</p>
 123<figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a></figure>456
-123<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" height="20" width="180"></a></figure>456
+123<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" height="25" width="220"></a></figure>456
 !! end
 
 !! test
-Image with multiple captions -- only last one is accepted (php)
-!! options
-php
-!! input
+Image with multiple captions -- only last one is accepted
+!! wikitext
 [[File:Foobar.jpg|right|Caption1 - ignored|[[Caption2]] - ignored|Caption3 - accepted]]
-!! result
+!! html/php
 <div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption3 - accepted"><img alt="Caption3 - accepted" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
 
+!! html/parsoid
+<figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a><figcaption>Caption3 - accepted</figcaption></figure>
 !! end
 
 !! test
-Image with multiple captions -- only last one is accepted (parsoid)
-!! options
-parsoid
-!! input
-[[File:Foobar.jpg|right|Caption1 - ignored|[[Caption2]] - ignored|Caption3 - accepted]]
-!! result
-<figure class="mw-default-size mw-halign-right" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a><figcaption>Caption3 - accepted</figcaption></figure>
+Image with multiple widths -- use last
+!! wikitext
+[[File:Foobar.jpg|200px|300px|caption]]
+!! html/php
+<p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg" width="300" height="34" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/450px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/600px-Foobar.jpg 2x" /></a>
+</p>
+!! html/parsoid
+<p><span typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="34" width="300"/></a></span></p>
 !! end
 
 !! test
-Image with width attribute at different positions (php)
+Image with multiple alignments -- use first (bug 48664)
 !! options
-php
-!! input
-[[File:Foobar.jpg|200px|right|Caption]]
-[[File:Foobar.jpg|right|200px|Caption]]
-[[File:Foobar.jpg|right|Caption|200px]]
-!! result
-<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption"><img alt="Caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a></div>
-<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption"><img alt="Caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a></div>
-<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption"><img alt="Caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a></div>
+thumbsize=220
+!! wikitext
+[[File:Foobar.jpg|thumb|left|right|center|caption]]
 
+[[File:Foobar.jpg|middle|text-top|caption]]
+!! html/php
+<div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
+<p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" style="vertical-align: middle" /></a>
+</p>
+!! html/parsoid
+<figure class="mw-default-size mw-halign-left" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption>caption</figcaption></figure>
+<p><span class="mw-default-size mw-valign-middle" typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
 !! end
 
 !! test
-Image with width attribute at different positions (parsoid)
-!! options
-parsoid
-!! input
+Image with width attribute at different positions
+!! wikitext
 [[File:Foobar.jpg|200px|right|Caption]]
 [[File:Foobar.jpg|right|200px|Caption]]
 [[File:Foobar.jpg|right|Caption|200px]]
-!! result
+!! html/php
+<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption"><img alt="Caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a></div>
+<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption"><img alt="Caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a></div>
+<div class="floatright"><a href="/wiki/File:Foobar.jpg" class="image" title="Caption"><img alt="Caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a></div>
+
+!! html/parsoid
 <figure class="mw-halign-right" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" height="23" width="200"></a><figcaption>Caption</figcaption></figure>
 <figure class="mw-halign-right" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" height="23" width="200"></a><figcaption>Caption</figcaption></figure>
 <figure class="mw-halign-right" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" height="23" width="200"></a><figcaption>Caption</figcaption></figure>
 !! end
 
+# a sad bit of backward-compatibility
 !! test
-Image with link parameter, wiki target (php)
+Image with size specified with pxpx (bug 13500, 51628)
 !! options
-php
-!! input
-[[File:Foobar.jpg|link=Main Page]]
-!! result
-<p><a href="/wiki/Main_Page" title="Main Page"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[File:Foobar.jpg|20pxpx]]
+[[File:Foobar.jpg|200x20pxpx]]
+!! html/php
+<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" width="20" height="2" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/30px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/40px-Foobar.jpg 2x" /></a>
+<a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/177px-Foobar.jpg" width="177" height="20" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/265px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/353px-Foobar.jpg 2x" /></a>
 </p>
+!! html/parsoid
+<p><span typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="2" width="20"/></a></span><span typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="20" width="177"/></a></span></p>
 !! end
 
 !! test
-Image with link parameter, wiki target (parsoid)
-!! options
-parsoid
-!! input
+Image with link parameter, wiki target
+!! wikitext
 [[File:Foobar.jpg|link=Main Page]]
-!! result
+!! html/php
+<p><a href="/wiki/Main_Page" title="Main Page"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
+</p>
+!! html/parsoid
 <p><span class="mw-default-size" typeof="mw:Image"><a href="Main_Page"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a></span></p>
 !! end
 
+# parsoid bug 49293 (part 1)
 !! test
-Image with link parameter, URL target (php)
-!! options
-php
-!! input
+Image with link parameter, URL target
+!! wikitext
 [[File:Foobar.jpg|link=http://example.com/]]
-!! result
+!! html/php
 <p><a href="http://example.com/" rel="nofollow"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
-!! end
-
-# parsoid bug 49293 (part 1)
-!! test
-Image with link parameter, URL target (parsoid)
-!! options
-parsoid
-!! input
-[[File:Foobar.jpg|link=http://example.com/]]
-!! result
+!! html/parsoid
 <p><span class="mw-default-size" typeof="mw:Image"><a href="http://example.com/"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a></span></p>
 !! end
 
+# parsoid bug 49293 (part 2)
 !! test
-Image with link parameter, protocol-less URL target (php)
-!! options
-php
-!! input
+Image with link parameter, protocol-less URL target
+!! wikitext
 [[File:Foobar.jpg|link=//example.com/]]
-!! result
+!! html/php
 <p><a href="//example.com/" rel="nofollow"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
-!! end
-
-# parsoid bug 49293 (part 2)
-!! test
-Image with link parameter, protocol-less URL target (parsoid)
-!! options
-parsoid
-!! input
-[[File:Foobar.jpg|link=//example.com/]]
-!! result
+!! html/parsoid
 <p><span class="mw-default-size" typeof="mw:Image"><a href="//example.com/"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a></span></p>
 !! end
 
 !! test
 Image with link parameter, wgExternalLinkTarget
-!! input
+!! wikitext
 [[Image:foobar.jpg|link=http://example.com/]]
 !! config
 wgExternalLinkTarget='foobar'
-!! result
+!! html
 <p><a href="http://example.com/" target="foobar" rel="nofollow"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! end
 
 !! test
 Image with link parameter, wgNoFollowLinks set to false
-!! input
+!! wikitext
 [[Image:foobar.jpg|link=http://example.com/]]
 !! config
 wgNoFollowLinks=false
-!! result
+!! html
 <p><a href="http://example.com/"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! end
 
 !! test
 Image with link parameter, wgNoFollowDomainExceptions
-!! input
+!! wikitext
 [[Image:foobar.jpg|link=http://example.com/]]
 !! config
 wgNoFollowDomainExceptions='example.com'
-!! result
+!! html
 <p><a href="http://example.com/"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! end
 
 !! test
 Image with link parameter, wgExternalLinkTarget, unnamed parameter
-!! input
+!! wikitext
 [[Image:foobar.jpg|link=http://example.com/|Title]]
 !! config
 wgExternalLinkTarget='foobar'
-!! result
+!! html
 <p><a href="http://example.com/" title="Title" target="foobar" rel="nofollow"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! end
 
 !! test
-Image with empty link parameter (php)
-!! options
-php
-!! input
+Image with empty link parameter
+!! wikitext
 [[File:Foobar.jpg|link=]]
-!! result
+!! html/php
 <p><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" />
 </p>
-!! end
-
-!! test
-Image with empty link parameter (parsoid)
-!! options
-parsoid
-!! input
-[[File:Foobar.jpg|link=]]
-!! result
+!! html/parsoid
 <p><span class="mw-default-size" typeof="mw:Image"><span><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></span></span></p>
 !! end
 
 !! test
-Image with link parameter (wiki target) and unnamed parameter (php)
-!! options
-php
-!! input
-[[File:Foobar.jpg|link=Main Page|Title]]
-!! result
+Image with link parameter (wiki target) and unnamed parameter
+!! wikitext
+[[File:Foobar.jpg|link=Main_Page|Title]]
+!! html/php
 <p><a href="/wiki/Main_Page" title="Title"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
-!! end
-
-!! test
-Image with link parameter (wiki target) and unnamed parameter (parsoid)
-!! options
-parsoid
-!! input
-[[File:Foobar.jpg|link=Main Page|Title]]
-!! result
+!! html/parsoid
 <p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"Title"}'><a href="Main_Page"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a></span></p>
 !! end
 
 !! test
-Image with link parameter (URL target) and unnamed parameter (php)
-!! options
-php
-!! input
+Image with link parameter (URL target) and unnamed parameter
+!! wikitext
 [[File:Foobar.jpg|link=http://example.com/|Title]]
-!! result
+!! html/php
 <p><a href="http://example.com/" title="Title" rel="nofollow"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
-!! end
-
-!! test
-Image with link parameter (URL target) and unnamed parameter (parsoid)
-!! options
-parsoid
-!! input
-[[File:Foobar.jpg|link=http://example.com/|Title]]
-!! result
+!! html/parsoid
 <p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"Title"}'><a href="http://example.com/"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"></a></span></p>
 !! end
 
 !! test
 Thumbnail image with link parameter
 !! options
-php
-!! input
-[[Image:foobar.jpg|thumb|link=http://example.com/|Title]]
-!! result
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="http://example.com/"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div>
+thumbsize=220
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[File:Foobar.jpg|thumb|link=http://example.com/|Title]]
+!! html/php
+<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="http://example.com/"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div>
 
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="http://example.com/"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption>Title</figcaption></figure>
 !! end
 
 !! test
 Manually-specified thumbnail image
 !! options
-php
-!! input
-[[Image:Foobar.jpg|thumb=Thumb.png|Title]]
-!! result
+thumbsize=220
+!! wikitext
+[[File:Foobar.jpg|thumb=Thumb.png|Title]]
+!! html/php
 <div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/File:Foobar.jpg"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div>
 
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb" data-mw='{"thumb":"Thumb.png"}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/e/ea/Thumb.png" height="135" width="135"/></a><figcaption>Title</figcaption></figure>
 !! end
 
 !! test
 Manually-specified thumbnail image with explicit link to wiki page
 !! options
-php
-!! input
-[[Image:Foobar.jpg|thumb=Thumb.png|link=Main Page|Title]]
-!! result
+thumbsize=220
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[File:Foobar.jpg|thumb=Thumb.png|link=Main_Page|Title]]
+!! html/php
 <div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/Main_Page" title="Main Page"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div>
 
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb" data-mw='{"thumb":"Thumb.png"}'><a href="Main_Page"><img resource="./File:Foobar.jpg" src="//example.com/images/e/ea/Thumb.png" height="135" width="135"/></a><figcaption>Title</figcaption></figure>
 !! end
 
 !! test
 Manually-specified thumbnail image with explicit link to url
 !! options
-php
-!! input
-[[Image:Foobar.jpg|thumb=Thumb.png|link=http://example.com|Title]]
-!! result
+thumbsize=220
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[File:Foobar.jpg|thumb=Thumb.png|link=http://example.com|Title]]
+!! html/php
 <div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="http://example.com"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div>
 
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb" data-mw='{"thumb":"Thumb.png"}'><a href="http://example.com"><img resource="./File:Foobar.jpg" src="//example.com/images/e/ea/Thumb.png" height="135" width="135"/></a><figcaption>Title</figcaption></figure>
+!! end
+
+!! test
+Manually-specified thumbnail image with explicit no link
+!! options
+thumbsize=220
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[File:Foobar.jpg|thumb=Thumb.png|link=|Title]]
+!! html/php
+<div class="thumb tright"><div class="thumbinner" style="width:137px;"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" />  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div>
+
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb" data-mw='{"thumb":"Thumb.png"}'><span><img resource="./File:Foobar.jpg" src="//example.com/images/e/ea/Thumb.png" height="135" width="135"/></span><figcaption>Title</figcaption></figure>
+!! end
+
+!! test
+Manually-specified thumbnail image with explicit link and alt text
+!! options
+thumbsize=220
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[File:Foobar.jpg|thumb=Thumb.png|link=Main_Page|alt=alttext|Title]]
+!! html/php
+<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/Main_Page" title="Main Page"><img alt="alttext" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div>
+
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb" data-mw='{"thumb":"Thumb.png"}'><a href="Main_Page"><img alt="alttext" resource="./File:Foobar.jpg" src="//example.com/images/e/ea/Thumb.png" height="135" width="135"/></a><figcaption>Title</figcaption></figure>
+!! end
+
+!! test
+Image with frame and link
+!! options
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[File:Foobar.jpg|frame|left|This is a test image [[Main Page]]]]
+!! html/php
+<div class="thumb tleft"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a>  <div class="thumbcaption">This is a test image <a href="/wiki/Main_Page" title="Main Page">Main Page</a></div></div></div>
+
+!! html/parsoid
+<figure class="mw-default-size mw-halign-left" typeof="mw:Image/Frame"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a><figcaption>This is a test image <a rel="mw:WikiLink" href="Main_Page">Main Page</a></figcaption></figure>
+!! end
+
+!! test
+Image with frame and link and explicit alt
+!! options
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[Image:Foobar.jpg|frame|left|This is a test image [[Main Page]]|alt=Altitude]]
+!! html/php
+<div class="thumb tleft"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Altitude" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a>  <div class="thumbcaption">This is a test image <a href="/wiki/Main_Page" title="Main Page">Main Page</a></div></div></div>
+
+!! html/parsoid
+<figure class="mw-default-size mw-halign-left" typeof="mw:Image/Frame"><a href="File:Foobar.jpg"><img alt="Altitude" resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a><figcaption>This is a test image <a rel="mw:WikiLink" href="Main_Page">Main Page</a></figcaption></figure>
+!! end
+
+!! test
+Image with wiki markup in implicit alt
+!! options
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[Image:Foobar.jpg|testing '''bold''' in alt]]
+
+[[Image:Foobar.jpg|alt=testing '''bold''' in alt]]
+!! html/php
+<p><a href="/wiki/File:Foobar.jpg" class="image" title="testing bold in alt"><img alt="testing bold in alt" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
+</p><p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="testing bold in alt" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
+</p>
+!! html/parsoid
+<p><span class="mw-default-size" typeof="mw:Image" data-mw="{&quot;caption&quot;:&quot;testing '''bold''' in alt&quot;}"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
+<p><span class="mw-default-size" typeof="mw:Image"><a href="File:Foobar.jpg"><img alt="testing bold in alt" resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
+!! end
+
+###################
+# Image sizing.
+# See https://www.mediawiki.org/wiki/Help:Images#Size_and_frame
+# and https://bugzilla.wikimedia.org/show_bug.cgi?id=62258
+# Foobar has actual size of 1941x220
+# 1. Thumbs & frameless always reduce, can't be enlarged
+# 2. Framed images ignore width; always render at default size.
+#    If given a height, they respect height but continue to ignore width.
+# 3. "Unspecified format" and border are the only types which can be
+#    enlarged.
+
+!! test
+Image: "unspecified format" and border enlarge
+!! options
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[File:Foobar.jpg|2000px]]
+
+[[File:Foobar.jpg|border|2000px]]
+!! html/php
+<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="2000" height="227" /></a>
+</p><p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="2000" height="227" class="thumbborder" /></a>
+</p>
+!! html/parsoid
+<p><span typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="227" width="2000"/></a></span></p>
+<p><span class="mw-image-border" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="227" width="2000"/></a></span></p>
+!! end
+
+!! test
+Image: "unspecified format" and border reduce
+!! options
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[File:Foobar.jpg|1000px]]
+
+[[File:Foobar.jpg|border|1000px]]
+!! html/php
+<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg" width="1000" height="113" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/1500px-Foobar.jpg 1.5x, http://example.com/images/3/3a/Foobar.jpg 2x" /></a>
+</p><p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/1000px-Foobar.jpg" width="1000" height="113" class="thumbborder" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/1500px-Foobar.jpg 1.5x, http://example.com/images/3/3a/Foobar.jpg 2x" /></a>
+</p>
+!! html/parsoid
+<p><span typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="113" width="1000"/></a></span></p>
+<p><span class="mw-image-border" typeof="mw:Image"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="113" width="1000"/></a></span></p>
+!! end
+
+!! test
+Image: thumbs reduce
+!! options
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[File:Foobar.jpg|thumb|50px]]
+!! html/php
+<div class="thumb tright"><div class="thumbinner" style="width:52px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" width="50" height="6" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div></div></div></div>
+
+!! html/parsoid
+<figure typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="6" width="50"/></a></figure>
+!! end
+
+!! test
+Image: thumbs can't be enlarged past original size
+!! options
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[File:Foobar.jpg|thumb|2000px]]
+!! html/php
+<div class="thumb tright"><div class="thumbinner" style="width:1943px;"><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" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div></div></div></div>
+
+!! html/parsoid
+<figure typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></figure>
+!! end
+
+!! test
+Image: frameless can reduce in size
+!! options
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[File:Foobar.jpg|frameless|50px]]
+!! html/php
+<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" width="50" height="6" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/75px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/100px-Foobar.jpg 2x" /></a>
+</p>
+!! html/parsoid
+<p><span typeof="mw:Image/Frameless"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="6" width="50"/></a></span></p>
 !! end
 
 !! test
-Manually-specified thumbnail image with explicit no link
+Image: frameless can't be enlarged past original size
 !! options
-php
-!! input
-[[Image:Foobar.jpg|thumb=Thumb.png|link=|Title]]
-!! result
-<div class="thumb tright"><div class="thumbinner" style="width:137px;"><img alt="" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" />  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div>
-
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[File:Foobar.jpg|frameless|2000px]]
+!! html/php
+<p><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>
+</p>
+!! html/parsoid
+<p><span typeof="mw:Image/Frameless"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
 !! end
 
 !! test
-Manually-specified thumbnail image with explicit link and alt text
+Image: framed images ignore size if only width is given
 !! options
-php
-!! input
-[[Image:Foobar.jpg|thumb=Thumb.png|link=Main Page|alt=alttext|Title]]
-!! result
-<div class="thumb tright"><div class="thumbinner" style="width:137px;"><a href="/wiki/Main_Page" title="Main Page"><img alt="alttext" src="http://example.com/images/e/ea/Thumb.png" width="135" height="135" class="thumbimage" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Title</div></div></div>
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[File:Foobar.jpg|frame]]
 
-!! end
+[[File:Foobar.jpg|frame|50px]]
 
-!! test
-Image with frame and link
-!! input
-[[Image:Foobar.jpg|frame|left|This is a test image [[Main Page]]]]
-!! result
-<div class="thumb tleft"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a>  <div class="thumbcaption">This is a test image <a href="/wiki/Main_Page" title="Main Page">Main Page</a></div></div></div>
+[[File:Foobar.jpg|frame|2000px]]
+!! html/php
+<div class="thumb tright"><div class="thumbinner" style="width:1943px;"><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" class="thumbimage" /></a>  <div class="thumbcaption"></div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:1943px;"><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" class="thumbimage" /></a>  <div class="thumbcaption"></div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:1943px;"><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" class="thumbimage" /></a>  <div class="thumbcaption"></div></div></div>
 
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Frame"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></figure><figure typeof="mw:Image/Frame"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></figure><figure typeof="mw:Image/Frame"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></figure>
 !! end
 
 !! test
-Image with frame and link and explicit alt
-!! input
-[[Image:Foobar.jpg|frame|left|This is a test image [[Main Page]]|alt=Altitude]]
-!! result
-<div class="thumb tleft"><div class="thumbinner" style="width:1943px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Altitude" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="thumbimage" /></a>  <div class="thumbcaption">This is a test image <a href="/wiki/Main_Page" title="Main Page">Main Page</a></div></div></div>
+Image: framed images respect size if given a height, but ignore width.
+!! wikitext
+[[File:Foobar.jpg|frame|50x50px]]
+!! html/php
+<div class="thumb tright"><div class="thumbinner" style="width:444px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/442px-Foobar.jpg" width="442" height="50" class="thumbimage" /></a>  <div class="thumbcaption"></div></div></div>
 
+!! html/parsoid
+<figure typeof="mw:Image/Frame"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="50" width="442"/></a></figure>
 !! end
 
-!! test
-Image with wiki markup in implicit alt
-!! input
-[[Image:Foobar.jpg|testing '''bold''' in alt]]
-!! result
-<p><a href="/wiki/File:Foobar.jpg" class="image" title="testing bold in alt"><img alt="testing bold in alt" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
-</p>
-!! end
-
-!! test
-Image with wiki markup in explicit alt
-!! input
-[[Image:Foobar.jpg|alt=testing '''bold''' in alt]]
-!! result
-<p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="testing bold in alt" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
-</p>
-!! end
+###################
 
 !! test
 Link to image page- image page normally doesn't exists, hence edit link
 Add test with existing image page
 #<p><a href="/wiki/File:Test" title="Image:Test">Image:test</a>
-!! input
+!! wikitext
 [[:Image:test]]
-!! result
+!! html
 <p><a href="/index.php?title=File:Test&amp;action=edit&amp;redlink=1" class="new" title="File:Test (page does not exist)">Image:test</a>
 </p>
 !! end
 
 !! test
 bug 18784  Link to non-existent image page with caption should use caption as link text
-!! input
+!! wikitext
 [[:Image:test|caption]]
-!! result
+!! html
 <p><a href="/index.php?title=File:Test&amp;action=edit&amp;redlink=1" class="new" title="File:Test (page does not exist)">caption</a>
 </p>
 !! end
 
 !! test
 Frameless image caption with a free URL
-!! input
-[[Image:foobar.jpg|http://example.com]]
-!! result
+!! wikitext
+[[File:Foobar.jpg|http://example.com]]
+!! html/php
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="http://example.com"><img alt="http://example.com" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
+!! html/parsoid
+<p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"http://example.com"}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
 !! end
 
 !! test
 Thumbnail image caption with a free URL
-!! input
-[[Image:foobar.jpg|thumb|http://example.com]]
-!! result
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div></div></div>
+!! options
+thumbsize=220
+!! wikitext
+[[File:Foobar.jpg|thumb|http://example.com]]
+!! html/php
+<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div></div></div>
 
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption><a rel="mw:ExtLink" href="http://example.com">http://example.com</a></figcaption></figure>
 !! end
 
 !! test
 Thumbnail image caption with a free URL and explicit alt
-!! input
-[[Image:foobar.jpg|thumb|http://example.com|alt=Alteration]]
-!! result
-<div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Alteration" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div></div></div>
+!! options
+thumbsize=220
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[File:Foobar.jpg|thumb|http://example.com|alt=Alteration]]
+!! html/php
+<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Alteration" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a></div></div></div>
 
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img alt="Alteration" resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption><a rel="mw:ExtLink" href="http://example.com">http://example.com</a></figcaption></figure>
 !! end
 
 !! test
 SVG thumbnails with no language set
 !! options
-!! input
+!! wikitext
 [[File:Foobar.svg|thumb|caption]]
-!! 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>caption</div></div></div>
+!! html
+<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="135" 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>caption</div></div></div>
 
 !! end
 
 !! test
 SVG thumbnails with language de
 !! options
-!! input
+!! wikitext
 [[File:Foobar.svg|thumb|caption|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>caption</div></div></div>
+!! html
+<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="135" 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>caption</div></div></div>
 
 !! end
 
 !! test
 SVG thumbnails with invalid language code
 !! options
-!! input
+!! wikitext
 [[File:Foobar.svg|thumb|caption|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>
+!! html
+<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="135" 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
+!! wikitext
 [[Image:foobar.jpg|thumb|ISBN 1235467890]]
-!! result
+!! html
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div><a href="/wiki/Special:BookSources/1235467890" class="internal mw-magiclink-isbn">ISBN 1235467890</a></div></div></div>
 
 !! end
 
 !! test
 BUG 1887: A RFC with a thumbnail
-!! input
+!! wikitext
 [[Image:foobar.jpg|thumb|This is RFC 12354]]
-!! result
+!! html
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This is <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc12354">RFC 12354</a></div></div></div>
 
 !! end
 
 !! test
 BUG 1887: A mailto link with a thumbnail
-!! input
+!! wikitext
 [[Image:foobar.jpg|thumb|Please mailto:nobody@example.com]]
-!! result
+!! html
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>Please <a rel="nofollow" class="external free" href="mailto:nobody@example.com">mailto:nobody@example.com</a></div></div></div>
 
 !! end
@@ -10270,82 +10412,82 @@ BUG 1887: A mailto link with a thumbnail
 # Pending resolution to bug 368
 !! test
 BUG 648: Frameless image caption with a link
-!! input
+!! wikitext
 [[Image:foobar.jpg|text with a [[link]] in it]]
-!! result
+!! html
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a link in it"><img alt="text with a link in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! end
 
 !! test
 BUG 648: Frameless image caption with a link (suffix)
-!! input
+!! wikitext
 [[Image:foobar.jpg|text with a [[link]]foo in it]]
-!! result
+!! html
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a linkfoo in it"><img alt="text with a linkfoo in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! end
 
 !! test
 BUG 648: Frameless image caption with an interwiki link
-!! input
+!! wikitext
 [[Image:foobar.jpg|text with a [[MeatBall:Link]] in it]]
-!! result
+!! html
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a MeatBall:Link in it"><img alt="text with a MeatBall:Link in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! end
 
 !! test
 BUG 648: Frameless image caption with a piped interwiki link
-!! input
+!! wikitext
 [[Image:foobar.jpg|text with a [[MeatBall:Link|link]] in it]]
-!! result
+!! html
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="text with a link in it"><img alt="text with a link in it" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! end
 
 !! test
 Escape HTML special chars in image alt text
-!! input
+!! wikitext
 [[Image:foobar.jpg|& < > "]]
-!! result
+!! html
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="&amp; &lt; &gt; &quot;"><img alt="&amp; &lt; &gt; &quot;" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! end
 
 !! test
 BUG 499: Alt text should have &#1234;, not &amp;1234;
-!! input
+!! wikitext
 [[Image:foobar.jpg|&#9792;]]
-!! result
+!! html
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="♀"><img alt="♀" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! end
 
 !! test
 Broken image caption with link
-!! input
+!! wikitext
 [[Image:Foobar.jpg|thumb|This is a broken caption. But [[Main Page|this]] is just an ordinary link.
-!! result
+!! html
 <p>[[Image:Foobar.jpg|thumb|This is a broken caption. But <a href="/wiki/Main_Page" title="Main Page">this</a> is just an ordinary link.
 </p>
 !! end
 
 !! test
 Image caption containing another image
-!! input
+!! wikitext
 [[Image:Foobar.jpg|thumb|This is a caption with another [[Image:icon.png|image]] inside it!]]
-!! result
+!! html
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This is a caption with another <a href="/index.php?title=Special:Upload&amp;wpDestFile=Icon.png" class="new" title="File:Icon.png">image</a> inside it!</div></div></div>
 
 !! end
 
 !! test
 Image caption containing a newline
-!! input
+!! wikitext
 [[Image:Foobar.jpg|This
 *is some text]]
-!! result
+!! html
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="This *is some text"><img alt="This *is some text" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !!end
@@ -10353,60 +10495,122 @@ Image caption containing a newline
 !!test
 Parsoid: Image caption containing leading space
 (The leading space should not trigger nowiki escaping in wt2wt mode)
-!! input
+!! wikitext
 [[Image:Foobar.jpg|thumb| bar]]
-!! result
+!! html
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>bar</div></div></div>
 
 !!end
 
+!! test
+Images: caption containing a table
+!! wikitext
+[[Image:Foobar.jpg|thumb|200px|This is an example image thumbnail caption with a table
+{|
+! Foo !! Bar
+|-
+| Foo1 || Bar1
+|}
+and some more text.]]
+!! html/php
+<div class="thumb tright"><div class="thumbinner" style="width:202px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This is an example image thumbnail caption with a table <table> <tr> <th> Foo </th> <th> Bar </th></tr> <tr> <td> Foo1 </td> <td> Bar1 </td></tr></table> and some more text.</div></div></div>
+
+!! html/parsoid
+<figure typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="23" width="200"/></a><figcaption>This is an example image thumbnail caption with a table
+<table>
+<tbody>
+<tr><th>Foo </th><th>Bar</th></tr>
+<tr>
+<td>Foo1 </td>
+<td>Bar1</td></tr></tbody></table>and some more text.</figcaption></figure>
+!! end
+
 !! test
 Bug 3090: External links other than http: in image captions
-!! input
-[[Image:Foobar.jpg|thumb|200px|This caption has [irc://example.net irc] and [https://example.com Secure] ext links in it.]]
-!! result
+!! wikitext
+[[File:Foobar.jpg|thumb|200x200px|This caption has [irc://example.net irc] and [https://example.com Secure] ext links in it.]]
+!! html/php
 <div class="thumb tright"><div class="thumbinner" style="width:202px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" width="200" height="23" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/300px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/400px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>This caption has <a rel="nofollow" class="external text" href="irc://example.net">irc</a> and <a rel="nofollow" class="external text" href="https://example.com">Secure</a> ext links in it.</div></div></div>
 
+!! html/parsoid
+<figure typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="23" width="200"/></a><figcaption>This caption has <a rel="mw:ExtLink" href="irc://example.net">irc</a> and <a rel="mw:ExtLink" href="https://example.com">Secure</a> ext links in it.</figcaption></figure>
 !! end
 
 !! test
 Custom class
-!! input
+!! options
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
 [[Image:foobar.jpg|a|class=b]]
-!! result
+!! html/php
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="a"><img alt="a" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" class="b" /></a>
 </p>
+!! html/parsoid
+<p><span class="mw-default-size b" typeof="mw:Image" data-mw='{"caption":"a"}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a></span></p>
 !! end
 
 !! test
 Localized image handling (1).
 !! options
+parsoid=wt2html,wt2wt,html2html
 language=es
-!! input
+!! wikitext
 [[Archivo:Foobar.jpg|izquierda|enlace=foo|caption]]
-!! result
+!! html/php
 <div class="floatleft"><a href="/wiki/Foo" title="caption"><img alt="caption" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a></div>
 
+!! html/parsoid
+<figure class="mw-default-size mw-halign-left" typeof="mw:Image"><a href="./Foo"><img resource="./Archivo:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941"/></a><figcaption>caption</figcaption></figure>
 !! end
 
 !! test
 Localized image handling (2).
 !! options
+thumbsize=220
+parsoid=wt2html,wt2wt,html2html
 language=es
-!! input
+!! wikitext
 [[Archivo:Foobar.jpg|miniatura|izquierda|enlace=foo|caption]]
-!! result
-<div class="thumb tleft"><div class="thumbinner" style="width:182px;"><a href="/wiki/Foo" title="Foo"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/Archivo:Foobar.jpg" class="internal" title="Aumentar"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
+!! html/php
+<div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/Foo" title="Foo"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/Archivo:Foobar.jpg" class="internal" title="Aumentar"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
 
+!! html/parsoid
+<figure class="mw-default-size mw-halign-left" typeof="mw:Image/Thumb"><a href="./Foo"><img resource="./Archivo:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption>caption</figcaption></figure>
 !! end
 
 !! test
 "border", "frameless" and "class" attributes on an image.
-!! input
+!! options
+thumbsize=220
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
 [[File:Foobar.jpg|frameless|border|class=extra|caption]]
-!! result
-<p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="extra thumbborder" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>
+!! html/php
+<p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="extra thumbborder" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>
 </p>
+!! html/parsoid
+<p><span class="mw-default-size mw-image-border extra" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}'><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a></span></p>
+!! end
+
+# Note that 'right' is the default alignment, despite the misspelled 'righ' below
+!! test
+Invalid image attributes (bug 62500)
+!! options
+thumbsize=220
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[File:Foobar.jpg|thumb|float|left|caption]]
+
+[[File:Foobar.jpg|thumb|righ|caption]]
+
+[[File:Foobar.jpg|bogus1|thumb|bogus2|left|bogus3|caption]]
+!! html/php
+<div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
+<div class="thumb tright"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
+<div class="thumb tleft"><div class="thumbinner" style="width:222px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" width="220" height="25" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/330px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/440px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>caption</div></div></div>
+
+!! html/parsoid
+<figure class="mw-default-size mw-halign-left" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption>caption</figcaption></figure><figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption>caption</figcaption></figure><figure class="mw-default-size mw-halign-left" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption>caption</figcaption></figure>
 !! end
 
 !! article
@@ -10417,9 +10621,9 @@ File:Barfoo.jpg
 
 !! test
 Redirected image
-!! input
+!! wikitext
 [[Image:Barfoo.jpg]]
-!! result
+!! html
 <p><a href="/wiki/File:Barfoo.jpg" title="File:Barfoo.jpg">File:Barfoo.jpg</a>
 </p>
 !! end
@@ -10428,15 +10632,15 @@ Redirected image
 Missing image with uploads disabled
 !! options
 wgEnableUploads=0
-!! input
+!! wikitext
 [[Image:Foobaz.jpg]]
-!! result
+!! html
 <p><a href="/wiki/File:Foobaz.jpg" title="File:Foobaz.jpg">File:Foobaz.jpg</a>
 </p>
 !! end
 
 # Parsoid-specific testing for images
-# http://www.mediawiki.org/wiki/Parsoid/MediaWiki_DOM_spec#Images
+# https://www.mediawiki.org/wiki/Parsoid/MediaWiki_DOM_spec#Images
 # Currently imperfect due to a flaw in the Parsoid testrunner
 # Work in progress
 # THESE TESTS SHOULD BE MOVED UP and merged with the php-specific
@@ -10444,13 +10648,10 @@ wgEnableUploads=0
 
 !! test
 Parsoid-specific image handling - simple image with size and middle alignment
-!! options
-parsoid
-!! input
-[[Image:Foobar.jpg|50px|middle]]
-!! result
-<p>
-<span class="mw-valign-middle" typeof="mw:Image">
+!! wikitext
+[[File:Foobar.jpg|middle|50px]]
+!! html/parsoid
+<p><span class="mw-valign-middle" typeof="mw:Image">
 <a href="File:Foobar.jpg">
 <img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" height="6" width="50">
 </a>
@@ -10459,30 +10660,39 @@ parsoid
 !! end
 
 !! test
-Parsoid-specific image handling - simple image with both sizes, a baseline alignment, and a caption
+Parsoid-specific image handling - simple image with size, middle alignment,
+non-standard namespace alias
 !! options
-parsoid
-!! input
-[[Image:Foobar.jpg|500x10px|baseline|caption]]
-!! result
-<p>
-<span class="mw-valign-baseline" typeof="mw:Image" data-mw="{&quot;caption&quot;:&quot;caption&quot;}">
+parsoid=wt2wt,wt2html,html2html
+!! wikitext
+[[Image:Foobar.jpg|middle|50px]]
+!! html/parsoid
+<p><span class="mw-valign-middle" typeof="mw:Image">
 <a href="File:Foobar.jpg">
-<img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/89px-Foobar.jpg" height="10" width="89">
+<img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" height="6" width="50">
 </a>
 </span>
 </p>
 !! end
 
 !! test
-Parsoid-specific image handling - simple image with border and size spec
+Parsoid-specific image handling - simple image with size and middle alignment
+(existing content)
+!! wikitext
+[[File:Foobar.jpg|50px|middle]]
+!! html/parsoid
+<p><span class="mw-valign-middle" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"width","ak":"50px"},{"ck":"middle","ak":"middle"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" height="6" width="50" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+!! end
+
+!! test
+Parsoid-specific image handling - simple image with size and middle alignment
+and non-standard namespace name
 !! options
-parsoid
-!! input
-[[Image:Foobar.jpg|50px|border|caption]]
-!! result
-<p>
-<span class="mw-image-border" typeof="mw:Image" data-mw="{&quot;caption&quot;:&quot;caption&quot;}">
+parsoid=wt2html,wt2wt,html2html
+!! wikitext
+[[Image:Foobar.jpg|50px|middle]]
+!! html/parsoid
+<p><span class="mw-valign-middle" typeof="mw:Image">
 <a href="File:Foobar.jpg">
 <img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" height="6" width="50">
 </a>
@@ -10490,28 +10700,49 @@ parsoid
 </p>
 !! end
 
+!! test
+Parsoid-specific image handling - simple image with both sizes, a baseline alignment, and a caption
+!! wikitext
+[[File:Foobar.jpg|500x10px|baseline|caption]]
+!! html/parsoid
+<p><span class="mw-valign-baseline" typeof="mw:Image" data-mw='{"caption":"caption"}' data-parsoid='{"optList":[{"ck":"width","ak":"500x10px"},{"ck":"baseline","ak":"baseline"},{"ck":"caption","ak":"caption"}],"size":"500x10"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/89px-Foobar.jpg" height="10" width="89" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"10","width":"89"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+!! end
+
+!! test
+Parsoid-specific image handling - simple image with border and size spec
+!! wikitext
+[[File:Foobar.jpg|50px|border|caption]]
+!! html/parsoid
+<p><span class="mw-image-border" typeof="mw:Image" data-mw='{"caption":"caption"}' data-parsoid='{"optList":[{"ck":"width","ak":"50px"},{"ck":"border","ak":"border"},{"ck":"caption","ak":"caption"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" height="6" width="50" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+!! end
+
 !! test
 Parsoid-specific image handling - thumbnail with halign, valign, and caption
-!! options
-parsoid
-!! input
-[[Image:Foobar.jpg|thumb|left|baseline|caption content]]
-!! result
+!! wikitext
+[[File:Foobar.jpg|left|baseline|thumb|caption content]]
+!! html/parsoid
 <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="//example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" height="21" width="180" />
+<img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" height="25" width="220" />
 </a>
 <figcaption>caption content</figcaption>
 </figure>
 !! end
 
+!! test
+Parsoid-specific image handling - thumbnail with halign, valign, and caption
+(existing content)
+!! wikitext
+[[File:Foobar.jpg|thumb|left|baseline|caption content]]
+!! html/parsoid
+<figure class="mw-default-size mw-halign-left mw-valign-baseline" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"left","ak":"left"},{"ck":"baseline","ak":"baseline"},{"ck":"caption","ak":"caption content"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" height="25" width="220" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"25","width":"220"},"sa":{"resource":"File:Foobar.jpg"}}'/></a><figcaption>caption content</figcaption></figure>
+!! end
+
 !! test
 Parsoid-specific image handling - thumbnail with specific size, halign, valign, and caption
-!! options
-parsoid
-!! input
-[[Image:Foobar.jpg|thumb|50x50px|right|middle|caption]]
-!! result
+!! wikitext
+[[Image:Foobar.jpg|right|middle|thumb|50x50px|caption]]
+!! html/parsoid
 <figure class="mw-halign-right mw-valign-middle" typeof="mw:Image/Thumb">
 <a href="File:Foobar.jpg">
 <img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" height="6" width="50" />
@@ -10520,13 +10751,20 @@ parsoid
 </figure>
 !! end
 
+!! test
+Parsoid-specific image handling - thumbnail with specific size, halign,
+valign, and caption (existing content)
+!! wikitext
+[[File:Foobar.jpg|thumb|50x50px|right|middle|caption]]
+!! html/parsoid
+<figure class="mw-halign-right mw-valign-middle" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"width","ak":"50x50px"},{"ck":"right","ak":"right"},{"ck":"middle","ak":"middle"},{"ck":"caption","ak":"caption"}],"size":"50x50"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/50px-Foobar.jpg" height="6" width="50" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"6","width":"50"},"sa":{"resource":"File:Foobar.jpg"}}'/></a><figcaption>caption</figcaption></figure>
+!! end
+
 !! test
 Parsoid-specific image handling - framed image with specific size and caption
-!! options
-parsoid
-!! input
-[[Image:Foobar.jpg|500x50px|frame|caption]]
-!! result
+!! wikitext
+[[Image:Foobar.jpg|frame|500x50px|caption]]
+!! html/parsoid
 <figure typeof="mw:Image/Frame">
 <a href="File:Foobar.jpg">
 <img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/442px-Foobar.jpg" height="50" width="442" />
@@ -10535,13 +10773,20 @@ parsoid
 </figure>
 !! end
 
+!! test
+Parsoid-specific image handling - framed image with specific size and caption
+(existing content)
+!! wikitext
+[[File:Foobar.jpg|442x50px|frame|caption]]
+!! html/parsoid
+<figure typeof="mw:Image/Frame" data-parsoid='{"optList":[{"ck":"width","ak":"442x50px"},{"ck":"framed","ak":"frame"},{"ck":"caption","ak":"caption"}],"size":"442x50"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/442px-Foobar.jpg" height="50" width="442" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"50","width":"442"},"sa":{"resource":"File:Foobar.jpg"}}'/></a><figcaption>caption</figcaption></figure>
+!! end
+
 !! test
 Parsoid-specific image handling - framed image with specific size, halign, valign, and caption
-!! options
-parsoid
-!! input
-[[Image:Foobar.jpg|500x50px|frame|left|baseline|caption]]
-!! result
+!! wikitext
+[[Image:Foobar.jpg|left|baseline|frame|500x50px|caption]]
+!! html/parsoid
 <figure class="mw-halign-left mw-valign-baseline" typeof="mw:Image/Frame">
 <a href="File:Foobar.jpg">
 <img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/442px-Foobar.jpg" height="50" width="442" />
@@ -10550,44 +10795,39 @@ parsoid
 </figure>
 !! end
 
+!! test
+Parsoid-specific image handling - framed image with specific size, halign,
+valign, and caption (existing content)
+!! wikitext
+[[File:Foobar.jpg|442x50px|frame|left|baseline|caption]]
+!! html/parsoid
+<figure class="mw-halign-left mw-valign-baseline" typeof="mw:Image/Frame" data-parsoid='{"optList":[{"ck":"width","ak":"442x50px"},{"ck":"framed","ak":"frame"},{"ck":"left","ak":"left"},{"ck":"baseline","ak":"baseline"},{"ck":"caption","ak":"caption"}],"size":"442x50"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/442px-Foobar.jpg" height="50" width="442" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"50","width":"442"},"sa":{"resource":"File:Foobar.jpg"}}'/></a><figcaption>caption</figcaption></figure>
+!! end
+
 !! test
 Parsoid-specific image handling - frameless image with specific size, border, and caption
-!! options
-parsoid
-!! input
-[[Image:Foobar.jpg|frameless|500x50px|border|caption]]
-!! result
-<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="//example.com/images/thumb/3/3a/Foobar.jpg/442px-Foobar.jpg" height="50" width="442" />
-</a>
-</p>
+!! wikitext
+[[File:Foobar.jpg|frameless|442x50px|border|caption]]
+!! html/parsoid
+<p><span class="mw-image-border" typeof="mw:Image/Frameless" data-mw='{"caption":"caption"}' data-parsoid='{"optList":[{"ck":"frameless","ak":"frameless"},{"ck":"width","ak":"442x50px"},{"ck":"border","ak":"border"},{"ck":"caption","ak":"caption"}],"size":"442x50"}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/442px-Foobar.jpg" height="50" width="442" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"50","width":"442"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
 !! end
 
-#!! test
-#Parsoid-specific image handling - simple image with a formatted caption
-#!! options
-#parsoid
-#!! input
-#[[Image:Foobar.jpg|<table><tr><td>a</td><td>b</td></tr><tr><td>c</td></tr></table>]]
-#!! result
-#<p>
-#<span typeof="mw:Image">
-#<a class="mw-default-size" href="Image:Foobar.jpg">
-#<img alt="Foobar.jpg" class="mw-default-size" src="http://example.com/images/3/3a/Foobar.jpg" height="220" width="1941">
-#</a>
-#<span>abc</span>
-#</span>
-#</p>
+!! test
+Parsoid-specific image handling - simple image with a formatted caption
+!! wikitext
+[[File:Foobar.jpg|<table><tr><td>a</td><td>b</td></tr><tr><td>c</td></tr></table>]]
+!! html/parsoid
+<p><span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"&lt;table>&lt;tr>&lt;td>a&lt;/td>&lt;td>b&lt;/td>&lt;/tr>&lt;tr>&lt;td>c&lt;/td>&lt;/tr>&lt;/table>"}'>
+<a href="File:Foobar.jpg">
+<img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="220" width="1941">
+</a></span></p>
+!! end
 
 !! test
 Parsoid-specific image handling - caption with a template in it
-!! options
-parsoid
-!! input
-[[File:Foobar.jpg|thumb|200x200px|This caption has a {{echo|transclusion}} in it.]]
-!! result
+!! wikitext
+[[File:Foobar.jpg|thumb|200x23px|This caption has a {{echo|transclusion}} in it.]]
+!! html/parsoid
 <figure typeof="mw:Image/Thumb"><a href="./File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/200px-Foobar.jpg" height="23" width="200"></a><figcaption>This caption has a <span about="#mwt1" typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&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;transclusion&quot;}},&quot;i&quot;:0}}]}">transclusion</span> in it.</figcaption></figure>
 !! end
 
@@ -10595,16 +10835,44 @@ parsoid
 Parsoid-specific image handling - caption with unbalanced tags in it
 !! options
 parsoid=wt2html,wt2wt,html2html
-!! input
+!! wikitext
 foo
 [[File:Foobar.jpg|thumb|200x200px|This caption has a <center>unbalanced tag in it.]]
 bar
-!! result
+!! html/parsoid
 <p>foo</p>
 <figure typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="23" width="200"></a><figcaption>This caption has a <center>unbalanced tag in it.</center></figcaption></figure>
 <p>bar</p>
 !! end
 
+!! test
+Parsoid-specific image handling - empty caption
+!! wikitext
+[[File:Foobar.jpg|thumb|]]
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption></figcaption></figure>
+!! end
+
+!! test
+Parsoid-specific image handling - whitespace caption
+!! wikitext
+[[File:Foobar.jpg|thumb| ]]
+!! html/parsoid
+<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="25" width="220"/></a><figcaption> </figcaption></figure>
+!! end
+
+!! test
+Parsoid-specific image handling - lang option
+!! wikitext
+foo
+[[File:Foobar.svg|lang=de|caption]]
+bar
+!! html/parsoid
+<p>foo
+<span class="mw-default-size" typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="./File:Foobar.svg"><img resource="./File:Foobar.svg" src="//example.com/images/f/ff/Foobar.svg" lang="de" height="180" width="240"/></a></span>
+bar</p>
+!! end
+
 
 ###
 ### Subpages
@@ -10619,9 +10887,9 @@ foo
 Subpage link
 !! options
 subpage title=[[Subpage test]]
-!! input
+!! wikitext
 [[/subpage]]
-!! result
+!! html
 <p><a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">/subpage</a>
 </p>
 !! end
@@ -10630,9 +10898,9 @@ subpage title=[[Subpage test]]
 Subpage noslash link
 !! options
 subpage title=[[Subpage test]]
-!!input
+!! wikitext
 [[/subpage/]]
-!! result
+!! html
 <p><a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">subpage</a>
 </p>
 !! end
@@ -10643,11 +10911,11 @@ Relative subpage noslash link
 !! options
 parsoid=wt2wt,wt2html,html2html
 subpage title=[[Subpage test/1/2/3/4]]
-!!input
+!! wikitext
 [[../../subpage/]]
 
 [[../../subpage]]
-!! result
+!! html
 <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
@@ -10657,13 +10925,13 @@ subpage title=[[Subpage test/1/2/3/4]]
 Parsoid: dot-slash prefixed wikilinks
 !! options
 parsoid=wt2wt,wt2html,html2html
-!!input
+!! wikitext
 [[./foo]]
 
 [[././bar]]
 
 [[././baz/]]
-!! result
+!! html
 <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>
@@ -10671,9 +10939,9 @@ parsoid=wt2wt,wt2html,html2html
 
 !! test
 Disabled subpages
-!! input
+!! wikitext
 [[/subpage]]
-!! result
+!! html
 <p><a href="/index.php?title=/subpage&amp;action=edit&amp;redlink=1" class="new" title="/subpage (page does not exist)">/subpage</a>
 </p>
 !! end
@@ -10682,9 +10950,9 @@ Disabled subpages
 BUG 561: {{/Subpage}}
 !! options
 subpage title=[[Page]]
-!! input
+!! wikitext
 {{/Subpage}}
-!! result
+!! html
 <p><a href="/index.php?title=Page/Subpage&amp;action=edit&amp;redlink=1" class="new" title="Page/Subpage (page does not exist)">Page/Subpage</a>
 </p>
 !! end
@@ -10700,9 +10968,9 @@ blah
 
 !! test
 Link to category
-!! input
+!! wikitext
 [[:Category:MediaWiki User's Guide]]
-!! result
+!! html
 <p><a href="/wiki/Category:MediaWiki_User%27s_Guide" title="Category:MediaWiki User's Guide">Category:MediaWiki User's Guide</a>
 </p>
 !! end
@@ -10711,17 +10979,17 @@ Link to category
 Simple category
 !! options
 cat
-!! input
+!! wikitext
 [[Category:MediaWiki User's Guide]]
-!! result
+!! html
 <a href="/wiki/Category:MediaWiki_User%27s_Guide" title="Category:MediaWiki User's Guide">MediaWiki User's Guide</a>
 !! end
 
 !! test
 PAGESINCATEGORY invalid title fatal (r33546 fix)
-!! input
+!! wikitext
 {{PAGESINCATEGORY:<bogus>}}
-!! result
+!! html
 <p>0
 </p>
 !! end
@@ -10730,9 +10998,9 @@ PAGESINCATEGORY invalid title fatal (r33546 fix)
 Category with different sort key
 !! options
 cat
-!! input
+!! wikitext
 [[Category:MediaWiki User's Guide|Foo]]
-!! result
+!! html
 <a href="/wiki/Category:MediaWiki_User%27s_Guide" title="Category:MediaWiki User's Guide">MediaWiki User's Guide</a>
 !! end
 
@@ -10740,9 +11008,9 @@ cat
 Category with identical sort key
 !! options
 cat
-!! input
+!! wikitext
 [[Category:MediaWiki User's Guide|MediaWiki User's Guide]]
-!! result
+!! html
 <a href="/wiki/Category:MediaWiki_User%27s_Guide" title="Category:MediaWiki User's Guide">MediaWiki User's Guide</a>
 !! end
 
@@ -10751,9 +11019,9 @@ Category with empty sort key
 !! options
 cat
 pst
-!! input
+!! wikitext
 [[Category:MediaWiki User's Guide|]]
-!! result
+!! html
 [[Category:MediaWiki User's Guide|MediaWiki User's Guide]]
 !! end
 
@@ -10762,9 +11030,9 @@ Category with empty sort key and parentheses
 !! options
 cat
 pst
-!! input
+!! wikitext
 [[Category:Foo (bar)|]]
-!! result
+!! html
 [[Category:Foo (bar)|Foo]]
 !! end
 
@@ -10773,9 +11041,9 @@ Category with link tail
 !! options
 cat
 pst
-!! input
+!! wikitext
 123[[Category:Foo]]456
-!! result
+!! html
 123[[Category:Foo]]456
 !! end
 
@@ -10784,9 +11052,9 @@ Category with template
 !! options
 cat
 pst
-!! input
+!! wikitext
 [[Category:{{echo|Foo}}]]
-!! result
+!! html
 [[Category:{{echo|Foo}}]]
 !! end
 
@@ -10795,9 +11063,9 @@ Category with template in sort key
 !! options
 cat
 pst
-!! input
+!! wikitext
 [[Category:Foo|{{echo|Bar}}]]
-!! result
+!! html
 [[Category:Foo|{{echo|Bar}}]]
 !! end
 
@@ -10806,15 +11074,15 @@ Category with template in sort key and title
 !! options
 cat
 pst
-!! input
+!! wikitext
 [[Category:{{echo|Foo}}|{{echo|Bar}}]]
-!! result
+!! html
 [[Category:{{echo|Foo}}|{{echo|Bar}}]]
 !! end
 
 !! test
 Category / paragraph interactions
-!! input
+!! wikitext
 Foo [[Category:Baz]] Bar
 
 Foo [[Category:Baz]]
@@ -10840,7 +11108,7 @@ Bar
 [[Category:Baz]]
  {{echo|[[Category:Baz]]}}
 [[Category:Baz]]
-!! result
+!! html
 <p>Foo Bar
 </p><p>Foo
 Bar
@@ -10856,11 +11124,11 @@ Bar
 Parsoid: Serialize link to category page with colon escape
 !! options
 parsoid
-!! input
+!! wikitext
 
 [[:Category:Foo]]
 [[:Category:Foo|Bar]]
-!! result
+!! html
 <p>
 <a rel="mw:WikiLink" href="Category:Foo">Category:Foo</a>
 <a rel="mw:WikiLink" href="Category:Foo">Bar</a>
@@ -10872,9 +11140,9 @@ Parsoid: Link prefix/suffixes aren't applied to category links
 !! options
 parsoid=wt2html,wt2wt,html2html
 language=is
-!! input
+!! wikitext
 x[[Category:Foo]]y
-!! result
+!! html
 <p>x<link rel="mw:PageProp/Category" href="Category:Foo">y</p>
 !! end
 
@@ -10882,11 +11150,11 @@ x[[Category:Foo]]y
 Parsoid: Serialize link to file page with colon escape
 !! options
 parsoid
-!! input
+!! wikitext
 
 [[:File:Foo.png]]
 [[:File:Foo.png|Bar]]
-!! result
+!! html
 <p>
 <a rel="mw:WikiLink" href="File:Foo.png">File:Foo.png</a>
 <a rel="mw:WikiLink" href="File:Foo.png">Bar</a>
@@ -10897,10 +11165,10 @@ parsoid
 Parsoid: Serialize a genuine category link without colon escape
 !! options
 parsoid
-!! input
+!! wikitext
 [[Category:Foo]]
 [[Category:Foo|Bar]]
-!! result
+!! html
 <link rel="mw:PageProp/Category" href="Category:Foo">
 <link rel="mw:PageProp/Category" href="Category:Foo#Bar">
 !! end
@@ -10909,9 +11177,9 @@ parsoid
 Parsoid: Defaultsort
 !! options
 parsoid
-!! input
+!! wikitext
 {{DEFAULTSORT:Foo}}
-!! result
+!! html
 <meta property="mw:PageProp/categorydefaultsort" content="Foo"/>
 !! end
 
@@ -10922,11 +11190,11 @@ parsoid
 Inter-language links
 !! options
 ill
-!! input
+!! wikitext
 [[es:Alimento]]
 [[fr:Nourriture]]
 [[zh:&#39135;&#21697;]]
-!! result
+!! html
 es:Alimento fr:Nourriture zh:食品
 !! end
 
@@ -10934,12 +11202,12 @@ es:Alimento fr:Nourriture zh:食品
 Duplicate interlanguage links (bug 24502)
 !! options
 ill
-!! input
+!! wikitext
 [[es:1]]
 [[es:2]]
 [[fr:1]]
 [[fr:2]]
-!! result
+!! html
 es:1 fr:1
 !! end
 
@@ -10948,7 +11216,7 @@ es:1 fr:1
 ###
 !! test
 Basic section headings
-!! input
+!! wikitext
 == Headline 1 ==
 Some text
 
@@ -10956,7 +11224,7 @@ Some text
 More
 ===Smaller headline===
 Blah blah
-!! result
+!! html
 <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>
@@ -10970,7 +11238,7 @@ Blah blah
 
 !! test
 Section headings with TOC
-!! input
+!! wikitext
 == Headline 1 ==
 === Subheadline 1 ===
 ===== Skipping a level =====
@@ -10979,7 +11247,7 @@ Section headings with TOC
 == Headline 2 ==
 Some text
 ===Another headline===
-!! result
+!! html
 <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>
@@ -11017,7 +11285,7 @@ Some text
 # perl -e 'print "="x$_," Level $_ heading","="x$_,"\n" for 1..10'
 !! test
 Handling of sections up to level 6 and beyond
-!! input
+!! wikitext
 = Level 1 Heading=
 == Level 2 Heading==
 === Level 3 Heading===
@@ -11028,7 +11296,7 @@ Handling of sections up to level 6 and beyond
 ======== Level 8 Heading========
 ========= Level 9 Heading=========
 ========== Level 10 Heading==========
-!! result
+!! html
 <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>
@@ -11074,14 +11342,14 @@ Handling of sections up to level 6 and beyond
 
 !! test
 TOC regression (bug 9764)
-!! input
+!! wikitext
 == title 1 ==
 === title 1.1 ===
 ==== title 1.1.1 ====
 === title 1.2 ===
 == title 2 ==
 === title 2.1 ===
-!! result
+!! html
 <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>
@@ -11115,14 +11383,14 @@ TOC regression (bug 9764)
 TOC with wgMaxTocLevel=3 (bug 6204)
 !! options
 wgMaxTocLevel=3
-!! input
+!! wikitext
 == title 1 ==
 === title 1.1 ===
 ==== title 1.1.1 ====
 === title 1.2 ===
 == title 2 ==
 === title 2.1 ===
-!! result
+!! html
 <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>
@@ -11152,13 +11420,13 @@ wgMaxTocLevel=3
 TOC with wgMaxTocLevel=3 and two level four headings (bug 6204)
 !! options
 wgMaxTocLevel=3
-!! input
+!! wikitext
 ==Section 1==
 ===Section 1.1===
 ====Section 1.1.1====
 ====Section 1.1.1.1====
 ==Section 2==
-!! result
+!! html
 <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>
@@ -11181,10 +11449,10 @@ wgMaxTocLevel=3
 
 !! test
 Resolving duplicate section names
-!! input
+!! wikitext
 == Foo bar ==
 == Foo bar ==
-!! result
+!! html
 <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>
 
@@ -11192,10 +11460,10 @@ Resolving duplicate section names
 
 !! test
 Resolving duplicate section names with differing case (bug 10721)
-!! input
+!! wikitext
 == Foo bar ==
 == Foo Bar ==
-!! result
+!! html
 <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>
 
@@ -11210,12 +11478,12 @@ Template:sections
 
 !! test
 Template with sections, __NOTOC__
-!! input
+!! wikitext
 __NOTOC__
 ==Section 0==
 {{sections}}
 ==Section 4==
-!! result
+!! html
 <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>
@@ -11225,11 +11493,11 @@ __NOTOC__
 
 !! test
 __NOEDITSECTION__ keyword
-!! input
+!! wikitext
 __NOEDITSECTION__
 ==Section 1==
 ==Section 2==
-!! result
+!! html
 <h2><span class="mw-headline" id="Section_1">Section 1</span></h2>
 <h2><span class="mw-headline" id="Section_2">Section 2</span></h2>
 
@@ -11237,21 +11505,21 @@ __NOEDITSECTION__
 
 !! test
 Link inside a section heading
-!! input
+!! wikitext
 ==Section with a [[Main Page|link]] in it==
-!! result
+!! html
 <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
 
 !! test
 TOC regression (bug 12077)
-!! input
+!! wikitext
 __TOC__
 == title 1 ==
 === title 1.1 ===
 == title 2 ==
-!! result
+!! html
 <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>
@@ -11271,22 +11539,22 @@ __TOC__
 
 !! test
 BUG 1219 URL next to image (good)
-!! input
+!! wikitext
 http://example.com [[Image:foobar.jpg]]
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a> <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>
 </p>
 !!end
 
 !! test
 Short headings with trailing space should match behavior of Parser::doHeadings (bug 19910)
-!! input
+!! wikitext
 === 
 The line above must have a trailing space!
 === <!--
 --> <!-- -->
 But just in case it doesn't...
-!! result
+!! html
 <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>
@@ -11297,7 +11565,7 @@ But just in case it doesn't...
 
 !! test
 Header with special characters (bug 25462)
-!! input
+!! wikitext
 The tooltips shall not show entities to the user (ie. be double escaped)
 
 == text > text ==
@@ -11314,7 +11582,7 @@ section 4
 
 == text " text ==
 section 5
-!! result
+!! html
 <p>The tooltips shall not show entities to the user (ie. be double escaped)
 </p>
 <div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
@@ -11347,12 +11615,12 @@ section 5
 !! test
 Headers with excess '=' characters
 (Are similar tests necessary beyond the 1st level?)
-!! input
+!! wikitext
 =foo==
 ==foo=
 =''italic'' heading==
 ==''italic'' heading=
-!! result
+!! html
 <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>
@@ -11372,7 +11640,7 @@ Headers with excess '=' characters
 !! test
 HTML headers vs TOC (bug 23393)
 (__NOEDITSECTION__ for clearer output, doesn't matter here)
-!! input
+!! wikitext
 <h1>Header 1</h1>
 == Header 1.1 ==
 == Header 1.2 ==
@@ -11382,7 +11650,7 @@ HTML headers vs TOC (bug 23393)
 == Header 2.1 ==
 == Header 2.2 ==
 __NOEDITSECTION__
-!! result
+!! html
 <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>
@@ -11411,18 +11679,18 @@ __NOEDITSECTION__
 
 !! test
 BUG 1219 URL next to image (broken)
-!! input
+!! wikitext
 http://example.com[[Image:foobar.jpg]]
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a><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>
 </p>
 !!end
 
 !! test
 Bug 1186 news: in the middle of text
-!! input
+!! wikitext
 http://en.wikinews.org/wiki/Wikinews:Workplace
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://en.wikinews.org/wiki/Wikinews:Workplace">http://en.wikinews.org/wiki/Wikinews:Workplace</a>
 </p>
 !!end
@@ -11430,18 +11698,18 @@ http://en.wikinews.org/wiki/Wikinews:Workplace
 
 !! test
 Namespaced link must have a title
-!! input
+!! wikitext
 [[Project:]]
-!! result
+!! html
 <p>[[Project:]]
 </p>
 !!end
 
 !! test
 Namespaced link must have a title (bad fragment version)
-!! input
+!! wikitext
 [[Project:#fragment]]
-!! result
+!! html
 <p>[[Project:#fragment]]
 </p>
 !!end
@@ -11453,45 +11721,45 @@ Namespaced link must have a title (bad fragment version)
 
 !! test
 div with no attributes
-!! input
+!! wikitext
 <div>HTML rocks</div>
-!! result
+!! html
 <div>HTML rocks</div>
 
 !! end
 
 !! test
 div with double-quoted attribute
-!! input
+!! wikitext
 <div id="rock">HTML rocks</div>
-!! result
+!! html
 <div id="rock">HTML rocks</div>
 
 !! end
 
 !! test
 div with single-quoted attribute
-!! input
+!! wikitext
 <div id='rock'>HTML rocks</div>
-!! result
+!! html
 <div id="rock">HTML rocks</div>
 
 !! end
 
 !! test
 div with unquoted attribute
-!! input
+!! wikitext
 <div id=rock>HTML rocks</div>
-!! result
+!! html
 <div id="rock">HTML rocks</div>
 
 !! end
 
 !! test
 div with illegal double attributes
-!! input
+!! wikitext
 <div id="a" id="b">HTML rocks</div>
-!! result
+!! html
 <div id="b">HTML rocks</div>
 
 !!end
@@ -11502,9 +11770,9 @@ div with illegal double attributes
 div with empty attribute value, space before equals
 !! options
 parsoid
-!! input
+!! wikitext
 <div class =>HTML rocks</div>
-!! result
+!! html
 <div class="">HTML rocks</div>
 
 !! end
@@ -11515,9 +11783,9 @@ parsoid
 div with braces in attribute value
 !! options
 parsoid
-!! input
+!! wikitext
 <div title="{}">Foo</div>
-!! result
+!! html
 <div title="{}">Foo</div>
 !! end
 
@@ -11532,29 +11800,29 @@ parsoid
 div with empty attribute value, no space before equals
 !! options
 parsoid
-!! input
+!! wikitext
 <div class=>HTML rocks</div>
-!! result
+!! html
 <div class="">HTML rocks</div>
 
 !! end
 
 !! test
 HTML multiple attributes correction
-!! input
+!! wikitext
 <p class="error" class="awesome">Awesome!</p>
-!! result
+!! html
 <p class="awesome">Awesome!</p>
 
 !!end
 
 !! test
 Table multiple attributes correction
-!! input
+!! wikitext
 {|
 !+ class="error" class="awesome"| status
 |}
-!! result
+!! html
 <table>
 <tr>
 <th class="awesome"> status
@@ -11564,63 +11832,63 @@ Table multiple attributes correction
 
 !! test
 DIV IN UPPERCASE
-!! input
+!! wikitext
 <DIV ID="x">HTML ROCKS</DIV>
-!! result
+!! html
 <div id="x">HTML ROCKS</div>
 
 !!end
 
 !! test
 Non-ASCII pseudo-tags are rendered as text
-!! input
+!! wikitext
 <khyô>
-!! result
+!! html
 <p>&lt;khyô&gt;
 </p>
 !! end
 
 !! test
 Pseudo-tag with URL 'name' renders as url link
-!! input
+!! wikitext
 <http://example.com/>
-!! result
+!! html
 <p>&lt;<a rel="nofollow" class="external free" href="http://example.com/">http://example.com/</a>&gt;
 </p>
 !! end
 
 !! test
 text with amp in the middle of nowhere
-!! input
+!! wikitext
 Remember AT&T?
-!!result
+!! html
 <p>Remember AT&amp;T?
 </p>
 !! end
 
 !! test
 text with character entity: eacute
-!! input
+!! wikitext
 I always thought &eacute; was a cute letter.
-!! result
+!! html
 <p>I always thought &#233; was a cute letter.
 </p>
 !! end
 
 !! test
 text with entity-escaped character entity-like string: eacute
-!! input
+!! wikitext
 I always thought &amp;eacute; was a cute letter.
-!! result
+!! html
 <p>I always thought &amp;eacute; was a cute letter.
 </p>
 !! end
 
 !! test
 text with undefined character entity: xacute
-!! input
+!! wikitext
 I always thought &xacute; was a cute letter.
-!! result
+!! html
 <p>I always thought &amp;xacute; was a cute letter.
 </p>
 !! end
@@ -11630,11 +11898,11 @@ I always thought &xacute; was a cute letter.
 HTML5 tags
 !! options
 parsoid
-!! input
+!! wikitext
 <data value="5">five</data>
 <time datetime="2000-01-01T00:00Z">The new millenium started</time>
 <mark>This highlighted text</mark>
-!! result
+!! html
 <p><data value="5">five</data>
 <time datetime="2000-01-01T00:00Z">The new millenium started</time>
 <mark>This highlighted text</mark></p>
@@ -11642,9 +11910,9 @@ parsoid
 
 !! test
 HTML tag with leading space is parsed as text
-!! input
+!! wikitext
 < div>foo< /div>
-!! result
+!! html
 <p>&lt; div&gt;foo&lt; /div&gt;
 </p>
 !! end
@@ -11658,9 +11926,9 @@ HTML tag with leading space is parsed as text
 # the test case, instead of <big>
 !! test
 Ensure that HTML adoption agency algorithm is properly implemented.
-!! input
+!! wikitext
 <big>X<big>Y</big>Z</big>
-!! result
+!! html
 <p><big>X<big>Y</big>Z</big>
 </p>
 !! end
@@ -11668,9 +11936,9 @@ Ensure that HTML adoption agency algorithm is properly implemented.
 # This was bug 41545 in the PHP parser.
 !! test
 Nesting of <kbd>
-!! input
+!! wikitext
 <kbd>X<kbd>Y</kbd>Z</kbd>
-!! result
+!! html
 <p><kbd>X<kbd>Y</kbd>Z</kbd>
 </p>
 !! end
@@ -11680,45 +11948,45 @@ Nesting of <kbd>
 # not covered; see bug 51081 for discussion.
 !! test
 Nesting of <em>
-!! input
+!! wikitext
 <em>X<em>Y</em>Z</em>
-!! result
+!! html
 <p><em>X<em>Y</em>Z</em>
 </p>
 !! end
 
 !! test
 Nesting of <strong>
-!! input
+!! wikitext
 <strong>X<strong>Y</strong>Z</strong>
-!! result
+!! html
 <p><strong>X<strong>Y</strong>Z</strong>
 </p>
 !! end
 
 !! test
 Nesting of <q>
-!! input
+!! wikitext
 <q>X<q>Y</q>Z</q>
-!! result
+!! html
 <p><q>X<q>Y</q>Z</q>
 </p>
 !! end
 
 !! test
 Nesting of <ruby>
-!! input
+!! wikitext
 <ruby>X<ruby>Y</ruby>Z</ruby>
-!! result
+!! html
 <p><ruby>X<ruby>Y</ruby>Z</ruby>
 </p>
 !! end
 
 !! test
 Nesting of <bdo>
-!! input
+!! wikitext
 <bdo>X<bdo>Y</bdo>Z</bdo>
-!! result
+!! html
 <p><bdo>X<bdo>Y</bdo>Z</bdo>
 </p>
 !! end
@@ -11730,18 +11998,18 @@ Nesting of <bdo>
 
 !! test
 Media link
-!! input
+!! wikitext
 [[Media:Foobar.jpg]]
-!! result
+!! html
 <p><a href="http://example.com/images/3/3a/Foobar.jpg" class="internal" title="Foobar.jpg">Media:Foobar.jpg</a>
 </p>
 !! end
 
 !! test
 Media link with text
-!! input
+!! wikitext
 [[Media:Foobar.jpg|A neat file to look at]]
-!! result
+!! html
 <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
@@ -11750,36 +12018,36 @@ Media link with text
 !! test
 Media link with nasty text
 fixme: doBlockLevels won't wrap this in a paragraph because it contains a div
-!! input
+!! wikitext
 [[Media:Foobar.jpg|Safe Link<div style=display:none>" onmouseover="alert(document.cookie)" onfoo="</div>]]
-!! result
+!! html
 <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
+!! wikitext
 [[Media:No such.jpg]]
-!! result
+!! html
 <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
+!! wikitext
 [[Image:No such.jpg]]
-!! result
+!! html
 <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
+!! wikitext
 [[:Image:No such.jpg]]
-!! result
+!! html
 <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
@@ -11788,9 +12056,9 @@ Image link to nonexistent file (bug 1850 - good)
 
 !! test
 Character reference normalization in link text (bug 1938)
-!! input
+!! wikitext
 [[Main Page|this&that]]
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">this&amp;that</a>
 </p>
 !!end
@@ -11805,13 +12073,13 @@ The page's name is U+05d0 U+05b7, with non-canonical form U+FB2E
 
 !! test
 (bug 19451) Links should refer to the normalized form.
-!! input
+!! wikitext
 [[&#xFB2E;]]
 [[&#x5d0;&#x5b7;]]
 [[&#x5d0;ַ]]
 [[א&#x5b7;]]
 [[אַ]]
-!! result
+!! html
 <p><a href="/wiki/%D7%90%D6%B7" title="אַ">&#xfb2e;</a>
 <a href="/wiki/%D7%90%D6%B7" title="אַ">&#x5d0;&#x5b7;</a>
 <a href="/wiki/%D7%90%D6%B7" title="אַ">&#x5d0;ַ</a>
@@ -11822,81 +12090,81 @@ The page's name is U+05d0 U+05b7, with non-canonical form U+FB2E
 
 !! test
 Empty attribute crash test (bug 2067)
-!! input
+!! wikitext
 <font color="">foo</font>
-!! result
+!! html
 <p><font color="">foo</font>
 </p>
 !! end
 
 !! test
 Empty attribute crash test single-quotes (bug 2067)
-!! input
+!! wikitext
 <font color=''>foo</font>
-!! result
+!! html
 <p><font color="">foo</font>
 </p>
 !! end
 
 !! test
 Attribute test: equals, then nothing
-!! input
+!! wikitext
 <font color=>foo</font>
-!! result
+!! html
 <p><font>foo</font>
 </p>
 !! end
 
 !! test
 Attribute test: unquoted value
-!! input
+!! wikitext
 <font color=x>foo</font>
-!! result
+!! html
 <p><font color="x">foo</font>
 </p>
 !! end
 
 !! test
 Attribute test: unquoted but illegal value (hash)
-!! input
+!! wikitext
 <font color=#x>foo</font>
-!! result
+!! html
 <p><font color="#x">foo</font>
 </p>
 !! end
 
 !! test
 Attribute test: no value
-!! input
+!! wikitext
 <font color>foo</font>
-!! result
+!! html
 <p><font color="color">foo</font>
 </p>
 !! end
 
 !! test
 Bug 2095: link with three closing brackets
-!! input
+!! wikitext
 [[Main Page]]]
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>]
 </p>
 !! end
 
 !! test
 Bug 2095: link with pipe and three closing brackets
-!! input
+!! wikitext
 [[Main Page|link]]]
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">link</a>]
 </p>
 !! end
 
 !! test
 Bug 2095: link with pipe and three closing brackets, version 2
-!! input
+!! wikitext
 [[Main Page|[http://example.com/]]]
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">[http://example.com/]</a>
 </p>
 !! end
@@ -11926,90 +12194,90 @@ Template:Div style
 
 !! test
 Bug 2304: HTML attribute safety (safe template; regression bug 2309)
-!! input
+!! wikitext
 <div title="{{test}}"></div>
-!! result
+!! html
 <div title="This is a test template"></div>
 
 !! end
 
 !! test
 Bug 2304: HTML attribute safety (dangerous template; 2309)
-!! input
+!! wikitext
 <div title="{{dangerous attribute}}"></div>
-!! result
+!! html
 <div title=""></div>
 
 !! end
 
 !! test
 Bug 2304: HTML attribute safety (dangerous style template; 2309)
-!! input
+!! wikitext
 <div style="{{dangerous style attribute}}"></div>
-!! result
+!! html
 <div style="/* insecure input */"></div>
 
 !! end
 
 !! test
 Bug 2304: HTML attribute safety (safe parameter; 2309)
-!! input
+!! wikitext
 {{div style|width: 200px}}
-!! result
+!! html
 <div style="float: right; width: 200px">Magic div</div>
 
 !! end
 
 !! test
 Bug 2304: HTML attribute safety (unsafe parameter; 2309)
-!! input
+!! wikitext
 {{div style|width: expression(alert(document.cookie))}}
-!! result
+!! html
 <div style="/* insecure input */">Magic div</div>
 
 !! end
 
 !! test
 Bug 2304: HTML attribute safety (unsafe breakout parameter; 2309)
-!! input
+!! wikitext
 {{div style|"><script>alert(document.cookie)</script>}}
-!! result
+!! html
 <div style="float: right;">&lt;script&gt;alert(document.cookie)&lt;/script&gt;"&gt;Magic div</div>
 
 !! end
 
 !! test
 Bug 2304: HTML attribute safety (unsafe breakout parameter 2; 2309)
-!! input
+!! wikitext
 {{div style|" ><script>alert(document.cookie)</script>}}
-!! result
+!! html
 <div style="float: right;">&lt;script&gt;alert(document.cookie)&lt;/script&gt;"&gt;Magic div</div>
 
 !! end
 
 !! test
 Bug 2304: HTML attribute safety (link)
-!! input
+!! wikitext
 <div title="[[Main Page]]"></div>
-!! result
+!! html
 <div title="&#91;&#91;Main Page]]"></div>
 
 !! end
 
 !! test
 Bug 2304: HTML attribute safety (italics)
-!! input
+!! wikitext
 <div title="''foobar''"></div>
-!! result
+!! html
 <div title="&#39;&#39;foobar&#39;&#39;"></div>
 
 !! end
 
 !! test
 Bug 2304: HTML attribute safety (bold)
-!! input
+!! wikitext
 <div title="'''foobar'''"></div>
-!! result
+!! html
 <div title="&#39;&#39;&#39;foobar&#39;&#39;&#39;"></div>
 
 !! end
@@ -12017,63 +12285,63 @@ Bug 2304: HTML attribute safety (bold)
 
 !! test
 Bug 2304: HTML attribute safety (ISBN)
-!! input
+!! wikitext
 <div title="ISBN 1234567890"></div>
-!! result
+!! html
 <div title="&#73;SBN 1234567890"></div>
 
 !! end
 
 !! test
 Bug 2304: HTML attribute safety (RFC)
-!! input
+!! wikitext
 <div title="RFC 1234"></div>
-!! result
+!! html
 <div title="&#82;FC 1234"></div>
 
 !! end
 
 !! test
 Bug 2304: HTML attribute safety (PMID)
-!! input
+!! wikitext
 <div title="PMID 1234567890"></div>
-!! result
+!! html
 <div title="&#80;MID 1234567890"></div>
 
 !! end
 
 !! test
 Bug 2304: HTML attribute safety (web link)
-!! input
+!! wikitext
 <div title="http://example.com/"></div>
-!! result
+!! html
 <div title="http&#58;//example.com/"></div>
 
 !! end
 
 !! test
 Bug 2304: HTML attribute safety (named web link)
-!! input
+!! wikitext
 <div title="[http://example.com/ link]"></div>
-!! result
+!! html
 <div title="&#91;http&#58;//example.com/ link]"></div>
 
 !! end
 
 !! test
 Bug 3244: HTML attribute safety (extension; safe)
-!! input
+!! wikitext
 <div style="<nowiki>background:blue</nowiki>"></div>
-!! result
+!! html
 <div style="background:blue"></div>
 
 !! end
 
 !! test
 Bug 3244: HTML attribute safety (extension; unsafe)
-!! input
+!! wikitext
 <div style="<nowiki>border-left:expression(alert(document.cookie))</nowiki>"></div>
-!! result
+!! html
 <div style="/* insecure input */"></div>
 
 !! end
@@ -12082,55 +12350,55 @@ Bug 3244: HTML attribute safety (extension; unsafe)
 
 !! test
 MSIE CSS safety test: spurious slash
-!! input
+!! wikitext
 <div style="background-image:u\rl(javascript:alert('boo'))">evil</div>
-!! result
+!! html
 <div style="/* insecure input */">evil</div>
 
 !! end
 
 !! test
 MSIE CSS safety test: hex code
-!! input
+!! wikitext
 <div style="background-image:u\72l(javascript:alert('boo'))">evil</div>
-!! result
+!! html
 <div style="/* insecure input */">evil</div>
 
 !! end
 
 !! test
 MSIE CSS safety test: comment in url
-!! input
+!! wikitext
 <div style="background-image:u/**/rl(javascript:alert('boo'))">evil</div>
-!! result
+!! html
 <div style="background-image:u rl(javascript:alert(&#39;boo&#39;))">evil</div>
 
 !! end
 
 !! test
 MSIE CSS safety test: comment in expression
-!! input
+!! wikitext
 <div style="background-image:expres/**/sion(alert('boo4'))">evil4</div>
-!! result
+!! html
 <div style="background-image:expres sion(alert(&#39;boo4&#39;))">evil4</div>
 
 !! end
 
 !! test
 CSS safety test (all browsers): vertical tab (bug 55332 / CVE-2013-4567)
-!! input
+!! wikitext
 <p style="font-size: 100px; background-image:url\b(https://www.google.com/images/srpr/logo6w.png)">A</p>
-!! result
+!! html
 <p style="/* invalid control char */">A</p>
 
 !! end
 
 !! test
 MSIE 6 CSS safety test: Fullwidth (bug 55332)
-!! input
+!! wikitext
 <p style="font-size: 100px; color: expression((title='XSSed'),'red')">A</p>
 <div style="top:EXPRESSION(alert())">B</div>
-!! result
+!! html
 <p style="/* insecure input */">A</p>
 <div style="/* insecure input */">B</div>
 
@@ -12138,10 +12406,10 @@ MSIE 6 CSS safety test: Fullwidth (bug 55332)
 
 !! test
 MSIE 6 CSS safety test: IPA extensions (bug 55332)
-!! input
+!! wikitext
 <div style="background-image:uʀʟ(javascript:alert())">A</div>
 <p style="font-size: 100px; color: expʀessɪoɴ((title='XSSed'),'red')">B</p>
-!! result
+!! html
 <div style="/* insecure input */">A</div>
 <p style="/* insecure input */">B</p>
 
@@ -12149,11 +12417,11 @@ MSIE 6 CSS safety test: IPA extensions (bug 55332)
 
 !! test
 MSIE 6 CSS safety test: sup/sub script (bug 55332)
-!! input
+!! wikitext
 <div style="background-image:url⁽javascript:alert())">A</div>
 <div style="background-image:url₍javascript:alert())">B</div>
 <p style="font-size: 100px; color: expressioⁿ((title='XSSed'),'red')">C</p>
-!! result
+!! html
 <div style="/* insecure input */">A</div>
 <div style="/* insecure input */">B</div>
 <p style="/* insecure input */">C</p>
@@ -12162,18 +12430,18 @@ MSIE 6 CSS safety test: sup/sub script (bug 55332)
 
 !! test
 Opera -o-link CSS
-!! input
+!! wikitext
 <div
 title="&#100;&#97;&#116;&#97;&#58;&#116;&#101;&#120;&#116;&#47;&#104;&#116;&#109;&#108;&#44;&#60;&#105;&#109;&#103;&#32;&#115;&#114;&#99;&#61;&#49;&#32;&#111;&#110;&#101;&#114;&#114;&#111;&#114;&#61;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;&#62;"
 style="-o-link:attr(title);-o-link-source:current">X</div>
-!! result
+!! html
 <div title="data:text/html,&lt;img src=1 onerror=alert(1)&gt;" style="/* insecure input */">X</div>
 
 !! end
 
 !! test
 MSIE 6 CSS safety test: Repetition markers (bug 55332)
-!! input
+!! wikitext
 <p style="font-size: 100px; color: expres〱ion((title='XSSed'),'red')">A</p>
 <p style="font-size: 100px; color: expresゝion((title='XSSed'),'red')">B</p>
 <p style="font-size: 100px; color: expresーion((title='XSSed'),'red')">C</p>
@@ -12181,7 +12449,7 @@ MSIE 6 CSS safety test: Repetition markers (bug 55332)
 <p style="font-size: 100px; color: expresﹽion((title='XSSed'),'red')">E</p>
 <p style="font-size: 100px; color: expresﹼion((title='XSSed'),'red')">F</p>
 <p style="font-size: 100px; color: expresーion((title='XSSed'),'red')">G</p>
-!! result
+!! html
 <p style="/* insecure input */">A</p>
 <p style="/* insecure input */">B</p>
 <p style="/* insecure input */">C</p>
@@ -12194,11 +12462,11 @@ MSIE 6 CSS safety test: Repetition markers (bug 55332)
 
 !! test
 Table attribute legitimate extension
-!! input
+!! wikitext
 {|
 !+ style="<nowiki>color:blue</nowiki>"| status
 |}
-!! result
+!! html
 <table>
 <tr>
 <th style="color:blue"> status
@@ -12208,11 +12476,11 @@ Table attribute legitimate extension
 
 !! test
 Table attribute safety
-!! input
+!! wikitext
 {|
 !+ style="<nowiki>border-width:expression(0+alert(document.cookie))</nowiki>"| status
 |}
-!! result
+!! html
 <table>
 <tr>
 <th style="/* insecure input */"> status
@@ -12222,18 +12490,18 @@ Table attribute safety
 
 !! test
 CSS line continuation 1
-!! input
+!! wikitext
 <div style="background-image: u\&#10;rl(test.jpg);"></div>
-!! result
+!! html
 <div style="/* insecure input */"></div>
 
 !! end
 
 !! test
 CSS line continuation 2
-!! input
+!! wikitext
 <div style="background-image: u\&#13;rl(test.jpg); "></div>
-!! result
+!! html
 <div style="/* insecure input */"></div>
 
 !! end
@@ -12246,9 +12514,9 @@ Template:Identity
 
 !! test
 Expansion of multi-line templates in attribute values (bug 6255)
-!! input
+!! wikitext
 <div style="background: {{identity|#00FF00}}">-</div>
-!! result
+!! html
 <div style="background: #00FF00">-</div>
 
 !! end
@@ -12256,19 +12524,19 @@ Expansion of multi-line templates in attribute values (bug 6255)
 
 !! test
 Expansion of multi-line templates in attribute values (bug 6255 sanity check)
-!! input
+!! wikitext
 <div style="background: 
 #00FF00">-</div>
-!! result
+!! html
 <div style="background: #00FF00">-</div>
 
 !! end
 
 !! test
 Expansion of multi-line templates in attribute values (bug 6255 sanity check 2)
-!! input
+!! wikitext
 <div style="background: &#10;#00FF00">-</div>
-!! result
+!! html
 <div style="background: &#10;#00FF00">-</div>
 
 !! end
@@ -12278,9 +12546,9 @@ Expansion of multi-line templates in attribute values (bug 6255 sanity check 2)
 ###
 !! test
 Parser hook: empty input
-!! input
+!! wikitext
 <tag></tag>
-!! result
+!! html
 <pre>
 ''
 array (
@@ -12291,9 +12559,9 @@ array (
 
 !! test
 Parser hook: empty input using terminated empty elements
-!! input
+!! wikitext
 <tag/>
-!! result
+!! html
 <pre>
 NULL
 array (
@@ -12304,9 +12572,9 @@ array (
 
 !! test
 Parser hook: empty input using terminated empty elements (space before)
-!! input
+!! wikitext
 <tag />
-!! result
+!! html
 <pre>
 NULL
 array (
@@ -12317,9 +12585,9 @@ array (
 
 !! test
 Parser hook: basic input
-!! input
+!! wikitext
 <tag>input</tag>
-!! result
+!! html
 <pre>
 'input'
 array (
@@ -12331,9 +12599,9 @@ array (
 
 !! test
 Parser hook: case insensitive
-!! input
+!! wikitext
 <TAG>input</TAG>
-!! result
+!! html
 <pre>
 'input'
 array (
@@ -12345,9 +12613,9 @@ array (
 
 !! test
 Parser hook: case insensitive, redux
-!! input
+!! wikitext
 <TaG>input</TAg>
-!! result
+!! html
 <pre>
 'input'
 array (
@@ -12360,9 +12628,9 @@ array (
 Parser hook: nested tags
 !! options
 noxml
-!! input
+!! wikitext
 <tag><tag></tag></tag>
-!! result
+!! html
 <pre>
 '<tag>'
 array (
@@ -12373,9 +12641,9 @@ array (
 
 !! test
 Parser hook: basic arguments
-!! input
+!! wikitext
 <tag width=200 height = "100" depth = '50' square></tag>
-!! result
+!! html
 <pre>
 ''
 array (
@@ -12390,9 +12658,9 @@ array (
 
 !! test
 Parser hook: argument containing a forward slash (bug 5344)
-!! input
+!! wikitext
 <tag filename='/tmp/bla'></tag>
-!! result
+!! html
 <pre>
 ''
 array (
@@ -12404,9 +12672,9 @@ array (
 
 !! test
 Parser hook: empty input using terminated empty elements (bug 2374)
-!! input
+!! wikitext
 <tag foo=bar/>text
-!! result
+!! html
 <pre>
 NULL
 array (
@@ -12419,11 +12687,11 @@ array (
 # </tag> should be output literally since there is no matching tag that begins it
 !! test
 Parser hook: basic arguments using terminated empty elements (bug 2374)
-!! input
+!! wikitext
 <tag width=200 height = "100" depth = '50' square/>
 other stuff
 </tag>
-!! result
+!! html
 <pre>
 NULL
 array (
@@ -12444,10 +12712,10 @@ array (
 
 !! test
 Parser hook: static parser hook not inside a comment
-!! input
+!! wikitext
 <statictag>hello, world</statictag>
 <statictag action=flush/>
-!! result
+!! html
 <p>hello, world
 </p>
 !! end
@@ -12455,10 +12723,10 @@ Parser hook: static parser hook not inside a comment
 
 !! test
 Parser hook: static parser hook inside a comment
-!! input
+!! wikitext
 <!-- <statictag>hello, world</statictag> -->
 <statictag action=flush/>
-!! result
+!! html
 <p><br />
 </p>
 !! end
@@ -12480,9 +12748,9 @@ Template:Map-one-parameter
 
 !! test
 Nested template calls
-!! input
+!! wikitext
 {{Map-one-parameter|One-parameter|param}}
-!! result
+!! html
 <p>(My parameter is: param)
 </p>
 !! end
@@ -12493,45 +12761,45 @@ Nested template calls
 ###
 !! test
 Sanitizer: Closing of open tags
-!! input
+!! wikitext
 <s></s><table></table>
-!! result
+!! html
 <s></s><table></table>
 
 !! end
 
 !! test
 Sanitizer: Closing of open but not closed tags
-!! input
+!! wikitext
 <s>foo
-!! result
+!! html
 <p><s>foo</s>
 </p>
 !! end
 
 !! test
 Sanitizer: Closing of closed but not open tags
-!! input
+!! wikitext
 </s>
-!! result
+!! html
 <p>&lt;/s&gt;
 </p>
 !! end
 
 !! test
 Sanitizer: Closing of closed but not open table tags
-!! input
+!! wikitext
 Table not started</td></tr></table>
-!! result
+!! html
 <p>Table not started&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
 </p>
 !! end
 
 !! test
 Sanitizer: Escaping of spaces, multibyte characters, colons & other stuff in id=""
-!! input
+!! wikitext
 <span id="æ: v">byte</span>[[#æ: v|backlink]]
-!! result
+!! html
 <p><span id=".C3.A6:_v">byte</span><a href="#.C3.A6:_v">backlink</a>
 </p>
 !! end
@@ -12540,9 +12808,9 @@ Sanitizer: Escaping of spaces, multibyte characters, colons & other stuff in id=
 Sanitizer: Validating the contents of the id attribute (bug 4515)
 !! options
 disabled
-!! input
+!! wikitext
 <br id=9 />
-!! result
+!! html
 Something, but definitely not <br id="9" />...
 !! end
 
@@ -12550,15 +12818,15 @@ Something, but definitely not <br id="9" />...
 Sanitizer: Validating id attribute uniqueness (bug 4515, bug 6301)
 !! options
 disabled
-!! input
+!! wikitext
 <br id="foo" /><br id="foo" />
-!! result
+!! html
 Something need to be done. foo-2 ? 
 !! end
 
 !! test
 Sanitizer: Validating that <meta> and <link> work, but only for Microdata
-!! input
+!! wikitext
 <div itemscope>
        <meta itemprop="hello" content="world">
        <meta http-equiv="refresh" content="5">
@@ -12567,7 +12835,7 @@ Sanitizer: Validating that <meta> and <link> work, but only for Microdata
        <link rel="stylesheet" href="{{SERVER}}">
        <link rel="stylesheet" itemprop="hello" href="{{SERVER}}">
 </div>
-!! result
+!! html
 <div itemscope="itemscope">
 <p>    <meta itemprop="hello" content="world" />
        &lt;meta http-equiv="refresh" content="5"&gt;
@@ -12584,7 +12852,7 @@ Sanitizer: Validating that <meta> and <link> work, but only for Microdata
 Language converter: output gets cut off unexpectedly (bug 5757)
 !! options
 language=zh
-!! input
+!! wikitext
 this bit is safe: }-
 
 but if we add a conversion instance: -{zh-cn:xxx;zh-tw:yyy}-
@@ -12592,7 +12860,7 @@ but if we add a conversion instance: -{zh-cn:xxx;zh-tw:yyy}-
 then we get cut off here: }-
 
 all additional text is vanished
-!! result
+!! html
 <p>this bit is safe: }-
 </p><p>but if we add a conversion instance: xxx
 </p><p>then we get cut off here: }-
@@ -12603,10 +12871,10 @@ all additional text is vanished
 !! test
 Self closed html pairs (bug 5487)
 !! options
-!! input
+!! wikitext
 <center><font id="bug" />Centered text</center>
 <div><font id="bug2" />In div text</div>
-!! result
+!! html
 <center>&lt;font id="bug" /&gt;Centered text</center>
 <div>&lt;font id="bug2" /&gt;In div text</div>
 
@@ -12618,27 +12886,27 @@ Self closed html pairs (bug 5487)
 
 !! test
 Punctuation: nbsp before exclamation
-!! input
+!! wikitext
 C'est grave !
-!! result
+!! html
 <p>C'est grave&#160;!
 </p>
 !! end
 
 !! test
 Punctuation: CSS !important (bug 11874)
-!! input
+!! wikitext
 <div style="width:50% !important">important</div>
-!! result
+!! html
 <div style="width:50% !important">important</div>
 
 !!end
 
 !! test
 Punctuation: CSS ! important (bug 11874; with space after)
-!! input
+!! wikitext
 <div style="width:50% ! important">important</div>
-!! result
+!! html
 <div style="width:50% ! important">important</div>
 
 !!end
@@ -12646,12 +12914,12 @@ Punctuation: CSS ! important (bug 11874; with space after)
 
 !! test
 HTML bullet list, closed tags (bug 5497)
-!! input
+!! wikitext
 <ul>
 <li>One</li>
 <li>Two</li>
 </ul>
-!! result
+!! html
 <ul>
 <li>One</li>
 <li>Two</li>
@@ -12663,12 +12931,12 @@ HTML bullet list, closed tags (bug 5497)
 HTML bullet list, unclosed tags (bug 5497)
 !! options
 disabled
-!! input
+!! wikitext
 <ul>
 <li>One
 <li>Two
 </ul>
-!! result
+!! html
 <ul>
 <li>One
 </li>
@@ -12680,12 +12948,12 @@ disabled
 
 !! test
 HTML ordered list, closed tags (bug 5497)
-!! input
+!! wikitext
 <ol>
 <li>One</li>
 <li>Two</li>
 </ol>
-!! result
+!! html
 <ol>
 <li>One</li>
 <li>Two</li>
@@ -12697,12 +12965,12 @@ HTML ordered list, closed tags (bug 5497)
 HTML ordered list, unclosed tags (bug 5497)
 !! options
 disabled
-!! input
+!! wikitext
 <ol>
 <li>One
 <li>Two
 </ol>
-!! result
+!! html
 <ol>
 <li>One
 </li>
@@ -12714,7 +12982,7 @@ disabled
 
 !! test
 HTML nested bullet list, closed tags (bug 5497)
-!! input
+!! wikitext
 <ul>
 <li>One</li>
 <li>Two:
@@ -12724,7 +12992,7 @@ HTML nested bullet list, closed tags (bug 5497)
 </ul>
 </li>
 </ul>
-!! result
+!! html
 <ul>
 <li>One</li>
 <li>Two:
@@ -12741,7 +13009,7 @@ HTML nested bullet list, closed tags (bug 5497)
 HTML nested bullet list, open tags (bug 5497)
 !! options
 disabled
-!! input
+!! wikitext
 <ul>
 <li>One
 <li>Two:
@@ -12750,7 +13018,7 @@ disabled
 <li>Sub-two
 </ul>
 </ul>
-!! result
+!! html
 <ul>
 <li>One
 </li>
@@ -12768,7 +13036,7 @@ disabled
 
 !! test
 HTML nested ordered list, closed tags (bug 5497)
-!! input
+!! wikitext
 <ol>
 <li>One</li>
 <li>Two:
@@ -12778,7 +13046,7 @@ HTML nested ordered list, closed tags (bug 5497)
 </ol>
 </li>
 </ol>
-!! result
+!! html
 <ol>
 <li>One</li>
 <li>Two:
@@ -12795,7 +13063,7 @@ HTML nested ordered list, closed tags (bug 5497)
 HTML nested ordered list, open tags (bug 5497)
 !! options
 disabled
-!! input
+!! wikitext
 <ol>
 <li>One
 <li>Two:
@@ -12804,7 +13072,7 @@ disabled
 <li>Sub-two
 </ol>
 </ol>
-!! result
+!! html
 <ol>
 <li>One
 </li>
@@ -12822,10 +13090,10 @@ disabled
 
 !! test
 HTML ordered list item with parameters oddity
-!! input
+!! wikitext
 <ol><li id="fragment">One</li>
 </ol>
-!! result
+!! html
 <ol><li id="fragment">One</li>
 </ol>
 
@@ -12833,7 +13101,7 @@ HTML ordered list item with parameters oddity
 
 !!test
 bug 5918: autonumbering
-!! input
+!! wikitext
 [http://first/] [http://second] [ftp://ftp]
 
 ftp://inlineftp
@@ -12843,7 +13111,7 @@ ftp://inlineftp
 [mailto:enclosed@mail.tld]
 
 mailto:inline@mail.tld
-!! result
+!! html
 <p><a rel="nofollow" class="external autonumber" href="http://first/">[1]</a> <a rel="nofollow" class="external autonumber" href="http://second">[2]</a> <a rel="nofollow" class="external autonumber" href="ftp://ftp">[3]</a>
 </p><p><a rel="nofollow" class="external free" href="ftp://inlineftp">ftp://inlineftp</a>
 </p><p><a rel="nofollow" class="external text" href="mailto:enclosed@mail.tld">With target</a>
@@ -12860,10 +13128,10 @@ mailto:inline@mail.tld
 
 !! test
 Fuzz testing: Parser13
-!! input
+!! wikitext
 {| 
 | http://a|
-!! result
+!! html
 <table>
 <tr>
 <td>
@@ -12875,10 +13143,10 @@ Fuzz testing: Parser13
 
 !! test
 Fuzz testing: Parser14
-!! input
+!! wikitext
 == onmouseover= ==
 http://__TOC__
-!! result
+!! html
 <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>
@@ -12891,10 +13159,10 @@ http://<div id="toc" class="toc"><div id="toctitle"><h2>Contents</h2></div>
 
 !! test
 Fuzz testing: Parser14-table
-!! input
+!! wikitext
 ==a==
 {| STYLE=__TOC__
-!! result
+!! html
 <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>
@@ -12907,10 +13175,10 @@ Fuzz testing: Parser14-table
 Fuzz testing: Parser16
 !! options
 noxml
-!! input
+!! wikitext
 {|
 !https://||||||
-!! result
+!! html
 <table>
 <tr>
 <th>https://</th>
@@ -12925,11 +13193,11 @@ noxml
 
 !! test
 Fuzz testing: Parser21
-!! input
+!! wikitext
 {|
 ! irc://{{ftp://a" onmouseover="alert('hello world');"
 |
-!! result
+!! html
 <table>
 <tr>
 <th> <a rel="nofollow" class="external free" href="irc://{{ftp://a">irc://{{ftp://a</a>" onmouseover="alert('hello world');"
@@ -12943,11 +13211,11 @@ Fuzz testing: Parser21
 
 !! test
 Fuzz testing: Parser22
-!! input
+!! wikitext
 http://===r:::https://b
 
 {|
-!!result
+!! html
 <p><a rel="nofollow" class="external free" href="http://===r:::https://b">http://===r:::https://b</a>
 </p>
 <table>
@@ -12961,7 +13229,7 @@ http://===r:::https://b
 Fuzz testing: Parser24
 !! options
 noxml
-!! input
+!! wikitext
 {|
 {{{|
 <u CLASS=
@@ -12970,7 +13238,7 @@ noxml
 
 MOVE YOUR MOUSE CURSOR OVER THIS TEXT
 |
-!! result
+!! html
 <table>
 {{{|
 <u class="&#124;">}}}} &gt;
@@ -12995,13 +13263,13 @@ MOVE YOUR MOUSE CURSOR OVER THIS TEXT
 # }}}blah" onmouseover="alert('hello world');" align="left"<b>MOVE MOUSE CURSOR OVER HERE</b>
 !!test
 Fuzz testing: Parser25 (bug 6055)
-!! input
+!! wikitext
 {{{
 | 
 <LI CLASS=||
  >
 }}}blah" onmouseover="alert('hello world');" align="left"'''MOVE MOUSE CURSOR OVER HERE
-!! result
+!! html
 <p>&lt;LI CLASS=blah" onmouseover="alert('hello world');" align="left"<b>MOVE MOUSE CURSOR OVER HERE</b>
 </p>
 !! end
@@ -13009,9 +13277,9 @@ Fuzz testing: Parser25 (bug 6055)
 !!test
 Fuzz testing: URL adjacent extension (with space, clean)
 !! options
-!! input
+!! wikitext
 http://example.com <nowiki>junk</nowiki>
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a> junk
 </p>
 !!end
@@ -13019,9 +13287,9 @@ http://example.com <nowiki>junk</nowiki>
 !!test
 Fuzz testing: URL adjacent extension (no space, dirty; nowiki)
 !! options
-!! input
+!! wikitext
 http://example.com<nowiki>junk</nowiki>
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://example.com">http://example.com</a>junk
 </p>
 !!end
@@ -13029,27 +13297,29 @@ http://example.com<nowiki>junk</nowiki>
 !!test
 Fuzz testing: URL adjacent extension (no space, dirty; pre)
 !! options
-!! input
+!! wikitext
 http://example.com<pre>junk</pre>
-!! result
+!! html
 <a rel="nofollow" class="external free" href="http://example.com">http://example.com</a><pre>junk</pre>
 
 !!end
 
 !!test
 Fuzz testing: image with bogus manual thumbnail
-!!input
+!! wikitext
 [[Image:foobar.jpg|thumbnail= ]]
-!!result
+!! html/php
 <div class="thumb tright"><div class="thumbinner" style="width:182px;">Error creating thumbnail:   <div class="thumbcaption"></div></div></div>
 
+!! html/parsoid
+<meta typeof="mw:Placeholder" data-parsoid='{"src":"[[Image:foobar.jpg|thumbnail= ]]","optList":[{"ck":"manualthumb","ak":"thumbnail= "}],"dsr":[0,32,null,null]}'/>
 !!end
 
 !! test
 Fuzz testing: encoded newline in generated HTML replacements (bug 6577)
-!! input
+!! wikitext
 <pre dir="&#10;"></pre>
-!! result
+!! html
 <pre dir="&#10;"></pre>
 
 !! end
@@ -13057,7 +13327,7 @@ Fuzz testing: encoded newline in generated HTML replacements (bug 6577)
 !! test
 Parsing optional HTML elements (Bug 6171)
 !! options
-!! input
+!! wikitext
 <table>
   <tr>
     <td> Some tabular data</td>
@@ -13065,7 +13335,7 @@ Parsing optional HTML elements (Bug 6171)
     <td> And yet som tabular data</td>
   </tr>
 </table>
-!! result
+!! html
 <table>
   <tr>
     <td> Some tabular data</td>
@@ -13079,7 +13349,7 @@ Parsing optional HTML elements (Bug 6171)
 !! test
 Correct handling of <td>, <tr> (Bug 6171)
 !! options
-!! input
+!! wikitext
 <table>
   <tr>
     <td> Some tabular data</td>
@@ -13087,7 +13357,7 @@ Correct handling of <td>, <tr> (Bug 6171)
     <td> And yet som tabular data</td>
   </tr>
 </table>
-!! result
+!! html
 <table>
   <tr>
     <td> Some tabular data</td>
@@ -13101,20 +13371,20 @@ Correct handling of <td>, <tr> (Bug 6171)
 
 !! test
 Parsing crashing regression (fr:JavaScript)
-!! input
+!! wikitext
 </body></x>
-!! result
+!! html
 <p>&lt;/body&gt;&lt;/x&gt;
 </p>
 !! end
 
 !! test
 Inline wiki vs wiki block nesting
-!! input
+!! wikitext
 '''Bold paragraph
 
 New wiki paragraph
-!! result
+!! html
 <p><b>Bold paragraph</b>
 </p><p>New wiki paragraph
 </p>
@@ -13124,11 +13394,11 @@ New wiki paragraph
 Inline HTML vs wiki block nesting
 !! options
 disabled
-!! input
+!! wikitext
 <b>Bold paragraph
 
 New wiki paragraph
-!! result
+!! html
 <p><b>Bold paragraph</b>
 </p><p>New wiki paragraph
 </p>
@@ -13143,9 +13413,9 @@ New wiki paragraph
 !!test
 Mixing markup for italics and bold
 !! options
-!! input
+!! wikitext
 '''bold''''''bold''bolditalics'''''
-!! result
+!! html
 <p>'<i>bold'</i><b>bold<i>bolditalics</i></b>
 </p>
 !! end
@@ -13160,66 +13430,66 @@ Article for special page transclusion test
 !! test
 Special page transclusion
 !! options
-!! input
+!! wikitext
 {{Special:Prefixindex/Xyzzyx}}
-!! result
-<table id="mw-prefixindex-list-table"><tr><td><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></td></tr></table>
+!! html
+<table class="mw-prefixindex-list-table"><tr><td><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></td></tr></table>
 
 !! end
 
 !! test
 Special page transclusion twice (bug 5021)
 !! options
-!! input
+!! wikitext
 {{Special:Prefixindex/Xyzzyx}}
 {{Special:Prefixindex/Xyzzyx}}
-!! result
-<table id="mw-prefixindex-list-table"><tr><td><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></td></tr></table>
-<table id="mw-prefixindex-list-table"><tr><td><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></td></tr></table>
+!! html
+<table class="mw-prefixindex-list-table"><tr><td><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></td></tr></table>
+<table class="mw-prefixindex-list-table"><tr><td><a href="/wiki/Xyzzyx" title="Xyzzyx">Xyzzyx</a></td></tr></table>
 
 !! end
 
 !! test
 Transclusion of default MediaWiki message
-!! input
+!! wikitext
 {{MediaWiki:Mainpage}}
-!!result
+!! html
 <p>Main Page
 </p>
 !! end
 
 !! test
 Transclusion of nonexistent MediaWiki message
-!! input
+!! wikitext
 {{MediaWiki:Mainpagexxx}}
-!!result
+!! html
 <p><a href="/index.php?title=MediaWiki:Mainpagexxx&amp;action=edit&amp;redlink=1" class="new" title="MediaWiki:Mainpagexxx (page does not exist)">MediaWiki:Mainpagexxx</a>
 </p>
 !! end
 
 !! test
 Transclusion of MediaWiki message with underscore
-!! input
+!! wikitext
 {{MediaWiki:history_short}}
-!! result
+!! html
 <p>History
 </p>
 !! end
 
 !! test
 Transclusion of MediaWiki message with space
-!! input
+!! wikitext
 {{MediaWiki:history short}}
-!! result
+!! html
 <p>History
 </p>
 !! end
 
 !! test
 Invalid header with following text
-!! input
+!! wikitext
 = x = y
-!! result
+!! html
 <p>= x = y
 </p>
 !! end
@@ -13229,7 +13499,7 @@ Invalid header with following text
 Section extraction test (section 0)
 !! options
 section=0
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13241,7 +13511,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 start
 !! end
 
@@ -13249,7 +13519,7 @@ start
 Section extraction test (section 1)
 !! options
 section=1
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13261,7 +13531,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 ==a==
 ===aa===
 ====aaa====
@@ -13271,7 +13541,7 @@ start
 Section extraction test (section 2)
 !! options
 section=2
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13283,7 +13553,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 ===aa===
 ====aaa====
 !! end
@@ -13292,7 +13562,7 @@ start
 Section extraction test (section 3)
 !! options
 section=3
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13304,7 +13574,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 ====aaa====
 !! end
 
@@ -13312,7 +13582,7 @@ start
 Section extraction test (section 4)
 !! options
 section=4
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13324,7 +13594,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 ==b==
 ===ba===
 ===bb===
@@ -13336,7 +13606,7 @@ start
 Section extraction test (section 5)
 !! options
 section=5
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13348,7 +13618,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 ===ba===
 !! end
 
@@ -13356,7 +13626,7 @@ start
 Section extraction test (section 6)
 !! options
 section=6
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13368,7 +13638,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 ===bb===
 ====bba====
 !! end
@@ -13377,7 +13647,7 @@ start
 Section extraction test (section 7)
 !! options
 section=7
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13389,7 +13659,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 ====bba====
 !! end
 
@@ -13397,7 +13667,7 @@ start
 Section extraction test (section 8)
 !! options
 section=8
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13409,7 +13679,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 ===bc===
 !! end
 
@@ -13417,7 +13687,7 @@ start
 Section extraction test (section 9)
 !! options
 section=9
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13429,7 +13699,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 ==c==
 ===ca===
 !! end
@@ -13438,7 +13708,7 @@ start
 Section extraction test (section 10)
 !! options
 section=10
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13450,7 +13720,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 ===ca===
 !! end
 
@@ -13458,7 +13728,7 @@ start
 Section extraction test (nonexistent section 11)
 !! options
 section=11
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13470,18 +13740,18 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 !! end
 
 !! test
 Section extraction test with bogus heading (section 1)
 !! options
 section=1
-!! input
+!! wikitext
 ==a==
 ==bogus== not a legal section
 ==b==
-!! result
+!! html
 ==a==
 ==bogus== not a legal section
 !! end
@@ -13490,11 +13760,11 @@ section=1
 Section extraction test with bogus heading (section 2)
 !! options
 section=2
-!! input
+!! wikitext
 ==a==
 ==bogus== not a legal section
 ==b==
-!! result
+!! html
 ==b==
 !! end
 
@@ -13502,11 +13772,11 @@ section=2
 Section extraction test with comment after heading (section 1)
 !! options
 section=1
-!! input
+!! wikitext
 ==a==
 ==b== <!-- -->
 ==c==
-!! result
+!! html
 ==a==
 !! end
 
@@ -13514,11 +13784,11 @@ section=1
 Section extraction test with comment after heading (section 2)
 !! options
 section=2
-!! input
+!! wikitext
 ==a==
 ==b== <!-- -->
 ==c==
-!! result
+!! html
 ==b== <!-- -->
 !! end
 
@@ -13526,11 +13796,11 @@ section=2
 Section extraction test with bogus <nowiki> heading (section 1)
 !! options
 section=1
-!! input
+!! wikitext
 ==a==
 ==bogus== <nowiki>not a legal section</nowiki>
 ==b==
-!! result
+!! html
 ==a==
 ==bogus== <nowiki>not a legal section</nowiki>
 !! end
@@ -13539,11 +13809,11 @@ section=1
 Section extraction test with bogus <nowiki> heading (section 2)
 !! options
 section=2
-!! input
+!! wikitext
 ==a==
 ==bogus== <nowiki>not a legal section</nowiki>
 ==b==
-!! result
+!! html
 ==b==
 !! end
 
@@ -13554,10 +13824,10 @@ section=2
 Section extraction prefixed by comment (section 1)
 !! options
 section=1
-!! input
+!! wikitext
 <!-- -->==sec1==
 ==sec2==
-!!result
+!! html
 ==sec2==
 !!end
 
@@ -13565,10 +13835,10 @@ section=1
 Section extraction prefixed by comment (section 2)
 !! options
 section=2
-!! input
+!! wikitext
 <!-- -->==sec1==
 ==sec2==
-!!result
+!! html
 
 !!end
 
@@ -13579,14 +13849,14 @@ section=2
 Section extraction, mixed wiki and html (section 1)
 !! options
 section=1
-!! input
+!! wikitext
 <h2>unmarked</h2>
 unmarked
 ==1==
 one
 ==2==
 two
-!! result
+!! html
 ==1==
 one
 !! end
@@ -13595,14 +13865,14 @@ one
 Section extraction, mixed wiki and html (section 2)
 !! options
 section=2
-!! input
+!! wikitext
 <h2>unmarked</h2>
 unmarked
 ==1==
 one
 ==2==
 two
-!! result
+!! html
 ==2==
 two
 !! end
@@ -13613,10 +13883,10 @@ two
 Section extraction, heading surrounded by <noinclude>
 !! options
 section=1
-!! input
+!! wikitext
 <noinclude>==unmarked==</noinclude>
 ==marked==
-!! result
+!! html
 ==marked==
 !!end
 
@@ -13625,13 +13895,13 @@ section=1
 Sectiion with all-equals
 !! options
 section=2
-!! input
+!! wikitext
 === 
 The line above must have a trailing space
 === <!--
 --> <!-- -->
 But just in case it doesn't...
-!! result
+!! html
 === <!--
 --> <!-- -->
 But just in case it doesn't...
@@ -13641,7 +13911,7 @@ But just in case it doesn't...
 Section replacement test (section 0)
 !! options
 replace=0,"xxx"
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13653,7 +13923,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 xxx
 
 ==a==
@@ -13672,7 +13942,7 @@ xxx
 Section replacement test (section 1)
 !! options
 replace=1,"xxx"
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13684,7 +13954,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 start
 xxx
 
@@ -13701,7 +13971,7 @@ xxx
 Section replacement test (section 2)
 !! options
 replace=2,"xxx"
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13713,7 +13983,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 start
 ==a==
 xxx
@@ -13731,7 +14001,7 @@ xxx
 Section replacement test (section 3)
 !! options
 replace=3,"xxx"
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13743,7 +14013,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 start
 ==a==
 ===aa===
@@ -13762,7 +14032,7 @@ xxx
 Section replacement test (section 4)
 !! options
 replace=4,"xxx"
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13774,7 +14044,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 start
 ==a==
 ===aa===
@@ -13789,7 +14059,7 @@ xxx
 Section replacement test (section 5)
 !! options
 replace=5,"xxx"
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13801,7 +14071,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 start
 ==a==
 ===aa===
@@ -13820,7 +14090,7 @@ xxx
 Section replacement test (section 6)
 !! options
 replace=6,"xxx"
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13832,7 +14102,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 start
 ==a==
 ===aa===
@@ -13850,7 +14120,7 @@ xxx
 Section replacement test (section 7)
 !! options
 replace=7,"xxx"
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13862,7 +14132,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 start
 ==a==
 ===aa===
@@ -13881,7 +14151,7 @@ xxx
 Section replacement test (section 8)
 !! options
 replace=8,"xxx"
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13893,7 +14163,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 start
 ==a==
 ===aa===
@@ -13912,7 +14182,7 @@ xxx
 Section replacement test (section 9)
 !! options
 replace=9,"xxx"
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13924,7 +14194,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 start
 ==a==
 ===aa===
@@ -13941,7 +14211,7 @@ xxx
 Section replacement test (section 10)
 !! options
 replace=10,"xxx"
-!! input
+!! wikitext
 start
 ==a==
 ===aa===
@@ -13953,7 +14223,7 @@ start
 ===bc===
 ==c==
 ===ca===
-!! result
+!! html
 start
 ==a==
 ===aa===
@@ -13971,11 +14241,11 @@ xxx
 Section replacement test with initial whitespace (bug 13728)
 !! options
 replace=2,"xxx"
-!! input
+!! wikitext
  Preformatted initial line
 ==a==
 ===a===
-!! result
+!! html
  Preformatted initial line
 ==a==
 xxx
@@ -13986,10 +14256,10 @@ xxx
 Section extraction, heading followed by pre with 20 spaces (bug 6398)
 !! options
 section=1
-!! input
+!! wikitext
 ==a==
                     a
-!! result
+!! html
 ==a==
                     a
 !! end
@@ -13998,10 +14268,10 @@ section=1
 Section extraction, heading followed by pre with 19 spaces (bug 6398 sanity check)
 !! options
 section=1
-!! input
+!! wikitext
 ==a==
                    a
-!! result
+!! html
 ==a==
                    a
 !! end
@@ -14011,7 +14281,7 @@ section=1
 Section extraction, <pre> around bogus header (bug 10309)
 !! options
 noxml section=2
-!! input
+!! wikitext
 == Section One ==
 <pre>
 =======
@@ -14019,7 +14289,7 @@ noxml section=2
 
 == Section Two ==
 stuff
-!! result
+!! html
 == Section Two ==
 stuff
 !! end
@@ -14028,7 +14298,7 @@ stuff
 Section replacement, <pre> around bogus header (bug 10309)
 !! options
 noxml replace=2,"xxx"
-!! input
+!! wikitext
 == Section One ==
 <pre>
 =======
@@ -14036,7 +14306,7 @@ noxml replace=2,"xxx"
 
 == Section Two ==
 stuff
-!! result
+!! html
 == Section One ==
 <pre>
 =======
@@ -14049,9 +14319,9 @@ xxx
 
 !! test
 Handling of &#x0A; in URLs
-!! input
+!! wikitext
 **irc://&#x0A;a
-!! result
+!! html
 <ul>
 <li><ul>
 <li><a rel="nofollow" class="external free" href="irc://%0Aa">irc://%0Aa</a>
@@ -14062,30 +14332,21 @@ Handling of &#x0A; in URLs
 
 !!end
 
-!! test
-5 quotes, code coverage +1 line (php)
-!! options
-php
-!! input
-'''''
-!! result
-!! end
 # The PHP parser strips the empty tags out for giggles; parsoid doesn't.
 !! test
-5 quotes, code coverage +1 line (parsoid)
-!! options
-parsoid
-!! input
+5 quotes, code coverage +1 line
+!! wikitext
 '''''
-!! result
+!! html/php
+!! html/parsoid
 <p><b><i></i></b></p>
 !! end
 
 !! test
 Special:Search page linking.
-!! input
+!! wikitext
 {{Special:search}}
-!! result
+!! html
 <p><a href="/wiki/Special:Search" title="Special:Search">Special:Search</a>
 </p>
 !! end
@@ -14094,7 +14355,7 @@ Special:Search page linking.
 Say the magic word
 !! options
 title=[[Parser test]]
-!! input
+!! wikitext
 * {{PAGENAME}}
 * {{PAGENAMEE}}
 * {{FULLPAGENAME}}
@@ -14117,7 +14378,7 @@ title=[[Parser test]]
 * {{SUBJECTSPACE}}
 * {{SUBJECTSPACEE}}
 * {{Dynamic|{{NUMBEROFUSERS}}|{{NUMBEROFPAGES}}|{{CURRENTVERSION}}|{{CONTENTLANGUAGE}}|{{DIRECTIONMARK}}|{{CURRENTTIMESTAMP}}|{{NUMBEROFARTICLES}}}}
-!! result
+!! html
 <ul>
 <li> Parser test
 </li>
@@ -14170,7 +14431,7 @@ title=[[Parser test]]
 
 !! test
 Gallery
-!! input
+!! wikitext
 <gallery>
 image1.png |
 image2.gif|||||
@@ -14181,7 +14442,7 @@ image4    |300px| centre
 [[x|xx]]]]
 * image6
 </gallery>
-!! result
+!! html
 <ul class="gallery mw-gallery-traditional">
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
                        <div class="thumb" style="height: 150px;">Image1.png</div>
@@ -14225,7 +14486,7 @@ image4    |300px| centre
 
 !! test
 Gallery (with options)
-!! input
+!! wikitext
 <gallery widths='70px' heights='40px' perrow='2' caption='Foo [[Main Page]]' >
 File:Nonexistant.jpg|caption
 File:Nonexistant.jpg
@@ -14233,7 +14494,7 @@ image:foobar.jpg|some '''caption''' [[Main Page]]
 image:foobar.jpg
 image:foobar.jpg|Blabla|alt=This is a foo-bar.|blabla.
 </gallery>
-!! result
+!! html
 <ul class="gallery mw-gallery-traditional" style="max-width: 226px;_width: 226px;">
        <li class='gallerycaption'>Foo <a href="/wiki/Main_Page" title="Main Page">Main Page</a></li>
                <li class="gallerybox" style="width: 105px"><div style="width: 105px">
@@ -14273,12 +14534,12 @@ image:foobar.jpg|Blabla|alt=This is a foo-bar.|blabla.
 
 !! test
 Gallery with wikitext inside caption
-!! input
+!! wikitext
 <gallery>
 File:foobar.jpg|[[File:foobar.jpg|20px|desc|alt=inneralt]]|alt=galleryalt
 File:foobar.jpg|{{Test|unamedParam|alt=param}}|alt=galleryalt
 </gallery>
-!! result
+!! html
 <ul class="gallery mw-gallery-traditional">
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
                        <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div></div>
@@ -14300,14 +14561,14 @@ File:foobar.jpg|{{Test|unamedParam|alt=param}}|alt=galleryalt
 
 !! test
 gallery (with showfilename option)
-!! input
+!! wikitext
 <gallery showfilename>
 File:Nonexistant.jpg|caption
 File:Nonexistant.jpg
 image:foobar.jpg|some '''caption''' [[Main Page]]
 File:Foobar.jpg
 </gallery>
-!! result
+!! html
 <ul class="gallery mw-gallery-traditional">
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
                        <div class="thumb" style="height: 150px;">Nonexistant.jpg</div>
@@ -14345,14 +14606,14 @@ some <b>caption</b> <a href="/wiki/Main_Page" title="Main Page">Main Page</a>
 
 !! test
 Gallery (with namespace-less filenames)
-!! input
+!! wikitext
 <gallery>
 File:Nonexistant.jpg
 Nonexistant.jpg
 image:foobar.jpg
 foobar.jpg
 </gallery>
-!! result
+!! html
 <ul class="gallery mw-gallery-traditional">
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
                        <div class="thumb" style="height: 150px;">Nonexistant.jpg</div>
@@ -14380,163 +14641,172 @@ foobar.jpg
 
 !! test
 HTML Hex character encoding (spells the word "JavaScript")
-!! input
+!! wikitext
 &#x4A;&#x061;&#x0076;&#x00061;&#x000053;&#x0000063;&#114;&#x0000069;&#00000112;&#x0000000074;
-!! result
+!! html
 <p>&#x4a;&#x61;&#x76;&#x61;&#x53;&#x63;&#114;&#x69;&#112;&#x74;
 </p>
 !! end
 
 !! test
 HTML Hex character encoding bogus encoding (bug 26437 regression check)
-!! input
+!! wikitext
 &#xsee;&#XSEE;
-!! result
+!! html
 <p>&amp;#xsee;&amp;#XSEE;
 </p>
 !! end
 
 !! test
 HTML Hex character encoding mixed case
-!! input
+!! wikitext
 &#xEE;&#Xee;
-!! result
+!! html
 <p>&#xee;&#xee;
 </p>
 !! end
 
 !! test
 __FORCETOC__ override
-!! input
+!! wikitext
 __NEWSECTIONLINK__
 __FORCETOC__
-!! result
+!! html
 <p><br />
 </p>
 !! end
 
 !! test
 ISBN code coverage
-!! input
+!! wikitext
 ISBN  978-0-1234-56&#x20;789
-!! result
+!! html
 <p><a href="/wiki/Special:BookSources/9780123456" class="internal mw-magiclink-isbn">ISBN 978-0-1234-56</a>&#x20;789
 </p>
 !! end
 
 !! test
 ISBN followed by 5 spaces
-!! input
+!! wikitext
 ISBN    
-!! result
+!! html
 <p>ISBN    
 </p>
 !! end
 
 !! test
 Double ISBN
-!! input
+!! wikitext
 ISBN ISBN 1234567890
-!! result
+!! html
 <p>ISBN <a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1234567890</a>
 </p>
 !! end
 
+!! test
+ISBN with an X
+!! wikitext
+ISBN 3-462-04561-X
+!! html
+<p><a href="/wiki/Special:BookSources/346204561X" class="internal mw-magiclink-isbn">ISBN 3-462-04561-X</a>
+</p>
+!! end
+
 !! test
 Bug 22905: <abbr> followed by ISBN followed by </a>
-!! input
+!! wikitext
 <abbr>(fr)</abbr> ISBN 2753300917 [http://www.example.com example.com]
-!! result
+!! html
 <p><abbr>(fr)</abbr> <a href="/wiki/Special:BookSources/2753300917" class="internal mw-magiclink-isbn">ISBN 2753300917</a> <a rel="nofollow" class="external text" href="http://www.example.com">example.com</a>
 </p>
 !! end
 
 !! test
 Double RFC
-!! input
+!! wikitext
 RFC RFC 1234
-!! result
+!! html
 <p>RFC <a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc1234">RFC 1234</a>
 </p>
 !! end
 
 !! test
 Double RFC with a wiki link
-!! input
+!! wikitext
 RFC [[RFC 1234]]
-!! result
+!! html
 <p>RFC <a href="/index.php?title=RFC_1234&amp;action=edit&amp;redlink=1" class="new" title="RFC 1234 (page does not exist)">RFC 1234</a>
 </p>
 !! end
 
 !! test
 RFC code coverage
-!! input
+!! wikitext
 RFC   983&#x20;987
-!! result
+!! html
 <p><a class="external mw-magiclink-rfc" rel="nofollow" href="//tools.ietf.org/html/rfc983">RFC 983</a>&#x20;987
 </p>
 !! end
 
 !! test
 Centre-aligned image
-!! input
+!! wikitext
 [[Image:foobar.jpg|centre]]
-!! result
+!! html
 <div class="center"><div class="floatnone"><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></div></div>
 
 !!end
 
 !! test
 None-aligned image
-!! input
+!! wikitext
 [[Image:foobar.jpg|none]]
-!! result
+!! html
 <div class="floatnone"><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></div>
 
 !!end
 
 !! test
 Width + Height sized image (using px) (height is ignored)
-!! input
+!! wikitext
 [[Image:foobar.jpg|640x480px]]
-!! result
+!! html
 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg" width="640" height="73" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg 2x" /></a>
 </p>
 !!end
 
 !! test
 Width-sized image (using px, no following whitespace)
-!! input
+!! wikitext
 [[Image:foobar.jpg|640px]]
-!! result
+!! html
 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg" width="640" height="73" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg 2x" /></a>
 </p>
 !!end
 
 !! test
 Width-sized image (using px, with following whitespace - test regression from r39467)
-!! input
+!! wikitext
 [[Image:foobar.jpg|640px ]]
-!! result
+!! html
 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg" width="640" height="73" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg 2x" /></a>
 </p>
 !!end
 
 !! test
 Width-sized image (using px, with preceding whitespace - test regression from r39467)
-!! input
+!! wikitext
 [[Image:foobar.jpg| 640px]]
-!! result
+!! html
 <p><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/640px-Foobar.jpg" width="640" height="73" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/960px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/1280px-Foobar.jpg 2x" /></a>
 </p>
 !!end
 
 !! test
 Another italics / bold test
-!! input
+!! wikitext
  ''' ''x'
-!! result
+!! html
 <pre>'<i> </i>x'
 </pre>
 !!end
@@ -14548,9 +14818,9 @@ Another italics / bold test
 dt/dd/dl test
 !! options
 disabled
-!! input
+!! wikitext
 :;;;::
-!! result
+!! html
 <dl>
 <dd><dl>
 <dt><dl>
@@ -14577,18 +14847,18 @@ disabled
 # Images with the "|" character in external URLs in comment tags; Eats half the comment, leaves unmatched "</a>" tag.
 !! test
 Images with the "|" character in the comment
-!! input
+!! wikitext
 [[image:Foobar.jpg|thumb|An [http://test/?param1=|left|&param2=|x external] URL]]
-!! result
+!! html
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>An <a rel="nofollow" class="external text" href="http://test/?param1=%7Cleft%7C&amp;param2=%7Cx">external</a> URL</div></div></div>
 
 !!end
 
 !! test
 [Before] HTML without raw HTML enabled ($wgRawHtml==false)
-!! input
+!! wikitext
 <html><script>alert(1);</script></html>
-!! result
+!! html
 <p>&lt;html&gt;&lt;script&gt;alert(1);&lt;/script&gt;&lt;/html&gt;
 </p>
 !! end
@@ -14597,9 +14867,9 @@ Images with the "|" character in the comment
 HTML with raw HTML ($wgRawHtml==true)
 !! options
 wgRawHtml=1
-!! input
+!! wikitext
 <html><script>alert(1);</script></html>
-!! result
+!! html
 <p><script>alert(1);</script>
 </p>
 !! end
@@ -14608,9 +14878,9 @@ wgRawHtml=1
 Parents of subpages, one level up
 !! options
 subpage title=[[Subpage test/L1/L2/L3]]
-!! input
+!! wikitext
 [[../|L2]]
-!! result
+!! html
 <p><a href="/index.php?title=Subpage_test/L1/L2&amp;action=edit&amp;redlink=1" class="new" title="Subpage test/L1/L2 (page does not exist)">L2</a>
 </p>
 !! end
@@ -14620,9 +14890,9 @@ subpage title=[[Subpage test/L1/L2/L3]]
 Parents of subpages, one level up, not named
 !! options
 subpage title=[[Subpage test/L1/L2/L3]]
-!! input
+!! wikitext
 [[../]]
-!! result
+!! html
 <p><a href="/index.php?title=Subpage_test/L1/L2&amp;action=edit&amp;redlink=1" class="new" title="Subpage test/L1/L2 (page does not exist)">Subpage test/L1/L2</a>
 </p>
 !! end
@@ -14633,11 +14903,11 @@ subpage title=[[Subpage test/L1/L2/L3]]
 Parents of subpages, two levels up
 !! options
 subpage title=[[Subpage test/L1/L2/L3]]
-!! input
+!! wikitext
 [[../../|L1]]2
 
 [[../../|L1]]l
-!! result
+!! html
 <p><a href="/index.php?title=Subpage_test/L1&amp;action=edit&amp;redlink=1" class="new" title="Subpage test/L1 (page does not exist)">L1</a>2
 </p><p><a href="/index.php?title=Subpage_test/L1&amp;action=edit&amp;redlink=1" class="new" title="Subpage test/L1 (page does not exist)">L1l</a>
 </p>
@@ -14647,9 +14917,9 @@ subpage title=[[Subpage test/L1/L2/L3]]
 Parents of subpages, two levels up, without trailing slash or name.
 !! options
 subpage title=[[Subpage test/L1/L2/L3]]
-!! input
+!! wikitext
 [[../..]]
-!! result
+!! html
 <p>[[../..]]
 </p>
 !! end
@@ -14658,9 +14928,9 @@ subpage title=[[Subpage test/L1/L2/L3]]
 Parents of subpages, two levels up, with lots of extra trailing slashes.
 !! options
 subpage title=[[Subpage test/L1/L2/L3]]
-!! input
+!! wikitext
 [[../../////]]
-!! result
+!! html
 <p><a href="/index.php?title=Subpage_test/L1////&amp;action=edit&amp;redlink=1" class="new" title="Subpage test/L1//// (page does not exist)">///</a>
 </p>
 !! end
@@ -14675,9 +14945,9 @@ Sibling article
 Transclusion of a sibling page (one level up)
 !! options
 subpage title=[[Subpage test/L1/L2/L3]]
-!! input
+!! wikitext
 {{../L3Sibling}}
-!! result
+!! html
 <p>Sibling article
 </p>
 !! end
@@ -14686,9 +14956,9 @@ subpage title=[[Subpage test/L1/L2/L3]]
 Transclusion of a child page
 !! options
 subpage title=[[Subpage test/L1/L2]]
-!! input
+!! wikitext
 {{/L3Sibling}}
-!! result
+!! html
 <p>Sibling article
 </p>
 !! end
@@ -14697,20 +14967,20 @@ subpage title=[[Subpage test/L1/L2]]
 Non-transclusion because of too many up levels
 !! options
 subpage title=[[Subpage test/L1/L2/L3]]
-!! input
+!! wikitext
 {{../../../../More than parent}}
-!! result
+!! html
 <p>{{../../../../More than parent}}
 </p>
 !! end
 
 !! test
 Definition list code coverage
-!! input
+!! wikitext
 ; title   : def
 ; title : def
 ;title: def
-!! result
+!! html
 <dl>
 <dt> title  &#160;</dt>
 <dd> def
@@ -14727,27 +14997,27 @@ Definition list code coverage
 
 !! test
 Don't fall for the self-closing div
-!! input
+!! wikitext
 <div>hello world</div/>
-!! result
+!! html
 <div>hello world</div>
 
 !! end
 
 !! test
 MSGNW magic word
-!! input
+!! wikitext
 {{MSGNW:msg}}
-!! result
+!! html
 <p>&#91;&#91;:Template:Msg&#93;&#93;
 </p>
 !! end
 
 !! test
 RAW magic word
-!! input
+!! wikitext
 {{RAW:QUERTY}}
-!! result
+!! html
 <p><a href="/index.php?title=Template:QUERTY&amp;action=edit&amp;redlink=1" class="new" title="Template:QUERTY (page does not exist)">Template:QUERTY</a>
 </p>
 !! end
@@ -14755,19 +15025,19 @@ RAW magic word
 # This isn't needed for XHTML conformance, but would be handy as a fallback security measure
 !! test
 Always escape literal '>' in output, not just after '<'
-!! input
+!! wikitext
 ><>
-!! result
+!! html
 <p>&gt;&lt;&gt;
 </p>
 !! end
 
 !! test
 Template caching
-!! input
+!! wikitext
 {{Test}}
 {{Test}}
-!! result
+!! html
 <p>This is a test template
 This is a test template
 </p>
@@ -14782,9 +15052,9 @@ MediaWiki:Fake
 
 !! test
 Inclusion of !userCanEdit() content
-!! input
+!! wikitext
 {{MediaWiki:Fake}}
-!! result
+!! html
 <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
@@ -14792,14 +15062,14 @@ Inclusion of !userCanEdit() content
 
 !! test
 Out-of-order TOC heading levels
-!! input
+!! wikitext
 ==2==
 ======6======
 ===3===
 =1=
 =====5=====
 ==2==
-!! result
+!! html
 <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>
@@ -14829,9 +15099,9 @@ Out-of-order TOC heading levels
 
 !! test
 ISBN with a dummy number
-!! input
+!! wikitext
 ISBN ---
-!! result
+!! html
 <p>ISBN ---
 </p>
 !! end
@@ -14839,9 +15109,9 @@ ISBN ---
 
 !! test
 ISBN with space-delimited number
-!! input
+!! wikitext
 ISBN 92 9017 032 8
-!! result
+!! html
 <p><a href="/wiki/Special:BookSources/9290170328" class="internal mw-magiclink-isbn">ISBN 92 9017 032 8</a>
 </p>
 !! end
@@ -14849,9 +15119,9 @@ ISBN 92 9017 032 8
 
 !! test
 ISBN with multiple spaces, no number
-!! input
+!! wikitext
 ISBN  foo
-!! result
+!! html
 <p>ISBN  foo
 </p>
 !! end
@@ -14859,13 +15129,13 @@ ISBN  foo
 
 !! test
 ISBN length
-!! input
+!! wikitext
 ISBN 123456789
 
 ISBN 1234567890
 
 ISBN 12345678901
-!! result
+!! html
 <p>ISBN 123456789
 </p><p><a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1234567890</a>
 </p><p>ISBN 12345678901
@@ -14875,11 +15145,11 @@ ISBN 12345678901
 
 !! test
 ISBN with trailing year (bug 8110)
-!! input
+!! wikitext
 ISBN 1-234-56789-0 - 2006
 
 ISBN 1 234 56789 0 - 2006
-!! result
+!! html
 <p><a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1-234-56789-0</a> - 2006
 </p><p><a href="/wiki/Special:BookSources/1234567890" class="internal mw-magiclink-isbn">ISBN 1 234 56789 0</a> - 2006
 </p>
@@ -14888,47 +15158,47 @@ ISBN 1 234 56789 0 - 2006
 
 !! test
 anchorencode
-!! input
+!! wikitext
 {{anchorencode:foo bar©#%n}}
-!! result
+!! html
 <p>foo_bar.C2.A9.23.25n
 </p>
 !! end
 
 !! test
 anchorencode trims spaces
-!! input
+!! wikitext
 {{anchorencode: __pretty__please__}}
-!! result
+!! html
 <p>pretty_please
 </p>
 !! end
 
 !! test
 anchorencode deals with links
-!! input
+!! wikitext
 {{anchorencode: [[hello|world]] [[hi]]}}
-!! result
+!! html
 <p>world_hi
 </p>
 !! end
 
 !! test
 anchorencode deals with templates
-!! input
+!! wikitext
 {{anchorencode: {{Foo}} }}
-!! result
+!! html
 <p>FOO
 </p>
 !! end
 
 !! test
 anchorencode encodes like the TOC generator: (bug 18431)
-!! input
+!! wikitext
 === _ +:.3A%3A&&amp;]] ===
 {{anchorencode: _ +:.3A%3A&&amp;]] }}
 __NOEDITSECTION__
-!! result
+!! html
 <h3><span class="mw-headline" id=".2B:.3A.253A.26.26.5D.5D">_ +:.3A%3A&amp;&amp;]]</span></h3>
 <p>.2B:.3A.253A.26.26.5D.5D
 </p>
@@ -14936,7 +15206,7 @@ __NOEDITSECTION__
 
 !! test
 Bug 6200: blockquotes and paragraph formatting
-!! input
+!! wikitext
 <blockquote>
 foo
 </blockquote>
@@ -14944,7 +15214,7 @@ foo
 bar
 
  baz
-!! result
+!! html
 <blockquote>
 <p>foo
 </p>
@@ -14957,7 +15227,7 @@ bar
 
 !! test
 Bug 8293: Use of center tag ruins paragraph formatting
-!! input
+!! wikitext
 <center>
 foo
 </center>
@@ -14965,7 +15235,7 @@ foo
 bar
 
  baz
-!! result
+!! html
 <center>
 <p>foo
 </p>
@@ -14977,24 +15247,14 @@ bar
 !! end
 
 !!test
-Parsing of overlapping (improperly nested) inline html tags (PHP parser)
-!!options
-php
-!!input
+Parsing of overlapping (improperly nested) inline html tags
+!! wikitext
 <span><s>x</span></s>
-!!result
+!! html/php
 <p><span><s>x&lt;/span&gt;</s></span>
 </p>
-!!end
-
-!!test
-Parsing of overlapping (improperly nested) inline html tags (Parsoid)
-!!options
-parsoid
-!!input
-<span><s>x</span></s>
-!!result
-<p><span><s>x</s></span><s></s>
+!! html/parsoid
+<p><span><s>x</s></span>
 </p>
 !!end
 
@@ -15005,9 +15265,9 @@ parsoid
 Self-link in language variants
 !! options
 title=[[Dunav]] language=sr
-!! input
+!! wikitext
 Both [[Dunav]] and [[Дунав]] are names for this river.
-!! result
+!! html
 <p>Both <strong class="selflink">Dunav</strong> and <strong class="selflink">Дунав</strong> are names for this river.
 </p>
 !!end
@@ -15022,9 +15282,9 @@ content
 Link to another existing title shouldn't be parsed as self-link even if it's a variant of this title
 !! options
 title=[[Duna]] language=sr
-!! input
+!! wikitext
 [[Дуна]] is not a self-link while [[Duna]] and [[Dуна]] are still self-links.
-!! result
+!! html
 <p><a href="/wiki/%D0%94%D1%83%D0%BD%D0%B0" title="Дуна">Дуна</a> is not a self-link while <strong class="selflink">Duna</strong> and <strong class="selflink">Dуна</strong> are still self-links.
 </p>
 !! end
@@ -15033,9 +15293,9 @@ title=[[Duna]] language=sr
 Link to a section of a variant of this title shouldn't be parsed as self-link
 !! options
 title=[[Duna]] language=sr
-!! input
+!! wikitext
 [[Dуна]] is a self-link while [[Dunа#Foo]] and [[Dуна#Foo]] are not self-links.
-!! result
+!! html
 <p><strong class="selflink">Dуна</strong> is a self-link while <a href="/wiki/%D0%94%D1%83%D0%BD%D0%B0" title="Дуна">Dunа#Foo</a> and <a href="/wiki/%D0%94%D1%83%D0%BD%D0%B0" title="Дуна">Dуна#Foo</a> are not self-links.
 </p>
 !! end
@@ -15044,9 +15304,9 @@ title=[[Duna]] language=sr
 Link to pages in language variants
 !! options
 language=sr
-!! input
+!! wikitext
 Main Page can be written as [[Маин Паге]]
-!! result
+!! html
 <p>Main Page can be written as <a href="/wiki/Main_Page" title="Main Page">Маин Паге</a>
 </p>
 !!end
@@ -15056,9 +15316,9 @@ Main Page can be written as [[Маин Паге]]
 Multiple links to pages in language variants
 !! options
 language=sr
-!! input
+!! wikitext
 [[Main Page]] can be written as [[Маин Паге]] same as [[Маин Паге]].
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a> can be written as <a href="/wiki/Main_Page" title="Main Page">Маин Паге</a> same as <a href="/wiki/Main_Page" title="Main Page">Маин Паге</a>.
 </p>
 !!end
@@ -15068,9 +15328,9 @@ language=sr
 Simple template in language variants
 !! options
 language=sr
-!! input
+!! wikitext
 {{тест}}
-!! result
+!! html
 <p>This is a test template
 </p>
 !! end
@@ -15080,9 +15340,9 @@ language=sr
 Template with explicit namespace in language variants
 !! options
 language=sr
-!! input
+!! wikitext
 {{Template:тест}}
-!! result
+!! html
 <p>This is a test template
 </p>
 !! end
@@ -15092,9 +15352,9 @@ language=sr
 Basic test for template parameter in language variants
 !! options
 language=sr
-!! input
+!! wikitext
 {{парамтест|param=foo}}
-!! result
+!! html
 <p>This is a test template with parameter foo
 </p>
 !! end
@@ -15104,9 +15364,9 @@ language=sr
 Simple category in language variants
 !! options
 language=sr cat
-!! input
+!! wikitext
 [[Category:МедиаWики Усер'с Гуиде]]
-!! result
+!! html
 <a href="/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D1%98%D0%B0:MediaWiki_User%27s_Guide" title="Категорија:MediaWiki User's Guide">MediaWiki User's Guide</a>
 !! end
 
@@ -15127,9 +15387,9 @@ blah
 Don't convert blue categorylinks to another variant (bug 33210)
 !! options
 language=zh cat
-!! input
+!! wikitext
 [[A]][[Category:分类]]
-!! result
+!! html
 <a href="/wiki/Category:%E5%88%86%E7%B1%BB" title="Category:分类">分类</a>
 !! end
 
@@ -15138,9 +15398,9 @@ language=zh cat
 Stripping -{}- tags (language variants)
 !! options
 language=sr
-!! input
+!! wikitext
 Latin proverb: -{Ne nuntium necare}-
-!! result
+!! html
 <p>Latin proverb: Ne nuntium necare
 </p>
 !! end
@@ -15150,9 +15410,9 @@ Latin proverb: -{Ne nuntium necare}-
 Prevent conversion with -{}- tags (language variants)
 !! options
 language=sr variant=sr-ec
-!! input
+!! wikitext
 Latinski: -{Ne nuntium necare}-
-!! result
+!! html
 <p>Латински: Ne nuntium necare
 </p>
 !! end
@@ -15162,9 +15422,9 @@ Latinski: -{Ne nuntium necare}-
 Prevent conversion of text with -{}- tags (language variants)
 !! options
 language=sr variant=sr-ec
-!! input
+!! wikitext
 Latinski: -{Ne nuntium necare}-
-!! result
+!! html
 <p>Латински: Ne nuntium necare
 </p>
 !! end
@@ -15174,9 +15434,9 @@ Latinski: -{Ne nuntium necare}-
 Prevent conversion of links with -{}- tags (language variants)
 !! options
 language=sr variant=sr-ec
-!! input
+!! wikitext
 -{[[Main Page]]}-
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Main Page">Main Page</a>
 </p>
 !! end
@@ -15186,9 +15446,9 @@ language=sr variant=sr-ec
 -{}- tags within headlines (within html for parserConvert())
 !! options
 language=sr variant=sr-ec
-!! input
+!! wikitext
 == -{Naslov}- ==
-!! result
+!! html
 <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
@@ -15198,9 +15458,9 @@ language=sr variant=sr-ec
 Explicit definition of language variant alternatives
 !! options
 language=zh variant=zh-tw
-!! input
+!! wikitext
 -{zh:China;zh-tw:Taiwan}-, not China
-!! result
+!! html
 <p>Taiwan, not China
 </p>
 !! end
@@ -15210,10 +15470,10 @@ language=zh variant=zh-tw
 Conversion around HTML tags
 !! options
 language=sr variant=sr-ec
-!! input
+!! wikitext
 -{H|span=>sr-ec:script;title=>sr-ec:src;}-
 <span title="La-{sr-el:L;sr-ec:C;}-tin">ski</span>
-!! result
+!! html
 <p>
 <span title="ЛаCтин">ски</span>
 </p>
@@ -15224,12 +15484,12 @@ language=sr variant=sr-ec
 Explicit session-wise language variant mapping (A flag and - flag)
 !! options
 language=zh variant=zh-tw
-!! input
+!! wikitext
 Taiwan is not China.
 But -{A|zh:China;zh-tw:Taiwan}- is China,
 (This-{-|zh:China;zh-tw:Taiwan}- should be stripped!)
 and -{China}- is China.
-!! result
+!! html
 <p>Taiwan is not China.
 But Taiwan is Taiwan,
 (This should be stripped!)
@@ -15241,10 +15501,10 @@ and China is China.
 Explicit session-wise language variant mapping (H flag for hide)
 !! options
 language=zh variant=zh-tw
-!! input
+!! wikitext
 (This-{H|zh:China;zh-tw:Taiwan}- should be stripped!)
 Taiwan is China.
-!! result
+!! html
 <p>(This should be stripped!)
 Taiwan is Taiwan.
 </p>
@@ -15254,9 +15514,9 @@ Taiwan is Taiwan.
 Adding explicit conversion rule for title (T flag)
 !! options
 language=zh variant=zh-tw showtitle
-!! input
+!! wikitext
 Should be stripped-{T|zh:China;zh-tw:Taiwan}-!
-!! result
+!! html
 Taiwan
 <p>Should be stripped!
 </p>
@@ -15266,9 +15526,9 @@ Taiwan
 Testing that changing the language variant here in the tests actually works
 !! options
 language=zh variant=zh showtitle
-!! input
+!! wikitext
 Should be stripped-{T|zh:China;zh-tw:Taiwan}-!
-!! result
+!! html
 China
 <p>Should be stripped!
 </p>
@@ -15278,10 +15538,10 @@ China
 Recursive conversion of alt and title attrs shouldn't clear converter state
 !! options
 language=zh variant=zh-cn showtitle
-!! input
+!! wikitext
 -{H|zh-cn:Exclamation;zh-tw:exclamation;}-
 Should be stripped-{T|zh-cn:China;zh-tw:Taiwan}-<span title="exclamation">!</span>
-!! result
+!! html
 China
 <p>
 Should be stripped<span title="Exclamation">!</span>
@@ -15292,10 +15552,10 @@ Should be stripped<span title="Exclamation">!</span>
 Bug 24072: more test on conversion rule for title
 !! options
 language=zh variant=zh-tw showtitle
-!! input
+!! wikitext
 This should be stripped-{T|zh:China;zh-tw:Taiwan}-!
 This won't take interferes with the title rule-{H|zh:Beijing;zh-tw:Taipei}-.
-!! result
+!! html
 Taiwan
 <p>This should be stripped!
 This won't take interferes with the title rule.
@@ -15306,9 +15566,9 @@ This won't take interferes with the title rule.
 Partly disable title conversion if variant == main language code
 !! options
 language=zh variant=zh title=[[ZH]] showtitle
-!! input
+!! wikitext
 -{T|zh-cn:CN;zh-tw:TW}-
-!! result
+!! html
 ZH
 <p>
 </p>
@@ -15318,9 +15578,9 @@ ZH
 Partly disable title conversion if variant == main language code, more
 !! options
 language=zh variant=zh title=[[ZH]] showtitle
-!! input
+!! wikitext
 -{T|TW}-
-!! result
+!! html
 ZH
 <p>
 </p>
@@ -15330,9 +15590,9 @@ ZH
 Raw output of variant escape tags (R flag)
 !! options
 language=zh variant=zh-tw
-!! input
+!! wikitext
 Raw: -{R|zh:China;zh-tw:Taiwan}-
-!! result
+!! html
 <p>Raw: zh:China;zh-tw:Taiwan
 </p>
 !! end
@@ -15341,9 +15601,9 @@ Raw: -{R|zh:China;zh-tw:Taiwan}-
 Nested using of manual convert syntax
 !! options
 language=zh variant=zh-hk
-!! input
+!! wikitext
 Nested: -{zh-hans:Hi -{zh-cn:China;zh-sg:Singapore;}-;zh-hant:Hello -{zh-tw:Taiwan;zh-hk:H-{ong}- K-{}-ong;}-;}-!
-!! result
+!! html
 <p>Nested: Hello Hong Kong!
 </p>
 !! end
@@ -15352,7 +15612,7 @@ Nested: -{zh-hans:Hi -{zh-cn:China;zh-sg:Singapore;}-;zh-hant:Hello -{zh-tw:Taiw
 Proper conversion of text in external links
 !! options
 language=sr variant=sr-ec
-!! input
+!! wikitext
 http://www.google.com
 gopher://www.google.com
 [http://www.google.com http://www.google.com]
@@ -15360,7 +15620,7 @@ gopher://www.google.com
 [https://www.google.com irc://www.google.com]
 [ftp://www.google.com www.google.com/ftp://dir]
 [//www.google.com www.google.com]
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://www.google.com">http://www.google.com</a>
 <a rel="nofollow" class="external free" href="gopher://www.google.com">gopher://www.google.com</a>
 <a rel="nofollow" class="external free" href="http://www.google.com">http://www.google.com</a>
@@ -15375,9 +15635,9 @@ gopher://www.google.com
 Do not convert roman numbers to language variants
 !! options
 language=sr variant=sr-ec
-!! input
+!! wikitext
 Fridrih IV je car.
-!! result
+!! html
 <p>Фридрих IV је цар.
 </p>
 !! end
@@ -15386,9 +15646,9 @@ Fridrih IV je car.
 Unclosed language converter markup "-{"
 !! options
 language=sr
-!! input
+!! wikitext
 -{T|hello
-!! result
+!! html
 <p>-{T|hello
 </p>
 !! end
@@ -15397,9 +15657,9 @@ language=sr
 Don't convert raw rule "-{R|=&gt;}-" to "=>"
 !! options
 language=sr
-!! input
+!! wikitext
 -{R|=&gt;}-
-!! result
+!! html
 <p>=&gt;
 </p>
 !!end
@@ -15408,9 +15668,9 @@ language=sr
 Don't break link parsing if language converter markup is in the caption.
 !! options
 language=sr variant=sr-ec
-!! input
+!! wikitext
 [[Main Page|-{R|main page}-]]
-!! result
+!! html
 <p><a href="/wiki/Main_Page" title="Маин Паге">main page</a>
 </p>
 !! end
@@ -15421,9 +15681,9 @@ Don't break image parsing if language converter markup is in the caption.
 !! options
 language=sr
 disabled
-!! input
+!! wikitext
 [[File:Foobar.jpg|-{R|caption}-]]
-!! result
+!! html
 <p><a href="/wiki/File:Foobar.jpg" class="image" title="caption"><img alt="caption" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
 </p>
 !! end
@@ -15434,9 +15694,9 @@ Don't break list handling if language converter markup is in the item.
 !! options
 language=zh variant=zh-cn
 disabled
-!! input
+!! wikitext
 ;-{zh-cn:AAA;zh-tw:BBB}-
-!! result
+!! html
 <dl><dt>AAA
 </dt></dl>
 
@@ -15448,12 +15708,12 @@ Don't break table handling if language converter markup is in the cell.
 !! options
 language=sr variant=sr-ec
 disabled
-!! input
+!! wikitext
 {|
 |-
 | -{R|B}-
 |}
-!! result
+!! html
 <table>
 
 <tr>
@@ -15464,9 +15724,9 @@ disabled
 
 !! test
 Bug 529: Uncovered bullet
-!! input
+!! wikitext
 * Foo {{bullet}}
-!! result
+!! html
 <ul>
 <li> Foo 
 </li>
@@ -15484,9 +15744,9 @@ Bug 529: Uncovered bullet
 # the expected output and your parser's output.
 !! test
 Bug 529: Uncovered bullet leaving empty list, normally removed by tidy
-!! input
+!! wikitext
 ******* Foo {{bullet}}
-!! result
+!! html
 <ul>
 <li><ul>
 <li><ul>
@@ -15516,12 +15776,12 @@ Bug 529: Uncovered bullet leaving empty list, normally removed by tidy
 
 !! test
 Bug 529: Uncovered table already at line-start
-!! input
+!! wikitext
 x
 
 {{table}}
 y
-!! result
+!! html
 <p>x
 </p>
 <table>
 
 !! test
 Bug 529: Uncovered bullet in parser function result
-!! input
+!! wikitext
 * Foo {{lc:{{bullet}} }}
-!! result
+!! html
 <ul>
 <li> Foo 
 </li>
@@ -15553,18 +15813,18 @@ Bug 529: Uncovered bullet in parser function result
 
 !! test
 Bug 5678: Double-parsed template argument
-!! input
+!! wikitext
 {{lc:{{{1}}}|hello}}
-!! result
+!! html
 <p>{{{1}}}
 </p>
 !! end
 
 !! test
 Bug 5678: Double-parsed template invocation
-!! input
+!! wikitext
 {{lc:{{paramtest {{!}} param = hello }} }}
-!! result
+!! html
 <p>{{paramtest | param = hello }}
 </p>
 !! end
@@ -15574,7 +15834,7 @@ Case insensitivity of parser functions for non-ASCII characters (bug 8143)
 !! options
 language=cs
 title=[[Main Page]]
-!! input
+!! wikitext
 {{PRVNÍVELKÉ:ěščř}}
 {{prvnívelké:ěščř}}
 {{PRVNÍMALÉ:ěščř}}
@@ -15583,7 +15843,7 @@ title=[[Main Page]]
 {{malá:ěščř}}
 {{VELKÁ:ěščř}}
 {{velká:ěščř}}
-!! result
+!! html
 <p>Ěščř
 Ěščř
 ěščř
@@ -15597,10 +15857,10 @@ title=[[Main Page]]
 
 !! test
 Morwen/13: Unclosed link followed by heading
-!! input
+!! wikitext
 [[link
 ==heading==
-!! result
+!! html
 <p>[[link
 </p>
 <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>
@@ -15609,10 +15869,10 @@ Morwen/13: Unclosed link followed by heading
 
 !! test
 HHP2.1: Heuristics for headings in preprocessor parenthetical structures
-!! input
+!! wikitext
 {{foo|
 =heading=
-!! result
+!! html
 <p>{{foo|
 </p>
 <h1><span class="mw-headline" id="heading">heading</span></h1>
@@ -15621,10 +15881,10 @@ HHP2.1: Heuristics for headings in preprocessor parenthetical structures
 
 !! test
 HHP2.2: Heuristics for headings in preprocessor parenthetical structures
-!! input
+!! wikitext
 {{foo|
 ==heading==
-!! result
+!! html
 <p>{{foo|
 </p>
 <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>
@@ -15635,19 +15895,19 @@ HHP2.2: Heuristics for headings in preprocessor parenthetical structures
 Tildes in comments
 !! options
 pst
-!! input
+!! wikitext
 <!-- ~~~~ -->
-!! result
+!! html
 <!-- ~~~~ -->
 !! end
 
 !! test
 Paragraphs inside divs (no extra line breaks)
-!! input
+!! wikitext
 <div>Line one
 
 Line two</div>
-!! result
+!! html
 <div>Line one
 Line two</div>
 
@@ -15655,12 +15915,12 @@ Line two</div>
 
 !! test
 Paragraphs inside divs (extra line break on open)
-!! input
+!! wikitext
 <div>
 Line one
 
 Line two</div>
-!! result
+!! html
 <div>
 <p>Line one
 </p>
@@ -15670,12 +15930,12 @@ Line two</div>
 
 !! test
 Paragraphs inside divs (extra line break on close)
-!! input
+!! wikitext
 <div>Line one
 
 Line two
 </div>
-!! result
+!! html
 <div>Line one
 <p>Line two
 </p>
@@ -15685,13 +15945,13 @@ Line two
 
 !! test
 Paragraphs inside divs (extra line break on open and close)
-!! input
+!! wikitext
 <div>
 Line one
 
 Line two
 </div>
-!! result
+!! html
 <div>
 <p>Line one
 </p><p>Line two
@@ -15704,10 +15964,10 @@ Line two
 Nesting tags, paragraphs on lines which begin with <div>
 !! options
 disabled
-!! input
+!! wikitext
 <div></div><strong>A
 B</strong>
-!! result
+!! html
 <div></div>
 <p><strong>A
 B</strong>
@@ -15717,11 +15977,11 @@ B</strong>
 # Bug 6200: <blockquote> should behave like <div> with respect to line breaks
 !! test
 Bug 6200: paragraphs inside blockquotes (no extra line breaks)
-!! input
+!! wikitext
 <blockquote>Line one
 
 Line two</blockquote>
-!! result
+!! html
 <blockquote>Line one
 Line two</blockquote>
 
@@ -15729,12 +15989,12 @@ Line two</blockquote>
 
 !! test
 Bug 6200: paragraphs inside blockquotes (extra line break on open)
-!! input
+!! wikitext
 <blockquote>
 Line one
 
 Line two</blockquote>
-!! result
+!! html
 <blockquote>
 <p>Line one
 </p>
@@ -15744,12 +16004,12 @@ Line two</blockquote>
 
 !! test
 Bug 6200: paragraphs inside blockquotes (extra line break on close)
-!! input
+!! wikitext
 <blockquote>Line one
 
 Line two
 </blockquote>
-!! result
+!! html
 <blockquote>Line one
 <p>Line two
 </p>
@@ -15759,13 +16019,13 @@ Line two
 
 !! test
 Bug 6200: paragraphs inside blockquotes (extra line break on open and close)
-!! input
+!! wikitext
 <blockquote>
 Line one
 
 Line two
 </blockquote>
-!! result
+!! html
 <blockquote>
 <p>Line one
 </p><p>Line two
@@ -15776,11 +16036,11 @@ Line two
 
 !! test
 Paragraphs inside blockquotes/divs (no extra line breaks)
-!! input
+!! wikitext
 <blockquote><div>Line one
 
 Line two</div></blockquote>
-!! result
+!! html
 <blockquote><div>Line one
 Line two</div></blockquote>
 
@@ -15788,12 +16048,12 @@ Line two</div></blockquote>
 
 !! test
 Paragraphs inside blockquotes/divs (extra line break on open)
-!! input
+!! wikitext
 <blockquote><div>
 Line one
 
 Line two</div></blockquote>
-!! result
+!! html
 <blockquote><div>
 <p>Line one
 </p>
@@ -15803,12 +16063,12 @@ Line two</div></blockquote>
 
 !! test
 Paragraphs inside blockquotes/divs (extra line break on close)
-!! input
+!! wikitext
 <blockquote><div>Line one
 
 Line two
 </div></blockquote>
-!! result
+!! html
 <blockquote><div>Line one
 <p>Line two
 </p>
@@ -15818,13 +16078,13 @@ Line two
 
 !! test
 Paragraphs inside blockquotes/divs (extra line break on open and close)
-!! input
+!! wikitext
 <blockquote><div>
 Line one
 
 Line two
 </div></blockquote>
-!! result
+!! html
 <blockquote><div>
 <p>Line one
 </p><p>Line two
@@ -15837,11 +16097,11 @@ Line two
 Interwiki links trounced by replaceExternalLinks after early LinkHolderArray expansion
 !! options
 wgLinkHolderBatchSize=0
-!! input
+!! wikitext
 [[meatball:1]]
 [[meatball:2]]
 [[meatball:3]]
-!! result
+!! html
 <p><a href="http://www.usemod.com/cgi-bin/mb.pl?1" class="extiw" title="meatball:1">meatball:1</a>
 <a href="http://www.usemod.com/cgi-bin/mb.pl?2" class="extiw" title="meatball:2">meatball:2</a>
 <a href="http://www.usemod.com/cgi-bin/mb.pl?3" class="extiw" title="meatball:3">meatball:3</a>
@@ -15850,9 +16110,9 @@ wgLinkHolderBatchSize=0
 
 !! test
 Free external link invading image caption
-!! input
+!! wikitext
 [[Image:Foobar.jpg|thumb|http://x|hello]]
-!! result
+!! html
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="" src="http://example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" width="180" height="20" class="thumbimage" srcset="http://example.com/images/thumb/3/3a/Foobar.jpg/270px-Foobar.jpg 1.5x, http://example.com/images/thumb/3/3a/Foobar.jpg/360px-Foobar.jpg 2x" /></a>  <div class="thumbcaption"><div class="magnify"><a href="/wiki/File:Foobar.jpg" class="internal" title="Enlarge"><img src="/skins/common/images/magnify-clip.png" width="15" height="11" alt="" /></a></div>hello</div></div></div>
 
 !! end
@@ -15861,54 +16121,54 @@ Free external link invading image caption
 Bug 15196: localised external link numbers
 !! options
 language=fa
-!! input
+!! wikitext
 [http://en.wikipedia.org/]
-!! result
+!! html
 <p><a rel="nofollow" class="external autonumber" href="http://en.wikipedia.org/">[۱]</a>
 </p>
 !! end
 
 !! test
 Multibyte character in padleft
-!! input
+!! wikitext
 {{padleft:-Hello|7|Æ}}
-!! result
+!! html
 <p>Æ-Hello
 </p>
 !! end
 
 !! test
 Multibyte character in padright
-!! input
+!! wikitext
 {{padright:Hello-|7|Æ}}
-!! result
+!! html
 <p>Hello-Æ
 </p>
 !! end
 
 !!test
 formatdate parser function
-!!input
+!! wikitext
 {{#formatdate:2009-03-24}}
-!! result
+!! html
 <p><span class="mw-formatted-date" title="2009-03-24">2009-03-24</span>
 </p>
 !! end
 
 !!test
 formatdate parser function, with default format
-!!input
+!! wikitext
 {{#formatdate:2009-03-24|mdy}}
-!! result
+!! html
 <p><span class="mw-formatted-date" title="2009-03-24">March 24, 2009</span>
 </p>
 !! end
 
 !! test
 Spacing of numbers in formatted dates
-!! input
+!! wikitext
 {{#formatdate:January 15}}
-!! result
+!! html
 <p><span class="mw-formatted-date" title="01-15">January 15</span>
 </p>
 !! end
@@ -15917,9 +16177,9 @@ Spacing of numbers in formatted dates
 formatdate parser function, with default format and on a page of which the content language is always English and different from the wiki content language
 !! options
 language=nl title=[[MediaWiki:Common.css]]
-!! input
+!! wikitext
 {{#formatdate:2009-03-24|dmy}}
-!! result
+!! html
 <p><span class="mw-formatted-date" title="2009-03-24">24 March 2009</span>
 </p>
 !! end
@@ -15936,9 +16196,9 @@ language=nl title=[[MediaWiki:Common.css]]
 Edit comment with link
 !! options
 comment
-!! input
+!! wikitext
 I like the [[Main Page]] a lot
-!! result
+!! html
 I like the <a href="/wiki/Main_Page" title="Main Page">Main Page</a> a lot
 !!end
 
@@ -15946,9 +16206,9 @@ I like the <a href="/wiki/Main_Page" title="Main Page">Main Page</a> a lot
 Edit comment with link and link text
 !! options
 comment
-!! input
+!! wikitext
 I like the [[Main Page|best pages]] a lot
-!! result
+!! html
 I like the <a href="/wiki/Main_Page" title="Main Page">best pages</a> a lot
 !!end
 
@@ -15956,9 +16216,9 @@ I like the <a href="/wiki/Main_Page" title="Main Page">best pages</a> a lot
 Edit comment with link and link text with suffix
 !! options
 comment
-!! input
+!! wikitext
 I like the [[Main Page|best page]]s a lot
-!! result
+!! html
 I like the <a href="/wiki/Main_Page" title="Main Page">best pages</a> a lot
 !!end
 
@@ -15966,9 +16226,9 @@ I like the <a href="/wiki/Main_Page" title="Main Page">best pages</a> a lot
 Edit comment with section link (non-local, eg in history list)
 !! options
 comment title=[[Main Page]]
-!! input
+!! wikitext
 /* External links */ removed bogus entries
-!! result
+!! html
 <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
 
@@ -15976,9 +16236,9 @@ comment title=[[Main Page]]
 Edit comment with section link and text before it (non-local, eg in history list)
 !! options
 comment title=[[Main Page]]
-!! input
+!! wikitext
 pre-comment text /* External links */ removed bogus entries
-!! result
+!! html
 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
 
@@ -15986,9 +16246,9 @@ pre-comment text <a href="/wiki/Main_Page#External_links" title="Main Page">→<
 Edit comment with section link (local, eg in diff view)
 !! options
 comment local title=[[Main Page]]
-!! input
+!! wikitext
 /* External links */ removed bogus entries
-!! result
+!! html
 <a href="#External_links">→</a>‎<span dir="auto"><span class="autocomment">External links: </span> removed bogus entries</span>
 !!end
 
@@ -15998,9 +16258,9 @@ Edit comment with subpage link (bug 14080)
 comment
 subpage
 title=[[Subpage test]]
-!! input
+!! wikitext
 Poked at a [[/subpage]] here...
-!! result
+!! html
 Poked at a <a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">/subpage</a> here...
 !!end
 
@@ -16010,9 +16270,9 @@ Edit comment with subpage link and link text (bug 14080)
 comment
 subpage
 title=[[Subpage test]]
-!! input
+!! wikitext
 Poked at a [[/subpage|neat little page]] here...
-!! result
+!! html
 Poked at a <a href="/wiki/Subpage_test/subpage" title="Subpage test/subpage">neat little page</a> here...
 !!end
 
@@ -16021,9 +16281,9 @@ Edit comment with bogus subpage link in non-subpage NS (bug 14080)
 !! options
 comment
 title=[[Subpage test]]
-!! input
+!! wikitext
 Poked at a [[/subpage]] here...
-!! result
+!! html
 Poked at a <a href="/index.php?title=/subpage&amp;action=edit&amp;redlink=1" class="new" title="/subpage (page does not exist)">/subpage</a> here...
 !!end
 
@@ -16033,9 +16293,9 @@ Edit comment with bare anchor link (local, as on diff)
 comment
 local
 title=[[Main Page]]
-!!input
+!! wikitext
 [[#section]]
-!! result
+!! html
 <a href="#section">#section</a>
 !! end
 
@@ -16044,26 +16304,26 @@ Edit comment with bare anchor link (non-local, as on history)
 !! options
 comment
 title=[[Main Page]]
-!!input
+!! wikitext
 [[#section]]
-!! result
+!! html
 <a href="/wiki/Main_Page#section" title="Main Page">#section</a>
 !! end
 
 !! test
 Anchor starting with underscore
-!!input
+!! wikitext
 [[#_ref|One]]
-!! result
+!! html
 <p><a href="#_ref">One</a>
 </p>
 !! end
 
 !! test
 Id starting with underscore
-!!input
+!! wikitext
 <div id="_ref"></div>
-!! result
+!! html
 <div id="_ref"></div>
 
 !! end
@@ -16073,9 +16333,9 @@ Space normalisation on autocomment (bug 22784)
 !! options
 comment
 title=[[Main Page]]
-!!input
+!! wikitext
 /* __hello__world__ */
-!! result
+!! html
 <a href="/wiki/Main_Page#hello_world" title="Main Page">→</a>‎<span dir="auto"><span class="autocomment">__hello__world__</span></span>
 !! end
 
@@ -16083,9 +16343,9 @@ title=[[Main Page]]
 percent-encoding and + signs in comments (Bug 26410)
 !! options
 comment
-!!input
+!! wikitext
 [[ABC%33D% ++]] [[ABC%33D% ++|+%20]]
-!! result
+!! html
 <a href="/index.php?title=ABC3D%25_%2B%2B&amp;action=edit&amp;redlink=1" class="new" title="ABC3D% ++ (page does not exist)">ABC3D% ++</a> <a href="/index.php?title=ABC3D%25_%2B%2B&amp;action=edit&amp;redlink=1" class="new" title="ABC3D% ++ (page does not exist)">+%20</a>
 !! end
 
@@ -16093,20 +16353,20 @@ comment
 Bad images - basic functionality
 !! options
 disabled
-!! input
+!! wikitext
 [[File:Bad.jpg]]
-!! result
+!! html
 !! end
 
 !! test
 Bad images - bug 16039: text after bad image disappears
 !! options
 disabled
-!! input
+!! wikitext
 Foo bar
 [[File:Bad.jpg]]
 Bar foo
-!! result
+!! html
 <p>Foo bar
 </p><p>Bar foo
 </p>
@@ -16119,9 +16379,9 @@ showtitle
 !! config
 wgAllowDisplayTitle=true
 wgRestrictDisplayTitle=false
-!! input
+!! wikitext
 this is not the the title
-!! result
+!! html
 Parser test
 <p>this is not the the title
 </p>
@@ -16135,10 +16395,10 @@ title=[[Screen]]
 !! config
 wgAllowDisplayTitle=true
 wgRestrictDisplayTitle=false
-!! input
+!! wikitext
 this is not the the title
 {{DISPLAYTITLE:whatever}}
-!! result
+!! html
 whatever
 <p>this is not the the title
 </p>
@@ -16152,10 +16412,10 @@ title=[[Screen]]
 !! config
 wgAllowDisplayTitle=true
 wgRestrictDisplayTitle=true
-!! input
+!! wikitext
 this is not the the title
 {{DISPLAYTITLE:whatever}}
-!! result
+!! html
 Screen
 <p>this is not the the title
 </p>
@@ -16169,10 +16429,10 @@ title=[[Screen]]
 !! config
 wgAllowDisplayTitle=true
 wgRestrictDisplayTitle=true
-!! input
+!! wikitext
 this is not the the title
 {{DISPLAYTITLE:screen}}
-!! result
+!! html
 screen
 <p>this is not the the title
 </p>
@@ -16185,10 +16445,10 @@ showtitle
 title=[[Screen]]
 !! config
 wgAllowDisplayTitle=false
-!! input
+!! wikitext
 this is not the the title
 {{DISPLAYTITLE:screen}}
-!! result
+!! html
 Screen
 <p>this is not the the title
 <a href="/index.php?title=Template:DISPLAYTITLE:screen&amp;action=edit&amp;redlink=1" class="new" title="Template:DISPLAYTITLE:screen (page does not exist)">Template:DISPLAYTITLE:screen</a>
@@ -16202,9 +16462,9 @@ showtitle
 title=[[Screen]]
 !! config
 wgAllowDisplayTitle=false
-!! input
+!! wikitext
 this is not the the title
-!! result
+!! html
 Screen
 <p>this is not the the title
 </p>
@@ -16218,10 +16478,10 @@ title=[[Screen]]
 !! config
 wgAllowDisplayTitle=true
 wgRestrictDisplayTitle=true
-!! input
+!! wikitext
 this is not the the title
 {{DISPLAYTITLE:<span style="display: none;">s</span>creen}}
-!! result
+!! html
 <span style="/* attempt to bypass $wgRestrictDisplayTitle */">s</span>creen
 <p>this is not the the title
 </p>
@@ -16235,10 +16495,10 @@ title=[[Screen]]
 !! config
 wgAllowDisplayTitle=true
 wgRestrictDisplayTitle=true
-!! input
+!! wikitext
 this is not the the title
 {{DISPLAYTITLE:<span style="color: red;">s</span>creen}}
-!! result
+!! html
 <span style="color: red;">s</span>creen
 <p>this is not the the title
 </p>
@@ -16248,9 +16508,9 @@ this is not the the title
 preload: check <noinclude> and <includeonly>
 !! options
 preload
-!! input
+!! wikitext
 Hello <noinclude>cruel</noinclude><includeonly>kind</includeonly> world.
-!! result
+!! html
 Hello kind world.
 !! end
 
@@ -16258,9 +16518,9 @@ Hello kind world.
 preload: check <onlyinclude>
 !! options
 preload
-!! input
+!! wikitext
 Goodbye <onlyinclude>Hello world</onlyinclude>
-!! result
+!! html
 Hello world
 !! end
 
@@ -16268,9 +16528,9 @@ Hello world
 preload: can pass tags through if we want to
 !! options
 preload
-!! input
+!! wikitext
 <includeonly><</includeonly>includeonly>Hello world<includeonly><</includeonly>/includeonly>
-!! result
+!! html
 <includeonly>Hello world</includeonly>
 !! end
 
@@ -16278,9 +16538,9 @@ preload
 preload: check that it doesn't try to do tricks
 !! options
 preload
-!! input
+!! wikitext
 * <!-- Hello --> ''{{world}}'' {{<includeonly>subst:</includeonly>How are you}}{{ {{{|safesubst:}}} #if:1|2|3}}
-!! result
+!! html
 * <!-- Hello --> ''{{world}}'' {{subst:How are you}}{{ {{{|safesubst:}}} #if:1|2|3}}
 !! end
 
@@ -16288,12 +16548,12 @@ preload
 Play a bit with r67090 and bug 3158
 !! options
 disabled
-!! input
+!! wikitext
 <div style="width:50% !important">&nbsp;</div>
 <div style="width:50%&nbsp;!important">&nbsp;</div>
 <div style="width:50%&#160;!important">&nbsp;</div>
 <div style="border : solid;">&nbsp;</div>
-!! result
+!! html
 <div style="width:50% !important">&nbsp;</div>
 <div style="width:50% !important">&nbsp;</div>
 <div style="width:50% !important">&nbsp;</div>
@@ -16303,10 +16563,10 @@ disabled
 
 !! test
 HTML5 data attributes
-!! input
+!! wikitext
 <span data-foo="bar">Baz</span>
 <p data-abc-def_hij="">Quuz</p>
-!! result
+!! html
 <p><span data-foo="bar">Baz</span>
 </p>
 <p data-abc-def_hij="">Quuz</p>
@@ -16315,12 +16575,12 @@ HTML5 data attributes
 
 !! test
 percent-encoding and + signs in internal links (Bug 26410)
-!! input
+!! wikitext
 [[User:+%]] [[Page+title%]]
 [[%+]] [[%+|%20]] [[%+ ]] [[%+r]]
 [[%]] [[+]] [[image:%+abc%39|foo|[[bar]]]]
 [[%33%45]] [[%33%45+]]
-!! result
+!! html
 <p><a href="/index.php?title=User:%2B%25&amp;action=edit&amp;redlink=1" class="new" title="User:+% (page does not exist)">User:+%</a> <a href="/index.php?title=Page%2Btitle%25&amp;action=edit&amp;redlink=1" class="new" title="Page+title% (page does not exist)">Page+title%</a>
 <a href="/index.php?title=%25%2B&amp;action=edit&amp;redlink=1" class="new" title="%+ (page does not exist)">%+</a> <a href="/index.php?title=%25%2B&amp;action=edit&amp;redlink=1" class="new" title="%+ (page does not exist)">%20</a> <a href="/index.php?title=%25%2B&amp;action=edit&amp;redlink=1" class="new" title="%+ (page does not exist)">%+ </a> <a href="/index.php?title=%25%2Br&amp;action=edit&amp;redlink=1" class="new" title="%+r (page does not exist)">%+r</a>
 <a href="/index.php?title=%25&amp;action=edit&amp;redlink=1" class="new" title="% (page does not exist)">%</a> <a href="/index.php?title=%2B&amp;action=edit&amp;redlink=1" class="new" title="+ (page does not exist)">+</a> <a href="/index.php?title=Special:Upload&amp;wpDestFile=%25%2Babc9" class="new" title="File:%+abc9">bar</a>
@@ -16330,10 +16590,10 @@ percent-encoding and + signs in internal links (Bug 26410)
 
 !! test
 Special characters in embedded file links (bug 27679)
-!! input
+!! wikitext
 [[File:Contains & ampersand.jpg]]
 [[File:Does not exist.jpg|Title with & ampersand]]
-!! result
+!! html
 <p><a href="/index.php?title=Special:Upload&amp;wpDestFile=Contains_%26_ampersand.jpg" class="new" title="File:Contains &amp; ampersand.jpg">File:Contains &amp; ampersand.jpg</a>
 <a href="/index.php?title=Special:Upload&amp;wpDestFile=Does_not_exist.jpg" class="new" title="File:Does not exist.jpg">Title with &amp; ampersand</a>
 </p>
@@ -16342,36 +16602,36 @@ Special characters in embedded file links (bug 27679)
 
 !! test
 Confirm that 'apos' named character reference doesn't make it to output (not legal in HTML 4)
-!! input
+!! wikitext
 Text&apos;s been normalized?
-!! result
+!! html
 <p>Text&#39;s been normalized?
 </p>
 !! end
 
 !! test
 Bug 19052 U+3000 IDEOGRAPHIC SPACE should terminate free external links
-!! input
+!! wikitext
 http://www.example.org/ <-- U+3000 (vim: ^Vu3000)
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="http://www.example.org/">http://www.example.org/</a> &lt;-- U+3000 (vim: ^Vu3000)
 </p>
 !! end
 
 !! test
 Bug 19052 U+3000 IDEOGRAPHIC SPACE should terminate bracketed external links
-!! input
+!! wikitext
 [http://www.example.org/ ideograms]
-!! result
+!! html
 <p><a rel="nofollow" class="external text" href="http://www.example.org/">ideograms</a>
 </p>
 !! end
 
 !! test
 Bug 19052 U+3000 IDEOGRAPHIC SPACE should terminate external images links
-!! input
+!! wikitext
 http://www.example.org/pic.png <-- U+3000 (vim: ^Vu3000)
-!! result
+!! html
 <p><img src="http://www.example.org/pic.png" alt="pic.png" /> &lt;-- U+3000 (vim: ^Vu3000)
 </p>
 !! end
@@ -16397,9 +16657,9 @@ Template:Identical
 
 !! test
 Bug 31098 Template which includes system messages which includes the template
-!! input
+!! wikitext
 {{Identical}}
-!! result
+!! html
 <p><span class="error">Template loop detected: <a href="/wiki/Template:Identical" title="Template:Identical">Template:Identical</a></span>
 <span class="error">Template loop detected: <a href="/wiki/Template:Identical" title="Template:Identical">Template:Identical</a></span>
 </p>
@@ -16409,9 +16669,9 @@ Bug 31098 Template which includes system messages which includes the template
 Bug31490 Turkish: ucfirst 'blah'
 !! options
 language=tr
-!! input
+!! wikitext
 {{ucfirst:blah}}
-!! result
+!! html
 <p>Blah
 </p>
 !! end
@@ -16420,9 +16680,9 @@ language=tr
 Bug31490 Turkish: ucfirst 'ix'
 !! options
 language=tr
-!! input
+!! wikitext
 {{ucfirst:ix}}
-!! result
+!! html
 <p>İx
 </p>
 !! end
@@ -16431,9 +16691,9 @@ language=tr
 Bug31490 Turkish: lcfirst 'BLAH'
 !! options
 language=tr
-!! input
+!! wikitext
 {{lcfirst:BLAH}}
-!! result
+!! html
 <p>bLAH
 </p>
 !! end
@@ -16442,9 +16702,9 @@ language=tr
 Bug31490 Turkish: ucfırst (with a dotless i)
 !! options
 language=tr
-!! input
+!! wikitext
 {{ucfırst:blah}}
-!! result
+!! html
 <p><a href="/index.php?title=%C5%9Eablon:Ucf%C4%B1rst:blah&amp;action=edit&amp;redlink=1" class="new" title="Şablon:Ucfırst:blah (sayfa mevcut değil)">Şablon:Ucfırst:blah</a>
 </p>
 !! end
@@ -16453,9 +16713,9 @@ language=tr
 Bug31490 ucfırst (with a dotless i) with English language
 !! options
 language=en
-!! input
+!! wikitext
 {{ucfırst:blah}}
-!! result
+!! html
 <p><a href="/index.php?title=Template:Ucf%C4%B1rst:blah&amp;action=edit&amp;redlink=1" class="new" title="Template:Ucfırst:blah (page does not exist)">Template:Ucfırst:blah</a>
 </p>
 !! end
@@ -16464,10 +16724,10 @@ language=en
 Bug 26375: TOC with italics
 !! options
 title=[[Main Page]]
-!! input
+!! wikitext
 __TOC__
 == ''Lost'' episodes ==
-!! result
+!! html
 <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>
@@ -16482,10 +16742,10 @@ __TOC__
 Bug 26375: TOC with bold
 !! options
 title=[[Main Page]]
-!! input
+!! wikitext
 __TOC__
 == '''should be bold''' then normal text ==
-!! result
+!! html
 <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>
@@ -16500,10 +16760,10 @@ __TOC__
 Bug 33845: Headings become cursive in TOC when they contain an image
 !! options
 title=[[Main Page]]
-!! input
+!! wikitext
 __TOC__
 == Image [[Image:foobar.jpg]] ==
-!! result
+!! html
 <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>
@@ -16518,10 +16778,10 @@ __TOC__
 Bug 33845 (2): Headings become bold in TOC when they contain a blockquote
 !! options
 title=[[Main Page]]
-!! input
+!! wikitext
 __TOC__
 == <blockquote>Quote</blockquote> ==
-!! result
+!! html
 <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>
@@ -16536,12 +16796,12 @@ __TOC__
 Unclosed tags in TOC
 !! options
 title=[[Main Page]]
-!! input
+!! wikitext
 __TOC__
 == Proof: 2 < 3 ==
 <small>Hanc marginis exiguitas non caperet.</small>
 QED
-!! result
+!! html
 <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>
@@ -16556,12 +16816,12 @@ QED
 
 !! test
 Multiple tags in TOC
-!! input
+!! wikitext
 __TOC__
 == <i>Foo</i> <b>Bar</b> ==
 
 == <i>Foo</i> <blockquote>Bar</blockquote> ==
-!! result
+!! html
 <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>
@@ -16576,12 +16836,12 @@ __TOC__
 
 !! test
 Tags with parameters in TOC
-!! input
+!! wikitext
 __TOC__
 == <sup class="in-h2">Hello</sup> ==
 
 == <sup class="a > b">Evilbye</sup> ==
-!! result
+!! html
 <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>
@@ -16596,7 +16856,7 @@ __TOC__
 
 !! test
 span tags with directionality in TOC
-!! input
+!! wikitext
 __TOC__
 == <span dir="ltr">C++</span> ==
 
@@ -16607,7 +16867,7 @@ __TOC__
 == <span style="font-style: italic" dir="ltr">All attributes on these span tags must be deleted from the TOC</span> ==
 
 == <span dir="ltr" style="font-style: italic">Attributes after dir on these span tags must be deleted from the TOC</span> ==
-!! result
+!! html
 <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>
@@ -16636,20 +16896,20 @@ MediaWiki:Bug32057
 Bug 32057: Title needed when expanding <h> nodes.
 !! options
 title=[[Main Page]]
-!! input
+!! wikitext
 {{int:Bug32057}}
-!! result
+!! html
 <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
 
 !! test
 Strip marker in urlencode
-!! input
+!! wikitext
 {{urlencode:x<nowiki/>y}}
 {{urlencode:x<nowiki/>y|wiki}}
 {{urlencode:x<nowiki/>y|path}}
-!! result
+!! html
 <p>xy
 xy
 xy
 
 !! test
 Strip marker in lc
-!! input
+!! wikitext
 {{lc:x<nowiki/>y}}
-!! result
+!! html
 <p>xy
 </p>
 !! end
 
 !! test
 Strip marker in uc
-!! input
+!! wikitext
 {{uc:x<nowiki/>y}}
-!! result
+!! html
 <p>XY
 </p>
 !! end
 
 !! test
 Strip marker in formatNum
-!! input
+!! wikitext
 {{formatnum:1<nowiki/>2}}
 {{formatnum:1<nowiki/>2|R}}
-!! result
+!! html
 <p>12
 12
 </p>
@@ -16689,10 +16949,10 @@ Strip marker in formatNum
 Check noCommafy in formatNum
 !! options
 language=be-tarask
-!! input
+!! wikitext
 {{formatnum:123456.78}}
 {{formatnum:123456.78|NOSEP}}
-!! result
+!! html
 <p>123 456,78
 123456.78
 </p>
@@ -16700,11 +16960,11 @@ language=be-tarask
 
 !! test
 Wrong option for formatNum (bug 56199)
-!! input
+!! wikitext
 {{formatnum:1,234.56|Random}}
 {{formatnum:1,234.56|EVERYTHING}}
 {{formatnum:1234.56|any argument that has the string 'NOSEP'}}
-!! result
+!! html
 <p>1,234.56
 1,234.56
 1,234.56
@@ -16715,67 +16975,67 @@ Wrong option for formatNum (bug 56199)
 Strip marker in grammar
 !! options
 language=fi
-!! input
+!! wikitext
 {{grammar:elative|foo<nowiki/>bar}}
-!! result
+!! html
 <p>foobarista
 </p>
 !! end
 
 !! test
 Strip marker in padleft
-!! input
+!! wikitext
 {{padleft:|2|x<nowiki/>y}}
-!! result
+!! html
 <p>xy
 </p>
 !! end
 
 !! test
 Strip marker in padright
-!! input
+!! wikitext
 {{padright:|2|x<nowiki/>y}}
-!! result
+!! html
 <p>xy
 </p>
 !! end
 
 !! test
 Strip marker in anchorencode
-!! input
+!! wikitext
 {{anchorencode:x<nowiki/>y}}
-!! result
+!! html
 <p>xy
 </p>
 !! end
 
 !! test
 nowiki inside link inside heading (bug 18295)
-!! input
+!! wikitext
 ==[[foo|x<nowiki>y</nowiki>z]]==
-!! result
+!! html
 <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
 
 !! test
 new support for bdi element (bug 31817)
-!! input
+!! wikitext
 <p dir="rtl" lang="he">ולדימיר לנין (ברוסית: <bdi lang="ru">Владимир Ленин</bdi>, 24 באפריל 1870–22 בינואר 1924) הוא מנהיג פוליטי קומוניסטי רוסי.</p>
-!! result
+!! html
 <p dir="rtl" lang="he">ולדימיר לנין (ברוסית: <bdi lang="ru">Владимир Ленин</bdi>, 24 באפריל 1870–22 בינואר 1924) הוא מנהיג פוליטי קומוניסטי רוסי.</p>
 
 !!end
 
 !! test
 Ignore pipe between table row attributes
-!! input
+!! wikitext
 {|
 | quux
 |- id=foo | style='color: red'
 | bar
 |}
-!! result
+!! html
 <table>
 <tr>
 <td> quux
@@ -16788,11 +17048,11 @@ Ignore pipe between table row attributes
 
 !!test
 Gallery override link with WikiLink (bug 34852)
-!! input
+!! wikitext
 <gallery>
 File:foobar.jpg|caption|alt=galleryalt|link=InterWikiLink
 </gallery>
-!! result
+!! html
 <ul class="gallery mw-gallery-traditional">
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
                        <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/InterWikiLink"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div></div>
@@ -16807,11 +17067,11 @@ File:foobar.jpg|caption|alt=galleryalt|link=InterWikiLink
 
 !!test
 Gallery override link with absolute external link (bug 34852)
-!! input
+!! wikitext
 <gallery>
 File:foobar.jpg|caption|alt=galleryalt|link=http://www.example.org
 </gallery>
-!! result
+!! html
 <ul class="gallery mw-gallery-traditional">
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
                        <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="http://www.example.org"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div></div>
@@ -16826,11 +17086,11 @@ File:foobar.jpg|caption|alt=galleryalt|link=http://www.example.org
 
 !!test
 Gallery override link with malicious javascript (bug 34852)
-!! input
+!! wikitext
 <gallery>
 File:foobar.jpg|caption|alt=galleryalt|link=" onclick="alert('malicious javascript code!');
 </gallery>
-!! result
+!! html
 <ul class="gallery mw-gallery-traditional">
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
                        <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/%22_onclick%3D%22alert(%27malicious_javascript_code!%27);"><img alt="galleryalt" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div></div>
@@ -16845,11 +17105,11 @@ File:foobar.jpg|caption|alt=galleryalt|link=" onclick="alert('malicious javascri
 
 !!test
 Gallery with invalid title as link (bug 43964)
-!! input
+!! wikitext
 <gallery>
 File:foobar.jpg|link=<
 </gallery>
-!! result
+!! html
 <ul class="gallery mw-gallery-traditional">
                <li class="gallerybox" style="width: 155px"><div style="width: 155px">
                        <div class="thumb" style="width: 150px;"><div style="margin:68px auto;"><a href="/wiki/File:Foobar.jpg" class="image"><img alt="Foobar.jpg" src="http://example.com/images/thumb/3/3a/Foobar.jpg/120px-Foobar.jpg" width="120" height="14" /></a></div></div>
@@ -16862,19 +17122,19 @@ File:foobar.jpg|link=<
 
 !!test
 Language parser function
-!! input
+!! wikitext
 {{#language:ar}}
-!! result
+!! html
 <p>العربية
 </p>
 !! end
 
 !!test
 Padleft and padright as substr
-!! input
+!! wikitext
 {{padleft:|3|abcde}}
 {{padright:|3|abcde}}
-!! result
+!! html
 <p>abc
 abc
 </p>
@@ -16882,11 +17142,11 @@ abc
 
 !!test
 Special parser function
-!! input
+!! wikitext
 {{#special:RandomPage}}
 {{#special:BaDtItLe}}
 {{#special:Foobar}}
-!! result
+!! html
 <p>Special:Random
 Special:Badtitle
 Special:Foobar
@@ -16895,27 +17155,27 @@ Special:Foobar
 
 !!test
 Bug 34939 - Case insensitive link parsing ([HttP://])
-!! input
+!! wikitext
 [HttP://MediaWiki.Org/]
-!! result
+!! html
 <p><a rel="nofollow" class="external autonumber" href="HttP://MediaWiki.Org/">[1]</a>
 </p>
 !! end
 
 !!test
 Bug 34939 - Case insensitive link parsing ([HttP:// title])
-!! input
+!! wikitext
 [HttP://MediaWiki.Org/ MediaWiki]
-!! result
+!! html
 <p><a rel="nofollow" class="external text" href="HttP://MediaWiki.Org/">MediaWiki</a>
 </p>
 !! end
 
 !!test
 Bug 34939 - Case insensitive link parsing (HttP://)
-!! input
+!! wikitext
 HttP://MediaWiki.Org/
-!! result
+!! html
 <p><a rel="nofollow" class="external free" href="HttP://MediaWiki.Org/">HttP://MediaWiki.Org/</a>
 </p>
 !! end
@@ -16924,14 +17184,14 @@ HttP://MediaWiki.Org/
 Disable TOC
 !! options
 notoc
-!! input
+!! wikitext
 Lead
 == Section 1 ==
 == Section 2 ==
 == Section 3 ==
 == Section 4 ==
 == Section 5 ==
-!! result
+!! html
 <p>Lead
 </p>
 
@@ -16952,11 +17212,11 @@ Lead
 1. SOL-sensitive wikitext tokens as template-args
 !!options
 parsoid=wt2html,wt2wt
-!!input
+!! wikitext
 {{echo|*a}}
 {{echo|#a}}
 {{echo|:a}}
-!!result
+!! html
 <span about="#mwt1" typeof="mw:Transclusion">
 </span><ul about="#mwt1"><li>a</li>
 </ul>
@@ -16978,11 +17238,11 @@ parsoid=wt2html,wt2wt
 Ref: 1. ref-location should be replaced with an index span
 !!options
 parsoid
-!!input
+!! wikitext
 A <ref>foo</ref>
 B <ref name="x">foo</ref>
 C <ref name="y" />
-!!result
+!! html
 <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>
@@ -16992,10 +17252,10 @@ C <span about="#mwt3" class="reference" data-mw='{"name":"ref","attrs":{"name":"
 Ref: 2. ref-tags with identical names should all get the same index
 !!options
 parsoid
-!!input
+!! wikitext
 A <ref name="x">foo</ref>
 B <ref name="x" />
-!!result
+!! html
 <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
@@ -17004,11 +17264,11 @@ B <span about="#mwt2" class="reference" data-mw='{"name":"ref","attrs":{"name":"
 Ref: 3. spaces in ref-names should be ignored
 !!options
 parsoid
-!!input
+!! wikitext
 A <ref name="x">foo</ref>
 B <ref name=" x " />
 C <ref name= x  />
-!!result
+!! html
 <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>
@@ -17019,9 +17279,9 @@ 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
+!! wikitext
 A <ref name="constructor">foo</ref>
-!!result
+!! html
 <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
 
@@ -17029,17 +17289,17 @@ A <ref name="constructor">foo</ref>
 Ref: 5. body should accept generic wikitext
 !!options
 parsoid
-!!input
+!! wikitext
 A <ref>
  This is a '''[[bolded link]]''' and this is a {{echo|transclusion}}
 </ref>
 
 <references />
-!!result
-<p>A <span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"This is a &lt;b data-parsoid=&#39;{\"dsr\":[19,40,3,3]}&#39;>&lt;a rel=\"mw:WikiLink\" href=\"./Bolded_link\" data-parsoid=&#39;{\"stx\":\"simple\",\"a\":{\"href\":\"./Bolded_link\"},\"sa\":{\"href\":\"bolded link\"},\"dsr\":[22,37,2,2]}&#39;>bolded link&lt;/a>&lt;/b> and this is a &lt;span about=\"#mwt5\" typeof=\"mw:Transclusion\" data-mw=&#39;{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"transclusion\"}},\"i\":0}}]}&#39; data-parsoid=&#39;{\"dsr\":[55,76,null,null],\"pi\":[[{\"k\":\"1\",\"spc\":[\"\",\"\",\"\",\"\"]}]]}&#39;>transclusion&lt;/span>\n"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-1">[1]</a></span></p>
+!! html
+<p>A <span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"This is a &lt;b data-parsoid=&#39;{\"dsr\":[19,40,3,3]}&#39;>&lt;a rel=\"mw:WikiLink\" href=\"./Bolded_link\" data-parsoid=&#39;{\"stx\":\"simple\",\"a\":{\"href\":\"./Bolded_link\"},\"sa\":{\"href\":\"bolded link\"},\"dsr\":[22,37,2,2]}&#39;>bolded link&lt;/a>&lt;/b> and this is a &lt;span about=\"#mwt3\" typeof=\"mw:Transclusion\" data-mw=&#39;{\"parts\":[{\"template\":{\"target\":{\"wt\":\"echo\",\"href\":\"./Template:Echo\"},\"params\":{\"1\":{\"wt\":\"transclusion\"}},\"i\":0}}]}&#39; data-parsoid=&#39;{\"dsr\":[55,76,null,null],\"pi\":[[{\"k\":\"1\",\"spc\":[\"\",\"\",\"\",\"\"]}]]}&#39;>transclusion&lt;/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 class="references" typeof="mw:Extension/references" about="#mwt4" data-mw='{"name":"references","attrs":{}}'>
-<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="#mwt5" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"transclusion"}},"i":0}}]}'>transclusion</span>
+<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='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"transclusion"}},"i":0}}]}'>transclusion</span>
 </li>
 </ol>
 !!end
@@ -17048,7 +17308,7 @@ A <ref>
 Ref: 6. indent-pres should not be output in ref-body
 !!options
 parsoid
-!!input
+!! wikitext
 A <ref>
  foo
  bar
@@ -17056,7 +17316,7 @@ A <ref>
 </ref>
 
 <references />
-!!result
+!! html
 <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 class="references" typeof="mw:Extension/references" about="#mwt3" data-mw='{"name":"references","attrs":{}}'>
@@ -17071,7 +17331,7 @@ A <ref>
 Ref: 7. No p-wrapping in ref-body
 !!options
 parsoid
-!!input
+!! wikitext
 A <ref>
 foo
 
@@ -17086,7 +17346,7 @@ booz
 </ref>
 
 <references />
-!!result
+!! html
 <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" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
@@ -17108,11 +17368,11 @@ booz
 Ref: 8. transclusion wikitext has lower precedence
 !!options
 parsoid
-!!input
+!! wikitext
 A <ref> foo {{echo|</ref> B C}}
 
 <references />
-!!result
+!! html
 <p>A <span class="reference" data-mw="{&quot;name&quot;:&quot;ref&quot;,&quot;body&quot;:{&quot;html&quot;:&quot;foo <span typeof=\&quot;mw:Nowiki\&quot; data-parsoid='{\&quot;src\&quot;:\&quot;{{\&quot;,\&quot;dsr\&quot;:[12,14,0,0]}'>{{</span>echo|&quot;},&quot;attrs&quot;:{}}" 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 class="references" typeof="mw:Extension/references" data-mw="{&quot;name&quot;:&quot;references&quot;,&quot;attrs&quot;:{}}">
 <li id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo <span typeof="mw:Nowiki">{{</span>echo|</li>
@@ -17123,10 +17383,10 @@ A <ref> foo {{echo|</ref> B C}}
 Ref: 9. unclosed comments should not leak out of ref-body
 !!options
 parsoid
-!!input
+!! wikitext
 A <ref> foo <!--</ref> B C
 <references />
-!!result
+!! html
 <p>A <span class="reference" data-mw='{"name":"ref","body":{"html":"foo &lt;!---->"},"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 class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
 <li id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo </li>
@@ -17137,16 +17397,16 @@ A <ref> foo <!--</ref> B C
 Ref: 10. Unclosed HTML tags should not leak out of ref-body
 !!options
 parsoid
-!!input
+!! wikitext
 A <ref> <b> foo </ref> B C
 
 <references />
-!!result
-<p data-parsoid='{"dsr":[0,26,0,0]}'>A <span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"&lt;b data-parsoid=&#39;{\"stx\":\"html\",\"autoInsertedEnd\":true,\"dsr\":[8,16,3,0]}&#39;> foo &lt;/b>"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"&lt;ref> &lt;b> foo &lt;/ref>","dsr":[2,22,5,6]}'><a href="#cite_note-1">[1]</a></span> B C</p>
+!! html
+<p>A <span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"&lt;b data-parsoid=&#39;{\"stx\":\"html\",\"autoInsertedEnd\":true,\"dsr\":[8,16,3,0]}&#39;> foo &lt;/b>"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"&lt;ref> &lt;b> foo &lt;/ref>"}'><a href="#cite_note-1">[1]</a></span> B C</p>
 
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt4" data-parsoid='{"src":"&lt;references />","dsr":[28,42,2,2]}' data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1" data-parsoid="{}"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> <b data-parsoid='{"stx":"html","autoInsertedEnd":true,"dsr":[8,16,3,0]}'> foo </b></li>
+<ol class="references" typeof="mw:Extension/references" about="#mwt4" data-parsoid='{"src":"&lt;references />"}' data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1" data-parsoid="{}"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> <b data-parsoid='{"stx":"html","autoInsertedEnd":true}'> foo </b></li>
 </ol>
 !!end
 
@@ -17154,26 +17414,26 @@ A <ref> <b> foo </ref> B C
 Ref: 11. ref-tags acts like an inline element wrt P-wrapping
 !!options
 parsoid
-!!input
+!! wikitext
 A <ref>foo</ref> B
 C <ref>bar</ref> D
-!!result
-<p data-parsoid='{"dsr":[0,37,0,0]}'>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" data-parsoid='{"src":"&lt;ref>foo&lt;/ref>","dsr":[2,16,5,6]}'><a href="#cite_note-1">[1]</a></span> B
-C <span about="#mwt4" class="reference" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{}}' id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"&lt;ref>bar&lt;/ref>","dsr":[21,35,5,6]}'><a href="#cite_note-2">[2]</a></span> D</p>
+!! html
+<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" data-parsoid='{"src":"&lt;ref>foo&lt;/ref>"}'><a href="#cite_note-1">[1]</a></span> B
+C <span about="#mwt4" class="reference" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{}}' id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"&lt;ref>bar&lt;/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
+!! wikitext
 <!--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
+!! html
 <p><!--the newline at the end of this line moves out of the p-tag-->a</p>
 
 
 Ref: 13. ref-tags are not SOL-transparent and block indent-pres
 !!options
 parsoid
-!!input
+!! wikitext
 <ref>foo</ref> A
 <ref>bar
 </ref> B
-!!result
+!! html
 <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
@@ -17201,14 +17461,14 @@ parsoid
 Ref: 14. A nested ref-tag should be emitted as plain text
 !!options
 parsoid
-!!input
+!! wikitext
 <ref>foo <ref>bar</ref> baz</ref>
 
 <references />
-!!result
-<p data-parsoid='{"dsr":[0,33,0,0]}'><span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"foo &amp;lt;ref>bar&amp;lt;/ref> baz"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"&lt;ref>foo &lt;ref>bar&lt;/ref> baz&lt;/ref>","dsr":[0,33,5,6]}'><a href="#cite_note-1">[1]</a></span></p>
+!! html
+<p><span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"foo &amp;lt;ref>bar&amp;lt;/ref> baz"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"&lt;ref>foo &lt;ref>bar&lt;/ref> baz&lt;/ref>"}'><a href="#cite_note-1">[1]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt5" data-parsoid='{"src":"&lt;references />","dsr":[35,49,2,2]}' data-mw='{"name":"references","attrs":{}}'>
+<ol class="references" typeof="mw:Extension/references" about="#mwt5" data-parsoid='{"src":"&lt;references />"}' data-mw='{"name":"references","attrs":{}}'>
 <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>bar&lt;/ref> baz</li>
 </ol>
 !!end
@@ -17217,12 +17477,12 @@ parsoid
 Ref: 15. ref-tags with identical names should get identical indexes
 !!options
 parsoid
-!!input
+!! wikitext
 A1 <ref name="a">foo</ref> A2 <ref name="a" />
 B1 <ref name="b" /> B2 <ref name="b">bar</ref>
 
 <references />
-!!result
+!! html
 <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>
 
@@ -17235,11 +17495,11 @@ B1 <span about="#mwt7" class="reference" data-mw='{"name":"ref","attrs":{"name":
 Ref: 16. Tokenizer should accept non-standard whitespace in <ref> and </ref> tags
 !!options
 parsoid=wt2html
-!!input
+!! wikitext
 A <ref >foo</ref >
 
 <references />
-!!result
+!! html
 <p>A <span 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 class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'>
@@ -17250,9 +17510,9 @@ A <ref >foo</ref >
 References: 1. references tag without any refs should be handled properly
 !!options
 parsoid
-!!input
+!! wikitext
 <references />
-!!result
+!! html
 <ol about="#mwt2" class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'></ol>
 !!end
 
@@ -17260,14 +17520,14 @@ parsoid
 References: 2. references tag with group only outputs references from that group
 !!options
 parsoid
-!!input
+!! wikitext
 A <ref group="a">foo</ref>
 B <ref group="b">bar</ref>
 
 <references group="a" />
-!!result
+!! html
 <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>
+B <span about="#mwt4" class="reference" data-mw='{"name":"ref","body":{"html":"bar"},"attrs":{"group":"b"}}' id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-2">[b 1]</a></span></p>
 
 <ol about="#mwt6" class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{"group":"a"}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo</li>
 </ol>
@@ -17277,7 +17537,7 @@ B <span about="#mwt4" class="reference" data-mw='{"name":"ref","body":{"html":"b
 References: 3. ref list should be cleared after processing references
 !!options
 parsoid
-!!input
+!! wikitext
 A <ref>foo</ref>
 
 <references />
@@ -17285,15 +17545,15 @@ A <ref>foo</ref>
 B <ref>bar</ref>
 
 <references />
-!!result
+!! html
 <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" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'><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>
+<p>B <span about="#mwt6" 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">[1]</a></span></p>
 
-<ol about="#mwt8" class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-1" id="cite_note-1"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> bar</li>
+<ol about="#mwt8" class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2-0">↑</a></span> bar</li>
 </ol>
 !!end
 
@@ -17301,7 +17561,7 @@ B <ref>bar</ref>
 References: 4. only referenced group should be cleared after processing references
 !!options
 parsoid
-!!input
+!! wikitext
 A <ref group="a">afoo</ref>
 B <ref>bfoo</ref>
 
@@ -17310,16 +17570,16 @@ B <ref>bfoo</ref>
 C <ref>cfoo</ref>
 
 <references />
-!!result
+!! html
 <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>
+B <span about="#mwt4" class="reference" data-mw='{"name":"ref","body":{"html":"bfoo"},"attrs":{}}' id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"<ref>bfoo</ref>"}'><a href="#cite_note-2">[1]</a></span></p>
 
 <ol about="#mwt6" class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{"group":"a"}}'><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>
+<p>C <span about="#mwt8" class="reference" data-mw='{"name":"ref","body":{"html":"cfoo"},"attrs":{}}' id="cite_ref-3-0" rel="dc:references" typeof="mw:Extension/ref"><a href="#cite_note-3">[2]</a></span></p>
 
-<ol about="#mwt10" class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'><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 about="#mwt10" class="references" typeof="mw:Extension/references" data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-2" id="cite_note-2"><span rel="mw:referencedBy"><a href="#cite_ref-2-0">↑</a></span> bfoo</li><li about="#cite_note-3" id="cite_note-3"><span rel="mw:referencedBy"><a href="#cite_ref-3-0">↑</a></span> cfoo</li>
 </ol>
 !!end
 
@@ -17327,7 +17587,7 @@ B <span about="#mwt4" class="reference" data-mw='{"name":"ref","body":{"html":"b
 References: 5. ref tags in references should be processed while ignoring all other content
 !!options
 parsoid
-!!input
+!! wikitext
 A <ref name="a" />
 B <ref name="b">bar</ref>
 
@@ -17335,12 +17595,12 @@ B <ref name="b">bar</ref>
 <ref name="a">foo</ref>
 This should just get lost.
 </references>
-!!result
-<p data-parsoid='{"dsr":[0,57,0,0]}'>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" data-parsoid='{"src":"&lt;ref name=\"a\" />","dsr":[2,18,16,0]}'><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" data-parsoid='{"src":"&lt;ref name=\"b\">bar&lt;/ref>","dsr":[21,44,14,6]}'><a href="#cite_note-b-2">[2]</a></span></p>
+!! html
+<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" data-parsoid='{"src":"&lt;ref name=\"a\" />"}'><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" data-parsoid='{"src":"&lt;ref name=\"b\">bar&lt;/ref>"}'><a href="#cite_note-b-2">[2]</a></span></p>
 
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-parsoid='{"src":"&lt;references>\n&lt;ref name=\"a\">foo&lt;/ref>\nThis should just get lost.\n&lt;/references>","dsr":[46,123,2,2]}' data-mw='{"name":"references","body":{"extsrc":"&lt;ref name=\"a\">foo&lt;/ref>\nThis should just get lost.","html":"\n&lt;span about=\"#mwt8\" class=\"reference\" data-mw=&#39;{\"name\":\"ref\",\"body\":{\"html\":\"foo\"},\"attrs\":{\"name\":\"a\"}}&#39; rel=\"dc:references\" typeof=\"mw:Extension/ref\">&lt;a href=\"#cite_note-a-1\">[1]&lt;/a>&lt;/span>\n"},"attrs":{}}'>
+<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-parsoid='{"src":"&lt;references>\n&lt;ref name=\"a\">foo&lt;/ref>\nThis should just get lost.\n&lt;/references>"}' data-mw='{"name":"references","body":{"extsrc":"&lt;ref name=\"a\">foo&lt;/ref>\nThis should just get lost.","html":"\n&lt;span about=\"#mwt8\" class=\"reference\" data-mw=&#39;{\"name\":\"ref\",\"body\":{\"html\":\"foo\"},\"attrs\":{\"name\":\"a\"}}&#39; rel=\"dc:references\" typeof=\"mw:Extension/ref\">&lt;a href=\"#cite_note-a-1\">[1]&lt;/a>&lt;/span>\n"},"attrs":{}}'>
 <li about="#cite_note-a-1" id="cite_note-a-1" data-parsoid="{}"><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" data-parsoid="{}"><span rel="mw:referencedBy"><a href="#cite_ref-b-2-0">↑</a></span> bar</li>
 </ol>
@@ -17350,9 +17610,9 @@ B <span about="#mwt4" class="reference" data-mw='{"name":"ref","body":{"html":"b
 References: 6. <references /> from a transclusion
 !!options
 parsoid
-!!input
+!! wikitext
 <ref>Foo</ref> {{echo|<references />}}
-!!result
+!! html
 <span about="#mwt3" 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> <ol class="references" typeof="mw:Extension/references mw:Transclusion" about="#mwt4" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&lt;references />"}},"i":0}}]}'><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
 
@@ -17360,28 +17620,51 @@ parsoid
 References: 7. Multiple references tags (one without and one with nested refs) should be correctly handled
 !! options
 parsoid
-!! input
+!! wikitext
 A <ref>foo bar for a</ref>
-B <ref name="b" />
+B <ref group="X" name="b" />
 
 <references />
 
-<references>
+<references group="X">
 <ref name="b">foo</ref>
 </references>
-!! result
-<p data-parsoid='{"dsr":[0,45,0,0]}'>A <span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"foo bar for a"},"attrs":{}}' id="cite_ref-1-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"&lt;ref>foo bar for a&lt;/ref>","dsr":[2,26,5,6]}'><a href="#cite_note-1">[1]</a></span>
-B <span about="#mwt4" class="reference" data-mw='{"name":"ref","attrs":{"name":"b"}}' id="cite_ref-b-2-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"&lt;ref name=\"b\" />","dsr":[29,45,16,0]}'><a href="#cite_note-b-2">[2]</a></span></p>
+!! html
+<p>A <span about="#mwt2" class="reference" data-mw='{"name":"ref","body":{"html":"foo bar for a"},"attrs":{}}' id="cite_ref-2-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"&lt;ref>foo bar for a&lt;/ref>"}'><a href="#cite_note-2" data-parsoid="{}">[2]</a></span>
+B <span about="#mwt4" class="reference" data-mw='{"name":"ref","attrs":{"group":"X","name":"b"}}' id="cite_ref-b-3-0" rel="dc:references" typeof="mw:Extension/ref" data-parsoid='{"src":"&lt;ref name=\"b\" group=\"X\" />"}'><a href="#cite_note-b-3" data-parsoid="{}">[X 1]</a></span></p>
+
+<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-parsoid='{"src":"&lt;references />"}' data-mw='{"name":"references","attrs":{}}'><li about="#cite_note-b-1" id="cite_note-b-1" data-parsoid="{}"><span rel="mw:referencedBy" data-parsoid="{}">↑</span> foo</li><li about="#cite_note-2" id="cite_note-2" data-parsoid="{}"><span rel="mw:referencedBy" data-parsoid="{}"><a href="#cite_ref-2-0" data-parsoid="{}">↑</a></span> foo bar for a</li></ol>
+
+<ol class="references" typeof="mw:Extension/references" about="#mwt8" data-parsoid='{"src":"&lt;references group=\"X\">\n&lt;ref name=\"b\">foo&lt;/ref>\n&lt;/references>","group":"X"}' data-mw='{"name":"references","body":{"extsrc":"&lt;ref name=\"b\">foo&lt;/ref>","html":"\n&lt;span about=\"#mwt10\" class=\"reference\" data-mw=&#39;{\"name\":\"ref\",\"body\":{\"html\":\"foo\"},\"attrs\":{\"name\":\"b\"}}&#39; rel=\"dc:references\" typeof=\"mw:Extension/ref\">&lt;a href=\"#cite_note-b-1\">[1]&lt;/a>&lt;/span>\n"},"attrs":{"group":"X"}}'><li about="#cite_note-b-3" id="cite_note-b-3" data-parsoid="{}"><span rel="mw:referencedBy" data-parsoid="{}"><a href="#cite_ref-b-3-0" data-parsoid="{}">↑</a></span> </li></ol>
+!! end
+
+# This test is wt2html only because we're permitting the serializer to produce
+# dirty diffs, normalizing the unclosed references to the self-closed version.
+!! test
+Generate references for unclosed references tag
+!! options
+parsoid=wt2html
+!! wikitext
+a<ref>foo</ref>
 
+<references>
+!! html
+<p data-parsoid='{}'>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" data-parsoid='{"src":"&lt;ref>foo&lt;/ref>"}'><a href="#cite_note-1" data-parsoid="{}">[1]</a></span></p>
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt6" data-parsoid='{"src":"&lt;references />","dsr":[47,61,2,2]}' data-mw='{"name":"references","attrs":{}}'>
-<li about="#cite_note-1" id="cite_note-1" data-parsoid="{}"><span rel="mw:referencedBy"><a href="#cite_ref-1-0">↑</a></span> foo bar for a</li>
-<li about="#cite_note-b-2" id="cite_note-b-2" data-parsoid="{}"><span rel="mw:referencedBy"><a href="#cite_ref-b-2-0">↑</a></span> </li></ol>
 
+<ol class="references" typeof="mw:Extension/references" about="#mwt4" data-parsoid='{"src":"&lt;references>"}' data-mw='{"name":"references","attrs":{}}'>
+<li about="#cite_note-1" id="cite_note-1" data-parsoid="{}"><span rel="mw:referencedBy" data-parsoid="{}"><a href="#cite_ref-1-0" data-parsoid="{}">↑</a></span> foo</li></ol>
+!! end
 
-<ol class="references" typeof="mw:Extension/references" about="#mwt8" data-parsoid='{"src":"&lt;references>\n&lt;ref name=\"b\">foo&lt;/ref>\n&lt;/references>","dsr":[63,113,2,2]}' data-mw='{"name":"references","body":{"extsrc":"&lt;ref name=\"b\">foo&lt;/ref>","html":"\n&lt;span about=\"#mwt10\" class=\"reference\" data-mw=&#39;{\"name\":\"ref\",\"body\":{\"html\":\"foo\"},\"attrs\":{\"name\":\"b\"}}&#39; rel=\"dc:references\" typeof=\"mw:Extension/ref\">&lt;a href=\"#cite_note-b-1\">[1]&lt;/a>&lt;/span>\n"},"attrs":{}}'>
-<li about="#cite_note-b-1" id="cite_note-b-1" data-parsoid="{}"><span rel="mw:referencedBy">↑</span> foo</li>
-</ol>
+!! test
+New reference serializes on its own line
+!! options
+parsoid=wt2wt,html2wt
+!! wikitext
+foo
+<references />
+!! html
+foo<ol class="references" typeof="mw:Extension/references" about="#mwt2" data-mw='{"name":"references","attrs":{}}'></ol>
 !! end
 
 #### ----------------------------------------------------------------
@@ -17410,7 +17693,7 @@ B <span about="#mwt4" class="reference" data-mw='{"name":"ref","attrs":{"name":"
 Headings: 0. Unnested
 !! options
 parsoid
-!! input
+!! wikitext
 <nowiki>=foo=</nowiki>
 
 <nowiki> =foo= </nowiki>
@@ -17418,7 +17701,7 @@ parsoid
 <nowiki>=foo=</nowiki>
 
 =foo''a''<nowiki>=</nowiki>
-!! result
+!! html
 <p><span typeof="mw:Nowiki">=foo=</span></p>
 
 <p><span typeof="mw:Nowiki"> =foo= </span>
@@ -17433,7 +17716,7 @@ Headings: 1. Nested inside html
 (New headings and existing headings are handled differently)
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 = =foo= =
 
 == =foo= ==
@@ -17447,7 +17730,7 @@ parsoid=html2wt
 =====<nowiki>=foo=</nowiki>=====
 ======<nowiki>=foo=</nowiki>======
 
-!! result
+!! html
 <h1>=foo=</h1>
 <h2>=foo=</h2>
 <h3>=foo=</h3>
@@ -17464,7 +17747,7 @@ parsoid=html2wt
 Headings: 2. Outside heading nest on a single line <h1>foo</h1>*bar
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 = foo =
 <nowiki>*</nowiki>bar
 
@@ -17473,7 +17756,7 @@ parsoid=html2wt
 
 = foo =
 <nowiki>=bar=</nowiki>
-!! result
+!! html
 <h1>foo</h1>*bar
 <h1>foo</h1>=bar
 <h1>foo</h1>=bar=
@@ -17483,9 +17766,9 @@ parsoid=html2wt
 Headings: 3. Nested inside html with wikitext split by html tags
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 = ='''bold'''<nowiki>foo=</nowiki> =
-!! result
+!! html
 <h1>=<b>bold</b><span typeof="mw:Nowiki">foo=</span></h1>
 !!end
 
@@ -17493,7 +17776,7 @@ parsoid=html2wt
 Headings: 4a. No escaping needed (testing just h1 and h2)
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 = =foo =
 
 = foo= =
@@ -17509,7 +17792,7 @@ parsoid=html2wt
 = ''=''foo= =
 
 = <nowiki>=</nowiki> =
-!! result
+!! html
 <h1>=foo</h1>
 <h1>foo=</h1>
 <h1> =foo= </h1>
@@ -17524,11 +17807,11 @@ parsoid=html2wt
 Headings: 4b. No escaping needed (inside p-tags)
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 ===
 =foo= x
 =foo= <s></s>
-!! result
+!! html
 <p>===
 =foo= x
 =foo= <s></s>
@@ -17539,7 +17822,7 @@ parsoid=html2wt
 Headings: 5. Empty headings
 !! options
 parsoid
-!! input
+!! wikitext
 =<nowiki/>=
 
 ==<nowiki/>==
@@ -17551,7 +17834,7 @@ parsoid
 =====<nowiki/>=====
 
 ======<nowiki/>======
-!! result
+!! html
 <h1></h1>
 <h2></h2>
 <h3></h3>
@@ -17564,7 +17847,7 @@ parsoid
 Headings: 6a. Heading chars in SOL context (with trailing spaces)
 !! options
 parsoid
-!! input
+!! wikitext
 <nowiki>=a=</nowiki>
 
 <nowiki>=a=</nowiki> 
@@ -17572,7 +17855,7 @@ parsoid
 <nowiki>=a=</nowiki>   
 
 <nowiki>=a=</nowiki>   
-!! result
+!! html
 <p>=a=</p>
 <p>=a= </p>
 <p>=a= </p>
@@ -17583,7 +17866,7 @@ parsoid
 Headings: 6b. Heading chars in SOL context (with trailing newlines)
 !! options
 parsoid
-!! input
+!! wikitext
 <nowiki>=a=
 b</nowiki>
 
@@ -17595,7 +17878,7 @@ b</nowiki>
 
 <nowiki>=a=     
 b</nowiki>
-!! result
+!! html
 <p>=a=
 b</p>
 <p>=a= 
@@ -17611,10 +17894,10 @@ b</p>
 Headings: 6c. Heading chars in SOL context (leading newline break)
 !! options
 parsoid
-!! input
+!! wikitext
 a
 <nowiki>=b=</nowiki>
-!! result
+!! html
 <p>a
 =b=</p>
 !!end
 Headings: 6d. Heading chars in SOL context (with interspersed comments)
 !! options
 parsoid
-!! input
+!! wikitext
 <!--c0--><nowiki>=a=</nowiki>
 
 <!--c1--><nowiki>=a=</nowiki> <!--c2-->         <!--c3-->
-!! result
+!! html
 <p><!--c0-->=a=</p>
 <p><!--c1-->=a= <!--c2-->       <!--c3--></p>
 !!end
@@ -17636,9 +17919,9 @@ parsoid
 Headings: 6d. Heading chars in SOL context (No escaping needed)
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 =a=<div>b</div>
-!! result
+!! html
 =a=<div>b</div>
 !!end
 
@@ -17655,11 +17938,11 @@ parsoid=html2wt
 
 !! test
 Lists: 0. Outside nests
-!! input
+!! wikitext
 <nowiki>*</nowiki>foo
 
 <nowiki>#</nowiki>foo
-!! result
+!! html
 <p>*foo
 </p><p>#foo
 </p>
@@ -17667,7 +17950,7 @@ Lists: 0. Outside nests
 
 !! test
 Lists: 1. Nested inside html
-!! input
+!! wikitext
 *<nowiki>*foo</nowiki>
 
 *<nowiki>#foo</nowiki>
@@ -17683,7 +17966,7 @@ Lists: 1. Nested inside html
 #<nowiki>:foo</nowiki>
 
 #<nowiki>;foo</nowiki>
-!! result
+!! html
 <ul>
 <li>*foo
 </li>
@@ -17721,7 +18004,7 @@ Lists: 1. Nested inside html
 
 !! test
 Lists: 2. Inside definition lists
-!! input
+!! wikitext
 ;<nowiki>;foo</nowiki>
 
 ;<nowiki>:foo</nowiki>
@@ -17730,7 +18013,7 @@ Lists: 2. Inside definition lists
 :bar
 
 :<nowiki>:foo</nowiki>
-!! result
+!! html
 <dl>
 <dt>;foo
 </dt>
@@ -17754,11 +18037,11 @@ Lists: 2. Inside definition lists
 
 !! test
 Lists: 3. Only bullets at start of text should be escaped
-!! input
+!! wikitext
 *<nowiki>*foo*bar</nowiki>
 
 *<nowiki>*foo</nowiki>''it''*bar
-!! result
+!! html
 <ul>
 <li>*foo*bar
 </li>
@@ -17774,7 +18057,7 @@ Lists: 3. Only bullets at start of text should be escaped
 Lists: 4. No escapes needed
 !! options
 parsoid
-!! input
+!! wikitext
 *foo*bar
 
 *''foo''*bar
@@ -17782,7 +18065,7 @@ parsoid
 *[[Foo]]: bar
 
 *[[Foo]]*bar
-!! result
+!! html
 <ul>
 <li>foo*bar
 </li>
@@ -17803,7 +18086,7 @@ parsoid
 
 !! test
 Lists: 5. No unnecessary escapes
-!! input
+!! wikitext
 * bar <span><nowiki>[[foo]]</nowiki></span>
 
 *=bar <span><nowiki>[[foo]]</nowiki></span>
@@ -17815,7 +18098,7 @@ Lists: 5. No unnecessary escapes
 *=bar <span>foo]]</span>=
 
 * <s></s>: a
-!! result
+!! html
 <ul>
 <li> bar <span>[[foo]]</span>
 </li>
@@ -17847,18 +18130,18 @@ Lists: 5. No unnecessary escapes
 Lists: 6. Escape bullets in SOL position
 !! options
 parsoid
-!! input
+!! wikitext
 <!--cmt--><nowiki>*foo</nowiki>
-!! result
+!! html
 <p><!--cmt--><span typeof="mw:Nowiki">*foo</span></p>
 !!end
 
 !! test
 Lists: 7. Escape bullets in a multi-line context
-!! input
+!! wikitext
 a
 <nowiki>*</nowiki>b
-!! result
+!! html
 <p>a
 *b
 </p>
 HRs: 1. Single line
 !! options
 parsoid
-!! input
+!! wikitext
 ----<nowiki>----</nowiki>
 ----=foo=
 ----*foo
-!! result
+!! html
 <hr><span typeof="mw:Nowiki">----</span>
 <hr>=foo=
 <hr>*foo
@@ -17903,10 +18186,10 @@ parsoid
 
 !! test
 Tables: 1a. Simple example
-!! input
+!! wikitext
 <nowiki>{|
 |}</nowiki>
-!! result
+!! html
 <p>{|
 |}
 </p>
@@ -17914,27 +18197,27 @@ Tables: 1a. Simple example
 
 !! test
 Tables: 1b. No escaping needed
-!! input
+!! wikitext
 !foo
-!! result
+!! html
 <p>!foo
 </p>
 !! end
 
 !! test
 Tables: 1c. No escaping needed
-!! input
+!! wikitext
 |foo
-!! result
+!! html
 <p>|foo
 </p>
 !! end
 
 !! test
 Tables: 1d. No escaping needed
-!! input
+!! wikitext
 |}foo
-!! result
+!! html
 <p>|}foo
 </p>
 !! end
@@ -17943,13 +18226,13 @@ Tables: 1d. No escaping needed
 Tables: 2a. Nested in td
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 {|
 |<nowiki>foo|bar</nowiki>
 |-
 |x<div><nowiki>a|b</nowiki></div>
 |}
-!! result
+!! html
 <table><tbody><tr>
 <td>foo|bar</td></tr>
 <tr><td>x<div>a|b</div></td>
@@ -17960,12 +18243,12 @@ parsoid=html2wt
 Tables: 2b. Nested in td
 !! options
 parsoid
-!! input
+!! wikitext
 {|
 |<nowiki>foo||bar</nowiki>
 |''it''<nowiki>foo||bar</nowiki>
 |}
-!! result
+!! html
 <table><tbody><tr>
 <td><span typeof="mw:Nowiki">foo||bar</span></td>
 <td><i>it</i><span typeof="mw:Nowiki">foo||bar</span></td></tr></tbody></table>
@@ -17975,11 +18258,11 @@ parsoid
 Tables: 2c. Nested in td -- no escaping needed
 !! options
 parsoid
-!! input
+!! wikitext
 {|
 |foo!!bar
 |}
-!! result
+!! html
 <table><tbody><tr><td>foo!!bar
 </td></tr></tbody></table>
 
@@ -17989,11 +18272,11 @@ parsoid
 Tables: 3a. Nested in th
 !! options
 parsoid
-!! input
+!! wikitext
 {|
 !foo!bar
 |}
-!! result
+!! html
 <table><tbody><tr><th>foo!bar
 </th></tr></tbody></table>
 
@@ -18003,11 +18286,11 @@ parsoid
 Tables: 3b. Nested in th
 !! options
 parsoid
-!! input
+!! wikitext
 {|
 !<nowiki>foo!!bar</nowiki>
 |}
-!! result
+!! html
 <table>
 <tbody><tr><th><span typeof="mw:Nowiki">foo!!bar</span></th></tr>
 </tbody></table>
@@ -18017,11 +18300,11 @@ parsoid
 Tables: 3c. Nested in th -- no escaping needed
 !! options
 parsoid
-!! input
+!! wikitext
 {|
 !<nowiki>foo||bar</nowiki>
 |}
-!! result
+!! html
 <table><tbody><tr>
 <th><span typeof="mw:Nowiki">foo||bar</span></th></tr></tbody></table>
 !! end
@@ -18030,13 +18313,13 @@ parsoid
 Tables: 4a. Escape -
 !! options
 parsoid
-!! input
+!! wikitext
 {|
 !-bar
 |-
 |<nowiki>-bar</nowiki>
 |}
-!! result
+!! html
 <table><tbody>
 <tr><th>-bar</th></tr>
 <tr>
@@ -18047,13 +18330,13 @@ parsoid
 Tables: 4b. Escape +
 !! options
 parsoid
-!! input
+!! wikitext
 {|
 !+bar
 |-
 |<nowiki>+bar</nowiki>
 |}
-!! result
+!! html
 <table><tbody>
 <tr><th>+bar</th></tr>
 <tr>
@@ -18064,7 +18347,7 @@ parsoid
 Tables: 4c. No escaping needed
 !! options
 parsoid
-!! input
+!! wikitext
 {|
 |foo-bar
 |foo+bar
@@ -18080,7 +18363,7 @@ bar|baz
 |x
 <div>a|b</div>
 |}
-!! result
+!! html
 <table><tbody>
 <tr><td>foo-bar</td><td>foo+bar</td></tr>
 <tr><td><i>foo</i>-bar</td><td><i>foo</i>+bar</td></tr>
@@ -18097,13 +18380,13 @@ bar|baz
 Tables: 4d. No escaping needed
 !! options
 parsoid
-!! input
+!! wikitext
 {|
 |[[Foo]]-bar
 ||+1
 ||-2
 |}
-!! result
+!! html
 <table>
 <tbody><tr><td><a rel="mw:WikiLink" href="./Foo">Foo</a>-bar</td>
 <td data-parsoid='{"startTagSrc":"|","attrSepSrc":"|"}'>+1</td>
@@ -18111,6 +18394,23 @@ parsoid
 </tbody></table>
 !! end
 
+!! test
+Tables: Digest broken attributes on table and tr tag
+!! options
+parsoid=wt2html
+!! wikitext
+{| || |} ++
+|- || || ++ --
+|- > [
+|}
+!! html
+<table>
+<tbody>
+<tr></tr>
+<tr></tr>
+</tbody></table>
+!! end
+
 #### --------------- Links ----------------
 #### 1. Quote marks in link text
 #### 2. Wikilinks: Escapes needed
@@ -18122,9 +18422,9 @@ parsoid
 Links 1. Quote marks in link text
 !! options
 parsoid
-!! input
+!! wikitext
 [[Foo|Foo<nowiki>''boo''</nowiki>]]
-!! result
+!! html
 <a rel="mw:WikiLink" href="Foo">Foo''boo''</a>
 !! end
 
@@ -18132,18 +18432,20 @@ parsoid
 Links 2. WikiLinks: Escapes needed
 !! options
 parsoid
-!! input
-[[Foo|<nowiki>[Foobar]</nowiki>]]
+!! wikitext
+[[Foo|[Foobar]]]
 [[Foo|<nowiki>Foobar]</nowiki>]]
 [[Foo|x [Foobar] x]]
-[[Foo|<nowiki>x [http://google.com g] x</nowiki>]]
+[[Foo|x <nowiki>[http://google.com g]</nowiki> x]]
 [[Foo|<nowiki>[[Bar]]</nowiki>]]
 [[Foo|<nowiki>x [[Bar]] x</nowiki>]]
 [[Foo|<nowiki>|Bar</nowiki>]]
 [[Foo|<nowiki>]]bar</nowiki>]]
 [[Foo|<nowiki>[[bar</nowiki>]]
+[[Foo|<nowiki>x [[ y</nowiki>]]
+[[Foo|<nowiki>x ]] y</nowiki>]]
 [[Foo|<nowiki>x ]] y [[ z</nowiki>]]
-!! result
+!! html
 <a href="Foo" rel="mw:WikiLink">[Foobar]</a>
 <a href="Foo" rel="mw:WikiLink">Foobar]</a>
 <a href="Foo" rel="mw:WikiLink">x [Foobar] x</a>
@@ -18153,6 +18455,8 @@ parsoid
 <a href="Foo" rel="mw:WikiLink">|Bar</a>
 <a href="Foo" rel="mw:WikiLink">]]bar</a>
 <a href="Foo" rel="mw:WikiLink">[[bar</a>
+<a href="Foo" rel="mw:WikiLink">x [[ y</a>
+<a href="Foo" rel="mw:WikiLink">x ]] y</a>
 <a href="Foo" rel="mw:WikiLink">x ]] y [[ z</a>
 !! end
 
@@ -18160,10 +18464,10 @@ parsoid
 Links 3. WikiLinks: No escapes needed
 !! options
 parsoid
-!! input
+!! wikitext
 [[Foo|[Foobar]]
 [[Foo|foo|bar]]
-!! result
+!! html
 <a href="Foo" rel="mw:WikiLink">[Foobar</a>
 <a href="Foo" rel="mw:WikiLink">foo|bar</a>
 !! end
@@ -18172,7 +18476,7 @@ parsoid
 Links 4. ExtLinks: Escapes needed
 !! options
 parsoid
-!! input
+!! wikitext
 [http://google.com <nowiki>[google]</nowiki>]
 [http://google.com <nowiki>google]</nowiki>]
 
@@ -18180,7 +18484,7 @@ parsoid
 
 <nowiki>[http://google.com google]</nowiki>
 
-!! result
+!! html
 <p><a href="http://google.com" rel="mw:ExtLink">[google]</a>
 <a href="http://google.com" rel="mw:ExtLink">google]</a></p>
 <p>[http://google.com]</p>
@@ -18191,9 +18495,9 @@ parsoid
 Links 5. ExtLinks: No escapes needed
 !! options
 parsoid
-!! input
+!! wikitext
 [http://google.com [google]
-!! result
+!! html
 <a href="http://google.com" rel="mw:ExtLink">[google</a>
 !! end
 
@@ -18207,7 +18511,7 @@ parsoid
 1. Quotes inside <b> and <i>
 !! options
 parsoid=html2wt,wt2wt
-!! input
+!! wikitext
 ''<nowiki>'foo'</nowiki>''
 ''<nowiki>''foo''</nowiki>''
 ''<nowiki>'''foo'''</nowiki>''
@@ -18225,7 +18529,7 @@ parsoid=html2wt,wt2wt
 '<nowiki/>'''foo'''<nowiki/>'
 ''fools'<span> errand</span>''
 ''<span>fool</span>'s errand''
-!! result
+!! html
 <p><i>'foo'</i>
 <i>''foo''</i>
 <i>'''foo'''</i>
@@ -18247,11 +18551,11 @@ parsoid=html2wt,wt2wt
 
 !! test
 2. Link fragments separated by <i> and <b> tags
-!! input
+!! wikitext
 [[''foo''<nowiki>hello]]</nowiki>
 
 [['''foo'''<nowiki>hello]]</nowiki>
-!! result
+!! html
 <p>[[<i>foo</i>hello]]
 </p><p>[[<b>foo</b>hello]]
 </p>
@@ -18261,11 +18565,11 @@ parsoid=html2wt,wt2wt
 3. Link fragments inside <i> and <b>
 (FIXME: Escaping one or both of [[ and ]] is also acceptable --
  this is one of the shortcomings of this format)
-!! input
+!! wikitext
 ''[[foo''<nowiki>]]</nowiki>
 
 '''[[foo'''<nowiki>]]</nowiki>
-!! result
+!! html
 <p><i>[[foo</i>]]
 </p><p><b>[[foo</b>]]
 </p>
@@ -18273,10 +18577,10 @@ parsoid=html2wt,wt2wt
 
 !! test
 4. No escaping needed
-!! input
+!! wikitext
 '<span>''bar''</span>'
 '<span>'''bar'''</span>'
-!! result
+!! html
 <p>'<span><i>bar</i></span>'
 '<span><b>bar</b></span>'
 </p>
@@ -18288,7 +18592,7 @@ parsoid=html2wt,wt2wt
 
 !! test
 1. No unnecessary escapes
-!! input
+!! wikitext
 bar <span><nowiki>[[foo]]</nowiki></span>
 
 =bar <span><nowiki>[[foo]]</nowiki></span>
@@ -18298,7 +18602,7 @@ bar <span><nowiki>[[foo]]</nowiki></span>
 ]]bar <span><nowiki>[[foo]]</nowiki></span>
 
 =bar <span>foo]]</span><nowiki>=</nowiki>
-!! result
+!! html
 <p>bar <span>[[foo]]</span>
 </p><p>=bar <span>[[foo]]</span>
 </p><p>[[bar <span>[[foo]]</span>
@@ -18314,7 +18618,7 @@ bar <span><nowiki>[[foo]]</nowiki></span>
 1. Leading whitespace in SOL context should be escaped
 !! options
 parsoid
-!! input
+!! wikitext
 <nowiki> </nowiki>a
 
 <nowiki> </nowiki> a
 
 a
 <nowiki>       </nowiki> b
-!! result
+!! html
 <p> a</p>
 <p>  a</p>
 <p>    a(tab)</p>
 1. Valid behavior switches should be escaped
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 <nowiki>__TOC__</nowiki>
-!! result
+!! html
 __TOC__
 !! end
 
@@ -18362,10 +18666,10 @@ __TOC__
 2. Invalid behavior switches should not be escaped
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 __TOO__
 __|__
-!! result
+!! html
 __TOO__
 __|__
 !! end
@@ -18380,18 +18684,18 @@ __|__
 1. a tags
 !! options
 parsoid
-!! input
+!! wikitext
 <a href="http://google.com">google</a>
-!! result
+!! html
 &lt;a href=&quot;http://google.com&quot;&gt;google&lt;/a&gt;
 !! end
 
 !! test
 2. other tags
-!! input
+!! wikitext
 <nowiki><div>foo</div>
 <div style="color:red">foo</div></nowiki>
-!! result
+!! html
 <p>&lt;div&gt;foo&lt;/div&gt;
 &lt;div style=&quot;color:red&quot;&gt;foo&lt;/div&gt;
 </p>
@@ -18399,11 +18703,11 @@ parsoid
 
 !! test
 3. multi-line html tag
-!! input
+!! wikitext
 <nowiki><div
 >foo</div
 ></nowiki>
-!! result
+!! html
 <p>&lt;div
 &gt;foo&lt;/div
 &gt;
@@ -18412,13 +18716,13 @@ parsoid
 
 !! test
 4. extension tags
-!! input
+!! wikitext
 <nowiki><ref>foo</ref></nowiki>
 
 <nowiki><ref>bar</nowiki>
 
 baz<nowiki></ref></nowiki>
-!! result
+!! html
 <p>&lt;ref&gt;foo&lt;/ref&gt;
 </p><p>&lt;ref&gt;bar
 </p><p>baz&lt;/ref&gt;
@@ -18428,9 +18732,9 @@ baz<nowiki></ref></nowiki>
 #### --------------- Others ---------------
 !! test
 Escaping nowikis
-!! input
+!! wikitext
 &lt;nowiki&gt;foo&lt;/nowiki&gt;
-!! result
+!! html
 <p>&lt;nowiki&gt;foo&lt;/nowiki&gt;
 </p>
 !! end
@@ -18440,16 +18744,16 @@ Escaping nowikis
 (Bug 52035) Nowiki-escaping should not get tripped by " :" in text
 !! options
 parsoid=wt2wt,html2wt
-!! input
+!! wikitext
 foo's bar :
-!! result
+!! html
 <p>foo's bar :</p>
 !! end
 
 !! test
 
 Tag-like HTML structures are passed through as text
-!! input
+!! wikitext
 <x y>
 
 <x.y>
@@ -18463,7 +18767,7 @@ x<y
 a>b
 
 1<d e>f
-!! result
+!! html
 <p>&lt;x y&gt;
 </p><p>&lt;x.y&gt;
 </p><p>&lt;x-y&gt;
@@ -18479,36 +18783,36 @@ a>b
 # https://bugzilla.wikimedia.org/show_bug.cgi?id=17663)
 !! test
 Tag names followed by punctuation should not be recognized as tags
-!! input
+!! wikitext
 <s.ome> text
-!! result
+!! html
 <p>&lt;s.ome&gt; text
 </p>
 !! end
 
 !! test
 HTML tag with necessary entities in attributes
-!! input
+!! wikitext
 <span title="&amp;amp;">foo</span>
-!! result
+!! html
 <p><span title="&amp;amp;">foo</span>
 </p>
 !! end
 
 !! test
 HTML tag with 'unnecessary' entity encoding in attributes
-!! input
+!! wikitext
 <span title="&amp;">foo</span>
-!! result
+!! html
 <p><span title="&amp;">foo</span>
 </p>
 !! end
 
 !! test
 HTML tag with broken attribute value quoting
-!! input
+!! wikitext
 <span title="Hello world>Foo</span>
-!! result
+!! html
 <p><span>Foo</span>
 </p>
 !! end
@@ -18517,20 +18821,20 @@ HTML tag with broken attribute value quoting
 Parsoid-only: HTML tag with broken attribute value quoting
 !! options
 parsoid
-!! input
+!! wikitext
 <span title="Hello world>Foo</span>
-!! result
+!! html
 <p><span title="Hello world">Foo</span>
 </p>
 !! end
 
 !! test
 Table with broken attribute value quoting
-!! input
+!! wikitext
 {|
 | title="Hello world|Foo
 |}
-!! result
+!! html
 <table>
 <tr>
 <td>Foo
@@ -18540,12 +18844,12 @@ Table with broken attribute value quoting
 
 !! test
 Table with broken attribute value quoting on consecutive lines
-!! input
+!! wikitext
 {|
 | title="Hello world|Foo
 | style="color:red|Bar
 |}
-!! result
+!! html
 <table>
 <tr>
 <td>Foo
@@ -18559,12 +18863,12 @@ Table with broken attribute value quoting on consecutive lines
 Parsoid-only: Table with broken attribute value quoting on consecutive lines
 !! options
 parsoid
-!! input
+!! wikitext
 {|
 | title="Hello world|Foo
 | style="color:red|Bar
 |}
-!! result
+!! html
 <table><tbody>
 <tr>
 <td title="Hello world">Foo
@@ -18577,9 +18881,9 @@ parsoid
 Parsoid-only: Don't wrap broken template tags in <nowiki> on wt2wt (Bug 42353)
 !! options
 parsoid
-!! input
+!! wikitext
 {{}}
-!! result
+!! html
 {{}}
 !! end
 
@@ -18587,19 +18891,19 @@ parsoid
 Parsoid-only: Don't wrap broken template tags in <nowiki> on wt2wt (Bug 42353)
 !! options
 parsoid
-!! input
+!! wikitext
 }}{{
-!! result
+!! html
 }}{{
 !! end
 
 !!test
 Accept empty td cell attribute
-!!input
+!! wikitext
 {|
 | align="center" | foo ||  |
 |}
-!!result
+!! html
 <table>
 <tr>
 <td align="center"> foo </td>
@@ -18610,11 +18914,11 @@ Accept empty td cell attribute
 
 !!test
 Non-empty attributes in th-cells
-!!input
+!! wikitext
 {|
 ! Foo !! style="color: red" | Bar
 |}
-!!result
+!! html
 <table>
 <tr>
 <th> Foo </th>
@@ -18625,11 +18929,11 @@ Non-empty attributes in th-cells
 
 !!test
 Accept empty attributes in th-cells
-!!input
+!! wikitext
 {|
 !| foo !!| bar
 |}
-!!result
+!! html
 <table>
 <tr>
 <th> foo </th>
@@ -18640,14 +18944,14 @@ Accept empty attributes in th-cells
 
 !!test
 Empty table rows go away
-!!input
+!! wikitext
 {|
 | Hello
 | there
 |- class="foo"
 |-
 |}
-!! result
+!! html
 <table>
 <tr>
 <td> Hello
@@ -18667,11 +18971,11 @@ Empty table rows go away
 
 !!test
 RT-ed inter-element separators should be valid separators
-!!input
+!! wikitext
 {|
 |- [[foo]]
 |}
-!!result
+!! html
 <table>
 
 </table>
@@ -18683,7 +18987,7 @@ Trailing newlines in a deep dom-subtree that ends a wikitext line should be migr
 (Parsoid-only since PHP parser relies on Tidy for correct output)
 !!options
 parsoid
-!!input
+!! wikitext
 {|
 |<small>foo
 bar
@@ -18692,18 +18996,18 @@ bar
 {|
 |<small>foo<small>
 |}
-!!result
+!! html
 !!end
 
 !!test
 Empty TD followed by TD with tpl-generated attribute
-!!input
+!! wikitext
 {|
 |-
 |
 |{{echo|style='color:red'}}|foo
 |}
-!!result
+!! html
 <table>
 
 <tr>
@@ -18716,13 +19020,13 @@ Empty TD followed by TD with tpl-generated attribute
 
 !!test
 Indented table with an empty td
-!!input
+!! wikitext
  {|
  |-
  |
  |foo
  |}
-!!result
+!! html
 <table>
 
 <tr>
@@ -18738,12 +19042,12 @@ Empty TR followed by a template-generated TR
 (Parsoid-specific since PHP parser doesn't handle this mixed tbl-wikitext)
 !!options
 parsoid
-!!input
+!! wikitext
 {|
 |-
 {{echo|<tr><td>foo</td></tr>}}
 |}
-!!result
+!! html
 <table>
 <tbody>
 <tr></tr>
@@ -18758,14 +19062,14 @@ parsoid
 Empty TR followed by mixed-ws-comment line should RT correctly
 !!options
 parsoid
-!!input
+!! wikitext
 {|
 |-
  <!--c-->
 |-
 <!--c--> <!--d-->
 |}
-!!result
+!! html
 <table>
 <tbody>
 <tr></tr>
@@ -18780,10 +19084,10 @@ parsoid
 Multi-line image caption generated by templates with/without trailing newlines
 !!options
 parsoid
-!!input
+!! wikitext
 [[File:foo.jpg|thumb|300px|foo\n{{echo|A}}\n{{echo|B}}\n{{echo|C}}]]
 [[File:foo.jpg|thumb|300px|foo\n{{echo|A}}\n{{echo|B}}\n{{echo|C}}\n\n]]
-!!result
+!! html
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/index.php?title=Special:Upload&amp;wpDestFile=Foo.jpg" class="new" title="File:Foo.jpg">File:Foo.jpg</a>  <div class="thumbcaption">foo\nA\nB\nC</div></div></div>
 <div class="thumb tright"><div class="thumbinner" style="width:182px;"><a href="/index.php?title=Special:Upload&amp;wpDestFile=Foo.jpg" class="new" title="File:Foo.jpg">File:Foo.jpg</a>  <div class="thumbcaption">foo\nA\nB\nC\n\n</div></div></div>
 
@@ -18795,10 +19099,10 @@ parsoid
 Improperly nested inline or quotes tags with whitespace in between
 !!options
 parsoid
-!!input
+!! wikitext
 <span> <s>x</span> </s>
 ''' ''x''' ''
-!!result
+!! html
 <p><span> <s>x</s></span><s> </s>
 <b> <i>x</i></b><i> </i>
 </p>
@@ -18808,9 +19112,9 @@ parsoid
 Encapsulate protected attributes from wt
 !!options
 parsoid
-!!input
+!! wikitext
 <div typeof="mw:placeholder stuff" data-parsoid="weird" data-parsoid-other="no" about="time" rel="mw:true">foo</div>
-!!result
+!! html
 <body><div data-x-typeof="mw:placeholder stuff" data-x-data-parsoid="weird" data-x-data-parsoid-other="no" data-x-about="time" data-x-rel="mw:true">foo</div>
 </body>
 !!end
@@ -18822,32 +19126,50 @@ parsoid
 Ensure ParagraphWrapper can deal with stray closing pre tags
 !!options
 parsoid=wt2html
-!!input
+!! wikitext
 plain text</pre>
-!!result
+!! html
 plain text
 !!end
 
 !!test
-Ensure fostered text content is wrapped in spans
+1. Ensure fostered text content is wrapped in spans
 !!options
 parsoid=wt2html
-!!input
+!! wikitext
 <table>hi</table><table>ho</table>
-!!result
+!! html
 <span>hi</span>
 <table></table>
 <span>ho</span>
 <table></table>
 !!end
 
+!!test
+2. Ensure fostered text content is wrapped in spans (traps regressions around fostered marker on the span getting lost)
+!!options
+parsoid=wt2html,wt2wt
+!! wikitext
+<table>
+<tr> || ||
+<td> a
+</table>
+!! html
+<span> || ||</span>
+<table>
+<tbody>
+<tr>
+<td> a</td></tr>
+</tbody></table>
+!!end
+
 !!test
 Encapsulation properly handles null DSR information from foster box
 !!options
 parsoid=wt2html,wt2wt
-!!input
+!! wikitext
 {{echo|<table>foo<tr><td>bar</td></tr></table>}}
-!!result
+!! html
 <span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&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;
 <table>foo
 <tr>
@@ -18862,9 +19184,9 @@ parsoid=wt2html,wt2wt
 1. Encapsulate foster-parented transclusion content
 !!options
 parsoid=wt2wt,wt2html
-!!input
+!! wikitext
 <table>{{echo|foo<tr><td>bar</td></tr>}}</table>
-!!result
+!! html
 <span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
 <table>&quot;,{&quot;template&quot;:{&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
 <tr>
@@ -18879,9 +19201,9 @@ parsoid=wt2wt,wt2html
 2. Encapsulate foster-parented transclusion content
 !!options
 parsoid=wt2wt,wt2html
-!!input
+!! wikitext
 <table><div>{{echo|foo}}</div><tr><td>bar</td></tr></table>
-!!result
+!! html
 <div typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
 <table>
 <div>&quot;,{&quot;template&quot;:{&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;i&quot;:0}},&quot;</div>
@@ -18897,9 +19219,9 @@ parsoid=wt2wt,wt2html
 3. Encapsulate foster-parented transclusion content
 !!options
 parsoid=wt2wt,wt2html
-!!input
+!! wikitext
 <table><div><p>{{echo|foo</p></div><tr><td>}}bar</td></tr></table>
-!!result
+!! html
 <div typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
 <table>
 <div>
@@ -18917,9 +19239,9 @@ parsoid=wt2wt,wt2html
 4. Encapsulate foster-parented transclusion content
 !!options
 parsoid=wt2wt,wt2html
-!!input
+!! wikitext
 <table><div><p>{{echo|foo</p></div><tr><td>}}bar</td></tr></table>
-!!result
+!! html
 <div typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
 <table>
 <div>
@@ -18937,9 +19259,9 @@ parsoid=wt2wt,wt2html
 5. Encapsulate foster-parented transclusion content
 !!options
 parsoid=wt2wt,wt2html
-!!input
+!! wikitext
 <table><tr><td><div><p>{{echo|foo</p></div></td>foo}}</tr></table>
-!!result
+!! html
 <span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
 <table>
 <tr>
@@ -18958,9 +19280,9 @@ parsoid=wt2wt,wt2html
 6. Encapsulate foster-parented transclusion content
 !!options
 parsoid=wt2wt,wt2html
-!!input
+!! wikitext
 <table><tr><td><div><p>{{echo|foo</p></div></td>foo</tr></table>}}<p>ok</p>
-!!result
+!! html
 <span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
 <table>
 <tr>
@@ -18980,9 +19302,9 @@ parsoid=wt2wt,wt2html
 7. Encapsulate foster-parented transclusion content
 !!options
 parsoid=wt2wt,wt2html
-!!input
+!! wikitext
 <table>{{echo|<p>foo</p>}}<td>bar</td></table>
-!!result
+!! html
 <p typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;
 <table>&quot;,{&quot;template&quot;:{&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;
 <p>foo</p>&quot;}},&quot;i&quot;:0}},&quot;
@@ -18997,13 +19319,13 @@ parsoid=wt2wt,wt2html
 8. Encapsulate foster-parented transclusion content
 !!options
 parsoid=wt2wt,wt2html
-!!input
+!! wikitext
 {{echo|a
 }}{|{{echo|style='color:red'}}
 |-
 |b
 |}
-!!result
+!! html
 <p typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[{&quot;template&quot;:{&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;a\n&quot;}},&quot;i&quot;:0}}]}">a</p><span typeof="mw:Transclusion" data-mw="{&quot;parts&quot;:[&quot;{|&quot;,{&quot;template&quot;:{&quot;target&quot;:{&quot;wt&quot;:&quot;echo&quot;,&quot;href&quot;:&quot;./Template:Echo&quot;},&quot;params&quot;:{&quot;style&quot;:{&quot;wt&quot;:&quot;'color:red'&quot;}},&quot;i&quot;:0}},&quot;\n|-\n|b\n|}&quot;]}">{{{1}}}</span>
 <table>
 <tbody>
@@ -19015,22 +19337,32 @@ parsoid=wt2wt,wt2html
 Table in fosterable position
 !!options
 parsoid=wt2html,wt2wt
-!!input
+!! wikitext
 {{OpenTable}}
 <div>
 {|
 |}
 </div>
 |}
-!!result
-<div about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"OpenTable","href":"./Template:OpenTable"},"params":{},"i":0}},"\n&lt;div>"]}' data-parsoid='{"stx":"html","autoInsertedEnd":true,"dsr":[0,19,null,null],"src":"{{OpenTable}}\n&lt;div>","pi":[[]]}'></div><span about="#mwt1" data-parsoid="{}">
+!! html
+<div about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"OpenTable","href":"./Template:OpenTable"},"params":{},"i":0}},"\n&lt;div>"]}' data-parsoid='{"stx":"html","autoInsertedEnd":true,"pi":[[]]}'></div><span about="#mwt1" data-parsoid="{}">
 </span>
-<table about="#mwt1" data-parsoid='{"autoInsertedEnd":true,"dsr":[null,19,2,0]}'></table>
+<table about="#mwt1" data-parsoid='{"autoInsertedEnd":true}'></table>
 
-<table data-parsoid='{"dsr":[20,25,2,2]}'>
+<table>
 </table>
 !!end
 
+!!test
+Support <object> element with .data attribute
+!!options
+parsoid=html2wt
+!! wikitext
+<object data="test.swf"></object>
+!! html
+<object data="test.swf"></object>
+!!end
+
 # -----------------------------------------------------------------
 # The following section of tests are primarily to spec requirements
 # around serialization of new/edited content.
@@ -19039,34 +19371,143 @@ parsoid=wt2html,wt2wt
 # ----------------------------------------------------------------
 
 !! test
-Image: Modifying size of an image
+Image: Modifying size of an image (1)
+!! options
+parsoid=html2wt
+!! wikitext
+[[Image:Foobar.jpg|200x200px]]
+!! html
+<p><span typeof="mw:Image" data-parsoid='{"optList":[{"ck":"width","ak":"230x230px"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/230px-Foobar.jpg" height="22" width="200" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"26","width":"230"},"sa":{"resource":"Image:Foobar.jpg"}}'/></a></span></p>
+!!end
+
+!! test
+Image: Modifying size of an image (2)
+!! options
+parsoid=html2wt
+!! wikitext
+[[Image:Foobar.jpg|500x500px]]
+!! html
+<p><span typeof="mw:Image" data-parsoid='{"optList":[{"ck":"width","ak":"230x230px"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/230px-Foobar.jpg" height="100" width="500" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"26","width":"230"},"sa":{"resource":"Image:Foobar.jpg"}}'/></a></span></p>
+!!end
+
+# note that the data-parsoid value conflicts with the figure's class
+!! test
+Image: Modifying alignment of an image (bug 48665)
+!! options
+parsoid=html2wt
+!! wikitext
+[[Image:Foobar.jpg|thumb|caption|left]]
+!! html
+<figure class="mw-default-size mw-halign-left" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"caption"},{"ck":"right","ak":"right"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" height="20" width="180" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"20","width":"180"},"sa":{"resource":"Image:Foobar.jpg"}}'/></a><figcaption>caption</figcaption></figure>
+!! end
+
+!! test
+Image: Modifying valign of an image (bug 49221)
+!! options
+parsoid=html2wt
+!! wikitext
+[[File:Foobar.jpg|20px|text-top]]
+!! html
+<p><span class="mw-valign-text-top" typeof="mw:Image" data-parsoid='{"optList":[{"ck":"width","ak":"20px"},{"ck":"text_top","ak":"text-top"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/20px-Foobar.jpg" height="2" width="20" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"2","width":"20"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></span></p>
+!! end
+
+!! test
+Image: Modifying alt attribute of an image (bug 56400)
 !! 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>
+!! wikitext
+[[File:Foobar.jpg|thumb|some caption|alt=some alternate edited text]]
+!! html
+<figure class="mw-default-size" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"some caption"},{"ck":"alt","ak":"alt=some alternate text"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img alt="some alternate edited text" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" height="20" width="180" data-parsoid='{"a":{"alt":"some alternate edited text","resource":"./File:Foobar.jpg","height":"20","width":"180"},"sa":{"alt":"alt=some alternate edited text","resource":"File:Foobar.jpg"}}'/></a><figcaption>some caption</figcaption></figure>
 !!end
 
 !! test
-Image: New block level image should have \n before and after
+Image: Modifying caption of an image
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
+[[Image:Foobar.jpg|thumb|new caption]]
+!! html
+<figure class="mw-default-size" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"caption","ak":"original caption"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/180px-Foobar.jpg" height="20" width="180" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"20","width":"180"},"sa":{"resource":"Image:Foobar.jpg"}}'/></a><figcaption>new caption</figcaption></figure>
+!!end
+
+!! test
+Image: empty alt attribute (bug 48924)
+!! options
+parsoid
+!! wikitext
+[[File:Foobar.jpg|thumb|alt=|bar]]
+!! html
+<figure class="mw-default-size" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"thumbnail","ak":"thumb"},{"ck":"alt","ak":"alt="},{"ck":"caption","ak":"bar"}]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"}}'><img alt="" resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/220px-Foobar.jpg" height="25" width="220" data-parsoid='{"a":{"alt":"","resource":"./File:Foobar.jpg","height":"25","width":"220"},"sa":{"alt":"alt=","resource":"File:Foobar.jpg"}}'/></a><figcaption>bar</figcaption></figure>
+!! end
+
+#!! test
+#Image: new attributes should be serialized in wiki's language for RTL languages (bug 51852)
+#!! options
+#parsoid=html2wt
+#language=ar
+#!! input
+#[[Imagen:Foobar.jpg|derecha|miniaturadeimagen]]
+#!! result
+#<figure class="mw-default-size mw-halign-right" typeof="mw:Image/Thumb"><a href="Imagen:Foobar.jpg"><img resource="./Imagen:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="20" width="180"/></a></figure>
+#!! end
+
+!! test
+Image: Block level image should have \n before and after
+!! options
+parsoid
+!! wikitext
+123
+[[File:Foobar.jpg|right|thumb|150x150px]]
+456
+!! html
+<p>123</p><figure typeof="mw:Image/Thumb" class="mw-halign-right"><a href="./File:Foobar.png"><img src="http://192.168.142.128/mw/images/thumb/b/bc/Foobar.png/131px-Foobar.png" width="131" height="150" resource="./File:Foobar.png" data-parsoid='{"a":{"resource":"./File:Foobar.png","width":"131"},"sa":{"resource":"File:Foobar.png","width":"150"}}'></a></figure><p>456</p>
+!!end
+
+!! test
+Image: New block level image should have \n before and after (existing
+content)
+!! options
+parsoid
+!! wikitext
 123
-[[File:Wiki.png|right|thumb|150x150px]]
+[[File:Foobar.jpg|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>
+!! html
+<p data-parsoid='{"dsr":[0,3,0,0]}'>123</p>
+<figure class="mw-halign-right" typeof="mw:Image/Thumb" data-parsoid='{"optList":[{"ck":"right","ak":"right"},{"ck":"thumbnail","ak":"thumb"},{"ck":"width","ak":"150x150px"}],"dsr":[4,45,2,2]}'><a href="./File:Foobar.jpg" data-parsoid='{"a":{"href":"./File:Foobar.jpg"},"dsr":[6,43,null,null]}'><img resource="./File:Foobar.jpg" src="//example.com/images/thumb/3/3a/Foobar.jpg/150px-Foobar.jpg" height="17" width="150" data-parsoid='{"a":{"resource":"./File:Foobar.jpg","height":"17","width":"150"},"sa":{"resource":"File:Foobar.jpg"}}'/></a></figure>
+<p data-parsoid='{"dsr":[46,49,0,0]}'>456</p>
+!!end
+
+!! test
+Images: upright option (parsoid)
+!! options
+parsoid
+!! wikitext
+[[File:Foobar.jpg|thumb|upright|caption]]
+[[File:Foobar.jpg|thumb|upright=0.5|caption]]
+[[File:Foobar.jpg|thumb|500x500px|upright=0.5|caption]]
+!! html
+<figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="19" width="170"/></a><figcaption>caption</figcaption></figure><figure class="mw-default-size" typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="19" width="170"/></a><figcaption>caption</figcaption></figure><figure typeof="mw:Image/Thumb"><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="57" width="500"/></a><figcaption>caption</figcaption></figure>
+!!end
+
+!! test
+Images: upright option is ignored on inline and frame images (parsoid)
+!! options
+parsoid
+!! wikitext
+[[File:Foobar.jpg|500x500px|upright=0.5|caption]]
+!! html
+<p><span typeof="mw:Image" data-mw='{"caption":"caption"}'><a href="File:Foobar.jpg"><img resource="./File:Foobar.jpg" src="//example.com/images/3/3a/Foobar.jpg" height="57" width="500"/></a></span></p>
 !!end
 
 !! test
 Lists: Serialize correctly even when list content is wrapped in p-tags (like VE does)
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 * foo
-!! result
+!! html
 <ul>
 <li><p>foo</p></li>
 </ul>
@@ -19076,9 +19517,9 @@ parsoid=html2wt
 Lists: Serialize correctly even when list tags has unneeded whitespace between tags
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 * foo
-!! result
+!! html
 <ul> <li>foo</li></ul>
 !! end
 
@@ -19086,7 +19527,7 @@ parsoid=html2wt
 Don't strip leading whitespace when handling indent-pre suppressing tags
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 {|
   | indented row
 |}
@@ -19100,7 +19541,7 @@ parsoid=html2wt
 </blockquote>
 foo
  <div>bar</div>
-!! result
+!! html
 <table>
   <tr><td> indented row</td></tr>
 </table>
@@ -19119,7 +19560,7 @@ foo
 Strip leading whitespace when handling indent-pre inducing tags
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 foo
 <span>bar</span>
 
@@ -19132,7 +19573,7 @@ foo
 <div>
 <span>foo</span>
 </div>
-!! result
+!! html
 <p>foo</p>
  <span>bar</span>
 
@@ -19151,11 +19592,11 @@ foo
 Lists: Add space after bullets
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 * foo
 * bar
 * <span> baz</span>
-!! result
+!! html
 <ul>
 <li>foo</li>
 <li> bar</li>
@@ -19163,11 +19604,22 @@ parsoid=html2wt
 </ul>
 !! end
 
+!! test
+Lists: Dont insert newlines in a serialized list item.
+!! options
+parsoid=html2wt
+!! wikitext
+* a<br>b
+* c
+!! html
+<ul><li>a<br>b</li><li>c</li></ul>
+!! end
+
 !! test
 Headings: Add space before/after == (Bug 51744)
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 == foo ==
 
 == bar ==
@@ -19175,7 +19627,7 @@ parsoid=html2wt
 == baz ==
 
 == <span> baz</span> ==
-!! result
+!! html
 <h2>foo</h2>
 <h2> bar</h2>
 <h2>baz </h2>
@@ -19186,7 +19638,7 @@ parsoid=html2wt
 Parsoid: Serialize positional parameters with = in them as named parameter
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 {{echo|1 = f=oo}}
 
 {{echo|1 = f=oo|2 = bar}}
@@ -19194,7 +19646,7 @@ parsoid=html2wt
 <!--Orig params with data-parsoid has heuristics for handling = chars-->
 <!--FIXME: But maybe the heuristic needs fixing to apply to new params as well-->
 {{echo|<nowiki>f=oo</nowiki>|bar}}
-!! result
+!! html
 <p about="#mwt1" typeof="mw:Transclusion"
 data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"f=oo"}},"i":0}}]}'>foo</p>
 
@@ -19210,7 +19662,7 @@ data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},
 Parsoid: Correctly serialize block-node children when they are a combination of text and p-nodes
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 <div>a
 b
 </div>
 
 b
 </div>
-!! result
+!! html
 <div>a<p>b</p></div>
 <div>a
 <p>b</p></div>
 1. I/B quote minimization: wikitext-only tags should be combined
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 ''AB''
 
 '''AB'''
@@ -19255,7 +19707,7 @@ parsoid=html2wt
 '''''AB'''''
 
 '''''AB'''''
-!! result
+!! html
 <p><i>A</i><i>B</i></p>
 <p><b>A</b><b>B</b></p>
 <p><i>A</i><b><i>B</i></b></p>
@@ -19270,11 +19722,11 @@ parsoid=html2wt
 2. I/B quote minimization: wikitext and html tags should not be combined
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 ''A''<i>B</i>
 
 ''A'''''<i>B</i>'''
-!! result
+!! html
 <p><i>A</i><i data-parsoid='{"stx":"html"}'>B</i></p>
 <p><i>A</i><b><i data-parsoid='{"stx":"html"}'>B</i></b></p>
 !! end
@@ -19283,11 +19735,11 @@ parsoid=html2wt
 3. I/B quote minimization: templated content stops minimization
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 ''A''{{echo|''B''}}
 
 ''A''{{echo|'''''B'''''}}
-!! result
+!! html
 <p><i>A</i><i about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&#39;&#39;B&#39;&#39;"}},"i":0}}]}'>B</i>
 <p><i>A</i><b about="#mwt1" typeof="mw:Transclusion" data-mw='{"parts":[{"template":{"target":{"wt":"echo","href":"./Template:Echo"},"params":{"1":{"wt":"&#39;&#39;&#39;&#39;&#39;B&#39;&#39;&#39;&#39;&#39;"}},"i":0}}]}'><i>B</i></b>
 !! end
@@ -19296,13 +19748,13 @@ parsoid=html2wt
 4. I/B quote minimization: new content should be mimimized with adjacent old content
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 ''AB''
 
 '''AB'''
 
 ''A'''B'''''
-!! result
+!! html
 <p><i>A</i><i data-parsoid='{}'>B</i></p>
 <p><b data-parsoid='{}'>A</b><b>B</b></p>
 <p><i>A</i><b data-parsoid='{}'><i data-parsoid='{}'>B</i></b></p>
@@ -19316,9 +19768,9 @@ parsoid=html2wt
 Bug 54262: New entities
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 foo
-!! result
+!! html
 <span typeof="mw:Entity">foo</span>
 !! end
 
@@ -19329,7 +19781,7 @@ foo
 Magic words
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 __TOC__
 __NOTOC__
 __FORCETOC__
@@ -19339,7 +19791,7 @@ __NOGALLERY__
 __NOEDITSECTION__
 __NOTITLECONVERT__
 __NOCONTENTCONVERT__
-!! result
+!! html
 <meta property='mw:PageProp/toc' />
 <meta property='mw:PageProp/notoc' />
 <meta property='mw:PageProp/forcetoc' />
@@ -19356,7 +19808,7 @@ __NOCONTENTCONVERT__
 Consecutive <pre>s should not get merged
 !! options
 parsoid=html2wt,html2html
-!! input
+!! wikitext
  a
 
  b
@@ -19370,7 +19822,7 @@ parsoid=html2wt,html2html
 
  
  f
-!! result
+!! html
 <pre>a</pre><pre>b</pre>
 
 <pre>c
@@ -19388,9 +19840,9 @@ f</pre>
 Edited ISBN links not serializable as ISBN links should serialize as wikilinks
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 [[Special:BookSources/1234567890|ISBN 1234567895]]
-!! result
+!! html
 <a rel="mw:ExtLink" href="./Special:BookSources/1234567890">ISBN 1234567895</a>
 !! end
 
@@ -19398,9 +19850,9 @@ parsoid=html2wt
 Edited RFC links not serializable as RFC links should serialize as extlinks
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 [//tools.ietf.org/html/rfc123 New RFC]
-!! result
+!! html
 <a href="//tools.ietf.org/html/rfc123" rel="mw:ExtLink">New RFC</a>
 !! end
 
@@ -19408,12 +19860,22 @@ parsoid=html2wt
 Edited PMID links not serializable as PMID links should serialize as extlinks
 !! options
 parsoid=html2wt
-!! input
+!! wikitext
 [//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract New PMID]
-!! result
+!! html
 <a href="//www.ncbi.nlm.nih.gov/pubmed/123?dopt=Abstract" rel="mw:ExtLink">New PMID</a>
 !! end
 
+!! test
+Edited Redirect link should emit a non-piped wikitext link
+!! options
+parsoid=html2wt
+!! wikitext
+#REDIRECT [[Bar]]
+!! html
+<link rel="mw:PageProp/redirect" href="Bar" data-parsoid='{"src":"#REDIRECT ","a":{"href":"./Foo"},"sa":{"href":"Foo"}}'>
+!! end
+
 # -----------------------------------------------------------------
 # End of section for Parsoid-only html2wt tests for serialization
 # of new content
index debb357..d7e8b86 100644 (file)
@@ -3,7 +3,7 @@
  * MediaWiki parser test suite
  *
  * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index 87e214c..3742a54 100644 (file)
@@ -1,9 +1,9 @@
 <?php
 
+/**
+ * @since 1.18
+ */
 abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
-       public $suite;
-       public $regex = '';
-       public $runDisabled = false;
 
        /**
         * $called tracks whether the setUp and tearDown method has been called.
@@ -20,14 +20,21 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
        private $called = array();
 
        /**
-        * @var Array of TestUser
+        * @var TestUser[]
+        * @since 1.20
         */
        public static $users;
 
        /**
         * @var DatabaseBase
+        * @since 1.18
         */
        protected $db;
+
+       /**
+        * @var array
+        * @since 1.19
+        */
        protected $tablesUsed = array(); // tables with data
 
        private static $useTemporaryTables = true;
@@ -48,7 +55,7 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
         *
         * @var array
         */
-       private $tmpfiles = array();
+       private $tmpFiles = array();
 
        /**
         * Holds original values of MediaWiki configuration settings
@@ -64,6 +71,10 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
        const DB_PREFIX = 'unittest_';
        const ORA_DB_PREFIX = 'ut_';
 
+       /**
+        * @var array
+        * @since 1.18
+        */
        protected $supportedDBs = array(
                'mysql',
                'sqlite',
@@ -71,14 +82,14 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                'oracle'
        );
 
-       function __construct( $name = null, array $data = array(), $dataName = '' ) {
+       public function __construct( $name = null, array $data = array(), $dataName = '' ) {
                parent::__construct( $name, $data, $dataName );
 
                $this->backupGlobals = false;
                $this->backupStaticAttributes = false;
        }
 
-       function run( PHPUnit_Framework_TestResult $result = null ) {
+       public function run( PHPUnit_Framework_TestResult $result = null ) {
                /* Some functions require some kind of caching, and will end up using the db,
                 * which we can't allow, as that would open a new connection for mysql.
                 * Replace with a HashBag. They would not be going to persist anyway.
@@ -130,22 +141,29 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                }
        }
 
-       function usesTemporaryTables() {
+       /**
+        * @since 1.21
+        *
+        * @return bool
+        */
+       public function usesTemporaryTables() {
                return self::$useTemporaryTables;
        }
 
        /**
-        * obtains a new temporary file name
+        * Obtains a new temporary file name
         *
         * The obtained filename is enlisted to be removed upon tearDown
         *
-        * @return string: absolute name of the temporary file
+        * @since 1.20
+        *
+        * @return string absolute name of the temporary file
         */
        protected function getNewTempFile() {
-               $fname = tempnam( wfTempDir(), 'MW_PHPUnit_' . get_class( $this ) . '_' );
-               $this->tmpfiles[] = $fname;
+               $fileName = tempnam( wfTempDir(), 'MW_PHPUnit_' . get_class( $this ) . '_' );
+               $this->tmpFiles[] = $fileName;
 
-               return $fname;
+               return $fileName;
        }
 
        /**
@@ -154,26 +172,24 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
         * The obtained directory is enlisted to be removed (recursively with all its contained
         * files) upon tearDown.
         *
-        * @return string: absolute name of the temporary directory
+        * @since 1.20
+        *
+        * @return string Absolute name of the temporary directory
         */
        protected function getNewTempDirectory() {
                // Starting of with a temporary /file/.
-               $fname = $this->getNewTempFile();
+               $fileName = $this->getNewTempFile();
 
                // Converting the temporary /file/ to a /directory/
                //
                // The following is not atomic, but at least we now have a single place,
                // where temporary directory creation is bundled and can be improved
-               unlink( $fname );
-               $this->assertTrue( wfMkdirParents( $fname ) );
+               unlink( $fileName );
+               $this->assertTrue( wfMkdirParents( $fileName ) );
 
-               return $fname;
+               return $fileName;
        }
 
-       /**
-        * setUp and tearDown should (where significant)
-        * happen in reverse order.
-        */
        protected function setUp() {
                wfProfileIn( __METHOD__ );
                parent::setUp();
@@ -181,23 +197,12 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
 
                $this->phpErrorLevel = intval( ini_get( 'error_reporting' ) );
 
-               /*
-               // @todo global variables to restore for *every* test
-               array(
-                       'wgLang',
-                       'wgContLang',
-                       'wgLanguageCode',
-                       'wgUser',
-                       'wgTitle',
-               );
-               */
-
                // Cleaning up temporary files
-               foreach ( $this->tmpfiles as $fname ) {
-                       if ( is_file( $fname ) || ( is_link( $fname ) ) ) {
-                               unlink( $fname );
-                       } elseif ( is_dir( $fname ) ) {
-                               wfRecursiveRemoveDir( $fname );
+               foreach ( $this->tmpFiles as $fileName ) {
+                       if ( is_file( $fileName ) || ( is_link( $fileName ) ) ) {
+                               unlink( $fileName );
+                       } elseif ( is_dir( $fileName ) ) {
+                               wfRecursiveRemoveDir( $fileName );
                        }
                }
 
@@ -218,11 +223,11 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                wfProfileIn( __METHOD__ );
 
                // Cleaning up temporary files
-               foreach ( $this->tmpfiles as $fname ) {
-                       if ( is_file( $fname ) || ( is_link( $fname ) ) ) {
-                               unlink( $fname );
-                       } elseif ( is_dir( $fname ) ) {
-                               wfRecursiveRemoveDir( $fname );
+               foreach ( $this->tmpFiles as $fileName ) {
+                       if ( is_file( $fileName ) || ( is_link( $fileName ) ) ) {
+                               unlink( $fileName );
+                       } elseif ( is_dir( $fileName ) ) {
+                               wfRecursiveRemoveDir( $fileName );
                        }
                }
 
@@ -269,13 +274,11 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
        }
 
        /**
-        * Individual test functions may override globals (either directly or through this
-        * setMwGlobals() function), however one must call this method at least once for
-        * each key within the setUp().
-        * That way the key is added to the array of globals that will be reset afterwards
-        * in the tearDown(). And, equally important, that way all other tests are executed
-        * with the same settings (instead of using the unreliable local settings for most
-        * tests and fix it only for some tests).
+        * Sets a global, maintaining a stashed version of the previous global to be
+        * restored in tearDown
+        *
+        * The key is added to the array of globals that will be reset afterwards
+        * in the tearDown().
         *
         * @example
         * <code>
@@ -299,24 +302,61 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
         *  of key/value pairs.
         * @param mixed $value Value to set the global to (ignored
         *  if an array is given as first argument).
+        *
+        * @since 1.21
         */
        protected function setMwGlobals( $pairs, $value = null ) {
-
-               // Normalize (string, value) to an array
                if ( is_string( $pairs ) ) {
                        $pairs = array( $pairs => $value );
                }
 
+               $this->stashMwGlobals( array_keys( $pairs ) );
+
                foreach ( $pairs as $key => $value ) {
+                       $GLOBALS[$key] = $value;
+               }
+       }
+
+       /**
+        * Stashes the global, will be restored in tearDown()
+        *
+        * Individual test functions may override globals through the setMwGlobals() function
+        * or directly. When directly overriding globals their keys should first be passed to this
+        * method in setUp to avoid breaking global state for other tests
+        *
+        * That way all other tests are executed with the same settings (instead of using the
+        * unreliable local settings for most tests and fix it only for some tests).
+        *
+        * @param array|string $globalKeys Key to the global variable, or an array of keys.
+        *
+        * @throws Exception when trying to stash an unset global
+        * @since 1.23
+        */
+       protected function stashMwGlobals( $globalKeys ) {
+               if ( is_string( $globalKeys ) ) {
+                       $globalKeys = array( $globalKeys );
+               }
+
+               foreach ( $globalKeys as $globalKey ) {
                        // NOTE: make sure we only save the global once or a second call to
                        // setMwGlobals() on the same global would override the original
                        // value.
-                       if ( !array_key_exists( $key, $this->mwGlobals ) ) {
-                               $this->mwGlobals[$key] = $GLOBALS[$key];
+                       if ( !array_key_exists( $globalKey, $this->mwGlobals ) ) {
+                               if ( !array_key_exists( $globalKey, $GLOBALS ) ) {
+                                       throw new Exception( "Global with key {$globalKey} doesn't exist and cant be stashed" );
+                               }
+                               // NOTE: we serialize then unserialize the value in case it is an object
+                               // this stops any objects being passed by reference. We could use clone
+                               // and if is_object but this does account for objects within objects!
+                               try {
+                                       $this->mwGlobals[$globalKey] = unserialize( serialize( $GLOBALS[$globalKey] ) );
+                               }
+                                       // NOTE; some things such as Closures are not serializable
+                                       // in this case just set the value!
+                               catch ( Exception $e ) {
+                                       $this->mwGlobals[$globalKey] = $GLOBALS[$globalKey];
+                               }
                        }
-
-                       // Override the global
-                       $GLOBALS[$key] = $value;
                }
        }
 
@@ -325,10 +365,12 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
         * Useful for setting some entries in a configuration array, instead of
         * setting the entire array.
         *
-        * @param String $name The name of the global, as in wgFooBar
-        * @param Array $values The array containing the entries to set in that global
+        * @param string $name The name of the global, as in wgFooBar
+        * @param array $values The array containing the entries to set in that global
         *
         * @throws MWException if the designated global is not an array.
+        *
+        * @since 1.21
         */
        protected function mergeMwGlobalArrayValue( $name, $values ) {
                if ( !isset( $GLOBALS[$name] ) ) {
@@ -348,11 +390,19 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                $this->setMwGlobals( $name, $merged );
        }
 
-       function dbPrefix() {
+       /**
+        * @return string
+        * @since 1.18
+        */
+       public function dbPrefix() {
                return $this->db->getType() == 'oracle' ? self::ORA_DB_PREFIX : self::DB_PREFIX;
        }
 
-       function needsDB() {
+       /**
+        * @return bool
+        * @since 1.18
+        */
+       public function needsDB() {
                # if the test says it uses database tables, it needs the database
                if ( $this->tablesUsed ) {
                        return true;
@@ -370,15 +420,13 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
        /**
         * Stub. If a test needs to add additional data to the database, it should
         * implement this method and do so
+        *
+        * @since 1.18
         */
-       function addDBData() {
+       public function addDBData() {
        }
 
        private function addCoreDBData() {
-               # disabled for performance
-               #$this->tablesUsed[] = 'page';
-               #$this->tablesUsed[] = 'revision';
-
                if ( $this->db->getType() == 'oracle' ) {
 
                        # Insert 0 user to prevent FK violations
@@ -433,6 +481,8 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
         * Restores MediaWiki to using the table set (table prefix) it was using before
         * setupTestDB() was called. Useful if we need to perform database operations
         * after the test run has finished (such as saving logs or profiling info).
+        *
+        * @since 1.21
         */
        public static function teardownTestDB() {
                if ( !self::$dbSetup ) {
@@ -453,6 +503,8 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
         * This is used to generate a dummy table set, typically consisting of temporary
         * tables, that will be used by tests instead of the original wiki database tables.
         *
+        * @since 1.21
+        *
         * @note: the original table prefix is stored in self::$oldTablePrefix. This is used
         * by teardownTestDB() to return the wiki to using the original table set.
         *
@@ -467,7 +519,8 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
        public static function setupTestDB( DatabaseBase $db, $prefix ) {
                global $wgDBprefix;
                if ( $wgDBprefix === $prefix ) {
-                       throw new MWException( 'Cannot run unit tests, the database prefix is already "' . $prefix . '"' );
+                       throw new MWException(
+                               'Cannot run unit tests, the database prefix is already "' . $prefix . '"' );
                }
 
                if ( self::$dbSetup ) {
@@ -522,17 +575,21 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                }
        }
 
-       function __call( $func, $args ) {
+       /**
+        * @since 1.18
+        *
+        * @param string $func
+        * @param array $args
+        *
+        * @return mixed
+        * @throws MWException
+        */
+       public function __call( $func, $args ) {
                static $compatibility = array(
-                       'assertInternalType' => 'assertType',
-                       'assertNotInternalType' => 'assertNotType',
-                       'assertInstanceOf' => 'assertType',
-                       'assertEmpty' => 'assertEmpty2',
+                       'assertEmpty' => 'assertEmpty2', // assertEmpty was added in phpunit 3.7.32
                );
 
-               if ( method_exists( $this->suite, $func ) ) {
-                       return call_user_func_array( array( $this->suite, $func ), $args );
-               } elseif ( isset( $compatibility[$func] ) ) {
+               if ( isset( $compatibility[$func] ) ) {
                        return call_user_func_array( array( $this, $compatibility[$func] ), $args );
                } else {
                        throw new MWException( "Called non-existant $func method on "
@@ -540,6 +597,9 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                }
        }
 
+       /**
+        * Used as a compatibility method for phpunit < 3.7.32
+        */
        private function assertEmpty2( $value, $msg ) {
                return $this->assertTrue( $value == '', $msg );
        }
@@ -554,6 +614,13 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                return strpos( $table, 'unittest_' ) !== 0;
        }
 
+       /**
+        * @since 1.18
+        *
+        * @param DataBaseBase $db
+        *
+        * @return array
+        */
        public static function listTables( $db ) {
                global $wgDBprefix;
 
@@ -581,31 +648,41 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
                return $tables;
        }
 
+       /**
+        * @throws MWException
+        * @since 1.18
+        */
        protected function checkDbIsSupported() {
                if ( !in_array( $this->db->getType(), $this->supportedDBs ) ) {
                        throw new MWException( $this->db->getType() . " is not currently supported for unit testing." );
                }
        }
 
+       /**
+        * @since 1.18
+        */
        public function getCliArg( $offset ) {
-
                if ( isset( MediaWikiPHPUnitCommand::$additionalOptions[$offset] ) ) {
                        return MediaWikiPHPUnitCommand::$additionalOptions[$offset];
                }
        }
 
+       /**
+        * @since 1.18
+        */
        public function setCliArg( $offset, $value ) {
-
                MediaWikiPHPUnitCommand::$additionalOptions[$offset] = $value;
        }
 
        /**
         * Don't throw a warning if $function is deprecated and called later
         *
-        * @param $function String
+        * @since 1.19
+        *
+        * @param string $function
         * @return null
         */
-       function hideDeprecated( $function ) {
+       public function hideDeprecated( $function ) {
                wfSuppressWarnings();
                wfDeprecated( $function );
                wfRestoreWarnings();
@@ -619,12 +696,12 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
         *
         * @since 1.20
         *
-        * @param $table String|Array the table(s) to query
-        * @param $fields String|Array the columns to include in the result (and to sort by)
-        * @param $condition String|Array "where" condition(s)
-        * @param $expectedRows Array - an array of arrays giving the expected rows.
+        * @param string|array $table The table(s) to query
+        * @param string|array $fields The columns to include in the result (and to sort by)
+        * @param string|array $condition "where" condition(s)
+        * @param array $expectedRows An array of arrays giving the expected rows.
         *
-        * @throws MWException if this test cases's needsDB() method doesn't return true.
+        * @throws MWException If this test cases's needsDB() method doesn't return true.
         *         Test cases can use "@group Database" to enable database test support,
         *         or list the tables under testing in $this->tablesUsed, or override the
         *         needsDB() method.
@@ -687,8 +764,8 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
         *
         * @param array $expected
         * @param array $actual
-        * @param boolean $ordered If the order of the values should match
-        * @param boolean $named If the keys should match
+        * @param bool $ordered If the order of the values should match
+        * @param bool $named If the keys should match
         */
        protected function assertArrayEquals( array $expected, array $actual, $ordered = false, $named = false ) {
                if ( !$ordered ) {
@@ -715,9 +792,9 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
         *
         * @since 1.20
         *
-        * @param String $expected HTML on oneline
-        * @param String $actual HTML on oneline
-        * @param String $msg Optional message
+        * @param string $expected HTML on oneline
+        * @param string $actual HTML on oneline
+        * @param string $msg Optional message
         */
        protected function assertHTMLEquals( $expected, $actual, $msg = '' ) {
                $expected = str_replace( '>', ">\n", $expected );
@@ -749,7 +826,7 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
         *
         * @since 1.20
         *
-        * @param $r mixed the array to remove string keys from.
+        * @param mixed $r The array to remove string keys from.
         */
        protected static function stripStringKeys( &$r ) {
                if ( !is_array( $r ) ) {
@@ -824,9 +901,9 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
 
        /**
         * Returns the ID of a namespace that defaults to Wikitext.
-        * Throws an MWException if there is none.
         *
-        * @return int the ID of the wikitext Namespace
+        * @throws MWException If there is none.
+        * @return int The ID of the wikitext Namespace
         * @since 1.21
         */
        protected function getDefaultWikitextNS() {
@@ -973,8 +1050,10 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
         * then calls assertValidHtmlDocument().
         * The snippet is expected to be HTML 5.
         *
-        * @note: Will mark the test as skipped if the "tidy" module is not installed.
-        * @note: This ignores $wgUseTidy, so we can check for valid HTML even (and especially)
+        * @since 1.23
+        *
+        * @note Will mark the test as skipped if the "tidy" module is not installed.
+        * @note This ignores $wgUseTidy, so we can check for valid HTML even (and especially)
         *        when automatic tidying is disabled.
         *
         * @param string $html An HTML snippet (treated as the contents of the body tag).
@@ -987,8 +1066,10 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
        /**
         * Asserts that the given string is valid HTML document.
         *
-        * @note: Will mark the test as skipped if the "tidy" module is not installed.
-        * @note: This ignores $wgUseTidy, so we can check for valid HTML even (and especially)
+        * @since 1.23
+        *
+        * @note Will mark the test as skipped if the "tidy" module is not installed.
+        * @note This ignores $wgUseTidy, so we can check for valid HTML even (and especially)
         *        when automatic tidying is disabled.
         *
         * @param string $html A complete HTML document
@@ -1017,4 +1098,5 @@ abstract class MediaWikiTestCase extends PHPUnit_Framework_TestCase {
 
                $this->assertEmpty( $errors, implode( "\n", $errors ) );
        }
+
 }
diff --git a/tests/phpunit/ResourceLoaderTestCase.php b/tests/phpunit/ResourceLoaderTestCase.php
new file mode 100644 (file)
index 0000000..a03e9cc
--- /dev/null
@@ -0,0 +1,68 @@
+<?php
+
+abstract class ResourceLoaderTestCase extends MediaWikiTestCase {
+
+       protected static function getResourceLoaderContext() {
+               $resourceLoader = new ResourceLoader();
+               $request = new FauxRequest( array(
+                               'debug' => 'true',
+                               'lang' => 'en',
+                               'modules' => 'startup',
+                               'only' => 'scripts',
+                               'skin' => 'vector',
+                               'target' => 'test',
+               ) );
+               return new ResourceLoaderContext( $resourceLoader, $request );
+       }
+
+       protected function setUp() {
+               parent::setUp();
+
+               $this->setMwGlobals( array(
+                       // For ResourceLoader::inDebugMode since it doesn't have context
+                       'wgResourceLoaderDebug' => true,
+
+                       // Avoid influence from wgInvalidateCacheOnLocalSettingsChange
+                       'wgCacheEpoch' => '20140101000000',
+
+                       // For ResourceLoader::__construct()
+                       'wgResourceLoaderSources' => array(),
+
+                       // For wfScript()
+                       'wgScriptPath' => '/w',
+                       'wgScriptExtension' => '.php',
+                       'wgScript' => '/w/index.php',
+                       'wgLoadScript' => '/w/load.php',
+               ) );
+       }
+}
+
+/* Stubs */
+
+class ResourceLoaderTestModule extends ResourceLoaderModule {
+
+       protected $dependencies = array();
+       protected $group = null;
+       protected $source = 'local';
+       protected $targets = array( 'test' );
+
+       public function __construct( $options = array() ) {
+               foreach ( $options as $key => $value ) {
+                       $this->$key = $value;
+               }
+       }
+
+       public function getDependencies() {
+               return $this->dependencies;
+       }
+
+       public function getGroup() {
+               return $this->group;
+       }
+
+       public function getSource() {
+               return $this->source;
+       }
+}
+
+class ResourceLoaderFileModuleTestModule extends ResourceLoaderFileModule {}
index 4fcd5fc..57879f8 100644 (file)
@@ -16,7 +16,7 @@ David Vignoni
 
 US_states_by_total_state_tax_revenue.svg
 http://commons.wikimedia.org/wiki/File:US_states_by_total_state_tax_revenue.svg
-CC-BY 3.0
+CC BY 3.0
 TastyCakes on English Wikipedia
 
 greyscale-na-png.png, rgb-png.png, Xmp-exif-multilingual_test.jpg
@@ -43,6 +43,6 @@ Larry Ewing, Simon Budig, Anja Gerwinski
 
 Speech_bubbles.svg (Modified slightly)
 https://commons.wikimedia.org/wiki/File:Speech_bubbles.svg
-CC-BY-SA 3.0
+CC BY-SA 3.0
 Jarry1250
 
index b09487a..8288cae 100644 (file)
@@ -1,39 +1,31 @@
 <?php
+
 /**
- * Test for the demo xml
+ * Test making sure the demo export xml is valid.
+ * This is NOT a unit test
  *
  * @group Dump
+ * @group large
  */
 class ExportDemoTest extends DumpTestCase {
 
-       /**
-        * @group large
-        */
-       function testExportDemo() {
-               $this->validateXmlFileAgainstXsd( "../../docs/export-demo.xml" );
-       }
-
-       /**
-        * Validates a xml file against the xsd.
-        *
-        * The validation is slow, because php has to read the xsd on each call.
-        *
-        * @param $fname string: name of file to validate
-        */
-       protected function validateXmlFileAgainstXsd( $fname ) {
+       public function testExportDemo() {
+               $fname = "../../docs/export-demo.xml";
                $version = WikiExporter::schemaVersion();
-
                $dom = new DomDocument();
                $dom->load( $fname );
 
                // Ensure, the demo is for the current version
-               $this->assertEquals( $dom->documentElement->getAttribute( 'version' ), $version, 'export-demo.xml should have the current version' );
+               $this->assertEquals(
+                       $dom->documentElement->getAttribute( 'version' ),
+                       $version,
+                       'export-demo.xml should have the current version'
+               );
 
-               try {
-                       $this->assertTrue( $dom->schemaValidate( "../../docs/export-" . $version . ".xsd" ),
-                               "schemaValidate has found an error" );
-               } catch ( Exception $e ) {
-                       $this->fail( "xml not valid against xsd: " . $e->getMessage() );
-               }
+               $this->assertTrue(
+                       $dom->schemaValidate( "../../docs/export-" . $version . ".xsd" ),
+                       "schemaValidate has found an error"
+               );
        }
+
 }
index 7f9a023..8e78da3 100644 (file)
@@ -8,28 +8,43 @@ class ArticleTablesTest extends MediaWikiLangTestCase {
        /**
         * @covers Title::getTemplateLinksFrom
         * @covers Title::getLinksFrom
+        * @todo give this test a real name explaining what is being tested here
         */
        public function testbug14404() {
-               global $wgContLang, $wgLanguageCode, $wgLang;
-
                $title = Title::newFromText( 'Bug 14404' );
                $page = WikiPage::factory( $title );
                $user = new User();
                $user->mRights = array( 'createpage', 'edit', 'purge' );
-               $wgLanguageCode = 'es';
-               $wgContLang = Language::factory( 'es' );
+               $this->setMwGlobals( 'wgLanguageCode', 'es' );
+               $this->setMwGlobals( 'wgContLang', Language::factory( 'es' ) );
+               $this->setMwGlobals( 'wgLang', Language::factory( 'fr' ) );
 
-               $wgLang = Language::factory( 'fr' );
-               $page->doEditContent( new WikitextContent( '{{:{{int:history}}}}' ), 'Test code for bug 14404', 0, false, $user );
+               $page->doEditContent(
+                       new WikitextContent( '{{:{{int:history}}}}' ),
+                       'Test code for bug 14404',
+                       0,
+                       false,
+                       $user
+               );
                $templates1 = $title->getTemplateLinksFrom();
 
-               $wgLang = Language::factory( 'de' );
-               $page = WikiPage::factory( $title ); // In order to force the rerendering of the same wikitext
+               $this->setMwGlobals( 'wgLang', Language::factory( 'de' ) );
+               $page = WikiPage::factory( $title ); // In order to force the re-rendering of the same wikitext
 
                // We need an edit, a purge is not enough to regenerate the tables
-               $page->doEditContent( new WikitextContent( '{{:{{int:history}}}}' ), 'Test code for bug 14404', EDIT_UPDATE, false, $user );
+               $page->doEditContent(
+                       new WikitextContent( '{{:{{int:history}}}}' ),
+                       'Test code for bug 14404',
+                       EDIT_UPDATE,
+                       false,
+                       $user
+               );
                $templates2 = $title->getTemplateLinksFrom();
 
+               /**
+                * @var Title[] $templates1
+                * @var Title[] $templates2
+                */
                $this->assertEquals( $templates1, $templates2 );
                $this->assertEquals( $templates1[0]->getFullText(), 'Historial' );
        }
index dc19154..3cf7abd 100644 (file)
@@ -32,17 +32,16 @@ class ExtraParserTest extends MediaWikiTestCase {
        }
 
        /**
-        * Bug 8689 - Long numeric lines kill the parser
+        * @see Bug 8689
         * @covers Parser::parse
         */
-       public function testBug8689() {
-               global $wgUser;
+       public function testLongNumericLinesDontKillTheParser() {
                $longLine = '1.' . str_repeat( '1234567890', 100000 ) . "\n";
 
-               $t = Title::newFromText( 'Unit test' );
-               $options = ParserOptions::newFromUser( $wgUser );
+               $title = Title::newFromText( 'Unit test' );
+               $options = ParserOptions::newFromUser( new User() );
                $this->assertEquals( "<p>$longLine</p>",
-                       $this->parser->parse( $longLine, $t, $options )->getText() );
+                       $this->parser->parse( $longLine, $title, $options )->getText() );
        }
 
        /**
@@ -52,16 +51,23 @@ class ExtraParserTest extends MediaWikiTestCase {
        public function testParse() {
                $title = Title::newFromText( __FUNCTION__ );
                $parserOutput = $this->parser->parse( "Test\n{{Foo}}\n{{Bar}}", $title, $this->options );
-               $this->assertEquals( "<p>Test\nContent of <i>Template:Foo</i>\nContent of <i>Template:Bar</i>\n</p>", $parserOutput->getText() );
+               $this->assertEquals(
+                       "<p>Test\nContent of <i>Template:Foo</i>\nContent of <i>Template:Bar</i>\n</p>",
+                       $parserOutput->getText()
+               );
        }
 
        /**
         * @covers Parser::preSaveTransform
         */
        public function testPreSaveTransform() {
-               global $wgUser;
                $title = Title::newFromText( __FUNCTION__ );
-               $outputText = $this->parser->preSaveTransform( "Test\r\n{{subst:Foo}}\n{{Bar}}", $title, $wgUser, $this->options );
+               $outputText = $this->parser->preSaveTransform(
+                       "Test\r\n{{subst:Foo}}\n{{Bar}}",
+                       $title,
+                       new User(),
+                       $this->options
+               );
 
                $this->assertEquals( "Test\nContent of ''Template:Foo''\n{{Bar}}", $outputText );
        }
@@ -73,7 +79,10 @@ class ExtraParserTest extends MediaWikiTestCase {
                $title = Title::newFromText( __FUNCTION__ );
                $outputText = $this->parser->preprocess( "Test\n{{Foo}}\n{{Bar}}", $title, $this->options );
 
-               $this->assertEquals( "Test\nContent of ''Template:Foo''\nContent of ''Template:Bar''", $outputText );
+               $this->assertEquals(
+                       "Test\nContent of ''Template:Foo''\nContent of ''Template:Bar''",
+                       $outputText
+               );
        }
 
        /**
@@ -148,6 +157,12 @@ class ExtraParserTest extends MediaWikiTestCase {
                $this->assertEquals( "{{Foo}} information <!-- is very secret -->", $outputText );
        }
 
+       /**
+        * @param Title $title
+        * @param bool $parser
+        *
+        * @return array
+        */
        static function statelessFetchTemplate( $title, $parser = false ) {
                $text = "Content of ''" . $title->getFullText() . "''";
                $deps = array();
index 5b038a6..c82dc42 100644 (file)
@@ -31,10 +31,10 @@ class MWTimestampTest extends MediaWikiLangTestCase {
 
        public function provideValidTimestampDifferences() {
                return array(
-                       array( '1406833268','1406833269', '00 00 00 01' ),
-                       array( '1406833268','1406833329', '00 00 01 01' ),
-                       array( '1406833268','1406836929', '00 01 01 01' ),
-                       array( '1406833268','1406923329', '01 01 01 01' ),
+                       array( '1406833268', '1406833269', '00 00 00 01' ),
+                       array( '1406833268', '1406833329', '00 00 01 01' ),
+                       array( '1406833268', '1406836929', '00 01 01 01' ),
+                       array( '1406833268', '1406923329', '01 01 01 01' ),
                );
        }
 
index bbb83da..e548f81 100644 (file)
@@ -18,4 +18,4 @@ class MediaWikiVersionFetcherTest extends PHPUnit_Framework_TestCase {
                $this->assertInternalType( 'string', $versionFetcher->fetchVersion() );
        }
 
-}
\ No newline at end of file
+}
index 71ebd6a..930a7f6 100644 (file)
@@ -10,6 +10,33 @@ class MessageTest extends MediaWikiLangTestCase {
                ) );
        }
 
+       public function provideTestParams() {
+               return array(
+                       array( array() ),
+                       array( array( 'foo' ), 'foo' ),
+                       array( array( 'foo', 'bar' ), 'foo', 'bar' ),
+                       array( array( 'baz' ), array( 'baz' ) ),
+                       array( array( 'baz', 'foo' ), array( 'baz', 'foo' ) ),
+                       array( array( 'baz', 'foo' ), array( 'baz', 'foo' ), 'hhh' ),
+                       array( array( 'baz', 'foo' ), array( 'baz', 'foo' ), 'hhh', array( 'ahahahahha' ) ),
+                       array( array( 'baz', 'foo' ), array( 'baz', 'foo' ), array( 'ahahahahha' ) ),
+                       array( array( 'baz' ), array( 'baz' ), array( 'ahahahahha' ) ),
+               );
+       }
+
+       /**
+        * @covers Message::params
+        * @dataProvider provideTestParams
+        */
+       public function testParams( $expected ) {
+               $msg = new Message( 'imasomething' );
+
+               $returned = call_user_func_array( array( $msg, 'params' ), array_slice( func_get_args(), 1 ) );
+
+               $this->assertSame( $msg, $returned );
+               $this->assertEquals( $expected, $msg->getParams() );
+       }
+
        /**
         * @covers Message::exists
         */
@@ -77,55 +104,84 @@ class MessageTest extends MediaWikiLangTestCase {
        }
 
        /**
-        * FIXME: This should not need database, but Language#formatExpiry does (bug 55912)
-        * @group Database
-        * @todo this should be split up into multiple test methods
         * @covers Message::numParams
-        * @covers Message::durationParams
-        * @covers Message::expiryParams
-        * @covers Message::timeperiodParams
-        * @covers Message::sizeParams
-        * @covers Message::bitrateParams
         */
-       public function testMessageParamTypes() {
+       public function testMessageNumParams() {
                $lang = Language::factory( 'en' );
-
                $msg = new RawMessage( '$1' );
+
                $this->assertEquals(
                        $lang->formatNum( 123456.789 ),
                        $msg->inLanguage( $lang )->numParams( 123456.789 )->plain(),
                        'numParams is handled correctly'
                );
+       }
 
+       /**
+        * @covers Message::durationParams
+        */
+       public function testMessageDurationParams() {
+               $lang = Language::factory( 'en' );
                $msg = new RawMessage( '$1' );
+
                $this->assertEquals(
                        $lang->formatDuration( 1234 ),
                        $msg->inLanguage( $lang )->durationParams( 1234 )->plain(),
                        'durationParams is handled correctly'
                );
+       }
 
+       /**
+        * FIXME: This should not need database, but Language#formatExpiry does (bug 55912)
+        * @group Database
+        * @covers Message::expiryParams
+        */
+       public function testMessageExpiryParams() {
+               $lang = Language::factory( 'en' );
                $msg = new RawMessage( '$1' );
+
                $this->assertEquals(
                        $lang->formatExpiry( wfTimestampNow() ),
                        $msg->inLanguage( $lang )->expiryParams( wfTimestampNow() )->plain(),
                        'expiryParams is handled correctly'
                );
+       }
 
+       /**
+        * @covers Message::timeperiodParams
+        */
+       public function testMessageTimeperiodParams() {
+               $lang = Language::factory( 'en' );
                $msg = new RawMessage( '$1' );
+
                $this->assertEquals(
                        $lang->formatTimePeriod( 1234 ),
                        $msg->inLanguage( $lang )->timeperiodParams( 1234 )->plain(),
                        'timeperiodParams is handled correctly'
                );
+       }
 
+       /**
+        * @covers Message::sizeParams
+        */
+       public function testMessageSizeParams() {
+               $lang = Language::factory( 'en' );
                $msg = new RawMessage( '$1' );
+
                $this->assertEquals(
                        $lang->formatSize( 123456 ),
                        $msg->inLanguage( $lang )->sizeParams( 123456 )->plain(),
                        'sizeParams is handled correctly'
                );
+       }
 
+       /**
+        * @covers Message::bitrateParams
+        */
+       public function testMessageBitrateParams() {
+               $lang = Language::factory( 'en' );
                $msg = new RawMessage( '$1' );
+
                $this->assertEquals(
                        $lang->formatBitrate( 123456 ),
                        $msg->inLanguage( $lang )->bitrateParams( 123456 )->plain(),
diff --git a/tests/phpunit/includes/ResourceLoaderModuleTest.php b/tests/phpunit/includes/ResourceLoaderModuleTest.php
deleted file mode 100644 (file)
index 4643319..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-class ResourceLoaderModuleTest extends MediaWikiTestCase {
-
-       protected static function getResourceLoaderContext() {
-               $resourceLoader = new ResourceLoader();
-               $request = new FauxRequest( array(
-                               'debug' => 'false',
-                               'lang' => 'en',
-                               'modules' => 'startup',
-                               'only' => 'scripts',
-                               'skin' => 'vector',
-               ) );
-               return new ResourceLoaderContext( $resourceLoader, $request );
-       }
-
-       /**
-        * @covers ResourceLoaderModule::getDefinitionSummary
-        * @covers ResourceLoaderFileModule::getDefinitionSummary
-        */
-       public function testDefinitionSummary() {
-               $context = self::getResourceLoaderContext();
-
-               $baseParams = array(
-                       'scripts' => array( 'foo.js', 'bar.js' ),
-                       'dependencies' => array( 'jquery', 'mediawiki' ),
-                       'messages' => array( 'hello', 'world' ),
-               );
-
-               $module = new ResourceLoaderFileModule( $baseParams );
-
-               $jsonSummary = json_encode( $module->getDefinitionSummary( $context ) );
-
-               // Exactly the same
-               $module = new ResourceLoaderFileModule( $baseParams );
-
-               $this->assertEquals(
-                       $jsonSummary,
-                       json_encode( $module->getDefinitionSummary( $context ) ),
-                       'Instance is insignificant'
-               );
-
-               // Re-order dependencies
-               $module = new ResourceLoaderFileModule( array(
-                       'dependencies' => array( 'mediawiki', 'jquery' ),
-               ) + $baseParams );
-
-               $this->assertEquals(
-                       $jsonSummary,
-                       json_encode( $module->getDefinitionSummary( $context ) ),
-                       'Order of dependencies is insignificant'
-               );
-
-               // Re-order messages
-               $module = new ResourceLoaderFileModule( array(
-                       'messages' => array( 'world', 'hello' ),
-               ) + $baseParams );
-
-               $this->assertEquals(
-                       $jsonSummary,
-                       json_encode( $module->getDefinitionSummary( $context ) ),
-                       'Order of messages is insignificant'
-               );
-
-               // Re-order scripts
-               $module = new ResourceLoaderFileModule( array(
-                       'scripts' => array( 'bar.js', 'foo.js' ),
-               ) + $baseParams );
-
-               $this->assertNotEquals(
-                       $jsonSummary,
-                       json_encode( $module->getDefinitionSummary( $context ) ),
-                       'Order of scripts is significant'
-               );
-
-               // Subclass
-               $module = new ResourceLoaderFileModuleTestModule( $baseParams );
-
-               $this->assertNotEquals(
-                       $jsonSummary,
-                       json_encode( $module->getDefinitionSummary( $context ) ),
-                       'Class is significant'
-               );
-       }
-}
-
-class ResourceLoaderFileModuleTestModule extends ResourceLoaderFileModule {}
diff --git a/tests/phpunit/includes/ResourceLoaderTest.php b/tests/phpunit/includes/ResourceLoaderTest.php
deleted file mode 100644 (file)
index ca8b2b6..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-<?php
-
-class ResourceLoaderTest extends MediaWikiTestCase {
-
-       protected static $resourceLoaderRegisterModulesHook;
-
-       protected function setUp() {
-               parent::setUp();
-
-               // $wgResourceLoaderLESSFunctions, $wgResourceLoaderLESSImportPaths; $wgResourceLoaderLESSVars;
-
-               $this->setMwGlobals( array(
-                       'wgResourceLoaderLESSFunctions' => array(
-                               'test-sum' => function ( $frame, $less ) {
-                                       $sum = 0;
-                                       foreach ( $frame[2] as $arg ) {
-                                               $sum += (int)$arg[1];
-                                       }
-                                       return $sum;
-                               },
-                       ),
-                       'wgResourceLoaderLESSImportPaths' => array(
-                               dirname( __DIR__ ) . '/data/less/common',
-                       ),
-                       'wgResourceLoaderLESSVars' => array(
-                               'foo'  => '2px',
-                               'Foo' => '#eeeeee',
-                               'bar' => 5,
-                       ),
-               ) );
-       }
-
-       /* Hook Methods */
-
-       /**
-        * ResourceLoaderRegisterModules hook
-        */
-       public static function resourceLoaderRegisterModules( &$resourceLoader ) {
-               self::$resourceLoaderRegisterModulesHook = true;
-
-               return true;
-       }
-
-       /* Provider Methods */
-       public static function provideValidModules() {
-               return array(
-                       array( 'TEST.validModule1', new ResourceLoaderTestModule() ),
-               );
-       }
-
-       public static function provideResourceLoaderContext() {
-               $resourceLoader = new ResourceLoader();
-               $request = new FauxRequest();
-               return array(
-                       array( new ResourceLoaderContext( $resourceLoader, $request ) ),
-               );
-       }
-
-       /* Test Methods */
-
-       /**
-        * Ensures that the ResourceLoaderRegisterModules hook is called when a new ResourceLoader object is constructed
-        * @covers ResourceLoader::__construct
-        */
-       public function testCreatingNewResourceLoaderCallsRegistrationHook() {
-               self::$resourceLoaderRegisterModulesHook = false;
-               $resourceLoader = new ResourceLoader();
-               $this->assertTrue( self::$resourceLoaderRegisterModulesHook );
-
-               return $resourceLoader;
-       }
-
-       /**
-        * @dataProvider provideValidModules
-        * @depends testCreatingNewResourceLoaderCallsRegistrationHook
-        * @covers ResourceLoader::register
-        * @covers ResourceLoader::getModule
-        */
-       public function testRegisteredValidModulesAreAccessible(
-               $name, ResourceLoaderModule $module, ResourceLoader $resourceLoader
-       ) {
-               $resourceLoader->register( $name, $module );
-               $this->assertEquals( $module, $resourceLoader->getModule( $name ) );
-       }
-
-       /**
-        * @dataProvider provideResourceLoaderContext
-        * @covers ResourceLoaderFileModule::compileLessFile
-        */
-       public function testLessFileCompilation( $context ) {
-               $basePath = __DIR__ . '/../data/less/module';
-               $module = new ResourceLoaderFileModule( array(
-                       'localBasePath' => $basePath,
-                       'styles' => array( 'styles.less' ),
-               ) );
-               $styles = $module->getStyles( $context );
-               $this->assertStringEqualsFile( $basePath . '/styles.css', $styles['all'] );
-       }
-
-       /**
-        * @dataProvider providePackedModules
-        * @covers ResourceLoader::makePackedModulesString
-        */
-       public function testMakePackedModulesString( $desc, $modules, $packed ) {
-               $this->assertEquals( $packed, ResourceLoader::makePackedModulesString( $modules ), $desc );
-       }
-
-       /**
-        * @dataProvider providePackedModules
-        * @covers ResourceLoaderContext::expandModuleNames
-        */
-       public function testexpandModuleNames( $desc, $modules, $packed ) {
-               $this->assertEquals( $modules, ResourceLoaderContext::expandModuleNames( $packed ), $desc );
-       }
-
-       public static function providePackedModules() {
-               return array(
-                       array(
-                               'Example from makePackedModulesString doc comment',
-                               array( 'foo.bar', 'foo.baz', 'bar.baz', 'bar.quux' ),
-                               'foo.bar,baz|bar.baz,quux',
-                       ),
-                       array(
-                               'Example from expandModuleNames doc comment',
-                               array( 'jquery.foo', 'jquery.bar', 'jquery.ui.baz', 'jquery.ui.quux' ),
-                               'jquery.foo,bar|jquery.ui.baz,quux',
-                       ),
-                       array(
-                               'Regression fixed in r88706 with dotless names',
-                               array( 'foo', 'bar', 'baz' ),
-                               'foo,bar,baz',
-                       ),
-                       array(
-                               'Prefixless modules after a prefixed module',
-                               array( 'single.module', 'foobar', 'foobaz' ),
-                               'single.module|foobar,foobaz',
-                       ),
-               );
-       }
-}
-
-/* Stubs */
-
-class ResourceLoaderTestModule extends ResourceLoaderModule {
-}
-
-/* Hooks */
-global $wgHooks;
-$wgHooks['ResourceLoaderRegisterModules'][] = 'ResourceLoaderTest::resourceLoaderRegisterModules';
index f69fad4..e69660e 100644 (file)
@@ -206,10 +206,12 @@ class RevisionStorageTest extends MediaWikiTestCase {
         */
        public function testFetchRevision() {
                $page = $this->createPage( 'RevisionStorageTest_testFetchRevision', 'one', CONTENT_MODEL_WIKITEXT );
-               $id1 = $page->getRevision()->getId();
+
+               // Hidden process cache assertion below
+               $page->getRevision()->getId();
 
                $page->doEditContent( new WikitextContent( 'two' ), 'second rev' );
-               $id2 = $page->getRevision()->getId();
+               $id = $page->getRevision()->getId();
 
                $res = Revision::fetchRevision( $page->getTitle() );
 
@@ -219,9 +221,8 @@ class RevisionStorageTest extends MediaWikiTestCase {
                        $rows[$row->rev_id] = $row;
                }
 
-               $row = $res->fetchObject();
                $this->assertEquals( 1, count( $rows ), 'expected exactly one revision' );
-               $this->assertArrayHasKey( $id2, $rows, 'missing revision with id ' . $id2 );
+               $this->assertArrayHasKey( $id, $rows, 'missing revision with id ' . $id );
        }
 
        /**
index 8516a4c..7e81fab 100644 (file)
@@ -43,12 +43,10 @@ class TestSample extends MediaWikiLangTestCase {
        }
 
        /**
-        * If you want to run a the same test with a variety of data. use a data provider.
+        * If you want to run a the same test with a variety of data, use a data provider.
         * see: http://www.phpunit.de/manual/3.4/en/writing-tests-for-phpunit.html
-        *
-        * Note: Data providers are always called statically and outside setUp/tearDown!
         */
-       public static function provideTitles() {
+       public function provideTitles() {
                return array(
                        array( 'Text', NS_MEDIA, 'Media:Text' ),
                        array( 'Text', null, 'Text' ),
diff --git a/tests/phpunit/includes/SkinTemplateTest.php b/tests/phpunit/includes/SkinTemplateTest.php
new file mode 100644 (file)
index 0000000..8f54714
--- /dev/null
@@ -0,0 +1,38 @@
+<?php
+
+/**
+ * @covers SkinTemplate
+ *
+ * @group Output
+ *
+ * @licence GNU GPL v2+
+ * @author Bene* < benestar.wikimedia@gmail.com >
+ */
+
+class SkinTemplateTest extends MediaWikiTestCase {
+
+       /**
+        * @dataProvider makeListItemProvider
+        */
+       public function testMakeListItem( $expected, $key, $item, $options, $message ) {
+               $template = $this->getMockForAbstractClass( 'BaseTemplate' );
+
+               $this->assertEquals(
+                       $expected,
+                       $template->makeListItem( $key, $item, $options ),
+                       $message
+               );
+       }
+
+       public function makeListItemProvider() {
+               return array(
+                       array(
+                               '<li class="class" title="itemtitle"><a href="url" title="title">text</a></li>',
+                               '',
+                               array( 'class' => 'class', 'itemtitle' => 'itemtitle', 'href' => 'url', 'title' => 'title', 'text' => 'text' ),
+                               array(),
+                               'Test makteListItem with normal values'
+                       )
+               );
+       }
+}
index 4386770..9d42d1c 100644 (file)
@@ -371,28 +371,20 @@ class StatusTest extends MediaWikiLangTestCase {
        /**
         * @dataProvider provideGetMessage
         * @covers Status::getMessage
-        * @todo test with multiple messages at once
+        * @todo test long and short context messages generated through this method
         */
-       public function testGetMessage( Status $status, $expectedParams = array(), $expectedKey, $shortContext = false, $longContext = false ) {
-               $message = $status->getMessage( $shortContext, $longContext );
+       public function testGetMessage( Status $status, $expectedParams = array(), $expectedKey ) {
+               $message = $status->getMessage();
                $this->assertInstanceOf( 'Message', $message );
-
-               // Loop through until we get to the appropriate depth for the message
-               $loops = $shortContext ? 1 : ( $longContext ? 2 : 0 );
-               for( $i = 1; $i <= $loops; $i++ ) {
-                       $params = $message->getParams();
-                       $this->assertInstanceOf( 'Message', $params[0] );
-                       $message = $params[0];
-               }
-
-               $this->assertEquals( $expectedParams, $message->getParams() );
-               $this->assertEquals( $expectedKey, $message->getKey() );
+               $this->assertEquals( $expectedParams, $message->getParams(), 'Message::getParams' );
+               $this->assertEquals( $expectedKey, $message->getKey(), 'Message::getKey' );
        }
 
        /**
         * @return array of arrays with values;
         *    0 => status object
-        *    1 => expected Message Params
+        *    1 => expected Message parameters (with no context)
+        *    2 => expected Message key
         */
        public static function provideGetMessage() {
                $testCases = array();
@@ -411,37 +403,26 @@ class StatusTest extends MediaWikiLangTestCase {
                        'internalerror_info'
                );
 
-               $testCases[ 'GoodButNoErrorShortContext' ] = array(
-                       $status,
-                       array( "Status::getMessage: Invalid result object: no error text but not OK\n" ),
-                       'internalerror_info',
-                       true
-               );
-
-               $testCases[ 'GoodButNoErrorLongContext' ] = array(
-                       $status,
-                       array( "Status::getMessage: Invalid result object: no error text but not OK\n" ),
-                       'internalerror_info',
-                       false,
-                       true
-               );
-
                $status = new Status();
                $status->warning( 'fooBar!' );
                $testCases[ '1StringWarning' ] = array(
                        $status,
                        array(),
-                       "fooBar!"
+                       'fooBar!'
                );
 
-               //NOTE: this seems to return a string instead of a Message object...
+               // FIXME: Assertion tries to compare a StubUserLang with a Language object, because
+               // "data providers are executed before both the call to the setUpBeforeClass static method
+               // and the first call to the setUp method. Because of that you can't access any variables
+               // you create there from within a data provider."
+               // http://phpunit.de/manual/3.7/en/writing-tests-for-phpunit.html
 //             $status = new Status();
 //             $status->warning( 'fooBar!' );
 //             $status->warning( 'fooBar2!' );
 //             $testCases[ '2StringWarnings' ] = array(
 //                     $status,
-//                     array(),
-//                     ''
+//                     array( new Message( 'fooBar!' ), new Message( 'fooBar2!' ) ),
+//                     "* \$1\n* \$2"
 //             );
 
                $status = new Status();
@@ -449,44 +430,16 @@ class StatusTest extends MediaWikiLangTestCase {
                $testCases[ '1MessageWarning' ] = array(
                        $status,
                        array( 'foo', 'bar' ),
-                       "fooBar!",
-               );
-
-               //NOTE: this seems to return a string instead of a Message object...
-//             $status = new Status();
-//             $status->warning( new Message( 'fooBar!', array( 'foo', 'bar' ) ) );
-//             $status->warning( new Message( 'fooBar2!' ) );
-//             $testCases[ '2MessageWarnings' ] = array(
-//                     $status,
-//                     array(),
-//                     "",
-//             );
-
-               $status = new Status();
-               $status->error( new Message( 'fooBar!', array( 'foo', 'bar' )  ) );
-               $testCases[ '1MessageError' ] = array(
-                       $status,
-                       array( 'foo', 'bar' ),
-                       "fooBar!",
+                       'fooBar!'
                );
 
                $status = new Status();
-               $status->error( new Message( 'fooBar!', array( 'foo', 'bar' )  ) );
-               $testCases[ '1MessageErrorShortContext' ] = array(
-                       $status,
-                       array( 'foo', 'bar' ),
-                       "fooBar!",
-                       true,
-               );
-
-               $status = new Status();
-               $status->error( new Message( 'fooBar!', array( 'foo', 'bar' )  ) );
-               $testCases[ '1MessageErrorLongContext' ] = array(
+               $status->warning( new Message( 'fooBar!', array( 'foo', 'bar' ) ) );
+               $status->warning( new Message( 'fooBar2!' ) );
+               $testCases[ '2MessageWarnings' ] = array(
                        $status,
-                       array( 'foo', 'bar' ),
-                       "fooBar!",
-                       false,
-                       true,
+                       array( new Message( 'fooBar!', array( 'foo', 'bar' ) ), new Message( 'fooBar2!' ) ),
+                       "* \$1\n* \$2"
                );
 
                return $testCases;
@@ -588,7 +541,7 @@ class StatusTest extends MediaWikiLangTestCase {
         */
        public function testGetStatusArrayWithNonObjectMessages( $nonObjMsg ) {
                $status = new Status();
-               if( !array_key_exists( 1, $nonObjMsg ) ) {
+               if ( !array_key_exists( 1, $nonObjMsg ) ) {
                        $status->warning( $nonObjMsg[0] );
                } else {
                        $status->warning( $nonObjMsg[0], $nonObjMsg[1] );
index 534bd2c..832316e 100644 (file)
@@ -113,5 +113,4 @@ class TitleArrayFromResultTest extends MediaWikiTestCase {
        //@todo unit test for key()
        //@todo unit test for next()
        //@todo unit test for rewind()
-
-}
\ No newline at end of file
+}
index 078dfef..ba3c6c0 100644 (file)
@@ -41,7 +41,7 @@ class TitleTest extends MediaWikiTestCase {
         */
        public function testSecureAndSplit() {
                $this->setMwGlobals( array(
-                       'wgLocalInterwiki' => 'localtestiw',
+                       'wgLocalInterwikis' => array( 'localtestiw' ),
                        'wgHooks' => array(
                                'InterwikiLoadPrefix' => array(
                                        function ( $prefix, &$data ) {
@@ -213,6 +213,7 @@ class TitleTest extends MediaWikiTestCase {
        /**
         * @dataProvider provideBug31100
         * @covers Title::fixSpecialName
+        * @todo give this test a real name explaining what is being tested here
         */
        public function testBug31100FixSpecialName( $text, $expectedParam ) {
                $title = Title::newFromText( $text );
index adc330d..8d095d6 100644 (file)
@@ -108,5 +108,4 @@ class UserArrayFromResultTest extends MediaWikiTestCase {
        //@todo unit test for key()
        //@todo unit test for next()
        //@todo unit test for rewind()
-
-}
\ No newline at end of file
+}
index 2ddf05a..e6af126 100644 (file)
@@ -258,4 +258,33 @@ class UserTest extends MediaWikiTestCase {
 
                $wgPasswordExpireGrace = $wgTemp;
        }
+
+       /**
+        * Test password validity checks. There are 3 checks in core,
+        *      - ensure the password meets the minimal length
+        *      - ensure the password is not the same as the username
+        *      - ensure the username/password combo isn't forbidden
+        * @covers User::checkPasswordValidity()
+        * @covers User::getPasswordValidity()
+        * @covers User::isValidPassword()
+        */
+       public function testCheckPasswordValidity() {
+               $this->setMwGlobals( 'wgMinimalPasswordLength', 6 );
+               $user = User::newFromName( 'Useruser' );
+               // Sanity
+               $this->assertTrue( $user->isValidPassword( 'Password1234' ) );
+
+               // Minimum length
+               $this->assertFalse( $user->isValidPassword( 'a' ) );
+               $this->assertFalse( $user->checkPasswordValidity( 'a' )->isGood() );
+               $this->assertEquals( 'passwordtooshort', $user->getPasswordValidity( 'a' ) );
+
+               // Matches username
+               $this->assertFalse( $user->checkPasswordValidity( 'Useruser' )->isGood() );
+               $this->assertEquals( 'password-name-match', $user->getPasswordValidity( 'Useruser' ) );
+
+               // On the forbidden list
+               $this->assertFalse( $user->checkPasswordValidity( 'Passpass' )->isGood() );
+               $this->assertEquals( 'password-login-forbidden', $user->getPasswordValidity( 'Passpass' ) );
+       }
 }
index 6cf658f..9b41a9c 100644 (file)
@@ -593,8 +593,6 @@ class WikiPageTest extends MediaWikiLangTestCase {
                }
 
                $page = $this->createPage( $title, $text, $model );
-               $hasLinks = wfGetDB( DB_SLAVE )->selectField( 'pagelinks', 1,
-                       array( 'pl_from' => $page->getId() ), __METHOD__ );
 
                $editInfo = $page->prepareContentForEdit( $page->getContent() );
 
index 8205029..86b4c35 100644 (file)
@@ -144,10 +144,7 @@ class XmlTest extends MediaWikiTestCase {
                $prevYear = $curYear - 1;
 
                $curMonth = intval( gmdate( 'n' ) );
-               $prevMonth = $curMonth - 1;
-               if ( $prevMonth == 0 ) {
-                       $prevMonth = 12;
-               }
+
                $nextMonth = $curMonth + 1;
                if ( $nextMonth == 13 ) {
                        $nextMonth = 1;
index 0a6607e..ac3f1cd 100644 (file)
@@ -18,6 +18,13 @@ class ApiEditPageTest extends ApiTestCase {
 
                parent::setUp();
 
+               $this->setMwGlobals( array(
+                       'wgExtraNamespaces' => $wgExtraNamespaces,
+                       'wgNamespaceContentModels' => $wgNamespaceContentModels,
+                       'wgContentHandlers' => $wgContentHandlers,
+                       'wgContLang' => $wgContLang,
+               ) );
+
                $wgExtraNamespaces[12312] = 'Dummy';
                $wgExtraNamespaces[12313] = 'Dummy_talk';
 
@@ -31,17 +38,7 @@ class ApiEditPageTest extends ApiTestCase {
        }
 
        protected function tearDown() {
-               global $wgExtraNamespaces, $wgNamespaceContentModels, $wgContentHandlers, $wgContLang;
-
-               unset( $wgExtraNamespaces[12312] );
-               unset( $wgExtraNamespaces[12313] );
-
-               unset( $wgNamespaceContentModels[12312] );
-               unset( $wgContentHandlers["testing"] );
-
                MWNamespace::getCanonicalNamespaces( true ); # reset namespace cache
-               $wgContLang->resetNamespaces(); # reset namespace cache
-
                parent::tearDown();
        }
 
@@ -215,7 +212,9 @@ class ApiEditPageTest extends ApiTestCase {
                        'text' => "==section 1==\nnew content 1",
                ) );
                $this->assertEquals( 'Success', $re['edit']['result'] );
-               $newtext = WikiPage::factory( Title::newFromText( $name ) )->getContent( Revision::RAW )->getNativeData();
+               $newtext = WikiPage::factory( Title::newFromText( $name ) )
+                       ->getContent( Revision::RAW )
+                       ->getNativeData();
                $this->assertEquals( $newtext, "==section 1==\nnew content 1\n\n==section 2==\ncontent2" );
 
                // Test that we raise a 'nosuchsection' error
@@ -253,7 +252,9 @@ class ApiEditPageTest extends ApiTestCase {
 
                $this->assertEquals( 'Success', $re['edit']['result'] );
                // Check the page text is correct
-               $text = WikiPage::factory( Title::newFromText( $name ) )->getContent( Revision::RAW )->getNativeData();
+               $text = WikiPage::factory( Title::newFromText( $name ) )
+                       ->getContent( Revision::RAW )
+                       ->getNativeData();
                $this->assertEquals( $text, "== header ==\n\ntest" );
 
                // Now on one that does
@@ -267,7 +268,9 @@ class ApiEditPageTest extends ApiTestCase {
                ));
 
                $this->assertEquals( 'Success', $re2['edit']['result'] );
-               $text = WikiPage::factory( Title::newFromText( $name ) )->getContent( Revision::RAW )->getNativeData();
+               $text = WikiPage::factory( Title::newFromText( $name ) )
+                       ->getContent( Revision::RAW )
+                       ->getNativeData();
                $this->assertEquals( $text, "== header ==\n\ntest\n\n== header ==\n\ntest" );
        }
 
@@ -391,7 +394,6 @@ class ApiEditPageTest extends ApiTestCase {
                $rpage->doEditContent( new WikitextContent( "#REDIRECT [[$name]]" ),
                        "testing 1", EDIT_NEW, false, self::$users['sysop']->user );
                $this->forceRevisionDate( $rpage, '20120101000000' );
-               $baseTime = $rpage->getRevision()->getTimestamp();
 
                // new edit to content
                $page->doEditContent( new WikitextContent( "Foo bar" ),
index bc08afe..124988f 100644 (file)
@@ -6,12 +6,16 @@
  * @group medium
  */
 class ApiQueryAllPagesTest extends ApiTestCase {
+
        protected function setUp() {
                parent::setUp();
                $this->doLogin();
        }
 
-       function testBug25702() {
+       /**
+        * @todo give this test a real name explaining what is being tested here
+        */
+       public function testBug25702() {
                $title = Title::newFromText( 'Category:Template:xyz' );
                $page = WikiPage::factory( $title );
                $page->doEdit( 'Some text', 'inserting content' );
diff --git a/tests/phpunit/includes/cache/ProcessCacheLRUTest.php b/tests/phpunit/includes/cache/ProcessCacheLRUTest.php
deleted file mode 100644 (file)
index d3793d8..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-<?php
-
-/**
- * Test for ProcessCacheLRU class.
- *
- * Note that it uses the ProcessCacheLRUTestable class which extends some
- * properties and methods visibility. That class is defined at the end of the
- * file containing this class.
- *
- * @group Cache
- */
-class ProcessCacheLRUTest extends MediaWikiTestCase {
-
-       /**
-        * Helper to verify emptiness of a cache object.
-        * Compare against an array so we get the cache content difference.
-        */
-       function assertCacheEmpty( $cache, $msg = 'Cache should be empty' ) {
-               $this->assertAttributeEquals( array(), 'cache', $cache, $msg );
-       }
-
-       /**
-        * Helper to fill a cache object passed by reference
-        */
-       function fillCache( &$cache, $numEntries ) {
-               // Fill cache with three values
-               for ( $i = 1; $i <= $numEntries; $i++ ) {
-                       $cache->set( "cache-key-$i", "prop-$i", "value-$i" );
-               }
-       }
-
-       /**
-        * Generates an array of what would be expected in cache for a given cache
-        * size and a number of entries filled in sequentially
-        */
-       function getExpectedCache( $cacheMaxEntries, $entryToFill ) {
-               $expected = array();
-
-               if ( $entryToFill === 0 ) {
-                       # The cache is empty!
-                       return array();
-               } elseif ( $entryToFill <= $cacheMaxEntries ) {
-                       # Cache is not fully filled
-                       $firstKey = 1;
-               } else {
-                       # Cache overflowed
-                       $firstKey = 1 + $entryToFill - $cacheMaxEntries;
-               }
-
-               $lastKey = $entryToFill;
-
-               for ( $i = $firstKey; $i <= $lastKey; $i++ ) {
-                       $expected["cache-key-$i"] = array( "prop-$i" => "value-$i" );
-               }
-
-               return $expected;
-       }
-
-       /**
-        * Highlight diff between assertEquals and assertNotSame
-        */
-       public function testPhpUnitArrayEquality() {
-               $one = array( 'A' => 1, 'B' => 2 );
-               $two = array( 'B' => 2, 'A' => 1 );
-               $this->assertEquals( $one, $two ); // ==
-               $this->assertNotSame( $one, $two ); // ===
-       }
-
-       /**
-        * @dataProvider provideInvalidConstructorArg
-        * @expectedException MWException
-        */
-       public function testConstructorGivenInvalidValue( $maxSize ) {
-               new ProcessCacheLRUTestable( $maxSize );
-       }
-
-       /**
-        * Value which are forbidden by the constructor
-        */
-       public static function provideInvalidConstructorArg() {
-               return array(
-                       array( null ),
-                       array( array() ),
-                       array( new stdClass() ),
-                       array( 0 ),
-                       array( '5' ),
-                       array( -1 ),
-               );
-       }
-
-       public function testAddAndGetAKey() {
-               $oneCache = new ProcessCacheLRUTestable( 1 );
-               $this->assertCacheEmpty( $oneCache );
-
-               // First set just one value
-               $oneCache->set( 'cache-key', 'prop1', 'value1' );
-               $this->assertEquals( 1, $oneCache->getEntriesCount() );
-               $this->assertTrue( $oneCache->has( 'cache-key', 'prop1' ) );
-               $this->assertEquals( 'value1', $oneCache->get( 'cache-key', 'prop1' ) );
-       }
-
-       public function testDeleteOldKey() {
-               $oneCache = new ProcessCacheLRUTestable( 1 );
-               $this->assertCacheEmpty( $oneCache );
-
-               $oneCache->set( 'cache-key', 'prop1', 'value1' );
-               $oneCache->set( 'cache-key', 'prop1', 'value2' );
-               $this->assertEquals( 'value2', $oneCache->get( 'cache-key', 'prop1' ) );
-       }
-
-       /**
-        * This test that we properly overflow when filling a cache with
-        * a sequence of always different cache-keys. Meant to verify we correclty
-        * delete the older key.
-        *
-        * @dataProvider provideCacheFilling
-        * @param $cacheMaxEntries Maximum entry the created cache will hold
-        * @param $entryToFill Number of entries to insert in the created cache.
-        */
-       public function testFillingCache( $cacheMaxEntries, $entryToFill, $msg = '' ) {
-               $cache = new ProcessCacheLRUTestable( $cacheMaxEntries );
-               $this->fillCache( $cache, $entryToFill );
-
-               $this->assertSame(
-                       $this->getExpectedCache( $cacheMaxEntries, $entryToFill ),
-                       $cache->getCache(),
-                       "Filling a $cacheMaxEntries entries cache with $entryToFill entries"
-               );
-       }
-
-       /**
-        * Provider for testFillingCache
-        */
-       public static function provideCacheFilling() {
-               // ($cacheMaxEntries, $entryToFill, $msg='')
-               return array(
-                       array( 1, 0 ),
-                       array( 1, 1 ),
-                       array( 1, 2 ), # overflow
-                       array( 5, 33 ), # overflow
-               );
-       }
-
-       /**
-        * Create a cache with only one remaining entry then update
-        * the first inserted entry. Should bump it to the top.
-        */
-       public function testReplaceExistingKeyShouldBumpEntryToTop() {
-               $maxEntries = 3;
-
-               $cache = new ProcessCacheLRUTestable( $maxEntries );
-               // Fill cache leaving just one remaining slot
-               $this->fillCache( $cache, $maxEntries - 1 );
-
-               // Set an existing cache key
-               $cache->set( "cache-key-1", "prop-1", "new-value-for-1" );
-
-               $this->assertSame(
-                       array(
-                               'cache-key-2' => array( 'prop-2' => 'value-2' ),
-                               'cache-key-1' => array( 'prop-1' => 'new-value-for-1' ),
-                       ),
-                       $cache->getCache()
-               );
-       }
-
-       public function testRecentlyAccessedKeyStickIn() {
-               $cache = new ProcessCacheLRUTestable( 2 );
-               $cache->set( 'first', 'prop1', 'value1' );
-               $cache->set( 'second', 'prop2', 'value2' );
-
-               // Get first
-               $cache->get( 'first', 'prop1' );
-               // Cache a third value, should invalidate the least used one
-               $cache->set( 'third', 'prop3', 'value3' );
-
-               $this->assertFalse( $cache->has( 'second', 'prop2' ) );
-       }
-
-       /**
-        * This first create a full cache then update the value for the 2nd
-        * filled entry.
-        * Given a cache having 1,2,3 as key, updating 2 should bump 2 to
-        * the top of the queue with the new value: 1,3,2* (* = updated).
-        */
-       public function testReplaceExistingKeyInAFullCacheShouldBumpToTop() {
-               $maxEntries = 3;
-
-               $cache = new ProcessCacheLRUTestable( $maxEntries );
-               $this->fillCache( $cache, $maxEntries );
-
-               // Set an existing cache key
-               $cache->set( "cache-key-2", "prop-2", "new-value-for-2" );
-               $this->assertSame(
-                       array(
-                               'cache-key-1' => array( 'prop-1' => 'value-1' ),
-                               'cache-key-3' => array( 'prop-3' => 'value-3' ),
-                               'cache-key-2' => array( 'prop-2' => 'new-value-for-2' ),
-                       ),
-                       $cache->getCache()
-               );
-               $this->assertEquals( 'new-value-for-2',
-                       $cache->get( 'cache-key-2', 'prop-2' )
-               );
-       }
-
-       public function testBumpExistingKeyToTop() {
-               $cache = new ProcessCacheLRUTestable( 3 );
-               $this->fillCache( $cache, 3 );
-
-               // Set the very first cache key to a new value
-               $cache->set( "cache-key-1", "prop-1", "new value for 1" );
-               $this->assertEquals(
-                       array(
-                               'cache-key-2' => array( 'prop-2' => 'value-2' ),
-                               'cache-key-3' => array( 'prop-3' => 'value-3' ),
-                               'cache-key-1' => array( 'prop-1' => 'new value for 1' ),
-                       ),
-                       $cache->getCache()
-               );
-       }
-}
-
-/**
- * Overrides some ProcessCacheLRU methods and properties accessibility.
- */
-class ProcessCacheLRUTestable extends ProcessCacheLRU {
-       public $cache = array();
-
-       public function getCache() {
-               return $this->cache;
-       }
-
-       public function getEntriesCount() {
-               return count( $this->cache );
-       }
-}
diff --git a/tests/phpunit/includes/changes/RCCacheEntryFactoryTest.php b/tests/phpunit/includes/changes/RCCacheEntryFactoryTest.php
new file mode 100644 (file)
index 0000000..49feec1
--- /dev/null
@@ -0,0 +1,415 @@
+<?php
+
+/**
+ * @covers RCCacheEntryFactory
+ *
+ * @group Database
+ *
+ * @licence GNU GPL v2+
+ * @author Katie Filbert < aude.wiki@gmail.com >
+ */
+class RCCacheEntryFactoryTest extends MediaWikiLangTestCase {
+       protected function setUp() {
+               parent::setUp();
+
+               $this->setMwGlobals( array(
+                       'wgArticlePath' => '/wiki/$1'
+               ) );
+       }
+
+       /**
+        * @dataProvider editChangeProvider
+        */
+       public function testNewFromRecentChange( $expected, $context, $messages,
+               $recentChange, $watched
+       ) {
+               $cacheEntryFactory = new RCCacheEntryFactory( $context, $messages );
+               $cacheEntry = $cacheEntryFactory->newFromRecentChange( $recentChange, $watched );
+
+               $this->assertInstanceOf( 'RCCacheEntry', $cacheEntry );
+
+               $this->assertEquals( $watched, $cacheEntry->watched, 'watched' );
+               $this->assertEquals( $expected['timestamp'], $cacheEntry->timestamp, 'timestamp' );
+               $this->assertEquals(
+                       $expected['numberofWatchingusers'], $cacheEntry->numberofWatchingusers,
+                       'watching users'
+               );
+               $this->assertEquals( $expected['unpatrolled'], $cacheEntry->unpatrolled, 'unpatrolled' );
+
+               $this->assertUserLinks( 'Mary', $cacheEntry );
+               $this->assertTitleLink( 'Xyz', $cacheEntry );
+
+               $this->assertQueryLink( 'cur', $expected['cur'], $cacheEntry->curlink, 'cur link' );
+               $this->assertQueryLink( 'prev', $expected['diff'], $cacheEntry->lastlink, 'prev link' );
+               $this->assertQueryLink( 'diff', $expected['diff'], $cacheEntry->difflink, 'diff link' );
+       }
+
+       public function editChangeProvider() {
+               return array(
+                       array(
+                               array(
+                                       'title' => 'Xyz',
+                                       'user' => 'Mary',
+                                       'diff' => array( 'curid' => 5, 'diff' => 191, 'oldid' => 190 ),
+                                       'cur' => array( 'curid' => 5, 'diff' => 0, 'oldid' => 191 ),
+                                       'timestamp' => '21:21',
+                                       'numberofWatchingusers' => 0,
+                                       'unpatrolled' => false
+                               ),
+                               $this->getContext(),
+                               $this->getMessages(),
+                               $this->makeEditRecentChange(
+                                       'Xyz',
+                                       $this->getTestUser(),
+                                       5, // curid
+                                       191, // thisid
+                                       190, // lastid
+                                       '20131103212153',
+                                       0, // counter
+                                       0 // number of watching users
+                               ),
+                               false,
+                               'edit'
+                       )
+               );
+       }
+
+       private function makeEditRecentChange( $title, $user, $curid, $thisid, $lastid,
+               $timestamp, $counter, $watchingUsers
+       ) {
+
+               $attribs = array_merge(
+                       $this->getDefaultAttributes( $title, $timestamp ),
+                       array(
+                               'rc_user' => $user->getId(),
+                               'rc_user_text' => $user->getName(),
+                               'rc_this_oldid' => $thisid,
+                               'rc_last_oldid' => $lastid,
+                               'rc_cur_id' => $curid
+                       )
+               );
+
+               return $this->makeRecentChange( $attribs, $counter, $watchingUsers );
+       }
+
+       /**
+        * @dataProvider deleteChangeProvider
+        */
+       public function testNewForDeleteChange( $expected, $context, $messages, $recentChange, $watched ) {
+               $cacheEntryFactory = new RCCacheEntryFactory( $context, $messages );
+               $cacheEntry = $cacheEntryFactory->newFromRecentChange( $recentChange, $watched );
+
+               $this->assertInstanceOf( 'RCCacheEntry', $cacheEntry );
+
+               $this->assertEquals( $watched, $cacheEntry->watched, 'watched' );
+               $this->assertEquals( $expected['timestamp'], $cacheEntry->timestamp, 'timestamp' );
+               $this->assertEquals(
+                       $expected['numberofWatchingusers'],
+                       $cacheEntry->numberofWatchingusers, 'watching users'
+               );
+               $this->assertEquals( $expected['unpatrolled'], $cacheEntry->unpatrolled, 'unpatrolled' );
+
+               $this->assertDeleteLogLink( $cacheEntry );
+               $this->assertUserLinks( 'Mary', $cacheEntry );
+
+               $this->assertEquals( 'cur', $cacheEntry->curlink, 'cur link for delete log or rev' );
+               $this->assertEquals( 'diff', $cacheEntry->difflink, 'diff link for delete log or rev' );
+               $this->assertEquals( 'prev', $cacheEntry->lastlink, 'pref link for delete log or rev' );
+       }
+
+       public function deleteChangeProvider() {
+               return array(
+                       array(
+                               array(
+                                       'title' => 'Abc',
+                                       'user' => 'Mary',
+                                       'timestamp' => '21:21',
+                                       'numberofWatchingusers' => 0,
+                                       'unpatrolled' => false
+                               ),
+                               $this->getContext(),
+                               $this->getMessages(),
+                               $this->makeLogRecentChange(
+                                       'Abc',
+                                       $this->getTestUser(),
+                                       '20131103212153',
+                                       0, // counter
+                                       0 // number of watching users
+                               ),
+                               false,
+                               'delete'
+                       )
+               );
+       }
+
+       private function makeLogRecentChange( $title, $user, $timestamp, $counter, $watchingUsers ) {
+               $attribs = array_merge(
+                       $this->getDefaultAttributes( $title, $timestamp ),
+                       array(
+                               'rc_cur_id' => 0,
+                               'rc_user' => $user->getId(),
+                               'rc_user_text' => $user->getName(),
+                               'rc_this_oldid' => 0,
+                               'rc_last_oldid' => 0,
+                               'rc_old_len' => null,
+                               'rc_new_len' => null,
+                               'rc_type' => 3,
+                               'rc_logid' => 25,
+                               'rc_log_type' => 'delete',
+                               'rc_log_action' => 'delete'
+                       )
+               );
+
+               return $this->makeRecentChange( $attribs, $counter, $watchingUsers );
+       }
+
+       /**
+        * @dataProvider revUserDeleteProvider
+        */
+       public function testNewForRevUserDeleteChange( $expected, $context, $messages,
+               $recentChange, $watched
+       ) {
+               $cacheEntryFactory = new RCCacheEntryFactory( $context, $messages );
+               $cacheEntry = $cacheEntryFactory->newFromRecentChange( $recentChange, $watched );
+
+               $this->assertInstanceOf( 'RCCacheEntry', $cacheEntry );
+
+               $this->assertEquals( $watched, $cacheEntry->watched, 'watched' );
+               $this->assertEquals( $expected['timestamp'], $cacheEntry->timestamp, 'timestamp' );
+               $this->assertEquals(
+                       $expected['numberofWatchingusers'],
+                       $cacheEntry->numberofWatchingusers, 'watching users'
+               );
+               $this->assertEquals( $expected['unpatrolled'], $cacheEntry->unpatrolled, 'unpatrolled' );
+
+               $this->assertRevDel( $cacheEntry );
+               $this->assertTitleLink( 'Zzz', $cacheEntry );
+
+               $this->assertEquals( 'cur', $cacheEntry->curlink, 'cur link for delete log or rev' );
+               $this->assertEquals( 'diff', $cacheEntry->difflink, 'diff link for delete log or rev' );
+               $this->assertEquals( 'prev', $cacheEntry->lastlink, 'pref link for delete log or rev' );
+       }
+
+       public function revUserDeleteProvider() {
+               return array(
+                       array(
+                               array(
+                                       'title' => 'Zzz',
+                                       'user' => 'Mary',
+                                       'diff' => '',
+                                       'cur' => '',
+                                       'timestamp' => '21:21',
+                                       'numberofWatchingusers' => 0,
+                                       'unpatrolled' => false
+                               ),
+                               $this->getContext(),
+                               $this->getMessages(),
+                               $this->makeDeletedEditRecentChange(
+                                       'Zzz',
+                                       $this->getTestUser(),
+                                       '20131103212153',
+                                       191, // thisid
+                                       190, // lastid
+                                       '20131103212153',
+                                       0, // counter
+                                       0 // number of watching users
+                               ),
+                               false,
+                               'deletedrevuser'
+                       )
+               );
+       }
+
+       private function makeDeletedEditRecentChange( $title, $user, $timestamp, $curid, $thisid,
+               $lastid, $counter, $watchingUsers
+       ) {
+               $attribs = array_merge(
+                       $this->getDefaultAttributes( $title, $timestamp ),
+                       array(
+                               'rc_user' => $user->getId(),
+                               'rc_user_text' => $user->getName(),
+                               'rc_deleted' => 5,
+                               'rc_cur_id' => $curid,
+                               'rc_this_oldid' => $thisid,
+                               'rc_last_oldid' => $lastid
+                       )
+               );
+
+               return $this->makeRecentChange( $attribs, $counter, $watchingUsers );
+       }
+
+       private function assertUserLinks( $user, $cacheEntry ) {
+               $this->assertTag(
+                       array(
+                               'tag' => 'a',
+                               'attributes' => array(
+                                       'class' => 'new mw-userlink'
+                               ),
+                               'content' => $user
+                       ),
+                       $cacheEntry->userlink,
+                       'verify user link'
+               );
+
+               $this->assertTag(
+                       array(
+                               'tag' => 'span',
+                               'attributes' => array(
+                                       'class' => 'mw-usertoollinks'
+                               ),
+                               'child' => array(
+                                       'tag' => 'a',
+                                       'content' => 'Talk',
+                               )
+                       ),
+                       $cacheEntry->usertalklink,
+                       'verify user talk link'
+               );
+
+               $this->assertTag(
+                       array(
+                               'tag' => 'span',
+                               'attributes' => array(
+                                       'class' => 'mw-usertoollinks'
+                               ),
+                               'child' => array(
+                                       'tag' => 'a',
+                                       'content' => 'contribs',
+                               )
+                       ),
+                       $cacheEntry->usertalklink,
+                       'verify user tool links'
+               );
+       }
+
+       private function assertDeleteLogLink( $cacheEntry ) {
+               $this->assertTag(
+                       array(
+                               'tag' => 'a',
+                               'attributes' => array(
+                                       'href' => '/wiki/Special:Log/delete',
+                                       'title' => 'Special:Log/delete'
+                               ),
+                               'content' => 'Deletion log'
+                       ),
+                       $cacheEntry->link,
+                       'verify deletion log link'
+               );
+       }
+
+       private function assertRevDel( $cacheEntry ) {
+               $this->assertTag(
+                       array(
+                               'tag' => 'span',
+                               'attributes' => array(
+                                       'class' => 'history-deleted'
+                               ),
+                               'content' => '(username removed)'
+                       ),
+                       $cacheEntry->userlink,
+                       'verify user link for change with deleted revision and user'
+               );
+       }
+
+       private function assertTitleLink( $title, $cacheEntry ) {
+               $this->assertTag(
+                       array(
+                               'tag' => 'a',
+                               'attributes' => array(
+                                       'href' => '/wiki/' . $title,
+                                       'title' => $title
+                               ),
+                               'content' => $title
+                       ),
+                       $cacheEntry->link,
+                       'verify title link'
+               );
+       }
+
+       private function assertQueryLink( $content, $params, $link ) {
+               $this->assertTag(
+                       array(
+                               'tag' => 'a',
+                               'content' => $content
+                       ),
+                       $link,
+                       'assert query link element'
+               );
+
+               foreach ( $params as $key => $value ) {
+                       $this->assertRegExp( '/' . $key . '=' . $value . '/', $link, "verify $key link params" );
+               }
+       }
+
+       private function makeRecentChange( $attribs, $counter, $watchingUsers ) {
+               $change = new RecentChange();
+               $change->setAttribs( $attribs );
+               $change->counter = $counter;
+               $change->numberofWatchingusers = $watchingUsers;
+
+               return $change;
+       }
+
+       private function getDefaultAttributes( $title, $timestamp ) {
+               return array(
+                       'rc_id' => 545,
+                       'rc_user' => 0,
+                       'rc_user_text' => '127.0.0.1',
+                       'rc_ip' => '127.0.0.1',
+                       'rc_title' => $title,
+                       'rc_namespace' => 0,
+                       'rc_timestamp' => $timestamp,
+                       'rc_cur_time' => $timestamp,
+                       'rc_old_len' => 212,
+                       'rc_new_len' => 188,
+                       'rc_comment' => '',
+                       'rc_minor' => 0,
+                       'rc_bot' => 0,
+                       'rc_type' => 0,
+                       'rc_patrolled' => 1,
+                       'rc_deleted' => 0,
+                       'rc_logid' => 0,
+                       'rc_log_type' => null,
+                       'rc_log_action' => '',
+                       'rc_params' => '',
+                       'rc_source' => 'mw.edit'
+               );
+       }
+
+       private function getTestUser() {
+               $user = User::newFromName( 'Mary' );
+
+               if ( !$user->getId() ) {
+                       $user->addToDatabase();
+               }
+
+               return $user;
+       }
+
+       private function getMessages() {
+               return array(
+                       'cur' => 'cur',
+                       'diff' => 'diff',
+                       'hist' => 'hist',
+                       'enhancedrc-history' => 'history',
+                       'last' => 'prev',
+                       'blocklink' => 'block',
+                       'history' => 'Page history',
+                       'semicolon-separator' => '; ',
+                       'pipe-separator' => ' | '
+               );
+       }
+
+       private function getContext() {
+               $title = Title::newFromText( 'RecentChanges', NS_SPECIAL );
+
+               $context = new RequestContext();
+               $context->setTitle( $title );
+               $context->setLanguage( Language::factory( 'en' ) );
+
+               $user = $this->getTestUser();
+               $context->setUser( $user );
+
+               return $context;
+       }
+}
index cfa3e77..c63675e 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+
 /**
  * @group Database
  */
@@ -136,7 +137,8 @@ class RecentChangeTest extends MediaWikiTestCase {
 
                # move/move
                $this->assertIRCComment(
-                       $this->context->msg( '1movedto2', 'SomeTitle', 'TestTarget' )->plain() . $sep . $this->user_comment,
+                       $this->context->msg( '1movedto2', 'SomeTitle', 'TestTarget' )
+                               ->plain() . $sep . $this->user_comment,
                        'move', 'move',
                        $move_params,
                        $this->user_comment
@@ -144,7 +146,8 @@ class RecentChangeTest extends MediaWikiTestCase {
 
                # move/move_redir
                $this->assertIRCComment(
-                       $this->context->msg( '1movedto2_redir', 'SomeTitle', 'TestTarget' )->plain() . $sep . $this->user_comment,
+                       $this->context->msg( '1movedto2_redir', 'SomeTitle', 'TestTarget' )
+                               ->plain() . $sep . $this->user_comment,
                        'move', 'move_redir',
                        $move_params,
                        $this->user_comment
@@ -178,7 +181,8 @@ class RecentChangeTest extends MediaWikiTestCase {
 
                # protect/protect
                $this->assertIRCComment(
-                       $this->context->msg( 'protectedarticle', 'SomeTitle ' . $protectParams[0] )->plain() . $sep . $this->user_comment,
+                       $this->context->msg( 'protectedarticle', 'SomeTitle ' . $protectParams[0] )
+                               ->plain() . $sep . $this->user_comment,
                        'protect', 'protect',
                        $protectParams,
                        $this->user_comment
@@ -194,7 +198,8 @@ class RecentChangeTest extends MediaWikiTestCase {
 
                # protect/modify
                $this->assertIRCComment(
-                       $this->context->msg( 'modifiedarticleprotection', 'SomeTitle ' . $protectParams[0] )->plain() . $sep . $this->user_comment,
+                       $this->context->msg( 'modifiedarticleprotection', 'SomeTitle ' . $protectParams[0] )
+                               ->plain() . $sep . $this->user_comment,
                        'protect', 'modify',
                        $protectParams,
                        $this->user_comment
@@ -255,8 +260,9 @@ class RecentChangeTest extends MediaWikiTestCase {
         * @param $comment String (optional) A comment for the log action
         * @param $msg String (optional) A message for PHPUnit :-)
         */
-       protected function assertIRCComment( $expected, $type, $action, $params, $comment = null, $msg = '' ) {
-
+       protected function assertIRCComment( $expected, $type, $action, $params,
+               $comment = null, $msg = ''
+       ) {
                $logEntry = new ManualLogEntry( $type, $action );
                $logEntry->setPerformer( $this->user );
                $logEntry->setTarget( $this->title );
index 8de8be1..59b8d20 100644 (file)
@@ -152,5 +152,4 @@ class ComposerVersionNormalizerTest extends PHPUnit_Framework_TestCase {
                        array( 'alpha42' ),
                );
        }
-
-}
\ No newline at end of file
+}
index 50c5c57..351908b 100644 (file)
@@ -40,7 +40,7 @@ class ArrayDiffFormatterTest extends MediaWikiTestCase {
                $diffOp->expects( $this->any() )
                        ->method( 'getOrig' )
                        ->will( $this->returnValue( $orig ) );
-               if( $type === 'change' ) {
+               if ( $type === 'change' ) {
                        $diffOp->expects( $this->any() )
                                ->method( 'getClosing' )
                                ->with( $this->isType( 'integer' ) )
@@ -104,10 +104,10 @@ class ArrayDiffFormatterTest extends MediaWikiTestCase {
                );
 
                $testCases = array();
-               foreach( $emptyArrayTestCases as $testCase ) {
+               foreach ( $emptyArrayTestCases as $testCase ) {
                        $testCases[] = array( $testCase, array() );
                }
-               foreach( $otherTestCases as $testCase ) {
+               foreach ( $otherTestCases as $testCase ) {
                        $testCases[] = array( $testCase[0], $testCase[1] );
                }
                return $testCases;
index fe2c566..d89b89f 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 //Load our FakeDiffOp
-require_once( __DIR__ . DIRECTORY_SEPARATOR . 'FakeDiffOp.php' );
+require_once __DIR__ . DIRECTORY_SEPARATOR . 'FakeDiffOp.php';
 
 /**
  * @licence GNU GPL v2+
@@ -44,10 +44,10 @@ class DiffOpTest extends MediaWikiTestCase {
        public function testGetClosingWithParameter() {
                $obj = new FakeDiffOp();
                $obj->closing = array( 'foo', 'bar', 'baz' );
-               $this->assertEquals( 'foo' , $obj->getClosing( 0 ) );
-               $this->assertEquals( 'bar' , $obj->getClosing( 1 ) );
-               $this->assertEquals( 'baz' , $obj->getClosing( 2 ) );
-               $this->assertEquals( null , $obj->getClosing( 3 ) );
+               $this->assertEquals( 'foo', $obj->getClosing( 0 ) );
+               $this->assertEquals( 'bar', $obj->getClosing( 1 ) );
+               $this->assertEquals( 'baz', $obj->getClosing( 2 ) );
+               $this->assertEquals( null, $obj->getClosing( 3 ) );
        }
 
        /**
index 6f9804d..003efd2 100644 (file)
@@ -22,10 +22,9 @@ class BadTitleErrorTest extends MediaWikiTestCase {
        public function testExceptionSetsStatusCode() {
                global $wgOut;
                $wgOut = $this->getMockWgOut();
-               try{
+               try {
                        throw new BadTitleError();
-               }
-               catch( BadTitleError $e ) {
+               } catch ( BadTitleError $e ) {
                        $e->report();
                        $this->assertTrue( true );
                }
diff --git a/tests/phpunit/includes/exception/ErrorPageErrorTest.php b/tests/phpunit/includes/exception/ErrorPageErrorTest.php
new file mode 100644 (file)
index 0000000..13dcf33
--- /dev/null
@@ -0,0 +1,67 @@
+<?php
+
+/**
+ * @covers ErrorPageError
+ * @author Adam Shorland
+ */
+class ErrorPageErrorTest extends MediaWikiTestCase {
+
+       private $wgOut;
+
+       protected function setUp() {
+               parent::setUp();
+               global $wgOut;
+               $this->wgOut = clone $wgOut;
+       }
+
+       protected function tearDown() {
+               global $wgOut;
+               $wgOut = $this->wgOut;
+               parent::tearDown();
+       }
+
+       private function getMockMessage() {
+               $mockMessage = $this->getMockBuilder( 'Message' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+               $mockMessage->expects( $this->once() )
+                       ->method( 'inLanguage' )
+                       ->will( $this->returnValue( $mockMessage ) );
+               $mockMessage->expects( $this->once() )
+                       ->method( 'useDatabase' )
+                       ->will( $this->returnValue( $mockMessage ) );
+               return $mockMessage;
+       }
+
+       public function testConstruction() {
+               $mockMessage = $this->getMockMessage();
+               $title = 'Foo';
+               $params = array( 'Baz' );
+               $e = new ErrorPageError( $title, $mockMessage, $params );
+               $this->assertEquals( $title, $e->title );
+               $this->assertEquals( $mockMessage, $e->msg );
+               $this->assertEquals( $params, $e->params );
+       }
+
+       public function testReport() {
+               $mockMessage = $this->getMockMessage();
+               $title = 'Foo';
+               $params = array( 'Baz' );
+
+               global $wgOut;
+               $wgOut = $this->getMockBuilder( 'OutputPage' )
+                       ->disableOriginalConstructor()
+                       ->getMock();
+               $wgOut->expects( $this->once() )
+                       ->method( 'showErrorPage' )
+                       ->with( $title, $mockMessage, $params );
+               $wgOut->expects( $this->once() )
+                       ->method( 'output' );
+
+               $e = new ErrorPageError( $title, $mockMessage, $params );
+               $e->report();
+       }
+
+
+
+}
index 2dc4850..24741a3 100644 (file)
@@ -112,11 +112,11 @@ class MWExceptionTest extends MediaWikiTestCase {
         */
        public static function mockHook() {
                $args = func_get_args();
-               if( !$args[0] instanceof MWException ) {
+               if ( !$args[0] instanceof MWException ) {
                        return '$caller not instance of MWException';
                }
                unset( $args[0] );
-               if( array_key_exists( 1, $args ) && $args[1] === null ) {
+               if ( array_key_exists( 1, $args ) && $args[1] === null ) {
                        return null;
                }
                return 'YAY.' . json_encode( $args );
diff --git a/tests/phpunit/includes/exception/ReadOnlyErrorTest.php b/tests/phpunit/includes/exception/ReadOnlyErrorTest.php
new file mode 100644 (file)
index 0000000..6f6aba4
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * @covers ReadOnlyError
+ * @author Adam Shorland
+ */
+class ReadOnlyErrorTest extends MediaWikiTestCase {
+
+       public function testConstruction() {
+               $e = new ReadOnlyError();
+               $this->assertEquals( 'readonly', $e->title );
+               $this->assertEquals( 'readonlytext', $e->msg );
+               $this->assertEquals( wfReadOnlyReason() ?: array(), $e->params );
+       }
+
+}
index ca67241..8995a0d 100644 (file)
@@ -23,10 +23,9 @@ class ThrottledErrorTest extends MediaWikiTestCase {
        public function testExceptionSetsStatusCode() {
                global $wgOut;
                $wgOut = $this->getMockWgOut();
-               try{
+               try {
                        throw new ThrottledError();
-               }
-               catch( ThrottledError $e ) {
+               } catch ( ThrottledError $e ) {
                        $e->report();
                        $this->assertTrue( true );
                }
diff --git a/tests/phpunit/includes/exception/UserNotLoggedInTest.php b/tests/phpunit/includes/exception/UserNotLoggedInTest.php
new file mode 100644 (file)
index 0000000..591a0fa
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+
+/**
+ * @covers UserNotLoggedIn
+ * @author Adam Shorland
+ */
+class UserNotLoggedInTest extends MediaWikiTestCase {
+
+       public function testConstruction() {
+               $e = new UserNotLoggedIn();
+               $this->assertEquals( 'exception-nologin', $e->title );
+               $this->assertEquals( 'exception-nologin-text', $e->msg );
+               $this->assertEquals( array(), $e->params );
+       }
+
+}
index 0e5f267..8466684 100644 (file)
@@ -48,13 +48,13 @@ class InstallDocFormatterTest extends MediaWikiTestCase {
 
                        # Transform '$wgFooBar' links
                        array(
-                               '<span class="config-plainlink">[http://www.mediawiki.org/wiki/Manual:$wgFooBar $wgFooBar]</span>',
+                               '<span class="config-plainlink">[https://www.mediawiki.org/wiki/Manual:$wgFooBar $wgFooBar]</span>',
                                '$wgFooBar', 'Testing basic $wgFooBar' ),
                        array(
-                               '<span class="config-plainlink">[http://www.mediawiki.org/wiki/Manual:$wgFooBar45 $wgFooBar45]</span>',
+                               '<span class="config-plainlink">[https://www.mediawiki.org/wiki/Manual:$wgFooBar45 $wgFooBar45]</span>',
                                '$wgFooBar45', 'Testing $wgFooBar45 (with numbers)' ),
                        array(
-                               '<span class="config-plainlink">[http://www.mediawiki.org/wiki/Manual:$wgFoo_Bar $wgFoo_Bar]</span>',
+                               '<span class="config-plainlink">[https://www.mediawiki.org/wiki/Manual:$wgFoo_Bar $wgFoo_Bar]</span>',
                                '$wgFoo_Bar', 'Testing $wgFoo_Bar (with underscore)' ),
 
                        # Icky variables that shouldn't link
index 62ee45a..01c330a 100644 (file)
@@ -154,6 +154,7 @@ class JavaScriptMinifierTest extends MediaWikiTestCase {
        /**
         * @dataProvider provideBug32548
         * @covers JavaScriptMinifier::minify
+        * @todo give this test a real name explaining what is being tested here
         */
        public function testBug32548Exponent( $num ) {
                // Long line breaking was being incorrectly done between the base and
diff --git a/tests/phpunit/includes/libs/ProcessCacheLRUTest.php b/tests/phpunit/includes/libs/ProcessCacheLRUTest.php
new file mode 100644 (file)
index 0000000..3eae810
--- /dev/null
@@ -0,0 +1,237 @@
+<?php
+
+/**
+ * Test for ProcessCacheLRU class.
+ *
+ * Note that it uses the ProcessCacheLRUTestable class which extends some
+ * properties and methods visibility. That class is defined at the end of the
+ * file containing this class.
+ *
+ * @group Cache
+ */
+class ProcessCacheLRUTest extends MediaWikiTestCase {
+
+       /**
+        * Helper to verify emptiness of a cache object.
+        * Compare against an array so we get the cache content difference.
+        */
+       function assertCacheEmpty( $cache, $msg = 'Cache should be empty' ) {
+               $this->assertAttributeEquals( array(), 'cache', $cache, $msg );
+       }
+
+       /**
+        * Helper to fill a cache object passed by reference
+        */
+       function fillCache( &$cache, $numEntries ) {
+               // Fill cache with three values
+               for ( $i = 1; $i <= $numEntries; $i++ ) {
+                       $cache->set( "cache-key-$i", "prop-$i", "value-$i" );
+               }
+       }
+
+       /**
+        * Generates an array of what would be expected in cache for a given cache
+        * size and a number of entries filled in sequentially
+        */
+       function getExpectedCache( $cacheMaxEntries, $entryToFill ) {
+               $expected = array();
+
+               if ( $entryToFill === 0 ) {
+                       # The cache is empty!
+                       return array();
+               } elseif ( $entryToFill <= $cacheMaxEntries ) {
+                       # Cache is not fully filled
+                       $firstKey = 1;
+               } else {
+                       # Cache overflowed
+                       $firstKey = 1 + $entryToFill - $cacheMaxEntries;
+               }
+
+               $lastKey = $entryToFill;
+
+               for ( $i = $firstKey; $i <= $lastKey; $i++ ) {
+                       $expected["cache-key-$i"] = array( "prop-$i" => "value-$i" );
+               }
+
+               return $expected;
+       }
+
+       /**
+        * Highlight diff between assertEquals and assertNotSame
+        */
+       public function testPhpUnitArrayEquality() {
+               $one = array( 'A' => 1, 'B' => 2 );
+               $two = array( 'B' => 2, 'A' => 1 );
+               $this->assertEquals( $one, $two ); // ==
+               $this->assertNotSame( $one, $two ); // ===
+       }
+
+       /**
+        * @dataProvider provideInvalidConstructorArg
+        * @expectedException UnexpectedValueException
+        */
+       public function testConstructorGivenInvalidValue( $maxSize ) {
+               new ProcessCacheLRUTestable( $maxSize );
+       }
+
+       /**
+        * Value which are forbidden by the constructor
+        */
+       public static function provideInvalidConstructorArg() {
+               return array(
+                       array( null ),
+                       array( array() ),
+                       array( new stdClass() ),
+                       array( 0 ),
+                       array( '5' ),
+                       array( -1 ),
+               );
+       }
+
+       public function testAddAndGetAKey() {
+               $oneCache = new ProcessCacheLRUTestable( 1 );
+               $this->assertCacheEmpty( $oneCache );
+
+               // First set just one value
+               $oneCache->set( 'cache-key', 'prop1', 'value1' );
+               $this->assertEquals( 1, $oneCache->getEntriesCount() );
+               $this->assertTrue( $oneCache->has( 'cache-key', 'prop1' ) );
+               $this->assertEquals( 'value1', $oneCache->get( 'cache-key', 'prop1' ) );
+       }
+
+       public function testDeleteOldKey() {
+               $oneCache = new ProcessCacheLRUTestable( 1 );
+               $this->assertCacheEmpty( $oneCache );
+
+               $oneCache->set( 'cache-key', 'prop1', 'value1' );
+               $oneCache->set( 'cache-key', 'prop1', 'value2' );
+               $this->assertEquals( 'value2', $oneCache->get( 'cache-key', 'prop1' ) );
+       }
+
+       /**
+        * This test that we properly overflow when filling a cache with
+        * a sequence of always different cache-keys. Meant to verify we correclty
+        * delete the older key.
+        *
+        * @dataProvider provideCacheFilling
+        * @param $cacheMaxEntries Maximum entry the created cache will hold
+        * @param $entryToFill Number of entries to insert in the created cache.
+        */
+       public function testFillingCache( $cacheMaxEntries, $entryToFill, $msg = '' ) {
+               $cache = new ProcessCacheLRUTestable( $cacheMaxEntries );
+               $this->fillCache( $cache, $entryToFill );
+
+               $this->assertSame(
+                       $this->getExpectedCache( $cacheMaxEntries, $entryToFill ),
+                       $cache->getCache(),
+                       "Filling a $cacheMaxEntries entries cache with $entryToFill entries"
+               );
+       }
+
+       /**
+        * Provider for testFillingCache
+        */
+       public static function provideCacheFilling() {
+               // ($cacheMaxEntries, $entryToFill, $msg='')
+               return array(
+                       array( 1, 0 ),
+                       array( 1, 1 ),
+                       array( 1, 2 ), # overflow
+                       array( 5, 33 ), # overflow
+               );
+       }
+
+       /**
+        * Create a cache with only one remaining entry then update
+        * the first inserted entry. Should bump it to the top.
+        */
+       public function testReplaceExistingKeyShouldBumpEntryToTop() {
+               $maxEntries = 3;
+
+               $cache = new ProcessCacheLRUTestable( $maxEntries );
+               // Fill cache leaving just one remaining slot
+               $this->fillCache( $cache, $maxEntries - 1 );
+
+               // Set an existing cache key
+               $cache->set( "cache-key-1", "prop-1", "new-value-for-1" );
+
+               $this->assertSame(
+                       array(
+                               'cache-key-2' => array( 'prop-2' => 'value-2' ),
+                               'cache-key-1' => array( 'prop-1' => 'new-value-for-1' ),
+                       ),
+                       $cache->getCache()
+               );
+       }
+
+       public function testRecentlyAccessedKeyStickIn() {
+               $cache = new ProcessCacheLRUTestable( 2 );
+               $cache->set( 'first', 'prop1', 'value1' );
+               $cache->set( 'second', 'prop2', 'value2' );
+
+               // Get first
+               $cache->get( 'first', 'prop1' );
+               // Cache a third value, should invalidate the least used one
+               $cache->set( 'third', 'prop3', 'value3' );
+
+               $this->assertFalse( $cache->has( 'second', 'prop2' ) );
+       }
+
+       /**
+        * This first create a full cache then update the value for the 2nd
+        * filled entry.
+        * Given a cache having 1,2,3 as key, updating 2 should bump 2 to
+        * the top of the queue with the new value: 1,3,2* (* = updated).
+        */
+       public function testReplaceExistingKeyInAFullCacheShouldBumpToTop() {
+               $maxEntries = 3;
+
+               $cache = new ProcessCacheLRUTestable( $maxEntries );
+               $this->fillCache( $cache, $maxEntries );
+
+               // Set an existing cache key
+               $cache->set( "cache-key-2", "prop-2", "new-value-for-2" );
+               $this->assertSame(
+                       array(
+                               'cache-key-1' => array( 'prop-1' => 'value-1' ),
+                               'cache-key-3' => array( 'prop-3' => 'value-3' ),
+                               'cache-key-2' => array( 'prop-2' => 'new-value-for-2' ),
+                       ),
+                       $cache->getCache()
+               );
+               $this->assertEquals( 'new-value-for-2',
+                       $cache->get( 'cache-key-2', 'prop-2' )
+               );
+       }
+
+       public function testBumpExistingKeyToTop() {
+               $cache = new ProcessCacheLRUTestable( 3 );
+               $this->fillCache( $cache, 3 );
+
+               // Set the very first cache key to a new value
+               $cache->set( "cache-key-1", "prop-1", "new value for 1" );
+               $this->assertEquals(
+                       array(
+                               'cache-key-2' => array( 'prop-2' => 'value-2' ),
+                               'cache-key-3' => array( 'prop-3' => 'value-3' ),
+                               'cache-key-1' => array( 'prop-1' => 'new value for 1' ),
+                       ),
+                       $cache->getCache()
+               );
+       }
+}
+
+/**
+ * Overrides some ProcessCacheLRU methods and properties accessibility.
+ */
+class ProcessCacheLRUTestable extends ProcessCacheLRU {
+       public $cache = array();
+
+       public function getCache() {
+               return $this->cache;
+       }
+
+       public function getEntriesCount() {
+               return count( $this->cache );
+       }
+}
index e24c088..dc5db82 100644 (file)
@@ -32,8 +32,6 @@ class RunningStatTest extends MediaWikiTestCase {
                        return pow( $mean - $x, 2 );
                }, $this->points ) ) / ( count( $rstat ) - 1 );
                $stddev = sqrt( $variance );
-               $min = min( $this->points );
-               $max = max( $this->points );
 
                $this->assertEquals( count( $rstat ), count( $this->points ) );
                $this->assertEquals( $rstat->min, min( $this->points ) );
index a495700..a736234 100644 (file)
@@ -3,7 +3,7 @@
  * Tests for UtfNormal::cleanUp() function.
  *
  * Copyright © 2004 Brion Vibber <brion@pobox.com>
- * http://www.mediawiki.org/
+ * https://www.mediawiki.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
index aa78394..1670823 100644 (file)
@@ -74,8 +74,6 @@ class BagOStuffTest extends MediaWikiTestCase {
                $fork &= !$this->cache instanceof MultiWriteBagOStuff;
                if ( $fork ) {
                        // callback should take awhile now so that we can test concurrent merge attempts
-                       $usleep = 5000;
-
                        $pid = pcntl_fork();
                        if ( $pid == -1 ) {
                                // can't fork, ignore this test...
index c742444..c6ded02 100644 (file)
@@ -263,8 +263,8 @@ class NewParserTest extends MediaWikiTestCase {
                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,
+                                       'width'       => 240,
+                                       'height'      => 180,
                                        'bits'        => 24,
                                        'media_type'  => MEDIATYPE_DRAWING,
                                        'mime'        => 'image/svg+xml',
@@ -337,6 +337,7 @@ class NewParserTest extends MediaWikiTestCase {
                        'wgRawHtml' => self::getOptionValue( 'wgRawHtml', $opts, false ),
                        'wgNamespacesWithSubpages' => array( NS_MAIN => isset( $opts['subpage'] ) ),
                        'wgAllowExternalImages' => self::getOptionValue( 'wgAllowExternalImages', $opts, true ),
+                       'wgThumbLimits' => array( self::getOptionValue( 'thumbsize', $opts, 180 ) ),
                        'wgMaxTocLevel' => $maxtoclevel,
                        'wgUseTeX' => isset( $opts['math'] ) || isset( $opts['texvc'] ),
                        'wgMathDirectory' => $uploadDir . '/math',
@@ -368,6 +369,9 @@ class NewParserTest extends MediaWikiTestCase {
                $settings['wgUser'] = $context->getUser();
                $settings['wgRequest'] = $context->getRequest();
 
+               // We (re)set $wgThumbLimits to a single-element array above.
+               $context->getUser()->setOption( 'thumbsize', 0 );
+
                foreach ( $settings as $var => $val ) {
                        if ( array_key_exists( $var, $GLOBALS ) ) {
                                $this->savedGlobals[$var] = $GLOBALS[$var];
@@ -445,7 +449,8 @@ class NewParserTest extends MediaWikiTestCase {
 
                // No helpful SVG file to copy, so make one ourselves
                $data = '<?xml version="1.0" encoding="utf-8"?>' .
-                       '<svg xmlns="http://www.w3.org/2000/svg" width="200" height="200"><text>Foo</text></svg>';
+                       '<svg xmlns="http://www.w3.org/2000/svg"' .
+                       ' version="1.1" width="240" height="180"/>';
 
                $backend->prepare( array( 'dir' => "$base/local-public/f/ff" ) );
                $backend->quickCreate( array(
index 8aee937..cfb3f72 100644 (file)
@@ -158,10 +158,10 @@ class PreprocessorTest extends MediaWikiTestCase {
         */
        public static function provideFiles() {
                return array(
-                       array( "QuoteQuran" ), # http://en.wikipedia.org/w/index.php?title=Template:QuoteQuran/sandbox&oldid=237348988 GFDL + CC-BY-SA by Striver
-                       array( "Factorial" ), # http://en.wikipedia.org/w/index.php?title=Template:Factorial&oldid=98548758 GFDL + CC-BY-SA by Polonium
+                       array( "QuoteQuran" ), # http://en.wikipedia.org/w/index.php?title=Template:QuoteQuran/sandbox&oldid=237348988 GFDL + CC BY-SA by Striver
+                       array( "Factorial" ), # http://en.wikipedia.org/w/index.php?title=Template:Factorial&oldid=98548758 GFDL + CC BY-SA by Polonium
                        array( "All_system_messages" ), # http://tl.wiktionary.org/w/index.php?title=Suleras:All_system_messages&oldid=2765 GPL text generated by MediaWiki
-                       array( "Fundraising" ), # http://tl.wiktionary.org/w/index.php?title=MediaWiki:Sitenotice&oldid=5716 GFDL + CC-BY-SA, copied there by Sky Harbor.
+                       array( "Fundraising" ), # http://tl.wiktionary.org/w/index.php?title=MediaWiki:Sitenotice&oldid=5716 GFDL + CC BY-SA, copied there by Sky Harbor.
                        array( "NestedTemplates" ), # bug 27936
                );
        }
diff --git a/tests/phpunit/includes/resourceloader/ResourceLoaderModuleTest.php b/tests/phpunit/includes/resourceloader/ResourceLoaderModuleTest.php
new file mode 100644 (file)
index 0000000..b25e9b0
--- /dev/null
@@ -0,0 +1,73 @@
+<?php
+
+class ResourceLoaderModuleTest extends ResourceLoaderTestCase {
+
+       /**
+        * @covers ResourceLoaderModule::getDefinitionSummary
+        * @covers ResourceLoaderFileModule::getDefinitionSummary
+        */
+       public function testDefinitionSummary() {
+               $context = self::getResourceLoaderContext();
+
+               $baseParams = array(
+                       'scripts' => array( 'foo.js', 'bar.js' ),
+                       'dependencies' => array( 'jquery', 'mediawiki' ),
+                       'messages' => array( 'hello', 'world' ),
+               );
+
+               $module = new ResourceLoaderFileModule( $baseParams );
+
+               $jsonSummary = json_encode( $module->getDefinitionSummary( $context ) );
+
+               // Exactly the same
+               $module = new ResourceLoaderFileModule( $baseParams );
+
+               $this->assertEquals(
+                       $jsonSummary,
+                       json_encode( $module->getDefinitionSummary( $context ) ),
+                       'Instance is insignificant'
+               );
+
+               // Re-order dependencies
+               $module = new ResourceLoaderFileModule( array(
+                       'dependencies' => array( 'mediawiki', 'jquery' ),
+               ) + $baseParams );
+
+               $this->assertEquals(
+                       $jsonSummary,
+                       json_encode( $module->getDefinitionSummary( $context ) ),
+                       'Order of dependencies is insignificant'
+               );
+
+               // Re-order messages
+               $module = new ResourceLoaderFileModule( array(
+                       'messages' => array( 'world', 'hello' ),
+               ) + $baseParams );
+
+               $this->assertEquals(
+                       $jsonSummary,
+                       json_encode( $module->getDefinitionSummary( $context ) ),
+                       'Order of messages is insignificant'
+               );
+
+               // Re-order scripts
+               $module = new ResourceLoaderFileModule( array(
+                       'scripts' => array( 'bar.js', 'foo.js' ),
+               ) + $baseParams );
+
+               $this->assertNotEquals(
+                       $jsonSummary,
+                       json_encode( $module->getDefinitionSummary( $context ) ),
+                       'Order of scripts is significant'
+               );
+
+               // Subclass
+               $module = new ResourceLoaderFileModuleTestModule( $baseParams );
+
+               $this->assertNotEquals(
+                       $jsonSummary,
+                       json_encode( $module->getDefinitionSummary( $context ) ),
+                       'Class is significant'
+               );
+       }
+}
diff --git a/tests/phpunit/includes/resourceloader/ResourceLoaderStartupModuleTest.php b/tests/phpunit/includes/resourceloader/ResourceLoaderStartupModuleTest.php
new file mode 100644 (file)
index 0000000..5b51ef8
--- /dev/null
@@ -0,0 +1,278 @@
+<?php
+
+class ResourceLoaderStartupModuleTest extends ResourceLoaderTestCase {
+
+       public static function provideGetModuleRegistrations() {
+               return array(
+                       array( array(
+                               'msg' => 'Empty registry',
+                               'modules' => array(),
+                               'out' => '
+mw.loader.addSource( {
+    "local": {
+        "loadScript": "/w/load.php",
+        "apiScript": "/w/api.php"
+    }
+} );mw.loader.register( [] );'
+                       ) ),
+                       array( array(
+                               'msg' => 'Basic registry',
+                               'modules' => array(
+                                       'test.blank' => new ResourceLoaderTestModule(),
+                               ),
+                               'out' => '
+mw.loader.addSource( {
+    "local": {
+        "loadScript": "/w/load.php",
+        "apiScript": "/w/api.php"
+    }
+} );mw.loader.register( [
+    [
+        "test.blank",
+        "1388534400"
+    ]
+] );',
+                       ) ),
+                       array( array(
+                               'msg' => 'Group signature',
+                               'modules' => array(
+                                       'test.blank' => new ResourceLoaderTestModule(),
+                                       'test.group.foo' => new ResourceLoaderTestModule( array( 'group' => 'x-foo' ) ),
+                                       'test.group.bar' => new ResourceLoaderTestModule( array( 'group' => 'x-bar' ) ),
+                               ),
+                               'out' => '
+mw.loader.addSource( {
+    "local": {
+        "loadScript": "/w/load.php",
+        "apiScript": "/w/api.php"
+    }
+} );mw.loader.register( [
+    [
+        "test.blank",
+        "1388534400"
+    ],
+    [
+        "test.group.foo",
+        "1388534400",
+        [],
+        "x-foo"
+    ],
+    [
+        "test.group.bar",
+        "1388534400",
+        [],
+        "x-bar"
+    ]
+] );'
+                       ) ),
+                       array( array(
+                               'msg' => 'Different target (non-test should not be registered)',
+                               'modules' => array(
+                                       'test.blank' => new ResourceLoaderTestModule(),
+                                       'test.target.foo' => new ResourceLoaderTestModule( array( 'targets' => array( 'x-foo' ) ) ),
+                               ),
+                               'out' => '
+mw.loader.addSource( {
+    "local": {
+        "loadScript": "/w/load.php",
+        "apiScript": "/w/api.php"
+    }
+} );mw.loader.register( [
+    [
+        "test.blank",
+        "1388534400"
+    ]
+] );'
+                       ) ),
+                       array( array(
+                               'msg' => 'Foreign source',
+                               'sources' => array(
+                                       'example' => array(
+                                               'loadScript' => 'http://example.org/w/load.php',
+                                               'apiScript' => 'http://example.org/w/api.php',
+                                       ),
+                               ),
+                               'modules' => array(
+                                       'test.blank' => new ResourceLoaderTestModule( array( 'source' => 'example' ) ),
+                               ),
+                               'out' => '
+mw.loader.addSource( {
+    "local": {
+        "loadScript": "/w/load.php",
+        "apiScript": "/w/api.php"
+    },
+    "example": {
+        "loadScript": "http://example.org/w/load.php",
+        "apiScript": "http://example.org/w/api.php"
+    }
+} );mw.loader.register( [
+    [
+        "test.blank",
+        "1388534400",
+        [],
+        null,
+        "example"
+    ]
+] );'
+                       ) ),
+                       array( array(
+                               // This may seem like an edge case, but a plain MediaWiki core install
+                               // with a few extensions installed is likely far more complex than this
+                               // even, not to mention an install like Wikipedia.
+                               // TODO: Make this even more realistic.
+                               'msg' => 'Advanced (everything combined)',
+                               'sources' => array(
+                                       'example' => array(
+                                               'loadScript' => 'http://example.org/w/load.php',
+                                               'apiScript' => 'http://example.org/w/api.php',
+                                       ),
+                               ),
+                               'modules' => array(
+                                       'test.blank' => new ResourceLoaderTestModule(),
+                                       'test.x.core' => new ResourceLoaderTestModule(),
+                                       'test.x.util' => new ResourceLoaderTestModule( array(
+                                               'dependencies' => array(
+                                                       'test.x.core',
+                                               ),
+                                       ) ),
+                                       'test.x.foo' => new ResourceLoaderTestModule( array(
+                                               'dependencies' => array(
+                                                       'test.x.core',
+                                               ),
+                                       ) ),
+                                       'test.x.bar' => new ResourceLoaderTestModule( array(
+                                               'dependencies' => array(
+                                                       'test.x.core',
+                                                       'test.x.util',
+                                               ),
+                                       ) ),
+                                       'test.x.quux' => new ResourceLoaderTestModule( array(
+                                               'dependencies' => array(
+                                                       'test.x.foo',
+                                                       'test.x.bar',
+                                                       'test.x.util',
+                                               ),
+                                       ) ),
+                                       'test.group.foo.1' => new ResourceLoaderTestModule( array(
+                                               'group' => 'x-foo',
+                                       ) ),
+                                       'test.group.foo.2' => new ResourceLoaderTestModule( array(
+                                               'group' => 'x-foo',
+                                       ) ),
+                                       'test.group.bar.1' => new ResourceLoaderTestModule( array(
+                                               'group' => 'x-bar',
+                                       ) ),
+                                       'test.group.bar.2' => new ResourceLoaderTestModule( array(
+                                               'group' => 'x-bar',
+                                               'source' => 'example',
+                                       ) ),
+                                       'test.target.foo' => new ResourceLoaderTestModule( array(
+                                               'targets' => array( 'x-foo' ),
+                                       ) ),
+                                       'test.target.bar' => new ResourceLoaderTestModule( array(
+                                               'source' => 'example',
+                                               'targets' => array( 'x-foo' ),
+                                       ) ),
+                               ),
+                               'out' => '
+mw.loader.addSource( {
+    "local": {
+        "loadScript": "/w/load.php",
+        "apiScript": "/w/api.php"
+    },
+    "example": {
+        "loadScript": "http://example.org/w/load.php",
+        "apiScript": "http://example.org/w/api.php"
+    }
+} );mw.loader.register( [
+    [
+        "test.blank",
+        "1388534400"
+    ],
+    [
+        "test.x.core",
+        "1388534400"
+    ],
+    [
+        "test.x.util",
+        "1388534400",
+        [
+            "test.x.core"
+        ]
+    ],
+    [
+        "test.x.foo",
+        "1388534400",
+        [
+            "test.x.core"
+        ]
+    ],
+    [
+        "test.x.bar",
+        "1388534400",
+        [
+            "test.x.core",
+            "test.x.util"
+        ]
+    ],
+    [
+        "test.x.quux",
+        "1388534400",
+        [
+            "test.x.foo",
+            "test.x.bar",
+            "test.x.util"
+        ]
+    ],
+    [
+        "test.group.foo.1",
+        "1388534400",
+        [],
+        "x-foo"
+    ],
+    [
+        "test.group.foo.2",
+        "1388534400",
+        [],
+        "x-foo"
+    ],
+    [
+        "test.group.bar.1",
+        "1388534400",
+        [],
+        "x-bar"
+    ],
+    [
+        "test.group.bar.2",
+        "1388534400",
+        [],
+        "x-bar",
+        "example"
+    ]
+] );'
+                       ) ),
+               );
+       }
+
+       /**
+        * @dataProvider provideGetModuleRegistrations
+        * @covers ResourceLoaderStartUpModule::getModuleRegistrations
+        */
+       public function testGetModuleRegistrations( $case ) {
+               if ( isset( $case['sources'] ) ) {
+                       $this->setMwGlobals( 'wgResourceLoaderSources', $case['sources'] );
+               }
+
+               $context = self::getResourceLoaderContext();
+               $rl = $context->getResourceLoader();
+
+               $rl->register( $case['modules'] );
+
+               $this->assertEquals(
+                       ltrim( $case['out'], "\n" ),
+                       ResourceLoaderStartUpModule::getModuleRegistrations( $context ),
+                       $case['msg']
+               );
+       }
+
+}
diff --git a/tests/phpunit/includes/resourceloader/ResourceLoaderTest.php b/tests/phpunit/includes/resourceloader/ResourceLoaderTest.php
new file mode 100644 (file)
index 0000000..ab0c8d9
--- /dev/null
@@ -0,0 +1,136 @@
+<?php
+
+class ResourceLoaderTest extends ResourceLoaderTestCase {
+
+       protected static $resourceLoaderRegisterModulesHook;
+
+       protected function setUp() {
+               parent::setUp();
+
+               // $wgResourceLoaderLESSFunctions, $wgResourceLoaderLESSImportPaths; $wgResourceLoaderLESSVars;
+
+               $this->setMwGlobals( array(
+                       'wgResourceLoaderLESSFunctions' => array(
+                               'test-sum' => function ( $frame, $less ) {
+                                       $sum = 0;
+                                       foreach ( $frame[2] as $arg ) {
+                                               $sum += (int)$arg[1];
+                                       }
+                                       return $sum;
+                               },
+                       ),
+                       'wgResourceLoaderLESSImportPaths' => array(
+                               dirname( dirname( __DIR__  ) ) . '/data/less/common',
+                       ),
+                       'wgResourceLoaderLESSVars' => array(
+                               'foo'  => '2px',
+                               'Foo' => '#eeeeee',
+                               'bar' => 5,
+                       ),
+               ) );
+       }
+
+       /* Hook Methods */
+
+       /**
+        * ResourceLoaderRegisterModules hook
+        */
+       public static function resourceLoaderRegisterModules( &$resourceLoader ) {
+               self::$resourceLoaderRegisterModulesHook = true;
+
+               return true;
+       }
+
+       /* Provider Methods */
+       public static function provideValidModules() {
+               return array(
+                       array( 'TEST.validModule1', new ResourceLoaderTestModule() ),
+               );
+       }
+
+       /* Test Methods */
+
+       /**
+        * Ensures that the ResourceLoaderRegisterModules hook is called when a new ResourceLoader object is constructed
+        * @covers ResourceLoader::__construct
+        */
+       public function testCreatingNewResourceLoaderCallsRegistrationHook() {
+               self::$resourceLoaderRegisterModulesHook = false;
+               $resourceLoader = new ResourceLoader();
+               $this->assertTrue( self::$resourceLoaderRegisterModulesHook );
+
+               return $resourceLoader;
+       }
+
+       /**
+        * @dataProvider provideValidModules
+        * @depends testCreatingNewResourceLoaderCallsRegistrationHook
+        * @covers ResourceLoader::register
+        * @covers ResourceLoader::getModule
+        */
+       public function testRegisteredValidModulesAreAccessible(
+               $name, ResourceLoaderModule $module, ResourceLoader $resourceLoader
+       ) {
+               $resourceLoader->register( $name, $module );
+               $this->assertEquals( $module, $resourceLoader->getModule( $name ) );
+       }
+
+       /**
+        * @covers ResourceLoaderFileModule::compileLessFile
+        */
+       public function testLessFileCompilation() {
+               $context = self::getResourceLoaderContext();
+               $basePath = __DIR__ . '/../../data/less/module';
+               $module = new ResourceLoaderFileModule( array(
+                       'localBasePath' => $basePath,
+                       'styles' => array( 'styles.less' ),
+               ) );
+               $styles = $module->getStyles( $context );
+               $this->assertStringEqualsFile( $basePath . '/styles.css', $styles['all'] );
+       }
+
+       /**
+        * @dataProvider providePackedModules
+        * @covers ResourceLoader::makePackedModulesString
+        */
+       public function testMakePackedModulesString( $desc, $modules, $packed ) {
+               $this->assertEquals( $packed, ResourceLoader::makePackedModulesString( $modules ), $desc );
+       }
+
+       /**
+        * @dataProvider providePackedModules
+        * @covers ResourceLoaderContext::expandModuleNames
+        */
+       public function testexpandModuleNames( $desc, $modules, $packed ) {
+               $this->assertEquals( $modules, ResourceLoaderContext::expandModuleNames( $packed ), $desc );
+       }
+
+       public static function providePackedModules() {
+               return array(
+                       array(
+                               'Example from makePackedModulesString doc comment',
+                               array( 'foo.bar', 'foo.baz', 'bar.baz', 'bar.quux' ),
+                               'foo.bar,baz|bar.baz,quux',
+                       ),
+                       array(
+                               'Example from expandModuleNames doc comment',
+                               array( 'jquery.foo', 'jquery.bar', 'jquery.ui.baz', 'jquery.ui.quux' ),
+                               'jquery.foo,bar|jquery.ui.baz,quux',
+                       ),
+                       array(
+                               'Regression fixed in r88706 with dotless names',
+                               array( 'foo', 'bar', 'baz' ),
+                               'foo,bar,baz',
+                       ),
+                       array(
+                               'Prefixless modules after a prefixed module',
+                               array( 'single.module', 'foobar', 'foobaz' ),
+                               'single.module|foobar,foobaz',
+                       ),
+               );
+       }
+}
+
+/* Hooks */
+global $wgHooks;
+$wgHooks['ResourceLoaderRegisterModules'][] = 'ResourceLoaderTest::resourceLoaderRegisterModules';
index b913af8..c627537 100644 (file)
@@ -26,7 +26,7 @@ class SearchUpdateTest extends MediaWikiTestCase {
                $this->setMwGlobals( 'wgSearchType', 'MockSearch' );
        }
 
-       function updateText( $text ) {
+       public function updateText( $text ) {
                return trim( SearchUpdate::updateText( $text ) );
        }
 
@@ -67,6 +67,7 @@ EOT
 
        /**
         * @covers SearchUpdate::updateText
+        * @todo give this test a real name explaining what is being tested here
         */
        public function testBug32712() {
                $text = "text „http://example.com“ text";
index 8af2fc1..534ed9c 100644 (file)
@@ -80,16 +80,14 @@ class SiteListTest extends MediaWikiTestCase {
         * @covers SiteList::getSite
         */
        public function testGetSiteByGlobalId( SiteList $sites ) {
-               if ( $sites->isEmpty() ) {
-                       $this->assertTrue( true );
-               } else {
-                       /**
-                        * @var Site $site
-                        */
-                       foreach ( $sites as $site ) {
-                               $this->assertEquals( $site, $sites->getSite( $site->getGlobalId() ) );
-                       }
+               /**
+                * @var Site $site
+                */
+               foreach ( $sites as $site ) {
+                       $this->assertEquals( $site, $sites->getSite( $site->getGlobalId() ) );
                }
+
+               $this->assertTrue( true );
        }
 
        /**
@@ -110,6 +108,25 @@ class SiteListTest extends MediaWikiTestCase {
                $this->assertTrue( true );
        }
 
+       /**
+        * @dataProvider siteListProvider
+        * @param SiteList $sites
+        * @covers SiteList::getSiteByNavigationId
+        */
+       public function testGetSiteByNavigationId( $sites ) {
+               /**
+                * @var Site $site
+                */
+               foreach ( $sites as $site ) {
+                       $ids = $site->getNavigationIds();
+                       foreach ( $ids as $navId ) {
+                               $this->assertEquals( $site, $sites->getSiteByNavigationId( $navId ) );
+                       }
+               }
+
+               $this->assertTrue( true );
+       }
+
        /**
         * @dataProvider siteListProvider
         * @param SiteList $sites
@@ -147,6 +164,25 @@ class SiteListTest extends MediaWikiTestCase {
                $this->assertFalse( $sites->hasInternalId( -1 ) );
        }
 
+       /**
+        * @dataProvider siteListProvider
+        * @param SiteList $sites
+        * @covers SiteList::hasNavigationId
+        */
+       public function testHasNavigationId( $sites ) {
+               /**
+                * @var Site $site
+                */
+               foreach ( $sites as $site ) {
+                       $ids = $site->getNavigationIds();
+                       foreach ( $ids as $navId ) {
+                               $this->assertTrue( $sites->hasNavigationId( $navId ) );
+                       }
+               }
+
+               $this->assertFalse( $sites->hasNavigationId( 'non-existing-navigation-id' ) );
+       }
+
        /**
         * @dataProvider siteListProvider
         * @param SiteList $sites
@@ -192,6 +228,13 @@ class SiteListTest extends MediaWikiTestCase {
                 */
                foreach ( $list as $site ) {
                        $this->assertTrue( $copy->hasInternalId( $site->getInternalId() ) );
+
+                       foreach ( $site->getNavigationIds() as $navId ) {
+                               $this->assertTrue(
+                                       $copy->hasNavigationId( $navId ),
+                                       'unserialized data expects nav id ' . $navId . ' for site ' . $site->getGlobalId()
+                               );
+                       }
                }
        }
 }
index ba845eb..39462b4 100644 (file)
@@ -8,13 +8,6 @@
  * @group Database
  */
 
-if ( !defined( 'MEDIAWIKI' ) ) {
-       die( 1 );
-}
-
-global $IP;
-require_once "$IP/includes/QueryPage.php"; // Needed to populate $wgQueryPages
-
 /**
  * @covers QueryPage<extended>
  */
@@ -41,8 +34,7 @@ class QueryAllSpecialPagesTest extends MediaWikiTestCase {
        function __construct() {
                parent::__construct();
 
-               global $wgQueryPages;
-               foreach ( $wgQueryPages as $page ) {
+               foreach ( QueryPage::getPages() as $page ) {
                        $class = $page[0];
                        if ( !in_array( $class, $this->manualTest ) ) {
                                $this->queryPages[$class] = new $class;
index 8a92daf..ea2d28c 100644 (file)
@@ -17,6 +17,7 @@ class SpecialPreferencesTest extends MediaWikiTestCase {
         * is not throwing a fatal error.
         *
         * Test specifications by Alexandre "ialex" Emsenhuber.
+        * @todo give this test a real name explaining what is being tested here
         */
        public function testBug41337() {
 
@@ -41,13 +42,6 @@ class SpecialPreferencesTest extends MediaWikiTestCase {
                        )
                        ) );
 
-               # Validate the mock (FIXME should probably be removed)
-               $this->assertFalse( $user->isAnon() );
-               $this->assertEquals( array(),
-                       $user->getEffectiveGroups() );
-               $this->assertEquals( 'superlongnickname',
-                       $user->getOption( 'nickname' ) );
-
                # Forge a request to call the special page
                $context = new RequestContext();
                $context->setRequest( new FauxRequest() );
index 397c100..879d821 100644 (file)
@@ -224,9 +224,6 @@ class UploadFromUrlTest extends ApiTestCase {
 
                $this->deleteFile( 'UploadFromUrlTest.png' );
 
-               $talkRev = Revision::newFromTitle( $talk );
-               $talkSize = $talkRev->getSize();
-
                $exception = false;
                try {
                        $this->doApiRequest( array(
@@ -249,6 +246,9 @@ class UploadFromUrlTest extends ApiTestCase {
                return;
                /*
                // Broken until using leavemessage with ignorewarnings is supported
+               $talkRev = Revision::newFromTitle( $talk );
+               $talkSize = $talkRev->getSize();
+
                $job->run();
 
                $this->assertFalse( wfLocalFile( 'UploadFromUrlTest.png' )->exists() );
index 1c89377..da72a9d 100644 (file)
@@ -1,4 +1,5 @@
 <?php
+
 /**
  * @group Database
  *
@@ -10,6 +11,11 @@ class UploadStashTest extends MediaWikiTestCase {
         */
        public static $users;
 
+       /**
+        * @var string
+        */
+       private $bug29408File;
+
        protected function setUp() {
                parent::setUp();
 
@@ -45,6 +51,9 @@ class UploadStashTest extends MediaWikiTestCase {
                parent::tearDown();
        }
 
+       /**
+        * @todo give this test a real name explaining what is being tested here
+        */
        public function testBug29408() {
                $this->setMwGlobals( 'wgUser', self::$users['uploader']->user );
 
@@ -59,20 +68,40 @@ class UploadStashTest extends MediaWikiTestCase {
                $stash->removeFile( $file->getFileKey() );
        }
 
-       public function testValidRequest() {
-               $request = new FauxRequest( array( 'wpFileKey' => 'foo' ) );
-               $this->assertFalse( UploadFromStash::isValidRequest( $request ), 'Check failure on bad wpFileKey' );
-
-               $request = new FauxRequest( array( 'wpSessionKey' => 'foo' ) );
-               $this->assertFalse( UploadFromStash::isValidRequest( $request ), 'Check failure on bad wpSessionKey' );
-
-               $request = new FauxRequest( array( 'wpFileKey' => 'testkey-test.test' ) );
-               $this->assertTrue( UploadFromStash::isValidRequest( $request ), 'Check good wpFileKey' );
+       public function provideInvalidRequests() {
+               return array(
+                       'Check failure on bad wpFileKey' =>
+                               array( new FauxRequest( array( 'wpFileKey' => 'foo' ) ) ),
+                       'Check failure on bad wpSessionKey' =>
+                               array( new FauxRequest( array( 'wpSessionKey' => 'foo' ) ) ),
+               );
+       }
 
-               $request = new FauxRequest( array( 'wpFileKey' => 'testkey-test.test' ) );
-               $this->assertTrue( UploadFromStash::isValidRequest( $request ), 'Check good wpSessionKey' );
+       /**
+        * @dataProvider provideInvalidRequests
+        */
+       public function testValidRequestWithInvalidRequests( $request ) {
+               $this->assertFalse( UploadFromStash::isValidRequest( $request ) );
+       }
 
-               $request = new FauxRequest( array( 'wpFileKey' => 'testkey-test.test', 'wpSessionKey' => 'foo' ) );
-               $this->assertTrue( UploadFromStash::isValidRequest( $request ), 'Check key precedence' );
+       public function provideValidRequests() {
+               return array(
+                       'Check good wpFileKey' =>
+                               array( new FauxRequest( array( 'wpFileKey' => 'testkey-test.test' ) ) ),
+                       'Check good wpSessionKey' =>
+                               array( new FauxRequest( array( 'wpFileKey' => 'testkey-test.test' ) ) ),
+                       'Check key precedence' =>
+                               array( new FauxRequest( array(
+                                       'wpFileKey' => 'testkey-test.test',
+                                       'wpSessionKey' => 'foo'
+                               ) ) ),
+               );
        }
+       /**
+        * @dataProvider provideValidRequests
+        */
+       public function testValidRequestWithValidRequests( $request ) {
+               $this->assertTrue( UploadFromStash::isValidRequest( $request ) );
+       }
+
 }
index 1a1bbaf..1eab5a3 100644 (file)
@@ -21,9 +21,6 @@ class UIDGeneratorTest extends MediaWikiTestCase {
                }
 
                $lastId = array_shift( $ids );
-               if ( $hostbits ) {
-                       $lastHost = substr( wfBaseConvert( $lastId, 10, 2, $bits ), -$hostbits );
-               }
 
                $this->assertArrayEquals( array_unique( $ids ), $ids, "All generated IDs are unique." );
 
index e17c708..792cf72 100644 (file)
@@ -22,7 +22,7 @@ class LanguageRuTest extends LanguageClassesTestCase {
         * @covers Language::convertPlural
         */
        public function testExplicitPlural() {
-               $forms = array( 'one','many', 'other', '12=dozen' );
+               $forms = array( 'one', 'many', 'other', '12=dozen' );
                $this->assertEquals( 'dozen', $this->getLang()->convertPlural( 12, $forms ) );
                $forms = array( 'one', 'many', '100=hundred', 'other', '12=dozen' );
                $this->assertEquals( 'hundred', $this->getLang()->convertPlural( 100, $forms ) );
index e958fde..8f8a8b5 100644 (file)
@@ -658,7 +658,7 @@ class LanguageTest extends LanguageClassesTestCase {
                                '2009-W53-4',
                                'leap week'
                        ),
-                       // What follows is mostly copied from http://www.mediawiki.org/wiki/Help:Extension:ParserFunctions#.23time
+                       // What follows is mostly copied from https://www.mediawiki.org/wiki/Help:Extension:ParserFunctions#.23time
                        array(
                                'Y',
                                '20120102090705',
diff --git a/tests/phpunit/languages/SpecialPageAliasTest.php b/tests/phpunit/languages/SpecialPageAliasTest.php
new file mode 100644 (file)
index 0000000..f6d6bc9
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+
+/**
+ * Verifies that special page aliases are valid, with no slashes.
+ *
+ * @group Language
+ * @group SpecialPageAliases
+ * @group SystemTest
+ * @group medium
+ *
+ * @licence GNU GPL v2+
+ * @author Katie Filbert < aude.wiki@gmail.com >
+ */
+class SpecialPageAliasTest extends MediaWikiTestCase {
+
+       /**
+        * @dataProvider validSpecialPageAliasesProvider
+        */
+       public function testValidSpecialPageAliases( $code, $specialPageAliases ) {
+               foreach ( $specialPageAliases as $specialPage => $aliases ) {
+                       foreach ( $aliases as $alias ) {
+                               $msg = "$specialPage alias '$alias' in $code is valid with no slashes";
+                               $this->assertRegExp( '/^[^\/]*$/', $msg );
+                       }
+               }
+       }
+
+       public function validSpecialPageAliasesProvider() {
+               $codes = array_keys( Language::fetchLanguageNames( 'mwfile' ) );
+
+               $data = array();
+
+               foreach ( $codes as $code ) {
+                       $specialPageAliases = $this->getSpecialPageAliases( $code );
+
+                       if ( $specialPageAliases !== array() ) {
+                               $data[] = array( $code, $specialPageAliases );
+                       }
+               }
+
+               return $data;
+       }
+
+       /**
+        * @param string $code
+        *
+        * @return array
+        */
+       protected function getSpecialPageAliases( $code ) {
+               $file = Language::getMessagesFileName( $code );
+
+               if ( is_readable( $file ) ) {
+                       include $file;
+
+                       if ( isset( $specialPageAliases ) && $specialPageAliases !== null ) {
+                               return $specialPageAliases;
+                       }
+               }
+
+               return array();
+       }
+
+}
index 039cabb..1aa2b4d 100755 (executable)
@@ -6,8 +6,6 @@
  * @file
  */
 
-/* Configuration */
-
 // Set a flag which can be used to detect when other scripts have been entered through this entry point or not
 define( 'MW_PHPUNIT_TEST', true );
 
@@ -16,7 +14,7 @@ require_once dirname( dirname( __DIR__ ) ) . "/maintenance/Maintenance.php";
 
 class PHPUnitMaintClass extends Maintenance {
 
-       function __construct() {
+       public function __construct() {
                parent::__construct();
                $this->addOption( 'with-phpunitdir',
                        'Directory to include PHPUnit from, for example when using a git fetchout from upstream. Path will be prepended to PHP `include_path`.',
@@ -72,7 +70,8 @@ class PHPUnitMaintClass extends Maintenance {
                }
 
                # --with-phpunitdir let us override the default PHPUnit version
-               if ( $phpunitDir = $this->getOption( 'with-phpunitdir' ) ) {
+               if ( $this->hasOption( 'with-phpunitdir' ) ) {
+                       $phpunitDir = $this->getOption( 'with-phpunitdir' );
                        # Sanity checks
                        if ( !is_dir( $phpunitDir ) ) {
                                $this->error( "--with-phpunitdir should be set to an existing directory", 1 );
@@ -83,8 +82,7 @@ class PHPUnitMaintClass extends Maintenance {
 
                        # Now prepends provided PHPUnit directory
                        $this->output( "Will attempt loading PHPUnit from `$phpunitDir`\n" );
-                       set_include_path( $phpunitDir
-                               . PATH_SEPARATOR . get_include_path() );
+                       set_include_path( $phpunitDir . PATH_SEPARATOR . get_include_path() );
 
                        # Cleanup $args array so the option and its value do not
                        # pollute PHPUnit
index 7d33a59..3fb487c 100644 (file)
@@ -15,7 +15,8 @@ class SideBarTest extends MediaWikiLangTestCase {
 
        /** Build $this->messages array */
        private function initMessagesHref() {
-               # List of default messages for the sidebar:
+               # List of default messages for the sidebar. The sidebar doesn't care at
+               # all whether they are full URLs, interwiki links or local titles.
                $URL_messages = array(
                        'mainpage',
                        'portal-url',
@@ -25,10 +26,16 @@ class SideBarTest extends MediaWikiLangTestCase {
                        'helppage',
                );
 
+               # We're assuming that isValidURI works as advertised: it's also
+               # tested separately, in tests/phpunit/includes/HttpTest.php.
                foreach ( $URL_messages as $m ) {
                        $titleName = MessageCache::singleton()->get( $m );
-                       $title = Title::newFromText( $titleName );
-                       $this->messages[$m]['href'] = $title->getLocalURL();
+                       if ( Http::isValidURI( $titleName ) ) {
+                               $this->messages[$m]['href'] = $titleName;
+                       } else {
+                               $title = Title::newFromText( $titleName );
+                               $this->messages[$m]['href'] = $title->getLocalURL();
+                       }
                }
        }
 
index df00d4d..2393299 100644 (file)
@@ -22,6 +22,7 @@ class StructureTest extends MediaWikiTestCase {
                        'ApiQueryContinueTestBase',
                        'MediaWikiLangTestCase',
                        'MediaWikiTestCase',
+                       'ResourceLoaderTestCase',
                        'PHPUnit_Framework_TestCase',
                        'DumpTestCase',
                ) );
index eec773d..7f41e52 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /**
  * This test suite runs unit tests registered by extensions.
- * See http://www.mediawiki.org/wiki/Manual:Hooks/UnitTestsList for details of how to register your tests.
+ * See https://www.mediawiki.org/wiki/Manual:Hooks/UnitTestsList for details of how to register your tests.
  */
 
 class ExtensionsTestSuite extends PHPUnit_Framework_TestSuite {
diff --git a/tests/phpunit/tests/MediaWikiTestCaseTest.php b/tests/phpunit/tests/MediaWikiTestCaseTest.php
new file mode 100644 (file)
index 0000000..2846fde
--- /dev/null
@@ -0,0 +1,77 @@
+<?php
+
+/**
+ * @covers MediaWikiTestCase
+ * @author Adam Shorland
+ */
+class MediaWikiTestCaseTest extends MediaWikiTestCase {
+
+       const GLOBAL_KEY_EXISTING = 'MediaWikiTestCaseTestGLOBAL-Existing';
+       const GLOBAL_KEY_NONEXISTING = 'MediaWikiTestCaseTestGLOBAL-NONExisting';
+
+       public static function setUpBeforeClass() {
+               parent::setUpBeforeClass();
+               $GLOBALS[self::GLOBAL_KEY_EXISTING] = 'foo';
+       }
+
+       public static function tearDownAfterClass() {
+               parent::tearDownAfterClass();
+               unset( $GLOBALS[self::GLOBAL_KEY_EXISTING] );
+       }
+
+       /**
+        * @covers MediaWikiTestCase::setMwGlobals
+        * @covers MediaWikiTestCase::tearDown
+        */
+       public function testSetGlobalsAreRestoredOnTearDown() {
+               $this->setMwGlobals( self::GLOBAL_KEY_EXISTING, 'bar' );
+               $this->assertEquals(
+                       'bar',
+                       $GLOBALS[self::GLOBAL_KEY_EXISTING],
+                       'Global failed to correctly set'
+               );
+
+               $this->tearDown();
+
+               $this->assertEquals(
+                       'foo',
+                       $GLOBALS[self::GLOBAL_KEY_EXISTING],
+                       'Global failed to be restored on tearDown'
+               );
+       }
+
+       /**
+        * @covers MediaWikiTestCase::stashMwGlobals
+        * @covers MediaWikiTestCase::tearDown
+        */
+       public function testStashedGlobalsAreRestoredOnTearDown() {
+               $this->stashMwGlobals( self::GLOBAL_KEY_EXISTING );
+               $GLOBALS[self::GLOBAL_KEY_EXISTING] = 'bar';
+               $this->assertEquals(
+                       'bar',
+                       $GLOBALS[self::GLOBAL_KEY_EXISTING],
+                       'Global failed to correctly set'
+               );
+
+               $this->tearDown();
+
+               $this->assertEquals(
+                       'foo',
+                       $GLOBALS[self::GLOBAL_KEY_EXISTING],
+                       'Global failed to be restored on tearDown'
+               );
+       }
+
+       /**
+        * @covers MediaWikiTestCase::stashMwGlobals
+        */
+       public function testExceptionThrownWhenStashingNonExistentGlobals() {
+               $this->setExpectedException(
+                       'Exception',
+                       'Global with key ' . self::GLOBAL_KEY_NONEXISTING . ' doesn\'t exist and cant be stashed'
+               );
+
+               $this->stashMwGlobals( self::GLOBAL_KEY_NONEXISTING );
+       }
+
+}
index 63f610f..31470e8 100644 (file)
@@ -8,8 +8,14 @@ return array(
 
        'test.sinonjs' => array(
                'scripts' => array(
-                       'resources/sinonjs/sinon-1.8.1.js',
-                       'resources/sinonjs/sinon-ie-1.8.1.js',
+                       'resources/sinonjs/sinon-1.9.0.js',
+                       // We want tests to work in IE, but can't include this as it
+                       // will break the placeholders in Sinon because the hack it uses
+                       // to hijack IE globals relies on running in the global scope
+                       // and in ResourceLoader this won't be running in the global scope.
+                       // Including it results (among other things) in sandboxed timers
+                       // being broken due to Date inheritance being undefined.
+                       // 'resources/sinonjs/sinon-ie-1.9.0.js',
                ),
                'targets' => array( 'desktop', 'mobile' ),
        ),
@@ -42,8 +48,8 @@ return array(
                        'tests/qunit/suites/resources/jquery/jquery.byteLength.test.js',
                        'tests/qunit/suites/resources/jquery/jquery.byteLimit.test.js',
                        'tests/qunit/suites/resources/jquery/jquery.client.test.js',
+                       'tests/qunit/suites/resources/jquery/jquery.color.test.js',
                        'tests/qunit/suites/resources/jquery/jquery.colorUtil.test.js',
-                       'tests/qunit/suites/resources/jquery/jquery.delayedBind.test.js',
                        'tests/qunit/suites/resources/jquery/jquery.getAttrs.test.js',
                        'tests/qunit/suites/resources/jquery/jquery.hidpi.test.js',
                        'tests/qunit/suites/resources/jquery/jquery.highlightText.test.js',
@@ -65,6 +71,7 @@ return array(
                        'tests/qunit/suites/resources/mediawiki/mediawiki.util.test.js',
                        'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js',
                        'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.parse.test.js',
+                       'tests/qunit/suites/resources/mediawiki.api/mediawiki.api.watch.test.js',
                        'tests/qunit/suites/resources/mediawiki.special/mediawiki.special.recentchanges.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.language.test.js',
                        'tests/qunit/suites/resources/mediawiki/mediawiki.cldr.test.js',
@@ -74,6 +81,7 @@ return array(
                        'jquery.byteLength',
                        'jquery.byteLimit',
                        'jquery.client',
+                       'jquery.color',
                        'jquery.colorUtil',
                        'jquery.delayedBind',
                        'jquery.getAttrs',
@@ -89,6 +97,7 @@ return array(
                        'mediawiki',
                        'mediawiki.api',
                        'mediawiki.api.parse',
+                       'mediawiki.api.watch',
                        'mediawiki.jqueryMsg',
                        'mediawiki.Title',
                        'mediawiki.Uri',
index 12e5a2d..461ab87 100644 (file)
@@ -135,7 +135,6 @@ class GenerateJqueryMsgData extends Maintenance {
                                . '// Last generated with ' . basename( __FILE__ ) . ' at ' . gmdate( 'r' ) . "\n"
                                // This file will contain unquoted JSON strings as javascript native object literals,
                                // flip the quotemark convention for this file.
-                               . "/*jshint quotmark: double */\n"
                                . "\n"
                                . 'mediaWiki.libs.phpParserData = ' . FormatJson::encode( $phpParserData, true ) . ";\n";
 
index 776ee24..4ab5f14 100644 (file)
 // This file stores the output from the PHP parser for various messages, arguments,
 // languages, and parser modes. Intended for use by a unit test framework by looping
 // through the object and comparing its parser return value with the 'result' property.
-// Last generated with generateJqueryMsgData.php at Sat, 03 Nov 2012 21:32:01 +0000
-/*jshint quotmark: double */
+// Last generated with generateJqueryMsgData.php at Thu, 30 Jan 2014 04:04:41 +0000
 
 mediaWiki.libs.phpParserData = {
-       "messages": {
-               "en_undelete_short": "Undelete {{PLURAL:$1|one edit|$1 edits}}",
-               "en_category-subcat-count": "{{PLURAL:$2|This category has only the following subcategory.|This category has the following {{PLURAL:$1|subcategory|$1 subcategories}}, out of $2 total.}}",
-               "fr_undelete_short": "Restaurer $1 modification{{PLURAL:$1||s}}",
-               "fr_category-subcat-count": "Cette cat\u00e9gorie comprend {{PLURAL:$2|la sous-cat\u00e9gorie|$2 sous-cat\u00e9gories, dont {{PLURAL:$1|celle|les $1}}}} ci-dessous.",
-               "ar_undelete_short": "\u0627\u0633\u062a\u0631\u062c\u0627\u0639 {{PLURAL:$1|\u062a\u0639\u062f\u064a\u0644 \u0648\u0627\u062d\u062f|\u062a\u0639\u062f\u064a\u0644\u064a\u0646|$1 \u062a\u0639\u062f\u064a\u0644\u0627\u062a|$1 \u062a\u0639\u062f\u064a\u0644|$1 \u062a\u0639\u062f\u064a\u0644\u0627}}",
-               "ar_category-subcat-count": "{{PLURAL:$2|\u0644\u0627 \u062a\u0635\u0627\u0646\u064a\u0641 \u0641\u0631\u0639\u064a\u0629 \u0641\u064a \u0647\u0630\u0627 \u0627\u0644\u062a\u0635\u0646\u064a\u0641|\u0647\u0630\u0627 \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u0641\u064a\u0647 \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u0627\u0644\u0641\u0631\u0639\u064a \u0627\u0644\u062a\u0627\u0644\u064a \u0641\u0642\u0637.|\u0647\u0630\u0627 \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u0641\u064a\u0647 {{PLURAL:$1||\u0647\u0630\u0627 \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u0627\u0644\u0641\u0631\u0639\u064a|\u0647\u0630\u064a\u0646 \u0627\u0644\u062a\u0635\u0646\u064a\u0641\u064a\u0646 \u0627\u0644\u0641\u0631\u0639\u064a\u064a\u0646|\u0647\u0630\u0647 \u0627\u0644$1 \u062a\u0635\u0627\u0646\u064a\u0641 \u0627\u0644\u0641\u0631\u0639\u064a\u0629|\u0647\u0630\u0647 \u0627\u0644$1 \u062a\u0635\u0646\u064a\u0641\u0627 \u0641\u0631\u0639\u064a\u0627|\u0647\u0630\u0647 \u0627\u0644$1 \u062a\u0635\u0646\u064a\u0641 \u0641\u0631\u0639\u064a}}\u060c \u0645\u0646 \u0625\u062c\u0645\u0627\u0644\u064a $2.}}",
-               "jp_undelete_short": "Undelete {{PLURAL:$1|one edit|$1 edits}}",
-               "jp_category-subcat-count": "{{PLURAL:$2|This category has only the following subcategory.|This category has the following {{PLURAL:$1|subcategory|$1 subcategories}}, out of $2 total.}}",
-               "zh_undelete_short": "\u6062\u590d$1\u4e2a\u88ab\u5220\u9664\u7684\u7f16\u8f91",
-               "zh_category-subcat-count": "{{PLURAL:$2|\u672c\u5206\u7c7b\u53ea\u6709\u4e0b\u5217\u4e00\u4e2a\u5b50\u5206\u7c7b\u3002|\u672c\u5206\u7c7b\u5305\u542b\u4e0b\u5217$1\u4e2a\u5b50\u5206\u7c7b\uff0c\u5171$2\u4e2a\u5b50\u5206\u7c7b\u3002}}"
-       },
-       "tests": [
-               {
-                       "name": "en undelete_short 0",
-                       "key": "en_undelete_short",
-                       "args": [
-                               0
-                       ],
-                       "result": "Undelete 0 edits",
-                       "lang": "en"
-               },
-               {
-                       "name": "en undelete_short 1",
-                       "key": "en_undelete_short",
-                       "args": [
-                               1
-                       ],
-                       "result": "Undelete one edit",
-                       "lang": "en"
-               },
-               {
-                       "name": "en undelete_short 2",
-                       "key": "en_undelete_short",
-                       "args": [
-                               2
-                       ],
-                       "result": "Undelete 2 edits",
-                       "lang": "en"
-               },
-               {
-                       "name": "en undelete_short 5",
-                       "key": "en_undelete_short",
-                       "args": [
-                               5
-                       ],
-                       "result": "Undelete 5 edits",
-                       "lang": "en"
-               },
-               {
-                       "name": "en undelete_short 21",
-                       "key": "en_undelete_short",
-                       "args": [
-                               21
-                       ],
-                       "result": "Undelete 21 edits",
-                       "lang": "en"
-               },
-               {
-                       "name": "en undelete_short 101",
-                       "key": "en_undelete_short",
-                       "args": [
-                               101
-                       ],
-                       "result": "Undelete 101 edits",
-                       "lang": "en"
-               },
-               {
-                       "name": "en category-subcat-count 0,10",
-                       "key": "en_category-subcat-count",
-                       "args": [
-                               0,
-                               10
-                       ],
-                       "result": "This category has the following 0 subcategories, out of 10 total.",
-                       "lang": "en"
-               },
-               {
-                       "name": "en category-subcat-count 1,1",
-                       "key": "en_category-subcat-count",
-                       "args": [
-                               1,
-                               1
-                       ],
-                       "result": "This category has only the following subcategory.",
-                       "lang": "en"
-               },
-               {
-                       "name": "en category-subcat-count 1,2",
-                       "key": "en_category-subcat-count",
-                       "args": [
-                               1,
-                               2
-                       ],
-                       "result": "This category has the following subcategory, out of 2 total.",
-                       "lang": "en"
-               },
-               {
-                       "name": "en category-subcat-count 3,30",
-                       "key": "en_category-subcat-count",
-                       "args": [
-                               3,
-                               30
-                       ],
-                       "result": "This category has the following 3 subcategories, out of 30 total.",
-                       "lang": "en"
-               },
-               {
-                       "name": "fr undelete_short 0",
-                       "key": "fr_undelete_short",
-                       "args": [
-                               0
-                       ],
-                       "result": "Restaurer 0 modification",
-                       "lang": "fr"
-               },
-               {
-                       "name": "fr undelete_short 1",
-                       "key": "fr_undelete_short",
-                       "args": [
-                               1
-                       ],
-                       "result": "Restaurer 1 modification",
-                       "lang": "fr"
-               },
-               {
-                       "name": "fr undelete_short 2",
-                       "key": "fr_undelete_short",
-                       "args": [
-                               2
-                       ],
-                       "result": "Restaurer 2 modifications",
-                       "lang": "fr"
-               },
-               {
-                       "name": "fr undelete_short 5",
-                       "key": "fr_undelete_short",
-                       "args": [
-                               5
-                       ],
-                       "result": "Restaurer 5 modifications",
-                       "lang": "fr"
-               },
-               {
-                       "name": "fr undelete_short 21",
-                       "key": "fr_undelete_short",
-                       "args": [
-                               21
-                       ],
-                       "result": "Restaurer 21 modifications",
-                       "lang": "fr"
-               },
-               {
-                       "name": "fr undelete_short 101",
-                       "key": "fr_undelete_short",
-                       "args": [
-                               101
-                       ],
-                       "result": "Restaurer 101 modifications",
-                       "lang": "fr"
-               },
-               {
-                       "name": "fr category-subcat-count 0,10",
-                       "key": "fr_category-subcat-count",
-                       "args": [
-                               0,
-                               10
-                       ],
-                       "result": "Cette cat\u00e9gorie comprend 10 sous-cat\u00e9gories, dont celle ci-dessous.",
-                       "lang": "fr"
-               },
-               {
-                       "name": "fr category-subcat-count 1,1",
-                       "key": "fr_category-subcat-count",
-                       "args": [
-                               1,
-                               1
-                       ],
-                       "result": "Cette cat\u00e9gorie comprend la sous-cat\u00e9gorie ci-dessous.",
-                       "lang": "fr"
-               },
-               {
-                       "name": "fr category-subcat-count 1,2",
-                       "key": "fr_category-subcat-count",
-                       "args": [
-                               1,
-                               2
-                       ],
-                       "result": "Cette cat\u00e9gorie comprend 2 sous-cat\u00e9gories, dont celle ci-dessous.",
-                       "lang": "fr"
-               },
-               {
-                       "name": "fr category-subcat-count 3,30",
-                       "key": "fr_category-subcat-count",
-                       "args": [
-                               3,
-                               30
-                       ],
-                       "result": "Cette cat\u00e9gorie comprend 30 sous-cat\u00e9gories, dont les 3 ci-dessous.",
-                       "lang": "fr"
-               },
-               {
-                       "name": "ar undelete_short 0",
-                       "key": "ar_undelete_short",
-                       "args": [
-                               0
-                       ],
-                       "result": "\u0627\u0633\u062a\u0631\u062c\u0627\u0639 \u062a\u0639\u062f\u064a\u0644 \u0648\u0627\u062d\u062f",
-                       "lang": "ar"
-               },
-               {
-                       "name": "ar undelete_short 1",
-                       "key": "ar_undelete_short",
-                       "args": [
-                               1
-                       ],
-                       "result": "\u0627\u0633\u062a\u0631\u062c\u0627\u0639 \u062a\u0639\u062f\u064a\u0644\u064a\u0646",
-                       "lang": "ar"
-               },
-               {
-                       "name": "ar undelete_short 2",
-                       "key": "ar_undelete_short",
-                       "args": [
-                               2
-                       ],
-                       "result": "\u0627\u0633\u062a\u0631\u062c\u0627\u0639 2 \u062a\u0639\u062f\u064a\u0644\u0627\u062a",
-                       "lang": "ar"
-               },
-               {
-                       "name": "ar undelete_short 5",
-                       "key": "ar_undelete_short",
-                       "args": [
-                               5
-                       ],
-                       "result": "\u0627\u0633\u062a\u0631\u062c\u0627\u0639 5 \u062a\u0639\u062f\u064a\u0644",
-                       "lang": "ar"
-               },
-               {
-                       "name": "ar undelete_short 21",
-                       "key": "ar_undelete_short",
-                       "args": [
-                               21
-                       ],
-                       "result": "\u0627\u0633\u062a\u0631\u062c\u0627\u0639 21 \u062a\u0639\u062f\u064a\u0644\u0627",
-                       "lang": "ar"
-               },
-               {
-                       "name": "ar undelete_short 101",
-                       "key": "ar_undelete_short",
-                       "args": [
-                               101
-                       ],
-                       "result": "\u0627\u0633\u062a\u0631\u062c\u0627\u0639 101 \u062a\u0639\u062f\u064a\u0644\u0627",
-                       "lang": "ar"
-               },
-               {
-                       "name": "ar category-subcat-count 0,10",
-                       "key": "ar_category-subcat-count",
-                       "args": [
-                               0,
-                               10
-                       ],
-                       "result": "\u0647\u0630\u0627 \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u0641\u064a\u0647 \u060c \u0645\u0646 \u0625\u062c\u0645\u0627\u0644\u064a 10.",
-                       "lang": "ar"
-               },
-               {
-                       "name": "ar category-subcat-count 1,1",
-                       "key": "ar_category-subcat-count",
-                       "args": [
-                               1,
-                               1
-                       ],
-                       "result": "\u0647\u0630\u0627 \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u0641\u064a\u0647 \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u0627\u0644\u0641\u0631\u0639\u064a \u0627\u0644\u062a\u0627\u0644\u064a \u0641\u0642\u0637.",
-                       "lang": "ar"
-               },
-               {
-                       "name": "ar category-subcat-count 1,2",
-                       "key": "ar_category-subcat-count",
-                       "args": [
-                               1,
-                               2
-                       ],
-                       "result": "\u0647\u0630\u0627 \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u0641\u064a\u0647 \u0647\u0630\u0627 \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u0627\u0644\u0641\u0631\u0639\u064a\u060c \u0645\u0646 \u0625\u062c\u0645\u0627\u0644\u064a 2.",
-                       "lang": "ar"
-               },
-               {
-                       "name": "ar category-subcat-count 3,30",
-                       "key": "ar_category-subcat-count",
-                       "args": [
-                               3,
-                               30
-                       ],
-                       "result": "\u0647\u0630\u0627 \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u0641\u064a\u0647 \u0647\u0630\u0647 \u0627\u06443 \u062a\u0635\u0627\u0646\u064a\u0641 \u0627\u0644\u0641\u0631\u0639\u064a\u0629\u060c \u0645\u0646 \u0625\u062c\u0645\u0627\u0644\u064a 30.",
-                       "lang": "ar"
-               },
-               {
-                       "name": "jp undelete_short 0",
-                       "key": "jp_undelete_short",
-                       "args": [
-                               0
-                       ],
-                       "result": "Undelete 0 edits",
-                       "lang": "jp"
-               },
-               {
-                       "name": "jp undelete_short 1",
-                       "key": "jp_undelete_short",
-                       "args": [
-                               1
-                       ],
-                       "result": "Undelete one edit",
-                       "lang": "jp"
-               },
-               {
-                       "name": "jp undelete_short 2",
-                       "key": "jp_undelete_short",
-                       "args": [
-                               2
-                       ],
-                       "result": "Undelete 2 edits",
-                       "lang": "jp"
-               },
-               {
-                       "name": "jp undelete_short 5",
-                       "key": "jp_undelete_short",
-                       "args": [
-                               5
-                       ],
-                       "result": "Undelete 5 edits",
-                       "lang": "jp"
-               },
-               {
-                       "name": "jp undelete_short 21",
-                       "key": "jp_undelete_short",
-                       "args": [
-                               21
-                       ],
-                       "result": "Undelete 21 edits",
-                       "lang": "jp"
-               },
-               {
-                       "name": "jp undelete_short 101",
-                       "key": "jp_undelete_short",
-                       "args": [
-                               101
-                       ],
-                       "result": "Undelete 101 edits",
-                       "lang": "jp"
-               },
-               {
-                       "name": "jp category-subcat-count 0,10",
-                       "key": "jp_category-subcat-count",
-                       "args": [
-                               0,
-                               10
-                       ],
-                       "result": "This category has the following 0 subcategories, out of 10 total.",
-                       "lang": "jp"
-               },
-               {
-                       "name": "jp category-subcat-count 1,1",
-                       "key": "jp_category-subcat-count",
-                       "args": [
-                               1,
-                               1
-                       ],
-                       "result": "This category has only the following subcategory.",
-                       "lang": "jp"
-               },
-               {
-                       "name": "jp category-subcat-count 1,2",
-                       "key": "jp_category-subcat-count",
-                       "args": [
-                               1,
-                               2
-                       ],
-                       "result": "This category has the following subcategory, out of 2 total.",
-                       "lang": "jp"
-               },
-               {
-                       "name": "jp category-subcat-count 3,30",
-                       "key": "jp_category-subcat-count",
-                       "args": [
-                               3,
-                               30
-                       ],
-                       "result": "This category has the following 3 subcategories, out of 30 total.",
-                       "lang": "jp"
-               },
-               {
-                       "name": "zh undelete_short 0",
-                       "key": "zh_undelete_short",
-                       "args": [
-                               0
-                       ],
-                       "result": "\u6062\u590d0\u4e2a\u88ab\u5220\u9664\u7684\u7f16\u8f91",
-                       "lang": "zh"
-               },
-               {
-                       "name": "zh undelete_short 1",
-                       "key": "zh_undelete_short",
-                       "args": [
-                               1
-                       ],
-                       "result": "\u6062\u590d1\u4e2a\u88ab\u5220\u9664\u7684\u7f16\u8f91",
-                       "lang": "zh"
-               },
-               {
-                       "name": "zh undelete_short 2",
-                       "key": "zh_undelete_short",
-                       "args": [
-                               2
-                       ],
-                       "result": "\u6062\u590d2\u4e2a\u88ab\u5220\u9664\u7684\u7f16\u8f91",
-                       "lang": "zh"
-               },
-               {
-                       "name": "zh undelete_short 5",
-                       "key": "zh_undelete_short",
-                       "args": [
-                               5
-                       ],
-                       "result": "\u6062\u590d5\u4e2a\u88ab\u5220\u9664\u7684\u7f16\u8f91",
-                       "lang": "zh"
-               },
-               {
-                       "name": "zh undelete_short 21",
-                       "key": "zh_undelete_short",
-                       "args": [
-                               21
-                       ],
-                       "result": "\u6062\u590d21\u4e2a\u88ab\u5220\u9664\u7684\u7f16\u8f91",
-                       "lang": "zh"
-               },
-               {
-                       "name": "zh undelete_short 101",
-                       "key": "zh_undelete_short",
-                       "args": [
-                               101
-                       ],
-                       "result": "\u6062\u590d101\u4e2a\u88ab\u5220\u9664\u7684\u7f16\u8f91",
-                       "lang": "zh"
-               },
-               {
-                       "name": "zh category-subcat-count 0,10",
-                       "key": "zh_category-subcat-count",
-                       "args": [
-                               0,
-                               10
-                       ],
-                       "result": "\u672c\u5206\u7c7b\u5305\u542b\u4e0b\u52170\u4e2a\u5b50\u5206\u7c7b\uff0c\u517110\u4e2a\u5b50\u5206\u7c7b\u3002",
-                       "lang": "zh"
-               },
-               {
-                       "name": "zh category-subcat-count 1,1",
-                       "key": "zh_category-subcat-count",
-                       "args": [
-                               1,
-                               1
-                       ],
-                       "result": "\u672c\u5206\u7c7b\u53ea\u6709\u4e0b\u5217\u4e00\u4e2a\u5b50\u5206\u7c7b\u3002",
-                       "lang": "zh"
-               },
-               {
-                       "name": "zh category-subcat-count 1,2",
-                       "key": "zh_category-subcat-count",
-                       "args": [
-                               1,
-                               2
-                       ],
-                       "result": "\u672c\u5206\u7c7b\u5305\u542b\u4e0b\u52171\u4e2a\u5b50\u5206\u7c7b\uff0c\u51712\u4e2a\u5b50\u5206\u7c7b\u3002",
-                       "lang": "zh"
-               },
-               {
-                       "name": "zh category-subcat-count 3,30",
-                       "key": "zh_category-subcat-count",
-                       "args": [
-                               3,
-                               30
-                       ],
-                       "result": "\u672c\u5206\u7c7b\u5305\u542b\u4e0b\u52173\u4e2a\u5b50\u5206\u7c7b\uff0c\u517130\u4e2a\u5b50\u5206\u7c7b\u3002",
-                       "lang": "zh"
-               }
-       ]
+    "messages": {
+        "en_undelete_short": "Undelete {{PLURAL:$1|one edit|$1 edits}}",
+        "en_category-subcat-count": "{{PLURAL:$2|This category has only the following subcategory.|This category has the following {{PLURAL:$1|subcategory|$1 subcategories}}, out of $2 total.}}",
+        "fr_undelete_short": "Restaurer $1 modification{{PLURAL:$1||s}}",
+        "fr_category-subcat-count": "Cette cat\u00e9gorie comprend {{PLURAL:$2|la sous-cat\u00e9gorie|$2 sous-cat\u00e9gories, dont {{PLURAL:$1|celle|les $1}}}} ci-dessous.",
+        "ar_undelete_short": "\u0627\u0633\u062a\u0631\u062c\u0627\u0639 {{PLURAL:$1||\u062a\u0639\u062f\u064a\u0644 \u0648\u0627\u062d\u062f|\u062a\u0639\u062f\u064a\u0644\u064a\u0646|$1 \u062a\u0639\u062f\u064a\u0644\u0627\u062a|$1 \u062a\u0639\u062f\u064a\u0644\u0627\u064b|$1 \u062a\u0639\u062f\u064a\u0644}}",
+        "ar_category-subcat-count": "{{PLURAL:$2|\u0647\u0630\u0627 \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u064a\u062d\u0648\u064a \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u0627\u0644\u0641\u0631\u0639\u064a \u0627\u0644\u062a\u0627\u0644\u064a|\u0647\u0630\u0627 \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u064a\u062d\u0648\u064a {{PLURAL:$1||\u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u0627\u0644\u0641\u0631\u0639\u064a|\u062a\u0635\u0646\u064a\u0641\u064a\u0646 \u0641\u0631\u0639\u064a\u064a\u0646|$1 \u062a\u0635\u0646\u064a\u0641\u0627\u062a \u0641\u0631\u0639\u064a\u0629}}\u060c \u0645\u0646 \u0625\u062c\u0645\u0627\u0644\u064a $2.}}",
+        "jp_undelete_short": "Undelete {{PLURAL:$1|one edit|$1 edits}}",
+        "jp_category-subcat-count": "{{PLURAL:$2|This category has only the following subcategory.|This category has the following {{PLURAL:$1|subcategory|$1 subcategories}}, out of $2 total.}}",
+        "zh_undelete_short": "\u8fd8\u539f{{PLURAL:$1|$1\u4e2a\u7f16\u8f91}}",
+        "zh_category-subcat-count": "{{PLURAL:$2|\u672c\u5206\u7c7b\u53ea\u6709\u4ee5\u4e0b\u5b50\u5206\u7c7b\u3002|\u672c\u5206\u7c7b\u6709\u4ee5\u4e0b$1\u4e2a\u5b50\u5206\u7c7b\uff0c\u5171\u6709$2\u4e2a\u5b50\u5206\u7c7b\u3002}}"
+    },
+    "tests": [
+        {
+            "name": "en undelete_short 0",
+            "key": "en_undelete_short",
+            "args": [
+                0
+            ],
+            "result": "Undelete 0 edits",
+            "lang": "en"
+        },
+        {
+            "name": "en undelete_short 1",
+            "key": "en_undelete_short",
+            "args": [
+                1
+            ],
+            "result": "Undelete one edit",
+            "lang": "en"
+        },
+        {
+            "name": "en undelete_short 2",
+            "key": "en_undelete_short",
+            "args": [
+                2
+            ],
+            "result": "Undelete 2 edits",
+            "lang": "en"
+        },
+        {
+            "name": "en undelete_short 5",
+            "key": "en_undelete_short",
+            "args": [
+                5
+            ],
+            "result": "Undelete 5 edits",
+            "lang": "en"
+        },
+        {
+            "name": "en undelete_short 21",
+            "key": "en_undelete_short",
+            "args": [
+                21
+            ],
+            "result": "Undelete 21 edits",
+            "lang": "en"
+        },
+        {
+            "name": "en undelete_short 101",
+            "key": "en_undelete_short",
+            "args": [
+                101
+            ],
+            "result": "Undelete 101 edits",
+            "lang": "en"
+        },
+        {
+            "name": "en category-subcat-count 0,10",
+            "key": "en_category-subcat-count",
+            "args": [
+                0,
+                10
+            ],
+            "result": "This category has the following 0 subcategories, out of 10 total.",
+            "lang": "en"
+        },
+        {
+            "name": "en category-subcat-count 1,1",
+            "key": "en_category-subcat-count",
+            "args": [
+                1,
+                1
+            ],
+            "result": "This category has only the following subcategory.",
+            "lang": "en"
+        },
+        {
+            "name": "en category-subcat-count 1,2",
+            "key": "en_category-subcat-count",
+            "args": [
+                1,
+                2
+            ],
+            "result": "This category has the following subcategory, out of 2 total.",
+            "lang": "en"
+        },
+        {
+            "name": "en category-subcat-count 3,30",
+            "key": "en_category-subcat-count",
+            "args": [
+                3,
+                30
+            ],
+            "result": "This category has the following 3 subcategories, out of 30 total.",
+            "lang": "en"
+        },
+        {
+            "name": "fr undelete_short 0",
+            "key": "fr_undelete_short",
+            "args": [
+                0
+            ],
+            "result": "Restaurer 0 modification",
+            "lang": "fr"
+        },
+        {
+            "name": "fr undelete_short 1",
+            "key": "fr_undelete_short",
+            "args": [
+                1
+            ],
+            "result": "Restaurer 1 modification",
+            "lang": "fr"
+        },
+        {
+            "name": "fr undelete_short 2",
+            "key": "fr_undelete_short",
+            "args": [
+                2
+            ],
+            "result": "Restaurer 2 modifications",
+            "lang": "fr"
+        },
+        {
+            "name": "fr undelete_short 5",
+            "key": "fr_undelete_short",
+            "args": [
+                5
+            ],
+            "result": "Restaurer 5 modifications",
+            "lang": "fr"
+        },
+        {
+            "name": "fr undelete_short 21",
+            "key": "fr_undelete_short",
+            "args": [
+                21
+            ],
+            "result": "Restaurer 21 modifications",
+            "lang": "fr"
+        },
+        {
+            "name": "fr undelete_short 101",
+            "key": "fr_undelete_short",
+            "args": [
+                101
+            ],
+            "result": "Restaurer 101 modifications",
+            "lang": "fr"
+        },
+        {
+            "name": "fr category-subcat-count 0,10",
+            "key": "fr_category-subcat-count",
+            "args": [
+                0,
+                10
+            ],
+            "result": "Cette cat\u00e9gorie comprend 10 sous-cat\u00e9gories, dont celle ci-dessous.",
+            "lang": "fr"
+        },
+        {
+            "name": "fr category-subcat-count 1,1",
+            "key": "fr_category-subcat-count",
+            "args": [
+                1,
+                1
+            ],
+            "result": "Cette cat\u00e9gorie comprend la sous-cat\u00e9gorie ci-dessous.",
+            "lang": "fr"
+        },
+        {
+            "name": "fr category-subcat-count 1,2",
+            "key": "fr_category-subcat-count",
+            "args": [
+                1,
+                2
+            ],
+            "result": "Cette cat\u00e9gorie comprend 2 sous-cat\u00e9gories, dont celle ci-dessous.",
+            "lang": "fr"
+        },
+        {
+            "name": "fr category-subcat-count 3,30",
+            "key": "fr_category-subcat-count",
+            "args": [
+                3,
+                30
+            ],
+            "result": "Cette cat\u00e9gorie comprend 30 sous-cat\u00e9gories, dont les 3 ci-dessous.",
+            "lang": "fr"
+        },
+        {
+            "name": "ar undelete_short 0",
+            "key": "ar_undelete_short",
+            "args": [
+                0
+            ],
+            "result": "\u0627\u0633\u062a\u0631\u062c\u0627\u0639 ",
+            "lang": "ar"
+        },
+        {
+            "name": "ar undelete_short 1",
+            "key": "ar_undelete_short",
+            "args": [
+                1
+            ],
+            "result": "\u0627\u0633\u062a\u0631\u062c\u0627\u0639 \u062a\u0639\u062f\u064a\u0644 \u0648\u0627\u062d\u062f",
+            "lang": "ar"
+        },
+        {
+            "name": "ar undelete_short 2",
+            "key": "ar_undelete_short",
+            "args": [
+                2
+            ],
+            "result": "\u0627\u0633\u062a\u0631\u062c\u0627\u0639 \u062a\u0639\u062f\u064a\u0644\u064a\u0646",
+            "lang": "ar"
+        },
+        {
+            "name": "ar undelete_short 5",
+            "key": "ar_undelete_short",
+            "args": [
+                5
+            ],
+            "result": "\u0627\u0633\u062a\u0631\u062c\u0627\u0639 5 \u062a\u0639\u062f\u064a\u0644\u0627\u062a",
+            "lang": "ar"
+        },
+        {
+            "name": "ar undelete_short 21",
+            "key": "ar_undelete_short",
+            "args": [
+                21
+            ],
+            "result": "\u0627\u0633\u062a\u0631\u062c\u0627\u0639 21 \u062a\u0639\u062f\u064a\u0644\u0627\u064b",
+            "lang": "ar"
+        },
+        {
+            "name": "ar undelete_short 101",
+            "key": "ar_undelete_short",
+            "args": [
+                101
+            ],
+            "result": "\u0627\u0633\u062a\u0631\u062c\u0627\u0639 101 \u062a\u0639\u062f\u064a\u0644",
+            "lang": "ar"
+        },
+        {
+            "name": "ar category-subcat-count 0,10",
+            "key": "ar_category-subcat-count",
+            "args": [
+                0,
+                10
+            ],
+            "result": "\u0647\u0630\u0627 \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u064a\u062d\u0648\u064a \u060c \u0645\u0646 \u0625\u062c\u0645\u0627\u0644\u064a 10.",
+            "lang": "ar"
+        },
+        {
+            "name": "ar category-subcat-count 1,1",
+            "key": "ar_category-subcat-count",
+            "args": [
+                1,
+                1
+            ],
+            "result": "\u0647\u0630\u0627 \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u064a\u062d\u0648\u064a \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u0627\u0644\u0641\u0631\u0639\u064a\u060c \u0645\u0646 \u0625\u062c\u0645\u0627\u0644\u064a 1.",
+            "lang": "ar"
+        },
+        {
+            "name": "ar category-subcat-count 1,2",
+            "key": "ar_category-subcat-count",
+            "args": [
+                1,
+                2
+            ],
+            "result": "\u0647\u0630\u0627 \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u064a\u062d\u0648\u064a \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u0627\u0644\u0641\u0631\u0639\u064a\u060c \u0645\u0646 \u0625\u062c\u0645\u0627\u0644\u064a 2.",
+            "lang": "ar"
+        },
+        {
+            "name": "ar category-subcat-count 3,30",
+            "key": "ar_category-subcat-count",
+            "args": [
+                3,
+                30
+            ],
+            "result": "\u0647\u0630\u0627 \u0627\u0644\u062a\u0635\u0646\u064a\u0641 \u064a\u062d\u0648\u064a 3 \u062a\u0635\u0646\u064a\u0641\u0627\u062a \u0641\u0631\u0639\u064a\u0629\u060c \u0645\u0646 \u0625\u062c\u0645\u0627\u0644\u064a 30.",
+            "lang": "ar"
+        },
+        {
+            "name": "jp undelete_short 0",
+            "key": "jp_undelete_short",
+            "args": [
+                0
+            ],
+            "result": "Undelete 0 edits",
+            "lang": "jp"
+        },
+        {
+            "name": "jp undelete_short 1",
+            "key": "jp_undelete_short",
+            "args": [
+                1
+            ],
+            "result": "Undelete one edit",
+            "lang": "jp"
+        },
+        {
+            "name": "jp undelete_short 2",
+            "key": "jp_undelete_short",
+            "args": [
+                2
+            ],
+            "result": "Undelete 2 edits",
+            "lang": "jp"
+        },
+        {
+            "name": "jp undelete_short 5",
+            "key": "jp_undelete_short",
+            "args": [
+                5
+            ],
+            "result": "Undelete 5 edits",
+            "lang": "jp"
+        },
+        {
+            "name": "jp undelete_short 21",
+            "key": "jp_undelete_short",
+            "args": [
+                21
+            ],
+            "result": "Undelete 21 edits",
+            "lang": "jp"
+        },
+        {
+            "name": "jp undelete_short 101",
+            "key": "jp_undelete_short",
+            "args": [
+                101
+            ],
+            "result": "Undelete 101 edits",
+            "lang": "jp"
+        },
+        {
+            "name": "jp category-subcat-count 0,10",
+            "key": "jp_category-subcat-count",
+            "args": [
+                0,
+                10
+            ],
+            "result": "This category has the following 0 subcategories, out of 10 total.",
+            "lang": "jp"
+        },
+        {
+            "name": "jp category-subcat-count 1,1",
+            "key": "jp_category-subcat-count",
+            "args": [
+                1,
+                1
+            ],
+            "result": "This category has only the following subcategory.",
+            "lang": "jp"
+        },
+        {
+            "name": "jp category-subcat-count 1,2",
+            "key": "jp_category-subcat-count",
+            "args": [
+                1,
+                2
+            ],
+            "result": "This category has the following subcategory, out of 2 total.",
+            "lang": "jp"
+        },
+        {
+            "name": "jp category-subcat-count 3,30",
+            "key": "jp_category-subcat-count",
+            "args": [
+                3,
+                30
+            ],
+            "result": "This category has the following 3 subcategories, out of 30 total.",
+            "lang": "jp"
+        },
+        {
+            "name": "zh undelete_short 0",
+            "key": "zh_undelete_short",
+            "args": [
+                0
+            ],
+            "result": "\u8fd8\u539f0\u4e2a\u7f16\u8f91",
+            "lang": "zh"
+        },
+        {
+            "name": "zh undelete_short 1",
+            "key": "zh_undelete_short",
+            "args": [
+                1
+            ],
+            "result": "\u8fd8\u539f1\u4e2a\u7f16\u8f91",
+            "lang": "zh"
+        },
+        {
+            "name": "zh undelete_short 2",
+            "key": "zh_undelete_short",
+            "args": [
+                2
+            ],
+            "result": "\u8fd8\u539f2\u4e2a\u7f16\u8f91",
+            "lang": "zh"
+        },
+        {
+            "name": "zh undelete_short 5",
+            "key": "zh_undelete_short",
+            "args": [
+                5
+            ],
+            "result": "\u8fd8\u539f5\u4e2a\u7f16\u8f91",
+            "lang": "zh"
+        },
+        {
+            "name": "zh undelete_short 21",
+            "key": "zh_undelete_short",
+            "args": [
+                21
+            ],
+            "result": "\u8fd8\u539f21\u4e2a\u7f16\u8f91",
+            "lang": "zh"
+        },
+        {
+            "name": "zh undelete_short 101",
+            "key": "zh_undelete_short",
+            "args": [
+                101
+            ],
+            "result": "\u8fd8\u539f101\u4e2a\u7f16\u8f91",
+            "lang": "zh"
+        },
+        {
+            "name": "zh category-subcat-count 0,10",
+            "key": "zh_category-subcat-count",
+            "args": [
+                0,
+                10
+            ],
+            "result": "\u672c\u5206\u7c7b\u6709\u4ee5\u4e0b0\u4e2a\u5b50\u5206\u7c7b\uff0c\u5171\u670910\u4e2a\u5b50\u5206\u7c7b\u3002",
+            "lang": "zh"
+        },
+        {
+            "name": "zh category-subcat-count 1,1",
+            "key": "zh_category-subcat-count",
+            "args": [
+                1,
+                1
+            ],
+            "result": "\u672c\u5206\u7c7b\u53ea\u6709\u4ee5\u4e0b\u5b50\u5206\u7c7b\u3002",
+            "lang": "zh"
+        },
+        {
+            "name": "zh category-subcat-count 1,2",
+            "key": "zh_category-subcat-count",
+            "args": [
+                1,
+                2
+            ],
+            "result": "\u672c\u5206\u7c7b\u6709\u4ee5\u4e0b1\u4e2a\u5b50\u5206\u7c7b\uff0c\u5171\u67092\u4e2a\u5b50\u5206\u7c7b\u3002",
+            "lang": "zh"
+        },
+        {
+            "name": "zh category-subcat-count 3,30",
+            "key": "zh_category-subcat-count",
+            "args": [
+                3,
+                30
+            ],
+            "result": "\u672c\u5206\u7c7b\u6709\u4ee5\u4e0b3\u4e2a\u5b50\u5206\u7c7b\uff0c\u5171\u670930\u4e2a\u5b50\u5206\u7c7b\u3002",
+            "lang": "zh"
+        }
+    ]
 };
index ba00ff9..73ae0e6 100644 (file)
@@ -82,7 +82,7 @@
        sinon.config = {
                injectIntoThis: true,
                injectInto: null,
-               properties: ['spy', 'stub', 'mock', 'clock', 'sandbox'],
+               properties: ['spy', 'stub', 'mock', 'sandbox'],
                // Don't fake timers by default
                useFakeTimers: false,
                useFakeServer: false
diff --git a/tests/qunit/suites/resources/jquery/jquery.color.test.js b/tests/qunit/suites/resources/jquery/jquery.color.test.js
new file mode 100644 (file)
index 0000000..839c5d5
--- /dev/null
@@ -0,0 +1,15 @@
+( function ( $ ) {
+       QUnit.module( 'jquery.color', QUnit.newMwEnvironment() );
+
+       QUnit.asyncTest( 'animate', 3, function ( assert ) {
+               var $canvas = $( '<div>' ).css( 'background-color', '#fff' );
+
+               $canvas.animate( { backgroundColor: '#000' }, 4 ).promise().then( function () {
+                       var endColors = $.colorUtil.getRGB( $canvas.css( 'background-color' ) );
+                       assert.strictEqual( endColors[0], 0 );
+                       assert.strictEqual( endColors[1], 0 );
+                       assert.strictEqual( endColors[2], 0 );
+                       QUnit.start();
+               } );
+       } );
+}( jQuery ) );
diff --git a/tests/qunit/suites/resources/jquery/jquery.delayedBind.test.js b/tests/qunit/suites/resources/jquery/jquery.delayedBind.test.js
deleted file mode 100644 (file)
index 234b19c..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-( function ( $ ) {
-       QUnit.asyncTest( 'jquery.delayedBind with data option', 2, function ( assert ) {
-               var $fixture = $( '<div>' ).appendTo( '#qunit-fixture' ),
-                       data = {
-                               magic: 'beeswax'
-                       },
-                       delay = 50;
-
-               $fixture.delayedBind( delay, 'testevent', data, function ( e ) {
-                       assert.ok( true, 'testevent fired' );
-                       assert.ok( e.data === data, 'data is passed through delayedBind' );
-                       QUnit.start();
-               } );
-
-               // We'll trigger it thrice, but it should only happen once.
-               $fixture.trigger( 'testevent', {} );
-               $fixture.trigger( 'testevent', {} );
-               $fixture.trigger( 'testevent', {} );
-               $fixture.trigger( 'testevent', {} );
-       } );
-
-       QUnit.asyncTest( 'jquery.delayedBind without data option', 1, function ( assert ) {
-               var $fixture = $( '<div>' ).appendTo( '#qunit-fixture' ),
-                       delay = 50;
-
-               $fixture.delayedBind( delay, 'testevent', function () {
-                       assert.ok( true, 'testevent fired' );
-                       QUnit.start();
-               } );
-
-               // We'll trigger it thrice, but it should only happen once.
-               $fixture.trigger( 'testevent', {} );
-               $fixture.trigger( 'testevent', {} );
-               $fixture.trigger( 'testevent', {} );
-               $fixture.trigger( 'testevent', {} );
-       } );
-}( jQuery ) );
index 3c508d4..e6a6124 100644 (file)
 
        // This test is first because if it fails, then almost all of the latter tests are meaningless.
        QUnit.asyncTest( 'testing hooks/triggers', 4, function ( assert ) {
-               var $collapsible, $content, $toggle;
-               $collapsible = prepareCollapsible(
-                       '<div class="mw-collapsible">' + loremIpsum + '</div>'
-               );
-               $content = $collapsible.find( '.mw-collapsible-content' );
-               $toggle = $collapsible.find( '.mw-collapsible-toggle' );
+               var $collapsible = prepareCollapsible(
+                               '<div class="mw-collapsible">' + loremIpsum + '</div>'
+                       ),
+                       $content = $collapsible.find( '.mw-collapsible-content' ),
+                       $toggle = $collapsible.find( '.mw-collapsible-toggle' );
 
                // In one full collapse-expand cycle, each event will be fired once
 
@@ -34,7 +33,6 @@
                        } );
                        $collapsible.on( 'afterExpand.mw-collapsible', function () {
                                assert.assertTrue( $content.is( ':visible' ), 'second afterCollapseExpand: content is visible' );
-
                                QUnit.start();
                        } );
 
        } );
 
        QUnit.asyncTest( 'basic operation (<div>)', 5, function ( assert ) {
-               var $collapsible, $content, $toggle;
-               $collapsible = prepareCollapsible(
-                       '<div class="mw-collapsible">' + loremIpsum + '</div>'
-               );
-               $content = $collapsible.find( '.mw-collapsible-content' );
-               $toggle = $collapsible.find( '.mw-collapsible-toggle' );
+               var $collapsible = prepareCollapsible(
+                               '<div class="mw-collapsible">' + loremIpsum + '</div>'
+                       ),
+                       $content = $collapsible.find( '.mw-collapsible-content' ),
+                       $toggle = $collapsible.find( '.mw-collapsible-toggle' );
 
                assert.equal( $content.length, 1, 'content is present' );
                assert.equal( $content.find( $toggle ).length, 0, 'toggle is not a descendant of content' );
        } );
 
        QUnit.asyncTest( 'basic operation (<table>)', 7, function ( assert ) {
-               var $collapsible, $headerRow, $contentRow, $toggle;
-               $collapsible = prepareCollapsible(
-                       '<table class="mw-collapsible">' +
-                               '<tr><td>' + loremIpsum + '</td><td>' + loremIpsum + '</td></tr>' +
-                               '<tr><td>' + loremIpsum + '</td><td>' + loremIpsum + '</td></tr>' +
-                               '<tr><td>' + loremIpsum + '</td><td>' + loremIpsum + '</td></tr>' +
-                       '</table>'
-               );
-               $headerRow = $collapsible.find( 'tr:first' );
-               $contentRow = $collapsible.find( 'tr:last' );
+               var $collapsible = prepareCollapsible(
+                               '<table class="mw-collapsible">' +
+                                       '<tr><td>' + loremIpsum + '</td><td>' + loremIpsum + '</td></tr>' +
+                                       '<tr><td>' + loremIpsum + '</td><td>' + loremIpsum + '</td></tr>' +
+                                       '<tr><td>' + loremIpsum + '</td><td>' + loremIpsum + '</td></tr>' +
+                               '</table>'
+                       ),
+                       $headerRow = $collapsible.find( 'tr:first' ),
+                       $contentRow = $collapsible.find( 'tr:last' ),
+                       $toggle = $headerRow.find( 'td:last .mw-collapsible-toggle' );
 
-               $toggle = $headerRow.find( 'td:last .mw-collapsible-toggle' );
                assert.equal( $toggle.length, 1, 'toggle is added to last cell of first row' );
 
                assert.assertTrue( $headerRow.is( ':visible' ), 'headerRow is visible' );
        } );
 
        function tableWithCaptionTest( $collapsible, assert ) {
-               var $caption, $headerRow, $contentRow, $toggle;
+               var $caption = $collapsible.find( 'caption' ),
+                       $headerRow = $collapsible.find( 'tr:first' ),
+                       $contentRow = $collapsible.find( 'tr:last' ),
+                       $toggle = $caption.find( '.mw-collapsible-toggle' );
 
-               $caption = $collapsible.find( 'caption' );
-               $headerRow = $collapsible.find( 'tr:first' );
-               $contentRow = $collapsible.find( 'tr:last' );
-
-               $toggle = $caption.find( '.mw-collapsible-toggle' );
                assert.equal( $toggle.length, 1, 'toggle is added to the end of the caption' );
 
                assert.assertTrue( $caption.is( ':visible' ), 'caption is visible' );
        } );
 
        function listTest( listType, assert ) {
-               var $collapsible, $toggleItem, $contentItem, $toggle;
-               $collapsible = prepareCollapsible(
-                       '<' + listType + ' class="mw-collapsible">' +
-                               '<li>' + loremIpsum + '</li>' +
-                               '<li>' + loremIpsum + '</li>' +
-                       '</' + listType + '>'
-               );
-               $toggleItem = $collapsible.find( 'li.mw-collapsible-toggle-li:first-child' );
-               $contentItem = $collapsible.find( 'li:last' );
-
-               $toggle = $toggleItem.find( '.mw-collapsible-toggle' );
+               var $collapsible = prepareCollapsible(
+                               '<' + listType + ' class="mw-collapsible">' +
+                                       '<li>' + loremIpsum + '</li>' +
+                                       '<li>' + loremIpsum + '</li>' +
+                               '</' + listType + '>'
+                       ),
+                       $toggleItem = $collapsible.find( 'li.mw-collapsible-toggle-li:first-child' ),
+                       $contentItem = $collapsible.find( 'li:last' ),
+                       $toggle = $toggleItem.find( '.mw-collapsible-toggle' );
+
                assert.equal( $toggle.length, 1, 'toggle is present, added inside new zeroth list item' );
 
                assert.assertTrue( $toggleItem.is( ':visible' ), 'toggleItem is visible' );
        } );
 
        QUnit.test( 'basic operation when synchronous (options.instantHide)', 2, function ( assert ) {
-               var $collapsible, $content;
-               $collapsible = prepareCollapsible(
-                       '<div class="mw-collapsible">' + loremIpsum + '</div>',
-                       { instantHide: true }
-               );
-               $content = $collapsible.find( '.mw-collapsible-content' );
+               var $collapsible = prepareCollapsible(
+                               '<div class="mw-collapsible">' + loremIpsum + '</div>',
+                               { instantHide: true }
+                       ),
+                       $content = $collapsible.find( '.mw-collapsible-content' );
 
                assert.assertTrue( $content.is( ':visible' ), 'content is visible' );
 
        } );
 
        QUnit.test( 'mw-made-collapsible data added', 1, function ( assert ) {
-               var $collapsible;
-               $collapsible = prepareCollapsible(
-                       '<div>' + loremIpsum + '</div>'
-               );
+               var $collapsible = prepareCollapsible(
+                               '<div>' + loremIpsum + '</div>'
+                       );
+
                assert.equal( $collapsible.data( 'mw-made-collapsible' ), true, 'mw-made-collapsible data present' );
        } );
 
        QUnit.test( 'mw-collapsible added when missing', 1, function ( assert ) {
-               var $collapsible;
-               $collapsible = prepareCollapsible(
-                       '<div>' + loremIpsum + '</div>'
-               );
+               var $collapsible = prepareCollapsible(
+                               '<div>' + loremIpsum + '</div>'
+                       );
+
                assert.assertTrue( $collapsible.hasClass( 'mw-collapsible' ), 'mw-collapsible class present' );
        } );
 
        QUnit.test( 'mw-collapsed added when missing', 1, function ( assert ) {
-               var $collapsible;
-               $collapsible = prepareCollapsible(
+               var $collapsible = prepareCollapsible(
                        '<div>' + loremIpsum + '</div>',
-                       { collapsed: true }
-               );
+                               { collapsed: true }
+                       );
+
                assert.assertTrue( $collapsible.hasClass( 'mw-collapsed' ), 'mw-collapsed class present' );
        } );
 
        QUnit.asyncTest( 'initial collapse (mw-collapsed class)', 2, function ( assert ) {
-               var $collapsible, $content;
-               $collapsible = prepareCollapsible(
-                       '<div class="mw-collapsible mw-collapsed">' + loremIpsum + '</div>'
-               );
-               $content = $collapsible.find( '.mw-collapsible-content' );
+               var $collapsible = prepareCollapsible(
+                               '<div class="mw-collapsible mw-collapsed">' + loremIpsum + '</div>'
+                       ),
+                       $content = $collapsible.find( '.mw-collapsible-content' );
 
                // Synchronous - mw-collapsed should cause instantHide: true to be used on initial collapsing
                assert.assertTrue( $content.is( ':hidden' ), 'content is hidden' );
        } );
 
        QUnit.asyncTest( 'initial collapse (options.collapsed)', 2, function ( assert ) {
-               var $collapsible, $content;
-               $collapsible = prepareCollapsible(
-                       '<div class="mw-collapsible">' + loremIpsum + '</div>',
-                       { collapsed: true }
-               );
-               $content = $collapsible.find( '.mw-collapsible-content' );
+               var $collapsible = prepareCollapsible(
+                               '<div class="mw-collapsible">' + loremIpsum + '</div>',
+                               { collapsed: true }
+                       ),
+                       $content = $collapsible.find( '.mw-collapsible-content' );
 
                // Synchronous - collapsed: true should cause instantHide: true to be used on initial collapsing
                assert.assertTrue( $content.is( ':hidden' ), 'content is hidden' );
                $collapsible.find( '.mw-collapsible-toggle' ).trigger( 'click' );
        } );
 
-       QUnit.test( 'clicks on links inside toggler pass through (options.linksPassthru)' , 2, function ( assert ) {
-               var $collapsible, $content;
-
-               $collapsible = prepareCollapsible(
-                       '<div class="mw-collapsible">' +
-                               '<div class="mw-collapsible-toggle">' +
-                                       'Toggle <a href="#top">toggle</a> toggle <b>toggle</b>' +
-                               '</div>' +
-                               '<div class="mw-collapsible-content">' + loremIpsum + '</div>' +
-                       '</div>',
-                       // Can't do asynchronous because we're testing that the event *doesn't* happen
-                       { instantHide: true }
-               );
-               $content = $collapsible.find( '.mw-collapsible-content' );
+       QUnit.test( 'clicks on links inside toggler pass through (options.linksPassthru)', 2, function ( assert ) {
+               var $collapsible = prepareCollapsible(
+                               '<div class="mw-collapsible">' +
+                                       '<div class="mw-collapsible-toggle">' +
+                                               'Toggle <a href="#top">toggle</a> toggle <b>toggle</b>' +
+                                       '</div>' +
+                                       '<div class="mw-collapsible-content">' + loremIpsum + '</div>' +
+                               '</div>',
+                               // Can't do asynchronous because we're testing that the event *doesn't* happen
+                               { instantHide: true }
+                       ),
+                       $content = $collapsible.find( '.mw-collapsible-content' );
 
                $collapsible.find( '.mw-collapsible-toggle a' ).trigger( 'click' );
                assert.assertTrue( $content.is( ':visible' ), 'click event on link inside toggle passes through (content not toggled)' );
        } );
 
        QUnit.asyncTest( 'collapse/expand text (data-collapsetext, data-expandtext)', 2, function ( assert ) {
-               var $collapsible, $toggleLink;
-               $collapsible = prepareCollapsible(
-                       '<div class="mw-collapsible" data-collapsetext="Collapse me!" data-expandtext="Expand me!">' +
-                               loremIpsum +
-                       '</div>'
-               );
-               $toggleLink = $collapsible.find( '.mw-collapsible-toggle a' );
+               var $collapsible = prepareCollapsible(
+                               '<div class="mw-collapsible" data-collapsetext="Collapse me!" data-expandtext="Expand me!">' +
+                                       loremIpsum +
+                               '</div>'
+                       ),
+                       $toggleLink = $collapsible.find( '.mw-collapsible-toggle a' );
 
                assert.equal( $toggleLink.text(), 'Collapse me!', 'data-collapsetext is respected' );
 
        } );
 
        QUnit.asyncTest( 'collapse/expand text (options.collapseText, options.expandText)', 2, function ( assert ) {
-               var $collapsible, $toggleLink;
-               $collapsible = prepareCollapsible(
-                       '<div class="mw-collapsible">' + loremIpsum + '</div>',
-                       { collapseText: 'Collapse me!', expandText: 'Expand me!' }
-               );
-               $toggleLink = $collapsible.find( '.mw-collapsible-toggle a' );
+               var $collapsible = prepareCollapsible(
+                               '<div class="mw-collapsible">' + loremIpsum + '</div>',
+                               { collapseText: 'Collapse me!', expandText: 'Expand me!' }
+                       ),
+                       $toggleLink = $collapsible.find( '.mw-collapsible-toggle a' );
 
                assert.equal( $toggleLink.text(), 'Collapse me!', 'options.collapseText is respected' );
 
index ca0ea67..bbea829 100644 (file)
@@ -1,8 +1,8 @@
-(function($) {
+(function ($) {
 
        QUnit.module('jquery.placeholder', QUnit.newMwEnvironment());
 
-       QUnit.test('caches results of feature tests', 2, function(assert) {
+       QUnit.test('caches results of feature tests', 2, function (assert) {
                assert.strictEqual(typeof $.fn.placeholder.input, 'boolean', '$.fn.placeholder.input');
                assert.strictEqual(typeof $.fn.placeholder.textarea, 'boolean', '$.fn.placeholder.textarea');
        });
@@ -20,7 +20,7 @@
                        '<input id="input-type-password" type="password" placeholder="e.g. hunter2">' +
                        '<textarea id="textarea" name="message" placeholder="Your message goes here"></textarea>' +
                '</form>',
-       testElement = function($el, assert) {
+       testElement = function ($el, assert) {
 
                var el = $el[0],
                        placeholder = el.getAttribute('placeholder');
                $el.placeholder(placeholder);
        };
 
-       QUnit.test('emulates placeholder for <input type=text>', 22, function(assert) {
+       QUnit.test('emulates placeholder for <input type=text>', 22, function (assert) {
                $('<div>').html(html).appendTo($('#qunit-fixture'));
                testElement($('#input-type-text'), assert);
        });
 
-       QUnit.test('emulates placeholder for <input type=search>', 22, function(assert) {
+       QUnit.test('emulates placeholder for <input type=search>', 22, function (assert) {
                $('<div>').html(html).appendTo($('#qunit-fixture'));
                testElement($('#input-type-search'), assert);
        });
 
-       QUnit.test('emulates placeholder for <input type=email>', 22, function(assert) {
+       QUnit.test('emulates placeholder for <input type=email>', 22, function (assert) {
                $('<div>').html(html).appendTo($('#qunit-fixture'));
                testElement($('#input-type-email'), assert);
        });
 
-       QUnit.test('emulates placeholder for <input type=url>', 22, function(assert) {
+       QUnit.test('emulates placeholder for <input type=url>', 22, function (assert) {
                $('<div>').html(html).appendTo($('#qunit-fixture'));
                testElement($('#input-type-url'), assert);
        });
 
-       QUnit.test('emulates placeholder for <input type=tel>', 22, function(assert) {
+       QUnit.test('emulates placeholder for <input type=tel>', 22, function (assert) {
                $('<div>').html(html).appendTo($('#qunit-fixture'));
                testElement($('#input-type-tel'), assert);
        });
 
-       QUnit.test('emulates placeholder for <input type=password>', 13, function(assert) {
+       QUnit.test('emulates placeholder for <input type=password>', 13, function (assert) {
                $('<div>').html(html).appendTo($('#qunit-fixture'));
 
                var selector = '#input-type-password',
 
        });
 
-       QUnit.test('emulates placeholder for <textarea></textarea>', 22, function(assert) {
+       QUnit.test('emulates placeholder for <textarea></textarea>', 22, function (assert) {
                $('<div>').html(html).appendTo($('#qunit-fixture'));
                testElement($('#textarea'), assert);
        });
index 5fe2394..25d9f73 100644 (file)
                }, opt.after );
 
                QUnit.test( opt.description, function ( assert ) {
-                       /*jshint onevar: false */
-                       var tests = 1;
+                       var $textarea, start, end, options, text,
+                               tests = 1;
                        if ( opt.after.selected !== null ) {
                                tests++;
                        }
                        QUnit.expect( tests );
 
-                       var $textarea = $( '<textarea>' );
+                       $textarea = $( '<textarea>' );
 
                        $( '#qunit-fixture' ).append( $textarea );
 
-                       //$textarea.textSelection( 'setContents', opt.before.text); // this method is actually missing atm...
-                       $textarea.val( opt.before.text ); // won't work with the WikiEditor iframe?
+                       // This method is actually missing atm...
+                       //$textarea.textSelection( 'setContents', opt.before.text);
 
-                       var start = opt.before.start,
-                               end = opt.before.end;
+                       // Won't work with the WikiEditor iframe?
+                       $textarea.val( opt.before.text );
 
-                       var options = $.extend( {}, opt.replace ); // Clone opt.replace
+                       start = opt.before.start;
+                       end = opt.before.end;
+
+                       // Clone opt.replace
+                       options = $.extend( {}, opt.replace );
                        options.selectionStart = start;
                        options.selectionEnd = end;
                        $textarea.textSelection( 'encapsulateSelection', options );
 
-                       var text = $textarea.textSelection( 'getContents' ).replace( /\r\n/g, '\n' );
+                       text = $textarea.textSelection( 'getContents' ).replace( /\r\n/g, '\n' );
 
                        assert.equal( text, opt.after.text, 'Checking full text after encapsulation' );
 
                replace: h2
        } );
 
-
        encapsulateTest( {
                description: 'ownline option: turn a partial line into new h2',
                before: {
                replace: h2
        } );
 
-
        encapsulateTest( {
                description: 'splitlines option: no selection, insert new list item',
                before: {
                replace: ulist
        } );
 
-
        function caretTest( options ) {
                QUnit.test( options.description, 2, function ( assert ) {
-                       var pos, $textarea = $( '<textarea>' ).text( options.text );
+                       var pos,
+                               $textarea = $( '<textarea>' ).text( options.text );
 
                        $( '#qunit-fixture' ).append( $textarea );
 
index 2bed9b9..70bcaf9 100644 (file)
@@ -1,28 +1,29 @@
-( function ( mw, $ ) {
-       QUnit.module( 'mediawiki.api.parse', QUnit.newMwEnvironment() );
+( function ( mw ) {
+       QUnit.module( 'mediawiki.api.parse', QUnit.newMwEnvironment( {
+               setup: function () {
+                       this.clock = this.sandbox.useFakeTimers();
+                       this.server = this.sandbox.useFakeServer();
+               },
+               teardown: function () {
+                       this.clock.tick( 1 );
+               }
+       } ) );
 
-       QUnit.asyncTest( 'Hello world', function ( assert ) {
-               var api;
-               QUnit.expect( 6 );
+       QUnit.test( 'Hello world', function ( assert ) {
+               QUnit.expect( 1 );
 
-               api = new mw.Api();
+               var api = new mw.Api();
 
-               api.parse( '\'\'\'Hello world\'\'\'' )
-                       .done( function ( html ) {
-                               // Parse into a document fragment instead of comparing HTML, due to
-                               // presence of Tidy influencing whitespace.
-                               // Html also contains "NewPP report" comment.
-                               var $res = $( '<div>' ).html( html ).children(),
-                                       res = $res.get( 0 );
-                               assert.equal( $res.length, 1, 'Response contains 1 element' );
-                               assert.equal( res.nodeName.toLowerCase(), 'p', 'Response is a paragraph' );
-                               assert.equal( $res.children().length, 1, 'Response has 1 child element' );
-                               assert.equal( $res.children().get( 0 ).nodeName.toLowerCase(), 'b', 'Child element is a bold tag' );
-                               // Trim since Tidy may or may not mess with the spacing here
-                               assert.equal( $.trim( $res.text() ), 'Hello world', 'Response contains given text' );
-                               assert.equal( $res.find( 'b' ).text(), 'Hello world', 'Bold tag wraps the entire, same, text' );
+               api.parse( '\'\'\'Hello world\'\'\'' ).done( function ( html ) {
+                       assert.equal( html, '<p><b>Hello world</b></p>' );
+               } );
 
-                               QUnit.start();
-                       } );
+               this.server.respondWith( /action=parse.*&text='''Hello\+world'''/, function ( request ) {
+                       request.respond( 200, { 'Content-Type': 'application/json' },
+                               '{ "parse": { "text": { "*": "<p><b>Hello world</b></p>" } } }'
+                       );
+               } );
+
+               this.server.respond();
        } );
-}( mediaWiki, jQuery ) );
+}( mediaWiki ) );
index c903193..3be3642 100644 (file)
@@ -7,7 +7,7 @@
                teardown: function () {
                        this.clock.tick( 1 );
                }
-       }) );
+       } ) );
 
        QUnit.test( 'Basic functionality', function ( assert ) {
                QUnit.expect( 2 );
@@ -29,7 +29,6 @@
                } );
        } );
 
-
        QUnit.test( 'API error', function ( assert ) {
                QUnit.expect( 1 );
 
diff --git a/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.watch.test.js b/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.watch.test.js
new file mode 100644 (file)
index 0000000..e178090
--- /dev/null
@@ -0,0 +1,50 @@
+( function ( mw ) {
+       QUnit.module( 'mediawiki.api.watch', QUnit.newMwEnvironment( {
+               setup: function () {
+                       this.clock = this.sandbox.useFakeTimers();
+                       this.server = this.sandbox.useFakeServer();
+               },
+               teardown: function () {
+                       this.clock.tick( 1 );
+               }
+       } ) );
+
+       QUnit.test( '.watch()', function ( assert ) {
+               QUnit.expect( 4 );
+
+               var api = new mw.Api();
+
+               // Ensure we don't mistake a single item array for a single item and vice versa.
+               // The query parameter in request is the same either way (separated by pipe).
+               api.watch( 'Foo' ).done( function ( item ) {
+                       assert.equal( item.title, 'Foo' );
+               } );
+
+               api.watch( [ 'Foo' ] ).done( function ( items ) {
+                       assert.equal( items[0].title, 'Foo' );
+               } );
+
+               api.watch( [ 'Foo', 'Bar' ] ).done( function ( items ) {
+                       assert.equal( items[0].title, 'Foo' );
+                       assert.equal( items[1].title, 'Bar' );
+               } );
+
+               // Requests are POST, match requestBody instead of url
+               this.server.respond( function ( req ) {
+                       if ( /action=watch.*&titles=Foo(&|$)/.test( req.requestBody ) ) {
+                               req.respond( 200, { 'Content-Type': 'application/json' },
+                                       '{ "watch": [ { "title": "Foo", "watched": true, "message": "<b>Added</b>" } ] }'
+                               );
+                       }
+
+                       if ( /action=watch.*&titles=Foo%7CBar/.test( req.requestBody ) ) {
+                               req.respond( 200, { 'Content-Type': 'application/json' },
+                                       '{ "watch": [ ' +
+                                               '{ "title": "Foo", "watched": true, "message": "<b>Added</b>" },' +
+                                               '{ "title": "Bar", "watched": true, "message": "<b>Added</b>" }' +
+                                               '] }'
+                               );
+                       }
+               } );
+       } );
+}( mediaWiki ) );
index aeefd64..f49be49 100644 (file)
                        100: 'Penguins'
                },
                wgNamespaceIds: {
-                       /*jshint camelcase: false */
-                       media: -2,
-                       special: -1,
+                       'media': -2,
+                       'special': -1,
                        '': 0,
-                       talk: 1,
-                       user: 2,
-                       user_talk: 3,
-                       wikipedia: 4,
-                       wikipedia_talk: 5,
-                       file: 6,
-                       file_talk: 7,
-                       mediawiki: 8,
-                       mediawiki_talk: 9,
-                       template: 10,
-                       template_talk: 11,
-                       help: 12,
-                       help_talk: 13,
-                       category: 14,
-                       category_talk: 15,
-                       image: 6,
-                       image_talk: 7,
-                       project: 4,
-                       project_talk: 5,
-                       /* testing custom / alias */
-                       penguins: 100,
-                       antarctic_waterfowl: 100
+                       'talk': 1,
+                       'user': 2,
+                       'user_talk': 3,
+                       'wikipedia': 4,
+                       'wikipedia_talk': 5,
+                       'file': 6,
+                       'file_talk': 7,
+                       'mediawiki': 8,
+                       'mediawiki_talk': 9,
+                       'template': 10,
+                       'template_talk': 11,
+                       'help': 12,
+                       'help_talk': 13,
+                       'category': 14,
+                       'category_talk': 15,
+                       'image': 6,
+                       'image_talk': 7,
+                       'project': 4,
+                       'project_talk': 5,
+                       // Testing custom namespaces and aliases
+                       'penguins': 100,
+                       'antarctic_waterfowl': 100
                },
                wgCaseSensitiveNamespaces: []
        },
index 292c576..a2ad50d 100644 (file)
        } );
 
        QUnit.test( 'Int', 4, function ( assert ) {
-               var newarticletextSource = 'You have followed a link to a page that does not exist yet. To create the page, start typing in the box below (see the [[{{Int:Helppage}}|help page]] for more info). If you are here by mistake, click your browser\'s back button.',
+               var newarticletextSource = 'You have followed a link to a page that does not exist yet. To create the page, start typing in the box below (see the [[{{Int:Foobar}}|foobar]] for more info). If you are here by mistake, click your browser\'s back button.',
                        expectedNewarticletext,
-                       helpPageTitle = 'Help:Contents';
+                       helpPageTitle = 'Help:Foobar';
 
-               mw.messages.set( 'helppage', helpPageTitle );
+               mw.messages.set( 'foobar', helpPageTitle );
 
                expectedNewarticletext = 'You have followed a link to a page that does not exist yet. To create the page, start typing in the box below (see the ' +
-                       '<a title="Help:Contents" href="/wiki/Help:Contents">help page</a> for more info). If you are here by mistake, click your browser\'s back button.';
+                       '<a title="Help:Foobar" href="/wiki/Help:Foobar">foobar</a> for more info). If you are here by mistake, click your browser\'s back button.';
 
                mw.messages.set( 'newarticletext', newarticletextSource );
 
@@ -705,7 +705,6 @@ QUnit.test( 'HTML', 26, function ( assert ) {
                'Escaped attributes are parsed correctly'
        );
 
-
        mw.messages.set( 'jquerymsg-wikitext-contents-parsed', '<i>[http://example.com Example]</i>' );
        assert.htmlEqual(
                formatParse( 'jquerymsg-wikitext-contents-parsed' ),
index 594ae25..441fcbc 100644 (file)
@@ -75,7 +75,7 @@
                assert.strictEqual( conf.get( 'constructor' ), 42, 'Map.get for key "constructor"' );
 
                assert.strictEqual( conf.set( 'ImUndefined', undefined ), true, 'Map.set allows setting value to `undefined`' );
-               assert.equal( conf.get( 'ImUndefined', 'fallback' ), undefined , 'Map.get supports retreiving value of `undefined`' );
+               assert.equal( conf.get( 'ImUndefined', 'fallback' ), undefined, 'Map.get supports retreiving value of `undefined`' );
 
                assert.strictEqual( conf.set( funky, 'Funky' ), false, 'Map.set returns boolean false if key was invalid (Function)' );
                assert.strictEqual( conf.set( arry, 'Arry' ), false, 'Map.set returns boolean false if key was invalid (Array)' );
                        'notExist': null
                }, 'Map.get return includes keys that were not found as null values' );
 
-
                // Interacting with globals and accessing the values object
                assert.strictEqual( conf.get(), conf.values, 'Map.get returns the entire values object by reference (if called without arguments)' );
 
                assertMultipleFormats( ['mediawiki-test-version-entrypoints-index-php'], ['plain', 'text', 'escaped'], mw.messages.get( 'mediawiki-test-version-entrypoints-index-php' ), 'External link markup is unprocessed' );
                assert.htmlEqual( mw.message( 'mediawiki-test-version-entrypoints-index-php' ).parse(), '<a href="https://www.mediawiki.org/wiki/Manual:index.php">index.php</a>', 'External link works correctly in parse mode' );
 
-               assertMultipleFormats( ['external-link-replace', 'http://example.org/?x=y&z'], ['plain', 'text'] , 'Foo [http://example.org/?x=y&z bar]', 'Parameters are substituted but external link is not processed' );
+               assertMultipleFormats( ['external-link-replace', 'http://example.org/?x=y&z'], ['plain', 'text'], 'Foo [http://example.org/?x=y&z bar]', 'Parameters are substituted but external link is not processed' );
                assert.equal( mw.message( 'external-link-replace', 'http://example.org/?x=y&z' ).escaped(), 'Foo [http://example.org/?x=y&amp;z bar]', 'In escaped mode, parameters are substituted and ampersand is escaped, but external link is not processed' );
                assert.htmlEqual( mw.message( 'external-link-replace', 'http://example.org/?x=y&z' ).parse(), 'Foo <a href="http://example.org/?x=y&amp;z">bar</a>', 'External link with replacement works in parse mode without double-escaping' );
 
                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' );
 
                assert.equal( mw.message( 'mediawiki-test-pagetriage-del-talk-page-notify-summary', specialCharactersPageName ).escaped(), 'Notifying author of deletion nomination for [[' + mw.html.escape( specialCharactersPageName ) + ']]', 'Double square brackets with one parameter, when escaped' );
 
-
                assert.ok( mw.messages.set( 'mediawiki-test-categorytree-collapse-bullet', '[<b>−</b>]' ), 'mw.messages.set: Register' );
                assert.equal( mw.message( 'mediawiki-test-categorytree-collapse-bullet' ).plain(), mw.messages.get( 'mediawiki-test-categorytree-collapse-bullet' ), 'Single square brackets unchanged in plain mode' );
 
                        'Script escaped when using parse format'
                );
 
-
        } );
 
        QUnit.test( 'mw.msg', 14, function ( assert ) {
                assert.equal( mw.msg( 'hello' ), 'Hello <b>awesome</b> world', 'Gets message with default options (existing message)' );
                assert.equal( mw.msg( 'goodbye' ), '<goodbye>', 'Gets message with default options (nonexistent message)' );
 
-               assert.ok( mw.messages.set( 'plural-item' , 'Found $1 {{PLURAL:$1|item|items}}' ), 'mw.messages.set: Register' );
+               assert.ok( mw.messages.set( 'plural-item', 'Found $1 {{PLURAL:$1|item|items}}' ), 'mw.messages.set: Register' );
                assert.equal( mw.msg( 'plural-item', 5 ), 'Found 5 items', 'Apply plural for count 5' );
                assert.equal( mw.msg( 'plural-item', 0 ), 'Found 0 items', 'Apply plural for count 0' );
                assert.equal( mw.msg( 'plural-item', 1 ), 'Found 1 item', 'Apply plural for count 1' );
index f4433f4..bc67147 100644 (file)
@@ -419,7 +419,7 @@ class TestFileIterator implements Iterator {
                        $this->lineNum++;
                        $matches = array();
 
-                       if ( preg_match( '/^!!\s*(\w+)/', $line, $matches ) ) {
+                       if ( preg_match( '/^!!\s*(\S+)/', $line, $matches ) ) {
                                $this->section = strtolower( $matches[1] );
 
                                if ( $this->section == 'endarticle' ) {
@@ -467,8 +467,10 @@ class TestFileIterator implements Iterator {
 
                                if ( $this->section == 'end' ) {
                                        $this->checkSection( 'test' );
-                                       $this->checkSection( 'input' );
-                                       $this->checkSection( 'result' );
+                                       // "input" and "result" are old section names allowed
+                                       // for backwards-compatibility.
+                                       $input = $this->checkSection( array( 'wikitext', 'input' ), false );
+                                       $result = $this->checkSection( array( 'html/php', 'html/*', 'html', 'result' ), false );
 
                                        if ( !isset( $this->sectionData['options'] ) ) {
                                                $this->sectionData['options'] = '';
@@ -478,8 +480,9 @@ class TestFileIterator implements Iterator {
                                                $this->sectionData['config'] = '';
                                        }
 
-                                       if ( ( ( preg_match( '/\\bdisabled\\b/i', $this->sectionData['options'] ) && !$this->parserTest->runDisabled )
-                                               || ( preg_match( '/\\bparsoid\\b/i', $this->sectionData['options'] ) && !$this->parserTest->runParsoid )
+                                       if ( $input == false || $result == false ||
+                                               ( ( preg_match( '/\\bdisabled\\b/i', $this->sectionData['options'] ) && !$this->parserTest->runDisabled )
+                                               || ( preg_match( '/\\bparsoid\\b/i', $this->sectionData['options'] ) && $result != 'html/php' && !$this->parserTest->runParsoid )
                                                || !preg_match( "/" . $this->parserTest->regex . "/i", $this->sectionData['test'] ) )
                                        ) {
                                                # disabled test
@@ -501,8 +504,8 @@ class TestFileIterator implements Iterator {
 
                                        $this->test = array(
                                                'test' => ParserTest::chomp( $this->sectionData['test'] ),
-                                               'input' => ParserTest::chomp( $this->sectionData['input'] ),
-                                               'result' => ParserTest::chomp( $this->sectionData['result'] ),
+                                               'input' => ParserTest::chomp( $this->sectionData[ $input ] ),
+                                               'result' => ParserTest::chomp( $this->sectionData[ $result ] ),
                                                'options' => ParserTest::chomp( $this->sectionData['options'] ),
                                                'config' => ParserTest::chomp( $this->sectionData['config'] ),
                                        );
@@ -538,27 +541,55 @@ class TestFileIterator implements Iterator {
 
        /**
         * Verify the current section data has some value for the given token
-        * name (first parameter).
+        * name(s) (first parameter).
         * Throw an exception if it is not set, referencing current section
         * and adding the current file name and line number
         *
-        * @param $token String: expected token that should have been mentionned before closing this section
+        * @param $token String|Array: expected token(s) that should have been
+        * mentioned before closing this section
+        * @param $fatal Boolean: true iff an exception should be thrown if
+        * the section is not found.
         */
-       private function checkSection( $token ) {
+       private function checkSection( $tokens, $fatal = true ) {
                if ( is_null( $this->section ) ) {
                        throw new MWException( __METHOD__ . " can not verify a null section!\n" );
                }
+               if ( !is_array( $tokens ) ) {
+                       $tokens = array( $tokens );
+               }
+               if ( count( $tokens ) == 0 ) {
+                       throw new MWException( __METHOD__ . " can not verify zero sections!\n" );
+               }
 
-               if ( !isset( $this->sectionData[$token] ) ) {
+               $data = $this->sectionData;
+               $tokens = array_filter( $tokens, function ( $token ) use ( $data ) {
+                       return isset( $data[ $token ] );
+               } );
+
+               if ( count( $tokens ) == 0 ) {
+                       if ( !$fatal ) {
+                               return false;
+                       }
                        throw new MWException( sprintf(
                                "'%s' without '%s' at line %s of %s\n",
                                $this->section,
-                               $token,
+                               implode( ',', $tokens ),
                                $this->lineNum,
                                $this->file
                        ) );
                }
-               return true;
+               if ( count( $tokens ) > 1 ) {
+                       throw new MWException( sprintf(
+                               "'%s' with unexpected tokens '%s' at line %s of %s\n",
+                               $this->section,
+                               implode( ',', $tokens ),
+                               $this->lineNum,
+                               $this->file
+                       ) );
+               }
+
+               $tokens = array_values( $tokens );
+               return $tokens[ 0 ];
        }
 }